<?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>159371</bug_id>
          
          <creation_ts>2016-07-01 14:08:51 -0700</creation_ts>
          <short_desc>WebProcesses don&apos;t handle DatabaseProcess going away uncleanly.</short_desc>
          <delta_ts>2016-07-04 08:34:04 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=155506</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1207264</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-07-01 14:08:51 -0700</bug_when>
    <thetext>WebProcesses doen&apos;t handle DatabaseProcess going away uncleanly

This is the flip side of https://bugs.webkit.org/show_bug.cgi?id=158894</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207352</commentid>
    <comment_count>1</comment_count>
      <attachid>282610</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-07-01 17:07:03 -0700</bug_when>
    <thetext>Created attachment 282610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207353</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-07-01 17:07:56 -0700</bug_when>
    <thetext>This patch is a WIP - The source changes are likely good, the test isn&apos;t complete.

Just attaching so I can have easy access at home later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207494</commentid>
    <comment_count>3</comment_count>
      <attachid>282659</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-07-03 09:06:11 -0700</bug_when>
    <thetext>Created attachment 282659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207607</commentid>
    <comment_count>4</comment_count>
      <attachid>282659</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-04 00:46:25 -0700</bug_when>
    <thetext>Comment on attachment 282659
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBDatabaseProcessKill.mm:96
&gt; +    // Allow file URLs to load non-file resources
&gt; +    [configuration _setAllowUniversalAccessFromFileURLs:YES];

This comment doesn&apos;t seem necessary.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBDatabaseProcessKill.mm:121
&gt; +    EXPECT_EQ(receivedAtLeastOneOpenError, true);

EXPECT_TRUE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207690</commentid>
    <comment_count>5</comment_count>
      <attachid>282659</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-04 08:31:22 -0700</bug_when>
    <thetext>Comment on attachment 282659
Patch

Clearing flags on attachment: 282659

Committed r202809: &lt;http://trac.webkit.org/changeset/202809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207691</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-04 08:31:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207694</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-07-04 08:34:04 -0700</bug_when>
    <thetext>Will make those test tweaks in a follow up</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282610</attachid>
            <date>2016-07-01 17:07:03 -0700</date>
            <delta_ts>2016-07-03 09:06:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159371-20160701170640.patch</filename>
            <type>text/plain</type>
            <size>26807</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY5NzVjZGZhZGYzZWQ2
