<?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>158427</bug_id>
          
          <creation_ts>2016-06-06 10:43:08 -0700</creation_ts>
          <short_desc>REGRESSION(r201706): This change broke the Yosemite build and its LayoutTest is failing on Mac and iOS testers (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2016-06-06 10:55:15 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>158403</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>dino</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1199614</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-06 10:43:08 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/201706 broke the build:
This change broke the Yosemite build and its LayoutTest is failing on Mac and iOS testers (Requested by ryanhaddad on #webkit).

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

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199622</commentid>
    <comment_count>2</comment_count>
      <attachid>280608</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-06-06 10:55:10 -0700</bug_when>
    <thetext>Comment on attachment 280608
ROLLOUT of r201706

Clearing flags on attachment: 280608

Committed r201715: &lt;http://trac.webkit.org/changeset/201715&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199623</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-06-06 10:55:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280608</attachid>
            <date>2016-06-06 10:43:49 -0700</date>
            <delta_ts>2016-06-06 10:55:10 -0700</delta_ts>
            <desc>ROLLOUT of r201706</desc>
            <filename>bug-158427-20160606104513.patch</filename>
            <type>text/plain</type>
            <size>72455</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRjMGMwMTQyNDc1Mzkw
ZDhlNTA1ZDQ4MjcwMTVhZmJiZGUwZWUyZi4uN2MxYTgxMmMzNzhiOTY3OGY1ZjQzMjQyZTkwZjU1
ODMzMDM5ZDMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA2LTA2ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjAxNzA2LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU4NDI3CisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYnJva2UgdGhlIFlv
c2VtaXRlIGJ1aWxkIGFuZCBpdHMgTGF5b3V0VGVzdCBpcworICAgICAgICBmYWlsaW5nIG9uIE1h
YyBhbmQgaU9TIHRlc3RlcnMgKFJlcXVlc3RlZCBieSByeWFuaGFkZGFkIG9uCisgICAgICAgICN3
ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiQWRkIGV4
cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBzcHJpbmcgYmFzZWQgQ1NTIGFuaW1hdGlvbnMiCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MDMKKyAgICAg
ICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjAxNzA2CisKIDIwMTYtMDYtMDYg
IEphdmllciBGZXJuYW5kZXogIDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nz
cy1ncmlkXSBIb3Jpem9udGFsIHNjcm9sbCBtdXN0IGFjY291bnQgZm9yIGdyaWQgY29udGFpbmVy
J3MgaGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWVkN2E5OTQ0MDU3ZmJkZDEyYTU5NzBkMmQ4Y2Q0NmJi
NTgwNGQxNS4uM2Q4MjU4OWMwYjFmMjcyZThkYmY1OTFkMTM1ODg3ZGIyZjE5N2ViOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA2LTA2ICBDb21taXQgUXVldWUgIDxjb21taXQt
cXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjAx
NzA2LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4
NDI3CisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYnJva2UgdGhlIFlvc2VtaXRlIGJ1aWxkIGFuZCBp
dHMgTGF5b3V0VGVzdCBpcworICAgICAgICBmYWlsaW5nIG9uIE1hYyBhbmQgaU9TIHRlc3RlcnMg
KFJlcXVlc3RlZCBieSByeWFuaGFkZGFkIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAg
IFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0
IGZvciBzcHJpbmcgYmFzZWQgQ1NTIGFuaW1hdGlvbnMiCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MDMKKyAgICAgICAgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMjAxNzA2CisKIDIwMTYtMDYtMDYgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZWR1Y2UgUmVzb3VyY2VSZXF1
ZXN0IGNvcHlpbmcgaW4gbG9hZGluZyBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTNkMjYyZTE3ZDM4MDM1NzcyNzY0MjM2
MmY4YTE5NTNkOGVlNjZmYi4uN2MwZjNhODM5MDZhZWFiZTNjNTU2NTVkZTY1ZGQzOGQzYjJkY2Fj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjc2NCw3ICsyNzY0LDYgQEAKIAkJN0M3NEQ0M0MxODgyNDAwNDAwRTVFRDU3IC8q
IFVUZXh0UHJvdmlkZXJVVEYxNi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M3NEQ0M0ExODgyNDAwNDAwRTVFRDU3IC8qIFVUZXh0UHJvdmlkZXJVVEYx
Ni5oICovOyB9OwogCQk3Qzc5NDFFNDFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0Nv
cmVTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDNzk0MUUyMUM1NkMyOTMwMEE0QzU4RSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5r
Lm1tICovOyB9OwogCQk3Qzc5NDFFNTFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0Nv
cmVTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0M3OTQxRTMxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsu
aCAqLzsgfTsKLQkJN0M4M0RFODYxRDA0Q0M1RDAwRkVCQ0YzIC8qIFNwcmluZ1NvbHZlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4M0RFODUxRDA0
Q0JENDAwRkVCQ0YzIC8qIFNwcmluZ1NvbHZlci5oICovOyB9OwogCQk3QzkxQTM4RjFCNDk4QUJF
MDAzRjlFRkEgLyogSlNOb2RlT3JTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M5MUEzOEQxQjQ5OEFCRTAwM0Y5RUZBIC8qIEpTTm9kZU9y
U3RyaW5nLmNwcCAqLzsgfTsKIAkJN0M5MUEzOTAxQjQ5OEFCRTAwM0Y5RUZBIC8qIEpTTm9kZU9y
U3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QzkxQTM4RTFCNDk4QUJFMDAzRjlFRkEgLyogSlNOb2RlT3JTdHJpbmcuaCAqLzsgfTsKIAkJN0M5
M0YzNDkxQUE2QkE1RTAwQTk4QkFCIC8qIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzkzRjM0NzFBQTZC
QTVFMDBBOThCQUIgLyogQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmNwcCAqLzsgfTsKQEAgLTEw
NDMxLDcgKzEwNDMwLDYgQEAKIAkJN0M3NEQ0M0ExODgyNDAwNDAwRTVFRDU3IC8qIFVUZXh0UHJv
dmlkZXJVVEYxNi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVGV4dFByb3Zp
ZGVyVVRGMTYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3OTQxRTIxQzU2QzI5
MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qzc5NDFFMzFDNTZDMjkzMDBBNEM1OEUgLyog
RGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTdDODNERTg1MUQwNENCRDQwMEZFQkNGMyAvKiBTcHJpbmdTb2x2ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ByaW5nU29sdmVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDOTFBMzhEMUI0OThBQkUwMDNGOUVGQSAvKiBKU05vZGVPclN0cmlu
Zy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vZGVPclN0cmlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDOTFBMzhFMUI0OThBQkUwMDNG
OUVGQSAvKiBKU05vZGVPclN0cmluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU05vZGVPclN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzkzRjM0
NzFBQTZCQTVFMDBBOThCQUIgLyogQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjA2Niw3ICsyMjA2NCw2IEBACiAJ
CQkJMEYzREQ0NEUxMkY1RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIuaCAqLywKIAkJCQlDRDY0
MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oICovLAogCQkJCUNE
QzhCNUFDMTgwNEFFNUQwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmggKi8s
Ci0JCQkJN0M4M0RFODUxRDA0Q0JENDAwRkVCQ0YzIC8qIFNwcmluZ1NvbHZlci5oICovLAogCQkJ
CUIyMzU0MEYwMEQwMDc4MkUwMDIzODJGQSAvKiBTdHJpbmdUcnVuY2F0b3IuY3BwICovLAogCQkJ
CUIyMzU0MEYxMEQwMDc4MkUwMDIzODJGQSAvKiBTdHJpbmdUcnVuY2F0b3IuaCAqLywKIAkJCQk4
NDlGNzc3NTBFRkVDNjIwMDA5MDg0OUQgLyogU3Ryb2tlU3R5bGVBcHBsaWVyLmggKi8sCkBAIC0y
Nzg0Myw3ICsyNzg0MCw2IEBACiAJCQkJQkM4Qjg1NEIwRTdDN0Y1NjAwQUI2OTg0IC8qIFNjcm9s
bGJhclRoZW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE0MDI4QjBFODM2ODA4MDAzMTk3MTcg
LyogU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0Qzk5MTg2
MEYzRDFFQkUwMDU4NjY3MCAvKiBTY3JvbGxiYXJUaGVtZUlPUy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJN0M4M0RFODYxRDA0Q0M1RDAwRkVCQ0YzIC8qIFNwcmluZ1NvbHZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM4Qjg1M0UwRTdDN0YxMTAwQUI2OTg0IC8qIFNjcm9sbGJhclRoZW1lTWFjLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkU3MTQwNjE0MjE3MEI4MDBEQjMzQkEgLyogU2Nyb2xsYmFy
VGhlbWVNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RDkyNUI2ODBGNjRENEREMDBCODQ3RjAg
LyogU2Nyb2xsQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA0NzYzZjJjODEyNzE1
Mjg4OTE2NjUwN2U0YzQxOTE0MmU2NDM0YThiLi43OWM1YzI3OWZkMjcwM2M2ZjJlOWI4ZjdlZjJh
ZmRlMmYxYmE4ODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTQ5OCwxMCArMTQ5OCwxMCBAQCBzdGF0aWMgUmVmPENT
U1ZhbHVlPiBjcmVhdGVUaW1pbmdGdW5jdGlvblZhbHVlKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0
aW1pbmdGdW5jdAogewogICAgIHN3aXRjaCAodGltaW5nRnVuY3Rpb24tPnR5cGUoKSkgewogICAg
IGNhc2UgVGltaW5nRnVuY3Rpb246OkN1YmljQmV6aWVyRnVuY3Rpb246IHsKLSAgICAgICAgYXV0
byYgZnVuY3Rpb24gPSAqc3RhdGljX2Nhc3Q8Y29uc3QgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlv
bio+KHRpbWluZ0Z1bmN0aW9uKTsKLSAgICAgICAgaWYgKGZ1bmN0aW9uLnRpbWluZ0Z1bmN0aW9u
UHJlc2V0KCkgIT0gQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6Q3VzdG9tKSB7CisgICAgICAg
IGNvbnN0IEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24qIGJlemllclRpbWluZ0Z1bmN0aW9uID0g
c3RhdGljX2Nhc3Q8Y29uc3QgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0
aW9uKTsKKyAgICAgICAgaWYgKGJlemllclRpbWluZ0Z1bmN0aW9uLT50aW1pbmdGdW5jdGlvblBy
ZXNldCgpICE9IEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb246OkN1c3RvbSkgewogICAgICAgICAg
ICAgQ1NTVmFsdWVJRCB2YWx1ZUlkID0gQ1NTVmFsdWVJbnZhbGlkOwotICAgICAgICAgICAgc3dp
dGNoIChmdW5jdGlvbi50aW1pbmdGdW5jdGlvblByZXNldCgpKSB7CisgICAgICAgICAgICBzd2l0
Y2ggKGJlemllclRpbWluZ0Z1bmN0aW9uLT50aW1pbmdGdW5jdGlvblByZXNldCgpKSB7CiAgICAg
ICAgICAgICBjYXNlIEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb246OkVhc2U6CiAgICAgICAgICAg
ICAgICAgdmFsdWVJZCA9IENTU1ZhbHVlRWFzZTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAg
LTE1MTIsMjEgKzE1MTIsMTcgQEAgc3RhdGljIFJlZjxDU1NWYWx1ZT4gY3JlYXRlVGltaW5nRnVu
Y3Rpb25WYWx1ZShjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3QKICAgICAgICAgICAg
ICAgICB2YWx1ZUlkID0gQ1NTVmFsdWVFYXNlT3V0OwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBBU1NFUlQoZnVuY3Rpb24udGlt
aW5nRnVuY3Rpb25QcmVzZXQoKSA9PSBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpFYXNlSW5P
dXQpOworICAgICAgICAgICAgICAgIEFTU0VSVChiZXppZXJUaW1pbmdGdW5jdGlvbi0+dGltaW5n
RnVuY3Rpb25QcmVzZXQoKSA9PSBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uOjpFYXNlSW5PdXQp
OwogICAgICAgICAgICAgICAgIHZhbHVlSWQgPSBDU1NWYWx1ZUVhc2VJbk91dDsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZUlkKTsKICAgICAg
ICAgfQotICAgICAgICByZXR1cm4gQ1NTQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvblZhbHVlOjpj
cmVhdGUoZnVuY3Rpb24ueDEoKSwgZnVuY3Rpb24ueTEoKSwgZnVuY3Rpb24ueDIoKSwgZnVuY3Rp
b24ueTIoKSk7CisgICAgICAgIHJldHVybiBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFs
dWU6OmNyZWF0ZShiZXppZXJUaW1pbmdGdW5jdGlvbi0+eDEoKSwgYmV6aWVyVGltaW5nRnVuY3Rp
b24tPnkxKCksIGJlemllclRpbWluZ0Z1bmN0aW9uLT54MigpLCBiZXppZXJUaW1pbmdGdW5jdGlv
bi0+eTIoKSk7CiAgICAgfQogICAgIGNhc2UgVGltaW5nRnVuY3Rpb246OlN0ZXBzRnVuY3Rpb246
IHsKLSAgICAgICAgYXV0byYgZnVuY3Rpb24gPSAqc3RhdGljX2Nhc3Q8Y29uc3QgU3RlcHNUaW1p
bmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uKTsKLSAgICAgICAgcmV0dXJuIENTU1N0ZXBzVGlt
aW5nRnVuY3Rpb25WYWx1ZTo6Y3JlYXRlKGZ1bmN0aW9uLm51bWJlck9mU3RlcHMoKSwgZnVuY3Rp
b24uc3RlcEF0U3RhcnQoKSk7Ci0gICAgfQotICAgIGNhc2UgVGltaW5nRnVuY3Rpb246OlNwcmlu
Z0Z1bmN0aW9uOiB7Ci0gICAgICAgIGF1dG8mIGZ1bmN0aW9uID0gKnN0YXRpY19jYXN0PGNvbnN0
IFNwcmluZ1RpbWluZ0Z1bmN0aW9uKj4odGltaW5nRnVuY3Rpb24pOwotICAgICAgICByZXR1cm4g
Q1NTU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3JlYXRlKGZ1bmN0aW9uLm1hc3MoKSwgZnVu
Y3Rpb24uc3RpZmZuZXNzKCksIGZ1bmN0aW9uLmRhbXBpbmcoKSwgZnVuY3Rpb24uaW5pdGlhbFZl
bG9jaXR5KCkpOworICAgICAgICBjb25zdCBTdGVwc1RpbWluZ0Z1bmN0aW9uKiBzdGVwc1RpbWlu
Z0Z1bmN0aW9uID0gc3RhdGljX2Nhc3Q8Y29uc3QgU3RlcHNUaW1pbmdGdW5jdGlvbio+KHRpbWlu
Z0Z1bmN0aW9uKTsKKyAgICAgICAgcmV0dXJuIENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZTo6
Y3JlYXRlKHN0ZXBzVGltaW5nRnVuY3Rpb24tPm51bWJlck9mU3RlcHMoKSwgc3RlcHNUaW1pbmdG
dW5jdGlvbi0+c3RlcEF0U3RhcnQoKSk7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFT
U0VSVCh0aW1pbmdGdW5jdGlvbi0+dHlwZSgpID09IFRpbWluZ0Z1bmN0aW9uOjpMaW5lYXJGdW5j
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDFkY2U0ZTFlZTkxMTgxYmM2NGFl
OWFhMTc0NjA2MjEwODhhZjYwNjQuLjkwZmZmYmYwNmYxZDAxYTdjNjVkMzA4NjRjZWQyNDZmMmQ1
Yzc0YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0yNzAsNyArMjcwLDYgQEAgQ1NT
UGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFVSTCYgYmFzZVVSTCwgY29uc3QKICNpZiBFTkFCTEUoSU9TX1RFWFRfQVVUT1NJWklORykKICAg
ICAgICAgdGV4dEF1dG9zaXppbmdFbmFibGVkID0gc2V0dGluZ3MtPnRleHRBdXRvc2l6aW5nRW5h
YmxlZCgpOwogI2VuZGlmCi0gICAgICAgIHNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCA9IHNl
dHRpbmdzLT5zcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQoKTsKICAgICB9CiAKICNpZiBQTEFU
Rk9STShJT1MpCkBAIC0yOTIsOCArMjkxLDcgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1Bh
cnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAjZW5kaWYKICAgICAg
ICAgJiYgYS5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9PSBiLm5lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzCiAgICAgICAgICYmIGEuZW5mb3JjZXNDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlID09IGIu
ZW5mb3JjZXNDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlCi0gICAgICAgICYmIGEudXNlTGVnYWN5
QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvciA9PSBiLnVzZUxlZ2FjeUJhY2tncm91bmRT
aXplU2hvcnRoYW5kQmVoYXZpb3IKLSAgICAgICAgJiYgYS5zcHJpbmdUaW1pbmdGdW5jdGlvbkVu
YWJsZWQgPT0gYi5zcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQ7CisgICAgICAgICYmIGEudXNl
TGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvciA9PSBiLnVzZUxlZ2FjeUJhY2tn
cm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3I7CiB9CiAKIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGNv
bnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCkBAIC01MTU5LDM2ICs1MTU3LDIxIEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZVRyYW5zZm9ybU9yaWdpblNob3J0aGFuZChSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+JiB2YWx1ZTEsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQ1NTUGFy
c2VyOjppc1NwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fY29udGV4dC5zcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQ7Ci19Ci0KLU9wdGlvbmFsPGRv
dWJsZT4gQ1NTUGFyc2VyOjpwYXJzZUN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25WYWx1ZShDU1NQ
YXJzZXJWYWx1ZUxpc3QmIGFyZ3MpCitib29sIENTU1BhcnNlcjo6cGFyc2VDdWJpY0JlemllclRp
bWluZ0Z1bmN0aW9uVmFsdWUoQ1NTUGFyc2VyVmFsdWVMaXN0JiBhcmdzLCBkb3VibGUmIHJlc3Vs
dCkKIHsKICAgICBWYWx1ZVdpdGhDYWxjdWxhdGlvbiBhcmd1bWVudFdpdGhDYWxjdWxhdGlvbigq
YXJncy5jdXJyZW50KCkpOwogICAgIGlmICghdmFsaWRhdGVVbml0KGFyZ3VtZW50V2l0aENhbGN1
bGF0aW9uLCBGTnVtYmVyKSkKLSAgICAgICAgcmV0dXJuIE51bGxvcHQ7Ci0gICAgT3B0aW9uYWw8
ZG91YmxlPiByZXN1bHQgPSBwYXJzZWREb3VibGUoYXJndW1lbnRXaXRoQ2FsY3VsYXRpb24pOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0ID0gcGFyc2VkRG91YmxlKGFyZ3VtZW50
V2l0aENhbGN1bGF0aW9uKTsKICAgICBDU1NQYXJzZXJWYWx1ZSogbmV4dFZhbHVlID0gYXJncy5u
ZXh0KCk7CiAgICAgaWYgKCFuZXh0VmFsdWUpIHsKICAgICAgICAgLy8gVGhlIGxhc3QgbnVtYmVy
IGluIHRoZSBmdW5jdGlvbiBoYXMgbm8gY29tbWEgYWZ0ZXIgaXQsIHNvIHdlJ3JlIGRvbmUuCi0g
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBp
ZiAoIWlzQ29tbWEobmV4dFZhbHVlKSkKLSAgICAgICAgcmV0dXJuIE51bGxvcHQ7Ci0gICAgYXJn
cy5uZXh0KCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotT3B0aW9uYWw8ZG91YmxlPiBDU1NQ
YXJzZXI6OnBhcnNlU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZShDU1NQYXJzZXJWYWx1ZUxpc3Qm
IGFyZ3MpCi17Ci0gICAgVmFsdWVXaXRoQ2FsY3VsYXRpb24gYXJndW1lbnRXaXRoQ2FsY3VsYXRp
b24oKmFyZ3MuY3VycmVudCgpKTsKLSAgICBpZiAoIXZhbGlkYXRlVW5pdChhcmd1bWVudFdpdGhD
YWxjdWxhdGlvbiwgRk51bWJlcikpCi0gICAgICAgIHJldHVybiBOdWxsb3B0OwotICAgIE9wdGlv
bmFsPGRvdWJsZT4gcmVzdWx0ID0gcGFyc2VkRG91YmxlKGFyZ3VtZW50V2l0aENhbGN1bGF0aW9u
KTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGFyZ3MubmV4dCgpOwotICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2Vy
OjpwYXJzZUFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uKCkKQEAgLTUyMzYsNjcgKzUyMTksMjcgQEAg
UmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9uVGltaW5nRnVuY3Rpb24o
KQogICAgIH0KIAogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZS5m
dW5jdGlvbi0+bmFtZSwgImN1YmljLWJlemllcigiKSkgewotICAgICAgICAvLyBGb3IgY3ViaWMg
YmV6aWVyLCA0IHZhbHVlcyBtdXN0IGJlIHNwZWNpZmllZCAoY29tbWEtc2VwYXJhdGVkKS4KKyAg
ICAgICAgLy8gRm9yIGN1YmljIGJlemllciwgNCB2YWx1ZXMgbXVzdCBiZSBzcGVjaWZpZWQuCiAg
ICAgICAgIGlmICghYXJncyB8fCBhcmdzLT5zaXplKCkgIT0gNykKICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgICAgIC8vIFRoZXJlIGFyZSB0d28gcG9pbnRzIHNwZWNpZmllZC4g
VGhlIHggdmFsdWVzIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAxIGJ1dCB0aGUgeSB2YWx1ZXMgY2Fu
IGV4Y2VlZCB0aGlzIHJhbmdlLgorICAgICAgICBkb3VibGUgeDEsIHkxLCB4MiwgeTI7CiAKLSAg
ICAgICAgYXV0byB4MSA9IHBhcnNlQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvblZhbHVlKCphcmdz
KTsKLSAgICAgICAgaWYgKCF4MSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAg
ICBpZiAoeDEudmFsdWUoKSA8IDAgfHwgeDEudmFsdWUoKSA+IDEpCi0gICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLQotICAgICAgICBhdXRvIHkxID0gcGFyc2VDdWJpY0JlemllclRpbWluZ0Z1
bmN0aW9uVmFsdWUoKmFyZ3MpOwotICAgICAgICBpZiAoIXkxKQorICAgICAgICBpZiAoIXBhcnNl
Q3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvblZhbHVlKCphcmdzLCB4MSkpCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLQotICAgICAgICBhdXRvIHgyID0gcGFyc2VDdWJpY0JlemllclRpbWlu
Z0Z1bmN0aW9uVmFsdWUoKmFyZ3MpOwotICAgICAgICBpZiAoIXgyKQorICAgICAgICBpZiAoeDEg
PCAwIHx8IHgxID4gMSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBpZiAo
eDIudmFsdWUoKSA8IDAgfHwgeDIudmFsdWUoKSA+IDEpCisgICAgICAgIGlmICghcGFyc2VDdWJp
Y0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWUoKmFyZ3MsIHkxKSkKICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwotCi0gICAgICAgIGF1dG8geTIgPSBwYXJzZUN1YmljQmV6aWVyVGltaW5nRnVu
Y3Rpb25WYWx1ZSgqYXJncyk7Ci0gICAgICAgIGlmICgheTIpCisgICAgICAgIGlmICghcGFyc2VD
dWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWUoKmFyZ3MsIHgyKSkKICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwotCi0gICAgICAgIHJldHVybiBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0
aW9uVmFsdWU6OmNyZWF0ZSh4MS52YWx1ZSgpLCB5MS52YWx1ZSgpLCB4Mi52YWx1ZSgpLCB5Mi52
YWx1ZSgpKTsKLSAgICB9Ci0KLSAgICBpZiAoaXNTcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQo
KSAmJiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZS5mdW5jdGlvbi0+bmFtZSwg
InNwcmluZygiKSkgewotICAgICAgICAvLyBGb3IgYSBzcHJpbmcsIDQgdmFsdWVzIG11c3QgYmUg
c3BlY2lmaWVkIChzcGFjZS1zZXBhcmF0ZWQpLgotICAgICAgICBpZiAoIWFyZ3MgfHwgYXJncy0+
c2l6ZSgpICE9IDQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgCi0gICAg
ICAgIC8vIE1hc3MgbXVzdCBiZSBncmVhdGVyIHRoYW4gMC4KLSAgICAgICAgYXV0byBtYXNzID0g
cGFyc2VTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlKCphcmdzKTsKLSAgICAgICAgaWYgKCFtYXNz
KQorICAgICAgICBpZiAoeDIgPCAwIHx8IHgyID4gMSkKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgICAgICBpZiAobWFzcy52YWx1ZSgpIDw9IDApCi0gICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgICAgICAvLyBTdGlmZm5lc3MgbXVzdCBiZSBncmVhdGVyIHRoYW4gMC4K
LSAgICAgICAgYXV0byBzdGlmZm5lc3MgPSBwYXJzZVNwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWUo
KmFyZ3MpOwotICAgICAgICBpZiAoIXN0aWZmbmVzcykKLSAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgICAgICBpZiAoc3RpZmZuZXNzLnZhbHVlKCkgPD0gMCkKLSAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwotCi0gICAgICAgIC8vIERhbXBpbmcgY29lZmZpY2llbnQgbXVzdCBiZSBn
cmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMC4KLSAgICAgICAgYXV0byBkYW1waW5nID0gcGFyc2VT
cHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlKCphcmdzKTsKLSAgICAgICAgaWYgKCFkYW1waW5nKQot
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGlmIChkYW1waW5nLnZhbHVlKCkg
PCAwKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICAgICAgLy8gSW5pdGlhbCB2
ZWxvY2l0eSBtYXkgaGF2ZSBhbnkgdmFsdWUuCi0gICAgICAgIGF1dG8gaW5pdGlhbFZlbG9jaXR5
ID0gcGFyc2VTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlKCphcmdzKTsKLSAgICAgICAgaWYgKCFp
bml0aWFsVmVsb2NpdHkpCisgICAgICAgIGlmICghcGFyc2VDdWJpY0JlemllclRpbWluZ0Z1bmN0
aW9uVmFsdWUoKmFyZ3MsIHkyKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
ICAgIHJldHVybiBDU1NTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlOjpjcmVhdGUobWFzcy52YWx1
ZSgpLCBzdGlmZm5lc3MudmFsdWUoKSwgZGFtcGluZy52YWx1ZSgpLCBpbml0aWFsVmVsb2NpdHku
dmFsdWUoKSk7CisgICAgICAgIHJldHVybiBDU1NDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFs
dWU6OmNyZWF0ZSh4MSwgeTEsIHgyLCB5Mik7CiAgICAgfQogCiAgICAgcmV0dXJuIG51bGxwdHI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggOTY0MjA4NmVjZjdhMWMzN2FiMTg2ZGYwZTk2OGM0
Y2U1MDMxMWFkOC4uMTJjOGU2YWVjNmRhYjNjNWViMmU0ZWYwNTMyNTczNjFjYTdjNTgzZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMjE0LDE0ICsyMTQsMTEgQEAgcHVibGljOgogICAgIHN0
YXRpYyBWZWN0b3I8ZG91YmxlPiBwYXJzZUtleWZyYW1lU2VsZWN0b3IoY29uc3QgU3RyaW5nJik7
CiAKICAgICBib29sIHBhcnNlVHJhbnNmb3JtT3JpZ2luU2hvcnRoYW5kKFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4mLCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+JiwgUmVmUHRyPENTU1ZhbHVl
PiYpOwotICAgIE9wdGlvbmFsPGRvdWJsZT4gcGFyc2VDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9u
VmFsdWUoQ1NTUGFyc2VyVmFsdWVMaXN0Jik7Ci0gICAgT3B0aW9uYWw8ZG91YmxlPiBwYXJzZVNw
cmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWUoQ1NTUGFyc2VyVmFsdWVMaXN0Jik7CisgICAgYm9vbCBw
YXJzZUN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25WYWx1ZShDU1NQYXJzZXJWYWx1ZUxpc3QmIGFy
Z3MsIGRvdWJsZSYgcmVzdWx0KTsKICAgICBib29sIHBhcnNlQW5pbWF0aW9uUHJvcGVydHkoQ1NT
UHJvcGVydHlJRCwgUmVmUHRyPENTU1ZhbHVlPiYsIEFuaW1hdGlvblBhcnNlQ29udGV4dCYpOwog
ICAgIGJvb2wgcGFyc2VUcmFuc2l0aW9uU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQsIGJvb2wgaW1w
b3J0YW50KTsKICAgICBib29sIHBhcnNlQW5pbWF0aW9uU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQs
IGJvb2wgaW1wb3J0YW50KTsKIAotICAgIGJvb2wgaXNTcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJs
ZWQoKSBjb25zdDsKLQogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VDb2x1bW5X
aWR0aCgpOwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VDb2x1bW5Db3VudCgp
OwogICAgIGJvb2wgcGFyc2VDb2x1bW5zU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJNb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyTW9kZS5oCmluZGV4IGZmYTUzNGZjZDI3ZjQwOGYxNDc4MmZkNzFiNzBm
ZTU0ODQ3YjA0YzIuLmRiZTRkOGY0M2NlYWNmN2ZkYTJjOGYzZGI1MzYwZjAzOWVhY2Q1NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJNb2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlck1vZGUuaApAQCAtNzMsNyArNzMsNiBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmZv
cmNlc0NTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUgeyB0cnVlIH07CiAgICAgYm9vbCB1c2VMZWdh
Y3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yIHsgZmFsc2UgfTsKLSAgICBib29sIHNw
cmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCiBib29sIG9wZXJhdG9y
PT0oY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcAppbmRleCAyZGQ2
MTk1N2UzM2FiMzdlMjcwMjJkNTI4MzlkN2Q1YzYyNGY4Mzg3Li5lMWI1ZTE5NGU1MTEwNzBjZTlh
N2U0NjdjZjlhMTdmYTJmMTdlZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VGltaW5nRnVuY3Rpb25WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RpbWlu
Z0Z1bmN0aW9uVmFsdWUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNywgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDcsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwyMyArMjYsMTcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmgiCiAKLSNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIENTU0N1YmljQmV6aWVyVGlt
aW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiB7Ci0gICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiY3ViaWMtYmV6aWVyKCIp
OwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1feDEpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiLCAiKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX3kxKTsKLSAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIiwgIik7Ci0gICAgYnVpbGRlci5hcHBlbmROdW1iZXIobV94Mik7Ci0g
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KG1feTIpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7ICAgIAotICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CisgICAgcmV0dXJuICJjdWJpYy1iZXppZXIoIgorICAgICAgICArIFN0cmlu
Zzo6bnVtYmVyKG1feDEpICsgIiwgIgorICAgICAgICArIFN0cmluZzo6bnVtYmVyKG1feTEpICsg
IiwgIgorICAgICAgICArIFN0cmluZzo6bnVtYmVyKG1feDIpICsgIiwgIgorICAgICAgICArIFN0
cmluZzo6bnVtYmVyKG1feTIpICsgJyknOwogfQogCiBib29sIENTU0N1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0N1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25W
YWx1ZSYgb3RoZXIpIGNvbnN0CkBAIC01MCwxNiArNDQsMTAgQEAgYm9vbCBDU1NDdWJpY0Jlemll
clRpbWluZ0Z1bmN0aW9uVmFsdWU6OmVxdWFscyhjb25zdCBDU1NDdWJpY0JlemllclRpbWluZ0Z1
bmN0aW8KICAgICByZXR1cm4gbV94MSA9PSBvdGhlci5tX3gxICYmIG1feDIgPT0gb3RoZXIubV94
MiAmJiBtX3kxID09IG90aGVyLm1feTEgJiYgbV95MiA9PSBvdGhlci5tX3kyOwogfQogCisKIFN0
cmluZyBDU1NTdGVwc1RpbWluZ0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAog
ewotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
InN0ZXBzKCIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fc3RlcHMpOwotICAgIGlmICht
X3N0ZXBBdFN0YXJ0KQotICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgc3RhcnQpIik7
Ci0gICAgZWxzZQotICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgZW5kKSIpOwotICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgcmV0dXJuICJzdGVwcygiICsgU3RyaW5n
OjpudW1iZXIobV9zdGVwcykgKyAiLCAiICsgKG1fc3RlcEF0U3RhcnQgPyAic3RhcnQiIDogImVu
ZCIpICsgJyknOwogfQogCiBib29sIENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZTo6ZXF1YWxz
KGNvbnN0IENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZSYgb3RoZXIpIGNvbnN0CkBAIC02Nywy
NSArNTUsNCBAQCBib29sIENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZTo6ZXF1YWxzKGNvbnN0
IENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1ZSYgb3RoZQogICAgIHJldHVybiBtX3N0ZXBzID09
IG90aGVyLm1fc3RlcHMgJiYgbV9zdGVwQXRTdGFydCA9PSBvdGhlci5tX3N0ZXBBdFN0YXJ0Owog
fQogCi1TdHJpbmcgQ1NTU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgp
IGNvbnN0Ci17Ci0gICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgic3ByaW5nKCIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fbWFzcyk7Ci0g
ICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX3N0aWZm
bmVzcyk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJl
cihtX2RhbXBpbmcpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgYnVpbGRlci5hcHBl
bmROdW1iZXIobV9pbml0aWFsVmVsb2NpdHkpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7Ci0g
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKLX0KLQotYm9vbCBDU1NTcHJpbmdUaW1pbmdG
dW5jdGlvblZhbHVlOjplcXVhbHMoY29uc3QgQ1NTU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZSYg
b3RoZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWFzcyA9PSBvdGhlci5tX21hc3MgJiYgbV9z
dGlmZm5lc3MgPT0gb3RoZXIubV9zdGlmZm5lc3MgJiYgbV9kYW1waW5nID09IG90aGVyLm1fZGFt
cGluZyAmJiBtX2luaXRpYWxWZWxvY2l0eSA9PSBvdGhlci5tX2luaXRpYWxWZWxvY2l0eTsKLX0K
LQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RpbWlu
Z0Z1bmN0aW9uVmFsdWUuaAppbmRleCBiMjAwZDlhMDA1NWZkOTJiOWQyODc3MjE5ZGVhOTlhOWFh
ODYwM2JmLi5kYWNiNDczOWU2MTA4YjkzMzJiMDE2ZGIzMDk1Nzk0NDZhOGI4YThjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEyLCAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTg5LDQyICs4OSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3N0ZXBBdFN0YXJ0
OwogfTsKIAotY2xhc3MgQ1NTU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZSA6IHB1YmxpYyBDU1NW
YWx1ZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDU1NTcHJpbmdUaW1pbmdGdW5jdGlvblZh
bHVlPiBjcmVhdGUoZG91YmxlIG1hc3MsIGRvdWJsZSBzdGlmZm5lc3MsIGRvdWJsZSBkYW1waW5n
LCBkb3VibGUgaW5pdGlhbFZlbG9jaXR5KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQ1NTU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZShtYXNzLCBzdGlmZm5lc3MsIGRhbXBp
bmcsIGluaXRpYWxWZWxvY2l0eSkpOwotICAgIH0KLQotICAgIGRvdWJsZSBtYXNzKCkgY29uc3Qg
eyByZXR1cm4gbV9tYXNzOyB9Ci0gICAgZG91YmxlIHN0aWZmbmVzcygpIGNvbnN0IHsgcmV0dXJu
IG1fc3RpZmZuZXNzOyB9Ci0gICAgZG91YmxlIGRhbXBpbmcoKSBjb25zdCB7IHJldHVybiBtX2Rh
bXBpbmc7IH0KLSAgICBkb3VibGUgaW5pdGlhbFZlbG9jaXR5KCkgY29uc3QgeyByZXR1cm4gbV9p
bml0aWFsVmVsb2NpdHk7IH0KLQotICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7Ci0K
LSAgICBib29sIGVxdWFscyhjb25zdCBDU1NTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlJikgY29u
c3Q7Ci0KLXByaXZhdGU6Ci0gICAgQ1NTU3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZShkb3VibGUg
bWFzcywgZG91YmxlIHN0aWZmbmVzcywgZG91YmxlIGRhbXBpbmcsIGRvdWJsZSBpbml0aWFsVmVs
b2NpdHkpCi0gICAgICAgIDogQ1NTVmFsdWUoU3ByaW5nVGltaW5nRnVuY3Rpb25DbGFzcykKLSAg
ICAgICAgLCBtX21hc3MobWFzcykKLSAgICAgICAgLCBtX3N0aWZmbmVzcyhzdGlmZm5lc3MpCi0g
ICAgICAgICwgbV9kYW1waW5nKGRhbXBpbmcpCi0gICAgICAgICwgbV9pbml0aWFsVmVsb2NpdHko
aW5pdGlhbFZlbG9jaXR5KQotICAgIHsKLSAgICB9Ci0KLSAgICBkb3VibGUgbV9tYXNzOwotICAg
IGRvdWJsZSBtX3N0aWZmbmVzczsKLSAgICBkb3VibGUgbV9kYW1waW5nOwotICAgIGRvdWJsZSBt
X2luaXRpYWxWZWxvY2l0eTsKLX07Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19DU1NfVkFMVUUoQ1NTQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvblZh
bHVlLCBpc0N1YmljQmV6aWVyVGltaW5nRnVuY3Rpb25WYWx1ZSgpKQogU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19DU1NfVkFMVUUoQ1NTU3RlcHNUaW1pbmdGdW5jdGlvblZhbHVlLCBpc1N0ZXBzVGlt
aW5nRnVuY3Rpb25WYWx1ZSgpKQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NfVkFMVUUoQ1NT
U3ByaW5nVGltaW5nRnVuY3Rpb25WYWx1ZSwgaXNTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlKCkp
CiAKICNlbmRpZiAvLyBDU1NUaW1pbmdGdW5jdGlvblZhbHVlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NU
b1N0eWxlTWFwLmNwcAppbmRleCBjNDEzYmM2ZDg5YWMwMmY2MWIxOTczYzQzMzAxOWM2ZGUxZGFk
YTQwLi41ODU5ZWZiZGFjZTU1M2I3YWNiMGNlZGNmYWExMzFkYjhlNGNmODIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCkBAIC01MTAsOSArNTEwLDYgQEAgdm9pZCBDU1NUb1N0
eWxlTWFwOjptYXBBbmltYXRpb25UaW1pbmdGdW5jdGlvbihBbmltYXRpb24mIGFuaW1hdGlvbiwg
Y29uc3QgQ1NTVmEKICAgICB9IGVsc2UgaWYgKGlzPENTU1N0ZXBzVGltaW5nRnVuY3Rpb25WYWx1
ZT4odmFsdWUpKSB7CiAgICAgICAgIGF1dG8mIHN0ZXBzVGltaW5nRnVuY3Rpb24gPSBkb3duY2Fz
dDxDU1NTdGVwc1RpbWluZ0Z1bmN0aW9uVmFsdWU+KHZhbHVlKTsKICAgICAgICAgYW5pbWF0aW9u
LnNldFRpbWluZ0Z1bmN0aW9uKFN0ZXBzVGltaW5nRnVuY3Rpb246OmNyZWF0ZShzdGVwc1RpbWlu
Z0Z1bmN0aW9uLm51bWJlck9mU3RlcHMoKSwgc3RlcHNUaW1pbmdGdW5jdGlvbi5zdGVwQXRTdGFy
dCgpKSk7Ci0gICAgfSBlbHNlIGlmIChpczxDU1NTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlPih2
YWx1ZSkpIHsKLSAgICAgICAgYXV0byYgc3ByaW5nVGltaW5nRnVuY3Rpb24gPSBkb3duY2FzdDxD
U1NTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlPih2YWx1ZSk7Ci0gICAgICAgIGFuaW1hdGlvbi5z
ZXRUaW1pbmdGdW5jdGlvbihTcHJpbmdUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlKHNwcmluZ1RpbWlu
Z0Z1bmN0aW9uLm1hc3MoKSwgc3ByaW5nVGltaW5nRnVuY3Rpb24uc3RpZmZuZXNzKCksIHNwcmlu
Z1RpbWluZ0Z1bmN0aW9uLmRhbXBpbmcoKSwgc3ByaW5nVGltaW5nRnVuY3Rpb24uaW5pdGlhbFZl
bG9jaXR5KCkpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCmluZGV4IDdkMzQw
MDkwMDcwZDhjMWQ3NGUxOWMzYTdkZDk3NzMyN2JjMjZhMDEuLmQ1YTQwMWI1OGVkNzEzMzI4MDhh
OWRiYmNhZTcxNDM4MGEwMGZkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcApAQCAtMjI2LDgg
KzIyNiw2IEBAIGJvb2wgQ1NTVmFsdWU6OmVxdWFscyhjb25zdCBDU1NWYWx1ZSYgb3RoZXIpIGNv
bnN0CiAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NDdWJpY0JlemllclRp
bWluZ0Z1bmN0aW9uVmFsdWU+KCp0aGlzLCBvdGhlcik7CiAgICAgICAgIGNhc2UgU3RlcHNUaW1p
bmdGdW5jdGlvbkNsYXNzOgogICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NT
U3RlcHNUaW1pbmdGdW5jdGlvblZhbHVlPigqdGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIFNw
cmluZ1RpbWluZ0Z1bmN0aW9uQ2xhc3M6Ci0gICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1Zh
bHVlczxDU1NTcHJpbmdUaW1pbmdGdW5jdGlvblZhbHVlPigqdGhpcywgb3RoZXIpOwogICAgICAg
ICBjYXNlIFVuaWNvZGVSYW5nZUNsYXNzOgogICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NW
YWx1ZXM8Q1NTVW5pY29kZVJhbmdlVmFsdWU+KCp0aGlzLCBvdGhlcik7CiAgICAgICAgIGNhc2Ug
VmFsdWVMaXN0Q2xhc3M6CkBAIC0zMzQsOCArMzMyLDYgQEAgU3RyaW5nIENTU1ZhbHVlOjpjc3NU
ZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0N1YmljQmV6aWVyVGltaW5n
RnVuY3Rpb25WYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIFN0ZXBzVGlt
aW5nRnVuY3Rpb25DbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1N0ZXBzVGltaW5n
RnVuY3Rpb25WYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKLSAgICBjYXNlIFNwcmluZ1Rp
bWluZ0Z1bmN0aW9uQ2xhc3M6Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NTcHJpbmdUaW1p
bmdGdW5jdGlvblZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgVW5pY29k
ZVJhbmdlQ2xhc3M6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NVbmljb2RlUmFuZ2VWYWx1
ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIFZhbHVlTGlzdENsYXNzOgpAQCAt
NDYxLDkgKzQ1Nyw2IEBAIHZvaWQgQ1NTVmFsdWU6OmRlc3Ryb3koKQogICAgIGNhc2UgU3RlcHNU
aW1pbmdGdW5jdGlvbkNsYXNzOgogICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTU3RlcHNUaW1p
bmdGdW5jdGlvblZhbHVlPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgU3ByaW5n
VGltaW5nRnVuY3Rpb25DbGFzczoKLSAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU1NwcmluZ1Rp
bWluZ0Z1bmN0aW9uVmFsdWU+KHRoaXMpOwotICAgICAgICByZXR1cm47CiAgICAgY2FzZSBVbmlj
b2RlUmFuZ2VDbGFzczoKICAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU1VuaWNvZGVSYW5nZVZh
bHVlPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAppbmRleCA0ZTBj
NmE4NjU1NjRkMGNmMzE3ZjBmZGEzYjMyNzNhYTcwMDg1NmQ3Li43N2JkNzQxZTRkYzdkMjBjMjBj
Mzk3ZTE2NmMyMWMxMGQ1OTc2YTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaApAQCAtMTA0LDcgKzEw
NCw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzU2hhZG93VmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X2NsYXNzVHlwZSA9PSBTaGFkb3dDbGFzczsgfQogICAgIGJvb2wgaXNDdWJpY0JlemllclRpbWlu
Z0Z1bmN0aW9uVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBDdWJpY0Jlemll
clRpbWluZ0Z1bmN0aW9uQ2xhc3M7IH0KICAgICBib29sIGlzU3RlcHNUaW1pbmdGdW5jdGlvblZh
bHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gU3RlcHNUaW1pbmdGdW5jdGlvbkNs
YXNzOyB9Ci0gICAgYm9vbCBpc1NwcmluZ1RpbWluZ0Z1bmN0aW9uVmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX2NsYXNzVHlwZSA9PSBTcHJpbmdUaW1pbmdGdW5jdGlvbkNsYXNzOyB9CiAgICAgYm9v
bCBpc1dlYktpdENTU1RyYW5zZm9ybVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUg
PT0gV2ViS2l0Q1NTVHJhbnNmb3JtQ2xhc3M7IH0KICAgICBib29sIGlzTGluZUJveENvbnRhaW5W
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IExpbmVCb3hDb250YWluQ2xhc3M7
IH0KICAgICBib29sIGlzQ2FsY1ZhbHVlKCkgY29uc3Qge3JldHVybiBtX2NsYXNzVHlwZSA9PSBD
YWxjdWxhdGlvbkNsYXNzOyB9CkBAIC0xNjIsNyArMTYxLDYgQEAgcHJvdGVjdGVkOgogICAgICAg
ICAvLyBUaW1pbmcgZnVuY3Rpb24gY2xhc3Nlcy4KICAgICAgICAgQ3ViaWNCZXppZXJUaW1pbmdG
dW5jdGlvbkNsYXNzLAogICAgICAgICBTdGVwc1RpbWluZ0Z1bmN0aW9uQ2xhc3MsCi0gICAgICAg
IFNwcmluZ1RpbWluZ0Z1bmN0aW9uQ2xhc3MsCiAKICAgICAgICAgLy8gT3RoZXIgY2xhc3MgdHlw
ZXMuCiAgICAgICAgIEFzcGVjdFJhdGlvQ2xhc3MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmluIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgppbmRl
eCAxMjZhYWEyNThhZDljYTUwNjNhOTk0MzkyYzQxNDc2YTY1YjU4Yzg3Li5hZmE3MzQwYTE2ZmUz
MjY0MWE3YTk1MGYyZWIyYjEzNDZhMTE4MjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAg
LTI2Nyw1ICsyNjcsMyBAQCBhbGxvd0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZVN0YXJUb01h
dGNoQW55UHJvdG9jb2wgaW5pdGlhbD1mYWxzZQogc2VsZWN0aW9uUGFpbnRpbmdXaXRob3V0U2Vs
ZWN0aW9uR2Fwc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQogCiBzaG91bGRDb252ZXJ0SW52YWxpZFVS
THNUb0JsYW5rIGluaXRpYWw9dHJ1ZQotCi1zcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQgaW5p
dGlhbD1mYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmNwcAppbmRleCA1YzFiM2E4YjJjY2UxOTlkZjNkN2E2M2NiZjlhMWJiNDYwNmMzNjZjLi5j
YTIyZmQ0NmFjZmRkMzBjMWY0NzFhZTgxYzg5N2M4Nzc5ZDI0MDVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAtNDEsNyArNDEsNiBA
QAogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5j
bHVkZSAiUmVuZGVyVmlldy5oIgotI2luY2x1ZGUgIlNwcmluZ1NvbHZlci5oIgogI2luY2x1ZGUg
IlVuaXRCZXppZXIuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CkBAIC03MSwxMiArNzAsNiBAQCBzdGF0aWMgaW5saW5lIGRvdWJsZSBzb2x2ZVN0
ZXBzRnVuY3Rpb24oaW50IG51bVN0ZXBzLCBib29sIHN0ZXBBdFN0YXJ0LCBkb3VibGUgdAogICAg
IHJldHVybiBmbG9vcihudW1TdGVwcyAqIHQpIC8gbnVtU3RlcHM7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgZG91YmxlIHNvbHZlU3ByaW5nRnVuY3Rpb24oZG91YmxlIG1hc3MsIGRvdWJsZSBzdGlmZm5l
c3MsIGRvdWJsZSBkYW1waW5nLCBkb3VibGUgaW5pdGlhbFZlbG9jaXR5LCBkb3VibGUgdCwgZG91
YmxlIGR1cmF0aW9uKQotewotICAgIFNwcmluZ1NvbHZlciBzb2x2ZXIobWFzcywgc3RpZmZuZXNz
LCBkYW1waW5nLCBpbml0aWFsVmVsb2NpdHkpOwotICAgIHJldHVybiBzb2x2ZXIuc29sdmUodCAq
IGR1cmF0aW9uKTsKLX0KLQogQW5pbWF0aW9uQmFzZTo6QW5pbWF0aW9uQmFzZShjb25zdCBBbmlt
YXRpb24mIGFuaW1hdGlvbiwgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIENvbXBvc2l0ZUFuaW1h
dGlvbiogY29tcG9zaXRlQW5pbWF0aW9uKQogICAgIDogbV9vYmplY3QocmVuZGVyZXIpCiAgICAg
LCBtX2NvbXBvc2l0ZUFuaW1hdGlvbihjb21wb3NpdGVBbmltYXRpb24pCkBAIC02NTUsMTYgKzY0
OCwxMiBAQCBkb3VibGUgQW5pbWF0aW9uQmFzZTo6cHJvZ3Jlc3MoZG91YmxlIHNjYWxlLCBkb3Vi
bGUgb2Zmc2V0LCBjb25zdCBUaW1pbmdGdW5jdGlvbgogCiAgICAgc3dpdGNoICh0aW1pbmdGdW5j
dGlvbi0+dHlwZSgpKSB7CiAgICAgY2FzZSBUaW1pbmdGdW5jdGlvbjo6Q3ViaWNCZXppZXJGdW5j
dGlvbjogewotICAgICAgICBhdXRvJiBmdW5jdGlvbiA9ICpzdGF0aWNfY2FzdDxjb25zdCBDdWJp
Y0JlemllclRpbWluZ0Z1bmN0aW9uKj4odGltaW5nRnVuY3Rpb24pOwotICAgICAgICByZXR1cm4g
c29sdmVDdWJpY0JlemllckZ1bmN0aW9uKGZ1bmN0aW9uLngxKCksIGZ1bmN0aW9uLnkxKCksIGZ1
bmN0aW9uLngyKCksIGZ1bmN0aW9uLnkyKCksIGZyYWN0aW9uYWxUaW1lLCBtX2FuaW1hdGlvbi0+
ZHVyYXRpb24oKSk7CisgICAgICAgIGNvbnN0IEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24qIGZ1
bmN0aW9uID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbio+KHRp
bWluZ0Z1bmN0aW9uKTsKKyAgICAgICAgcmV0dXJuIHNvbHZlQ3ViaWNCZXppZXJGdW5jdGlvbihm
dW5jdGlvbi0+eDEoKSwgZnVuY3Rpb24tPnkxKCksIGZ1bmN0aW9uLT54MigpLCBmdW5jdGlvbi0+
eTIoKSwgZnJhY3Rpb25hbFRpbWUsIG1fYW5pbWF0aW9uLT5kdXJhdGlvbigpKTsKICAgICB9CiAg
ICAgY2FzZSBUaW1pbmdGdW5jdGlvbjo6U3RlcHNGdW5jdGlvbjogewotICAgICAgICBhdXRvJiBm
dW5jdGlvbiA9ICpzdGF0aWNfY2FzdDxjb25zdCBTdGVwc1RpbWluZ0Z1bmN0aW9uKj4odGltaW5n
RnVuY3Rpb24pOwotICAgICAgICByZXR1cm4gc29sdmVTdGVwc0Z1bmN0aW9uKGZ1bmN0aW9uLm51
bWJlck9mU3RlcHMoKSwgZnVuY3Rpb24uc3RlcEF0U3RhcnQoKSwgZnJhY3Rpb25hbFRpbWUpOwot
ICAgIH0KLSAgICBjYXNlIFRpbWluZ0Z1bmN0aW9uOjpTcHJpbmdGdW5jdGlvbjogewotICAgICAg
ICBhdXRvJiBmdW5jdGlvbiA9ICpzdGF0aWNfY2FzdDxjb25zdCBTcHJpbmdUaW1pbmdGdW5jdGlv
bio+KHRpbWluZ0Z1bmN0aW9uKTsKLSAgICAgICAgcmV0dXJuIHNvbHZlU3ByaW5nRnVuY3Rpb24o
ZnVuY3Rpb24ubWFzcygpLCBmdW5jdGlvbi5zdGlmZm5lc3MoKSwgZnVuY3Rpb24uZGFtcGluZygp
LCBmdW5jdGlvbi5pbml0aWFsVmVsb2NpdHkoKSwgZnJhY3Rpb25hbFRpbWUsIG1fYW5pbWF0aW9u
LT5kdXJhdGlvbigpKTsKKyAgICAgICAgY29uc3QgU3RlcHNUaW1pbmdGdW5jdGlvbiogc3RlcHNU
aW1pbmdGdW5jdGlvbiA9IHN0YXRpY19jYXN0PGNvbnN0IFN0ZXBzVGltaW5nRnVuY3Rpb24qPih0
aW1pbmdGdW5jdGlvbik7CisgICAgICAgIHJldHVybiBzb2x2ZVN0ZXBzRnVuY3Rpb24oc3RlcHNU
aW1pbmdGdW5jdGlvbi0+bnVtYmVyT2ZTdGVwcygpLCBzdGVwc1RpbWluZ0Z1bmN0aW9uLT5zdGVw
QXRTdGFydCgpLCBmcmFjdGlvbmFsVGltZSk7CiAgICAgfQogICAgIGNhc2UgVGltaW5nRnVuY3Rp
b246OkxpbmVhckZ1bmN0aW9uOgogICAgICAgICByZXR1cm4gZnJhY3Rpb25hbFRpbWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNw
cAppbmRleCBjMGNjNGJlNzYwM2ZlYTNkY2UyZGZkYjM1MGY4Yzg4ZjM0NDRkYTVmLi4wOGU4YTY2
ZmIyNjhlOTI3YmU3NDg4MTdmMDc4ZThkMTUyYzhlYmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAKQEAgLTM3LDE4ICsz
NywxMyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBUaW1p
bmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCiAgICAgICAgIHRzIDw8ICJsaW5lYXIiOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFRpbWluZ0Z1bmN0aW9uOjpDdWJpY0JlemllckZ1bmN0aW9u
OiB7Ci0gICAgICAgIGF1dG8mIGZ1bmN0aW9uID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3ViaWNCZXpp
ZXJUaW1pbmdGdW5jdGlvbiY+KHRpbWluZ0Z1bmN0aW9uKTsKLSAgICAgICAgdHMgPDwgImN1Ymlj
LWJlemllcigiIDw8IGZ1bmN0aW9uLngxKCkgPDwgIiwgIiA8PCBmdW5jdGlvbi55MSgpIDw8ICIs
ICIgPDwgIGZ1bmN0aW9uLngyKCkgPDwgIiwgIiA8PCBmdW5jdGlvbi55MigpIDw8ICIpIjsKKyAg
ICAgICAgY29uc3QgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiYgY3ViaWNCZXppZXJGdW5jdGlv
biA9IHN0YXRpY19jYXN0PGNvbnN0IEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24mPih0aW1pbmdG
dW5jdGlvbik7CisgICAgICAgIHRzIDw8ICJjdWJpYy1iZXppZXIoIiA8PCBjdWJpY0JlemllckZ1
bmN0aW9uLngxKCkgPDwgIiwgIiA8PCBjdWJpY0JlemllckZ1bmN0aW9uLnkxKCkgPDwgIiwgIiA8
PCAgY3ViaWNCZXppZXJGdW5jdGlvbi54MigpIDw8ICIsICIgPDwgY3ViaWNCZXppZXJGdW5jdGlv
bi55MigpIDw8ICIpIjsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgVGltaW5nRnVu
Y3Rpb246OlN0ZXBzRnVuY3Rpb246IHsKLSAgICAgICAgYXV0byYgZnVuY3Rpb24gPSBzdGF0aWNf
Y2FzdDxjb25zdCBTdGVwc1RpbWluZ0Z1bmN0aW9uJj4odGltaW5nRnVuY3Rpb24pOwotICAgICAg
ICB0cyA8PCAic3RlcHMoIiA8PCBmdW5jdGlvbi5udW1iZXJPZlN0ZXBzKCkgPDwgIiwgIiA8PCAo
ZnVuY3Rpb24uc3RlcEF0U3RhcnQoKSA/ICJzdGFydCIgOiAiZW5kIikgPDwgIikiOwotICAgICAg
ICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBUaW1pbmdGdW5jdGlvbjo6U3ByaW5nRnVuY3Rpb246
IHsKLSAgICAgICAgYXV0byYgZnVuY3Rpb24gPSBzdGF0aWNfY2FzdDxjb25zdCBTcHJpbmdUaW1p
bmdGdW5jdGlvbiY+KHRpbWluZ0Z1bmN0aW9uKTsKLSAgICAgICAgdHMgPDwgInNwcmluZygiIDw8
IGZ1bmN0aW9uLm1hc3MoKSA8PCAiICIgPDwgZnVuY3Rpb24uc3RpZmZuZXNzKCkgPDwgIiAiIDw8
ICBmdW5jdGlvbi5kYW1waW5nKCkgPDwgIiAiIDw8IGZ1bmN0aW9uLmluaXRpYWxWZWxvY2l0eSgp
IDw8ICIpIjsKKyAgICAgICAgY29uc3QgU3RlcHNUaW1pbmdGdW5jdGlvbiYgc3RlcHNGdW5jdGlv
biA9IHN0YXRpY19jYXN0PGNvbnN0IFN0ZXBzVGltaW5nRnVuY3Rpb24mPih0aW1pbmdGdW5jdGlv
bik7CisgICAgICAgIHRzIDw8ICJzdGVwcygiIDw8IHN0ZXBzRnVuY3Rpb24ubnVtYmVyT2ZTdGVw
cygpIDw8ICIsICIgPDwgKHN0ZXBzRnVuY3Rpb24uc3RlcEF0U3RhcnQoKSA/ICJzdGFydCIgOiAi
ZW5kIikgPDwgIikiOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uaAppbmRleCA4YTg3
OGViMTE0YmEwM2JhZWRkZmY0MWM3OTkwMGI0ZGVjYjQ1MzJjLi4zYTEyNDU4NmNlMmU4MTI5NTI5
ODAwMjk3NzIwMGU2M2E5NDVhZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiBjbG9uZSgpIGNvbnN0ID0gMDsK
IAogICAgIGVudW0gVGltaW5nRnVuY3Rpb25UeXBlIHsKLSAgICAgICAgTGluZWFyRnVuY3Rpb24s
IEN1YmljQmV6aWVyRnVuY3Rpb24sIFN0ZXBzRnVuY3Rpb24sIFNwcmluZ0Z1bmN0aW9uCisgICAg
ICAgIExpbmVhckZ1bmN0aW9uLCBDdWJpY0JlemllckZ1bmN0aW9uLCBTdGVwc0Z1bmN0aW9uCiAg
ICAgfTsKICAgICAKICAgICB2aXJ0dWFsIH5UaW1pbmdGdW5jdGlvbigpIHsgfQpAQCAtNDYsNyAr
NDYsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpbmVhclRpbWluZ0Z1bmN0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlID09IExpbmVhckZ1bmN0aW9uOyB9CiAgICAgYm9vbCBpc0N1YmljQmV6
aWVyVGltaW5nRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gQ3ViaWNCZXppZXJG
dW5jdGlvbjsgfQogICAgIGJvb2wgaXNTdGVwc1RpbWluZ0Z1bmN0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IFN0ZXBzRnVuY3Rpb247IH0KLSAgICBib29sIGlzU3ByaW5nVGltaW5nRnVu
Y3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gU3ByaW5nRnVuY3Rpb247IH0KICAgICAK
ICAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBUaW1pbmdGdW5jdGlvbiYgb3RoZXIp
ID0gMDsKIApAQCAtNTksNyArNTgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgVGltaW5nRnVuY3Rpb25U
eXBlIG1fdHlwZTsKIH07CiAKLWNsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9uIGZpbmFsIDogcHVi
bGljIFRpbWluZ0Z1bmN0aW9uIHsKK2NsYXNzIExpbmVhclRpbWluZ0Z1bmN0aW9uIDogcHVibGlj
IFRpbWluZ0Z1bmN0aW9uIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxMaW5lYXJU
aW1pbmdGdW5jdGlvbj4gY3JlYXRlKCkKICAgICB7CkBAIC04NSw3ICs4NCw3IEBAIHByaXZhdGU6
CiAgICAgfQogfTsKIAotY2xhc3MgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiBmaW5hbCA6IHB1
YmxpYyBUaW1pbmdGdW5jdGlvbiB7CitjbGFzcyBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uIDog
cHVibGljIFRpbWluZ0Z1bmN0aW9uIHsKIHB1YmxpYzoKICAgICBlbnVtIFRpbWluZ0Z1bmN0aW9u
UHJlc2V0IHsKICAgICAgICAgRWFzZSwKQEAgLTE4Niw3ICsxODUsNyBAQCBwcml2YXRlOgogICAg
IFRpbWluZ0Z1bmN0aW9uUHJlc2V0IG1fdGltaW5nRnVuY3Rpb25QcmVzZXQ7CiB9OwogCi1jbGFz
cyBTdGVwc1RpbWluZ0Z1bmN0aW9uIGZpbmFsIDogcHVibGljIFRpbWluZ0Z1bmN0aW9uIHsKK2Ns
YXNzIFN0ZXBzVGltaW5nRnVuY3Rpb24gOiBwdWJsaWMgVGltaW5nRnVuY3Rpb24gewogcHVibGlj
OgogICAgIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0ZXBzVGltaW5nRnVuY3Rpb24+IGNyZWF0
ZShpbnQgc3RlcHMsIGJvb2wgc3RlcEF0U3RhcnQpCkBAIC0yMzIsNjQgKzIzMSw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3N0ZXBBdFN0YXJ0OwogfTsKIAotY2xhc3MgU3ByaW5nVGltaW5nRnVu
Y3Rpb24gZmluYWwgOiBwdWJsaWMgVGltaW5nRnVuY3Rpb24gewotcHVibGljOgotICAgIHN0YXRp
YyBSZWY8U3ByaW5nVGltaW5nRnVuY3Rpb24+IGNyZWF0ZShkb3VibGUgbWFzcywgZG91YmxlIHN0
aWZmbmVzcywgZG91YmxlIGRhbXBpbmcsIGRvdWJsZSBpbml0aWFsVmVsb2NpdHkpCi0gICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcHJpbmdUaW1pbmdGdW5jdGlvbihtYXNzLCBz
dGlmZm5lc3MsIGRhbXBpbmcsIGluaXRpYWxWZWxvY2l0eSkpOwotICAgIH0KLQotICAgIHN0YXRp
YyBSZWY8U3ByaW5nVGltaW5nRnVuY3Rpb24+IGNyZWF0ZSgpCi0gICAgewotICAgICAgICAvLyBU
aGlzIGNyZWF0ZSgpIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgdGhlIGFyZ3VtZW50
IGRlY29kZXJzLCBhbmQgaXQgaXMgZXhwZWN0ZWQgdGhhdAotICAgICAgICAvLyByZWFsIHZhbHVl
cyB3aWxsIGJlIGZpbGxlZCBpbiB1c2luZyBzZXRWYWx1ZXMoKS4KLSAgICAgICAgcmV0dXJuIGNy
ZWF0ZSgwLCAwLCAwLCAwKTsKLSAgICB9Ci0gICAgCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFRpbWluZ0Z1bmN0aW9uJiBvdGhlcikgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlmIChvdGhl
ci5pc1NwcmluZ1RpbWluZ0Z1bmN0aW9uKCkpIHsKLSAgICAgICAgICAgIGNvbnN0IFNwcmluZ1Rp
bWluZ0Z1bmN0aW9uJiBvdGhlclN0cmluZyA9ICpzdGF0aWNfY2FzdDxjb25zdCBTcHJpbmdUaW1p
bmdGdW5jdGlvbio+KCZvdGhlcik7Ci0KLSAgICAgICAgICAgIHJldHVybiBtX21hc3MgPT0gb3Ro
ZXJTdHJpbmcubV9tYXNzICYmIG1fc3RpZmZuZXNzID09IG90aGVyU3RyaW5nLm1fc3RpZmZuZXNz
ICYmIG1fZGFtcGluZyA9PSBvdGhlclN0cmluZy5tX2RhbXBpbmcgJiYgbV9pbml0aWFsVmVsb2Np
dHkgPT0gb3RoZXJTdHJpbmcubV9pbml0aWFsVmVsb2NpdHk7Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGRvdWJsZSBtYXNzKCkgY29uc3QgeyByZXR1cm4g
bV9tYXNzOyB9Ci0gICAgZG91YmxlIHN0aWZmbmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fc3RpZmZu
ZXNzOyB9Ci0gICAgZG91YmxlIGRhbXBpbmcoKSBjb25zdCB7IHJldHVybiBtX2RhbXBpbmc7IH0K
LSAgICBkb3VibGUgaW5pdGlhbFZlbG9jaXR5KCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWFsVmVs
b2NpdHk7IH0KLSAgICAKLSAgICB2b2lkIHNldFZhbHVlcyhkb3VibGUgbWFzcywgZG91YmxlIHN0
aWZmbmVzcywgZG91YmxlIGRhbXBpbmcsIGRvdWJsZSBpbml0aWFsVmVsb2NpdHkpCi0gICAgewot
ICAgICAgICBtX21hc3MgPSBtYXNzOwotICAgICAgICBtX3N0aWZmbmVzcyA9IHN0aWZmbmVzczsK
LSAgICAgICAgbV9kYW1waW5nID0gZGFtcGluZzsKLSAgICAgICAgbV9pbml0aWFsVmVsb2NpdHkg
PSBpbml0aWFsVmVsb2NpdHk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFNwcmlu
Z1RpbWluZ0Z1bmN0aW9uKGRvdWJsZSBtYXNzLCBkb3VibGUgc3RpZmZuZXNzLCBkb3VibGUgZGFt
cGluZywgZG91YmxlIGluaXRpYWxWZWxvY2l0eSkKLSAgICAgICAgOiBUaW1pbmdGdW5jdGlvbihT
cHJpbmdGdW5jdGlvbikKLSAgICAgICAgLCBtX21hc3MobWFzcykKLSAgICAgICAgLCBtX3N0aWZm
bmVzcyhzdGlmZm5lc3MpCi0gICAgICAgICwgbV9kYW1waW5nKGRhbXBpbmcpCi0gICAgICAgICwg
bV9pbml0aWFsVmVsb2NpdHkoaW5pdGlhbFZlbG9jaXR5KQotICAgIHsKLSAgICB9Ci0KLSAgICBQ
YXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlCi0gICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwcmluZ1RpbWluZ0Z1bmN0aW9uKG1fbWFzcywg
bV9zdGlmZm5lc3MsIG1fZGFtcGluZywgbV9pbml0aWFsVmVsb2NpdHkpKTsKLSAgICB9Ci0KLSAg
ICBkb3VibGUgbV9tYXNzOwotICAgIGRvdWJsZSBtX3N0aWZmbmVzczsKLSAgICBkb3VibGUgbV9k
YW1waW5nOwotICAgIGRvdWJsZSBtX2luaXRpYWxWZWxvY2l0eTsKLX07Ci0KIGNsYXNzIFRleHRT
dHJlYW07CiBXRUJDT1JFX0VYUE9SVCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
LCBjb25zdCBUaW1pbmdGdW5jdGlvbiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9TcHJpbmdTb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NwcmluZ1NvbHZlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
N2FlOWJjZmE5ZTAxMjY0ZWQ3ODY3OGI3NzY1MDc3ODBkYTRiYmQ5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NwcmluZ1NvbHZlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNw
cmluZ1NvbHZlciB7Ci1wdWJsaWM6Ci0gICAgU3ByaW5nU29sdmVyKGRvdWJsZSBtYXNzLCBkb3Vi
bGUgc3RpZmZuZXNzLCBkb3VibGUgZGFtcGluZywgZG91YmxlIGluaXRpYWxWZWxvY2l0eSkKLSAg
ICB7Ci0gICAgICAgIG1fdzAgPSBzdGQ6OnNxcnQoc3RpZmZuZXNzIC8gbWFzcyk7Ci0gICAgICAg
IG1femV0YSA9IGRhbXBpbmcgLyAoMiAqIHN0ZDo6c3FydChzdGlmZm5lc3MgKiBtYXNzKSk7Ci0K
LSAgICAgICAgaWYgKG1femV0YSA8IDEpIHsKLSAgICAgICAgICAgIC8vIFVuZGVyLWRhbXBlZC4K
LSAgICAgICAgICAgIG1fd2QgPSBtX3cwICogc3RkOjpzcXJ0KDEgLSBtX3pldGEgKiBtX3pldGEp
OwotICAgICAgICAgICAgbV9BID0gMTsKLSAgICAgICAgICAgIG1fQiA9IChtX3pldGEgKiBtX3cw
ICsgLWluaXRpYWxWZWxvY2l0eSkgLyBtX3dkOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgLy8gQ3JpdGljYWxseSBkYW1wZWQgKGlnbm9yaW5nIG92ZXItZGFtcGVkIGNhc2UgZm9yIG5v
dykuCi0gICAgICAgICAgICBtX0EgPSAxOwotICAgICAgICAgICAgbV9CID0gLWluaXRpYWxWZWxv
Y2l0eSArIG1fdzA7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBkb3VibGUgc29sdmUoZG91Ymxl
IHQpCi0gICAgewotICAgICAgICBpZiAobV96ZXRhIDwgMSkgewotICAgICAgICAgICAgLy8gVW5k
ZXItZGFtcGVkCi0gICAgICAgICAgICB0ID0gc3RkOjpleHAoLXQgKiBtX3pldGEgKiBtX3cwKSAq
IChtX0EgKiBzdGQ6OmNvcyhtX3dkICogdCkgKyBtX0IgKiBzdGQ6OnNpbihtX3dkICogdCkpOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gQ3JpdGljYWxseSBkYW1wZWQgKGlnbm9y
aW5nIG92ZXItZGFtcGVkIGNhc2UgZm9yIG5vdykuCi0gICAgICAgICAgICB0ID0gKG1fQSArIG1f
QiAqIHQpICogc3RkOjpleHAoLXQgKiBtX3cwKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIE1h
cCByYW5nZSBmcm9tIFsxLi4wXSB0byBbMC4uMV0uCi0gICAgICAgIHJldHVybiAxIC0gdDsKLSAg
ICB9Ci0KLXByaXZhdGU6Ci0gICAgZG91YmxlIG1fdzA7Ci0gICAgZG91YmxlIG1femV0YTsKLSAg
ICBkb3VibGUgbV93ZDsKLSAgICBkb3VibGUgbV9BOwotICAgIGRvdWJsZSBtX0I7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCAzMTFmYzk3YTk4MzNiNGU5
NTdhNWFlOTllZDA5Yzc3ZTdiNjQ1ZTdlLi5lOWZlMmJkYTNiZGUzNmJhNTdjNDU2ZDAzNGE5ZGJj
ZGUzODUxZGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTI3NDMsMTAgKzI3NDMsNyBAQCBib29sIEdy
YXBoaWNzTGF5ZXJDQTo6Y3JlYXRlQW5pbWF0aW9uRnJvbUtleWZyYW1lcyhjb25zdCBLZXlmcmFt
ZVZhbHVlTGlzdCYgdmFsdQogICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0ZUtleWZyYW1lQW5p
bWF0aW9uKGFuaW1hdGlvbiwgcHJvcGVydHlJZFRvU3RyaW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgp
KSwgYWRkaXRpdmUpOwogICAgICAgICB2YWx1ZXNPSyA9IHNldEFuaW1hdGlvbktleWZyYW1lcyh2
YWx1ZUxpc3QsIGFuaW1hdGlvbiwgY2FBbmltYXRpb24uZ2V0KCkpOwogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIGlmIChhbmltYXRpb24tPnRpbWluZ0Z1bmN0aW9uKCktPmlzU3ByaW5nVGltaW5nRnVu
Y3Rpb24oKSkKLSAgICAgICAgICAgIGNhQW5pbWF0aW9uID0gY3JlYXRlU3ByaW5nQW5pbWF0aW9u
KGFuaW1hdGlvbiwgcHJvcGVydHlJZFRvU3RyaW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSwgYWRk
aXRpdmUpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0ZUJh
c2ljQW5pbWF0aW9uKGFuaW1hdGlvbiwgcHJvcGVydHlJZFRvU3RyaW5nKHZhbHVlTGlzdC5wcm9w
ZXJ0eSgpKSwgYWRkaXRpdmUpOworICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0ZUJhc2ljQW5p
bWF0aW9uKGFuaW1hdGlvbiwgcHJvcGVydHlJZFRvU3RyaW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgp
KSwgYWRkaXRpdmUpOwogICAgICAgICB2YWx1ZXNPSyA9IHNldEFuaW1hdGlvbkVuZHBvaW50cyh2
YWx1ZUxpc3QsIGFuaW1hdGlvbiwgY2FBbmltYXRpb24uZ2V0KCkpOwogICAgIH0KICAgICAKQEAg
LTI3NzAsMTAgKzI3NjcsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1p
dHRlZEFuaW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbAogICAgICAgICBjYUFu
aW1hdGlvbiA9IGNyZWF0ZUtleWZyYW1lQW5pbWF0aW9uKGFuaW1hdGlvbiwgcHJvcGVydHlJZFRv
U3RyaW5nKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSwgYWRkaXRpdmUpOwogICAgICAgICB2YWxpZE1h
dHJpY2VzID0gc2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJhbWVzKHZhbHVlTGlzdCwgYW5pbWF0
aW9uLCBjYUFuaW1hdGlvbi5nZXQoKSwgYW5pbWF0aW9uSW5kZXgsIHRyYW5zZm9ybU9wLCBpc01h
dHJpeEFuaW1hdGlvbiwgYm94U2l6ZSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGFuaW1h
dGlvbi0+dGltaW5nRnVuY3Rpb24oKS0+aXNTcHJpbmdUaW1pbmdGdW5jdGlvbigpKQotICAgICAg
ICAgICAgY2FBbmltYXRpb24gPSBjcmVhdGVTcHJpbmdBbmltYXRpb24oYW5pbWF0aW9uLCBwcm9w
ZXJ0eUlkVG9TdHJpbmcodmFsdWVMaXN0LnByb3BlcnR5KCkpLCBhZGRpdGl2ZSk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGNhQW5pbWF0aW9uID0gY3JlYXRlQmFzaWNBbmltYXRpb24oYW5p
bWF0aW9uLCBwcm9wZXJ0eUlkVG9TdHJpbmcodmFsdWVMaXN0LnByb3BlcnR5KCkpLCBhZGRpdGl2
ZSk7CisgICAgICAgIGNhQW5pbWF0aW9uID0gY3JlYXRlQmFzaWNBbmltYXRpb24oYW5pbWF0aW9u
LCBwcm9wZXJ0eUlkVG9TdHJpbmcodmFsdWVMaXN0LnByb3BlcnR5KCkpLCBhZGRpdGl2ZSk7CiAg
ICAgICAgIHZhbGlkTWF0cmljZXMgPSBzZXRUcmFuc2Zvcm1BbmltYXRpb25FbmRwb2ludHModmFs
dWVMaXN0LCBhbmltYXRpb24sIGNhQW5pbWF0aW9uLmdldCgpLCBhbmltYXRpb25JbmRleCwgdHJh
bnNmb3JtT3AsIGlzTWF0cml4QW5pbWF0aW9uLCBib3hTaXplKTsKICAgICB9CiAgICAgCkBAIC0y
OTA3LDIwICsyOTAxLDEzIEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gR3JhcGhp
Y3NMYXllckNBOjpjcmVhdGVCYXNpY0FuaW1hdGlvbihjb25zdCBBbmltCiAgICAgcmV0dXJuIGJh
c2ljQW5pbTsKIH0KIAotUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBHcmFwaGljc0xh
eWVyQ0E6OmNyZWF0ZUtleWZyYW1lQW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29u
c3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGFkZGl0aXZlKQorUGFzc1JlZlB0cjxQbGF0Zm9ybUNB
QW5pbWF0aW9uPkdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlS2V5ZnJhbWVBbmltYXRpb24oY29uc3Qg
QW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgYWRkaXRpdmUpCiB7
CiAgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGtleWZyYW1lQW5pbSA9IGNyZWF0ZVBs
YXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbjo6S2V5ZnJhbWUsIGtleVBhdGgp
OwogICAgIHNldHVwQW5pbWF0aW9uKGtleWZyYW1lQW5pbS5nZXQoKSwgYW5pbSwgYWRkaXRpdmUp
OwogICAgIHJldHVybiBrZXlmcmFtZUFuaW07CiB9CiAKLVJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0
aW9uPiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVNwcmluZ0FuaW1hdGlvbihjb25zdCBBbmltYXRp
b24qIGFuaW0sIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhZGRpdGl2ZSkKLXsKLSAgICBh
dXRvIGJhc2ljQW5pbSA9IGNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1h
dGlvbjo6U3ByaW5nLCBrZXlQYXRoKTsKLSAgICBzZXR1cEFuaW1hdGlvbihiYXNpY0FuaW0uZ2V0
KCksIGFuaW0sIGFkZGl0aXZlKTsKLSAgICByZXR1cm4gYmFzaWNBbmltOwotfQotCiB2b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6c2V0dXBBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbiogcHJvcGVy
dHlBbmltLCBjb25zdCBBbmltYXRpb24qIGFuaW0sIGJvb2wgYWRkaXRpdmUpCiB7CiAgICAgZG91
YmxlIGR1cmF0aW9uID0gYW5pbS0+ZHVyYXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggYzJmYWU2YjEz
MGEzYTJmNGFmMmU3MjFmYjE3MGUxOTY0NzI1NzFkOS4uYTUyNjZjYzYzZTFiZWI0ZmYyN2Y1YjRj
ZmViNGJlNDBlMmQ5N2NjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTI0Miw3ICsyNDIsNiBAQCBwcml2YXRl
OgogICAgIC8vIFJldHVybiBhdXRvcmVsZWFzZWQgYW5pbWF0aW9uICh1c2UgUmV0YWluUHRyPykK
ICAgICBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZUJhc2ljQW5pbWF0aW9u
KGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhZGRpdGl2ZSk7
CiAgICAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBjcmVhdGVLZXlmcmFtZUFuaW1h
dGlvbihjb25zdCBBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmLCBib29sIGFkZGl0aXZlKTsKLSAg
ICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlU3ByaW5nQW5pbWF0aW9uKGNvbnN0
IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYsIGJvb2wgYWRkaXRpdmUpOwogICAgIHZvaWQgc2V0
dXBBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbiosIGNvbnN0IEFuaW1hdGlvbiosIGJvb2wg
YWRkaXRpdmUpOwogICAgIAogICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlv
bkZvckFuaW1hdGlvblZhbHVlKGNvbnN0IEFuaW1hdGlvblZhbHVlJiwgY29uc3QgQW5pbWF0aW9u
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0
Zm9ybUNBQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L1BsYXRmb3JtQ0FBbmltYXRpb24uY3BwCmluZGV4IGRlZDkwZWIwNjYwYjczOGEyMDViNTQ3NjMx
MzQ1ZmJiZDY5ZDA3NmEuLjEwYmRkODJkOGU4MzNlZTRmZjNjNzFkNDhiMmY2MjFhM2FkOWI2NjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L1BsYXRmb3JtQ0FBbmltYXRpb24uY3BwCkBAIC0zNSw3ICszNSw2IEBAIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFBsYXRmb3JtQ0FBbmltYXRpb246OkFuaW1hdGlvblR5
cGUgdHlwZSkKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFBsYXRmb3JtQ0FBbmltYXRp
b246OkJhc2ljOiB0cyA8PCAiYmFzaWMiOyBicmVhazsKICAgICBjYXNlIFBsYXRmb3JtQ0FBbmlt
YXRpb246OktleWZyYW1lOiB0cyA8PCAia2V5ZnJhbWUiOyBicmVhazsKLSAgICBjYXNlIFBsYXRm
b3JtQ0FBbmltYXRpb246OlNwcmluZzogdHMgPDwgInNwcmluZyI7IGJyZWFrOwogICAgIH0KICAg
ICByZXR1cm4gdHM7CiB9CkBAIC03MCw5ICs2OSw0IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlIHZh
CiAgICAgcmV0dXJuIHRzOwogfQogCi1ib29sIFBsYXRmb3JtQ0FBbmltYXRpb246OmlzQmFzaWNB
bmltYXRpb24oKSBjb25zdAotewotICAgIHJldHVybiBhbmltYXRpb25UeXBlKCkgPT0gQmFzaWMg
fHwgYW5pbWF0aW9uVHlwZSgpID09IFNwcmluZzsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZv
cm1DQUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUFuaW1hdGlvbi5oCmluZGV4IGNjOGQ4M2ZlMmYzZGFhNjZlMTM5OTA4OGVmNDEwZmFk
ZmIxMWMwMDguLjYwZmI4NmE4M2Q4OGRjNjZjYmE0MTI4NWYyOTk5MzVjOWJhYjE2ZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmlt
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9y
bUNBQW5pbWF0aW9uLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgVGltaW5nRnVuY3Rpb247CiAK
IGNsYXNzIFBsYXRmb3JtQ0FBbmltYXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxQbGF0Zm9ybUNB
QW5pbWF0aW9uPiB7CiBwdWJsaWM6Ci0gICAgZW51bSBBbmltYXRpb25UeXBlIHsgQmFzaWMsIEtl
eWZyYW1lLCBTcHJpbmcgfTsKKyAgICBlbnVtIEFuaW1hdGlvblR5cGUgeyBCYXNpYywgS2V5ZnJh
bWUgfTsKICAgICBlbnVtIEZpbGxNb2RlVHlwZSB7IE5vRmlsbE1vZGUsIEZvcndhcmRzLCBCYWNr
d2FyZHMsIEJvdGggfTsKICAgICBlbnVtIFZhbHVlRnVuY3Rpb25UeXBlIHsgTm9WYWx1ZUZ1bmN0
aW9uLCBSb3RhdGVYLCBSb3RhdGVZLCBSb3RhdGVaLCBTY2FsZVgsIFNjYWxlWSwgU2NhbGVaLCBT
Y2FsZSwgVHJhbnNsYXRlWCwgVHJhbnNsYXRlWSwgVHJhbnNsYXRlWiwgVHJhbnNsYXRlIH07CiAK
QEAgLTEyMyw4ICsxMjMsNiBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChiZWdpblRpbWUoKSA8PSAw
KQogICAgICAgICAgICAgc2V0QmVnaW5UaW1lKHQpOwogICAgIH0KLQotICAgIGJvb2wgaXNCYXNp
Y0FuaW1hdGlvbigpIGNvbnN0OwogICAgIAogcHJvdGVjdGVkOgogICAgIFBsYXRmb3JtQ0FBbmlt
YXRpb24oQW5pbWF0aW9uVHlwZSB0eXBlID0gQmFzaWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNB
QW5pbWF0aW9uQ29jb2EubW0KaW5kZXggNDg5MGQyNjQ4ZWI1Mzg4MWVmOTZmNTY2MDc5NTI1YWVh
OGY0MGRlYi4uM2Q0NjM1MWY2MmM5N2RhMjM1MjkzZjBlNmQ3NDQ0MzQzYzk5MTEzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1D
QUFuaW1hdGlvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL2NvY29hL1BsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5tbQpAQCAtMTYxLDMwICsxNjEsMjAg
QEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29j
b2E6OmNyZWF0ZShQbGF0Zm9ybUFuaW1hdGkKIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6UGxh
dGZvcm1DQUFuaW1hdGlvbkNvY29hKEFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBr
ZXlQYXRoKQogICAgIDogUGxhdGZvcm1DQUFuaW1hdGlvbih0eXBlKQogewotICAgIHN3aXRjaCAo
dHlwZSkgewotICAgIGNhc2UgQmFzaWM6CisgICAgaWYgKHR5cGUgPT0gQmFzaWMpCiAgICAgICAg
IG1fYW5pbWF0aW9uID0gW0NBQmFzaWNBbmltYXRpb24gYW5pbWF0aW9uV2l0aEtleVBhdGg6a2V5
UGF0aF07Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2V5ZnJhbWU6CisgICAgZWxzZQogICAg
ICAgICBtX2FuaW1hdGlvbiA9IFtDQUtleWZyYW1lQW5pbWF0aW9uIGFuaW1hdGlvbldpdGhLZXlQ
YXRoOmtleVBhdGhdOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFNwcmluZzoKLSAgICAgICAg
bV9hbmltYXRpb24gPSBbQ0FTcHJpbmdBbmltYXRpb24gYW5pbWF0aW9uV2l0aEtleVBhdGg6a2V5
UGF0aF07Ci0gICAgICAgIGJyZWFrOwotICAgIH0KIH0KIAogUGxhdGZvcm1DQUFuaW1hdGlvbkNv
Y29hOjpQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EoUGxhdGZvcm1BbmltYXRpb25SZWYgYW5pbWF0
aW9uKQogewotICAgIGlmIChbc3RhdGljX2Nhc3Q8Q0FBbmltYXRpb24qPihhbmltYXRpb24pIGlz
S2luZE9mQ2xhc3M6W0NBQmFzaWNBbmltYXRpb24gY2xhc3NdXSkgewotICAgICAgICBpZiAoW3N0
YXRpY19jYXN0PENBQW5pbWF0aW9uKj4oYW5pbWF0aW9uKSBpc0tpbmRPZkNsYXNzOltDQVNwcmlu
Z0FuaW1hdGlvbiBjbGFzc11dKQotICAgICAgICAgICAgc2V0VHlwZShTcHJpbmcpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBzZXRUeXBlKEJhc2ljKTsKLSAgICB9IGVsc2UgaWYgKFtzdGF0
aWNfY2FzdDxDQUFuaW1hdGlvbio+KGFuaW1hdGlvbikgaXNLaW5kT2ZDbGFzczpbQ0FLZXlmcmFt
ZUFuaW1hdGlvbiBjbGFzc11dKQorICAgIGlmIChbc3RhdGljX2Nhc3Q8Q0FBbmltYXRpb24qPihh
bmltYXRpb24pIGlzS2luZE9mQ2xhc3M6W0NBQmFzaWNBbmltYXRpb24gY2xhc3NdXSkKKyAgICAg
ICAgc2V0VHlwZShCYXNpYyk7CisgICAgZWxzZSBpZiAoW3N0YXRpY19jYXN0PENBQW5pbWF0aW9u
Kj4oYW5pbWF0aW9uKSBpc0tpbmRPZkNsYXNzOltDQUtleWZyYW1lQW5pbWF0aW9uIGNsYXNzXV0p
CiAgICAgICAgIHNldFR5cGUoS2V5ZnJhbWUpOwogICAgIGVsc2UgewotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgQVNTRVJUKDApOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIApAQCAtMzE1LDIzICszMDUsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25Db2Nv
YTo6c2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlIHZhbHVlKQogCiB2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25Db2NvYTo6c2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHZhbHVl
LCBib29sIHJldmVyc2UpCiB7Ci0gICAgc3dpdGNoIChhbmltYXRpb25UeXBlKCkpIHsKLSAgICBj
YXNlIEJhc2ljOgotICAgIGNhc2UgS2V5ZnJhbWU6Ci0gICAgICAgIFttX2FuaW1hdGlvbiBzZXRU
aW1pbmdGdW5jdGlvbjp0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbih2YWx1ZSwgcmV2ZXJzZSldOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFNwcmluZzoKLSAgICAgICAgaWYgKHZhbHVlLT5pc1Nw
cmluZ1RpbWluZ0Z1bmN0aW9uKCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgcmV2
ZXJzZS4KLSAgICAgICAgICAgIGF1dG8mIGZ1bmN0aW9uID0gKnN0YXRpY19jYXN0PGNvbnN0IFNw
cmluZ1RpbWluZ0Z1bmN0aW9uKj4odmFsdWUpOwotICAgICAgICAgICAgQ0FTcHJpbmdBbmltYXRp
b24gKnNwcmluZ0FuaW1hdGlvbiA9IChDQVNwcmluZ0FuaW1hdGlvbiAqKW1fYW5pbWF0aW9uLmdl
dCgpOwotICAgICAgICAgICAgc3ByaW5nQW5pbWF0aW9uLm1hc3MgPSBmdW5jdGlvbi5tYXNzKCk7
Ci0gICAgICAgICAgICBzcHJpbmdBbmltYXRpb24uc3RpZmZuZXNzID0gZnVuY3Rpb24uc3RpZmZu
ZXNzKCk7Ci0gICAgICAgICAgICBzcHJpbmdBbmltYXRpb24uZGFtcGluZyA9IGZ1bmN0aW9uLmRh
bXBpbmcoKTsKLSAgICAgICAgICAgIHNwcmluZ0FuaW1hdGlvbi5pbml0aWFsVmVsb2NpdHkgPSBm
dW5jdGlvbi5pbml0aWFsVmVsb2NpdHkoKTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAg
ICB9CisgICAgW21fYW5pbWF0aW9uIHNldFRpbWluZ0Z1bmN0aW9uOnRvQ0FNZWRpYVRpbWluZ0Z1
bmN0aW9uKHZhbHVlLCByZXZlcnNlKV07CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbkNv
Y29hOjpjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24mIHZh
bHVlKQpAQCAtMzcyLDE0ICszNDYsMTQgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6
OnNldFZhbHVlRnVuY3Rpb24oVmFsdWVGdW5jdGlvblR5cGUgdmFsdWUpCiAKIHZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbkNvY29hOjpzZXRGcm9tVmFsdWUoZmxvYXQgdmFsdWUpCiB7Ci0gICAgaWYg
KCFpc0Jhc2ljQW5pbWF0aW9uKCkpCisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykK
ICAgICAgICAgcmV0dXJuOwogICAgIFtzdGF0aWNfY2FzdDxDQUJhc2ljQW5pbWF0aW9uKj4obV9h
bmltYXRpb24uZ2V0KCkpIHNldEZyb21WYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJsZTp2
YWx1ZV1dOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6c2V0RnJvbVZhbHVl
KGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkKIHsKLSAgICBpZiAo
IWlzQmFzaWNBbmltYXRpb24oKSkKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQog
ICAgICAgICByZXR1cm47CiAKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0FuaW1hdGlvbio+KG1f
YW5pbWF0aW9uLmdldCgpKSBzZXRGcm9tVmFsdWU6W05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zv
cm0zRDp2YWx1ZV1dOwpAQCAtMzg3LDcgKzM2MSw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
bkNvY29hOjpzZXRGcm9tVmFsdWUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgm
CiAKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hOjpzZXRGcm9tVmFsdWUoY29uc3QgRmxv
YXRQb2ludDNEJiB2YWx1ZSkKIHsKLSAgICBpZiAoIWlzQmFzaWNBbmltYXRpb24oKSkKKyAgICBp
ZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CiAKICAgICBOU0Fy
cmF5KiBhcnJheSA9IFtOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6CkBAIC00MDAsNyArMzc0LDcg
QEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OnNldEZyb21WYWx1ZShjb25zdCBGbG9h
dFBvaW50M0QmIHZhbHVlKQogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6c2V0RnJv
bVZhbHVlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiB2YWx1ZSkKIHsKLSAgICBpZiAoIWlzQmFzaWNB
bmltYXRpb24oKSkKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBOU0FycmF5KiBhcnJheSA9IFtOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6
CkBAIC00MjAsNyArMzk0LDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OnNldEZy
b21WYWx1ZShjb25zdCBGaWx0ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiwgaW4KIAogdm9pZCBQbGF0
Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OmNvcHlGcm9tVmFsdWVGcm9tKGNvbnN0IFBsYXRmb3JtQ0FB
bmltYXRpb24mIHZhbHVlKQogewotICAgIGlmICghaXNCYXNpY0FuaW1hdGlvbigpIHx8ICF2YWx1
ZS5pc0Jhc2ljQW5pbWF0aW9uKCkpCisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYyB8
fCB2YWx1ZS5hbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKIAogICAg
IENBQmFzaWNBbmltYXRpb24qIG90aGVyQW5pbWF0aW9uID0gc3RhdGljX2Nhc3Q8Q0FCYXNpY0Fu
aW1hdGlvbio+KGRvd25jYXN0PFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYT4odmFsdWUpLm1fYW5p
bWF0aW9uLmdldCgpKTsKQEAgLTQyOSwxNCArNDAzLDE0IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvbkNvY29hOjpjb3B5RnJvbVZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uJiB2
YWx1CiAKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hOjpzZXRUb1ZhbHVlKGZsb2F0IHZh
bHVlKQogewotICAgIGlmICghaXNCYXNpY0FuaW1hdGlvbigpKQorICAgIGlmIChhbmltYXRpb25U
eXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNp
Y0FuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRUb1ZhbHVlOltOU051bWJlciBudW1i
ZXJXaXRoRG91YmxlOnZhbHVlXV07CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29h
OjpzZXRUb1ZhbHVlKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JiB2YWx1ZSkK
IHsKLSAgICBpZiAoIWlzQmFzaWNBbmltYXRpb24oKSkKKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgp
ICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CiAKICAgICBbc3RhdGljX2Nhc3Q8Q0FCYXNpY0Fu
aW1hdGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRUb1ZhbHVlOltOU1ZhbHVlIHZhbHVlV2l0
aENBVHJhbnNmb3JtM0Q6dmFsdWVdXTsKQEAgLTQ0NCw3ICs0MTgsNyBAQCB2b2lkIFBsYXRmb3Jt
Q0FBbmltYXRpb25Db2NvYTo6c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgdgogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6c2V0VG9WYWx1ZShj
b25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQogewotICAgIGlmICghaXNCYXNpY0FuaW1hdGlvbigp
KQorICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIE5TQXJyYXkqIGFycmF5ID0gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0czoKQEAgLTQ1Nyw3
ICs0MzEsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6c2V0VG9WYWx1ZShjb25z
dCBGbG9hdFBvaW50M0QmIHZhbHVlKQogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6
c2V0VG9WYWx1ZShjb25zdCBXZWJDb3JlOjpDb2xvciYgdmFsdWUpCiB7Ci0gICAgaWYgKCFpc0Jh
c2ljQW5pbWF0aW9uKCkpCisgICAgaWYgKGFuaW1hdGlvblR5cGUoKSAhPSBCYXNpYykKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgTlNBcnJheSogYXJyYXkgPSBbTlNBcnJheSBhcnJheVdpdGhPYmpl
Y3RzOgpAQCAtNDc3LDcgKzQ1MSw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hOjpz
ZXRUb1ZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9uLCBpbnQKIAogdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uJiB2YWx1ZSkKIHsKLSAgICBpZiAoIWlzQmFzaWNBbmltYXRpb24oKSB8fCAhdmFs
dWUuaXNCYXNpY0FuaW1hdGlvbigpKQorICAgIGlmIChhbmltYXRpb25UeXBlKCkgIT0gQmFzaWMg
fHwgdmFsdWUuYW5pbWF0aW9uVHlwZSgpICE9IEJhc2ljKQogICAgICAgICByZXR1cm47CiAKICAg
ICBDQUJhc2ljQW5pbWF0aW9uKiBvdGhlckFuaW1hdGlvbiA9IHN0YXRpY19jYXN0PENBQmFzaWNB
bmltYXRpb24qPihkb3duY2FzdDxQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E+KHZhbHVlKS5tX2Fu
aW1hdGlvbi5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA0MDdiNGRhNzVmMDQ5NDEzNGYyYjcyOTNiMmExNTVm
ZWM4YmJmNDRiLi45ZGQ2M2ZkMjNjY2MxNjY4Mjk3N2RmZWQwMGQ0ZGI5ZWJhOGEyYzVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5j
cHAKQEAgLTM2NSwxNCArMzY1LDYgQEAgc3RhdGljIHZvaWQgZW5jb2RlVGltaW5nRnVuY3Rpb24o
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUaW1pbmdGdW5jdGlvbioKICAgICAgICAg
ZW5jb2RlciA8PCBzdGVwcy0+c3RlcEF0U3RhcnQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQot
ICAgIGNhc2UgVGltaW5nRnVuY3Rpb246OlNwcmluZ0Z1bmN0aW9uOiB7Ci0gICAgICAgIGNvbnN0
IFNwcmluZ1RpbWluZ0Z1bmN0aW9uKiBzcHJpbmcgPSBzdGF0aWNfY2FzdDxjb25zdCBTcHJpbmdU
aW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uKTsKLSAgICAgICAgZW5jb2RlciA8PCBzcHJp
bmctPm1hc3MoKTsKLSAgICAgICAgZW5jb2RlciA8PCBzcHJpbmctPnN0aWZmbmVzcygpOwotICAg
ICAgICBlbmNvZGVyIDw8IHNwcmluZy0+ZGFtcGluZygpOwotICAgICAgICBlbmNvZGVyIDw8IHNw
cmluZy0+aW5pdGlhbFZlbG9jaXR5KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KICAgICB9CiB9
CiAKQEAgLTQyMSwyMyArNDEzLDYgQEAgYm9vbCBkZWNvZGVUaW1pbmdGdW5jdGlvbihBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4mIHRpbWkKICAgICAgICAg
dGltaW5nRnVuY3Rpb24gPSBTdGVwc1RpbWluZ0Z1bmN0aW9uOjpjcmVhdGUobnVtYmVyT2ZTdGVw
cywgc3RlcEF0U3RhcnQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgY2FzZSBU
aW1pbmdGdW5jdGlvbjo6U3ByaW5nRnVuY3Rpb246IHsKLSAgICAgICAgZG91YmxlIG1hc3M7Ci0g
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWFzcykpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIGRvdWJsZSBzdGlmZm5lc3M7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoc3RpZmZuZXNzKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZG91Ymxl
IGRhbXBpbmc7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGFtcGluZykpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGRvdWJsZSBpbml0aWFsVmVsb2NpdHk7Ci0gICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5pdGlhbFZlbG9jaXR5KSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgICAgICB0aW1pbmdGdW5jdGlvbiA9IFNwcmluZ1RpbWluZ0Z1bmN0
aW9uOjpjcmVhdGUobWFzcywgc3RpZmZuZXNzLCBkYW1waW5nLCBpbml0aWFsVmVsb2NpdHkpOwot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCAyZTVkZmIzYzllZWQ4N2NjOTRiMWJlMGMxZjZkZWM3MjFjMDYyZTdhLi5jM2UwNDM3MmZlM2Q1
NTFmMzYzNTViMjNiY2QwZGI0YWQxMmIzMTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMjY1LDQwICsyNjUsNiBAQCBib29sIEFy
Z3VtZW50Q29kZXI8U3RlcHNUaW1pbmdGdW5jdGlvbj46OmRlY29kZShBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIFN0ZXBzVAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29k
ZXI8U3ByaW5nVGltaW5nRnVuY3Rpb24+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBTcHJpbmdUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCi17Ci0gICAgZW5j
b2Rlci5lbmNvZGVFbnVtKHRpbWluZ0Z1bmN0aW9uLnR5cGUoKSk7Ci0gICAgCi0gICAgZW5jb2Rl
ciA8PCB0aW1pbmdGdW5jdGlvbi5tYXNzKCk7Ci0gICAgZW5jb2RlciA8PCB0aW1pbmdGdW5jdGlv
bi5zdGlmZm5lc3MoKTsKLSAgICBlbmNvZGVyIDw8IHRpbWluZ0Z1bmN0aW9uLmRhbXBpbmcoKTsK
LSAgICBlbmNvZGVyIDw8IHRpbWluZ0Z1bmN0aW9uLmluaXRpYWxWZWxvY2l0eSgpOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8U3ByaW5nVGltaW5nRnVuY3Rpb24+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBTcHJpbmdUaW1pbmdGdW5jdGlvbiYgdGltaW5nRnVuY3Rpb24pCi17
Ci0gICAgLy8gVHlwZSBpcyBkZWNvZGVkIGJ5IHRoZSBjYWxsZXIuCi0gICAgZG91YmxlIG1hc3M7
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYXNzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgZG91YmxlIHN0aWZmbmVzczsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0aWZmbmVz
cykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGRvdWJsZSBkYW1waW5nOwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoZGFtcGluZykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGRvdWJsZSBpbml0aWFsVmVsb2NpdHk7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbml0aWFs
VmVsb2NpdHkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICB0aW1pbmdGdW5jdGlvbi5z
ZXRWYWx1ZXMobWFzcywgc3RpZmZuZXNzLCBkYW1waW5nLCBpbml0aWFsVmVsb2NpdHkpOwotCi0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50Pjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRQb2ludCYgZmxvYXRQb2lu
dCkKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQ+OjplbmNvZGUoZW5jb2Rl
ciwgZmxvYXRQb2ludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgKaW5kZXggNWUwOTFmM2RiMzJlZDE2YWU1YmJjMDM1YWZiNmI4ZjcxYWRiY2U4Mi4u
YmYxZWRkNjAwYmUxYzI1NmIzYjhiMGU0YWE4MmUxZjJhZTQzMjUxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNjAsNyArNjAsNiBAQCBj
bGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKIGNsYXNzIFNlc3Npb25JRDsKLWNsYXNzIFNwcmluZ1RpbWluZ0Z1bmN0aW9u
OwogY2xhc3MgU3RlcHNUaW1pbmdGdW5jdGlvbjsKIGNsYXNzIFN0aWNreVBvc2l0aW9uVmlld3Bv
cnRDb25zdHJhaW50czsKIGNsYXNzIFRleHRDaGVja2luZ1JlcXVlc3REYXRhOwpAQCAtMTUyLDEx
ICsxNTEsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlN0ZXBz
VGltaW5nRnVuY3Rpb24+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiwgV2ViQ29yZTo6U3RlcHNUaW1pbmdGdW5jdGlvbiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTcHJpbmdUaW1pbmdGdW5jdGlvbj4gewotICAgIHN0
YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTcHJpbmdU
aW1pbmdGdW5jdGlvbiYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIm
LCBXZWJDb3JlOjpTcHJpbmdUaW1pbmdGdW5jdGlvbiYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IHsKICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXggMDQwNDFiZjEyNjc4YTEzYTJkN2E0YTMyZjViYWFi
MDgyMTYyNDcwMC4uNWJlYTRiZGZmYzU3ODM2YWY1NGQyMmQwYTFmN2U5ZjhmNzRlNDI4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
CkBAIC0yOTMsNyArMjkzLDYgQEAKICAgICBtYWNybyhDU1NHcmlkTGF5b3V0RW5hYmxlZCwgY3Nz
R3JpZExheW91dEVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICJDU1MgR3JpZCIsICJDU1MgR3Jp
ZCBMYXlvdXQgTW9kdWxlIHN1cHBvcnQiKSBcCiAgICAgbWFjcm8oQ3VzdG9tRWxlbWVudHNFbmFi
bGVkLCBjdXN0b21FbGVtZW50c0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICJDdXN0b20gRWxl
bWVudHMiLCAiSFRNTCBDdXN0b20gRWxlbWVudHMgcHJvdG90eXBlIikgXAogICAgIG1hY3JvKFdl
YkdMMkVuYWJsZWQsIHdlYkdMMkVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICJXZWJHTCAyLjAi
LCAiV2ViR0wgMiBwcm90b3R5cGUiKSBcCi0gICAgbWFjcm8oU3ByaW5nVGltaW5nRnVuY3Rpb25F
bmFibGVkLCBzcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICJD
U1MgU3ByaW5nIEFuaW1hdGlvbnMiLCAiQ1NTIFNwcmluZyBBbmltYXRpb24gcHJvdG90eXBlIikg
XAogICAgIFwKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGQxMGRhNmU4YzliNjI5NDBiNThjYzRiYTJj
Y2UxYTVkYTEzZDkxODQuLjc5OGNkYmYyZTM3MWU5ZGRmOGEwYmExYWE1NDg4MjM5YTFkMzQxNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTMxNTAsOCArMzE1MCw2IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5zZXRXZWJHTDJFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6d2ViR0wyRW5hYmxlZEtleSgpKSk7CiAjZW5kaWYKIAotICAg
IHNldHRpbmdzLnNldFNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZChzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZEtl
eSgpKSk7Ci0KICAgICBib29sIHByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQgPSBzdG9yZS5nZXRC
b29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkS2V5KCkpOwogICAgIGlmIChtX3Byb2Nlc3NTdXBwcmVzc2lv
bkVuYWJsZWQgIT0gcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCkgewogICAgICAgICBtX3Byb2Nl
c3NTdXBwcmVzc2lvbkVuYWJsZWQgPSBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCmluZGV4IGYxOGM1NTU1ZTI0YWMzNTQ2ZGEwYWJh
MDFhNmVjMzJhYWNmNzg1OWEuLjgyMjMxY2U3ZGU3ZWVhY2FmYzU2Yjk4NWM5OGI5N2U3MzM4MGMw
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KQEAgLTE5NiwxMCArMTk2
LDYgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpQcm9wZXJ0aWVzOjplbmNvZGUo
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIKICAgICAgICAgY2FzZSBUaW1pbmdGdW5jdGlv
bjo6U3RlcHNGdW5jdGlvbjoKICAgICAgICAgICAgIGVuY29kZXIgPDwgKnN0YXRpY19jYXN0PFN0
ZXBzVGltaW5nRnVuY3Rpb24qPih0aW1pbmdGdW5jdGlvbi5nZXQoKSk7CiAgICAgICAgICAgICBi
cmVhazsKLQotICAgICAgICBjYXNlIFRpbWluZ0Z1bmN0aW9uOjpTcHJpbmdGdW5jdGlvbjoKLSAg
ICAgICAgICAgIGVuY29kZXIgPDwgKnN0YXRpY19jYXN0PFNwcmluZ1RpbWluZ0Z1bmN0aW9uKj4o
dGltaW5nRnVuY3Rpb24uZ2V0KCkpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICB9CiB9CkBAIC0yODYsMTIgKzI4Miw2IEBAIGJvb2wgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZTo6UHJvcGVydGllczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyCiAgICAg
ICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSgqc3RhdGljX2Nhc3Q8U3RlcHNUaW1pbmdG
dW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uLmdldCgpKSkpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgY2FzZSBU
aW1pbmdGdW5jdGlvbjo6U3ByaW5nRnVuY3Rpb246Ci0gICAgICAgICAgICAgICAgdGltaW5nRnVu
Y3Rpb24gPSBTcHJpbmdUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZSgqc3RhdGljX2Nhc3Q8U3ByaW5nVGltaW5nRnVuY3Rpb24qPih0
aW1pbmdGdW5jdGlvbi5nZXQoKSkpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIHByb3BlcnRpZXMudGltaW5nRnVuY3Rpb25zLnVuY2hlY2tlZEFwcGVuZCh0aW1p
bmdGdW5jdGlvbi5yZWxlYXNlKCkpOwpAQCAtNzY0LDI4ICs3NTQsNiBAQCBzdGF0aWMgdm9pZCBh
ZGRBbmltYXRpb25Ub0xheWVyKENBTGF5ZXIgKmxheWVyLCBSZW1vdGVMYXllclRyZWVIb3N0KiBs
YXllclRyZWVIbwogICAgICAgICBjYUFuaW1hdGlvbiA9IGtleWZyYW1lQW5pbWF0aW9uOwogICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpTcHJpbmc6
IHsKLSAgICAgICAgUmV0YWluUHRyPENBU3ByaW5nQW5pbWF0aW9uPiBzcHJpbmdBbmltYXRpb247
Ci0gICAgICAgIHNwcmluZ0FuaW1hdGlvbiA9IFtDQVNwcmluZ0FuaW1hdGlvbiBhbmltYXRpb25X
aXRoS2V5UGF0aDpwcm9wZXJ0aWVzLmtleVBhdGhdOwotICAgICAgICAKLSAgICAgICAgaWYgKHBy
b3BlcnRpZXMua2V5VmFsdWVzLnNpemUoKSA+IDEpIHsKLSAgICAgICAgICAgIFtzcHJpbmdBbmlt
YXRpb24gc2V0RnJvbVZhbHVlOmFuaW1hdGlvblZhbHVlRnJvbUtleWZyYW1lVmFsdWUocHJvcGVy
dGllcy5rZXlWYWx1ZXNbMF0pXTsKLSAgICAgICAgICAgIFtzcHJpbmdBbmltYXRpb24gc2V0VG9W
YWx1ZTphbmltYXRpb25WYWx1ZUZyb21LZXlmcmFtZVZhbHVlKHByb3BlcnRpZXMua2V5VmFsdWVz
WzFdKV07Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmIChwcm9wZXJ0aWVzLnRpbWlu
Z0Z1bmN0aW9ucy5zaXplKCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHRpbWluZ0Z1bmN0aW9uID0g
cHJvcGVydGllcy50aW1pbmdGdW5jdGlvbnNbMF07Ci0gICAgICAgICAgICBpZiAodGltaW5nRnVu
Y3Rpb24tPmlzU3ByaW5nVGltaW5nRnVuY3Rpb24oKSkgewotICAgICAgICAgICAgICAgIGF1dG8m
IGZ1bmN0aW9uID0gKnN0YXRpY19jYXN0PGNvbnN0IFNwcmluZ1RpbWluZ0Z1bmN0aW9uKj4odGlt
aW5nRnVuY3Rpb24uZ2V0KCkpOwotICAgICAgICAgICAgICAgIFtzcHJpbmdBbmltYXRpb24gc2V0
TWFzczpmdW5jdGlvbi5tYXNzKCldOwotICAgICAgICAgICAgICAgIFtzcHJpbmdBbmltYXRpb24g
c2V0U3RpZmZuZXNzOmZ1bmN0aW9uLnN0aWZmbmVzcygpXTsKLSAgICAgICAgICAgICAgICBbc3By
aW5nQW5pbWF0aW9uIHNldERhbXBpbmc6ZnVuY3Rpb24uZGFtcGluZygpXTsKLSAgICAgICAgICAg
ICAgICBbc3ByaW5nQW5pbWF0aW9uIHNldEluaXRpYWxWZWxvY2l0eTpmdW5jdGlvbi5pbml0aWFs
VmVsb2NpdHkoKV07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgY2FBbmltYXRp
b24gPSBzcHJpbmdBbmltYXRpb247Ci0gICAgICAgIGJyZWFrOwotICAgIH0KICAgICB9CiAgICAg
CiAgICAgW2NhQW5pbWF0aW9uIHNldEJlZ2luVGltZTpwcm9wZXJ0aWVzLmJlZ2luVGltZV07CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggY2U1ZjE4NGE2NTFhOWZhNzMyOWI0NGY0MWEwMDNiN2MwMWY3MWY0NS4uNGI5ZmQxMWQz
Njc5Y2QyZTAxYjdjZDI3MmRhMTVkZTIwMDhjNjNkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDE2LTA2LTA2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjAxNzA2LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDI3CisKKyAgICAgICAgVGhpcyBjaGFu
Z2UgYnJva2UgdGhlIFlvc2VtaXRlIGJ1aWxkIGFuZCBpdHMgTGF5b3V0VGVzdCBpcworICAgICAg
ICBmYWlsaW5nIG9uIE1hYyBhbmQgaU9TIHRlc3RlcnMgKFJlcXVlc3RlZCBieSByeWFuaGFkZGFk
IG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKwor
ICAgICAgICAiQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBzcHJpbmcgYmFzZWQgQ1NTIGFu
aW1hdGlvbnMiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTg0MDMKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjAxNzA2
CisKIDIwMTYtMDYtMDMgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZWdFeHAgdW5pY29kZSBwYXJzaW5nIHJlYWRzIGFuIGV4dHJhIGNoYXJhY3RlciBiZWZvcmUg
ZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMv
c3ByaW5nLWNvbXB1dGVkLXN0eWxlLmpzIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zY3JpcHQt
dGVzdHMvc3ByaW5nLWNvbXB1dGVkLXN0eWxlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1ZDg0N2UxYjA3MmUzYTgxMTI5ZWVjYzUyYzU0MjcwYjY0NGFlNmY2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3NwcmluZy1jb21wdXRlZC1zdHlsZS5qcworKysgL2Rldi9udWxsCkBA
IC0xLDQ4ICswLDAgQEAKLWRlc2NyaXB0aW9uKCJUZXN0IHRoZSBjb21wdXRlZCBzdHlsZSBvZiB0
aGUgc3ByaW5nKCkgZnVuY3Rpb24gb24gdGhlIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIHBy
b3BlcnR5LiIpOwotCi1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U3ByaW5nVGltaW5nRnVuY3Rpb25FbmFibGVkKHRydWUpOwotCi0vLyBUaGVzZSBoYXZl
IHRvIGJlIGdsb2JhbCBmb3IgdGhlIHRlc3QgaGVscGVycyB0byBzZWUgdGhlbS4KLXZhciBzdHls
ZXNoZWV0LCBzcHJpbmdTdHlsZTsKLXZhciBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzdHlsZSIpOwotZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQp
Owotc3R5bGVzaGVldCA9IHN0eWxlRWxlbWVudC5zaGVldDsKLQotZnVuY3Rpb24gdGVzdENvbXB1
dGVkU3ByaW5nKGRlc2NyaXB0aW9uLCBzcHJpbmcsIGV4cGVjdGVkVmFsdWUpCi17Ci0gICAgZGVi
dWcoIiIpOwotICAgIGRlYnVnKGRlc2NyaXB0aW9uICsgIiA6ICIgKyBzcHJpbmcpOwotCi0gICAg
c3R5bGVzaGVldC5pbnNlcnRSdWxlKCJib2R5IHsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246
ICIgKyBzcHJpbmcgKyAiOyB9IiwgMCk7Ci0KLSAgICBzcHJpbmdTdHlsZSA9IHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5Q1NTVmFsdWUoInRyYW5zaXRp
b24tdGltaW5nLWZ1bmN0aW9uIik7Ci0gICAgc2hvdWxkQmUoInNwcmluZ1N0eWxlLmNzc1RleHQi
LCAiJyIgKyBleHBlY3RlZFZhbHVlICsgIiciKTsKLSAgICAKLSAgICBzdHlsZXNoZWV0LmRlbGV0
ZVJ1bGUoMCk7Ci19Ci0KLWRlYnVnKCIiKQotZGVidWcoIlZhbGlkIHNwcmluZyB0ZXN0cyIpOwot
ZGVidWcoIiIpCi0KLXRlc3RDb21wdXRlZFNwcmluZygiQmFzaWMiLCAic3ByaW5nKDEgMTAwIDEw
IDApIiwgInNwcmluZygxIDEwMCAxMCAwKSIpOwotdGVzdENvbXB1dGVkU3ByaW5nKCJOZWdhdGl2
ZSBWZWxvY2l0eSIsICJzcHJpbmcoMSAxMDAgMTAgLTEwKSIsICJzcHJpbmcoMSAxMDAgMTAgLTEw
KSIpOwotdGVzdENvbXB1dGVkU3ByaW5nKCJQb3NpdGl2ZSBWZWxvY2l0eSIsICJzcHJpbmcoMSAx
MDAgMTAgMTApIiwgInNwcmluZygxIDEwMCAxMCAxMCkiKTsKLXRlc3RDb21wdXRlZFNwcmluZygi
WmVybyBEYW1waW5nIiwgInNwcmluZygxIDEwMCAwIDEwKSIsICJzcHJpbmcoMSAxMDAgMCAxMCki
KTsKLXRlc3RDb21wdXRlZFNwcmluZygiTWluaW11bSBWYWx1ZXMiLCAic3ByaW5nKDEgMSAwIC05
OTk5OTkpIiwgInNwcmluZygxIDEgMCAtOTk5OTk5KSIpOwotCi1kZWJ1ZygiIikKLWRlYnVnKCJJ
bnZhbGlkIHNwcmluZyB0ZXN0cyIpOwotZGVidWcoIiIpCi0KLXRlc3RDb21wdXRlZFNwcmluZygi
Tm8gcGFyYW1ldGVycyIsICJzcHJpbmcoKSIsICJlYXNlIik7Ci10ZXN0Q29tcHV0ZWRTcHJpbmco
Ik5vdCBlbm91Z2ggcGFyYW1ldGVycyIsICJzcHJpbmcoMSAxMDAgMTApIiwgImVhc2UiKTsKLXRl
c3RDb21wdXRlZFNwcmluZygiVG9vIG1hbnkgcGFyYW1ldGVycyIsICJzcHJpbmcoMSAxMDAgMTAg
MCAwKSIsICJlYXNlIik7Ci10ZXN0Q29tcHV0ZWRTcHJpbmcoIklsbGVnYWwgTWFzcyAoPCAwKSIs
ICJzcHJpbmcoLTEgMTAwIDEwIDApIiwgImVhc2UiKTsKLXRlc3RDb21wdXRlZFNwcmluZygiSWxs
ZWdhbCBNYXNzICg9PSAwKSIsICJzcHJpbmcoMCAxMDAgMTAgMCkiLCAiZWFzZSIpOwotdGVzdENv
bXB1dGVkU3ByaW5nKCJJbGxlZ2FsIFN0aWZmbmVzcyAoPCAwKSIsICJzcHJpbmcoMSAtMSAxMCAw
KSIsICJlYXNlIik7Ci10ZXN0Q29tcHV0ZWRTcHJpbmcoIklsbGVnYWwgU3RpZmZuZXNzICg9PSAw
KSIsICJzcHJpbmcoMSAwIDEwIDApIiwgImVhc2UiKTsKLXRlc3RDb21wdXRlZFNwcmluZygiSWxs
ZWdhbCBEYW1waW5nICg8IDApIiwgInNwcmluZygxIDEwMCAtMSAwKSIsICJlYXNlIik7Ci0KLXN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL3NjcmlwdC10ZXN0cy9zcHJpbmctcGFyc2luZy5qcyBiL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3NwcmluZy1wYXJzaW5nLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1MTE2ZWFhY2VkZmE2OWNhMTE3MDAxOTc5MzYzNmI0ZGY1NjQwYzE1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL3NwcmluZy1wYXJzaW5nLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
NjEgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRlc3QgdGhlIHBhcnNpbmcgb2YgdGhlIHNwcmluZygp
IGZ1bmN0aW9uIG9uIHRoZSB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiBwcm9wZXJ0eS4iKTsK
LQotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNwcmlu
Z1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCh0cnVlKTsKLQotLy8gVGhlc2UgaGF2ZSB0byBiZSBnbG9i
YWwgZm9yIHRoZSB0ZXN0IGhlbHBlcnMgdG8gc2VlIHRoZW0uCi12YXIgc3R5bGVzaGVldCwgY3Nz
UnVsZSwgZGVjbGFyYXRpb24sIHByb3BlcnR5VmFsdWUsIHN1YlJ1bGU7Ci12YXIgc3R5bGVFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKLWRvY3VtZW50LmhlYWQuYXBw
ZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTsKLXN0eWxlc2hlZXQgPSBzdHlsZUVsZW1lbnQuc2hlZXQ7
Ci0KLWZ1bmN0aW9uIHRlc3RTcHJpbmcoZGVzY3JpcHRpb24sIHNwcmluZywgZXhwZWN0ZWRWYWx1
ZSkKLXsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoZGVzY3JpcHRpb24gKyAiIDogIiArIHNw
cmluZyk7Ci0KLSAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoImJvZHkgeyB0cmFuc2l0aW9uLXRp
bWluZy1mdW5jdGlvbjogIiArIHNwcmluZyArICI7IH0iLCAwKTsKLSAgICBjc3NSdWxlID0gc3R5
bGVzaGVldC5jc3NSdWxlcy5pdGVtKDApOwotCi0gICAgc2hvdWxkQmUoImNzc1J1bGUudHlwZSIs
ICIxIik7Ci0KLSAgICBkZWNsYXJhdGlvbiA9IGNzc1J1bGUuc3R5bGU7Ci0gICAgaWYgKCFleHBl
Y3RlZFZhbHVlKSB7Ci0gICAgICAgIHNob3VsZEJlKCJkZWNsYXJhdGlvbi5sZW5ndGgiLCAiMCIp
OwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRlY2xhcmF0aW9uLmdldFByb3BlcnR5
VmFsdWUoJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJykiLCAiIik7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBzaG91bGRCZSgiZGVjbGFyYXRpb24ubGVuZ3RoIiwgIjEiKTsKLSAg
ICBzaG91bGRCZSgiZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNpdGlvbi10aW1p
bmctZnVuY3Rpb24nKSIsICInIiArIGV4cGVjdGVkVmFsdWUgKyAiJyIpOwotCi0gICAgcHJvcGVy
dHlWYWx1ZSA9IGRlY2xhcmF0aW9uLmdldFByb3BlcnR5Q1NTVmFsdWUoInRyYW5zaXRpb24tdGlt
aW5nLWZ1bmN0aW9uIik7Ci0gICAgc2hvdWxkQmUoInByb3BlcnR5VmFsdWUuY3NzVGV4dCIsICIn
IiArIGV4cGVjdGVkVmFsdWUgKyAiJyIpOwotCi0gICAgc3R5bGVzaGVldC5kZWxldGVSdWxlKDAp
OwotfQotCi1kZWJ1ZygiIikKLWRlYnVnKCJWYWxpZCBzcHJpbmcgdGVzdHMiKTsKLWRlYnVnKCIi
KQotCi10ZXN0U3ByaW5nKCJCYXNpYyIsICJzcHJpbmcoMSAxMDAgMTAgMCkiLCAic3ByaW5nKDEg
MTAwIDEwIDApIik7Ci10ZXN0U3ByaW5nKCJOZWdhdGl2ZSBWZWxvY2l0eSIsICJzcHJpbmcoMSAx
MDAgMTAgLTEwKSIsICJzcHJpbmcoMSAxMDAgMTAgLTEwKSIpOwotdGVzdFNwcmluZygiUG9zaXRp
dmUgVmVsb2NpdHkiLCAic3ByaW5nKDEgMTAwIDEwIDEwKSIsICJzcHJpbmcoMSAxMDAgMTAgMTAp
Iik7Ci10ZXN0U3ByaW5nKCJaZXJvIERhbXBpbmciLCAic3ByaW5nKDEgMTAwIDAgMTApIiwgInNw
cmluZygxIDEwMCAwIDEwKSIpOwotdGVzdFNwcmluZygiTWluaW11bSBWYWx1ZXMiLCAic3ByaW5n
KDEgMSAwIC05OTk5OTkpIiwgInNwcmluZygxIDEgMCAtOTk5OTk5KSIpOwotCi1kZWJ1ZygiIikK
LWRlYnVnKCJJbnZhbGlkIHNwcmluZyB0ZXN0cyIpOwotZGVidWcoIiIpCi0KLXRlc3RTcHJpbmco
Ik5vIHBhcmFtZXRlcnMiLCAic3ByaW5nKCkiLCBudWxsKTsKLXRlc3RTcHJpbmcoIk5vdCBlbm91
Z2ggcGFyYW1ldGVycyIsICJzcHJpbmcoMSAxMDAgMTApIiwgbnVsbCk7Ci10ZXN0U3ByaW5nKCJU
b28gbWFueSBwYXJhbWV0ZXJzIiwgInNwcmluZygxIDEwMCAxMCAwIDApIiwgbnVsbCk7Ci10ZXN0
U3ByaW5nKCJJbGxlZ2FsIE1hc3MgKDwgMCkiLCAic3ByaW5nKC0xIDEwMCAxMCAwKSIsIG51bGwp
OwotdGVzdFNwcmluZygiSWxsZWdhbCBNYXNzICg9PSAwKSIsICJzcHJpbmcoMCAxMDAgMTAgMCki
LCBudWxsKTsKLXRlc3RTcHJpbmcoIklsbGVnYWwgU3RpZmZuZXNzICg8IDApIiwgInNwcmluZygx
IC0xIDEwIDApIiwgbnVsbCk7Ci10ZXN0U3ByaW5nKCJJbGxlZ2FsIFN0aWZmbmVzcyAoPT0gMCki
LCAic3ByaW5nKDEgMCAxMCAwKSIsIG51bGwpOwotdGVzdFNwcmluZygiSWxsZWdhbCBEYW1waW5n
ICg8IDApIiwgInNwcmluZygxIDEwMCAtMSAwKSIsIG51bGwpOwotCi1zdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zcHJpbmctY29t
cHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zcHJpbmct
Y29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiZTgyYTA2M2QxNzdhYjBmOGRkYmNlZmQxNzQ0ZTE4MTNkNjM2MjdiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMv
c3ByaW5nLWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDU0
ICswLDAgQEAKLVRlc3QgdGhlIGNvbXB1dGVkIHN0eWxlIG9mIHRoZSBzcHJpbmcoKSBmdW5jdGlv
biBvbiB0aGUgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gcHJvcGVydHkuCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLVZhbGlkIHNwcmluZyB0ZXN0cwotCi0KLUJhc2ljIDog
c3ByaW5nKDEgMTAwIDEwIDApCi1QQVNTIHNwcmluZ1N0eWxlLmNzc1RleHQgaXMgJ3NwcmluZygx
IDEwMCAxMCAwKScKLQotTmVnYXRpdmUgVmVsb2NpdHkgOiBzcHJpbmcoMSAxMDAgMTAgLTEwKQot
UEFTUyBzcHJpbmdTdHlsZS5jc3NUZXh0IGlzICdzcHJpbmcoMSAxMDAgMTAgLTEwKScKLQotUG9z
aXRpdmUgVmVsb2NpdHkgOiBzcHJpbmcoMSAxMDAgMTAgMTApCi1QQVNTIHNwcmluZ1N0eWxlLmNz
c1RleHQgaXMgJ3NwcmluZygxIDEwMCAxMCAxMCknCi0KLVplcm8gRGFtcGluZyA6IHNwcmluZygx
IDEwMCAwIDEwKQotUEFTUyBzcHJpbmdTdHlsZS5jc3NUZXh0IGlzICdzcHJpbmcoMSAxMDAgMCAx
MCknCi0KLU1pbmltdW0gVmFsdWVzIDogc3ByaW5nKDEgMSAwIC05OTk5OTkpCi1QQVNTIHNwcmlu
Z1N0eWxlLmNzc1RleHQgaXMgJ3NwcmluZygxIDEgMCAtOTk5OTk5KScKLQotSW52YWxpZCBzcHJp
bmcgdGVzdHMKLQotCi1ObyBwYXJhbWV0ZXJzIDogc3ByaW5nKCkKLVBBU1Mgc3ByaW5nU3R5bGUu
Y3NzVGV4dCBpcyAnZWFzZScKLQotTm90IGVub3VnaCBwYXJhbWV0ZXJzIDogc3ByaW5nKDEgMTAw
IDEwKQotUEFTUyBzcHJpbmdTdHlsZS5jc3NUZXh0IGlzICdlYXNlJwotCi1Ub28gbWFueSBwYXJh
bWV0ZXJzIDogc3ByaW5nKDEgMTAwIDEwIDAgMCkKLVBBU1Mgc3ByaW5nU3R5bGUuY3NzVGV4dCBp
cyAnZWFzZScKLQotSWxsZWdhbCBNYXNzICg8IDApIDogc3ByaW5nKC0xIDEwMCAxMCAwKQotUEFT
UyBzcHJpbmdTdHlsZS5jc3NUZXh0IGlzICdlYXNlJwotCi1JbGxlZ2FsIE1hc3MgKD09IDApIDog
c3ByaW5nKDAgMTAwIDEwIDApCi1QQVNTIHNwcmluZ1N0eWxlLmNzc1RleHQgaXMgJ2Vhc2UnCi0K
LUlsbGVnYWwgU3RpZmZuZXNzICg8IDApIDogc3ByaW5nKDEgLTEgMTAgMCkKLVBBU1Mgc3ByaW5n
U3R5bGUuY3NzVGV4dCBpcyAnZWFzZScKLQotSWxsZWdhbCBTdGlmZm5lc3MgKD09IDApIDogc3By
aW5nKDEgMCAxMCAwKQotUEFTUyBzcHJpbmdTdHlsZS5jc3NUZXh0IGlzICdlYXNlJwotCi1JbGxl
Z2FsIERhbXBpbmcgKDwgMCkgOiBzcHJpbmcoMSAxMDAgLTEgMCkKLVBBU1Mgc3ByaW5nU3R5bGUu
Y3NzVGV4dCBpcyAnZWFzZScKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3NwcmluZy1j
b21wdXRlZC1zdHlsZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zcHJpbmctY29tcHV0
ZWQtc3R5bGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDYxNzMwOTVmMGUx
OTZjMGMyOWExYzZmMzkxM2MwZTg4OWIyY2NmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3NwcmluZy1jb21wdXRl
ZC1zdHlsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08IURPQ1RZUEUgSFRN
TD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ByaW5nLWNvbXB1dGVkLXN0eWxlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3ByaW5nLWZ1bmN0aW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3ByaW5nLWZ1bmN0aW9uLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzZmNTYxMmViMmM2Mzg0YjY4MDAxNjhh
ZTUwZjYzNjE2NjNkNGNlMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3NwcmluZy1mdW5jdGlvbi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRoaXMgdGVzdCBwZXJmb3JtcyBhbiBh
bmltYXRpb24gb2YgdGhlIGxlZnQgcHJvcGVydHkuIEl0IGFuaW1hdGVzIG92ZXIgMSBzZWNvbmQu
IEl0IHRha2VzIDMgc25hcHNob3RzIGFuZCBleHBlY3RzIGVhY2ggcmVzdWx0IHRvIGJlIHdpdGhp
biBhIHNwZWNpZmllZCByYW5nZS4KLVBBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3gxIiBl
bGVtZW50IGF0IDAuMjVzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDUxMgotUEFTUyAtICJsZWZ0
IiBwcm9wZXJ0eSBmb3IgImJveDEiIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiA1MzcKLVBBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3gxIiBlbGVtZW50IGF0IDAu
NzVzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDQ4NwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL3NwcmluZy1mdW5jdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9zcHJpbmctZnVuY3Rpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGVh
MmFmYzQ5Yjc5ZTdkNzljMDRlMjFjYWRhMzliNzM2ZjhmMzkwZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3Nwcmlu
Zy1mdW5jdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgPG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgotICA8dGl0bGU+
VGVzdCB0aW1pbmcgZnVuY3Rpb25zPC90aXRsZT4KLSAgPHNjcmlwdD4KLSAgICBpZiAod2luZG93
LmludGVybmFscykKLSAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNwcmluZ1RpbWluZ0Z1
bmN0aW9uRW5hYmxlZCh0cnVlKTsKLSAgPC9zY3JpcHQ+Ci0gIDxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyIgbWVkaWE9InNjcmVlbiI+Ci0gICAgLmJveCB7Ci0gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7
Ci0gICAgICBsZWZ0OiAxMDBweDsKLSAgICAgIHRvcDogMHB4OwotICAgICAgaGVpZ2h0OiA1cHg7
Ci0gICAgICB3aWR0aDogNXB4OwotICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKLSAgICAg
IGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7Ci0gICAgICBhbmltYXRpb24tbmFtZTogYW5pbTsKLSAg
ICB9Ci0gICAgQGtleWZyYW1lcyBhbmltIHsKLSAgICAgICAgZnJvbSB7IGxlZnQ6IDBweDsgfQot
ICAgICAgICB0byAgIHsgbGVmdDogNTAwcHg7IH0KLSAgICB9Ci0gICAgI2JveDEgewotICAgICAg
YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogc3ByaW5nKDEgMTAwIDEwIDApOwotICAgIH0KLSAg
ICAKLSAgPC9zdHlsZT4KLSAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC1o
ZWxwZXJzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3Njcmlw
dD4KLSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLQot
ICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWwotICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0
aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KLSAg
ICAgIFsiYW5pbSIsIDAuMjUsICJib3gxIiwgImxlZnQiLCA1MTIsIDVdLAotICAgICAgWyJhbmlt
IiwgMC41MCwgImJveDEiLCAibGVmdCIsIDUzNywgNV0sCi0gICAgICBbImFuaW0iLCAwLjc1LCAi
Ym94MSIsICJsZWZ0IiwgNDg3LCA1XSwKLSAgICBdOwotCi0gICAgcnVuQW5pbWF0aW9uVGVzdChl
eHBlY3RlZFZhbHVlcyk7Ci0KLSAgPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLVRoaXMgdGVz
dCBwZXJmb3JtcyBhbiBhbmltYXRpb24gb2YgdGhlIGxlZnQgcHJvcGVydHkuIEl0IGFuaW1hdGVz
IG92ZXIgMSBzZWNvbmQuCi1JdCB0YWtlcyAzIHNuYXBzaG90cyBhbmQgZXhwZWN0cyBlYWNoIHJl
c3VsdCB0byBiZSB3aXRoaW4gYSBzcGVjaWZpZWQgcmFuZ2UuCi08ZGl2IGNsYXNzPSJib3giIGlk
PSJib3gxIj48L2Rpdj4KLTxkaXYgaWQ9InJlc3VsdCI+Ci08L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3ByaW5nLXBhcnNpbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zcHJpbmctcGFyc2luZy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0Nzg4NmJhMWUxOGNiZGFhZGNi
N2ZmYThiZjQ3NmMxMDhlMzM4OGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zcHJpbmctcGFyc2luZy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi1UZXN0IHRoZSBwYXJzaW5nIG9m
IHRoZSBzcHJpbmcoKSBmdW5jdGlvbiBvbiB0aGUgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24g
cHJvcGVydHkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLVZhbGlkIHNwcmlu
ZyB0ZXN0cwotCi0KLUJhc2ljIDogc3ByaW5nKDEgMTAwIDEwIDApCi1QQVNTIGNzc1J1bGUudHlw
ZSBpcyAxCi1QQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAxCi1QQVNTIGRlY2xhcmF0aW9uLmdl
dFByb3BlcnR5VmFsdWUoJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJykgaXMgJ3NwcmluZygx
IDEwMCAxMCAwKScKLVBBU1MgcHJvcGVydHlWYWx1ZS5jc3NUZXh0IGlzICdzcHJpbmcoMSAxMDAg
MTAgMCknCi0KLU5lZ2F0aXZlIFZlbG9jaXR5IDogc3ByaW5nKDEgMTAwIDEwIC0xMCkKLVBBU1Mg
Y3NzUnVsZS50eXBlIGlzIDEKLVBBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKLVBBU1MgZGVj
bGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24nKSBp
cyAnc3ByaW5nKDEgMTAwIDEwIC0xMCknCi1QQVNTIHByb3BlcnR5VmFsdWUuY3NzVGV4dCBpcyAn
c3ByaW5nKDEgMTAwIDEwIC0xMCknCi0KLVBvc2l0aXZlIFZlbG9jaXR5IDogc3ByaW5nKDEgMTAw
IDEwIDEwKQotUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQotUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGgg
aXMgMQotUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCd0cmFuc2l0aW9uLXRpbWlu
Zy1mdW5jdGlvbicpIGlzICdzcHJpbmcoMSAxMDAgMTAgMTApJwotUEFTUyBwcm9wZXJ0eVZhbHVl
LmNzc1RleHQgaXMgJ3NwcmluZygxIDEwMCAxMCAxMCknCi0KLVplcm8gRGFtcGluZyA6IHNwcmlu
ZygxIDEwMCAwIDEwKQotUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQotUEFTUyBkZWNsYXJhdGlvbi5s
ZW5ndGggaXMgMQotUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCd0cmFuc2l0aW9u
LXRpbWluZy1mdW5jdGlvbicpIGlzICdzcHJpbmcoMSAxMDAgMCAxMCknCi1QQVNTIHByb3BlcnR5
VmFsdWUuY3NzVGV4dCBpcyAnc3ByaW5nKDEgMTAwIDAgMTApJwotCi1NaW5pbXVtIFZhbHVlcyA6
IHNwcmluZygxIDEgMCAtOTk5OTk5KQotUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQotUEFTUyBkZWNs
YXJhdGlvbi5sZW5ndGggaXMgMQotUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCd0
cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbicpIGlzICdzcHJpbmcoMSAxIDAgLTk5OTk5OSknCi1Q
QVNTIHByb3BlcnR5VmFsdWUuY3NzVGV4dCBpcyAnc3ByaW5nKDEgMSAwIC05OTk5OTkpJwotCi1J
bnZhbGlkIHNwcmluZyB0ZXN0cwotCi0KLU5vIHBhcmFtZXRlcnMgOiBzcHJpbmcoKQotUEFTUyBj
c3NSdWxlLnR5cGUgaXMgMQotUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAotUEFTUyBkZWNs
YXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCd0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbicpIGlz
ICIiCi0KLU5vdCBlbm91Z2ggcGFyYW1ldGVycyA6IHNwcmluZygxIDEwMCAxMCkKLVBBU1MgY3Nz
UnVsZS50eXBlIGlzIDEKLVBBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKLVBBU1MgZGVjbGFy
YXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24nKSBpcyAi
IgotCi1Ub28gbWFueSBwYXJhbWV0ZXJzIDogc3ByaW5nKDEgMTAwIDEwIDAgMCkKLVBBU1MgY3Nz
UnVsZS50eXBlIGlzIDEKLVBBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKLVBBU1MgZGVjbGFy
YXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24nKSBpcyAi
IgotCi1JbGxlZ2FsIE1hc3MgKDwgMCkgOiBzcHJpbmcoLTEgMTAwIDEwIDApCi1QQVNTIGNzc1J1
bGUudHlwZSBpcyAxCi1QQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCi1QQVNTIGRlY2xhcmF0
aW9uLmdldFByb3BlcnR5VmFsdWUoJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJykgaXMgIiIK
LQotSWxsZWdhbCBNYXNzICg9PSAwKSA6IHNwcmluZygwIDEwMCAxMCAwKQotUEFTUyBjc3NSdWxl
LnR5cGUgaXMgMQotUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAotUEFTUyBkZWNsYXJhdGlv
bi5nZXRQcm9wZXJ0eVZhbHVlKCd0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbicpIGlzICIiCi0K
LUlsbGVnYWwgU3RpZmZuZXNzICg8IDApIDogc3ByaW5nKDEgLTEgMTAgMCkKLVBBU1MgY3NzUnVs
ZS50eXBlIGlzIDEKLVBBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKLVBBU1MgZGVjbGFyYXRp
b24uZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24nKSBpcyAiIgot
Ci1JbGxlZ2FsIFN0aWZmbmVzcyAoPT0gMCkgOiBzcHJpbmcoMSAwIDEwIDApCi1QQVNTIGNzc1J1
bGUudHlwZSBpcyAxCi1QQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCi1QQVNTIGRlY2xhcmF0
aW9uLmdldFByb3BlcnR5VmFsdWUoJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJykgaXMgIiIK
LQotSWxsZWdhbCBEYW1waW5nICg8IDApIDogc3ByaW5nKDEgMTAwIC0xIDApCi1QQVNTIGNzc1J1
bGUudHlwZSBpcyAxCi1QQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAwCi1QQVNTIGRlY2xhcmF0
aW9uLmdldFByb3BlcnR5VmFsdWUoJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJykgaXMgIiIK
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3NwcmluZy1wYXJzaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL3NwcmluZy1wYXJzaW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDk4ODdjNTJiMzg4OGUzMjMyNmMxOTQxYzFjODk4ZWYxYmZjMGQ0NjIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9zcHJpbmctcGFyc2luZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCww
IEBACi08IURPQ1RZUEUgSFRNTD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3ByaW5nLXBhcnNpbmcuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>