<?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>299090</bug_id>
          
          <creation_ts>2025-09-18 07:25:33 -0700</creation_ts>
          <short_desc>REGRESSION(300146@main): Broke all Internal builds.</short_desc>
          <delta_ts>2025-09-18 07:32:47 -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>290306</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>calvaris</cc>
    
    <cc>rackler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2143958</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-09-18 07:25:33 -0700</bug_when>
    <thetext>https://commits.webkit.org/300146@main introduced a regression:
Broke all Internal builds.

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>2143960</commentid>
    <comment_count>1</comment_count>
      <attachid>476787</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-09-18 07:25:48 -0700</bug_when>
    <thetext>Created attachment 476787
REVERT of 300146@main

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 revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert 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>2143962</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-09-18 07:31:57 -0700</bug_when>
    <thetext>Committed 300156@main (ee061aef8242): &lt;https://commits.webkit.org/300156@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 476787.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2143963</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-09-18 07:32:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/160859292&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2143964</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-09-18 07:32:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/160859248&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476787</attachid>
            <date>2025-09-18 07:25:48 -0700</date>
            <delta_ts>2025-09-18 07:32:00 -0700</delta_ts>
            <desc>REVERT of 300146@main</desc>
            <filename>bug-299090-20250918142548.patch</filename>
            <type>text/plain</type>
            <size>82705</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA5MDRkOGUyNjkyY2IzMjI1ZTRhODViOWRmNTNhMzM2ZDM1OTIyNzVmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBUaHUsIDE4IFNlcCAyMDI1IDE0OjI1OjQ0ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDMwMDE0NkBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI5OTA5MAoKQnJva2UgYWxsIEludGVybmFsIGJ1aWxkcy4KClJl