MDBiMTRkYjI0MzlkOWU3Y2IwOTJhZmU5NS4uYzY4ZTRjNDBjY2ExZjU1MjFiMTM2Y2NlNjg5OTc2
YzJlODIyNjZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDE2LTA3LTAxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWJQcm9jZXNzZXMgZG9l
bid0IGhhbmRsZSBEYXRhYmFzZVByb2Nlc3MgZ29pbmcgYXdheSB1bmNsZWFubHkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkzNzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9P
UFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpkaWRDbG9zZUZyb21TZXJ2ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmg6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6Y29ubmVjdGlvblRvU2VydmVyTG9zdCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5o
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCRXJyb3IuaDoKKworMjAxNi0wNy0wMSAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKICAgICAgICAgQmxvYiBjb250ZW50IHR5cGUgbm90IHByZXNlcnZl
ZCB3aGVuIHJldHJpZXZpbmcgYmxvYnMgZnJvbSBJbmRleGVkREIuCiAgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yNzA1NzM1Nz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTkzNjAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGQyZWZmZTY3YmU0NmQ0NzZhZGI3ZjYwZThiNzZi
M2I0ZTdkMWNhNWEuLmUzY2QzMjJmN2M1NThhYjNjNGQyM2MwNjMyMmJmNzkyNzI1YTRiMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxNi0wNy0wMSAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViUHJvY2Vzc2VzIGRvZW4ndCBoYW5kbGUgRGF0
YWJhc2VQcm9jZXNzIGdvaW5nIGF3YXkgdW5jbGVhbmx5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
Q29ubmVjdGlvblRvU2VydmVyOjpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UpOgorCisyMDE2LTA3LTAxICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KKwogICAgICAgICBCbG9iIGNvbnRlbnQgdHlwZSBub3QgcHJl
c2VydmVkIHdoZW4gcmV0cmlldmluZyBibG9icyBmcm9tIEluZGV4ZWREQi4KICAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI3MDU3MzU3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1OTM2MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZS5jcHAKaW5kZXggZGI1MjUxMTllNDdkZWJmY2M2YzI1MzZhZmQ4OWUwNDY2
YTU3NDFhOC4uYmJmNzUzMmUzMWFmMTQxYjZmNTQ2MmNiZjA1ZTcxODFjYzcyNjBhMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAt
MjU3LDYgKzI1NywxNSBAQCB2b2lkIElEQkRhdGFiYXNlOjpkaWRDbG9zZUZyb21TZXJ2ZXIoY29u
c3QgSURCRXJyb3ImIGVycm9yKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJEYXRhYmFzZTo6
ZGlkQ2xvc2VGcm9tU2VydmVyIC0gJSIgUFJJdTY0LCBtX2RhdGFiYXNlQ29ubmVjdGlvbklkZW50
aWZpZXIpOwogCisgICAgY29ubmVjdGlvblRvU2VydmVyTG9zdChlcnJvcik7CisKKyAgICBtX2Nv
bm5lY3Rpb25Qcm94eS0+Y29uZmlybURpZENsb3NlRnJvbVNlcnZlcigqdGhpcyk7Cit9CisKK3Zv
aWQgSURCRGF0YWJhc2U6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3QoY29uc3QgSURCRXJyb3ImIGVy
cm9yKQoreworICAgIExPRyhJbmRleGVkREIsICJJREJEYXRhYmFzZTo6Y29ubmVjdGlvblRvU2Vy
dmVyTG9zdCAtICUiIFBSSXU2NCwgbV9kYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKwog
ICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gb3JpZ2luVGhyZWFkSUQoKSk7CiAKICAgICBt
X2Nsb3NlUGVuZGluZyA9IHRydWU7CkBAIC0yNjgsOCArMjc3LDYgQEAgdm9pZCBJREJEYXRhYmFz
ZTo6ZGlkQ2xvc2VGcm9tU2VydmVyKGNvbnN0IElEQkVycm9yJiBlcnJvcikKICAgICBSZWY8RXZl
bnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgdHJ1ZSwg
ZmFsc2UpOwogICAgIGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7CiAgICAgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5ldmVudFF1ZXVlKCkuZW5xdWV1ZUV2ZW50KFdURk1vdmUoZXZlbnQpKTsKLQot
ICAgIG1fY29ubmVjdGlvblByb3h5LT5jb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKCp0aGlzKTsK
IH0KIAogdm9pZCBJREJEYXRhYmFzZTo6bWF5YmVDbG9zZUluU2VydmVyKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCmluZGV4IGE2NzFiYzFiNThj
ODEyYmRmMDNmZTYzNTViMGY3NjJkZDY1ZmQ1MTUuLmEwZjhjNWQxNWYwMTU4YzcxMjBmNmFiMzlj
ZGZhMGNmMTQ4ZGQ5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2UuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZpcmVW
ZXJzaW9uQ2hhbmdlRXZlbnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRl
bnRpZmllciwgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CiAgICAgdm9pZCBkaWRDbG9zZUZy
b21TZXJ2ZXIoY29uc3QgSURCRXJyb3ImKTsKKyAgICB2b2lkIGNvbm5lY3Rpb25Ub1NlcnZlckxv
c3QoY29uc3QgSURCRXJyb3ImKTsKIAogICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
JiBjb25uZWN0aW9uUHJveHkoKSB7IHJldHVybiBtX2Nvbm5lY3Rpb25Qcm94eS5nZXQoKTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCmluZGV4IGExYjFmNDQzODRjYTYyOTc2Nzg4MGNh
ODg3ZDIyOWQ0NjdjNDMxOGIuLmUzMzU4NzQ3ZDk0ZTkwNjg5MGZiNjlmYzM5MWY1ZjQ5NGFjYmY5
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCkBAIC0zODYsNiArMzg2LDI4IEBAIHZv
aWQgSURCQ29ubmVjdGlvblByb3h5Ojpjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKElEQkRhdGFi
YXNlJiBkYXRhYmFzZSkKICAgICBjYWxsQ29ubmVjdGlvbk9uTWFpblRocmVhZCgmSURCQ29ubmVj
dGlvblRvU2VydmVyOjpjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyLCBkYXRhYmFzZS5kYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyKCkpOwogfQogCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6
Y29ubmVjdGlvblRvU2VydmVyTG9zdChjb25zdCBJREJFcnJvciYgZXJyb3IpCit7CisgICAgVmVj
dG9yPHVpbnQ2NF90PiBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyczsKKyAgICB7CisgICAg
ICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZUNvbm5lY3Rpb25NYXBMb2NrKTsKKyAg
ICAgICAgY29weUtleXNUb1ZlY3RvcihtX2RhdGFiYXNlQ29ubmVjdGlvbk1hcCwgZGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllcnMpOworICAgIH0KKworICAgIGZvciAoYXV0byBjb25uZWN0aW9u
SWRlbnRpZmllciA6IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXJzKSB7CisgICAgICAgIFJl
ZlB0cjxJREJEYXRhYmFzZT4gZGF0YWJhc2U7CisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2tl
cjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZUNvbm5lY3Rpb25NYXBMb2NrKTsKKyAgICAgICAgICAg
IGRhdGFiYXNlID0gbV9kYXRhYmFzZUNvbm5lY3Rpb25NYXAuZ2V0KGNvbm5lY3Rpb25JZGVudGlm
aWVyKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZGF0YWJhc2UpCisgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICBkYXRhYmFzZS0+cGVyZm9ybUNhbGxiYWNrT25PcmlnaW5UaHJl
YWQoKmRhdGFiYXNlLCAmSURCRGF0YWJhc2U6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3QsIGVycm9y
KTsKKyAgICB9Cit9CisKIHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpzY2hlZHVsZU1haW5UaHJl
YWRUYXNrcygpCiB7CiAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX21haW5UaHJlYWRUYXNrTG9j
ayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKaW5kZXggOWQ1OGE4MWU0ODdhZjdmYmNhNjgyMzAx
M2UwM2ZkMWI5MThmYTE1Ni4uMWE1ZDcyMWUyZDdmNTU0YTkwM2NjMmJkYzMzNjJlNzYwNjU1NTk4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaApAQCAtOTcsNiArOTcsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKICAgICB2b2lkIGNvbmZpcm1EaWRDbG9zZUZyb21T
ZXJ2ZXIoSURCRGF0YWJhc2UmKTsKIAorICAgIHZvaWQgY29ubmVjdGlvblRvU2VydmVyTG9zdChj
b25zdCBJREJFcnJvciYpOworCiAgICAgdm9pZCBhYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVp
bnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIAogICAgIHZvaWQgY29tcGxldGVPcGVy
YXRpb24oY29uc3QgSURCUmVzdWx0RGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVy
LmNwcAppbmRleCA2NjJhYzRiMTIyMTVjOGUyNjY4NWY3ZTdiYWFkNWQxMWZlYmJiODVmLi40ZDkz
ODM0NmY4MWRlYWVkMjZiMWI0MjU2MTMyYTBmOGNmZDEwOWNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcApAQCAtMzMyLDYgKzMzMiwxNCBAQCB2b2lkIElEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6Y29uZmlybURpZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5l
Y3RpbwogICAgIG1fZGVsZWdhdGUtPmNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIoZGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpj
b25uZWN0aW9uVG9TZXJ2ZXJMb3N0KGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sKKyAgICBMT0co
SW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0
Iik7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIG1fcHJveHktPmNvbm5lY3Rp
b25Ub1NlcnZlckxvc3QoZXJyb3IpOworfQorCiB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6
bm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBy
ZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lv
bikKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRTdGFy
dFRyYW5zYWN0aW9uIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggYzc5MzNj
ODJiY2NlMzUwYmU4YTU2YjkwYWRmM2IwMjllNThiMmU2ZS4uYTZhY2U1NzJlMjgyMGQ2ZDAwYzJi
YWQ3MGZkNmQ4Y2U4YWUzY2IxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAt
MTEwLDYgKzExMCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZENsb3Nl
RnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJFcnJvciYpOwogICAgIHZvaWQgY29uZmlybURpZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
Y29ubmVjdGlvblRvU2VydmVyTG9zdChjb25zdCBJREJFcnJvciYpOworCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRf
dCBuZXdWZXJzaW9uKTsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURC
UmVxdWVzdERhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCRXJyb3IuaAppbmRleCAyY2E1YmMxMWIzZjJlYzJkOWFjZGRjZWI1ZmNhM2Mw
ZmExMTdiMjE5Li5iYjU1MzFiYmEwMGUxY2VhOTBlYjU0N2UwM2UwNjU1YmI0NzE0NWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3Iu
aApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBJREJFcnJvciB7CiBwdWJsaWM6CiAgICAgSURCRXJy
b3IoKSB7IH0KICAgICBJREJFcnJvcihFeGNlcHRpb25Db2RlKTsKLSAgICBJREJFcnJvcihFeGNl
cHRpb25Db2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIFdFQkNPUkVfRVhQT1JUIElE
QkVycm9yKEV4Y2VwdGlvbkNvZGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAKICAgICBzdGF0
aWMgSURCRXJyb3IgdXNlckRlbGV0ZUVycm9yKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IDE1ODhjZDMzMjNkZTAxZWE5MjA2
MjllNzU5YWZiMmM0NTI0NTMxY2EuLjYxZGE3MmI0ZTEwNGZmZmJlODg5YThjN2ExNTRmMjgxMWUx
OTI4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0lEQkN1cnNvckluZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0lEQkRh
dGFiYXNlRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJFcnJvci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSURCSW5kZXhJbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJLZXlSYW5n
ZURhdGEuaD4KQEAgLTMxNiw2ICszMTcsMTIgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QKICAg
ICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lE
LCBkYXRhYmFzZU5hbWVzKTsKIH0KIAordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNv
bm5lY3Rpb25Ub1NlcnZlckxvc3QoKQoreworICAgIFdURkxvZ0Fsd2F5cygiY29ubmVjdGlvblRv
U2VydmVyTG9zdCIpOworICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5jb25uZWN0aW9uVG9TZXJ2
ZXJMb3N0KHsgV2ViQ29yZTo6SURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVND
SUlMaXRlcmFsKCJBbiBpbnRlcm5hbCBlcnJvciB3YXMgZW5jb3VudGVyZWQgaW4gdGhlIEluZGV4
ZWQgRGF0YWJhc2Ugc2VydmVyIikgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggMjlkNTBhMGQ5ZmI4NmYzNDcxYzcxM2I4NmY2
NDE0MDYwM2ZlNGE5Yy4uMGU1YzUwNWZkNWNmZWI3NWM4NWZhMzNlMWZiNTkyMzEzY2M0NGU3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtOTgs
NiArOTgsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKTsKIAorICAgIHZvaWQgY29ubmVjdGlvblRv
U2VydmVyTG9zdCgpOworCiBwcml2YXRlOgogICAgIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcigp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJU
b0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBmZDUx
ZmRjZGU0MGFlNjczYjNjNTlmM2M4MDE5NDRmMzM1MTc0MDFmLi5iNzFmYzc3YTQ0OGNiMWZiZWJi
MjZjMDZhNDA5NjlkMmQwMDkxMDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKQEAgLTUyLDkgKzUyLDkgQEAgdm9pZCBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGkKIHsK
ICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtX3dlYklEQkNvbm5l
Y3Rpb25zQnlJZGVudGlmaWVyLmZpbmQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwotICAgICAg
ICBpZiAoaXRlcmF0b3IgIT0gbV93ZWJJREJDb25uZWN0aW9uc0J5SWRlbnRpZmllci5lbmQoKSkK
LSAgICAgICAgICAgIGl0ZXJhdG9yLT52YWx1ZS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2Rlcik7CisgICAgICAgIGF1dG8gaWRiQ29ubmVjdGlvbiA9IG1fd2ViSURCQ29ubmVj
dGlvbnNCeUlkZW50aWZpZXIuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICAgICAg
aWYgKGlkYkNvbm5lY3Rpb24pCisgICAgICAgICAgICBpZGJDb25uZWN0aW9uLT5kaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNl
bmRpZgpAQCAtNjQsNiArNjQsMTIgQEAgdm9pZCBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGkKIAogdm9pZCBX
ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbikKIHsKKyAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dlYklEQkNvbm5l
Y3Rpb25zQnlJZGVudGlmaWVyLnZhbHVlcygpKQorICAgICAgICBjb25uZWN0aW9uLT5jb25uZWN0
aW9uVG9TZXJ2ZXJMb3N0KCk7CisKKyAgICBtX3dlYklEQkNvbm5lY3Rpb25zQnlJZGVudGlmaWVy
LmNsZWFyKCk7CisgICAgbV93ZWJJREJDb25uZWN0aW9uc0J5U2Vzc2lvbi5jbGVhcigpOworCiAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9u
Q2xvc2VkKHRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggYTdkOTY3Njg5MWJiZjViZWEyZTkzYjdjNmFlYjk5Y2FmY2M0Zjg0YS4u
NzEyYjliNWRhM2M1NWNjYWQ0NzdlZDE5MmUyNGU0ODU4MzAyNmE1MCAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE2
LTA3LTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJQ
cm9jZXNzZXMgZG9lbid0IGhhbmRsZSBEYXRhYmFzZVByb2Nlc3MgZ29pbmcgYXdheSB1bmNsZWFu
bHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkz
NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkRhdGFiYXNl
UHJvY2Vzc0tpbGwtMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9JbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTIuaHRtbDogQWRkZWQu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCRGF0
YWJhc2VQcm9jZXNzS2lsbC5tbTogQWRkZWQuCisgICAgICAgICgtW0RhdGFiYXNlUHJvY2Vzc0tp
bGxOYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0pOgorICAg
ICAgICAoLVtEYXRhYmFzZVByb2Nlc3NLaWxsTWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250
cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOl0pOgorICAgICAgICAoVEVTVCk6CisKIDIw
MTYtMDctMDEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAg
U2ltcGxpZnkgTGF5b3V0VGVzdFJlbGF5CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRmYjRi
MTU0YjA1YmFjZjkzMWQ4NjJhZjk4YTY3YzEyYTdlODQ0MDguLmY1MzYzNDRmMGE4NTMzMTUwMzJk
YmM5M2Q4ZDQyNDdkZDQyZmE5MmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MSw2ICs3
MSw4IEBACiAJCTUxNzE0RUI4MUNGOENBMTcwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNs
ZWFudXAubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTcxNEVCNjFDRjhDN0E0MDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLm1tICov
OyB9OwogCQk1MTdFN0UwNDE1MTExOUMxMDBEMEIwMDggLyogTWVtb3J5Q2FjaGVQcnVuZVdpdGhp
blJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3RTdFMDMxNTExMTg3NTAwRDBCMDA4IC8qIE1lbW9y
eUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sICovOyB9OwogCQk1MUE1
ODc3RDFEMUI0OUNEMDA0QkE5QUYgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTMuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE1ODc3
QzFEMUIzRDhEMDA0QkE5QUYgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTMuaHRtbCAqLzsgfTsK
KwkJNTFBNTg3ODUxRDI3MzlFMzAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tp
bGwtMS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxQTU4NzgyMUQyNzJFQjUwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nl
c3NLaWxsLTEuaHRtbCAqLzsgfTsKKwkJNTFBNTg3ODYxRDI3M0FBOTAwNEJBOUFGIC8qIEluZGV4
ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUE1ODc4NDFEMjcyRUYzMDA0QkE5QUYgLyogSW5kZXhlZERCRGF0
YWJhc2VQcm9jZXNzS2lsbC5tbSAqLzsgfTsKIAkJNTFCMUVFOTYxQzgwRkFFRjAwNjRGQjk4IC8q
IEluZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUIxRUU5NDFDODBGQUREMDA2NEZCOTggLyogSW5k
ZXhlZERCUGVyc2lzdGVuY2UtMS5odG1sICovOyB9OwogCQk1MUIxRUU5NzFDODBGQUVGMDA2NEZC
OTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjFFRTk1MUM4MEZBREQwMDY0RkI5OCAv
KiBJbmRleGVkREJQZXJzaXN0ZW5jZS0yLmh0bWwgKi87IH07CiAJCTUxQkNFRTRFMUM4NEY1M0Iw
MDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMS5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQkNFRTRDMUM4NEY1MkMwMDQy
QzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMS5odG1sICovOyB9OwpAQCAtNDcwLDYgKzQ3
Miw3IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJm
b2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCTUxQTU4Nzg1MUQyNzM5RTMwMDRCQTlB
RiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQk1MUE1ODc3RDFEMUI0OUNEMDA0QkE5QUYgLyogSW5kZXhlZERCTXVsdGlQcm9j
ZXNzLTMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5OTg0RkFDRTFDRkZCMDkwMDA4
RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUx
NzE0RUI0MUNGOEM3OEMwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMS5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtNzAwLDYgKzcwMyw5IEBACiAJCTUxN0U3REZCMTUx
MTBFQTYwMEQwQjAwOCAvKiBNZW1vcnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdh
dGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZW1vcnlDYWNo
ZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxN0U3RTAzMTUxMTE4NzUwMEQwQjAwOCAvKiBNZW1vcnlDYWNoZVBydW5lV2l0
aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
IE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1ODc3QzFEMUIzRDhEMDA0QkE5QUYgLyogSW5kZXhl
ZERCTXVsdGlQcm9jZXNzLTMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJJbmRl
eGVkREJNdWx0aVByb2Nlc3MtMy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTFBNTg3ODIxRDI3MkVCNTAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwt
MS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIkluZGV4ZWREQkRhdGFiYXNlUHJv
Y2Vzc0tpbGwtMS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFBNTg3ODMx
RDI3MkVCNTAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwtMi5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIkluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwt
Mi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFBNTg3ODQxRDI3MkVGMzAw
NEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUIxRUU4RDFDODBGNTg4MDA2NEZCOTgg
LyogSW5kZXhlZERCUGVyc2lzdGVuY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBJbmRleGVkREJQZXJzaXN0ZW5jZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTFCMUVFOTQxQzgwRkFERDAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNl
LTEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJJbmRleGVkREJQZXJzaXN0ZW5j
ZS0xLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUIxRUU5NTFDODBGQURE
MDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gIkluZGV4ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMTUxLDYgKzExNTcsNyBAQAogCQkJCTJEODEwNENCMUJFQzEzRTcw
MDIwREE0NiAvKiBGaW5kSW5QYWdlLm1tICovLAogCQkJCTJEMUZFMEFGMUFENDY1QzEwMDZDRDlF
NiAvKiBGaXhlZExheW91dFNpemUubW0gKi8sCiAJCQkJQ0RFMTk1QjMxQ0ZFMEFERTAwNTNEMjU2
IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQubW0gKi8sCisJCQkJNTFBNTg3ODQxRDI3MkVG
MzAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0gKi8sCiAJCQkJNTFC
Q0VFNDkxQzg0RjRBRjAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy5tbSAqLywKIAkJ
CQk1MUIxRUU4RDFDODBGNTg4MDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UubW0gKi8s
CiAJCQkJMzdEMzZFRDYxQUY0MkVDRDAwQkFGNUQ5IC8qIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5n
Lm1tICovLApAQCAtMTI1Nyw2ICsxMjY0LDggQEAKIAkJCQk1NzE0RUNCODFDQThCNTg4MDAwNTFB
QzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbCAqLywKIAkJCQk1NzE0RUNCQzFD
QThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi8sCiAJ
CQkJNTcxNEVDQkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJM
RnJhbWUuaHRtbCAqLywKKwkJCQk1MUE1ODc4MjFEMjcyRUI1MDA0QkE5QUYgLyogSW5kZXhlZERC
RGF0YWJhc2VQcm9jZXNzS2lsbC0xLmh0bWwgKi8sCisJCQkJNTFBNTg3ODMxRDI3MkVCNTAwNEJB
OUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwtMi5odG1sICovLAogCQkJCTUxQkNF
RTRDMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMS5odG1sICovLAog
CQkJCTUxQkNFRTREMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMi5o
dG1sICovLAogCQkJCTUxQTU4NzdDMUQxQjNEOEQwMDRCQTlBRiAvKiBJbmRleGVkREJNdWx0aVBy
b2Nlc3MtMy5odG1sICovLApAQCAtMjA5NSw2ICsyMTA0LDcgQEAKIAkJCQk3Q0NFN0YyNDFBNDEx
QUY2MDA0NDdDNEMgLyogTmF2aWdhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNEZDNTg4
MUI4OTkxQkYwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0NDRTdGMDIxQTQxMUFFNjAwNDQ3QzRDIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUE1ODc4NjFEMjczQUE5MDA0QkE5QUYgLyog
SW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RjAzMUE0MTFBRTYwMDQ0N0M0QyAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWls
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YwNDFBNDExQUU2MDA0NDdDNEMgLyogTmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTc2NDMyMkQ3MUI2MUNDQzMwMDI0RjgwMSAvKiBXb3JkQm91bmRhcnlUeXBpbmdBdHRyaWJ1
dGVzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkRhdGFiYXNlUHJv
Y2Vzc0tpbGwtMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiZTcwYjc3Njc0YmExZTg3OWQ1ZjJlYjA0ZGVl
OTIwMGY0ZDVhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9JbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbApAQCAtMCww
ICsxLDE0IEBACis8c2NyaXB0PgorCitmdW5jdGlvbiByZXF1ZXN0SGFuZGxlcihlKQoreworICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdE
ZWxldGVSZXF1ZXN0RG9uZScpOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKSB7
CisgICAgdmFyIHJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJJbmRl
eGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSByZXF1
ZXN0SGFuZGxlcjsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSByZXF1ZXN0SGFuZGxlcjsKK30KKwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9JbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTIuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwtMi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYxMmU2NmNlNGJjMDcyYjMzYmE2MDI2ZTljMWYwNzlmOGMwYTkzYTMK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9JbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTIuaHRtbApAQCAtMCwwICsxLDU4IEBACis8
c2NyaXB0PgorCitmdW5jdGlvbiByZXF1ZXN0SGFuZGxlcihlKQoreworICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdEZWxldGVSZXF1ZXN0
RG9uZScpOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMCkgeworICAgIHZhciByZXF1ZXN0
ID0gd2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgiSW5kZXhlZERCRGF0YWJhc2VQcm9j
ZXNzS2lsbCIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gcmVxdWVzdEhhbmRsZXI7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gcmVxdWVzdEhhbmRsZXI7Cit9CisKKwordmFyIHJlcXVlc3QgPSB3
aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NL
aWxsIik7CityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpCit7CisgICAgY29udGludWVU
ZXN0KCk7Cit9CityZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihlKQoreworICAgIC8vIFVuZXhw
ZWN0ZWQgZXJyb3IKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZSgnRXJyb3IgZGVsZXRpbmcgZGF0YWJhc2UnKTsKK30KKworZnVuY3Rpb24g
Y29udGludWVUZXN0KCkKK3sKKyAgICB2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Bl
bigiSW5kZXhlZERCTXVsdGlQcm9jZXNzIiwgMik7CisKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdPcGVuIHN1Y2Nlc3MnKTsKKyAgICB9CisKKyAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICAvLyBVbmV4cGVjdGVk
IGVycm9yCisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVy
LnBvc3RNZXNzYWdlKCdVbmV4cGVjdGVkIGVycm9yIG9wZW5pbmcgZGF0YWJhc2UnKTsKKyAgICB9
CisKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsK
KyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoJ1VwZ3JhZGVOZWVkZWQnKTsKKworICAgICAgICB2YXIgc3RvcmUgPSBldmVudC50YXJn
ZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKKworICAgICAg
ICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoJ1RyYW5zYWN0aW9uIGNvbXBsZXRlJyk7CisgICAgICAgIH0KKworICAgICAgICBldmVu
dC50YXJnZXQudHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ1Ry
YW5zYWN0aW9uIGVycm9yZWQhJyk7CisgICAgICAgIH0KKworICAgICAgICBzdG9yZS5wdXQoImJh
ciIsICJmb28iKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJEYXRh
YmFzZVByb2Nlc3NLaWxsLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkZWE4ODRiYWQwOTYyMjY4MjE2MWUxZDBj
ZjM5MWQzMjNlMThlNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tCkBAIC0wLDAg
KzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBs
YXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0IDxXZWJLaXQvV2Vi
S2l0Lmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQg
PFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJTdHlsZVNo
ZWV0Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAor
CitzdGF0aWMgYm9vbCBpc0RvbmVXaXRoTmF2aWdhdGlvbjsKKworQGludGVyZmFjZSBEYXRhYmFz
ZVByb2Nlc3NLaWxsTmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRl
bGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gRGF0YWJhc2VQcm9jZXNzS2lsbE5hdmln
YXRpb25EZWxlZ2F0ZQorCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlk
RmluaXNoTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbgoreworICAgIGlzRG9u
ZVdpdGhOYXZpZ2F0aW9uID0gdHJ1ZTsKK30KKworQGVuZAorCitzdGF0aWMgYm9vbCByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2U7CitzdGF0aWMgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBzY3JpcHRN
ZXNzYWdlczsKKworQGludGVyZmFjZSBEYXRhYmFzZVByb2Nlc3NLaWxsTWVzc2FnZUhhbmRsZXIg
OiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIERhdGFiYXNlUHJvY2Vzc0tpbGxNZXNzYWdlSGFuZGxlcgorCistICh2b2lkKXVzZXJDb250
ZW50Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRy
b2xsZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UK
K3sKKyAgICBpZiAoIXNjcmlwdE1lc3NhZ2VzKQorICAgICAgICBzY3JpcHRNZXNzYWdlcyA9IGFk
b3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworCisgICAgTlNMb2coQCJXZWxs
IHRoZW4iKTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSB0cnVlOworICAgIFtzY3JpcHRN
ZXNzYWdlcyBhZGRPYmplY3Q6W21lc3NhZ2UgYm9keV1dOworfQorCitAZW5kCisKK1RFU1QoSW5k
ZXhlZERCLCBEYXRhYmFzZVByb2Nlc3NLaWxsKQoreworICAgIFJldGFpblB0cjxEYXRhYmFzZVBy
b2Nlc3NLaWxsTWVzc2FnZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5TKFtbRGF0YWJhc2VQcm9j
ZXNzS2lsbE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVu
dENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpA
InRlc3RIYW5kbGVyIl07CisKKyAgICAvLyBBbGxvdyBmaWxlIFVSTHMgdG8gbG9hZCBub24tZmls
ZSByZXNvdXJjZXMKKyAgICBbY29uZmlndXJhdGlvbiBfc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NG
cm9tRmlsZVVSTHM6WUVTXTsKKworICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgRGF0
YWJhc2VQcm9jZXNzS2lsbE5hdmlnYXRpb25EZWxlZ2F0ZSAqZGVsZWdhdGUgPSBbW0RhdGFiYXNl
UHJvY2Vzc0tpbGxOYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdOworICAgIFt3ZWJWaWV3
IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZV07CisKKyAgICBOU1VSTFJlcXVlc3QgKnJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
XTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lV2l0aE5hdmlnYXRpb24pOworICAgIE5TTG9nKEAiT2theSIp
OworICAgIGJvb2wga2lsbGVkREJQcm9jZXNzID0gZmFsc2U7CisgICAgd2hpbGUgKHRydWUpIHsK
KyAgICAgICAgTlNMb2coQCJPa2F5IGFnYWluIik7CisKKyAgICAgICAgaWYgKHJlY2VpdmVkU2Ny
aXB0TWVzc2FnZSAmJiBbc2NyaXB0TWVzc2FnZXMgY291bnRdID09IDEwMCkKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBOU0xvZyhAIk9rYXkgYWdhaW4yIC0gJXp1IiwgKHVuc2lnbmVkIGxv
bmcpW3NjcmlwdE1lc3NhZ2VzIGNvdW50XSk7CisKKyAgICAgICAgcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlID0gZmFsc2U7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlKTsKKyAgICAgICAgaWYgKCFraWxsZWREQlByb2Nlc3MpIHsKKyAgICAgICAg
ICAgIGtpbGxlZERCUHJvY2VzcyA9IHRydWU7CisgICAgICAgICAgICBbY29uZmlndXJhdGlvbi5n
ZXQoKS5wcm9jZXNzUG9vbCBfdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzXTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGZvciAoTlNTdHJpbmcgKm1lc3NhZ2UgaW4gc2NyaXB0TWVzc2FnZXMuZ2V0
KCkpCisgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIkRlbGV0ZVJlcXVlc3REb25lIiwgbWVzc2Fn
ZSk7Cit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282659</attachid>
            <date>2016-07-03 09:06:11 -0700</date>
            <delta_ts>2016-07-04 08:31:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159371-20160703090616.patch</filename>
            <type>text/plain</type>
            <size>27008</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FmYWZkZDNjYzFmMTA4
