<?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>177580</bug_id>
          
          <creation_ts>2017-09-27 16:21:16 -0700</creation_ts>
          <short_desc>REGRESSION(r222541): WebCore isn&apos;t ready for the asynchronousness this was going to enable (Requested by alexchristensen on #webkit).</short_desc>
          <delta_ts>2017-09-27 16:26:23 -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>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>177509</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>achristensen</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1353912</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-27 16:21:16 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/222541 broke the build:
WebCore isn&apos;t ready for the asynchronousness this was going to enable (Requested by alexchristensen on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353914</commentid>
    <comment_count>1</comment_count>
      <attachid>322037</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-27 16:21:29 -0700</bug_when>
    <thetext>Created attachment 322037
ROLLOUT of r222541

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353917</commentid>
    <comment_count>2</comment_count>
      <attachid>322037</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-27 16:25:10 -0700</bug_when>
    <thetext>Comment on attachment 322037
ROLLOUT of r222541

Clearing flags on attachment: 322037

Committed r222583: &lt;http://trac.webkit.org/changeset/222583&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353918</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-27 16:25:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353920</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 16:26:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/34701209&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322037</attachid>
            <date>2017-09-27 16:21:29 -0700</date>
            <delta_ts>2017-09-27 16:25:10 -0700</delta_ts>
            <desc>ROLLOUT of r222541</desc>
            <filename>bug-177580-20170927192128.patch</filename>
            <type>text/plain</type>
            <size>70813</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkMjAzOTY2ODA5MDEwYmI0
MmI3MGY0NTY2MDg1YmI2YjU0ZTc1ZWEuLmM5NTcyNWE4NDU1NzBlMGEwNGRhZTYwYzc3ZmI0ZmU2
OWJlMzJhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTctMDktMjcgIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMjI1NDEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzc1ODAKKworICAgICAgICBXZWJDb3JlIGlzbid0IHJlYWR5IGZvciB0aGUg
YXN5bmNocm9ub3VzbmVzcyB0aGlzIHdhcyBnb2luZyB0bworICAgICAgICBlbmFibGUgKFJlcXVl
c3RlZCBieSBhbGV4Y2hyaXN0ZW5zZW4gb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQg
Y2hhbmdlc2V0OgorCisgICAgICAgICJQYXNzIGEgY29tcGxldGlvbiBoYW5kbGVyIGluc3RlYWQg
b2YgYQorICAgICAgICBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkgZHVyaW5nIHBvbGljeSBk
ZWNpc2lvbnMiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzc1MDkKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjIyNTQx
CisKIDIwMTctMDktMjcgIFRpbmEgTGl1ICA8aXRpbmdfbGl1QGFwcGxlLmNvbT4KIAogICAgICAg
ICBFeHBvc2Ugc2V0U2hvdWxkU3VwcHJlc3NGaXJzdFJlc3BvbmRlckNoYW5nZXMoKSBhcyBXS1Zp
ZXcgU1BJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCAwMmMzMmJlZWU2MjBjYjcxMmM2OTFlZDVmYmNj
Mjk5NDY3MGI4ZGE2Li4wZTM2YjEzYzZhNTA1OWMwY2FjOTQ4ZDc4ZDE3MzZiMjg3Yzk3NzY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQKQEAgLTMxMyw2ICszMTMsNyBAQCBzZXQoV2ViS2l0X1NPVVJDRVMK
ICAgICBVSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2Vi
Rm9ybUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclBy
b3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwCiAgICAgVUlQ
cm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2Vi
RnJhbWVQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9u
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVu
dC5oCmluZGV4IGEzODFjOWRlMGIzYWRkOTA0NTFhYjdlYTYxYzRmNjFhNjNhMGFhMzguLjYxZGM3
MWRkOGZmYzI5YTRhMmVhMDVlZTVmZWJjOTE2MjIxYzc3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaApAQCAtMjYsMTEgKzI2LDEx
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSURhdGEuaCIKLSNpbmNsdWRlICJEb3du
bG9hZElELmgiCiAjaW5jbHVkZSAiUGx1Z2luTW9kdWxlSW5mby5oIgogI2luY2x1ZGUgIlByb2Nl
c3NUZXJtaW5hdGlvblJlYXNvbi5oIgogI2luY2x1ZGUgIlNhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxp
c3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJzaXRlUG9saWNpZXMuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xheW91dE1pbGVz
dG9uZXMuaD4KQEAgLTQwLDE1ICs0MCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBS
ZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNw
b25zZTsKLWNsYXNzIFVSTDsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiB9CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKLWNsYXNz
IERvd25sb2FkSUQ7CiBjbGFzcyBRdWlja0xvb2tEb2N1bWVudERhdGE7CiBjbGFzcyBXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtOworY2xhc3MgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OwogY2xh
c3MgV2ViRnJhbWVQcm94eTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlByb3RlY3Rp
b25TcGFjZTsKQEAgLTk3LDE0ICs5NiwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lKGNvbnN0IFdlYktpdDo6
UXVpY2tMb29rRG9jdW1lbnREYXRhJikgeyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgUmVm
PE5hdmlnYXRpb25BY3Rpb24+JiYsIEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6UG9saWN5QWN0aW9u
LCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzPiYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlciwgT2JqZWN0KikKKyAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFJlZjxOYXZpZ2F0aW9uQWN0aW9uPiYm
LCBSZWY8V2ViS2l0OjpXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+JiYgbGlzdGVuZXIsIE9i
amVjdCopCiAgICAgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpQb2xpY3lB
Y3Rpb246OlVzZSwgc3RkOjpudWxsb3B0KTsKKyAgICAgICAgbGlzdGVuZXItPnVzZSh7IH0pOwog
ICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9u
c2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBOYXZpZ2F0aW9uUmVzcG9uc2UmLCBGdW5jdGlvbjx2
b2lkKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQ
b2xpY2llcz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIsIE9iamVjdCopCisgICAgdmlydHVhbCB2
b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZShXZWJLaXQ6OldlYlBhZ2VQcm94
eSYsIE5hdmlnYXRpb25SZXNwb25zZSYsIFJlZjxXZWJLaXQ6OldlYkZyYW1lUG9saWN5TGlzdGVu
ZXJQcm94eT4mJiBsaXN0ZW5lciwgT2JqZWN0KikKICAgICB7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OlBvbGljeUFjdGlvbjo6VXNlLCBzdGQ6Om51bGxvcHQpOworICAgICAg
ICBsaXN0ZW5lci0+dXNlKHsgfSk7CiAgICAgfQogICAgIAogI2lmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBv
bGljeUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBvbGljeUNsaWVu
dC5oCmluZGV4IDc3YjQ4OTRlZmJhMGRhMmViNTQxMGJiZTcwN2M4MTM1NzM5YmU4MTkuLmExMmU3
OTcwYzkzOWZkN2M2NDI1MjM4OTkwMzQ4ODFmOTVmZGViYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQb2xpY3lDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUG9saWN5Q2xpZW50LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJGcmFtZVBvbGlj
eUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJzaXRlUG9saWNpZXMuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpA
QCAtMzcsMTAgKzM4LDEwIEBAIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewotY2xhc3MgRG93bmxvYWRJRDsKIHN0cnVjdCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CitjbGFzcyBXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHk7CiB9CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtNTAsMTcg
KzUxLDE3IEBAIGNsYXNzIFBvbGljeUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UG9s
aWN5Q2xpZW50KCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSos
IGNvbnN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEmLCBXZWJLaXQ6OldlYkZyYW1lUHJv
eHkqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgc3RkOjpv
cHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llcz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIs
IEFQSTo6T2JqZWN0KikKKyAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNv
bnN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkq
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBSZWY8V2ViS2l0OjpXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+JiYgbGlz
dGVuZXIsIEFQSTo6T2JqZWN0KikKICAgICB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdl
YkNvcmU6OlBvbGljeUFjdGlvbjo6VXNlLCBzdGQ6Om51bGxvcHQpOworICAgICAgICBsaXN0ZW5l
ci0+dXNlKHsgfSk7CiAgICAgfQotICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdX
aW5kb3dBY3Rpb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkm
LCBjb25zdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6
OlBvbGljeUFjdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llcz4mJik+
JiYgY29tcGxldGlvbkhhbmRsZXIsIEFQSTo6T2JqZWN0KikKKyAgICB2aXJ0dWFsIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0
OjpXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdURjo6U3RyaW5nJiwgUmVmPFdl
YktpdDo6V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiYmIGxpc3RlbmVyLCBBUEk6Ok9iamVj
dCopCiAgICAgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpQb2xpY3lBY3Rp
b246OlVzZSwgc3RkOjpudWxsb3B0KTsKKyAgICAgICAgbGlzdGVuZXItPnVzZSh7IH0pOwogICAg
IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCwgRnVuY3Rp
b248dm9pZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJz
aXRlUG9saWNpZXM+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBBUEk6Ok9iamVjdCopCisgICAg
dmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wsIFJlZjxXZWJLaXQ6Oldl
YkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4mJiBsaXN0ZW5lciwgQVBJOjpPYmplY3QqKQogICAg
IHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6UG9saWN5QWN0aW9uOjpVc2Us
IHN0ZDo6bnVsbG9wdCk7CisgICAgICAgIGxpc3RlbmVyLT51c2UoeyB9KTsKICAgICB9CiAgICAg
dmlydHVhbCB2b2lkIHVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYs
IEFQSTo6T2JqZWN0KikgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tGcmFtZVBvbGljeUxpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAKaW5kZXggYjRlZGRmZmIxMDc2NjRh
MWQzYjNiYzc1NmY5NGJhODIxNDcwMTY1NC4uYjY1NGJlYjhiOGUzYzNhZGY1YjkwZmMwMDFjNmIz
Mzc2MmVhNjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tG
cmFtZVBvbGljeUxpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuY3BwCkBAIC00NCwxMCArNDQsOSBAQCB2b2lkIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lclVzZShXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgcG9saWN5TGlzdGVu
ZXJSZWYpCiAgICAgdG9JbXBsKHBvbGljeUxpc3RlbmVyUmVmKS0+dXNlKHsgfSk7CiB9CiAKLXZv
aWQgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzKFdLRnJhbWVQb2xpY3lMaXN0
ZW5lclJlZiBwb2xpY3lMaXN0ZW5lclJlZiwgV0tXZWJzaXRlUG9saWNpZXNSZWYgd2Vic2l0ZVBv
bGljaWVzUmVmKQordm9pZCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VXaXRoUG9saWNpZXMoV0tG
cmFtZVBvbGljeUxpc3RlbmVyUmVmIHBvbGljeUxpc3RlbmVyUmVmLCBXS1dlYnNpdGVQb2xpY2ll
c1JlZiB3ZWJzaXRlUG9saWNpZXMpCiB7Ci0gICAgYXV0byB3ZWJzaXRlUG9saWNpZXMgPSB0b0lt
cGwod2Vic2l0ZVBvbGljaWVzUmVmKS0+d2Vic2l0ZVBvbGljaWVzKCk7Ci0gICAgdG9JbXBsKHBv
bGljeUxpc3RlbmVyUmVmKS0+dXNlKFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CisgICAgdG9J
bXBsKHBvbGljeUxpc3RlbmVyUmVmKS0+dXNlKHRvSW1wbCh3ZWJzaXRlUG9saWNpZXMpLT53ZWJz
aXRlUG9saWNpZXMoKSk7CiB9CiAKIHZvaWQgV0tGcmFtZVBvbGljeUxpc3RlbmVyRG93bmxvYWQo
V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIHBvbGljeUxpc3RlbmVyUmVmKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggZmQ2NjM3ZjNlMWExZmEwNDk2NWViMWM2
NzVkZDA4YzFkM2NjMGU4Zi4uMTA4ODYxMjNhZTU4Y2VmZTk0MDY3N2VlZjY1ODkzYTg3NTc1MTRk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0zOCw3ICsz
OCw2IEBACiAjaW5jbHVkZSAiQVBJR2VvbWV0cnkuaCIKICNpbmNsdWRlICJBUElIaXRUZXN0UmVz
dWx0LmgiCiAjaW5jbHVkZSAiQVBJTG9hZGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiQVBJTmF2aWdh
dGlvbi5oIgogI2luY2x1ZGUgIkFQSU5hdmlnYXRpb25BY3Rpb24uaCIKICNpbmNsdWRlICJBUElO
YXZpZ2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvblJlc3BvbnNlLmgiCkBA
IC02Myw3ICs2Miw2IEBACiAjaW5jbHVkZSAiV0tQbHVnaW5JbmZvcm1hdGlvbi5oIgogI2luY2x1
ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2luY2x1ZGUgIldlYkZvcm1DbGllbnQuaCIKLSNp
bmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJJbWFn
ZS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIgpAQCAtMTM1MCwxNCArMTM0OCwxMyBAQCB2b2lkIFdL
UGFnZVNldFBhZ2VQb2xpY3lDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVBv
bGljeUNsaWVudEJhc2UqCiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZy
YW1lUHJveHkqIGZyYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIFdlYkZyYW1lUHJveHkqIG9yaWdpbmF0aW5nRnJhbWUsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6
OlBvbGljeUFjdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llcz4mJik+
JiYgY29tcGxldGlvbkhhbmRsZXIsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGUKKyAg
ICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQcm94eSYg
cGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb25EYXRhJiBu
YXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViRnJhbWVQcm94eSogb3JpZ2luYXRpbmdGcmFtZSwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlc291cmNlUmVxdWVzdCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFJlZjxXZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHk+JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkg
b3ZlcnJpZGUKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgJiYgIW1fY2xpZW50
LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25fZGVwcmVjYXRlZEZvclVzZVdpdGhWMSAm
JiAhbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbikgewotICAgICAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OlBvbGljeUFjdGlvbjo6VXNlLCBzdGQ6
Om51bGxvcHQpOworICAgICAgICAgICAgICAgIGxpc3RlbmVyLT51c2UoeyB9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGF1dG8gbGlzdGVu
ZXIgPSBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiAgICAgICAgICAgICBSZWY8QVBJOjpVUkxSZXF1ZXN0PiBvcmlnaW5hbFJl
cXVlc3QgPSBBUEk6OlVSTFJlcXVlc3Q6OmNyZWF0ZShvcmlnaW5hbFJlc291cmNlUmVxdWVzdCk7
CiAgICAgICAgICAgICBSZWY8QVBJOjpVUkxSZXF1ZXN0PiByZXF1ZXN0ID0gQVBJOjpVUkxSZXF1
ZXN0OjpjcmVhdGUocmVzb3VyY2VSZXF1ZXN0KTsKIApAQCAtMTM2OSwyNyArMTM2NiwyNSBAQCB2
b2lkIFdLUGFnZVNldFBhZ2VQb2xpY3lDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdL
UGFnZVBvbGljeUNsaWVudEJhc2UqCiAgICAgICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih0b0FQSSgmcGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEko
bmF2aWdhdGlvbkFjdGlvbkRhdGEubmF2aWdhdGlvblR5cGUpLCB0b0FQSShuYXZpZ2F0aW9uQWN0
aW9uRGF0YS5tb2RpZmllcnMpLCB0b0FQSShuYXZpZ2F0aW9uQWN0aW9uRGF0YS5tb3VzZUJ1dHRv
biksIHRvQVBJKG9yaWdpbmF0aW5nRnJhbWUpLCB0b0FQSShvcmlnaW5hbFJlcXVlc3QucHRyKCkp
LCB0b0FQSShyZXF1ZXN0LnB0cigpKSwgdG9BUEkobGlzdGVuZXIucHRyKCkpLCB0b0FQSSh1c2Vy
RGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICB2
b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
YkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24s
IHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXM+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQ
cm94eSYgZnJhbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb25EYXRhJiBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCBSZWY8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiYmIGxpc3RlbmVy
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAg
IGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKSB7Ci0gICAgICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6UG9saWN5QWN0aW9uOjpVc2UsIHN0
ZDo6bnVsbG9wdCk7CisgICAgICAgICAgICAgICAgbGlzdGVuZXItPnVzZSh7IH0pOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byBsaXN0
ZW5lciA9IFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTo6Y3JlYXRlKFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKICAgICAgICAgICAgIFJlZjxBUEk6OlVSTFJlcXVlc3Q+IHJlcXVlc3Qg
PSBBUEk6OlVSTFJlcXVlc3Q6OmNyZWF0ZShyZXNvdXJjZVJlcXVlc3QpOwogCiAgICAgICAgICAg
ICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odG9BUEkoJnBhZ2UpLCB0
b0FQSSgmZnJhbWUpLCB0b0FQSShuYXZpZ2F0aW9uQWN0aW9uRGF0YS5uYXZpZ2F0aW9uVHlwZSks
IHRvQVBJKG5hdmlnYXRpb25BY3Rpb25EYXRhLm1vZGlmaWVycyksIHRvQVBJKG5hdmlnYXRpb25B
Y3Rpb25EYXRhLm1vdXNlQnV0dG9uKSwgdG9BUEkocmVxdWVzdC5wdHIoKSksIHRvQVBJKGZyYW1l
TmFtZS5pbXBsKCkpLCB0b0FQSShsaXN0ZW5lci5wdHIoKSksIHRvQVBJKHVzZXJEYXRhKSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFt
ZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzb3VyY2VSZXNwb25zZSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBGdW5jdGlv
bjx2b2lkKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNp
dGVQb2xpY2llcz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIsIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSkgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJQYWdl
UHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNvdXJjZVJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFJlZjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+
JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGUKICAgICAgICAgewog
ICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZV9kZXByZWNh
dGVkRm9yVXNlV2l0aFYwICYmICFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSkgewot
ICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OlBvbGljeUFjdGlvbjo6
VXNlLCBzdGQ6Om51bGxvcHQpOworICAgICAgICAgICAgICAgIGxpc3RlbmVyLT51c2UoeyB9KTsK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGF1
dG8gbGlzdGVuZXIgPSBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk6OmNyZWF0ZShXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgICAgICBSZWY8QVBJOjpVUkxSZXNwb25zZT4g
cmVzcG9uc2UgPSBBUEk6OlVSTFJlc3BvbnNlOjpjcmVhdGUocmVzb3VyY2VSZXNwb25zZSk7CiAg
ICAgICAgICAgICBSZWY8QVBJOjpVUkxSZXF1ZXN0PiByZXF1ZXN0ID0gQVBJOjpVUkxSZXF1ZXN0
OjpjcmVhdGUocmVzb3VyY2VSZXF1ZXN0KTsKIApAQCAtMjE0NSwyMyArMjE0MCwyMSBAQCB2b2lk
IFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBX
S1BhZ2VOYXZpZ2F0aW9uQ2xpZQogICAgICAgICB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2
b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBS
ZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24sIEZ1bmN0aW9uPHZv
aWQoV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBv
bGljaWVzPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBm
aW5hbAorICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFn
ZVByb3h5JiBwYWdlLCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rp
b24sIFJlZjxXZWJLaXQ6OldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4mJiBsaXN0ZW5lciwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo
IW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pIHsKLSAgICAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpQb2xpY3lBY3Rpb246OlVzZSwgc3RkOjpu
dWxsb3B0KTsKKyAgICAgICAgICAgICAgICBsaXN0ZW5lci0+dXNlKHsgfSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXV0byBsaXN0ZW5lciA9
IFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKICAgICAgICAgICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24odG9BUEkoJnBhZ2UpLCB0b0FQSShuYXZpZ2F0aW9uQWN0aW9uLnB0cigpKSwgdG9BUEko
bGlzdGVuZXIucHRyKCkpLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25S
ZXNwb25zZShXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6TmF2aWdhdGlvblJlc3BvbnNlJiBuYXZp
Z2F0aW9uUmVzcG9uc2UsIEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBzdGQ6
Om9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
ciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQorICAgICAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25SZXNwb25zZShXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6TmF2aWdh
dGlvblJlc3BvbnNlJiBuYXZpZ2F0aW9uUmVzcG9uc2UsIFJlZjxXZWJLaXQ6OldlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eT4mJiBsaXN0ZW5lciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVy
cmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25SZXNwb25zZSkgewotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdlYkNvcmU6OlBvbGljeUFjdGlvbjo6VXNlLCBzdGQ6Om51bGxvcHQpOworICAgICAgICAgICAg
ICAgIGxpc3RlbmVyLT51c2UoeyB9KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBhdXRvIGxpc3RlbmVyID0gV2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5OjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICAgICAg
bV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlKHRvQVBJKCZwYWdlKSwg
dG9BUEkoJm5hdmlnYXRpb25SZXNwb25zZSksIHRvQVBJKGxpc3RlbmVyLnB0cigpKSwgdG9BUEko
dXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCmluZGV4IDEwNmZhYzM2NTY1MDVjOGZhYTA4NDhjNDJh
MGQ2OGRiYjAzNDM1NGEuLmI3ZTVlNjkyYzgzMDY3MmJlMDBlMWU2MTA4NWYzNWVkYjM0Zjk3YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQpAQCAtMjksNyArMjksNiBAQAogI2lm
IFdLX0FQSV9FTkFCTEVECiAKICNpbXBvcnQgIkFQSURhdGEuaCIKLSNpbXBvcnQgIkFQSU5hdmln
YXRpb24uaCIKICNpbXBvcnQgIk9iakNPYmplY3RHcmFwaC5oIgogI2ltcG9ydCAiUGFnZUxvYWRT
dGF0ZU9ic2VydmVyLmgiCiAjaW1wb3J0ICJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UG9saWN5Q2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFBvbGljeUNsaWVu
dC5jcHAKaW5kZXggMzg5ODZhNDk1YjcyMmQ0OTlkZjYyOTUwMGIyYzE2ODIyNWI5YWFiYi4uNzhj
MGQ1ZWRmNGRmZTYwNjcwMDQzYzA2N2E2MTQzNDZjNjdhMjg5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UG9saWN5Q2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQb2xpY3lDbGllbnQuY3BwCkBA
IC0zOCwyMyArMzgsMjAgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94
eSosIGNvbnN0IE5hdmlnYXRpb25BY3Rpb25EYXRhJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2Vi
RnJhbWVQcm94eSogLypvcmlnaW5hdGluZ0ZyYW1lKi8sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgLypvcmlnaW5hbFJlcXVlc3QqLywgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgc3RkOjpv
cHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llcz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIs
IEFQSTo6T2JqZWN0KiAvKnVzZXJEYXRhKi8pIG92ZXJyaWRlCisgICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkqLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkZyYW1lUHJv
eHkqIC8qb3JpZ2luYXRpbmdGcmFtZSovLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IC8qb3JpZ2luYWxSZXF1ZXN0Ki8sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgUmVmPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4mJiBsaXN0ZW5lciwgQVBJOjpP
YmplY3QqIC8qdXNlckRhdGEqLykgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGF1dG8gbGlzdGVu
ZXIgPSBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiAgICAgICAgIEdSZWZQdHI8V2ViS2l0UG9saWN5RGVjaXNpb24+IGRlY2lz
aW9uID0gYWRvcHRHUmVmKHdlYmtpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkNyZWF0ZShuYXZp
Z2F0aW9uQWN0aW9uRGF0YSwgcmVxdWVzdCwgbGlzdGVuZXIucHRyKCkpKTsKICAgICAgICAgd2Vi
a2l0V2ViVmlld01ha2VQb2xpY3lEZWNpc2lvbihtX3dlYlZpZXcsIFdFQktJVF9QT0xJQ1lfREVD
SVNJT05fVFlQRV9OQVZJR0FUSU9OX0FDVElPTiwgZGVjaXNpb24uZ2V0KCkpOwogICAgIH0KIAot
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYlBhZ2VQcm94eSYsIFdl
YkZyYW1lUHJveHkmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYgbmF2aWdhdGlvbkFjdGlv
bkRhdGEsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Ry
aW5nJiBmcmFtZU5hbWUsIEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBzdGQ6
Om9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
ciwgQVBJOjpPYmplY3QqIC8qdXNlckRhdGEqLykgb3ZlcnJpZGUKKyAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBS
ZWY8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiYmIGxpc3RlbmVyLCBBUEk6Ok9iamVjdCog
Lyp1c2VyRGF0YSovKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgYXV0byBsaXN0ZW5lciA9IFdl
YkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKICAgICAgICAgR1JlZlB0cjxXZWJLaXRQb2xpY3lEZWNpc2lvbj4gZGVjaXNpb24gPSBh
ZG9wdEdSZWYod2Via2l0TmV3V2luZG93UG9saWN5RGVjaXNpb25DcmVhdGUobmF2aWdhdGlvbkFj
dGlvbkRhdGEsIHJlcXVlc3QsIGZyYW1lTmFtZSwgbGlzdGVuZXIucHRyKCkpKTsKICAgICAgICAg
d2Via2l0V2ViVmlld01ha2VQb2xpY3lEZWNpc2lvbihtX3dlYlZpZXcsIFdFQktJVF9QT0xJQ1lf
REVDSVNJT05fVFlQRV9ORVdfV0lORE9XX0FDVElPTiwgZGVjaXNpb24uZ2V0KCkpOwogICAgIH0K
IAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViUGFnZVByb3h5JiwgV2ViRnJh
bWVQcm94eSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBl
LCBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJL
aXQ6OldlYnNpdGVQb2xpY2llcz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIsIEFQSTo6T2JqZWN0
KiAvKnVzZXJEYXRhKi8pIG92ZXJyaWRlCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFJlZjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+
JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0KiAvKnVzZXJEYXRhKi8pIG92ZXJyaWRlCiAgICAgewot
ICAgICAgICBhdXRvIGxpc3RlbmVyID0gV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OjpjcmVh
dGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICBHUmVmUHRyPFdlYktpdFBv
bGljeURlY2lzaW9uPiBkZWNpc2lvbiA9IGFkb3B0R1JlZih3ZWJraXRSZXNwb25zZVBvbGljeURl
Y2lzaW9uQ3JlYXRlKHJlcXVlc3QsIHJlc3BvbnNlLCBjYW5TaG93TUlNRVR5cGUsIGxpc3RlbmVy
LnB0cigpKSk7CiAgICAgICAgIHdlYmtpdFdlYlZpZXdNYWtlUG9saWN5RGVjaXNpb24obV93ZWJW
aWV3LCBXRUJLSVRfUE9MSUNZX0RFQ0lTSU9OX1RZUEVfUkVTUE9OU0UsIGRlY2lzaW9uLmdldCgp
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXcuY3BwCmluZGV4IGJmNmFjZmVhNmRkNmZlYjNiZGVhMTYyYzJjNzgwNTVkOWVkMTc2
ZjkuLjBjMTc5ODNiZWQ1OTI1YmI3Njg4Njk5MTU1MDczM2Y1ZjdlN2M0MGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0y
Myw3ICsyMyw2IEBACiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlldy5oIgogCiAjaW5jbHVkZSAiQVBJ
RGF0YS5oIgotI2luY2x1ZGUgIkFQSU5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJBUElTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJJbWFnZU9wdGlvbnMuaCIKICNpbmNsdWRlICJX
ZWJDZXJ0aWZpY2F0ZUluZm8uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggM2M3Njc0ZWY5
MDhlNmRiMGVhZmUyN2Y0ZDhlN2QzZTRhNDNjN2Y4Zi4uODQ5NGQ4ODRmMDk3NjM2NzRmM2JlNjM0
YWI1ZjA2M2I0Zjg2N2I0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTI4LDcgKzI4LDYg
QEAKIAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVkZSAiQVBJQXV0b21hdGlvblNlc3Np
b25DbGllbnQuaCIKLSNpbmNsdWRlICJBUElOYXZpZ2F0aW9uLmgiCiAjaW5jbHVkZSAiQVBJT3Bl
blBhbmVsUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMu
aCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAppbmRleCAwZDFlZjg3YmU3
ODc5NTg2MmUxNjc5YmY1Yjg4ZjIyNDQyZjA4NmEwLi44MDc4NjBiMWFkNGNjYzM4MDc4MDYwMzcy
NjAwMTc4NTA5ZmZjM2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9O
YXZpZ2F0aW9uU3RhdGUuaApAQCAtMTIxLDggKzEyMSw4IEBAIHByaXZhdGU6CiAgICAgICAgIHZv
aWQgcmVzb2x2ZVdlYkdMTG9hZFBvbGljeShXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpV
UkwmLCBXVEY6OkZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgICAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVByb3h5JiwgUmVmPEFQSTo6TmF2aWdh
dGlvbkFjdGlvbj4mJiwgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIHN0ZDo6
b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzPiYmKT4mJiwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBv
dmVycmlkZTsKLSAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2Uo
V2ViUGFnZVByb3h5JiwgQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2UmLCBGdW5jdGlvbjx2b2lkKFdl
YkNvcmU6OlBvbGljeUFjdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXM+JiYpPiYm
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVByb3h5JiwgUmVmPEFQSTo6TmF2aWdhdGlv
bkFjdGlvbj4mJiwgUmVmPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4mJiwgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uUmVzcG9uc2UoV2ViUGFnZVByb3h5JiwgQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2UmLCBS
ZWY8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiYmLCBBUEk6Ok9iamVjdCogdXNlckRhdGEp
IG92ZXJyaWRlOwogCiAgICAgICAgIE5hdmlnYXRpb25TdGF0ZSYgbV9uYXZpZ2F0aW9uU3RhdGU7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmln
YXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5tbQppbmRleCAzMmEzMmMxOWZkOGNiN2Q3ZTEyNThhNjlmM2RjNzVlZjkzODI2ZjFkLi5h
OTFhZmI0MmI3M2FiYjhkNDg2MTY0OGUxYjZmMDRhZjc3MTRhYmUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC0zNjAsMzEgKzM2
MCwzMiBAQCBzdGF0aWMgdm9pZCB0cnlBcHBMaW5rKFJlZlB0cjxBUEk6Ok5hdmlnYXRpb25BY3Rp
b24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgY29uc3QgUwogI2VuZGlmCiB9CiAKLXZvaWQgTmF2aWdh
dGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9u
PiYmIG5hdmlnYXRpb25BY3Rpb24sIEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6UG9saWN5QWN0aW9u
LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llcz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIs
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9u
Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQcm94eSYgd2Vi
UGFnZVByb3h5LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24s
IFJlZjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0
KiB1c2VyRGF0YSkKIHsKICAgICBTdHJpbmcgbWFpbkZyYW1lVVJMU3RyaW5nID0gd2ViUGFnZVBy
b3h5Lm1haW5GcmFtZSgpLT51cmwoKTsKIAogICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9u
YXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uRGVjaXNpb25IYW5kbGVyCiAgICAgICAgICYmICFtX25hdmlnYXRpb25TdGF0ZS5tX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMpIHsKICAgICAgICAgUmVmPEFQSTo6
TmF2aWdhdGlvbkFjdGlvbj4gbG9jYWxOYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFjdGlv
bi5jb3B5UmVmKCk7CisgICAgICAgIFJlZlB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+
IGxvY2FsTGlzdGVuZXIgPSBXVEZNb3ZlKGxpc3RlbmVyKTsKIAotICAgICAgICB0cnlBcHBMaW5r
KFdURk1vdmUobG9jYWxOYXZpZ2F0aW9uQWN0aW9uKSwgbWFpbkZyYW1lVVJMU3RyaW5nLCBbd2Vi
UGFnZSA9IFJlZlB0cjxXZWJQYWdlUHJveHk+KCZ3ZWJQYWdlUHJveHkpLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBsb2NhbE5hdmlnYXRpb25BY3Rpb24g
PSBuYXZpZ2F0aW9uQWN0aW9uLmNvcHlSZWYoKV0gKGJvb2wgZm9sbG93ZWRMaW5rVG9BcHApIHsK
KyAgICAgICAgdHJ5QXBwTGluayhXVEZNb3ZlKGxvY2FsTmF2aWdhdGlvbkFjdGlvbiksIG1haW5G
cmFtZVVSTFN0cmluZywgW3dlYlBhZ2UgPSBSZWZQdHI8V2ViUGFnZVByb3h5Pigmd2ViUGFnZVBy
b3h5KSwgbG9jYWxMaXN0ZW5lciwgbG9jYWxOYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFj
dGlvbi5jb3B5UmVmKCldIChib29sIGZvbGxvd2VkTGlua1RvQXBwKSB7CiAgICAgICAgICAgICBp
ZiAoZm9sbG93ZWRMaW5rVG9BcHApIHsKLSAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihQb2xpY3lBY3Rpb246Oklnbm9yZSwgc3RkOjpudWxsb3B0KTsKKyAgICAgICAgICAgICAgICBs
b2NhbExpc3RlbmVyLT5pZ25vcmUoKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGlmICghbG9jYWxOYXZpZ2F0aW9uQWN0aW9uLT50YXJnZXRG
cmFtZSgpKSB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9u
OjpVc2UsIHN0ZDo6bnVsbG9wdCk7CisgICAgICAgICAgICAgICAgbG9jYWxMaXN0ZW5lci0+dXNl
KHsgfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICBSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0PiBuc1VSTFJlcXVlc3QgPSBhZG9wdE5TKHdyYXBw
ZXIoQVBJOjpVUkxSZXF1ZXN0OjpjcmVhdGUobG9jYWxOYXZpZ2F0aW9uQWN0aW9uLT5yZXF1ZXN0
KCkpLmxlYWtSZWYoKSkpOwogICAgICAgICAgICAgaWYgKFtOU1VSTENvbm5lY3Rpb24gY2FuSGFu
ZGxlUmVxdWVzdDpuc1VSTFJlcXVlc3QuZ2V0KCldIHx8IHdlYlBhZ2UtPnVybFNjaGVtZUhhbmRs
ZXJGb3JTY2hlbWUoW25zVVJMUmVxdWVzdCBVUkxdLnNjaGVtZSkpIHsKICAgICAgICAgICAgICAg
ICBpZiAobG9jYWxOYXZpZ2F0aW9uQWN0aW9uLT5zaG91bGRQZXJmb3JtRG93bmxvYWQoKSkKLSAg
ICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpEb3dubG9h
ZCwgc3RkOjpudWxsb3B0KTsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxMaXN0ZW5lci0+ZG93
bmxvYWQoKTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6VXNlLCBzdGQ6Om51bGxvcHQpOworICAgICAgICAg
ICAgICAgICAgICBsb2NhbExpc3RlbmVyLT51c2UoeyB9KTsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAKQEAgLTM5NCw3ICszOTUsNyBAQCB2b2lkIE5hdmlnYXRpb25T
dGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihX
ZWJQYWdlUAogICAgICAgICAgICAgaWYgKCFbW25zVVJMUmVxdWVzdCBVUkxdIGlzRmlsZVVSTF0p
CiAgICAgICAgICAgICAgICAgW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG9wZW5VUkw6
W25zVVJMUmVxdWVzdCBVUkxdXTsKICNlbmRpZgotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoUG9saWN5QWN0aW9uOjpJZ25vcmUsIHN0ZDo6bnVsbG9wdCk7CisgICAgICAgICAgICBsb2Nh
bExpc3RlbmVyLT5pZ25vcmUoKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgcmV0dXJuOwpAQCAt
NDA2LDQzICs0MDcsNDMgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVAKIAogICAgIGJvb2wgZGVs
ZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25E
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNp
c2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXM7CiAgICAgCi0gICAgYXV0byBjaGVja2VyID0gQ29t
cGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQo
KSwgZGVsZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMgPyBAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KSA6IEBzZWxlY3Rvcih3
ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOikp
OworICAgIFJlZlB0cjxDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyPiBjaGVja2VyID0gQ29t
cGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQo
KSwgZGVsZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMgPyBAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KSA6IEBzZWxlY3Rvcih3
ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOikp
OwogICAgIAotICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyV2l0aFBvbGljaWVzID0gW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGxvY2FsTmF2aWdhdGlvbkFj
dGlvbiA9IG5hdmlnYXRpb25BY3Rpb24uY29weVJlZigpLCBjaGVja2VyID0gV1RGTW92ZShjaGVj
a2VyKSwgbWFpbkZyYW1lVVJMU3RyaW5nXShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgYWN0aW9u
UG9saWN5LCBfV0tXZWJzaXRlUG9saWNpZXMgKndlYnNpdGVQb2xpY2llcykgbXV0YWJsZSB7Cisg
ICAgYXV0byBkZWNpc2lvbkhhbmRsZXJXaXRoUG9saWNpZXMgPSBbbG9jYWxMaXN0ZW5lciA9IFJl
ZlB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+KFdURk1vdmUobGlzdGVuZXIpKSwgbG9j
YWxOYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdhdGlvbkFjdGlvbi5jb3B5UmVmKCksIGNoZWNrZXIg
PSBXVEZNb3ZlKGNoZWNrZXIpLCBtYWluRnJhbWVVUkxTdHJpbmddKFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeSBhY3Rpb25Qb2xpY3ksIF9XS1dlYnNpdGVQb2xpY2llcyAqd2Vic2l0ZVBvbGljaWVz
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVl
bkNhbGxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjaGVja2VyLT5kaWRDYWxs
Q29tcGxldGlvbkhhbmRsZXIoKTsKIAotICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llcz4gcG9saWNpZXM7CisgICAgICAgIFdlYnNpdGVQb2xpY2llcyBwb2xpY2llczsKICAgICAg
ICAgaWYgKHdlYnNpdGVQb2xpY2llcykKICAgICAgICAgICAgIHBvbGljaWVzID0gd2Vic2l0ZVBv
bGljaWVzLT5fd2Vic2l0ZVBvbGljaWVzLT53ZWJzaXRlUG9saWNpZXMoKTsKIAogICAgICAgICBz
d2l0Y2ggKGFjdGlvblBvbGljeSkgewogICAgICAgICBjYXNlIFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeUFsbG93OgotICAgICAgICAgICAgdHJ5QXBwTGluayhXVEZNb3ZlKGxvY2FsTmF2aWdhdGlv
bkFjdGlvbiksIG1haW5GcmFtZVVSTFN0cmluZywgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlciksIHBvbGljaWVzID0gV1RGTW92ZShwb2xpY2llcyldKGJvb2wg
Zm9sbG93ZWRMaW5rVG9BcHApIG11dGFibGUgeworICAgICAgICAgICAgdHJ5QXBwTGluayhXVEZN
b3ZlKGxvY2FsTmF2aWdhdGlvbkFjdGlvbiksIG1haW5GcmFtZVVSTFN0cmluZywgW2xvY2FsTGlz
dGVuZXIgPSBXVEZNb3ZlKGxvY2FsTGlzdGVuZXIpLCBwb2xpY2llcyA9IFdURk1vdmUocG9saWNp
ZXMpXShib29sIGZvbGxvd2VkTGlua1RvQXBwKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBp
ZiAoZm9sbG93ZWRMaW5rVG9BcHApIHsKLSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoUG9saWN5QWN0aW9uOjpJZ25vcmUsIHN0ZDo6bnVsbG9wdCk7CisgICAgICAgICAgICAg
ICAgICAgIGxvY2FsTGlzdGVuZXItPmlnbm9yZSgpOwogICAgICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoUG9saWN5QWN0aW9uOjpVc2UsIFdURk1vdmUocG9saWNpZXMpKTsKKyAgICAgICAgICAgICAg
ICBsb2NhbExpc3RlbmVyLT51c2UocG9saWNpZXMpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3lDYW5jZWw6Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246
Oklnbm9yZSwgc3RkOjpudWxsb3B0KTsKKyAgICAgICAgICAgIGxvY2FsTGlzdGVuZXItPmlnbm9y
ZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAKIC8vIEZJWE1FOiBPbmNlIHdlIGhhdmUgYSBuZXcg
ZW5vdWdoIGNvbXBpbGVyIGV2ZXJ5d2hlcmUgd2UgZG9uJ3QgbmVlZCB0byBpZ25vcmUgLVdzd2l0
Y2guCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1Xc3dpdGNoIgogICAgICAgICBjYXNlIF9XS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3lEb3dubG9hZDoKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUFjdGlv
bjo6RG93bmxvYWQsIHN0ZDo6bnVsbG9wdCk7CisgICAgICAgICAgICBsb2NhbExpc3RlbmVyLT5k
b3dubG9hZCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgX1dLTmF2aWdhdGlv
bkFjdGlvblBvbGljeUFsbG93V2l0aG91dFRyeWluZ0FwcExpbms6CiAjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246
OlVzZSwgV1RGTW92ZShwb2xpY2llcykpOworICAgICAgICAgICAgbG9jYWxMaXN0ZW5lci0+dXNl
KHBvbGljaWVzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfTsKQEAgLTQ1
Nyw3ICs0NTgsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogICAgIH0KIH0KIAotdm9pZCBO
YXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25SZXNwb25zZShXZWJQYWdlUHJveHkmLCBBUEk6Ok5hdmlnYXRpb25SZXNwb25zZSYgbmF2aWdh
dGlvblJlc3BvbnNlLCBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgc3RkOjpv
cHRpb25hbDxXZWJzaXRlUG9saWNpZXM+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEpCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlKFdlYlBhZ2VQcm94eSYsIEFQSTo6TmF2
aWdhdGlvblJlc3BvbnNlJiBuYXZpZ2F0aW9uUmVzcG9uc2UsIFJlZjxXZWJGcmFtZVBvbGljeUxp
c3RlbmVyUHJveHk+JiYgbGlzdGVuZXIsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKIHsKICAgICBp
ZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlRGVjaXNpb25IYW5kbGVyKSB7CiAgICAg
ICAgIE5TVVJMICp1cmwgPSBuYXZpZ2F0aW9uUmVzcG9uc2UucmVzcG9uc2UoKS5uc1VSTFJlc3Bv
bnNlKCkuVVJMOwpAQCAtNDY2LDE2ICs0NjcsMTYgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5h
dmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZShXZWJQYWcK
ICAgICAgICAgICAgIEJPT0wgZXhpc3RzID0gW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2Vy
XSBmaWxlRXhpc3RzQXRQYXRoOnVybC5wYXRoIGlzRGlyZWN0b3J5OiZpc0RpcmVjdG9yeV07CiAK
ICAgICAgICAgICAgIGlmIChleGlzdHMgJiYgIWlzRGlyZWN0b3J5ICYmIG5hdmlnYXRpb25SZXNw
b25zZS5jYW5TaG93TUlNRVR5cGUoKSkKLSAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihQb2xpY3lBY3Rpb246OlVzZSwgc3RkOjpudWxsb3B0KTsKKyAgICAgICAgICAgICAgICBsaXN0
ZW5lci0+dXNlKHsgfSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpJZ25vcmUsIHN0ZDo6bnVsbG9wdCk7CisgICAgICAg
ICAgICAgICAgbGlzdGVuZXItPmlnbm9yZSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKG5hdmlnYXRpb25SZXNwb25zZS5jYW5TaG93TUlNRVR5cGUoKSkK
LSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6VXNlLCBzdGQ6Om51
bGxvcHQpOworICAgICAgICAgICAgbGlzdGVuZXItPnVzZSh7IH0pOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9yZSwgc3RkOjpu
dWxsb3B0KTsKKyAgICAgICAgICAgIGxpc3RlbmVyLT5pZ25vcmUoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtNDgzLDE5ICs0ODQsMjAgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5h
dmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZShXZWJQYWcK
ICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0
byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKG5hdmlnYXRp
b25EZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvblJlc3BvbnNlOmRlY2lzaW9uSGFuZGxlcjopKTsKLSAgICBbbmF2aWdhdGlvbkRlbGVnYXRl
IHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25SZXNwb25zZTp3cmFwcGVyKG5hdmlnYXRpb25SZXNwb25zZSkgZGVjaXNpb25IYW5kbGVy
OkJsb2NrUHRyPHZvaWQoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kpPjo6ZnJvbUNhbGxhYmxl
KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVja2Vy
ID0gV1RGTW92ZShjaGVja2VyKV0oV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kgcmVzcG9uc2VQ
b2xpY3kpIHsKKyAgICBSZWZQdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiBsb2NhbExp
c3RlbmVyID0gV1RGTW92ZShsaXN0ZW5lcik7CisgICAgUmVmUHRyPENvbXBsZXRpb25IYW5kbGVy
Q2FsbENoZWNrZXI+IGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVh
dGUobmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3Iod2ViVmlldzpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6ZGVjaXNpb25IYW5kbGVyOikpOworICAgIFtuYXZpZ2F0
aW9uRGVsZWdhdGUgd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOndyYXBwZXIobmF2aWdhdGlvblJlc3BvbnNlKSBkZWNp
c2lvbkhhbmRsZXI6W2xvY2FsTGlzdGVuZXIsIGNoZWNrZXJdKFdLTmF2aWdhdGlvblJlc3BvbnNl
UG9saWN5IHJlc3BvbnNlUG9saWN5KSB7CiAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9u
SGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2hl
Y2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CiAKICAgICAgICAgc3dpdGNoIChyZXNw
b25zZVBvbGljeSkgewogICAgICAgICBjYXNlIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QWxs
b3c6Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246OlVzZSwgc3Rk
OjpudWxsb3B0KTsKKyAgICAgICAgICAgIGxvY2FsTGlzdGVuZXItPnVzZSh7IH0pOwogICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUNh
bmNlbDoKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6SWdub3Jl
LCBzdGQ6Om51bGxvcHQpOworICAgICAgICAgICAgbG9jYWxMaXN0ZW5lci0+aWdub3JlKCk7CiAg
ICAgICAgICAgICBicmVhazsKIAogLy8gRklYTUU6IE9uY2Ugd2UgaGF2ZSBhIG5ldyBlbm91Z2gg
Y29tcGlsZXIgZXZlcnl3aGVyZSB3ZSBkb24ndCBuZWVkIHRvIGlnbm9yZSAtV3N3aXRjaC4KQEAg
LTUwMywxMCArNTA1LDEwIEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UoV2ViUGFnCiAjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdzd2l0Y2giCiAgICAgICAgIGNhc2UgX1dLTmF2aWdhdGlv
blJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYWQ6CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246OkRvd25sb2Fk
LCBzdGQ6Om51bGxvcHQpOworICAgICAgICAgICAgbG9jYWxMaXN0ZW5lci0+ZG93bmxvYWQoKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgfSkuZ2V0KCldOworICAgIH1dOwog
fQogCiB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkU3RhcnRQcm92
aXNpb25hbE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6Ok5hdmlnYXRpb24qIG5h
dmlnYXRpb24sIEFQSTo6T2JqZWN0KikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KaW5kZXggMDVkZjFjNzE1ZjM2MjZmNGI3MWYxZGM1NTdkNWRlOTNmYzhm
YTg0My4uOTM4NDZhOGQ1OGNiZmRjYjNkMzJiNjFmZWM0ZWI3ZDFiOTVlZDVkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTI5LDcgKzI5LDYg
QEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkFQSUxlZ2FjeUNvbnRleHRIaXN0b3J5
Q2xpZW50LmgiCi0jaW1wb3J0ICJBUElOYXZpZ2F0aW9uLmgiCiAjaW1wb3J0ICJBdHRyaWJ1dGVk
U3RyaW5nLmgiCiAjaW1wb3J0ICJDb2xvclNwYWNlRGF0YS5oIgogI2ltcG9ydCAiRnVsbHNjcmVl
bkNsaWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlV2Vi
SW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlV2ViSW5z
cGVjdG9yUHJveHkuY3BwCmluZGV4IGI1YzQ2MWIxZDEwZDFlYzYxZjU3MzI2ZTg5YjYxNDFkNjQw
MWFhNzkuLjhlODM4OTVjOTM5ZTY3YTY3ZGI1MmZmZDRhMTVlOTVmMDFiNzNlMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5jcHAK
QEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eS5oIgogCi0jaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgogI2luY2x1
ZGUgIlJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVX
ZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZvcm1TdWJtaXNzaW9uTGlz
dGVuZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRm9ybVN1Ym1pc3Npb25M
aXN0ZW5lclByb3h5LmgKaW5kZXggYzU0ZmYzNDYyNzQyZjg0NDRhZjU2ZTU2YmU0MTM5MjJlNmI5
M2VlNy4uMmE3ZmE0YmIyYzAzOWJhZjhjODk2YjgzMDNiYzRmNDU3NzdiYmYxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5l
clByb3h5LmgKQEAgLTI1LDggKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJB
UElPYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlICJXZWJGcmFt
ZUxpc3RlbmVyUHJveHkuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVh
ZGQyNzk0ZmI5NTMzZmQ0Yjg1ZTc5MzdjNzQ1NGYxNzUwMjY5M2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwCkBAIC0w
LDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViRnJhbWVMaXN0ZW5lclByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJGcmFtZVByb3h5LmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJGcmFtZUxpc3RlbmVyUHJveHk6OldlYkZyYW1lTGlz
dGVuZXJQcm94eShXZWJGcmFtZVByb3h5KiBmcmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAg
ICA6IG1fZnJhbWUoZnJhbWUpCisgICAgLCBtX2xpc3RlbmVySUQobGlzdGVuZXJJRCkKK3sKK30K
KworV2ViRnJhbWVMaXN0ZW5lclByb3h5Ojp+V2ViRnJhbWVMaXN0ZW5lclByb3h5KCkKK3sKK30K
Kwordm9pZCBXZWJGcmFtZUxpc3RlbmVyUHJveHk6OmludmFsaWRhdGUoKQoreworICAgIG1fZnJh
bWUgPSBudWxscHRyOworfQorCit2b2lkIFdlYkZyYW1lTGlzdGVuZXJQcm94eTo6cmVjZWl2ZWRQ
b2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24gYWN0aW9uLCBjb25zdCBXZWJzaXRl
UG9saWNpZXMmIHdlYnNpdGVQb2xpY2llcykKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fZnJhbWUtPnJlY2VpdmVkUG9saWN5RGVjaXNpb24oYWN0aW9uLCBt
X2xpc3RlbmVySUQsIG1fbmF2aWdhdGlvbi5nZXQoKSwgd2Vic2l0ZVBvbGljaWVzKTsKKyAgICBt
X2ZyYW1lID0gbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMz
ZGZhMDU3NDU3OGNkZGE1YTdkZTc4Njc5OWM3YWQ1NjVhZjk5YTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuaApAQCAtMCww
ICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElOYXZp
Z2F0aW9uLmgiCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUxvYWRlclR5cGVzLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkZyYW1lUHJveHk7CitzdHJ1
Y3QgV2Vic2l0ZVBvbGljaWVzOworCitjbGFzcyBXZWJGcmFtZUxpc3RlbmVyUHJveHkgOiBwdWJs
aWMgQVBJOjpPYmplY3QgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYkZyYW1lTGlzdGVuZXJQ
cm94eSgpOworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisgICAgdWludDY0X3QgbGlzdGVuZXJJ
RCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdGVuZXJJRDsgfQorCisgICAgdm9pZCBzZXROYXZpZ2F0
aW9uKFJlZjxBUEk6Ok5hdmlnYXRpb24+JiYgbmF2aWdhdGlvbikgeyBtX25hdmlnYXRpb24gPSBX
VEZNb3ZlKG5hdmlnYXRpb24pOyB9CisKK3Byb3RlY3RlZDoKKyAgICBXZWJGcmFtZUxpc3RlbmVy
UHJveHkoV2ViRnJhbWVQcm94eSosIHVpbnQ2NF90IGxpc3RlbmVySUQpOworCisgICAgdm9pZCBy
ZWNlaXZlZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgY29uc3QgV2Vic2l0
ZVBvbGljaWVzJik7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFdlYkZyYW1lUHJveHk+IG1fZnJh
bWU7CisgICAgdWludDY0X3QgbV9saXN0ZW5lcklEOworICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IG1fbmF2aWdhdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5j
cHAKaW5kZXggMTViNzAwNTFiMWIyODE2YWVjOGRjYzIzY2M1ZTJjY2MzZjkzMjRjMS4uNGE3NDkw
MWY3NTVmYWY3N2Y0NTM1NTg4NzA1OTlmMDIwNGNiM2IyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuY3BwCkBAIC0y
NiwzOCArMjYsMjkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHkuaCIKIAorI2luY2x1ZGUgIldlYkZyYW1lUHJveHkuaCIKICNpbmNs
dWRlICJXZWJzaXRlUG9saWNpZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlw
ZXMuaD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LVJlZjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+IFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQ
cm94eTo6Y3JlYXRlKEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBzdGQ6Om9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llcz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCitXZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHk6OldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eShXZWJGcmFt
ZVByb3h5KiBmcmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAgICA6IFdlYkZyYW1lTGlzdGVu
ZXJQcm94eShmcmFtZSwgbGlzdGVuZXJJRCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsK
IH0KIAotV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OjpXZWJGcmFtZVBvbGljeUxpc3RlbmVy
UHJveHkoRnVuY3Rpb248dm9pZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIHN0ZDo6b3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICA6IG1fY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCit2b2lkIFdlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eTo6dXNlKGNvbnN0IFdlYnNpdGVQb2xpY2llcyYgd2Vic2l0ZVBvbGlj
aWVzKQogewotfQotCi12b2lkIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTo6dXNlKHN0ZDo6
b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcykKLXsKLSAgICBpZiAo
YXV0byBjb21wbGV0aW9uSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UobV9jb21wbGV0aW9uSGFuZGxl
ciwgbnVsbHB0cikpCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OlBvbGljeUFj
dGlvbjo6VXNlLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOworICAgIHJlY2VpdmVkUG9saWN5
RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uOjpVc2UsIHdlYnNpdGVQb2xpY2llcyk7CiB9
CiAKIHZvaWQgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Ojpkb3dubG9hZCgpCiB7Ci0gICAg
aWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhh
bmRsZXIsIG51bGxwdHIpKQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpQb2xp
Y3lBY3Rpb246OkRvd25sb2FkLCBzdGQ6Om51bGxvcHQpOworICAgIHJlY2VpdmVkUG9saWN5RGVj
aXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uOjpEb3dubG9hZCwgeyB9KTsKIH0KIAogdm9pZCBX
ZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk6Omlnbm9yZSgpCiB7Ci0gICAgaWYgKGF1dG8gY29t
cGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIG51bGxw
dHIpKQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpQb2xpY3lBY3Rpb246Okln
bm9yZSwgc3RkOjpudWxsb3B0KTsKKyAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6
OlBvbGljeUFjdGlvbjo6SWdub3JlLCB7IH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVu
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5LmgKaW5kZXggMmEwNDM0NjY5OGYzMWExNjE1N2FmNjBhM2U3MDRmNWVlNDQ4NTBmOS4u
Mzc5ZWZkMjA0ODBjNjUzYTRkMGUxMTU1Y2E4Nzk5Y2FlMDk1ODBmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgKQEAg
LTI1LDMwICsyNSwzOSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkFQSU9iamVjdC5o
IgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgor
I2luY2x1ZGUgIldlYkZyYW1lTGlzdGVuZXJQcm94eS5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci1lbnVtIGNsYXNzIFBvbGljeUFjdGlvbjsKLX0KKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNs
dWRlICJXS0ZvdW5kYXRpb24uaCIKKyNlbmRpZgogCi1uYW1lc3BhY2UgV2ViS2l0IHsKKyNkZWZp
bmUgREVMRUdBVEVfUkVGX0NPVU5USU5HX1RPX0NPQ09BIChQTEFURk9STShDT0NPQSkgJiYgV0tf
QVBJX0VOQUJMRUQpCiAKLXN0cnVjdCBXZWJzaXRlUG9saWNpZXM7CituYW1lc3BhY2UgV2ViS2l0
IHsKIAotY2xhc3MgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5IDogcHVibGljIEFQSTo6T2Jq
ZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6RnJhbWVQb2xpY3lMaXN0ZW5lcj4geworY2xhc3Mg
V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5IDogcHVibGljIFdlYkZyYW1lTGlzdGVuZXJQcm94
eSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+
IGNyZWF0ZShGdW5jdGlvbjx2b2lkKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgc3RkOjpvcHRpb25h
bDxXZWJzaXRlUG9saWNpZXM+JiYpPiYmKTsKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBl
ID0gVHlwZTo6RnJhbWVQb2xpY3lMaXN0ZW5lcjsKKworICAgIHN0YXRpYyBSZWY8V2ViRnJhbWVQ
b2xpY3lMaXN0ZW5lclByb3h5PiBjcmVhdGUoV2ViRnJhbWVQcm94eSogZnJhbWUsIHVpbnQ2NF90
IGxpc3RlbmVySUQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHkoZnJhbWUsIGxpc3RlbmVySUQpKTsKKyAgICB9CiAKLSAgICB2
b2lkIHVzZShzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llcz4mJik7CisgICAgdm9pZCB1c2Uo
Y29uc3QgV2Vic2l0ZVBvbGljaWVzJik7CiAgICAgdm9pZCBkb3dubG9hZCgpOwogICAgIHZvaWQg
aWdub3JlKCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5KEZ1
bmN0aW9uPHZvaWQoV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQ
b2xpY2llcz4mJik+JiYpOworICAgIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eShXZWJGcmFt
ZVByb3h5KiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAKLSAgICBGdW5jdGlvbjx2b2lkKFdlYkNv
cmU6OlBvbGljeUFjdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXM+JiYpPiBtX2Nv
bXBsZXRpb25IYW5kbGVyOworICAgIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IEFQSVR5cGU7IH0KKworI2lmIERFTEVHQVRFX1JFRl9DT1VOVElOR19UT19DT0NPQQorICAgIHZv
aWQqIG9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkgeyByZXR1cm4gbmV3T2JqZWN0KHNpemUsIEFQ
SVR5cGUpOyB9CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjdW5kZWYg
REVMRUdBVEVfUkVGX0NPVU5USU5HX1RPX0NPQ09BCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkZyYW1lUHJveHkuY3BwCmluZGV4IGI1NTZmODE2NjY1YTRhYzcwOGIxYzc2MDFhYTU1MmQ4ZWYx
NmE5YzUuLjg1NWQ1ZDE5Y2FiNWM1YzExMGUxMjc3MzAwMzk3N2RjMzQ2ZDBmMmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCkBAIC0yNiw4ICsyNiw4IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94eS5oIgogCi0jaW5jbHVk
ZSAiQVBJTmF2aWdhdGlvbi5oIgogI2luY2x1ZGUgIldlYkNlcnRpZmljYXRlSW5mby5oIgorI2lu
Y2x1ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhc3Rl
Ym9hcmRQcm94eS5oIgpAQCAtNjAsNiArNjAsMTEgQEAgV2ViRnJhbWVQcm94eTo6fldlYkZyYW1l
UHJveHkoKQogdm9pZCBXZWJGcmFtZVByb3h5Ojp3ZWJQcm9jZXNzV2lsbFNodXREb3duKCkKIHsK
ICAgICBtX3BhZ2UgPSBudWxscHRyOworCisgICAgaWYgKG1fYWN0aXZlTGlzdGVuZXIpIHsKKyAg
ICAgICAgbV9hY3RpdmVMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOworICAgICAgICBtX2FjdGl2ZUxp
c3RlbmVyID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIGJvb2wgV2ViRnJhbWVQcm94eTo6aXNNYWlu
RnJhbWUoKSBjb25zdApAQCAtMTcwLDYgKzE3NSwyNCBAQCB2b2lkIFdlYkZyYW1lUHJveHk6OmRp
ZENoYW5nZVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgbV90aXRsZSA9IHRpdGxlOwog
fQogCit2b2lkIFdlYkZyYW1lUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0
aW9uIGFjdGlvbiwgdWludDY0X3QgbGlzdGVuZXJJRCwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0
aW9uLCBjb25zdCBXZWJzaXRlUG9saWNpZXMmIHdlYnNpdGVQb2xpY2llcykKK3sKKyAgICBpZiAo
IW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKG1fYWN0aXZlTGlzdGVuZXIp
OworICAgIEFTU0VSVChtX2FjdGl2ZUxpc3RlbmVyLT5saXN0ZW5lcklEKCkgPT0gbGlzdGVuZXJJ
RCk7CisgICAgbV9wYWdlLT5yZWNlaXZlZFBvbGljeURlY2lzaW9uKGFjdGlvbiwgKnRoaXMsIGxp
c3RlbmVySUQsIG5hdmlnYXRpb24sIHdlYnNpdGVQb2xpY2llcyk7Cit9CisKK1dlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eSYgV2ViRnJhbWVQcm94eTo6c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5
KHVpbnQ2NF90IGxpc3RlbmVySUQpCit7CisgICAgaWYgKG1fYWN0aXZlTGlzdGVuZXIpCisgICAg
ICAgIG1fYWN0aXZlTGlzdGVuZXItPmludmFsaWRhdGUoKTsKKyAgICBtX2FjdGl2ZUxpc3RlbmVy
ID0gV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OjpjcmVhdGUodGhpcywgbGlzdGVuZXJJRCk7
CisgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqPiht
X2FjdGl2ZUxpc3RlbmVyLmdldCgpKTsKK30KKwogdm9pZCBXZWJGcmFtZVByb3h5OjpnZXRXZWJB
cmNoaXZlKEZ1bmN0aW9uPHZvaWQgKEFQSTo6RGF0YSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
IGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgaWYgKCFtX3BhZ2UpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkZyYW1lUHJveHkuaAppbmRleCA5OWUzY2NjODQzMjIzNDVmN2ViOGVhMGQzZjQ4
N2ZmZjUyMTc5OTlhLi5iODM0MTk3ODhjZWI0OTBkNjFkZjc3ZWM1M2NjYjBmYTcwMTI4N2M3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkU3RhdGUuaCIKICNp
bmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJXZWJGcmFtZUxpc3RlbmVyUHJv
eHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgpAQCAtNDgsNiArNDksNyBA
QCBjbGFzcyBEZWNvZGVyOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkNlcnRpZmlj
YXRlSW5mbzsKK2NsYXNzIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYlBh
Z2VQcm94eTsKIHN0cnVjdCBXZWJzaXRlUG9saWNpZXM7CiAKQEAgLTExMSw2ICsxMTMsMTAgQEAg
cHVibGljOgogICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbihjb25zdCBXZWJDb3Jl
OjpVUkwmKTsgLy8gZWcuIGFuY2hvciBuYXZpZ2F0aW9uLCBzZXNzaW9uIHN0YXRlIGNoYW5nZS4K
ICAgICB2b2lkIGRpZENoYW5nZVRpdGxlKGNvbnN0IFN0cmluZyYpOwogCisgICAgLy8gUG9saWN5
IG9wZXJhdGlvbnMuCisgICAgdm9pZCByZWNlaXZlZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBv
bGljeUFjdGlvbiwgdWludDY0X3QgbGlzdGVuZXJJRCwgQVBJOjpOYXZpZ2F0aW9uKiwgY29uc3Qg
V2Vic2l0ZVBvbGljaWVzJik7CisgICAgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5JiBzZXRV
cFBvbGljeUxpc3RlbmVyUHJveHkodWludDY0X3QgbGlzdGVuZXJJRCk7CisKICNpZiBFTkFCTEUo
Q09OVEVOVF9GSUxURVJJTkcpCiAgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciBjb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXIpIHsgbV9jb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgPSBXVEZNb3ZlKGNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlcik7IH0KICAgICBib29sIGRpZEhhbmRsZUNvbnRlbnRGaWx0ZXJV
bmJsb2NrTmF2aWdhdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKQEAgLTEz
Miw2ICsxMzgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0ZyYW1lU2V0OwogICAgIGJvb2wg
bV9jb250YWluc1BsdWdpbkRvY3VtZW50IHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViQ2VydGlm
aWNhdGVJbmZvPiBtX2NlcnRpZmljYXRlSW5mbzsKKyAgICBSZWZQdHI8V2ViRnJhbWVMaXN0ZW5l
clByb3h5PiBtX2FjdGl2ZUxpc3RlbmVyOwogICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKICNpZiBF
TkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAgICAgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxv
Y2tIYW5kbGVyIG1fY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCmluZGV4IGFhMjhhZDE2NTI0YmNiMGZi
ZWE0MzlhYjUwNzg5YTNjODU3ODA0NzUuLjVmMTFkOGQyNzlmM2NkYmFhZDNjM2Y4MzFiYzE1ZGJi
NTg5ZmExMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3Rv
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94
eS5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
ZWJJbnNwZWN0b3JQcm94eS5oIgogCi0jaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgogI2luY2x1
ZGUgIkFQSU5hdmlnYXRpb25BY3Rpb24uaCIKICNpbmNsdWRlICJBUElQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uaCIKICNpbmNsdWRlICJXS0FycmF5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCBjMTIxZGJlNTNiMThmY2MxNzc0N2UyZTI1ODZjYzQwZmIw
YTA4NzFlLi5hNTYyOGRhYzlkZThkY2IyZTJkOTFjNGM3NmZjMDY0MTM4MDlmMzkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTUwLDcgKzUwLDYgQEAKICNp
bmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCiAj
aW5jbHVkZSAiQVBJVVJMUmVxdWVzdC5oIgotI2luY2x1ZGUgIkFQSVdlYnNpdGVQb2xpY2llcy5o
IgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCIKICNpbmNsdWRlICJB
dXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNl
LmgiCkBAIC04OSw2ICs4OCw3IEBACiAjaW5jbHVkZSAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgog
I2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCisj
aW5jbHVkZSAiV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkltYWdlLmgiCkBAIC0yMjU3LDYgKzIyNTcsNTYg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKQogICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2VudGVyU2VsZWN0aW9uSW5WaXNp
YmxlQXJlYSgpLCBtX3BhZ2VJRCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBv
bGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rpb24sIFdlYkZyYW1lUHJveHkmIGZyYW1lLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIGNvbnN0IFdl
YnNpdGVQb2xpY2llcyYgd2Vic2l0ZVBvbGljaWVzKQoreworICAgIGlmICghaXNWYWxpZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wYWdlTG9hZFN0YXRl
LnRyYW5zYWN0aW9uKCk7CisKKyAgICBpZiAoYWN0aW9uID09IFBvbGljeUFjdGlvbjo6SWdub3Jl
KQorICAgICAgICBtX3BhZ2VMb2FkU3RhdGUuY2xlYXJQZW5kaW5nQVBJUmVxdWVzdFVSTCh0cmFu
c2FjdGlvbik7CisKKyNpZiBFTkFCTEUoRE9XTkxPQURfQVRUUklCVVRFKQorICAgIGlmIChtX3N5
bmNOYXZpZ2F0aW9uQWN0aW9uSGFzRG93bmxvYWRBdHRyaWJ1dGUgJiYgYWN0aW9uID09IFBvbGlj
eUFjdGlvbjo6VXNlKQorICAgICAgICBhY3Rpb24gPSBQb2xpY3lBY3Rpb246OkRvd25sb2FkOwor
I2VuZGlmCisKKyAgICBEb3dubG9hZElEIGRvd25sb2FkSUQgPSB7IH07CisgICAgaWYgKGFjdGlv
biA9PSBQb2xpY3lBY3Rpb246OkRvd25sb2FkKSB7CisgICAgICAgIC8vIENyZWF0ZSBhIGRvd25s
b2FkIHByb3h5LgorICAgICAgICBhdXRvKiBkb3dubG9hZCA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bv
b2woKS5jcmVhdGVEb3dubG9hZFByb3h5KG1fZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VSZXF1ZXN0
LCB0aGlzKTsKKyAgICAgICAgaWYgKG5hdmlnYXRpb24pIHsKKyAgICAgICAgICAgIGRvd25sb2Fk
LT5zZXRXYXNVc2VySW5pdGlhdGVkKG5hdmlnYXRpb24tPndhc1VzZXJJbml0aWF0ZWQoKSk7Cisg
ICAgICAgICAgICBkb3dubG9hZC0+c2V0UmVkaXJlY3RDaGFpbihuYXZpZ2F0aW9uLT50YWtlUmVk
aXJlY3RDaGFpbigpKTsKKyAgICAgICAgfQorCisgICAgICAgIGRvd25sb2FkSUQgPSBkb3dubG9h
ZC0+ZG93bmxvYWRJRCgpOworICAgICAgICBoYW5kbGVEb3dubG9hZFJlcXVlc3QoZG93bmxvYWQp
OworICAgICAgICBtX2RlY2lkZVBvbGljeUZvclJlc3BvbnNlUmVxdWVzdCA9IHsgfTsKKyAgICB9
CisKKyAgICAvLyBJZiB3ZSByZWNlaXZlZCBhIHBvbGljeSBkZWNpc2lvbiB3aGlsZSBpbiBkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZSB0aGUgZGVjaXNpb24gd2lsbAorICAgIC8vIGJlIHNlbnQgYmFj
ayB0byB0aGUgd2ViIHByb2Nlc3MgYnkgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UuCisgICAgaWYg
KG1fcmVzcG9uc2VQb2xpY3lSZXBseSkgeworICAgICAgICBtX3Jlc3BvbnNlUG9saWN5UmVwbHkt
PnNlbmQoYWN0aW9uLCBkb3dubG9hZElEKTsKKyAgICAgICAgQVNTRVJUKCFtX25ld05hdmlnYXRp
b25JRCk7CisgICAgICAgIG1fcmVzcG9uc2VQb2xpY3lSZXBseSA9IG51bGxwdHI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICAvLyBJZiB3ZSByZWNlaXZlZCBhIHBvbGljeSBkZWNpc2lv
biB3aGlsZSBpbiBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIHRoZSBkZWNpc2lvbiB3
aWxsIAorICAgIC8vIGJlIHNlbnQgYmFjayB0byB0aGUgd2ViIHByb2Nlc3MgYnkgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbi4gCisgICAgaWYgKG1fbmF2aWdhdGlvbkFjdGlvblBvbGlj
eVJlcGx5KSB7CisgICAgICAgIG1fbmF2aWdhdGlvbkFjdGlvblBvbGljeVJlcGx5LT5zZW5kKG1f
bmV3TmF2aWdhdGlvbklELCBhY3Rpb24sIGRvd25sb2FkSUQsIHdlYnNpdGVQb2xpY2llcyk7Cisg
ICAgICAgIG1fbmV3TmF2aWdhdGlvbklEID0gMDsKKyAgICAgICAgbV9uYXZpZ2F0aW9uQWN0aW9u
UG9saWN5UmVwbHkgPSBudWxscHRyOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lz
aW9uKGZyYW1lLmZyYW1lSUQoKSwgbGlzdGVuZXJJRCwgYWN0aW9uLCBuYXZpZ2F0aW9uID8gbmF2
aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBkb3dubG9hZElEKSwgbV9wYWdlSUQpOworfQor
CiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VXNlckFnZW50KGNvbnN0IFN0cmluZyYgdXNlckFnZW50
KQogewogICAgIGlmIChtX3VzZXJBZ2VudCA9PSB1c2VyQWdlbnQpCkBAIC0zNjA2LDIxICszNjU2
LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lRGlkQmVjb21lRnJhbWVTZXQodWludDY0X3Qg
ZnJhbWVJRCwgYm9vbCB2YWx1ZSkKICAgICAgICAgbV9mcmFtZVNldExhcmdlc3RGcmFtZSA9IHZh
bHVlID8gbV9tYWluRnJhbWUgOiAwOwogfQogCi1Eb3dubG9hZElEIFdlYlBhZ2VQcm94eTo6bWFr
ZURvd25sb2FkUHJveHkoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgdWludDY0X3QgbmF2aWdh
dGlvbklEKQotewotICAgIGF1dG8qIGRvd25sb2FkID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgp
LmNyZWF0ZURvd25sb2FkUHJveHkocmVxdWVzdCwgdGhpcyk7Ci0KLSAgICBSZWZQdHI8QVBJOjpO
YXZpZ2F0aW9uPiBuYXZpZ2F0aW9uOwotICAgIGlmIChuYXZpZ2F0aW9uSUQpCi0gICAgICAgIG5h
dmlnYXRpb24gPSAmbV9uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb24obmF2aWdhdGlvbklEKTsK
LSAgICBlbHNlCi0gICAgICAgIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRl
TG9hZFJlcXVlc3ROYXZpZ2F0aW9uKFdURk1vdmUocmVxdWVzdCkpOwotICAgIGRvd25sb2FkLT5z
ZXRXYXNVc2VySW5pdGlhdGVkKG5hdmlnYXRpb24tPndhc1VzZXJJbml0aWF0ZWQoKSk7Ci0gICAg
ZG93bmxvYWQtPnNldFJlZGlyZWN0Q2hhaW4obmF2aWdhdGlvbi0+dGFrZVJlZGlyZWN0Q2hhaW4o
KSk7Ci0gICAgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KGRvd25sb2FkKTsKLSAgICByZXR1cm4gZG93
bmxvYWQtPmRvd25sb2FkSUQoKTsKLX0KLQogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIGNvbnN0IEZyYW1lSW5mb0Rh
dGEmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEsIFJlZjxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uOjpEZWxheWVkUmVwbHk+JiYgcmVwbHkpCiB7CiAgICAgUGFnZUNsaWVudFBy
b3RlY3RvciBwcm90ZWN0b3IobV9wYWdlQ2xpZW50KTsKQEAgLTM2MzYsNTMgKzM2NzEsMzIgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU2VjdXIKICAgICBNRVNTQUdFX0NIRUNLX1VSTChyZXF1ZXN0LnVy
bCgpKTsKICAgICBNRVNTQUdFX0NIRUNLX1VSTChvcmlnaW5hbFJlcXVlc3QudXJsKCkpOwogICAg
IAotI2lmIEVOQUJMRShET1dOTE9BRF9BVFRSSUJVVEUpCi0gICAgYm9vbCBmb3JjZURvd25sb2Fk
ID0gIW5hdmlnYXRpb25BY3Rpb25EYXRhLmRvd25sb2FkQXR0cmlidXRlLmlzTnVsbCgpOwotI2Vs
c2UKLSAgICBib29sIGZvcmNlRG93bmxvYWQgPSBmYWxzZTsKLSNlbmRpZgotCi0gICAgdWludDY0
X3QgbmV3TmF2aWdhdGlvbklEID0gMDsKLSAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZp
Z2F0aW9uOworICAgIG1fbmV3TmF2aWdhdGlvbklEID0gMDsKKyAgICBSZWY8V2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lclByb3h5PiBsaXN0ZW5lciA9IGZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJv
eHkobGlzdGVuZXJJRCk7CiAgICAgaWYgKCFuYXZpZ2F0aW9uSUQpIHsKLSAgICAgICAgbmF2aWdh
dGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVMb2FkUmVxdWVzdE5hdmlnYXRpb24oUmVz
b3VyY2VSZXF1ZXN0KHJlcXVlc3QpKTsKLSAgICAgICAgbmV3TmF2aWdhdGlvbklEID0gbmF2aWdh
dGlvbi0+bmF2aWdhdGlvbklEKCk7Ci0gICAgICAgIG5hdmlnYXRpb25JRCA9IG5ld05hdmlnYXRp
b25JRDsKLSAgICB9IGVsc2UKLSAgICAgICAgbmF2aWdhdGlvbiA9ICZtX25hdmlnYXRpb25TdGF0
ZS0+bmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwotICAgIEFTU0VSVChuYXZpZ2F0aW9uKTsKLSAg
ICBuYXZpZ2F0aW9uLT5zZXRXYXNVc2VySW5pdGlhdGVkKCEhbmF2aWdhdGlvbkFjdGlvbkRhdGEu
dXNlckdlc3R1cmVUb2tlbklkZW50aWZpZXIpOwotCi0gICAgYXV0byBjb21wbGV0aW9uSGFuZGxl
ciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcGx5ID0gV1RGTW92
ZShyZXBseSksIHJlcXVlc3QgPSByZXF1ZXN0LCBuYXZpZ2F0aW9uSUQsIG5ld05hdmlnYXRpb25J
RCwgZm9yY2VEb3dubG9hZF0oV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgc3Rk
OjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXM+JiYgb3B0aW9uYWwpIG11dGFibGUgewotCi0gICAg
ICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgZm9yY2VEb3dubG9h
ZCkKLSAgICAgICAgICAgIHBvbGljeUFjdGlvbiA9IFBvbGljeUFjdGlvbjo6RG93bmxvYWQ7Ci0K
LSAgICAgICAgV2Vic2l0ZVBvbGljaWVzIHdlYnNpdGVQb2xpY2llczsgLy8gRklYTUU6IEp1c3Qg
c2VuZCB0aGUgb3B0aW9uYWwgaW5zdGVhZAotICAgICAgICBpZiAob3B0aW9uYWwpCi0gICAgICAg
ICAgICB3ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKCpvcHRpb25hbCk7Ci0KLSAgICAgICAgRG93
bmxvYWRJRCBkb3dubG9hZElEOwotICAgICAgICBzd2l0Y2ggKHBvbGljeUFjdGlvbikgewotICAg
ICAgICBjYXNlIFBvbGljeUFjdGlvbjo6SWdub3JlOiB7Ci0gICAgICAgICAgICBhdXRvIHRyYW5z
YWN0aW9uID0gbV9wYWdlTG9hZFN0YXRlLnRyYW5zYWN0aW9uKCk7Ci0gICAgICAgICAgICBtX3Bh
Z2VMb2FkU3RhdGUuY2xlYXJQZW5kaW5nQVBJUmVxdWVzdFVSTCh0cmFuc2FjdGlvbik7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIFBvbGljeUFjdGlvbjo6RG93
bmxvYWQ6Ci0gICAgICAgICAgICBkb3dubG9hZElEID0gbWFrZURvd25sb2FkUHJveHkoV1RGTW92
ZShyZXF1ZXN0KSwgbmF2aWdhdGlvbklEKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFBvbGljeUFjdGlvbjo6VXNlOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmVwbHktPnNlbmQobmV3TmF2aWdhdGlvbklELCBwb2xpY3lBY3Rpb24sIGRvd25sb2Fk
SUQsIHdlYnNpdGVQb2xpY2llcyk7Ci0gICAgfTsKKyAgICAgICAgYXV0byBuYXZpZ2F0aW9uID0g
bV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihSZXNvdXJjZVJl
cXVlc3QocmVxdWVzdCkpOworICAgICAgICBtX25ld05hdmlnYXRpb25JRCA9IG5hdmlnYXRpb24t
Pm5hdmlnYXRpb25JRCgpOworICAgICAgICBuYXZpZ2F0aW9uLT5zZXRXYXNVc2VySW5pdGlhdGVk
KCEhbmF2aWdhdGlvbkFjdGlvbkRhdGEudXNlckdlc3R1cmVUb2tlbklkZW50aWZpZXIpOworICAg
ICAgICBsaXN0ZW5lci0+c2V0TmF2aWdhdGlvbihXVEZNb3ZlKG5hdmlnYXRpb24pKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBhdXRvJiBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPm5h
dmlnYXRpb24obmF2aWdhdGlvbklEKTsKKyAgICAgICAgbmF2aWdhdGlvbi5zZXRXYXNVc2VySW5p
dGlhdGVkKCEhbmF2aWdhdGlvbkFjdGlvbkRhdGEudXNlckdlc3R1cmVUb2tlbklkZW50aWZpZXIp
OworICAgICAgICBsaXN0ZW5lci0+c2V0TmF2aWdhdGlvbihuYXZpZ2F0aW9uKTsKKyAgICB9CiAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgaWYgKGZyYW1lLT5kaWRIYW5kbGVD
b250ZW50RmlsdGVyVW5ibG9ja05hdmlnYXRpb24ocmVxdWVzdCkpCi0gICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9yZSwgc3RkOjpudWxsb3B0KTsKKyAg
ICBpZiAoZnJhbWUtPmRpZEhhbmRsZUNvbnRlbnRGaWx0ZXJVbmJsb2NrTmF2aWdhdGlvbihyZXF1
ZXN0KSkgeworICAgICAgICByZXBseS0+c2VuZChtX25ld05hdmlnYXRpb25JRCwgUG9saWN5QWN0
aW9uOjpJZ25vcmUsIHsgfSwgeyB9KTsKKyAgICAgICAgbV9uZXdOYXZpZ2F0aW9uSUQgPSAwOwor
ICAgICAgICByZXR1cm47CisgICAgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRE9XTkxPQURfQVRU
UklCVVRFKQorICAgIG1fc3luY05hdmlnYXRpb25BY3Rpb25IYXNEb3dubG9hZEF0dHJpYnV0ZSA9
ICFuYXZpZ2F0aW9uQWN0aW9uRGF0YS5kb3dubG9hZEF0dHJpYnV0ZS5pc051bGwoKTsKKyNlbmRp
ZgorICAgIG1fbmF2aWdhdGlvbkFjdGlvblBvbGljeVJlcGx5ID0gV1RGTW92ZShyZXBseSk7CisK
ICAgICBXZWJGcmFtZVByb3h5KiBvcmlnaW5hdGluZ0ZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFt
ZShvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCk7CiAKICAgICBpZiAobV9uYXZpZ2F0
aW9uQ2xpZW50KSB7CkBAIC0zNjk4LDkgKzM3MTIsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1
cgogCiAgICAgICAgIGF1dG8gbmF2aWdhdGlvbkFjdGlvbiA9IEFQSTo6TmF2aWdhdGlvbkFjdGlv
bjo6Y3JlYXRlKFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBzb3VyY2VGcmFtZUluZm8u
Z2V0KCksIGRlc3RpbmF0aW9uRnJhbWVJbmZvLnB0cigpLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcmln
aW5hbFJlcXVlc3QudXJsKCksIHNob3VsZE9wZW5BcHBMaW5rcywgV1RGTW92ZSh1c2VySW5pdGlh
dGVkQWN0aXZpdHkpKTsKIAotICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24oKnRoaXMsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09i
amVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKKyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xp
ZW50LT5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKCp0aGlzLCBXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb24pLCBXVEZNb3ZlKGxpc3RlbmVyKSwgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5k
bGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiAgICAgfSBlbHNlCi0gICAg
ICAgIG1fcG9saWN5Q2xpZW50LT5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKCp0aGlz
LCBmcmFtZSwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIG9yaWdpbmF0aW5nRnJhbWUs
IG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmpl
Y3QoKSkuZ2V0KCkpOworICAgICAgICBtX3BvbGljeUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbigqdGhpcywgZnJhbWUsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEp
LCBvcmlnaW5hdGluZ0ZyYW1lLCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdU
Rk1vdmUobGlzdGVuZXIpLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNl
ckRhdGEub2JqZWN0KCkpLmdldCgpKTsKIAogICAgIG1fc2hvdWxkU3VwcHJlc3NBcHBMaW5rc0lu
TmV4dE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiA9IGZhbHNlOwogfQpAQCAtMzcxMywzMiArMzcy
NywyNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaQogICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUp
OwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHJlcXVlc3QudXJsKCkpOwogCisgICAgUmVmPFdlYkZy
YW1lUG9saWN5TGlzdGVuZXJQcm94eT4gbGlzdGVuZXIgPSBmcmFtZS0+c2V0VXBQb2xpY3lMaXN0
ZW5lclByb3h5KGxpc3RlbmVySUQpOworCiAgICAgaWYgKG1fbmF2aWdhdGlvbkNsaWVudCkgewog
ICAgICAgICBSZWZQdHI8QVBJOjpGcmFtZUluZm8+IHNvdXJjZUZyYW1lSW5mbzsKICAgICAgICAg
aWYgKGZyYW1lKQogICAgICAgICAgICAgc291cmNlRnJhbWVJbmZvID0gQVBJOjpGcmFtZUluZm86
OmNyZWF0ZSgqZnJhbWUsIGZyYW1lU2VjdXJpdHlPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSk7Ci0g
ICAgICAgIAotICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbGlzdGVuZXJJRCwgZnJhbWVJRF0oV2ViQ29yZTo6UG9s
aWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXM+JiYg
b3B0aW9uYWwpIHsKLSAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQob3B0aW9uYWwsICFvcHRpb25h
bCk7Ci0gICAgICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJl
Y2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5lcklELCBwb2xpY3lBY3Rpb24sIDAs
IERvd25sb2FkSUQoKSksIG1fcGFnZUlEKTsKLSAgICAgICAgfTsKIAogICAgICAgICBhdXRvIHVz
ZXJJbml0aWF0ZWRBY3Rpdml0eSA9IG1fcHJvY2Vzcy0+dXNlckluaXRpYXRlZEFjdGl2aXR5KG5h
dmlnYXRpb25BY3Rpb25EYXRhLnVzZXJHZXN0dXJlVG9rZW5JZGVudGlmaWVyKTsKICAgICAgICAg
Ym9vbCBzaG91bGRPcGVuQXBwTGlua3MgPSAhaG9zdHNBcmVFcXVhbChVUkwoUGFyc2VkVVJMU3Ry
aW5nLCBtX21haW5GcmFtZS0+dXJsKCkpLCByZXF1ZXN0LnVybCgpKTsKICAgICAgICAgYXV0byBu
YXZpZ2F0aW9uQWN0aW9uID0gQVBJOjpOYXZpZ2F0aW9uQWN0aW9uOjpjcmVhdGUoV1RGTW92ZShu
YXZpZ2F0aW9uQWN0aW9uRGF0YSksIHNvdXJjZUZyYW1lSW5mby5nZXQoKSwgbnVsbHB0ciwgV1RG
TW92ZShyZXF1ZXN0KSwgcmVxdWVzdC51cmwoKSwgc2hvdWxkT3BlbkFwcExpbmtzLCBXVEZNb3Zl
KHVzZXJJbml0aWF0ZWRBY3Rpdml0eSkpOwogCi0gICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbigqdGhpcywgbmF2aWdhdGlvbkFjdGlvbi5n
ZXQoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFu
ZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOworICAgICAgICBtX25hdmln
YXRpb25DbGllbnQtPmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oKnRoaXMsIG5hdmln
YXRpb25BY3Rpb24uZ2V0KCksIFdURk1vdmUobGlzdGVuZXIpLCBtX3Byb2Nlc3MtPnRyYW5zZm9y
bUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKIAotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBmcmFtZUlELCBsaXN0ZW5lcklEXShXZWJDb3JlOjpQb2xpY3lB
Y3Rpb24gcG9saWN5QWN0aW9uLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llcz4mJiBvcHRp
b25hbCkgewotICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChvcHRpb25hbCwgIW9wdGlvbmFsKTsK
LSAgICAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2
ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVySUQsIHBvbGljeUFjdGlvbiwgMCwgRG93
bmxvYWRJRCgpKSwgbV9wYWdlSUQpOwotICAgICAgICB9OwotICAgICAgICBtX3BvbGljeUNsaWVu
dC0+ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKCp0aGlzLCAqZnJhbWUsIG5hdmlnYXRp
b25BY3Rpb25EYXRhLCByZXF1ZXN0LCBmcmFtZU5hbWUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0
KCkpLmdldCgpKTsKLSAgICB9CisgICAgfSBlbHNlCisgICAgICAgIG1fcG9saWN5Q2xpZW50LT5k
ZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oKnRoaXMsICpmcmFtZSwgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIHJlcXVlc3QsIGZyYW1lTmFtZSwgV1RGTW92ZShsaXN0ZW5lciksIG1fcHJvY2Vz
cy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTeW5jKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwg
dWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBSZWY8TWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTeW5jOjpEZWxheWVkUmVw
bHk+JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVU
eXBlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAg
ICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IobV9wYWdlQ2xpZW50KTsKIApAQCAtMzc0
NywyOSArMzc1MywyNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2VTeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5TwogICAgIE1FU1NBR0VfQ0hF
Q0tfVVJMKHJlcXVlc3QudXJsKCkpOwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHJlc3BvbnNlLnVy
bCgpKTsKIAotICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCByZXBseSA9IFdURk1vdmUocmVwbHkpLCByZXF1ZXN0ID0gcmVx
dWVzdCwgbmF2aWdhdGlvbklEXShXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBz
dGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llcz4mJiBvcHRpb25hbCkgbXV0YWJsZSB7Ci0gICAg
ICAgIEFTU0VSVF9VTlVTRUQob3B0aW9uYWwsICFvcHRpb25hbCk7Ci0gICAgICAgIERvd25sb2Fk
SUQgZG93bmxvYWRJRDsKLSAgICAgICAgc3dpdGNoIChwb2xpY3lBY3Rpb24pIHsKLSAgICAgICAg
Y2FzZSBQb2xpY3lBY3Rpb246Oklnbm9yZTogewotICAgICAgICAgICAgYXV0byB0cmFuc2FjdGlv
biA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwotICAgICAgICAgICAgbV9wYWdlTG9h
ZFN0YXRlLmNsZWFyUGVuZGluZ0FQSVJlcXVlc3RVUkwodHJhbnNhY3Rpb24pOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBQb2xpY3lBY3Rpb246OkRvd25sb2Fk
OgotICAgICAgICAgICAgZG93bmxvYWRJRCA9IG1ha2VEb3dubG9hZFByb3h5KFdURk1vdmUocmVx
dWVzdCksIG5hdmlnYXRpb25JRCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQ
b2xpY3lBY3Rpb246OlVzZToKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAg
IHJlcGx5LT5zZW5kKHBvbGljeUFjdGlvbiwgZG93bmxvYWRJRCk7Ci0gICAgfTsKKyAgICBSZWY8
V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiBsaXN0ZW5lciA9IGZyYW1lLT5zZXRVcFBvbGlj
eUxpc3RlbmVyUHJveHkobGlzdGVuZXJJRCk7CisgICAgaWYgKG5hdmlnYXRpb25JRCkKKyAgICAg
ICAgbGlzdGVuZXItPnNldE5hdmlnYXRpb24obV9uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb24o
bmF2aWdhdGlvbklEKSk7CiAKICAgICBpZiAobV9uYXZpZ2F0aW9uQ2xpZW50KSB7CiAgICAgICAg
IGF1dG8gbmF2aWdhdGlvblJlc3BvbnNlID0gQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U6OmNyZWF0
ZShBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKCpmcmFtZSwgZnJhbWVTZWN1cml0eU9yaWdpbi5zZWN1
cml0eU9yaWdpbigpKS5nZXQoKSwgcmVxdWVzdCwgcmVzcG9uc2UsIGNhblNob3dNSU1FVHlwZSk7
Ci0gICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJl
c3BvbnNlKCp0aGlzLCBuYXZpZ2F0aW9uUmVzcG9uc2UuZ2V0KCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEu
b2JqZWN0KCkpLmdldCgpKTsKKyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UoKnRoaXMsIG5hdmlnYXRpb25SZXNwb25zZS5nZXQoKSwg
V1RGTW92ZShsaXN0ZW5lciksIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1
c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogICAgIH0gZWxzZQotICAgICAgICBtX3BvbGljeUNs
aWVudC0+ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoKnRoaXMsICpmcmFtZSwgcmVzcG9uc2UsIHJl
cXVlc3QsIGNhblNob3dNSU1FVHlwZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fcHJv
Y2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkp
OworICAgICAgICBtX3BvbGljeUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoKnRoaXMs
ICpmcmFtZSwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgV1RGTW92ZShsaXN0
ZW5lciksIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmpl
Y3QoKSkuZ2V0KCkpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJh
bWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNh
blNob3dNSU1FVHlwZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhLCBSZWY8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VT
eW5jOjpEZWxheWVkUmVwbHk+JiYgcmVwbHkpCit7CisgICAgUGFnZUNsaWVudFByb3RlY3RvciBw
cm90ZWN0b3IobV9wYWdlQ2xpZW50KTsKKworICAgIG1fZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VS
ZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICBtX3Jlc3BvbnNlUG9saWN5UmVwbHkgPSBXVEZNb3ZlKHJl
cGx5KTsKKworICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKGZyYW1lSUQsIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlw
ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxl
VG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggMDc4YmM0ZTRmZGM1NDJlY2FiNjY0NGZjYjExNmZhODg3NjUyNTk3
OS4uMTg5MzJjYjk2MTlhN2IyN2I5MTA3YjAwYzZmMTEyYzY4ODRhOWFlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTgyNCw2ICs4MjQsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwZXJmb3JtRGljdGlvbmFyeUxvb2t1cE9mQ3VycmVudFNlbGVjdGlvbigpOwogI2Vu
ZGlmCiAKKyAgICB2b2lkIHJlY2VpdmVkUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0
aW9uLCBXZWJGcmFtZVByb3h5JiwgdWludDY0X3QgbGlzdGVuZXJJRCwgQVBJOjpOYXZpZ2F0aW9u
KiBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYnNpdGVQb2xpY2llcyYpOworCiAgICAgdm9pZCBiYWNr
Rm9yd2FyZFJlbW92ZWRJdGVtKHVpbnQ2NF90IGl0ZW1JRCk7CiAKICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKSAgICAKQEAgLTEyNjMsNyArMTI2NSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRG
YWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9p
ZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwg
V2ViQ29yZTo6VVJMJiYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRDaGFuZ2VNYWlu
RG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgRG93bmxvYWRJRCBtYWtlRG93bmxvYWRQ
cm94eShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgdWludDY0X3QgbmF2aWdhdGlvbklEKTsK
IAogICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTEyODQsNiArMTI4
NSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24odWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYsIFJlZjxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uOjpEZWxheWVkUmVwbHk+JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBi
b29sIGNhblNob3dNSU1FVHlwZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEm
KTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU3luYyh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYsIFJlZjxNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JSZXNwb25zZVN5bmM6OkRlbGF5ZWRSZXBseT4mJik7CiAg
ICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKIApAQCAtMTc5Niw2ICsx
Nzk4LDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzSW5QcmludGluZ01vZGUgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiB7IGZhbHNlIH07CiAK
KyAgICBSZWZQdHI8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbjo6RGVsYXllZFJlcGx5PiBtX25hdmlnYXRpb25BY3Rpb25Qb2xpY3lSZXBseTsK
KyAgICB1aW50NjRfdCBtX25ld05hdmlnYXRpb25JRCB7IDAgfTsKKyAgICBSZWZQdHI8TWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTeW5jOjpEZWxheWVkUmVw
bHk+IG1fcmVzcG9uc2VQb2xpY3lSZXBseTsKKyAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
bV9kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVJlcXVlc3Q7CisKICAgICBib29sIG1fc2hvdWxkU3Vw
cHJlc3NBcHBMaW5rc0luTmV4dE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiB7IGZhbHNlIH07CiAK
ICAgICBEZXF1ZTxOYXRpdmVXZWJLZXlib2FyZEV2ZW50PiBtX2tleUV2ZW50UXVldWU7CkBAIC0x
OTk0LDYgKzIwMDEsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQb2ludGVyTG9ja2VkIHsg
ZmFsc2UgfTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERPV05MT0FEX0FUVFJJQlVURSkKKyAgICBi
b29sIG1fc3luY05hdmlnYXRpb25BY3Rpb25IYXNEb3dubG9hZEF0dHJpYnV0ZSB7IGZhbHNlIH07
CisjZW5kaWYKKwogICAgIGJvb2wgbV9pc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0wgeyBmYWxz
ZSB9OwogCiAgICAgV2Vha1B0ckZhY3Rvcnk8V2ViUGFnZVByb3h5PiBtX3dlYWtQdHJGYWN0b3J5
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNv
bnRyb2xsZXJJT1MubW0KaW5kZXggMzdjZWE4NTcwMWIwZjZjNjMyN2E2NzJhNTdmYjYxMDJhYTdk
ZjZmMC4uYTA4ZjIxZGI4YjBmNTkyZTdkMGQxYTc2NWQzODBmYjcxYmViYWRjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVy
SU9TLm1tCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBQTEFURk9STShJT1MpCiAKLSNpbXBvcnQg
IkFQSU5hdmlnYXRpb24uaCIKICNpbXBvcnQgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQg
IlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJv
bGxlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXJNYWMubW0KaW5kZXggMTBjNWNkMGE4OGMwNmU3NTZmZjZhODdhMjQ2MTkxMWE0Yzk4NjA0
OS4uNTRhZDc2MmIyZjJjMmM3NGU4OTAyMGY0MzI1NzY0Mjg0ZDk1ODQ5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFj
Lm1tCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKLSNpbXBvcnQgIkFQ
SU5hdmlnYXRpb24uaCIKICNpbXBvcnQgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIkZy
YW1lTG9hZFN0YXRlLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MmE0YjcyMmI2ZDYzMmUyMmU0
OThkZmM2YjU4ZTRhMGFhNDExMTZmLi42ODA3ZTkzY2RkYzg4YzA1YjJjYzYwYTcxNmFlYzdlNTQ0
NGQyMDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE4NTgsNiArMTg1OCw4IEBACiAJCUJDRTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAv
KiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTQ2OTUyMTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJG
b3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCAqLzsgfTsKIAkJQkNFNDY5NTkxMjE0RURGNDAw
MEI5OEVCIC8qIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0U0Njk1NzEyMTRFREY0MDAwQjk4RUIgLyog
V0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyLmNwcCAqLzsgfTsKIAkJQkNFNDY5NUExMjE0RURGNDAw
MEI5OEVCIC8qIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFNDY5NTgxMjE0RURGNDAwMEI5OEVCIC8qIFdL
Rm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUJDRTQ2OTc3MTIxNEYyN0IwMDBCOThFQiAvKiBXZWJGcmFtZUxp
c3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDRTQ2OTc2MTIxNEYyN0IwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuaCAq
LzsgfTsKKwkJQkNFNDY5NzkxMjE0RjJCNDAwMEI5OEVCIC8qIFdlYkZyYW1lTGlzdGVuZXJQcm94
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0U0
Njk3ODEyMTRGMkI0MDAwQjk4RUIgLyogV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcCAqLzsgfTsK
IAkJQkNFODFEOEMxMzE5RjdFRjAwMjQxOTEwIC8qIEZvbnRJbmZvLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTgxRDhBMTMxOUY3RUYwMDI0MTkx
MCAvKiBGb250SW5mby5jcHAgKi87IH07CiAJCUJDRTgxRDhEMTMxOUY3RUYwMDI0MTkxMCAvKiBG
b250SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNFODFEOEIxMzE5RjdFRjAwMjQxOTEwIC8qIEZvbnRJbmZvLmggKi87IH07CiAJCUJDRUU3QUQw
MTI4MTc5ODgwMDk4MjdEQSAvKiBXZWJQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRTdBQ0MxMjgx
Nzk4ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CkBAIC00MjM5LDYgKzQyNDEsOCBAQAogCQlCQ0U0Njk1MjEyMTRFNkNCMDAwQjk4RUIgLyogV2Vi
Rm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQ0U0Njk1NzEyMTRFREY0MDAwQjk4RUIgLyogV0tGb3JtU3VibWlzc2lv
bkxpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLRm9y
bVN1Ym1pc3Npb25MaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
RTQ2OTU4MTIxNEVERjQwMDBCOThFQiAvKiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDRTQ2OTc2MTIxNEYyN0IwMDBCOThFQiAv
KiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViRnJhbWVMaXN0ZW5lclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUJDRTQ2OTc4MTIxNEYyQjQwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnJhbWVMaXN0ZW5lclByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFODFEOEExMzE5RjdFRjAwMjQx
OTEwIC8qIEZvbnRJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEZvbnRJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFODFEOEIxMzE5
RjdFRjAwMjQxOTEwIC8qIEZvbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZvbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTlDMENGMTQ4
NTk2NUQwMEUzM0Q2MSAvKiBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY5NzksNiArNjk4Myw4IEBACiAJCQkJQkNF
NDY5NTAxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQuaCAqLywKIAkJCQlCQ0U0Njk1
MTEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmNwcCAq
LywKIAkJCQlCQ0U0Njk1MjEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybVN1Ym1pc3Npb25MaXN0
ZW5lclByb3h5LmggKi8sCisJCQkJQkNFNDY5NzgxMjE0RjJCNDAwMEI5OEVCIC8qIFdlYkZyYW1l
TGlzdGVuZXJQcm94eS5jcHAgKi8sCisJCQkJQkNFNDY5NzYxMjE0RjI3QjAwMEI5OEVCIC8qIFdl
YkZyYW1lTGlzdGVuZXJQcm94eS5oICovLAogCQkJCUJDQjlGNjlGMTEyM0E4NEIwMEExMzdFMCAv
KiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuY3BwICovLAogCQkJCUJDQjlGNjlFMTEyM0E4
NEIwMEExMzdFMCAvKiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCAqLywKIAkJCQlCQzEx
MUIwQTExMkY1RTRGMDAzMzdCQUIgLyogV2ViRnJhbWVQcm94eS5jcHAgKi8sCkBAIC04ODY1LDYg
Kzg4NzEsNyBAQAogCQkJCUJDRTQ2OTU0MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NjEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9y
bVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ4RDEw
RjQzN0EwMDA1OEMxNUEgLyogV2ViRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDRTQ2OTc3
MTIxNEYyN0IwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMDMyRDdGMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5MUYyQ0IxMjFCNjdBRDAwRUJGN0U4IC8qIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjlGNkEwMTEyM0E4NEIw
MEExMzdFMCAvKiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLApA
QCAtMTA0NzQsNiArMTA0ODEsNyBAQAogCQkJCUJDRTQ2OTUzMTIxNEU2Q0IwMDBCOThFQiAvKiBX
ZWJGb3JtQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTQ2OTU1MTIxNEU2Q0IwMDBC
OThFQiAvKiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkMxMTFBREQxMTJGNUI5MzAwMzM3QkFCIC8qIFdlYkZyYW1lLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUJDRTQ2OTc5MTIxNEYyQjQwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFBNUYxMTJGNEZCQjAwMzM3QkFCIC8qIFdl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEMjhGM0U3MTg4NUND
QzEwMDRCOUVBRSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTkzOTFGMkNBMTIxQjY3OUEwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lm1tIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>