<?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>156030</bug_id>
          
          <creation_ts>2016-03-30 11:20:10 -0700</creation_ts>
          <short_desc>REGRESSION(r198828): Confirming PLT regression (Requested by anttik on #webkit).</short_desc>
          <delta_ts>2016-03-30 11:24:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>155298</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1179111</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-30 11:20:10 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/198828 broke the build:
Confirming PLT regression (Requested by anttik 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>1179113</commentid>
    <comment_count>1</comment_count>
      <attachid>275204</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-30 11:20:49 -0700</bug_when>
    <thetext>Created attachment 275204
ROLLOUT of r198828

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>1179117</commentid>
    <comment_count>2</comment_count>
      <attachid>275204</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-30 11:24:26 -0700</bug_when>
    <thetext>Comment on attachment 275204
ROLLOUT of r198828

Clearing flags on attachment: 275204

Committed r198847: &lt;http://trac.webkit.org/changeset/198847&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179118</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-30 11:24:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275204</attachid>
            <date>2016-03-30 11:20:49 -0700</date>
            <delta_ts>2016-03-30 11:24:26 -0700</delta_ts>
            <desc>ROLLOUT of r198828</desc>
            <filename>bug-156030-20160330112052.patch</filename>
            <type>text/plain</type>
            <size>117835</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4ODQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2JkNmQ2MjBhYTRiN2Zm
MzhiYzQ3NThmMWFhMWY4MDBhMDRkZmY4My4uMDIzM2VmNWIwMGM4MWU1MmQ0Yzg5NDIxMjE2MmEy
NWQwYmRlZTk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTAzLTMwICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTk4ODI4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU2MDMwCisKKyAgICAgICAgQ29uZmlybWluZyBQTFQgcmVncmVzc2lv
biAoUmVxdWVzdGVkIGJ5IGFudHRpayBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBj
aGFuZ2VzZXQ6CisKKyAgICAgICAgIlNlcGFyYXRlIHJlbmRlciB0cmVlIHVwZGF0aW5nIGZyb20g
c3R5bGUgcmVzb2x2ZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NTI5OAorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8x
OTg4MjgKKwogMjAxNi0wMy0zMCAgS2VpdGggTWlsbGVyIDxrZWl0aF9taWxsZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxvdXQgcjE5ODgwOC4gVGhlIHBhdGNoIGNhdXNl
cyBjcmFzaGVzIG9uIDMyLWJpdCBhbmQgYXBwZWFycyB0byBiZSBhIEpTQmVuY2ggcmVncmVzc2lv
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGRmYzc1OWI0MjFkODU1MjJhODRlNGViMDE5YjVm
Mzc0ZGQ0MWQzZC4uOTI1ZDQ1ZDE2ZTgzNzRlM2Y2MDcyODlkNDkyOWEwZmFkMmU1MDU2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTI2MjYsMTQgKzI2MjYsMTIgQEAgc2V0KFdlYkNvcmVfU09V
UkNFUwogICAgIHN0eWxlL0lkQ2hhbmdlSW52YWxpZGF0aW9uLmNwcAogICAgIHN0eWxlL0lubGlu
ZVRleHRCb3hTdHlsZS5jcHAKICAgICBzdHlsZS9SZW5kZXJUcmVlUG9zaXRpb24uY3BwCi0gICAg
c3R5bGUvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCiAgICAgc3R5bGUvU3R5bGVDaGFuZ2UuY3BwCiAg
ICAgc3R5bGUvU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAKICAgICBzdHlsZS9TdHlsZVJlbGF0
aW9ucy5jcHAKICAgICBzdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKICAgICBzdHls
ZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKICAgICBzdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5j
cHAKLSAgICBzdHlsZS9TdHlsZVVwZGF0ZS5jcHAKIAogICAgIHN2Zy9TVkdBRWxlbWVudC5jcHAK
ICAgICBzdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY1ZDNlOTFjMWY4NDEyMjc5
MTk2YWJiZjY0ZWVmZTAyM2QyZDM1NTMuLjg1ZDAxMTVhMjc1YjkyOTE1ZjAxMmZmYzY2ZmNmMzc3
MTQ5ODg1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTY1NTUsOCArNjU1NSw2IEBACiAJCUU0MjRBM0EwMTMzMERGMUUwMENG
NkRDOSAvKiBMZWdhY3lUaWxlR3JpZFRpbGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDI0QTM5RjEzMzBERjFFMDBDRjZEQzkgLyogTGVnYWN5VGls
ZUdyaWRUaWxlLm1tICovOyB9OwogCQlFNDI1QTQ5QTE4MjkyQjg0MDAyMENGQ0YgLyogQ29sbGVj
dGlvbkluZGV4Q2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU0MjVBNDk5MTgyOTJCODQwMDIwQ0ZDRiAvKiBDb2xsZWN0aW9uSW5kZXhDYWNoZS5o
ICovOyB9OwogCQlFNDI5NUZBNDEyQjA2MTRFMDBEMUFDRTAgLyogUmVzb3VyY2VMb2FkUHJpb3Jp
dHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0Mjk1
RkEzMTJCMDYxNEUwMEQxQUNFMCAvKiBSZXNvdXJjZUxvYWRQcmlvcml0eS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUU0MkU3NkRBMUM3QUY3NkMw
MEUzNjE0RCAvKiBTdHlsZVVwZGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDJFNzZEOTFDN0FGNzZDMDBFMzYxNEQgLyogU3R5bGVVcGRhdGUu
Y3BwICovOyB9OwotCQlFNDJFNzZEQzFDN0FGNzc2MDBFMzYxNEQgLyogU3R5bGVVcGRhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkU3NkRCMUM3
QUY3NzYwMEUzNjE0RCAvKiBTdHlsZVVwZGF0ZS5oICovOyB9OwogCQlFNDMxMDVCODE2NzUwRjBD
MDBEQjJGQjggLyogTm9kZVRyYXZlcnNhbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDMxMDVCNzE2NzUwRjBDMDBEQjJGQjggLyogTm9kZVRyYXZl
cnNhbC5jcHAgKi87IH07CiAJCUU0MzEwNUJCMTY3NTBGMTYwMERCMkZCOCAvKiBOb2RlVHJhdmVy
c2FsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDMx
MDVCQTE2NzUwRjE2MDBEQjJGQjggLyogTm9kZVRyYXZlcnNhbC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0M0EwMjNCMTdFQjM3MEEwMDRDREQy
NSAvKiBSZW5kZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDNBMDIzQTE3RUIzNzBBMDA0Q0REMjUgLyogUmVuZGVyRWxlbWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02NjEyLDgg
KzY2MTAsNiBAQAogCQlFNDUzOTA0OTBFQUZENjM3MDAzNjk1QzggLyogV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU0NTM5MDM4MEVBRkQ2MzcwMDM2OTVDOCAvKiBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9T
Lm1tICovOyB9OwogCQlFNDUzOTA0RDBFQUZENjM3MDAzNjk1QzggLyogV2lkZ2V0SU9TLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ1MzkwM0MwRUFG
RDYzNzAwMzY5NUM4IC8qIFdpZGdldElPUy5tbSAqLzsgfTsKIAkJRTQ1MzkwQUUwRUFGRjRCNTAw
MzY5NUM4IC8qIFN5c3RlbU1lbW9yeUlPUy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDUzOTBBRDBFQUZGNEI1MDAzNjk1QzggLyogU3lzdGVtTWVt
b3J5SU9TLmNwcCAqLzsgfTsKLQkJRTQ2MTgwMjkxQzhBMDZDRDAwMjZDMDJDIC8qIFJlbmRlclRy
ZWVVcGRhdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDYxODAyODFDOEEwNkNEMDAyNkMwMkMgLyogUmVuZGVyVHJlZVVwZGF0ZXIuaCAqLzsgfTsK
LQkJRTQ2MTgwMkIxQzhBMDZEOTAwMjZDMDJDIC8qIFJlbmRlclRyZWVVcGRhdGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NjE4MDJBMUM4QTA2
RDkwMDI2QzAyQyAvKiBSZW5kZXJUcmVlVXBkYXRlci5jcHAgKi87IH07CiAJCUU0NjE4MDJEMUM4
REQyOTAwMDI2QzAyQyAvKiBTdHlsZVJlbGF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ2MTgwMkMxQzhERDI5MDAwMjZDMDJDIC8qIFN0eWxl
UmVsYXRpb25zLmggKi87IH07CiAJCUU0NjE4MDJGMUM4REQ0RDIwMDI2QzAyQyAvKiBTdHlsZVJl
bGF0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDYxODAyRTFDOERENEQyMDAyNkMwMkMgLyogU3R5bGVSZWxhdGlvbnMuY3BwICovOyB9Owog
CQlFNDYxRDY1RDFCQjBDN0YwMDBDQjU2NDUgLyogQXV0aG9yU3R5bGVTaGVldHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ2MUQ2NUMxQkIwQzdG
MDAwQ0I1NjQ1IC8qIEF1dGhvclN0eWxlU2hlZXRzLmNwcCAqLzsgfTsKQEAgLTE0NTkxLDggKzE0
NTg3LDYgQEAKIAkJRTQyNEEzOUYxMzMwREYxRTAwQ0Y2REM5IC8qIExlZ2FjeVRpbGVHcmlkVGls
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExlZ2FjeVRpbGVH
cmlkVGlsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQyNUE0OTkxODI5MkI4
NDAwMjBDRkNGIC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENvbGxlY3Rpb25JbmRleENhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU0Mjk1RkEzMTJCMDYxNEUwMEQxQUNFMCAvKiBSZXNvdXJjZUxvYWRQcmlvcml0
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRQcmlvcml0
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFNDJFNzZEOTFDN0FGNzZDMDBFMzYx
NEQgLyogU3R5bGVVcGRhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3R5bGVVcGRhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFNDJFNzZE
QjFDN0FGNzc2MDBFMzYxNEQgLyogU3R5bGVVcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3R5bGVVcGRhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTQzMTA1QjcxNjc1MEYwQzAwREIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZVRyYXZlcnNhbC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0MzEwNUJBMTY3NTBGMTYwMERCMkZCOCAvKiBOb2RlVHJhdmVy
c2FsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVUcmF2ZXJzYWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQzQTAyM0ExN0VCMzcwQTAwNENERDI1IC8q
IFJlbmRlckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVy
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ2NDAsOCArMTQ2MzQs
NiBAQAogCQlFNDUzOTAzODBFQUZENjM3MDAzNjk1QzggLyogV2ViQ29yZVN5c3RlbUludGVyZmFj
ZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVT
eXN0ZW1JbnRlcmZhY2VJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0NTM5
MDNDMEVBRkQ2MzcwMDM2OTVDOCAvKiBXaWRnZXRJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXaWRnZXRJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU0NTM5MEFEMEVBRkY0QjUwMDM2OTVDOCAvKiBTeXN0ZW1NZW1vcnlJT1MuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3lzdGVtTWVtb3J5SU9TLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTQ2MTgwMjgxQzhBMDZDRDAwMjZDMDJDIC8q
IFJlbmRlclRyZWVVcGRhdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bmRlclRyZWVVcGRhdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU0NjE4MDJB
MUM4QTA2RDkwMDI2QzAyQyAvKiBSZW5kZXJUcmVlVXBkYXRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlVXBkYXRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0NjE4MDJDMUM4REQyOTAwMDI2QzAyQyAvKiBTdHlsZVJlbGF0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVJlbGF0aW9ucy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDYxODAyRTFDOERENEQyMDAyNkMwMkMg
LyogU3R5bGVSZWxhdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3R5bGVSZWxhdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDYx
RDY1QzFCQjBDN0YwMDBDQjU2NDUgLyogQXV0aG9yU3R5bGVTaGVldHMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aG9yU3R5bGVTaGVldHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM1MDgsOCArMjM1MDAsNiBAQAogCQkJCTFDMDEwNkZG
MTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuaCAqLywKIAkJCQk1ODI0QUJB
ODFBRTg0OUM4MDA5MDc0QjcgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmNwcCAqLywKIAkJCQk1ODI0
QUJBOTFBRTg0OUM4MDA5MDc0QjcgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmggKi8sCi0JCQkJRTQ2
MTgwMkExQzhBMDZEOTAwMjZDMDJDIC8qIFJlbmRlclRyZWVVcGRhdGVyLmNwcCAqLywKLQkJCQlF
NDYxODAyODFDOEEwNkNEMDAyNkMwMkMgLyogUmVuZGVyVHJlZVVwZGF0ZXIuaCAqLywKIAkJCQlF
NDAxRTBBNTFDM0MwQ0Y3MDBGMzREMTAgLyogU3R5bGVDaGFuZ2UuY3BwICovLAogCQkJCUU0MDFF
MEEzMUMzQzBCODMwMEYzNEQxMCAvKiBTdHlsZUNoYW5nZS5oICovLAogCQkJCUU0RDU4RUI2MTdC
NEVEODkwMENCRENBOCAvKiBTdHlsZUZvbnRTaXplRnVuY3Rpb25zLmNwcCAqLywKQEAgLTIzNTIy
LDggKzIzNTEyLDYgQEAKIAkJCQlFNDdBM0FDNDFDNUVBQzc5MDBDQ0JGQTcgLyogU3R5bGVTaGFy
aW5nUmVzb2x2ZXIuaCAqLywKIAkJCQlFNERFQUExNTE3QTkzREMzMDAwRTA0MzAgLyogU3R5bGVU
cmVlUmVzb2x2ZXIuY3BwICovLAogCQkJCUU0REVBQTE2MTdBOTNEQzMwMDBFMDQzMCAvKiBTdHls
ZVRyZWVSZXNvbHZlci5oICovLAotCQkJCUU0MkU3NkQ5MUM3QUY3NkMwMEUzNjE0RCAvKiBTdHls
ZVVwZGF0ZS5jcHAgKi8sCi0JCQkJRTQyRTc2REIxQzdBRjc3NjAwRTM2MTREIC8qIFN0eWxlVXBk
YXRlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHN0eWxlOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTI1OTU5LDcgKzI1OTQ3LDYgQEAKIAkJCQk1QzQzMDRCMTE5MUFDOTA4MDAwRTJC
QzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzcyODY5NEYx
NEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTc1RThCODkwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUU0NjE4MDI5MUM4QTA2Q0QwMDI2QzAyQyAvKiBSZW5kZXJUcmVlVXBkYXRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc1RThCOEIwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29s
b3JNYXRyaXguaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NUU4QjhEMEUxREUyRDYwMDdGMjQ4MSAv
KiBGRUNvbXBvbmVudFRyYW5zZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzVFOEI4RjBFMURF
MkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjYxNTEsNyAr
MjYxMzgsNiBAQAogCQkJCUE4RUE3OUY3MEExOTE2REYwMEE4RUY1RiAvKiBIVE1MRExpc3RFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOThFNTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRN
TERvY3VtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdCMzg2NzEyMjg4M0U5MDBCODFGRjgg
LyogSFRNTERvY3VtZW50UGFyc2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDJFNzZEQzFDN0FG
Nzc2MDBFMzYxNEQgLyogU3R5bGVVcGRhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REU4
MDk5RTY0OTIwMDU2RTU4MSAvKiBodG1sZWRpdGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNG
MTk4RTYwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBMTdDODEyMzBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggaW4gSGVh
ZGVycyAqLywKQEAgLTMwNTM3LDcgKzMwNTIzLDYgQEAKIAkJCQlBODRFQkQ3ODBDQjhDODkyMDAw
Nzk2MDkgLyogSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
MUZGOEY2NDE4MDc0NUQ4MDAxMzI2NzQgLyogSlNTdWJ0bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTFGRjhGNjgxODA3NDYwODAwMTMyNjc0IC8qIEpTU3VidGxlQ3J5cHRvQ3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUU0NjE4MDJCMUM4QTA2RDkwMDI2QzAyQyAvKiBSZW5k
ZXJUcmVlVXBkYXRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjAxMTEwNzBBQjc3NDA1MDBE
QjBFNjggLyogSlNTVkdBRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNEQ5MTI5MTEz
Q0E5NTFFMDBEMjE5MTUgLyogSlNTVkdBbHRHbHlwaERlZkVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNjUxNUVDOTEwRDk3MjNGRjAwNjNENDlBIC8qIEpTU1ZHQWx0R2x5cGhFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzEwNzYsNyArMzEwNjEsNiBAQAogCQkJCTBGNDNDODVE
MTg5RTEwQ0YwMDAxOUFFMiAvKiBQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGRDU4MUZCNDE1MjBGOTNCMDAzQTdBNzUgLyogUGVyaW9kaWNXYXZlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTQ5RDVEQzJEMEY0MjNBNzMwMDhGMjBGRCAvKiBQZXJzcGVjdGl2ZVRyYW5z
Zm9ybU9wZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFNDJFNzZEQTFDN0FGNzZDMDBF
MzYxNEQgLyogU3R5bGVVcGRhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDBGRjJBNUQxMUY4
QzQ1QTAwN0U3NEUwIC8qIFBpbmdMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3RDMz
NDMxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZERjQ1QTcxQkQxQzZGRDAwRTRGQThDIC8qIFBsYXRmb3JtQ0FBbmltYXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5k
ZXggZjJmMjg1MjIzNDQxNTEyZjBjZDE4OTIyMzhmMGNjOWE3MDU1ZjZkOC4uYWY3OGI3YjJhZjA4
NWM3OGYxYTcwNjI3ODZhZTdjOTllMjk1MGJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcApAQCAtMzM1LDcgKzMzNSw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6c3dlZXBNYXRj
aGVkUHJvcGVydGllc0NhY2hlKCkKICAgICBtX21hdGNoZWRQcm9wZXJ0aWVzQ2FjaGVBZGRpdGlv
bnNTaW5jZUxhc3RTd2VlcCA9IDA7CiB9CiAKLVN0eWxlUmVzb2x2ZXI6OlN0YXRlOjpTdGF0ZShF
bGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIFJlbmRlclN0eWxlKiBk
b2N1bWVudEVsZW1lbnRTdHlsZSwgY29uc3QgUmVuZGVyUmVnaW9uKiByZWdpb25Gb3JTdHlsaW5n
LCBjb25zdCBTZWxlY3RvckZpbHRlciogc2VsZWN0b3JGaWx0ZXIpCitTdHlsZVJlc29sdmVyOjpT
dGF0ZTo6U3RhdGUoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlLCBj
b25zdCBSZW5kZXJSZWdpb24qIHJlZ2lvbkZvclN0eWxpbmcsIGNvbnN0IFNlbGVjdG9yRmlsdGVy
KiBzZWxlY3RvckZpbHRlcikKICAgICA6IG1fZWxlbWVudCgmZWxlbWVudCkKICAgICAsIG1fcGFy
ZW50U3R5bGUocGFyZW50U3R5bGUpCiAgICAgLCBtX3JlZ2lvbkZvclN0eWxpbmcocmVnaW9uRm9y
U3R5bGluZykKQEAgLTM0OCwxMCArMzQ4LDcgQEAgU3R5bGVSZXNvbHZlcjo6U3RhdGU6OlN0YXRl
KEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgUmVuZGVyU3QKIAog
ICAgIGF1dG8mIGRvY3VtZW50ID0gZWxlbWVudC5kb2N1bWVudCgpOwogICAgIGF1dG8qIGRvY3Vt
ZW50RWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpOwotICAgIGlmICghZG9jdW1l
bnRFbGVtZW50IHx8IGRvY3VtZW50RWxlbWVudCA9PSAmZWxlbWVudCkKLSAgICAgICAgbV9yb290
RWxlbWVudFN0eWxlID0gZG9jdW1lbnQucmVuZGVyU3R5bGUoKTsKLSAgICBlbHNlCi0gICAgICAg
IG1fcm9vdEVsZW1lbnRTdHlsZSA9IGRvY3VtZW50RWxlbWVudFN0eWxlID8gZG9jdW1lbnRFbGVt
ZW50U3R5bGUgOiBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CisgICAgbV9yb290RWxl
bWVudFN0eWxlID0gKCFkb2N1bWVudEVsZW1lbnQgfHwgZG9jdW1lbnRFbGVtZW50ID09ICZlbGVt
ZW50KSA/IGRvY3VtZW50LnJlbmRlclN0eWxlKCkgOiBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0
eWxlKCk7CiAKICAgICB1cGRhdGVDb252ZXJzaW9uRGF0YSgpOwogfQpAQCAtMzc4LDcgKzM3NSw3
IEBAIEVsZW1lbnRTdHlsZSBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQoRWxlbWVudCYg
ZWxlbWVudCwgUmVuZGVyU3R5bGUqIHBhcmVuCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIW1faW5M
b2FkUGVuZGluZ0ltYWdlcyk7CiAKLSAgICBtX3N0YXRlID0gU3RhdGUoZWxlbWVudCwgcGFyZW50
U3R5bGUsIG1fb3ZlcnJpZGVEb2N1bWVudEVsZW1lbnRTdHlsZS5nZXQoKSwgcmVnaW9uRm9yU3R5
bGluZywgc2VsZWN0b3JGaWx0ZXIpOworICAgIG1fc3RhdGUgPSBTdGF0ZShlbGVtZW50LCBwYXJl
bnRTdHlsZSwgcmVnaW9uRm9yU3R5bGluZywgc2VsZWN0b3JGaWx0ZXIpOwogICAgIFN0YXRlJiBz
dGF0ZSA9IG1fc3RhdGU7CiAKICAgICBpZiAoc3RhdGUucGFyZW50U3R5bGUoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggMzgxZWY0MTFjOWEwYTkxNmRlNzY2NjVlZGYyODlm
OGUzYTk3MTQzNC4uZGUwNmE4NGRmNjAyNDQ0NmE0YWY1MTE2ODY0M2IwN2M2NmViYzI3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0xNjQsOCArMTY0LDYgQEAgcHVibGljOgog
CiAgICAgY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgbWVkaWFRdWVyeUV2YWx1YXRvcigpIGNv
bnN0IHsgcmV0dXJuICptX21lZGl1bTsgfQogCi0gICAgdm9pZCBzZXRPdmVycmlkZURvY3VtZW50
RWxlbWVudFN0eWxlKFJlbmRlclN0eWxlKiBzdHlsZSkgeyBtX292ZXJyaWRlRG9jdW1lbnRFbGVt
ZW50U3R5bGUgPSBzdHlsZTsgfQotCiBwcml2YXRlOgogICAgIFJlZjxSZW5kZXJTdHlsZT4gc3R5
bGVGb3JLZXlmcmFtZShjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFN0eWxlS2V5ZnJhbWUqLCBL
ZXlmcmFtZVZhbHVlJik7CiAKQEAgLTM2MSw3ICszNTksNyBAQCBwdWJsaWM6CiAgICAgY2xhc3Mg
U3RhdGUgewogICAgIHB1YmxpYzoKICAgICAgICAgU3RhdGUoKSB7IH0KLSAgICAgICAgU3RhdGUo
RWxlbWVudCYsIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgUmVuZGVyU3R5bGUqIGRvY3VtZW50
RWxlbWVudFN0eWxlID0gbnVsbHB0ciwgY29uc3QgUmVuZGVyUmVnaW9uKiByZWdpb25Gb3JTdHls
aW5nID0gbnVsbHB0ciwgY29uc3QgU2VsZWN0b3JGaWx0ZXIqID0gbnVsbHB0cik7CisgICAgICAg
IFN0YXRlKEVsZW1lbnQmLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclJl
Z2lvbiogcmVnaW9uRm9yU3R5bGluZyA9IG51bGxwdHIsIGNvbnN0IFNlbGVjdG9yRmlsdGVyKiA9
IG51bGxwdHIpOwogCiAgICAgcHVibGljOgogICAgICAgICB2b2lkIGNsZWFyKCk7CkBAIC01MjYs
OCArNTI0LDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9tYXRjaEF1dGhvckFuZFVzZXJTdHls
ZXM7CiAKLSAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fb3ZlcnJpZGVEb2N1bWVudEVsZW1lbnRT
dHlsZTsKLQogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFRdWVyeVJlc3VsdD4+IG1f
dmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0czsKIAogI2lmIEVOQUJMRShDU1NfREVW
SUNFX0FEQVBUQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmNGRkY2EyYzBlNzE4
YTkxZTJhNzQ3YmUyMjk3NjU5ODNlZjYwMTI3Li4wY2ZhMDA1YWEyOGM0OGFkOTdlOTgxMzk0Yzgx
YmUzZTUzZDk2YTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEzMyw3ICsxMzMsNiBA
QAogI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckNo
aWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKLSNpbmNs
dWRlICJSZW5kZXJUcmVlVXBkYXRlci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNs
dWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgpA
QCAtMTkyNywyMiArMTkyNiwxNSBAQCB2b2lkIERvY3VtZW50OjpyZWNhbGNTdHlsZShTdHlsZTo6
Q2hhbmdlIGNoYW5nZSkKICAgICAgICAgfQogCiAgICAgICAgIFN0eWxlOjpUcmVlUmVzb2x2ZXIg
cmVzb2x2ZXIoKnRoaXMpOwotICAgICAgICBhdXRvIHN0eWxlVXBkYXRlID0gcmVzb2x2ZXIucmVz
b2x2ZShjaGFuZ2UpOworICAgICAgICByZXNvbHZlci5yZXNvbHZlKGNoYW5nZSk7CisKKyAgICAg
ICAgdXBkYXRlZENvbXBvc2l0aW5nTGF5ZXJzID0gZnJhbWVWaWV3LnVwZGF0ZUNvbXBvc2l0aW5n
TGF5ZXJzQWZ0ZXJTdHlsZUNoYW5nZSgpOwogCiAgICAgICAgIGNsZWFyTmVlZHNTdHlsZVJlY2Fs
YygpOwogICAgICAgICBjbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogICAgICAgICB1bnNj
aGVkdWxlU3R5bGVSZWNhbGMoKTsKIAogICAgICAgICBtX2luU3R5bGVSZWNhbGMgPSBmYWxzZTsK
LQotICAgICAgICBpZiAoc3R5bGVVcGRhdGUpIHsKLSAgICAgICAgICAgIFRlbXBvcmFyeUNoYW5n
ZTxib29sPiBpblJlbmRlclRyZWVVcGRhdGUobV9pblJlbmRlclRyZWVVcGRhdGUsIHRydWUpOwot
Ci0gICAgICAgICAgICBSZW5kZXJUcmVlVXBkYXRlciB1cGRhdGVyKCp0aGlzKTsKLSAgICAgICAg
ICAgIHVwZGF0ZXIuY29tbWl0KFdURk1vdmUoc3R5bGVVcGRhdGUpKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHVwZGF0ZWRDb21wb3NpdGluZ0xheWVycyA9IGZyYW1lVmlldy51cGRhdGVDb21wb3Np
dGluZ0xheWVyc0FmdGVyU3R5bGVDaGFuZ2UoKTsKICAgICB9CiAKICAgICAvLyBJZiB3ZSB3YW50
ZWQgdG8gY2FsbCBpbXBsaWNpdENsb3NlKCkgZHVyaW5nIHJlY2FsY1N0eWxlLCBkbyBzbyBub3cg
dGhhdCB3ZSdyZSBmaW5pc2hlZC4KQEAgLTIwNjAsMTAgKzIwNTIsNyBAQCBSZWY8UmVuZGVyU3R5
bGU+IERvY3VtZW50OjpzdHlsZUZvckVsZW1lbnRJZ25vcmluZ1BlbmRpbmdTdHlsZXNoZWV0cyhF
bGVtZW50JiBlbAogICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2UobV9pZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMsIHRydWUpOwogICAgIGF1dG8gZWxlbWVudFN0eWxlID0gZWxlbWVudC5y
ZXNvbHZlU3R5bGUocGFyZW50U3R5bGUpOwogCi0gICAgaWYgKGVsZW1lbnRTdHlsZS5yZWxhdGlv
bnMpIHsKLSAgICAgICAgU3R5bGU6OlVwZGF0ZSBlbXB0eVVwZGF0ZSgqdGhpcyk7Ci0gICAgICAg
IFN0eWxlOjpjb21taXRSZWxhdGlvbnMoV1RGTW92ZShlbGVtZW50U3R5bGUucmVsYXRpb25zKSwg
ZW1wdHlVcGRhdGUpOwotICAgIH0KKyAgICBTdHlsZTo6Y29tbWl0UmVsYXRpb25zVG9Eb2N1bWVu
dChXVEZNb3ZlKGVsZW1lbnRTdHlsZS5yZWxhdGlvbnMpKTsKIAogICAgIHJldHVybiBXVEZNb3Zl
KGVsZW1lbnRTdHlsZS5yZW5kZXJTdHlsZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDQ3
ZTc5ZWU3YmNiMmYwMmMxMmQxZGJiOGQzNDBiZDQ4YWQ0Njk2OWEuLmQxODBhOTA1NTdkMWYzN2Ri
MDFjY2Y2ODc2OWNkMmNkN2QwYmU4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMjQ0LDgg
KzEyNDQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROZWVkc05vdGlmeVJlbW92ZUFsbFBlbmRp
bmdTdHlsZXNoZWV0KCkgeyBtX25lZWRzTm90aWZ5UmVtb3ZlQWxsUGVuZGluZ1N0eWxlc2hlZXQg
PSB0cnVlOyB9CiAgICAgdm9pZCBjbGVhclN0eWxlUmVzb2x2ZXIoKTsKIAotICAgIGJvb2wgaW5T
dHlsZVJlY2FsYygpIGNvbnN0IHsgcmV0dXJuIG1faW5TdHlsZVJlY2FsYzsgfQotICAgIGJvb2wg
aW5SZW5kZXJUcmVlVXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9pblJlbmRlclRyZWVVcGRhdGU7
IH0KKyAgICBib29sIGluU3R5bGVSZWNhbGMoKSB7IHJldHVybiBtX2luU3R5bGVSZWNhbGM7IH0K
IAogICAgIC8vIFJldHVybiBhIExvY2FsZSBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIGlmIHRoZSBh
cmd1bWVudCBpcyBudWxsIG9yIGVtcHR5LgogICAgIExvY2FsZSYgZ2V0Q2FjaGVkTG9jYWxlKGNv
bnN0IEF0b21pY1N0cmluZyYgbG9jYWxlID0gbnVsbEF0b20pOwpAQCAtMTUwOSw3ICsxNTA4LDYg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcGVuZGluZ1N0eWxlUmVjYWxjU2hvdWxkRm9yY2U7CiAg
ICAgYm9vbCBtX2luU3R5bGVSZWNhbGM7CiAgICAgYm9vbCBtX2Nsb3NlQWZ0ZXJTdHlsZVJlY2Fs
YzsKLSAgICBib29sIG1faW5SZW5kZXJUcmVlVXBkYXRlIHsgZmFsc2UgfTsKIAogICAgIGJvb2wg
bV9nb3RvQW5jaG9yTmVlZGVkQWZ0ZXJTdHlsZXNoZWV0c0xvYWQ7CiAgICAgYm9vbCBtX2lzRE5T
UHJlZmV0Y2hFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDIyY2U2YjdjNmE5ZTJl
NzYzZjBlNzZlOTc3MGJjZTQxYzBhZGIxOWMuLmU5MDRlOWJmYmZlMDNiZjA5YjEwYjhiYzRiMzVh
NzE0MDdjMDI3MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI1NjQsNiArMjU2NCw4IEBA
IHZvaWQgRWxlbWVudDo6c2V0Q2hpbGRyZW5BZmZlY3RlZEJ5UHJvcGVydHlCYXNlZEJhY2t3YXJk
UG9zaXRpb25hbFJ1bGVzKCkKIHZvaWQgRWxlbWVudDo6c2V0Q2hpbGRJbmRleCh1bnNpZ25lZCBp
bmRleCkKIHsKICAgICBFbGVtZW50UmFyZURhdGEmIHJhcmVEYXRhID0gZW5zdXJlRWxlbWVudFJh
cmVEYXRhKCk7CisgICAgaWYgKFJlbmRlclN0eWxlKiBzdHlsZSA9IHJlbmRlclN0eWxlKCkpCisg
ICAgICAgIHN0eWxlLT5zZXRVbmlxdWUoKTsKICAgICByYXJlRGF0YS5zZXRDaGlsZEluZGV4KGlu
ZGV4KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDc4NDYzZDM4YzUwNDM1NDA0YmQ4NmVkZjhk
ZTExY2IyOTk1NTNiOGMuLjBjN2NjMDdjODlhMjkxNGMyMWRjY2JiNjBiOGJjNDE5ODRkNjY3OWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKQEAgLTc3MiwxMCArNzcyLDYgQEAgdm9pZCBOb2RlOjpzZXROZWVk
c1N0eWxlUmVjYWxjKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQogICAgIGlmICghaW5SZW5k
ZXJlZERvY3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBldmVudHVhbGx5IGJlIGFuIEFTU0VSVC4KLSAgICBpZiAoZG9jdW1lbnQoKS5pblJlbmRl
clRyZWVVcGRhdGUoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgU3R5bGVDaGFuZ2VUeXBlIGV4
aXN0aW5nQ2hhbmdlVHlwZSA9IHN0eWxlQ2hhbmdlVHlwZSgpOwogICAgIGlmIChjaGFuZ2VUeXBl
ID4gZXhpc3RpbmdDaGFuZ2VUeXBlKQogICAgICAgICBzZXRTdHlsZUNoYW5nZShjaGFuZ2VUeXBl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggYmI4MDFiNTU0MjIw
YzViZWNiMjBiYzhkNDU5OGEyNTVjZWMwZTEzNy4uZDI3NGE5YjRiMGQzZjY4NTFhZGM2MzUzMWQ4
ZDNjZjkxMDMyZjk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAg
LTM4MSw2ICszODEsMTAgQEAgdm9pZCBSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUKICAgICBib29sIGlzQm9k
eVJlbmRlcmVyID0gaXNCb2R5KCk7CiAgICAgYm9vbCBpc0RvY0VsZW1lbnRSZW5kZXJlciA9IGlz
RG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKTsKIAorICAgIC8vIFNldCB0aGUgdGV4dCBjb2xvciBp
ZiB3ZSdyZSB0aGUgYm9keS4KKyAgICBpZiAoaXNCb2R5UmVuZGVyZXIpCisgICAgICAgIGRvY3Vt
ZW50KCkuc2V0VGV4dENvbG9yKG5ld1N0eWxlLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9w
ZXJ0eUNvbG9yKSk7CisKICAgICBpZiAoaXNEb2NFbGVtZW50UmVuZGVyZXIgfHwgaXNCb2R5UmVu
ZGVyZXIpIHsKICAgICAgICAgLy8gUHJvcGFnYXRlIHRoZSBuZXcgd3JpdGluZyBtb2RlIGFuZCBk
aXJlY3Rpb24gdXAgdG8gdGhlIFJlbmRlclZpZXcuCiAgICAgICAgIGF1dG8qIGRvY3VtZW50RWxl
bWVudFJlbmRlcmVyID0gZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVyZXIoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCmluZGV4IGVkMmVkYjJiMTkz
ODM1ZTE3OGE4MzE1ZmUyYjY4NDZhN2RhZjAzNzUuLjAyZTU0NDk4NTFhY2E1ZmNjODgwN2NjZDZm
OThjNDdhNzUyNzkxOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
aApAQCAtNTAsNiArNTAsOSBAQCBwdWJsaWM6CiAgICAgLy8gY29udGludWUgZXZlbiBpZiB0aGUg
c3R5bGUgaXNuJ3QgZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgc3R5bGUuCiAgICAgdm9pZCBz
ZXRTdHlsZShSZWY8UmVuZGVyU3R5bGU+JiYsIFN0eWxlRGlmZmVyZW5jZSBtaW5pbWFsU3R5bGVE
aWZmZXJlbmNlID0gU3R5bGVEaWZmZXJlbmNlRXF1YWwpOwogCisgICAgLy8gQ2FsbGVkIHRvIHVw
ZGF0ZSBhIHN0eWxlIHRoYXQgaXMgYWxsb3dlZCB0byB0cmlnZ2VyIGFuaW1hdGlvbnMuCisgICAg
dm9pZCBzZXRBbmltYXRhYmxlU3R5bGUoUmVmPFJlbmRlclN0eWxlPiYmLCBTdHlsZURpZmZlcmVu
Y2UgbWluaW1hbFN0eWxlRGlmZmVyZW5jZSk7CisKICAgICAvLyBUaGUgcHNldWRvIGVsZW1lbnQg
c3R5bGUgY2FuIGJlIGNhY2hlZCBvciB1bmNhY2hlZC4gIFVzZSB0aGUgY2FjaGVkIG1ldGhvZCBp
ZiB0aGUgcHNldWRvIGVsZW1lbnQgZG9lc24ndCByZXNwZWN0CiAgICAgLy8gYW55IHBzZXVkbyBj
bGFzc2VzIChhbmQgdGhlcmVmb3JlIGhhcyBubyBjb25jZXB0IG9mIGNoYW5naW5nIHN0YXRlKS4K
ICAgICBSZW5kZXJTdHlsZSogZ2V0Q2FjaGVkUHNldWRvU3R5bGUoUHNldWRvSWQsIFJlbmRlclN0
eWxlKiBwYXJlbnRTdHlsZSA9IG51bGxwdHIpIGNvbnN0OwpAQCAtMzQwLDYgKzM0MywxNSBAQCBw
cml2YXRlOgogICAgIHN0YXRpYyBib29sIHNfbm9Mb25nZXJBZmZlY3RzUGFyZW50QmxvY2s7CiB9
OwogCitpbmxpbmUgdm9pZCBSZW5kZXJFbGVtZW50OjpzZXRBbmltYXRhYmxlU3R5bGUoUmVmPFJl
bmRlclN0eWxlPiYmIHN0eWxlLCBTdHlsZURpZmZlcmVuY2UgbWluaW1hbFN0eWxlRGlmZmVyZW5j
ZSkKK3sKKyAgICBSZWY8UmVuZGVyU3R5bGU+IGFuaW1hdGVkU3R5bGUgPSBXVEZNb3ZlKHN0eWxl
KTsKKyAgICBpZiAoYW5pbWF0aW9uKCkudXBkYXRlQW5pbWF0aW9ucygqdGhpcywgYW5pbWF0ZWRT
dHlsZSwgYW5pbWF0ZWRTdHlsZSkpCisgICAgICAgIG1pbmltYWxTdHlsZURpZmZlcmVuY2UgPSBz
dGQ6Om1heChtaW5pbWFsU3R5bGVEaWZmZXJlbmNlLCBTdHlsZURpZmZlcmVuY2VSZWNvbXBvc2l0
ZUxheWVyKTsKKyAgICAKKyAgICBzZXRTdHlsZShXVEZNb3ZlKGFuaW1hdGVkU3R5bGUpLCBtaW5p
bWFsU3R5bGVEaWZmZXJlbmNlKTsKK30KKwogaW5saW5lIHZvaWQgUmVuZGVyRWxlbWVudDo6c2V0
QW5jZXN0b3JMaW5lQm94RGlydHkoYm9vbCBmKQogewogICAgIG1fYW5jZXN0b3JMaW5lQm94RGly
dHkgPSBmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVBvc2l0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5jcHAKaW5k
ZXggZDVjNzNkNDc0OWNhY2FiMjQzNWU4ZmQzMmFmODk0NzQ2MTQ4ZTY4Ni4uY2IwMzhlODE5ZTRm
NDdjY2IxNmRiNzA1NTRjZDEwNTVmMWM2MDljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvUmVuZGVyVHJlZVBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9S
ZW5kZXJUcmVlUG9zaXRpb24uY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiUmVuZGVy
VHJlZVBvc2l0aW9uLmgiCiAKICNpbmNsdWRlICJDb21wb3NlZFRyZWVJdGVyYXRvci5oIgotI2lu
Y2x1ZGUgIkhUTUxTbG90RWxlbWVudC5oIgogI2luY2x1ZGUgIlBzZXVkb0VsZW1lbnQuaCIKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCkBAIC04Mywy
MiArODIsMTMgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJUcmVlUG9zaXRpb246Om5leHRTaWJsaW5n
UmVuZGVyZXIoY29uc3QgTm9kZSYgbm9kZSkgY29uc3QKICAgICBpZiAobm9kZS5pc0FmdGVyUHNl
dWRvRWxlbWVudCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gY29tcG9z
ZWREZXNjZW5kYW50cyA9IGNvbXBvc2VkVHJlZURlc2NlbmRhbnRzKCpwYXJlbnRFbGVtZW50KTsK
LSAgICBhdXRvIGl0ID0gbm9kZS5pc0JlZm9yZVBzZXVkb0VsZW1lbnQoKSA/IGNvbXBvc2VkRGVz
Y2VuZGFudHMuYmVnaW4oKSA6IGNvbXBvc2VkRGVzY2VuZGFudHMuYXQobm9kZSk7Ci0gICAgYXV0
byBlbmQgPSBjb21wb3NlZERlc2NlbmRhbnRzLmVuZCgpOworICAgIGF1dG8gY29tcG9zZWRDaGls
ZHJlbiA9IGNvbXBvc2VkVHJlZUNoaWxkcmVuKCpwYXJlbnRFbGVtZW50KTsKIAotICAgIHdoaWxl
IChpdCAhPSBlbmQpIHsKLSAgICAgICAgYXV0byYgbm9kZSA9ICppdDsKLSAgICAgICAgYm9vbCBo
YXNEaXNwbGF5Q29udGVudHMgPSBpczxIVE1MU2xvdEVsZW1lbnQ+KG5vZGUpOwotICAgICAgICBp
ZiAoaGFzRGlzcGxheUNvbnRlbnRzKSB7Ci0gICAgICAgICAgICBpdC50cmF2ZXJzZU5leHQoKTsK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIFJlbmRlck9iamVjdCog
cmVuZGVyZXIgPSBub2RlLnJlbmRlcmVyKCk7CisgICAgYXV0byBpdCA9IG5vZGUuaXNCZWZvcmVQ
c2V1ZG9FbGVtZW50KCkgPyBjb21wb3NlZENoaWxkcmVuLmJlZ2luKCkgOiBjb21wb3NlZENoaWxk
cmVuLmF0KG5vZGUpOworICAgIGZvciAoYXV0byBlbmQgPSBjb21wb3NlZENoaWxkcmVuLmVuZCgp
OyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGl0
LT5yZW5kZXJlcigpOwogICAgICAgICBpZiAocmVuZGVyZXIgJiYgIWlzUmVuZGVyZXJSZXBhcmVu
dGVkKCpyZW5kZXJlcikpCiAgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7Ci0gICAgICAgIAot
ICAgICAgICBpdC50cmF2ZXJzZU5leHRTa2lwcGluZ0NoaWxkcmVuKCk7CiAgICAgfQogICAgIGlm
IChQc2V1ZG9FbGVtZW50KiBhZnRlciA9IHBhcmVudEVsZW1lbnQtPmFmdGVyUHNldWRvRWxlbWVu
dCgpKQogICAgICAgICByZXR1cm4gYWZ0ZXItPnJlbmRlcmVyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9SZW5kZXJUcmVlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9SZW5kZXJUcmVlVXBkYXRlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDkxMDYyYmU5NzBkNzQyMjAzZmQwODFkMDk5YjBjODY2M2Q5OTg2MTIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVu
ZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTExICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVuZGVyVHJlZVVwZGF0ZXIu
aCIKLQotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKLSNpbmNsdWRlICJDb21wb3NlZFRyZWVB
bmNlc3Rvckl0ZXJhdG9yLmgiCi0jaW5jbHVkZSAiQ29tcG9zZWRUcmVlSXRlcmF0b3IuaCIKLSNp
bmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJGbG93
VGhyZWFkQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkhUTUxTbG90RWxlbWVudC5oIgotI2luY2x1
ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgotI2luY2x1ZGUgIlBzZXVkb0VsZW1lbnQu
aCIKLSNpbmNsdWRlICJSZW5kZXJGdWxsU2NyZWVuLmgiCi0jaW5jbHVkZSAiUmVuZGVyTmFtZWRG
bG93VGhyZWFkLmgiCi0jaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgotI2luY2x1ZGUgIlN0eWxl
VHJlZVJlc29sdmVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmVuZGVyVHJlZVVwZGF0
ZXI6OlBhcmVudDo6UGFyZW50KENvbnRhaW5lck5vZGUmIHJvb3QpCi0gICAgOiBlbGVtZW50KGlz
PERvY3VtZW50Pihyb290KSA/IG51bGxwdHIgOiBkb3duY2FzdDxFbGVtZW50Pigmcm9vdCkpCi0g
ICAgLCByZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyVHJlZVBvc2l0aW9uKCpyb290LnJlbmRlcmVy
KCkpKQotewotfQotCi1SZW5kZXJUcmVlVXBkYXRlcjo6UGFyZW50OjpQYXJlbnQoRWxlbWVudCYg
ZWxlbWVudCwgU3R5bGU6OkNoYW5nZSBzdHlsZUNoYW5nZSkKLSAgICA6IGVsZW1lbnQoJmVsZW1l
bnQpCi0gICAgLCBzdHlsZUNoYW5nZShzdHlsZUNoYW5nZSkKLSAgICAsIHJlbmRlclRyZWVQb3Np
dGlvbihlbGVtZW50LnJlbmRlcmVyKCkgPyBtYWtlT3B0aW9uYWwoUmVuZGVyVHJlZVBvc2l0aW9u
KCplbGVtZW50LnJlbmRlcmVyKCkpKSA6IE51bGxvcHQpCi17Ci19Ci0KLQotUmVuZGVyVHJlZVVw
ZGF0ZXI6OlJlbmRlclRyZWVVcGRhdGVyKERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IG1fZG9j
dW1lbnQoZG9jdW1lbnQpCi17Ci19Ci0KLS8vIFNsb3RzIGhhdmUgaW1wbGljaXQgZGlzcGxheTpj
b250ZW50cyB1bnRpbCBpdCBpcyBzdXBwb3J0ZWQgZm9yIHJlYWxzLgotc3RhdGljIGJvb2wgaGFz
RGlzcGxheUNvbnRlbnRzKGNvbnN0IE5vZGUmIG5vZGUpCi17Ci0gICAgcmV0dXJuIGlzPEhUTUxT
bG90RWxlbWVudD4obm9kZSk7Ci19Ci0KLXN0YXRpYyBDb250YWluZXJOb2RlJiBmaW5kUmVuZGVy
aW5nUm9vdChDb250YWluZXJOb2RlJiBub2RlKQotewotICAgIGF1dG8mIGRvY3VtZW50ID0gbm9k
ZS5kb2N1bWVudCgpOwotICAgIGZvciAoQ29tcG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvciBpdChk
b2N1bWVudCwgbm9kZSksIGVuZChkb2N1bWVudCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAg
ICBpZiAoaXQtPnJlbmRlcmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gKml0OwotICAgICAgICBB
U1NFUlQoaGFzRGlzcGxheUNvbnRlbnRzKCppdCkpOwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4gZG9jdW1lbnQ7Ci19Ci0KLXZvaWQgUmVuZGVyVHJlZVVwZGF0
ZXI6OmNvbW1pdChzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5bGVVcGRh
dGUpCi17Ci0gICAgQVNTRVJUKCZtX2RvY3VtZW50ID09ICZzdHlsZVVwZGF0ZS0+ZG9jdW1lbnQo
KSk7Ci0KLSAgICBpZiAoIW1fZG9jdW1lbnQuc2hvdWxkQ3JlYXRlUmVuZGVyZXJzKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIG1fc3R5bGVVcGRhdGUgPSBXVEZNb3ZlKHN0eWxlVXBkYXRlKTsK
LQotICAgIGZvciAoYXV0byogcm9vdCA6IG1fc3R5bGVVcGRhdGUtPnJvb3RzKCkpCi0gICAgICAg
IHVwZGF0ZVJlbmRlclRyZWUoZmluZFJlbmRlcmluZ1Jvb3QoKnJvb3QpKTsKLQotICAgIG1fc3R5
bGVVcGRhdGUgPSBudWxscHRyOwotfQotCi1zdGF0aWMgYm9vbCBzaG91bGRDcmVhdGVSZW5kZXJl
cihjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJFbGVtZW50JiBwYXJlbnRSZW5k
ZXJlcikKLXsKLSAgICBpZiAoIXBhcmVudFJlbmRlcmVyLmNhbkhhdmVDaGlsZHJlbigpICYmICEo
ZWxlbWVudC5pc1BzZXVkb0VsZW1lbnQoKSAmJiBwYXJlbnRSZW5kZXJlci5jYW5IYXZlR2VuZXJh
dGVkQ2hpbGRyZW4oKSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAocGFyZW50UmVu
ZGVyZXIuZWxlbWVudCgpICYmICFwYXJlbnRSZW5kZXJlci5lbGVtZW50KCktPmNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoZWxlbWVudCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVuZGVyVHJlZShD
b250YWluZXJOb2RlJiByb290KQotewotICAgIEFTU0VSVChyb290LnJlbmRlcmVyKCkpOwotICAg
IEFTU0VSVChtX3BhcmVudFN0YWNrLmlzRW1wdHkoKSk7Ci0KLSAgICBtX3BhcmVudFN0YWNrLmFw
cGVuZChQYXJlbnQocm9vdCkpOwotCi0gICAgYXV0byBkZXNjZW5kYW50cyA9IGNvbXBvc2VkVHJl
ZURlc2NlbmRhbnRzKHJvb3QpOwotICAgIGF1dG8gaXQgPSBkZXNjZW5kYW50cy5iZWdpbigpOwot
ICAgIGF1dG8gZW5kID0gZGVzY2VuZGFudHMuZW5kKCk7Ci0KLSAgICAvLyBGSVhNRTogU1ZHIDx1
c2U+IGVsZW1lbnQgbWF5IGNhdXNlIHRyZWUgbXV0YXRpb25zIGR1cmluZyBzdHlsZSByZWNhbGMu
Ci0gICAgaXQuZHJvcEFzc2VydGlvbnMoKTsKLQotICAgIHdoaWxlIChpdCAhPSBlbmQpIHsKLSAg
ICAgICAgcG9wUGFyZW50c1RvRGVwdGgoaXQuZGVwdGgoKSk7Ci0KLSAgICAgICAgYXV0byYgbm9k
ZSA9ICppdDsKLQotICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBub2RlLnJlbmRlcmVyKCkp
Ci0gICAgICAgICAgICByZW5kZXJUcmVlUG9zaXRpb24oKS5pbnZhbGlkYXRlTmV4dFNpYmxpbmco
KnJlbmRlcmVyKTsKLQotICAgICAgICBpZiAoaXM8VGV4dD4obm9kZSkpIHsKLSAgICAgICAgICAg
IGF1dG8mIHRleHQgPSBkb3duY2FzdDxUZXh0Pihub2RlKTsKLSAgICAgICAgICAgIGlmIChwYXJl
bnQoKS5zdHlsZUNoYW5nZSA9PSBTdHlsZTo6RGV0YWNoIHx8IG1fc3R5bGVVcGRhdGUtPnRleHRV
cGRhdGUodGV4dCkgfHwgbV9pbnZhbGlkYXRlZFdoaXRlc3BhY2VPbmx5VGV4dFNpYmxpbmdzLmNv
bnRhaW5zKCZ0ZXh0KSkKLSAgICAgICAgICAgICAgICB1cGRhdGVUZXh0UmVuZGVyZXIodGV4dCk7
Ci0KLSAgICAgICAgICAgIGl0LnRyYXZlcnNlTmV4dFNraXBwaW5nQ2hpbGRyZW4oKTsKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgYXV0byYgZWxlbWVudCA9IGRv
d25jYXN0PEVsZW1lbnQ+KG5vZGUpOwotCi0gICAgICAgIGF1dG8qIGVsZW1lbnRVcGRhdGUgPSBt
X3N0eWxlVXBkYXRlLT5lbGVtZW50VXBkYXRlKGVsZW1lbnQpOwotCi0gICAgICAgIGF1dG8gY2hh
bmdlVHlwZSA9IFN0eWxlOjpOb0NoYW5nZTsKLSAgICAgICAgaWYgKGVsZW1lbnRVcGRhdGUpIHsK
LSAgICAgICAgICAgIGlmIChoYXNEaXNwbGF5Q29udGVudHMoZWxlbWVudCkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoIXNob3VsZENyZWF0ZVJlbmRlcmVyKGVsZW1lbnQsIHJlbmRlclRyZWVQb3Np
dGlvbigpLnBhcmVudCgpKSkgewotICAgICAgICAgICAgICAgICAgICBpdC50cmF2ZXJzZU5leHRT
a2lwcGluZ0NoaWxkcmVuKCk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwdXNoUGFyZW50KGVsZW1lbnQsIHBhcmVudCgp
LnN0eWxlQ2hhbmdlKTsKLSAgICAgICAgICAgICAgICBpdC50cmF2ZXJzZU5leHQoKTsKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdXBkYXRl
RWxlbWVudFJlbmRlcmVyKGVsZW1lbnQsICplbGVtZW50VXBkYXRlKTsKLSAgICAgICAgICAgIGNo
YW5nZVR5cGUgPSBlbGVtZW50VXBkYXRlLT5jaGFuZ2U7Ci0gICAgICAgIH0KLQotICAgICAgICBp
ZiAoIWVsZW1lbnQucmVuZGVyZXIoKSB8fCAhZWxlbWVudFVwZGF0ZSkgewotICAgICAgICAgICAg
aXQudHJhdmVyc2VOZXh0U2tpcHBpbmdDaGlsZHJlbigpOwotICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIH0KLQotICAgICAgICBwdXNoUGFyZW50KGVsZW1lbnQsIGNoYW5nZVR5cGUpOwot
Ci0gICAgICAgIGl0LnRyYXZlcnNlTmV4dCgpOwotICAgIH0KLQotICAgIHBvcFBhcmVudHNUb0Rl
cHRoKDApOwotCi0gICAgbV9pbnZhbGlkYXRlZFdoaXRlc3BhY2VPbmx5VGV4dFNpYmxpbmdzLmNs
ZWFyKCk7Ci19Ci0KLVJlbmRlclRyZWVQb3NpdGlvbiYgUmVuZGVyVHJlZVVwZGF0ZXI6OnJlbmRl
clRyZWVQb3NpdGlvbigpCi17Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gbV9wYXJlbnRTdGFjay5z
aXplKCk7IGk7IC0taSkgewotICAgICAgICBpZiAoYXV0byYgcG9zaXRpb24gPSBtX3BhcmVudFN0
YWNrW2kgLSAxXS5yZW5kZXJUcmVlUG9zaXRpb24pCi0gICAgICAgICAgICByZXR1cm4gKnBvc2l0
aW9uOwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gKm1fcGFy
ZW50U3RhY2subGFzdCgpLnJlbmRlclRyZWVQb3NpdGlvbjsKLX0KLQotdm9pZCBSZW5kZXJUcmVl
VXBkYXRlcjo6cHVzaFBhcmVudChFbGVtZW50JiBlbGVtZW50LCBTdHlsZTo6Q2hhbmdlIGNoYW5n
ZVR5cGUpCi17Ci0gICAgbV9wYXJlbnRTdGFjay5hcHBlbmQoUGFyZW50KGVsZW1lbnQsIGNoYW5n
ZVR5cGUpKTsKLQotICAgIHVwZGF0ZUJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50KGVsZW1lbnQs
IEJFRk9SRSk7Ci19Ci0KLXZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnBvcFBhcmVudCgpCi17Ci0g
ICAgYXV0byYgcGFyZW50ID0gbV9wYXJlbnRTdGFjay5sYXN0KCk7Ci0KLSAgICBpZiAocGFyZW50
LmVsZW1lbnQpIHsKLSAgICAgICAgdXBkYXRlQmVmb3JlT3JBZnRlclBzZXVkb0VsZW1lbnQoKnBh
cmVudC5lbGVtZW50LCBBRlRFUik7Ci0KLSAgICAgICAgaWYgKHBhcmVudC5lbGVtZW50LT5oYXND
dXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKSAmJiBwYXJlbnQuc3R5bGVDaGFuZ2UgPT0gU3R5
bGU6OkRldGFjaCAmJiBwYXJlbnQuZWxlbWVudC0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHBh
cmVudC5lbGVtZW50LT5kaWRBdHRhY2hSZW5kZXJlcnMoKTsKLSAgICB9Ci0gICAgbV9wYXJlbnRT
dGFjay5yZW1vdmVMYXN0KCk7Ci19Ci0KLXZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnBvcFBhcmVu
dHNUb0RlcHRoKHVuc2lnbmVkIGRlcHRoKQotewotICAgIEFTU0VSVChtX3BhcmVudFN0YWNrLnNp
emUoKSA+PSBkZXB0aCk7Ci0KLSAgICB3aGlsZSAobV9wYXJlbnRTdGFjay5zaXplKCkgPiBkZXB0
aCkKLSAgICAgICAgcG9wUGFyZW50KCk7Ci19Ci0KLXN0YXRpYyBib29sIHBzZXVkb1N0eWxlQ2Fj
aGVJc0ludmFsaWQoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIFJlbmRlclN0eWxlKiBuZXdTdHls
ZSkKLXsKLSAgICBjb25zdCBSZW5kZXJTdHlsZSYgY3VycmVudFN0eWxlID0gcmVuZGVyZXItPnN0
eWxlKCk7Ci0KLSAgICBjb25zdCBQc2V1ZG9TdHlsZUNhY2hlKiBwc2V1ZG9TdHlsZUNhY2hlID0g
Y3VycmVudFN0eWxlLmNhY2hlZFBzZXVkb1N0eWxlcygpOwotICAgIGlmICghcHNldWRvU3R5bGVD
YWNoZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZm9yIChhdXRvJiBjYWNoZSA6ICpw
c2V1ZG9TdHlsZUNhY2hlKSB7Ci0gICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3UHNldWRv
U3R5bGU7Ci0gICAgICAgIFBzZXVkb0lkIHBzZXVkb0lkID0gY2FjaGUtPnN0eWxlVHlwZSgpOwot
ICAgICAgICBpZiAocHNldWRvSWQgPT0gRklSU1RfTElORSB8fCBwc2V1ZG9JZCA9PSBGSVJTVF9M
SU5FX0lOSEVSSVRFRCkKLSAgICAgICAgICAgIG5ld1BzZXVkb1N0eWxlID0gcmVuZGVyZXItPnVu
Y2FjaGVkRmlyc3RMaW5lU3R5bGUobmV3U3R5bGUpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBuZXdQc2V1ZG9TdHlsZSA9IHJlbmRlcmVyLT5nZXRVbmNhY2hlZFBzZXVkb1N0eWxlKFBzZXVk
b1N0eWxlUmVxdWVzdChwc2V1ZG9JZCksIG5ld1N0eWxlLCBuZXdTdHlsZSk7Ci0gICAgICAgIGlm
ICghbmV3UHNldWRvU3R5bGUpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYg
KCpuZXdQc2V1ZG9TdHlsZSAhPSAqY2FjaGUpIHsKLSAgICAgICAgICAgIGlmIChwc2V1ZG9JZCA8
IEZJUlNUX0lOVEVSTkFMX1BTRVVET0lEKQotICAgICAgICAgICAgICAgIG5ld1N0eWxlLT5zZXRI
YXNQc2V1ZG9TdHlsZShwc2V1ZG9JZCk7Ci0gICAgICAgICAgICBuZXdTdHlsZS0+YWRkQ2FjaGVk
UHNldWRvU3R5bGUobmV3UHNldWRvU3R5bGUpOwotICAgICAgICAgICAgaWYgKHBzZXVkb0lkID09
IEZJUlNUX0xJTkUgfHwgcHNldWRvSWQgPT0gRklSU1RfTElORV9JTkhFUklURUQpIHsKLSAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRvIGFuIGFjdHVhbCBkaWZmIHRvIGRldGVy
bWluZSB3aGV0aGVyIGEgcmVwYWludCB2cy4gbGF5b3V0Ci0gICAgICAgICAgICAgICAgLy8gaXMg
bmVlZGVkLCBidXQgZm9yIG5vdyBqdXN0IGFzc3VtZSBhIGxheW91dCB3aWxsIGJlIHJlcXVpcmVk
LiBUaGUgZGlmZiBjb2RlCi0gICAgICAgICAgICAgICAgLy8gaW4gUmVuZGVyT2JqZWN0OjpzZXRT
dHlsZSB3b3VsZCBuZWVkIHRvIGJlIGZhY3RvcmVkIG91dCBzbyB0aGF0IGl0IGNvdWxkIGJlIHJl
dXNlZC4KLSAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lk
dGhzUmVjYWxjKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgUmVuZGVyVHJlZVVw
ZGF0ZXI6OnVwZGF0ZUVsZW1lbnRSZW5kZXJlcihFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHls
ZTo6RWxlbWVudFVwZGF0ZSYgdXBkYXRlKQotewotICAgIGJvb2wgc2hvdWxkVGVhckRvd25SZW5k
ZXJlcnMgPSB1cGRhdGUuY2hhbmdlID09IFN0eWxlOjpEZXRhY2ggJiYgKGVsZW1lbnQucmVuZGVy
ZXIoKSB8fCBlbGVtZW50LmlzTmFtZWRGbG93Q29udGVudE5vZGUoKSk7Ci0gICAgaWYgKHNob3Vs
ZFRlYXJEb3duUmVuZGVyZXJzKQotICAgICAgICBkZXRhY2hSZW5kZXJUcmVlKGVsZW1lbnQsIFN0
eWxlOjpSZWF0dGFjaERldGFjaCk7Ci0KLSAgICBib29sIHNob3VsZENyZWF0ZU5ld1JlbmRlcmVy
ID0gIWVsZW1lbnQucmVuZGVyZXIoKSAmJiB1cGRhdGUuc3R5bGU7Ci0gICAgaWYgKHNob3VsZENy
ZWF0ZU5ld1JlbmRlcmVyKSB7Ci0gICAgICAgIGlmIChlbGVtZW50Lmhhc0N1c3RvbVN0eWxlUmVz
b2x2ZUNhbGxiYWNrcygpKQotICAgICAgICAgICAgZWxlbWVudC53aWxsQXR0YWNoUmVuZGVyZXJz
KCk7Ci0gICAgICAgIGNyZWF0ZVJlbmRlcmVyKGVsZW1lbnQsICp1cGRhdGUuc3R5bGUpOwotICAg
ICAgICBpbnZhbGlkYXRlV2hpdGVzcGFjZU9ubHlUZXh0U2libGluZ3NBZnRlckF0dGFjaElmTmVl
ZGVkKGVsZW1lbnQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFlbGVtZW50
LnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBhdXRvJiByZW5kZXJlciA9ICplbGVt
ZW50LnJlbmRlcmVyKCk7Ci0KLSAgICBpZiAodXBkYXRlLmlzU3ludGhldGljKSB7Ci0gICAgICAg
IHJlbmRlcmVyLnNldFN0eWxlKCp1cGRhdGUuc3R5bGUsIFN0eWxlRGlmZmVyZW5jZVJlY29tcG9z
aXRlTGF5ZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHVwZGF0ZS5jaGFu
Z2UgPT0gU3R5bGU6Ok5vQ2hhbmdlKSB7Ci0gICAgICAgIGlmIChwc2V1ZG9TdHlsZUNhY2hlSXNJ
bnZhbGlkKCZyZW5kZXJlciwgdXBkYXRlLnN0eWxlLmdldCgpKSB8fCAocGFyZW50KCkuc3R5bGVD
aGFuZ2UgPT0gU3R5bGU6OkZvcmNlICYmIHJlbmRlcmVyLnJlcXVpcmVzRm9yY2VkU3R5bGVSZWNh
bGNQcm9wYWdhdGlvbigpKSkgewotICAgICAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUoKnVwZGF0
ZS5zdHlsZSwgU3R5bGVEaWZmZXJlbmNlRXF1YWwpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICByZW5kZXJlci5zZXRTdHlsZSgq
dXBkYXRlLnN0eWxlLCBTdHlsZURpZmZlcmVuY2VFcXVhbCk7Ci19Ci0KLSNpZiBFTkFCTEUoQ1NT
X1JFR0lPTlMpCi1zdGF0aWMgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBtb3ZlVG9GbG93VGhyZWFk
SWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQotewot
ICAgIGlmICghZWxlbWVudC5zaG91bGRNb3ZlVG9GbG93VGhyZWFkKHN0eWxlKSkKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0KLSAgICBGbG93VGhyZWFkQ29udHJvbGxlciYgZmxvd1RocmVhZENv
bnRyb2xsZXIgPSBlbGVtZW50LmRvY3VtZW50KCkucmVuZGVyVmlldygpLT5mbG93VGhyZWFkQ29u
dHJvbGxlcigpOwotICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCYgcGFyZW50Rmxvd1JlbmRlcmVy
ID0gZmxvd1RocmVhZENvbnRyb2xsZXIuZW5zdXJlUmVuZGVyRmxvd1RocmVhZFdpdGhOYW1lKHN0
eWxlLmZsb3dUaHJlYWQoKSk7Ci0gICAgZmxvd1RocmVhZENvbnRyb2xsZXIucmVnaXN0ZXJOYW1l
ZEZsb3dDb250ZW50RWxlbWVudChlbGVtZW50LCBwYXJlbnRGbG93UmVuZGVyZXIpOwotICAgIHJl
dHVybiAmcGFyZW50Rmxvd1JlbmRlcmVyOwotfQotI2VuZGlmCi0KLXZvaWQgUmVuZGVyVHJlZVVw
ZGF0ZXI6OmNyZWF0ZVJlbmRlcmVyKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiBzdHls
ZSkKLXsKLSAgICBpZiAoIXNob3VsZENyZWF0ZVJlbmRlcmVyKGVsZW1lbnQsIHJlbmRlclRyZWVQ
b3NpdGlvbigpLnBhcmVudCgpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVuZGVyTmFtZWRG
bG93VGhyZWFkKiBwYXJlbnRGbG93UmVuZGVyZXIgPSBudWxscHRyOwotI2lmIEVOQUJMRShDU1Nf
UkVHSU9OUykKLSAgICBwYXJlbnRGbG93UmVuZGVyZXIgPSBtb3ZlVG9GbG93VGhyZWFkSWZOZWVk
ZWQoZWxlbWVudCwgc3R5bGUpOwotI2VuZGlmCi0KLSAgICBpZiAoIWVsZW1lbnQucmVuZGVyZXJJ
c05lZWRlZChzdHlsZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHJlbmRlclRyZWVQb3NpdGlv
bigpLmNvbXB1dGVOZXh0U2libGluZyhlbGVtZW50KTsKLQotICAgIFJlbmRlclRyZWVQb3NpdGlv
biBpbnNlcnRpb25Qb3NpdGlvbiA9IHBhcmVudEZsb3dSZW5kZXJlcgotICAgICAgICA/IFJlbmRl
clRyZWVQb3NpdGlvbigqcGFyZW50Rmxvd1JlbmRlcmVyLCBwYXJlbnRGbG93UmVuZGVyZXItPm5l
eHRSZW5kZXJlckZvckVsZW1lbnQoZWxlbWVudCkpCi0gICAgICAgIDogcmVuZGVyVHJlZVBvc2l0
aW9uKCk7Ci0KLSAgICBSZW5kZXJFbGVtZW50KiBuZXdSZW5kZXJlciA9IGVsZW1lbnQuY3JlYXRl
RWxlbWVudFJlbmRlcmVyKHN0eWxlLCBpbnNlcnRpb25Qb3NpdGlvbikubGVha1B0cigpOwotICAg
IGlmICghbmV3UmVuZGVyZXIpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoIWluc2VydGlvblBv
c2l0aW9uLmNhbkluc2VydCgqbmV3UmVuZGVyZXIpKSB7Ci0gICAgICAgIG5ld1JlbmRlcmVyLT5k
ZXN0cm95KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBNYWtlIHN1cmUgdGhl
IFJlbmRlck9iamVjdCBhbHJlYWR5IGtub3dzIGl0IGlzIGdvaW5nIHRvIGJlIGFkZGVkIHRvIGEg
UmVuZGVyRmxvd1RocmVhZCBiZWZvcmUgd2Ugc2V0IHRoZSBzdHlsZQotICAgIC8vIGZvciB0aGUg
Zmlyc3QgdGltZS4gT3RoZXJ3aXNlIGNvZGUgdXNpbmcgaW5SZW5kZXJGbG93VGhyZWFkKCkgaW4g
dGhlIHN0eWxlV2lsbENoYW5nZSBhbmQgc3R5bGVEaWRDaGFuZ2Ugd2lsbCBmYWlsLgotICAgIG5l
d1JlbmRlcmVyLT5zZXRGbG93VGhyZWFkU3RhdGUoaW5zZXJ0aW9uUG9zaXRpb24ucGFyZW50KCku
Zmxvd1RocmVhZFN0YXRlKCkpOwotCi0gICAgZWxlbWVudC5zZXRSZW5kZXJlcihuZXdSZW5kZXJl
cik7Ci0KLSAgICBSZWY8UmVuZGVyU3R5bGU+IGFuaW1hdGVkU3R5bGUgPSBuZXdSZW5kZXJlci0+
c3R5bGUoKTsKLSAgICBuZXdSZW5kZXJlci0+YW5pbWF0aW9uKCkudXBkYXRlQW5pbWF0aW9ucygq
bmV3UmVuZGVyZXIsIGFuaW1hdGVkU3R5bGUsIGFuaW1hdGVkU3R5bGUpOwotICAgIG5ld1JlbmRl
cmVyLT5zZXRTdHlsZUludGVybmFsKFdURk1vdmUoYW5pbWF0ZWRTdHlsZSkpOwotCi0gICAgbmV3
UmVuZGVyZXItPmluaXRpYWxpemVTdHlsZSgpOwotCi0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQotICAgIGlmIChtX2RvY3VtZW50LndlYmtpdElzRnVsbFNjcmVlbigpICYmIG1fZG9jdW1lbnQu
d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkgPT0gJmVsZW1lbnQpIHsKLSAgICAgICAg
bmV3UmVuZGVyZXIgPSBSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIobmV3UmVuZGVyZXIs
ICZpbnNlcnRpb25Qb3NpdGlvbi5wYXJlbnQoKSwgbV9kb2N1bWVudCk7Ci0gICAgICAgIGlmICgh
bmV3UmVuZGVyZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0gICAgLy8g
Tm90ZTogQWRkaW5nIG5ld1JlbmRlcmVyIGluc3RlYWQgb2YgcmVuZGVyZXIoKS4gcmVuZGVyZXIo
KSBtYXkgYmUgYSBjaGlsZCBvZiBuZXdSZW5kZXJlci4KLSAgICBpbnNlcnRpb25Qb3NpdGlvbi5p
bnNlcnQoKm5ld1JlbmRlcmVyKTsKLQotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1f
ZG9jdW1lbnQuYXhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+dXBkYXRlQ2FjaGVBZnRl
ck5vZGVJc0F0dGFjaGVkKCZlbGVtZW50KTsKLX0KLQotc3RhdGljIGJvb2wgdGV4dFJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgVGV4dCYgdGV4dE5vZGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYg
cmVuZGVyVHJlZVBvc2l0aW9uKQotewotICAgIGNvbnN0IFJlbmRlckVsZW1lbnQmIHBhcmVudFJl
bmRlcmVyID0gcmVuZGVyVHJlZVBvc2l0aW9uLnBhcmVudCgpOwotICAgIGlmICghcGFyZW50UmVu
ZGVyZXIuY2FuSGF2ZUNoaWxkcmVuKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
cGFyZW50UmVuZGVyZXIuZWxlbWVudCgpICYmICFwYXJlbnRSZW5kZXJlci5lbGVtZW50KCktPmNo
aWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIodGV4dE5vZGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKHRleHROb2RlLmlzRWRpdGluZ1RleHQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgaWYgKCF0ZXh0Tm9kZS5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghdGV4dE5vZGUuY29udGFpbnNPbmx5V2hpdGVzcGFjZSgpKQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAvLyBUaGlzIHRleHQgbm9kZSBoYXMgbm90aGluZyBidXQgd2hpdGUgc3BhY2Uu
IFdlIG1heSBzdGlsbCBuZWVkIGEgcmVuZGVyZXIgaW4gc29tZSBjYXNlcy4KLSAgICBpZiAocGFy
ZW50UmVuZGVyZXIuaXNUYWJsZSgpIHx8IHBhcmVudFJlbmRlcmVyLmlzVGFibGVSb3coKSB8fCBw
YXJlbnRSZW5kZXJlci5pc1RhYmxlU2VjdGlvbigpIHx8IHBhcmVudFJlbmRlcmVyLmlzUmVuZGVy
VGFibGVDb2woKSB8fCBwYXJlbnRSZW5kZXJlci5pc0ZyYW1lU2V0KCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAocGFyZW50UmVuZGVyZXIuc3R5bGUoKS5wcmVzZXJ2ZU5ld2xpbmUo
KSkgLy8gcHJlL3ByZS13cmFwL3ByZS1saW5lIGFsd2F5cyBtYWtlIHJlbmRlcmVycy4KLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KLSAgICBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXIgPSBy
ZW5kZXJUcmVlUG9zaXRpb24ucHJldmlvdXNTaWJsaW5nUmVuZGVyZXIodGV4dE5vZGUpOwotICAg
IGlmIChwcmV2aW91c1JlbmRlcmVyICYmIHByZXZpb3VzUmVuZGVyZXItPmlzQlIoKSkgLy8gPHNw
YW4+PGJyLz4gPGJyLz48L3NwYW4+Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChw
YXJlbnRSZW5kZXJlci5pc1JlbmRlcklubGluZSgpKSB7Ci0gICAgICAgIC8vIDxzcGFuPjxkaXYv
PiA8ZGl2Lz48L3NwYW4+Ci0gICAgICAgIGlmIChwcmV2aW91c1JlbmRlcmVyICYmICFwcmV2aW91
c1JlbmRlcmVyLT5pc0lubGluZSgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGlmIChwYXJlbnRSZW5kZXJlci5pc1JlbmRlckJsb2NrKCkgJiYgIXBh
cmVudFJlbmRlcmVyLmNoaWxkcmVuSW5saW5lKCkgJiYgKCFwcmV2aW91c1JlbmRlcmVyIHx8ICFw
cmV2aW91c1JlbmRlcmVyLT5pc0lubGluZSgpKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgCi0gICAgICAgIFJlbmRlck9iamVjdCogZmlyc3QgPSBwYXJlbnRSZW5kZXJlci5m
aXJzdENoaWxkKCk7Ci0gICAgICAgIHdoaWxlIChmaXJzdCAmJiBmaXJzdC0+aXNGbG9hdGluZ09y
T3V0T2ZGbG93UG9zaXRpb25lZCgpKQotICAgICAgICAgICAgZmlyc3QgPSBmaXJzdC0+bmV4dFNp
YmxpbmcoKTsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXIgPSByZW5kZXJUcmVl
UG9zaXRpb24ubmV4dFNpYmxpbmdSZW5kZXJlcih0ZXh0Tm9kZSk7Ci0gICAgICAgIGlmICghZmly
c3QgfHwgbmV4dFJlbmRlcmVyID09IGZpcnN0KSB7Ci0gICAgICAgICAgICAvLyBXaGl0ZXNwYWNl
IGF0IHRoZSBzdGFydCBvZiBhIGJsb2NrIGp1c3QgZ29lcyBhd2F5LiBEb24ndCBldmVuIG1ha2Ug
YSByZW5kZXIgb2JqZWN0IGZvciB0aGlzIHRleHQuCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyB2b2lkIGNy
ZWF0ZVRleHRSZW5kZXJlcihUZXh0JiB0ZXh0Tm9kZSwgUmVuZGVyVHJlZVBvc2l0aW9uJiByZW5k
ZXJUcmVlUG9zaXRpb24pCi17Ci0gICAgQVNTRVJUKCF0ZXh0Tm9kZS5yZW5kZXJlcigpKTsKLQot
ICAgIGF1dG8gbmV3UmVuZGVyZXIgPSB0ZXh0Tm9kZS5jcmVhdGVUZXh0UmVuZGVyZXIocmVuZGVy
VHJlZVBvc2l0aW9uLnBhcmVudCgpLnN0eWxlKCkpOwotICAgIEFTU0VSVChuZXdSZW5kZXJlcik7
Ci0KLSAgICByZW5kZXJUcmVlUG9zaXRpb24uY29tcHV0ZU5leHRTaWJsaW5nKHRleHROb2RlKTsK
LQotICAgIGlmICghcmVuZGVyVHJlZVBvc2l0aW9uLmNhbkluc2VydCgqbmV3UmVuZGVyZXIpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBNYWtlIHN1cmUgdGhlIFJlbmRlck9iamVjdCBhbHJl
YWR5IGtub3dzIGl0IGlzIGdvaW5nIHRvIGJlIGFkZGVkIHRvIGEgUmVuZGVyRmxvd1RocmVhZCBi
ZWZvcmUgd2Ugc2V0IHRoZSBzdHlsZQotICAgIC8vIGZvciB0aGUgZmlyc3QgdGltZS4gT3RoZXJ3
aXNlIGNvZGUgdXNpbmcgaW5SZW5kZXJGbG93VGhyZWFkKCkgaW4gdGhlIHN0eWxlV2lsbENoYW5n
ZSBhbmQgc3R5bGVEaWRDaGFuZ2Ugd2lsbCBmYWlsLgotICAgIG5ld1JlbmRlcmVyLT5zZXRGbG93
VGhyZWFkU3RhdGUocmVuZGVyVHJlZVBvc2l0aW9uLnBhcmVudCgpLmZsb3dUaHJlYWRTdGF0ZSgp
KTsKLQotICAgIHRleHROb2RlLnNldFJlbmRlcmVyKG5ld1JlbmRlcmVyLmdldCgpKTsKLSAgICBy
ZW5kZXJUcmVlUG9zaXRpb24uaW5zZXJ0KCpuZXdSZW5kZXJlci5sZWFrUHRyKCkpOwotfQotCi12
b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVUZXh0UmVuZGVyZXIoVGV4dCYgdGV4dCkKLXsK
LSAgICBib29sIGhhc1JlbmRlcmVyID0gdGV4dC5yZW5kZXJlcigpOwotICAgIGJvb2wgbmVlZHNS
ZW5kZXJlciA9IHRleHRSZW5kZXJlcklzTmVlZGVkKHRleHQsIHJlbmRlclRyZWVQb3NpdGlvbigp
KTsKLSAgICBpZiAoaGFzUmVuZGVyZXIpIHsKLSAgICAgICAgaWYgKG5lZWRzUmVuZGVyZXIpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIFN0eWxlOjpkZXRhY2hUZXh0UmVuZGVyZXIodGV4
dCk7Ci0gICAgICAgIGludmFsaWRhdGVXaGl0ZXNwYWNlT25seVRleHRTaWJsaW5nc0FmdGVyQXR0
YWNoSWZOZWVkZWQodGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKCFuZWVk
c1JlbmRlcmVyKQotICAgICAgICByZXR1cm47Ci0gICAgY3JlYXRlVGV4dFJlbmRlcmVyKHRleHQs
IHJlbmRlclRyZWVQb3NpdGlvbigpKTsKLSAgICBpbnZhbGlkYXRlV2hpdGVzcGFjZU9ubHlUZXh0
U2libGluZ3NBZnRlckF0dGFjaElmTmVlZGVkKHRleHQpOwotfQotCi12b2lkIFJlbmRlclRyZWVV
cGRhdGVyOjppbnZhbGlkYXRlV2hpdGVzcGFjZU9ubHlUZXh0U2libGluZ3NBZnRlckF0dGFjaElm
TmVlZGVkKE5vZGUmIGN1cnJlbnQpCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gdHJh
dmVyc2UgaW4gY29tcG9zZWQgdHJlZSBvcmRlci4KLQotICAgIC8vIFRoaXMgZnVuY3Rpb24gZmlu
ZHMgc2libGluZyB0ZXh0IHJlbmRlcmVycyB3aGVyZSB0aGUgcmVzdWx0cyBvZiB0ZXh0UmVuZGVy
ZXJJc05lZWRlZCBtYXkgaGF2ZSBjaGFuZ2VkIGFzIGEgcmVzdWx0IG9mCi0gICAgLy8gdGhlIGN1
cnJlbnQgbm9kZSBnYWluaW5nIG9yIGxvc2luZyB0aGUgcmVuZGVyZXIuIFRoaXMgY2FuIG9ubHkg
YWZmZWN0IHdoaXRlIHNwYWNlIHRleHQgbm9kZXMuCi0gICAgZm9yIChOb2RlKiBzaWJsaW5nID0g
Y3VycmVudC5uZXh0U2libGluZygpOyBzaWJsaW5nOyBzaWJsaW5nID0gc2libGluZy0+bmV4dFNp
YmxpbmcoKSkgewotICAgICAgICBpZiAoaXM8RWxlbWVudD4oKnNpYmxpbmcpKSB7Ci0gICAgICAg
ICAgICBpZiAobV9zdHlsZVVwZGF0ZS0+ZWxlbWVudFVwZGF0ZShkb3duY2FzdDxFbGVtZW50Pigq
c2libGluZykpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIC8vIFRleHQg
cmVuZGVyZXJzIGJleW9uZCByZW5kZXJlZCBlbGVtZW50cyBjYW4ndCBiZSBhZmZlY3RlZC4KLSAg
ICAgICAgICAgIGlmICghc2libGluZy0+cmVuZGVyZXIoKSB8fCBSZW5kZXJUcmVlUG9zaXRpb246
OmlzUmVuZGVyZXJSZXBhcmVudGVkKCpzaWJsaW5nLT5yZW5kZXJlcigpKSkKLSAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoIWlzPFRleHQ+KCpzaWJsaW5nKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBU
ZXh0JiB0ZXh0U2libGluZyA9IGRvd25jYXN0PFRleHQ+KCpzaWJsaW5nKTsKLSAgICAgICAgaWYg
KG1fc3R5bGVVcGRhdGUtPnRleHRVcGRhdGUodGV4dFNpYmxpbmcpKQotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICBpZiAoIXRleHRTaWJsaW5nLmNvbnRhaW5zT25seVdoaXRlc3BhY2UoKSkK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBtX2ludmFsaWRhdGVkV2hpdGVzcGFjZU9u
bHlUZXh0U2libGluZ3MuYWRkKCZ0ZXh0U2libGluZyk7Ci0gICAgfQotfQotCi1zdGF0aWMgYm9v
bCBuZWVkc1BzZXVkb0VsZW1lbnQoRWxlbWVudCYgY3VycmVudCwgUHNldWRvSWQgcHNldWRvSWQp
Ci17Ci0gICAgaWYgKCFjdXJyZW50LnJlbmRlcmVyKCkgfHwgIWN1cnJlbnQucmVuZGVyZXIoKS0+
Y2FuSGF2ZUdlbmVyYXRlZENoaWxkcmVuKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAoY3VycmVudC5pc1BzZXVkb0VsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghcHNldWRvRWxlbWVudFJlbmRlcmVySXNOZWVkZWQoY3VycmVudC5yZW5kZXJlcigpLT5n
ZXRDYWNoZWRQc2V1ZG9TdHlsZShwc2V1ZG9JZCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZUJlZm9y
ZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50KEVsZW1lbnQmIGN1cnJlbnQsIFBzZXVkb0lkIHBzZXVkb0lk
KQotewotICAgIFBzZXVkb0VsZW1lbnQqIHBzZXVkb0VsZW1lbnQgPSBwc2V1ZG9JZCA9PSBCRUZP
UkUgPyBjdXJyZW50LmJlZm9yZVBzZXVkb0VsZW1lbnQoKSA6IGN1cnJlbnQuYWZ0ZXJQc2V1ZG9F
bGVtZW50KCk7Ci0KLSAgICBhdXRvKiByZW5kZXJlciA9IHBzZXVkb0VsZW1lbnQgPyBwc2V1ZG9F
bGVtZW50LT5yZW5kZXJlcigpIDogbnVsbHB0cjsKLSAgICBpZiAocmVuZGVyZXIpCi0gICAgICAg
IHJlbmRlclRyZWVQb3NpdGlvbigpLmludmFsaWRhdGVOZXh0U2libGluZygqcmVuZGVyZXIpOwot
Ci0gICAgYm9vbCBuZWVkc1BzZXVkb0VsZW1lbnQgPSBXZWJDb3JlOjpuZWVkc1BzZXVkb0VsZW1l
bnQoY3VycmVudCwgcHNldWRvSWQpOwotICAgIGlmICghbmVlZHNQc2V1ZG9FbGVtZW50KSB7Ci0g
ICAgICAgIGlmIChwc2V1ZG9FbGVtZW50KSB7Ci0gICAgICAgICAgICBpZiAocHNldWRvSWQgPT0g
QkVGT1JFKQotICAgICAgICAgICAgICAgIGN1cnJlbnQuY2xlYXJCZWZvcmVQc2V1ZG9FbGVtZW50
KCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY3VycmVudC5jbGVhckFmdGVy
UHNldWRvRWxlbWVudCgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBTdHlsZTo6RWxlbWVudFVwZGF0ZSBlbGVtZW50VXBkYXRlOwotCi0gICAgUmVmPFJlbmRlclN0
eWxlPiBuZXdTdHlsZSA9ICpjdXJyZW50LnJlbmRlcmVyKCktPmdldENhY2hlZFBzZXVkb1N0eWxl
KHBzZXVkb0lkLCAmY3VycmVudC5yZW5kZXJlcigpLT5zdHlsZSgpKTsKLQotICAgIGlmIChyZW5k
ZXJlciAmJiBtX2RvY3VtZW50LmZyYW1lKCktPmFuaW1hdGlvbigpLnVwZGF0ZUFuaW1hdGlvbnMo
KnJlbmRlcmVyLCBuZXdTdHlsZSwgbmV3U3R5bGUpKQotICAgICAgICBlbGVtZW50VXBkYXRlLmlz
U3ludGhldGljID0gdHJ1ZTsKLQotICAgIGVsZW1lbnRVcGRhdGUuY2hhbmdlID0gcmVuZGVyZXIg
PyBTdHlsZTo6ZGV0ZXJtaW5lQ2hhbmdlKHJlbmRlcmVyLT5zdHlsZSgpLCBuZXdTdHlsZSkgOiBT
dHlsZTo6RGV0YWNoOwotICAgIGVsZW1lbnRVcGRhdGUuc3R5bGUgPSBXVEZNb3ZlKG5ld1N0eWxl
KTsKLQotICAgIGlmIChlbGVtZW50VXBkYXRlLmNoYW5nZSA9PSBTdHlsZTo6Tm9DaGFuZ2UpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGlmICghcHNldWRvRWxlbWVudCkgewotICAgICAgICBhdXRv
IG5ld1BzZXVkb0VsZW1lbnQgPSBQc2V1ZG9FbGVtZW50OjpjcmVhdGUoY3VycmVudCwgcHNldWRv
SWQpOwotICAgICAgICBwc2V1ZG9FbGVtZW50ID0gbmV3UHNldWRvRWxlbWVudC5wdHIoKTsKLSAg
ICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50Q3JlYXRlZChtX2Rv
Y3VtZW50LnBhZ2UoKSwgbmV3UHNldWRvRWxlbWVudCk7Ci0gICAgICAgIGlmIChwc2V1ZG9JZCA9
PSBCRUZPUkUpCi0gICAgICAgICAgICBjdXJyZW50LnNldEJlZm9yZVBzZXVkb0VsZW1lbnQoV1RG
TW92ZShuZXdQc2V1ZG9FbGVtZW50KSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGN1cnJl
bnQuc2V0QWZ0ZXJQc2V1ZG9FbGVtZW50KFdURk1vdmUobmV3UHNldWRvRWxlbWVudCkpOwotICAg
IH0KLQotICAgIHVwZGF0ZUVsZW1lbnRSZW5kZXJlcigqcHNldWRvRWxlbWVudCwgZWxlbWVudFVw
ZGF0ZSk7Ci0KLSAgICBpZiAoZWxlbWVudFVwZGF0ZS5jaGFuZ2UgPT0gU3R5bGU6OkRldGFjaCkK
LSAgICAgICAgcHNldWRvRWxlbWVudC0+ZGlkQXR0YWNoUmVuZGVyZXJzKCk7Ci0gICAgZWxzZQot
ICAgICAgICBwc2V1ZG9FbGVtZW50LT5kaWRSZWNhbGNTdHlsZShlbGVtZW50VXBkYXRlLmNoYW5n
ZSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVV
cGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SZW5kZXJUcmVlVXBkYXRlci5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNGVhZGEzYzg4NjUwYTUzMTRiZjUwNzRhMTNhMThi
ZDgxMWUyMGNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVVcGRhdGVyLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw4NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBSZW5kZXJUcmVlVXBkYXRlcl9o
Ci0jZGVmaW5lIFJlbmRlclRyZWVVcGRhdGVyX2gKLQotI2luY2x1ZGUgIlJlbmRlclRyZWVQb3Np
dGlvbi5oIgotI2luY2x1ZGUgIlN0eWxlQ2hhbmdlLmgiCi0jaW5jbHVkZSAiU3R5bGVVcGRhdGUu
aCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0j
aW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDb250
YWluZXJOb2RlOwotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBFbGVtZW50OwotY2xhc3MgTm9kZTsK
LWNsYXNzIFJlbmRlclN0eWxlOwotY2xhc3MgVGV4dDsKLQotY2xhc3MgUmVuZGVyVHJlZVVwZGF0
ZXIgewotcHVibGljOgotICAgIFJlbmRlclRyZWVVcGRhdGVyKERvY3VtZW50Jik7Ci0KLSAgICB2
b2lkIGNvbW1pdChzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgU3R5bGU6OlVwZGF0ZT4pOwotCi1wcml2
YXRlOgotICAgIHZvaWQgdXBkYXRlUmVuZGVyVHJlZShDb250YWluZXJOb2RlJiByb290KTsKLSAg
ICB2b2lkIHVwZGF0ZVRleHRSZW5kZXJlcihUZXh0Jik7Ci0gICAgdm9pZCB1cGRhdGVFbGVtZW50
UmVuZGVyZXIoRWxlbWVudCYsIGNvbnN0IFN0eWxlOjpFbGVtZW50VXBkYXRlJik7Ci0gICAgdm9p
ZCBjcmVhdGVSZW5kZXJlcihFbGVtZW50JiwgUmVuZGVyU3R5bGUmKTsKLSAgICB2b2lkIGludmFs
aWRhdGVXaGl0ZXNwYWNlT25seVRleHRTaWJsaW5nc0FmdGVyQXR0YWNoSWZOZWVkZWQoTm9kZSYp
OwotICAgIHZvaWQgdXBkYXRlQmVmb3JlT3JBZnRlclBzZXVkb0VsZW1lbnQoRWxlbWVudCYsIFBz
ZXVkb0lkKTsKLQotICAgIHN0cnVjdCBQYXJlbnQgewotICAgICAgICBFbGVtZW50KiBlbGVtZW50
IHsgbnVsbHB0ciB9OwotICAgICAgICBTdHlsZTo6Q2hhbmdlIHN0eWxlQ2hhbmdlIHsgU3R5bGU6
Ok5vQ2hhbmdlIH07Ci0gICAgICAgIE9wdGlvbmFsPFJlbmRlclRyZWVQb3NpdGlvbj4gcmVuZGVy
VHJlZVBvc2l0aW9uOwotCi0gICAgICAgIFBhcmVudChDb250YWluZXJOb2RlJiByb290KTsKLSAg
ICAgICAgUGFyZW50KEVsZW1lbnQmLCBTdHlsZTo6Q2hhbmdlKTsKLSAgICB9OwotICAgIFBhcmVu
dCYgcGFyZW50KCkgeyByZXR1cm4gbV9wYXJlbnRTdGFjay5sYXN0KCk7IH0KLSAgICBSZW5kZXJU
cmVlUG9zaXRpb24mIHJlbmRlclRyZWVQb3NpdGlvbigpOwotCi0gICAgdm9pZCBwdXNoUGFyZW50
KEVsZW1lbnQmLCBTdHlsZTo6Q2hhbmdlKTsKLSAgICB2b2lkIHBvcFBhcmVudCgpOwotICAgIHZv
aWQgcG9wUGFyZW50c1RvRGVwdGgodW5zaWduZWQgZGVwdGgpOwotCi0gICAgRG9jdW1lbnQmIG1f
ZG9jdW1lbnQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFN0eWxlOjpVcGRhdGU+IG1fc3R5
bGVVcGRhdGU7Ci0KLSAgICBWZWN0b3I8UGFyZW50PiBtX3BhcmVudFN0YWNrOwotCi0gICAgSGFz
aFNldDxUZXh0Kj4gbV9pbnZhbGlkYXRlZFdoaXRlc3BhY2VPbmx5VGV4dFNpYmxpbmdzOwotfTsK
LQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0
aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0aW9ucy5jcHAKaW5kZXgg
OTkzZjhhNGE1OGNjMThhZmUxMDM3OWZmYjdjNzQxYmFmYzJiMTgzZC4uNWJiNzhlNjM5MzU0YTI1
YzQxODM3ZWMwNDNkZWFlNDQzNjVlNDI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVSZWxhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVs
YXRpb25zLmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNs
dWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgotI2luY2x1
ZGUgIlN0eWxlVXBkYXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBTdHls
ZSB7CkBAIC04Niw3ICs4NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZWxhdGlvbnM+IGNvbW1pdFJl
bGF0aW9uc1RvUmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zCiAgICAgcmV0dXJu
IHJlbWFpbmluZ1JlbGF0aW9uczsKIH0KIAotdm9pZCBjb21taXRSZWxhdGlvbnMoc3RkOjp1bmlx
dWVfcHRyPFJlbGF0aW9ucz4gcmVsYXRpb25zLCBVcGRhdGUmIHVwZGF0ZSkKK3ZvaWQgY29tbWl0
UmVsYXRpb25zVG9Eb2N1bWVudChzdGQ6OnVuaXF1ZV9wdHI8UmVsYXRpb25zPiByZWxhdGlvbnMp
CiB7CiAgICAgaWYgKCFyZWxhdGlvbnMpCiAgICAgICAgIHJldHVybjsKQEAgLTEyNSwyMCArMTI0
LDE4IEBAIHZvaWQgY29tbWl0UmVsYXRpb25zKHN0ZDo6dW5pcXVlX3B0cjxSZWxhdGlvbnM+IHJl
bGF0aW9ucywgVXBkYXRlJiB1cGRhdGUpCiAgICAgICAgICAgICBlbGVtZW50LnNldENoaWxkcmVu
QWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBSZWxhdGlvbjo6Rmlyc3RDaGlsZDoKLSAgICAgICAgICAgIGlmIChhdXRvKiBzdHlsZSA9
IHVwZGF0ZS5lbGVtZW50U3R5bGUoZWxlbWVudCkpCisgICAgICAgICAgICBpZiAoYXV0byogc3R5
bGUgPSBlbGVtZW50LnJlbmRlclN0eWxlKCkpCiAgICAgICAgICAgICAgICAgc3R5bGUtPnNldEZp
cnN0Q2hpbGRTdGF0ZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUmVsYXRp
b246Okxhc3RDaGlsZDoKLSAgICAgICAgICAgIGlmIChhdXRvKiBzdHlsZSA9IHVwZGF0ZS5lbGVt
ZW50U3R5bGUoZWxlbWVudCkpCisgICAgICAgICAgICBpZiAoYXV0byogc3R5bGUgPSBlbGVtZW50
LnJlbmRlclN0eWxlKCkpCiAgICAgICAgICAgICAgICAgc3R5bGUtPnNldExhc3RDaGlsZFN0YXRl
KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSZWxhdGlvbjo6TnRoQ2hpbGRJ
bmRleDoKLSAgICAgICAgICAgIGlmIChhdXRvKiBzdHlsZSA9IHVwZGF0ZS5lbGVtZW50U3R5bGUo
ZWxlbWVudCkpCi0gICAgICAgICAgICAgICAgc3R5bGUtPnNldFVuaXF1ZSgpOwogICAgICAgICAg
ICAgZWxlbWVudC5zZXRDaGlsZEluZGV4KHJlbGF0aW9uLnZhbHVlKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFJlbGF0aW9uOjpVbmlxdWU6Ci0gICAgICAgICAgICBpZiAoYXV0
byogc3R5bGUgPSB1cGRhdGUuZWxlbWVudFN0eWxlKGVsZW1lbnQpKQorICAgICAgICAgICAgaWYg
KGF1dG8qIHN0eWxlID0gZWxlbWVudC5yZW5kZXJTdHlsZSgpKQogICAgICAgICAgICAgICAgIHN0
eWxlLT5zZXRVbmlxdWUoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0aW9ucy5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZWxhdGlvbnMuaAppbmRleCAzMWFhNWNjZGU3ZmQwOGZiZGIzMmU3MWEx
MDY1OWRhNGU3M2JmMjNmLi5kNTk1MGFmNzgzZGM4NzNiYjhlZTg3ZGVjNGIxNzllNTI4NjkzMGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0aW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVsYXRpb25zLmgKQEAgLTM1LDggKzM1LDYgQEAg
Y2xhc3MgUmVuZGVyU3R5bGU7CiAKIG5hbWVzcGFjZSBTdHlsZSB7CiAKLWNsYXNzIFVwZGF0ZTsK
LQogc3RydWN0IFJlbGF0aW9uIHsKICAgICBlbnVtIFR5cGUgewogICAgICAgICBBZmZlY3RlZEJ5
QWN0aXZlLApAQCAtNjgsNyArNjYsNyBAQCBzdHJ1Y3QgUmVsYXRpb24gewogdXNpbmcgUmVsYXRp
b25zID0gVmVjdG9yPFJlbGF0aW9uLCA4PjsKIAogc3RkOjp1bmlxdWVfcHRyPFJlbGF0aW9ucz4g
Y29tbWl0UmVsYXRpb25zVG9SZW5kZXJTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQm
LCBjb25zdCBSZWxhdGlvbnMmKTsKLXZvaWQgY29tbWl0UmVsYXRpb25zKHN0ZDo6dW5pcXVlX3B0
cjxSZWxhdGlvbnM+LCBVcGRhdGUmKTsKK3ZvaWQgY29tbWl0UmVsYXRpb25zVG9Eb2N1bWVudChz
dGQ6OnVuaXF1ZV9wdHI8UmVsYXRpb25zPik7CiAKIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAppbmRleCBhOTFmNjZhN2VlNTE2NGQxYzFhYWZl
NjgxOWVmNmUwYWNmZWY3OTZjLi4xZThkYjFlYWUwMmU0YzUzYzI2ZDJjZTIxYTY5ZWE1YjY3ZTc3
ZDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3Bw
CkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCi0jaW5jbHVkZSAiU3R5
bGVVcGRhdGUuaCIKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiVmlzaXRl
ZExpbmtTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlZUVEVsZW1lbnQuaCIKQEAgLTQ1LDcgKzQ0LDYg
QEAgbmFtZXNwYWNlIFN0eWxlIHsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjU3R5bGVTZWFyY2hU
aHJlc2hvbGQgPSAxMDsKIAogc3RydWN0IFNoYXJpbmdSZXNvbHZlcjo6Q29udGV4dCB7Ci0gICAg
Y29uc3QgVXBkYXRlJiB1cGRhdGU7CiAgICAgY29uc3QgU3R5bGVkRWxlbWVudCYgZWxlbWVudDsK
ICAgICBib29sIGVsZW1lbnRBZmZlY3RlZEJ5Q2xhc3NSdWxlczsKICAgICBFSW5zaWRlTGluayBl
bGVtZW50TGlua1N0YXRlOwpAQCAtNjksNyArNjcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZWxl
bWVudEhhc0RpcmVjdGlvbkF1dG8oY29uc3QgRWxlbWVudCYgZWxlbWVudCkKICAgICByZXR1cm4g
aXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpICYmIGRvd25jYXN0PEhUTUxFbGVtZW50PihlbGVtZW50
KS5oYXNEaXJlY3Rpb25BdXRvKCk7CiB9CiAKLVJlZlB0cjxSZW5kZXJTdHlsZT4gU2hhcmluZ1Jl
c29sdmVyOjpyZXNvbHZlKGNvbnN0IEVsZW1lbnQmIHNlYXJjaEVsZW1lbnQsIGNvbnN0IFVwZGF0
ZSYgdXBkYXRlKQorUmVmUHRyPFJlbmRlclN0eWxlPiBTaGFyaW5nUmVzb2x2ZXI6OnJlc29sdmUo
Y29uc3QgRWxlbWVudCYgc2VhcmNoRWxlbWVudCkKIHsKICAgICBpZiAoIWlzPFN0eWxlZEVsZW1l
bnQ+KHNlYXJjaEVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTc5LDcgKzc3
LDcgQEAgUmVmUHRyPFJlbmRlclN0eWxlPiBTaGFyaW5nUmVzb2x2ZXI6OnJlc29sdmUoY29uc3Qg
RWxlbWVudCYgc2VhcmNoRWxlbWVudCwgY29uc3QKICAgICBhdXRvJiBwYXJlbnRFbGVtZW50ID0g
KmVsZW1lbnQucGFyZW50RWxlbWVudCgpOwogICAgIGlmIChwYXJlbnRFbGVtZW50LnNoYWRvd1Jv
b3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKCF1cGRhdGUuZWxlbWVudFN0
eWxlKHBhcmVudEVsZW1lbnQpKQorICAgIGlmICghcGFyZW50RWxlbWVudC5yZW5kZXJTdHlsZSgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAvLyBJZiB0aGUgZWxlbWVudCBoYXMgaW5s
aW5lIHN0eWxlIGl0IGlzIHByb2JhYmx5IHVuaXF1ZS4KICAgICBpZiAoZWxlbWVudC5pbmxpbmVT
dHlsZSgpKQpAQCAtOTcsNyArOTUsNiBAQCBSZWZQdHI8UmVuZGVyU3R5bGU+IFNoYXJpbmdSZXNv
bHZlcjo6cmVzb2x2ZShjb25zdCBFbGVtZW50JiBzZWFyY2hFbGVtZW50LCBjb25zdAogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENvbnRleHQgY29udGV4dCB7Ci0gICAgICAgIHVwZGF0
ZSwKICAgICAgICAgZWxlbWVudCwKICAgICAgICAgZWxlbWVudC5oYXNDbGFzcygpICYmIGNsYXNz
TmFtZXNBZmZlY3RlZEJ5UnVsZXMoZWxlbWVudC5jbGFzc05hbWVzKCkpLAogICAgICAgICBtX2Rv
Y3VtZW50LnZpc2l0ZWRMaW5rU3RhdGUoKS5kZXRlcm1pbmVMaW5rU3RhdGUoZWxlbWVudCkKQEAg
LTEzMCw3ICsxMjcsNyBAQCBSZWZQdHI8UmVuZGVyU3R5bGU+IFNoYXJpbmdSZXNvbHZlcjo6cmVz
b2x2ZShjb25zdCBFbGVtZW50JiBzZWFyY2hFbGVtZW50LCBjb25zdAogCiAgICAgbV9lbGVtZW50
c1NoYXJpbmdTdHlsZS5hZGQoJmVsZW1lbnQsIHNoYXJlRWxlbWVudCk7CiAKLSAgICByZXR1cm4g
UmVuZGVyU3R5bGU6OmNsb25lKHVwZGF0ZS5lbGVtZW50U3R5bGUoKnNoYXJlRWxlbWVudCkpOwor
ICAgIHJldHVybiBSZW5kZXJTdHlsZTo6Y2xvbmUoc2hhcmVFbGVtZW50LT5yZW5kZXJTdHlsZSgp
KTsKIH0KIAogU3R5bGVkRWxlbWVudCogU2hhcmluZ1Jlc29sdmVyOjpmaW5kU2libGluZyhjb25z
dCBDb250ZXh0JiBjb250ZXh0LCBOb2RlKiBub2RlLCB1bnNpZ25lZCYgY291bnQpIGNvbnN0CkBA
IC0xOTgsNyArMTk1LDcgQEAgc3RhdGljIGJvb2wgY2FuU2hhcmVTdHlsZVdpdGhDb250cm9sKGNv
bnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGVsZW1lbnQsIGNvbnMKIGJvb2wgU2hhcmluZ1Jl
c29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoY29uc3QgQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgU3R5bGVkRWxlbWVudCYgY2FuZGlkYXRlRWxlbWVudCkgY29uc3QKIHsKICAgICBhdXRv
JiBlbGVtZW50ID0gY29udGV4dC5lbGVtZW50OwotICAgIGF1dG8qIHN0eWxlID0gY29udGV4dC51
cGRhdGUuZWxlbWVudFN0eWxlKGNhbmRpZGF0ZUVsZW1lbnQpOworICAgIGF1dG8qIHN0eWxlID0g
Y2FuZGlkYXRlRWxlbWVudC5yZW5kZXJTdHlsZSgpOwogICAgIGlmICghc3R5bGUpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBpZiAoc3R5bGUtPnVuaXF1ZSgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmgKaW5kZXggNWY5NTA1YmM0ZjUwMWYxMmIwOTJi
MDRiNTA1NzY1ZDAzZWI1YTg1Mi4uZDI3NTRlMjQ0Mzk0OTBjYTZkMjEwOTAzNmQzNDBmNjkwNmQ5
NGZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5oCkBA
IC00MiwxMyArNDIsMTEgQEAgY2xhc3MgU3R5bGVkRWxlbWVudDsKIAogbmFtZXNwYWNlIFN0eWxl
IHsKIAotY2xhc3MgVXBkYXRlOwotCiBjbGFzcyBTaGFyaW5nUmVzb2x2ZXIgewogcHVibGljOgog
ICAgIFNoYXJpbmdSZXNvbHZlcihjb25zdCBEb2N1bWVudCYsIGNvbnN0IERvY3VtZW50UnVsZVNl
dHMmLCBjb25zdCBTZWxlY3RvckZpbHRlciYpOwogCi0gICAgUmVmUHRyPFJlbmRlclN0eWxlPiBy
ZXNvbHZlKGNvbnN0IEVsZW1lbnQmLCBjb25zdCBVcGRhdGUmKTsKKyAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IHJlc29sdmUoY29uc3QgRWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIHN0cnVjdCBD
b250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCmluZGV4
IGJjZDQxNDI4M2FjZTY2NDc5ZTNhOGFjOGIxMThmM2UzOTc2YWFmNzEuLmE3MDcwZTYwMDBhMmNl
YWFlNGJiZWFiMTU3Y2MzNjkzMzk1MjRiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVRyZWVSZXNvbHZlci5jcHAKQEAgLTQsNyArNCw3IEBACiAgKiAgICAgICAgICAgKEMpIDIwMDEg
UGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11
ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwNyBEYXZpZCBTbWl0
aCAoY2F0ZmlzaC5tYW5AZ21haWwuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTAsIDIw
MTItMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxMCwgMjAxMi0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
ICAgICAgICAgICAoQykgMjAwNyBFcmljIFNlaWRlbCAoZXJpY0B3ZWJraXQub3JnKQogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKQEAgLTI2LDE3ICsyNiwyNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlN0eWxlVHJlZVJlc29sdmVyLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5j
bHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkF1dGhvclN0eWxlU2hlZXRz
LmgiCiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ29tcG9zZWRUcmVl
QW5jZXN0b3JJdGVyYXRvci5oIgogI2luY2x1ZGUgIkNvbXBvc2VkVHJlZUl0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCi0jaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50Lmgi
CisjaW5jbHVkZSAiRWxlbWVudFJhcmVEYXRhLmgiCisjaW5jbHVkZSAiRmxvd1RocmVhZENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJIVE1MU2xvdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1
ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUg
Ik5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNs
dWRlICJSZW5kZXJGdWxsU2NyZWVuLmgiCisjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93VGhyZWFk
LmgiCisjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlbmRlclRyZWVQb3NpdGlv
bi5oIgorI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKQEAgLTUw
LDcgKzYwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIFN0eWxlIHsKIAor
ZW51bSBEZXRhY2hUeXBlIHsgTm9ybWFsRGV0YWNoLCBSZWF0dGFjaERldGFjaCB9OworCiBzdGF0
aWMgdm9pZCBhdHRhY2hUZXh0UmVuZGVyZXIoVGV4dCYsIFJlbmRlclRyZWVQb3NpdGlvbiYpOwor
c3RhdGljIHZvaWQgZGV0YWNoUmVuZGVyVHJlZShFbGVtZW50JiwgRGV0YWNoVHlwZSk7CiBzdGF0
aWMgdm9pZCByZXNvbHZlVGV4dE5vZGUoVGV4dCYsIFJlbmRlclRyZWVQb3NpdGlvbiYpOwogCiBj
bGFzcyBTZWxlY3RvckZpbHRlclB1c2hlciB7CkBAIC0xMTgsMTQgKzEzMSwxNiBAQCBUcmVlUmVz
b2x2ZXI6OlNjb3BlOjpTY29wZShTaGFkb3dSb290JiBzaGFkb3dSb290LCBTY29wZSYgZW5jbG9z
aW5nU2NvcGUpCiBUcmVlUmVzb2x2ZXI6OlBhcmVudDo6UGFyZW50KERvY3VtZW50JiBkb2N1bWVu
dCwgQ2hhbmdlIGNoYW5nZSkKICAgICA6IGVsZW1lbnQobnVsbHB0cikKICAgICAsIHN0eWxlKCpk
b2N1bWVudC5yZW5kZXJTdHlsZSgpKQorICAgICwgcmVuZGVyVHJlZVBvc2l0aW9uKCpkb2N1bWVu
dC5yZW5kZXJWaWV3KCkpCiAgICAgLCBjaGFuZ2UoY2hhbmdlKQogewogfQogCi1UcmVlUmVzb2x2
ZXI6OlBhcmVudDo6UGFyZW50KEVsZW1lbnQmIGVsZW1lbnQsIEVsZW1lbnRVcGRhdGUmIHVwZGF0
ZSkKK1RyZWVSZXNvbHZlcjo6UGFyZW50OjpQYXJlbnQoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVy
U3R5bGUmIHN0eWxlLCBSZW5kZXJUcmVlUG9zaXRpb24gcmVuZGVyVHJlZVBvc2l0aW9uLCBDaGFu
Z2UgY2hhbmdlKQogICAgIDogZWxlbWVudCgmZWxlbWVudCkKLSAgICAsIHN0eWxlKCp1cGRhdGUu
c3R5bGUpCi0gICAgLCBjaGFuZ2UodXBkYXRlLmNoYW5nZSkKKyAgICAsIHN0eWxlKHN0eWxlKQor
ICAgICwgcmVuZGVyVHJlZVBvc2l0aW9uKHJlbmRlclRyZWVQb3NpdGlvbikKKyAgICAsIGNoYW5n
ZShjaGFuZ2UpCiB7CiB9CiAKQEAgLTE0NSw2ICsxNjAsMTcgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6
OnBvcFNjb3BlKCkKICAgICByZXR1cm4gbV9zY29wZVN0YWNrLnJlbW92ZUxhc3QoKTsKIH0KIAor
c3RhdGljIGJvb2wgc2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50UmVuZGVyZXIpCit7CisgICAgaWYgKCFlbGVtZW50
LmRvY3VtZW50KCkuc2hvdWxkQ3JlYXRlUmVuZGVyZXJzKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAoIXBhcmVudFJlbmRlcmVyLmNhbkhhdmVDaGlsZHJlbigpICYmICEoZWxlbWVu
dC5pc1BzZXVkb0VsZW1lbnQoKSAmJiBwYXJlbnRSZW5kZXJlci5jYW5IYXZlR2VuZXJhdGVkQ2hp
bGRyZW4oKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAocGFyZW50UmVuZGVyZXIu
ZWxlbWVudCgpICYmICFwYXJlbnRSZW5kZXJlci5lbGVtZW50KCktPmNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoZWxlbWVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogUmVmPFJlbmRlclN0eWxlPiBUcmVlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChF
bGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYgaW5oZXJpdGVkU3R5bGUpCiB7CiAgICAgaWYg
KCFtX2RvY3VtZW50LmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpICYmICFlbGVtZW50LnJlbmRlcmVy
KCkpIHsKQEAgLTE1MiwyOSArMTc4LDg5IEBAIFJlZjxSZW5kZXJTdHlsZT4gVHJlZVJlc29sdmVy
OjpzdHlsZUZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmIGluCiAgICAg
ICAgIHJldHVybiAqcGxhY2Vob2xkZXJTdHlsZTsKICAgICB9CiAKLSAgICBzY29wZSgpLnN0eWxl
UmVzb2x2ZXIuc2V0T3ZlcnJpZGVEb2N1bWVudEVsZW1lbnRTdHlsZShtX2RvY3VtZW50RWxlbWVu
dFN0eWxlLmdldCgpKTsKLQogICAgIGlmIChlbGVtZW50Lmhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNh
bGxiYWNrcygpKSB7Ci0gICAgICAgIFJlbmRlclN0eWxlKiBzaGFkb3dIb3N0U3R5bGUgPSBzY29w
ZSgpLnNoYWRvd1Jvb3QgPyBtX3VwZGF0ZS0+ZWxlbWVudFN0eWxlKCpzY29wZSgpLnNoYWRvd1Jv
b3QtPmhvc3QoKSkgOiBudWxscHRyOworICAgICAgICBSZW5kZXJTdHlsZSogc2hhZG93SG9zdFN0
eWxlID0gc2NvcGUoKS5zaGFkb3dSb290ID8gc2NvcGUoKS5zaGFkb3dSb290LT5ob3N0KCktPnJl
bmRlclN0eWxlKCkgOiBudWxscHRyOwogICAgICAgICBpZiAoYXV0byBjdXN0b21TdHlsZSA9IGVs
ZW1lbnQucmVzb2x2ZUN1c3RvbVN0eWxlKGluaGVyaXRlZFN0eWxlLCBzaGFkb3dIb3N0U3R5bGUp
KSB7Ci0gICAgICAgICAgICBpZiAoY3VzdG9tU3R5bGUtPnJlbGF0aW9ucykKLSAgICAgICAgICAg
ICAgICBjb21taXRSZWxhdGlvbnMoV1RGTW92ZShjdXN0b21TdHlsZS0+cmVsYXRpb25zKSwgKm1f
dXBkYXRlKTsKLQorICAgICAgICAgICAgU3R5bGU6OmNvbW1pdFJlbGF0aW9uc1RvRG9jdW1lbnQo
V1RGTW92ZShjdXN0b21TdHlsZS0+cmVsYXRpb25zKSk7CiAgICAgICAgICAgICByZXR1cm4gV1RG
TW92ZShjdXN0b21TdHlsZS0+cmVuZGVyU3R5bGUpOwogICAgICAgICB9CiAgICAgfQogCi0gICAg
aWYgKGF1dG8gc3R5bGUgPSBzY29wZSgpLnNoYXJpbmdSZXNvbHZlci5yZXNvbHZlKGVsZW1lbnQs
ICptX3VwZGF0ZSkpCisgICAgaWYgKGF1dG8gc3R5bGUgPSBzY29wZSgpLnNoYXJpbmdSZXNvbHZl
ci5yZXNvbHZlKGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gKnN0eWxlOwogCiAgICAgYXV0byBl
bGVtZW50U3R5bGUgPSBzY29wZSgpLnN0eWxlUmVzb2x2ZXIuc3R5bGVGb3JFbGVtZW50KGVsZW1l
bnQsICZpbmhlcml0ZWRTdHlsZSwgTWF0Y2hBbGxSdWxlcywgbnVsbHB0ciwgJnNjb3BlKCkuc2Vs
ZWN0b3JGaWx0ZXIpOwogCi0gICAgaWYgKGVsZW1lbnRTdHlsZS5yZWxhdGlvbnMpCi0gICAgICAg
IGNvbW1pdFJlbGF0aW9ucyhXVEZNb3ZlKGVsZW1lbnRTdHlsZS5yZWxhdGlvbnMpLCAqbV91cGRh
dGUpOwotCisgICAgU3R5bGU6OmNvbW1pdFJlbGF0aW9uc1RvRG9jdW1lbnQoV1RGTW92ZShlbGVt
ZW50U3R5bGUucmVsYXRpb25zKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoZWxlbWVudFN0eWxlLnJl
bmRlclN0eWxlKTsKIH0KIAorI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKK3N0YXRpYyBSZW5kZXJO
YW1lZEZsb3dUaHJlYWQqIG1vdmVUb0Zsb3dUaHJlYWRJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50
LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCit7CisgICAgaWYgKCFlbGVtZW50LnNob3VsZE1v
dmVUb0Zsb3dUaHJlYWQoc3R5bGUpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIEZsb3dUaHJl
YWRDb250cm9sbGVyJiBmbG93VGhyZWFkQ29udHJvbGxlciA9IGVsZW1lbnQuZG9jdW1lbnQoKS5y
ZW5kZXJWaWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVyKCk7CisgICAgUmVuZGVyTmFtZWRGbG93
VGhyZWFkJiBwYXJlbnRGbG93UmVuZGVyZXIgPSBmbG93VGhyZWFkQ29udHJvbGxlci5lbnN1cmVS
ZW5kZXJGbG93VGhyZWFkV2l0aE5hbWUoc3R5bGUuZmxvd1RocmVhZCgpKTsKKyAgICBmbG93VGhy
ZWFkQ29udHJvbGxlci5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnRFbGVtZW50KGVsZW1lbnQsIHBh
cmVudEZsb3dSZW5kZXJlcik7CisgICAgcmV0dXJuICZwYXJlbnRGbG93UmVuZGVyZXI7Cit9Cisj
ZW5kaWYKKwordm9pZCBUcmVlUmVzb2x2ZXI6OmNyZWF0ZVJlbmRlcmVyKEVsZW1lbnQmIGVsZW1l
bnQsIFJlbmRlclRyZWVQb3NpdGlvbiYgcmVuZGVyVHJlZVBvc2l0aW9uLCBSZWZQdHI8UmVuZGVy
U3R5bGU+JiYgcmVzb2x2ZWRTdHlsZSkKK3sKKyAgICBBU1NFUlQoc2hvdWxkQ3JlYXRlUmVuZGVy
ZXIoZWxlbWVudCwgcmVuZGVyVHJlZVBvc2l0aW9uLnBhcmVudCgpKSk7CisgICAgQVNTRVJUKHJl
c29sdmVkU3R5bGUpOworCisgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBwYXJlbnRGbG93UmVu
ZGVyZXIgPSAwOworI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKKyAgICBwYXJlbnRGbG93UmVuZGVy
ZXIgPSBtb3ZlVG9GbG93VGhyZWFkSWZOZWVkZWQoZWxlbWVudCwgKnJlc29sdmVkU3R5bGUpOwor
I2VuZGlmCisKKyAgICBpZiAoIWVsZW1lbnQucmVuZGVyZXJJc05lZWRlZCgqcmVzb2x2ZWRTdHls
ZSkpCisgICAgICAgIHJldHVybjsKKworICAgIHJlbmRlclRyZWVQb3NpdGlvbi5jb21wdXRlTmV4
dFNpYmxpbmcoZWxlbWVudCk7CisKKyAgICBSZW5kZXJUcmVlUG9zaXRpb24gaW5zZXJ0aW9uUG9z
aXRpb24gPSBwYXJlbnRGbG93UmVuZGVyZXIKKyAgICAgICAgPyBSZW5kZXJUcmVlUG9zaXRpb24o
KnBhcmVudEZsb3dSZW5kZXJlciwgcGFyZW50Rmxvd1JlbmRlcmVyLT5uZXh0UmVuZGVyZXJGb3JF
bGVtZW50KGVsZW1lbnQpKQorICAgICAgICA6IHJlbmRlclRyZWVQb3NpdGlvbjsKKworICAgIFJl
bmRlckVsZW1lbnQqIG5ld1JlbmRlcmVyID0gZWxlbWVudC5jcmVhdGVFbGVtZW50UmVuZGVyZXIo
cmVzb2x2ZWRTdHlsZS5yZWxlYXNlTm9uTnVsbCgpLCBpbnNlcnRpb25Qb3NpdGlvbikubGVha1B0
cigpOworICAgIGlmICghbmV3UmVuZGVyZXIpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWlu
c2VydGlvblBvc2l0aW9uLmNhbkluc2VydCgqbmV3UmVuZGVyZXIpKSB7CisgICAgICAgIG5ld1Jl
bmRlcmVyLT5kZXN0cm95KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBNYWtl
IHN1cmUgdGhlIFJlbmRlck9iamVjdCBhbHJlYWR5IGtub3dzIGl0IGlzIGdvaW5nIHRvIGJlIGFk
ZGVkIHRvIGEgUmVuZGVyRmxvd1RocmVhZCBiZWZvcmUgd2Ugc2V0IHRoZSBzdHlsZQorICAgIC8v
IGZvciB0aGUgZmlyc3QgdGltZS4gT3RoZXJ3aXNlIGNvZGUgdXNpbmcgaW5SZW5kZXJGbG93VGhy
ZWFkKCkgaW4gdGhlIHN0eWxlV2lsbENoYW5nZSBhbmQgc3R5bGVEaWRDaGFuZ2Ugd2lsbCBmYWls
LgorICAgIG5ld1JlbmRlcmVyLT5zZXRGbG93VGhyZWFkU3RhdGUoaW5zZXJ0aW9uUG9zaXRpb24u
cGFyZW50KCkuZmxvd1RocmVhZFN0YXRlKCkpOworCisgICAgLy8gQ29kZSBiZWxvdyB1cGRhdGVB
bmltYXRpb25zKCkgY2FuIGRlcGVuZCBvbiBFbGVtZW50OjpyZW5kZXJlcigpIGFscmVhZHkgYmVp
bmcgc2V0LgorICAgIGVsZW1lbnQuc2V0UmVuZGVyZXIobmV3UmVuZGVyZXIpOworCisgICAgLy8g
RklYTUU6IFRoZXJlJ3MgcHJvYmFibHkgYSBiZXR0ZXIgd2F5IHRvIGZhY3RvciB0aGlzLgorICAg
IC8vIFRoaXMganVzdCBkb2VzIHdoYXQgc2V0QW5pbWF0ZWRTdHlsZSgpIGRvZXMsIGV4Y2VwdCB3
aXRoIHNldFN0eWxlSW50ZXJuYWwoKSBpbnN0ZWFkIG9mIHNldFN0eWxlKCkuCisgICAgUmVmPFJl
bmRlclN0eWxlPiBhbmltYXRlZFN0eWxlID0gbmV3UmVuZGVyZXItPnN0eWxlKCk7CisgICAgbmV3
UmVuZGVyZXItPmFuaW1hdGlvbigpLnVwZGF0ZUFuaW1hdGlvbnMoKm5ld1JlbmRlcmVyLCBhbmlt
YXRlZFN0eWxlLCBhbmltYXRlZFN0eWxlKTsKKyAgICBuZXdSZW5kZXJlci0+c2V0U3R5bGVJbnRl
cm5hbChXVEZNb3ZlKGFuaW1hdGVkU3R5bGUpKTsKKworICAgIG5ld1JlbmRlcmVyLT5pbml0aWFs
aXplU3R5bGUoKTsKKworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBpZiAobV9kb2N1
bWVudC53ZWJraXRJc0Z1bGxTY3JlZW4oKSAmJiBtX2RvY3VtZW50LndlYmtpdEN1cnJlbnRGdWxs
U2NyZWVuRWxlbWVudCgpID09ICZlbGVtZW50KSB7CisgICAgICAgIG5ld1JlbmRlcmVyID0gUmVu
ZGVyRnVsbFNjcmVlbjo6d3JhcFJlbmRlcmVyKG5ld1JlbmRlcmVyLCAmaW5zZXJ0aW9uUG9zaXRp
b24ucGFyZW50KCksIG1fZG9jdW1lbnQpOworICAgICAgICBpZiAoIW5ld1JlbmRlcmVyKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorICAgIC8vIE5vdGU6IEFkZGluZyBuZXdS
ZW5kZXJlciBpbnN0ZWFkIG9mIHJlbmRlcmVyKCkuIHJlbmRlcmVyKCkgbWF5IGJlIGEgY2hpbGQg
b2YgbmV3UmVuZGVyZXIuCisgICAgaW5zZXJ0aW9uUG9zaXRpb24uaW5zZXJ0KCpuZXdSZW5kZXJl
cik7Cit9CisKIHN0YXRpYyB2b2lkIGludmFsaWRhdGVXaGl0ZXNwYWNlT25seVRleHRTaWJsaW5n
c0FmdGVyQXR0YWNoSWZOZWVkZWQoTm9kZSYgY3VycmVudCkKIHsKICAgICAvLyBGSVhNRTogVGhp
cyBuZWVkcyB0byB0cmF2ZXJzZSBpbiBjb21wb3NlZCB0cmVlIG9yZGVyLgpAQCAtMjYyLDYgKzM0
OCw3IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVRleHRSZW5kZXJlcklmTmVlZGVkKFRleHQmIHRleHRO
b2RlLCBSZW5kZXJUcmVlUG9zaXRpb24mIHJlbmRlCiAgICAgbmV3UmVuZGVyZXItPnNldEZsb3dU
aHJlYWRTdGF0ZShyZW5kZXJUcmVlUG9zaXRpb24ucGFyZW50KCkuZmxvd1RocmVhZFN0YXRlKCkp
OwogCiAgICAgdGV4dE5vZGUuc2V0UmVuZGVyZXIobmV3UmVuZGVyZXIuZ2V0KCkpOworICAgIC8v
IFBhcmVudCB0YWtlcyBjYXJlIG9mIHRoZSBhbmltYXRpb25zLCBubyBuZWVkIHRvIGNhbGwgc2V0
QW5pbWF0YWJsZVN0eWxlLgogICAgIHJlbmRlclRyZWVQb3NpdGlvbi5pbnNlcnQoKm5ld1JlbmRl
cmVyLmxlYWtQdHIoKSk7CiB9CiAKQEAgLTI5NCwxMSArMzgxLDc1IEBAIHZvaWQgdXBkYXRlVGV4
dFJlbmRlcmVyQWZ0ZXJDb250ZW50Q2hhbmdlKFRleHQmIHRleHROb2RlLCB1bnNpZ25lZCBvZmZz
ZXRPZlJlcGxhCiAgICAgICAgIHRleHROb2RlLnJlbmRlcmVyKCktPnNldFRleHRXaXRoT2Zmc2V0
KHRleHROb2RlLmRhdGEoKSwgb2Zmc2V0T2ZSZXBsYWNlZERhdGEsIGxlbmd0aE9mUmVwbGFjZWRE
YXRhKTsKIH0KIAordm9pZCBUcmVlUmVzb2x2ZXI6OmNyZWF0ZVJlbmRlclRyZWVGb3JDaGlsZHJl
bihDb250YWluZXJOb2RlJiBjdXJyZW50LCBSZW5kZXJTdHlsZSYgaW5oZXJpdGVkU3R5bGUsIFJl
bmRlclRyZWVQb3NpdGlvbiYgcmVuZGVyVHJlZVBvc2l0aW9uKQoreworICAgIGZvciAoTm9kZSog
Y2hpbGQgPSBjdXJyZW50LmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRT
aWJsaW5nKCkpIHsKKyAgICAgICAgQVNTRVJUKCghY2hpbGQtPnJlbmRlcmVyKCkgfHwgY2hpbGQt
PmlzTmFtZWRGbG93Q29udGVudE5vZGUoKSkgfHwgY3VycmVudC5zaGFkb3dSb290KCkpOworICAg
ICAgICBpZiAoY2hpbGQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIHJlbmRlclRyZWVQb3Np
dGlvbi5pbnZhbGlkYXRlTmV4dFNpYmxpbmcoKmNoaWxkLT5yZW5kZXJlcigpKTsKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGlmIChpczxUZXh0PigqY2hpbGQpKSB7
CisgICAgICAgICAgICBhdHRhY2hUZXh0UmVuZGVyZXIoZG93bmNhc3Q8VGV4dD4oKmNoaWxkKSwg
cmVuZGVyVHJlZVBvc2l0aW9uKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9Cisg
ICAgICAgIGlmIChpczxFbGVtZW50PigqY2hpbGQpKQorICAgICAgICAgICAgY3JlYXRlUmVuZGVy
VHJlZVJlY3Vyc2l2ZWx5KGRvd25jYXN0PEVsZW1lbnQ+KCpjaGlsZCksIGluaGVyaXRlZFN0eWxl
LCByZW5kZXJUcmVlUG9zaXRpb24sIG51bGxwdHIpOworICAgIH0KK30KKwordm9pZCBUcmVlUmVz
b2x2ZXI6OmNyZWF0ZVJlbmRlclRyZWVGb3JTaGFkb3dSb290KFNoYWRvd1Jvb3QmIHNoYWRvd1Jv
b3QpCit7CisgICAgQVNTRVJUKHNoYWRvd1Jvb3QuaG9zdCgpKTsKKyAgICBBU1NFUlQoc2hhZG93
Um9vdC5ob3N0KCktPnJlbmRlcmVyKCkpOworCisgICAgcHVzaFNjb3BlKHNoYWRvd1Jvb3QpOwor
CisgICAgYXV0byYgcmVuZGVyZXIgPSAqc2hhZG93Um9vdC5ob3N0KCktPnJlbmRlcmVyKCk7Cisg
ICAgUmVuZGVyVHJlZVBvc2l0aW9uIHJlbmRlclRyZWVQb3NpdGlvbihyZW5kZXJlcik7CisgICAg
Y3JlYXRlUmVuZGVyVHJlZUZvckNoaWxkcmVuKHNoYWRvd1Jvb3QsIHJlbmRlcmVyLnN0eWxlKCks
IHJlbmRlclRyZWVQb3NpdGlvbik7CisKKyAgICBwb3BTY29wZSgpOworCisgICAgc2hhZG93Um9v
dC5jbGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBzaGFkb3dSb290LmNsZWFyQ2hpbGROZWVk
c1N0eWxlUmVjYWxjKCk7Cit9CisKK3N0YXRpYyBQc2V1ZG9FbGVtZW50KiBiZWZvcmVPckFmdGVy
UHNldWRvRWxlbWVudChFbGVtZW50JiBjdXJyZW50LCBQc2V1ZG9JZCBwc2V1ZG9JZCkKK3sKKyAg
ICBBU1NFUlQocHNldWRvSWQgPT0gQkVGT1JFIHx8IHBzZXVkb0lkID09IEFGVEVSKTsKKyAgICBp
ZiAocHNldWRvSWQgPT0gQkVGT1JFKQorICAgICAgICByZXR1cm4gY3VycmVudC5iZWZvcmVQc2V1
ZG9FbGVtZW50KCk7CisgICAgcmV0dXJuIGN1cnJlbnQuYWZ0ZXJQc2V1ZG9FbGVtZW50KCk7Cit9
CisKK3N0YXRpYyB2b2lkIHNldEJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50KEVsZW1lbnQmIGN1
cnJlbnQsIFJlZjxQc2V1ZG9FbGVtZW50PiYmIHBzZXVkb0VsZW1lbnQsIFBzZXVkb0lkIHBzZXVk
b0lkKQoreworICAgIEFTU0VSVChwc2V1ZG9JZCA9PSBCRUZPUkUgfHwgcHNldWRvSWQgPT0gQUZU
RVIpOworICAgIGlmIChwc2V1ZG9JZCA9PSBCRUZPUkUpIHsKKyAgICAgICAgY3VycmVudC5zZXRC
ZWZvcmVQc2V1ZG9FbGVtZW50KFdURk1vdmUocHNldWRvRWxlbWVudCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGN1cnJlbnQuc2V0QWZ0ZXJQc2V1ZG9FbGVtZW50KFdURk1vdmUocHNl
dWRvRWxlbWVudCkpOworfQorCitzdGF0aWMgdm9pZCBjbGVhckJlZm9yZU9yQWZ0ZXJQc2V1ZG9F
bGVtZW50KEVsZW1lbnQmIGN1cnJlbnQsIFBzZXVkb0lkIHBzZXVkb0lkKQoreworICAgIEFTU0VS
VChwc2V1ZG9JZCA9PSBCRUZPUkUgfHwgcHNldWRvSWQgPT0gQUZURVIpOworICAgIGlmIChwc2V1
ZG9JZCA9PSBCRUZPUkUpIHsKKyAgICAgICAgY3VycmVudC5jbGVhckJlZm9yZVBzZXVkb0VsZW1l
bnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjdXJyZW50LmNsZWFyQWZ0ZXJQc2V1
ZG9FbGVtZW50KCk7Cit9CisKIHN0YXRpYyB2b2lkIHJlc2V0U3R5bGVGb3JOb25SZW5kZXJlZERl
c2NlbmRhbnRzKEVsZW1lbnQmIGN1cnJlbnQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90
IGNvcnJlY3Qgd2l0aCBzaGFkb3cgdHJlZXMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgd2l0aCBDb21w
b3NlZFRyZWVJdGVyYXRvci4KKyAgICBBU1NFUlQoIWN1cnJlbnQucmVuZGVyZXIoKSk7CiAgICAg
Ym9vbCBlbGVtZW50TmVlZGluZ1N0eWxlUmVjYWxjQWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0
eWxlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEVsZW1l
bnQ+KGN1cnJlbnQpKSB7CisgICAgICAgIEFTU0VSVCghY2hpbGQucmVuZGVyZXIoKSk7CiAgICAg
ICAgIGJvb2wgYWZmZWN0ZWRCeVByZXZpb3VzU2libGluZyA9IGNoaWxkLnN0eWxlSXNBZmZlY3Rl
ZEJ5UHJldmlvdXNTaWJsaW5nKCkgJiYgZWxlbWVudE5lZWRpbmdTdHlsZVJlY2FsY0FmZmVjdHNO
ZXh0U2libGluZ0VsZW1lbnRTdHlsZTsKICAgICAgICAgaWYgKGNoaWxkLm5lZWRzU3R5bGVSZWNh
bGMoKSB8fCBlbGVtZW50TmVlZGluZ1N0eWxlUmVjYWxjQWZmZWN0c05leHRTaWJsaW5nRWxlbWVu
dFN0eWxlKQogICAgICAgICAgICAgZWxlbWVudE5lZWRpbmdTdHlsZVJlY2FsY0FmZmVjdHNOZXh0
U2libGluZ0VsZW1lbnRTdHlsZSA9IGNoaWxkLmFmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRTdHls
ZSgpOwpAQCAtMzE1LDYgKzQ2NiwxMTEgQEAgc3RhdGljIHZvaWQgcmVzZXRTdHlsZUZvck5vblJl
bmRlcmVkRGVzY2VuZGFudHMoRWxlbWVudCYgY3VycmVudCkKICAgICB9CiB9CiAKK3N0YXRpYyBi
b29sIG5lZWRzUHNldWRvRWxlbWVudChFbGVtZW50JiBjdXJyZW50LCBQc2V1ZG9JZCBwc2V1ZG9J
ZCkKK3sKKyAgICBpZiAoIWN1cnJlbnQucmVuZGVyZXIoKSB8fCAhY3VycmVudC5yZW5kZXJlcigp
LT5jYW5IYXZlR2VuZXJhdGVkQ2hpbGRyZW4oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmIChjdXJyZW50LmlzUHNldWRvRWxlbWVudCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKCFwc2V1ZG9FbGVtZW50UmVuZGVyZXJJc05lZWRlZChjdXJyZW50LnJlbmRlcmVyKCkt
PmdldENhY2hlZFBzZXVkb1N0eWxlKHBzZXVkb0lkKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBUcmVlUmVzb2x2ZXI6OmNyZWF0ZVJlbmRlclRy
ZWVGb3JCZWZvcmVPckFmdGVyUHNldWRvRWxlbWVudChFbGVtZW50JiBjdXJyZW50LCBQc2V1ZG9J
ZCBwc2V1ZG9JZCwgUmVuZGVyVHJlZVBvc2l0aW9uJiByZW5kZXJUcmVlUG9zaXRpb24pCit7Cisg
ICAgaWYgKCFuZWVkc1BzZXVkb0VsZW1lbnQoY3VycmVudCwgcHNldWRvSWQpKQorICAgICAgICBy
ZXR1cm47CisgICAgUmVmPFBzZXVkb0VsZW1lbnQ+IHBzZXVkb0VsZW1lbnQgPSBQc2V1ZG9FbGVt
ZW50OjpjcmVhdGUoY3VycmVudCwgcHNldWRvSWQpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6cHNldWRvRWxlbWVudENyZWF0ZWQobV9kb2N1bWVudC5wYWdlKCksIHBzZXVkb0VsZW1l
bnQuZ2V0KCkpOworICAgIHNldEJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50KGN1cnJlbnQsIHBz
ZXVkb0VsZW1lbnQuY29weVJlZigpLCBwc2V1ZG9JZCk7CisgICAgY3JlYXRlUmVuZGVyVHJlZVJl
Y3Vyc2l2ZWx5KHBzZXVkb0VsZW1lbnQuZ2V0KCksICpjdXJyZW50LnJlbmRlclN0eWxlKCksIHJl
bmRlclRyZWVQb3NpdGlvbiwgbnVsbHB0cik7Cit9CisKKyNpZiBFTkFCTEUoU0hBRE9XX0RPTSkg
fHwgRU5BQkxFKERFVEFJTFNfRUxFTUVOVCkKK3ZvaWQgVHJlZVJlc29sdmVyOjpjcmVhdGVSZW5k
ZXJUcmVlRm9yU2xvdEFzc2lnbmVlcyhIVE1MU2xvdEVsZW1lbnQmIHNsb3QsIFJlbmRlclN0eWxl
JiBpbmhlcml0ZWRTdHlsZSwgUmVuZGVyVHJlZVBvc2l0aW9uJiByZW5kZXJUcmVlUG9zaXRpb24p
Cit7CisgICAgQVNTRVJUKHNob3VsZENyZWF0ZVJlbmRlcmVyKHNsb3QsIHJlbmRlclRyZWVQb3Np
dGlvbi5wYXJlbnQoKSkpOworCisgICAgaWYgKGF1dG8qIGFzc2lnbmVkTm9kZXMgPSBzbG90LmFz
c2lnbmVkTm9kZXMoKSkgeworICAgICAgICBwdXNoRW5jbG9zaW5nU2NvcGUoKTsKKyAgICAgICAg
Zm9yIChhdXRvKiBjaGlsZCA6ICphc3NpZ25lZE5vZGVzKSB7CisgICAgICAgICAgICBpZiAoaXM8
VGV4dD4oKmNoaWxkKSkKKyAgICAgICAgICAgICAgICBhdHRhY2hUZXh0UmVuZGVyZXIoZG93bmNh
c3Q8VGV4dD4oKmNoaWxkKSwgcmVuZGVyVHJlZVBvc2l0aW9uKTsKKyAgICAgICAgICAgIGVsc2Ug
aWYgKGlzPEVsZW1lbnQ+KCpjaGlsZCkpCisgICAgICAgICAgICAgICAgY3JlYXRlUmVuZGVyVHJl
ZVJlY3Vyc2l2ZWx5KGRvd25jYXN0PEVsZW1lbnQ+KCpjaGlsZCksIGluaGVyaXRlZFN0eWxlLCBy
ZW5kZXJUcmVlUG9zaXRpb24sIG51bGxwdHIpOworICAgICAgICB9CisgICAgICAgIHBvcFNjb3Bl
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgU2VsZWN0b3JGaWx0ZXJQdXNoZXIgc2VsZWN0b3JG
aWx0ZXJQdXNoZXIoc2NvcGUoKS5zZWxlY3RvckZpbHRlciwgc2xvdCk7CisgICAgICAgIGNyZWF0
ZVJlbmRlclRyZWVGb3JDaGlsZHJlbihzbG90LCBpbmhlcml0ZWRTdHlsZSwgcmVuZGVyVHJlZVBv
c2l0aW9uKTsKKyAgICB9CisKKyAgICBzbG90LmNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOworICAg
IHNsb3QuY2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKK30KKyNlbmRpZgorCit2b2lkIFRy
ZWVSZXNvbHZlcjo6Y3JlYXRlUmVuZGVyVHJlZVJlY3Vyc2l2ZWx5KEVsZW1lbnQmIGN1cnJlbnQs
IFJlbmRlclN0eWxlJiBpbmhlcml0ZWRTdHlsZSwgUmVuZGVyVHJlZVBvc2l0aW9uJiByZW5kZXJU
cmVlUG9zaXRpb24sIFJlZlB0cjxSZW5kZXJTdHlsZT4mJiByZXNvbHZlZFN0eWxlKQoreworICAg
IEFTU0VSVCghY3VycmVudC5yZW5kZXJlcigpKTsKKworICAgIFBvc3RSZXNvbHV0aW9uQ2FsbGJh
Y2tEaXNhYmxlciBjYWxsYmFja0Rpc2FibGVyKG1fZG9jdW1lbnQpOworICAgIFdpZGdldEhpZXJh
cmNoeVVwZGF0ZXNTdXNwZW5zaW9uU2NvcGUgc3VzcGVuZFdpZGdldEhpZXJhcmNoeVVwZGF0ZXM7
CisKKyAgICBib29sIHNob3VsZENhbGxDcmVhdGVSZW5kZXJlciA9IHNob3VsZENyZWF0ZVJlbmRl
cmVyKGN1cnJlbnQsIHJlbmRlclRyZWVQb3NpdGlvbi5wYXJlbnQoKSk7CisKKyAgICBSZWZQdHI8
UmVuZGVyU3R5bGU+IHN0eWxlID0gcmVzb2x2ZWRTdHlsZTsKKyAgICBpZiAoIXN0eWxlKQorICAg
ICAgICBzdHlsZSA9IHN0eWxlRm9yRWxlbWVudChjdXJyZW50LCBpbmhlcml0ZWRTdHlsZSk7CisK
KyNpZiBFTkFCTEUoU0hBRE9XX0RPTSkgfHwgRU5BQkxFKERFVEFJTFNfRUxFTUVOVCkKKyAgICBp
ZiAoaXM8SFRNTFNsb3RFbGVtZW50PihjdXJyZW50KSkgeworICAgICAgICBpZiAoc2hvdWxkQ2Fs
bENyZWF0ZVJlbmRlcmVyICYmIGN1cnJlbnQucmVuZGVyZXJJc05lZWRlZCgqc3R5bGUpKQorICAg
ICAgICAgICAgY3JlYXRlUmVuZGVyVHJlZUZvclNsb3RBc3NpZ25lZXMoZG93bmNhc3Q8SFRNTFNs
b3RFbGVtZW50PihjdXJyZW50KSwgaW5oZXJpdGVkU3R5bGUsIHJlbmRlclRyZWVQb3NpdGlvbik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChjdXJyZW50Lmhhc0N1
c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpKQorICAgICAgICBjdXJyZW50LndpbGxBdHRhY2hS
ZW5kZXJlcnMoKTsKKworICAgIGlmIChzaG91bGRDYWxsQ3JlYXRlUmVuZGVyZXIpCisgICAgICAg
IGNyZWF0ZVJlbmRlcmVyKGN1cnJlbnQsIHJlbmRlclRyZWVQb3NpdGlvbiwgc3R5bGUucmVsZWFz
ZU5vbk51bGwoKSk7CisKKyAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBjdXJyZW50LnJlbmRlcmVy
KCkpIHsKKyAgICAgICAgU2VsZWN0b3JGaWx0ZXJQdXNoZXIgc2VsZWN0b3JGaWx0ZXJQdXNoZXIo
c2NvcGUoKS5zZWxlY3RvckZpbHRlciwgY3VycmVudCwgU2VsZWN0b3JGaWx0ZXJQdXNoZXI6Ok5v
UHVzaCk7CisKKyAgICAgICAgUmVuZGVyVHJlZVBvc2l0aW9uIGNoaWxkUmVuZGVyVHJlZVBvc2l0
aW9uKCpyZW5kZXJlcik7CisgICAgICAgIGNyZWF0ZVJlbmRlclRyZWVGb3JCZWZvcmVPckFmdGVy
UHNldWRvRWxlbWVudChjdXJyZW50LCBCRUZPUkUsIGNoaWxkUmVuZGVyVHJlZVBvc2l0aW9uKTsK
KworICAgICAgICBhdXRvKiBzaGFkb3dSb290ID0gY3VycmVudC5zaGFkb3dSb290KCk7CisgICAg
ICAgIGlmIChzaGFkb3dSb290KSB7CisgICAgICAgICAgICBzZWxlY3RvckZpbHRlclB1c2hlci5w
dXNoKCk7CisgICAgICAgICAgICBjcmVhdGVSZW5kZXJUcmVlRm9yU2hhZG93Um9vdCgqc2hhZG93
Um9vdCk7CisgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudC5maXJzdENoaWxkKCkpCisgICAgICAg
ICAgICBzZWxlY3RvckZpbHRlclB1c2hlci5wdXNoKCk7CisKKyAgICAgICAgYm9vbCBza2lwQ2hp
bGRyZW4gPSBzaGFkb3dSb290OworICAgICAgICBpZiAoIXNraXBDaGlsZHJlbikKKyAgICAgICAg
ICAgIGNyZWF0ZVJlbmRlclRyZWVGb3JDaGlsZHJlbihjdXJyZW50LCByZW5kZXJlci0+c3R5bGUo
KSwgY2hpbGRSZW5kZXJUcmVlUG9zaXRpb24pOworCisgICAgICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IG1fZG9jdW1lbnQuYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUt
PnVwZGF0ZUNhY2hlQWZ0ZXJOb2RlSXNBdHRhY2hlZCgmY3VycmVudCk7CisKKyAgICAgICAgY3Jl
YXRlUmVuZGVyVHJlZUZvckJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50KGN1cnJlbnQsIEFGVEVS
LCBjaGlsZFJlbmRlclRyZWVQb3NpdGlvbik7CisKKyAgICAgICAgY3VycmVudC51cGRhdGVGb2N1
c0FwcGVhcmFuY2VBZnRlckF0dGFjaElmTmVlZGVkKCk7CisgICAgfSBlbHNlCisgICAgICAgIHJl
c2V0U3R5bGVGb3JOb25SZW5kZXJlZERlc2NlbmRhbnRzKGN1cnJlbnQpOworCisgICAgY3VycmVu
dC5jbGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBjdXJyZW50LmNsZWFyQ2hpbGROZWVkc1N0
eWxlUmVjYWxjKCk7CisKKyAgICBpZiAoY3VycmVudC5oYXNDdXN0b21TdHlsZVJlc29sdmVDYWxs
YmFja3MoKSkKKyAgICAgICAgY3VycmVudC5kaWRBdHRhY2hSZW5kZXJlcnMoKTsKK30KKwogc3Rh
dGljIHZvaWQgZGV0YWNoQ2hpbGRyZW4oQ29udGFpbmVyTm9kZSYgY3VycmVudCwgRGV0YWNoVHlw
ZSBkZXRhY2hUeXBlKQogewogICAgIGZvciAoTm9kZSogY2hpbGQgPSBjdXJyZW50LmZpcnN0Q2hp
bGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKQEAgLTM1MCw3ICs2
MDYsNyBAQCBzdGF0aWMgdm9pZCBkZXRhY2hTbG90QXNzaWduZWVzKEhUTUxTbG90RWxlbWVudCYg
c2xvdCwgRGV0YWNoVHlwZSBkZXRhY2hUeXBlKQogfQogI2VuZGlmCiAKLXZvaWQgZGV0YWNoUmVu
ZGVyVHJlZShFbGVtZW50JiBjdXJyZW50LCBEZXRhY2hUeXBlIGRldGFjaFR5cGUpCitzdGF0aWMg
dm9pZCBkZXRhY2hSZW5kZXJUcmVlKEVsZW1lbnQmIGN1cnJlbnQsIERldGFjaFR5cGUgZGV0YWNo
VHlwZSkKIHsKICAgICBXaWRnZXRIaWVyYXJjaHlVcGRhdGVzU3VzcGVuc2lvblNjb3BlIHN1c3Bl
bmRXaWRnZXRIaWVyYXJjaHlVcGRhdGVzOwogCkBAIC0zODEsNDUgKzYzNyw3OSBAQCB2b2lkIGRl
dGFjaFJlbmRlclRyZWUoRWxlbWVudCYgY3VycmVudCwgRGV0YWNoVHlwZSBkZXRhY2hUeXBlKQog
ICAgICAgICBjdXJyZW50LmRpZERldGFjaFJlbmRlcmVycygpOwogfQogCi1FbGVtZW50VXBkYXRl
IFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKK3N0YXRpYyBi
b29sIHBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIFJl
bmRlclN0eWxlKiBuZXdTdHlsZSkKIHsKLSAgICBFbGVtZW50VXBkYXRlIHVwZGF0ZTsKLQotICAg
IGF1dG8gbmV3U3R5bGUgPSBzdHlsZUZvckVsZW1lbnQoZWxlbWVudCwgcGFyZW50KCkuc3R5bGUp
OwotCi0gICAgYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LnJlbmRlcmVyKCk7Ci0gICAgYm9vbCBu
ZWVkc05ld1JlbmRlcmVyID0gIXJlbmRlcmVyIHx8IGVsZW1lbnQuc3R5bGVDaGFuZ2VUeXBlKCkg
PT0gUmVjb25zdHJ1Y3RSZW5kZXJUcmVlIHx8IHBhcmVudCgpLmNoYW5nZSA9PSBEZXRhY2g7Cisg
ICAgY29uc3QgUmVuZGVyU3R5bGUmIGN1cnJlbnRTdHlsZSA9IHJlbmRlcmVyLT5zdHlsZSgpOwog
Ci0gICAgaWYgKCFuZWVkc05ld1JlbmRlcmVyICYmIG1fZG9jdW1lbnQuZnJhbWUoKS0+YW5pbWF0
aW9uKCkudXBkYXRlQW5pbWF0aW9ucygqcmVuZGVyZXIsIG5ld1N0eWxlLCBuZXdTdHlsZSkpCi0g
ICAgICAgIHVwZGF0ZS5pc1N5bnRoZXRpYyA9IHRydWU7Ci0KLSAgICB1cGRhdGUuY2hhbmdlID0g
bmVlZHNOZXdSZW5kZXJlciA/IERldGFjaCA6IGRldGVybWluZUNoYW5nZShyZW5kZXJlci0+c3R5
bGUoKSwgbmV3U3R5bGUpOwotICAgIHVwZGF0ZS5zdHlsZSA9IFdURk1vdmUobmV3U3R5bGUpOwor
ICAgIGNvbnN0IFBzZXVkb1N0eWxlQ2FjaGUqIHBzZXVkb1N0eWxlQ2FjaGUgPSBjdXJyZW50U3R5
bGUuY2FjaGVkUHNldWRvU3R5bGVzKCk7CisgICAgaWYgKCFwc2V1ZG9TdHlsZUNhY2hlKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoZWxlbWVudC5zdHlsZUNoYW5nZVR5cGUoKSA9
PSBTeW50aGV0aWNTdHlsZUNoYW5nZSkKLSAgICAgICAgdXBkYXRlLmlzU3ludGhldGljID0gdHJ1
ZTsKKyAgICBmb3IgKGF1dG8mIGNhY2hlIDogKnBzZXVkb1N0eWxlQ2FjaGUpIHsKKyAgICAgICAg
UmVmUHRyPFJlbmRlclN0eWxlPiBuZXdQc2V1ZG9TdHlsZTsKKyAgICAgICAgUHNldWRvSWQgcHNl
dWRvSWQgPSBjYWNoZS0+c3R5bGVUeXBlKCk7CisgICAgICAgIGlmIChwc2V1ZG9JZCA9PSBGSVJT
VF9MSU5FIHx8IHBzZXVkb0lkID09IEZJUlNUX0xJTkVfSU5IRVJJVEVEKQorICAgICAgICAgICAg
bmV3UHNldWRvU3R5bGUgPSByZW5kZXJlci0+dW5jYWNoZWRGaXJzdExpbmVTdHlsZShuZXdTdHls
ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld1BzZXVkb1N0eWxlID0gcmVuZGVyZXIt
PmdldFVuY2FjaGVkUHNldWRvU3R5bGUoUHNldWRvU3R5bGVSZXF1ZXN0KHBzZXVkb0lkKSwgbmV3
U3R5bGUsIG5ld1N0eWxlKTsKKyAgICAgICAgaWYgKCFuZXdQc2V1ZG9TdHlsZSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoKm5ld1BzZXVkb1N0eWxlICE9ICpjYWNoZSkg
eworICAgICAgICAgICAgaWYgKHBzZXVkb0lkIDwgRklSU1RfSU5URVJOQUxfUFNFVURPSUQpCisg
ICAgICAgICAgICAgICAgbmV3U3R5bGUtPnNldEhhc1BzZXVkb1N0eWxlKHBzZXVkb0lkKTsKKyAg
ICAgICAgICAgIG5ld1N0eWxlLT5hZGRDYWNoZWRQc2V1ZG9TdHlsZShuZXdQc2V1ZG9TdHlsZSk7
CisgICAgICAgICAgICBpZiAocHNldWRvSWQgPT0gRklSU1RfTElORSB8fCBwc2V1ZG9JZCA9PSBG
SVJTVF9MSU5FX0lOSEVSSVRFRCkgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgZG8gYW4gYWN0dWFsIGRpZmYgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSByZXBhaW50IHZzLiBs
YXlvdXQKKyAgICAgICAgICAgICAgICAvLyBpcyBuZWVkZWQsIGJ1dCBmb3Igbm93IGp1c3QgYXNz
dW1lIGEgbGF5b3V0IHdpbGwgYmUgcmVxdWlyZWQuIFRoZSBkaWZmIGNvZGUKKyAgICAgICAgICAg
ICAgICAvLyBpbiBSZW5kZXJPYmplY3Q6OnNldFN0eWxlIHdvdWxkIG5lZWQgdG8gYmUgZmFjdG9y
ZWQgb3V0IHNvIHRoYXQgaXQgY291bGQgYmUgcmV1c2VkLgorICAgICAgICAgICAgICAgIHJlbmRl
cmVyLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBm
YWxzZTsKK30KIAotICAgIGlmICgmZWxlbWVudCA9PSBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVu
dCgpKSB7Ci0gICAgICAgIG1fZG9jdW1lbnRFbGVtZW50U3R5bGUgPSB1cGRhdGUuc3R5bGU7CitD
aGFuZ2UgVHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudChFbGVtZW50JiBjdXJyZW50KQorewor
ICAgIENoYW5nZSBsb2NhbENoYW5nZSA9IERldGFjaDsKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+
IG5ld1N0eWxlOworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gY3VycmVudFN0eWxlID0gY3VycmVu
dC5yZW5kZXJTdHlsZSgpOworCisgICAgaWYgKGN1cnJlbnRTdHlsZSAmJiBjdXJyZW50LnN0eWxl
Q2hhbmdlVHlwZSgpICE9IFJlY29uc3RydWN0UmVuZGVyVHJlZSkgeworICAgICAgICBSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKHN0eWxlRm9yRWxlbWVudChjdXJyZW50LCBwYXJlbnQoKS5zdHlsZSkp
OworICAgICAgICBuZXdTdHlsZSA9IHN0eWxlLnB0cigpOworICAgICAgICBsb2NhbENoYW5nZSA9
IGRldGVybWluZUNoYW5nZSgqY3VycmVudFN0eWxlLCBzdHlsZSk7CisgICAgfQorICAgIGlmIChs
b2NhbENoYW5nZSA9PSBEZXRhY2gpIHsKKyAgICAgICAgaWYgKGN1cnJlbnQucmVuZGVyZXIoKSB8
fCBjdXJyZW50LmlzTmFtZWRGbG93Q29udGVudE5vZGUoKSkKKyAgICAgICAgICAgIGRldGFjaFJl
bmRlclRyZWUoY3VycmVudCwgUmVhdHRhY2hEZXRhY2gpOworI2lmIEVOQUJMRShTSEFET1dfRE9N
KSB8fCBFTkFCTEUoREVUQUlMU19FTEVNRU5UKQorICAgICAgICBlbHNlIGlmIChpczxIVE1MU2xv
dEVsZW1lbnQ+KGN1cnJlbnQpKQorICAgICAgICAgICAgZGV0YWNoUmVuZGVyVHJlZShjdXJyZW50
LCBSZWF0dGFjaERldGFjaCk7CisjZW5kaWYKKyAgICAgICAgY3JlYXRlUmVuZGVyVHJlZVJlY3Vy
c2l2ZWx5KGN1cnJlbnQsIHBhcmVudCgpLnN0eWxlLCBwYXJlbnQoKS5yZW5kZXJUcmVlUG9zaXRp
b24sIG5ld1N0eWxlLnJlbGVhc2UoKSk7CisgICAgICAgIGludmFsaWRhdGVXaGl0ZXNwYWNlT25s
eVRleHRTaWJsaW5nc0FmdGVyQXR0YWNoSWZOZWVkZWQoY3VycmVudCk7CiAKLSAgICAgICAgLy8g
SWYgInJlbSIgdW5pdHMgYXJlIHVzZWQgYW55d2hlcmUgaW4gdGhlIGRvY3VtZW50LCBhbmQgaWYg
dGhlIGRvY3VtZW50IGVsZW1lbnQncyBmb250IHNpemUgY2hhbmdlcywgdGhlbiBmb3JjZSBmb250
IHVwZGF0aW5nCi0gICAgICAgIC8vIGFsbCB0aGUgd2F5IGRvd24gdGhlIHRyZWUuIFRoaXMgaXMg
c2ltcGxlciB0aGFuIGhhdmluZyB0byBtYWludGFpbiBhIGNhY2hlIG9mIG9iamVjdHMgKGFuZCBz
dWNoIGZvbnQgc2l6ZSBjaGFuZ2VzIHNob3VsZCBiZSByYXJlIGFueXdheSkuCi0gICAgICAgIGlm
IChtX2RvY3VtZW50LmF1dGhvclN0eWxlU2hlZXRzKCkudXNlc1JlbVVuaXRzKCkgJiYgdXBkYXRl
LmNoYW5nZSAhPSBOb0NoYW5nZSAmJiByZW5kZXJlciAmJiB1cGRhdGUuc3R5bGUgJiYgcmVuZGVy
ZXItPnN0eWxlKCkuZm9udFNpemUoKSAhPSB1cGRhdGUuc3R5bGUtPmZvbnRTaXplKCkpIHsKLSAg
ICAgICAgICAgIC8vIENhY2hlZCBSZW5kZXJTdHlsZXMgbWF5IGRlcGVuZCBvbiB0aGUgcmVtIHVu
aXRzLgotICAgICAgICAgICAgc2NvcGUoKS5zdHlsZVJlc29sdmVyLmludmFsaWRhdGVNYXRjaGVk
UHJvcGVydGllc0NhY2hlKCk7Ci0gICAgICAgICAgICB1cGRhdGUuY2hhbmdlID0gRm9yY2U7Ci0g
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERldGFjaDsKICAgICB9CiAKLSAgICAvLyBUaGlzIGlz
IG5lZWRlZCBmb3IgcmVzb2x2aW5nIGNvbG9yOi13ZWJraXQtdGV4dCBmb3Igc3Vic2VxdWVudCBl
bGVtZW50cy4KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IG11dGF0ZSBkb2N1bWVudCB3aGVu
IHJlc29sdmluZyBzdHlsZS4KLSAgICBpZiAoJmVsZW1lbnQgPT0gbV9kb2N1bWVudC5ib2R5KCkp
Ci0gICAgICAgIG1fZG9jdW1lbnQuc2V0VGV4dENvbG9yKHVwZGF0ZS5zdHlsZS0+dmlzaXRlZERl
cGVuZGVudENvbG9yKENTU1Byb3BlcnR5Q29sb3IpKTsKKyAgICBpZiAoUmVuZGVyRWxlbWVudCog
cmVuZGVyZXIgPSBjdXJyZW50LnJlbmRlcmVyKCkpIHsKKyAgICAgICAgaWYgKGxvY2FsQ2hhbmdl
ICE9IE5vQ2hhbmdlIHx8IHBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQocmVuZGVyZXIsIG5ld1N0
eWxlLmdldCgpKSB8fCAocGFyZW50KCkuY2hhbmdlID09IEZvcmNlICYmIHJlbmRlcmVyLT5yZXF1
aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSkgfHwgY3VycmVudC5zdHlsZUNoYW5n
ZVR5cGUoKSA9PSBTeW50aGV0aWNTdHlsZUNoYW5nZSkKKyAgICAgICAgICAgIHJlbmRlcmVyLT5z
ZXRBbmltYXRhYmxlU3R5bGUoKm5ld1N0eWxlLCBjdXJyZW50LnN0eWxlQ2hhbmdlVHlwZSgpID09
IFN5bnRoZXRpY1N0eWxlQ2hhbmdlID8gU3R5bGVEaWZmZXJlbmNlUmVjb21wb3NpdGVMYXllciA6
IFN0eWxlRGlmZmVyZW5jZUVxdWFsKTsKKyAgICB9CiAKLSAgICBpZiAodXBkYXRlLmNoYW5nZSAh
PSBEZXRhY2ggJiYgKHBhcmVudCgpLmNoYW5nZSA9PSBGb3JjZSB8fCBlbGVtZW50LnN0eWxlQ2hh
bmdlVHlwZSgpID49IEZ1bGxTdHlsZUNoYW5nZSkpCi0gICAgICAgIHVwZGF0ZS5jaGFuZ2UgPSBG
b3JjZTsKKyAgICAvLyBJZiAicmVtIiB1bml0cyBhcmUgdXNlZCBhbnl3aGVyZSBpbiB0aGUgZG9j
dW1lbnQsIGFuZCBpZiB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGZvbnQgc2l6ZSBjaGFuZ2VzLCB0
aGVuIGZvcmNlIGZvbnQgdXBkYXRpbmcKKyAgICAvLyBhbGwgdGhlIHdheSBkb3duIHRoZSB0cmVl
LiBUaGlzIGlzIHNpbXBsZXIgdGhhbiBoYXZpbmcgdG8gbWFpbnRhaW4gYSBjYWNoZSBvZiBvYmpl
Y3RzIChhbmQgc3VjaCBmb250IHNpemUgY2hhbmdlcyBzaG91bGQgYmUgcmFyZSBhbnl3YXkpLgor
ICAgIGlmIChtX2RvY3VtZW50LmF1dGhvclN0eWxlU2hlZXRzKCkudXNlc1JlbVVuaXRzKCkgJiYg
bV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSA9PSAmY3VycmVudCAmJiBsb2NhbENoYW5nZSAh
PSBOb0NoYW5nZSAmJiBjdXJyZW50U3R5bGUgJiYgbmV3U3R5bGUgJiYgY3VycmVudFN0eWxlLT5m
b250U2l6ZSgpICE9IG5ld1N0eWxlLT5mb250U2l6ZSgpKSB7CisgICAgICAgIC8vIENhY2hlZCBS
ZW5kZXJTdHlsZXMgbWF5IGRlcGVuZCBvbiB0aGUgcmUgdW5pdHMuCisgICAgICAgIHNjb3BlKCku
c3R5bGVSZXNvbHZlci5pbnZhbGlkYXRlTWF0Y2hlZFByb3BlcnRpZXNDYWNoZSgpOworICAgICAg
ICByZXR1cm4gRm9yY2U7CisgICAgfQorICAgIGlmIChwYXJlbnQoKS5jaGFuZ2UgPT0gRm9yY2Ug
fHwgY3VycmVudC5zdHlsZUNoYW5nZVR5cGUoKSA+PSBGdWxsU3R5bGVDaGFuZ2UpCisgICAgICAg
IHJldHVybiBGb3JjZTsKIAotICAgIHJldHVybiB1cGRhdGU7CisgICAgcmV0dXJuIGxvY2FsQ2hh
bmdlOwogfQogCiB2b2lkIHJlc29sdmVUZXh0Tm9kZShUZXh0JiB0ZXh0LCBSZW5kZXJUcmVlUG9z
aXRpb24mIHJlbmRlclRyZWVQb3NpdGlvbikKQEAgLTQ0MSw2ICs3MzEsMzAgQEAgdm9pZCByZXNv
bHZlVGV4dE5vZGUoVGV4dCYgdGV4dCwgUmVuZGVyVHJlZVBvc2l0aW9uJiByZW5kZXJUcmVlUG9z
aXRpb24pCiAgICAgaW52YWxpZGF0ZVdoaXRlc3BhY2VPbmx5VGV4dFNpYmxpbmdzQWZ0ZXJBdHRh
Y2hJZk5lZWRlZCh0ZXh0KTsKIH0KIAordm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVCZWZvcmVP
ckFmdGVyUHNldWRvRWxlbWVudChFbGVtZW50JiBjdXJyZW50LCBDaGFuZ2UgY2hhbmdlLCBQc2V1
ZG9JZCBwc2V1ZG9JZCwgUmVuZGVyVHJlZVBvc2l0aW9uJiByZW5kZXJUcmVlUG9zaXRpb24pCit7
CisgICAgaWYgKCFjdXJyZW50LnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBQc2V1
ZG9FbGVtZW50KiBleGlzdGluZ1BzZXVkb0VsZW1lbnQgPSBiZWZvcmVPckFmdGVyUHNldWRvRWxl
bWVudChjdXJyZW50LCBwc2V1ZG9JZCk7CisgICAgaWYgKCFleGlzdGluZ1BzZXVkb0VsZW1lbnQp
IHsKKyAgICAgICAgY3JlYXRlUmVuZGVyVHJlZUZvckJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50
KGN1cnJlbnQsIHBzZXVkb0lkLCByZW5kZXJUcmVlUG9zaXRpb24pOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKGV4aXN0aW5nUHNldWRvRWxlbWVudC0+cmVuZGVyZXIoKSkKKyAg
ICAgICAgcmVuZGVyVHJlZVBvc2l0aW9uLmludmFsaWRhdGVOZXh0U2libGluZygqZXhpc3RpbmdQ
c2V1ZG9FbGVtZW50LT5yZW5kZXJlcigpKTsKKworICAgIGlmIChjaGFuZ2UgPT0gTm9DaGFuZ2Ug
JiYgIWV4aXN0aW5nUHNldWRvRWxlbWVudC0+bmVlZHNTdHlsZVJlY2FsYygpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAobmVlZHNQc2V1ZG9FbGVtZW50KGN1cnJlbnQsIHBzZXVkb0lkKSkg
eworICAgICAgICBhdXRvIGNoYW5nZSA9IHJlc29sdmVFbGVtZW50KCpleGlzdGluZ1BzZXVkb0Vs
ZW1lbnQpOworICAgICAgICBleGlzdGluZ1BzZXVkb0VsZW1lbnQtPmRpZFJlY2FsY1N0eWxlKGNo
YW5nZSk7CisgICAgICAgIGV4aXN0aW5nUHNldWRvRWxlbWVudC0+Y2xlYXJOZWVkc1N0eWxlUmVj
YWxjKCk7CisgICAgfSBlbHNlCisgICAgICAgIGNsZWFyQmVmb3JlT3JBZnRlclBzZXVkb0VsZW1l
bnQoY3VycmVudCwgcHNldWRvSWQpOworfQorCiAjaWYgUExBVEZPUk0oSU9TKQogc3RhdGljIEVW
aXNpYmlsaXR5IGVsZW1lbnRJbXBsaWNpdFZpc2liaWxpdHkoY29uc3QgRWxlbWVudCogZWxlbWVu
dCkKIHsKQEAgLTQ5NSwxMSArODA5LDExIEBAIHByaXZhdGU6CiB9OwogI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKIAotdm9pZCBUcmVlUmVzb2x2ZXI6OnB1c2hQYXJlbnQoRWxlbWVudCYgZWxlbWVu
dCwgRWxlbWVudFVwZGF0ZSYgdXBkYXRlKQordm9pZCBUcmVlUmVzb2x2ZXI6OnB1c2hQYXJlbnQo
RWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmIHN0eWxlLCBSZW5kZXJUcmVlUG9zaXRpb24g
cmVuZGVyVHJlZVBvc2l0aW9uLCBDaGFuZ2UgY2hhbmdlKQogewogICAgIHNjb3BlKCkuc2VsZWN0
b3JGaWx0ZXIucHVzaFBhcmVudCgmZWxlbWVudCk7CiAKLSAgICBQYXJlbnQgcGFyZW50KGVsZW1l
bnQsIHVwZGF0ZSk7CisgICAgUGFyZW50IHBhcmVudChlbGVtZW50LCBzdHlsZSwgcmVuZGVyVHJl
ZVBvc2l0aW9uLCBjaGFuZ2UpOwogCiAgICAgaWYgKGF1dG8qIHNoYWRvd1Jvb3QgPSBlbGVtZW50
LnNoYWRvd1Jvb3QoKSkgewogICAgICAgICBwdXNoU2NvcGUoKnNoYWRvd1Jvb3QpOwpAQCAtNTEz
LDEyICs4MjcsMTYgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnB1c2hQYXJlbnQoRWxlbWVudCYgZWxl
bWVudCwgRWxlbWVudFVwZGF0ZSYgdXBkYXRlKQogI2VuZGlmCiAKICAgICBtX3BhcmVudFN0YWNr
LmFwcGVuZChXVEZNb3ZlKHBhcmVudCkpOworCisgICAgcmVzb2x2ZUJlZm9yZU9yQWZ0ZXJQc2V1
ZG9FbGVtZW50KGVsZW1lbnQsIGNoYW5nZSwgQkVGT1JFLCByZW5kZXJUcmVlUG9zaXRpb24pOwog
fQogCiB2b2lkIFRyZWVSZXNvbHZlcjo6cG9wUGFyZW50KCkKIHsKICAgICBhdXRvJiBwYXJlbnRF
bGVtZW50ID0gKnBhcmVudCgpLmVsZW1lbnQ7CiAKKyAgICByZXNvbHZlQmVmb3JlT3JBZnRlclBz
ZXVkb0VsZW1lbnQocGFyZW50RWxlbWVudCwgcGFyZW50KCkuY2hhbmdlLCBBRlRFUiwgcGFyZW50
KCkucmVuZGVyVHJlZVBvc2l0aW9uKTsKKwogICAgIHBhcmVudEVsZW1lbnQuY2xlYXJOZWVkc1N0
eWxlUmVjYWxjKCk7CiAgICAgcGFyZW50RWxlbWVudC5jbGVhckNoaWxkTmVlZHNTdHlsZVJlY2Fs
YygpOwogCkBAIC01MzksMTUgKzg1Nyw2IEBAIHZvaWQgVHJlZVJlc29sdmVyOjpwb3BQYXJlbnRz
VG9EZXB0aCh1bnNpZ25lZCBkZXB0aCkKICAgICAgICAgcG9wUGFyZW50KCk7CiB9CiAKLXN0YXRp
YyBib29sIHNob3VsZFJlc29sdmVQc2V1ZG9FbGVtZW50KFBzZXVkb0VsZW1lbnQqIHBzZXVkb0Vs
ZW1lbnQpCi17Ci0gICAgaWYgKCFwc2V1ZG9FbGVtZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgYm9vbCBuZWVkc1N0eWxlUmVjYWxjID0gcHNldWRvRWxlbWVudC0+bmVlZHNTdHlsZVJl
Y2FsYygpOwotICAgIHBzZXVkb0VsZW1lbnQtPmNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOwotICAg
IHJldHVybiBuZWVkc1N0eWxlUmVjYWxjOwotfQotCiB2b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2
ZUNvbXBvc2VkVHJlZSgpCiB7CiAgICAgQVNTRVJUKG1fcGFyZW50U3RhY2suc2l6ZSgpID09IDEp
OwpAQCAtNTY5LDEyICs4NzgsMTIgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3Nl
ZFRyZWUoKQogICAgICAgICBBU1NFUlQobm9kZS5jb250YWluaW5nU2hhZG93Um9vdCgpID09IHNj
b3BlKCkuc2hhZG93Um9vdCk7CiAgICAgICAgIEFTU0VSVChub2RlLnBhcmVudEVsZW1lbnQoKSA9
PSBwYXJlbnQuZWxlbWVudCB8fCBpczxTaGFkb3dSb290Pihub2RlLnBhcmVudE5vZGUoKSkgfHwg
bm9kZS5wYXJlbnRFbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CiAKLSAgICAgICAgaWYgKGlzPFRl
eHQ+KG5vZGUpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0ZXh0ID0gZG93bmNhc3Q8VGV4dD4obm9k
ZSk7Ci0gICAgICAgICAgICBpZiAodGV4dC5zdHlsZUNoYW5nZVR5cGUoKSA9PSBSZWNvbnN0cnVj
dFJlbmRlclRyZWUgJiYgcGFyZW50LmNoYW5nZSAhPSBEZXRhY2gpCi0gICAgICAgICAgICAgICAg
bV91cGRhdGUtPmFkZFRleHQodGV4dCwgcGFyZW50LmVsZW1lbnQpOworICAgICAgICBpZiAoYXV0
byogZXhpc3RpbmdSZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKSkKKyAgICAgICAgICAgIHBhcmVu
dC5yZW5kZXJUcmVlUG9zaXRpb24uaW52YWxpZGF0ZU5leHRTaWJsaW5nKCpleGlzdGluZ1JlbmRl
cmVyKTsKIAotICAgICAgICAgICAgdGV4dC5jbGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICAg
ICAgaWYgKGlzPFRleHQ+KG5vZGUpKSB7CisgICAgICAgICAgICBpZiAobm9kZS5uZWVkc1N0eWxl
UmVjYWxjKCkpCisgICAgICAgICAgICAgICAgcmVzb2x2ZVRleHROb2RlKGRvd25jYXN0PFRleHQ+
KG5vZGUpLCBwYXJlbnQucmVuZGVyVHJlZVBvc2l0aW9uKTsKICAgICAgICAgICAgIGl0LnRyYXZl
cnNlTmV4dFNraXBwaW5nQ2hpbGRyZW4oKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICB9CkBAIC01ODYsMTIgKzg5NSw5IEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9z
ZWRUcmVlKCkKICAgICAgICAgaWYgKGVsZW1lbnQubmVlZHNTdHlsZVJlY2FsYygpIHx8IHBhcmVu
dC5lbGVtZW50TmVlZGluZ1N0eWxlUmVjYWxjQWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0eWxl
KQogICAgICAgICAgICAgcGFyZW50LmVsZW1lbnROZWVkaW5nU3R5bGVSZWNhbGNBZmZlY3RzTmV4
dFNpYmxpbmdFbGVtZW50U3R5bGUgPSBlbGVtZW50LmFmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRT
dHlsZSgpOwogCi0gICAgICAgIGJvb2wgc2hvdWxkUmVzb2x2ZUZvclBzZXVkb0VsZW1lbnQgPSBz
aG91bGRSZXNvbHZlUHNldWRvRWxlbWVudChlbGVtZW50LmJlZm9yZVBzZXVkb0VsZW1lbnQoKSkg
fHwgc2hvdWxkUmVzb2x2ZVBzZXVkb0VsZW1lbnQoZWxlbWVudC5hZnRlclBzZXVkb0VsZW1lbnQo
KSk7Ci0KLSAgICAgICAgRWxlbWVudFVwZGF0ZSB1cGRhdGU7Ci0gICAgICAgIHVwZGF0ZS5zdHls
ZSA9IGVsZW1lbnQucmVuZGVyU3R5bGUoKTsKKyAgICAgICAgQ2hhbmdlIGNoYW5nZSA9IE5vQ2hh
bmdlOwogCi0gICAgICAgIGJvb2wgc2hvdWxkUmVzb2x2ZSA9IHBhcmVudC5jaGFuZ2UgPj0gSW5o
ZXJpdCB8fCBlbGVtZW50Lm5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaG91bGRSZXNvbHZlRm9yUHNl
dWRvRWxlbWVudCB8fCBhZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nOworICAgICAgICBib29sIHNo
b3VsZFJlc29sdmUgPSBwYXJlbnQuY2hhbmdlID49IEluaGVyaXQgfHwgZWxlbWVudC5uZWVkc1N0
eWxlUmVjYWxjKCkgfHwgYWZmZWN0ZWRCeVByZXZpb3VzU2libGluZzsKICAgICAgICAgaWYgKHNo
b3VsZFJlc29sdmUpIHsKICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgICAgICBDaGVja0ZvclZp
c2liaWxpdHlDaGFuZ2VPblJlY2FsY1N0eWxlIGNoZWNrRm9yVmlzaWJpbGl0eUNoYW5nZSgmZWxl
bWVudCwgZWxlbWVudC5yZW5kZXJTdHlsZSgpKTsKQEAgLTYwNCw0NiArOTEwLDQ1IEBAIHZvaWQg
VHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKCkKICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAg
dXBkYXRlID0gcmVzb2x2ZUVsZW1lbnQoZWxlbWVudCk7CisgICAgICAgICAgICBjaGFuZ2UgPSBy
ZXNvbHZlRWxlbWVudChlbGVtZW50KTsKIAotICAgICAgICAgICAgaWYgKGVsZW1lbnQuaGFzQ3Vz
dG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCkpCi0gICAgICAgICAgICAgICAgZWxlbWVudC5kaWRS
ZWNhbGNTdHlsZSh1cGRhdGUuY2hhbmdlKTsKKyAgICAgICAgICAgIGVsZW1lbnQuY2xlYXJOZWVk
c1N0eWxlUmVjYWxjKCk7CiAKLSAgICAgICAgICAgIGlmIChhZmZlY3RlZEJ5UHJldmlvdXNTaWJs
aW5nICYmIHVwZGF0ZS5jaGFuZ2UgIT0gRGV0YWNoKQotICAgICAgICAgICAgICAgIHVwZGF0ZS5j
aGFuZ2UgPSBGb3JjZTsKKyAgICAgICAgICAgIGlmIChlbGVtZW50Lmhhc0N1c3RvbVN0eWxlUmVz
b2x2ZUNhbGxiYWNrcygpKQorICAgICAgICAgICAgICAgIGVsZW1lbnQuZGlkUmVjYWxjU3R5bGUo
Y2hhbmdlKTsKIAotICAgICAgICAgICAgbV91cGRhdGUtPmFkZEVsZW1lbnQoZWxlbWVudCwgcGFy
ZW50LmVsZW1lbnQsIHVwZGF0ZSk7CisgICAgICAgICAgICBpZiAoY2hhbmdlID09IERldGFjaCkg
eworICAgICAgICAgICAgICAgIGl0LnRyYXZlcnNlTmV4dFNraXBwaW5nQ2hpbGRyZW4oKTsKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgZWxl
bWVudC5jbGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICAgICAgICAgIGlmIChhZmZlY3RlZEJ5
UHJldmlvdXNTaWJsaW5nKQorICAgICAgICAgICAgICAgIGNoYW5nZSA9IEZvcmNlOwogICAgICAg
ICB9CiAKLQogI2lmIEVOQUJMRShTSEFET1dfRE9NKSB8fCBFTkFCTEUoREVUQUlMU19FTEVNRU5U
KQogICAgICAgICBpZiAoaXM8SFRNTFNsb3RFbGVtZW50PihlbGVtZW50KSkgewogICAgICAgICAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb21wdXRlIHN0eWxlIGZvciB0aGUgc2xvdCBhbmQgdXNl
IGl0IGFzIHBhcmVudCBzdHlsZS4KLSAgICAgICAgICAgIC8vIER1cGxpY2F0ZSB0aGUgc3R5bGUg
ZnJvbSB0aGUgcGFyZW50IGNvbnRleHQuCi0gICAgICAgICAgICBFbGVtZW50VXBkYXRlIHNsb3RV
cGRhdGU7Ci0gICAgICAgICAgICBzbG90VXBkYXRlLnN0eWxlID0gcGFyZW50LnN0eWxlLnB0cigp
OwotICAgICAgICAgICAgc2xvdFVwZGF0ZS5jaGFuZ2UgPSB1cGRhdGUuY2hhbmdlOwotICAgICAg
ICAgICAgaWYgKCFzaG91bGRSZXNvbHZlKQotICAgICAgICAgICAgICAgIG1fdXBkYXRlLT5hZGRF
bGVtZW50KGVsZW1lbnQsIHBhcmVudC5lbGVtZW50LCB1cGRhdGUpOwotICAgICAgICAgICAgcHVz
aFBhcmVudChlbGVtZW50LCBzbG90VXBkYXRlKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBiZSBkaXNwbGF5OmNvbnRlbnRzIGNoZWNrLgorICAgICAgICAgICAgLy8gRHVwbGlj
YXRlIHRoZSBzdHlsZSBhbmQgcmVuZGVyIHRyZWUgcG9zaXRpb24gZnJvbSB0aGUgY3VycmVudCBj
b250ZXh0LgorICAgICAgICAgICAgcHVzaFBhcmVudChlbGVtZW50LCBwYXJlbnQuc3R5bGUuZ2V0
KCksIHBhcmVudC5yZW5kZXJUcmVlUG9zaXRpb24sIGNoYW5nZSk7CiAgICAgICAgICAgICBpdC50
cmF2ZXJzZU5leHQoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5kaWYK
LSAgICAgICAgaWYgKCF1cGRhdGUuc3R5bGUpIHsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBl
bGVtZW50LnJlbmRlcmVyKCk7CisgICAgICAgIGlmICghcmVuZGVyZXIpIHsKICAgICAgICAgICAg
IHJlc2V0U3R5bGVGb3JOb25SZW5kZXJlZERlc2NlbmRhbnRzKGVsZW1lbnQpOwogICAgICAgICAg
ICAgZWxlbWVudC5jbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogICAgICAgICB9CiAKLSAg
ICAgICAgYm9vbCBzaG91bGRJdGVyYXRlQ2hpbGRyZW4gPSB1cGRhdGUuc3R5bGUgJiYgKGVsZW1l
bnQuY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgfHwgdXBkYXRlLmNoYW5nZSAhPSBOb0NoYW5nZSk7
CisgICAgICAgIGJvb2wgc2hvdWxkSXRlcmF0ZUNoaWxkcmVuID0gcmVuZGVyZXIgJiYgKGVsZW1l
bnQuY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgfHwgY2hhbmdlICE9IE5vQ2hhbmdlKTsKICAgICAg
ICAgaWYgKCFzaG91bGRJdGVyYXRlQ2hpbGRyZW4pIHsKICAgICAgICAgICAgIGl0LnRyYXZlcnNl
TmV4dFNraXBwaW5nQ2hpbGRyZW4oKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKLSAgICAgICAgcHVzaFBhcmVudChlbGVtZW50LCB1cGRhdGUpOworICAgICAgICBwdXNoUGFy
ZW50KGVsZW1lbnQsIHJlbmRlcmVyLT5zdHlsZSgpLCBSZW5kZXJUcmVlUG9zaXRpb24oKnJlbmRl
cmVyKSwgY2hhbmdlKTsKIAogICAgICAgICBpdC50cmF2ZXJzZU5leHQoKTsKICAgICB9CkBAIC02
NTEsMjQgKzk1NiwyNCBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSgp
CiAgICAgcG9wUGFyZW50c1RvRGVwdGgoMSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxjb25zdCBV
cGRhdGU+IFRyZWVSZXNvbHZlcjo6cmVzb2x2ZShDaGFuZ2UgY2hhbmdlKQordm9pZCBUcmVlUmVz
b2x2ZXI6OnJlc29sdmUoQ2hhbmdlIGNoYW5nZSkKIHsKICAgICBhdXRvJiByZW5kZXJWaWV3ID0g
Km1fZG9jdW1lbnQucmVuZGVyVmlldygpOwogCiAgICAgRWxlbWVudCogZG9jdW1lbnRFbGVtZW50
ID0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50RWxlbWVu
dCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybjsKICAgICBpZiAoY2hh
bmdlICE9IEZvcmNlICYmICFkb2N1bWVudEVsZW1lbnQtPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygp
ICYmICFkb2N1bWVudEVsZW1lbnQtPm5lZWRzU3R5bGVSZWNhbGMoKSkKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybjsKIAotICAgIG1fdXBkYXRlID0gc3RkOjptYWtlX3Vu
aXF1ZTxVcGRhdGU+KG1fZG9jdW1lbnQpOwogICAgIG1fc2NvcGVTdGFjay5hcHBlbmQoYWRvcHRS
ZWYoKm5ldyBTY29wZShtX2RvY3VtZW50KSkpOwotICAgIG1fcGFyZW50U3RhY2suYXBwZW5kKFBh
cmVudChtX2RvY3VtZW50LCBjaGFuZ2UpKTsKIAogICAgIC8vIFBzZXVkbyBlbGVtZW50IHJlbW92
YWwgYW5kIHNpbWlsYXIgbWF5IG9ubHkgd29yayB3aXRoIHRoZXNlIGZsYWdzIHN0aWxsIHNldC4g
UmVzZXQgdGhlbSBhZnRlciB0aGUgc3R5bGUgcmVjYWxjLgogICAgIHJlbmRlclZpZXcuc2V0VXNl
c0ZpcnN0TGluZVJ1bGVzKHJlbmRlclZpZXcudXNlc0ZpcnN0TGluZVJ1bGVzKCkgfHwgc2NvcGUo
KS5zdHlsZVJlc29sdmVyLnVzZXNGaXJzdExpbmVSdWxlcygpKTsKICAgICByZW5kZXJWaWV3LnNl
dFVzZXNGaXJzdExldHRlclJ1bGVzKHJlbmRlclZpZXcudXNlc0ZpcnN0TGV0dGVyUnVsZXMoKSB8
fCBzY29wZSgpLnN0eWxlUmVzb2x2ZXIudXNlc0ZpcnN0TGV0dGVyUnVsZXMoKSk7CiAKKyAgICBt
X3BhcmVudFN0YWNrLmFwcGVuZChQYXJlbnQobV9kb2N1bWVudCwgY2hhbmdlKSk7CisKICAgICBy
ZXNvbHZlQ29tcG9zZWRUcmVlKCk7CiAKICAgICByZW5kZXJWaWV3LnNldFVzZXNGaXJzdExpbmVS
dWxlcyhzY29wZSgpLnN0eWxlUmVzb2x2ZXIudXNlc0ZpcnN0TGluZVJ1bGVzKCkpOwpAQCAtNjc2
LDExICs5ODEsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFVwZGF0ZT4gVHJlZVJlc29sdmVy
OjpyZXNvbHZlKENoYW5nZSBjaGFuZ2UpCiAKICAgICBtX3BhcmVudFN0YWNrLmNsZWFyKCk7CiAg
ICAgbV9zY29wZVN0YWNrLmNsZWFyKCk7Cit9CiAKLSAgICBpZiAobV91cGRhdGUtPnJvb3RzKCku
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBXVEZNb3Zl
KG1fdXBkYXRlKTsKK3ZvaWQgZGV0YWNoUmVuZGVyVHJlZShFbGVtZW50JiBlbGVtZW50KQorewor
ICAgIGRldGFjaFJlbmRlclRyZWUoZWxlbWVudCwgTm9ybWFsRGV0YWNoKTsKIH0KIAogc3RhdGlj
IFZlY3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PiYgcG9zdFJlc29sdXRpb25DYWxsYmFja1F1
ZXVlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCmluZGV4IGRlYTg2
NmYwMjA0NTVhY2RhYmYxODI5ZDliZTc3ZmMzZTY4MDVhNDUuLjAxMzJiZjdkZDA4OTY1NmNlODM4
ZWQwYjFkZTEwZjBhNGY5YWFhZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlVHJlZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVz
b2x2ZXIuaApAQCAtMzIsOSArMzIsNyBAQAogI2luY2x1ZGUgIlNlbGVjdG9yRmlsdGVyLmgiCiAj
aW5jbHVkZSAiU3R5bGVDaGFuZ2UuaCIKICNpbmNsdWRlICJTdHlsZVNoYXJpbmdSZXNvbHZlci5o
IgotI2luY2x1ZGUgIlN0eWxlVXBkYXRlLmgiCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KLSNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDksNyArNDcsNiBAQCBjbGFzcyBTZXR0aW5nczsKIGNsYXNzIFNoYWRv
d1Jvb3Q7CiBjbGFzcyBTdHlsZVJlc29sdmVyOwogY2xhc3MgVGV4dDsKLWNsYXNzIFRyZWVDaGFu
Z2U7CiAKIG5hbWVzcGFjZSBTdHlsZSB7CiAKQEAgLTU3LDEzICs1NCwyNSBAQCBjbGFzcyBUcmVl
UmVzb2x2ZXIgewogcHVibGljOgogICAgIFRyZWVSZXNvbHZlcihEb2N1bWVudCYpOwogCi0gICAg
c3RkOjp1bmlxdWVfcHRyPGNvbnN0IFVwZGF0ZT4gcmVzb2x2ZShDaGFuZ2UpOworICAgIHZvaWQg
cmVzb2x2ZShDaGFuZ2UpOwogCiBwcml2YXRlOgogICAgIFJlZjxSZW5kZXJTdHlsZT4gc3R5bGVG
b3JFbGVtZW50KEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYgaW5oZXJpdGVkU3R5bGUpOwogCiAgICAg
dm9pZCByZXNvbHZlQ29tcG9zZWRUcmVlKCk7Ci0gICAgRWxlbWVudFVwZGF0ZSByZXNvbHZlRWxl
bWVudChFbGVtZW50Jik7CisgICAgQ2hhbmdlIHJlc29sdmVFbGVtZW50KEVsZW1lbnQmKTsKKyAg
ICB2b2lkIHJlc29sdmVCZWZvcmVPckFmdGVyUHNldWRvRWxlbWVudChFbGVtZW50JiwgQ2hhbmdl
LCBQc2V1ZG9JZCwgUmVuZGVyVHJlZVBvc2l0aW9uJik7CisKKworICAgIHZvaWQgY3JlYXRlUmVu
ZGVyVHJlZVJlY3Vyc2l2ZWx5KEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYsIFJlbmRlclRyZWVQb3Np
dGlvbiYsIFJlZlB0cjxSZW5kZXJTdHlsZT4mJiByZXNvbHZlZFN0eWxlKTsKKyAgICB2b2lkIGNy
ZWF0ZVJlbmRlcmVyKEVsZW1lbnQmLCBSZW5kZXJUcmVlUG9zaXRpb24mLCBSZWZQdHI8UmVuZGVy
U3R5bGU+JiYgcmVzb2x2ZWRTdHlsZSk7CisgICAgdm9pZCBjcmVhdGVSZW5kZXJUcmVlRm9yQmVm
b3JlT3JBZnRlclBzZXVkb0VsZW1lbnQoRWxlbWVudCYsIFBzZXVkb0lkLCBSZW5kZXJUcmVlUG9z
aXRpb24mKTsKKyAgICB2b2lkIGNyZWF0ZVJlbmRlclRyZWVGb3JDaGlsZHJlbihDb250YWluZXJO
b2RlJiwgUmVuZGVyU3R5bGUmLCBSZW5kZXJUcmVlUG9zaXRpb24mKTsKKyAgICB2b2lkIGNyZWF0
ZVJlbmRlclRyZWVGb3JTaGFkb3dSb290KFNoYWRvd1Jvb3QmKTsKKworI2lmIEVOQUJMRShTSEFE
T1dfRE9NKSB8fCBFTkFCTEUoREVUQUlMU19FTEVNRU5UKQorICAgIHZvaWQgY3JlYXRlUmVuZGVy
VHJlZUZvclNsb3RBc3NpZ25lZXMoSFRNTFNsb3RFbGVtZW50JiwgUmVuZGVyU3R5bGUmIGluaGVy
aXRlZFN0eWxlLCBSZW5kZXJUcmVlUG9zaXRpb24mKTsKKyNlbmRpZgogCiAgICAgc3RydWN0IFNj
b3BlIDogUmVmQ291bnRlZDxTY29wZT4gewogICAgICAgICBTdHlsZVJlc29sdmVyJiBzdHlsZVJl
c29sdmVyOwpAQCAtNzksMTIgKzg4LDEzIEBAIHByaXZhdGU6CiAgICAgc3RydWN0IFBhcmVudCB7
CiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQ7CiAgICAgICAgIFJlZjxSZW5kZXJTdHlsZT4gc3R5
bGU7CisgICAgICAgIFJlbmRlclRyZWVQb3NpdGlvbiByZW5kZXJUcmVlUG9zaXRpb247CiAgICAg
ICAgIENoYW5nZSBjaGFuZ2U7CiAgICAgICAgIGJvb2wgZGlkUHVzaFNjb3BlIHsgZmFsc2UgfTsK
ICAgICAgICAgYm9vbCBlbGVtZW50TmVlZGluZ1N0eWxlUmVjYWxjQWZmZWN0c05leHRTaWJsaW5n
RWxlbWVudFN0eWxlIHsgZmFsc2UgfTsKIAogICAgICAgICBQYXJlbnQoRG9jdW1lbnQmLCBDaGFu
Z2UpOwotICAgICAgICBQYXJlbnQoRWxlbWVudCYsIEVsZW1lbnRVcGRhdGUmKTsKKyAgICAgICAg
UGFyZW50KEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYsIFJlbmRlclRyZWVQb3NpdGlvbiwgQ2hhbmdl
KTsKICAgICB9OwogCiAgICAgU2NvcGUmIHNjb3BlKCkgeyByZXR1cm4gbV9zY29wZVN0YWNrLmxh
c3QoKTsgfQpAQCAtOTQsMjEgKzEwNCwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcHVzaEVuY2xv
c2luZ1Njb3BlKCk7CiAgICAgdm9pZCBwb3BTY29wZSgpOwogCi0gICAgdm9pZCBwdXNoUGFyZW50
KEVsZW1lbnQmLCBFbGVtZW50VXBkYXRlJik7CisgICAgdm9pZCBwdXNoUGFyZW50KEVsZW1lbnQm
LCBSZW5kZXJTdHlsZSYsIFJlbmRlclRyZWVQb3NpdGlvbiwgQ2hhbmdlKTsKICAgICB2b2lkIHBv
cFBhcmVudCgpOwogICAgIHZvaWQgcG9wUGFyZW50c1RvRGVwdGgodW5zaWduZWQgZGVwdGgpOwog
CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7Ci0gICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX2Rv
Y3VtZW50RWxlbWVudFN0eWxlOwotCiAgICAgVmVjdG9yPFJlZjxTY29wZT4sIDQ+IG1fc2NvcGVT
dGFjazsKICAgICBWZWN0b3I8UGFyZW50LCAzMj4gbV9wYXJlbnRTdGFjazsKLQotICAgIHN0ZDo6
dW5pcXVlX3B0cjxVcGRhdGU+IG1fdXBkYXRlOwogfTsKIAotZW51bSBEZXRhY2hUeXBlIHsgTm9y
bWFsRGV0YWNoLCBSZWF0dGFjaERldGFjaCB9Owotdm9pZCBkZXRhY2hSZW5kZXJUcmVlKEVsZW1l
bnQmLCBEZXRhY2hUeXBlID0gTm9ybWFsRGV0YWNoKTsKK3ZvaWQgZGV0YWNoUmVuZGVyVHJlZShF
bGVtZW50Jik7CiB2b2lkIGRldGFjaFRleHRSZW5kZXJlcihUZXh0Jik7CiAKIHZvaWQgdXBkYXRl
VGV4dFJlbmRlcmVyQWZ0ZXJDb250ZW50Q2hhbmdlKFRleHQmLCB1bnNpZ25lZCBvZmZzZXRPZlJl
cGxhY2VkRGF0YSwgdW5zaWduZWQgbGVuZ3RoT2ZSZXBsYWNlZERhdGEpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVVcGRhdGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTgyMWY5
MmI4OWM1MGUyM2JiZWYzNzg3MTFiOWU2NTRiMmM0YTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRl
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU3R5bGVVcGRhdGUuaCIKLQotI2luY2x1ZGUgIkNvbXBv
c2VkVHJlZUFuY2VzdG9ySXRlcmF0b3IuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1
ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJU
ZXh0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBTdHlsZSB7Ci0KLVVwZGF0
ZTo6VXBkYXRlKERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQp
Ci17Ci19Ci0KLWNvbnN0IEVsZW1lbnRVcGRhdGUqIFVwZGF0ZTo6ZWxlbWVudFVwZGF0ZShjb25z
dCBFbGVtZW50JiBlbGVtZW50KSBjb25zdAotewotICAgIGF1dG8gaXQgPSBtX2VsZW1lbnRzLmZp
bmQoJmVsZW1lbnQpOwotICAgIGlmIChpdCA9PSBtX2VsZW1lbnRzLmVuZCgpKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gJml0LT52YWx1ZTsKLX0KLQotYm9vbCBVcGRhdGU6
OnRleHRVcGRhdGUoY29uc3QgVGV4dCYgdGV4dCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90ZXh0
cy5jb250YWlucygmdGV4dCk7Ci19Ci0KLVJlbmRlclN0eWxlKiBVcGRhdGU6OmVsZW1lbnRTdHls
ZShjb25zdCBFbGVtZW50JiBlbGVtZW50KSBjb25zdAotewotICAgIGlmIChhdXRvKiB1cGRhdGUg
PSBlbGVtZW50VXBkYXRlKGVsZW1lbnQpKQotICAgICAgICByZXR1cm4gdXBkYXRlLT5zdHlsZS5n
ZXQoKTsKLSAgICByZXR1cm4gZWxlbWVudC5yZW5kZXJTdHlsZSgpOwotfQotCi12b2lkIFVwZGF0
ZTo6YWRkRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBFbGVtZW50KiBwYXJlbnQsIEVsZW1lbnRV
cGRhdGUmIGNoYW5nZSkKLXsKLSAgICBBU1NFUlQoIW1fZWxlbWVudHMuY29udGFpbnMoJmVsZW1l
bnQpKTsKLSAgICBBU1NFUlQoIXBhcmVudCB8fCBjb21wb3NlZFRyZWVBbmNlc3RvcnMoZWxlbWVu
dCkuZmlyc3QoKSA9PSBwYXJlbnQpOwotCi0gICAgYWRkUG9zc2libGVSb290KHBhcmVudCk7Ci0g
ICAgbV9lbGVtZW50cy5hZGQoJmVsZW1lbnQsIGNoYW5nZSk7Ci19Ci0KLXZvaWQgVXBkYXRlOjph
ZGRUZXh0KFRleHQmIHRleHQsIEVsZW1lbnQqIHBhcmVudCkKLXsKLSAgICBBU1NFUlQoIW1fdGV4
dHMuY29udGFpbnMoJnRleHQpKTsKLSAgICBBU1NFUlQoIXBhcmVudCB8fCBjb21wb3NlZFRyZWVB
bmNlc3RvcnModGV4dCkuZmlyc3QoKSA9PSBwYXJlbnQpOwotCi0gICAgYWRkUG9zc2libGVSb290
KHBhcmVudCk7Ci0gICAgbV90ZXh0cy5hZGQoJnRleHQpOwotfQotCi12b2lkIFVwZGF0ZTo6YWRk
UG9zc2libGVSb290KEVsZW1lbnQqIGVsZW1lbnQpCi17Ci0gICAgaWYgKCFlbGVtZW50KSB7Ci0g
ICAgICAgIG1fcm9vdHMuYWRkKCZtX2RvY3VtZW50KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBpZiAobV9lbGVtZW50cy5jb250YWlucyhlbGVtZW50KSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIG1fcm9vdHMuYWRkKGVsZW1lbnQpOwotfQotCi19Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVV
cGRhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTkzNzdiNjZlZjhhNDYyMmE5
YzI5NzZjZmU0MTQ5ZGU0N2RhODQzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCisrKyAvZGV2
L251bGwKQEAgLTEsODEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU3R5bGVVcGRhdGVf
aAotI2RlZmluZSBTdHlsZVVwZGF0ZV9oCi0KLSNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSAi
U3R5bGVDaGFuZ2UuaCIKLSNpbmNsdWRlICJTdHlsZVJlbGF0aW9ucy5oIgotI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvTGlz
dEhhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgQ29udGFpbmVyTm9kZTsKLWNsYXNzIERvY3VtZW50OwotY2xhc3MgRWxlbWVu
dDsKLWNsYXNzIE5vZGU7Ci1jbGFzcyBSZW5kZXJTdHlsZTsKLWNsYXNzIFRleHQ7Ci0KLW5hbWVz
cGFjZSBTdHlsZSB7Ci0KLXN0cnVjdCBFbGVtZW50VXBkYXRlIHsKLSAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IHN0eWxlOwotICAgIENoYW5nZSBjaGFuZ2UgeyBOb0NoYW5nZSB9OwotICAgIGJvb2wg
aXNTeW50aGV0aWMgeyBmYWxzZSB9OwotfTsKLQotY2xhc3MgVXBkYXRlIHsKLXB1YmxpYzoKLSAg
ICBVcGRhdGUoRG9jdW1lbnQmKTsKLQotICAgIGNvbnN0IExpc3RIYXNoU2V0PENvbnRhaW5lck5v
ZGUqPiYgcm9vdHMoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RzOyB9Ci0KLSAgICBjb25zdCBFbGVt
ZW50VXBkYXRlKiBlbGVtZW50VXBkYXRlKGNvbnN0IEVsZW1lbnQmKSBjb25zdDsKLSAgICBib29s
IHRleHRVcGRhdGUoY29uc3QgVGV4dCYpIGNvbnN0OwotCi0gICAgUmVuZGVyU3R5bGUqIGVsZW1l
bnRTdHlsZShjb25zdCBFbGVtZW50JikgY29uc3Q7Ci0KLSAgICBjb25zdCBEb2N1bWVudCYgZG9j
dW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50OyB9Ci0KLSAgICB2b2lkIGFkZEVsZW1l
bnQoRWxlbWVudCYsIEVsZW1lbnQqIHBhcmVudCwgRWxlbWVudFVwZGF0ZSYpOwotICAgIHZvaWQg
YWRkVGV4dChUZXh0JiwgRWxlbWVudCogcGFyZW50KTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIGFk
ZFBvc3NpYmxlUm9vdChFbGVtZW50Kik7Ci0KLSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKLSAg
ICBMaXN0SGFzaFNldDxDb250YWluZXJOb2RlKj4gbV9yb290czsKLSAgICBIYXNoTWFwPGNvbnN0
IEVsZW1lbnQqLCBFbGVtZW50VXBkYXRlPiBtX2VsZW1lbnRzOwotICAgIEhhc2hTZXQ8Y29uc3Qg
VGV4dCo+IG1fdGV4dHM7Ci19OwotCi19Ci19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5o
CmluZGV4IGNlOGVmNzQxZTMwMmVkOTc1OTg3YWRjZGE2YjFiZGM2MDk2ZWZiNGYuLjA4ZDNhYmZl
MGIwZGVkMjA3ZGVkZjk5MTE5MTYxNDRiM2ViOWM2NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQu
aApAQCAtMTgzLDEyICsxODMsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdXBkYXRlUmVsYXRp
dmVMZW5ndGhzSW5mb3JtYXRpb24oKSB7IHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9u
KHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSwgdGhpcyk7IH0KICAgICB2b2lkIHVwZGF0ZVJlbGF0
aXZlTGVuZ3Roc0luZm9ybWF0aW9uKGJvb2wgaGFzUmVsYXRpdmVMZW5ndGhzLCBTVkdFbGVtZW50
Kik7CiAKLSAgICBib29sIHdpbGxSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlKSBvdmVycmlkZTsK
LQogICAgIGNsYXNzIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQ7CiAKIHByaXZhdGU6CiAgICAg
UmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGUoUHNldWRvSWQgPSBOT1BTRVVETykgZmluYWw7Cisg
ICAgYm9vbCB3aWxsUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSkgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIGJvb2wgaXNTdXBwb3J0ZWQoU3RyaW5nSW1wbCogZmVhdHVyZSwgU3RyaW5nSW1wbCog
dmVyc2lvbikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCAw
NTdlZWFjN2E4ODhiMWE0MDg1OWJmODIxNjM4NGY1ZTRhM2Y1Nzk1Li45OTE0MmY4MjA0YWRkNThj
MmM0ZTFhYWZjMmYzNTgxODUyMGVkZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
Y3BwCkBAIC0xNzgsMTIgKzE3OCwxMSBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgU1ZHR3JhcGhpY3NF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKIH0KIAotYm9vbCBTVkdVc2VF
bGVtZW50Ojp3aWxsUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBjaGFuZ2UpCit2b2lkIFNWR1Vz
ZUVsZW1lbnQ6OndpbGxBdHRhY2hSZW5kZXJlcnMoKQogewotICAgIC8vIEZJWE1FOiBTaGFkb3cg
dHJlZSBzaG91bGQgYmUgdXBkYXRlZCBiZWZvcmUgc3R5bGUgcmVjYWxjLgogICAgIGlmIChtX3No
YWRvd1RyZWVOZWVkc1VwZGF0ZSkKICAgICAgICAgdXBkYXRlU2hhZG93VHJlZSgpOwotICAgIHJl
dHVybiBTVkdHcmFwaGljc0VsZW1lbnQ6OndpbGxSZWNhbGNTdHlsZShjaGFuZ2UpOworICAgIFNW
R0dyYXBoaWNzRWxlbWVudDo6d2lsbEF0dGFjaFJlbmRlcmVycygpOwogfQogCiBzdGF0aWMgSGFz
aFNldDxBdG9taWNTdHJpbmc+IGNyZWF0ZUFsbG93ZWRFbGVtZW50U2V0KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5oCmluZGV4IDQ4M2JmMDYxNWY1NmVhM2M0ZTU2OTlhODc0OTg0MjhjZjUz
MmU1YTQuLmI3Yzg4N2JlZjY3MGM0ODMyNzU3MzExN2YzYzA5MzdmZWM0NGJkNGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgYnVpbGRQZW5kaW5nUmVzb3VyY2UoKSBvdmVycmlkZTsKICAgICB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsK
ICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOwotICAgIGJvb2wgd2lsbFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UpIG92ZXJyaWRlOwor
ICAgIHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwogICAgIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIHRvQ2xpcFBhdGgo
UGF0aCYpIG92ZXJyaWRlOwogICAgIGJvb2wgaGF2ZUxvYWRlZFJlcXVpcmVkUmVzb3VyY2VzKCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNzM0NmQ1ZDFjODRhZTg3YjBiZTc1NDNkZWI3MzcwNDIzYTI4NWJm
ZS4uNGJmNDQ0MTQ3MTYyNTViNDhiZDYxNTFhY2IwOGQ4MjVkYzNjYjdmMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDE2LTAzLTMwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTk4ODI4LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MDMwCisKKyAgICAg
ICAgQ29uZmlybWluZyBQTFQgcmVncmVzc2lvbiAoUmVxdWVzdGVkIGJ5IGFudHRpayBvbiAjd2Vi
a2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlNlcGFyYXRl
IHJlbmRlciB0cmVlIHVwZGF0aW5nIGZyb20gc3R5bGUgcmVzb2x2ZSIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTI5OAorICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xOTg4MjgKKwogMjAxNi0wMy0zMCAgS2VpdGggTWls
bGVyIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxv
dXQgcjE5ODgwOC4gVGhlIHBhdGNoIGNhdXNlcyBjcmFzaGVzIG9uIDMyLWJpdCBhbmQgYXBwZWFy
cyB0byBiZSBhIEpTQmVuY2ggcmVncmVzc2lvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGZmNmNl
NDlhZDE3ZGM3M2IxZDZiNDBlZjgyOThjNzQ4ZGQ4NWFmMDMuLmVjYjM0MTZjMDc2OWQ5NTllZGFk
NDZiYTU4MTQwZWNiZGIwNGJkZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTg4LDkgKzk4OCw2
IEBAIHdlYmtpdC5vcmcvYi8xNTQ2ODYgaW5zcGVjdG9yL2luZGV4ZWRkYi9yZXF1ZXN0RGF0YWJh
c2VOYW1lcy5odG1sIFsgU2tpcCBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZXhjZWVkLW9w
ZW4tZmlsZS1saW1pdC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU1MDI4IHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi8yNTYtb3Blbi1kYXRhYmFzZXMuaHRtbCBbIFNraXAgXQogCi0jIEZp
eGVkIGJ5IHVwY29taW5nIE1hdGhNTCByZWZhY3RvcmluZwotd2Via2l0Lm9yZy9iLzE1NTAxOSBt
YXRobWwvcHJlc2VudGF0aW9uL21lbmNsb3NlLW5vdGF0aW9uLWF0dHJpYnV0ZS1jaGFuZ2UtdmFs
dWUuaHRtbCBbIFNraXAgXQotCiAjIyMgRU5EIE9GIEluZGV4ZWREQiBmYWlsdXJlcwogIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2JsZW5kaW5nL3JlcGFpbnQvYmxlbmQtbW9kZS1pc29sYXRlLXN0YWNraW5nLWNv
bnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9ibGVuZGluZy9yZXBhaW50L2Js
ZW5kLW1vZGUtaXNvbGF0ZS1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCBiNDQz
ZTIyZDgyOTQzZGU5M2UyNzJmNzhlZTRmODg2MjY5ZjI5YTgyLi5jZTAzNTRhNjRiNTBhNmRmOGU4
ZDA0MWRhNGIwZTgyNDg3MzM3ZTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL2JsZW5k
aW5nL3JlcGFpbnQvYmxlbmQtbW9kZS1pc29sYXRlLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2NzczMvYmxlbmRpbmcvcmVwYWludC9ibGVuZC1tb2RlLWlz
b2xhdGUtc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTIxLDEwICsyMSwxMCBAQCBU
ZXN0IGlmIHVuc2V0dGluZyBhIHBhcmVudCdzIHN0YWNraW5nIGNvbnRleHQgY29ycmVjdGx5IHVw
ZGF0ZXMgaXRzIHBhcmVudCBpc29sYQogICAocmVjdCA0OCAyOTAgNjAgNjApCiAgIChyZWN0IDI4
IDI5MCA2MCA2MCkKICAgKHJlY3QgNDggMjkwIDYwIDYwKQotICAocmVjdCAyOCA1MjYgNjAgNjAp
Ci0gIChyZWN0IDQ4IDUyNiA2MCA2MCkKICAgKHJlY3QgNDggNDA4IDYwIDYwKQogICAocmVjdCA0
OCA0MDggNjAgNjApCisgIChyZWN0IDI4IDUyNiA2MCA2MCkKKyAgKHJlY3QgNDggNTI2IDYwIDYw
KQogICAocmVjdCA0OCA2NDQgNjAgNjApCiAgIChyZWN0IDY4IDY0NCA2MCA2MCkKICAgKHJlY3Qg
NDggNjQ0IDYwIDYwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy92aWV3cG9ydC1wZXJj
ZW50YWdlLWxlbmd0aHMvdmlld3BvcnQtcGVyY2VudGFnZS1sZW5ndGhzLXJlc2l6ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXBlcmNlbnRhZ2UtbGVuZ3Rocy92aWV3
cG9ydC1wZXJjZW50YWdlLWxlbmd0aHMtcmVzaXplLWV4cGVjdGVkLnR4dAppbmRleCAyZTk2YTg3
ODQ5NjFmZDEwZDdkZmY4NjY5YTUzMGMwNGRlZjgxYjY1Li4yZjU3M2Y5ODhkNDBjZGVlOGI5Mzk5
YjI4MDE5N2RkMTg0NTg2ZmY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0
LXBlcmNlbnRhZ2UtbGVuZ3Rocy92aWV3cG9ydC1wZXJjZW50YWdlLWxlbmd0aHMtcmVzaXplLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXBlcmNlbnRhZ2UtbGVu
Z3Rocy92aWV3cG9ydC1wZXJjZW50YWdlLWxlbmd0aHMtcmVzaXplLWV4cGVjdGVkLnR4dApAQCAt
MTcsMTkgKzE3LDE5IEBAIFBBU1MgaW5uZXJIZWlnaHQgaXMgNjAwCiBQQVNTIGdldENvbXB1dGVk
U3R5bGUodGVzdCkuZm9udFNpemUgaXMgIjMwcHgiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUodGVz
dCkud2lkdGggaXMgIjQ1MHB4IgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKHRlc3Rwc2V1ZG8sICc6
YWZ0ZXInKS5tYXJnaW5MZWZ0IGlzICIxMjBweCIKLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0
cHNldWRvLCAnOmFmdGVyJykucGFkZGluZ1JpZ2h0IGlzICIyMjVweCIKK0ZBSUwgZ2V0Q29tcHV0
ZWRTdHlsZSh0ZXN0cHNldWRvLCAnOmFmdGVyJykucGFkZGluZ1JpZ2h0IHNob3VsZCBiZSAyMjVw
eC4gV2FzIDIwMHB4LgogUEFTUyBpbm5lcldpZHRoIGlzIDkwMAogUEFTUyBpbm5lckhlaWdodCBp
cyA2NDAKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0KS5mb250U2l6ZSBpcyAiMzJweCIKIFBB
U1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0KS53aWR0aCBpcyAiNDUwcHgiCi1QQVNTIGdldENvbXB1
dGVkU3R5bGUodGVzdHBzZXVkbywgJzphZnRlcicpLm1hcmdpbkxlZnQgaXMgIjEyOHB4IgotUEFT
UyBnZXRDb21wdXRlZFN0eWxlKHRlc3Rwc2V1ZG8sICc6YWZ0ZXInKS5wYWRkaW5nUmlnaHQgaXMg
IjIyNXB4IgorRkFJTCBnZXRDb21wdXRlZFN0eWxlKHRlc3Rwc2V1ZG8sICc6YWZ0ZXInKS5tYXJn
aW5MZWZ0IHNob3VsZCBiZSAxMjhweC4gV2FzIDEyMHB4LgorRkFJTCBnZXRDb21wdXRlZFN0eWxl
KHRlc3Rwc2V1ZG8sICc6YWZ0ZXInKS5wYWRkaW5nUmlnaHQgc2hvdWxkIGJlIDIyNXB4LiBXYXMg
MjAwcHguCiBQQVNTIGlubmVyV2lkdGggaXMgNTAwCiBQQVNTIGlubmVySGVpZ2h0IGlzIDY0MAog
UEFTUyBnZXRDb21wdXRlZFN0eWxlKHRlc3QpLmZvbnRTaXplIGlzICIzMnB4IgogUEFTUyBnZXRD
b21wdXRlZFN0eWxlKHRlc3QpLndpZHRoIGlzICIyNTBweCIKLVBBU1MgZ2V0Q29tcHV0ZWRTdHls
ZSh0ZXN0cHNldWRvLCAnOmFmdGVyJykubWFyZ2luTGVmdCBpcyAiMTAwcHgiCi1QQVNTIGdldENv
bXB1dGVkU3R5bGUodGVzdHBzZXVkbywgJzphZnRlcicpLnBhZGRpbmdSaWdodCBpcyAiMTYwcHgi
CitGQUlMIGdldENvbXB1dGVkU3R5bGUodGVzdHBzZXVkbywgJzphZnRlcicpLm1hcmdpbkxlZnQg
c2hvdWxkIGJlIDEwMHB4LiBXYXMgMTIwcHguCitGQUlMIGdldENvbXB1dGVkU3R5bGUodGVzdHBz
ZXVkbywgJzphZnRlcicpLnBhZGRpbmdSaWdodCBzaG91bGQgYmUgMTYwcHguIFdhcyAyMDBweC4K
IFBBU1MgaW5uZXJXaWR0aCBpcyA4MDAKIFBBU1MgaW5uZXJIZWlnaHQgaXMgNjAwCiBQQVNTIGdl
dENvbXB1dGVkU3R5bGUodGVzdCkuZm9udFNpemUgaXMgIjMwcHgiCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL21hYy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1jb250cmFjdGlvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL21hYy9zcGVsbGluZy9hdXRvY29ycmVj
dGlvbi1jb250cmFjdGlvbi1leHBlY3RlZC50eHQKaW5kZXggN2ZkZjYxOWNlMzEzNjNjODFkYjFh
OTg0ZDBlM2E5NzcxMDMzMDcyNC4uNjM4MWUyNjNkYmQ0ZGFjNDBjYWU5MWVjYmUyZjFmZmJjZTlh
MzE5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9tYWMvc3BlbGxpbmcvYXV0b2Nv
cnJlY3Rpb24tY29udHJhY3Rpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvbWFjL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLWNvbnRyYWN0aW9uLWV4cGVjdGVkLnR4dApA
QCAtMjc5LDQgKzI3OSw0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE2MHgyOAogICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMTU0OiAid291bGQnIHdvdWxkbid0IgogICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDE1MywwKSB3aWR0aCA3OiAiICIKLWNhcmV0OiBwb3NpdGlvbiAxNiBvZiBj
aGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgNiB7RElWfSBvZiBjaGlsZCAzIHtESVZ9IG9mIGJvZHkK
K2NhcmV0OiBwb3NpdGlvbiAxNiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgNSB7RElWfSBv
ZiBjaGlsZCAzIHtESVZ9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
bWFjL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS1hZnRlci1wYXN0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL21hYy9zcGVsbGluZy9hdXRvY29y
cmVjdGlvbi1yZW1vdmluZy11bmRlcmxpbmUtYWZ0ZXItcGFzdGUtZXhwZWN0ZWQudHh0CmluZGV4
IGZmZWY2YzQyZGRlZGJiZTY0YzYzNmFiZTM1MDViYTJhY2NmNzc3M2EuLjk0ZTQ4YmQxN2NjYjVm
ZDFkOGJiNWJiMzNlZTE4MGE2YmZiNjYwMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRp
bmcvbWFjL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS1hZnRlci1w
YXN0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9tYWMvc3BlbGxpbmcv
YXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLWFmdGVyLXBhc3RlLWV4cGVjdGVkLnR4
dApAQCAtODIsNCArODIsNCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDI4KSB3aWR0aCAzNDogImJheiIKICAgICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDE0LDcwKSBzaXplIDc1NngyOAogICAgICAgICAgIFJlbmRlckJSIHtCUn0g
YXQgKDAsMCkgc2l6ZSAweDI4Ci1jYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHtCUn0gb2Yg
Y2hpbGQgNSB7RElWfSBvZiBjaGlsZCA1IHtESVZ9IG9mIGJvZHkKK2NhcmV0OiBwb3NpdGlvbiAw
IG9mIGNoaWxkIDAge0JSfSBvZiBjaGlsZCA0IHtESVZ9IG9mIGNoaWxkIDUge0RJVn0gb2YgYm9k
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9tYWMvc3BlbGxpbmcvYXV0b2NvcnJl
Y3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvbWFjL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS1leHBlY3Rl
ZC50eHQKaW5kZXggZmE4NjA0ZjJlMDVmYmYyNWUwNmQ5YzA5ZTUxNjRkZWFkMmU3YWZiZC4uNmQ1
Y2I3ZGY1MDJmYjFiYjkzN2JhZDQ1NDViNDc2YzdkN2QxN2JhZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9tYWMvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJs
aW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL21hYy9zcGVsbGluZy9h
dXRvY29ycmVjdGlvbi1yZW1vdmluZy11bmRlcmxpbmUtZXhwZWN0ZWQudHh0CkBAIC03OCw0ICs3
OCw0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgIFJlbmRlcklubGlu
ZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxeDI4CiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgxNCw0Mikgc2l6ZSA3NTZ4MjgKICAgICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNp
emUgMHgyOAotY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7QlJ9IG9mIGNoaWxkIDMge0RJ
Vn0gb2YgY2hpbGQgNSB7RElWfSBvZiBib2R5CitjYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAw
IHtCUn0gb2YgY2hpbGQgMiB7RElWfSBvZiBjaGlsZCA1IHtESVZ9IG9mIGJvZHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvbWFjL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXNpbXBs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL21hYy9zcGVsbGluZy9hdXRvY29y
cmVjdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CmluZGV4IDAxYzM1YWU1ZmI3ZTA0MDViODYxMzdh
YzhkMzYyMjQ1NjVlODdiYWEuLjM2OTRhZTRlYzNlNDc2OTk0ZGE1ZmI0NmFkYWJjODQ2YmJkOWJl
YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvbWFjL3NwZWxsaW5nL2F1dG9jb3Jy
ZWN0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9tYWMv
c3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMTM3LDQgKzEz
Nyw0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMTQsNDIpIHNpemUgNzU2eDI4CiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMTM4eDI4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCAxMzg6ICJ0aGUgbm90YXRpb25hbCwiCi1jYXJldDogcG9zaXRpb24gMTUgb2YgY2hpbGQgMCB7
I3RleHR9IG9mIGNoaWxkIDMge0RJVn0gb2YgY2hpbGQgNyB7RElWfSBvZiBib2R5CitjYXJldDog
cG9zaXRpb24gMTUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQg
NyB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3Jl
bW92ZS11bmRlcmxpbmUtZnJvbS1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3R5bGUvcmVtb3ZlLXVuZGVybGluZS1mcm9tLXN0eWxlc2hlZXQtZXhwZWN0ZWQu
dHh0CmluZGV4IDQxMDNjOThjNjU2MTEyOWE2YzYxZDc4MzI4ZWUwYTBlMTgzMzc5NTcuLmVkMWFk
ZDc0ZTBmMWQ4MWQ0NTEyZTA0MTMzYWNjMWM3NTAzOTg1NDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc3R5bGUvcmVtb3ZlLXVuZGVybGluZS1mcm9tLXN0eWxlc2hlZXQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvcmVtb3ZlLXVuZGVybGluZS1m
cm9tLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0CkBAIC03Niw3ICs3Niw1IEBAIFRoaXMgdGVzdHMg
cmVtb3ZpbmcgdW5kZXJsaW5lIGZyb20gc3R5bGVzaGVldCAoLmVkaXRpbmcgaGFzIHVuZGVybGlu
ZSkuIEJlY2F1c2UKIHwgInh4eHh4eCAiCiB8ICI8I3NlbGVjdGlvbi1hbmNob3I+eHh4eHh4PCNz
ZWxlY3Rpb24tZm9jdXM+IgogfCAiIHh4eHh4eCIKLXwgIgotIgogfCA8c3Bhbj4KIHwgICBpZD0i
dGVzdCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdHlwaW5nLXN0eWxl
LTAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3R5cGluZy1zdHls
ZS0wMDMtZXhwZWN0ZWQudHh0CmluZGV4IDcyNTY2MDRmYmViYzJjOWEzYTllNjM5ZmE2Y2VjOTFi
NDk2MWZkM2EuLjczY2RjNjYxYTQ3MTVkNjMyZGZiMzhlMmU5MTgwN2E3ZTYwODUxOTUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvdHlwaW5nLXN0eWxlLTAwMy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS90eXBpbmctc3R5bGUtMDAzLWV4
cGVjdGVkLnR4dApAQCAtNTIsMTAgKzUyLDEwIEBAIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvCiBF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmlj
YXRpb24KIHh4eHh4eHh4eHh4eHh4eAogZXhlY1R5cGVDaGFyYWN0ZXJDb21tYW5kOiB4IDxzcGFu
IGlkPSJ0ZXN0Ij48L3NwYW4+Ci1leGVjVHlwZUNoYXJhY3RlckNvbW1hbmQ6IHh4IDxzcGFuIGlk
PSJ0ZXN0Ij48L3NwYW4+Ci1leGVjVHlwZUNoYXJhY3RlckNvbW1hbmQ6IHh4eCA8c3BhbiBpZD0i
dGVzdCI+PC9zcGFuPgotZXhlY0JvbGRDb21tYW5kOiB4eHggPHNwYW4gaWQ9InRlc3QiPjwvc3Bh
bj4KLWV4ZWNUeXBlQ2hhcmFjdGVyQ29tbWFuZDogeHh4PGI+eDwvYj4gPHNwYW4gaWQ9InRlc3Qi
Pjwvc3Bhbj4KK2V4ZWNUeXBlQ2hhcmFjdGVyQ29tbWFuZDogeHg8c3BhbiBpZD0idGVzdCI+PC9z
cGFuPgorZXhlY1R5cGVDaGFyYWN0ZXJDb21tYW5kOiB4eHg8c3BhbiBpZD0idGVzdCI+PC9zcGFu
PgorZXhlY0JvbGRDb21tYW5kOiB4eHg8c3BhbiBpZD0idGVzdCI+PC9zcGFuPgorZXhlY1R5cGVD
aGFyYWN0ZXJDb21tYW5kOiB4eHg8Yj54PC9iPjxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+CiBleGVj
VHlwZUNoYXJhY3RlckNvbW1hbmQ6IHh4eDxiPnh4PC9iPjxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+
CiBleGVjVHlwZUNoYXJhY3RlckNvbW1hbmQ6IHh4eDxiPnh4eDwvYj48c3BhbiBpZD0idGVzdCI+
PC9zcGFuPgogZXhlY0l0YWxpY0NvbW1hbmQ6IHh4eDxiPnh4eDwvYj48c3BhbiBpZD0idGVzdCI+
PC9zcGFuPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDVlMTVkMTJiNDFkMzAwMjE4MmQzMzM3MGIxMWIyNjM4NDc3NDZh
MGYuLjBhMDNjNDkwMDA3NzRmNmRhZGE2NTQ2Nzk0NTU2ZTIxNDMwNjQ0MDQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTIwNDMsNyArMjA0Myw2IEBAIGZhc3QvcmVnaW9ucy9wZXJjZW50YWdlLW1hcmdpbnMtbWl4ZWQt
bHRyLWRvbWluYW50LXJlZ2lvbnMuaHRtbCBbIEltYWdlT25seUZhaWx1CiBmYXN0L3JlZ2lvbnMv
cGVyY2VudGFnZS1tYXJnaW5zLW1peGVkLXJ0bC1kb21pbmFudC1yZWdpb25zLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIGZhc3QvcmVnaW9ucy9wZXJjZW50YWdlLW1hcmdpbnMtcnRsLXZhcmlh
YmxlLXdpZHRoLXJlZ2lvbnMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC9yZWdpb25z
L3BlcmNlbnRhZ2UtbWFyZ2lucy12YXJpYWJsZS13aWR0aC1yZWdpb25zLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLWZhc3QvcmVnaW9ucy9wb3NpdGlvbi13cml0aW5nLW1vZGVzLWluLXZhcmlh
YmxlLXdpZHRoLXJlZ2lvbnMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC9yZWdpb25z
L3Bvc2l0aW9uaW5nL2ZpeGVkLWluLW5hbWVkLWZsb3ctcG9zaXRpb24tY2hhbmdlZC5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L3JlZ2lvbnMvcG9zaXRpb25pbmcvZml4ZWQtaW5zaWRl
LWZpeGVkLWluLW5hbWVkLWZsb3cuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC9yZWdp
b25zL3Bvc2l0aW9uaW5nL2ZpeGVkLWluc2lkZS1uYW1lZC1mbG93LXpJbmRleC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2lt
dWxhdG9yL2VkaXRpbmcvc3R5bGUvdHlwaW5nLXN0eWxlLTAwMy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2VkaXRpbmcvc3R5bGUvdHlwaW5nLXN0eWxl
LTAwMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczY2RjNjYx
YTQ3MTVkNjMyZGZiMzhlMmU5MTgwN2E3ZTYwODUxOTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRv
ci9lZGl0aW5nL3N0eWxlL3R5cGluZy1zdHlsZS0wMDMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNzIgKzAsMCBAQAotRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5n
SW5ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMyBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAotRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5nTm90aWZpY2F0aW9u
Ci1FRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5n
ZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpy
YW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAx
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxl
Y3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKLUVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3
RGlkQ2hhbmdlTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxl
Y3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
b0RPTVJhbmdlOnJhbmdlIGZyb20gMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvIDIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZp
bml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQot
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3Vs
ZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyIG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0
aW5nOkZBTFNFCi1FRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgotRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
Tm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJh
bmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IEIgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byAxIG9mICN0ZXh0ID4gQiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRv
RE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gQiA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDEgb2YgI3RleHQgPiBCID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6
RkFMU0UKLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRF
OiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IEIg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mICN0ZXh0ID4gQiA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyIG9mICN0ZXh0
ID4gQiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDIgb2YgI3RleHQgPiBCID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0
eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKLUVESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlv
bgotRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90
aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdl
OnJhbmdlIGZyb20gMiBvZiAjdGV4dCA+IEIgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byAyIG9mICN0ZXh0ID4gQiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9N
UmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4gQiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvIDMgb2YgI3RleHQgPiBCID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
YWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFM
U0UKLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFu
Z2UgZnJvbSAxIG9mICN0ZXh0ID4gSSA+IEIgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byAxIG9mICN0ZXh0ID4gSSA+IEIgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
b0RPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IEkgPiBCID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gMSBvZiAjdGV4dCA+IEkgPiBCID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxT
ZWxlY3Rpbmc6RkFMU0UKLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCi1FRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAj
dGV4dCA+IEkgPiBCID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMSBvZiAjdGV4
dCA+IEkgPiBCID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5n
ZSBmcm9tIDIgb2YgI3RleHQgPiBJID4gQiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvIDIgb2YgI3RleHQgPiBJID4gQiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFm
ZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNF
Ci1FRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDIgb2YgI3RleHQgPiBJID4gQiA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDIgb2YgI3RleHQgPiBJID4gQiA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0
ZXh0ID4gSSA+IEIgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAzIG9mICN0ZXh0
ID4gSSA+IEIgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVj
dGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQotRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
Tm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdE
aWRDaGFuZ2VOb3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBE
RUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3Rl
eHQgPiBJID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMSBvZiAjdGV4dCA+IEkg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMSBv
ZiAjdGV4dCA+IEkgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mICN0ZXh0
ID4gSSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9u
QWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCi1FRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENo
YW5nZU5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRE
T01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBJID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG8gMSBvZiAjdGV4dCA+IEkgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMiBvZiAjdGV4dCA+IEkgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byAyIG9mICN0ZXh0ID4gSSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0
aW5nOkZBTFNFCi1FRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgotRURJVElORyBERUxF
R0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDIgb2YgI3RleHQg
PiBJID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMiBvZiAjdGV4dCA+IEkgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMyBvZiAj
dGV4dCA+IEkgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAzIG9mICN0ZXh0ID4g
SSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZm
aW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCi1FRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5n
ZU5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRF
OiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGls
bFNlbGVjdGluZzpGQUxTRQotRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KLUVESVRJ
TkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMSBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyIG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMiBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3du
c3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCi1FRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNh
dGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5n
ZSBmcm9tIDIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAyIG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBm
cm9tIDMgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAzIG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25B
ZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKLUVESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlm
aWNhdGlvbgotRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hh
bmdlTm90aWZpY2F0aW9uCi14eHh4eHh4eHh4eHh4eHgKLWV4ZWNUeXBlQ2hhcmFjdGVyQ29tbWFu
ZDogeCA8c3BhbiBpZD0idGVzdCI+PC9zcGFuPgotZXhlY1R5cGVDaGFyYWN0ZXJDb21tYW5kOiB4
eDxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+Ci1leGVjVHlwZUNoYXJhY3RlckNvbW1hbmQ6IHh4eDxz
cGFuIGlkPSJ0ZXN0Ij48L3NwYW4+Ci1leGVjQm9sZENvbW1hbmQ6IHh4eDxzcGFuIGlkPSJ0ZXN0
Ij48L3NwYW4+Ci1leGVjVHlwZUNoYXJhY3RlckNvbW1hbmQ6IHh4eDxiPng8L2I+PHNwYW4gaWQ9
InRlc3QiPjwvc3Bhbj4KLWV4ZWNUeXBlQ2hhcmFjdGVyQ29tbWFuZDogeHh4PGI+eHg8L2I+PHNw
YW4gaWQ9InRlc3QiPjwvc3Bhbj4KLWV4ZWNUeXBlQ2hhcmFjdGVyQ29tbWFuZDogeHh4PGI+eHh4
PC9iPjxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+Ci1leGVjSXRhbGljQ29tbWFuZDogeHh4PGI+eHh4
PC9iPjxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+Ci1leGVjVHlwZUNoYXJhY3RlckNvbW1hbmQ6IHh4
eDxiPnh4eDxpPng8L2k+PC9iPjxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+Ci1leGVjVHlwZUNoYXJh
Y3RlckNvbW1hbmQ6IHh4eDxiPnh4eDxpPnh4PC9pPjwvYj48c3BhbiBpZD0idGVzdCI+PC9zcGFu
PgotZXhlY1R5cGVDaGFyYWN0ZXJDb21tYW5kOiB4eHg8Yj54eHg8aT54eHg8L2k+PC9iPjxzcGFu
IGlkPSJ0ZXN0Ij48L3NwYW4+Ci1leGVjQm9sZENvbW1hbmQ6IHh4eDxiPnh4eDxpPnh4eDwvaT48
L2I+PHNwYW4gaWQ9InRlc3QiPjwvc3Bhbj4KLWV4ZWNUeXBlQ2hhcmFjdGVyQ29tbWFuZDogeHh4
PGI+eHh4PC9iPjxpPjxiPnh4eDwvYj54PC9pPjxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+Ci1leGVj
VHlwZUNoYXJhY3RlckNvbW1hbmQ6IHh4eDxiPnh4eDwvYj48aT48Yj54eHg8L2I+eHg8L2k+PHNw
YW4gaWQ9InRlc3QiPjwvc3Bhbj4KLWV4ZWNUeXBlQ2hhcmFjdGVyQ29tbWFuZDogeHh4PGI+eHh4
PC9iPjxpPjxiPnh4eDwvYj54eHg8L2k+PHNwYW4gaWQ9InRlc3QiPjwvc3Bhbj4KLWV4ZWNJdGFs
aWNDb21tYW5kOiB4eHg8Yj54eHg8L2I+PGk+PGI+eHh4PC9iPnh4eDwvaT48c3BhbiBpZD0idGVz
dCI+PC9zcGFuPgotZXhlY1R5cGVDaGFyYWN0ZXJDb21tYW5kOiB4eHg8Yj54eHg8L2I+PGk+PGI+
eHh4PC9iPnh4eDwvaT54PHNwYW4gaWQ9InRlc3QiPjwvc3Bhbj4KLWV4ZWNUeXBlQ2hhcmFjdGVy
Q29tbWFuZDogeHh4PGI+eHh4PC9iPjxpPjxiPnh4eDwvYj54eHg8L2k+eHg8c3BhbiBpZD0idGVz
dCI+PC9zcGFuPgotZXhlY1R5cGVDaGFyYWN0ZXJDb21tYW5kOiB4eHg8Yj54eHg8L2I+PGk+PGI+
eHh4PC9iPnh4eDwvaT54eHg8c3BhbiBpZD0idGVzdCI+PC9zcGFuPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9lZGl0aW5nL21hYy9zcGVsbGluZy9hdXRvY29ycmVj
dGlvbi1jb250cmFjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL2VkaXRpbmcvbWFjL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLWNvbnRyYWN0aW9uLWV4cGVj
dGVkLnR4dAppbmRleCBkMDZmYzU5MmU4YzVmMWM2NDM4YTM3MThmMmY1OTg4MTIwYjE4MTExLi4y
OTQ0ZjdmMjE3YjljNzYzMjU5YThjZTUwZDY2NDNmNmQ5OWZiOTlhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2VkaXRpbmcvbWFjL3NwZWxsaW5nL2F1dG9jb3JyZWN0
aW9uLWNvbnRyYWN0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL2VkaXRpbmcvbWFjL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLWNvbnRyYWN0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMjU5LDQgKzI1OSw0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE3MngyOAogICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTY2OiAid291bGRuJyB3b3VsZG4ndCIK
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxNjUsMCkgd2lkdGggNzogIiAiCi1jYXJldDogcG9z
aXRpb24gMTcgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDYge0RJVn0gb2YgY2hpbGQgMyB7
RElWfSBvZiBib2R5CitjYXJldDogcG9zaXRpb24gMTcgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNo
aWxkIDUge0RJVn0gb2YgY2hpbGQgMyB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnNlcnRpbmcvZWRpdGFibGUtaHRtbC1lbGVtZW50
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2luc2VydGlu
Zy9lZGl0YWJsZS1odG1sLWVsZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IDM5NGNhM2ViZjA1YjM4
MzA5NzMxZmM5Yzg3NmE5NjI0NDZmYWM4NTQuLjE5MjM4NDcxNzZkYjdlMmUyODMzZmVlYzVmMGYx
N2U4NDI2YjcyODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5n
L2luc2VydGluZy9lZGl0YWJsZS1odG1sLWVsZW1lbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2luc2VydGluZy9lZGl0YWJsZS1odG1sLWVsZW1l
bnQtZXhwZWN0ZWQudHh0CkBAIC0yMiw2ICsyMiw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCA3Njc6ICJpbnNlcnRpbmcg
YSBwYXJhZ3JhcGggc2VwYXJhdG9yIGRvZXNuJ3Qgc3BsaXQgdGhlIGJvZHkgKGluc2VydGluZyBh
IHBhcmFncmFwaCBzZXBhcmF0b3IgdXN1YWxseSBzcGxpdHMvY2xvbmVzIHRoZSBlbmNsb3Npbmci
CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDc2NiwxOCkgd2lkdGggNTogIiAiCiAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMzYpIHdpZHRoIDEzMjogImJsb2NrIGZsb3cgZWxlbWVudCkuIgorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDU0KSBzaXplIDc4NHgxOAogICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0
ICgwLDApIHNpemUgMHgxOAogY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7QlJ9IG9mIGNo
aWxkIDIge0RJVn0gb2YgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2VkaXRpbmcvaW5zZXJ0aW5nL2VkaXRpbmctZW1wdHktZGl2cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnNlcnRpbmcvZWRpdGluZy1lbXB0eS1kaXZz
LWV4cGVjdGVkLnR4dAppbmRleCBjMDVhMjk1NTJjNzlmYjUzYmJiY2ZkOWUyYjMwZGQ3MWE3NTdi
Y2IxLi5jZDlhN2I1ZTQwZmQwNDk3YjUxNTVjZDM2ZGViNTI4ZWNmOWNkNmJjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnNlcnRpbmcvZWRpdGluZy1lbXB0
eS1kaXZzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9pbnNlcnRpbmcvZWRpdGluZy1lbXB0eS1kaXZzLWV4cGVjdGVkLnR4dApAQCAtNjUsNiArNjUs
NyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDIzMCkgc2l6ZSA3MDh4MjIgW2JvcmRlcjogKDFweCBkb3R0ZWQgIzAwMDBGRildCiAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMSwxKSBzaXplIDh4MTgKICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMSwxKSB3aWR0aCA4OiAiYyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMjY4KSBzaXpl
IDc4NHgxOAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNDB4MTgK
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNDA6ICJUaGlzIGRpdiBjb250YWlu
cyBhIHNlbGYtY2xvc2luZyBwIHRhZy4iCkBAIC04MCw1ICs4MSw2IEBAIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMSwxKSBz
aXplIDcwNngxOAogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDh4
MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDg6ICJjIgorICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICBSZW5kZXJCbG9j
ayB7UH0gYXQgKDEsMzUpIHNpemUgNzA2eDAKIGNhcmV0OiBwb3NpdGlvbiAxIG9mIGNoaWxkIDAg
eyN0ZXh0fSBvZiBjaGlsZCAyMSB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWF0LWVuZC0wMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0
LWF0LWVuZC0wMi1leHBlY3RlZC50eHQKaW5kZXggMDU2OTBmYzczY2ZiYTFkMDcxNjdiMzM1ZTBl
ZTIxZTA5MjYwNzAzNi4uM2Y4ZTI5MmIyODUzODNjZjBhMWNhNjIwYWJiNjlhZmExNTc5YTNkYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5zZXJ0aW5nL2lu
c2VydC1hdC1lbmQtMDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtYXQtZW5kLTAyLWV4cGVjdGVkLnR4dApAQCAtMjks
NCArMjksNSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyQmxv
Y2sgKGFub255bW91cykgYXQgKDIsNDYpIHNpemUgNzgweDE4CiAgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggODogIngiCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMHgwCiBjYXJldDogcG9zaXRpb24gMSBvZiBjaGlsZCA1IHsjdGV4dH0gb2YgY2hpbGQgNSB7
RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9wYXN0ZWJvYXJkLzQ5ODk3NzQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2VkaXRpbmcvcGFzdGVib2FyZC80OTg5Nzc0LWV4cGVjdGVkLnR4dAppbmRleCA5NzQ4OGYz
YjlhZTgwNTg5NzExNThhNjVjZGVjNDI2YWFiMGRkMzI3Li41MGVmMjdkZGNhNDJiYjBiN2FlNWEz
NGFjYWRlZWUwOGU4MTQxYTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZWRpdGluZy9wYXN0ZWJvYXJkLzQ5ODk3NzQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDk4OTc3NC1leHBlY3RlZC50eHQKQEAg
LTEyLDQgKzEyLDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIHRleHQg
cnVuIGF0ICg2MzQsMTAzKSB3aWR0aCAxMDI6ICJZb3Ugc2hvdWxkIHNlZSIKICAgICAgICAgdGV4
dCBydW4gYXQgKDczNSwxMDMpIHdpZHRoIDU6ICIgIgogICAgICAgICB0ZXh0IHJ1biBhdCAoMCwx
MjEpIHdpZHRoIDM2NDogInNldmVyYWwgcGljdHVyZXMgYWJvdmUgYWxsIGluIHRoZSBzYW1lIGxp
bmUvcGFyYWdyYXBoLiIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4
MAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiBjYXJldDogcG9z
aXRpb24gMTY0IG9mIGNoaWxkIDQgeyN0ZXh0fSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vNDk4Mzg1OC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vNDk4Mzg1OC1leHBl
Y3RlZC50eHQKaW5kZXggNTZhMTk1YzNlZmRjOGU0NGYwYWI4N2Q4NGU1OTA3NDYyYjA2ODY0OC4u
MjMwNTRlMTEwNTZlNWYwZWVlMzMwZDIzNDI4ZmUzOGY2YWZhZThhYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uLzQ5ODM4NTgtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi80OTgz
ODU4LWV4cGVjdGVkLnR4dApAQCAtMTAsNiArMTAsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzE2LDApIHdpZHRoIDY1OiAicGFyYWdyYXBo
IgogICAgICAgICAgIHRleHQgcnVuIGF0ICg3ODAsMCkgd2lkdGggNDogIiAiCiAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDE2NTogImJlbG93IHNob3VsZCBiZSBzZWxlY3RlZDoi
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMzYpIHNpemUgNzg0eDE4CiAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIyeDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggMjI6ICJmb28iCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>