Yzk1NzlmMzA1NDIwYTkzMTM3NjZiZDgxNy4uMTllOGI2ZTYxOThlOGEzOThhN2RjMTQ3MDJjMDkx
MzQxZjkzNmZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTA3LTAzICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJQcm9jZXNzZXMgZG9u
J3QgaGFuZGxlIERhdGFiYXNlUHJvY2VzcyBnb2luZyBhd2F5IHVuY2xlYW5seS4uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkzNzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBB
UEkgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpkaWRDbG9zZUZyb21TZXJ2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmg6CisgICAgICAgIAorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmNvbm5lY3Rpb25U
b1NlcnZlckxvc3QpOiBOb3RpZnkgYWxsIElEQkRhdGFiYXNlCisgICAgICAgICAgY29ubmVjdGlv
bnMsIGFzIHdlbGwgYXMgYWxsIHBlbmRpbmcgSURCT3BlbkRCUmVxdWVzdHMsIHdpdGggdGhlIGVy
cm9yIGFib3V0IHRoZQorICAgICAgICAgIHNlcnZlciBjb25uZWN0aW9uIGRyb3BwaW5nLgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaDoKKyAg
ICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25U
b1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6Y29ubmVjdGlvblRvU2VydmVyTG9zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuaDoKKwogMjAxNi0wNy0wMSAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIHByZXBhcmVGb3JEZXN0cnVj
dGlvbigpIGFsd2F5cyBuZWVkcyB0byBiZSBjYWxsZWQgYmVmb3JlIGRlc3Ryb3lpbmcgdGhlIERv
Y3VtZW50IG9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwNWY3Mjk3MGQ5YWE0ODZhYmNkNmE0MDFhMTc0
YmI3YWZjMjA5ZDI5Li5jMzViNGRmNzUyMmI1N2E3MWQ4MjE1OGQwNDk0MjY1Y2E2YWFmNzkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTYtMDctMDMgIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFdlYlByb2Nlc3NlcyBkb24ndCBoYW5kbGUgRGF0
YWJhc2VQcm9jZXNzIGdvaW5nIGF3YXkgdW5jbGVhbmx5Li4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTM3MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZURhdGFiYXNlUHJv
Y2Vzcyk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
Q29ubmVjdGlvblRvU2VydmVyOjpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmg6
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9EYXRhYmFz
ZVByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6IE5vdGlmeSBlYWNoIGNvbm5lY3Rpb24KKyAg
ICAgICAgICB0aGF0IHRoZSBkYXRhYmFzZSBzZXJ2ZXIgY29ubmVjdGlvbiBkcm9wcGVkLgorCiAy
MDE2LTA3LTAxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04ocjIwMTQwNSk6IEZ1bGxzY3JlZW4gdmlkZW8gbm8gbG9uZ2VyIGVudGVycyBsb3ct
cG93ZXIgbW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2UuY3BwCmluZGV4IGRiNTI1MTE5ZTQ3ZGViZmNjNmMyNTM2YWZkODllMDQ2NmE1NzQxYTgu
LmJiZjc1MzJlMzFhZjE0MWI2ZjU0NjJjYmYwNWU3MTgxY2M3MjYwYTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTI1Nyw2ICsy
NTcsMTUgQEAgdm9pZCBJREJEYXRhYmFzZTo6ZGlkQ2xvc2VGcm9tU2VydmVyKGNvbnN0IElEQkVy
cm9yJiBlcnJvcikKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCRGF0YWJhc2U6OmRpZENsb3Nl
RnJvbVNlcnZlciAtICUiIFBSSXU2NCwgbV9kYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
IAorICAgIGNvbm5lY3Rpb25Ub1NlcnZlckxvc3QoZXJyb3IpOworCisgICAgbV9jb25uZWN0aW9u
UHJveHktPmNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIoKnRoaXMpOworfQorCit2b2lkIElEQkRh
dGFiYXNlOjpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KGNvbnN0IElEQkVycm9yJiBlcnJvcikKK3sK
KyAgICBMT0coSW5kZXhlZERCLCAiSURCRGF0YWJhc2U6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3Qg
LSAlIiBQUkl1NjQsIG1fZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CisKICAgICBBU1NF
UlQoY3VycmVudFRocmVhZCgpID09IG9yaWdpblRocmVhZElEKCkpOwogCiAgICAgbV9jbG9zZVBl
bmRpbmcgPSB0cnVlOwpAQCAtMjY4LDggKzI3Nyw2IEBAIHZvaWQgSURCRGF0YWJhc2U6OmRpZENs
b3NlRnJvbVNlcnZlcihjb25zdCBJREJFcnJvciYgZXJyb3IpCiAgICAgUmVmPEV2ZW50PiBldmVu
dCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIGZhbHNlKTsK
ICAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwogICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+ZXZlbnRRdWV1ZSgpLmVucXVldWVFdmVudChXVEZNb3ZlKGV2ZW50KSk7Ci0KLSAgICBtX2Nv
bm5lY3Rpb25Qcm94eS0+Y29uZmlybURpZENsb3NlRnJvbVNlcnZlcigqdGhpcyk7CiB9CiAKIHZv
aWQgSURCRGF0YWJhc2U6Om1heWJlQ2xvc2VJblNlcnZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAppbmRleCBhNjcxYmMxYjU4YzgxMmJkZjAz
ZmU2MzU1YjBmNzYyZGQ2NWZkNTE1Li5hMGY4YzVkMTVmMDE1OGM3MTIwZjZhYjM5Y2RmYTBjZjE0
OGRkOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlLmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBmaXJlVmVyc2lvbkNo
YW5nZUV2ZW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIs
IHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pOwogICAgIHZvaWQgZGlkQ2xvc2VGcm9tU2VydmVy
KGNvbnN0IElEQkVycm9yJik7CisgICAgdm9pZCBjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KGNvbnN0
IElEQkVycm9yJik7CiAKICAgICBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYgY29ubmVj
dGlvblByb3h5KCkgeyByZXR1cm4gbV9jb25uZWN0aW9uUHJveHkuZ2V0KCk7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblByb3h5LmNwcAppbmRleCBhMWIxZjQ0Mzg0Y2E2Mjk3Njc4ODBjYTg4N2QyMjlk
NDY3YzQzMThiLi44MzYzNjE5MGU1MDZiYjNmYTU5YmJjNWZhMmYxMDRiNjBiYzE4MWY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblByb3h5LmNwcApAQCAtMzg2LDYgKzM4Niw0OCBAQCB2b2lkIElEQkNv
bm5lY3Rpb25Qcm94eTo6Y29uZmlybURpZENsb3NlRnJvbVNlcnZlcihJREJEYXRhYmFzZSYgZGF0
YWJhc2UpCiAgICAgY2FsbENvbm5lY3Rpb25Pbk1haW5UaHJlYWQoJklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6Y29uZmlybURpZENsb3NlRnJvbVNlcnZlciwgZGF0YWJhc2UuZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllcigpKTsKIH0KIAordm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmNvbm5lY3Rp
b25Ub1NlcnZlckxvc3QoY29uc3QgSURCRXJyb3ImIGVycm9yKQoreworICAgIFZlY3Rvcjx1aW50
NjRfdD4gZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcnM7CisgICAgeworICAgICAgICBMb2Nr
ZXI8TG9jaz4gbG9ja2VyKG1fZGF0YWJhc2VDb25uZWN0aW9uTWFwTG9jayk7CisgICAgICAgIGNv
cHlLZXlzVG9WZWN0b3IobV9kYXRhYmFzZUNvbm5lY3Rpb25NYXAsIGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXJzKTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8gY29ubmVjdGlvbklkZW50aWZp
ZXIgOiBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVycykgeworICAgICAgICBSZWZQdHI8SURC
RGF0YWJhc2U+IGRhdGFiYXNlOworICAgICAgICB7CisgICAgICAgICAgICBMb2NrZXI8TG9jaz4g
bG9ja2VyKG1fZGF0YWJhc2VDb25uZWN0aW9uTWFwTG9jayk7CisgICAgICAgICAgICBkYXRhYmFz
ZSA9IG1fZGF0YWJhc2VDb25uZWN0aW9uTWFwLmdldChjb25uZWN0aW9uSWRlbnRpZmllcik7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoIWRhdGFiYXNlKQorICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgZGF0YWJhc2UtPnBlcmZvcm1DYWxsYmFja09uT3JpZ2luVGhyZWFkKCpkYXRh
YmFzZSwgJklEQkRhdGFiYXNlOjpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0LCBlcnJvcik7CisgICAg
fQorCisgICAgVmVjdG9yPElEQlJlc291cmNlSWRlbnRpZmllcj4gb3BlbkRCUmVxdWVzdElkZW50
aWZpZXJzOworICAgIHsKKyAgICAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX29wZW5EQlJlcXVl
c3RNYXBMb2NrKTsKKyAgICAgICAgY29weUtleXNUb1ZlY3RvcihtX29wZW5EQlJlcXVlc3RNYXAs
IG9wZW5EQlJlcXVlc3RJZGVudGlmaWVycyk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiByZXF1
ZXN0SWRlbnRpZmllciA6IG9wZW5EQlJlcXVlc3RJZGVudGlmaWVycykgeworICAgICAgICBSZWZQ
dHI8SURCT3BlbkRCUmVxdWVzdD4gcmVxdWVzdDsKKyAgICAgICAgeworICAgICAgICAgICAgTG9j
a2VyPExvY2s+IGxvY2tlcihtX29wZW5EQlJlcXVlc3RNYXBMb2NrKTsKKyAgICAgICAgICAgIHJl
cXVlc3QgPSBtX29wZW5EQlJlcXVlc3RNYXAuZ2V0KHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgIGF1dG8gcmVzdWx0ID0gSURCUmVzdWx0RGF0YTo6ZXJyb3IocmVxdWVzdElkZW50aWZp
ZXIsIGVycm9yKTsKKyAgICAgICAgcmVxdWVzdC0+cGVyZm9ybUNhbGxiYWNrT25PcmlnaW5UaHJl
YWQoKnJlcXVlc3QsICZJREJPcGVuREJSZXF1ZXN0OjpyZXF1ZXN0Q29tcGxldGVkLCByZXN1bHQp
OworICAgIH0KK30KKwogdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OnNjaGVkdWxlTWFpblRocmVh
ZFRhc2tzKCkKIHsKICAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fbWFpblRocmVhZFRhc2tMb2Nr
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJDb25uZWN0aW9uUHJveHkuaAppbmRleCA5ZDU4YTgxZTQ4N2FmN2ZiY2E2ODIzMDEz
ZTAzZmQxYjkxOGZhMTU2Li4xYTVkNzIxZTJkN2Y1NTRhOTAzY2MyYmRjMzM2MmU3NjA2NTU1OTg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCkBAIC05Nyw2ICs5Nyw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwogICAgIHZvaWQgY29uZmlybURpZENsb3NlRnJvbVNl
cnZlcihJREJEYXRhYmFzZSYpOwogCisgICAgdm9pZCBjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KGNv
bnN0IElEQkVycm9yJik7CisKICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogCiAgICAgdm9pZCBjb21wbGV0ZU9wZXJh
dGlvbihjb25zdCBJREJSZXN1bHREYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwCmluZGV4IDY2MmFjNGIxMjIxNWM4ZTI2Njg1ZjdlN2JhYWQ1ZDExZmViYmI4NWYuLjRkOTM4
MzQ2ZjgxZGVhZWQyNmIxYjQyNTYxMzJhMGY4Y2ZkMTA5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXIuY3BwCkBAIC0zMzIsNiArMzMyLDE0IEBAIHZvaWQgSURCQ29ubmVjdGlvblRv
U2VydmVyOjpjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVj
dGlvCiAgICAgbV9kZWxlZ2F0ZS0+Y29uZmlybURpZENsb3NlRnJvbVNlcnZlcihkYXRhYmFzZUNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKIH0KIAordm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNv
bm5lY3Rpb25Ub1NlcnZlckxvc3QoY29uc3QgSURCRXJyb3ImIGVycm9yKQoreworICAgIExPRyhJ
bmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3Qi
KTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgbV9wcm94eS0+Y29ubmVjdGlv
blRvU2VydmVyTG9zdChlcnJvcik7Cit9CisKIHZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpu
b3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJl
cXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9u
KQogewogICAgIExPRyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZFN0YXJ0
VHJhbnNhY3Rpb24iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAppbmRleCBjNzkzM2M4
MmJjY2UzNTBiZThhNTZiOTBhZGYzYjAyOWU1OGIyZTZlLi5hNmFjZTU3MmUyODIwZDZkMDBjMmJh
ZDcwZmQ2ZDhjZThhZTNjYjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCkBAIC0x
MTAsNiArMTEwLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQ2xvc2VG
cm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElE
QkVycm9yJik7CiAgICAgdm9pZCBjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRh
dGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBj
b25uZWN0aW9uVG9TZXJ2ZXJMb3N0KGNvbnN0IElEQkVycm9yJik7CisKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIG5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90
IG5ld1ZlcnNpb24pOwogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJS
ZXF1ZXN0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJFcnJvci5oCmluZGV4IDJjYTViYzExYjNmMmVjMmQ5YWNkZGNlYjVmY2EzYzBm
YTExN2IyMTkuLmJiNTUzMWJiYTAwZTFjZWE5MGViNTQ3ZTAzZTA2NTViYjQ3MTQ1ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5o
CkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIElEQkVycm9yIHsKIHB1YmxpYzoKICAgICBJREJFcnJv
cigpIHsgfQogICAgIElEQkVycm9yKEV4Y2VwdGlvbkNvZGUpOwotICAgIElEQkVycm9yKEV4Y2Vw
dGlvbkNvZGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgSURC
RXJyb3IoRXhjZXB0aW9uQ29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKIAogICAgIHN0YXRp
YyBJREJFcnJvciB1c2VyRGVsZXRlRXJyb3IoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGE3ZTAzNDZmMDNkOWYxODkwMTRhNmU5ZDQ1
Yzk4MGJlMDlkMmUwMjIuLjJmOWJmMDllMGFkNDc3ODZkMjkwZTM4MWMwY2U5MDkzM2VmOWEzNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMTEw
MCw3ICsxMTAwLDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y2xlYXJDYWNoZWRDcmVkZW50aWFs
cygpCiB2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3MoKQogewog
I2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQotICAgIEFTU0VSVChtX3Byb2Nlc3Nlcy5pc0Vt
cHR5KCkpOwogICAgIGlmICghbV9kYXRhYmFzZVByb2Nlc3MpCiAgICAgICAgIHJldHVybjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCAx
NTg4Y2QzMzIzZGUwMWVhOTIwNjI5ZTc1OWFmYjJjNDUyNDUzMWNhLi5mNmY4MGQ1MjdiZTc5MzMy
OTdhY2Q4OTg1NGZlNTY3OTA2YjhkZmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIldlYlRv
RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSURCQ29ubmVj
dGlvblRvU2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJDdXJzb3JJbmZvLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SURCRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lEQkluZGV4SW5mby5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSURCS2V5UmFuZ2VEYXRhLmg+CkBAIC0zMTYsNiArMzE3LDExIEBAIHZvaWQgV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNh
bGxiYWNrSUQsIGNvbnN0CiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZEdldEFsbERhdGFi
YXNlTmFtZXMoY2FsbGJhY2tJRCwgZGF0YWJhc2VOYW1lcyk7CiB9CiAKK3ZvaWQgV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyOjpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCkKK3sKKyAgICBtX2Nvbm5l
Y3Rpb25Ub1NlcnZlci0+Y29ubmVjdGlvblRvU2VydmVyTG9zdCh7IFdlYkNvcmU6OklEQkRhdGFi
YXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQW4gaW50ZXJuYWwgZXJy
b3Igd2FzIGVuY291bnRlcmVkIGluIHRoZSBJbmRleGVkIERhdGFiYXNlIHNlcnZlciIpIH0pOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmlu
ZGV4IDI5ZDUwYTBkOWZiODZmMzQ3MWM3MTNiODZmNjQxNDA2MDNmZTRhOWMuLjBlNWM1MDVmZDVj
ZmViNzVjODVmYTMzZTFmYjU5MjMxM2NjNDRlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTk4LDYgKzk4LDggQEAgcHVibGljOgogCiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CiAKKyAgICB2b2lkIGNvbm5lY3Rpb25Ub1NlcnZlckxvc3QoKTsKKwogcHJpdmF0ZToK
ICAgICBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggZmQ1MWZkY2RlNDBhZTY3M2IzYzU5ZjNjODAxOTQ0
ZjMzNTE3NDAxZi4uYjcxZmM3N2E0NDhjYjFmYmViYjI2YzA2YTQwOTY5ZDJkMDA5MTA1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFz
ZVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC01Miw5ICs1Miw5
IEBAIHZvaWQgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3RpCiB7CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewotICAgICAg
ICBhdXRvIGl0ZXJhdG9yID0gbV93ZWJJREJDb25uZWN0aW9uc0J5SWRlbnRpZmllci5maW5kKGRl
Y29kZXIuZGVzdGluYXRpb25JRCgpKTsKLSAgICAgICAgaWYgKGl0ZXJhdG9yICE9IG1fd2ViSURC
Q29ubmVjdGlvbnNCeUlkZW50aWZpZXIuZW5kKCkpCi0gICAgICAgICAgICBpdGVyYXRvci0+dmFs
dWUtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBhdXRv
IGlkYkNvbm5lY3Rpb24gPSBtX3dlYklEQkNvbm5lY3Rpb25zQnlJZGVudGlmaWVyLmdldChkZWNv
ZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgICAgIGlmIChpZGJDb25uZWN0aW9uKQorICAgICAg
ICAgICAgaWRiQ29ubmVjdGlvbi0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKQEAgLTY0LDYgKzY0LDEyIEBAIHZv
aWQgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3RpCiAKIHZvaWQgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0
aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CisgICAgZm9yIChh
dXRvJiBjb25uZWN0aW9uIDogbV93ZWJJREJDb25uZWN0aW9uc0J5SWRlbnRpZmllci52YWx1ZXMo
KSkKKyAgICAgICAgY29ubmVjdGlvbi0+Y29ubmVjdGlvblRvU2VydmVyTG9zdCgpOworCisgICAg
bV93ZWJJREJDb25uZWN0aW9uc0J5SWRlbnRpZmllci5jbGVhcigpOworICAgIG1fd2ViSURCQ29u
bmVjdGlvbnNCeVNlc3Npb24uY2xlYXIoKTsKKwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LndlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE3ZDk2NzY4OTFi
YmY1YmVhMmU5M2I3YzZhZWI5OWNhZmNjNGY4NGEuLjJlNmZjYzM0Zjg2YzI0OGE2Y2Y1OGNlNTg5
NDUxOTU3ZmU3OWQ0ZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNy0wMyAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUHJvY2Vzc2VzIGRvbid0IGhhbmRsZSBEYXRh
YmFzZVByb2Nlc3MgZ29pbmcgYXdheSB1bmNsZWFubHkuLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9JbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbDogQWRkZWQu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCRGF0
YWJhc2VQcm9jZXNzS2lsbC5tbTogQWRkZWQuCisgICAgICAgICgtW0RhdGFiYXNlUHJvY2Vzc0tp
bGxOYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0pOgorICAg
ICAgICAoLVtEYXRhYmFzZVByb2Nlc3NLaWxsTWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250
cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOl0pOgorCiAyMDE2LTA3LTAxICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IExheW91dFRl
c3RSZWxheQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZmI0YjE1NGIwNWJhY2Y5MzFkODYy
YWY5OGE2N2MxMmE3ZTg0NDA4Li4wODBmMTU1ZDJmNWZjMTgxYmM5ZWM3NjJhNWU5NDU4ZDgwZWRk
YjBhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzEsNiArNzEsOCBAQAogCQk1MTcxNEVC
ODFDRjhDQTE3MDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3MTRFQjYxQ0Y4QzdBNDAw
NDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC5tbSAqLzsgfTsKIAkJNTE3RTdFMDQx
NTExMTlDMTAwRDBCMDA4IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxl
Z2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxN0U3RTAzMTUxMTE4NzUwMEQwQjAwOCAvKiBNZW1vcnlDYWNoZVBydW5lV2l0aGlu
UmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLzsgfTsKIAkJNTFBNTg3N0QxRDFCNDlDRDAwNEJB
OUFGIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0zLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBNTg3N0MxRDFCM0Q4RDAwNEJBOUFG
IC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0zLmh0bWwgKi87IH07CisJCTUxQTU4Nzg1MUQyNzM5
RTMwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE1ODc4MjFE
MjcyRUI1MDA0QkE5QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC0xLmh0bWwgKi87
IH07CisJCTUxQTU4Nzg2MUQyNzNBQTkwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nl
c3NLaWxsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFBNTg3ODQxRDI3MkVGMzAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwu
bW0gKi87IH07CiAJCTUxQjFFRTk2MUM4MEZBRUYwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0
ZW5jZS0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFCMUVFOTQxQzgwRkFERDAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNl
LTEuaHRtbCAqLzsgfTsKIAkJNTFCMUVFOTcxQzgwRkFFRjAwNjRGQjk4IC8qIEluZGV4ZWREQlBl
cnNpc3RlbmNlLTIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUIxRUU5NTFDODBGQUREMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lz
dGVuY2UtMi5odG1sICovOyB9OwogCQk1MUJDRUU0RTFDODRGNTNCMDA0MkM4MkUgLyogSW5kZXhl
ZERCTXVsdGlQcm9jZXNzLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUJDRUU0QzFDODRGNTJDMDA0MkM4MkUgLyogSW5kZXhlZERC
TXVsdGlQcm9jZXNzLTEuaHRtbCAqLzsgfTsKQEAgLTQ3MCw2ICs0NzIsNyBAQAogCQkJZHN0UGF0
aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDc7CiAJ
CQlmaWxlcyA9ICgKKwkJCQk1MUE1ODc4NTFEMjczOUUzMDA0QkE5QUYgLyogSW5kZXhlZERCRGF0
YWJhc2VQcm9jZXNzS2lsbC0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFBNTg3
N0QxRDFCNDlDRDAwNEJBOUFGIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0zLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJOTk4NEZBQ0UxQ0ZGQjA5MDAwOEQxOThDIC8qIGVkaXRhYmxl
LWJvZHkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MTcxNEVCNDFDRjhDNzhDMDA0
NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLTEuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKQEAgLTcwMCw2ICs3MDMsOCBAQAogCQk1MTdFN0RGQjE1MTEwRUE2MDBEMEIwMDggLyog
TWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291
cmNlTG9hZERlbGVnYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdFN0Uw
MzE1MTExODc1MDBEMEIwMDggLyogTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERl
bGVnYXRlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBNZW1vcnlDYWNoZVBydW5l
V2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTFBNTg3N0MxRDFCM0Q4RDAwNEJBOUFGIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0z
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiSW5kZXhlZERCTXVsdGlQcm9jZXNz
LTMuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQTU4NzgyMUQyNzJFQjUw
MDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9ICJJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQTU4Nzg0MUQyNzJFRjMwMDRCQTlBRiAv
KiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCMUVFOEQxQzgwRjU4ODAwNjRGQjk4IC8qIEluZGV4
ZWREQlBlcnNpc3RlbmNlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gSW5kZXhlZERCUGVyc2lzdGVuY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxQjFFRTk0MUM4MEZBREQwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS0xLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiSW5kZXhlZERCUGVyc2lzdGVuY2UtMS5odG1s
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCMUVFOTUxQzgwRkFERDAwNjRGQjk4
IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJJbmRleGVkREJQZXJzaXN0ZW5jZS0yLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTE1MSw2ICsxMTU2LDcgQEAKIAkJCQkyRDgxMDRDQjFCRUMxM0U3MDAyMERBNDYg
LyogRmluZEluUGFnZS5tbSAqLywKIAkJCQkyRDFGRTBBRjFBRDQ2NUMxMDA2Q0Q5RTYgLyogRml4
ZWRMYXlvdXRTaXplLm1tICovLAogCQkJCUNERTE5NUIzMUNGRTBBREUwMDUzRDI1NiAvKiBGdWxs
c2NyZWVuVG9wQ29udGVudEluc2V0Lm1tICovLAorCQkJCTUxQTU4Nzg0MUQyNzJFRjMwMDRCQTlB
RiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tICovLAogCQkJCTUxQkNFRTQ5MUM4
NEY0QUYwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MubW0gKi8sCiAJCQkJNTFCMUVF
OEQxQzgwRjU4ODAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLm1tICovLAogCQkJCTM3
RDM2RUQ2MUFGNDJFQ0QwMEJBRjVEOSAvKiBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZy5tbSAqLywK
QEAgLTEyNTcsNiArMTI2Myw3IEBACiAJCQkJNTcxNEVDQjgxQ0E4QjU4ODAwMDUxQUM4IC8qIERv
d25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgKi8sCiAJCQkJNTcxNEVDQkMxQ0E4QzIxODAw
MDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICovLAogCQkJCTU3MTRF
Q0JBMUNBOEJGRDEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0
bWwgKi8sCisJCQkJNTFBNTg3ODIxRDI3MkVCNTAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNl
UHJvY2Vzc0tpbGwtMS5odG1sICovLAogCQkJCTUxQkNFRTRDMUM4NEY1MkMwMDQyQzgyRSAvKiBJ
bmRleGVkREJNdWx0aVByb2Nlc3MtMS5odG1sICovLAogCQkJCTUxQkNFRTREMUM4NEY1MkMwMDQy
QzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMi5odG1sICovLAogCQkJCTUxQTU4NzdDMUQx
QjNEOEQwMDRCQTlBRiAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMy5odG1sICovLApAQCAtMjA5
NSw2ICsyMTAyLDcgQEAKIAkJCQk3Q0NFN0YyNDFBNDExQUY2MDA0NDdDNEMgLyogTmF2aWdhdGlv
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNEZDNTg4MUI4OTkxQkYwMEQxMDdFQiAvKiBDb250
ZW50RmlsdGVyaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDIxQTQxMUFFNjAwNDQ3
QzRDIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1MUE1ODc4NjFEMjczQUE5MDA0QkE5QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNz
S2lsbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjAzMUE0MTFBRTYwMDQ0N0M0QyAvKiBO
ZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlscy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3Q0NFN0YwNDFBNDExQUU2MDA0NDdDNEMgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9ySW1hZ2VzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc2NDMyMkQ3MUI2MUNDQzMwMDI0
RjgwMSAvKiBXb3JkQm91bmRhcnlUeXBpbmdBdHRyaWJ1dGVzLm1tIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVk
REJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL0luZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwtMS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFiNDI5OWJkODcyMWU0N2Y5ODYwMTdmNGJkZTkxYjQ2MjhlMDU1Y2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJE
YXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbApAQCAtMCwwICsxLDMzIEBACis8c2NyaXB0PgorCit2
YXIgZGF0YWJhc2U7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICB2YXIg
cmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoIkluZGV4ZWREQkRhdGFi
YXNlUHJvY2Vzc0tpbGwiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVz
c2FnZSgnRGVsZXRlUmVxdWVzdERvbmUnKTsKKyAgICB9CisgICAgcmVxdWVzdC5vbmVycm9yID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RI
YW5kbGVyLnBvc3RNZXNzYWdlKCdEZWxldGVSZXF1ZXN0RXJyb3InKTsKKyAgICB9CisKKyAgICBy
ZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NL
aWxsIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ09wZW5S
ZXF1ZXN0RG9uZScpOworICAgIH0KKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoJ09wZW5SZXF1ZXN0RXJyb3InKTsKKyAgICB9CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRhdGFiYXNlID0gZS50YXJnZXQucmVzdWx0
OworICAgICAgICBkYXRhYmFzZS5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBu
b3RpZnlEYXRhYmFzZUVycm9yUmVjZWl2ZWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgn
RGF0YWJhc2VFcnJvclJlY2VpdmVkJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXRU
aW1lb3V0KCJzZXRUaW1lb3V0KG5vdGlmeURhdGFiYXNlRXJyb3JSZWNlaXZlZCwgMCkiLCAwKTsK
KyAgICAgICAgfQorICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgnT3BlblJlcXVlc3RVcGdyYWRlTmVlZGVkJyk7CisgICAgfQorfQor
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL0luZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc1OWY5OGJlOWZlYmY2MWJjMmRjOThmZDFjMDVkNjZkNjRiYWQ0ZGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRl
eGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisj
aW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4K
KyNpbXBvcnQgPFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaD4KKyNpbXBv
cnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2Vi
S2l0L1dlYktpdC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKwor
c3RhdGljIGJvb2wgaXNEb25lV2l0aE5hdmlnYXRpb247CisKK0BpbnRlcmZhY2UgRGF0YWJhc2VQ
cm9jZXNzS2lsbE5hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxl
Z2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIERhdGFiYXNlUHJvY2Vzc0tpbGxOYXZpZ2F0
aW9uRGVsZWdhdGUKKworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZp
bmlzaE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24KK3sKKyAgICBpc0RvbmVX
aXRoTmF2aWdhdGlvbiA9IHRydWU7Cit9CisKK0BlbmQKKworc3RhdGljIGJvb2wgcmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlOworc3RhdGljIGJvb2wgcmVjZWl2ZWRBdExlYXN0T25lT3BlbkVycm9yOwor
c3RhdGljIGJvb2wgcmVjZWl2ZWRBdExlYXN0T25lRGVsZXRlRXJyb3I7CitzdGF0aWMgYm9vbCBv
cGVuUmVxdWVzdFVwZ3JhZGVOZWVkZWQ7CitzdGF0aWMgYm9vbCBkYXRhYmFzZUVycm9yUmVjZWl2
ZWQ7CisKK0BpbnRlcmZhY2UgRGF0YWJhc2VQcm9jZXNzS2lsbE1lc3NhZ2VIYW5kbGVyIDogTlNP
YmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBE
YXRhYmFzZVByb2Nlc3NLaWxsTWVzc2FnZUhhbmRsZXIKKworLSAodm9pZCl1c2VyQ29udGVudENv
bnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVy
IGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlCit7Cisg
ICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1ZTsKKworICAgIGlmIChbW21lc3NhZ2UgYm9k
eV0gaXNFcXVhbFRvU3RyaW5nOkAiRGF0YWJhc2VFcnJvclJlY2VpdmVkIl0pIHsKKyAgICAgICAg
ZGF0YWJhc2VFcnJvclJlY2VpdmVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGlmIChbW21lc3NhZ2UgYm9keV0gaXNFcXVhbFRvU3RyaW5nOkAiT3BlblJlcXVlc3RVcGdy
YWRlTmVlZGVkIl0pIHsKKyAgICAgICAgb3BlblJlcXVlc3RVcGdyYWRlTmVlZGVkID0gdHJ1ZTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChbW21lc3NhZ2UgYm9keV0gaXNFcXVh
bFRvU3RyaW5nOkAiRGVsZXRlUmVxdWVzdEVycm9yIl0pIHsKKyAgICAgICAgcmVjZWl2ZWRBdExl
YXN0T25lRGVsZXRlRXJyb3IgPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKFtbbWVzc2FnZSBib2R5XSBpc0VxdWFsVG9TdHJpbmc6QCJPcGVuUmVxdWVzdEVycm9yIl0p
CisgICAgICAgIHJlY2VpdmVkQXRMZWFzdE9uZU9wZW5FcnJvciA9IHRydWU7Cit9CisKK0BlbmQK
KworVEVTVChJbmRleGVkREIsIERhdGFiYXNlUHJvY2Vzc0tpbGwpCit7CisgICAgUmV0YWluUHRy
PERhdGFiYXNlUHJvY2Vzc0tpbGxNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tE
YXRhYmFzZVByb2Nlc3NLaWxsTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBSZXRh
aW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9u
IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5n
ZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiXTsKKworICAgIC8vIEFsbG93IGZpbGUgVVJMcyB0byBs
b2FkIG5vbi1maWxlIHJlc291cmNlcworICAgIFtjb25maWd1cmF0aW9uIF9zZXRBbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMczpZRVNdOworCisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4g
d2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7
CisKKyAgICBEYXRhYmFzZVByb2Nlc3NLaWxsTmF2aWdhdGlvbkRlbGVnYXRlICpkZWxlZ2F0ZSA9
IFtbRGF0YWJhc2VQcm9jZXNzS2lsbE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF07Cisg
ICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlXTsKKworICAgIE5TVVJM
UmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tp
bGwtMSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmVXaXRoTmF2aWdhdGlvbik7CisKKyAgICBi
b29sIGtpbGxlZERCUHJvY2VzcyA9IGZhbHNlOworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAg
IGlmIChkYXRhYmFzZUVycm9yUmVjZWl2ZWQpCisgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgICAgICBpZiAoIWtpbGxlZERC
UHJvY2VzcyAmJiBvcGVuUmVxdWVzdFVwZ3JhZGVOZWVkZWQpIHsKKyAgICAgICAgICAgIGtpbGxl
ZERCUHJvY2VzcyA9IHRydWU7CisgICAgICAgICAgICBbY29uZmlndXJhdGlvbi5nZXQoKS5wcm9j
ZXNzUG9vbCBfdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzXTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIEVYUEVDVF9FUShyZWNlaXZlZEF0TGVhc3RPbmVPcGVuRXJyb3IsIHRydWUpOworICAgIEVY
UEVDVF9FUShyZWNlaXZlZEF0TGVhc3RPbmVEZWxldGVFcnJvciwgdHJ1ZSk7CisgICAgRVhQRUNU
X0VRKGRhdGFiYXNlRXJyb3JSZWNlaXZlZCwgdHJ1ZSk7Cit9CisKKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>