<?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>169169</bug_id>
          
          <creation_ts>2017-03-04 09:11:46 -0800</creation_ts>
          <short_desc>REGRESSION(r213379): broke GTK+ and Windows builds (Requested by mcatanzaro on #webkit).</short_desc>
          <delta_ts>2017-03-06 03:19:34 -0800</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>169082</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>hyatt</cc>
    
    <cc>m.kurz+webkitbugs</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1283430</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-04 09:11:46 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/213379 broke the build:
broke GTK+ and Windows builds (Requested by mcatanzaro 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>1283432</commentid>
    <comment_count>1</comment_count>
      <attachid>303395</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-04 09:12:13 -0800</bug_when>
    <thetext>Created attachment 303395
ROLLOUT of r213379

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>1283433</commentid>
    <comment_count>2</comment_count>
      <attachid>303395</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-04 09:15:44 -0800</bug_when>
    <thetext>Comment on attachment 303395
ROLLOUT of r213379

Clearing flags on attachment: 303395

Committed r213423: &lt;http://trac.webkit.org/changeset/213423&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1283434</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-04 09:15:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303395</attachid>
            <date>2017-03-04 09:12:13 -0800</date>
            <delta_ts>2017-03-04 09:15:44 -0800</delta_ts>
            <desc>ROLLOUT of r213379</desc>
            <filename>bug-169169-20170304121212.patch</filename>
            <type>text/plain</type>
            <size>118572</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBhYWM4MDAxM2I2NmE2
ZGY3MDhjYjg3ODg0ZDkwMjRhZTU4NDFjOS4uYmJjMmJmYmJhZmIyYjUxOWVmZjBkMmZjOWEwMWNi
NmJhYmVkMjY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTAzLTA0ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjEzMzc5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY5MTY5CisKKyAgICAgICAgYnJva2UgR1RLKyBhbmQgV2luZG93cyBi
dWlsZHMgKFJlcXVlc3RlZCBieSBtY2F0YW56YXJvIG9uCisgICAgICAgICN3ZWJraXQpLgorCisg
ICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiRW5hYmxlIGZpZWxkc2V0cyB0
byBiZSBmbGV4Ym94ZXMsIGdyaWRzIGFuZCBtdWx0aWNvbHVtbi4iCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkwODIKKyAgICAgICAgaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjEzMzc5CisKIDIwMTctMDMtMDMgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJSVENdIFVwZGF0ZSBsaWJ3ZWJy
dGMgc291cmNlIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGMzNWJhNTE0NDhiYjMzMmQx
YTM0MzdiODY0YmE5NmZiNDdiYzY1Yi4uYjQ0YjIwNDY4YWM5OTdiOTU1ZTlmMzhlNjdiNzg5NTk0
ZjJmNjQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI0MjEsNiArMjQyMSw3IEBAIHNldChX
ZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHAKICAg
ICByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuY3BwCisgICAgcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcAogICAgIHJlbmRl
cmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyRmxl
eGlibGVCb3guY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTk4
YmY4MGFlNGZjNmUyMTM0OTUxNGM2YWFhYTczMDQwZDM2OTI0OC4uZWQzZjRhN2IzYzA4ODA3YjMz
NjA2YmU4NmI3YjAwNzBlYTM3NjQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDUyNCw2ICs0NTI0LDggQEAKIAkJQThERjRB
RUYwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlU2VjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThERjRBRTUwOTgwQzQyQzAwNTI5ODFC
IC8qIFJlbmRlclRhYmxlU2VjdGlvbi5oICovOyB9OwogCQlBOERGNEFGMDA5ODBDNDJDMDA1Mjk4
MUIgLyogUmVuZGVyVGFibGVSb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThERjRBRTYwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlUm93
LmNwcCAqLzsgfTsKIAkJQThERjRBRjEwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlQ29s
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOERGNEFF
NzA5ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGVDb2wuaCAqLzsgfTsKKwkJQThFQTczQzMw
QTE5MDBFMzAwQThFRjVGIC8qIFJlbmRlckZpZWxkc2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RUE3M0FGMEExOTAwRTMwMEE4RUY1RiAvKiBS
ZW5kZXJGaWVsZHNldC5jcHAgKi87IH07CisJCUE4RUE3M0M0MEExOTAwRTMwMEE4RUY1RiAvKiBS
ZW5kZXJGaWVsZHNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThFQTczQjAwQTE5MDBFMzAwQThFRjVGIC8qIFJlbmRlckZpZWxkc2V0LmggKi87IH07
CiAJCUE4RUE3OUYxMEExOTE2REYwMEE4RUY1RiAvKiBIVE1MT0xpc3RFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBNzlFNTBBMTkxNkRG
MDBBOEVGNUYgLyogSFRNTE9MaXN0RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4RUE3OUYyMEExOTE2REYwMEE4RUY1RiAvKiBIVE1M
VUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEVBNzlFNjBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTFVMaXN0RWxlbWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4RUE3OUYzMEEx
OTE2REYwMEE4RUY1RiAvKiBIVE1MVUxpc3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RUE3OUU3MEExOTE2REYwMEE4RUY1RiAvKiBI
VE1MVUxpc3RFbGVtZW50LmNwcCAqLzsgfTsKQEAgLTEyNDM4LDYgKzEyNDQwLDggQEAKIAkJQThE
RjRBRTUwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlU2VjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGFibGVTZWN0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4REY0QUU2MDk4MEM0MkMwMDUyOTgxQiAvKiBSZW5kZXJUYWJs
ZVJvdy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVGFi
bGVSb3cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOERGNEFFNzA5ODBDNDJD
MDA1Mjk4MUIgLyogUmVuZGVyVGFibGVDb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlclRhYmxlQ29sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4
RUE3M0FGMEExOTAwRTMwMEE4RUY1RiAvKiBSZW5kZXJGaWVsZHNldC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRmllbGRzZXQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBOEVBNzNCMDBBMTkwMEUzMDBBOEVGNUYgLyogUmVuZGVyRmll
bGRzZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckZpZWxkc2V0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RUE3OUU1MEExOTE2REYwMEE4RUY1
RiAvKiBIVE1MT0xpc3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIVE1MT0xpc3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RUE3
OUU2MEExOTE2REYwMEE4RUY1RiAvKiBIVE1MVUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MVUxpc3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4RUE3OUU3MEExOTE2REYwMEE4RUY1RiAvKiBIVE1MVUxpc3RFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MVUxpc3RFbGVt
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0MzE5LDYgKzI0MzIzLDgg
QEAKIAkJCQlFNDNBMDIzQTE3RUIzNzBBMDA0Q0REMjUgLyogUmVuZGVyRWxlbWVudC5oICovLAog
CQkJCTBGNUI3QTUyMTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAg
Ki8sCiAJCQkJMEY1QjdBNTMxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0
LmggKi8sCisJCQkJQThFQTczQUYwQTE5MDBFMzAwQThFRjVGIC8qIFJlbmRlckZpZWxkc2V0LmNw
cCAqLywKKwkJCQlBOEVBNzNCMDBBMTkwMEUzMDBBOEVGNUYgLyogUmVuZGVyRmllbGRzZXQuaCAq
LywKIAkJCQkwNjZDNzcyRTBBQjYwM0ZEMDAyMzhDQzQgLyogUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wuY3BwICovLAogCQkJCTA2NkM3NzJGMEFCNjAzRkQwMDIzOENDNCAvKiBSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbC5oICovLAogCQkJCTUzQzgyOThCMTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJG
bGV4aWJsZUJveC5jcHAgKi8sCkBAIC0yNzkyMyw2ICsyNzkyOSw3IEBACiAJCQkJOUIzMkNEQTkx
M0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUU0M0EwMjNCMTdFQjM3MEEwMDRDREQyNSAvKiBSZW5kZXJFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjVCN0E1NTEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3Qu
aCBpbiBIZWFkZXJzICovLAorCQkJCUE4RUE3M0M0MEExOTAwRTMwMEE4RUY1RiAvKiBSZW5kZXJG
aWVsZHNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDY2Qzc3MzEwQUI2MDNGRDAwMjM4Q0M0IC8q
IFJlbmRlckZpbGVVcGxvYWRDb250cm9sLmggaW4gSGVhZGVycyAqLywKIAkJCQk1M0M4Mjk4RTEz
RDhEOTI3MDBERTJERUIgLyogUmVuZGVyRmxleGlibGVCb3guaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUwOENDQTRGMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggaW4gSGVhZGVy
cyAqLywKQEAgLTMxNjg4LDYgKzMxNjk1LDcgQEAKIAkJCQk5QjMyQ0RBQTEzREY3RkE5MDBGMzRE
MTMgLyogUmVuZGVyZWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDNBMDIzRDE3
RUIzNzEzMDA0Q0REMjUgLyogUmVuZGVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjVCN0E1NDEwRjY1RDdBMDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQThFQTczQzMwQTE5MDBFMzAwQThFRjVGIC8qIFJlbmRlckZpZWxkc2V0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA2NkM3NzMwMEFCNjAzRkQwMDIzOENDNCAvKiBSZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1M0M4Mjk4RDEzRDhE
OTI3MDBERTJERUIgLyogUmVuZGVyRmxleGlibGVCb3guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTA4Q0NBNTAxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCA4YzZhZjFiY2I4YWNjOTA1MDE3ODQ1MmM1
NDA2NDc2MTE4OTIyMTZmLi45ZWEwODcyODQxZjg5MjExMGVmZmZkNDc4MmM1YTAxZTQ1MjdkNWJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQnV0dG9u
LmgiCisjaW5jbHVkZSAiUmVuZGVyRmllbGRzZXQuaCIKICNpbmNsdWRlICJSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlckhUTUxDYW52YXMuaCIKICNpbmNsdWRlICJS
ZW5kZXJJbWFnZS5oIgpAQCAtMTA4MCw3ICsxMDgxLDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCog
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGl0bGVVSUVsZW1lbnQoKSBjb25zdAogICAgIAog
ICAgIC8vIGlmIGlzRmllbGRzZXQgaXMgdHJ1ZSwgdGhlIHJlbmRlcmVyIGlzIGd1YXJhbnRlZWQg
dG8gYmUgYSBSZW5kZXJGaWVsZHNldAogICAgIGlmIChpc0ZpZWxkc2V0KCkpCi0gICAgICAgIHJl
dHVybiBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKGRvd25jYXN0PFJlbmRlckJsb2NrPigq
bV9yZW5kZXJlcikuZmluZEZpZWxkc2V0TGVnZW5kKFJlbmRlckJsb2NrOjpGaWVsZHNldEluY2x1
ZGVGbG9hdGluZ09yT3V0T2ZGbG93KSk7CisgICAgICAgIHJldHVybiBheE9iamVjdENhY2hlKCkt
PmdldE9yQ3JlYXRlKGRvd25jYXN0PFJlbmRlckZpZWxkc2V0PigqbV9yZW5kZXJlcikuZmluZExl
Z2VuZChSZW5kZXJGaWVsZHNldDo6SW5jbHVkZUZsb2F0aW5nT3JPdXRPZkZsb3cpKTsKICAgICAK
ICAgICBpZiAoaXNGaWd1cmUoKSkKICAgICAgICAgcmV0dXJuIGNhcHRpb25Gb3JGaWd1cmUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vz
c2libGVXcmFwcGVyQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcAppbmRleCAxYzZhNzA0YWE5YzA1YzJmNTEzYTdl
Njk2ZGM2YmNiYTFhYzBhNmE5Li5lYjczNTY1NmE2NGIxMmY5MzhmNmE1MzI0ZDNhODIxZmYwNmZm
NWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRB
Y2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCkBAIC00Niw3ICs0Niw3IEBACiAj
aW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNp
bmNsdWRlICJSZW5kZXJBbmNlc3Rvckl0ZXJhdG9yLmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2su
aCIKKyNpbmNsdWRlICJSZW5kZXJGaWVsZHNldC5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMTg2
LDggKzE4Niw3IEBAIHN0YXRpYyB2b2lkIHNldEF0a1JlbGF0aW9uU2V0RnJvbUNvcmVPYmplY3Qo
QWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQXRrCiAgICAgICAgIGlmIChBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBsYWJlbCA9IGNvcmVPYmplY3QtPnRpdGxlVUlFbGVtZW50KCkpCiAgICAg
ICAgICAgICBhdGtfcmVsYXRpb25fc2V0X2FkZF9yZWxhdGlvbl9ieV90eXBlKHJlbGF0aW9uU2V0
LCBBVEtfUkVMQVRJT05fTEFCRUxMRURfQlksIGxhYmVsLT53cmFwcGVyKCkpOwogICAgIH0gZWxz
ZSBpZiAoY29yZU9iamVjdC0+cm9sZVZhbHVlKCkgPT0gTGVnZW5kUm9sZSkgewotICAgICAgICBS
ZW5kZXJCbG9jayogcmVuZGVyRmllbGRzZXQgPSAqY29yZU9iamVjdC0+cmVuZGVyZXIoKS0+cGFy
ZW50KCk7Ci0gICAgICAgIGlmIChyZW5kZXJGaWVsZHNldCAmJiByZW5kZXJGaWVsZHNldC0+aXNG
aWVsZHNldCgpKSB7CisgICAgICAgIGlmIChSZW5kZXJGaWVsZHNldCogcmVuZGVyRmllbGRzZXQg
PSBhbmNlc3RvcnNPZlR5cGU8UmVuZGVyRmllbGRzZXQ+KCpjb3JlT2JqZWN0LT5yZW5kZXJlcigp
KS5maXJzdCgpKSB7CiAgICAgICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaWVsZHNldCA9
IGNvcmVPYmplY3QtPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUocmVuZGVyRmllbGRzZXQp
OwogICAgICAgICAgICAgYXRrX3JlbGF0aW9uX3NldF9hZGRfcmVsYXRpb25fYnlfdHlwZShyZWxh
dGlvblNldCwgQVRLX1JFTEFUSU9OX0xBQkVMX0ZPUiwgZmllbGRzZXQtPndyYXBwZXIoKSk7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCmlu
ZGV4IGNjYjcwZDEzMDQ1NWI0MzdjYzFlMzQ1YWQyMzE3N2VhOGZmMGEzYmUuLmE3OWFkMTViYThj
YjhiMWRiYzBiZmFjNTQ0YzgxYTk1MzU4ZjNhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRmllbGRTZXRFbGVtZW50LmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZVJh
cmVEYXRhLmgiCi0jaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlckZp
ZWxkc2V0LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0xNTQsNyArMTU0LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MRmllbGRT
ZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogCiBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gSFRNTEZpZWxkU2V0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0
eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7Ci0gICAgcmV0dXJuIFJl
bmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGTW92ZShzdHlsZSksIFJlbmRlckVsZW1l
bnQ6Ok9ubHlDcmVhdGVCbG9ja0FuZEZsZXhib3hSZW5kZXJlcnMpOworICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJGaWVsZHNldD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAog
SFRNTExlZ2VuZEVsZW1lbnQqIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmxlZ2VuZCgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCmluZGV4IGE2NDRmOTI4ZjZh
NzM3MTY0NzU1NTYxNTAzZWUyNTk5OGUwZTY5YzAuLjQ0MWEyMThiNDQ4NmRiMDhhN2RiYTcyNDBm
YTdlNGYyMWJmY2E4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxk
U2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5oCkBAIC0zMCw2ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRm9ybUFz
c29jaWF0ZWRFbGVtZW50OwogY2xhc3MgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb247CitjbGFz
cyBSZW5kZXJGaWVsZFNldDsKIAogY2xhc3MgSFRNTEZpZWxkU2V0RWxlbWVudCBmaW5hbCA6IHB1
YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IHsKIHB1YmxpYzoKQEAgLTQ2LDYgKzQ3LDggQEAg
cHVibGljOgogICAgIHZvaWQgYWRkSW52YWxpZERlc2NlbmRhbnQoY29uc3QgSFRNTEZvcm1Db250
cm9sRWxlbWVudCYpOwogICAgIHZvaWQgcmVtb3ZlSW52YWxpZERlc2NlbmRhbnQoY29uc3QgSFRN
TEZvcm1Db250cm9sRWxlbWVudCYpOwogCisgICAgUmVuZGVyRmllbGRTZXQqIHJlbmRlcmVyKCkg
Y29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFRNTEZpZWxkU2V0RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKICAgICB+SFRNTEZpZWxkU2V0
RWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRl
cmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuY3BwCmlu
ZGV4IDRmYWI1OTYxYzZmMjkyMTRhMDI2MjkzNGFjYzU2ZWYzNDFmMTQyODQuLmIxMWJjY2NlM2Jk
ZGE1NjIxZjlkYWM3ZWNiNDBlMTAyNWEyZjczZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvT3JkZXJJdGVyYXRvci5jcHAKQEAgLTc3LDIwICs3NywxNCBAQCB2b2lkIE9yZGVySXRlcmF0
b3I6OnJlc2V0KCkKICAgICBtX2lzUmVzZXQgPSB0cnVlOwogfQogCi1ib29sIE9yZGVySXRlcmF0
b3I6OnNob3VsZFNraXBDaGlsZChjb25zdCBSZW5kZXJPYmplY3QmIGNoaWxkKSBjb25zdAotewot
ICAgIHJldHVybiBjaGlsZC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSB8fCBjaGlsZC5pc0V4Y2x1
ZGVkRnJvbU5vcm1hbExheW91dCgpOwotfQotCiBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yOjp+T3Jk
ZXJJdGVyYXRvclBvcHVsYXRvcigpCiB7CiAgICAgbV9pdGVyYXRvci5yZXNldCgpOwogfQogCi1i
b29sIE9yZGVySXRlcmF0b3JQb3B1bGF0b3I6OmNvbGxlY3RDaGlsZChjb25zdCBSZW5kZXJCb3gm
IGNoaWxkKQordm9pZCBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yOjpjb2xsZWN0Q2hpbGQoY29uc3Qg
UmVuZGVyQm94JiBjaGlsZCkKIHsKICAgICBtX2l0ZXJhdG9yLm1fb3JkZXJWYWx1ZXMuaW5zZXJ0
KGNoaWxkLnN0eWxlKCkub3JkZXIoKSk7Ci0gICAgcmV0dXJuICFtX2l0ZXJhdG9yLnNob3VsZFNr
aXBDaGlsZChjaGlsZCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL09yZGVySXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJh
dG9yLmgKaW5kZXggMzAwNWMwNWU4ZTQ0OWNhNjViZTY5YThiMjQ0Y2U3OGNiYjY4MDgwNS4uMTAx
YzYxOGNmODFlMjVlMjQ4YTI3N2I5ZTNhMzBhMmI0ZmIwZTIzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5oCkBAIC0zNyw3ICszNyw2IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFJlbmRlckJveDsKLWNsYXNzIFJlbmRlck9iamVjdDsKICAgICAKIGNs
YXNzIE9yZGVySXRlcmF0b3IgewogcHVibGljOgpAQCAtNDksOCArNDgsNiBAQCBwdWJsaWM6CiAg
ICAgUmVuZGVyQm94KiBmaXJzdCgpOwogICAgIFJlbmRlckJveCogbmV4dCgpOwogCi0gICAgYm9v
bCBzaG91bGRTa2lwQ2hpbGQoY29uc3QgUmVuZGVyT2JqZWN0JikgY29uc3Q7Ci0KIHByaXZhdGU6
CiAgICAgdm9pZCByZXNldCgpOwogCkBAIC03Miw4ICs2OSw3IEBAIHB1YmxpYzoKICAgICB9CiAg
ICAgfk9yZGVySXRlcmF0b3JQb3B1bGF0b3IoKTsKIAotICAgIC8vIFRoZSByZXR1cm4gdmFsdWUg
aW5kaWNhdGVzIHRoYXQgdGhlIGNoaWxkIHNob3VsZCBiZSBza2lwcGVkIHdoZW4gaXRlcmF0aW5n
LgotICAgIGJvb2wgY29sbGVjdENoaWxkKGNvbnN0IFJlbmRlckJveCYpOworICAgIHZvaWQgY29s
bGVjdENoaWxkKGNvbnN0IFJlbmRlckJveCYpOwogCiBwcml2YXRlOgogICAgIE9yZGVySXRlcmF0
b3ImIG1faXRlcmF0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApp
bmRleCA0MDljMjI4ODVjMzNjZDA0MmNlMjViMmY0OWUyZTMyOThiYzBhNmYwLi42NjYxY2ZlNzFk
ZjAwNmQyNDcyNTMyYjczNDZjY2EzMTBlZmFiM2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKQEAgLTI0NSwxMyArMjQ1LDE1IEBAIHN0cnVjdCBSZW5kZXJCbG9j
a1JhcmVEYXRhIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZW5kZXJCbG9ja1JhcmVEYXRh
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgUmVuZGVyQmxvY2tSYXJl
RGF0YSgpCisgICAgICAgIDogbV9wYWdpbmF0aW9uU3RydXQoMCkKKyAgICAgICAgLCBtX3BhZ2VM
b2dpY2FsT2Zmc2V0KDApCisgICAgICAgICwgbV9mbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKHN0
ZDo6bnVsbG9wdCkKICAgICB7CiAgICAgfQogCiAgICAgTGF5b3V0VW5pdCBtX3BhZ2luYXRpb25T
dHJ1dDsKICAgICBMYXlvdXRVbml0IG1fcGFnZUxvZ2ljYWxPZmZzZXQ7Ci0gICAgTGF5b3V0VW5p
dCBtX2ludHJpbnNpY0JvcmRlckZvckZpZWxkc2V0OwotICAgIAorCiAgICAgc3RkOjpvcHRpb25h
bDxSZW5kZXJGbG93VGhyZWFkKj4gbV9mbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrOwogfTsKIApA
QCAtMTYwMyw5ICsxNjA1LDYgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRDaGlsZHJlbihQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKIAogYm9vbCBSZW5k
ZXJCbG9jazo6cGFpbnRDaGlsZChSZW5kZXJCb3gmIGNoaWxkLCBQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBQYWludEluZm8mIHBhaW50SW5mb0Zv
ckNoaWxkLCBib29sIHVzZVByaW50UmVjdCwgUGFpbnRCbG9ja1R5cGUgcGFpbnRUeXBlKQogewot
ICAgIGlmIChjaGlsZC5pc0V4Y2x1ZGVkQW5kUGxhY2VkSW5Cb3JkZXIoKSkKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0KICAgICAvLyBDaGVjayBmb3IgcGFnZS1icmVhay1iZWZvcmU6IGFsd2F5cywg
YW5kIGlmIGl0J3Mgc2V0LCBicmVhayBhbmQgYmFpbC4KICAgICBib29sIGNoZWNrQmVmb3JlQWx3
YXlzID0gIWNoaWxkcmVuSW5saW5lKCkgJiYgKHVzZVByaW50UmVjdCAmJiBhbHdheXNQYWdlQnJl
YWsoY2hpbGQuc3R5bGUoKS5icmVha0JlZm9yZSgpKSk7CiAgICAgTGF5b3V0VW5pdCBhYnNvbHV0
ZUNoaWxkWSA9IHBhaW50T2Zmc2V0LnkoKSArIGNoaWxkLnkoKTsKQEAgLTE2OTcsMTAgKzE2OTYs
NiBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8g
UGFpbnQgbGVnZW5kcyBqdXN0IGFib3ZlIHRoZSBib3JkZXIgYmVmb3JlIHdlIHNjcm9sbCBvciBj
bGlwLgotICAgIGlmIChwYWludFBoYXNlID09IFBhaW50UGhhc2VCbG9ja0JhY2tncm91bmQgfHwg
cGFpbnRQaGFzZSA9PSBQYWludFBoYXNlQ2hpbGRCbG9ja0JhY2tncm91bmQgfHwgcGFpbnRQaGFz
ZSA9PSBQYWludFBoYXNlU2VsZWN0aW9uKQotICAgICAgICBwYWludEV4Y2x1ZGVkQ2hpbGRyZW5J
bkJvcmRlcihwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKLSAgICAKICAgICBpZiAocGFpbnRQaGFz
ZSA9PSBQYWludFBoYXNlTWFzayAmJiBzdHlsZSgpLnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFKSB7
CiAgICAgICAgIHBhaW50TWFzayhwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMjc3MiwyMCArMjc2Nyw5IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVCbG9j
a1ByZWZlcnJlZExvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoCiAgICAg
UmVuZGVyT2JqZWN0KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsKICAgICBSZW5kZXJCbG9jayogY29u
dGFpbmluZ0Jsb2NrID0gdGhpcy0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgTGF5b3V0VW5pdCBm
bG9hdExlZnRXaWR0aCA9IDAsIGZsb2F0UmlnaHRXaWR0aCA9IDA7Ci0gICAgCi0gICAgTGF5b3V0
VW5pdCBjaGlsZE1pbldpZHRoOwotICAgIExheW91dFVuaXQgY2hpbGRNYXhXaWR0aDsKLSAgICBi
b29sIGhhZEV4Y2x1ZGVkQ2hpbGRyZW4gPSBjb21wdXRlUHJlZmVycmVkV2lkdGhzRm9yRXhjbHVk
ZWRDaGlsZHJlbihjaGlsZE1pbldpZHRoLCBjaGlsZE1heFdpZHRoKTsKLSAgICBpZiAoaGFkRXhj
bHVkZWRDaGlsZHJlbikgewotICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSBzdGQ6Om1heChjaGls
ZE1pbldpZHRoLCBtaW5Mb2dpY2FsV2lkdGgpOwotICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSBz
dGQ6Om1heChjaGlsZE1heFdpZHRoLCBtYXhMb2dpY2FsV2lkdGgpOwotICAgIH0KLQogICAgIHdo
aWxlIChjaGlsZCkgewotICAgICAgICAvLyBQb3NpdGlvbmVkIGNoaWxkcmVuIGRvbid0IGFmZmVj
dCB0aGUgbWluL21heCB3aWR0aC4gTGVnZW5kcyBpbiBmaWVsZHNldHMgYXJlIHNraXBwZWQgaGVy
ZQotICAgICAgICAvLyBzaW5jZSB0aGV5IGNvbXB1dGUgb3V0c2lkZSBvZiBhbnkgb25lIGxheW91
dCBzeXN0ZW0uIE90aGVyIGNoaWxkcmVuIGV4Y2x1ZGVkIGZyb20KLSAgICAgICAgLy8gbm9ybWFs
IGxheW91dCBhcmUgb25seSB1c2VkIHdpdGggYmxvY2sgZmxvd3MsIHNvIGl0J3Mgb2sgdG8gY2Fs
Y3VsYXRlIHRoZW0gaGVyZS4KLSAgICAgICAgaWYgKGNoaWxkLT5pc091dE9mRmxvd1Bvc2l0aW9u
ZWQoKSB8fCBjaGlsZC0+aXNFeGNsdWRlZEFuZFBsYWNlZEluQm9yZGVyKCkpIHsKKyAgICAgICAg
Ly8gUG9zaXRpb25lZCBjaGlsZHJlbiBkb24ndCBhZmZlY3QgdGhlIG1pbi9tYXggd2lkdGgKKyAg
ICAgICAgaWYgKGNoaWxkLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewogICAgICAgICAgICAg
Y2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CkBAIC0zNzg2LDggKzM3NzAsNyBAQCBjb25zdCBjaGFyKiBSZW5kZXJCbG9jazo6cmVu
ZGVyTmFtZSgpIGNvbnN0CiB7CiAgICAgaWYgKGlzQm9keSgpKQogICAgICAgICByZXR1cm4gIlJl
bmRlckJvZHkiOyAvLyBGSVhNRTogVGVtcG9yYXJ5IGhhY2sgdW50aWwgd2Uga25vdyB0aGF0IHRo
ZSByZWdyZXNzaW9uIHRlc3RzIHBhc3MuCi0gICAgaWYgKGlzRmllbGRzZXQoKSkKLSAgICAgICAg
cmV0dXJuICJSZW5kZXJGaWVsZFNldCI7IC8vIEZJWE1FOiBSZW1vdmUgZXZlbnR1YWxseSwgYnV0
IGRvbmUgdG8ga2VlcCB0ZXN0cyBmcm9tIGJyZWFraW5nLgorCiAgICAgaWYgKGlzRmxvYXRpbmco
KSkKICAgICAgICAgcmV0dXJuICJSZW5kZXJCbG9jayAoZmxvYXRpbmcpIjsKICAgICBpZiAoaXNP
dXRPZkZsb3dQb3NpdGlvbmVkKCkpCkBAIC0zOTE5LDI2NyArMzkwMiw0IEBAIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gUmVuZGVyQmxvY2s6OmF2YWlsYWJsZUxvZ2ljYWxIZWlnaHRGb3JQZXJj
ZW50YWdlQ29tcHV0CiAgICAgCiAgICAgcmV0dXJuIGF2YWlsYWJsZUhlaWdodDsKIH0KLSAgICAK
LXZvaWQgUmVuZGVyQmxvY2s6OmxheW91dEV4Y2x1ZGVkQ2hpbGRyZW4oYm9vbCByZWxheW91dENo
aWxkcmVuKQotewotICAgIGlmICghaXNGaWVsZHNldCgpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBzZXRJbnRyaW5zaWNCb3JkZXJGb3JGaWVsZHNldCgwKTsKLQotICAgIFJlbmRlckJveCogYm94
ID0gZmluZEZpZWxkc2V0TGVnZW5kKCk7Ci0gICAgaWYgKCFib3gpCi0gICAgICAgIHJldHVybjsK
LSAgICAKLSAgICBib3gtPnNldElzRXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KHRydWUpOwotICAg
IGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJCb3g+KCp0aGlzKSkgewot
ICAgICAgICBpZiAoJmNoaWxkID09IGJveCB8fCAhY2hpbGQuaXNMZWdlbmQoKSkKLSAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICBjaGlsZC5zZXRJc0V4Y2x1ZGVkRnJvbU5vcm1hbExheW91
dChmYWxzZSk7Ci0gICAgfQotCi0gICAgUmVuZGVyQm94JiBsZWdlbmQgPSAqYm94OwotICAgIGlm
IChyZWxheW91dENoaWxkcmVuKQotICAgICAgICBsZWdlbmQuc2V0Q2hpbGROZWVkc0xheW91dChN
YXJrT25seVRoaXMpOwotICAgIGxlZ2VuZC5sYXlvdXRJZk5lZWRlZCgpOwotICAgIAotICAgIExh
eW91dFVuaXQgbG9naWNhbExlZnQ7Ci0gICAgaWYgKHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVj
dGlvbigpKSB7Ci0gICAgICAgIHN3aXRjaCAobGVnZW5kLnN0eWxlKCkudGV4dEFsaWduKCkpIHsK
LSAgICAgICAgY2FzZSBDRU5URVI6Ci0gICAgICAgICAgICBsb2dpY2FsTGVmdCA9IChsb2dpY2Fs
V2lkdGgoKSAtIGxvZ2ljYWxXaWR0aEZvckNoaWxkKGxlZ2VuZCkpIC8gMjsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFJJR0hUOgotICAgICAgICAgICAgbG9naWNhbExlZnQgPSBs
b2dpY2FsV2lkdGgoKSAtIGJvcmRlckVuZCgpIC0gcGFkZGluZ0VuZCgpIC0gbG9naWNhbFdpZHRo
Rm9yQ2hpbGQobGVnZW5kKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgbG9naWNhbExlZnQgPSBib3JkZXJTdGFydCgpICsgcGFkZGluZ1N0YXJ0KCkg
KyBtYXJnaW5TdGFydEZvckNoaWxkKGxlZ2VuZCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN3aXRjaCAobGVnZW5kLnN0eWxlKCkudGV4dEFs
aWduKCkpIHsKLSAgICAgICAgY2FzZSBMRUZUOgotICAgICAgICAgICAgbG9naWNhbExlZnQgPSBi
b3JkZXJTdGFydCgpICsgcGFkZGluZ1N0YXJ0KCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBDRU5URVI6IHsKLSAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBleHRy
YSBwaXhlbCBnb2VzIHRvIHRoZSBlbmQgc2lkZSBpbiBSVEwgKHNpbmNlIGl0IHdlbnQgdG8gdGhl
IGVuZCBzaWRlCi0gICAgICAgICAgICAvLyBpbiBMVFIpLgotICAgICAgICAgICAgTGF5b3V0VW5p
dCBjZW50ZXJlZFdpZHRoID0gbG9naWNhbFdpZHRoKCkgLSBsb2dpY2FsV2lkdGhGb3JDaGlsZChs
ZWdlbmQpOwotICAgICAgICAgICAgbG9naWNhbExlZnQgPSBjZW50ZXJlZFdpZHRoIC0gY2VudGVy
ZWRXaWR0aCAvIDI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgbG9naWNhbExlZnQgPSBsb2dpY2FsV2lkdGgoKSAtIGJvcmRlclN0
YXJ0KCkgLSBwYWRkaW5nU3RhcnQoKSAtIG1hcmdpblN0YXJ0Rm9yQ2hpbGQobGVnZW5kKSAtIGxv
Z2ljYWxXaWR0aEZvckNoaWxkKGxlZ2VuZCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
fQotICAgIH0KLSAgICAKLSAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxkKGxlZ2VuZCwgbG9naWNh
bExlZnQpOwotICAgIAotICAgIExheW91dFVuaXQgZmllbGRzZXRCb3JkZXJCZWZvcmUgPSBib3Jk
ZXJCZWZvcmUoKTsKLSAgICBMYXlvdXRVbml0IGxlZ2VuZExvZ2ljYWxIZWlnaHQgPSBsb2dpY2Fs
SGVpZ2h0Rm9yQ2hpbGQobGVnZW5kKTsKLSAgICBMYXlvdXRVbml0IGxlZ2VuZEFmdGVyTWFyZ2lu
ID0gbWFyZ2luQWZ0ZXJGb3JDaGlsZChsZWdlbmQpOwotICAgIExheW91dFVuaXQgdG9wUG9zaXRp
b25Gb3JMZWdlbmQgPSBzdGQ6Om1heChMYXlvdXRVbml0KCksIChmaWVsZHNldEJvcmRlckJlZm9y
ZSAtIGxlZ2VuZExvZ2ljYWxIZWlnaHQpIC8gMik7Ci0gICAgTGF5b3V0VW5pdCBib3R0b21Qb3Np
dGlvbkZvckxlZ2VuZCA9IHRvcFBvc2l0aW9uRm9yTGVnZW5kICsgbGVnZW5kTG9naWNhbEhlaWdo
dCArIGxlZ2VuZEFmdGVyTWFyZ2luOwotCi0gICAgLy8gUGxhY2UgdGhlIGxlZ2VuZCBub3cuCi0g
ICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGxlZ2VuZCwgdG9wUG9zaXRpb25Gb3JMZWdlbmQpOwot
Ci0gICAgLy8gSWYgdGhlIGJvdHRvbSBvZiB0aGUgbGVnZW5kIChpbmNsdWRpbmcgaXRzIGFmdGVy
IG1hcmdpbikgaXMgYmVsb3cgdGhlIGZpZWxkc2V0IGJvcmRlciwKLSAgICAvLyB0aGVuIHdlIG5l
ZWQgdG8gYWRkIGluIHN1ZmZpY2llbnQgaW50cmluc2ljIGJvcmRlciB0byBhY2NvdW50IGZvciB0
aGlzIGdhcC4KLSAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHN1cHBvcnQgdGhlIGJlZm9yZSBtYXJn
aW4gb2YgdGhlIGxlZ2VuZD8gTm90IGVudGlyZWx5IGNsZWFyLgotICAgIC8vIEZJWE1FOiBDb25z
aWRlciBkcm9wcGluZyBzdXBwb3J0IGZvciB0aGUgYWZ0ZXIgbWFyZ2luIG9mIHRoZSBsZWdlbmQu
IE5vdCBzdXJlIG90aGVyCi0gICAgLy8gYnJvd3NlcnMgc3VwcG9ydCB0aGF0IGFueXdheS4KLSAg
ICBpZiAoYm90dG9tUG9zaXRpb25Gb3JMZWdlbmQgPiBmaWVsZHNldEJvcmRlckJlZm9yZSkKLSAg
ICAgICAgc2V0SW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoYm90dG9tUG9zaXRpb25Gb3JMZWdl
bmQgLSBmaWVsZHNldEJvcmRlckJlZm9yZSk7Ci0gICAgCi0gICAgLy8gTm93IHRoYXQgdGhlIGxl
Z2VuZCBpcyBpbmNsdWRlZCBpbiB0aGUgYm9yZGVyIGV4dGVudCwgd2UgY2FuIHNldCBvdXIgbG9n
aWNhbCBoZWlnaHQKLSAgICAvLyB0byB0aGUgYm9yZGVyQmVmb3JlICh3aGljaCBpbmNsdWRlcyB0
aGUgbGVnZW5kIGFuZCBpdHMgYWZ0ZXIgbWFyZ2luIGlmIHRoZXkgd2VyZSBiaWdnZXIKLSAgICAv
LyB0aGFuIHRoZSBhY3R1YWwgZmllbGRzZXQgYm9yZGVyKSBhbmQgdGhlbiBhZGQgaW4gb3VyIHBh
ZGRpbmcgYmVmb3JlLgotICAgIHNldExvZ2ljYWxIZWlnaHQoYm9yZGVyQmVmb3JlKCkgKyBwYWRk
aW5nQmVmb3JlKCkpOwotfQotCi1SZW5kZXJCb3gqIFJlbmRlckJsb2NrOjpmaW5kRmllbGRzZXRM
ZWdlbmQoRmllbGRzZXRGaW5kTGVnZW5kT3B0aW9uIG9wdGlvbikgY29uc3QKLXsKLSAgICBmb3Ig
KGF1dG8mIGxlZ2VuZCA6IGNoaWxkcmVuT2ZUeXBlPFJlbmRlckJveD4oKnRoaXMpKSB7Ci0gICAg
ICAgIGlmIChvcHRpb24gPT0gRmllbGRzZXRJZ25vcmVGbG9hdGluZ09yT3V0T2ZGbG93ICYmIGxl
Z2VuZC5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgaWYgKGxlZ2VuZC5pc0xlZ2VuZCgpKQotICAgICAgICAgICAgcmV0dXJu
IGNvbnN0X2Nhc3Q8UmVuZGVyQm94Kj4oJmxlZ2VuZCk7Ci0gICAgfQotICAgIHJldHVybiBudWxs
cHRyOwotfQotCi12b2lkIFJlbmRlckJsb2NrOjphZGp1c3RCb3JkZXJCb3hSZWN0Rm9yUGFpbnRp
bmcoTGF5b3V0UmVjdCYgcGFpbnRSZWN0KQotewotICAgIGlmICghaXNGaWVsZHNldCgpIHx8ICFp
bnRyaW5zaWNCb3JkZXJGb3JGaWVsZHNldCgpKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAg
YXV0byogbGVnZW5kID0gZmluZEZpZWxkc2V0TGVnZW5kKCk7Ci0gICAgaWYgKCFsZWdlbmQpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGlmIChzdHlsZSgpLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkpIHsKLSAgICAgICAgTGF5b3V0VW5pdCB5T2ZmID0gc3RkOjptYXgoTGF5b3V0VW5pdCgpLCAo
bGVnZW5kLT5oZWlnaHQoKSAtIFJlbmRlckJveDo6Ym9yZGVyQmVmb3JlKCkpIC8gMik7Ci0gICAg
ICAgIHBhaW50UmVjdC5zZXRIZWlnaHQocGFpbnRSZWN0LmhlaWdodCgpIC0geU9mZik7Ci0gICAg
ICAgIGlmIChzdHlsZSgpLndyaXRpbmdNb2RlKCkgPT0gVG9wVG9Cb3R0b21Xcml0aW5nTW9kZSkK
LSAgICAgICAgICAgIHBhaW50UmVjdC5zZXRZKHBhaW50UmVjdC55KCkgKyB5T2ZmKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBMYXlvdXRVbml0IHhPZmYgPSBzdGQ6Om1heChMYXlvdXRVbml0KCks
IChsZWdlbmQtPndpZHRoKCkgLSBSZW5kZXJCb3g6OmJvcmRlckJlZm9yZSgpKSAvIDIpOwotICAg
ICAgICBwYWludFJlY3Quc2V0V2lkdGgocGFpbnRSZWN0LndpZHRoKCkgLSB4T2ZmKTsKLSAgICAg
ICAgaWYgKHN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlKQot
ICAgICAgICAgICAgcGFpbnRSZWN0LnNldFgocGFpbnRSZWN0LngoKSArIHhPZmYpOwotICAgIH0K
LX0KLQotTGF5b3V0UmVjdCBSZW5kZXJCbG9jazo6cGFpbnRSZWN0VG9DbGlwT3V0RnJvbUJvcmRl
cihjb25zdCBMYXlvdXRSZWN0JiBwYWludFJlY3QpCi17Ci0gICAgTGF5b3V0UmVjdCBjbGlwUmVj
dDsKLSAgICBpZiAoIWlzRmllbGRzZXQoKSkKLSAgICAgICAgcmV0dXJuIGNsaXBSZWN0OwotICAg
IGF1dG8qIGxlZ2VuZCA9IGZpbmRGaWVsZHNldExlZ2VuZCgpOwotICAgIGlmICghbGVnZW5kKQot
ICAgICAgICByZXR1cm4gY2xpcFJlY3Q7Ci0KLSAgICBMYXlvdXRVbml0IGJvcmRlckV4dGVudCA9
IFJlbmRlckJveDo6Ym9yZGVyQmVmb3JlKCk7Ci0gICAgaWYgKHN0eWxlKCkuaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSkgewotICAgICAgICBjbGlwUmVjdC5zZXRYKHBhaW50UmVjdC54KCkgKyBs
ZWdlbmQtPngoKSk7Ci0gICAgICAgIGNsaXBSZWN0LnNldFkoc3R5bGUoKS53cml0aW5nTW9kZSgp
ID09IFRvcFRvQm90dG9tV3JpdGluZ01vZGUgPyBwYWludFJlY3QueSgpIDogcGFpbnRSZWN0Lnko
KSArIHBhaW50UmVjdC5oZWlnaHQoKSAtIGJvcmRlckV4dGVudCk7Ci0gICAgICAgIGNsaXBSZWN0
LnNldFdpZHRoKGxlZ2VuZC0+d2lkdGgoKSk7Ci0gICAgICAgIGNsaXBSZWN0LnNldEhlaWdodChi
b3JkZXJFeHRlbnQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGNsaXBSZWN0LnNldFgoc3R5bGUo
KS53cml0aW5nTW9kZSgpID09IExlZnRUb1JpZ2h0V3JpdGluZ01vZGUgPyBwYWludFJlY3QueCgp
IDogcGFpbnRSZWN0LngoKSArIHBhaW50UmVjdC53aWR0aCgpIC0gYm9yZGVyRXh0ZW50KTsKLSAg
ICAgICAgY2xpcFJlY3Quc2V0WShwYWludFJlY3QueSgpICsgbGVnZW5kLT55KCkpOwotICAgICAg
ICBjbGlwUmVjdC5zZXRXaWR0aChib3JkZXJFeHRlbnQpOwotICAgICAgICBjbGlwUmVjdC5zZXRI
ZWlnaHQobGVnZW5kLT5oZWlnaHQoKSk7Ci0gICAgfQotICAgIHJldHVybiBjbGlwUmVjdDsKLX0K
LQotTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6aW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoKSBj
b25zdAotewotICAgIGF1dG8qIHJhcmVEYXRhID0gZ2V0QmxvY2tSYXJlRGF0YSh0aGlzKTsKLSAg
ICByZXR1cm4gcmFyZURhdGEgPyByYXJlRGF0YS0+bV9pbnRyaW5zaWNCb3JkZXJGb3JGaWVsZHNl
dCA6IExheW91dFVuaXQoKTsKLX0KLQotdm9pZCBSZW5kZXJCbG9jazo6c2V0SW50cmluc2ljQm9y
ZGVyRm9yRmllbGRzZXQoTGF5b3V0VW5pdCBwYWRkaW5nKQotewotICAgIGF1dG8qIHJhcmVEYXRh
ID0gZ2V0QmxvY2tSYXJlRGF0YSh0aGlzKTsKLSAgICBpZiAoIXJhcmVEYXRhKSB7Ci0gICAgICAg
IGlmICghcGFkZGluZykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgcmFyZURhdGEgPSAm
ZW5zdXJlQmxvY2tSYXJlRGF0YSh0aGlzKTsKLSAgICB9Ci0gICAgcmFyZURhdGEtPm1faW50cmlu
c2ljQm9yZGVyRm9yRmllbGRzZXQgPSBwYWRkaW5nOwotfQotCi1MYXlvdXRVbml0IFJlbmRlckJs
b2NrOjpib3JkZXJUb3AoKSBjb25zdAotewotICAgIGlmIChzdHlsZSgpLndyaXRpbmdNb2RlKCkg
IT0gVG9wVG9Cb3R0b21Xcml0aW5nTW9kZSB8fCAhaW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQo
KSkKLSAgICAgICAgcmV0dXJuIFJlbmRlckJveDo6Ym9yZGVyVG9wKCk7Ci0gICAgcmV0dXJuIFJl
bmRlckJveDo6Ym9yZGVyVG9wKCkgKyBpbnRyaW5zaWNCb3JkZXJGb3JGaWVsZHNldCgpOwotfQot
Ci1MYXlvdXRVbml0IFJlbmRlckJsb2NrOjpib3JkZXJMZWZ0KCkgY29uc3QKLXsKLSAgICBpZiAo
c3R5bGUoKS53cml0aW5nTW9kZSgpICE9IExlZnRUb1JpZ2h0V3JpdGluZ01vZGUgfHwgIWludHJp
bnNpY0JvcmRlckZvckZpZWxkc2V0KCkpCi0gICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJvcmRl
ckxlZnQoKTsKLSAgICByZXR1cm4gUmVuZGVyQm94Ojpib3JkZXJMZWZ0KCkgKyBpbnRyaW5zaWNC
b3JkZXJGb3JGaWVsZHNldCgpOwotfQotCi1MYXlvdXRVbml0IFJlbmRlckJsb2NrOjpib3JkZXJC
b3R0b20oKSBjb25zdAotewotICAgIGlmIChzdHlsZSgpLndyaXRpbmdNb2RlKCkgIT0gQm90dG9t
VG9Ub3BXcml0aW5nTW9kZSB8fCAhaW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoKSkKLSAgICAg
ICAgcmV0dXJuIFJlbmRlckJveDo6Ym9yZGVyQm90dG9tKCk7Ci0gICAgcmV0dXJuIFJlbmRlckJv
eDo6Ym9yZGVyQm90dG9tKCkgKyBpbnRyaW5zaWNCb3JkZXJGb3JGaWVsZHNldCgpOwotfQotCi1M
YXlvdXRVbml0IFJlbmRlckJsb2NrOjpib3JkZXJSaWdodCgpIGNvbnN0Ci17Ci0gICAgaWYgKHN0
eWxlKCkud3JpdGluZ01vZGUoKSAhPSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlIHx8ICFpbnRyaW5z
aWNCb3JkZXJGb3JGaWVsZHNldCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyQm94Ojpib3JkZXJS
aWdodCgpOwotICAgIHJldHVybiBSZW5kZXJCb3g6OmJvcmRlclJpZ2h0KCkgKyBpbnRyaW5zaWNC
b3JkZXJGb3JGaWVsZHNldCgpOwotfQotCi1MYXlvdXRVbml0IFJlbmRlckJsb2NrOjpib3JkZXJC
ZWZvcmUoKSBjb25zdAotewotICAgIHJldHVybiBSZW5kZXJCb3g6OmJvcmRlckJlZm9yZSgpICsg
aW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoKTsKLX0KLQotYm9vbCBSZW5kZXJCbG9jazo6Y29t
cHV0ZVByZWZlcnJlZFdpZHRoc0ZvckV4Y2x1ZGVkQ2hpbGRyZW4oTGF5b3V0VW5pdCYgbWluV2lk
dGgsIExheW91dFVuaXQmIG1heFdpZHRoKSBjb25zdAotewotICAgIGlmICghaXNGaWVsZHNldCgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgYXV0byogbGVnZW5kID0gZmluZEZp
ZWxkc2V0TGVnZW5kKCk7Ci0gICAgaWYgKCFsZWdlbmQpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAKLSAgICBsZWdlbmQtPnNldElzRXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KHRydWUpOwot
Ci0gICAgY29tcHV0ZUNoaWxkUHJlZmVycmVkTG9naWNhbFdpZHRocygqbGVnZW5kLCBtaW5XaWR0
aCwgbWF4V2lkdGgpOwotICAgIAotICAgIC8vIFRoZXNlIGFyZSBnb2luZyB0byBiZSBhZGRlZCBp
biBsYXRlciwgc28gd2Ugc3VidHJhY3QgdGhlbSBvdXQgdG8gcmVmbGVjdCB0aGUKLSAgICAvLyBm
YWN0IHRoYXQgdGhlIGxlZ2VuZCBpcyBvdXRzaWRlIHRoZSBzY3JvbGxhYmxlIGFyZWEuCi0gICAg
YXV0byBzY3JvbGxiYXJXaWR0aCA9IGludHJpbnNpY1Njcm9sbGJhckxvZ2ljYWxXaWR0aCgpOwot
ICAgIG1pbldpZHRoIC09IHNjcm9sbGJhcldpZHRoOwotICAgIG1heFdpZHRoIC09IHNjcm9sbGJh
cldpZHRoOwotICAgIAotICAgIGNvbnN0IGF1dG8mIGNoaWxkU3R5bGUgPSBsZWdlbmQtPnN0eWxl
KCk7Ci0gICAgYXV0byBzdGFydE1hcmdpbkxlbmd0aCA9IGNoaWxkU3R5bGUubWFyZ2luU3RhcnRV
c2luZygmc3R5bGUoKSk7Ci0gICAgYXV0byBlbmRNYXJnaW5MZW5ndGggPSBjaGlsZFN0eWxlLm1h
cmdpbkVuZFVzaW5nKCZzdHlsZSgpKTsKLSAgICBMYXlvdXRVbml0IG1hcmdpbjsKLSAgICBMYXlv
dXRVbml0IG1hcmdpblN0YXJ0OwotICAgIExheW91dFVuaXQgbWFyZ2luRW5kOwotICAgIGlmIChz
dGFydE1hcmdpbkxlbmd0aC5pc0ZpeGVkKCkpCi0gICAgICAgIG1hcmdpblN0YXJ0ICs9IHN0YXJ0
TWFyZ2luTGVuZ3RoLnZhbHVlKCk7Ci0gICAgaWYgKGVuZE1hcmdpbkxlbmd0aC5pc0ZpeGVkKCkp
Ci0gICAgICAgIG1hcmdpbkVuZCArPSBlbmRNYXJnaW5MZW5ndGgudmFsdWUoKTsKLSAgICBtYXJn
aW4gPSBtYXJnaW5TdGFydCArIG1hcmdpbkVuZDsKLSAgICAKLSAgICBtaW5XaWR0aCArPSBtYXJn
aW47Ci0gICAgbWF4V2lkdGggKz0gbWFyZ2luOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLUxh
eW91dFVuaXQgUmVuZGVyQmxvY2s6OmFkanVzdEJvcmRlckJveExvZ2ljYWxIZWlnaHRGb3JCb3hT
aXppbmcoTGF5b3V0VW5pdCBoZWlnaHQpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IFdlJ3JlIGRv
aW5nIHRoaXMgdG8gbWF0Y2ggb3RoZXIgYnJvd3NlcnMgZXZlbiB0aG91Z2ggaXQncyBxdWVzdGlv
bmFibGUuCi0gICAgLy8gU2hvdWxkbid0IGhlaWdodDoxMDBweCBtZWFuIHRoZSBmaWVsZHNldCBj
b250ZW50IGdldHMgMTAwcHggb2YgaGVpZ2h0IGV2ZW4gaWYgdGhlCi0gICAgLy8gcmVzdWx0aW5n
IGZpZWxkc2V0IGJlY29tZXMgbXVjaCB0YWxsZXIgYmVjYXVzZSBvZiB0aGUgbGVnZW5kPwotICAg
IExheW91dFVuaXQgYm9yZGVyc1BsdXNQYWRkaW5nID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxI
ZWlnaHQoKTsKLSAgICBpZiAoc3R5bGUoKS5ib3hTaXppbmcoKSA9PSBDT05URU5UX0JPWCkKLSAg
ICAgICAgcmV0dXJuIGhlaWdodCArIGJvcmRlcnNQbHVzUGFkZGluZyAtIGludHJpbnNpY0JvcmRl
ckZvckZpZWxkc2V0KCk7Ci0gICAgcmV0dXJuIHN0ZDo6bWF4KGhlaWdodCwgYm9yZGVyc1BsdXNQ
YWRkaW5nKTsKLX0KLQotTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YWRqdXN0Q29udGVudEJveExv
Z2ljYWxIZWlnaHRGb3JCb3hTaXppbmcoc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBoZWlnaHQp
IGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IFdlJ3JlIGRvaW5nIHRoaXMgdG8gbWF0Y2ggb3RoZXIg
YnJvd3NlcnMgZXZlbiB0aG91Z2ggaXQncyBxdWVzdGlvbmFibGUuCi0gICAgLy8gU2hvdWxkbid0
IGhlaWdodDoxMDBweCBtZWFuIHRoZSBmaWVsZHNldCBjb250ZW50IGdldHMgMTAwcHggb2YgaGVp
Z2h0IGV2ZW4gaWYgdGhlCi0gICAgLy8gcmVzdWx0aW5nIGZpZWxkc2V0IGJlY29tZXMgbXVjaCB0
YWxsZXIgYmVjYXVzZSBvZiB0aGUgbGVnZW5kPwotICAgIGlmICghaGVpZ2h0KQotICAgICAgICBy
ZXR1cm4gMDsKLSAgICBMYXlvdXRVbml0IHJlc3VsdCA9IGhlaWdodC52YWx1ZSgpOwotICAgIGlm
IChzdHlsZSgpLmJveFNpemluZygpID09IEJPUkRFUl9CT1gpCi0gICAgICAgIHJlc3VsdCAtPSBi
b3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpOwotICAgIGVsc2UKLSAgICAgICAgcmVzdWx0
IC09IGludHJpbnNpY0JvcmRlckZvckZpZWxkc2V0KCk7Ci0gICAgcmV0dXJuIHN0ZDo6bWF4KExh
eW91dFVuaXQoKSwgcmVzdWx0KTsKLX0KLQotdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRFeGNsdWRl
ZENoaWxkcmVuSW5Cb3JkZXIoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50
JiBwYWludE9mZnNldCkKLXsKLSAgICBpZiAoIWlzRmllbGRzZXQoKSkKLSAgICAgICAgcmV0dXJu
OwotICAgIAotICAgIFJlbmRlckJveCogYm94ID0gZmluZEZpZWxkc2V0TGVnZW5kKCk7Ci0gICAg
aWYgKCFib3ggfHwgIWJveC0+aXNFeGNsdWRlZEZyb21Ob3JtYWxMYXlvdXQoKSB8fCBib3gtPmhh
c1NlbGZQYWludGluZ0xheWVyKCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBMYXlvdXRQ
b2ludCBjaGlsZFBvaW50ID0gZmxpcEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoYm94LCBwYWludE9m
ZnNldCk7Ci0gICAgYm94LT5wYWludEFzSW5saW5lQmxvY2socGFpbnRJbmZvLCBjaGlsZFBvaW50
KTsKLX0KLSAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmgKaW5kZXggZmJkNjA4M2YxNGFkMTQ4YTYwMzU2YTM0ZTE1YTYwMDg5M2I5
OWMxOC4uNmQ5NTVlYzg3NDA5NzI5MDhjZDQ5ZjAxZmVlYzVlMzM0ZWU3YjNhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTIzMCwyMCArMjMwLDYgQEAgcHVibGlj
OgogICAgIExheW91dFVuaXQgcGFnZUxvZ2ljYWxPZmZzZXQoKSBjb25zdDsKICAgICB2b2lkIHNl
dFBhZ2VMb2dpY2FsT2Zmc2V0KExheW91dFVuaXQpOwogCi0gICAgLy8gRmllbGRzZXQgbGVnZW5k
cyB0aGF0IGFyZSB0YWxsZXIgdGhhbiB0aGUgZmllbGRzZXQgYm9yZGVyIGFkZCBpbiBpbnRyaW5z
aWMgYm9yZGVyCi0gICAgLy8gaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgY29udGVudCBnZXRzIHBy
b3Blcmx5IHB1c2hlZCBkb3duIGFjcm9zcyBhbGwgbGF5b3V0IHN5c3RlbXMKLSAgICAvLyAoZmxl
eGJveCwgYmxvY2ssIGV0Yy4pCi0gICAgTGF5b3V0VW5pdCBpbnRyaW5zaWNCb3JkZXJGb3JGaWVs
ZHNldCgpIGNvbnN0OwotICAgIHZvaWQgc2V0SW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoTGF5
b3V0VW5pdCk7Ci0gICAgTGF5b3V0VW5pdCBib3JkZXJUb3AoKSBjb25zdCBvdmVycmlkZTsKLSAg
ICBMYXlvdXRVbml0IGJvcmRlckJvdHRvbSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFVu
aXQgYm9yZGVyTGVmdCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFVuaXQgYm9yZGVyUmln
aHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBMYXlvdXRVbml0IGJvcmRlckJlZm9yZSgpIGNvbnN0
IG92ZXJyaWRlOwotICAgIExheW91dFVuaXQgYWRqdXN0Qm9yZGVyQm94TG9naWNhbEhlaWdodEZv
ckJveFNpemluZyhMYXlvdXRVbml0IGhlaWdodCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0
VW5pdCBhZGp1c3RDb250ZW50Qm94TG9naWNhbEhlaWdodEZvckJveFNpemluZyhzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IGhlaWdodCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwYWludEV4
Y2x1ZGVkQ2hpbGRyZW5JbkJvcmRlcihQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwot
ICAgIAogICAgIC8vIEFjY2Vzc29ycyBmb3IgbG9naWNhbCB3aWR0aC9oZWlnaHQgYW5kIG1hcmdp
bnMgaW4gdGhlIGNvbnRhaW5pbmcgYmxvY2sncyBibG9jay1mbG93IGRpcmVjdGlvbi4KICAgICBl
bnVtIEFwcGx5TGF5b3V0RGVsdGFNb2RlIHsgQXBwbHlMYXlvdXREZWx0YSwgRG9Ob3RBcHBseUxh
eW91dERlbHRhIH07CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGhGb3JDaGlsZChjb25zdCBS
ZW5kZXJCb3gmIGNoaWxkKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gY2hpbGQud2lkdGgoKSA6IGNoaWxkLmhlaWdodCgpOyB9CkBAIC0zOTcsMTQgKzM4Myw2IEBA
IHB1YmxpYzoKICAgICAvLyBjaGlsZHJlbi4KICAgICBSZW5kZXJCbG9jayogZmlyc3RMaW5lQmxv
Y2soKSBjb25zdCBvdmVycmlkZTsKIAotICAgIGVudW0gRmllbGRzZXRGaW5kTGVnZW5kT3B0aW9u
IHsgRmllbGRzZXRJZ25vcmVGbG9hdGluZ09yT3V0T2ZGbG93LCBGaWVsZHNldEluY2x1ZGVGbG9h
dGluZ09yT3V0T2ZGbG93IH07Ci0gICAgUmVuZGVyQm94KiBmaW5kRmllbGRzZXRMZWdlbmQoRmll
bGRzZXRGaW5kTGVnZW5kT3B0aW9uID0gRmllbGRzZXRJZ25vcmVGbG9hdGluZ09yT3V0T2ZGbG93
KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0RXhjbHVkZWRDaGlsZHJlbihib29sIC8q
cmVsYXlvdXRDaGlsZHJlbiovKTsKLSAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZVByZWZlcnJlZFdp
ZHRoc0ZvckV4Y2x1ZGVkQ2hpbGRyZW4oTGF5b3V0VW5pdCYsIExheW91dFVuaXQmKSBjb25zdDsK
LSAgICAKLSAgICB2b2lkIGFkanVzdEJvcmRlckJveFJlY3RGb3JQYWludGluZyhMYXlvdXRSZWN0
Jikgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0UmVjdCBwYWludFJlY3RUb0NsaXBPdXRGcm9tQm9yZGVy
KGNvbnN0IExheW91dFJlY3QmKSBvdmVycmlkZTsKLSAgICAKIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIHZvaWQgYWRkT3ZlcmZsb3dGcm9tQ2hpbGRyZW4oKTsKICAgICAvLyBGSVhNRS1CTE9DS0ZM
T1c6IFJlbW92ZSB2aXJ0dWFsaXphdGlvbiB3aGVuIGFsbCBjYWxsZXJzIGhhdmUgbW92ZWQgdG8g
UmVuZGVyQmxvY2tGbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuY3BwCmluZGV4IGYxZTk3MjRlNDI3NGY1OGRiNzZlZmU3YzZlYmUyYjM0OTQ5M2M0OTUuLjdh
MTFjM2Q5YjBjNjA1YjEyZTVjODNiMjc1M2ZmYzc5YzZkYWZiNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC00MzIsNyArNDMyLDcgQEAgdm9p
ZCBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVDb2x1bW5Db3VudEFuZFdpZHRoKCkKIGJvb2wgUmVu
ZGVyQmxvY2tGbG93Ojp3aWxsQ3JlYXRlQ29sdW1ucyhzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBk
ZXNpcmVkQ29sdW1uQ291bnQpIGNvbnN0CiB7CiAgICAgLy8gVGhlIGZvbGxvd2luZyB0eXBlcyBh
cmUgbm90IHN1cHBvc2VkIHRvIGNyZWF0ZSBtdWx0aWNvbCBjb250ZXh0LgotICAgIGlmIChpc0Zp
bGVVcGxvYWRDb250cm9sKCkgfHwgaXNUZXh0Q29udHJvbCgpIHx8IGlzTGlzdEJveCgpKQorICAg
IGlmIChpc0ZpZWxkc2V0KCkgfHwgaXNGaWxlVXBsb2FkQ29udHJvbCgpIHx8IGlzVGV4dENvbnRy
b2woKSB8fCBpc0xpc3RCb3goKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFm
aXJzdENoaWxkKCkpCkBAIC02MzcsNyArNjM3LDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6Omxh
eW91dEJsb2NrQ2hpbGRyZW4oYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0JiBtYXgK
ICAgICAvLyBGaWVsZHNldHMgbmVlZCB0byBmaW5kIHRoZWlyIGxlZ2VuZCBhbmQgcG9zaXRpb24g
aXQgaW5zaWRlIHRoZSBib3JkZXIgb2YgdGhlIG9iamVjdC4KICAgICAvLyBUaGUgbGVnZW5kIHRo
ZW4gZ2V0cyBza2lwcGVkIGR1cmluZyBub3JtYWwgbGF5b3V0LiBUaGUgc2FtZSBpcyB0cnVlIGZv
ciBydWJ5IHRleHQuCiAgICAgLy8gSXQgZG9lc24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIG5vcm1h
bCBsYXlvdXQgcHJvY2VzcyBidXQgaXMgaW5zdGVhZCBza2lwcGVkLgotICAgIGxheW91dEV4Y2x1
ZGVkQ2hpbGRyZW4ocmVsYXlvdXRDaGlsZHJlbik7CisgICAgUmVuZGVyT2JqZWN0KiBjaGlsZFRv
RXhjbHVkZSA9IGxheW91dFNwZWNpYWxFeGNsdWRlZENoaWxkKHJlbGF5b3V0Q2hpbGRyZW4pOwog
CiAgICAgTGF5b3V0VW5pdCBwcmV2aW91c0Zsb2F0TG9naWNhbEJvdHRvbSA9IDA7CiAgICAgbWF4
RmxvYXRMb2dpY2FsQm90dG9tID0gMDsKQEAgLTY0OCw3ICs2NDgsNyBAQCB2b2lkIFJlbmRlckJs
b2NrRmxvdzo6bGF5b3V0QmxvY2tDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91
dFVuaXQmIG1heAogICAgICAgICBSZW5kZXJCb3gmIGNoaWxkID0gKm5leHQ7CiAgICAgICAgIG5l
eHQgPSBjaGlsZC5uZXh0U2libGluZ0JveCgpOwogCi0gICAgICAgIGlmIChjaGlsZC5pc0V4Y2x1
ZGVkRnJvbU5vcm1hbExheW91dCgpKQorICAgICAgICBpZiAoY2hpbGRUb0V4Y2x1ZGUgPT0gJmNo
aWxkKQogICAgICAgICAgICAgY29udGludWU7IC8vIFNraXAgdGhpcyBjaGlsZCwgc2luY2UgaXQg
d2lsbCBiZSBwb3NpdGlvbmVkIGJ5IHRoZSBzcGVjaWFsaXplZCBzdWJjbGFzcyAoZmllbGRzZXRz
IGFuZCBydWJ5IHJ1bnMpLgogCiAgICAgICAgIHVwZGF0ZUJsb2NrQ2hpbGREaXJ0eUJpdHNCZWZv
cmVMYXlvdXQocmVsYXlvdXRDaGlsZHJlbiwgY2hpbGQpOwpAQCAtMzg3NCwxNSArMzg3NCwxMSBA
QCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6YWRqdXN0Q29tcHV0ZWRGb250U2l6ZXMoZmxvYXQgc2l6
ZSwgZmxvYXQgdmlzaWJsZVdpZHRoKQogfQogI2VuZGlmIC8vIEVOQUJMRShURVhUX0FVVE9TSVpJ
TkcpCiAKLXZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRFeGNsdWRlZENoaWxkcmVuKGJvb2wg
cmVsYXlvdXRDaGlsZHJlbikKK1JlbmRlck9iamVjdCogUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRT
cGVjaWFsRXhjbHVkZWRDaGlsZChib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiB7Ci0gICAgUmVuZGVy
QmxvY2s6OmxheW91dEV4Y2x1ZGVkQ2hpbGRyZW4ocmVsYXlvdXRDaGlsZHJlbik7Ci0KLSAgICBh
dXRvKiBmbG93VGhyZWFkID0gbXVsdGlDb2x1bW5GbG93VGhyZWFkKCk7CisgICAgUmVuZGVyTXVs
dGlDb2x1bW5GbG93VGhyZWFkKiBmbG93VGhyZWFkID0gbXVsdGlDb2x1bW5GbG93VGhyZWFkKCk7
CiAgICAgaWYgKCFmbG93VGhyZWFkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmbG93VGhyZWFk
LT5zZXRJc0V4Y2x1ZGVkRnJvbU5vcm1hbExheW91dCh0cnVlKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoKmZsb3dUaHJlYWQsIGJvcmRlckFu
ZFBhZGRpbmdCZWZvcmUoKSk7CiAKQEAgLTM5MDgsMTEgKzM5MDQsMTMgQEAgdm9pZCBSZW5kZXJC
bG9ja0Zsb3c6OmxheW91dEV4Y2x1ZGVkQ2hpbGRyZW4oYm9vbCByZWxheW91dENoaWxkcmVuKQog
ICAgICAgICBmbG93VGhyZWFkLT5zZXROZWVkc0hlaWdodHNSZWNhbGN1bGF0aW9uKGZhbHNlKTsK
ICAgICB9CiAgICAgZGV0ZXJtaW5lTG9naWNhbExlZnRQb3NpdGlvbkZvckNoaWxkKCpmbG93VGhy
ZWFkKTsKKworICAgIHJldHVybiBmbG93VGhyZWFkOwogfQogCiB2b2lkIFJlbmRlckJsb2NrRmxv
dzo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVD
aGlsZCkKIHsKLSAgICBpZiAobXVsdGlDb2x1bW5GbG93VGhyZWFkKCkgJiYgKCFpc0ZpZWxkc2V0
KCkgfHwgIW5ld0NoaWxkLT5pc0xlZ2VuZCgpKSkKKyAgICBpZiAobXVsdGlDb2x1bW5GbG93VGhy
ZWFkKCkpCiAgICAgICAgIHJldHVybiBtdWx0aUNvbHVtbkZsb3dUaHJlYWQoKS0+YWRkQ2hpbGQo
bmV3Q2hpbGQsIGJlZm9yZUNoaWxkKTsKICAgICBhdXRvKiBiZWZvcmVDaGlsZE9yUGxhY2Vob2xk
ZXIgPSBiZWZvcmVDaGlsZDsKICAgICBpZiAoYXV0byogY29udGFpbmluZ0Zsb3dUaHJlYWQgPSBm
bG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93LmgKaW5kZXggOWQ4ZDQ1ZjI3Yzk4MjdmOGI1NjBjMmNhZWMxM2MxMzhjNzY2
MWRkNy4uZjE2MTExNzViMDZiMjg2ZWMxMTljNmIzYjIxZTExYWNlYjBlYjlkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaApAQCAtNDY5LDE5ICs0NjksMTgg
QEAgcHJvdGVjdGVkOgogICAgIAogICAgIHZpcnR1YWwgdm9pZCBjYWNoZVByaW9yQ2hhcmFjdGVy
c0lmTmVlZGVkKGNvbnN0IExhenlMaW5lQnJlYWtJdGVyYXRvciYpIHt9OwogICAgIAotcHJvdGVj
dGVkOgotICAgIC8vIENhbGxlZCB0byBsYXkgb3V0IHRoZSBsZWdlbmQgZm9yIGEgZmllbGRzZXQg
b3IgdGhlIHJ1YnkgdGV4dCBvZiBhIHJ1YnkgcnVuLiBBbHNvIHVzZWQgYnkgbXVsdGktY29sdW1u
IGxheW91dCB0byBoYW5kbGUKLSAgICAvLyB0aGUgZmxvdyB0aHJlYWQgY2hpbGQuCi0gICAgdm9p
ZCBsYXlvdXRFeGNsdWRlZENoaWxkcmVuKGJvb2wgcmVsYXlvdXRDaGlsZHJlbikgb3ZlcnJpZGU7
Ci0gICAgCiBwcml2YXRlOgogICAgIGJvb2wgcmVjb21wdXRlTG9naWNhbFdpZHRoQW5kQ29sdW1u
V2lkdGgoKTsKICAgICBMYXlvdXRVbml0IGNvbHVtbkdhcCgpIGNvbnN0OwogICAgIAogICAgIFJl
bmRlckJsb2NrRmxvdyogcHJldmlvdXNTaWJsaW5nV2l0aE92ZXJoYW5naW5nRmxvYXRzKGJvb2wm
IHBhcmVudEhhc0Zsb2F0cykgY29uc3Q7CiAKLSAgICB2b2lkIGNoZWNrRm9yUGFnaW5hdGlvbkxv
Z2ljYWxIZWlnaHRDaGFuZ2UoYm9vbCYgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCYgcGFn
ZUxvZ2ljYWxIZWlnaHQsIGJvb2wmIHBhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCk7CisgICAgLy8g
Q2FsbGVkIHRvIGxheSBvdXQgdGhlIGxlZ2VuZCBmb3IgYSBmaWVsZHNldCBvciB0aGUgcnVieSB0
ZXh0IG9mIGEgcnVieSBydW4uIEFsc28gdXNlZCBieSBtdWx0aS1jb2x1bW4gbGF5b3V0IHRvIGhh
bmRsZQorICAgIC8vIHRoZSBmbG93IHRocmVhZCBjaGlsZC4KKyAgICB2aXJ0dWFsIFJlbmRlck9i
amVjdCogbGF5b3V0U3BlY2lhbEV4Y2x1ZGVkQ2hpbGQoYm9vbCAvKnJlbGF5b3V0Q2hpbGRyZW4q
Lyk7CiAKKyAgICB2b2lkIGNoZWNrRm9yUGFnaW5hdGlvbkxvZ2ljYWxIZWlnaHRDaGFuZ2UoYm9v
bCYgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCYgcGFnZUxvZ2ljYWxIZWlnaHQsIGJvb2wm
IHBhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCk7CisgICAgCiAgICAgdm9pZCBwYWludElubGluZUNo
aWxkcmVuKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBwYWludEZsb2F0cyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYsIGJvb2wgcHJlc2Vy
dmVQaGFzZSA9IGZhbHNlKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAppbmRleCA2MTY2Zjk2N2EwMDRhNjI2MGZiY2U4OTQ4ODU4NmRmZjE1NTVhYmMwLi5k
ZGEyZWMxZTg2NmE5ODQ1MWM0YTU2MjgzNjQyZWU3M2IzYTJhOGE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTMzNiw3ICsxMzM2LDYgQEAgdm9pZCBSZW5kZXJC
b3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWkKIAogICAgIExheW91dFJlY3QgcGFpbnRSZWN0ID0gYm9yZGVyQm94UmVjdElu
UmVnaW9uKGN1cnJlbnRSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgpKTsKICAgICBwYWludFJlY3Qu
bW92ZUJ5KHBhaW50T2Zmc2V0KTsKLSAgICBhZGp1c3RCb3JkZXJCb3hSZWN0Rm9yUGFpbnRpbmco
cGFpbnRSZWN0KTsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBXb3JrYXJvdW5kIGZvciA8
cmRhcjovL3Byb2JsZW0vNjIwOTc2Mz4uIEZvcmNlIHRoZSBwYWludGluZyBib3VuZHMgb2YgY2hl
Y2tib3hlcyBhbmQgcmFkaW8gY29udHJvbHMgdG8gYmUgc3F1YXJlLgpAQCAtMTU4Niw3ICsxNTg1
LDYgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50TWFzayhQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgICAgICByZXR1cm47CiAKICAgICBMYXlv
dXRSZWN0IHBhaW50UmVjdCA9IExheW91dFJlY3QocGFpbnRPZmZzZXQsIHNpemUoKSk7Ci0gICAg
YWRqdXN0Qm9yZGVyQm94UmVjdEZvclBhaW50aW5nKHBhaW50UmVjdCk7CiAgICAgcGFpbnRNYXNr
SW1hZ2VzKHBhaW50SW5mbywgcGFpbnRSZWN0KTsKIH0KIApAQCAtNDU2Nyw3ICs0NTY1LDcgQEAg
Ym9vbCBSZW5kZXJCb3g6OmNyZWF0ZXNOZXdGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0CiAKIGJv
b2wgUmVuZGVyQm94Ojphdm9pZHNGbG9hdHMoKSBjb25zdAogewotICAgIHJldHVybiAoaXNSZXBs
YWNlZCgpICYmICFpc0Fub255bW91c0lubGluZUJsb2NrKCkpIHx8IGlzSFIoKSB8fCBpc0xlZ2Vu
ZCgpIHx8IGlzRmllbGRzZXQoKSB8fCBjcmVhdGVzTmV3Rm9ybWF0dGluZ0NvbnRleHQoKTsKKyAg
ICByZXR1cm4gKGlzUmVwbGFjZWQoKSAmJiAhaXNBbm9ueW1vdXNJbmxpbmVCbG9jaygpKSB8fCBp
c0hSKCkgfHwgaXNMZWdlbmQoKSB8fCBjcmVhdGVzTmV3Rm9ybWF0dGluZ0NvbnRleHQoKTsKIH0K
IAogdm9pZCBSZW5kZXJCb3g6OmFkZFZpc3VhbEVmZmVjdE92ZXJmbG93KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaAppbmRleCAwNjU1NDdmZWM4OGE3Yzk5MjMxNWI0OWU2YjZjMGU4
NWNjZmJiMzRhLi4xYzc2YmY3NzcxOGYwMjBhODdiMWY3NzU4NjRiMzM3OGRkOTljNmU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC0zMjgsMTEgKzMyOCw5IEBAIHB1Ymxp
YzoKICAgICBMYXlvdXRTaXplIG9mZnNldEZyb21Db250YWluZXIoUmVuZGVyRWxlbWVudCYsIGNv
bnN0IExheW91dFBvaW50JiwgYm9vbCogb2Zmc2V0RGVwZW5kc09uUG9pbnQgPSBudWxscHRyKSBj
b25zdCBvdmVycmlkZTsKICAgICAKICAgICBMYXlvdXRVbml0IGFkanVzdEJvcmRlckJveExvZ2lj
YWxXaWR0aEZvckJveFNpemluZyhMYXlvdXRVbml0IHdpZHRoKSBjb25zdDsKKyAgICBMYXlvdXRV
bml0IGFkanVzdEJvcmRlckJveExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcoTGF5b3V0VW5pdCBo
ZWlnaHQpIGNvbnN0OwogICAgIExheW91dFVuaXQgYWRqdXN0Q29udGVudEJveExvZ2ljYWxXaWR0
aEZvckJveFNpemluZyhMYXlvdXRVbml0IHdpZHRoKSBjb25zdDsKLQotICAgIC8vIE92ZXJyaWRk
ZW4gYnkgZmllbGRzZXRzIHRvIHN1YnRyYWN0IG91dCB0aGUgaW50cmluc2ljIGJvcmRlci4KLSAg
ICB2aXJ0dWFsIExheW91dFVuaXQgYWRqdXN0Qm9yZGVyQm94TG9naWNhbEhlaWdodEZvckJveFNp
emluZyhMYXlvdXRVbml0IGhlaWdodCkgY29uc3Q7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IGFk
anVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gaGVpZ2h0KSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGFkanVzdENvbnRlbnRCb3hM
b2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaGVpZ2h0
KSBjb25zdDsKIAogICAgIHN0cnVjdCBDb21wdXRlZE1hcmdpblZhbHVlcyB7CiAgICAgICAgIExh
eW91dFVuaXQgbV9iZWZvcmU7CkBAIC02MjAsMTAgKzYxOCw4IEBAIHB1YmxpYzoKIAogICAgIGNv
bnN0IFJlbmRlckJveCogZmluZEVuY2xvc2luZ1Njcm9sbGFibGVDb250YWluZXIoKSBjb25zdDsK
ICAgICAKLSAgICBib29sIGlzR3JpZEl0ZW0oKSBjb25zdCB7IHJldHVybiBwYXJlbnQoKSAmJiBw
YXJlbnQoKS0+aXNSZW5kZXJHcmlkKCkgJiYgIWlzRXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KCk7
IH0KLSAgICBib29sIGlzRmxleEl0ZW0oKSBjb25zdCB7IHJldHVybiBwYXJlbnQoKSAmJiBwYXJl
bnQoKS0+aXNGbGV4aWJsZUJveCgpICYmICFpc0V4Y2x1ZGVkRnJvbU5vcm1hbExheW91dCgpOyB9
Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0Qm9yZGVyQm94UmVjdEZvclBhaW50aW5nKExheW91
dFJlY3QmKSB7IH07CisgICAgYm9vbCBpc0dyaWRJdGVtKCkgY29uc3QgeyByZXR1cm4gcGFyZW50
KCkgJiYgcGFyZW50KCktPmlzUmVuZGVyR3JpZCgpOyB9CisgICAgYm9vbCBpc0ZsZXhJdGVtKCkg
Y29uc3QgeyByZXR1cm4gcGFyZW50KCkgJiYgcGFyZW50KCktPmlzRmxleGlibGVCb3goKTsgfQog
CiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyQm94KEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBCYXNl
VHlwZUZsYWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwCmluZGV4IGE0ZTBlZTlmYzM5MzNkMTFjMjI4M2Q2ZjJjY2YxYmM3YTdhYTcz
YzIuLmE1ZDM2NjFkMmU4NDg3YjExMzIxY2Y0ODQ1MzY4OWQzNzg0ZDA1ZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMTcx
OCwxMiArMTcxOCw2IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKGNv
bnN0IFBhaW50SW5mbyYgaW5mbywgY29uc3QgTGF5b3V0UmVjdCYKICAgICBpZiAocmVjdC5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gcmVjdFRvQ2xpcE91dCA9IHBhaW50
UmVjdFRvQ2xpcE91dEZyb21Cb3JkZXIocmVjdCk7Ci0gICAgYm9vbCBhcHBsaWVkQ2xpcEFscmVh
ZHkgPSAhcmVjdFRvQ2xpcE91dC5pc0VtcHR5KCk7Ci0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmUoZ3JhcGhpY3NDb250ZXh0LCBhcHBsaWVkQ2xpcEFscmVhZHkpOwotICAg
IGlmICghcmVjdFRvQ2xpcE91dC5pc0VtcHR5KCkpCi0gICAgICAgIGdyYXBoaWNzQ29udGV4dC5j
bGlwT3V0KHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVjdFRvQ2xpcE91dCwgZG9jdW1lbnQoKS5k
ZXZpY2VTY2FsZUZhY3RvcigpKSk7Ci0KICAgICAvLyBib3JkZXItaW1hZ2UgaXMgbm90IGFmZmVj
dGVkIGJ5IGJvcmRlci1yYWRpdXMuCiAgICAgaWYgKHBhaW50TmluZVBpZWNlSW1hZ2UoZ3JhcGhp
Y3NDb250ZXh0LCByZWN0LCBzdHlsZSwgc3R5bGUuYm9yZGVySW1hZ2UoKSkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTE4NjIsNyArMTg1Niw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBh
aW50Qm9yZGVyKGNvbnN0IFBhaW50SW5mbyYgaW5mbywgY29uc3QgTGF5b3V0UmVjdCYKICAgICB9
CiAKICAgICBib29sIGNsaXBUb091dGVyQm9yZGVyID0gb3V0ZXJCb3JkZXIuaXNSb3VuZGVkKCk7
Ci0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGdyYXBoaWNzQ29udGV4
dCwgY2xpcFRvT3V0ZXJCb3JkZXIgJiYgIWFwcGxpZWRDbGlwQWxyZWFkeSk7CisgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGdyYXBoaWNzQ29udGV4dCwgY2xpcFRvT3V0
ZXJCb3JkZXIpOwogICAgIGlmIChjbGlwVG9PdXRlckJvcmRlcikgewogICAgICAgICAvLyBDbGlw
IHRvIHRoZSBpbm5lciBhbmQgb3V0ZXIgcmFkaWkgcmVjdHMuCiAgICAgICAgIGlmIChibGVlZEF2
b2lkYW5jZSAhPSBCYWNrZ3JvdW5kQmxlZWRVc2VUcmFuc3BhcmVuY3lMYXllcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXggMzFkYWVk
YjYwZjgwOTkwMmYxNjI3OTFhMjkxOTQyYjg0YjAzMWZkNS4uMDc1MTg0M2I0YzcyZmRmOGNlMjYz
OGJiODU4OWE2MmZiNzU0NDZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmgKQEAgLTIzNiw4ICsyMzYsNiBAQCBwdWJsaWM6CiAKICAgICBS
ZW5kZXJCb3hNb2RlbE9iamVjdCogY29udGludWF0aW9uKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFs
IExheW91dFJlY3QgcGFpbnRSZWN0VG9DbGlwT3V0RnJvbUJvcmRlcihjb25zdCBMYXlvdXRSZWN0
JikgeyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9OwotICAgIAogcHJvdGVjdGVkOgogICAgIFJlbmRl
ckJveE1vZGVsT2JqZWN0KEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsK
ICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdChEb2N1bWVudCYsIFJlbmRlclN0eWxlJiYsIEJhc2VU
eXBlRmxhZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCBhZDQ2OTVkODlhYTFkNTMzMWUyMTUzNjQ0
YmVlNzQwMTY5YzBmYTc0Li41NjNlNTM2ZDZhMTY2MDJmNGNlOTQ1MDM5NjQwZjQxMGYyZTljNjE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZs
ZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcApAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAKICAgICAgICAg
ICAgIGlmIChtX2N1cnJlbnRDaGlsZCAmJiBub3RGaXJzdE9yZGluYWxWYWx1ZSgpKQogICAgICAg
ICAgICAgICAgIG1fb3JkaW5hbFZhbHVlcy5hZGQobV9jdXJyZW50Q2hpbGQtPnN0eWxlKCkuYm94
T3JkaW5hbEdyb3VwKCkpOwotICAgICAgICB9IHdoaWxlICghbV9jdXJyZW50Q2hpbGQgfHwgbV9j
dXJyZW50Q2hpbGQtPmlzRXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KCkgfHwgKCFtX2N1cnJlbnRD
aGlsZC0+aXNBbm9ueW1vdXMoKQorICAgICAgICB9IHdoaWxlICghbV9jdXJyZW50Q2hpbGQgfHwg
KCFtX2N1cnJlbnRDaGlsZC0+aXNBbm9ueW1vdXMoKQogICAgICAgICAgICAgICAgICAmJiBtX2N1
cnJlbnRDaGlsZC0+c3R5bGUoKS5ib3hPcmRpbmFsR3JvdXAoKSAhPSBtX2N1cnJlbnRPcmRpbmFs
KSk7CiAgICAgICAgIHJldHVybiBtX2N1cnJlbnRDaGlsZDsKICAgICB9CkBAIC0zMDIsMTEgKzMw
Miw2IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29s
IHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgTGF5b3V0U2l6ZSBvbGRMYXlvdXRE
ZWx0YSA9IHZpZXcoKS5sYXlvdXREZWx0YSgpOwogI2VuZGlmCiAKLSAgICAvLyBGaWVsZHNldHMg
bmVlZCB0byBmaW5kIHRoZWlyIGxlZ2VuZCBhbmQgcG9zaXRpb24gaXQgaW5zaWRlIHRoZSBib3Jk
ZXIgb2YgdGhlIG9iamVjdC4KLSAgICAvLyBUaGUgbGVnZW5kIHRoZW4gZ2V0cyBza2lwcGVkIGR1
cmluZyBub3JtYWwgbGF5b3V0LiBUaGUgc2FtZSBpcyB0cnVlIGZvciBydWJ5IHRleHQuCi0gICAg
Ly8gSXQgZG9lc24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIG5vcm1hbCBsYXlvdXQgcHJvY2VzcyBi
dXQgaXMgaW5zdGVhZCBza2lwcGVkLgotICAgIGxheW91dEV4Y2x1ZGVkQ2hpbGRyZW4ocmVsYXlv
dXRDaGlsZHJlbik7Ci0KICAgICBDaGlsZEZyYW1lUmVjdHMgb2xkQ2hpbGRSZWN0czsKICAgICBh
cHBlbmRDaGlsZEZyYW1lUmVjdHModGhpcywgb2xkQ2hpbGRSZWN0cyk7CiAgICAgCkBAIC00MzIs
NiArNDI3LDkgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEhvcml6
b250YWxCb3goYm9vbCByZWxheW91dENoaWxkcmVuKQogICAgICAgICAgICAgCiAgICAgICAgICAg
ICAvLyBBcHBseSB0aGUgY2hpbGQncyBjdXJyZW50IGxheW91dCBkZWx0YS4KICAgICAgICAgICAg
IGxheW91dENoaWxkSWZOZWVkZWRBcHBseWluZ0RlbHRhKGNoaWxkLCBjaGlsZExheW91dERlbHRh
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gTm93IGRvIHRoZSBsYXlvdXQuCisgICAg
ICAgICAgICBsYXlvdXRDaGlsZElmTmVlZGVkQXBwbHlpbmdEZWx0YShjaGlsZCwgY2hpbGRMYXlv
dXREZWx0YSk7CiAKICAgICAgICAgICAgIC8vIFVwZGF0ZSBvdXIgaGVpZ2h0IGFuZCBvdmVyZmxv
dyBoZWlnaHQuCiAgICAgICAgICAgICBpZiAoc3R5bGUoKS5ib3hBbGlnbigpID09IEJCQVNFTElO
RSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDE4
ZDYzY2QwZjAxZmRlODgzMTY0ODI0NWMyM2IwYmQ0NmQzNjYyMWQuLmQzOTQ0ZTU2N2ZkMGI5YjI1
MWNhNjhlMzY1NGUwZDc3NDZjNDI5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5jcHAKQEAgLTE1NiwxMyArMTU2LDEzIEBAIFJlbmRlckVsZW1lbnQ6On5SZW5k
ZXJFbGVtZW50KCkKICAgICAgICAgdmlldygpLnVucmVnaXN0ZXJGb3JWaXNpYmxlSW5WaWV3cG9y
dENhbGxiYWNrKCp0aGlzKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFJlbmRlckVs
ZW1lbnQ6OmNyZWF0ZUZvcihFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlLCBS
ZW5kZXJlckNyZWF0aW9uVHlwZSBjcmVhdGlvblR5cGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxl
JiYgc3R5bGUpCiB7CiAgICAgLy8gTWluaW1hbCBzdXBwb3J0IGZvciBjb250ZW50IHByb3BlcnRp
ZXMgcmVwbGFjaW5nIGFuIGVudGlyZSBlbGVtZW50LgogICAgIC8vIFdvcmtzIG9ubHkgaWYgd2Ug
aGF2ZSBleGFjdGx5IG9uZSBwaWVjZSBvZiBjb250ZW50IGFuZCBpdCdzIGEgVVJMLgogICAgIC8v
IE90aGVyd2lzZSBhY3RzIGFzIGlmIHdlIGRpZG4ndCBzdXBwb3J0IHRoaXMgZmVhdHVyZS4KICAg
ICBjb25zdCBDb250ZW50RGF0YSogY29udGVudERhdGEgPSBzdHlsZS5jb250ZW50RGF0YSgpOwot
ICAgIGlmIChjcmVhdGlvblR5cGUgPT0gQ3JlYXRlQWxsUmVuZGVyZXJzICYmIGNvbnRlbnREYXRh
ICYmICFjb250ZW50RGF0YS0+bmV4dCgpICYmIGlzPEltYWdlQ29udGVudERhdGE+KCpjb250ZW50
RGF0YSkgJiYgIWVsZW1lbnQuaXNQc2V1ZG9FbGVtZW50KCkpIHsKKyAgICBpZiAoY29udGVudERh
dGEgJiYgIWNvbnRlbnREYXRhLT5uZXh0KCkgJiYgaXM8SW1hZ2VDb250ZW50RGF0YT4oKmNvbnRl
bnREYXRhKSAmJiAhZWxlbWVudC5pc1BzZXVkb0VsZW1lbnQoKSkgewogICAgICAgICBTdHlsZTo6
bG9hZFBlbmRpbmdSZXNvdXJjZXMoc3R5bGUsIGVsZW1lbnQuZG9jdW1lbnQoKSwgJmVsZW1lbnQp
OwogICAgICAgICBhdXRvJiBzdHlsZUltYWdlID0gZG93bmNhc3Q8SW1hZ2VDb250ZW50RGF0YT4o
KmNvbnRlbnREYXRhKS5pbWFnZSgpOwogICAgICAgICBhdXRvIGltYWdlID0gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVySW1hZ2U+KGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpLCBjb25zdF9jYXN0PFN0eWxl
SW1hZ2UqPigmc3R5bGVJbWFnZSkpOwpAQCAtMTc1LDE1ICsxNzUsMzIgQEAgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcihFbGVtZW50JiBlbGVtZW50LCBS
ZW5kZXJTdHlsZSYKICAgICBjYXNlIENPTlRFTlRTOgogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBjYXNlIElOTElORToKLSAgICAgICAgaWYgKGNyZWF0aW9uVHlwZSA9PSBDcmVhdGVBbGxS
ZW5kZXJlcnMpCi0gICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW5saW5l
PihlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSk7Ci0gICAgICAgIEZBTExUSFJPVUdIOyAvLyBGaWVs
ZHNldHMgc2hvdWxkIG1ha2UgYSBibG9jayBmbG93IGlmIGRpc3BsYXk6aW5saW5lIGlzIHNldC4K
KyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlcklubGluZT4oZWxlbWVudCwgV1RG
TW92ZShzdHlsZSkpOwogICAgIGNhc2UgQkxPQ0s6CiAgICAgY2FzZSBJTkxJTkVfQkxPQ0s6CiAg
ICAgY2FzZSBDT01QQUNUOgogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQmxv
Y2tGbG93PihlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSk7CiAgICAgY2FzZSBMSVNUX0lURU06CiAg
ICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJMaXN0SXRlbT4oZWxlbWVudCwgV1RG
TW92ZShzdHlsZSkpOworICAgIGNhc2UgVEFCTEU6CisgICAgY2FzZSBJTkxJTkVfVEFCTEU6Cisg
ICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUYWJsZT4oZWxlbWVudCwgV1RGTW92
ZShzdHlsZSkpOworICAgIGNhc2UgVEFCTEVfUk9XX0dST1VQOgorICAgIGNhc2UgVEFCTEVfSEVB
REVSX0dST1VQOgorICAgIGNhc2UgVEFCTEVfRk9PVEVSX0dST1VQOgorICAgICAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyVGFibGVTZWN0aW9uPihlbGVtZW50LCBXVEZNb3ZlKHN0eWxl
KSk7CisgICAgY2FzZSBUQUJMRV9ST1c6CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxS
ZW5kZXJUYWJsZVJvdz4oZWxlbWVudCwgV1RGTW92ZShzdHlsZSkpOworICAgIGNhc2UgVEFCTEVf
Q09MVU1OX0dST1VQOgorICAgIGNhc2UgVEFCTEVfQ09MVU1OOgorICAgICAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVyVGFibGVDb2w+KGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKTsKKyAg
ICBjYXNlIFRBQkxFX0NFTEw6CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJU
YWJsZUNlbGw+KGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKTsKKyAgICBjYXNlIFRBQkxFX0NBUFRJ
T046CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUYWJsZUNhcHRpb24+KGVs
ZW1lbnQsIFdURk1vdmUoc3R5bGUpKTsKKyAgICBjYXNlIEJPWDoKKyAgICBjYXNlIElOTElORV9C
T1g6CisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3g+KGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKTsKICAgICBjYXNlIEZMRVg6CiAgICAgY2Fz
ZSBJTkxJTkVfRkxFWDoKICAgICBjYXNlIFdFQktJVF9GTEVYOgpAQCAtMTkyLDM0ICsyMDksNiBA
QCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKEVsZW1l
bnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJgogICAgIGNhc2UgR1JJRDoKICAgICBjYXNlIElOTElO
RV9HUklEOgogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyR3JpZD4oZWxlbWVu
dCwgV1RGTW92ZShzdHlsZSkpOwotICAgIGNhc2UgQk9YOgotICAgIGNhc2UgSU5MSU5FX0JPWDoK
LSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eD4oZWxlbWVudCwgV1RGTW92ZShzdHlsZSkpOwotICAgIGRlZmF1bHQ6IHsKLSAgICAgICAgaWYg
KGNyZWF0aW9uVHlwZSA9PSBPbmx5Q3JlYXRlQmxvY2tBbmRGbGV4Ym94UmVuZGVyZXJzKQotICAg
ICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckJsb2NrRmxvdz4oZWxlbWVudCwg
V1RGTW92ZShzdHlsZSkpOwotICAgICAgICBzd2l0Y2ggKHN0eWxlLmRpc3BsYXkoKSkgewotICAg
ICAgICBjYXNlIFRBQkxFOgotICAgICAgICBjYXNlIElOTElORV9UQUJMRToKLSAgICAgICAgICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUYWJsZT4oZWxlbWVudCwgV1RGTW92ZShzdHls
ZSkpOwotICAgICAgICBjYXNlIFRBQkxFX0NFTEw6Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyVGFibGVDZWxsPihlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSk7Ci0gICAg
ICAgIGNhc2UgVEFCTEVfQ0FQVElPTjoKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJUYWJsZUNhcHRpb24+KGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKTsKLSAgICAgICAg
Y2FzZSBUQUJMRV9ST1dfR1JPVVA6Ci0gICAgICAgIGNhc2UgVEFCTEVfSEVBREVSX0dST1VQOgot
ICAgICAgICBjYXNlIFRBQkxFX0ZPT1RFUl9HUk9VUDoKLSAgICAgICAgICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJUYWJsZVNlY3Rpb24+KGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKTsK
LSAgICAgICAgY2FzZSBUQUJMRV9ST1c6Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyVGFibGVSb3c+KGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKTsKLSAgICAgICAgY2Fz
ZSBUQUJMRV9DT0xVTU5fR1JPVVA6Ci0gICAgICAgIGNhc2UgVEFCTEVfQ09MVU1OOgotICAgICAg
ICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRhYmxlQ29sPihlbGVtZW50LCBXVEZN
b3ZlKHN0eWxlKSk7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIHJldHVybiBudWxscHRyOwpAQCAtMTIxOSwxMCArMTIwOCw5IEBAIHZvaWQgUmVu
ZGVyRWxlbWVudDo6cGFpbnRBc0lubGluZUJsb2NrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYKICAgICAvLyBQYWludCBhbGwgcGhhc2VzIGF0b21pY2FsbHksIGFzIHRo
b3VnaCB0aGUgZWxlbWVudCBlc3RhYmxpc2hlZCBpdHMgb3duIHN0YWNraW5nIGNvbnRleHQuCiAg
ICAgLy8gKFNlZSBBcHBlbmRpeCBFLjIsIHNlY3Rpb24gNi40IG9uIGlubGluZSBibG9jay90YWJs
ZS9yZXBsYWNlZCBlbGVtZW50cyBpbiB0aGUgQ1NTMi4xIHNwZWNpZmljYXRpb24uKQogICAgIC8v
IFRoaXMgaXMgYWxzbyB1c2VkIGJ5IG90aGVyIGVsZW1lbnRzIChlLmcuIGZsZXggaXRlbXMgYW5k
IGdyaWQgaXRlbXMpLgotICAgIFBhaW50UGhhc2UgcGFpbnRQaGFzZVRvVXNlID0gaXNFeGNsdWRl
ZEFuZFBsYWNlZEluQm9yZGVyKCkgPyBwYWludEluZm8ucGhhc2UgOiBQYWludFBoYXNlRm9yZWdy
b3VuZDsKLSAgICBpZiAocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VTZWxlY3Rpb24pCisg
ICAgaWYgKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2VsZWN0aW9uKSB7CiAgICAgICAg
IHBhaW50KHBhaW50SW5mbywgY2hpbGRQb2ludCk7Ci0gICAgZWxzZSBpZiAocGFpbnRJbmZvLnBo
YXNlID09IHBhaW50UGhhc2VUb1VzZSkgeworICAgIH0gZWxzZSBpZiAocGFpbnRJbmZvLnBoYXNl
ID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKSB7CiAgICAgICAgIHBhaW50UGhhc2UoKnRoaXMsIFBh
aW50UGhhc2VCbG9ja0JhY2tncm91bmQsIHBhaW50SW5mbywgY2hpbGRQb2ludCk7CiAgICAgICAg
IHBhaW50UGhhc2UoKnRoaXMsIFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHMsIHBhaW50
SW5mbywgY2hpbGRQb2ludCk7CiAgICAgICAgIHBhaW50UGhhc2UoKnRoaXMsIFBhaW50UGhhc2VG
bG9hdCwgcGFpbnRJbmZvLCBjaGlsZFBvaW50KTsKQEAgLTEyMzAsNyArMTIxOCw3IEBAIHZvaWQg
UmVuZGVyRWxlbWVudDo6cGFpbnRBc0lubGluZUJsb2NrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYKICAgICAgICAgcGFpbnRQaGFzZSgqdGhpcywgUGFpbnRQaGFzZU91
dGxpbmUsIHBhaW50SW5mbywgY2hpbGRQb2ludCk7CiAKICAgICAgICAgLy8gUmVzZXQgfHBhaW50
SW5mb3wgdG8gdGhlIG9yaWdpbmFsIHBoYXNlLgotICAgICAgICBwYWludEluZm8ucGhhc2UgPSBw
YWludFBoYXNlVG9Vc2U7CisgICAgICAgIHBhaW50SW5mby5waGFzZSA9IFBhaW50UGhhc2VGb3Jl
Z3JvdW5kOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmgKaW5kZXggZmRhMDllNWRiZTY5OGQzYjFiMzMyMzQ2ZDQzNmNjOWM1Y2MyNWE3NS4uZTE5YTM4
ZTU2NGNmYjMwOGM0MTgyZGY0OWNjZmQ3YWVhN2YxMzIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0zNiw4ICszNiw3IEBAIGNsYXNzIFJlbmRlckVsZW1l
bnQgOiBwdWJsaWMgUmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW5kZXJF
bGVtZW50KCk7CiAKLSAgICBlbnVtIFJlbmRlcmVyQ3JlYXRpb25UeXBlIHsgQ3JlYXRlQWxsUmVu
ZGVyZXJzLCBPbmx5Q3JlYXRlQmxvY2tBbmRGbGV4Ym94UmVuZGVyZXJzIH07Ci0gICAgc3RhdGlj
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVGb3IoRWxlbWVudCYsIFJlbmRlclN0eWxl
JiYsIFJlbmRlcmVyQ3JlYXRpb25UeXBlID0gQ3JlYXRlQWxsUmVuZGVyZXJzKTsKKyAgICBzdGF0
aWMgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUZvcihFbGVtZW50JiwgUmVuZGVyU3R5
bGUmJik7CiAKICAgICBib29sIGhhc0luaXRpYWxpemVkU3R5bGUoKSBjb25zdCB7IHJldHVybiBt
X2hhc0luaXRpYWxpemVkU3R5bGU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGaWVsZHNldC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk3MTI1MjBkMzExNmI3NDk5ZDVkYTc5YmFiNzBj
ZjU3NzRjYmNkMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGaWVsZHNldC5jcHAKQEAgLTAsMCArMSwyMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBB
bnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwMCBE
aXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSwgMjAwNiBBcHBsZSBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVu
ZGVyRmllbGRzZXQuaCIKKworI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNp
bmNsdWRlICJQYWludEluZm8uaCIKKyNpbmNsdWRlICJSZW5kZXJDaGlsZEl0ZXJhdG9yLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworUmVu
ZGVyRmllbGRzZXQ6OlJlbmRlckZpZWxkc2V0KEhUTUxGaWVsZFNldEVsZW1lbnQmIGVsZW1lbnQs
IFJlbmRlclN0eWxlJiYgc3R5bGUpCisgICAgOiBSZW5kZXJCbG9ja0Zsb3coZWxlbWVudCwgV1RG
TW92ZShzdHlsZSkpCit7Cit9CisKK3ZvaWQgUmVuZGVyRmllbGRzZXQ6OmNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKCkKK3sKKyAgICBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKCk7CisgICAgaWYgKFJlbmRlckJveCogbGVnZW5kID0gZmluZExlZ2Vu
ZCgpKSB7CisgICAgICAgIGludCBsZWdlbmRNaW5XaWR0aCA9IGxlZ2VuZC0+bWluUHJlZmVycmVk
TG9naWNhbFdpZHRoKCk7CisKKyAgICAgICAgTGVuZ3RoIGxlZ2VuZE1hcmdpbkxlZnQgPSBsZWdl
bmQtPnN0eWxlKCkubWFyZ2luTGVmdCgpOworICAgICAgICBMZW5ndGggbGVnZW5kTWFyZ2luUmln
aHQgPSBsZWdlbmQtPnN0eWxlKCkubWFyZ2luTGVmdCgpOworCisgICAgICAgIGlmIChsZWdlbmRN
YXJnaW5MZWZ0LmlzRml4ZWQoKSkKKyAgICAgICAgICAgIGxlZ2VuZE1pbldpZHRoICs9IGxlZ2Vu
ZE1hcmdpbkxlZnQudmFsdWUoKTsKKworICAgICAgICBpZiAobGVnZW5kTWFyZ2luUmlnaHQuaXNG
aXhlZCgpKQorICAgICAgICAgICAgbGVnZW5kTWluV2lkdGggKz0gbGVnZW5kTWFyZ2luUmlnaHQu
dmFsdWUoKTsKKworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4
KG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBsZWdlbmRNaW5XaWR0aCArIGhvcml6b250YWxC
b3JkZXJBbmRQYWRkaW5nRXh0ZW50KCkpOworICAgIH0KK30KKworUmVuZGVyT2JqZWN0KiBSZW5k
ZXJGaWVsZHNldDo6bGF5b3V0U3BlY2lhbEV4Y2x1ZGVkQ2hpbGQoYm9vbCByZWxheW91dENoaWxk
cmVuKQoreworICAgIFJlbmRlckJveCogYm94ID0gZmluZExlZ2VuZCgpOworICAgIGlmICghYm94
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFJlbmRlckJveCYgbGVnZW5kID0gKmJv
eDsKKyAgICBpZiAocmVsYXlvdXRDaGlsZHJlbikKKyAgICAgICAgbGVnZW5kLnNldE5lZWRzTGF5
b3V0KCk7CisgICAgbGVnZW5kLmxheW91dElmTmVlZGVkKCk7CisKKyAgICBMYXlvdXRVbml0IGxv
Z2ljYWxMZWZ0OworICAgIGlmIChzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkgewor
ICAgICAgICBzd2l0Y2ggKGxlZ2VuZC5zdHlsZSgpLnRleHRBbGlnbigpKSB7CisgICAgICAgIGNh
c2UgQ0VOVEVSOgorICAgICAgICAgICAgbG9naWNhbExlZnQgPSAobG9naWNhbFdpZHRoKCkgLSBs
b2dpY2FsV2lkdGhGb3JDaGlsZChsZWdlbmQpKSAvIDI7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBSSUdIVDoKKyAgICAgICAgICAgIGxvZ2ljYWxMZWZ0ID0gbG9naWNhbFdpZHRo
KCkgLSBib3JkZXJFbmQoKSAtIHBhZGRpbmdFbmQoKSAtIGxvZ2ljYWxXaWR0aEZvckNoaWxkKGxl
Z2VuZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IGxvZ2ljYWxMZWZ0ID0gYm9yZGVyU3RhcnQoKSArIHBhZGRpbmdTdGFydCgpICsgbWFyZ2luU3Rh
cnRGb3JDaGlsZChsZWdlbmQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
IGVsc2UgeworICAgICAgICBzd2l0Y2ggKGxlZ2VuZC5zdHlsZSgpLnRleHRBbGlnbigpKSB7Cisg
ICAgICAgIGNhc2UgTEVGVDoKKyAgICAgICAgICAgIGxvZ2ljYWxMZWZ0ID0gYm9yZGVyU3RhcnQo
KSArIHBhZGRpbmdTdGFydCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ0VO
VEVSOiB7CisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgZXh0cmEgcGl4ZWwgZ29l
cyB0byB0aGUgZW5kIHNpZGUgaW4gUlRMIChzaW5jZSBpdCB3ZW50IHRvIHRoZSBlbmQgc2lkZQor
ICAgICAgICAgICAgLy8gaW4gTFRSKS4KKyAgICAgICAgICAgIExheW91dFVuaXQgY2VudGVyZWRX
aWR0aCA9IGxvZ2ljYWxXaWR0aCgpIC0gbG9naWNhbFdpZHRoRm9yQ2hpbGQobGVnZW5kKTsKKyAg
ICAgICAgICAgIGxvZ2ljYWxMZWZ0ID0gY2VudGVyZWRXaWR0aCAtIGNlbnRlcmVkV2lkdGggLyAy
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIGxvZ2ljYWxMZWZ0ID0gbG9naWNhbFdpZHRoKCkgLSBib3JkZXJTdGFydCgpIC0gcGFk
ZGluZ1N0YXJ0KCkgLSBtYXJnaW5TdGFydEZvckNoaWxkKGxlZ2VuZCkgLSBsb2dpY2FsV2lkdGhG
b3JDaGlsZChsZWdlbmQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxkKGxlZ2VuZCwgbG9naWNhbExlZnQpOworCisgICAg
TGF5b3V0VW5pdCBmaWVsZHNldEJvcmRlckJlZm9yZSA9IGJvcmRlckJlZm9yZSgpOworICAgIExh
eW91dFVuaXQgbGVnZW5kTG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHRGb3JDaGlsZChsZWdl
bmQpOworCisgICAgTGF5b3V0VW5pdCBsZWdlbmRMb2dpY2FsVG9wOworICAgIExheW91dFVuaXQg
Y29sbGFwc2VkTGVnZW5kRXh0ZW50OworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGFjY291bnQg
Zm9yIHRoZSBsZWdlbmQncyBtYXJnaW4gYmVmb3JlIHRvby4KKyAgICBpZiAoZmllbGRzZXRCb3Jk
ZXJCZWZvcmUgPiBsZWdlbmRMb2dpY2FsSGVpZ2h0KSB7CisgICAgICAgIC8vIFRoZSA8bGVnZW5k
PiBpcyBzbWFsbGVyIHRoYW4gdGhlIGFzc29jaWF0ZWQgZmllbGRzZXQgYmVmb3JlIGJvcmRlcgor
ICAgICAgICAvLyBzbyB0aGUgbGF0dGVyIGRldGVybWluZXMgcG9zaXRpb25pbmcgb2YgdGhlIDxs
ZWdlbmQ+LiBUaGUgc2l6aW5nIGRlcGVuZHMKKyAgICAgICAgLy8gb24gdGhlIGxlZ2VuZCdzIG1h
cmdpbnMgYXMgd2Ugd2FudCB0byBzdGlsbCBmb2xsb3cgdGhlIGF1dGhvcidzIGN1ZXMuCisgICAg
ICAgIC8vIEZpcmVmb3ggY29tcGxldGVseSBpZ25vcmVzIHRoZSBtYXJnaW5zIGluIHRoaXMgY2Fz
ZSB3aGljaCBzZWVtcyB3cm9uZy4KKyAgICAgICAgbGVnZW5kTG9naWNhbFRvcCA9IChmaWVsZHNl
dEJvcmRlckJlZm9yZSAtIGxlZ2VuZExvZ2ljYWxIZWlnaHQpIC8gMjsKKyAgICAgICAgY29sbGFw
c2VkTGVnZW5kRXh0ZW50ID0gc3RkOjptYXg8TGF5b3V0VW5pdD4oZmllbGRzZXRCb3JkZXJCZWZv
cmUsIGxlZ2VuZExvZ2ljYWxUb3AgKyBsZWdlbmRMb2dpY2FsSGVpZ2h0ICsgbWFyZ2luQWZ0ZXJG
b3JDaGlsZChsZWdlbmQpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgY29sbGFwc2VkTGVnZW5kRXh0
ZW50ID0gbGVnZW5kTG9naWNhbEhlaWdodCArIG1hcmdpbkFmdGVyRm9yQ2hpbGQobGVnZW5kKTsK
KworICAgIHNldExvZ2ljYWxUb3BGb3JDaGlsZChsZWdlbmQsIGxlZ2VuZExvZ2ljYWxUb3ApOwor
ICAgIHNldExvZ2ljYWxIZWlnaHQocGFkZGluZ0JlZm9yZSgpICsgY29sbGFwc2VkTGVnZW5kRXh0
ZW50KTsKKworICAgIHJldHVybiAmbGVnZW5kOworfQorCitSZW5kZXJCb3gqIFJlbmRlckZpZWxk
c2V0OjpmaW5kTGVnZW5kKEZpbmRMZWdlbmRPcHRpb24gb3B0aW9uKQoreworICAgIGZvciAoYXV0
byYgbGVnZW5kIDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyQm94PigqdGhpcykpIHsKKyAgICAgICAg
aWYgKG9wdGlvbiA9PSBJZ25vcmVGbG9hdGluZ09yT3V0T2ZGbG93ICYmIGxlZ2VuZC5pc0Zsb2F0
aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgCisgICAgICAgIGlmIChpczxIVE1MTGVnZW5kRWxlbWVudD4obGVnZW5kLmVsZW1lbnQoKSkp
CisgICAgICAgICAgICByZXR1cm4gJmxlZ2VuZDsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK3ZvaWQgUmVuZGVyRmllbGRzZXQ6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKK3sKKyAgICBpZiAo
IXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QoKnRoaXMpKQorICAgICAgICByZXR1cm47
CisKKyAgICBMYXlvdXRSZWN0IHBhaW50UmVjdChwYWludE9mZnNldCwgc2l6ZSgpKTsKKyAgICBS
ZW5kZXJCb3gqIGxlZ2VuZCA9IGZpbmRMZWdlbmQoKTsKKyAgICBpZiAoIWxlZ2VuZCkKKyAgICAg
ICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6cGFpbnRCb3hEZWNvcmF0aW9ucyhwYWludEluZm8s
IHBhaW50T2Zmc2V0KTsKKworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIHdvcmsgd2l0aCAicmwi
IGFuZCAiYnQiIGJsb2NrIGZsb3cgZGlyZWN0aW9ucy4gIEluIHRob3NlCisgICAgLy8gY2FzZXMg
dGhlIGxlZ2VuZCBpcyBlbWJlZGRlZCBpbiB0aGUgcmlnaHQgYW5kIGJvdHRvbSBib3JkZXJzIHJl
c3BlY3RpdmVseS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDcyMzYKKyAgICBpZiAoc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7Cisg
ICAgICAgIExheW91dFVuaXQgeU9mZiA9IChsZWdlbmQtPnkoKSA+IDApID8gTGF5b3V0VW5pdCgp
IDogKGxlZ2VuZC0+aGVpZ2h0KCkgLSBib3JkZXJUb3AoKSkgLyAyOworICAgICAgICBwYWludFJl
Y3Quc2V0SGVpZ2h0KHBhaW50UmVjdC5oZWlnaHQoKSAtIHlPZmYpOworICAgICAgICBwYWludFJl
Y3Quc2V0WShwYWludFJlY3QueSgpICsgeU9mZik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgTGF5
b3V0VW5pdCB4T2ZmID0gKGxlZ2VuZC0+eCgpID4gMCkgPyBMYXlvdXRVbml0KCkgOiAobGVnZW5k
LT53aWR0aCgpIC0gYm9yZGVyTGVmdCgpKSAvIDI7CisgICAgICAgIHBhaW50UmVjdC5zZXRXaWR0
aChwYWludFJlY3Qud2lkdGgoKSAtIHhPZmYpOworICAgICAgICBwYWludFJlY3Quc2V0WChwYWlu
dFJlY3QueCgpICsgeE9mZik7CisgICAgfQorCisgICAgaWYgKCFib3hTaGFkb3dTaG91bGRCZUFw
cGxpZWRUb0JhY2tncm91bmQocGFpbnRSZWN0LmxvY2F0aW9uKCksIGRldGVybWluZUJhY2tncm91
bmRCbGVlZEF2b2lkYW5jZShwYWludEluZm8uY29udGV4dCgpKSkpCisgICAgICAgIHBhaW50Qm94
U2hhZG93KHBhaW50SW5mbywgcGFpbnRSZWN0LCBzdHlsZSgpLCBOb3JtYWwpOworICAgIHBhaW50
RmlsbExheWVycyhwYWludEluZm8sIHN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yKENTU1By
b3BlcnR5QmFja2dyb3VuZENvbG9yKSwgc3R5bGUoKS5iYWNrZ3JvdW5kTGF5ZXJzKCksIHBhaW50
UmVjdCk7CisgICAgcGFpbnRCb3hTaGFkb3cocGFpbnRJbmZvLCBwYWludFJlY3QsIHN0eWxlKCks
IEluc2V0KTsKKworICAgIGlmICghc3R5bGUoKS5oYXNCb3JkZXIoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIC8vIENyZWF0ZSBhIGNsaXBwaW5nIHJlZ2lvbiBhcm91bmQgdGhlIGxlZ2Vu
ZCBhbmQgcGFpbnQgdGhlIGJvcmRlciBhcyBub3JtYWwKKyAgICBHcmFwaGljc0NvbnRleHQmIGdy
YXBoaWNzQ29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0KCk7CisgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGdyYXBoaWNzQ29udGV4dCk7CisKKyAgICAvLyBGSVhNRTog
V2UgbmVlZCB0byB3b3JrIHdpdGggInJsIiBhbmQgImJ0IiBibG9jayBmbG93IGRpcmVjdGlvbnMu
ICBJbiB0aG9zZQorICAgIC8vIGNhc2VzIHRoZSBsZWdlbmQgaXMgZW1iZWRkZWQgaW4gdGhlIHJp
Z2h0IGFuZCBib3R0b20gYm9yZGVycyByZXNwZWN0aXZlbHkuCisgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MjM2CisgICAgTGF5b3V0UmVjdCBjbGlwUmVj
dDsKKyAgICBpZiAoc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7CisgICAgICAg
IGNsaXBSZWN0LnNldFgocGFpbnRSZWN0LngoKSArIGxlZ2VuZC0+eCgpKTsKKyAgICAgICAgY2xp
cFJlY3Quc2V0WShwYWludFJlY3QueSgpKTsKKyAgICAgICAgY2xpcFJlY3Quc2V0V2lkdGgobGVn
ZW5kLT53aWR0aCgpKTsKKyAgICAgICAgY2xpcFJlY3Quc2V0SGVpZ2h0KHN0ZDo6bWF4PExheW91
dFVuaXQ+KHN0eWxlKCkuYm9yZGVyVG9wV2lkdGgoKSwgbGVnZW5kLT5oZWlnaHQoKSAtICgobGVn
ZW5kLT5oZWlnaHQoKSAtIGJvcmRlclRvcCgpKSAvIDIpKSk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgY2xpcFJlY3Quc2V0WChwYWludFJlY3QueCgpKTsKKyAgICAgICAgY2xpcFJlY3Quc2V0WShw
YWludFJlY3QueSgpICsgbGVnZW5kLT55KCkpOworICAgICAgICBjbGlwUmVjdC5zZXRXaWR0aChz
dGQ6Om1heDxMYXlvdXRVbml0PihzdHlsZSgpLmJvcmRlckxlZnRXaWR0aCgpLCBsZWdlbmQtPndp
ZHRoKCkpKTsKKyAgICAgICAgY2xpcFJlY3Quc2V0SGVpZ2h0KGxlZ2VuZC0+aGVpZ2h0KCkpOwor
ICAgIH0KKyAgICBncmFwaGljc0NvbnRleHQuY2xpcE91dChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxz
KGNsaXBSZWN0LCBkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKKworICAgIHBhaW50
Qm9yZGVyKHBhaW50SW5mbywgcGFpbnRSZWN0LCBzdHlsZSgpKTsKK30KKwordm9pZCBSZW5kZXJG
aWVsZHNldDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzZXQpCit7CisgICAgaWYgKHN0eWxlKCkudmlzaWJpbGl0eSgpICE9IFZJU0lC
TEUgfHwgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VNYXNrKQorICAgICAgICByZXR1cm47
CisKKyAgICBMYXlvdXRSZWN0IHBhaW50UmVjdCA9IExheW91dFJlY3QocGFpbnRPZmZzZXQsIHNp
emUoKSk7CisgICAgUmVuZGVyQm94KiBsZWdlbmQgPSBmaW5kTGVnZW5kKCk7CisgICAgaWYgKCFs
ZWdlbmQpCisgICAgICAgIHJldHVybiBSZW5kZXJCbG9ja0Zsb3c6OnBhaW50TWFzayhwYWludElu
Zm8sIHBhaW50T2Zmc2V0KTsKKworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIHdvcmsgd2l0aCAi
cmwiIGFuZCAiYnQiIGJsb2NrIGZsb3cgZGlyZWN0aW9ucy4gIEluIHRob3NlCisgICAgLy8gY2Fz
ZXMgdGhlIGxlZ2VuZCBpcyBlbWJlZGRlZCBpbiB0aGUgcmlnaHQgYW5kIGJvdHRvbSBib3JkZXJz
IHJlc3BlY3RpdmVseS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDcyMzYKKyAgICBpZiAoc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7
CisgICAgICAgIExheW91dFVuaXQgeU9mZiA9IChsZWdlbmQtPnkoKSA+IDApID8gTGF5b3V0VW5p
dCgpIDogKGxlZ2VuZC0+aGVpZ2h0KCkgLSBib3JkZXJUb3AoKSkgLyAyOworICAgICAgICBwYWlu
dFJlY3QuZXhwYW5kKDAsIC15T2ZmKTsKKyAgICAgICAgcGFpbnRSZWN0Lm1vdmUoMCwgeU9mZik7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgTGF5b3V0VW5pdCB4T2ZmID0gKGxlZ2VuZC0+eCgpID4g
MCkgPyBMYXlvdXRVbml0KCkgOiAobGVnZW5kLT53aWR0aCgpIC0gYm9yZGVyTGVmdCgpKSAvIDI7
CisgICAgICAgIHBhaW50UmVjdC5leHBhbmQoLXhPZmYsIDApOworICAgICAgICBwYWludFJlY3Qu
bW92ZSh4T2ZmLCAwKTsKKyAgICB9CisKKyAgICBwYWludE1hc2tJbWFnZXMocGFpbnRJbmZvLCBw
YWludFJlY3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWVsZHNldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNTgyYzljYjg1MzYyOWRiNzYz
NTczMTJjMmQ1NjhkYTRlODVjMmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMp
IDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMp
IDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDYsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiUmVu
ZGVyQmxvY2tGbG93LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTEZpZWxk
U2V0RWxlbWVudDsKKworY2xhc3MgUmVuZGVyRmllbGRzZXQgZmluYWwgOiBwdWJsaWMgUmVuZGVy
QmxvY2tGbG93IHsKK3B1YmxpYzoKKyAgICBSZW5kZXJGaWVsZHNldChIVE1MRmllbGRTZXRFbGVt
ZW50JiwgUmVuZGVyU3R5bGUmJik7CisKKyAgICBlbnVtIEZpbmRMZWdlbmRPcHRpb24geyBJZ25v
cmVGbG9hdGluZ09yT3V0T2ZGbG93LCBJbmNsdWRlRmxvYXRpbmdPck91dE9mRmxvdyB9OworICAg
IFJlbmRlckJveCogZmluZExlZ2VuZChGaW5kTGVnZW5kT3B0aW9uID0gSWdub3JlRmxvYXRpbmdP
ck91dE9mRmxvdyk7CisKKyAgICBIVE1MRmllbGRTZXRFbGVtZW50JiBmaWVsZFNldEVsZW1lbnQo
KSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxIVE1MRmllbGRTZXRFbGVtZW50Pihub2RlRm9yTm9u
QW5vbnltb3VzKCkpOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBlbGVtZW50KCkgY29uc3QgPSBk
ZWxldGU7CisKKyAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gIlJlbmRlckZpZWxkU2V0IjsgfQorICAgIGJvb2wgaXNGaWVsZHNldCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKworICAgIFJlbmRlck9iamVjdCogbGF5b3V0U3BlY2lh
bEV4Y2x1ZGVkQ2hpbGQoYm9vbCByZWxheW91dENoaWxkcmVuKSBvdmVycmlkZTsKKworICAgIHZv
aWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKKyAgICBib29sIGF2
b2lkc0Zsb2F0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKworICAgIHZvaWQg
cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJy
aWRlOworICAgIHZvaWQgcGFpbnRNYXNrKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikg
b3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfUkVOREVSX09CSkVDVChSZW5kZXJGaWVsZHNldCwgaXNGaWVsZHNldCgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggZjMx
OTM2NDZhN2EyMWNjMzJjNzQ3OTM4ZWIzN2E3MjBiZDY2ZDA3Mi4uMTNhOTFjOWU4MzEwOTc3ZWMx
MzA4YTc5YjgwNWRkZTU4YThjMWY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxleGlibGVCb3guY3BwCkBAIC03OSwxNiArNzksMTIgQEAgY29uc3QgY2hhciogUmVu
ZGVyRmxleGlibGVCb3g6OnJlbmRlck5hbWUoKSBjb25zdAogCiB2b2lkIFJlbmRlckZsZXhpYmxl
Qm94Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2Fs
V2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3QKIHsKLSAgICBMYXlvdXRV
bml0IGNoaWxkTWluV2lkdGg7Ci0gICAgTGF5b3V0VW5pdCBjaGlsZE1heFdpZHRoOwotICAgIGJv
b2wgaGFkRXhjbHVkZWRDaGlsZHJlbiA9IGNvbXB1dGVQcmVmZXJyZWRXaWR0aHNGb3JFeGNsdWRl
ZENoaWxkcmVuKGNoaWxkTWluV2lkdGgsIGNoaWxkTWF4V2lkdGgpOwotCiAgICAgLy8gRklYTUU6
IFdlJ3JlIGlnbm9yaW5nIGZsZXgtYmFzaXMgaGVyZSBhbmQgd2Ugc2hvdWxkbid0LiBXZSBjYW4n
dCBzdGFydAogICAgIC8vIGhvbm9yaW5nIGl0IHRob3VnaCB1bnRpbCB0aGUgZmxleCBzaG9ydGhh
bmQgc3RvcHMgc2V0dGluZyBpdCB0byAwLiBTZWUKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2MTE3IGFuZAogICAgIC8vIGh0dHBzOi8vY3JidWcuY29t
LzI0MDc2NS4KICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENoaWxkQm94KCk7IGNo
aWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7Ci0gICAgICAgIGlmIChjaGls
ZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgfHwgY2hpbGQtPmlzRXhjbHVkZWRGcm9tTm9ybWFs
TGF5b3V0KCkpCisgICAgICAgIGlmIChjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCiAgICAgICAgIExheW91dFVuaXQgbWFyZ2lu
ID0gbWFyZ2luSW50cmluc2ljTG9naWNhbFdpZHRoRm9yQ2hpbGQoKmNoaWxkKTsKQEAgLTEyMSwx
MSArMTE3LDYgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZUludHJpbnNpY0xvZ2lj
YWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHQKICAgICBtaW5Mb2dpY2FsV2lkdGgg
PSBzdGQ6Om1heChMYXlvdXRVbml0KCksIG1pbkxvZ2ljYWxXaWR0aCk7CiAgICAgbWF4TG9naWNh
bFdpZHRoID0gc3RkOjptYXgoTGF5b3V0VW5pdCgpLCBtYXhMb2dpY2FsV2lkdGgpOwogICAgIAot
ICAgIGlmIChoYWRFeGNsdWRlZENoaWxkcmVuKSB7Ci0gICAgICAgIG1pbkxvZ2ljYWxXaWR0aCA9
IHN0ZDo6bWF4KG1pbkxvZ2ljYWxXaWR0aCwgY2hpbGRNaW5XaWR0aCk7Ci0gICAgICAgIG1heExv
Z2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG1heExvZ2ljYWxXaWR0aCwgY2hpbGRNYXhXaWR0aCk7Ci0g
ICAgfQotCiAgICAgTGF5b3V0VW5pdCBzY3JvbGxiYXJXaWR0aChzY3JvbGxiYXJMb2dpY2FsV2lk
dGgoKSk7CiAgICAgbWF4TG9naWNhbFdpZHRoICs9IHNjcm9sbGJhcldpZHRoOwogICAgIG1pbkxv
Z2ljYWxXaWR0aCArPSBzY3JvbGxiYXJXaWR0aDsKQEAgLTE4Myw3ICsxNzQsNyBAQCBzdGQ6Om9w
dGlvbmFsPGludD4gUmVuZGVyRmxleGlibGVCb3g6OmZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QK
ICAgICBSZW5kZXJCb3gqIGJhc2VsaW5lQ2hpbGQgPSBudWxscHRyOwogICAgIGludCBjaGlsZE51
bWJlciA9IDA7CiAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gbV9vcmRlckl0ZXJhdG9yLmZp
cnN0KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci5uZXh0KCkpIHsKLSAgICAgICAg
aWYgKG1fb3JkZXJJdGVyYXRvci5zaG91bGRTa2lwQ2hpbGQoKmNoaWxkKSkKKyAgICAgICAgaWYg
KGNoaWxkLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICBpZiAoYWxpZ25tZW50Rm9yQ2hpbGQoKmNoaWxkKSA9PSBJdGVtUG9zaXRpb25CYXNl
bGluZSAmJiAhaGFzQXV0b01hcmdpbnNJbkNyb3NzQXhpcygqY2hpbGQpKSB7CiAgICAgICAgICAg
ICBiYXNlbGluZUNoaWxkID0gY2hpbGQ7CkBAIC0yODQsMTQgKzI3NSw4IEBAIHZvaWQgUmVuZGVy
RmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5p
dCkKIAogICAgIHByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpOwogCi0gICAgLy8gRmll
bGRzZXRzIG5lZWQgdG8gZmluZCB0aGVpciBsZWdlbmQgYW5kIHBvc2l0aW9uIGl0IGluc2lkZSB0
aGUgYm9yZGVyIG9mIHRoZSBvYmplY3QuCi0gICAgLy8gVGhlIGxlZ2VuZCB0aGVuIGdldHMgc2tp
cHBlZCBkdXJpbmcgbm9ybWFsIGxheW91dC4gVGhlIHNhbWUgaXMgdHJ1ZSBmb3IgcnVieSB0ZXh0
LgotICAgIC8vIEl0IGRvZXNuJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBub3JtYWwgbGF5b3V0IHBy
b2Nlc3MgYnV0IGlzIGluc3RlYWQgc2tpcHBlZC4KLSAgICBsYXlvdXRFeGNsdWRlZENoaWxkcmVu
KHJlbGF5b3V0Q2hpbGRyZW4pOwotCiAgICAgQ2hpbGRGcmFtZVJlY3RzIG9sZENoaWxkUmVjdHM7
CiAgICAgYXBwZW5kQ2hpbGRGcmFtZVJlY3RzKG9sZENoaWxkUmVjdHMpOwotCiAgICAgbGF5b3V0
RmxleEl0ZW1zKHJlbGF5b3V0Q2hpbGRyZW4pOwogCiAgICAgZW5kQW5kQ29tbWl0VXBkYXRlU2Ny
b2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24oKTsKQEAgLTUxNyw2ICs1MDIsOCBAQCBMYXlv
dXRVbml0IFJlbmRlckZsZXhpYmxlQm94OjptYWluQXhpc0NvbnRlbnRFeHRlbnQoTGF5b3V0VW5p
dCBjb250ZW50TG9naWNhbEhlaQogICAgIHJldHVybiBjb250ZW50TG9naWNhbFdpZHRoKCk7CiB9
CiAKKy8vIE1FUkdFUE9JTlQKKwogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJGbGV4
aWJsZUJveDo6Y29tcHV0ZU1haW5BeGlzRXh0ZW50Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiBj
aGlsZCwgU2l6ZVR5cGUgc2l6ZVR5cGUsIGNvbnN0IExlbmd0aCYgc2l6ZSkKIHsKICAgICAvLyBJ
ZiB3ZSBoYXZlIGEgaG9yaXpvbnRhbCBmbG93LCB0aGF0IG1lYW5zIHRoZSBtYWluIHNpemUgaXMg
dGhlIHdpZHRoLgpAQCAtODU5LDEwICs4NDYsOSBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94Ojps
YXlvdXRGbGV4SXRlbXMoYm9vbCByZWxheW91dENoaWxkcmVuKQogICAgIFZlY3RvcjxGbGV4SXRl
bT4gYWxsSXRlbXM7CiAgICAgbV9vcmRlckl0ZXJhdG9yLmZpcnN0KCk7CiAgICAgZm9yIChSZW5k
ZXJCb3gqIGNoaWxkID0gbV9vcmRlckl0ZXJhdG9yLmN1cnJlbnRDaGlsZCgpOyBjaGlsZDsgY2hp
bGQgPSBtX29yZGVySXRlcmF0b3IubmV4dCgpKSB7Ci0gICAgICAgIGlmIChtX29yZGVySXRlcmF0
b3Iuc2hvdWxkU2tpcENoaWxkKCpjaGlsZCkpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5pc091dE9m
Rmxvd1Bvc2l0aW9uZWQoKSkgewogICAgICAgICAgICAgLy8gT3V0LW9mLWZsb3cgY2hpbGRyZW4g
YXJlIG5vdCBmbGV4IGl0ZW1zLCBzbyB3ZSBza2lwIHRoZW0gaGVyZS4KLSAgICAgICAgICAgIGlm
IChjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICAgICAgcHJlcGFy
ZUNoaWxkRm9yUG9zaXRpb25lZExheW91dCgqY2hpbGQpOworICAgICAgICAgICAgcHJlcGFyZUNo
aWxkRm9yUG9zaXRpb25lZExheW91dCgqY2hpbGQpOwogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KICAgICAgICAgYWxsSXRlbXMuYXBwZW5kKGNvbnN0cnVjdEZsZXhJdGVtKCpjaGls
ZCwgcmVsYXlvdXRDaGlsZHJlbikpOwpAQCAtMTA1Myw3ICsxMDM5LDkgQEAgdm9pZCBSZW5kZXJG
bGV4aWJsZUJveDo6cHJlcGFyZU9yZGVySXRlcmF0b3JBbmRNYXJnaW5zKCkKICAgICBPcmRlckl0
ZXJhdG9yUG9wdWxhdG9yIHBvcHVsYXRvcihtX29yZGVySXRlcmF0b3IpOwogCiAgICAgZm9yIChS
ZW5kZXJCb3gqIGNoaWxkID0gZmlyc3RDaGlsZEJveCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+
bmV4dFNpYmxpbmdCb3goKSkgewotICAgICAgICBpZiAoIXBvcHVsYXRvci5jb2xsZWN0Q2hpbGQo
KmNoaWxkKSkKKyAgICAgICAgcG9wdWxhdG9yLmNvbGxlY3RDaGlsZCgqY2hpbGQpOworCisgICAg
ICAgIGlmIChjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICBjb250
aW51ZTsKIAogICAgICAgICAvLyBCZWZvcmUgcnVubmluZyB0aGUgZmxleCBhbGdvcml0aG0sICdh
dXRvJyBoYXMgYSBtYXJnaW4gb2YgMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcAppbmRleCBiZTViMGQyNTUzY2UwZmFmNDYyODAyY2YzZmQ3YzA2ODI5NTRkODQ5Li42YWM0
N2RlZGE1ODllNDJlMTcwNzJjNDM3MDY0OWViZWEwMWVjNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC0yNDEsMTEgKzI0MSw2IEBAIHZvaWQgUmVuZGVyR3Jp
ZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIHNl
dExvZ2ljYWxIZWlnaHQoMCk7CiAgICAgdXBkYXRlTG9naWNhbFdpZHRoKCk7CiAKLSAgICAvLyBG
aWVsZHNldHMgbmVlZCB0byBmaW5kIHRoZWlyIGxlZ2VuZCBhbmQgcG9zaXRpb24gaXQgaW5zaWRl
IHRoZSBib3JkZXIgb2YgdGhlIG9iamVjdC4KLSAgICAvLyBUaGUgbGVnZW5kIHRoZW4gZ2V0cyBz
a2lwcGVkIGR1cmluZyBub3JtYWwgbGF5b3V0LiBUaGUgc2FtZSBpcyB0cnVlIGZvciBydWJ5IHRl
eHQuCi0gICAgLy8gSXQgZG9lc24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIG5vcm1hbCBsYXlvdXQg
cHJvY2VzcyBidXQgaXMgaW5zdGVhZCBza2lwcGVkLgotICAgIGxheW91dEV4Y2x1ZGVkQ2hpbGRy
ZW4ocmVsYXlvdXRDaGlsZHJlbik7Ci0KICAgICBwbGFjZUl0ZW1zT25HcmlkKG1fZ3JpZCwgVHJh
Y2tTaXppbmcpOwogCiAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgbG9naWNhbCB3aWR0aCBpcyBh
bHdheXMgZGVmaW5pdGUgYXMgdGhlIGFib3ZlIGNhbGwgdG8gdXBkYXRlTG9naWNhbFdpZHRoKCkK
QEAgLTM5OCwyMSArMzkzLDEyIEBAIExheW91dFVuaXQgUmVuZGVyR3JpZDo6Z3V0dGVyc1NpemUo
Y29uc3QgR3JpZCYgZ3JpZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpCiAKIHZvaWQgUmVu
ZGVyR3JpZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9n
aWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0CiB7Ci0gICAgTGF5
b3V0VW5pdCBjaGlsZE1pbldpZHRoOwotICAgIExheW91dFVuaXQgY2hpbGRNYXhXaWR0aDsKLSAg
ICBib29sIGhhZEV4Y2x1ZGVkQ2hpbGRyZW4gPSBjb21wdXRlUHJlZmVycmVkV2lkdGhzRm9yRXhj
bHVkZWRDaGlsZHJlbihjaGlsZE1pbldpZHRoLCBjaGlsZE1heFdpZHRoKTsKLSAgICAKICAgICBH
cmlkIGdyaWQoY29uc3RfY2FzdDxSZW5kZXJHcmlkJj4oKnRoaXMpKTsKICAgICBwbGFjZUl0ZW1z
T25HcmlkKGdyaWQsIEludHJpbnNpY1NpemVDb21wdXRhdGlvbik7CiAKICAgICBHcmlkVHJhY2tT
aXppbmdBbGdvcml0aG0gYWxnb3JpdGhtKHRoaXMsIGdyaWQpOwogICAgIGNvbXB1dGVUcmFja1Np
emVzRm9ySW5kZWZpbml0ZVNpemUoYWxnb3JpdGhtLCBGb3JDb2x1bW5zLCBncmlkLCBtaW5Mb2dp
Y2FsV2lkdGgsIG1heExvZ2ljYWxXaWR0aCk7CiAKLSAgICBpZiAoaGFkRXhjbHVkZWRDaGlsZHJl
bikgewotICAgICAgICBtaW5Mb2dpY2FsV2lkdGggPSBzdGQ6Om1heChtaW5Mb2dpY2FsV2lkdGgs
IGNoaWxkTWluV2lkdGgpOwotICAgICAgICBtYXhMb2dpY2FsV2lkdGggPSBzdGQ6Om1heChtYXhM
b2dpY2FsV2lkdGgsIGNoaWxkTWF4V2lkdGgpOwotICAgIH0KLQogICAgIExheW91dFVuaXQgc2Ny
b2xsYmFyV2lkdGggPSBpbnRyaW5zaWNTY3JvbGxiYXJMb2dpY2FsV2lkdGgoKTsKICAgICBtaW5M
b2dpY2FsV2lkdGggKz0gc2Nyb2xsYmFyV2lkdGg7CiAgICAgbWF4TG9naWNhbFdpZHRoICs9IHNj
cm9sbGJhcldpZHRoOwpAQCAtNTk1LDcgKzU4MSw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJ
dGVtc09uR3JpZChHcmlkJiBncmlkLCBTaXppbmdPcGVyYXRpb24gc2l6aW5nT3BlcmF0aW9uKSBj
CiAgICAgVmVjdG9yPFJlbmRlckJveCo+IHNwZWNpZmllZE1ham9yQXhpc0F1dG9HcmlkSXRlbXM7
CiAgICAgYm9vbCBoYXNBbnlPcnRob2dvbmFsR3JpZEl0ZW0gPSBmYWxzZTsKICAgICBmb3IgKGF1
dG8qIGNoaWxkID0gZ3JpZC5vcmRlckl0ZXJhdG9yKCkuZmlyc3QoKTsgY2hpbGQ7IGNoaWxkID0g
Z3JpZC5vcmRlckl0ZXJhdG9yKCkubmV4dCgpKSB7Ci0gICAgICAgIGlmIChncmlkLm9yZGVySXRl
cmF0b3IoKS5zaG91bGRTa2lwQ2hpbGQoKmNoaWxkKSkKKyAgICAgICAgaWYgKGNoaWxkLT5pc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGhh
c0FueU9ydGhvZ29uYWxHcmlkSXRlbSA9IGhhc0FueU9ydGhvZ29uYWxHcmlkSXRlbSB8fCBpc09y
dGhvZ29uYWxDaGlsZCgqY2hpbGQpOwpAQCAtNjM4LDcgKzYyNCw3IEBAIHZvaWQgUmVuZGVyR3Jp
ZDo6cGxhY2VJdGVtc09uR3JpZChHcmlkJiBncmlkLCBTaXppbmdPcGVyYXRpb24gc2l6aW5nT3Bl
cmF0aW9uKSBjCiAKICNpZiBFTkFCTEUoQVNTRVJUKQogICAgIGZvciAoYXV0byogY2hpbGQgPSBn
cmlkLm9yZGVySXRlcmF0b3IoKS5maXJzdCgpOyBjaGlsZDsgY2hpbGQgPSBncmlkLm9yZGVySXRl
cmF0b3IoKS5uZXh0KCkpIHsKLSAgICAgICAgaWYgKGdyaWQub3JkZXJJdGVyYXRvcigpLnNob3Vs
ZFNraXBDaGlsZCgqY2hpbGQpKQorICAgICAgICBpZiAoY2hpbGQtPmlzT3V0T2ZGbG93UG9zaXRp
b25lZCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgR3JpZEFyZWEgYXJlYSA9
IGdyaWQuZ3JpZEl0ZW1BcmVhKCpjaGlsZCk7CkBAIC02NTgsOSArNjQ0LDExIEBAIHZvaWQgUmVu
ZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKEdyaWQmIGdyaWQp
IGNvbnN0CiAgICAgdW5zaWduZWQgbWF4aW11bUNvbHVtbkluZGV4ID0gR3JpZFBvc2l0aW9uc1Jl
c29sdmVyOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudChzdHlsZSgpLCBhdXRvUmVwZWF0Q29sdW1u
cyk7CiAKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENoaWxkQm94KCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7Ci0gICAgICAgIGlmICghcG9wdWxh
dG9yLmNvbGxlY3RDaGlsZCgqY2hpbGQpKQorICAgICAgICBpZiAoY2hpbGQtPmlzT3V0T2ZGbG93
UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIAorCisgICAgICAg
IHBvcHVsYXRvci5jb2xsZWN0Q2hpbGQoKmNoaWxkKTsKKwogICAgICAgICBHcmlkU3BhbiByb3dQ
b3NpdGlvbnMgPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJv
bVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yUm93cywgYXV0b1JlcGVhdFJvd3MpOwogICAgICAg
ICBpZiAoIXJvd1Bvc2l0aW9ucy5pc0luZGVmaW5pdGUoKSkgewogICAgICAgICAgICAgc21hbGxl
c3RSb3dTdGFydCA9IHN0ZDo6bWluKHNtYWxsZXN0Um93U3RhcnQsIHJvd1Bvc2l0aW9ucy51bnRy
YW5zbGF0ZWRTdGFydExpbmUoKSk7CkBAIC04OTYsMTAgKzg4NCw4IEBAIHZvaWQgUmVuZGVyR3Jp
ZDo6bGF5b3V0R3JpZEl0ZW1zKCkKICAgICBwb3B1bGF0ZUdyaWRQb3NpdGlvbnNGb3JEaXJlY3Rp
b24oRm9yUm93cyk7CiAKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENoaWxkQm94
KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7Ci0gICAgICAgIAot
ICAgICAgICBpZiAobV9ncmlkLm9yZGVySXRlcmF0b3IoKS5zaG91bGRTa2lwQ2hpbGQoKmNoaWxk
KSkgewotICAgICAgICAgICAgaWYgKGNoaWxkLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKLSAg
ICAgICAgICAgICAgICBwcmVwYXJlQ2hpbGRGb3JQb3NpdGlvbmVkTGF5b3V0KCpjaGlsZCk7Cisg
ICAgICAgIGlmIChjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKKyAgICAgICAgICAg
IHByZXBhcmVDaGlsZEZvclBvc2l0aW9uZWRMYXlvdXQoKmNoaWxkKTsKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5jcHAKaW5kZXggMWQ1NjI4YzhmMTNjOGI2
NjFmYjFkNDMzMmQ2MDJlMTFkYzBjZjdhOC4uMTU4OWE3OTVmNjA1NmUwNmMzMzU2NjE4MWM0ZTJh
YTQwNjdjNzE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uRmxvd1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5jcHAKQEAgLTE1MywxNCArMTUzLDYgQEAgdm9pZCBS
ZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQ6OnBvcHVsYXRlKCkKICAgICBMYXlvdXRTdGF0ZURp
c2FibGVyIGxheW91dFN0YXRlRGlzYWJsZXIodmlldygpKTsKICAgICBSZW5kZXJUcmVlSW50ZXJu
YWxNdXRhdGlvblNjb3BlIHJlcGFyZW50aW5nSXNPbih2aWV3KCkpOwogICAgIG11bHRpY29sQ29u
dGFpbmVyLT5tb3ZlQ2hpbGRyZW5Ubyh0aGlzLCBtdWx0aWNvbENvbnRhaW5lci0+Zmlyc3RDaGls
ZCgpLCB0aGlzLCB0cnVlKTsKLSAgICAKLSAgICBpZiAobXVsdGljb2xDb250YWluZXItPmlzRmll
bGRzZXQoKSkgewotICAgICAgICAvLyBLZWVwIGxlZ2VuZHMgb3V0IG9mIHRoZSBmbG93IHRocmVh
ZC4KLSAgICAgICAgZm9yIChhdXRvJiBib3ggOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJCb3g+KCp0
aGlzKSkgewotICAgICAgICAgICAgaWYgKGJveC5pc0xlZ2VuZCgpKQotICAgICAgICAgICAgICAg
IG1vdmVDaGlsZFRvKG11bHRpY29sQ29udGFpbmVyLCAmYm94LCB0cnVlKTsKLSAgICAgICAgfQot
ICAgIH0KIH0KIAogdm9pZCBSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQ6OmV2YWN1YXRlQW5k
RGVzdHJveSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVs
dGlDb2x1bW5TZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29s
dW1uU2V0LmNwcAppbmRleCAxZmQyM2E3ZDExYTJmMzAwNjI1NWM5ZGY3Mjk4YzlhOTZhZDRhYWFj
Li5mNGRjOWY2YTU5NTk5NjMyMjEwNzk3NTQyYWZlOTFiYWQ3Zjk3NjBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKQEAgLTMxOSw3
ICszMTksNyBAQCBib29sIFJlbmRlck11bHRpQ29sdW1uU2V0OjpyZXF1aXJlc0JhbGFuY2luZygp
IGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChSZW5kZXJCb3gqIG5leHQg
PSBSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQ6Om5leHRDb2x1bW5TZXRPclNwYW5uZXJTaWJs
aW5nT2YodGhpcykpIHsKLSAgICAgICAgaWYgKCFuZXh0LT5pc1JlbmRlck11bHRpQ29sdW1uU2V0
KCkgJiYgIW5leHQtPmlzTGVnZW5kKCkpIHsKKyAgICAgICAgaWYgKCFuZXh0LT5pc1JlbmRlck11
bHRpQ29sdW1uU2V0KCkpIHsKICAgICAgICAgICAgIC8vIElmIHdlJ3JlIGZvbGxvd2VkIGJ5IGEg
c3Bhbm5lciwgd2UgbmVlZCB0byBiYWxhbmNlLgogICAgICAgICAgICAgQVNTRVJUKG11bHRpQ29s
dW1uRmxvd1RocmVhZCgpLT5maW5kQ29sdW1uU3Bhbm5lclBsYWNlaG9sZGVyKG5leHQpKTsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAppbmRleCBiYTU1NDBiZDE2MzMyZTVkODZkOWJkMTA2YjU2NjhkODhiMjhlOWQ3Li41
Yzg0YjhiN2MwYTdiYzYxZWIwMmJiMzNkNzllYzdkOWIzODQ3NGRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTU4LDEyICsxNTgsNiBAQCBib29sIFJl
bmRlck9iamVjdDo6aXNMZWdlbmQoKSBjb25zdAogICAgIHJldHVybiBub2RlKCkgJiYgbm9kZSgp
LT5oYXNUYWdOYW1lKGxlZ2VuZFRhZyk7CiB9CiAKLSAgICAKLWJvb2wgUmVuZGVyT2JqZWN0Ojpp
c0ZpZWxkc2V0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbm9kZSgpICYmIG5vZGUoKS0+aGFzVGFn
TmFtZShmaWVsZHNldFRhZyk7Ci19Ci0KIGJvb2wgUmVuZGVyT2JqZWN0Ojppc0hUTUxNYXJxdWVl
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbm9kZSgpICYmIG5vZGUoKS0+cmVuZGVyZXIoKSA9PSB0
aGlzICYmIG5vZGUoKS0+aGFzVGFnTmFtZShtYXJxdWVlVGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAyYmRjYjY4YjI0ZDk1Y2ZlMzY3OGZkZjczYTc5YWE5
ZGZiMDFkYmE2Li40ODJmYzAyYmIyOGI3MThjMWM3MmE2N2I1OTZjOGU5MmZmYjY0ZDEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0yMjYsNyArMjI2LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzRGV0YWlsc01hcmtlcigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRW1iZWRkZWRPYmplY3QoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgaXNGaWVsZHNldCgpIGNvbnN0OworICAgIHZpcnR1
YWwgYm9vbCBpc0ZpZWxkc2V0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNGaWxlVXBsb2FkQ29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzRnJhbWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc0ZyYW1lU2V0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTQ0OCwxMCAr
NDQ4LDYgQEAgcHVibGljOgogICAgIGJvb2wgaGFzT3V0bGluZUF1dG9BbmNlc3RvcigpIGNvbnN0
IHsgcmV0dXJuIG1fYml0ZmllbGRzLmhhc1JhcmVEYXRhKCkgJiYgcmFyZURhdGEoKS5oYXNPdXRs
aW5lQXV0b0FuY2VzdG9yKCk7IH0KICAgICBib29sIGlzUmVnaXN0ZXJlZEZvclZpc2libGVJblZp
ZXdwb3J0Q2FsbGJhY2soKSB7IHJldHVybiBtX2JpdGZpZWxkcy5oYXNSYXJlRGF0YSgpICYmIHJh
cmVEYXRhKCkuaXNSZWdpc3RlcmVkRm9yVmlzaWJsZUluVmlld3BvcnRDYWxsYmFjaygpOyB9CiAK
LSAgICBib29sIGlzRXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9i
aXRmaWVsZHMuaXNFeGNsdWRlZEZyb21Ob3JtYWxMYXlvdXQoKTsgfQotICAgIHZvaWQgc2V0SXNF
eGNsdWRlZEZyb21Ob3JtYWxMYXlvdXQoYm9vbCBleGNsdWRlZCkgeyBtX2JpdGZpZWxkcy5zZXRJ
c0V4Y2x1ZGVkRnJvbU5vcm1hbExheW91dChleGNsdWRlZCk7IH0KLSAgICBib29sIGlzRXhjbHVk
ZWRBbmRQbGFjZWRJbkJvcmRlcigpIGNvbnN0IHsgcmV0dXJuIGlzRXhjbHVkZWRGcm9tTm9ybWFs
TGF5b3V0KCkgJiYgaXNMZWdlbmQoKTsgfQotCiAgICAgZW51bSBWaXNpYmxlSW5WaWV3cG9ydFN0
YXRlIHsKICAgICAgICAgVmlzaWJpbGl0eVVua25vd24sCiAgICAgICAgIFZpc2libGVJblZpZXdw
b3J0LApAQCAtOTA1LDcgKzkwMSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAsIG1faGFzVHJh
bnNmb3JtUmVsYXRlZFByb3BlcnR5KGZhbHNlKQogICAgICAgICAgICAgLCBtX2V2ZXJIYWRMYXlv
dXQoZmFsc2UpCiAgICAgICAgICAgICAsIG1fY2hpbGRyZW5JbmxpbmUoZmFsc2UpCi0gICAgICAg
ICAgICAsIG1faXNFeGNsdWRlZEZyb21Ob3JtYWxMYXlvdXQoZmFsc2UpCiAgICAgICAgICAgICAs
IG1fcG9zaXRpb25lZFN0YXRlKElzU3RhdGljYWxseVBvc2l0aW9uZWQpCiAgICAgICAgICAgICAs
IG1fc2VsZWN0aW9uU3RhdGUoU2VsZWN0aW9uTm9uZSkKICAgICAgICAgICAgICwgbV9mbG93VGhy
ZWFkU3RhdGUoTm90SW5zaWRlRmxvd1RocmVhZCkKQEAgLTk0MSw4ICs5MzYsNiBAQCBwcml2YXRl
OgogCiAgICAgICAgIC8vIGZyb20gUmVuZGVyQmxvY2sKICAgICAgICAgQUREX0JPT0xFQU5fQklU
RklFTEQoY2hpbGRyZW5JbmxpbmUsIENoaWxkcmVuSW5saW5lKTsKLSAgICAgICAgCi0gICAgICAg
IEFERF9CT09MRUFOX0JJVEZJRUxEKGlzRXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0LCBJc0V4Y2x1
ZGVkRnJvbU5vcm1hbExheW91dCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICB1bnNpZ25lZCBt
X3Bvc2l0aW9uZWRTdGF0ZSA6IDI7IC8vIFBvc2l0aW9uZWRTdGF0ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCmluZGV4IGVhMjUxY2Q2NmEwN2M3NDBmZTZlYmMy
N2NjZDkzYjkzMzcyNzI5Y2EuLmM2NWYyYzc5M2UzZWZmYmQ4Y2UzNzYxZWQ3ZTAzZjhlNDA4ZmMx
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5jcHAKQEAgLTIx
MywxOSArMjEzLDE3IEBAIFJlbmRlclJ1YnlSdW4qIFJlbmRlclJ1YnlSdW46OnN0YXRpY0NyZWF0
ZVJ1YnlSdW4oY29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnRSdWJ5CiAgICAgcmV0dXJuIHJlbmRl
cmVyOwogfQogCi12b2lkIFJlbmRlclJ1YnlSdW46OmxheW91dEV4Y2x1ZGVkQ2hpbGRyZW4oYm9v
bCByZWxheW91dENoaWxkcmVuKQorUmVuZGVyT2JqZWN0KiBSZW5kZXJSdWJ5UnVuOjpsYXlvdXRT
cGVjaWFsRXhjbHVkZWRDaGlsZChib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiB7Ci0gICAgUmVuZGVy
QmxvY2tGbG93OjpsYXlvdXRFeGNsdWRlZENoaWxkcmVuKHJlbGF5b3V0Q2hpbGRyZW4pOwotCiAg
ICAgU3RhY2tTdGF0czo6TGF5b3V0Q2hlY2tQb2ludCBsYXlvdXRDaGVja1BvaW50OwogICAgIC8v
IERvbid0IGJvdGhlciBwb3NpdGlvbmluZyB0aGUgUmVuZGVyUnVieVJ1biB5ZXQuCiAgICAgUmVu
ZGVyUnVieVRleHQqIHJ0ID0gcnVieVRleHQoKTsKICAgICBpZiAoIXJ0KQotICAgICAgICByZXR1
cm47Ci0gICAgcnQtPnNldElzRXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KHRydWUpOworICAgICAg
ICByZXR1cm4gMDsKICAgICBpZiAocmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgcnQtPnNldENo
aWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKICAgICBydC0+bGF5b3V0SWZOZWVkZWQoKTsK
KyAgICByZXR1cm4gcnQ7CiB9CiAKIHZvaWQgUmVuZGVyUnVieVJ1bjo6bGF5b3V0KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5oCmluZGV4IGE3MzYxOGU3OWRhZjY5MGZh
MmU5MWEyZTliYWFiMGVmNTg0OTE1NjcuLmM2Njc3ZWM2ZjljZmE4MjhiZTk3YmU1ZDdhYjQyNjZi
MzFkYWQ3ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5
UnVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaApAQCAt
NTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyUnVieUJhc2UqIHJ1YnlCYXNlKCkgY29u
c3Q7CiAgICAgUmVuZGVyUnVieUJhc2UqIHJ1YnlCYXNlU2FmZSgpOyAvLyBjcmVhdGVzIHRoZSBi
YXNlIGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdAogCi0gICAgdm9pZCBsYXlvdXRFeGNsdWRl
ZENoaWxkcmVuKGJvb2wgcmVsYXlvdXRDaGlsZHJlbikgb3ZlcnJpZGU7CisgICAgUmVuZGVyT2Jq
ZWN0KiBsYXlvdXRTcGVjaWFsRXhjbHVkZWRDaGlsZChib29sIHJlbGF5b3V0Q2hpbGRyZW4pIG92
ZXJyaWRlOwogICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsYXlvdXRCbG9j
ayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUhlaWdodCA9IDApIG92ZXJy
aWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAppbmRleCA2ZWJj
N2QwODY3NGQwMDEwZDIyZDM4OGE5YWRiZWFiODgxYjllMGNiLi40NGIzZWQzZDYyZDY2N2ZjNjIy
NjA4MjAwNjg5MzIwNDIyMzdjNTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5jcHAKQEAgLTc1Myw3ICs3NTMsNyBAQCB2b2lkIFJlbmRlclRhYmxlOjpwYWludE9iamVj
dChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAg
ICAgICBwYWludE91dGxpbmUocGFpbnRJbmZvLCBMYXlvdXRSZWN0KHBhaW50T2Zmc2V0LCBzaXpl
KCkpKTsKIH0KIAotdm9pZCBSZW5kZXJUYWJsZTo6YWRqdXN0Qm9yZGVyQm94UmVjdEZvclBhaW50
aW5nKExheW91dFJlY3QmIHJlY3QpCit2b2lkIFJlbmRlclRhYmxlOjpzdWJ0cmFjdENhcHRpb25S
ZWN0KExheW91dFJlY3QmIHJlY3QpIGNvbnN0CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG1fY2FwdGlvbnMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgTGF5b3V0VW5pdCBjYXB0aW9u
TG9naWNhbEhlaWdodCA9IG1fY2FwdGlvbnNbaV0tPmxvZ2ljYWxIZWlnaHQoKSArIG1fY2FwdGlv
bnNbaV0tPm1hcmdpbkJlZm9yZSgpICsgbV9jYXB0aW9uc1tpXS0+bWFyZ2luQWZ0ZXIoKTsKQEAg
LTc2OCw4ICs3NjgsNiBAQCB2b2lkIFJlbmRlclRhYmxlOjphZGp1c3RCb3JkZXJCb3hSZWN0Rm9y
UGFpbnRpbmcoTGF5b3V0UmVjdCYgcmVjdCkKICAgICAgICAgICAgICAgICByZWN0Lm1vdmUoY2Fw
dGlvbkxvZ2ljYWxIZWlnaHQsIDApOwogICAgICAgICB9CiAgICAgfQotICAgIAotICAgIFJlbmRl
ckJsb2NrOjphZGp1c3RCb3JkZXJCb3hSZWN0Rm9yUGFpbnRpbmcocmVjdCk7CiB9CiAKIHZvaWQg
UmVuZGVyVGFibGU6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKQEAgLTc3OCw4ICs3NzYsOCBAQCB2b2lkIFJl
bmRlclRhYmxlOjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYgcAogICAgICAgICByZXR1cm47CiAKICAgICBMYXlvdXRSZWN0IHJlY3Qo
cGFpbnRPZmZzZXQsIHNpemUoKSk7Ci0gICAgYWRqdXN0Qm9yZGVyQm94UmVjdEZvclBhaW50aW5n
KHJlY3QpOwotICAgIAorICAgIHN1YnRyYWN0Q2FwdGlvblJlY3QocmVjdCk7CisKICAgICBCYWNr
Z3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UgPSBkZXRlcm1pbmVCYWNrZ3JvdW5k
QmxlZWRBdm9pZGFuY2UocGFpbnRJbmZvLmNvbnRleHQoKSk7CiAgICAgaWYgKCFib3hTaGFkb3dT
aG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQocmVjdC5sb2NhdGlvbigpLCBibGVlZEF2b2lkYW5j
ZSkpCiAgICAgICAgIHBhaW50Qm94U2hhZG93KHBhaW50SW5mbywgcmVjdCwgc3R5bGUoKSwgTm9y
bWFsKTsKQEAgLTc5Niw3ICs3OTQsNyBAQCB2b2lkIFJlbmRlclRhYmxlOjpwYWludE1hc2soUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldAogICAgICAg
ICByZXR1cm47CiAKICAgICBMYXlvdXRSZWN0IHJlY3QocGFpbnRPZmZzZXQsIHNpemUoKSk7Ci0g
ICAgYWRqdXN0Qm9yZGVyQm94UmVjdEZvclBhaW50aW5nKHJlY3QpOworICAgIHN1YnRyYWN0Q2Fw
dGlvblJlY3QocmVjdCk7CiAKICAgICBwYWludE1hc2tJbWFnZXMocGFpbnRJbmZvLCByZWN0KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKaW5kZXggYjg4MzNkMWVkNTM0
NjhlNmY5NTZkNTIxNzQ2NzRmMjYyYmVhZjczNC4uODJlZDI3NzZmM2I3MjhlMDY0ZmZkZWE3N2Ex
NzEyZDMwZTk4ODFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKQEAg
LTMxNCw3ICszMTQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRPdmVyZmxvd0Zyb21DaGls
ZHJlbigpIGZpbmFsOwogCi0gICAgdm9pZCBhZGp1c3RCb3JkZXJCb3hSZWN0Rm9yUGFpbnRpbmco
TGF5b3V0UmVjdCYpIG92ZXJyaWRlOworICAgIHZvaWQgc3VidHJhY3RDYXB0aW9uUmVjdChMYXlv
dXRSZWN0JikgY29uc3Q7CiAKICAgICB2b2lkIHJlY2FsY0NvbGxhcHNlZEJvcmRlcnMoKTsKICAg
ICB2b2lkIHJlY2FsY1NlY3Rpb25zKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNlbGwuY3BwCmluZGV4IDIxZGNkMjI0ODg0NDY1OTc1ZDdlNjU2ZDM2YWJh
MGQxZTZiNzRmN2YuLjJjZjNiZmJkN2E1ZTM0NmU5YWYyNjc4N2E2NDhiMGI0Nzk4MTY5OGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC0xMzA3
LDggKzEzMDcsNiBAQCB2b2lkIFJlbmRlclRhYmxlQ2VsbDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbgogICAgICAgICByZXR1cm47CiAK
ICAgICBMYXlvdXRSZWN0IHBhaW50UmVjdCA9IExheW91dFJlY3QocGFpbnRPZmZzZXQsIGZyYW1l
UmVjdCgpLnNpemUoKSk7Ci0gICAgYWRqdXN0Qm9yZGVyQm94UmVjdEZvclBhaW50aW5nKHBhaW50
UmVjdCk7Ci0KICAgICBwYWludEJveFNoYWRvdyhwYWludEluZm8sIHBhaW50UmVjdCwgc3R5bGUo
KSwgTm9ybWFsKTsKICAgICAKICAgICAvLyBQYWludCBvdXIgY2VsbCBiYWNrZ3JvdW5kLgpAQCAt
MTMzMSwxMCArMTMyOSw3IEBAIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpwYWludE1hc2soUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mCiAgICAgaWYgKCF0YWJs
ZUVsdC0+Y29sbGFwc2VCb3JkZXJzKCkgJiYgc3R5bGUoKS5lbXB0eUNlbGxzKCkgPT0gSElERSAm
JiAhZmlyc3RDaGlsZCgpKQogICAgICAgICByZXR1cm47CiAgICAKLSAgICBMYXlvdXRSZWN0IHBh
aW50UmVjdCA9IExheW91dFJlY3QocGFpbnRPZmZzZXQsIGZyYW1lUmVjdCgpLnNpemUoKSk7Ci0g
ICAgYWRqdXN0Qm9yZGVyQm94UmVjdEZvclBhaW50aW5nKHBhaW50UmVjdCk7Ci0KLSAgICBwYWlu
dE1hc2tJbWFnZXMocGFpbnRJbmZvLCBwYWludFJlY3QpOworICAgIHBhaW50TWFza0ltYWdlcyhw
YWludEluZm8sIExheW91dFJlY3QocGFpbnRPZmZzZXQsIGZyYW1lUmVjdCgpLnNpemUoKSkpOwog
fQogCiBib29sIFJlbmRlclRhYmxlQ2VsbDo6Ym94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNr
Z3JvdW5kKGNvbnN0IExheW91dFBvaW50JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBJbmxp
bmVGbG93Qm94KikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuY3BwCmluZGV4IDMzZWY1ZDcxNGYxMTA2YjhiN2U1YWUwNDgxNDBhNThkYmY4MjQ5
OTUuLjZlYWMwN2Y1MDRlNzZiMWNlMmE4OGFiMjMwMTFiMWE4ZDg1ZGY3ZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcApAQCAtMTk3LDIyICsx
OTcsMTkgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6YWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9y
PExheW91dFJlY3Q+JiByZWN0cywgY29uc3QgTGF5b3UKICAgICAgICAgcmVjdHMuYXBwZW5kKExh
eW91dFJlY3QoYWRkaXRpb25hbE9mZnNldCwgc2l6ZSgpKSk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4
dENvbnRyb2w6OmxheW91dEV4Y2x1ZGVkQ2hpbGRyZW4oYm9vbCByZWxheW91dENoaWxkcmVuKQor
UmVuZGVyT2JqZWN0KiBSZW5kZXJUZXh0Q29udHJvbDo6bGF5b3V0U3BlY2lhbEV4Y2x1ZGVkQ2hp
bGQoYm9vbCByZWxheW91dENoaWxkcmVuKQogewotICAgIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0
RXhjbHVkZWRDaGlsZHJlbihyZWxheW91dENoaWxkcmVuKTsKLQogICAgIEhUTUxFbGVtZW50KiBw
bGFjZWhvbGRlciA9IHRleHRGb3JtQ29udHJvbEVsZW1lbnQoKS5wbGFjZWhvbGRlckVsZW1lbnQo
KTsKICAgICBSZW5kZXJFbGVtZW50KiBwbGFjZWhvbGRlclJlbmRlcmVyID0gcGxhY2Vob2xkZXIg
PyBwbGFjZWhvbGRlci0+cmVuZGVyZXIoKSA6IDA7CiAgICAgaWYgKCFwbGFjZWhvbGRlclJlbmRl
cmVyKQotICAgICAgICByZXR1cm47Ci0gICAgcGxhY2Vob2xkZXJSZW5kZXJlci0+c2V0SXNFeGNs
dWRlZEZyb21Ob3JtYWxMYXlvdXQodHJ1ZSk7Ci0KKyAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYg
KHJlbGF5b3V0Q2hpbGRyZW4pIHsKICAgICAgICAgLy8gVGhlIG1hcmtQYXJlbnRzIGFyZ3VtZW50
cyBzaG91bGQgYmUgZmFsc2UgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzCiAgICAgICAgIC8vIGNh
bGxlZCBmcm9tIGxheW91dCgpIG9mIHRoZSBwYXJlbnQgYW5kIHRoZSBwbGFjZWhvbGRlciBsYXlv
dXQgZG9lc24ndAogICAgICAgICAvLyBhZmZlY3QgdGhlIHBhcmVudCBsYXlvdXQuCiAgICAgICAg
IHBsYWNlaG9sZGVyUmVuZGVyZXItPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsK
ICAgICB9CisgICAgcmV0dXJuIHBsYWNlaG9sZGVyUmVuZGVyZXI7CiB9CiAKICNpZiBQTEFURk9S
TShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCmlu
ZGV4IDFlNjYxZWE3MjRlZWRlZTNiZGNlNTFhODI3Mjg4ZTRhZmRmYWFhOGQuLjQxNzZhMmMxNjli
MDE5ZTBlZGE2ZmUyODFhZWVlZWZhMDdmNTFlMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCkBAIC02NCw3ICs2NCw3IEBAIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KExheW91dFVu
aXQgbGluZUhlaWdodCwgTGF5b3V0VW5pdCBub25Db250ZW50SGVpZ2h0KSBjb25zdCA9IDA7CiAK
ICAgICBMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5
b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3ApIGNvbnN0IG92ZXJy
aWRlOwotICAgIHZvaWQgbGF5b3V0RXhjbHVkZWRDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hpbGRy
ZW4pIG92ZXJyaWRlOworICAgIFJlbmRlck9iamVjdCogbGF5b3V0U3BlY2lhbEV4Y2x1ZGVkQ2hp
bGQoYm9vbCByZWxheW91dENoaWxkcmVuKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2b2lk
IGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCmluZGV4IGIyMjE3OTAzNjUz
ZWY4NGFkNzRhOWEyODU3NDNhMDVhZTEyODc4NjcuLjJjMzM4NWQ1MDk1ZDQzNDAyYmUxODI4ZTAy
Y2Q3ZTUxY2JmOGIxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcApAQCAtODcsMTMgKzg3LDkgQEAgaW50IFJl
bmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSBi
YXNlbGluZVR5cGUsIGJvb2wKICAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9u
KGJhc2VsaW5lVHlwZSwgZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOwog
fQogCi12b2lkIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpsYXlvdXRFeGNsdWRlZENoaWxk
cmVuKGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKK1JlbmRlck9iamVjdCogUmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmU6OmxheW91dFNwZWNpYWxFeGNsdWRlZENoaWxkKGJvb2wgcmVsYXlvdXRDaGls
ZHJlbikKIHsKLSAgICBSZW5kZXJUZXh0Q29udHJvbDo6bGF5b3V0RXhjbHVkZWRDaGlsZHJlbihy
ZWxheW91dENoaWxkcmVuKTsKLSAgICBIVE1MRWxlbWVudCogcGxhY2Vob2xkZXIgPSB0ZXh0Rm9y
bUNvbnRyb2xFbGVtZW50KCkucGxhY2Vob2xkZXJFbGVtZW50KCk7Ci0gICAgUmVuZGVyRWxlbWVu
dCogcGxhY2Vob2xkZXJSZW5kZXJlciA9IHBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXItPnJlbmRl
cmVyKCkgOiAwOwotICAgIGlmICghcGxhY2Vob2xkZXJSZW5kZXJlcikKLSAgICAgICAgcmV0dXJu
OworICAgIFJlbmRlck9iamVjdCogcGxhY2Vob2xkZXJSZW5kZXJlciA9IFJlbmRlclRleHRDb250
cm9sOjpsYXlvdXRTcGVjaWFsRXhjbHVkZWRDaGlsZChyZWxheW91dENoaWxkcmVuKTsKICAgICBp
ZiAoaXM8UmVuZGVyQm94PihwbGFjZWhvbGRlclJlbmRlcmVyKSkgewogICAgICAgICBhdXRvJiBw
bGFjZWhvbGRlckJveCA9IGRvd25jYXN0PFJlbmRlckJveD4oKnBsYWNlaG9sZGVyUmVuZGVyZXIp
OwogICAgICAgICBwbGFjZWhvbGRlckJveC5tdXRhYmxlU3R5bGUoKS5zZXRMb2dpY2FsV2lkdGgo
TGVuZ3RoKGNvbnRlbnRMb2dpY2FsV2lkdGgoKSAtIHBsYWNlaG9sZGVyQm94LmJvcmRlckFuZFBh
ZGRpbmdMb2dpY2FsV2lkdGgoKSwgRml4ZWQpKTsKQEAgLTEwMSw2ICs5Nyw3IEBAIHZvaWQgUmVu
ZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OmxheW91dEV4Y2x1ZGVkQ2hpbGRyZW4oYm9vbCByZWxh
eW91dENoaWxkcmVuKQogICAgICAgICBwbGFjZWhvbGRlckJveC5zZXRYKGJvcmRlckxlZnQoKSAr
IHBhZGRpbmdMZWZ0KCkpOwogICAgICAgICBwbGFjZWhvbGRlckJveC5zZXRZKGJvcmRlclRvcCgp
ICsgcGFkZGluZ1RvcCgpKTsKICAgICB9CisgICAgcmV0dXJuIHBsYWNlaG9sZGVyUmVuZGVyZXI7
CiB9CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xNdWx0aUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5oCmluZGV4IDVmMmJkZjliMTBlNjQ5MmEzYzRkNDhlNjYwYjZi
MjE2ZjM1NTJjNDkuLmFhZjdhYTc5OGMyOTJlNDFjOTI5Mjc0YTY2ZDdjOWFjNmZjNTFhNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRp
TGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11
bHRpTGluZS5oCkBAIC00NSw3ICs0NSw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBjb21w
dXRlQ29udHJvbExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsaW5lSGVpZ2h0LCBMYXlvdXRVbml0
IG5vbkNvbnRlbnRIZWlnaHQpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBiYXNlbGluZVBvc2l0
aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5l
UG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsK
IAotICAgIHZvaWQgbGF5b3V0RXhjbHVkZWRDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hpbGRyZW4p
IG92ZXJyaWRlOworICAgIFJlbmRlck9iamVjdCogbGF5b3V0U3BlY2lhbEV4Y2x1ZGVkQ2hpbGQo
Ym9vbCByZWxheW91dENoaWxkcmVuKSBvdmVycmlkZTsKIH07CiAKIGlubGluZSBSZW5kZXJUZXh0
Q29udHJvbE11bHRpTGluZSogSFRNTFRleHRBcmVhRWxlbWVudDo6cmVuZGVyZXIoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDQw
M2I1YjQ4YmI5NDVkYjA3MjUzOGQxZmM5MDdmMWZlNzI1ZGIzYTIuLmQ3ZDM3YWE1NDQ2NjNmYTY5
YjQ0OTAzZmI0NGZjZjEyMWVmMWU4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTI3MiwzMCArMjcyLDE0IEBAIHZvaWQgUmVuZGVyVHJl
ZUFzVGV4dDo6d3JpdGVSZW5kZXJPYmplY3QoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlck9i
amVjdCYgbywKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBjb25zdCBSZW5kZXJCb3hN
b2RlbE9iamVjdCYgYm94ID0gZG93bmNhc3Q8UmVuZGVyQm94TW9kZWxPYmplY3Q+KG8pOwotICAg
ICAgICBMYXlvdXRVbml0IGJvcmRlclRvcCA9IGJveC5ib3JkZXJUb3AoKTsKLSAgICAgICAgTGF5
b3V0VW5pdCBib3JkZXJSaWdodCA9IGJveC5ib3JkZXJSaWdodCgpOwotICAgICAgICBMYXlvdXRV
bml0IGJvcmRlckJvdHRvbSA9IGJveC5ib3JkZXJCb3R0b20oKTsKLSAgICAgICAgTGF5b3V0VW5p
dCBib3JkZXJMZWZ0ID0gYm94LmJvcmRlckxlZnQoKTsKLSAgICAgICAgaWYgKGJveC5pc0ZpZWxk
c2V0KCkpIHsKLSAgICAgICAgICAgIGNvbnN0IGF1dG8mIGJsb2NrID0gZG93bmNhc3Q8UmVuZGVy
QmxvY2s+KGJveCk7Ci0gICAgICAgICAgICBpZiAoby5zdHlsZSgpLndyaXRpbmdNb2RlKCkgPT0g
VG9wVG9Cb3R0b21Xcml0aW5nTW9kZSkKLSAgICAgICAgICAgICAgICBib3JkZXJUb3AgLT0gYmxv
Y2suaW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG8u
c3R5bGUoKS53cml0aW5nTW9kZSgpID09IEJvdHRvbVRvVG9wV3JpdGluZ01vZGUpCi0gICAgICAg
ICAgICAgICAgYm9yZGVyQm90dG9tIC09IGJsb2NrLmludHJpbnNpY0JvcmRlckZvckZpZWxkc2V0
KCk7Ci0gICAgICAgICAgICBlbHNlIGlmIChvLnN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBMZWZ0
VG9SaWdodFdyaXRpbmdNb2RlKQotICAgICAgICAgICAgICAgIGJvcmRlckxlZnQgLT0gYmxvY2su
aW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG8uc3R5
bGUoKS53cml0aW5nTW9kZSgpID09IFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGUpCi0gICAgICAgICAg
ICAgICAgYm9yZGVyUmlnaHQgLT0gYmxvY2suaW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoKTsK
LSAgICAgICAgICAgIAotICAgICAgICB9Ci0gICAgICAgIGlmIChib3JkZXJUb3AgfHwgYm9yZGVy
UmlnaHQgfHwgYm9yZGVyQm90dG9tIHx8IGJvcmRlckxlZnQpIHsKKyAgICAgICAgaWYgKGJveC5i
b3JkZXJUb3AoKSB8fCBib3guYm9yZGVyUmlnaHQoKSB8fCBib3guYm9yZGVyQm90dG9tKCkgfHwg
Ym94LmJvcmRlckxlZnQoKSkgewogICAgICAgICAgICAgdHMgPDwgIiBbYm9yZGVyOiI7CiAKICAg
ICAgICAgICAgIEJvcmRlclZhbHVlIHByZXZCb3JkZXIgPSBvLnN0eWxlKCkuYm9yZGVyVG9wKCk7
Ci0gICAgICAgICAgICBpZiAoIWJvcmRlclRvcCkKKyAgICAgICAgICAgIGlmICghYm94LmJvcmRl
clRvcCgpKQogICAgICAgICAgICAgICAgIHRzIDw8ICIgbm9uZSI7CiAgICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICB0cyA8PCAiICgiIDw8IGJvcmRlclRvcCA8PCAicHggIjsKKyAg
ICAgICAgICAgICAgICB0cyA8PCAiICgiIDw8IGJveC5ib3JkZXJUb3AoKSA8PCAicHggIjsKICAg
ICAgICAgICAgICAgICBwcmludEJvcmRlclN0eWxlKHRzLCBvLnN0eWxlKCkuYm9yZGVyVG9wU3R5
bGUoKSk7CiAgICAgICAgICAgICAgICAgQ29sb3IgY29sID0gby5zdHlsZSgpLmJvcmRlclRvcENv
bG9yKCk7CiAgICAgICAgICAgICAgICAgaWYgKCFjb2wuaXNWYWxpZCgpKQpAQCAtMzA1LDEwICsy
ODksMTAgQEAgdm9pZCBSZW5kZXJUcmVlQXNUZXh0Ojp3cml0ZVJlbmRlck9iamVjdChUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiBvLAogCiAgICAgICAgICAgICBpZiAoby5zdHls
ZSgpLmJvcmRlclJpZ2h0KCkgIT0gcHJldkJvcmRlcikgewogICAgICAgICAgICAgICAgIHByZXZC
b3JkZXIgPSBvLnN0eWxlKCkuYm9yZGVyUmlnaHQoKTsKLSAgICAgICAgICAgICAgICBpZiAoIWJv
cmRlclJpZ2h0KQorICAgICAgICAgICAgICAgIGlmICghYm94LmJvcmRlclJpZ2h0KCkpCiAgICAg
ICAgICAgICAgICAgICAgIHRzIDw8ICIgbm9uZSI7CiAgICAgICAgICAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHRzIDw8ICIgKCIgPDwgYm9yZGVyUmlnaHQgPDwgInB4ICI7Cisg
ICAgICAgICAgICAgICAgICAgIHRzIDw8ICIgKCIgPDwgYm94LmJvcmRlclJpZ2h0KCkgPDwgInB4
ICI7CiAgICAgICAgICAgICAgICAgICAgIHByaW50Qm9yZGVyU3R5bGUodHMsIG8uc3R5bGUoKS5i
b3JkZXJSaWdodFN0eWxlKCkpOwogICAgICAgICAgICAgICAgICAgICBDb2xvciBjb2wgPSBvLnN0
eWxlKCkuYm9yZGVyUmlnaHRDb2xvcigpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbC5p
c1ZhbGlkKCkpCkBAIC0zMTksMTAgKzMwMywxMCBAQCB2b2lkIFJlbmRlclRyZWVBc1RleHQ6Ondy
aXRlUmVuZGVyT2JqZWN0KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIG8sCiAK
ICAgICAgICAgICAgIGlmIChvLnN0eWxlKCkuYm9yZGVyQm90dG9tKCkgIT0gcHJldkJvcmRlcikg
ewogICAgICAgICAgICAgICAgIHByZXZCb3JkZXIgPSBib3guc3R5bGUoKS5ib3JkZXJCb3R0b20o
KTsKLSAgICAgICAgICAgICAgICBpZiAoIWJvcmRlckJvdHRvbSkKKyAgICAgICAgICAgICAgICBp
ZiAoIWJveC5ib3JkZXJCb3R0b20oKSkKICAgICAgICAgICAgICAgICAgICAgdHMgPDwgIiBub25l
IjsKICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgdHMgPDwgIiAo
IiA8PCBib3JkZXJCb3R0b20gPDwgInB4ICI7CisgICAgICAgICAgICAgICAgICAgIHRzIDw8ICIg
KCIgPDwgYm94LmJvcmRlckJvdHRvbSgpIDw8ICJweCAiOwogICAgICAgICAgICAgICAgICAgICBw
cmludEJvcmRlclN0eWxlKHRzLCBvLnN0eWxlKCkuYm9yZGVyQm90dG9tU3R5bGUoKSk7CiAgICAg
ICAgICAgICAgICAgICAgIENvbG9yIGNvbCA9IG8uc3R5bGUoKS5ib3JkZXJCb3R0b21Db2xvcigp
OwogICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbC5pc1ZhbGlkKCkpCkBAIC0zMzMsMTAgKzMx
NywxMCBAQCB2b2lkIFJlbmRlclRyZWVBc1RleHQ6OndyaXRlUmVuZGVyT2JqZWN0KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIG8sCiAKICAgICAgICAgICAgIGlmIChvLnN0eWxl
KCkuYm9yZGVyTGVmdCgpICE9IHByZXZCb3JkZXIpIHsKICAgICAgICAgICAgICAgICBwcmV2Qm9y
ZGVyID0gby5zdHlsZSgpLmJvcmRlckxlZnQoKTsKLSAgICAgICAgICAgICAgICBpZiAoIWJvcmRl
ckxlZnQpCisgICAgICAgICAgICAgICAgaWYgKCFib3guYm9yZGVyTGVmdCgpKQogICAgICAgICAg
ICAgICAgICAgICB0cyA8PCAiIG5vbmUiOwogICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICB0cyA8PCAiICgiIDw8IGJvcmRlckxlZnQgPDwgInB4ICI7CisgICAgICAg
ICAgICAgICAgICAgIHRzIDw8ICIgKCIgPDwgYm94LmJvcmRlckxlZnQoKSA8PCAicHggIjsKICAg
ICAgICAgICAgICAgICAgICAgcHJpbnRCb3JkZXJTdHlsZSh0cywgby5zdHlsZSgpLmJvcmRlckxl
ZnRTdHlsZSgpKTsKICAgICAgICAgICAgICAgICAgICAgQ29sb3IgY29sID0gby5zdHlsZSgpLmJv
cmRlckxlZnRDb2xvcigpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbC5pc1ZhbGlkKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcAppbmRl
eCBhNzk3YTdlMGU0N2Q4ZWQ5ODVkODQ5Y2U3ZmRmNmIxNzcxNGEwNjVhLi5hYzU3NjE1NzU4YzA3
NjA2MDkxMTIxMjQ4OGEyZTE4MDg3NjBiODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJEZXRhaWxzTWFya2VyLmNwcCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmNwcCIKICNp
bmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAiCisjaW5jbHVkZSAiUmVuZGVyRmllbGRz
ZXQuY3BwIgogI2luY2x1ZGUgIlJlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCIKICNpbmNsdWRl
ICJSZW5kZXJGbGV4aWJsZUJveC5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyRmxvd1RocmVhZC5jcHAi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggYmZmNjI5Y2NlNDU5MDYyODA4ODcwOWViYTRiNGNkNTc5M2RiNGFlNC4uNWY4ODkz
ZGZmNDc3M2MyZGUyZTNmOGQyODc5MTMxNjBjNjliMDQ3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDE3LTAzLTA0ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjEzMzc5LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MTY5CisKKyAgICAgICAgYnJva2Ug
R1RLKyBhbmQgV2luZG93cyBidWlsZHMgKFJlcXVlc3RlZCBieSBtY2F0YW56YXJvIG9uCisgICAg
ICAgICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAi
RW5hYmxlIGZpZWxkc2V0cyB0byBiZSBmbGV4Ym94ZXMsIGdyaWRzIGFuZCBtdWx0aWNvbHVtbi4i
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkwODIK
KyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjEzMzc5CisKIDIwMTct
MDMtMDQgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogU2hvdyBXZWIgU29ja2V0IGNvbm5lY3Rpb25zIGluIE5ldHdvcmsgdGFi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2Ficy1wb3MtY2hp
bGQtc2l6aW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0
L2Ficy1wb3MtY2hpbGQtc2l6aW5nLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDYxMjBkMWU4Y2JiZjlmZDc1MDZkZTE2MjM3YWMxNWY4YTNmYTk5MDcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9maWVsZHNldC9hYnMtcG9zLWNoaWxkLXNpemluZy1leHBlY3RlZC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+Ci08aHRtbD48aGVhZD4K
LSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+Ci0gICAgICAgICAgICBodG1sLGJvZHkgewotICAgICAgICAgICAgICAgIGNvbG9yOmJsYWNr
OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBmb250LXNpemU6MTZweDsgcGFkZGluZzowOyBtYXJn
aW46MDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGRpdiB7Ci0gICAgICAgICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMjU1
LDAsMC41KTsKLSAgICAgICAgICAgIHRvcDowOyBib3R0b206MDsKLSAgICAgICAgICAgIGxlZnQ6
MDsgcmlnaHQ6MDsKLSAgICAgICAgICAgIHotaW5kZXg6IDA7Ci0gICAgICAgIH0KLSAgICAgICAg
YyB7Ci0gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgICAgICAgIGJhY2tncm91bmQ6
IGJsdWU7Ci0gICAgICAgICAgICBoZWlnaHQ6MTAwJTsKLSAgICAgICAgfQotICAgICAgICAKLSAg
ICAgICAgbGVnZW5kIHsgaGVpZ2h0OiAyNHB4OyB9Ci0gICAgICAgIAotICAgICAgICBmaWVsZHNl
dCB7Ci0gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICBib3JkZXI6
IDJweCBncmVlbiBzb2xpZDsKLSAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKLSAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7Ci0gICAgICAgICAgICBtYXJnaW4tYm90dG9tOjQwcHg7Ci0gICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgICN0MSwjdDMgeyBwYWRkaW5nOiAzcHggNXB4IDdweCAxMXB4
OyB9Ci0gICAgICAgICN0MiwjdDQgeyBwYWRkaW5nOiAwOyB9Ci0gICAgICAgIAotICAgICAgICAj
dDEgZGl2LCAjdDMgZGl2IHsKLSAgICAgICAgICAgIC8qIHNhbWUgbnVtYmVycyBhcyBwYWRkaW5n
IGFib3ZlICovCi0gICAgICAgICAgICBsZWZ0OiAtMTFweDsgcmlnaHQ6IC01cHg7Ci0gICAgICAg
ICAgICB0b3A6ICAtM3B4OyAgYm90dG9tOi03cHg7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgICN0MiB7IHRvcDogMTIwcHg7IH0KLSAgICAgICAgI3QzIHsgdG9wOiAyNDBweDsgfQotICAg
ICAgICAjdDQgeyB0b3A6IDM2MHB4OyB9Ci0gICAgICAgIAotICAgICAgICB4IHsKLSAgICAgICAg
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgICAgIHdpZHRoOjEwMHB4OwotICAgICAg
ICAgICAgaGVpZ2h0OjEwMHB4OwotICAgICAgICB9Ci0gICAgICAgICN0MSB4LCAjdDIgeCB7Ci0g
ICAgICAgICAgICBoZWlnaHQ6NzhweDsgLyogY29tcGVuc2F0ZSBmb3IgbGVnZW5kICovCi0gICAg
ICAgIH0KLSAgICAgICAgPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotICAgIAotICAgIAotICAg
IDxmaWVsZHNldCBpZD0idDEiPgotICAgICAgICA8bGVnZW5kPmxlZ2VuZDwvbGVnZW5kPgotICAg
ICAgICA8eD48ZGl2PjwvZGl2PjxjPjwvYz48L3g+Ci0gICAgPC9maWVsZHNldD4KLSAgICAKLSAg
ICA8ZmllbGRzZXQgaWQ9InQyIj4KLSAgICAgICAgPGxlZ2VuZD5sZWdlbmQ8L2xlZ2VuZD4KLSAg
ICAgICAgPHg+PGRpdj48L2Rpdj48L3g+Ci0gICAgPC9maWVsZHNldD4KLSAgICAKLSAgICA8Zmll
bGRzZXQgaWQ9InQzIj4KLSAgICAgICAgPHg+PGRpdj48L2Rpdj48Yz48L2M+PC94PgotICAgIDwv
ZmllbGRzZXQ+Ci0gICAgCi0gICAgPGZpZWxkc2V0IGlkPSJ0NCI+Ci0gICAgICAgIDx4PjxkaXY+
PC9kaXY+PC94PgotICAgIDwvZmllbGRzZXQ+Ci0gICAgCi0gICAgCi08L2JvZHk+Ci08L2h0bWw+
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmllbGRzZXQvYWJzLXBvcy1j
aGlsZC1zaXppbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmllbGRzZXQvYWJzLXBv
cy1jaGlsZC1zaXppbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzY0NzUz
NzJhYmVhZTlmOGFiMDhkMDQ4M2YzNzYyOWIyMTA0ZTJjMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0
L2Ficy1wb3MtY2hpbGQtc2l6aW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBA
Ci08IURPQ1RZUEUgSFRNTD4KLTxodG1sPjxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KLSAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgICAgICAgICAgIGh0bWwsYm9k
eSB7Ci0gICAgICAgICAgICAgICAgY29sb3I6YmxhY2s7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7
IGZvbnQtc2l6ZToxNnB4OyBwYWRkaW5nOjA7IG1hcmdpbjowOwotICAgICAgICAgICAgfQotICAg
ICAgICAKLSAgICAgICAgZGl2IHsKLSAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAg
ICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwyNTUsMCwwLjUpOwotICAgICAgICAgICAgdG9w
OjA7IGJvdHRvbTowOwotICAgICAgICAgICAgbGVmdDowOyByaWdodDowOwotICAgICAgICAgICAg
ei1pbmRleDogMDsKLSAgICAgICAgfQotICAgICAgICBjIHsKLSAgICAgICAgICAgIGRpc3BsYXk6
IGJsb2NrOwotICAgICAgICAgICAgYmFja2dyb3VuZDogYmx1ZTsKLSAgICAgICAgICAgIGhlaWdo
dDoxMDAlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBsZWdlbmQgeyBoZWlnaHQ6IDI0
cHg7IH0KLSAgICAgICAgCi0gICAgICAgIGZpZWxkc2V0IHsKLSAgICAgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKLSAgICAgICAgICAgIGJvcmRlcjogMnB4IGdyZWVuIHNvbGlkOwotICAgICAg
ICAgICAgd2lkdGg6IDEwMHB4OwotICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKLSAgICAgICAg
ICAgIG1hcmdpbi1ib3R0b206NDBweDsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgI3Qx
LCN0MyB7IHBhZGRpbmc6IDNweCA1cHggN3B4IDExcHg7IH0KLSAgICAgICAgI3QyLCN0NCB7IHBh
ZGRpbmc6IDA7IH0KLSAgICAgICAgCi0gICAgICAgICN0MiB7IHRvcDogMTIwcHg7IH0KLSAgICAg
ICAgI3QzIHsgdG9wOiAyNDBweDsgfQotICAgICAgICAjdDQgeyB0b3A6IDM2MHB4OyB9Ci0gICAg
ICAgICAgICA8L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0gICAgCi0gICAgCi0gICAgPGZpZWxk
c2V0IGlkPSJ0MSI+Ci0gICAgICAgIDxsZWdlbmQ+bGVnZW5kPC9sZWdlbmQ+Ci0gICAgICAgIDxk
aXY+PC9kaXY+PGM+PC9jPgotICAgIDwvZmllbGRzZXQ+Ci0gICAgCi0gICAgPGZpZWxkc2V0IGlk
PSJ0MiI+Ci0gICAgICAgIDxsZWdlbmQ+bGVnZW5kPC9sZWdlbmQ+Ci0gICAgICAgIDxkaXY+PC9k
aXY+Ci0gICAgPC9maWVsZHNldD4KLSAgICAKLSAgICA8ZmllbGRzZXQgaWQ9InQzIj4KLSAgICAg
ICAgPGRpdj48L2Rpdj48Yz48L2M+Ci0gICAgPC9maWVsZHNldD4KLSAgICAKLSAgICA8ZmllbGRz
ZXQgaWQ9InQ0Ij4KLSAgICAgICAgPGRpdj48L2Rpdj4KLSAgICA8L2ZpZWxkc2V0PgotICAgIAot
ICAgIAotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LWRlcHJlY2F0ZWQtZmxleGJveC1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNldC1kZXByZWNhdGVkLWZsZXhi
b3gtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGI1NjgxMDc5
NGZkMTJiZDY0YjA0Yjc0NjIxMmJiNDI1ODgwZDZjYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2Zp
ZWxkc2V0LWRlcHJlY2F0ZWQtZmxleGJveC1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTggKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAg
ICAgPHN0eWxlPgotICAgICAgICAgICAgZmllbGRzZXQgPiBkaXYgeyBib3JkZXI6MnB4IHNvbGlk
IHNreWJsdWU7IGJhY2tncm91bmQtY29sb3I6I2NjY2NjYzsgLXdlYmtpdC1tYXJnaW4tYmVmb3Jl
OjZweDsgLXdlYmtpdC1tYXJnaW4tYWZ0ZXI6NnB4ICB9Ci0gICAgICAgICAgICBmaWVsZHNldCB7
IG1hcmdpbjowOyB2ZXJ0aWNhbC1hbGlnbjpib3R0b207IC13ZWJraXQtbG9naWNhbC13aWR0aDoz
MjBweDsgLXdlYmtpdC1sb2dpY2FsLWhlaWdodDo4MHB4OyBkaXNwbGF5OmZsZXg7IGp1c3RpZnkt
Y29udGVudDogY2VudGVyOyBhbGlnbi1pdGVtczogc3RyZXRjaDsgYmFja2dyb3VuZC1jb2xvcjoj
ZGRkZGRkOyBib3JkZXI6MTJweCBzb2xpZCBuYXZ5OyBwYWRkaW5nOjI4cHggfQotICAgICAgICAg
ICAgPC9zdHlsZT4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxmaWVsZHNldD4K
LSAgICAgICAgICAgIDxsZWdlbmQ+TGVnZW5kPC9sZWdlbmQ+Ci0gICAgICAgICAgICA8ZGl2PkZp
ZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIDxkaXY+TW9y
ZSBGaWVsZHNldCBDb250ZW50czwvZGl2PgotICAgICAgICAgICAgCi0gICAgICAgIDwvZmllbGRz
ZXQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9maWVsZHNldC9maWVsZHNldC1kZXByZWNhdGVkLWZsZXhib3guaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZmllbGRzZXQvZmllbGRzZXQtZGVwcmVjYXRlZC1mbGV4Ym94Lmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxMDY3NzFkYjgwMWVkN2MwMTZkNmZmZTQy
ODE0MjQ1OGQyOGQ1ZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNldC1kZXByZWNhdGVk
LWZsZXhib3guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTwhZG9jdHlwZSBo
dG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgIGZp
ZWxkc2V0ID4gZGl2IHsgYm9yZGVyOjJweCBzb2xpZCBza3libHVlOyBiYWNrZ3JvdW5kLWNvbG9y
OiNjY2NjY2M7IC13ZWJraXQtbWFyZ2luLWJlZm9yZTo2cHg7IC13ZWJraXQtbWFyZ2luLWFmdGVy
OjZweCAgfQotICAgICAgICAgICAgZmllbGRzZXQgeyBtYXJnaW46MDsgdmVydGljYWwtYWxpZ246
Ym90dG9tOyAtd2Via2l0LWxvZ2ljYWwtd2lkdGg6MzIwcHg7IC13ZWJraXQtbG9naWNhbC1oZWln
aHQ6ODBweDsgZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7IC13ZWJraXQtYm94LXBhY2s6IGNl
bnRlcjsgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7IGJhY2tncm91bmQtY29sb3I6I2RkZGRk
ZDsgYm9yZGVyOjEycHggc29saWQgbmF2eTsgcGFkZGluZzoyOHB4IH0KLSAgICAgICAgICAgIDwv
c3R5bGU+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8ZmllbGRzZXQ+Ci0gICAg
ICAgICAgICA8bGVnZW5kPkxlZ2VuZDwvbGVnZW5kPgotICAgICAgICAgICA8ZGl2PkZpZWxkc2V0
IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgIAotICAgICAgICAgICA8ZGl2Pk1vcmUgRmllbGRz
ZXQgQ29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgCi0gICAgICAgPC9maWVsZHNldD4KLSAgICA8
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxk
c2V0L2ZpZWxkc2V0LWZsZXhib3gtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZmllbGRzZXQvZmllbGRzZXQtZmxleGJveC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhNjE1MjQ0ZmNjNGExMWQ4ZjE0OGM0MmUwMWNjNmEyNjg0ODRjMDMz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZmllbGRzZXQvZmllbGRzZXQtZmxleGJveC1leHBlY3RlZC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAg
ICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAgICAgLmZpZWxkc2V0ID4gZGl2IHsg
Ym9yZGVyOjJweCBzb2xpZCBza3libHVlOyBiYWNrZ3JvdW5kLWNvbG9yOiNjY2NjY2M7IC13ZWJr
aXQtbWFyZ2luLWJlZm9yZTo2cHg7IC13ZWJraXQtbWFyZ2luLWFmdGVyOjZweCAgfQotICAgICAg
ICAgICAgLmZpZWxkc2V0IHsgbWFyZ2luOjA7IHZlcnRpY2FsLWFsaWduOmJvdHRvbTsgLXdlYmtp
dC1sb2dpY2FsLXdpZHRoOjMyMHB4OyAtd2Via2l0LWxvZ2ljYWwtaGVpZ2h0OjgwcHg7IGRpc3Bs
YXk6aW5saW5lLWZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBhbGlnbi1pdGVtczogc3Ry
ZXRjaDsgYmFja2dyb3VuZC1jb2xvcjojZGRkZGRkOyBib3JkZXI6MTJweCBzb2xpZCBuYXZ5OyBw
YWRkaW5nOjI4cHggfQotICAgICAgICAgICAgPC9zdHlsZT4KLSAgICA8L2hlYWQ+Ci0gICAgPGJv
ZHk+Ci0gICAgICAgIDxkaXYgY2xhc3M9ZmllbGRzZXQgc3R5bGU9IndyaXRpbmctbW9kZTp2ZXJ0
aWNhbC1scjsiPgotICAgICAgICAgICAgPGRpdj5GaWVsZHNldCBDb250ZW50czwvZGl2PgotICAg
ICAgICAgICAgCi0gICAgICAgICAgICA8ZGl2Pk1vcmUgRmllbGRzZXQgQ29udGVudHM8L2Rpdj4K
LSAgICAgICAgICAgIAotICAgICAgICA8L2Rpdj4KLSAgICAgICAgCi0gICAgICAgIDxkaXYgY2xh
c3M9ZmllbGRzZXQgc3R5bGU9IndyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDsgIj4KLSAgICAgICAg
ICAgIDxkaXY+RmllbGRzZXQgQ29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgPGRpdj5Nb3JlIEZpZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAg
ICAgPC9kaXY+Ci0gICAgICAgIAotICAgICAgICAKLSAgICAgICAgPGRpdiBjbGFzcz1maWVsZHNl
dCBzdHlsZT0id3JpdGluZy1tb2RlOmhvcml6b250YWwtYnQiPgotICAgICAgICAgICAgCi0gICAg
ICAgICAgICA8ZGl2PkZpZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIDxkaXY+TW9yZSBGaWVsZHNldCBDb250ZW50czwvZGl2PgotICAgICAgICAgICAgCi0g
ICAgICAgIDwvZGl2PgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZmllbGRzZXQvZmllbGRzZXQtZmxleGJveC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNldC1mbGV4Ym94Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDhkMjhkNzFlYTk4ZjNiMDAzZTQzNjZlNDA1YTM4MWQ3NjRhMzgw
ZDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNldC1mbGV4Ym94Lmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwzMiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFk
PgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICBmaWVsZHNldCA+IGRpdiB7IGJvcmRlcjoy
cHggc29saWQgc2t5Ymx1ZTsgYmFja2dyb3VuZC1jb2xvcjojY2NjY2NjOyAtd2Via2l0LW1hcmdp
bi1iZWZvcmU6NnB4OyAtd2Via2l0LW1hcmdpbi1hZnRlcjo2cHggIH0KLSAgICAgICAgICAgIGZp
ZWxkc2V0IHsgbWFyZ2luOjA7IHZlcnRpY2FsLWFsaWduOmJvdHRvbTsgLXdlYmtpdC1sb2dpY2Fs
LXdpZHRoOjMyMHB4OyAtd2Via2l0LWxvZ2ljYWwtaGVpZ2h0OjgwcHg7IGRpc3BsYXk6aW5saW5l
LWZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBhbGlnbi1pdGVtczogc3RyZXRjaDsgYmFj
a2dyb3VuZC1jb2xvcjojZGRkZGRkOyBib3JkZXI6MTJweCBzb2xpZCBuYXZ5OyBwYWRkaW5nOjI4
cHggfQotICAgICAgICAgICAgPC9zdHlsZT4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAg
ICAgIDxmaWVsZHNldCBzdHlsZT0id3JpdGluZy1tb2RlOnZlcnRpY2FsLWxyOyI+Ci0gICAgICAg
ICAgICA8ZGl2PkZpZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIDxkaXY+TW9yZSBGaWVsZHNldCBDb250ZW50czwvZGl2PgotICAgICAgICAgICAgCi0gICAg
ICAgIDwvZmllbGRzZXQ+Ci0KLSAgICAgICAgPGZpZWxkc2V0IHN0eWxlPSJ3cml0aW5nLW1vZGU6
dmVydGljYWwtcmw7ICI+Ci0gICAgICAgICAgICA8ZGl2PkZpZWxkc2V0IENvbnRlbnRzPC9kaXY+
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIDxkaXY+TW9yZSBGaWVsZHNldCBDb250ZW50czwv
ZGl2PgotICAgICAgICAgICAgCi0gICAgICAgIDwvZmllbGRzZXQ+Ci0gICAgICAgIAotICAgICAg
ICAKLSAgICAgICA8ZmllbGRzZXQgc3R5bGU9IndyaXRpbmctbW9kZTpob3Jpem9udGFsLWJ0Ij4K
LSAgICAgICAgICAgPGRpdj5GaWVsZHNldCBDb250ZW50czwvZGl2PgotICAgICAgICAgICAKLSAg
ICAgICAgICAgPGRpdj5Nb3JlIEZpZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgIAot
ICAgICAgIDwvZmllbGRzZXQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNldC1ncmlkLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LWdyaWQtZXhwZWN0ZWQu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTA2NzY0MmRjZjhhNjk2NmNhY2Nj
Njk4MWQzZWZhNjEyYWE3ZGQxMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LWdyaWQt
ZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTwhRE9DVFlQRSBI
VE1MPgotPGh0bWw+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxmaWVsZHNldCBzdHlsZT0ib3ZlcmZs
b3c6aGlkZGVuOyB3aWR0aDoyMDBweDsgaGVpZ2h0OjIwMHB4OyI+Ci0gICAgICAgICAgICA8bGVn
ZW5kPkxlZ2VuZDwvbGVnZW5kPgotICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpncmlk
OyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LDUwcHgpOyBncmlkLWF1dG8tcm93czog
MjBweDsiPgotICAgICAgICAgICAgICAgIDxwPlgKLSAgICAgICAgICAgICAgICA8cD5YCi0gICAg
ICAgICAgICAgICAgPHA+WAotICAgICAgICAgICAgICAgIDxwPlgKLSAgICAgICAgICAgICAgICA8
cD5YCi0gICAgICAgICAgICAgICAgPHA+WAotICAgICAgICAgICAgICAgIDxwPlgKLSAgICAgICAg
ICAgICAgICA8cD5YCi0gICAgICAgICAgICAgICAgPHA+WAotICAgICAgICAgICAgICAgIDxwPlgK
LSAgICAgICAgICAgICAgICA8cD5YCi0gICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgPC9maWVs
ZHNldD4KLSAgICAgICAgPGZpZWxkc2V0PgotICAgICAgICAgICAgPGxlZ2VuZD5MZWdlbmQ8L2xl
Z2VuZD4KLSAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6Z3JpZDsgZ3JpZC1hdXRvLWNv
bHVtbnM6IDUwcHg7IGdyaWQtYXV0by1yb3dzOiAyMHB4OyI+Ci0gICAgICAgICAgICAgICAgPHA+
WAotICAgICAgICAgICAgICAgIDxwPlgKLSAgICAgICAgICAgICAgICA8cD5YCi0gICAgICAgICAg
ICAgICAgPHA+WAotICAgICAgICAgICAgICAgIDxwPlgKLSAgICAgICAgICAgICAgICA8cD5YCi0g
ICAgICAgICAgICAgICAgPHA+WAotICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgIDwvZmllbGRz
ZXQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9maWVsZHNldC9maWVsZHNldC1ncmlkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2ZpZWxkc2V0L2ZpZWxkc2V0LWdyaWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWY0MWJjNGYzZWE5YTQzZjg4N2UzNmZkZjE2ZTJjNmNhNzJiNDkyNC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2ZpZWxkc2V0L2ZpZWxkc2V0LWdyaWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAg
QEAKLTwhRE9DVFlQRSBIVE1MPgotPGh0bWw+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxmaWVsZHNl
dCBzdHlsZT0iZGlzcGxheTpncmlkOyBvdmVyZmxvdzpoaWRkZW47IGdyaWQtdGVtcGxhdGUtY29s
dW1uczogcmVwZWF0KDQsNTBweCk7IGdyaWQtYXV0by1yb3dzOiAyMHB4OyB3aWR0aDoyMDBweDsg
aGVpZ2h0OjIwMHB4OyI+Ci0gICAgICAgICAgICA8bGVnZW5kPkxlZ2VuZDwvbGVnZW5kPgotICAg
ICAgICAgICAgPHA+WAotICAgICAgICAgICAgPHA+WAotICAgICAgICAgICAgPHA+WAotICAgICAg
ICAgICAgPHA+WAotICAgICAgICAgICAgPHA+WAotICAgICAgICAgICAgPHA+WAotICAgICAgICAg
ICAgPHA+WAotICAgICAgICAgICAgPHA+WAotICAgICAgICAgICAgPHA+WAotICAgICAgICAgICAg
PHA+WAotICAgICAgICAgICAgPHA+WAotICAgICAgICA8L2ZpZWxkc2V0PgotICAgICAgICA8Zmll
bGRzZXQgc3R5bGU9ImRpc3BsYXk6Z3JpZDsgZ3JpZC1hdXRvLWNvbHVtbnM6IDUwcHg7IGdyaWQt
YXV0by1yb3dzOiAyMHB4OyI+Ci0gICAgICAgICAgICA8bGVnZW5kPkxlZ2VuZDwvbGVnZW5kPgot
ICAgICAgICAgICAgPHA+WAotICAgICAgICAgICAgPHA+WAotICAgICAgICAgICAgPHA+WAotICAg
ICAgICAgICAgPHA+WAotICAgICAgICAgICAgPHA+WAotICAgICAgICAgICAgPHA+WAotICAgICAg
ICAgICAgPHA+WAotICAgICAgICA8L2ZpZWxkc2V0PgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmllbGRzZXQvZmllbGRzZXQtbXVsdGlj
b2x1bW4tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmllbGRzZXQvZmll
bGRzZXQtbXVsdGljb2x1bW4tZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMWFkMDJhYjMzNWIzYjY3Yzc2ZWIyYjc0YzE5ZjI3MzZhYTc3MGMwNy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LW11bHRpY29sdW1uLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxNCArMCwwIEBACi08ZmllbGRzZXQgc3R5bGU9ImZsb2F0OmxlZnQiPjxsZWdl
bmQgc3R5bGU9ImZvbnQtc2l6ZTo0OHB4Ij5MZWdlbmQgVGl0bGU8L2xlZ2VuZD4KLSAgICA8ZGl2
IHN0eWxlPSJjb2x1bW5zOjI7Ij4KLSAgICBUaGlzIGNvbnRlbnQgc2hvdWxkIGJlIGluIHR3byBj
b2x1bW5zLiBJdCByZWFsbHkgc2hvdWxkIGJlLjxicj4KLSAgICBUaGlzIGNvbnRlbnQgc2hvdWxk
IGJlIGluIHR3byBjb2x1bW5zLiBJdCByZWFsbHkgc2hvdWxkIGJlLjxicj4KLSAgICBUaGlzIGNv
bnRlbnQgc2hvdWxkIGJlIGluIHR3byBjb2x1bW5zLiBJdCByZWFsbHkgc2hvdWxkIGJlLjxicj4K
LSAgICBUaGlzIGNvbnRlbnQgc2hvdWxkIGJlIGluIHR3byBjb2x1bW5zLiBJdCByZWFsbHkgc2hv
dWxkIGJlLjxicj4KLSAgICBUaGlzIGNvbnRlbnQgc2hvdWxkIGJlIGluIHR3byBjb2x1bW5zLiBJ
dCByZWFsbHkgc2hvdWxkIGJlLjxicj4KLSAgICBUaGlzIGNvbnRlbnQgc2hvdWxkIGJlIGluIHR3
byBjb2x1bW5zLiBJdCByZWFsbHkgc2hvdWxkIGJlLjxicj4KLSAgICBUaGlzIGNvbnRlbnQgc2hv
dWxkIGJlIGluIHR3byBjb2x1bW5zLiBJdCByZWFsbHkgc2hvdWxkIGJlLjxicj4KLSAgICBUaGlz
IGNvbnRlbnQgc2hvdWxkIGJlIGluIHR3byBjb2x1bW5zLiBJdCByZWFsbHkgc2hvdWxkIGJlLjxi
cj4KLSAgICBUaGlzIGNvbnRlbnQgc2hvdWxkIGJlIGluIHR3byBjb2x1bW5zLiBJdCByZWFsbHkg
c2hvdWxkIGJlLjxicj4KLSAgICBUaGlzIGNvbnRlbnQgc2hvdWxkIGJlIGluIHR3byBjb2x1bW5z
LiBJdCByZWFsbHkgc2hvdWxkIGJlLjxicj4KLSAgICA8L2Rpdj4KLTwvZmllbGRzZXQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LW11bHRpY29s
dW1uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LW11bHRp
Y29sdW1uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzNzdkZjY5NTI4NDU4
YmU1MDRhNGYyODZlOTQ5OTlkNDM5MzM1MzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNl
dC1tdWx0aWNvbHVtbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPGZpZWxk
c2V0IHN0eWxlPSJjb2x1bW5zOjI7ZmxvYXQ6bGVmdCI+PGxlZ2VuZCBzdHlsZT0iZm9udC1zaXpl
OjQ4cHgiPkxlZ2VuZCBUaXRsZTwvbGVnZW5kPgotICAgIFRoaXMgY29udGVudCBzaG91bGQgYmUg
aW4gdHdvIGNvbHVtbnMuIEl0IHJlYWxseSBzaG91bGQgYmUuPGJyPgotICAgIFRoaXMgY29udGVu
dCBzaG91bGQgYmUgaW4gdHdvIGNvbHVtbnMuIEl0IHJlYWxseSBzaG91bGQgYmUuPGJyPgotICAg
IFRoaXMgY29udGVudCBzaG91bGQgYmUgaW4gdHdvIGNvbHVtbnMuIEl0IHJlYWxseSBzaG91bGQg
YmUuPGJyPgotICAgIFRoaXMgY29udGVudCBzaG91bGQgYmUgaW4gdHdvIGNvbHVtbnMuIEl0IHJl
YWxseSBzaG91bGQgYmUuPGJyPgotICAgIFRoaXMgY29udGVudCBzaG91bGQgYmUgaW4gdHdvIGNv
bHVtbnMuIEl0IHJlYWxseSBzaG91bGQgYmUuPGJyPgotICAgIFRoaXMgY29udGVudCBzaG91bGQg
YmUgaW4gdHdvIGNvbHVtbnMuIEl0IHJlYWxseSBzaG91bGQgYmUuPGJyPgotICAgIFRoaXMgY29u
dGVudCBzaG91bGQgYmUgaW4gdHdvIGNvbHVtbnMuIEl0IHJlYWxseSBzaG91bGQgYmUuPGJyPgot
ICAgIFRoaXMgY29udGVudCBzaG91bGQgYmUgaW4gdHdvIGNvbHVtbnMuIEl0IHJlYWxseSBzaG91
bGQgYmUuPGJyPgotICAgIFRoaXMgY29udGVudCBzaG91bGQgYmUgaW4gdHdvIGNvbHVtbnMuIEl0
IHJlYWxseSBzaG91bGQgYmUuPGJyPgotICAgIFRoaXMgY29udGVudCBzaG91bGQgYmUgaW4gdHdv
IGNvbHVtbnMuIEl0IHJlYWxseSBzaG91bGQgYmUuPGJyPgotPC9maWVsZHNldD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmllbGRzZXQvZmllbGRzZXQtb3ZlcmZsb3ctYXV0
by1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNl
dC1vdmVyZmxvdy1hdXRvLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQ1ZTdkOTIwZTYxYjA4NTIxZWJjYzI1YTUxODM4MTlhOTJhNWNhZDIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9maWVsZHNldC9maWVsZHNldC1vdmVyZmxvdy1hdXRvLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwzMiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFk
PgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICAuY29udGVudHMgeyBib3JkZXI6MnB4IHNv
bGlkIHNreWJsdWU7IGJhY2tncm91bmQtY29sb3I6I2NjY2NjYzsgLXdlYmtpdC1tYXJnaW4tYmVm
b3JlOjZweDsgLXdlYmtpdC1tYXJnaW4tYWZ0ZXI6NnB4IH0KLSAgICAgICAgICAgIC5maWVsZHNl
dCB7IHZlcnRpY2FsLWFsaWduOmJvdHRvbTsgLXdlYmtpdC1sb2dpY2FsLXdpZHRoOjMyMHB4OyBw
b3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7ICBwYWRkaW5nOjQwcHg7IC13
ZWJraXQtcGFkZGluZy1iZWZvcmU6MH0KLSAgICAgICAgICAgIC5sZWdlbmQgeyAgLXdlYmtpdC1s
b2dpY2FsLWhlaWdodDo2NHB4OyAtd2Via2l0LWxvZ2ljYWwtd2lkdGg6IDI4NHB4OyAtd2Via2l0
LW1hcmdpbi1hZnRlcjozNHB4O2JhY2tncm91bmQtY29sb3I6IzMwODBmMDsgYm9yZGVyOjhweCBz
b2xpZCBsaWdodGJsdWU7IGZvbnQtc2l6ZTo0OHB4IH0KLSAgICAgICAgICAgIC5iZWhpbmQtYm94
IHsgcG9zaXRpb246YWJzb2x1dGU7IGJvcmRlcjoxMnB4IHNvbGlkIG5hdnk7IHotaW5kZXg6LTEg
fQotICAgICAgICAgICAgI3Njcm9sbCB7IG92ZXJmbG93OmF1dG87IHBvc2l0aW9uOmFic29sdXRl
O2JvdHRvbTowO2xlZnQ6MDtyaWdodDowOyB0b3A6ODBweDsgYm90dG9tOjEycHg7IHJpZ2h0OjEy
cHg7IGxlZnQ6MTJweDsgcGFkZGluZzoyOHB4IDI4cHggMCAyOHB4ICB9Ci0gICAgICAgIDwvc3R5
bGU+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8ZGl2IGNsYXNzPWZpZWxkc2V0
PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmVoaW5kLWJveCIgc3R5bGU9ImxlZnQ6MDsgdG9w
OjM0cHg7IHJpZ2h0OjA7IGJvdHRvbTowOyI+PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNz
PWxlZ2VuZD5MZWdlbmQgVGl0bGU8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgPGRp
diBpZD1zY3JvbGw+Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICA8ZGl2IGNsYXNzPWNv
bnRlbnRzPkZpZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPWNvbnRlbnRzPk1vcmUgRmllbGRzZXQgQ29udGVudHM8L2Rpdj4KLSAg
ICAgICAgICAgIDxkaXYgY2xhc3M9Y29udGVudHM+TW9yZSBGaWVsZHNldCBDb250ZW50czwvZGl2
PgotICAgICAgICAgICAgPGRpdiBjbGFzcz1jb250ZW50cz5Nb3JlIEZpZWxkc2V0IENvbnRlbnRz
PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPWNvbnRlbnRzPk1vcmUgRmllbGRzZXQgQ29u
dGVudHM8L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Y29udGVudHM+TW9yZSBGaWVsZHNl
dCBDb250ZW50czwvZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFzcz1jb250ZW50cyBzdHlsZT0i
bWFyZ2luLWJvdHRvbTowIj5Nb3JlIEZpZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgCi0gICAgICAgIDwvZGl2PgotICAg
IDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmll
bGRzZXQvZmllbGRzZXQtb3ZlcmZsb3ctYXV0by5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9maWVsZHNldC9maWVsZHNldC1vdmVyZmxvdy1hdXRvLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDU2MDY4YmU0OGQwMWQxZTZiM2YyYTUyZDQxYTE2MzVjZjFlYWJkMGEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNldC1vdmVyZmxvdy1hdXRvLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwzNCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFk
PgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICBmaWVsZHNldCBkaXY6bm90KC5wb3NpdGlv
bmVkKSB7IGJvcmRlcjoycHggc29saWQgc2t5Ymx1ZTsgYmFja2dyb3VuZC1jb2xvcjojY2NjY2Nj
OyAtd2Via2l0LW1hcmdpbi1iZWZvcmU6NnB4OyAtd2Via2l0LW1hcmdpbi1hZnRlcjo2cHggIH0K
LSAgICAgICAgICAgIGZpZWxkc2V0IHsgb3ZlcmZsb3c6YXV0bzsgcG9zaXRpb246cmVsYXRpdmU7
IG1hcmdpbjowOyB2ZXJ0aWNhbC1hbGlnbjpib3R0b207IC13ZWJraXQtbG9naWNhbC13aWR0aDoz
MjBweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGJvcmRlcjoxMnB4IHNvbGlkIG5hdnk7IHBhZGRp
bmc6MjhweCB9Ci0gICAgICAgICAgICBsZWdlbmQgeyBwYWRkaW5nOjA7IC13ZWJraXQtbG9naWNh
bC1oZWlnaHQ6NjRweDsgLXdlYmtpdC1sb2dpY2FsLXdpZHRoOiAyODRweDsgYmFja2dyb3VuZC1j
b2xvcjojMzA4MGYwOyBib3JkZXI6OHB4IHNvbGlkIGxpZ2h0Ymx1ZTsgZm9udC1zaXplOjQ4cHgg
fQotICAgICAgICAgICAgLnBvc2l0aW9uZWQgeyBoZWlnaHQ6MCB9Ci0gICAgICAgIDwvc3R5bGU+
Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8ZmllbGRzZXQ+Ci0gICAgICAgICAg
ICA8bGVnZW5kPkxlZ2VuZCBUaXRsZTwvbGVnZW5kPgotICAgICAgICAgICAgCi0gICAgICAgICAg
ICA8ZGl2IGNsYXNzPXBvc2l0aW9uZWQ+Ci0gICAgICAgICAgICA8ZGl2PkZpZWxkc2V0IENvbnRl
bnRzPC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIDxkaXY+TW9yZSBGaWVsZHNldCBD
b250ZW50czwvZGl2PgotICAgICAgICAgICAgCi0gICAgICAgICAgICA8ZGl2Pk1vcmUgRmllbGRz
ZXQgQ29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgPGRpdj5Nb3JlIEZp
ZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIDxkaXY+TW9y
ZSBGaWVsZHNldCBDb250ZW50czwvZGl2PgotICAgICAgICAgICAgCi0gICAgICAgICAgICA8ZGl2
Pk1vcmUgRmllbGRzZXQgQ29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAgICAgICAg
PGRpdj5Nb3JlIEZpZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAg
ICAgICAgICAgIAotICAgICAgICA8L2ZpZWxkc2V0PgotCi0gICAgPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNldC1vdmVy
Zmxvdy1oaWRkZW4tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmllbGRz
ZXQvZmllbGRzZXQtb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDViNjQ3MDcyM2NmNGIyNWMyNWFiOWI0OTk1YjlhNzZjOGE1Y2M0MGMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNldC1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0
bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgIC5jb250ZW50cyB7
IGJvcmRlcjoycHggc29saWQgc2t5Ymx1ZTsgYmFja2dyb3VuZC1jb2xvcjojY2NjY2NjOyAtd2Vi
a2l0LW1hcmdpbi1iZWZvcmU6NnB4OyAtd2Via2l0LW1hcmdpbi1hZnRlcjo2cHggfQotICAgICAg
ICAgICAgLmZpZWxkc2V0IHsgdmVydGljYWwtYWxpZ246Ym90dG9tOyAtd2Via2l0LWxvZ2ljYWwt
d2lkdGg6MzIwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgIHBh
ZGRpbmc6NDBweDsgLXdlYmtpdC1wYWRkaW5nLWJlZm9yZTowfQotICAgICAgICAgICAgLmxlZ2Vu
ZCB7ICAtd2Via2l0LWxvZ2ljYWwtaGVpZ2h0OjY0cHg7IC13ZWJraXQtbG9naWNhbC13aWR0aDog
Mjg0cHg7IC13ZWJraXQtbWFyZ2luLWFmdGVyOjM0cHg7YmFja2dyb3VuZC1jb2xvcjojMzA4MGYw
OyBib3JkZXI6OHB4IHNvbGlkIGxpZ2h0Ymx1ZTsgZm9udC1zaXplOjQ4cHggfQotICAgICAgICAg
ICAgLmJlaGluZC1ib3ggeyBwb3NpdGlvbjphYnNvbHV0ZTsgYm9yZGVyOjEycHggc29saWQgbmF2
eTsgei1pbmRleDotMSB9Ci0gICAgICAgICAgIAotICAgICAgICA8L3N0eWxlPgotICAgIDwvaGVh
ZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPGRpdiBjbGFzcz1maWVsZHNldD4KLSAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImJlaGluZC1ib3giIHN0eWxlPSJsZWZ0OjA7IHRvcDozNHB4OyByaWdodDow
OyBib3R0b206MDsiPjwvZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFzcz1sZWdlbmQ+TGVnZW5k
IFRpdGxlPC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Y29udGVu
dHM+RmllbGRzZXQgQ29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgPGRp
diBjbGFzcz1jb250ZW50cz5Nb3JlIEZpZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIAotICAgICAgICA8L2Rpdj4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LW92ZXJm
bG93LWhpZGRlbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNl
dC1vdmVyZmxvdy1oaWRkZW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ2
MjZhZjRlOTYxOGUxN2U1YzdlNzBmMTVhNmIwNDBkMmY3MmM3OS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxk
c2V0L2ZpZWxkc2V0LW92ZXJmbG93LWhpZGRlbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMg
KzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHN0
eWxlPgotICAgICAgICAgICAgZmllbGRzZXQgPiBkaXY6bm90KC5wb3NpdGlvbmVkKSB7IGJvcmRl
cjoycHggc29saWQgc2t5Ymx1ZTsgYmFja2dyb3VuZC1jb2xvcjojY2NjY2NjOyAtd2Via2l0LW1h
cmdpbi1iZWZvcmU6NnB4OyAtd2Via2l0LW1hcmdpbi1hZnRlcjo2cHggIH0KLSAgICAgICAgICAg
IGZpZWxkc2V0IHsgb3ZlcmZsb3c6aGlkZGVuOyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjA7
IHZlcnRpY2FsLWFsaWduOmJvdHRvbTsgLXdlYmtpdC1sb2dpY2FsLXdpZHRoOjMyMHB4OyBkaXNw
bGF5OmlubGluZS1ibG9jazsgYm9yZGVyOjEycHggc29saWQgbmF2eTsgcGFkZGluZzoyOHB4IH0K
LSAgICAgICAgICAgIGxlZ2VuZCB7IHBhZGRpbmc6MDsgLXdlYmtpdC1sb2dpY2FsLWhlaWdodDo2
NHB4OyAtd2Via2l0LWxvZ2ljYWwtd2lkdGg6IDI4NHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMzMDgw
ZjA7IGJvcmRlcjo4cHggc29saWQgbGlnaHRibHVlOyBmb250LXNpemU6NDhweCB9Ci0gICAgICAg
ICAgICAKLSAgICAgICAgPC9zdHlsZT4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAg
IDxmaWVsZHNldD4KLSAgICAgICAgICAgIDxsZWdlbmQ+TGVnZW5kIFRpdGxlPC9sZWdlbmQ+Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIDxkaXY+RmllbGRzZXQgQ29udGVudHM8L2Rpdj4KLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgPGRpdj5Nb3JlIEZpZWxkc2V0IENvbnRlbnRzPC9kaXY+
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIAotICAgICAgICA8L2ZpZWxkc2V0PgotCi0gICAg
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWVs
ZHNldC9maWVsZHNldC1wb3NpdGlvbmVkLWNoaWxkcmVuLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LXBvc2l0aW9uZWQtY2hpbGRyZW4tZXhw
ZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTMwNjE3MjlkMGI2NmQz
ODI5OGE3N2M2Y2M1NmM0NDM3NDZkZWFiNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0
LXBvc2l0aW9uZWQtY2hpbGRyZW4tZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1
ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxz
dHlsZT4KLSAgICAgICAgICAgIC5jb250ZW50cyB7IGJvcmRlcjoycHggc29saWQgc2t5Ymx1ZTsg
YmFja2dyb3VuZC1jb2xvcjojY2NjY2NjOyAtd2Via2l0LW1hcmdpbi1iZWZvcmU6NnB4OyAtd2Vi
a2l0LW1hcmdpbi1hZnRlcjo2cHggfQotICAgICAgICAgICAgLmZpZWxkc2V0IHsgdmVydGljYWwt
YWxpZ246Ym90dG9tOyAtd2Via2l0LWxvZ2ljYWwtd2lkdGg6MzIwcHg7IHBvc2l0aW9uOnJlbGF0
aXZlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgIHBhZGRpbmc6NDBweDsgLXdlYmtpdC1wYWRkaW5n
LWJlZm9yZTowfQotICAgICAgICAgICAgLmxlZ2VuZCB7ICAtd2Via2l0LWxvZ2ljYWwtaGVpZ2h0
OjY0cHg7IC13ZWJraXQtbG9naWNhbC13aWR0aDogMjg0cHg7IC13ZWJraXQtbWFyZ2luLWFmdGVy
OjM0cHg7YmFja2dyb3VuZC1jb2xvcjojMzA4MGYwOyBib3JkZXI6OHB4IHNvbGlkIGxpZ2h0Ymx1
ZTsgZm9udC1zaXplOjQ4cHggfQotICAgICAgICAgICAgLmJlaGluZC1ib3ggeyBwb3NpdGlvbjph
YnNvbHV0ZTsgYm9yZGVyOjEycHggc29saWQgbmF2eTsgei1pbmRleDotMSB9Ci0gICAgICAgICAg
ICAucG9zaXRpb25lZCB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6OTBweDsgYm90dG9tOjIycHg7
IHJpZ2h0OjIycHg7IGxlZnQ6MjJweDsgYmFja2dyb3VuZC1jb2xvcjpkYXJrYmx1ZTsgei1pbmRl
eDotMSB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAg
ICA8ZGl2IGNsYXNzPWZpZWxkc2V0PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmVoaW5kLWJv
eCIgc3R5bGU9ImxlZnQ6MDsgdG9wOjM0cHg7IHJpZ2h0OjA7IGJvdHRvbTowOyI+PC9kaXY+Ci0g
ICAgICAgICAgICA8ZGl2IGNsYXNzPWxlZ2VuZD5MZWdlbmQgVGl0bGU8L2Rpdj4KLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgPGRpdiBjbGFzcz1jb250ZW50cz5GaWVsZHNldCBDb250ZW50czwv
ZGl2PgotICAgICAgICAgICAgCi0gICAgICAgICAgICA8ZGl2IGNsYXNzPWNvbnRlbnRzPk1vcmUg
RmllbGRzZXQgQ29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgPGRpdiBj
bGFzcz0icG9zaXRpb25lZCI+PC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAgICAgPC9kaXY+Ci0g
ICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
aWVsZHNldC9maWVsZHNldC1wb3NpdGlvbmVkLWNoaWxkcmVuLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LXBvc2l0aW9uZWQtY2hpbGRyZW4uaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTgxN2QyMjk1NmRkZmZjYjQzMmNmNmY2ZDYyOWVi
NzNmYTA1Y2IzMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LXBvc2l0aW9uZWQtY2hp
bGRyZW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLTwhZG9jdHlwZSBodG1s
PgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgIGZpZWxk
c2V0ID4gZGl2Om5vdCgucG9zaXRpb25lZCkgeyBib3JkZXI6MnB4IHNvbGlkIHNreWJsdWU7IGJh
Y2tncm91bmQtY29sb3I6I2NjY2NjYzsgLXdlYmtpdC1tYXJnaW4tYmVmb3JlOjZweDsgLXdlYmtp
dC1tYXJnaW4tYWZ0ZXI6NnB4ICB9Ci0gICAgICAgICAgICBmaWVsZHNldCB7IHBvc2l0aW9uOnJl
bGF0aXZlOyBtYXJnaW46MDsgdmVydGljYWwtYWxpZ246Ym90dG9tOyAtd2Via2l0LWxvZ2ljYWwt
d2lkdGg6MzIwcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBib3JkZXI6MTJweCBzb2xpZCBuYXZ5
OyBwYWRkaW5nOjI4cHggfQotICAgICAgICAgICAgbGVnZW5kIHsgcGFkZGluZzowOyAtd2Via2l0
LWxvZ2ljYWwtaGVpZ2h0OjY0cHg7IC13ZWJraXQtbG9naWNhbC13aWR0aDogMjg0cHg7IGJhY2tn
cm91bmQtY29sb3I6IzMwODBmMDsgYm9yZGVyOjhweCBzb2xpZCBsaWdodGJsdWU7IGZvbnQtc2l6
ZTo0OHB4IH0KLSAgICAgICAgICAgIC5wb3NpdGlvbmVkIHsgcG9zaXRpb246YWJzb2x1dGU7IHRv
cDoxMHB4OyBib3R0b206MTBweDsgcmlnaHQ6MTBweDsgbGVmdDoxMHB4OyBiYWNrZ3JvdW5kLWNv
bG9yOmRhcmtibHVlOyB6LWluZGV4Oi0xIH0KLSAgICAgICAgPC9zdHlsZT4KLSAgICA8L2hlYWQ+
Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxmaWVsZHNldD4KLSAgICAgICAgICAgIDxsZWdlbmQ+TGVn
ZW5kIFRpdGxlPC9sZWdlbmQ+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIDxkaXY+RmllbGRz
ZXQgQ29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgPGRpdj5Nb3JlIEZp
ZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIDxkaXYgY2xh
c3M9cG9zaXRpb25lZD48L2Rpdj4KLSAgICAgICAgPC9maWVsZHNldD4KLQotICAgIDwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmllbGRzZXQvZmll
bGRzZXQtcG9zaXRpb25lZC1sZWdlbmQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZmllbGRzZXQvZmllbGRzZXQtcG9zaXRpb25lZC1sZWdlbmQtZXhwZWN0ZWQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjczZDUzZmYzMzEzNjdjYjAwZTllNjExMDRh
OTA1MjVmZWM0MThlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LXBvc2l0aW9uZWQt
bGVnZW5kLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08IWRv
Y3R5cGUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8c3R5bGU+Ci0gICAgICAg
ICAgICAuY29udGVudHMgeyBib3JkZXI6MnB4IHNvbGlkIHNreWJsdWU7IGJhY2tncm91bmQtY29s
b3I6I2NjY2NjYzsgLXdlYmtpdC1tYXJnaW4tYmVmb3JlOjZweDsgLXdlYmtpdC1tYXJnaW4tYWZ0
ZXI6NnB4OyAgfQotICAgICAgICAgICAgLmZpZWxkc2V0IHsgcG9zaXRpb246cmVsYXRpdmU7IHZl
cnRpY2FsLWFsaWduOmJvdHRvbTsgLXdlYmtpdC1sb2dpY2FsLXdpZHRoOjMyMHB4OyBwb3NpdGlv
bjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7ICAgYm9yZGVyOjEycHggc29saWQgbmF2
eTsgcGFkZGluZzoyOHB4OyB9Ci0gICAgICAgICAgICAubGVnZW5kIHsgIC13ZWJraXQtbG9naWNh
bC1oZWlnaHQ6NjRweDsgLXdlYmtpdC1sb2dpY2FsLXdpZHRoOiAyODRweDtiYWNrZ3JvdW5kLWNv
bG9yOiMzMDgwZjA4MDsgYm9yZGVyOjhweCBzb2xpZCBsaWdodGJsdWU7IGZvbnQtc2l6ZTo0OHB4
OyBwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtyaWdodDowOyBwb3NpdGlvbjphYnNvbHV0ZSB9
Ci0gICAgICAgICAgICAuYmVoaW5kLWJveCB7IHBvc2l0aW9uOmFic29sdXRlOzsgei1pbmRleDot
MTsgIH0KLSAgICAgICAgICAgCi0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgotICAgIDxi
b2R5PgotICAgICAgICA8ZGl2IGNsYXNzPWZpZWxkc2V0PgotICAgICAgICAgICAgPGRpdiBjbGFz
cz0iYmVoaW5kLWJveCIgc3R5bGU9ImxlZnQ6MDsgdG9wOjM0cHg7IHJpZ2h0OjA7IGJvdHRvbTow
OyI+PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPWxlZ2VuZD5MZWdlbmQgVGl0bGU8L2Rp
dj4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgPGRpdiBjbGFzcz1jb250ZW50cz5GaWVsZHNl
dCBDb250ZW50czwvZGl2PgotICAgICAgICAgICAgCi0gICAgICAgICAgICA8ZGl2IGNsYXNzPWNv
bnRlbnRzPk1vcmUgRmllbGRzZXQgQ29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgCi0gICAgICAgIDwvZGl2PgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmllbGRzZXQvZmllbGRzZXQtcG9zaXRpb25lZC1sZWdl
bmQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmllbGRzZXQvZmllbGRzZXQtcG9zaXRp
b25lZC1sZWdlbmQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTUwNDZhMzRh
OWNiZTFjZGE4ZDQ0NzJhNjk5M2NlZDJjMzc2MjEyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2Zp
ZWxkc2V0LXBvc2l0aW9uZWQtbGVnZW5kLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCww
IEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8c3R5bGU+
Ci0gICAgICAgICAgICBmaWVsZHNldCA+IGRpdjpub3QoLnBvc2l0aW9uZWQpIHsgYm9yZGVyOjJw
eCBzb2xpZCBza3libHVlOyBiYWNrZ3JvdW5kLWNvbG9yOiNjY2NjY2M7IC13ZWJraXQtbWFyZ2lu
LWJlZm9yZTo2cHg7IC13ZWJraXQtbWFyZ2luLWFmdGVyOjZweDsgICB9Ci0gICAgICAgICAgICBm
aWVsZHNldCB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MDsgdmVydGljYWwtYWxpZ246Ym90
dG9tOyAtd2Via2l0LWxvZ2ljYWwtd2lkdGg6MzIwcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBi
b3JkZXI6MTJweCBzb2xpZCBuYXZ5OyBwYWRkaW5nOjI4cHg7IH0KLSAgICAgICAgICAgIGxlZ2Vu
ZCB7IHBhZGRpbmc6MDsgLXdlYmtpdC1sb2dpY2FsLWhlaWdodDo2NHB4OyAtd2Via2l0LWxvZ2lj
YWwtd2lkdGg6IDI4NHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMzMDgwZjA4MDsgYm9yZGVyOjhweCBz
b2xpZCBsaWdodGJsdWU7IGZvbnQtc2l6ZTo0OHB4OyBwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206
MDtyaWdodDowIH0KLSAgICAgICAgICAgIAotICAgICAgICA8L3N0eWxlPgotICAgIDwvaGVhZD4K
LSAgICA8Ym9keT4KLSAgICAgICAgPGZpZWxkc2V0PgotICAgICAgICAgICAgPGxlZ2VuZD5MZWdl
bmQgVGl0bGU8L2xlZ2VuZD4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgPGRpdj5GaWVsZHNl
dCBDb250ZW50czwvZGl2PgotICAgICAgICAgICAgCi0gICAgICAgICAgICA8ZGl2Pk1vcmUgRmll
bGRzZXQgQ29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgCi0gICAgICAg
IDwvZmllbGRzZXQ+Ci0KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LXNlbGYtcGFpbnRpbmctbGVnZW5kLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LXNl
bGYtcGFpbnRpbmctbGVnZW5kLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEzZmIxM2U0MWQ5OTVlZmNhYzExNGU0N2YxZDZmYmRmYzQyY2NkM2MuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9maWVsZHNldC9maWVsZHNldC1zZWxmLXBhaW50aW5nLWxlZ2VuZC1leHBlY3RlZC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4K
LSAgICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAgICAgLmNvbnRlbnRzIHsgYm9y
ZGVyOjJweCBzb2xpZCBza3libHVlOyBiYWNrZ3JvdW5kLWNvbG9yOiNjY2NjY2M7IC13ZWJraXQt
bWFyZ2luLWJlZm9yZTo2cHg7IC13ZWJraXQtbWFyZ2luLWFmdGVyOjZweDsgIH0KLSAgICAgICAg
ICAgIC5maWVsZHNldCB7IHZlcnRpY2FsLWFsaWduOmJvdHRvbTsgLXdlYmtpdC1sb2dpY2FsLXdp
ZHRoOjMyMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7ICBwYWRk
aW5nOjQwcHg7IC13ZWJraXQtcGFkZGluZy1iZWZvcmU6MDsgIH0KLSAgICAgICAgICAgIC5sZWdl
bmQgeyAgLXdlYmtpdC1sb2dpY2FsLWhlaWdodDo2NHB4OyAtd2Via2l0LWxvZ2ljYWwtd2lkdGg6
IDI4NHB4OyAtd2Via2l0LW1hcmdpbi1hZnRlcjozNHB4O2JhY2tncm91bmQtY29sb3I6IzMwODBm
MDgwOyBib3JkZXI6OHB4IHNvbGlkIGxpZ2h0Ymx1ZTsgZm9udC1zaXplOjQ4cHg7IHRyYW5zZm9y
bTp0cmFuc2xhdGVYKDEwcHgpIH0KLSAgICAgICAgICAgIC5iZWhpbmQtYm94IHsgcG9zaXRpb246
YWJzb2x1dGU7IGJvcmRlcjoxMnB4IHNvbGlkIG5hdnk7IHotaW5kZXg6LTE7IGJvcmRlci10b3A6
MTJweCBzb2xpZCB0cmFuc3BhcmVudCB9Ci0gICAgICAgICAgIAotICAgICAgICA8L3N0eWxlPgot
ICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPGRpdiBjbGFzcz1maWVsZHNldD4KLSAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImJlaGluZC1ib3giIHN0eWxlPSJsZWZ0OjA7IHRvcDozNHB4
OyByaWdodDowOyBib3R0b206MDsiPjwvZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFzcz1sZWdl
bmQ+TGVnZW5kIFRpdGxlPC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIDxkaXYgY2xh
c3M9Y29udGVudHM+RmllbGRzZXQgQ29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgPGRpdiBjbGFzcz1jb250ZW50cz5Nb3JlIEZpZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIAotICAgICAgICA8L2Rpdj4KLSAgICA8L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxk
c2V0LXNlbGYtcGFpbnRpbmctbGVnZW5kLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zp
ZWxkc2V0L2ZpZWxkc2V0LXNlbGYtcGFpbnRpbmctbGVnZW5kLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDA1NzdjYzBlOTUxMDZhYmY0YWQ0MDAzOTVlMDA0MTExZGQ0Yzk1YWUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNldC1zZWxmLXBhaW50aW5nLWxlZ2VuZC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4K
LSAgICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAgICAgZmllbGRzZXQgPiBkaXY6
bm90KC5wb3NpdGlvbmVkKSB7IGJvcmRlcjoycHggc29saWQgc2t5Ymx1ZTsgYmFja2dyb3VuZC1j
b2xvcjojY2NjY2NjOyAtd2Via2l0LW1hcmdpbi1iZWZvcmU6NnB4OyAtd2Via2l0LW1hcmdpbi1h
ZnRlcjo2cHg7ICAgfQotICAgICAgICAgICAgZmllbGRzZXQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsg
bWFyZ2luOjA7IHZlcnRpY2FsLWFsaWduOmJvdHRvbTsgLXdlYmtpdC1sb2dpY2FsLXdpZHRoOjMy
MHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgYm9yZGVyOjEycHggc29saWQgbmF2eTsgcGFkZGlu
ZzoyOHB4OyBib3JkZXItdG9wOjEycHggc29saWQgdHJhbnNwYXJlbnQgfQotICAgICAgICAgICAg
bGVnZW5kIHsgcGFkZGluZzowOyAtd2Via2l0LWxvZ2ljYWwtaGVpZ2h0OjY0cHg7IC13ZWJraXQt
bG9naWNhbC13aWR0aDogMjg0cHg7IGJhY2tncm91bmQtY29sb3I6IzMwODBmMDgwOyBib3JkZXI6
OHB4IHNvbGlkIGxpZ2h0Ymx1ZTsgZm9udC1zaXplOjQ4cHg7IHRyYW5zZm9ybTp0cmFuc2xhdGVY
KDEwcHgpOyB9Ci0gICAgICAgICAgICAKLSAgICAgICAgPC9zdHlsZT4KLSAgICA8L2hlYWQ+Ci0g
ICAgPGJvZHk+Ci0gICAgICAgIDxmaWVsZHNldD4KLSAgICAgICAgICAgIDxsZWdlbmQ+TGVnZW5k
IFRpdGxlPC9sZWdlbmQ+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIDxkaXY+RmllbGRzZXQg
Q29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgPGRpdj5Nb3JlIEZpZWxk
c2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIAotICAgICAgICA8
L2ZpZWxkc2V0PgotCi0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNldC13cml0aW5nLW1vZGVzLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2ZpZWxkc2V0LXdyaXRpbmctbW9k
ZXMtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTA3NDI4YTRj
MTQ3NWRkY2JiNGVmMzgwZTA1MWQzYzg5NjM5NjVmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpZWxkc2V0L2Zp
ZWxkc2V0LXdyaXRpbmctbW9kZXMtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ0
ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxz
dHlsZT4KLSAgICAgICAgICAgIC5jb250ZW50cyB7IGJvcmRlcjoycHggc29saWQgc2t5Ymx1ZTsg
YmFja2dyb3VuZC1jb2xvcjojY2NjY2NjOyAtd2Via2l0LW1hcmdpbi1iZWZvcmU6NnB4OyAtd2Vi
a2l0LW1hcmdpbi1hZnRlcjo2cHggfQotICAgICAgICAgICAgLmZpZWxkc2V0IHsgdmVydGljYWwt
YWxpZ246Ym90dG9tOyAtd2Via2l0LWxvZ2ljYWwtd2lkdGg6MzIwcHg7IHBvc2l0aW9uOnJlbGF0
aXZlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBwYWRk
aW5nOjQwcHg7IC13ZWJraXQtcGFkZGluZy1iZWZvcmU6MH0KLSAgICAgICAgICAgIC5sZWdlbmQg
eyAgLXdlYmtpdC1sb2dpY2FsLWhlaWdodDo2NHB4OyAtd2Via2l0LWxvZ2ljYWwtd2lkdGg6IDI4
NHB4OyAtd2Via2l0LW1hcmdpbi1hZnRlcjozNHB4O2JhY2tncm91bmQtY29sb3I6IzMwODBmMDsg
Ym9yZGVyOjhweCBzb2xpZCBsaWdodGJsdWU7IGZvbnQtc2l6ZTo0OHB4IH0KLSAgICAgICAgICAg
IC5iZWhpbmQtYm94IHsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6I2RkZGRk
ZDsgYm9yZGVyOjEycHggc29saWQgbmF2eTsgei1pbmRleDotMSB9Ci0gICAgICAgIDwvc3R5bGU+
Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8ZGl2IGNsYXNzPWZpZWxkc2V0IHN0
eWxlPSJ3cml0aW5nLW1vZGU6dmVydGljYWwtbHIiPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0i
YmVoaW5kLWJveCIgc3R5bGU9ImxlZnQ6MzRweDsgdG9wOjA7IHJpZ2h0OjA7IGJvdHRvbTowOyI+
PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPWxlZ2VuZD5MZWdlbmQgVGl0bGU8L2Rpdj4K
LSAgICAgICAgICAgIAotICAgICAgICAgICAgPGRpdiBjbGFzcz1jb250ZW50cz5GaWVsZHNldCBD
b250ZW50czwvZGl2PgotICAgICAgICAgICAgCi0gICAgICAgICAgICA8ZGl2IGNsYXNzPWNvbnRl
bnRzPk1vcmUgRmllbGRzZXQgQ29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAgICA8
L2Rpdj4KLSAgICAgICAgCi0gICAgICAgIDxkaXYgY2xhc3M9ZmllbGRzZXQgc3R5bGU9IndyaXRp
bmctbW9kZTp2ZXJ0aWNhbC1ybDsiPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmVoaW5kLWJv
eCIgc3R5bGU9InJpZ2h0OjM0cHg7IHRvcDowOyBsZWZ0OjA7IGJvdHRvbTowOyI+PC9kaXY+Ci0g
ICAgICAgICAgICA8ZGl2IGNsYXNzPWxlZ2VuZD5MZWdlbmQgVGl0bGU8L2Rpdj4KLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgPGRpdiBjbGFzcz1jb250ZW50cz5GaWVsZHNldCBDb250ZW50czwv
ZGl2PgotICAgICAgICAgICAgCi0gICAgICAgICAgICA8ZGl2IGNsYXNzPWNvbnRlbnRzPk1vcmUg
RmllbGRzZXQgQ29udGVudHM8L2Rpdj4KLSAgICAgICAgICAgIAotICAgICAgICA8L2Rpdj4KLSAg
ICAgICAgCi0gICAgICAgIAotICAgICAgIAotICAgICAgIDxkaXYgY2xhc3M9ZmllbGRzZXQgc3R5
bGU9IndyaXRpbmctbW9kZTpob3Jpem9udGFsLWJ0Ij4KLSAgICAgICAgICAgPGRpdiBjbGFzcz0i
YmVoaW5kLWJveCIgc3R5bGU9ImJvdHRvbTozNHB4OyB0b3A6MDsgcmlnaHQ6MDsgbGVmdDowOyI+
PC9kaXY+Ci0gICAgICAgICAgIDxkaXYgY2xhc3M9bGVnZW5kPkxlZ2VuZCBUaXRsZTwvZGl2Pgot
ICAgICAgICAgICAKLSAgICAgICAgICAgPGRpdiBjbGFzcz1jb250ZW50cz5GaWVsZHNldCBDb250
ZW50czwvZGl2PgotICAgICAgICAgICAKLSAgICAgICAgICAgPGRpdiBjbGFzcz1jb250ZW50cz5N
b3JlIEZpZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgIAotICAgICAgIDwvZGl2Pgot
ICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
ZmllbGRzZXQvZmllbGRzZXQtd3JpdGluZy1tb2Rlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9maWVsZHNldC9maWVsZHNldC13cml0aW5nLW1vZGVzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDg5N2MwOWY4NjBhYTE4ZTBmZWZkNzFmNWM5MDc4NzA2NDExZGEyMjQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9maWVsZHNldC9maWVsZHNldC13cml0aW5nLW1vZGVzLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICAgIDxo
ZWFkPgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICBmaWVsZHNldCA+IGRpdiB7IGJvcmRl
cjoycHggc29saWQgc2t5Ymx1ZTsgYmFja2dyb3VuZC1jb2xvcjojY2NjY2NjOyAtd2Via2l0LW1h
cmdpbi1iZWZvcmU6NnB4OyAtd2Via2l0LW1hcmdpbi1hZnRlcjo2cHggIH0KLSAgICAgICAgICAg
IGZpZWxkc2V0IHsgbWFyZ2luOjA7IHZlcnRpY2FsLWFsaWduOmJvdHRvbTsgLXdlYmtpdC1sb2dp
Y2FsLXdpZHRoOjMyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgYmFja2dyb3VuZC1jb2xvcjoj
ZGRkZGRkOyBib3JkZXI6MTJweCBzb2xpZCBuYXZ5OyBwYWRkaW5nOjI4cHggfQotICAgICAgICAg
ICAgbGVnZW5kIHsgcGFkZGluZzowOyAtd2Via2l0LWxvZ2ljYWwtaGVpZ2h0OjY0cHg7IC13ZWJr
aXQtbG9naWNhbC13aWR0aDogMjg0cHg7IGJhY2tncm91bmQtY29sb3I6IzMwODBmMDsgYm9yZGVy
OjhweCBzb2xpZCBsaWdodGJsdWU7IGZvbnQtc2l6ZTo0OHB4IH0KLSAgICAgICAgPC9zdHlsZT4K
LSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxmaWVsZHNldCBzdHlsZT0id3JpdGlu
Zy1tb2RlOnZlcnRpY2FsLWxyOyI+Ci0gICAgICAgICAgICA8bGVnZW5kPkxlZ2VuZCBUaXRsZTwv
bGVnZW5kPgotICAgICAgICAgICAgCi0gICAgICAgICAgICA8ZGl2PkZpZWxkc2V0IENvbnRlbnRz
PC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIDxkaXY+TW9yZSBGaWVsZHNldCBDb250
ZW50czwvZGl2PgotICAgICAgICAgICAgCi0gICAgICAgIDwvZmllbGRzZXQ+Ci0KLSAgICAgICAg
PGZpZWxkc2V0IHN0eWxlPSJ3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7ICI+Ci0gICAgICAgICAg
ICA8bGVnZW5kPkxlZ2VuZCBUaXRsZTwvbGVnZW5kPgotICAgICAgICAgICAgCi0gICAgICAgICAg
ICA8ZGl2PkZpZWxkc2V0IENvbnRlbnRzPC9kaXY+Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IDxkaXY+TW9yZSBGaWVsZHNldCBDb250ZW50czwvZGl2PgotICAgICAgICAgICAgCi0gICAgICAg
IDwvZmllbGRzZXQ+Ci0gICAgICAgIAotICAgICAgICAKLSAgICAgICA8ZmllbGRzZXQgc3R5bGU9
IndyaXRpbmctbW9kZTpob3Jpem9udGFsLWJ0Ij4KLSAgICAgICAgICAgPGxlZ2VuZD5MZWdlbmQg
VGl0bGU8L2xlZ2VuZD4KLSAgICAgICAgICAgCi0gICAgICAgICAgIDxkaXY+RmllbGRzZXQgQ29u
dGVudHM8L2Rpdj4KLSAgICAgICAgICAgCi0gICAgICAgICAgIDxkaXY+TW9yZSBGaWVsZHNldCBD
b250ZW50czwvZGl2PgotICAgICAgICAgICAKLSAgICAgICA8L2ZpZWxkc2V0PgotICAgIDwvYm9k
eT4KLTwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>