dmVydGVkIGNoYW5nZXNldDoKCiJbR1N0cmVhbWVyXSBDaGFuZ2UgZ3N0U3RydWN0dXJlR2V0U3Ry
aW5nIGFuZCBOYW1lIHRvIHByb3Blcmx5IGhhbmRsZSBudWxsIHRlcm1pbmF0ZWQgc3RyaW5ncyIK
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDMwNgpodHRwczovL2Nv
bW1pdHMud2Via2l0Lm9yZy8zMDAxNDZAbWFpbgotLS0KIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogICAgICB8ICAgOCAtLQogU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQgICAgICAgICAgICAgICAgIHwgICAyIC0KIFNvdXJjZS9XVEYvd3RmL3RleHQvQ1N0cmlu
Z1ZpZXcuY3BwICAgICAgICAgICB8ICA0OCAtLS0tLS0tLQogU291cmNlL1dURi93dGYvdGV4dC9D
U3RyaW5nVmlldy5oICAgICAgICAgICAgIHwgMTExIC0tLS0tLS0tLS0tLS0tLS0tLQogU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmggICAgICAgICAgIHwgICA2IC0KIFNvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nQ29tbW9uLmggICAgICAgICAgICB8ICA0MyAtLS0tLS0tCiBTb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmggICAgICAgfCAgIDggLS0KIFNvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAgICAgICAgICAgICB8ICAgNiAtCiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaCAgICAgICAgICAgICAgfCAgMTAgLS0KIC4uLi9nc3Ry
ZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAgICAgICB8ICAxMCArLQogLi4uL2dzdHJl
YW1lci9HU3RyZWFtZXJSdHBSZWNlaXZlckJhY2tlbmQuY3BwIHwgICA0ICstCiAuLi4vZ3N0cmVh
bWVyL0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcCAgICAgfCAgIDIgKy0KIC4uLi9nc3RyZWFt
ZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwICAgICAgICB8ICAyNCArKy0tCiAuLi4vZ3N0cmVh
bWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmggICAgICAgICAgfCAgIDIgKy0KIC4uLi9pbnNwZWN0
b3IvYWdlbnRzL3BhZ2UvUGFnZUhlYXBBZ2VudC5jcHAgICB8ICAgMiArLQogU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCAgICAgICAgIHwgICAyICstCiAuLi4vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAgICAgfCAgOTQgKysrKysrKysrLS0tLS0tCiAu
Li4vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oICAgICAgfCAgMTcgKy0tCiAu
Li4vZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAgICAgfCAgIDUgKy0KIC4u
Li9HU3RyZWFtZXJWaWRlb0ZyYW1lQ29udmVydGVyLmNwcCAgICAgICAgICB8ICAgNiArLQogLi4u
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIHwgICA4ICstCiAuLi4v
Z3N0cmVhbWVyL1ZpZGVvRW5jb2RlckdTdHJlYW1lci5jcHAgICAgICAgfCAgIDUgKy0KIC4uLi9n
c3RyZWFtZXIvV2ViS2l0QXVkaW9TaW5rR1N0cmVhbWVyLmNwcCAgICB8ICAgMiArLQogLi4uYktp
dENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIHwgIDEyICstCiAuLi4vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAgfCAgMTYgKystCiAuLi4vbXNl
L0dTdHJlYW1lck1lZGlhRGVzY3JpcHRpb24uY3BwICAgICAgICAgfCAgIDIgKy0KIC4uLi9WaWRl
b0VuY29kZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgICAgICAgICB8ICAgMiArLQogLi4uL2dzdHJl
YW1lci9HU3RyZWFtZXJBdWRpb1JUUFBhY2tldGl6ZXIuY3BwIHwgICA5ICstCiAuLi4vR1N0cmVh
bWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwICAgICAgICAgfCAgIDYgKy0KIC4uLi9HU3RyZWFt
ZXJJbmNvbWluZ1RyYWNrUHJvY2Vzc29yLmNwcCAgICAgICB8ICAxNSArKy0KIC4uLi9nc3RyZWFt
ZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwICB8ICAgMiArLQogLi4uL2dzdHJlYW1l
ci9HU3RyZWFtZXJNb2NrRGV2aWNlUHJvdmlkZXIuY3BwIHwgICAyICstCiAuLi4vZ3N0cmVhbWVy
L0dTdHJlYW1lclZpZGVvUlRQUGFja2V0aXplci5jcHAgfCAgIDcgKy0KIC4uLi9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwICB8ICAgNCArLQogLi4uL1JlYWx0aW1lT3V0
Z29pbmdNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAgIHwgICA0ICstCiAuLi4vUmVhbHRpbWVPdXRn
b2luZ01lZGlhU291cmNlR1N0cmVhbWVyLmggICAgfCAgIDIgKy0KIC4uLi9HU3RyZWFtZXJWaWRl
b0RlY29kZXJGYWN0b3J5LmNwcCAgICAgICAgICB8ICAgMiArLQogLi4uL1BsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGUubW0gICAgICAgICAgICAgIHwgICA0ICstCiBUb29scy9UZXN0V2ViS2l0QVBJ
L0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgfCAgIDEgLQogLi4uL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgICA0IC0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0NTdHJpbmdWaWV3LmNwcCB8IDEwOSAtLS0tLS0tLS0tLS0tLS0tLQogNDEgZmlsZXMg
Y2hhbmdlZCwgMTQ5IGluc2VydGlvbnMoKyksIDQ3OSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvV1RGL3d0Zi90ZXh0L0NTdHJpbmdWaWV3LmNwcAogZGVsZXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XVEYvd3RmL3RleHQvQ1N0cmluZ1ZpZXcuaAogZGVsZXRlIG1vZGUgMTAw
NjQ0IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NTdHJpbmdWaWV3LmNwcAoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDA0ZTQyMjQzNWQ4OS4uYzI0
MjE1ODFiM2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTI1Nyw4ICsyNTcsNiBAQAogCQlDNTE5QzM2OTJEMzZDRTJFMDA2NDQxOEYgLyogU2VxdWVzdGVy
ZWRNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzUxOUMzNjgyRDM2Q0UyQjAwNjQ0MThGIC8qIFNlcXVlc3RlcmVkTWFsbG9jLmNwcCAqLzsg
fTsKIAkJQzgwNUVGMzlFNUYxNDQ4MUE5NkQzOUZDIC8qIEFTQ0lJTGl0ZXJhbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwNTA3OTBEOUM0MzJB
OTkwODVFNzUgLyogQVNDSUlMaXRlcmFsLmNwcCAqLzsgfTsKIAkJQ0Q1NDk3QUMxNTg1N0QwMzAw
QjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAq
LzsgfTsKLQkJQ0RENEFDNzkyRDlDMzA5QTAwRDExNDE0IC8qIENTdHJpbmdWaWV3LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERDRBQzc3MkQ5QzMw
OUEwMEQxMTQxNCAvKiBDU3RyaW5nVmlldy5jcHAgKi87IH07Ci0JCUNERDRBQzdBMkQ5QzMwOUEw
MEQxMTQxNCAvKiBDU3RyaW5nVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RENEFDNzgyRDlDMzA5QTAwRDExNDE0IC8qIENTdHJpbmdWaWV3Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0VBMDcy
QUEyMzZGRkJGNzAwMTg4MzlDIC8qIENyYXNoUmVwb3J0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0VBMDcyQTkyMzZGRkJGNzAwMTg4MzlDIC8q
IENyYXNoUmVwb3J0ZXIuY3BwICovOyB9OwogCQlEQ0VFMjIwMTFDRUE3NTUxMDAwQzIzOTYgLyog
QmxvY2tPYmpDRXhjZXB0aW9ucy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDRUUyMUZEMUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRp
b25zLm1tICovOyB9OwogCQlERDAzMDU5MzI3QjVEQTBEMDAzNDQwMDIgLyogU2lnbmVkUHRyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjJBOEQzMjI3
OERFNzRBMDAxNDEyMEMgLyogU2lnbmVkUHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE2NzEsOCArMTY2OSw2IEBACiAJCUNENTQ5N0FBMTU4
NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RDQzlCQzQyMjM4MkZDRTAwRkZCNTFDIC8qIEFnZ3JlZ2F0ZUxvZ2dlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBZ2dyZWdhdGVMb2dnZXIuaDsgcGF0aCA9IHd0Zi9B
Z2dyZWdhdGVMb2dnZXIuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwotCQlDREQ0QUM3
NzJEOUMzMDlBMDBEMTE0MTQgLyogQ1N0cmluZ1ZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ1N0cmluZ1ZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlDREQ0QUM3ODJEOUMzMDlBMDBEMTE0MTQgLyogQ1N0cmluZ1ZpZXcuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1N0cmluZ1ZpZXcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0UxMTMyODMyMzcwNjM0OTAwQThDODNCIC8qIEFuc2lDb2xvcnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQW5zaUNvbG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRUEwNzJBODIzNkZGQkY3MDAxODgzOUMgLyogQ3Jhc2hSZXBvcnRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDcmFzaFJlcG9ydGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFQTA3
MkE5MjM2RkZCRjcwMDE4ODM5QyAvKiBDcmFzaFJlcG9ydGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENyYXNoUmVwb3J0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg0
NCw4ICsyODQwLDYgQEAKIAkJCQkwRjhGMkI5QjE3MkYyNTk0MDA3REJEQTUgLyogQ29udmVyc2lv
bk1vZGUuaCAqLywKIAkJCQlBOEE0NzMyMTE1MUE4MjVCMDA0MTIzRkYgLyogQ1N0cmluZy5jcHAg
Ki8sCiAJCQkJQThBNDczMjIxNTFBODI1QjAwNDEyM0ZGIC8qIENTdHJpbmcuaCAqLywKLQkJCQlD
REQ0QUM3NzJEOUMzMDlBMDBEMTE0MTQgLyogQ1N0cmluZ1ZpZXcuY3BwICovLAotCQkJCUNERDRB
Qzc4MkQ5QzMwOUEwMEQxMTQxNCAvKiBDU3RyaW5nVmlldy5oICovLAogCQkJCTkzODUzREQyMjg3
NTVBNjYwMEZGNEUyQiAvKiBFc2NhcGVkRm9ybXNGb3JKU09OLmggKi8sCiAJCQkJNTBERTM1RjMy
MTVCQjAxNTAwQjk3OUM3IC8qIEV4dGVybmFsU3RyaW5nSW1wbC5jcHAgKi8sCiAJCQkJNTBERTM1
RjQyMTVCQjAxNTAwQjk3OUM3IC8qIEV4dGVybmFsU3RyaW5nSW1wbC5oICovLApAQCAtMzQ3MCw3
ICszNDY0LDYgQEAKIAkJCQlERDNEQzhGQzI3QTRCRjhFMDA3RTVCNjEgLyogQ3J5cHRvZ3JhcGhp
Y2FsbHlSYW5kb21OdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUREM0RDOEI3MjdBNEJGOEUw
MDdFNUI2MSAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
REYzMDdFMTI3QzA4NkRGMDA2QTUyNkYgLyogQ1N0cmluZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
Q0RENEFDN0EyRDlDMzA5QTAwRDExNDE0IC8qIENTdHJpbmdWaWV3LmggaW4gSGVhZGVycyAqLywK
IAkJCQlERDNEQzhFMzI3QTRCRjhFMDA3RTVCNjEgLyogRGF0YUxvZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJREQ0OTAxRTkyN0I0NzQ4QTAwRDdFNTBEIC8qIERhdGFNdXRleC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJREQzREM5NDIyN0E0QkY4RTAwN0U1QjYxIC8qIERhdGFSZWYuaCBpbiBIZWFkZXJz
ICovLApAQCAtNDM0NSw3ICs0MzM4LDYgQEAKIAkJCQlBOEE0NzM5QTE1MUE4MjVCMDA0MTIzRkYg
LyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzkxNTFBODI1QjAwNDEyM0ZGIC8qIENTdHJpbmcuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RENEFDNzkyRDlDMzA5QTAwRDExNDE0IC8qIENTdHJpbmdW
aWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlDMTUxQTgyNUIwMDQxMjNGRiAvKiBD
dXJyZW50VGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM5RTE1MUE4MjVCMDA0MTIz
RkYgLyogRGF0YUxvZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNBMDE1MUE4MjVCMDA0
MTIzRkYgLyogRGF0ZU1hdGguY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDRhYWFkOWQxYjFkNS4uOTc3NGFkZTkxN2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAt
NDU5LDcgKzQ1OSw2IEBAIHNldChXVEZfUFVCTElDX0hFQURFUlMKICAgICB0ZXh0L0F0b21TdHJp
bmdUYWJsZS5oCiAgICAgdGV4dC9CYXNlNjQuaAogICAgIHRleHQvQ1N0cmluZy5oCi0gICAgdGV4
dC9DU3RyaW5nVmlldy5oCiAgICAgdGV4dC9DaGFyYWN0ZXJQcm9wZXJ0aWVzLmgKICAgICB0ZXh0
L0NvZGVQb2ludEl0ZXJhdG9yLmgKICAgICB0ZXh0L0NvbnZlcnNpb25Nb2RlLmgKQEAgLTY0OSw3
ICs2NDgsNiBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICB0ZXh0L0F0b21TdHJpbmdUYWJsZS5jcHAK
ICAgICB0ZXh0L0Jhc2U2NC5jcHAKICAgICB0ZXh0L0NTdHJpbmcuY3BwCi0gICAgdGV4dC9DU3Ry
aW5nVmlldy5jcHAKICAgICB0ZXh0L0V4dGVybmFsU3RyaW5nSW1wbC5jcHAKICAgICB0ZXh0L0xp
bmVFbmRpbmcuY3BwCiAgICAgdGV4dC9TdHJpbmdCdWZmZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0NTdHJpbmdWaWV3LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQ1N0
cmluZ1ZpZXcuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5N2VlZjhmYTQ1Mjcu
LjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0NTdHJpbmdWaWV3LmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgg
WXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgotICogQ29weXJpZ2h0IChDKSAy
MDI0IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAy
NSBDb21jYXN0IEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAyNSBJZ2FsaWEgUy5MLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZ1ZpZXcuaD4KLQotI2luY2x1ZGUgPHd0Zi9Qcmlu
dFN0cmVhbS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L01ha2VTdHJpbmcuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLVN0cmluZyBDU3RyaW5n
Vmlldzo6dG9TdHJpbmcoKSBjb25zdAotewotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHNw
YW44KCkpOwotfQotCi12b2lkIENTdHJpbmdWaWV3OjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNv
bnN0Ci17Ci0gICAgb3V0LnByaW50KHNwYW44KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQ1N0cmluZ1ZpZXcuaCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQ1N0cmluZ1ZpZXcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmZhZTdmZTI4NDY5Li4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9DU3Ry
aW5nVmlldy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTExICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTggWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgotICogQ29w
eXJpZ2h0IChDKSAyMDI0IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAyNSBDb21jYXN0IEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAyNSBJZ2FsaWEg
Uy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2luY2x1ZGUgPHNwYW4+Ci0jaW5jbHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgPHR5
cGVfdHJhaXRzPgotI2luY2x1ZGUgPHd0Zi9Db21waWxlci5oPgotI2luY2x1ZGUgPHd0Zi9Gb3Ji
aWRIZWFwQWxsb2NhdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8
d3RmL0hhc2hGdW5jdGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvQVNDSUlMaXRlcmFsLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3VwZXJG
YXN0SGFzaC5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotY2xhc3MgUHJpbnRTdHJlYW07Ci1jbGFz
cyBTdHJpbmc7Ci0KLWNsYXNzIENTdHJpbmdWaWV3IGZpbmFsIHsKLSAgICBXVEZfRk9SQklEX0hF
QVBfQUxMT0NBVElPTjsKLXB1YmxpYzoKLSAgICBzdGF0aWMgQ1N0cmluZ1ZpZXcgdW5zYWZlRnJv
bVVURjgoY29uc3QgY2hhciogc3RyaW5nKQotICAgIHsKLSAgICAgICAgaWYgKCFzdHJpbmcpCi0g
ICAgICAgICAgICByZXR1cm4gQ1N0cmluZ1ZpZXcoKTsKLSAgICAgICAgcmV0dXJuIENTdHJpbmdW
aWV3KHVuc2FmZU1ha2VTcGFuKGJ5dGVDYXN0PGNoYXI4X3Q+KHN0cmluZyksIHN0ZDo6Y2hhcl90
cmFpdHM8Y2hhcj46Omxlbmd0aChzdHJpbmcpICsgMSkpOwotICAgIH0KLQotICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3Q7Ci0KLSAgICBDU3Ry
aW5nVmlldygpID0gZGVmYXVsdDsKLSAgICBjb25zdGV4cHIgQ1N0cmluZ1ZpZXcoc3RkOjpudWxs
cHRyX3QpCi0gICAgICAgIDogQ1N0cmluZ1ZpZXcoKQotICAgIHsgfQotICAgIENTdHJpbmdWaWV3
KEFTQ0lJTGl0ZXJhbCBsaXRlcmFsIExJRkVUSU1FX0JPVU5EKQotICAgIHsKLSAgICAgICAgaWYg
KCFsaXRlcmFsLmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX3NwYW5X
aXRoTnVsbFRlcm1pbmF0b3IgPSBieXRlQ2FzdDxjaGFyOF90PihsaXRlcmFsLnNwYW5JbmNsdWRp
bmdOdWxsVGVybWluYXRvcigpKTsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7
Ci0gICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3NwYW5XaXRoTnVsbFRlcm1pbmF0
b3IuZW1wdHkoKTsgfQotCi0gICAgY29uc3QgY2hhciogcmF3Q2hhcmFjdGVycygpIGNvbnN0IExJ
RkVUSU1FX0JPVU5EIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KG1fc3Bh
bldpdGhOdWxsVGVybWluYXRvci5kYXRhKCkpOyB9Ci0gICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fc3BhbldpdGhOdWxsVGVybWluYXRvci5zaXplKCkgPiAwID8gbV9zcGFuV2l0
aE51bGxUZXJtaW5hdG9yLnNpemUoKSAtIDEgOiAwOyB9Ci0gICAgc3RkOjpzcGFuPGNvbnN0IGNo
YXI4X3Q+IHNwYW44KCkgY29uc3QgTElGRVRJTUVfQk9VTkQgeyByZXR1cm4gbV9zcGFuV2l0aE51
bGxUZXJtaW5hdG9yLmZpcnN0KGxlbmd0aCgpKTsgfQotICAgIHN0ZDo6c3Bhbjxjb25zdCBjaGFy
OF90PiBzcGFuSW5jbHVkaW5nTnVsbFRlcm1pbmF0b3IoKSBjb25zdCBMSUZFVElNRV9CT1VORCB7
IHJldHVybiBtX3NwYW5XaXRoTnVsbFRlcm1pbmF0b3I7IH0KLSAgICBzaXplX3QgaXNFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3BhbldpdGhOdWxsVGVybWluYXRvci5zaXplKCkgPD0gMTsgfQot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKLQotICAgIGV4
cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhaXNFbXB0eSgpOyB9Ci0gICAg
Ym9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiBpc0VtcHR5KCk7IH0KLQotcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBDU3RyaW5nVmlldyhzdGQ6OnNwYW48Y29uc3QgY2hhcjhfdD4gc3Bhbldp
dGhOdWxsVGVybWluYXRvciBMSUZFVElNRV9CT1VORCkKLSAgICAgICAgOiBtX3NwYW5XaXRoTnVs
bFRlcm1pbmF0b3Ioc3BhbldpdGhOdWxsVGVybWluYXRvcikKLSAgICB7Ci0gICAgfQotCi0gICAg
c3RkOjpzcGFuPGNvbnN0IGNoYXI4X3Q+IG1fc3BhbldpdGhOdWxsVGVybWluYXRvcjsKLX07Ci0K
LWlubGluZSBib29sIG9wZXJhdG9yPT0oQ1N0cmluZ1ZpZXcgYSwgQ1N0cmluZ1ZpZXcgYikKLXsK
LSAgICBpZiAoIWEgfHwgIWIpCi0gICAgICAgIHJldHVybiBhLnJhd0NoYXJhY3RlcnMoKSA9PSBi
LnJhd0NoYXJhY3RlcnMoKTsKLSAgICByZXR1cm4gZXF1YWxTcGFucyhhLnNwYW44KCksIGIuc3Bh
bjgoKSk7Ci19Ci0KLWlubGluZSBib29sIG9wZXJhdG9yPT0oQ1N0cmluZ1ZpZXcgYSwgQVNDSUlM
aXRlcmFsIGIpCi17Ci0gICAgaWYgKCFhIHx8ICFiKQotICAgICAgICByZXR1cm4gYS5yYXdDaGFy
YWN0ZXJzKCkgPT0gYi5jaGFyYWN0ZXJzKCk7Ci0gICAgcmV0dXJuIGVxdWFsU3BhbnMoYS5zcGFu
OCgpLCBiLnNwYW4oKSk7Ci19Ci0KLS8vIENTdHJpbmdWaWV3IGlzIG51bGwgdGVybWluYXRlZAot
aW5saW5lIGNvbnN0IGNoYXIqIHNhZmVQcmludGZUeXBlKGNvbnN0IENTdHJpbmdWaWV3JiBzdHJp
bmcpIHsgcmV0dXJuIHN0cmluZy5yYXdDaGFyYWN0ZXJzKCk7IH0KLQotfSAvLyBuYW1lc3BhY2Ug
V1RGCi0KLXVzaW5nIFdURjo6Q1N0cmluZ1ZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oCmluZGV4IGQ5OTVhYTRiNjEwYS4uNmJmMjY2NDRjYjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaApAQCAtNjAsNyArNjAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmQo
Y29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBhcHBlbmQoU3RyaW5nVmlldyk7CiAgICAgdm9pZCBh
cHBlbmQoQVNDSUlMaXRlcmFsKTsKLSAgICB2b2lkIGFwcGVuZChDU3RyaW5nVmlldyk7CiAgICAg
dm9pZCBhcHBlbmQoY29uc3QgY2hhciopID0gZGVsZXRlOyAvLyBQYXNzIEFTQ0lJTGl0ZXJhbCBv
ciBzcGFuIGluc3RlYWQuCiAgICAgdm9pZCBhcHBlbmQoY2hhcjE2X3QpOwogICAgIHZvaWQgYXBw
ZW5kKExDaGFyKTsKQEAgLTIyOCwxMSArMjI3LDYgQEAgaW5saW5lIHZvaWQgU3RyaW5nQnVpbGRl
cjo6YXBwZW5kKEFTQ0lJTGl0ZXJhbCBzdHJpbmcpCiAgICAgYXBwZW5kKHN0cmluZy5zcGFuOCgp
KTsKIH0KIAotaW5saW5lIHZvaWQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kKENTdHJpbmdWaWV3IHN0
cmluZykKLXsKLSAgICBhcHBlbmQoc3RyaW5nLnNwYW44KCkpOwotfQotCiBpbmxpbmUgdm9pZCBT
dHJpbmdCdWlsZGVyOjphcHBlbmRTdWJzdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGFwcGVuZChTdHJpbmdWaWV3IHsg
c3RyaW5nIH0uc3Vic3RyaW5nKG9mZnNldCwgbGVuZ3RoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdD
b21tb24uaAppbmRleCBmN2Y3NTZmNjQ1ZWIuLjZhZDY1NzQzYmM4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb21tb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0NvbW1vbi5oCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSA8d3RmL1VuYWxpZ25l
ZEFjY2Vzcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJRmFzdFBhdGguaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9BU0NJSUxpdGVyYWwuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nVmll
dy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtMTM0LDEwICsxMzMsOCBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBTdHJpbmdDbGFzc0EsIHR5cGVuYW1lIFN0cmluZ0NsYXNzQj4gYm9vbCBlcXVhbEln
bm9yaW5nQVNDSUlDYQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIGVx
dWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0ZDo6c3Bhbjxjb25zdCBDaGFyYWN0ZXJUeXBl
Piwgc3RkOjpzcGFuPGNvbnN0IExDaGFyPiBsb3dlcmNhc2VMZXR0ZXJzKTsKIHRlbXBsYXRlPHR5
cGVuYW1lIENoYXJhY3RlclR5cGU+IGJvb2wgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
c3RkOjpzcGFuPGNvbnN0IENoYXJhY3RlclR5cGU+LCBBU0NJSUxpdGVyYWwpOwotdGVtcGxhdGU8
dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gYm9vbCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShzdGQ6OnNwYW48Y29uc3QgQ2hhcmFjdGVyVHlwZT4sIENTdHJpbmdWaWV3KTsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgU3RyaW5nQ2xhc3M+IGJvb2wgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2VDb21tb24oY29uc3QgU3RyaW5nQ2xhc3MmLCBBU0NJSUxpdGVyYWwpOwotdGVtcGxhdGU8dHlw
ZW5hbWUgU3RyaW5nQ2xhc3M+IGJvb2wgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2VDb21t
b24oY29uc3QgU3RyaW5nQ2xhc3MmLCBDU3RyaW5nVmlldyk7CiAKIGJvb2wgZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShjb25zdCBjaGFyKiwgY29uc3QgY2hhciopOwogCkBAIC03OTQsMTEgKzc5MSw2
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBib29sIGVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHN0ZDo6CiAgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKGNoYXJhY3RlcnMsIGxvd2VyY2FzZUxldHRlcnMuc3BhbjgoKSk7CiB9CiAK
LXRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGlubGluZSBib29sIGVxdWFsTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKHN0ZDo6c3Bhbjxjb25zdCBDaGFyYWN0ZXJUeXBlPiBjaGFyYWN0
ZXJzLCBDU3RyaW5nVmlldyBsb3dlcmNhc2VMZXR0ZXJzKQotewotICAgIHJldHVybiBlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjaGFyYWN0ZXJzLCBsb3dlcmNhc2VMZXR0ZXJzLnNwYW44
KCkpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdDbGFzcz4gYm9vbCBpbmxpbmUgaGFz
UHJlZml4V2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZUNvbW1vbihjb25zdCBTdHJpbmdDbGFz
cyYgc3RyaW5nLCBzdGQ6OnNwYW48Y29uc3QgTENoYXI+IGxvd2VyY2FzZUxldHRlcnMpCiB7CiAj
aWYgQVNTRVJUX0VOQUJMRUQKQEAgLTg0MCwxNiArODMyLDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
U3RyaW5nQ2xhc3M+IGlubGluZSBib29sIHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2VDb20KICAgICByZXR1cm4gc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZUNvbW1v
bihzdHJpbmcsIGxpdGVyYWwuc3BhbjgoKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFN0cmlu
Z0NsYXNzPiBpbmxpbmUgYm9vbCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZUNvbW1vbihj
b25zdCBTdHJpbmdDbGFzcyYgc3RyaW5nLCBDU3RyaW5nVmlldyB2aWV3KQotewotICAgIHJldHVy
biBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZUNvbW1vbihzdHJpbmcsIHZpZXcuc3Bhbjgo
KSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ0NsYXNzPiBpbmxpbmUgYm9vbCBzdGFy
dHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlQ29tbW9uKGNvbnN0IFN0cmluZ0NsYXNzJiBz
dHJpbmcsIENTdHJpbmdWaWV3IHZpZXcpCi17Ci0gICAgcmV0dXJuIHN0YXJ0c1dpdGhMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2VDb21tb24oc3RyaW5nLCB2aWV3LnNwYW44KCkpOwotfQotCiBpbmxp
bmUgYm9vbCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IGNoYXIqIGEsIGNvbnN0IGNoYXIq
IGIpCiB7CiAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodW5zYWZlU3BhbjgoYSks
IHVuc2FmZVNwYW44KGIpKTsKQEAgLTg3MCwzMSArODUyLDYgQEAgaW5saW5lIGJvb2wgZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShBU0NJSUxpdGVyYWwgYSwgQVNDSUlMaXRlcmFsIGIpCiAgICAgcmV0
dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYS5zcGFuOCgpLCBiLnNwYW44KCkpOwogfQogCi1p
bmxpbmUgYm9vbCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IGNoYXIqIHN0cmluZywgQ1N0
cmluZ1ZpZXcgdmlldykKLXsKLSAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh1bnNh
ZmVTcGFuOChzdHJpbmcpLCB2aWV3LnNwYW44KCkpOwotfQotCi1pbmxpbmUgYm9vbCBlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKENTdHJpbmdWaWV3IGEsIENTdHJpbmdWaWV3IGIpCi17Ci0gICAgcmV0
dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYS5zcGFuOCgpLCBiLnNwYW44KCkpOwotfQotCi1p
bmxpbmUgYm9vbCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShDU3RyaW5nVmlldyBhLCBB
U0NJSUxpdGVyYWwgYikKLXsKLSAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UoYS5zcGFuOCgpLCBiLnNwYW44KCkpOwotfQotCi1pbmxpbmUgYm9vbCBlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKENTdHJpbmdWaWV3IGEsIEFTQ0lJTGl0ZXJhbCBiKQotewotICAgIHJldHVybiBl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuc3BhbjgoKSwgYi5zcGFuOCgpKTsKLX0KLQotaW5saW5l
IGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShBU0NJSUxpdGVyYWwgYSwgQ1N0cmluZ1ZpZXcg
YikKLXsKLSAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLnNwYW44KCksIGIuc3Bh
bjgoKSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIEVsZW1lbnRUeXBlPgogaW5saW5lIHZvaWQg
Y29weUVsZW1lbnRzKHN0ZDo6c3BhbjxFbGVtZW50VHlwZT4gZGVzdGluYXRpb25TcGFuLCBzdGQ6
OnNwYW48Y29uc3QgRWxlbWVudFR5cGU+IHNvdXJjZVNwYW4pCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0NvbmNhdGVuYXRlLmgKaW5kZXggMGJmZTk2MTM5OTkyLi5hZGY3NTY3YmVjOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmgKQEAgLTI5NywxNCArMjk3LDYg
QEAgcHVibGljOgogICAgIH0KIH07CiAKLXRlbXBsYXRlPD4gY2xhc3MgU3RyaW5nVHlwZUFkYXB0
ZXI8Q1N0cmluZ1ZpZXcsIHZvaWQ+IDogcHVibGljIFN0cmluZ1R5cGVBZGFwdGVyPHN0ZDo6c3Bh
bjxjb25zdCBjaGFyOF90Piwgdm9pZD4gewotcHVibGljOgotICAgIFN0cmluZ1R5cGVBZGFwdGVy
KENTdHJpbmdWaWV3IGNoYXJhY3RlcnMpCi0gICAgICAgIDogU3RyaW5nVHlwZUFkYXB0ZXI8c3Rk
OjpzcGFuPGNvbnN0IGNoYXI4X3Q+LCB2b2lkPiB7IGNoYXJhY3RlcnMuc3BhbjgoKSB9Ci0gICAg
ewotICAgIH0KLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVzPiBjbGFzcyBT
dHJpbmdUeXBlQWRhcHRlcjxzdGQ6OnR1cGxlPFN0cmluZ1R5cGVzLi4uPiwgdm9pZD4gewogcHVi
bGljOgogICAgIFN0cmluZ1R5cGVBZGFwdGVyKGNvbnN0IHN0ZDo6dHVwbGU8U3RyaW5nVHlwZXMu
Li4+JiB0dXBsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3BwCmluZGV4IGU4MTM2YTdkZjVk
NS4uOGZmNGM5MzJjMmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJl
YW0uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAKQEAgLTE0Mywx
MiArMTQzLDYgQEAgVGV4dFN0cmVhbSYgVGV4dFN0cmVhbTo6b3BlcmF0b3I8PChBU0NJSUxpdGVy
YWwgc3RyaW5nKQogICAgIHJldHVybiAqdGhpczsKIH0KIAotVGV4dFN0cmVhbSYgVGV4dFN0cmVh
bTo6b3BlcmF0b3I8PChDU3RyaW5nVmlldyBzdHJpbmcpCi17Ci0gICAgbV90ZXh0LmFwcGVuZChz
dHJpbmcpOwotICAgIHJldHVybiAqdGhpczsKLX0KLQogVGV4dFN0cmVhbSYgVGV4dFN0cmVhbTo6
b3BlcmF0b3I8PChTdHJpbmdWaWV3IHN0cmluZykKIHsKICAgICBtX3RleHQuYXBwZW5kKHN0cmlu
Zyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCmluZGV4IDMyMzk0ZWM2ZjNiZC4uMzQyMGM2YzJj
MGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaApAQCAtODIsNyArODIsNiBAQCBwdWJsaWM6
CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoY29uc3QgU3Ry
aW5nJik7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoQVND
SUlMaXRlcmFsKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChTdHJpbmdWaWV3KTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChDU3RyaW5nVmlldyk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoY29uc3QgSGV4TnVtYmVyQnVmZmVyJik7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRF
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoY29uc3QgRm9ybWF0dGVkQ1NTTnVtYmVyJik7CiAgICAg
Ly8gRGVwcmVjYXRlZC4gVXNlIHRoZSBOdW1iZXJSZXNwZWN0aW5nSW50ZWdlcnMgRm9ybWF0dGlu
Z0ZsYWcgaW5zdGVhZC4KQEAgLTExNSwxNSArMTE0LDYgQEAgcHVibGljOgogICAgICAgICB0cy5l
bmRHcm91cCgpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgdm9pZCBk
dW1wUHJvcGVydHkoQ1N0cmluZ1ZpZXcgbmFtZSwgY29uc3QgVCYgdmFsdWUpCi0gICAgewotICAg
ICAgICBUZXh0U3RyZWFtJiB0cyA9ICp0aGlzOwotICAgICAgICB0cy5zdGFydEdyb3VwKCk7Ci0g
ICAgICAgIHRzIDw8IG5hbWUgPDwgJyAnIDw8IHZhbHVlOwotICAgICAgICB0cy5lbmRHcm91cCgp
OwotICAgIH0KLQogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgcmVsZWFzZSgpOwogICAg
IAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHN0YXJ0R3JvdXAoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1l
ZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggYzQ0YWNiZGU0Y2I3Li44NDZi
YTZlZmViYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhRW5kcG9pbnQuY3Bw
CkBAIC0xMTI3LDcgKzExMjcsNyBAQCBHUmVmUHRyPEdzdFBhZD4gR1N0cmVhbWVyTWVkaWFFbmRw
b2ludDo6cmVxdWVzdFBhZChjb25zdCBHUmVmUHRyPEdzdENhcHM+JiBhbGxvdwogICAgICAgICB9
CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBwYXlsb2FkVHlwZTsKICAgICAgICAgaWYgKGF1
dG8gZW5jb2RpbmdOYW1lID0gZ3N0U3RydWN0dXJlR2V0U3RyaW5nKHN0cnVjdHVyZSwgImVuY29k
aW5nLW5hbWUiX3MpKQotICAgICAgICAgICAgcGF5bG9hZFR5cGUgPSBwYXlsb2FkVHlwZUZvckVu
Y29kaW5nTmFtZShlbmNvZGluZ05hbWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBwYXlsb2Fk
VHlwZSA9IHBheWxvYWRUeXBlRm9yRW5jb2RpbmdOYW1lKGVuY29kaW5nTmFtZSk7CiAKICAgICAg
ICAgaWYgKCFwYXlsb2FkVHlwZSkgewogICAgICAgICAgICAgaWYgKGF2YWlsYWJsZVBheWxvYWRU
eXBlIDwgMTI4KQpAQCAtMTQ0MSw3ICsxNDQxLDcgQEAgdm9pZCBHU3RyZWFtZXJNZWRpYUVuZHBv
aW50Ojpjb25uZWN0SW5jb21pbmdUcmFjayhXZWJSVENUcmFja0RhdGEmIGRhdGEpCiAgICAgR1NU
X0RFQlVHX09CSkVDVChtX3BpcGVsaW5lLmdldCgpLCAiQ29ubmVjdGluZyBpbmNvbWluZyB0cmFj
ayB3aXRoIG1pZCAnJXMnIGFuZCBjYXBzICUiIEdTVF9QVFJfRk9STUFULCBkYXRhLm1pZC5hc2Np
aSgpLmRhdGEoKSwgY2Fwcy5nZXQoKSk7CiAgICAgaWYgKCFnc3RfY2Fwc19pc19lbXB0eShjYXBz
LmdldCgpKSAmJiAhZ3N0X2NhcHNfaXNfYW55KGNhcHMuZ2V0KCkpKSBbW2xpa2VseV1dIHsKICAg
ICAgICAgY29uc3QgYXV0byBzdHJ1Y3R1cmUgPSBnc3RfY2Fwc19nZXRfc3RydWN0dXJlKGNhcHMu
Z2V0KCksIDApOwotICAgICAgICBpZiAoYXV0byBlbmNvZGluZ05hbWUgPSBnc3RTdHJ1Y3R1cmVH
ZXRTdHJpbmcoc3RydWN0dXJlLCAiZW5jb2RpbmctbmFtZSJfcykpIHsKKyAgICAgICAgaWYgKGF1
dG8gZW5jb2RpbmdOYW1lID0gZ3N0U3RydWN0dXJlR2V0U3RyaW5nKHN0cnVjdHVyZSwgImVuY29k
aW5nLW5hbWUiKSkgewogICAgICAgICAgICAgaWYgKGVuY29kaW5nTmFtZSA9PSAiVEVMRVBIT05F
LUVWRU5UIl9zKSB7CiAgICAgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgp
LCAiU3RhcnRpbmcgaW5jb21pbmcgRFRNRiBzdHJlYW0iKTsKICAgICAgICAgICAgICAgICBnc3Rf
ZWxlbWVudF9zZXRfc3RhdGUobV9waXBlbGluZS5nZXQoKSwgR1NUX1NUQVRFX1BMQVlJTkcpOwpA
QCAtMjM3NSw3ICsyMzc1LDcgQEAgR1VuaXF1ZVB0cjxHc3RTdHJ1Y3R1cmU+IEdTdHJlYW1lck1l
ZGlhRW5kcG9pbnQ6OnByZXByb2Nlc3NTdGF0cyhjb25zdCBHUmVmUHRyPEcKICAgICAgICAgICAg
ICAgICBnc3Rfc3RydWN0dXJlX3NldChzdHJ1Y3R1cmUuZ2V0KCksICJmcmFtZS1oZWlnaHQiLCBH
X1RZUEVfVUlOVCwgKmZyYW1lSGVpZ2h0LCBudWxscHRyKTsKICAgICAgICAgICAgIGF1dG8gdHJh
Y2tJZGVudGlmaWVyID0gZ3N0U3RydWN0dXJlR2V0U3RyaW5nKGFkZGl0aW9uYWxTdGF0cy5nZXQo
KSwgInRyYWNrLWlkZW50aWZpZXIiX3MpOwogICAgICAgICAgICAgaWYgKCF0cmFja0lkZW50aWZp
ZXIuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0KHN0cnVjdHVy
ZS5nZXQoKSwgInRyYWNrLWlkZW50aWZpZXIiLCBHX1RZUEVfU1RSSU5HLCB0cmFja0lkZW50aWZp
ZXIucmF3Q2hhcmFjdGVycygpLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICBnc3Rfc3RydWN0
dXJlX3NldChzdHJ1Y3R1cmUuZ2V0KCksICJ0cmFjay1pZGVudGlmaWVyIiwgR19UWVBFX1NUUklO
RywgdHJhY2tJZGVudGlmaWVyLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKS51dGY4KCkuZGF0YSgp
LCBudWxscHRyKTsKICAgICAgICAgICAgIGF1dG8ga2luZCA9IGdzdFN0cnVjdHVyZUdldFN0cmlu
ZyhzdHJ1Y3R1cmUuZ2V0KCksICJraW5kIl9zKTsKICAgICAgICAgICAgIGlmIChraW5kID09ICJh
dWRpbyJfcykKICAgICAgICAgICAgICAgICBoYXNJbmJvdW5kQXVkaW9TdGF0cyA9IHRydWU7CkBA
IC0yNDE1LDkgKzI0MTUsOSBAQCBHVW5pcXVlUHRyPEdzdFN0cnVjdHVyZT4gR1N0cmVhbWVyTWVk
aWFFbmRwb2ludDo6cHJlcHJvY2Vzc1N0YXRzKGNvbnN0IEdSZWZQdHI8RwogICAgICAgICAgICAg
ICAgIGdzdF9zdHJ1Y3R1cmVfc2V0KHN0cnVjdHVyZS5nZXQoKSwgImZyYW1lcy1wZXItc2Vjb25k
IiwgR19UWVBFX0RPVUJMRSwgKmZyYW1lc1BlclNlY29uZCwgbnVsbHB0cik7CiAKICAgICAgICAg
ICAgIGlmIChhdXRvIG1pZFZhbHVlID0gZ3N0U3RydWN0dXJlR2V0U3RyaW5nKHNzcmNTdGF0cy5n
ZXQoKSwgIm1pZCJfcykpCi0gICAgICAgICAgICAgICAgZ3N0X3N0cnVjdHVyZV9zZXQoc3RydWN0
dXJlLmdldCgpLCAibWlkIiwgR19UWVBFX1NUUklORywgbWlkVmFsdWUucmF3Q2hhcmFjdGVycygp
LCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICBnc3Rfc3RydWN0dXJlX3NldChzdHJ1Y3R1cmUu
Z2V0KCksICJtaWQiLCBHX1RZUEVfU1RSSU5HLCBtaWRWYWx1ZS50b1N0cmluZygpLmFzY2lpKCku
ZGF0YSgpLCBudWxscHRyKTsKICAgICAgICAgICAgIGlmIChhdXRvIHJpZFZhbHVlID0gZ3N0U3Ry
dWN0dXJlR2V0U3RyaW5nKHNzcmNTdGF0cy5nZXQoKSwgInJpZCJfcykpCi0gICAgICAgICAgICAg
ICAgZ3N0X3N0cnVjdHVyZV9zZXQoc3RydWN0dXJlLmdldCgpLCAicmlkIiwgR19UWVBFX1NUUklO
RywgcmlkVmFsdWUucmF3Q2hhcmFjdGVycygpLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICBn
c3Rfc3RydWN0dXJlX3NldChzdHJ1Y3R1cmUuZ2V0KCksICJyaWQiLCBHX1RZUEVfU1RSSU5HLCBy
aWRWYWx1ZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBudWxscHRyKTsKICAgICAgICAgICAg
IGF1dG8ga2luZCA9IGdzdFN0cnVjdHVyZUdldFN0cmluZyhzdHJ1Y3R1cmUuZ2V0KCksICJraW5k
Il9zKTsKICAgICAgICAgICAgIGlmIChraW5kID09ICJhdWRpbyJfcykKICAgICAgICAgICAgICAg
ICBoYXNPdXRib3VuZEF1ZGlvU3RhdHMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwUmVjZWl2ZXJCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lclJ0cFJlY2VpdmVyQmFja2VuZC5jcHAKaW5kZXggNzNjNmNkZjZjYjVjLi4yY2NhMzIw
ZDM2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclJ0cFJlY2VpdmVyQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyUnRwUmVjZWl2ZXJCYWNr
ZW5kLmNwcApAQCAtNzUsOCArNzUsOCBAQCBSVENSdHBQYXJhbWV0ZXJzIEdTdHJlYW1lclJ0cFJl
Y2VpdmVyQmFja2VuZDo6Z2V0UGFyYW1ldGVycygpCiAKICAgICAgICAgYXV0byBtZWRpYSA9IGdz
dFN0cnVjdHVyZUdldFN0cmluZyhzdHJ1Y3R1cmUsICJtZWRpYSJfcyk7CiAgICAgICAgIGF1dG8g
ZW5jb2RpbmdOYW1lID0gZ3N0U3RydWN0dXJlR2V0U3RyaW5nKHN0cnVjdHVyZSwgImVuY29kaW5n
LW5hbWUiX3MpOwotICAgICAgICBpZiAoIW1lZGlhLmlzRW1wdHkoKSAmJiAhZW5jb2RpbmdOYW1l
LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGNvZGVjLm1pbWVUeXBlID0gbWFrZVN0cmluZyhtZWRp
YSwgJy8nLCBlbmNvZGluZ05hbWUudG9TdHJpbmcoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgp
KTsKKyAgICAgICAgaWYgKG1lZGlhICYmIGVuY29kaW5nTmFtZSkKKyAgICAgICAgICAgIGNvZGVj
Lm1pbWVUeXBlID0gbWFrZVN0cmluZyhtZWRpYSwgJy8nLCBlbmNvZGluZ05hbWUuY29udmVydFRv
QVNDSUlMb3dlcmNhc2UoKSk7CiAKICAgICAgICAgaWYgKGF1dG8gY2xvY2tSYXRlID0gZ3N0U3Ry
dWN0dXJlR2V0PHVpbnQ2NF90PihzdHJ1Y3R1cmUsICJjbG9jay1yYXRlIl9zKSkKICAgICAgICAg
ICAgIGNvZGVjLmNsb2NrUmF0ZSA9ICpjbG9ja1JhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKaW5kZXggZWI1OGZiOTQzZGExLi45MGFlZTM4MTlmOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lclN0YXRzQ29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJTdGF0c0NvbGxlY3Rvci5jcHAKQEAgLTIy
Nyw3ICsyMjcsNyBAQCBSVENTdGF0c1JlcG9ydDo6VHJhbnNwb3J0U3RhdHM6OlRyYW5zcG9ydFN0
YXRzKGNvbnN0IEdzdFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIC8vIHN0YXRzLnNydHBDaXBo
ZXIgPQogfQogCi1zdGF0aWMgaW5saW5lIFJUQ0ljZUNhbmRpZGF0ZVR5cGUgaWNlQ2FuZGlkYXRl
VHlwZShDU3RyaW5nVmlldyB0eXBlKQorc3RhdGljIGlubGluZSBSVENJY2VDYW5kaWRhdGVUeXBl
IGljZUNhbmRpZGF0ZVR5cGUoU3RyaW5nVmlldyB0eXBlKQogewogICAgIGlmICh0eXBlID09ICJo
b3N0Il9zKQogICAgICAgICByZXR1cm4gUlRDSWNlQ2FuZGlkYXRlVHlwZTo6SG9zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lcldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcAppbmRleCA1ZTM5MzViMzVjZDguLmQy
ODY0ODViMzgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyV2ViUlRDVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmNwcApA
QCAtNTg1LDcgKzU4NSw3IEBAIHVpbnQzMl90IFVuaXF1ZVNTUkNHZW5lcmF0b3I6OmdlbmVyYXRl
U1NSQygpCiAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKTsK
IH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IHBheWxvYWRUeXBlRm9yRW5jb2RpbmdOYW1lKGNvbnN0
IFN0cmluZyYgZW5jb2RpbmdOYW1lKQorc3RkOjpvcHRpb25hbDxpbnQ+IHBheWxvYWRUeXBlRm9y
RW5jb2RpbmdOYW1lKFN0cmluZ1ZpZXcgZW5jb2RpbmdOYW1lKQogewogICAgIHN0YXRpYyBIYXNo
TWFwPFN0cmluZywgaW50PiBzdGF0aWNQYXlsb2FkVHlwZXMgPSB7CiAgICAgICAgIHsgIlBDTVUi
X3MsIDAgfSwKQEAgLTU5Myw4ICs1OTMsOSBAQCBzdGQ6Om9wdGlvbmFsPGludD4gcGF5bG9hZFR5
cGVGb3JFbmNvZGluZ05hbWUoY29uc3QgU3RyaW5nJiBlbmNvZGluZ05hbWUpCiAgICAgICAgIHsg
Ikc3MjIiX3MsIDkgfSwKICAgICB9OwogCi0gICAgaWYgKHN0YXRpY1BheWxvYWRUeXBlcy5jb250
YWlucyhlbmNvZGluZ05hbWUpKQotICAgICAgICByZXR1cm4gc3RhdGljUGF5bG9hZFR5cGVzLmdl
dChlbmNvZGluZ05hbWUpOworICAgIGNvbnN0IGF1dG8ga2V5ID0gZW5jb2RpbmdOYW1lLnRvU3Ry
aW5nV2l0aG91dENvcHlpbmcoKTsKKyAgICBpZiAoc3RhdGljUGF5bG9hZFR5cGVzLmNvbnRhaW5z
KGtleSkpCisgICAgICAgIHJldHVybiBzdGF0aWNQYXlsb2FkVHlwZXMuZ2V0KGtleSk7CiAgICAg
cmV0dXJuIHsgfTsKIH0KIApAQCAtNjE3LDcgKzYxOCw3IEBAIEdSZWZQdHI8R3N0Q2Fwcz4gY2Fw
c0Zyb21SdHBDYXBhYmlsaXRpZXMoY29uc3QgUlRDUnRwQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRp
ZXMsCiAgICAgICAgICAgICBnc3Rfc3RydWN0dXJlX3NldChjb2RlY1N0cnVjdHVyZSwgImVuY29k
aW5nLXBhcmFtcyIsIEdfVFlQRV9TVFJJTkcsIG1ha2VTdHJpbmcoKmNvZGVjLmNoYW5uZWxzKS5h
c2NpaSgpLmRhdGEoKSwgbnVsbHB0cik7CiAKICAgICAgICAgaWYgKGF1dG8gZW5jb2RpbmdOYW1l
ID0gZ3N0U3RydWN0dXJlR2V0U3RyaW5nKGNvZGVjU3RydWN0dXJlLCAiZW5jb2RpbmctbmFtZSJf
cykpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIHBheWxvYWRUeXBlID0gcGF5bG9hZFR5cGVGb3JF
bmNvZGluZ05hbWUoZW5jb2RpbmdOYW1lLnRvU3RyaW5nKCkpKQorICAgICAgICAgICAgaWYgKGF1
dG8gcGF5bG9hZFR5cGUgPSBwYXlsb2FkVHlwZUZvckVuY29kaW5nTmFtZShlbmNvZGluZ05hbWUp
KQogICAgICAgICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0KGNvZGVjU3RydWN0dXJlLCAicGF5
bG9hZCIsIEdfVFlQRV9JTlQsICpwYXlsb2FkVHlwZSwgbnVsbHB0cik7CiAgICAgICAgIH0KIApA
QCAtNjkwLDcgKzY5MSw3IEBAIEdSZWZQdHI8R3N0Q2Fwcz4gY2Fwc0Zyb21TRFBNZWRpYShjb25z
dCBHc3RTRFBNZWRpYSogbWVkaWEpCiAgICAgICAgICAgICAgICAgImEtc2VuZG9ubHkiLCAiYS1y
ZWN2b25seSIsICJhLWVuZC1vZi1jYW5kaWRhdGVzIiwgbnVsbHB0cik7CiAKICAgICAgICAgICAg
IGlmIChhdXRvIG5hbWUgPSBnc3RTdHJ1Y3R1cmVHZXRTdHJpbmcoc3RydWN0dXJlLCAiZW5jb2Rp
bmctbmFtZSJfcykpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGVuY29kaW5nTmFtZSA9IG5hbWUu
dG9TdHJpbmcoKS5jb252ZXJ0VG9BU0NJSVVwcGVyY2FzZSgpOworICAgICAgICAgICAgICAgIGF1
dG8gZW5jb2RpbmdOYW1lID0gbmFtZS5jb252ZXJ0VG9BU0NJSVVwcGVyY2FzZSgpOwogICAgICAg
ICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0KHN0cnVjdHVyZSwgImVuY29kaW5nLW5hbWUiLCBH
X1RZUEVfU1RSSU5HLCBlbmNvZGluZ05hbWUuYXNjaWkoKS5kYXRhKCksIG51bGxwdHIpOwogICAg
ICAgICAgICAgfQogCkBAIC0xMDE1LDIwICsxMDE2LDE5IEBAIEdSZWZQdHI8R3N0Q2Fwcz4gZXh0
cmFjdE1pZEFuZFJpZEZyb21SVFBCdWZmZXIoY29uc3QgR3N0TWFwcGVkUnRwQnVmZmVyJiBidWZm
ZXIsCiAgICAgICAgIGdzdF9zZHBfbWVkaWFfYXR0cmlidXRlc190b19jYXBzKG1lZGlhLCBtZWRp
YUNhcHMuZ2V0KCkpOwogICAgICAgICBhdXRvIHMgPSBnc3RfY2Fwc19nZXRfc3RydWN0dXJlKG1l
ZGlhQ2Fwcy5nZXQoKSwgMCk7CiAgICAgICAgIGZvciAoaW50IGlpID0gMDsgaWkgPCBnc3Rfc3Ry
dWN0dXJlX25fZmllbGRzKHMpOyBpaSsrKSB7Ci0gICAgICAgICAgICBhdXRvIG5hbWUgPSBDU3Ry
aW5nVmlldzo6dW5zYWZlRnJvbVVURjgoZ3N0X3N0cnVjdHVyZV9udGhfZmllbGRfbmFtZShzLCBp
aSkpOwotICAgICAgICAgICAgYXV0byBuYW1lQXNTdHJpbmcgPSBuYW1lLnRvU3RyaW5nKCk7Ci0g
ICAgICAgICAgICBpZiAoIW5hbWVBc1N0cmluZy5zdGFydHNXaXRoKCJleHRtYXAtIl9zKSkKKyAg
ICAgICAgICAgIGF1dG8gbmFtZSA9IFN0cmluZ1ZpZXc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVy
ZV9udGhfZmllbGRfbmFtZShzLCBpaSkpOworICAgICAgICAgICAgaWYgKCFuYW1lLnN0YXJ0c1dp
dGgoImV4dG1hcC0iX3MpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAg
ICBhdXRvIHZhbHVlID0gZ3N0U3RydWN0dXJlR2V0U3RyaW5nKHMsIG5hbWUpOwotICAgICAgICAg
ICAgaWYgKHZhbHVlID09IENTdHJpbmdWaWV3Ojp1bnNhZmVGcm9tVVRGOChHU1RfUlRQX0hEUkVY
VF9CQVNFICJzZGVzOm1pZCIpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBpZCA9IHBhcnNlSW50
ZWdlcjx1aW50OF90PihuYW1lQXNTdHJpbmcuc3Vic3RyaW5nKDcpKTsKKyAgICAgICAgICAgIGlm
ICh2YWx1ZSA9PSBTdHJpbmdWaWV3Ojpmcm9tTGF0aW4xKEdTVF9SVFBfSERSRVhUX0JBU0UgInNk
ZXM6bWlkIikpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGlkID0gcGFyc2VJbnRlZ2VyPHVpbnQ4
X3Q+KG5hbWUuc3Vic3RyaW5nKDcpKTsKICAgICAgICAgICAgICAgICBpZiAoIWlkKSBbW3VubGlr
ZWx5XV0KICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgaWYg
KCppZCAmJiAqaWQgPCAxNSkKICAgICAgICAgICAgICAgICAgICAgbWlkRXh0SUQgPSAqaWQ7Ci0g
ICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09IENTdHJpbmdWaWV3Ojp1bnNhZmVGcm9tVVRG
OChHU1RfUlRQX0hEUkVYVF9CQVNFICJzZGVzOnJ0cC1zdHJlYW0taWQiKSkgewotICAgICAgICAg
ICAgICAgIGF1dG8gaWQgPSBwYXJzZUludGVnZXI8dWludDhfdD4obmFtZUFzU3RyaW5nLnN1YnN0
cmluZyg3KSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09IFN0cmluZ1ZpZXc6OmZy
b21MYXRpbjEoR1NUX1JUUF9IRFJFWFRfQkFTRSAic2RlczpydHAtc3RyZWFtLWlkIikpIHsKKyAg
ICAgICAgICAgICAgICBhdXRvIGlkID0gcGFyc2VJbnRlZ2VyPHVpbnQ4X3Q+KG5hbWUuc3Vic3Ry
aW5nKDcpKTsKICAgICAgICAgICAgICAgICBpZiAoIWlkKSBbW3VubGlrZWx5XV0KICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgaWYgKCppZCAmJiAqaWQgPCAx
NSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5oCmluZGV4IGZhNGJiMDg2ZTYz
My4uZDZlM2M2MjBmN2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJXZWJSVENVdGlscy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lcldlYlJUQ1V0aWxzLmgK
QEAgLTI4NCw3ICsyODQsNyBAQCBwcml2YXRlOgogICAgIFZlY3Rvcjx1aW50MzJfdD4gbV9rbm93
bklkcyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CiB9OwogCi1zdGQ6Om9wdGlvbmFsPGlu
dD4gcGF5bG9hZFR5cGVGb3JFbmNvZGluZ05hbWUoY29uc3QgU3RyaW5nJiBlbmNvZGluZ05hbWUp
Oworc3RkOjpvcHRpb25hbDxpbnQ+IHBheWxvYWRUeXBlRm9yRW5jb2RpbmdOYW1lKFN0cmluZ1Zp
ZXcgZW5jb2RpbmdOYW1lKTsKIAogV0FSTl9VTlVTRURfUkVUVVJOIEdSZWZQdHI8R3N0Q2Fwcz4g
Y2Fwc0Zyb21SdHBDYXBhYmlsaXRpZXMoY29uc3QgUlRDUnRwQ2FwYWJpbGl0aWVzJiwgRnVuY3Rp
b248dm9pZChHc3RTdHJ1Y3R1cmUqKT4gc3VwcGxlbWVudENhcHNDYWxsYmFjayk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVhcEFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVhcEFnZW50
LmNwcAppbmRleCA3YmQ3MzcwZDg2ZjEuLjA2YmM3YzhjZWE4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VIZWFwQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVhcEFnZW50LmNwcApAQCAt
NjQsNyArNjQsNyBAQCBJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IFBh
Z2VIZWFwQWdlbnQ6OmRpc2FibGUoKQogCiBTdHJpbmcgUGFnZUhlYXBBZ2VudDo6aGVhcFNuYXBz
aG90QnVpbGRlck92ZXJyaWRlQ2xhc3NOYW1lKEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYgYnVp
bGRlciwgSlNDOjpKU0NlbGwqIGNlbGwsIGNvbnN0IFN0cmluZyYgY3VycmVudENsYXNzTmFtZSkK
IHsKLSAgICBpZiAoY3VycmVudENsYXNzTmFtZSA9PSAiSFRNTEVsZW1lbnQiX3MpIHsKKyAgICBp
ZiAoY3VycmVudENsYXNzTmFtZSA9PSAiSFRNTEVsZW1lbnQiKSB7CiAgICAgICAgIGlmIChhdXRv
KiBqc0VsZW1lbnQgPSBqc0R5bmFtaWNDYXN0PEpTRWxlbWVudCo+KGNlbGwpKSB7CiAgICAgICAg
ICAgICBSZWYgZWxlbWVudCA9IGpzRWxlbWVudC0+d3JhcHBlZCgpOwogICAgICAgICAgICAgaWYg
KGVsZW1lbnQtPmlzRGVmaW5lZEN1c3RvbUVsZW1lbnQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKaW5kZXggYWM3OGNiOWZhMjIwLi43NGI5OWY0ZjMyNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzIzMyw3ICszMjMzLDcgQEAgU3RyaW5n
IEZyYW1lTG9hZGVyOjp1c2VyQWdlbnQoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAgICAgICAgICAg
ICBhdXRvIHRvcEZ1bGxVUkxQYXRoID0gdG9wRnVsbFVSTC5wYXRoKCk7CiAgICAgICAgICAgICBp
ZiAoUmVnaXN0cmFibGVEb21haW4odG9wRnVsbFVSTCkuc3RyaW5nKCkgPT0gImVhc3lqZXQuY29t
Il9zICYmIHRvcEZ1bGxVUkxQYXRoLmNvbnRhaW5zKCJyb3V0ZW1hcCJfcykpIHsKICAgICAgICAg
ICAgICAgICBhdXRvIHVybERvbWFpblN0cmluZyA9IFJlZ2lzdHJhYmxlRG9tYWluKHVybCkuc3Ry
aW5nKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHVybERvbWFpblN0cmluZyA9PSAiYmluZy5jb20i
X3MpIHsKKyAgICAgICAgICAgICAgICBpZiAodXJsRG9tYWluU3RyaW5nID09ICJiaW5nLmNvbSIp
IHsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IE1vdmUgdGhpcyB0byBhIHByb3BlciBV
QSBvdmVycmlkZSBzaW5ndWxhciBtZWNoYW5pc20KICAgICAgICAgICAgICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDM3NAogICAgICAgICAgICAg
ICAgICAgICB1c2VyQWdlbnQgPSAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9T
IFggMTAuMTU7IHJ2OjEzNS4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzEzNS4wIl9zOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lckNvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvR1N0cmVhbWVyQ29tbW9uLmNwcAppbmRleCBjOGExMjg5YzllNmMuLmIxMmNkMzFlZGYxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dT
dHJlYW1lckNvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5jcHAKQEAgLTEyMSwxNSArMTIxLDE1IEBAIFdURl9N
QUtFX1RaT05FX0FMTE9DQVRFRF9JTVBMKFdlYkNvcmVMb2dPYnNlcnZlcik7CiAKIHN0YXRpYyBH
c3RDbG9ja1RpbWUgc193ZWJraXRHc3RJbml0VGltZTsKIAotV0FSTl9VTlVTRURfUkVUVVJOIEdz
dFBhZCogd2Via2l0R3N0R2hvc3RQYWRGcm9tU3RhdGljVGVtcGxhdGUoR3N0U3RhdGljUGFkVGVt
cGxhdGUqIHN0YXRpY1BhZFRlbXBsYXRlLCBDU3RyaW5nVmlldyBuYW1lLCBHc3RQYWQqIHRhcmdl
dCkKK1dBUk5fVU5VU0VEX1JFVFVSTiBHc3RQYWQqIHdlYmtpdEdzdEdob3N0UGFkRnJvbVN0YXRp
Y1RlbXBsYXRlKEdzdFN0YXRpY1BhZFRlbXBsYXRlKiBzdGF0aWNQYWRUZW1wbGF0ZSwgQVNDSUlM
aXRlcmFsIG5hbWUsIEdzdFBhZCogdGFyZ2V0KQogewogICAgIEdzdFBhZCogcGFkOwogICAgIEdS
ZWZQdHIgcGFkVGVtcGxhdGUgPSBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQoc3RhdGljUGFk
VGVtcGxhdGUpOwogCiAgICAgaWYgKHRhcmdldCkKLSAgICAgICAgcGFkID0gZ3N0X2dob3N0X3Bh
ZF9uZXdfZnJvbV90ZW1wbGF0ZShuYW1lLnJhd0NoYXJhY3RlcnMoKSwgdGFyZ2V0LCBwYWRUZW1w
bGF0ZS5nZXQoKSk7CisgICAgICAgIHBhZCA9IGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxh
dGUobmFtZS5jaGFyYWN0ZXJzKCksIHRhcmdldCwgcGFkVGVtcGxhdGUuZ2V0KCkpOwogICAgIGVs
c2UKLSAgICAgICAgcGFkID0gZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxh
dGUobmFtZS5yYXdDaGFyYWN0ZXJzKCksIHBhZFRlbXBsYXRlLmdldCgpKTsKKyAgICAgICAgcGFk
ID0gZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUobmFtZS5jaGFyYWN0
ZXJzKCksIHBhZFRlbXBsYXRlLmdldCgpKTsKIAogICAgIHJldHVybiBwYWQ7CiB9CkBAIC0yOTUs
NyArMjk1LDcgQEAgc3RkOjpvcHRpb25hbDxUcmFja0lEPiBwYXJzZVN0cmVhbUlkKFN0cmluZ1Zp
ZXcgc3RyaW5nSWQpCiAgICAgcmV0dXJuIHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5r
PFRyYWNrSUQ+KHN0cmluZ0lkLnN1YnN0cmluZyhwb3NpdGlvbiArIDEpKTsKIH0KIAotQ1N0cmlu
Z1ZpZXcgY2Fwc01lZGlhVHlwZShjb25zdCBHc3RDYXBzKiBjYXBzKQorU3RyaW5nVmlldyBjYXBz
TWVkaWFUeXBlKGNvbnN0IEdzdENhcHMqIGNhcHMpCiB7CiAgICAgQVNTRVJUKGNhcHMpOwogICAg
IEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZShjYXBzLCAw
KTsKQEAgLTMyMCw3ICszMjAsNyBAQCBib29sIGRvQ2Fwc0hhdmVUeXBlKGNvbnN0IEdzdENhcHMq
IGNhcHMsIEFTQ0lJTGl0ZXJhbCB0eXBlKQogICAgICAgICBHU1RfV0FSTklORygiRmFpbGVkIHRv
IGdldCBNZWRpYVR5cGUiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1
cm4gbWVkaWFUeXBlLnRvU3RyaW5nKCkuc3RhcnRzV2l0aCh0eXBlKTsKKyAgICByZXR1cm4gbWVk
aWFUeXBlLnN0YXJ0c1dpdGgodHlwZSk7CiB9CiAKIGJvb2wgYXJlRW5jcnlwdGVkQ2Fwcyhjb25z
dCBHc3RDYXBzKiBjYXBzKQpAQCAtMTE2MSw3ICsxMTYxLDEzIEBAIHN0YXRpYyBBU0NJSUxpdGVy
YWwgd2VicnRjSWNlVGNwQ2FuZGlkYXRlVHlwZU5hbWUoaW50IHZhbHVlKQogI2VuZGlmIC8vIFVT
RShHU1RSRUFNRVJfV0VCUlRDKQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RkOjpvcHRpb25h
bDxUPiBnc3RTdHJ1Y3R1cmVHZXQoY29uc3QgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENTdHJp
bmdWaWV3IGtleSkKK3N0ZDo6b3B0aW9uYWw8VD4gZ3N0U3RydWN0dXJlR2V0KGNvbnN0IEdzdFN0
cnVjdHVyZSogc3RydWN0dXJlLCBBU0NJSUxpdGVyYWwga2V5KQoreworICAgIHJldHVybiBnc3RT
dHJ1Y3R1cmVHZXQ8VD4oc3RydWN0dXJlLCBTdHJpbmdWaWV3IHsga2V5IH0pOworfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgorc3RkOjpvcHRpb25hbDxUPiBnc3RTdHJ1Y3R1cmVHZXQoY29uc3Qg
R3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN0cmluZ1ZpZXcga2V5KQogewogICAgIGlmICghc3Ry
dWN0dXJlKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoInRyaWVk
IHRvIGFjY2VzcyBhIGZpZWxkIG9mIGEgbnVsbCBHc3RTdHJ1Y3R1cmUiKTsKQEAgLTExNjksMjQg
KzExNzUsMjUgQEAgc3RkOjpvcHRpb25hbDxUPiBnc3RTdHJ1Y3R1cmVHZXQoY29uc3QgR3N0U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIENTdHJpbmdWaWV3IGtleSkKICAgICB9CiAKICAgICBUIHZhbHVl
OworICAgIGF1dG8gc3RyS2V5ID0ga2V5LnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKTsKICAgICBp
ZiBjb25zdGV4cHIoc3RkOjppc19zYW1lX3Y8VCwgaW50PikgewotICAgICAgICBpZiAoZ3N0X3N0
cnVjdHVyZV9nZXRfaW50KHN0cnVjdHVyZSwga2V5LnJhd0NoYXJhY3RlcnMoKSwgJnZhbHVlKSkK
KyAgICAgICAgaWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0X2ludChzdHJ1Y3R1cmUsIHN0cktleS5hc2Np
aSgpLmRhdGEoKSwgJnZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9IGVs
c2UgaWYgY29uc3RleHByKHN0ZDo6aXNfc2FtZV92PFQsIGludDY0X3Q+KSB7Ci0gICAgICAgIGlm
IChnc3Rfc3RydWN0dXJlX2dldF9pbnQ2NChzdHJ1Y3R1cmUsIGtleS5yYXdDaGFyYWN0ZXJzKCks
ICZ2YWx1ZSkpCisgICAgICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF9pbnQ2NChzdHJ1Y3R1cmUs
IHN0cktleS5hc2NpaSgpLmRhdGEoKSwgJnZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiB2YWx1
ZTsKICAgICB9IGVsc2UgaWYgY29uc3RleHByKHN0ZDo6aXNfc2FtZV92PFQsIHVuc2lnbmVkPikg
ewotICAgICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludChzdHJ1Y3R1cmUsIGtleS5yYXdD
aGFyYWN0ZXJzKCksICZ2YWx1ZSkpCisgICAgICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF91aW50
KHN0cnVjdHVyZSwgc3RyS2V5LmFzY2lpKCkuZGF0YSgpLCAmdmFsdWUpKQogICAgICAgICAgICAg
cmV0dXJuIHZhbHVlOwogICAgIH0gZWxzZSBpZiBjb25zdGV4cHIoc3RkOjppc19zYW1lX3Y8VCwg
dWludDY0X3Q+KSB7Ci0gICAgICAgIGlmIChnc3Rfc3RydWN0dXJlX2dldF91aW50NjQoc3RydWN0
dXJlLCBrZXkucmF3Q2hhcmFjdGVycygpLCAmdmFsdWUpKQorICAgICAgICBpZiAoZ3N0X3N0cnVj
dHVyZV9nZXRfdWludDY0KHN0cnVjdHVyZSwgc3RyS2V5LmFzY2lpKCkuZGF0YSgpLCAmdmFsdWUp
KQogICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH0gZWxzZSBpZiBjb25zdGV4cHIoc3Rk
Ojppc19zYW1lX3Y8VCwgZG91YmxlPikgewotICAgICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRf
ZG91YmxlKHN0cnVjdHVyZSwga2V5LnJhd0NoYXJhY3RlcnMoKSwgJnZhbHVlKSkKKyAgICAgICAg
aWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0X2RvdWJsZShzdHJ1Y3R1cmUsIHN0cktleS5hc2NpaSgpLmRh
dGEoKSwgJnZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9IGVsc2UgaWYg
Y29uc3RleHByKHN0ZDo6aXNfc2FtZV92PFQsIGJvb2w+KSB7CiAgICAgICAgIGdib29sZWFuIGdz
dFZhbHVlOwotICAgICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXRfYm9vbGVhbihzdHJ1Y3R1cmUs
IGtleS5yYXdDaGFyYWN0ZXJzKCksICZnc3RWYWx1ZSkpIHsKKyAgICAgICAgaWYgKGdzdF9zdHJ1
Y3R1cmVfZ2V0X2Jvb2xlYW4oc3RydWN0dXJlLCBzdHJLZXkuYXNjaWkoKS5kYXRhKCksICZnc3RW
YWx1ZSkpIHsKICAgICAgICAgICAgIHZhbHVlID0gZ3N0VmFsdWU7CiAgICAgICAgICAgICByZXR1
cm4gdmFsdWU7CiAgICAgICAgIH0KQEAgLTExOTUsNDUgKzEyMDIsNjAgQEAgc3RkOjpvcHRpb25h
bDxUPiBnc3RTdHJ1Y3R1cmVHZXQoY29uc3QgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENTdHJp
bmdWaWV3IGtleSkKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi10ZW1wbGF0ZSBzdGQ6
Om9wdGlvbmFsPGludD4gZ3N0U3RydWN0dXJlR2V0KGNvbnN0IEdzdFN0cnVjdHVyZSosIENTdHJp
bmdWaWV3IGtleSk7Ci10ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPGludDY0X3Q+IGdzdFN0cnVjdHVy
ZUdldChjb25zdCBHc3RTdHJ1Y3R1cmUqLCBDU3RyaW5nVmlldyBrZXkpOwotdGVtcGxhdGUgc3Rk
OjpvcHRpb25hbDx1bnNpZ25lZD4gZ3N0U3RydWN0dXJlR2V0KGNvbnN0IEdzdFN0cnVjdHVyZSos
IENTdHJpbmdWaWV3IGtleSk7Ci10ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBnc3RT
dHJ1Y3R1cmVHZXQoY29uc3QgR3N0U3RydWN0dXJlKiwgQ1N0cmluZ1ZpZXcga2V5KTsKLXRlbXBs
YXRlIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBnc3RTdHJ1Y3R1cmVHZXQoY29uc3QgR3N0U3RydWN0
dXJlKiwgQ1N0cmluZ1ZpZXcga2V5KTsKLXRlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZ3N0
U3RydWN0dXJlR2V0KGNvbnN0IEdzdFN0cnVjdHVyZSosIENTdHJpbmdWaWV3IGtleSk7Cit0ZW1w
bGF0ZSBzdGQ6Om9wdGlvbmFsPGludD4gZ3N0U3RydWN0dXJlR2V0KGNvbnN0IEdzdFN0cnVjdHVy
ZSosIEFTQ0lJTGl0ZXJhbCBrZXkpOwordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxpbnQ2NF90PiBn
c3RTdHJ1Y3R1cmVHZXQoY29uc3QgR3N0U3RydWN0dXJlKiwgQVNDSUlMaXRlcmFsIGtleSk7Cit0
ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBnc3RTdHJ1Y3R1cmVHZXQoY29uc3QgR3N0
U3RydWN0dXJlKiwgQVNDSUlMaXRlcmFsIGtleSk7Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPHVp
bnQ2NF90PiBnc3RTdHJ1Y3R1cmVHZXQoY29uc3QgR3N0U3RydWN0dXJlKiwgQVNDSUlMaXRlcmFs
IGtleSk7Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZ3N0U3RydWN0dXJlR2V0KGNv
bnN0IEdzdFN0cnVjdHVyZSosIEFTQ0lJTGl0ZXJhbCBrZXkpOwordGVtcGxhdGUgc3RkOjpvcHRp
b25hbDxib29sPiBnc3RTdHJ1Y3R1cmVHZXQoY29uc3QgR3N0U3RydWN0dXJlKiwgQVNDSUlMaXRl
cmFsIGtleSk7CisKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8aW50PiBnc3RTdHJ1Y3R1cmVHZXQo
Y29uc3QgR3N0U3RydWN0dXJlKiwgU3RyaW5nVmlldyBrZXkpOwordGVtcGxhdGUgc3RkOjpvcHRp
b25hbDxpbnQ2NF90PiBnc3RTdHJ1Y3R1cmVHZXQoY29uc3QgR3N0U3RydWN0dXJlKiwgU3RyaW5n
VmlldyBrZXkpOwordGVtcGxhdGUgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gZ3N0U3RydWN0dXJl
R2V0KGNvbnN0IEdzdFN0cnVjdHVyZSosIFN0cmluZ1ZpZXcga2V5KTsKK3RlbXBsYXRlIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IGdzdFN0cnVjdHVyZUdldChjb25zdCBHc3RTdHJ1Y3R1cmUqLCBT
dHJpbmdWaWV3IGtleSk7Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZ3N0U3RydWN0
dXJlR2V0KGNvbnN0IEdzdFN0cnVjdHVyZSosIFN0cmluZ1ZpZXcga2V5KTsKK3RlbXBsYXRlIHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gZ3N0U3RydWN0dXJlR2V0KGNvbnN0IEdzdFN0cnVjdHVyZSosIFN0
cmluZ1ZpZXcga2V5KTsKIAotQ1N0cmluZ1ZpZXcgZ3N0U3RydWN0dXJlR2V0U3RyaW5nKGNvbnN0
IEdzdFN0cnVjdHVyZSogc3RydWN0dXJlLCBDU3RyaW5nVmlldyBrZXkpCitTdHJpbmdWaWV3IGdz
dFN0cnVjdHVyZUdldFN0cmluZyhjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQVNDSUlM
aXRlcmFsIGtleSkKIHsKICAgICBpZiAoIXN0cnVjdHVyZSkgewogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRURfV0lUSF9NRVNTQUdFKCJ0cmllZCB0byBhY2Nlc3MgYSBmaWVsZCBvZiBhIG51bGwg
R3N0U3RydWN0dXJlIik7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgY29uc3Qg
R1ZhbHVlKiB2YWx1ZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlKHN0cnVjdHVyZSwga2V5LnJh
d0NoYXJhY3RlcnMoKSk7Ci0gICAgaWYgKCF2YWx1ZSB8fCAhR19WQUxVRV9IT0xEU19TVFJJTkco
dmFsdWUpKQorICAgIHJldHVybiBnc3RTdHJ1Y3R1cmVHZXRTdHJpbmcoc3RydWN0dXJlLCBTdHJp
bmdWaWV3IHsga2V5IH0pOworfQorCitTdHJpbmdWaWV3IGdzdFN0cnVjdHVyZUdldFN0cmluZyhj
b25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3RyaW5nVmlldyBrZXkpCit7CisgICAgaWYg
KCFzdHJ1Y3R1cmUpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgi
dHJpZWQgdG8gYWNjZXNzIGEgZmllbGQgb2YgYSBudWxsIEdzdFN0cnVjdHVyZSIpOwogICAgICAg
ICByZXR1cm4geyB9OwotICAgIHJldHVybiBDU3RyaW5nVmlldzo6dW5zYWZlRnJvbVVURjgoZ192
YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7CisgICAgfQorCisgICAgYXV0byB1dGY4U3RyaW5nID0g
a2V5LnV0ZjgoKTsKKyAgICByZXR1cm4gU3RyaW5nVmlldzo6ZnJvbUxhdGluMShnc3Rfc3RydWN0
dXJlX2dldF9zdHJpbmcoc3RydWN0dXJlLCB1dGY4U3RyaW5nLmRhdGEoKSkpOwogfQogCi1DU3Ry
aW5nVmlldyBnc3RTdHJ1Y3R1cmVHZXROYW1lKGNvbnN0IEdzdFN0cnVjdHVyZSogc3RydWN0dXJl
KQorU3RyaW5nVmlldyBnc3RTdHJ1Y3R1cmVHZXROYW1lKGNvbnN0IEdzdFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewogICAgIGlmICghc3RydWN0dXJlKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRF9XSVRIX01FU1NBR0UoInRyaWVkIHRvIGFjY2VzcyBhIGZpZWxkIG9mIGEgbnVsbCBHc3RT
dHJ1Y3R1cmUiKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICByZXR1cm4gQ1N0
cmluZ1ZpZXc6OnVuc2FmZUZyb21VVEY4KGdzdF9zdHJ1Y3R1cmVfZ2V0X25hbWUoc3RydWN0dXJl
KSk7CisgICAgcmV0dXJuIFN0cmluZ1ZpZXc6OmZyb21MYXRpbjEoZ3N0X3N0cnVjdHVyZV9nZXRf
bmFtZShzdHJ1Y3R1cmUpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLVZlY3RvcjxUPiBn
c3RTdHJ1Y3R1cmVHZXRBcnJheShjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ1N0cmlu
Z1ZpZXcga2V5KQorVmVjdG9yPFQ+IGdzdFN0cnVjdHVyZUdldEFycmF5KGNvbnN0IEdzdFN0cnVj
dHVyZSogc3RydWN0dXJlLCBBU0NJSUxpdGVyYWwga2V5KQogewogICAgIHN0YXRpY19hc3NlcnQo
c3RkOjppc19zYW1lX3Y8VCwgaW50PiB8fCBzdGQ6OmlzX3NhbWVfdjxULCBpbnQ2NF90PiB8fCBz
dGQ6OmlzX3NhbWVfdjxULCB1bnNpZ25lZD4KICAgICAgICAgfHwgc3RkOjppc19zYW1lX3Y8VCwg
dWludDY0X3Q+IHx8IHN0ZDo6aXNfc2FtZV92PFQsIGRvdWJsZT4gfHwgc3RkOjppc19zYW1lX3Y8
VCwgY29uc3QgR3N0U3RydWN0dXJlKj4pOwogICAgIFZlY3RvcjxUPiByZXN1bHQ7CiAgICAgaWYg
KCFzdHJ1Y3R1cmUpCiAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgY29uc3QgR1ZhbHVlKiBh
cnJheSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlKHN0cnVjdHVyZSwga2V5LnJhd0NoYXJhY3Rl
cnMoKSk7CisgICAgY29uc3QgR1ZhbHVlKiBhcnJheSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVl
KHN0cnVjdHVyZSwga2V5LmNoYXJhY3RlcnMoKSk7CiAgICAgaWYgKCFHU1RfVkFMVUVfSE9MRFNf
QVJSQVkgKGFycmF5KSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB1bnNpZ25lZCBzaXpl
ID0gZ3N0X3ZhbHVlX2FycmF5X2dldF9zaXplKGFycmF5KTsKQEAgLTEyNTUsMjAgKzEyNzcsMjAg
QEAgVmVjdG9yPFQ+IGdzdFN0cnVjdHVyZUdldEFycmF5KGNvbnN0IEdzdFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBDU3RyaW5nVmlldyBrZXkpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdGVtcGxh
dGUgVmVjdG9yPGNvbnN0IEdzdFN0cnVjdHVyZSo+IGdzdFN0cnVjdHVyZUdldEFycmF5KGNvbnN0
IEdzdFN0cnVjdHVyZSosIENTdHJpbmdWaWV3IGtleSk7Cit0ZW1wbGF0ZSBWZWN0b3I8Y29uc3Qg
R3N0U3RydWN0dXJlKj4gZ3N0U3RydWN0dXJlR2V0QXJyYXkoY29uc3QgR3N0U3RydWN0dXJlKiwg
QVNDSUlMaXRlcmFsIGtleSk7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1WZWN0b3I8VD4gZ3N0
U3RydWN0dXJlR2V0TGlzdChjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ1N0cmluZ1Zp
ZXcga2V5KQorVmVjdG9yPFQ+IGdzdFN0cnVjdHVyZUdldExpc3QoY29uc3QgR3N0U3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEFTQ0lJTGl0ZXJhbCBrZXkpCiB7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX3NhbWVfdjxULCBpbnQ+IHx8IHN0ZDo6aXNfc2FtZV92PFQsIGludDY0X3Q+IHx8IHN0ZDo6
aXNfc2FtZV92PFQsIHVuc2lnbmVkPgogICAgICAgICB8fCBzdGQ6OmlzX3NhbWVfdjxULCB1aW50
NjRfdD4gfHwgc3RkOjppc19zYW1lX3Y8VCwgZG91YmxlPiB8fCBzdGQ6OmlzX3NhbWVfdjxULCBj
b25zdCBHc3RTdHJ1Y3R1cmUqPik7CiAgICAgVmVjdG9yPFQ+IHJlc3VsdDsKICAgICBpZiAoIXN0
cnVjdHVyZSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBjb25zdCBHVmFsdWUqIGxpc3Qg
PSBnc3Rfc3RydWN0dXJlX2dldF92YWx1ZShzdHJ1Y3R1cmUsIGtleS5yYXdDaGFyYWN0ZXJzKCkp
OworICAgIGNvbnN0IEdWYWx1ZSogbGlzdCA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlKHN0cnVj
dHVyZSwga2V5LmNoYXJhY3RlcnMoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoR1NUX1ZBTFVFX0hP
TERTX0xJU1QobGlzdCkpOwogICAgIGlmICghR1NUX1ZBTFVFX0hPTERTX0xJU1QobGlzdCkpIHsK
LSAgICAgICAgR1NUX1dBUk5JTkcoIlN0cnVjdHVyZSBmaWVsZCAlcyBkb2VzIG5vdCBob2xkIGEg
bGlzdCIsIGtleS5yYXdDaGFyYWN0ZXJzKCkpOworICAgICAgICBHU1RfV0FSTklORygiU3RydWN0
dXJlIGZpZWxkICVzIGRvZXMgbm90IGhvbGQgYSBsaXN0Iiwga2V5LmNoYXJhY3RlcnMoKSk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIHVuc2lnbmVkIHNpemUgPSBnc3RfdmFs
dWVfbGlzdF9nZXRfc2l6ZShsaXN0KTsKQEAgLTEyOTUsMTIgKzEzMTcsMTIgQEAgVmVjdG9yPFQ+
IGdzdFN0cnVjdHVyZUdldExpc3QoY29uc3QgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENTdHJp
bmdWaWV3IGtleSkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi10ZW1wbGF0ZSBWZWN0b3I8aW50
PiBnc3RTdHJ1Y3R1cmVHZXRMaXN0KGNvbnN0IEdzdFN0cnVjdHVyZSosIENTdHJpbmdWaWV3IGtl
eSk7Ci10ZW1wbGF0ZSBWZWN0b3I8aW50NjRfdD4gZ3N0U3RydWN0dXJlR2V0TGlzdChjb25zdCBH
c3RTdHJ1Y3R1cmUqLCBDU3RyaW5nVmlldyBrZXkpOwotdGVtcGxhdGUgVmVjdG9yPHVuc2lnbmVk
PiBnc3RTdHJ1Y3R1cmVHZXRMaXN0KGNvbnN0IEdzdFN0cnVjdHVyZSosIENTdHJpbmdWaWV3IGtl
eSk7Ci10ZW1wbGF0ZSBWZWN0b3I8dWludDY0X3Q+IGdzdFN0cnVjdHVyZUdldExpc3QoY29uc3Qg
R3N0U3RydWN0dXJlKiwgQ1N0cmluZ1ZpZXcga2V5KTsKLXRlbXBsYXRlIFZlY3Rvcjxkb3VibGU+
IGdzdFN0cnVjdHVyZUdldExpc3QoY29uc3QgR3N0U3RydWN0dXJlKiwgQ1N0cmluZ1ZpZXcga2V5
KTsKLXRlbXBsYXRlIFZlY3Rvcjxjb25zdCBHc3RTdHJ1Y3R1cmUqPiBnc3RTdHJ1Y3R1cmVHZXRM
aXN0KGNvbnN0IEdzdFN0cnVjdHVyZSosIENTdHJpbmdWaWV3IGtleSk7Cit0ZW1wbGF0ZSBWZWN0
b3I8aW50PiBnc3RTdHJ1Y3R1cmVHZXRMaXN0KGNvbnN0IEdzdFN0cnVjdHVyZSosIEFTQ0lJTGl0
ZXJhbCBrZXkpOwordGVtcGxhdGUgVmVjdG9yPGludDY0X3Q+IGdzdFN0cnVjdHVyZUdldExpc3Qo
Y29uc3QgR3N0U3RydWN0dXJlKiwgQVNDSUlMaXRlcmFsIGtleSk7Cit0ZW1wbGF0ZSBWZWN0b3I8
dW5zaWduZWQ+IGdzdFN0cnVjdHVyZUdldExpc3QoY29uc3QgR3N0U3RydWN0dXJlKiwgQVNDSUlM
aXRlcmFsIGtleSk7Cit0ZW1wbGF0ZSBWZWN0b3I8dWludDY0X3Q+IGdzdFN0cnVjdHVyZUdldExp
c3QoY29uc3QgR3N0U3RydWN0dXJlKiwgQVNDSUlMaXRlcmFsIGtleSk7Cit0ZW1wbGF0ZSBWZWN0
b3I8ZG91YmxlPiBnc3RTdHJ1Y3R1cmVHZXRMaXN0KGNvbnN0IEdzdFN0cnVjdHVyZSosIEFTQ0lJ
TGl0ZXJhbCBrZXkpOwordGVtcGxhdGUgVmVjdG9yPGNvbnN0IEdzdFN0cnVjdHVyZSo+IGdzdFN0
cnVjdHVyZUdldExpc3QoY29uc3QgR3N0U3RydWN0dXJlKiwgQVNDSUlMaXRlcmFsIGtleSk7CiAK
IHN0YXRpYyBSZWZQdHI8SlNPTjo6VmFsdWU+IGdzdFN0cnVjdHVyZVRvSlNPTihjb25zdCBHc3RT
dHJ1Y3R1cmUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oCmluZGV4IGIwODZmN2RjYTkzMC4u
MWQxNzZjZThlNmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oCkBAIC03NCwxMyArNzQsMTMg
QEAgaW5saW5lIGJvb2wgd2Via2l0R3N0Q2hlY2tWZXJzaW9uKGd1aW50IG1ham9yLCBndWludCBt
aW5vciwgZ3VpbnQgbWljcm8pCiAjZGVmaW5lIEdTVF9BVURJT19DQVBTX1RZUEVfUFJFRklYICAi
YXVkaW8vIl9zCiAjZGVmaW5lIEdTVF9URVhUX0NBUFNfVFlQRV9QUkVGSVggICAidGV4dC8iX3MK
IAotV0FSTl9VTlVTRURfUkVUVVJOIEdzdFBhZCogd2Via2l0R3N0R2hvc3RQYWRGcm9tU3RhdGlj
VGVtcGxhdGUoR3N0U3RhdGljUGFkVGVtcGxhdGUqLCBDU3RyaW5nVmlldyBuYW1lLCBHc3RQYWQq
IHRhcmdldCk7CitXQVJOX1VOVVNFRF9SRVRVUk4gR3N0UGFkKiB3ZWJraXRHc3RHaG9zdFBhZEZy
b21TdGF0aWNUZW1wbGF0ZShHc3RTdGF0aWNQYWRUZW1wbGF0ZSosIEFTQ0lJTGl0ZXJhbCBuYW1l
LCBHc3RQYWQqIHRhcmdldCk7CiAjaWYgRU5BQkxFKFZJREVPKQogYm9vbCBnZXRWaWRlb1NpemVB
bmRGb3JtYXRGcm9tQ2Fwcyhjb25zdCBHc3RDYXBzKiwgV2ViQ29yZTo6SW50U2l6ZSYsIEdzdFZp
ZGVvRm9ybWF0JiwgaW50JiBwaXhlbEFzcGVjdFJhdGlvTnVtZXJhdG9yLCBpbnQmIHBpeGVsQXNw
ZWN0UmF0aW9EZW5vbWluYXRvciwgaW50JiBzdHJpZGUsIGRvdWJsZSYgZnJhbWVSYXRlLCBQbGF0
Zm9ybVZpZGVvQ29sb3JTcGFjZSYpOwogc3RkOjpvcHRpb25hbDxGbG9hdFNpemU+IGdldFZpZGVv
UmVzb2x1dGlvbkZyb21DYXBzKGNvbnN0IEdzdENhcHMqKTsKIGJvb2wgZ2V0U2FtcGxlVmlkZW9J
bmZvKEdzdFNhbXBsZSosIEdzdFZpZGVvSW5mbyYpOwogI2VuZGlmCi1DU3RyaW5nVmlldyBjYXBz
TWVkaWFUeXBlKGNvbnN0IEdzdENhcHMqKTsKK1N0cmluZ1ZpZXcgY2Fwc01lZGlhVHlwZShjb25z
dCBHc3RDYXBzKik7CiBzdGQ6Om9wdGlvbmFsPFRyYWNrSUQ+IGdldFN0cmVhbUlkRnJvbVBhZChj
b25zdCBHUmVmUHRyPEdzdFBhZD4mKTsKIHN0ZDo6b3B0aW9uYWw8VHJhY2tJRD4gZ2V0U3RyZWFt
SWRGcm9tU3RyZWFtKGNvbnN0IEdSZWZQdHI8R3N0U3RyZWFtPiYpOwogc3RkOjpvcHRpb25hbDxU
cmFja0lEPiBwYXJzZVN0cmVhbUlkKFN0cmluZ1ZpZXcgc3RyaW5nSWQpOwpAQCAtMjgwLDE3ICsy
ODAsMjAgQEAgR3N0QnVmZmVyKiBnc3RCdWZmZXJOZXdXcmFwcGVkRmFzdCh2b2lkKiBkYXRhLCBz
aXplX3QgbGVuZ3RoKTsKIEdzdEVsZW1lbnQqIG1ha2VHU3RyZWFtZXJFbGVtZW50KEFTQ0lJTGl0
ZXJhbCBmYWN0b3J5TmFtZSwgY29uc3QgU3RyaW5nJiBuYW1lID0gZW1wdHlTdHJpbmcoKSk7CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdGQ6Om9wdGlvbmFsPFQ+IGdzdFN0cnVjdHVyZUdldChj
b25zdCBHc3RTdHJ1Y3R1cmUqLCBDU3RyaW5nVmlldyBrZXkpOworc3RkOjpvcHRpb25hbDxUPiBn
c3RTdHJ1Y3R1cmVHZXQoY29uc3QgR3N0U3RydWN0dXJlKiwgQVNDSUlMaXRlcmFsIGtleSk7Cit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RkOjpvcHRpb25hbDxUPiBnc3RTdHJ1Y3R1cmVHZXQoY29u
c3QgR3N0U3RydWN0dXJlKiwgU3RyaW5nVmlldyBrZXkpOwogCi1DU3RyaW5nVmlldyBnc3RTdHJ1
Y3R1cmVHZXRTdHJpbmcoY29uc3QgR3N0U3RydWN0dXJlKiwgQ1N0cmluZ1ZpZXcga2V5KTsKK1N0
cmluZ1ZpZXcgZ3N0U3RydWN0dXJlR2V0U3RyaW5nKGNvbnN0IEdzdFN0cnVjdHVyZSosIEFTQ0lJ
TGl0ZXJhbCBrZXkpOworU3RyaW5nVmlldyBnc3RTdHJ1Y3R1cmVHZXRTdHJpbmcoY29uc3QgR3N0
U3RydWN0dXJlKiwgU3RyaW5nVmlldyBrZXkpOwogCi1DU3RyaW5nVmlldyBnc3RTdHJ1Y3R1cmVH
ZXROYW1lKGNvbnN0IEdzdFN0cnVjdHVyZSopOworU3RyaW5nVmlldyBnc3RTdHJ1Y3R1cmVHZXRO
YW1lKGNvbnN0IEdzdFN0cnVjdHVyZSopOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotVmVjdG9y
PFQ+IGdzdFN0cnVjdHVyZUdldEFycmF5KGNvbnN0IEdzdFN0cnVjdHVyZSosIENTdHJpbmdWaWV3
IGtleSk7CitWZWN0b3I8VD4gZ3N0U3RydWN0dXJlR2V0QXJyYXkoY29uc3QgR3N0U3RydWN0dXJl
KiwgQVNDSUlMaXRlcmFsIGtleSk7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1WZWN0b3I8VD4g
Z3N0U3RydWN0dXJlR2V0TGlzdChjb25zdCBHc3RTdHJ1Y3R1cmUqLCBDU3RyaW5nVmlldyBrZXkp
OworVmVjdG9yPFQ+IGdzdFN0cnVjdHVyZUdldExpc3QoY29uc3QgR3N0U3RydWN0dXJlKiwgQVND
SUlMaXRlcmFsIGtleSk7CiAKIFN0cmluZyBnc3RTdHJ1Y3R1cmVUb0pTT05TdHJpbmcoY29uc3Qg
R3N0U3RydWN0dXJlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5l
ci5jcHAKaW5kZXggOTMwMDJmMTAyMjJlLi4xZmU5ZjIzNGQzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCkBAIC04ODQsOCArODg0LDkgQEAgTWVkaWFQ
bGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6aXNDb250
ZW50VHlwZVN1cHBvcnRlZCgKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGF1dG8gc3RydWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZShj
b2RlY0NhcHMuZ2V0KCksIDApOwotICAgICAgICAgICAgYXV0byBuYW1lID0gZ3N0U3RydWN0dXJl
R2V0TmFtZShzdHJ1Y3R1cmUpOwotICAgICAgICAgICAgYXV0byBjYXBzID0gYWRvcHRHUmVmKGdz
dF9jYXBzX25ld19zaW1wbGUoImFwcGxpY2F0aW9uL3gtd2VibS1lbmMiLCAib3JpZ2luYWwtbWVk
aWEtdHlwZSIsIEdfVFlQRV9TVFJJTkcsIG5hbWUucmF3Q2hhcmFjdGVycygpLCBudWxscHRyKSk7
CisgICAgICAgICAgICBhdXRvIG5hbWVWaWV3ID0gZ3N0U3RydWN0dXJlR2V0TmFtZShzdHJ1Y3R1
cmUpOworICAgICAgICAgICAgYXV0byBuYW1lID0gbmFtZVZpZXcudXRmOCgpOworICAgICAgICAg
ICAgYXV0byBjYXBzID0gYWRvcHRHUmVmKGdzdF9jYXBzX25ld19zaW1wbGUoImFwcGxpY2F0aW9u
L3gtd2VibS1lbmMiLCAib3JpZ2luYWwtbWVkaWEtdHlwZSIsIEdfVFlQRV9TVFJJTkcsIG5hbWUu
ZGF0YSgpLCBudWxscHRyKSk7CiAgICAgICAgICAgICBpZiAoIWZhY3Rvcmllcy5oYXNFbGVtZW50
Rm9yQ2FwcyhFbGVtZW50RmFjdG9yaWVzOjpUeXBlOjpEZWNyeXB0b3IsIGNhcHMpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyVmlkZW9GcmFtZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9GcmFtZUNvbnZlcnRlci5jcHAKaW5k
ZXggMDU5ZTZjNjY0NzdjLi5jZjdhYzVlNmI2ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0ZyYW1lQ29udmVydGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyVmlkZW9GcmFtZUNvbnZlcnRlci5jcHAKQEAgLTIxNCw5ICsyMTQsOSBAQCBJR05PUkVf
V0FSTklOR1NfRU5ECiAgICAgYXV0byBzdHJ1Y3R1cmUgPSBnc3RfY2Fwc19nZXRfc3RydWN0dXJl
KGRlc3RpbmF0aW9uQ2Fwcy5nZXQoKSwgMCk7CiAgICAgYXV0byB3aWR0aCA9IGdzdFN0cnVjdHVy
ZUdldDxpbnQ+KHN0cnVjdHVyZSwgIndpZHRoIl9zKTsKICAgICBhdXRvIGhlaWdodCA9IGdzdFN0
cnVjdHVyZUdldDxpbnQ+KHN0cnVjdHVyZSwgImhlaWdodCJfcyk7Ci0gICAgYXV0byBmb3JtYXRT
dHJpbmcgPSBnc3RTdHJ1Y3R1cmVHZXRTdHJpbmcoc3RydWN0dXJlLCAiZm9ybWF0Il9zKTsKLSAg
ICBpZiAod2lkdGggJiYgaGVpZ2h0ICYmICFmb3JtYXRTdHJpbmcuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIGF1dG8gZm9ybWF0ID0gZ3N0X3ZpZGVvX2Zvcm1hdF9mcm9tX3N0cmluZyhmb3JtYXRTdHJp
bmcucmF3Q2hhcmFjdGVycygpKTsKKyAgICBhdXRvIGZvcm1hdFN0cmluZ1ZpZXcgPSBnc3RTdHJ1
Y3R1cmVHZXRTdHJpbmcoc3RydWN0dXJlLCAiZm9ybWF0Il9zKTsKKyAgICBpZiAod2lkdGggJiYg
aGVpZ2h0ICYmICFmb3JtYXRTdHJpbmdWaWV3LmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIGZv
cm1hdCA9IGdzdF92aWRlb19mb3JtYXRfZnJvbV9zdHJpbmcoZm9ybWF0U3RyaW5nVmlldy50b1N0
cmluZ1dpdGhvdXRDb3B5aW5nKCkuYXNjaWkoKS5kYXRhKCkpOwogICAgICAgICBnc3RfYnVmZmVy
X2FkZF92aWRlb19tZXRhKHdyaXRhYmxlQnVmZmVyLmdldCgpLCBHU1RfVklERU9fRlJBTUVfRkxB
R19OT05FLCBmb3JtYXQsICp3aWR0aCwgKmhlaWdodCk7CiAgICAgfQogICAgIGdzdF9zYW1wbGVf
c2V0X2J1ZmZlcihjb252ZXJ0ZWRTYW1wbGUuZ2V0KCksIHdyaXRhYmxlQnVmZmVyLmdldCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZDgwM2E1MmYzNWIwLi5jYzUzOTE1NzYwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yMjY1LDcgKzIyNjUsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdl
KQogICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgaXQgaGVyZSwgdW50aWwgd2UgcmVtb3Zl
IHRoZSB3ZWJraXQrIHByb3RvY29sCiAgICAgICAgICAgICAgICAgICAgIC8vIHByZWZpeCBmcm9t
IHdlYmtpdHdlYnNyYy4KICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29udGVudExlbmd0
aFZhbHVlID0gZ3N0U3RydWN0dXJlR2V0U3RyaW5nKHJlc3BvbnNlSGVhZGVycy5nZXQoKSwgY29u
dGVudExlbmd0aEhlYWRlck5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0
byBwYXJzZWRDb250ZW50TGVuZ3RoID0gcGFyc2VJbnRlZ2VyPHVpbnQ2NF90Pihjb250ZW50TGVu
Z3RoVmFsdWUudG9TdHJpbmcoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBw
YXJzZWRDb250ZW50TGVuZ3RoID0gcGFyc2VJbnRlZ2VyPHVpbnQ2NF90Pihjb250ZW50TGVuZ3Ro
VmFsdWUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRMZW5ndGggPSAqcGFy
c2VkQ29udGVudExlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0gZWxzZQpAQCAtMzAxOSw3ICszMDE5LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBj
b25zdCBHVmFsdWUqIGxvY2F0aW9ucyA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlKG1fbWVkaWFM
b2NhdGlvbnMuZ2V0KCksICJsb2NhdGlvbnMiKTsKLSAgICBDU3RyaW5nVmlldyBuZXdMb2NhdGlv
bjsKKyAgICBTdHJpbmdWaWV3IG5ld0xvY2F0aW9uOwogCiAgICAgaWYgKCFsb2NhdGlvbnMpIHsK
ICAgICAgICAgLy8gRmFsbGJhY2sgb24gbmV3LWxvY2F0aW9uIHN0cmluZy4KQEAgLTMwMjgsNyAr
MzAyOCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkTmV4dExvY2F0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAobmV3TG9j
YXRpb24uaXNFbXB0eSgpKSB7CisgICAgaWYgKCFuZXdMb2NhdGlvbikgewogICAgICAgICBpZiAo
bV9tZWRpYUxvY2F0aW9uQ3VycmVudEluZGV4IDwgMCkgewogICAgICAgICAgICAgbV9tZWRpYUxv
Y2F0aW9ucy5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzA0NSw3ICsz
MDQ1LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRp
b24oKQogICAgICAgICBuZXdMb2NhdGlvbiA9IGdzdFN0cnVjdHVyZUdldFN0cmluZyhzdHJ1Y3R1
cmUsICJuZXctbG9jYXRpb24iX3MpOwogICAgIH0KIAotICAgIGlmICghbmV3TG9jYXRpb24uaXNF
bXB0eSgpKSB7CisgICAgaWYgKG5ld0xvY2F0aW9uKSB7CiAgICAgICAgIC8vIEZvdW5kIGEgY2Fu
ZGlkYXRlLiBuZXctbG9jYXRpb24gaXMgbm90IGFsd2F5cyBhbiBhYnNvbHV0ZSB1cmwKICAgICAg
ICAgLy8gdGhvdWdoLiBXZSBuZWVkIHRvIHRha2UgdGhlIGJhc2Ugb2YgdGhlIGN1cnJlbnQgdXJs
IGFuZAogICAgICAgICAvLyBhcHBlbmQgdGhlIHZhbHVlIG9mIG5ldy1sb2NhdGlvbiB0byBpdC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9W
aWRlb0VuY29kZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvRW5jb2RlckdTdHJlYW1lci5jcHAKaW5kZXggNzI3Yjc3NmQ5MTNk
Li45NjE1NjNhMmIyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb0VuY29kZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb0VuY29kZXJHU3RyZWFtZXIuY3Bw
CkBAIC0xODksOCArMTg5LDkgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHJldHJp
ZXZlVGVtcG9yYWxJbmRleChjb25zdCBHUmVmUHRyPEdzdFNhbXBsZT4mIHMKICAgICAgICAgcmV0
dXJuIGdzdFN0cnVjdHVyZUdldDx1bnNpZ25lZD4obWV0YVN0cnVjdHVyZSwgImxheWVyLWlkIl9z
KTsKICAgICB9CiAjaWZuZGVmIEdTVF9ESVNBQkxFX0dTVF9ERUJVRwotICAgIGF1dG8gbmFtZSA9
IGdzdFN0cnVjdHVyZUdldE5hbWUoc3RydWN0dXJlKTsKLSAgICBHU1RfVFJBQ0UoIlJldHJpZXZh
bCBvZiB0ZW1wb3JhbCBpbmRleCBmcm9tIGVuY29kZWQgZm9ybWF0ICVzIGlzIG5vdCB5ZXQgc3Vw
cG9ydGVkLiIsIG5hbWUucmF3Q2hhcmFjdGVycygpKTsKKyAgICBhdXRvIG5hbWVWaWV3ID0gZ3N0
U3RydWN0dXJlR2V0TmFtZShzdHJ1Y3R1cmUpOworICAgIGF1dG8gbmFtZSA9IG5hbWVWaWV3LnV0
ZjgoKTsKKyAgICBHU1RfVFJBQ0UoIlJldHJpZXZhbCBvZiB0ZW1wb3JhbCBpbmRleCBmcm9tIGVu
Y29kZWQgZm9ybWF0ICVzIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLiIsIG5hbWUuZGF0YSgpKTsKICNl
bmRpZgogI2VuZGlmCiAgICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRBdWRpb1NpbmtHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdEF1ZGlv
U2lua0dTdHJlYW1lci5jcHAKaW5kZXggYTZlYWQxNzYyNTY0Li4zZjU2NjU0YjQ0MmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRB
dWRpb1NpbmtHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRBdWRpb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC05Miw3ICs5Miw3
IEBAIHN0YXRpYyBib29sIHdlYktpdEF1ZGlvU2lua0NvbmZpZ3VyZShXZWJLaXRBdWRpb1Npbmsq
IHNpbmspCiAgICAgICAgICAgICAgICAgcmV0dXJuIEdTVF9QQURfUFJPQkVfT0s7CiAKICAgICAg
ICAgICAgIGF1dG8gc3RydWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZShjYXBzLCAwKTsK
LSAgICAgICAgICAgIGF1dG8gc2FtcGxlUmF0ZSA9IGdzdFN0cnVjdHVyZUdldDxpbnQ+KHN0cnVj
dHVyZSwgInJhdGUiX3MpOworICAgICAgICAgICAgYXV0byBzYW1wbGVSYXRlID0gZ3N0U3RydWN0
dXJlR2V0PGludD4oc3RydWN0dXJlLCAicmF0ZSIpOwogICAgICAgICAgICAgaWYgKCFzYW1wbGVS
YXRlKSBbW3VubGlrZWx5XV0KICAgICAgICAgICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9P
SzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKaW5kZXggMzEwNGM0YTljOGYzLi41ZmNi
MTAzMzE1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJL
aXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcApAQCAtMTU1LDkgKzE1NSwx
MCBAQCBzdGF0aWMgR3N0Q2FwcyogdHJhbnNmb3JtQ2FwcyhHc3RCYXNlVHJhbnNmb3JtKiBiYXNl
LCBHc3RQYWREaXJlY3Rpb24gZGlyZWN0aW9uLAogICAgICAgICAgICAgb3V0Z29pbmdTdHJ1Y3R1
cmUgPSBHVW5pcXVlUHRyPEdzdFN0cnVjdHVyZT4oZ3N0X3N0cnVjdHVyZV9jb3B5KGluY29taW5n
U3RydWN0dXJlKSk7CiAKICAgICAgICAgICAgIGlmICghY2FuRG9QYXNzdGhyb3VnaCkgewotICAg
ICAgICAgICAgICAgIGF1dG8gb3JpZ2luYWxNZWRpYVR5cGUgPSBXZWJDb3JlOjpnc3RTdHJ1Y3R1
cmVHZXRTdHJpbmcob3V0Z29pbmdTdHJ1Y3R1cmUuZ2V0KCksICJvcmlnaW5hbC1tZWRpYS10eXBl
Il9zKTsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChvcmlnaW5hbE1lZGlhVHlwZSk7
Ci0gICAgICAgICAgICAgICAgZ3N0X3N0cnVjdHVyZV9zZXRfbmFtZShvdXRnb2luZ1N0cnVjdHVy
ZS5nZXQoKSwgb3JpZ2luYWxNZWRpYVR5cGUucmF3Q2hhcmFjdGVycygpKTsKKyAgICAgICAgICAg
ICAgICBhdXRvIG9yaWdpbmFsTWVkaWFUeXBlVmlldyA9IFdlYkNvcmU6OmdzdFN0cnVjdHVyZUdl
dFN0cmluZyhvdXRnb2luZ1N0cnVjdHVyZS5nZXQoKSwgIm9yaWdpbmFsLW1lZGlhLXR5cGUiX3Mp
OworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG9yaWdpbmFsTWVkaWFUeXBlVmlldyk7
CisgICAgICAgICAgICAgICAgYXV0byBvcmlnaW5hbE1lZGlhVHlwZSA9IG9yaWdpbmFsTWVkaWFU
eXBlVmlldy51dGY4KCk7CisgICAgICAgICAgICAgICAgZ3N0X3N0cnVjdHVyZV9zZXRfbmFtZShv
dXRnb2luZ1N0cnVjdHVyZS5nZXQoKSwgb3JpZ2luYWxNZWRpYVR5cGUuZGF0YSgpKTsKICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgLy8gRmlsdGVyIG91dCB0aGUgRFJNIHJlbGF0ZWQgZmll
bGRzIGZyb20gdGhlIGRvd24tc3RyZWFtIGNhcHMuCkBAIC0xNzAsOSArMTcxLDEwIEBAIHN0YXRp
YyBHc3RDYXBzKiB0cmFuc2Zvcm1DYXBzKEdzdEJhc2VUcmFuc2Zvcm0qIGJhc2UsIEdzdFBhZERp
cmVjdGlvbiBkaXJlY3Rpb24sCiAgICAgICAgICAgICAgICAgLy8gY2FuIGNhdXNlIGNhcHMgbmVn
b3RpYXRpb24gZmFpbHVyZXMgd2l0aCBhZGFwdGl2ZSBiaXRyYXRlIHN0cmVhbXMuCiAgICAgICAg
ICAgICAgICAgZ3N0X3N0cnVjdHVyZV9yZW1vdmVfZmllbGRzKG91dGdvaW5nU3RydWN0dXJlLmdl
dCgpLCAiYmFzZS1wcm9maWxlIiwgImNvZGVjX2RhdGEiLCAiaGVpZ2h0IiwgImZyYW1lcmF0ZSIs
ICJsZXZlbCIsICJwaXhlbC1hc3BlY3QtcmF0aW8iLCAicHJvZmlsZSIsICJyYXRlIiwgIndpZHRo
IiwgbnVsbHB0cik7CiAKLSAgICAgICAgICAgICAgICBhdXRvIG5hbWUgPSBXZWJDb3JlOjpnc3RT
dHJ1Y3R1cmVHZXROYW1lKGluY29taW5nU3RydWN0dXJlKTsKKyAgICAgICAgICAgICAgICBhdXRv
IG5hbWVWaWV3ID0gV2ViQ29yZTo6Z3N0U3RydWN0dXJlR2V0TmFtZShpbmNvbWluZ1N0cnVjdHVy
ZSk7CisgICAgICAgICAgICAgICAgYXV0byBuYW1lID0gbmFtZVZpZXcudXRmOCgpOwogICAgICAg
ICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0KG91dGdvaW5nU3RydWN0dXJlLmdldCgpLCAicHJv
dGVjdGlvbi1zeXN0ZW0iLCBHX1RZUEVfU1RSSU5HLCBrbGFzcy0+cHJvdGVjdGlvblN5c3RlbUlk
KHNlbGYpLAotICAgICAgICAgICAgICAgICAgICAib3JpZ2luYWwtbWVkaWEtdHlwZSIsIEdfVFlQ
RV9TVFJJTkcsIG5hbWUucmF3Q2hhcmFjdGVycygpICwgbnVsbHB0cik7CisgICAgICAgICAgICAg
ICAgICAgICJvcmlnaW5hbC1tZWRpYS10eXBlIiwgR19UWVBFX1NUUklORywgbmFtZS5kYXRhKCkg
LCBudWxscHRyKTsKIAogICAgICAgICAgICAgICAgIC8vIEdTVF9QUk9URUNUSU9OX1VOU1BFQ0lG
SUVEX1NZU1RFTV9JRCB3YXMgYWRkZWQgaW4gdGhlIEdTdHJlYW1lcgogICAgICAgICAgICAgICAg
IC8vIGRldmVsb3BlbWVudCBnaXQgbWFzdGVyIHdoaWNoIHdpbGwgc2hpcCBhcyB2ZXJzaW9uIDEu
MTYuMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXggOTU0Mzc2NDY5NzRm
Li5lY2QyNzUwNjgwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCkBAIC0y
MzYsMTIgKzIzNiwxMiBAQCBBcHBlbmRQaXBlbGluZTo6QXBwZW5kUGlwZWxpbmUoU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lciYgc291cmNlQnVmZmVyUHJpdmF0ZQogICAgICAgICAgICAgaWYg
KGRlbXV4ZXJFbGVtZW50TmFtZS5pc051bGwoKSkgewogICAgICAgICAgICAgICAgIEdTVF9FTEVN
RU5UX0VSUk9SKGFwcGVuZFBpcGVsaW5lLT5waXBlbGluZSgpLCBTVFJFQU0sIFdST05HX1RZUEUs
CiAgICAgICAgICAgICAgICAgICAgICgiVW5zdXBwb3J0ZWQgY2FwcyBmb3IgYXVkaW8vbXBlZyBt
aW1ldHlwZTogJXMiLAotICAgICAgICAgICAgICAgICAgICBnc3RTdHJ1Y3R1cmVHZXROYW1lKGNh
cHNTdHJ1Y3R1cmUpLnJhd0NoYXJhY3RlcnMoKSksIChudWxscHRyKSk7CisgICAgICAgICAgICAg
ICAgICAgIGdzdFN0cnVjdHVyZUdldE5hbWUoY2Fwc1N0cnVjdHVyZSkudG9TdHJpbmdXaXRob3V0
Q29weWluZygpLnV0ZjgoKS5kYXRhKCkpLCAobnVsbHB0cikpOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChhcHBl
bmRQaXBlbGluZS0+cGlwZWxpbmUoKSwgIkNyZWF0aW5nICVzIGRlbXV4ZXIgZm9yIGNhcHM6ICVz
IiwKLSAgICAgICAgICAgICAgICBkZW11eGVyRWxlbWVudE5hbWUuY2hhcmFjdGVycygpLCBnc3RT
dHJ1Y3R1cmVHZXROYW1lKGNhcHNTdHJ1Y3R1cmUpLnJhd0NoYXJhY3RlcnMoKSk7CisgICAgICAg
ICAgICAgICAgZGVtdXhlckVsZW1lbnROYW1lLmNoYXJhY3RlcnMoKSwgZ3N0U3RydWN0dXJlR2V0
TmFtZShjYXBzU3RydWN0dXJlKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkudXRmOCgpLmRhdGEo
KSk7CiAgICAgICAgICAgICBhcHBlbmRQaXBlbGluZS0+bV9kZW11eCA9IG1ha2VHU3RyZWFtZXJF
bGVtZW50KGRlbXV4ZXJFbGVtZW50TmFtZSk7CiAgICAgICAgICAgICBBU1NFUlQoYXBwZW5kUGlw
ZWxpbmUtPm1fZGVtdXgpOwogCkBAIC00NTYsMTAgKzQ1NiwxNCBAQCB2b2lkIEFwcGVuZFBpcGVs
aW5lOjphcHBzaW5rQ2Fwc0NoYW5nZWQoVHJhY2smIHRyYWNrKQogICAgIC8vIElmIHRoaXMgaXMg
bm90IHRoZSBmaXJzdCB0aW1lIHdlJ3JlIHBhcnNpbmcgYW4gaW5pdGlhbGl6YXRpb24gc2VnbWVu
dCwgZmFpbCBpZiB0aGUgdHJhY2sKICAgICAvLyBoYXMgYSBkaWZmZXJlbnQgY29kZWMgb3IgdHlw
ZSAoZS5nLiBpZiB3ZSB3ZXJlIHByZXZpb3VzbHkgZGVtdXhpbmcgYW4gYXVkaW8gc3RyZWFtIGFu
ZAogICAgIC8vIHNvbWVvbmUgYXBwZW5kcyBhIHZpZGVvIHN0cmVhbSkuCi0gICAgYXV0byBjdXJy
ZW50TWVkaWFUeXBlID0gY2Fwc01lZGlhVHlwZShjYXBzLmdldCgpKTsKLSAgICBhdXRvIHRyYWNr
TWVkaWFUeXBlID0gY2Fwc01lZGlhVHlwZSh0cmFjay5maW5hbENhcHMuZ2V0KCkpOwotICAgIGlm
ICh0cmFjay5maW5hbENhcHMgJiYgY3VycmVudE1lZGlhVHlwZSAhPSB0cmFja01lZGlhVHlwZSkg
ewotICAgICAgICBHU1RfV0FSTklOR19PQkpFQ1QocGlwZWxpbmUoKSwgIlRyYWNrIHJlY2VpdmVk
IGluY29tcGF0aWJsZSBjYXBzLCByZWNlaXZlZCAnJXMnIGZvciBhIHRyYWNrIHByZXZpb3VzbHkg
aGFuZGxpbmcgJyVzJy4gRXJyb3Jpbmcgb3V0LiIsIGN1cnJlbnRNZWRpYVR5cGUucmF3Q2hhcmFj
dGVycygpLCB0cmFja01lZGlhVHlwZS5yYXdDaGFyYWN0ZXJzKCkpOworICAgIGF1dG8gY3VycmVu
dE1lZGlhVHlwZVZpZXcgPSBjYXBzTWVkaWFUeXBlKGNhcHMuZ2V0KCkpOworICAgIGF1dG8gdHJh
Y2tNZWRpYVR5cGVWaWV3ID0gY2Fwc01lZGlhVHlwZSh0cmFjay5maW5hbENhcHMuZ2V0KCkpOwor
ICAgIGlmICh0cmFjay5maW5hbENhcHMgJiYgY3VycmVudE1lZGlhVHlwZVZpZXcgIT0gdHJhY2tN
ZWRpYVR5cGVWaWV3KSB7CisjaWZuZGVmIEdTVF9ESVNBQkxFX0dTVF9ERUJVRworICAgICAgICBh
dXRvIGN1cnJlbnRNZWRpYVR5cGUgPSBjdXJyZW50TWVkaWFUeXBlVmlldy51dGY4KCk7CisgICAg
ICAgIGF1dG8gdHJhY2tNZWRpYVR5cGUgPSB0cmFja01lZGlhVHlwZVZpZXcudXRmOCgpOworICAg
ICAgICBHU1RfV0FSTklOR19PQkpFQ1QocGlwZWxpbmUoKSwgIlRyYWNrIHJlY2VpdmVkIGluY29t
cGF0aWJsZSBjYXBzLCByZWNlaXZlZCAnJXMnIGZvciBhIHRyYWNrIHByZXZpb3VzbHkgaGFuZGxp
bmcgJyVzJy4gRXJyb3Jpbmcgb3V0LiIsIGN1cnJlbnRNZWRpYVR5cGUuZGF0YSgpLCB0cmFja01l
ZGlhVHlwZS5kYXRhKCkpOworI2VuZGlmCiAgICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZS5h
cHBlbmRQYXJzaW5nRmFpbGVkKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1l
ck1lZGlhRGVzY3JpcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcAppbmRleCA3NDBiZmRi
NzRkNTkuLjQ2Zjc5Yzg1NjNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYURlc2NyaXB0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1l
ck1lZGlhRGVzY3JpcHRpb24uY3BwCkBAIC01OSw3ICs1OSw3IEBAIFN0cmluZyBHU3RyZWFtZXJN
ZWRpYURlc2NyaXB0aW9uOjpleHRyYWN0Q29kZWNOYW1lKGNvbnN0IEdSZWZQdHI8R3N0Q2Fwcz4m
IGNhcHMpCiAKICAgICAgICAgYXV0byBvcmlnaW5hbE1lZGlhVHlwZSA9IFdlYkNvcmU6OmdzdFN0
cnVjdHVyZUdldFN0cmluZyhzdHJ1Y3R1cmUsICJvcmlnaW5hbC1tZWRpYS10eXBlIl9zKTsKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQob3JpZ2luYWxNZWRpYVR5cGUpOwotICAgICAgICBnc3Rfc3Ry
dWN0dXJlX3NldF9uYW1lKHN0cnVjdHVyZSwgb3JpZ2luYWxNZWRpYVR5cGUucmF3Q2hhcmFjdGVy
cygpKTsKKyAgICAgICAgZ3N0X3N0cnVjdHVyZV9zZXRfbmFtZShzdHJ1Y3R1cmUsIG9yaWdpbmFs
TWVkaWFUeXBlLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CiAKICAg
ICAgICAgLy8gUmVtb3ZlIHRoZSBEUk0gcmVsYXRlZCBmaWVsZHMgZnJvbSB0aGUgY2Fwcy4KICAg
ICAgICAgZ3N0U3RydWN0dXJlRmlsdGVyQW5kTWFwSW5QbGFjZShzdHJ1Y3R1cmUsIFtdKEdzdElk
IGlkLCBHVmFsdWUqKSAtPiBib29sIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dzdHJlYW1lci9WaWRlb0VuY29kZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dzdHJlYW1lci9WaWRlb0VuY29kZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAppbmRleCA4MjdmZTBjMGQ5NTkuLjRlNTdjMjQyMjE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3N0cmVhbWVyL1ZpZGVvRW5jb2RlclByaXZhdGVHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dzdHJlYW1lci9WaWRlb0VuY29kZXJQcml2
YXRlR1N0cmVhbWVyLmNwcApAQCAtNjczLDcgKzY3Myw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF92
aWRlb19lbmNvZGVyX2NsYXNzX2luaXQoV2ViS2l0VmlkZW9FbmNvZGVyQ2xhc3MqIGtsYXNzKQog
ICAgICAgICAgICAgY29uc3QgYXV0byYgZW5jb2RlZENhcHMgPSBzZWxmLT5wcml2LT5lbmNvZGVk
Q2FwczsKICAgICAgICAgICAgIGlmICghZ3N0X2NhcHNfaXNfYW55KGVuY29kZWRDYXBzLmdldCgp
KSAmJiAhZ3N0X2NhcHNfaXNfZW1wdHkoZW5jb2RlZENhcHMuZ2V0KCkpKSBbW2xpa2VseV1dIHsK
ICAgICAgICAgICAgICAgICBhdXRvIHN0cnVjdHVyZSA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUo
ZW5jb2RlZENhcHMuZ2V0KCksIDApOwotICAgICAgICAgICAgICAgIGF1dG8gcHJvZmlsZSA9IGdz
dFN0cnVjdHVyZUdldFN0cmluZyhzdHJ1Y3R1cmUsICJwcm9maWxlIl9zKS50b1N0cmluZygpOwor
ICAgICAgICAgICAgICAgIGF1dG8gcHJvZmlsZSA9IGdzdFN0cnVjdHVyZUdldFN0cmluZyhzdHJ1
Y3R1cmUsICJwcm9maWxlIl9zKTsKIAogICAgICAgICAgICAgICAgIGlmIChwcm9maWxlLmZpbmRJ
Z25vcmluZ0FTQ0lJQ2FzZSgiaGlnaCJfcykgIT0gbm90Rm91bmQpCiAgICAgICAgICAgICAgICAg
ICAgIGdzdF9wcmVzZXRfbG9hZF9wcmVzZXQoR1NUX1BSRVNFVChzZWxmLT5wcml2LT5lbmNvZGVy
LmdldCgpKSwgIlByb2ZpbGUgSGlnaCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvUlRQUGFja2V0aXplci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyQXVkaW9SVFBQYWNrZXRpemVyLmNwcAppbmRleCBmZDhiZjkzNGMzNzMuLjY0N2ZhZjJlZTRk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckF1ZGlvUlRQUGFja2V0aXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvUlRQUGFja2V0aXpl
ci5jcHAKQEAgLTQzLDkgKzQzLDggQEAgUmVmUHRyPEdTdHJlYW1lckF1ZGlvUlRQUGFja2V0aXpl
cj4gR1N0cmVhbWVyQXVkaW9SVFBQYWNrZXRpemVyOjpjcmVhdGUoUmVmUHRyPFUKIAogICAgIEdT
VF9ERUJVRygiQ3JlYXRpbmcgcGFja2V0aXplciBmb3IgY29kZWM6ICUiIEdTVF9QVFJfRk9STUFU
ICIgYW5kIGVuY29kaW5nIHBhcmFtZXRlcnMgJSIgR1NUX1BUUl9GT1JNQVQsIGNvZGVjUGFyYW1l
dGVycywgZW5jb2RpbmdQYXJhbWV0ZXJzLmdldCgpKTsKICAgICBTdHJpbmcgZW5jb2Rpbmc7Ci0g
ICAgYXV0byBlbmNvZGluZ05hbWUgPSBnc3RTdHJ1Y3R1cmVHZXRTdHJpbmcoY29kZWNQYXJhbWV0
ZXJzLCAiZW5jb2RpbmctbmFtZSJfcyk7Ci0gICAgaWYgKGVuY29kaW5nTmFtZSkKLSAgICAgICAg
ZW5jb2RpbmcgPSBlbmNvZGluZ05hbWUudG9TdHJpbmcoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2Fz
ZSgpOworICAgIGlmIChhdXRvIGVuY29kaW5nTmFtZSA9IGdzdFN0cnVjdHVyZUdldFN0cmluZyhj
b2RlY1BhcmFtZXRlcnMsICJlbmNvZGluZy1uYW1lIl9zKSkKKyAgICAgICAgZW5jb2RpbmcgPSBl
bmNvZGluZ05hbWUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKICAgICBlbHNlIHsKICAgICAg
ICAgR1NUX0VSUk9SKCJlbmNvZGluZy1uYW1lIG5vdCBmb3VuZCIpOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKQEAgLTkzLDcgKzkyLDcgQEAgUmVmUHRyPEdTdHJlYW1lckF1ZGlvUlRQUGFja2V0
aXplcj4gR1N0cmVhbWVyQXVkaW9SVFBQYWNrZXRpemVyOjpjcmVhdGUoUmVmUHRyPFUKIAogICAg
ICAgICBpZiAoZ3N0X2NhcHNfaXNfYW55KGlucHV0Q2Fwcy5nZXQoKSkpIHsKICAgICAgICAgICAg
IGlmIChhdXRvIGVuY29kaW5nUGFyYW1ldGVycyA9IGdzdFN0cnVjdHVyZUdldFN0cmluZyhzdHJ1
Y3R1cmUuZ2V0KCksICJlbmNvZGluZy1wYXJhbXMiX3MpKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGF1dG8gY2hhbm5lbHMgPSBwYXJzZUludGVnZXJBbGxvd2luZ1RyYWlsaW5nSnVuazxpbnQ+KGVu
Y29kaW5nUGFyYW1ldGVycy50b1N0cmluZygpKSkKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBj
aGFubmVscyA9IHBhcnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPGludD4oZW5jb2RpbmdQ
YXJhbWV0ZXJzKSkKICAgICAgICAgICAgICAgICAgICAgaW5wdXRDYXBzID0gYWRvcHRHUmVmKGdz
dF9jYXBzX25ld19zaW1wbGUoImF1ZGlvL3gtcmF3IiwgImNoYW5uZWxzIiwgR19UWVBFX0lOVCwg
KmNoYW5uZWxzLCBudWxscHRyKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTEyMSw3
ICsxMjAsNyBAQCBSZWZQdHI8R1N0cmVhbWVyQXVkaW9SVFBQYWNrZXRpemVyPiBHU3RyZWFtZXJB
dWRpb1JUUFBhY2tldGl6ZXI6OmNyZWF0ZShSZWZQdHI8VQogICAgIGdfb2JqZWN0X3NldChwYXls
b2FkZXIuZ2V0KCksICJhdXRvLWhlYWRlci1leHRlbnNpb24iLCBUUlVFLCAibXR1IiwgMTIwMCwg
bnVsbHB0cik7CiAKICAgICBpZiAoYXV0byBtaW5QVGltZSA9IGdzdFN0cnVjdHVyZUdldFN0cmlu
ZyhzdHJ1Y3R1cmUuZ2V0KCksICJtaW5wdGltZSJfcykpIHsKLSAgICAgICAgaWYgKGF1dG8gdmFs
dWUgPSBwYXJzZUludGVnZXJBbGxvd2luZ1RyYWlsaW5nSnVuazxpbnQ2NF90PihtaW5QVGltZS50
b1N0cmluZygpKSkgeworICAgICAgICBpZiAoYXV0byB2YWx1ZSA9IHBhcnNlSW50ZWdlckFsbG93
aW5nVHJhaWxpbmdKdW5rPGludDY0X3Q+KG1pblBUaW1lKSkgewogICAgICAgICAgICAgaWYgKGdz
dE9iamVjdEhhc1Byb3BlcnR5KHBheWxvYWRlci5nZXQoKSwgIm1pbi1wdGltZSJfcykpCiAgICAg
ICAgICAgICAgICAgZ19vYmplY3Rfc2V0KHBheWxvYWRlci5nZXQoKSwgIm1pbi1wdGltZSIsICp2
YWx1ZSAqIEdTVF9NU0VDT05ELCBudWxscHRyKTsKICAgICAgICAgICAgIGVsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCmluZGV4
IGM4ZmEyMTAzNmRmMS4uYTE2OGZiMjEwNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQ2FwdHVyZURldmljZU1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAgLTIyNCwxMSArMjI0LDcgQEAg
c3RkOjpvcHRpb25hbDxHU3RyZWFtZXJDYXB0dXJlRGV2aWNlPiBHU3RyZWFtZXJDYXB0dXJlRGV2
aWNlTWFuYWdlcjo6Y2FwdHVyZURldmkKICAgICBhdXRvIGxhYmVsID0gbWFrZVN0cmluZyhpc0Rl
ZmF1bHQgPyAiZGVmYXVsdDogIl9zIDogIiJfcywgZGV2aWNlTmFtZS5zcGFuKCkpOwogCiAgICAg
YXV0byBub2RlTmFtZSA9IGdzdFN0cnVjdHVyZUdldFN0cmluZyhwcm9wZXJ0aWVzLmdldCgpLCAi
bm9kZS5uYW1lIl9zKTsKLSAgICBTdHJpbmcgaWRlbnRpZmllcjsKLSAgICBpZiAobm9kZU5hbWUu
aXNFbXB0eSgpKQotICAgICAgICBpZGVudGlmaWVyID0gbWFrZVN0cmluZyhkZXZpY2VOYW1lLnNw
YW4oKSk7Ci0gICAgZWxzZQotICAgICAgICBpZGVudGlmaWVyID0gbm9kZU5hbWUudG9TdHJpbmco
KTsKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBtYWtlU3RyaW5nKG5vZGVOYW1lLmlzRW1wdHkoKSA/
IGRldmljZU5hbWUuc3BhbigpIDogbm9kZU5hbWUpOwogCiAgICAgYm9vbCBpc01vY2sgPSBmYWxz
ZTsKICAgICBpZiAoYXV0byBwZXJzaXN0ZW50SWQgPSBnc3RTdHJ1Y3R1cmVHZXRTdHJpbmcocHJv
cGVydGllcy5nZXQoKSwgInBlcnNpc3RlbnQtaWQiX3MpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVySW5jb21pbmdU
cmFja1Byb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVySW5jb21pbmdUcmFja1Byb2Nlc3Nvci5jcHAKaW5kZXggYmU2ZmVl
MmQ5YTdmLi45ZDVlOWM3NTQwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJJbmNvbWluZ1RyYWNrUHJvY2Vzc29yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVySW5jb21pbmdUcmFja1Byb2Nlc3Nvci5jcHAKQEAgLTY2LDE0ICs2NiwxNCBAQCB2b2lk
IEdTdHJlYW1lckluY29taW5nVHJhY2tQcm9jZXNzb3I6OmNvbmZpZ3VyZShUaHJlYWRTYWZlV2Vh
a1B0cjxHU3RyZWFtZXJNZWRpYQogICAgIGlmIChhdXRvIHNzcmMgPSBnc3RTdHJ1Y3R1cmVHZXQ8
dW5zaWduZWQ+KHN0cnVjdHVyZSwgInNzcmMiX3MpKSB7CiAgICAgICAgIG1fZGF0YS5zc3JjID0g
KnNzcmM7CiAgICAgICAgIGF1dG8gbXNJZEF0dHJpYnV0ZU5hbWUgPSBtYWtlU3RyaW5nKCJzc3Jj
LSJfcywgKnNzcmMsICItbXNpZCJfcyk7Ci0gICAgICAgIGlmIChhdXRvIG1zSWRBdHRyaWJ1dGUg
PSBnc3RTdHJ1Y3R1cmVHZXRTdHJpbmcoc3RydWN0dXJlLCBDU3RyaW5nVmlldzo6dW5zYWZlRnJv
bVVURjgobXNJZEF0dHJpYnV0ZU5hbWUudXRmOCgpLmRhdGEoKSkpKSB7Ci0gICAgICAgICAgICBh
dXRvIGNvbXBvbmVudHMgPSBtc0lkQXR0cmlidXRlLnRvU3RyaW5nKCkuc3BsaXQoJyAnKTsKKyAg
ICAgICAgaWYgKGF1dG8gbXNJZEF0dHJpYnV0ZSA9IGdzdFN0cnVjdHVyZUdldFN0cmluZyhzdHJ1
Y3R1cmUsIG1zSWRBdHRyaWJ1dGVOYW1lKSkgeworICAgICAgICAgICAgYXV0byBjb21wb25lbnRz
ID0gbXNJZEF0dHJpYnV0ZS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkuc3BsaXQoJyAnKTsKICAg
ICAgICAgICAgIGlmIChjb21wb25lbnRzLnNpemUoKSA9PSAyKQogICAgICAgICAgICAgICAgIG1f
c2RwTXNJZEFuZFRyYWNrSWQgPSB7IGNvbXBvbmVudHNbMF0sIGNvbXBvbmVudHNbMV0gfTsKICAg
ICAgICAgfQogICAgIH0KIAotICAgIGlmIChhdXRvIG1pZCA9IGdzdFN0cnVjdHVyZUdldFN0cmlu
ZyhzdHJ1Y3R1cmUsICJhLW1pZCJfcykpCisgICAgaWYgKGF1dG8gbWlkID0gZ3N0U3RydWN0dXJl
R2V0U3RyaW5nKHN0cnVjdHVyZSwgImEtbWlkIikpCiAgICAgICAgIG1fZGF0YS5taWQgPSBtaWQu
dG9TdHJpbmcoKTsKIAogICAgIG1fZGF0YS5tZWRpYVN0cmVhbUJpbk5hbWUgPSBtYWtlU3RyaW5n
KCJpbmNvbWluZy0iX3MsIHR5cGVOYW1lLCAiLXRyYWNrLSJfcywgbV9kYXRhLnNzcmMsICctJywg
dW5zYWZlU3BhbihHU1RfT0JKRUNUX05BTUUobV9wYWQuZ2V0KCkpKSk7CkBAIC04MSwxMiArODEs
MTEgQEAgdm9pZCBHU3RyZWFtZXJJbmNvbWluZ1RyYWNrUHJvY2Vzc29yOjpjb25maWd1cmUoVGhy
ZWFkU2FmZVdlYWtQdHI8R1N0cmVhbWVyTWVkaWEKIAogICAgIGdfb2JqZWN0X2dldChtX3BhZC5n
ZXQoKSwgInRyYW5zY2VpdmVyIiwgJm1fZGF0YS50cmFuc2NlaXZlci5vdXRQdHIoKSwgbnVsbHB0
cik7CiAKLSAgICBhdXRvIG1zSWRBdHRyaWJ1dGUgPSBnc3RTdHJ1Y3R1cmVHZXRTdHJpbmcoc3Ry
dWN0dXJlLCAiYS1tc2lkIl9zKS50b1N0cmluZygpOwotICAgIGlmICghbXNJZEF0dHJpYnV0ZS5p
c0VtcHR5KCkpIHsKKyAgICBpZiAoYXV0byBtc0lkQXR0cmlidXRlID0gZ3N0U3RydWN0dXJlR2V0
U3RyaW5nKHN0cnVjdHVyZSwgImEtbXNpZCJfcykpIHsKICAgICAgICAgaWYgKG1zSWRBdHRyaWJ1
dGUuc3RhcnRzV2l0aCgnICcpKQotICAgICAgICAgICAgbV9zZHBNc0lkQW5kVHJhY2tJZCA9IHsg
ZW1wdHlTdHJpbmcoKSwgbXNJZEF0dHJpYnV0ZS5zdWJzdHJpbmcoMSkgfTsKKyAgICAgICAgICAg
IG1fc2RwTXNJZEFuZFRyYWNrSWQgPSB7IGVtcHR5U3RyaW5nKCksIG1zSWRBdHRyaWJ1dGUuc3Vi
c3RyaW5nKDEpLnRvU3RyaW5nKCkgfTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhdXRv
IGNvbXBvbmVudHMgPSBtc0lkQXR0cmlidXRlLnNwbGl0KCcgJyk7CisgICAgICAgICAgICBhdXRv
IGNvbXBvbmVudHMgPSBtc0lkQXR0cmlidXRlLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKS5zcGxp
dCgnICcpOwogICAgICAgICAgICAgaWYgKGNvbXBvbmVudHMuc2l6ZSgpID09IDIpCiAgICAgICAg
ICAgICAgICAgbV9zZHBNc0lkQW5kVHJhY2tJZCA9IHsgY29tcG9uZW50c1swXSwgY29tcG9uZW50
c1sxXSB9OwogICAgICAgICB9CkBAIC0xOTUsNyArMTk0LDcgQEAgR1JlZlB0cjxHc3RFbGVtZW50
PiBHU3RyZWFtZXJJbmNvbWluZ1RyYWNrUHJvY2Vzc29yOjppbmNvbWluZ1RyYWNrUHJvY2Vzc29y
KCkKICAgICBpZiAoIWZvcmNlRWFybHlWaWRlb0RlY29kaW5nKSB7CiAgICAgICAgIGF1dG8gc3Ry
dWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZShtX2RhdGEuY2Fwcy5nZXQoKSwgMCk7CiAg
ICAgICAgIEFTU0VSVChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImFwcGxpY2F0
aW9uL3gtcnRwIikpOwotICAgICAgICBhdXRvIGVuY29kaW5nTmFtZSA9IGdzdFN0cnVjdHVyZUdl
dFN0cmluZyhzdHJ1Y3R1cmUsICJlbmNvZGluZy1uYW1lIl9zKS50b1N0cmluZygpOworICAgICAg
ICBhdXRvIGVuY29kaW5nTmFtZSA9IGdzdFN0cnVjdHVyZUdldFN0cmluZyhzdHJ1Y3R1cmUsICJl
bmNvZGluZy1uYW1lIl9zKTsKICAgICAgICAgYXV0byBtZWRpYVR5cGUgPSBtYWtlU3RyaW5nKCJ2
aWRlby94LSJfcywgZW5jb2RpbmdOYW1lLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpOwogICAg
ICAgICBhdXRvIGNvZGVjQ2FwcyA9IGFkb3B0R1JlZihnc3RfY2Fwc19uZXdfZW1wdHlfc2ltcGxl
KG1lZGlhVHlwZS5hc2NpaSgpLmRhdGEoKSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcAppbmRleCA3ZGExYzg1ODkyYzcuLjJmNDMyZmE0
NzM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3Vy
Y2UuY3BwCkBAIC0xMjc2LDcgKzEyNzYsNyBAQCB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3JjQWRk
VHJhY2soV2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNlbGYsIE1lZGlhU3RyZWFtVHJhY2tQcgogICAg
IEdTVF9ERUJVR19PQkpFQ1Qoc2VsZiwgIiVzIEdob3N0aW5nICUiIEdTVF9QVFJfRk9STUFULCBv
YmplY3RQYXRoLmdldCgpLCBwYWQuZ2V0KCkpOwogI2VuZGlmCiAKLSAgICBhdXRvKiBnaG9zdFBh
ZCA9IHdlYmtpdEdzdEdob3N0UGFkRnJvbVN0YXRpY1RlbXBsYXRlKHBhZFRlbXBsYXRlLCBDU3Ry
aW5nVmlldzo6dW5zYWZlRnJvbVVURjgocGFkTmFtZS51dGY4KCkuZGF0YSgpKSwgcGFkLmdldCgp
KTsKKyAgICBhdXRvKiBnaG9zdFBhZCA9IHdlYmtpdEdzdEdob3N0UGFkRnJvbVN0YXRpY1RlbXBs
YXRlKHBhZFRlbXBsYXRlLCBBU0NJSUxpdGVyYWw6OmZyb21MaXRlcmFsVW5zYWZlKHBhZE5hbWUu
YXNjaWkoKS5kYXRhKCkpLCBwYWQuZ2V0KCkpOwogICAgIGdzdF9wYWRfc3RvcmVfc3RpY2t5X2V2
ZW50KGdob3N0UGFkLCBzdGlja3lTdHJlYW1TdGFydEV2ZW50LmdldCgpKTsKICAgICBnc3RfcGFk
X3NldF9hY3RpdmUoZ2hvc3RQYWQsIFRSVUUpOwogICAgIGdzdF9lbGVtZW50X2FkZF9wYWQoR1NU
X0VMRU1FTlRfQ0FTVChzZWxmKSwgZ2hvc3RQYWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1vY2tEZXZpY2VQcm92
aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyTW9ja0RldmljZVByb3ZpZGVyLmNwcAppbmRleCAxYTM5NGFhOGZiZDQuLjFlZDgz
OGNiZDg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lck1vY2tEZXZpY2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1vY2tEZXZpY2VQ
cm92aWRlci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCB3ZWJraXRHc3RNb2NrRGV2aWNlUHJv
dmlkZXJTd2l0Y2hEZWZhdWx0RGV2aWNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIG9sZERldmkKICAg
ICBmb3IgKEdMaXN0KiBpdCA9IGRldmljZXM7IGl0OyBpdCA9IGl0LT5uZXh0KSB7CiAgICAgICAg
IGF1dG8gZGV2aWNlID0gR1NUX0RFVklDRV9DQVNUKGl0LT5kYXRhKTsKICAgICAgICAgR1VuaXF1
ZVB0cjxHc3RTdHJ1Y3R1cmU+IHByb3BlcnRpZXMoZ3N0X2RldmljZV9nZXRfcHJvcGVydGllcyhk
ZXZpY2UpKTsKLSAgICAgICAgYXV0byBwZXJzaXN0ZW50SWQgPSBnc3RTdHJ1Y3R1cmVHZXRTdHJp
bmcocHJvcGVydGllcy5nZXQoKSwgInBlcnNpc3RlbnQtaWQiX3MpLnRvU3RyaW5nKCk7CisgICAg
ICAgIGF1dG8gcGVyc2lzdGVudElkID0gZ3N0U3RydWN0dXJlR2V0U3RyaW5nKHByb3BlcnRpZXMu
Z2V0KCksICJwZXJzaXN0ZW50LWlkIl9zKTsKICAgICAgICAgaWYgKHBlcnNpc3RlbnRJZCA9PSBv
bGREZXZpY2UucGVyc2lzdGVudElkKCkpCiAgICAgICAgICAgICBvbGRHc3REZXZpY2UgPSBkZXZp
Y2U7CiAgICAgICAgIGVsc2UgaWYgKHBlcnNpc3RlbnRJZCA9PSBuZXdEZXZpY2UucGVyc2lzdGVu
dElkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9SVFBQYWNrZXRpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb1JUUFBhY2tldGl6
ZXIuY3BwCmluZGV4IGI0NDhhMzg2Nzg4Zi4uMzFlYmYxMmM2N2IxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9S
VFBQYWNrZXRpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9SVFBQYWNrZXRpemVyLmNwcApAQCAtNDgsOSArNDgs
OCBAQCBSZWZQdHI8R1N0cmVhbWVyVmlkZW9SVFBQYWNrZXRpemVyPiBHU3RyZWFtZXJWaWRlb1JU
UFBhY2tldGl6ZXI6OmNyZWF0ZShSZWZQdHI8VQogICAgIEdVbmlxdWVQdHI8R3N0U3RydWN0dXJl
PiBjb2RlY1BhcmFtZXRlcnMoZ3N0X3N0cnVjdHVyZV9jb3B5KHBhcmFtZXRlcnMpKTsKICAgICBH
U1RfREVCVUcoIkNyZWF0aW5nIHBhY2tldGl6ZXIgZm9yIGNvZGVjOiAlIiBHU1RfUFRSX0ZPUk1B
VCAiIGFuZCBlbmNvZGluZyBwYXJhbWV0ZXJzICUiIEdTVF9QVFJfRk9STUFULCBjb2RlY1BhcmFt
ZXRlcnMuZ2V0KCksIGVuY29kaW5nUGFyYW1ldGVycy5nZXQoKSk7CiAgICAgU3RyaW5nIGVuY29k
aW5nOwotICAgIGF1dG8gZW5jb2RpbmdOYW1lID0gZ3N0U3RydWN0dXJlR2V0U3RyaW5nKGNvZGVj
UGFyYW1ldGVycy5nZXQoKSwgImVuY29kaW5nLW5hbWUiX3MpOwotICAgIGlmIChlbmNvZGluZ05h
bWUpCi0gICAgICAgIGVuY29kaW5nID0gZW5jb2RpbmdOYW1lLnRvU3RyaW5nKCkuY29udmVydFRv
QVNDSUlMb3dlcmNhc2UoKTsKKyAgICBpZiAoYXV0byBlbmNvZGluZ05hbWUgPSBnc3RTdHJ1Y3R1
cmVHZXRTdHJpbmcoY29kZWNQYXJhbWV0ZXJzLmdldCgpLCAiZW5jb2RpbmctbmFtZSJfcykpCisg
ICAgICAgIGVuY29kaW5nID0gZW5jb2RpbmdOYW1lLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7
CiAgICAgZWxzZSB7CiAgICAgICAgIEdTVF9FUlJPUigiZW5jb2RpbmctbmFtZSBub3QgZm91bmQi
KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC03OCw3ICs3Nyw3IEBAIFJlZlB0cjxHU3Ry
ZWFtZXJWaWRlb1JUUFBhY2tldGl6ZXI+IEdTdHJlYW1lclZpZGVvUlRQUGFja2V0aXplcjo6Y3Jl
YXRlKFJlZlB0cjxVCiAgICAgICAgIFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkIHJlY29yZDsK
ICAgICAgICAgcmVjb3JkLmNvZGVjTmFtZSA9ICJ2cDA5Il9zOwogICAgICAgICBpZiAoYXV0byB2
cDlQcm9maWxlID0gZ3N0U3RydWN0dXJlR2V0U3RyaW5nKGNvZGVjUGFyYW1ldGVycy5nZXQoKSwg
InByb2ZpbGUtaWQiX3MpKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBwcm9maWxlID0gcGFyc2VJ
bnRlZ2VyPHVpbnQ4X3Q+KHZwOVByb2ZpbGUudG9TdHJpbmcoKSkpCisgICAgICAgICAgICBpZiAo
YXV0byBwcm9maWxlID0gcGFyc2VJbnRlZ2VyPHVpbnQ4X3Q+KHZwOVByb2ZpbGUpKQogICAgICAg
ICAgICAgICAgIHJlY29yZC5wcm9maWxlID0gKnByb2ZpbGU7CiAgICAgICAgIH0KICAgICAgICAg
Y29kZWMgPSBjcmVhdGVWUENvZGVjUGFyYW1ldGVyc1N0cmluZyhyZWNvcmQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlR1N0cmVh
bWVyLmNwcAppbmRleCBmMzc0Y2E0MDIwYjkuLjAwMWNmZTM5MWJlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29p
bmdBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUdTdHJlYW1l
ci5jcHAKQEAgLTY5LDE0ICs2OSwxNCBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZUdTdHJlYW1lcjo6aW5pdGlhbGl6ZSgpCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZUdTdHJlYW1lcjo6c2V0SW5pdGlhbFBhcmFtZXRlcnMoR1VuaXF1ZVB0cjxHc3RTdHJ1Y3R1cmU+
JiYgcGFyYW1ldGVycykKIHsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvZGVjIDogZ3N0U3RydWN0
dXJlR2V0TGlzdDxjb25zdCBHc3RTdHJ1Y3R1cmUqPihwYXJhbWV0ZXJzLmdldCgpLCAiY29kZWNz
Il9zKSkgewotICAgICAgICBhdXRvIGVuY29kaW5nTmFtZSA9IGdzdFN0cnVjdHVyZUdldFN0cmlu
Zyhjb2RlYywgIm1pbWUtdHlwZSJfcyk7CisgICAgICAgIGF1dG8gZW5jb2RpbmdOYW1lID0gZ3N0
U3RydWN0dXJlR2V0U3RyaW5nKGNvZGVjLCAibWltZS10eXBlIik7CiAgICAgICAgIGlmIChlbmNv
ZGluZ05hbWUuaXNFbXB0eSgpIHx8IGVuY29kaW5nTmFtZS5pc051bGwoKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogCiAgICAgICAgIGlmIChlbmNvZGluZ05hbWUgIT0gImF1ZGlvL3RlbGVwaG9u
ZS1ldmVudCJfcykKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGF1dG8gcHQgPSBn
c3RTdHJ1Y3R1cmVHZXQ8dW5zaWduZWQ+KGNvZGVjLCAicHQiX3MpOworICAgICAgICBhdXRvIHB0
ID0gZ3N0U3RydWN0dXJlR2V0PHVuc2lnbmVkPihjb2RlYywgInB0Iik7CiAgICAgICAgIGlmICgh
cHQpIFtbdW5saWtlbHldXQogICAgICAgICAgICAgY29udGludWU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdNZWRpYVNvdXJjZUdTdHJlYW1lci5j
cHAKaW5kZXggZThmMDQ1NDdhMjE0Li5mMWQzOGI0MDhkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nTWVk
aWFTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3Bw
CkBAIC00MzMsNyArNDMzLDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nTWVkaWFTb3VyY2VHU3Ry
ZWFtZXI6OnNldFBhcmFtZXRlcnMoR1VuaXF1ZVB0cjxHc3RTdHJ1Y3R1cmUKICAgICAgICAgaWYg
KCFyaWQpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBhdXRvIHBhY2tldGl6ZXIg
PSBnZXRQYWNrZXRpemVyRm9yUmlkKHJpZC50b1N0cmluZygpKTsKKyAgICAgICAgYXV0byBwYWNr
ZXRpemVyID0gZ2V0UGFja2V0aXplckZvclJpZChyaWQpOwogICAgICAgICBpZiAoIXBhY2tldGl6
ZXIpCiAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtNDQyLDcgKzQ0Miw3IEBAIHZvaWQgUmVh
bHRpbWVPdXRnb2luZ01lZGlhU291cmNlR1N0cmVhbWVyOjpzZXRQYXJhbWV0ZXJzKEdVbmlxdWVQ
dHI8R3N0U3RydWN0dXJlCiAgICAgbV9wYXJhbWV0ZXJzID0gV1RGTW92ZShwYXJhbWV0ZXJzKTsK
IH0KIAotUmVmUHRyPEdTdHJlYW1lclJUUFBhY2tldGl6ZXI+IFJlYWx0aW1lT3V0Z29pbmdNZWRp
YVNvdXJjZUdTdHJlYW1lcjo6Z2V0UGFja2V0aXplckZvclJpZChjb25zdCBTdHJpbmcmIHJpZCkK
K1JlZlB0cjxHU3RyZWFtZXJSVFBQYWNrZXRpemVyPiBSZWFsdGltZU91dGdvaW5nTWVkaWFTb3Vy
Y2VHU3RyZWFtZXI6OmdldFBhY2tldGl6ZXJGb3JSaWQoU3RyaW5nVmlldyByaWQpCiB7CiAgICAg
Zm9yIChhdXRvJiBwYWNrZXRpemVyIDogbV9wYWNrZXRpemVycykgewogICAgICAgICBpZiAocGFj
a2V0aXplci0+cnRwU3RyZWFtSWQoKSA9PSByaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ01lZGlhU291
cmNlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvUmVhbHRpbWVPdXRnb2luZ01lZGlhU291cmNlR1N0cmVhbWVyLmgKaW5kZXggYmRlMmYx
NWM4OGRjLi4xNTZhODNiZDdjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nTWVkaWFTb3VyY2VHU3RyZWFt
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
UmVhbHRpbWVPdXRnb2luZ01lZGlhU291cmNlR1N0cmVhbWVyLmgKQEAgLTE0NSw3ICsxNDUsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRVcGRhdGluZ1N0YXRzKCk7CiAgICAgdm9pZCBzdG9w
VXBkYXRpbmdTdGF0cygpOwogCi0gICAgUmVmUHRyPEdTdHJlYW1lclJUUFBhY2tldGl6ZXI+IGdl
dFBhY2tldGl6ZXJGb3JSaWQoY29uc3QgU3RyaW5nJik7CisgICAgUmVmUHRyPEdTdHJlYW1lclJU
UFBhY2tldGl6ZXI+IGdldFBhY2tldGl6ZXJGb3JSaWQoU3RyaW5nVmlldyk7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3Rv
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL2dz
dHJlYW1lci9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcAppbmRleCA5ZGQ2MmJhNmM0
NjMuLjUzYWUxZDk0OWQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
Z3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvRGVjb2RlckZhY3RvcnkuY3BwCkBAIC03Nyw3ICs3Nyw3
IEBAIHB1YmxpYzoKICAgICBHc3RFbGVtZW50KiBtYWtlRWxlbWVudChBU0NJSUxpdGVyYWwgZmFj
dG9yeU5hbWUpCiAgICAgewogICAgICAgICBzdGF0aWMgQXRvbWljPHVpbnQzMl90PiBlbGVtZW50
SWQ7Ci0gICAgICAgIGF1dG8gbmFtZSA9IG1ha2VTdHJpbmcoTmFtZSgpLCAiLWRlYy0iX3MsIGZh
Y3RvcnlOYW1lLCAiLSJfcywgZWxlbWVudElkLmV4Y2hhbmdlQWRkKDEpKTsKKyAgICAgICAgYXV0
byBuYW1lID0gbWFrZVN0cmluZyhBU0NJSUxpdGVyYWw6OmZyb21MaXRlcmFsVW5zYWZlKE5hbWUo
KSksICItZGVjLSJfcywgZmFjdG9yeU5hbWUsICItIl9zLCBlbGVtZW50SWQuZXhjaGFuZ2VBZGQo
MSkpOwogICAgICAgICByZXR1cm4gbWFrZUdTdHJlYW1lckVsZW1lbnQoZmFjdG9yeU5hbWUsIG5h
bWUpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZS5tbQppbmRleCBlNGYyYjVhYTVlZGUuLjFjYjI0NTA3MzMxNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KQEAgLTY2
Myw3ICs2NjMsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aQogICAgIHRzLmR1bXBQcm9wZXJ0
eSgiZmlsbE1vZGUiX3MsIGFuaW1hdGlvbi5maWxsTW9kZSk7CiAgICAgdHMuZHVtcFByb3BlcnR5
KCJ2YWx1ZUZ1bmN0aW9uIl9zLCBhbmltYXRpb24udmFsdWVGdW5jdGlvbik7CiAgICAgaWYgKGFu
aW1hdGlvbi50aW1pbmdGdW5jdGlvbikKLSAgICAgICAgdHMuZHVtcFByb3BlcnR5PGNvbnN0IFRp
bWluZ0Z1bmN0aW9uJj4oInRpbWluZyBmdW5jdGlvbiJfcywgUmVmIHsgKmFuaW1hdGlvbi50aW1p
bmdGdW5jdGlvbiB9KTsKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5PGNvbnN0IFRpbWluZ0Z1bmN0
aW9uJj4oInRpbWluZyBmdW5jdGlvbiIsIFJlZiB7ICphbmltYXRpb24udGltaW5nRnVuY3Rpb24g
fSk7CiAKICAgICBpZiAoYW5pbWF0aW9uLmF1dG9SZXZlcnNlcykKICAgICAgICAgdHMuZHVtcFBy
b3BlcnR5KCJhdXRvUmV2ZXJzZXMiX3MsIGFuaW1hdGlvbi5hdXRvUmV2ZXJzZXMpOwpAQCAtNjk3
LDcgKzY5Nyw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OlByb3BlcnRpCiAgICAgICAgICAgICB0cy5kdW1w
UHJvcGVydHkoInRpbWUiX3MsIGFuaW1hdGlvbi5rZXlUaW1lc1tpXSk7CiAKICAgICAgICAgaWYg
KGkgPCBhbmltYXRpb24udGltaW5nRnVuY3Rpb25zLnNpemUoKSkKLSAgICAgICAgICAgIHRzLmR1
bXBQcm9wZXJ0eTxjb25zdCBUaW1pbmdGdW5jdGlvbiY+KCJ0aW1pbmcgZnVuY3Rpb24iX3MsIGFu
aW1hdGlvbi50aW1pbmdGdW5jdGlvbnNbaV0pOworICAgICAgICAgICAgdHMuZHVtcFByb3BlcnR5
PGNvbnN0IFRpbWluZ0Z1bmN0aW9uJj4oInRpbWluZyBmdW5jdGlvbiIsIGFuaW1hdGlvbi50aW1p
bmdGdW5jdGlvbnNbaV0pOwogCiAgICAgICAgIGlmIChpIDwgYW5pbWF0aW9uLmtleVZhbHVlcy5z
aXplKCkpIHsKICAgICAgICAgICAgIHRzLnN0YXJ0R3JvdXAoKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtl
TGlzdHMudHh0CmluZGV4IGU5ZjU0YjZiOGJiMi4uNmUxZWE0MjUxMzgwIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvQ01ha2VMaXN0cy50eHQKQEAgLTMyLDcgKzMyLDYgQEAgc2V0KFRlc3RXVEZfU09VUkNFUwog
ICAgIFRlc3RzL1dURi9Cb3hQdHIuY3BwCiAgICAgVGVzdHMvV1RGL0J1bXBQb2ludGVyQWxsb2Nh
dG9yLmNwcAogICAgIFRlc3RzL1dURi9DU3RyaW5nLmNwcAotICAgIFRlc3RzL1dURi9DU3RyaW5n
Vmlldy5jcHAKICAgICBUZXN0cy9XVEYvQ2hhcmFjdGVyUHJvcGVydGllcy5jcHAKICAgICBUZXN0
cy9XVEYvQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcAogICAgIFRlc3RzL1dURi9Db21w
YWN0UHRyLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YjBiYmVkYzNkYzkuLjA3NmY4
MjQwNTUxZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMTEsNyArMTMxMSw2IEBACiAJ
CUNEMjdBMUMxMjNDNjYxRUQwMDZFMTFERCAvKiBXS1dlYlZpZXdQYXVzZVBsYXlpbmdBdWRpb1Rl
c3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qy
N0ExQzAyM0M2NjFFRDAwNkUxMUREIC8qIFdLV2ViVmlld1BhdXNlUGxheWluZ0F1ZGlvVGVzdHMu
bW0gKi87IH07CiAJCUNENDhBODczMjRDOEE2NkYwMEY1ODAwQyAvKiBPYnNlcnZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ4QTg3MjI0QzhB
NjZGMDBGNTgwMEMgLyogT2JzZXJ2ZXIuY3BwICovOyB9OwogCQlDRDVGRjQ5RjIxNjJFOTQzMDA0
QkQ4NkYgLyogSVNPQm94LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENUZGNDk2MjE2MkUyN0UwMDRCRDg2RiAvKiBJU09Cb3guY3BwICovOyB9Owot
CQlDRDkzMEQ3RTJEOUVBQzlGMDA1MDdCNkIgLyogQ1N0cmluZ1ZpZXcuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5MzBEN0QyRDlFQUM5RjAwNTA3
QjZCIC8qIENTdHJpbmdWaWV3LmNwcCAqLzsgfTsKIAkJQ0RBMzE1OTgxRUQ1MzY1MTAwOUY2MEQz
IC8qIE1lZGlhUGxheWJhY2tTbGVlcEFzc2VydGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTMxNTk2MUVENTM2NTEwMDlGNjBEMyAvKiBNZWRp
YVBsYXliYWNrU2xlZXBBc3NlcnRpb24ubW0gKi87IH07CiAJCUNEQjIxM0JEMjRFRjUyMjgwMEZE
RTMwMSAvKiBGdWxsc2NyZWVuRm9jdXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREIyMTNCQzI0RUY1MjI4MDBGREUzMDEgLyogRnVsbHNjcmVlbkZv
Y3VzLm1tICovOyB9OwogCQlDREJGQ0M0NTFBOUZGNDUzMDBBN0I2OTEgLyogRnVsbHNjcmVlblpv
b21Jbml0aWFsRnJhbWUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREJGQ0M0MzFBOUZGNDQ4MDBBN0I2OTEgLyogRnVsbHNjcmVlblpvb21Jbml0aWFs
RnJhbWUubW0gKi87IH07CkBAIC0zOTM3LDcgKzM5MzYsNiBAQAogCQlDRDdGQzVEODJDREFGNzE2
MDAzMkMxRkMgLyogRnVsbHNjcmVlblNjcm9sbEFuZFJlc2l6ZS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEZ1bGxzY3JlZW5TY3JvbGxBbmRSZXNpemUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEODM5NERFMjMyQUYxNUUwMDE0OTQ5NSAvKiBtZWRpYS1sb2FkaW5nLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAibWVkaWEtbG9hZGluZy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0Q4OUQwMzgxQzRFREIyQTAwMDQwQTA0IC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlTlNVUkxTZXNz
aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDRDkzMEQ3RDJEOUVBQzlGMDA1
MDdCNkIgLyogQ1N0cmluZ1ZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ1N0cmluZ1ZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDlF
MjkyQjFDOTBBNzFGMDAwQkI4MDAgLyogUmVxdWlyZXNVc2VyQWN0aW9uRm9yUGxheWJhY2subW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXF1aXJlc1VzZXJBY3Rp
b25Gb3JQbGF5YmFjay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q5RTI5MkQx
QzkwQzFCQTAwMEJCODAwIC8qIGF1ZGlvLW9ubHkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJhdWRpby1vbmx5Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REEyOUIyODIwRkQyQTk5MDBGMTVDRUQgLyogRXhpdEZ1bGxzY3JlZW5PbkVudGVyUGlQLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRXhpdEZ1bGxzY3JlZW5PbkVudGVyUGlQLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjI5MCw3ICs2Mjg4LDYgQEAKIAkJCQkyNzhERTY0QjIy
QjhENjExMDA0RTBFN0EgLyogQ3Jvc3NUaHJlYWRDb3BpZXJUZXN0cy5jcHAgKi8sCiAJCQkJNTE3
MTRFQjkxRDA4NzQxNjAwNDcyM0M0IC8qIENyb3NzVGhyZWFkVGFzay5jcHAgKi8sCiAJCQkJMjZB
MkM3MkUxNUUyRTczQzAwNUIxQTE0IC8qIENTdHJpbmcuY3BwICovLAotCQkJCUNEOTMwRDdEMkQ5
RUFDOUYwMDUwN0I2QiAvKiBDU3RyaW5nVmlldy5jcHAgKi8sCiAJCQkJN0FBMDIxQkExQUIwOUVB
NzAwNTI5NTNGIC8qIERhdGVNYXRoLmNwcCAqLywKIAkJCQkxQTM1MjRBOTFENjI3QkQ0MDAzMTcy
OUIgLyogRGVsZXRlZEFkZHJlc3NPZk9wZXJhdG9yLmggKi8sCiAJCQkJRTRBNzU3RDMxNzhBRUE1
QjAwQjVEN0E0IC8qIERlcXVlLmNwcCAqLywKQEAgLTc0NjksNyArNzQ2Niw2IEBACiAJCQkJNUMy
QzAxQTgyNzM0ODgzNjAwRjg5RDM3IC8qIENyb3NzVGhyZWFkQ29waWVyVGVzdHMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDVGM0E1RjcyRDgyMjI2MTAwMkI0NTUwIC8qIENyb3NzVGhyZWFkVGFz
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzREVBOTFEMEE1OTBDMDBGRUJDRjMgLyogQ1N0
cmluZy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDRDkzMEQ3RTJEOUVBQzlGMDA1MDdCNkIgLyog
Q1N0cmluZ1ZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDVGM0E1RTUyRDgxRjk1NTAwMkI0
NTUwIC8qIERhdGVNYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERUFEMUQwQTU5MEMw
MEZFQkNGMyAvKiBEZXF1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRkQzRkYzNzJBRjlCRDhG
MDA1N0M1MDggLyogRHJhZ29uQm94VGVzdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NTdHJpbmdWaWV3LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NTdHJpbmdWaWV3LmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDY4NDgwNmVkYjUwLi4wMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvQ1N0cmluZ1ZpZXcuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTA5
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjUgQ29tY2FzdCBJbmMuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjUgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmdWaWV3Lmg+Ci0KLSNpbmNsdWRlIDx3dGYvdGV4
dC9BU0NJSUxpdGVyYWwuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1URVNUKFdURiwgQ1N0cmluZ1ZpZXdOdWxsQW5kRW1w
dHkpCi17Ci0gICAgQ1N0cmluZ1ZpZXcgc3RyaW5nOwotICAgIEVYUEVDVF9UUlVFKHN0cmluZy5p
c051bGwoKSk7Ci0gICAgRVhQRUNUX1RSVUUoc3RyaW5nLmlzRW1wdHkoKSk7Ci0gICAgRVhQRUNU
X0VRKHN0cmluZy5yYXdDaGFyYWN0ZXJzKCksIG51bGxwdHIpOwotICAgIEVYUEVDVF9UUlVFKCFz
dHJpbmcpOwotICAgIEVYUEVDVF9GQUxTRShzdHJpbmcpOwotCi0gICAgc3RyaW5nID0gQ1N0cmlu
Z1ZpZXcobnVsbHB0cik7Ci0gICAgRVhQRUNUX1RSVUUoc3RyaW5nLmlzTnVsbCgpKTsKLSAgICBF
WFBFQ1RfVFJVRShzdHJpbmcuaXNFbXB0eSgpKTsKLSAgICBFWFBFQ1RfRVEoc3RyaW5nLnJhd0No
YXJhY3RlcnMoKSwgbnVsbHB0cik7Ci0gICAgRVhQRUNUX1RSVUUoIXN0cmluZyk7Ci0gICAgRVhQ
RUNUX0ZBTFNFKHN0cmluZyk7Ci0KLSAgICBzdHJpbmcgPSBDU3RyaW5nVmlldygiIl9zKTsKLSAg
ICBFWFBFQ1RfVFJVRShzdHJpbmcuaXNOdWxsKCkpOwotICAgIEVYUEVDVF9UUlVFKHN0cmluZy5p
c0VtcHR5KCkpOwotICAgIEVYUEVDVF9FUShzdHJpbmcucmF3Q2hhcmFjdGVycygpLCBudWxscHRy
KTsKLSAgICBFWFBFQ1RfVFJVRSghc3RyaW5nKTsKLSAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nKTsK
LQotICAgIHN0cmluZyA9IENTdHJpbmdWaWV3KCJ0ZXN0Il9zKTsKLSAgICBFWFBFQ1RfRkFMU0Uo
c3RyaW5nLmlzTnVsbCgpKTsKLSAgICBFWFBFQ1RfRkFMU0Uoc3RyaW5nLmlzRW1wdHkoKSk7Ci0g
ICAgRVhQRUNUX1RSVUUoc3RyaW5nLnJhd0NoYXJhY3RlcnMoKSk7Ci0gICAgRVhQRUNUX0ZBTFNF
KCFzdHJpbmcpOwotICAgIEVYUEVDVF9UUlVFKHN0cmluZyk7Ci19Ci0KLVRFU1QoV1RGLCBDU3Ry
aW5nVmlld0xlbmd0aCkKLXsKLSAgICBDU3RyaW5nVmlldyBzdHJpbmc7Ci0gICAgRVhQRUNUX0VR
KHN0cmluZy5sZW5ndGgoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PigwKSk7Ci0gICAgRVhQRUNUX0VR
KHN0cmluZy5zcGFuOCgpLnNpemUoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PigwKSk7Ci0KLSAgICBz
dHJpbmcgPSBDU3RyaW5nVmlldygidGVzdCJfcyk7Ci0gICAgRVhQRUNUX0VRKHN0cmluZy5sZW5n
dGgoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90Pig0KSk7Ci0gICAgRVhQRUNUX0VRKHN0cmluZy5zcGFu
OCgpLnNpemUoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90Pig0KSk7Ci19Ci0KLVRFU1QoV1RGLCBDU3Ry
aW5nVmlld0Zyb20pCi17Ci0gICAgY29uc3QgY2hhciogc3RyaW5nUHRyID0gInRlc3QiOwotICAg
IENTdHJpbmdWaWV3IHN0cmluZyA9IENTdHJpbmdWaWV3Ojp1bnNhZmVGcm9tVVRGOChzdHJpbmdQ
dHIpOwotICAgIEVYUEVDVF9FUShzdHJpbmcubGVuZ3RoKCksIHN0YXRpY19jYXN0PHNpemVfdD4o
NCkpOwotICAgIEVYUEVDVF9UUlVFKHN0cmluZyk7Ci0gICAgRVhQRUNUX0VRKHN0cmluZy5yYXdD
aGFyYWN0ZXJzKCksIHN0cmluZ1B0cik7Ci0KLSAgICBzdHJpbmdQdHIgPSAiIjsKLSAgICBzdHJp
bmcgPSBDU3RyaW5nVmlldzo6dW5zYWZlRnJvbVVURjgoc3RyaW5nUHRyKTsKLSAgICBFWFBFQ1Rf
RVEoc3RyaW5nLmxlbmd0aCgpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KDApKTsKLSAgICBFWFBFQ1Rf
RkFMU0Uoc3RyaW5nKTsKLSAgICBFWFBFQ1RfRVEoc3RyaW5nLnJhd0NoYXJhY3RlcnMoKSwgc3Ry
aW5nUHRyKTsKLX0KLQotVEVTVChXVEYsIENTdHJpbmdWaWV3RXF1YWxpdHkpCi17Ci0gICAgQ1N0
cmluZ1ZpZXcgc3RyaW5nKCJUZXN0Il9zKTsKLSAgICBDU3RyaW5nVmlldyBzYW1lU3RyaW5nKCJU
ZXN0Il9zKTsKLSAgICBDU3RyaW5nVmlldyBhbm90aGVyU3RyaW5nKCJhbm90aGVyIHRlc3QiX3Mp
OwotICAgIENTdHJpbmdWaWV3IGVtcHR5U3RyaW5nOwotICAgIENTdHJpbmdWaWV3IG51bGxTdHJp
bmcobnVsbHB0cik7Ci0gICAgQ1N0cmluZ1ZpZXcgbWl4ZWRDYXNlU3RyaW5nKCJ0ZXN0Il9zKTsK
LSAgICBFWFBFQ1RfVFJVRShzdHJpbmcgIT0gZW1wdHlTdHJpbmcpOwotICAgIEVYUEVDVF9FUShz
dHJpbmcsIHN0cmluZyk7Ci0gICAgRVhQRUNUX0VRKHN0cmluZywgc2FtZVN0cmluZyk7Ci0gICAg
RVhQRUNUX1RSVUUoc3RyaW5nICE9IGFub3RoZXJTdHJpbmcpOwotICAgIEVYUEVDVF9FUShlbXB0
eVN0cmluZywgbnVsbFN0cmluZyk7Ci0gICAgRVhQRUNUX1RSVUUoc3RyaW5nICE9IG1peGVkQ2Fz
ZVN0cmluZyk7Ci0gICAgRVhQRUNUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmcs
IG1peGVkQ2FzZVN0cmluZykpOwotfQotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>