<?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>96157</bug_id>
          
          <creation_ts>2012-09-07 16:43:36 -0700</creation_ts>
          <short_desc>[CSS Exclusions] Rename WrapShapeInfo to ExclusionShapeInfo</short_desc>
          <delta_ts>2012-09-26 12:55:22 -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>CSS</component>
          <version>528+ (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>
          <dependson>95625</dependson>
          <blocked>89256</blocked>
    
    <blocked>89707</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Bear Travis">betravis</assigned_to>
          <cc>betravis</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>krit</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>715117</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-09-07 16:43:36 -0700</bug_when>
    <thetext>Per review feedback https://bugs.webkit.org/show_bug.cgi?id=95625#c6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725765</commentid>
    <comment_count>1</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-21 13:39:26 -0700</bug_when>
    <thetext>*** Bug 96160 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725766</commentid>
    <comment_count>2</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-21 13:39:53 -0700</bug_when>
    <thetext>Linking to the top-level bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726009</commentid>
    <comment_count>3</comment_count>
      <attachid>165234</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-21 17:46:45 -0700</bug_when>
    <thetext>Created attachment 165234
Initial patch, renaming to ExclusionShapeInsideInfo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727029</commentid>
    <comment_count>4</comment_count>
      <attachid>165452</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-24 14:53:46 -0700</bug_when>
    <thetext>Created attachment 165452
Updated patch

Merging with master branch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727103</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-09-24 17:11:24 -0700</bug_when>
    <thetext>Sorry for the extra work. Ping me when you think it can be reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728754</commentid>
    <comment_count>6</comment_count>
      <attachid>165834</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-26 11:07:23 -0700</bug_when>
    <thetext>Created attachment 165834
Updated patch

Merging with master branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728889</commentid>
    <comment_count>7</comment_count>
      <attachid>165834</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-26 12:55:18 -0700</bug_when>
    <thetext>Comment on attachment 165834
Updated patch

Clearing flags on attachment: 165834

Committed r129689: &lt;http://trac.webkit.org/changeset/129689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728890</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-26 12:55:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165234</attachid>
            <date>2012-09-21 17:46:45 -0700</date>
            <delta_ts>2012-09-24 14:53:46 -0700</delta_ts>
            <desc>Initial patch, renaming to ExclusionShapeInsideInfo</desc>
            <filename>bug-96157-20120921174609.patch</filename>
            <type>text/plain</type>
            <size>43176</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkwY2ZkYmU3Y2JlYTA0
ODU3MWQ0OTgyNDhmNDczYjFkZWJlZGY1ZS4uODY3ZDE4OGI3NjljYjA3OWY1MjhmZjhhODk1Mjcz
ZmY2NGU1YzRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTA5LTIxICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IFJlbmFtZSBXcmFwU2hhcGVJbmZvIHRvIEV4Y2x1c2lvblNoYXBlSW5mbworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYxNTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgV3JhcFNoYXBlSW5mbyB0
byB0aGUgbW9yZSBzcGVjaWZpYyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8sIHdoaWNoIGlzIHRo
ZSBvbmx5CisgICAgICAgIGluZm9ybWF0aW9uIHRoZSBjbGFzcyBpcyBjdXJyZW50bHkgdHJhY2tp
bmcuIFRoaXMgbWF5IGV2ZW50dWFsbHkgc2hhcmUgYSBwYXJlbnQgY2xhc3MKKyAgICAgICAgd2l0
aCBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwKToKKyAgICAgICAgKFdlYkNv
cmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKToK
KyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6fkV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm86OmVuc3VyZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvRm9yUmVuZGVyQmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvOjppc0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9j
ayk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OnJlbW92ZUV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6
OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aGFzU2VnbWVudHMpOgorICAgICAgICAoV2ViQ29y
ZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlU2hhcGVTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGlu
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uaC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoTGluZVNlZ21lbnQpOgorICAgICAgICAoRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
bzo6c2hhcGVMb2dpY2FsVG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbzo6c2VnbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvOjpkaXJ0eVdyYXBTaGFwZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvOjpsaW5lU3RhdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6d2lsbEJlRGVzdHJveWVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzdHlsZURpZENoYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
QWZ0ZXJTdHlsZUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRl
UmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6Y29tcHV0ZUV4Y2x1c2lvblNoYXBlU2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6ZXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvKToKKyAgICAgICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVX
aWR0aDo6TGluZVdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRl
SW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UpOgorCiAyMDEyLTA5LTIxICBFdmFu
IFdhbGxhY2UgIDxldmFuLmV4ZUBnbWFpbC5jb20+CiAKICAgICAgICAgW1dlYlNvY2tldF0gUmVj
ZWl2aW5nIGEgbGFyZ2UgbWVzc2FnZSBpcyByZWFsbHkgc2xvdwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA0YjAyNTA2MjkxNWFlODBlZTkzMDUzNWNkOWMwM2MyYWRlNjEwMGFhLi5lZDk4MDczMzA0
NjhmNDJiMmE0MGZkNzEyNDI2YzdkZDQ4NDg1Yzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MjAyMyw2ICsyMDIzLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9FeGNs
dXNpb25JbnRlcnZhbC5jcHAKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcAog
ICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAKKyAgICByZW5kZXJpbmcvRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvLmNwcAogICAgIHJlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5j
cHAKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAKICAgICByZW5kZXJpbmcvRmxv
d1RocmVhZENvbnRyb2xsZXIuY3BwCkBAIC0yMTE4LDcgKzIxMTksNiBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgcmVuZGVyaW5nL1JlbmRlcldvcmRCcmVhay5jcHAKICAgICByZW5kZXJpbmcv
Um9vdElubGluZUJveC5jcHAKICAgICByZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwCi0gICAg
cmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwCiAgICAgcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNw
cAogCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDhjYThiMjY4ZTMyNmJiZmY4N2Q3MTQ1NmY3NzQxM2E4
ODY0MDc3MjYuLjcyMWVjOWYwYTExN2U3MjFkMDJmMDU0YThkZjg4ODViNzA4ZTg5NzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDg5MCw2ICs0ODkwLDggQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xl
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwIFwKQEAgLTUwOTMsOCArNTA5NSw2IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9WZXJ0aWNhbFBvc2l0aW9uQ2FjaGUuaCBcCi0JU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvV3JhcFNoYXBlSW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTEJsb2NrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxCbG9jay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTEZlbmNlZC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNzQ2NWQ0NDA1MjZkOGE1
N2ZlNzhiMGJiNzA1OGJkN2MzMTAzMGNkOC4uNTZhY2M2NjcyZjcxZDg0YTA0MGYwZTZkZjk3MWY0
NTUxNWFjOGEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMTAyLDYgKzExMDIsNyBAQCBTT1VSQ0VTICs9
IFwKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uSW50ZXJ2YWwuY3BwIFwKICAgICByZW5kZXJpbmcv
RXhjbHVzaW9uUmVjdGFuZ2xlLmNwcCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNw
cCBcCisgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgXAogICAgIHJl
bmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAgXAogICAgIHJlbmRlcmluZy9GaXhlZFRh
YmxlTGF5b3V0LmNwcCBcCiAgICAgcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcCBc
CkBAIC0xMTkzLDcgKzExOTQsNiBAQCBTT1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVy
V29yZEJyZWFrLmNwcCBcCiAgICAgcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwIFwKICAgICBy
ZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwIFwKLSAgICByZW5kZXJpbmcvV3JhcFNoYXBlSW5m
by5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAgXAogICAgIHJlbmRl
cmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9Db3VudGVy
RGlyZWN0aXZlcy5jcHAgXApAQCAtMjI5MCw2ICsyMjkwLDcgQEAgSEVBREVSUyArPSBcCiAgICAg
cmVuZGVyaW5nL0V4Y2x1c2lvbkludGVydmFsLmggXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25S
ZWN0YW5nbGUuaCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmggXAorICAgIHJlbmRl
cmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBcCiAgICAgcmVuZGVyaW5nL0ZpbHRlckVm
ZmVjdFJlbmRlcmVyLmggXAogICAgIHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmggXAogICAg
IHJlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCBcCkBAIC0yMzg4LDcgKzIzODks
NiBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyV29yZEJyZWFrLmggXAogICAg
IHJlbmRlcmluZy9Sb290SW5saW5lQm94LmggXAogICAgIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlv
ci5oIFwKLSAgICByZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5oIFwKICAgICByZW5kZXJpbmcvc3R5
bGUvQmFzaWNTaGFwZXMuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmggXAog
ICAgIHJlbmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5oIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCA2MzcyN2ZhMGYyYTA5NDA5NTk0YjU5NWM0Y2ZkYWJiZWNhODZlN2EzLi4zZmQ2NDc4YWFh
OGJkMjM1ZDY5NDY3YWE1Mzg4NGY1NWEzNTNiYTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01ODgs
NyArNTg4LDYgQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgnLAogICAgICAgICAgICAgJ3JlbmRl
cmluZy9TY3JvbGxCZWhhdmlvci5oJywKLSAgICAgICAgICAgICdyZW5kZXJpbmcvV3JhcFNoYXBl
SW5mby5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaCcsCiAg
ICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaCcsCiAgICAgICAgICAgICAn
cmVuZGVyaW5nL3N0eWxlL0JvcmRlclZhbHVlLmgnLApAQCAtMzI5NSw2ICszMjk0LDggQEAKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmgnLAogICAgICAgICAgICAg
J3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9F
eGNsdXNpb25TaGFwZS5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mby5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIu
Y3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCcsCiAg
ICAgICAgICAgICAncmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwJywKQEAgLTM0OTAsNyAr
MzQ5MSw2IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL1RhYmxlTGF5b3V0LmgnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9UcmFpbGluZ0Zsb2F0c1Jvb3RJbmxpbmVCb3guaCcsCiAgICAgICAg
ICAgICAncmVuZGVyaW5nL1ZlcnRpY2FsUG9zaXRpb25DYWNoZS5oJywKLSAgICAgICAgICAgICdy
ZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9icmVh
a19saW5lcy5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9icmVha19saW5lcy5oJywKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDc2OGRlMGRj
NDgzMjU3ZDMyYzJhYTI5NTFlMDI2NGUzNjcxNjhhNjAuLmExMmM5YTBlMWFlNjZlNzQ5MzRmYWU1
OTliNDhiYmQwNzVlYTJjMzQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC0zODQ0Nyw2ICszODQ0NywxNCBAQAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+CiAJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
by5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHJlbmRlcmluZ1xFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEZpbHRlckVmZmVjdFJl
bmRlcmVyLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC00MjIxOSwxNCAr
NDIyMjcsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIuLlxyZW5kZXJpbmdcV3JhcFNoYXBlSW5mby5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xXcmFwU2hhcGVJbmZvLmgiCi0J
CQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmlu
Z1xzdmdcUmVuZGVyU1ZHQWxsSW5PbmUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3YTI1
ZWFhODgxNGFkNDg1NzMzMWE2YzUzYTc2NjM2NmNkM2MyMmRjLi44YjkxODRkMmI1MzE1ZjA5MzIz
ZTM1YjcyMjAzZGU4OGY0NTM1MzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NDcxLDggKzY0NzEsOCBAQAogCQlGRDZFRDJD
ODEzNkI4RTY2MDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDZFRDJDNjEzNkI4RTY2MDAzQ0YwNzIg
LyogRHluYW1pY3NDb21wcmVzc29yLmggKi87IH07CiAJCUZENkYyNTJDMTNGNUVGMEUwMDY1MTY1
RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RjI1MjkxM0Y1RUYwRTAwNjUxNjVGIC8qIE1l
ZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgKi87IH07CiAJCUZENkYyNTJEMTNGNUVGMEUw
MDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENkYyNTJBMTNGNUVGMEUwMDY1MTY1RiAv
KiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCAqLzsgfTsKLQkJRkQ3NDhBQkYxNUJGNzRF
RDAwNTlDRjBEIC8qIFdyYXBTaGFwZUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIFdyYXBTaGFw
ZUluZm8uY3BwICovOyB9OwotCQlGRDc0OEFDMDE1QkY3NEVEMDA1OUNGMEQgLyogV3JhcFNoYXBl
SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ3
NDhBQkUxNUJGNzRFRDAwNTlDRjBEIC8qIFdyYXBTaGFwZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRDc0OEFCRjE1QkY3NEVEMDA1OUNG
MEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENzQ4QUJEMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8uY3BwICovOyB9OworCQlGRDc0OEFDMDE1QkY3NEVEMDA1OUNG
MEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDc0OEFCRTE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRkQ3ODY4QjkxMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21w
cmVzc29yTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRDc4NjhCNzEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2Rl
LmNwcCAqLzsgfTsKIAkJRkQ3ODY4QkExMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21w
cmVzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkQ3ODY4QjgxMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5o
ICovOyB9OwogCQlGRDdGMjk5MTEzRDRDMENCMDBBRDk1MzUgLyogV2F2ZVNoYXBlckRTUEtlcm5l
bC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDdG
Mjk4QTEzRDRDMENCMDBBRDk1MzUgLyogV2F2ZVNoYXBlckRTUEtlcm5lbC5jcHAgKi87IH07CkBA
IC0xMzkxNCw4ICsxMzkxNCw4IEBACiAJCUZENkYyNTI5MTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRp
YUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRkQ2RjI1MkExM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1
ZGlvU291cmNlTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVs
ZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ2
RjI1MkIxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8q
IFdyYXBTaGFwZUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V3JhcFNoYXBlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUZENzQ4QUJF
MTVCRjc0RUQwMDU5Q0YwRCAvKiBXcmFwU2hhcGVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdyYXBTaGFwZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRDc0OEFCRTE1QkY3
NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGRDc4NjhCNzEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5hbWlj
c0NvbXByZXNzb3JOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUZENzg2OEI4MTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEeW5hbWljc0NvbXByZXNzb3JO
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZEN0YyOThBMTNENEMwQ0IwMEFE
OTUzNSAvKiBXYXZlU2hhcGVyRFNQS2VybmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdhdmVTaGFwZXJEU1BLZXJuZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjEzNTEsNiArMjEzNTEsOCBAQAogCQkJCTZFODc5OEI3MTVGODFFNEEwMEJG
RTRBQSAvKiBFeGNsdXNpb25SZWN0YW5nbGUuaCAqLywKIAkJCQk2RTg3OThCODE1RjgxRTRBMDBC
RkU0QUEgLyogRXhjbHVzaW9uU2hhcGUuY3BwICovLAogCQkJCTZFODc5OEI5MTVGODFFNEEwMEJG
RTRBQSAvKiBFeGNsdXNpb25TaGFwZS5oICovLAorCQkJCUZENzQ4QUJEMTVCRjc0RUQwMDU5Q0Yw
RCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwICovLAorCQkJCUZENzQ4QUJFMTVCRjc0
RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCAqLywKIAkJCQkzMTMxM0Y2
MzE0NDNCMzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwICovLAogCQkJCTMx
MzEzRjY0MTQ0M0IzNUUwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJlci5oICovLAogCQkJ
CUE4Q0ZGMDQ4MEExNTRGMDkwMDBBNDIzNCAvKiBGaXhlZFRhYmxlTGF5b3V0LmNwcCAqLywKQEAg
LTIxNTYxLDggKzIxNTYzLDYgQEAKIAkJCQlBOENGRjA0QzBBMTU0RjA5MDAwQTQyMzQgLyogVGFi
bGVMYXlvdXQuaCAqLywKIAkJCQkzN0ZDOTZEQTExMDRFRDcxMDAzRTFGQUQgLyogVHJhaWxpbmdG
bG9hdHNSb290SW5saW5lQm94LmggKi8sCiAJCQkJQkNBMjU3MTQxMjkzQzAxMDAwN0EyNjNEIC8q
IFZlcnRpY2FsUG9zaXRpb25DYWNoZS5oICovLAotCQkJCUZENzQ4QUJEMTVCRjc0RUQwMDU5Q0Yw
RCAvKiBXcmFwU2hhcGVJbmZvLmNwcCAqLywKLQkJCQlGRDc0OEFCRTE1QkY3NEVEMDA1OUNGMEQg
LyogV3JhcFNoYXBlSW5mby5oICovLAogCQkJKTsKIAkJCXBhdGggPSByZW5kZXJpbmc7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjMzODUsNiArMjMzODUsNyBAQAogCQkJCTZFODc5
OEJCMTVGODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25JbnRlcnZhbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNkU4Nzk4QkQxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblJlY3RhbmdsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNkU4Nzk4QkYxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblNo
YXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDc0OEFDMDE1QkY3NEVEMDA1OUNGMEQgLyogRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTY3RDJBOTEyODBF
OEJEMDA4NzU4RjcgLyogRXh0ZW5zaW9uczNELmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTY3RDJB
NzEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9uczNET3BlbkdMLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0NERBQjVCMjE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9u
LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NTI1LDcgKzI1NTI2LDYgQEAKIAkJCQkwQjkwNTZGOTBG
MjY4NUYzMDA5NUZGNkEgLyogV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTdBQUJEMkQxNEZBMDlENTAwNzQ1N0FFIC8qIFdvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUyNDA5OUU2NDkyMDA1NkU1ODEg
LyogV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQlG
RDc0OEFDMDE1QkY3NEVEMDA1OUNGMEQgLyogV3JhcFNoYXBlSW5mby5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOUJBRjNCMjQxMkMxQTM5ODAwMDE0QkYxIC8qIFdyaXRpbmdEaXJlY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE0NDc2QUE4MTVEQzRCQjEwMDMwNURCMiAvKiBXcml0aW5nTW9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgyMDIwOUQxNTA4RDAwMEU2MUQ3IC8qIFhMaW5rTmFt
ZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjY2NDAsNiArMjY2NDAsNyBAQAogCQkJCTZFODc5OEJB
MTVGODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25JbnRlcnZhbC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk2RTg3OThCQzE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTZFODc5OEJFMTVGODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25T
aGFwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRDc0OEFCRjE1QkY3NEVEMDA1OUNGMEQgLyog
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNjdEMkE2
MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDREQUI1QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9wZW5HTENvbW1v
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NzI4Njk0RTE0Rjg4ODI1MDBGNDg0REMgLyogRVhU
VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg2MjcsNyAr
Mjg2MjgsNiBAQAogCQkJCTBCOTA1NkY4MEYyNjg1RjMwMDk1RkY2QSAvKiBXb3JrZXJUaHJlYWRh
YmxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3QUFCRDJDMTRGQTA5RDUwMDc0NTdB
RSAvKiBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5MzMwOUUyMzA5OUU2NDkyMDA1NkU1ODEgLyogV3JhcENvbnRlbnRzSW5EdW1teVNwYW5D
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZENzQ4QUJGMTVCRjc0RUQwMDU5Q0YwRCAv
KiBXcmFwU2hhcGVJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MzNDN0NDMEEyQ0YwNzQw
MEQ1NzY2NCAvKiBYTGlua05hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTAwRDA0NjRBMTND
NEQxNDUwMDMyNkZDQyAvKiBYTUxDaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDBCOTMxODcxM0JBOERCMzAwMzVBOTQ4IC8qIFhNTERvY3VtZW50UGFyc2Vy
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTE4OGVlNThjMTAyNjI0
NjQ0ZGQ0OWVhM2NjY2MxYWFkZjU5MzY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAKQEAgLTAsMCArMSwxMzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAg
ICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJ
U+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICog
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
CisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCIKKworI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUmVu
ZGVyQmxvY2suaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0eXBlZGVmIEhhc2hNYXA8Y29uc3QgUmVu
ZGVyQmxvY2sqLCBPd25QdHI8RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvPiA+IEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mb01hcDsKKworc3RhdGljIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCYg
ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCwgc3RhdGljRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvTWFwLCAoKSk7CisgICAgcmV0dXJuIHN0YXRpY0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01h
cDsKK30KKworRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8oUmVuZGVyQmxvY2sqIGJsb2NrKQorICAgIDogbV9ibG9jayhibG9jaykKKyAgICAsIG1fd3Jh
cFNoYXBlU2l6ZURpcnR5KHRydWUpCit7Cit9CisKK0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6
fkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpCit7Cit9CisKK0V4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjplbnN1cmVFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm9Gb3JSZW5kZXJCbG9jayhSZW5kZXJCbG9jayogYmxvY2spCit7CisgICAgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvTWFwKCkuYWRkKGJsb2NrLCBjcmVhdGUoYmxvY2spKTsKKyAgICByZXR1cm4gcmVzdWx0
Lml0ZXJhdG9yLT5zZWNvbmQuZ2V0KCk7Cit9CisKK0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyog
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpleGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5k
ZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayogYmxvY2spCit7CisgICAgQVNTRVJUKGJsb2NrLT5z
dHlsZSgpLT53cmFwU2hhcGVJbnNpZGUoKSk7CisgICAgcmV0dXJuIGV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mb01hcCgpLmdldChibG9jayk7Cit9CisKK2Jvb2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvOjppc0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayhjb25z
dCBSZW5kZXJCbG9jayogYmxvY2spCit7CisgICAgLy8gRklYTUU6IEJ1ZyA4OTcwNTogRW5hYmxl
IHNoYXBlIGluc2lkZSBmb3IgdmVydGljYWwgd3JpdGluZyBtb2RlcworICAgIGlmICghYmxvY2st
PmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IC8vIEZJWE1FOiBCdWcgODk3MDc6IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9yIG5vbi1yZWN0YW5n
dWxhciBzaGFwZXMKKyAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IGJsb2NrLT5zdHlsZSgpLT53cmFw
U2hhcGVJbnNpZGUoKTsKKyAgICByZXR1cm4gKHNoYXBlICYmIHNoYXBlLT50eXBlKCkgPT0gQmFz
aWNTaGFwZTo6QkFTSUNfU0hBUEVfUkVDVEFOR0xFKTsKK30KKwordm9pZCBFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm86OnJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2Nr
KGNvbnN0IFJlbmRlckJsb2NrKiBibG9jaykKK3sKKyAgICBpZiAoIWJsb2NrLT5zdHlsZSgpIHx8
ICFibG9jay0+c3R5bGUoKS0+d3JhcFNoYXBlSW5zaWRlKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBleGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAoKS5yZW1vdmUoYmxvY2spOworfQorCitib29s
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aGFzU2VnbWVudHMoKSBjb25zdAoreworICAgIC8v
IEFsbCBsaW5lIHBvc2l0aW9ucyB3aXRoaW4gYSBzaGFwZSBzaG91bGQgaGF2ZSBhdCBsZWFzdCBv
bmUgc2VnbWVudAorICAgIEFTU0VSVChsaW5lU3RhdGUoKSAhPSBMSU5FX0lOU0lERV9TSEFQRSB8
fCBtX3NlZ21lbnRzLnNpemUoKSk7CisgICAgcmV0dXJuIG1fc2VnbWVudHMuc2l6ZSgpOworfQor
Cit2b2lkIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNoYXBlU2l6ZShMYXlvdXRV
bml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KQoreworICAgIGlmICgh
bV93cmFwU2hhcGVTaXplRGlydHkgJiYgbG9naWNhbFdpZHRoID09IG1fbG9naWNhbFdpZHRoICYm
IGxvZ2ljYWxIZWlnaHQgPT0gbV9sb2dpY2FsSGVpZ2h0KQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3dyYXBTaGFwZVNpemVEaXJ0eSA9IGZhbHNlOworICAgIG1fbG9naWNhbFdpZHRoID0gbG9n
aWNhbFdpZHRoOworICAgIG1fbG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQ7CisKKyAgICAv
LyBGSVhNRTogQnVnIDg5OTkzOiBUaGUgd3JhcCBzaGFwZSBtYXkgY29tZSBmcm9tIHRoZSBwYXJl
bnQgb2JqZWN0CisgICAgQmFzaWNTaGFwZSogc2hhcGUgPSBtX2Jsb2NrLT5zdHlsZSgpLT53cmFw
U2hhcGVJbnNpZGUoKTsKKyAgICBBU1NFUlQoc2hhcGUpOworCisgICAgbV9zaGFwZSA9IEV4Y2x1
c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShzaGFwZSwgbG9naWNhbFdpZHRoLCBsb2dp
Y2FsSGVpZ2h0KTsKKyAgICBBU1NFUlQobV9zaGFwZSk7Cit9CisKK2Jvb2wgRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvOjpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCkK
K3sKKyAgICBtX2xpbmVUb3AgPSBsaW5lVG9wOworICAgIG1fc2VnbWVudHMuY2xlYXIoKTsKKwor
ICAgIGlmIChsaW5lU3RhdGUoKSA9PSBMSU5FX0lOU0lERV9TSEFQRSkgeworICAgICAgICBBU1NF
UlQobV9zaGFwZSk7CisKKyAgICAgICAgVmVjdG9yPEV4Y2x1c2lvbkludGVydmFsPiBpbnRlcnZh
bHM7CisgICAgICAgIG1fc2hhcGUtPmdldEluc2lkZUludGVydmFscyhsaW5lVG9wLCBsaW5lVG9w
LCBpbnRlcnZhbHMpOyAvLyBGSVhNRTogQnVnIDk1NDc5LCB3b3JrYXJvdW5kIGZvciBub3cKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbnRlcnZhbHMuc2l6ZSgpOyBpKyspIHsKKyAg
ICAgICAgICAgIExpbmVTZWdtZW50IHNlZ21lbnQ7CisgICAgICAgICAgICBzZWdtZW50LmxvZ2lj
YWxMZWZ0ID0gaW50ZXJ2YWxzW2ldLngxOworICAgICAgICAgICAgc2VnbWVudC5sb2dpY2FsUmln
aHQgPSBpbnRlcnZhbHNbaV0ueDI7CisgICAgICAgICAgICBtX3NlZ21lbnRzLmFwcGVuZChzZWdt
ZW50KTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbV9zZWdtZW50cy5zaXplKCk7Cit9
CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViNzUwYjAyMTY3YTExZThkNmFhNGIwMDNk
ZGFhNzliNTlkNWU5ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAg
ZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisg
KiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICog
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YK
KyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
X2gKKyNkZWZpbmUgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvX2gKKworI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKKworI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlLmgiCisjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCisjaW5jbHVkZSAiTGF5b3V0VHlwZXNJbmxpbmVNZXRob2RzLmgiCisjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlckJsb2Nr
OworY2xhc3MgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOworCitzdHJ1Y3QgTGluZVNlZ21lbnQg
eworICAgIExheW91dFVuaXQgbG9naWNhbExlZnQ7CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmln
aHQ7Cit9OworCit0eXBlZGVmIFZlY3RvcjxMaW5lU2VnbWVudD4gU2VnbWVudExpc3Q7CisKK2Ns
YXNzIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgZW51bSBMaW5lU3RhdGUgeworICAgICAgICBMSU5FX0JFRk9SRV9T
SEFQRSwKKyAgICAgICAgTElORV9JTlNJREVfU0hBUEUsCisgICAgICAgIExJTkVfQUZURVJfU0hB
UEUKKyAgICB9OworCisgICAgfkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOworCisgICAgc3Rh
dGljIFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvPiBjcmVhdGUoUmVuZGVyQmxv
Y2sqIGJsb2NrKSB7IHJldHVybiBhZG9wdFB0cihuZXcgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
KGJsb2NrKSk7IH0KKyAgICBzdGF0aWMgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNp
b25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayopOworICAg
IHN0YXRpYyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGVuc3VyZUV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mb0ZvclJlbmRlckJsb2NrKFJlbmRlckJsb2NrKik7CisgICAgc3RhdGljIHZvaWQgcmVt
b3ZlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxv
Y2sqKTsKKyAgICBzdGF0aWMgYm9vbCBpc0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0VuYWJsZWRG
b3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayopOworCisgICAgTGF5b3V0VW5pdCBzaGFw
ZUxvZ2ljYWxUb3AoKSBjb25zdCAKKyAgICB7IAorICAgICAgICBBU1NFUlQobV9zaGFwZSk7Cisg
ICAgICAgIHJldHVybiBtX3NoYXBlLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLnkoKTsKKyAg
ICB9CisgICAgYm9vbCBoYXNTZWdtZW50cygpIGNvbnN0OworICAgIGNvbnN0IFNlZ21lbnRMaXN0
JiBzZWdtZW50cygpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaGFzU2VnbWVudHMoKSk7
CisgICAgICAgIHJldHVybiBtX3NlZ21lbnRzOworICAgIH0KKyAgICBib29sIGNvbXB1dGVTZWdt
ZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wKTsKKyAgICBMaW5lU3RhdGUgbGluZVN0YXRl
KCkgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNhbFdp
ZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpOworICAgIHZvaWQgZGlydHlXcmFwU2hhcGVT
aXplKCkgeyBtX3dyYXBTaGFwZVNpemVEaXJ0eSA9IHRydWU7IH0KKworcHJpdmF0ZToKKyAgICBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm8oUmVuZGVyQmxvY2sqKTsKKworICAgIFJlbmRlckJsb2Nr
KiBtX2Jsb2NrOworICAgIE93blB0cjxFeGNsdXNpb25TaGFwZT4gbV9zaGFwZTsKKworICAgIExh
eW91dFVuaXQgbV9saW5lVG9wOworICAgIExheW91dFVuaXQgbV9sb2dpY2FsV2lkdGg7CisgICAg
TGF5b3V0VW5pdCBtX2xvZ2ljYWxIZWlnaHQ7CisKKyAgICBTZWdtZW50TGlzdCBtX3NlZ21lbnRz
OworICAgIGJvb2wgbV93cmFwU2hhcGVTaXplRGlydHk7Cit9OworCitpbmxpbmUgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvOjpMaW5lU3RhdGUgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpsaW5l
U3RhdGUoKSBjb25zdAoreworICAgIEFTU0VSVChtX3NoYXBlKTsKKyAgICBGbG9hdFJlY3Qgc2hh
cGVCb3VuZHMgPSBtX3NoYXBlLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpOworCisgICAgaWYg
KG1fbGluZVRvcCA8IHNoYXBlQm91bmRzLnkoKSkKKyAgICAgICAgcmV0dXJuIExJTkVfQkVGT1JF
X1NIQVBFOworCisgICAgaWYgKG1fbGluZVRvcCA8IHNoYXBlQm91bmRzLm1heFkoKSkKKyAgICAg
ICAgcmV0dXJuIExJTkVfSU5TSURFX1NIQVBFOworCisgICAgcmV0dXJuIExJTkVfQUZURVJfU0hB
UEU7Cit9CisKK30KKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcAppbmRleCBhYmVkNjYyMjA3NWU5ZjJlMGQxZWFhNjFmZDYxYTExOWU3ZjlhODU2
Li4yYTk1OTg0ZjczZmE4MzAxNGJmOTY0YmQyMmQ5ZDE1ODQwMDlmODJjIDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTYyLDcgKzYyLDcgQEAKICNpbmNsdWRl
ICJUcmFuc2Zvcm1TdGF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpZiBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0jaW5jbHVkZSAiV3JhcFNoYXBlSW5mby5oIgorI2luY2x1
ZGUgIkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFj
ZSBzdGQ7CkBAIC0yNzksNyArMjc5LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6d2lsbEJlRGVzdHJv
eWVkKCkKICAgICAgICAgbGluZUdyaWRCb3goKS0+ZGVzdHJveShyZW5kZXJBcmVuYSgpKTsKIAog
I2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICBXcmFwU2hhcGVJbmZvOjpyZW1vdmVXcmFw
U2hhcGVJbmZvRm9yUmVuZGVyQmxvY2sodGhpcyk7CisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvOjpyZW1vdmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsK
ICNlbmRpZgogCiAgICAgaWYgKFVOTElLRUxZKGdEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCAh
PSAwKSkKQEAgLTMyOCw5ICszMjgsOSBAQCB2b2lkIFJlbmRlckJsb2NrOjpzdHlsZURpZENoYW5n
ZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eQogICAgIFJl
bmRlckJveDo6c3R5bGVEaWRDaGFuZ2UoZGlmZiwgb2xkU3R5bGUpOwogCiAjaWYgRU5BQkxFKENT
U19FWENMVVNJT05TKQotICAgIC8vIEZJWE1FOiBCdWcgODk5OTM6IFN0eWxlIGNoYW5nZXMgc2hv
dWxkIGFmZmVjdCB0aGUgV3JhcFNoYXBlSW5mb3MgZm9yIG90aGVyIHJlbmRlciBibG9ja3MgdGhh
dAotICAgIC8vIHNoYXJlIHRoZSBzYW1lIFdyYXBTaGFwZUluZm8KLSAgICB1cGRhdGVXcmFwU2hh
cGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShzdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUoKSwgb2xkU3R5
bGUgPyBvbGRTdHlsZS0+d3JhcFNoYXBlSW5zaWRlKCkgOiAwKTsKKyAgICAvLyBGSVhNRTogQnVn
IDg5OTkzOiBTdHlsZSBjaGFuZ2VzIHNob3VsZCBhZmZlY3QgdGhlIEV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mb3MgZm9yIG90aGVyIHJlbmRlciBibG9ja3MgdGhhdAorICAgIC8vIHNoYXJlIHRoZSBz
YW1lIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbworICAgIHVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2Uoc3R5bGUoKS0+d3JhcFNoYXBlSW5zaWRlKCksIG9sZFN0
eWxlID8gb2xkU3R5bGUtPndyYXBTaGFwZUluc2lkZSgpIDogMCk7CiAjZW5kaWYKIAogICAgIGlm
ICghaXNBbm9ueW1vdXNCbG9jaygpKSB7CkBAIC0xMzgwLDI0ICsxMzgwLDI0IEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OmxheW91dCgpCiB9CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi12b2lk
IFJlbmRlckJsb2NrOjp1cGRhdGVXcmFwU2hhcGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBC
YXNpY1NoYXBlKiB3cmFwU2hhcGUsIGNvbnN0IEJhc2ljU2hhcGUqIG9sZFdyYXBTaGFwZSkKK3Zv
aWQgUmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVD
aGFuZ2UoY29uc3QgQmFzaWNTaGFwZSogd3JhcFNoYXBlLCBjb25zdCBCYXNpY1NoYXBlKiBvbGRX
cmFwU2hhcGUpCiB7CiAgICAgLy8gRklYTUU6IEEgZnV0dXJlIG9wdGltaXphdGlvbiB3b3VsZCBk
byBhIGRlZXAgY29tcGFyaXNvbiBmb3IgZXF1YWxpdHkuCiAgICAgaWYgKHdyYXBTaGFwZSA9PSBv
bGRXcmFwU2hhcGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICh3cmFwU2hhcGUpIHsKLSAg
ICAgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IFdyYXBTaGFwZUluZm86OmVuc3Vy
ZVdyYXBTaGFwZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKLSAgICAgICAgd3JhcFNoYXBlSW5m
by0+ZGlydHlXcmFwU2hhcGVTaXplKCk7CisgICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpl
bnN1cmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKKyAgICAg
ICAgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5kaXJ0eVdyYXBTaGFwZVNpemUoKTsKICAgICB9
IGVsc2UKLSAgICAgICAgV3JhcFNoYXBlSW5mbzo6cmVtb3ZlV3JhcFNoYXBlSW5mb0ZvclJlbmRl
ckJsb2NrKHRoaXMpOworICAgICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OnJlbW92ZUV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKHRoaXMpOwogfQogI2VuZGlmCiAK
IHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zTG9naWNhbFNpemUo
KQogewogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICBpZiAoIWluUmVuZGVyRmxvd1Ro
cmVhZCgpICYmICF3cmFwU2hhcGVJbmZvKCkpCisgICAgaWYgKCFpblJlbmRlckZsb3dUaHJlYWQo
KSAmJiAhZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkpCiAjZWxzZQogICAgIGlmICghaW5SZW5k
ZXJGbG93VGhyZWFkKCkpCiAjZW5kaWYKQEAgLTE0MjYsMTAgKzE0MjYsMTAgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6dXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZSgpCiAjaWYgRU5B
QkxFKENTU19FWENMVVNJT05TKQogdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUV4Y2x1c2lvblNo
YXBlU2l6ZSgpCiB7Ci0gICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IHRoaXMtPndy
YXBTaGFwZUluZm8oKTsKLSAgICBpZiAod3JhcFNoYXBlSW5mbykgeworICAgIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gdGhpcy0+ZXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvKCk7CisgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbykgewog
ICAgICAgICBib29sIHBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0UmVzb2x2YWJsZSA9IHBlcmNlbnRh
Z2VMb2dpY2FsSGVpZ2h0SXNSZXNvbHZhYmxlRnJvbUJsb2NrKHRoaXMsIGZhbHNlKTsKLSAgICAg
ICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNoYXBlU2l6ZShsb2dpY2FsV2lkdGgoKSwgcGVyY2Vu
dGFnZUxvZ2ljYWxIZWlnaHRSZXNvbHZhYmxlID8gbG9naWNhbEhlaWdodCgpIDogWkVST19MQVlP
VVRfVU5JVCk7CisgICAgICAgIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+Y29tcHV0ZVNoYXBl
U2l6ZShsb2dpY2FsV2lkdGgoKSwgcGVyY2VudGFnZUxvZ2ljYWxIZWlnaHRSZXNvbHZhYmxlID8g
bG9naWNhbEhlaWdodCgpIDogWkVST19MQVlPVVRfVU5JVCk7CiAgICAgfQogfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IGUzZWQyMTBkZTg0MzQ1MWM4
ZjYxM2IxZGJhMmZhNTM1NGFjMWNlYTMuLmUxOTVlYzdhMjQ0ZGIyMTE0NDMxOTU2YTc5ZmYwMzRm
OTg2ZTNmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC0zNSw3
ICszNSw3IEBACiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAKICNpZiBFTkFCTEUoQ1NT
X0VYQ0xVU0lPTlMpCi0jaW5jbHVkZSAiV3JhcFNoYXBlSW5mby5oIgorI2luY2x1ZGUgIkV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mby5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQwMiw5ICs0MDIsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVT
SU9OUykKLSAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvKCkgY29uc3QKKyAgICBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpIGNvbnN0CiAg
ICAgewotICAgICAgICByZXR1cm4gc3R5bGUoKS0+d3JhcFNoYXBlSW5zaWRlKCkgJiYgV3JhcFNo
YXBlSW5mbzo6aXNXcmFwU2hhcGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2NrKHRoaXMpID8gV3Jh
cFNoYXBlSW5mbzo6d3JhcFNoYXBlSW5mb0ZvclJlbmRlckJsb2NrKHRoaXMpIDogMDsKKyAgICAg
ICAgcmV0dXJuIHN0eWxlKCktPndyYXBTaGFwZUluc2lkZSgpICYmIEV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbzo6aXNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9FbmFibGVkRm9yUmVuZGVyQmxvY2so
dGhpcykgPyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
b0ZvclJlbmRlckJsb2NrKHRoaXMpIDogMDsKICAgICB9CiAjZW5kaWYKIApAQCAtNDk5LDcgKzQ5
OSw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQog
ICAgIHZvaWQgY29tcHV0ZUV4Y2x1c2lvblNoYXBlU2l6ZSgpOwotICAgIHZvaWQgdXBkYXRlV3Jh
cFNoYXBlSW5mb0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgQmFzaWNTaGFwZSosIGNvbnN0IEJhc2lj
U2hhcGUqIG9sZFdyYXBTaGFwZSk7CisgICAgdm9pZCB1cGRhdGVFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IEJhc2ljU2hhcGUqLCBjb25zdCBCYXNpY1NoYXBl
KiBvbGRXcmFwU2hhcGUpOwogI2VuZGlmCiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3RDaGlsZExp
c3QqIHZpcnR1YWxDaGlsZHJlbigpIHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KICAgICB2aXJ0dWFs
IGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgY29uc3QgeyBy
ZXR1cm4gY2hpbGRyZW4oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCBjYmNjOTg4YWEyYWFkYjI0ZDI5ZmRhM2E4ODE0
OTM1NTAyMDEzMmVkLi45N2JjZmZiMWYxZjYwMjY4YWQ4ZDBmYWZiYTJmOTVjOTU2YWIzYTEwIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcApAQCAtNDYsNyArNDYsNyBAQAogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5h
bWVzLmg+CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0jaW5jbHVkZSAiV3JhcFNoYXBl
SW5mby5oIgorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoU1ZHKQpAQCAtODAsMTIgKzgwLDEyIEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIEFTU0VSVChibG9jayk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICBX
cmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gbV9ibG9jay0+d3JhcFNoYXBlSW5mbygpOwor
ICAgICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byA9IG1fYmxvY2stPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwogICAgICAgICAvLyBGSVhN
RTogQnVnIDkxODc4OiBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc2VnbWVudHMsIGN1cnJlbnRs
eSB3ZSBvbmx5IHN1cHBvcnQgb25lCi0gICAgICAgIGlmICh3cmFwU2hhcGVJbmZvICYmIHdyYXBT
aGFwZUluZm8tPmxpbmVTdGF0ZSgpID09IFdyYXBTaGFwZUluZm86OkxJTkVfSU5TSURFX1NIQVBF
KSB7CisgICAgICAgIGlmIChleGNsdXNpb25TaGFwZUluc2lkZUluZm8gJiYgZXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvLT5saW5lU3RhdGUoKSA9PSBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OkxJ
TkVfSU5TSURFX1NIQVBFKSB7CiAgICAgICAgICAgICAvLyBBbGwgaW50ZXJpb3Igc2hhcGUgcG9z
aXRpb25zIHNob3VsZCBoYXZlIGF0IGxlYXN0IG9uZSBzZWdtZW50Ci0gICAgICAgICAgICBBU1NF
UlQod3JhcFNoYXBlSW5mby0+aGFzU2VnbWVudHMoKSk7Ci0gICAgICAgICAgICBtX3NlZ21lbnQg
PSAmd3JhcFNoYXBlSW5mby0+c2VnbWVudHMoKVswXTsKKyAgICAgICAgICAgIEFTU0VSVChleGNs
dXNpb25TaGFwZUluc2lkZUluZm8tPmhhc1NlZ21lbnRzKCkpOworICAgICAgICAgICAgbV9zZWdt
ZW50ID0gJmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+c2VnbWVudHMoKVswXTsKICAgICAgICAg
fQogI2VuZGlmCiAgICAgICAgIHVwZGF0ZUF2YWlsYWJsZVdpZHRoKCk7CkBAIC04MDQsMTAgKzgw
NCwxMCBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25z
Rm9yTGluZShSb290SW5saW5lQm94KiBsaW5lQm94LAogICAgIGZsb2F0IGxvZ2ljYWxMZWZ0ID0g
cGl4ZWxTbmFwcGVkTG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxIZWlnaHQoKSwgZmly
c3RMaW5lLCBsaW5lTG9naWNhbEhlaWdodCk7CiAgICAgZmxvYXQgbG9naWNhbFJpZ2h0ID0gcGl4
ZWxTbmFwcGVkTG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShsb2dpY2FsSGVpZ2h0KCksIGZpcnN0
TGluZSwgbGluZUxvZ2ljYWxIZWlnaHQpOwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAg
ICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gdGhpcy0+d3JhcFNoYXBlSW5mbygpOwot
ICAgIGlmICh3cmFwU2hhcGVJbmZvICYmIHdyYXBTaGFwZUluZm8tPmxpbmVTdGF0ZSgpID09IFdy
YXBTaGFwZUluZm86OkxJTkVfSU5TSURFX1NIQVBFKSB7Ci0gICAgICAgIGxvZ2ljYWxMZWZ0ID0g
bWF4PGZsb2F0Pihyb3VuZFRvSW50KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9naWNh
bExlZnQpLCBsb2dpY2FsTGVmdCk7Ci0gICAgICAgIGxvZ2ljYWxSaWdodCA9IG1pbjxmbG9hdD4o
Zmxvb3JUb0ludCh3cmFwU2hhcGVJbmZvLT5zZWdtZW50cygpWzBdLmxvZ2ljYWxSaWdodCksIGxv
Z2ljYWxSaWdodCk7CisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFw
ZUluc2lkZUluZm8gPSB0aGlzLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICBpZiAo
ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvICYmIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+bGlu
ZVN0YXRlKCkgPT0gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpMSU5FX0lOU0lERV9TSEFQRSkg
eworICAgICAgICBsb2dpY2FsTGVmdCA9IG1heDxmbG9hdD4ocm91bmRUb0ludChleGNsdXNpb25T
aGFwZUluc2lkZUluZm8tPnNlZ21lbnRzKClbMF0ubG9naWNhbExlZnQpLCBsb2dpY2FsTGVmdCk7
CisgICAgICAgIGxvZ2ljYWxSaWdodCA9IG1pbjxmbG9hdD4oZmxvb3JUb0ludChleGNsdXNpb25T
aGFwZUluc2lkZUluZm8tPnNlZ21lbnRzKClbMF0ubG9naWNhbFJpZ2h0KSwgbG9naWNhbFJpZ2h0
KTsKICAgICB9CiAjZW5kaWYKICAgICBmbG9hdCBhdmFpbGFibGVMb2dpY2FsV2lkdGggPSBsb2dp
Y2FsUmlnaHQgLSBsb2dpY2FsTGVmdDsKQEAgLTEyOTYsMTAgKzEyOTYsMTAgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlv
dXRTdGF0ZSwgSW5saW4KICAgICBMaW5lQnJlYWtlciBsaW5lQnJlYWtlcih0aGlzKTsKIAogI2lm
IEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZv
ID0gdGhpcy0+d3JhcFNoYXBlSW5mbygpOworICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyog
ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gdGhpcy0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
KCk7CiAgICAgLy8gTW92ZSB0byB0aGUgdG9wIG9mIHRoZSBzaGFwZSBpbnNpZGUgdG8gYmVnaW4g
bGF5b3V0Ci0gICAgaWYgKHdyYXBTaGFwZUluZm8gJiYgbG9naWNhbEhlaWdodCgpIDwgd3JhcFNo
YXBlSW5mby0+c2hhcGVMb2dpY2FsVG9wKCkpCi0gICAgICAgIHNldExvZ2ljYWxIZWlnaHQod3Jh
cFNoYXBlSW5mby0+c2hhcGVMb2dpY2FsVG9wKCkpOworICAgIGlmIChleGNsdXNpb25TaGFwZUlu
c2lkZUluZm8gJiYgbG9naWNhbEhlaWdodCgpIDwgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5z
aGFwZUxvZ2ljYWxUb3AoKSkKKyAgICAgICAgc2V0TG9naWNhbEhlaWdodChleGNsdXNpb25TaGFw
ZUluc2lkZUluZm8tPnNoYXBlTG9naWNhbFRvcCgpKTsKICNlbmRpZgogCiAgICAgd2hpbGUgKCFl
bmQuYXRFbmQoKSkgewpAQCAtMTMyMyw4ICsxMzIzLDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5
b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5s
aW4KICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAgIC8vIEZJWE1FOiBCdWcgODk5
OTM6IElmIHRoZSB3cmFwIHNoYXBlIGNvbWVzIGZyb20gYSBwYXJlbnQsIHdlIHdpbGwgbmVlZCB0
byBhZGp1c3QKICAgICAgICAgLy8gdGhlIGhlaWdodCBjb29yZGluYXRlCi0gICAgICAgIGlmICh3
cmFwU2hhcGVJbmZvKQotICAgICAgICAgICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRz
Rm9yTGluZShsb2dpY2FsSGVpZ2h0KCkpOworICAgICAgICBpZiAoZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKQorICAgICAgICAgICAgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5jb21wdXRlU2Vn
bWVudHNGb3JMaW5lKGxvZ2ljYWxIZWlnaHQoKSk7CiAjZW5kaWYKICAgICAgICAgZW5kID0gbGlu
ZUJyZWFrZXIubmV4dExpbmVCcmVhayhyZXNvbHZlciwgbGF5b3V0U3RhdGUubGluZUluZm8oKSwg
cmVuZGVyVGV4dEluZm8sIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGNvbnNlY3V0aXZlSHlw
aGVuYXRlZExpbmVzKTsKICAgICAgICAgaWYgKHJlc29sdmVyLnBvc2l0aW9uKCkuYXRFbmQoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwYTE2Y2M1MWY0OWM3NDMyZTY4ZGM4OTIzNDJiOTFkMTYxODVh
OWRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDEzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5j
b3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscwotICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVIg4oCcQVMgSVPigJ0gQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xE
RVIgQkUKLSAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwKLSAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKLSAq
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRgotICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiV3JhcFNoYXBlSW5mby5oIgotCi0jaWYgRU5BQkxFKENTU19F
WENMVVNJT05TKQotCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJSZW5k
ZXJCbG9jay5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0
ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXR5cGVkZWYgSGFzaE1hcDxjb25zdCBSZW5k
ZXJCbG9jayosIE93blB0cjxXcmFwU2hhcGVJbmZvPiA+IFdyYXBTaGFwZUluZm9NYXA7Ci0KLXN0
YXRpYyBXcmFwU2hhcGVJbmZvTWFwJiB3cmFwU2hhcGVJbmZvTWFwKCkKLXsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFdyYXBTaGFwZUluZm9NYXAsIHN0YXRpY1dyYXBTaGFwZUluZm9NYXAsICgp
KTsKLSAgICByZXR1cm4gc3RhdGljV3JhcFNoYXBlSW5mb01hcDsKLX0KLQotV3JhcFNoYXBlSW5m
bzo6V3JhcFNoYXBlSW5mbyhSZW5kZXJCbG9jayogYmxvY2spCi0gICAgOiBtX2Jsb2NrKGJsb2Nr
KQotICAgICwgbV93cmFwU2hhcGVTaXplRGlydHkodHJ1ZSkKLXsKLX0KLQotV3JhcFNoYXBlSW5m
bzo6fldyYXBTaGFwZUluZm8oKQotewotfQotCi1XcmFwU2hhcGVJbmZvKiBXcmFwU2hhcGVJbmZv
OjplbnN1cmVXcmFwU2hhcGVJbmZvRm9yUmVuZGVyQmxvY2soUmVuZGVyQmxvY2sqIGJsb2NrKQot
ewotICAgIFdyYXBTaGFwZUluZm9NYXA6OkFkZFJlc3VsdCByZXN1bHQgPSB3cmFwU2hhcGVJbmZv
TWFwKCkuYWRkKGJsb2NrLCBjcmVhdGUoYmxvY2spKTsKLSAgICByZXR1cm4gcmVzdWx0Lml0ZXJh
dG9yLT5zZWNvbmQuZ2V0KCk7Ci19Ci0KLVdyYXBTaGFwZUluZm8qIFdyYXBTaGFwZUluZm86Ondy
YXBTaGFwZUluZm9Gb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayogYmxvY2spCi17Ci0g
ICAgQVNTRVJUKGJsb2NrLT5zdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUoKSk7Ci0gICAgcmV0dXJu
IHdyYXBTaGFwZUluZm9NYXAoKS5nZXQoYmxvY2spOwotfQotCi1ib29sIFdyYXBTaGFwZUluZm86
OmlzV3JhcFNoYXBlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayog
YmxvY2spCi17Ci0gICAgLy8gRklYTUU6IEJ1ZyA4OTcwNTogRW5hYmxlIHNoYXBlIGluc2lkZSBm
b3IgdmVydGljYWwgd3JpdGluZyBtb2RlcwotICAgIGlmICghYmxvY2stPmlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIEZJWE1FOiBCdWcg
ODk3MDc6IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9yIG5vbi1yZWN0YW5ndWxhciBzaGFwZXMKLSAg
ICBCYXNpY1NoYXBlKiBzaGFwZSA9IGJsb2NrLT5zdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUoKTsK
LSAgICByZXR1cm4gKHNoYXBlICYmIHNoYXBlLT50eXBlKCkgPT0gQmFzaWNTaGFwZTo6QkFTSUNf
U0hBUEVfUkVDVEFOR0xFKTsKLX0KLQotdm9pZCBXcmFwU2hhcGVJbmZvOjpyZW1vdmVXcmFwU2hh
cGVJbmZvRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQotewotICAgIGlm
ICghYmxvY2stPnN0eWxlKCkgfHwgIWJsb2NrLT5zdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUoKSkK
LSAgICAgICAgcmV0dXJuOwotICAgIHdyYXBTaGFwZUluZm9NYXAoKS5yZW1vdmUoYmxvY2spOwot
fQotCi1ib29sIFdyYXBTaGFwZUluZm86Omhhc1NlZ21lbnRzKCkgY29uc3QKLXsKLSAgICAvLyBB
bGwgbGluZSBwb3NpdGlvbnMgd2l0aGluIGEgc2hhcGUgc2hvdWxkIGhhdmUgYXQgbGVhc3Qgb25l
IHNlZ21lbnQKLSAgICBBU1NFUlQobGluZVN0YXRlKCkgIT0gTElORV9JTlNJREVfU0hBUEUgfHwg
bV9zZWdtZW50cy5zaXplKCkpOwotICAgIHJldHVybiBtX3NlZ21lbnRzLnNpemUoKTsKLX0KLQot
dm9pZCBXcmFwU2hhcGVJbmZvOjpjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNhbFdp
ZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpCi17Ci0gICAgaWYgKCFtX3dyYXBTaGFwZVNp
emVEaXJ0eSAmJiBsb2dpY2FsV2lkdGggPT0gbV9sb2dpY2FsV2lkdGggJiYgbG9naWNhbEhlaWdo
dCA9PSBtX2xvZ2ljYWxIZWlnaHQpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fd3JhcFNoYXBl
U2l6ZURpcnR5ID0gZmFsc2U7Ci0gICAgbV9sb2dpY2FsV2lkdGggPSBsb2dpY2FsV2lkdGg7Ci0g
ICAgbV9sb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodDsKLQotICAgIC8vIEZJWE1FOiBCdWcg
ODk5OTM6IFRoZSB3cmFwIHNoYXBlIG1heSBjb21lIGZyb20gdGhlIHBhcmVudCBvYmplY3QKLSAg
ICBCYXNpY1NoYXBlKiBzaGFwZSA9IG1fYmxvY2stPnN0eWxlKCktPndyYXBTaGFwZUluc2lkZSgp
OwotICAgIEFTU0VSVChzaGFwZSk7Ci0KLSAgICBtX3NoYXBlID0gRXhjbHVzaW9uU2hhcGU6OmNy
ZWF0ZUV4Y2x1c2lvblNoYXBlKHNoYXBlLCBsb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQpOwot
ICAgIEFTU0VSVChtX3NoYXBlKTsKLX0KLQotYm9vbCBXcmFwU2hhcGVJbmZvOjpjb21wdXRlU2Vn
bWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCkKLXsKLSAgICBtX2xpbmVUb3AgPSBsaW5l
VG9wOwotICAgIG1fc2VnbWVudHMuY2xlYXIoKTsKLQotICAgIGlmIChsaW5lU3RhdGUoKSA9PSBM
SU5FX0lOU0lERV9TSEFQRSkgewotICAgICAgICBBU1NFUlQobV9zaGFwZSk7Ci0KLSAgICAgICAg
VmVjdG9yPEV4Y2x1c2lvbkludGVydmFsPiBpbnRlcnZhbHM7Ci0gICAgICAgIG1fc2hhcGUtPmdl
dEluc2lkZUludGVydmFscyhsaW5lVG9wLCBsaW5lVG9wLCBpbnRlcnZhbHMpOyAvLyBGSVhNRTog
QnVnIDk1NDc5LCB3b3JrYXJvdW5kIGZvciBub3cKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBpbnRlcnZhbHMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAgIExpbmVTZWdtZW50IHNl
Z21lbnQ7Ci0gICAgICAgICAgICBzZWdtZW50LmxvZ2ljYWxMZWZ0ID0gaW50ZXJ2YWxzW2ldLngx
OwotICAgICAgICAgICAgc2VnbWVudC5sb2dpY2FsUmlnaHQgPSBpbnRlcnZhbHNbaV0ueDI7Ci0g
ICAgICAgICAgICBtX3NlZ21lbnRzLmFwcGVuZChzZWdtZW50KTsKLSAgICAgICAgfQotICAgIH0K
LSAgICByZXR1cm4gbV9zZWdtZW50cy5zaXplKCk7Ci19Ci0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDA4MGI4NDJhODllYmE5OWZiMzU2MTA4ZWIxOTQ2OWUwNTQxZTExMzYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1dyYXBTaGFwZUluZm8uaAorKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAq
ICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cwotICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKLSAqIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwK
LSAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKLSAqIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgotICogVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdyYXBTaGFwZUluZm9faAotI2Rl
ZmluZSBXcmFwU2hhcGVJbmZvX2gKLQotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLQotI2lu
Y2x1ZGUgIkV4Y2x1c2lvblNoYXBlLmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVk
ZSAiTGF5b3V0VHlwZXNJbmxpbmVNZXRob2RzLmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJlbmRlckJsb2NrOwotY2xhc3MgV3JhcFNoYXBl
SW5mbzsKLQotc3RydWN0IExpbmVTZWdtZW50IHsKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0
OwotICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0OwotfTsKLQotdHlwZWRlZiBWZWN0b3I8TGlu
ZVNlZ21lbnQ+IFNlZ21lbnRMaXN0OwotCi1jbGFzcyBXcmFwU2hhcGVJbmZvIHsKLSAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBlbnVtIExpbmVTdGF0ZSB7Ci0gICAg
ICAgIExJTkVfQkVGT1JFX1NIQVBFLAotICAgICAgICBMSU5FX0lOU0lERV9TSEFQRSwKLSAgICAg
ICAgTElORV9BRlRFUl9TSEFQRQotICAgIH07Ci0KLSAgICB+V3JhcFNoYXBlSW5mbygpOwotCi0g
ICAgc3RhdGljIFBhc3NPd25QdHI8V3JhcFNoYXBlSW5mbz4gY3JlYXRlKFJlbmRlckJsb2NrKiBi
bG9jaykgeyByZXR1cm4gYWRvcHRQdHIobmV3IFdyYXBTaGFwZUluZm8oYmxvY2spKTsgfQotICAg
IHN0YXRpYyBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvRm9yUmVuZGVyQmxvY2soY29uc3Qg
UmVuZGVyQmxvY2sqKTsKLSAgICBzdGF0aWMgV3JhcFNoYXBlSW5mbyogZW5zdXJlV3JhcFNoYXBl
SW5mb0ZvclJlbmRlckJsb2NrKFJlbmRlckJsb2NrKik7Ci0gICAgc3RhdGljIHZvaWQgcmVtb3Zl
V3JhcFNoYXBlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKik7Ci0gICAgc3Rh
dGljIGJvb2wgaXNXcmFwU2hhcGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRl
ckJsb2NrKik7Ci0KLSAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbFRvcCgpIGNvbnN0IAotICAg
IHsgCi0gICAgICAgIEFTU0VSVChtX3NoYXBlKTsKLSAgICAgICAgcmV0dXJuIG1fc2hhcGUtPnNo
YXBlTG9naWNhbEJvdW5kaW5nQm94KCkueSgpOwotICAgIH0KLSAgICBib29sIGhhc1NlZ21lbnRz
KCkgY29uc3Q7Ci0gICAgY29uc3QgU2VnbWVudExpc3QmIHNlZ21lbnRzKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChoYXNTZWdtZW50cygpKTsKLSAgICAgICAgcmV0dXJuIG1fc2VnbWVu
dHM7Ci0gICAgfQotICAgIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxp
bmVUb3ApOwotICAgIExpbmVTdGF0ZSBsaW5lU3RhdGUoKSBjb25zdDsKLSAgICB2b2lkIGNvbXB1
dGVTaGFwZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhl
aWdodCk7Ci0gICAgdm9pZCBkaXJ0eVdyYXBTaGFwZVNpemUoKSB7IG1fd3JhcFNoYXBlU2l6ZURp
cnR5ID0gdHJ1ZTsgfQotCi1wcml2YXRlOgotICAgIFdyYXBTaGFwZUluZm8oUmVuZGVyQmxvY2sq
KTsKLQotICAgIFJlbmRlckJsb2NrKiBtX2Jsb2NrOwotICAgIE93blB0cjxFeGNsdXNpb25TaGFw
ZT4gbV9zaGFwZTsKLQotICAgIExheW91dFVuaXQgbV9saW5lVG9wOwotICAgIExheW91dFVuaXQg
bV9sb2dpY2FsV2lkdGg7Ci0gICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxIZWlnaHQ7Ci0KLSAgICBT
ZWdtZW50TGlzdCBtX3NlZ21lbnRzOwotICAgIGJvb2wgbV93cmFwU2hhcGVTaXplRGlydHk7Ci19
OwotCi1pbmxpbmUgV3JhcFNoYXBlSW5mbzo6TGluZVN0YXRlIFdyYXBTaGFwZUluZm86OmxpbmVT
dGF0ZSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fc2hhcGUpOwotICAgIEZsb2F0UmVjdCBzaGFw
ZUJvdW5kcyA9IG1fc2hhcGUtPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCk7Ci0KLSAgICBpZiAo
bV9saW5lVG9wIDwgc2hhcGVCb3VuZHMueSgpKQotICAgICAgICByZXR1cm4gTElORV9CRUZPUkVf
U0hBUEU7Ci0KLSAgICBpZiAobV9saW5lVG9wIDwgc2hhcGVCb3VuZHMubWF4WSgpKQotICAgICAg
ICByZXR1cm4gTElORV9JTlNJREVfU0hBUEU7Ci0KLSAgICByZXR1cm4gTElORV9BRlRFUl9TSEFQ
RTsKLX0KLQotfQotI2VuZGlmCi0jZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165452</attachid>
            <date>2012-09-24 14:53:46 -0700</date>
            <delta_ts>2012-09-26 11:07:18 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>96157.patch</filename>
            <type>text/plain</type>
            <size>41104</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNGIwMjUwNi4uZWQ5ODA3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTIwMjMsNiArMjAyMyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5k
ZXJpbmcvRXhjbHVzaW9uSW50ZXJ2YWwuY3BwCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3Rh
bmdsZS5jcHAKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwCisgICAgcmVuZGVyaW5n
L0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAKICAgICByZW5kZXJpbmcvRmlsdGVyRWZmZWN0
UmVuZGVyZXIuY3BwCiAgICAgcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCiAgICAgcmVu
ZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcApAQCAtMjExOCw3ICsyMTE5LDYgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9SZW5kZXJXb3JkQnJlYWsuY3BwCiAgICAg
cmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCiAgICAgcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9y
LmNwcAotICAgIHJlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcAogICAgIHJlbmRlcmluZy9icmVh
a19saW5lcy5jcHAKIAogICAgIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNTIxN2QwZi4uYTZjNGIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDEyLTA5LTI0ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAg
ICAgICBbQ1NTIEV4Y2x1c2lvbnNdIFJlbmFtZSBXcmFwU2hhcGVJbmZvIHRvIEV4Y2x1c2lvblNo
YXBlSW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTYxNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZW5hbWUgV3JhcFNoYXBlSW5mbyB0byB0aGUgbW9yZSBzcGVjaWZpYyBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8sIHdoaWNoIGlzIHRoZSBvbmx5CisgICAgICAgIGluZm9ybWF0aW9uIHRoZSBjbGFz
cyBpcyBjdXJyZW50bHkgdHJhY2tpbmcuIFRoaXMgbWF5IGV2ZW50dWFsbHkgc2hhcmUgYSBwYXJl
bnQgY2xhc3MKKyAgICAgICAgd2l0aCBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLgorCisgICAg
ICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6RXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbzo6fkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpF
eGNsdXNpb25TaGFwZUluc2lkZUluZm86OmVuc3VyZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0Zv
clJlbmRlckJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
bzo6ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2spOgorICAgICAgICAoV2Vi
Q29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
b0VuYWJsZWRGb3JSZW5kZXJCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm86OnJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2Nr
KToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aGFzU2VnbWVu
dHMpOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRl
U2hhcGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6
Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dy
YXBTaGFwZUluZm8uaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTGluZVNlZ21lbnQp
OgorICAgICAgICAoRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6c2hhcGVMb2dpY2FsVG9wKToKKyAgICAgICAgKFdlYkNv
cmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6c2VnbWVudHMpOgorICAgICAgICAoV2ViQ29y
ZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpkaXJ0eVdyYXBTaGFwZVNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpsaW5lU3RhdGUpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpz
dHlsZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6dXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUV4Y2x1c2lvblNoYXBlU2l6ZSk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKToKKyAgICAgICAgKFJlbmRlckJs
b2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxpbmVXaWR0aDo6TGluZVdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2Up
OgorCiAyMDEyLTA5LTI0ICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgogCiAgICAg
ICAgIFtDU1MgRXhjbHVzaW9uc10gRXhjbHVzaW9uU2hhcGUgQVBJIHNob3VsZCB1c2UgbG9naWNh
bCBjb29yZGluYXRlcyBmb3IgaW5wdXQvb3V0cHV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCA4Mjk3NzE4Li42MzdhMWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTQ4OTAsNiArNDg5MCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhj
bHVzaW9uU2hhcGUuaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mby5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFw
ZUluc2lkZUluZm8uaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJl
bmRlcmVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRl
cmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcCBc
CkBAIC01MDkzLDggKzUwOTUsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9TY3JvbGxCZWhhdmlvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVmVydGlj
YWxQb3NpdGlvbkNhY2hlLmggXAotCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJ
bmZvLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uaCBcCiAJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaCBcCiAJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IDc0NjVkNDQuLjU2YWNjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTEwMiw2
ICsxMTAyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvbkludGVydmFs
LmNwcCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5jcHAgXAogICAgIHJlbmRl
cmluZy9FeGNsdXNpb25TaGFwZS5jcHAgXAorICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8uY3BwIFwKICAgICByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwIFwK
ICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAgXAogICAgIHJlbmRlcmluZy9GbG93
VGhyZWFkQ29udHJvbGxlci5jcHAgXApAQCAtMTE5Myw3ICsxMTk0LDYgQEAgU09VUkNFUyArPSBc
CiAgICAgcmVuZGVyaW5nL1JlbmRlcldvcmRCcmVhay5jcHAgXAogICAgIHJlbmRlcmluZy9Sb290
SW5saW5lQm94LmNwcCBcCiAgICAgcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmNwcCBcCi0gICAg
cmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvQmFzaWNT
aGFwZXMuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwIFwKICAgICBy
ZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2ZXMuY3BwIFwKQEAgLTIyOTAsNiArMjI5MCw3
IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25JbnRlcnZhbC5oIFwKICAg
ICByZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmggXAogICAgIHJlbmRlcmluZy9FeGNsdXNp
b25TaGFwZS5oIFwKKyAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggXAog
ICAgIHJlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oIFwKICAgICByZW5kZXJpbmcvRml4
ZWRUYWJsZUxheW91dC5oIFwKICAgICByZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRl
LmggXApAQCAtMjM4OCw3ICsyMzg5LDYgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlcldvcmRCcmVhay5oIFwKICAgICByZW5kZXJpbmcvUm9vdElubGluZUJveC5oIFwKICAgICBy
ZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaCBcCi0gICAgcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8u
aCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmggXAogICAgIHJlbmRlcmluZy9z
dHlsZS9Db250ZW50RGF0YS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2
ZXMuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYTYyYmFlMi4uMmI3NDVlZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNTg4LDcgKzU4OCw2IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlcldp
ZGdldC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUm9vdElubGluZUJveC5oJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuaCcsCi0gICAgICAgICAgICAncmVuZGVy
aW5nL1dyYXBTaGFwZUluZm8uaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL0Jhc2lj
U2hhcGVzLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJWYWx1ZS5oJywKQEAgLTMyOTUsNiAr
MzI5NCw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oJywK
ICAgICAgICAgICAgICdyZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwJywKICAgICAgICAgICAg
ICdyZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuaCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL0V4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZUluc2lkZUluZm8uaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0ZpbHRlckVm
ZmVjdFJlbmRlcmVyLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJl
bmRlcmVyLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcCcs
CkBAIC0zNDkwLDcgKzM0OTEsNiBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9UYWJsZUxheW91
dC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvVHJhaWxpbmdGbG9hdHNSb290SW5saW5lQm94
LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9WZXJ0aWNhbFBvc2l0aW9uQ2FjaGUuaCcsCi0g
ICAgICAgICAgICAncmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwJywKICAgICAgICAgICAgICdy
ZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvYnJlYWtf
bGluZXMuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9j
ay5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpp
bmRleCA3NjhkZTBkLi5hMTJjOWEwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtMzg0NDcsNiArMzg0NDcsMTQgQEAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8uY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxyZW5kZXJpbmdcRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xGaWx0ZXJFZmZl
Y3RSZW5kZXJlci5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNDIyMTks
MTQgKzQyMjI3LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccmVuZGVyaW5nXFdyYXBTaGFwZUluZm8uY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4K
LQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcV3JhcFNoYXBlSW5mby5o
IgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcc3ZnXFJlbmRlclNWR0FsbEluT25lLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
N2EyNWVhYS4uOGI5MTg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjQ3MSw4ICs2NDcxLDggQEAKIAkJRkQ2RUQyQzgxMzZC
OEU2NjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RUQyQzYxMzZCOEU2NjAwM0NGMDcyIC8qIER5
bmFtaWNzQ29tcHJlc3Nvci5oICovOyB9OwogCQlGRDZGMjUyQzEzRjVFRjBFMDA2NTE2NUYgLyog
TWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENkYyNTI5MTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVs
ZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwICovOyB9OwogCQlGRDZGMjUyRDEzRjVFRjBFMDA2NTE2
NUYgLyogTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDZGMjUyQTEzRjVFRjBFMDA2NTE2NUYgLyogTWVk
aWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmggKi87IH07Ci0JCUZENzQ4QUJGMTVCRjc0RUQwMDU5
Q0YwRCAvKiBXcmFwU2hhcGVJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZENzQ4QUJEMTVCRjc0RUQwMDU5Q0YwRCAvKiBXcmFwU2hhcGVJbmZv
LmNwcCAqLzsgfTsKLQkJRkQ3NDhBQzAxNUJGNzRFRDAwNTlDRjBEIC8qIFdyYXBTaGFwZUluZm8u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENzQ4QUJF
MTVCRjc0RUQwMDU5Q0YwRCAvKiBXcmFwU2hhcGVJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkQ3NDhBQkYxNUJGNzRFRDAwNTlDRjBEIC8q
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRDc0OEFCRDE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvLmNwcCAqLzsgfTsKKwkJRkQ3NDhBQzAxNUJGNzRFRDAwNTlDRjBEIC8q
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkQ3NDhBQkUxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUZENzg2OEI5MTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nv
ck5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkQ3ODY4QjcxMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAg
Ki87IH07CiAJCUZENzg2OEJBMTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nv
ck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
Nzg2OEI4MTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCAqLzsg
fTsKIAkJRkQ3RjI5OTExM0Q0QzBDQjAwQUQ5NTM1IC8qIFdhdmVTaGFwZXJEU1BLZXJuZWwuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ3RjI5OEEx
M0Q0QzBDQjAwQUQ5NTM1IC8qIFdhdmVTaGFwZXJEU1BLZXJuZWwuY3BwICovOyB9OwpAQCAtMTM5
MTQsOCArMTM5MTQsOCBAQAogCQlGRDZGMjUyOTEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVt
ZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZENkYyNTJBMTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1Nv
dXJjZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFFbGVtZW50
QXVkaW9Tb3VyY2VOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZENkYyNTJC
MTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUZENzQ4QUJEMTVCRjc0RUQwMDU5Q0YwRCAvKiBXcmFw
U2hhcGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdyYXBT
aGFwZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGRDc0OEFCRTE1QkY3
NEVEMDA1OUNGMEQgLyogV3JhcFNoYXBlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXcmFwU2hhcGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZE
NzQ4QUJEMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkQ3NDhBQkUxNUJGNzRFRDAw
NTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRkQ3ODY4QjcxMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21w
cmVzc29yTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0R5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
RDc4NjhCODEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDdGMjk4QTEzRDRDMENCMDBBRDk1MzUg
LyogV2F2ZVNoYXBlckRTUEtlcm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXYXZlU2hhcGVyRFNQS2VybmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIxMzUxLDYgKzIxMzUxLDggQEAKIAkJCQk2RTg3OThCNzE1RjgxRTRBMDBCRkU0QUEg
LyogRXhjbHVzaW9uUmVjdGFuZ2xlLmggKi8sCiAJCQkJNkU4Nzk4QjgxNUY4MUU0QTAwQkZFNEFB
IC8qIEV4Y2x1c2lvblNoYXBlLmNwcCAqLywKIAkJCQk2RTg3OThCOTE1RjgxRTRBMDBCRkU0QUEg
LyogRXhjbHVzaW9uU2hhcGUuaCAqLywKKwkJCQlGRDc0OEFCRDE1QkY3NEVEMDA1OUNGMEQgLyog
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCAqLywKKwkJCQlGRDc0OEFCRTE1QkY3NEVEMDA1
OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggKi8sCiAJCQkJMzEzMTNGNjMxNDQz
QjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCAqLywKIAkJCQkzMTMxM0Y2
NDE0NDNCMzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCAqLywKIAkJCQlBOENG
RjA0ODBBMTU0RjA5MDAwQTQyMzQgLyogRml4ZWRUYWJsZUxheW91dC5jcHAgKi8sCkBAIC0yMTU2
MSw4ICsyMTU2Myw2IEBACiAJCQkJQThDRkYwNEMwQTE1NEYwOTAwMEE0MjM0IC8qIFRhYmxlTGF5
b3V0LmggKi8sCiAJCQkJMzdGQzk2REExMTA0RUQ3MTAwM0UxRkFEIC8qIFRyYWlsaW5nRmxvYXRz
Um9vdElubGluZUJveC5oICovLAogCQkJCUJDQTI1NzE0MTI5M0MwMTAwMDdBMjYzRCAvKiBWZXJ0
aWNhbFBvc2l0aW9uQ2FjaGUuaCAqLywKLQkJCQlGRDc0OEFCRDE1QkY3NEVEMDA1OUNGMEQgLyog
V3JhcFNoYXBlSW5mby5jcHAgKi8sCi0JCQkJRkQ3NDhBQkUxNUJGNzRFRDAwNTlDRjBEIC8qIFdy
YXBTaGFwZUluZm8uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gcmVuZGVyaW5nOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIzMzg1LDYgKzIzMzg1LDcgQEAKIAkJCQk2RTg3OThCQjE1
RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uSW50ZXJ2YWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZFODc5OEJEMTVGODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25SZWN0YW5nbGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTZFODc5OEJGMTVGODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25TaGFwZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRkQ3NDhBQzAxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2N0QyQTkxMjgwRThCRDAw
ODc1OEY3IC8qIEV4dGVuc2lvbnMzRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2N0QyQTcxMjgw
RThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDREQUI1QjIxNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTUyNSw3ICsyNTUyNiw2IEBACiAJCQkJMEI5MDU2RjkwRjI2ODVG
MzAwOTVGRjZBIC8qIFdvcmtlclRocmVhZGFibGVMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3QUFCRDJEMTRGQTA5RDUwMDc0NTdBRSAvKiBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMjQwOTlFNjQ5MjAwNTZFNTgxIC8qIFdy
YXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRkQ3NDhB
QzAxNUJGNzRFRDAwNTlDRjBEIC8qIFdyYXBTaGFwZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTlCQUYzQjI0MTJDMUEzOTgwMDAxNEJGMSAvKiBXcml0aW5nRGlyZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxNDQ3NkFBODE1REM0QkIxMDAzMDVEQjIgLyogV3JpdGluZ01vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTY1NjU4MjAyMDlEMTUwOEQwMDBFNjFENyAvKiBYTGlua05hbWVzLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2NjQwLDYgKzI2NjQwLDcgQEAKIAkJCQk2RTg3OThCQTE1Rjgx
RTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uSW50ZXJ2YWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NkU4Nzk4QkMxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblJlY3RhbmdsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk2RTg3OThCRTE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uU2hhcGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkQ3NDhBQkYxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2RTY3RDJBNjEyODBF
OEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9uczNET3BlbkdMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4NjI3LDcgKzI4NjI4
LDYgQEAKIAkJCQkwQjkwNTZGODBGMjY4NUYzMDA5NUZGNkEgLyogV29ya2VyVGhyZWFkYWJsZUxv
YWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0FBQkQyQzE0RkEwOUQ1MDA3NDU3QUUgLyog
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTMzMDlFMjMwOTlFNjQ5MjAwNTZFNTgxIC8qIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGRDc0OEFCRjE1QkY3NEVEMDA1OUNGMEQgLyogV3Jh
cFNoYXBlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODMzQzdDQzBBMkNGMDc0MDBENTc2
NjQgLyogWExpbmtOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwMEQwNDY0QTEzQzREMTQ1
MDAzMjZGQ0MgLyogWE1MQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTAwQjkzMTg3MTNCQThEQjMwMDM1QTk0OCAvKiBYTUxEb2N1bWVudFBhcnNlci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZUluc2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNzRiNTUwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwCkBAIC0wLDAgKzEsMTIzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRp
c2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICog
ICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisg
KiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgiCisKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisK
KyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCisj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordHlwZWRlZiBIYXNoTWFwPGNvbnN0IFJlbmRlckJsb2NrKiwgT3du
UHRyPEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbz4gPiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9N
YXA7CisKK3N0YXRpYyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAmIGV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mb01hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm9NYXAsIHN0YXRpY0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCwgKCkpOwor
ICAgIHJldHVybiBzdGF0aWNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXA7Cit9CisKK0V4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbzo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFJlbmRlckJsb2Nr
KiBibG9jaykKKyAgICA6IG1fYmxvY2soYmxvY2spCisgICAgLCBtX3NoYXBlU2l6ZURpcnR5KHRy
dWUpCit7Cit9CisKK0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6fkV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbygpCit7Cit9CisKK0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvOjplbnN1cmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9j
ayhSZW5kZXJCbG9jayogYmxvY2spCit7CisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFw
OjpBZGRSZXN1bHQgcmVzdWx0ID0gZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwKCkuYWRkKGJs
b2NrLCBjcmVhdGUoYmxvY2spKTsKKyAgICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9yLT5zZWNvbmQu
Z2V0KCk7Cit9CisKK0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvOjpleGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayhjb25zdCBSZW5k
ZXJCbG9jayogYmxvY2spCit7CisgICAgQVNTRVJUKGJsb2NrLT5zdHlsZSgpLT53cmFwU2hhcGVJ
bnNpZGUoKSk7CisgICAgcmV0dXJuIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCgpLmdldChi
bG9jayk7Cit9CisKK2Jvb2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0V4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayogYmxv
Y2spCit7CisgICAgLy8gRklYTUU6IEJ1ZyA4OTcwNzogRW5hYmxlIHNoYXBlIGluc2lkZSBmb3Ig
bm9uLXJlY3Rhbmd1bGFyIHNoYXBlcworICAgIEJhc2ljU2hhcGUqIHNoYXBlID0gYmxvY2stPnN0
eWxlKCktPndyYXBTaGFwZUluc2lkZSgpOworICAgIHJldHVybiAoc2hhcGUgJiYgc2hhcGUtPnR5
cGUoKSA9PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9SRUNUQU5HTEUpOworfQorCit2b2lkIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6cmVtb3ZlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9y
UmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQoreworICAgIGlmICghYmxvY2st
PnN0eWxlKCkgfHwgIWJsb2NrLT5zdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCgpLnJlbW92ZShibG9jayk7
Cit9CisKK2Jvb2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpoYXNTZWdtZW50cygpIGNvbnN0
Cit7CisgICAgLy8gQWxsIGxpbmUgcG9zaXRpb25zIHdpdGhpbiBhIHNoYXBlIHNob3VsZCBoYXZl
IGF0IGxlYXN0IG9uZSBzZWdtZW50CisgICAgQVNTRVJUKGxpbmVTdGF0ZSgpICE9IExJTkVfSU5T
SURFX1NIQVBFIHx8IG1fc2VnbWVudHMuc2l6ZSgpKTsKKyAgICByZXR1cm4gbV9zZWdtZW50cy5z
aXplKCk7Cit9CisKK3ZvaWQgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlU2hhcGVT
aXplKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpCit7
CisgICAgaWYgKCFtX3NoYXBlU2l6ZURpcnR5ICYmIGxvZ2ljYWxXaWR0aCA9PSBtX2xvZ2ljYWxX
aWR0aCAmJiBsb2dpY2FsSGVpZ2h0ID09IG1fbG9naWNhbEhlaWdodCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9zaGFwZVNpemVEaXJ0eSA9IGZhbHNlOworICAgIG1fbG9naWNhbFdpZHRoID0g
bG9naWNhbFdpZHRoOworICAgIG1fbG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQ7CisKKyAg
ICAvLyBGSVhNRTogQnVnIDg5OTkzOiBUaGUgd3JhcCBzaGFwZSBtYXkgY29tZSBmcm9tIHRoZSBw
YXJlbnQgb2JqZWN0CisgICAgQmFzaWNTaGFwZSogc2hhcGUgPSBtX2Jsb2NrLT5zdHlsZSgpLT53
cmFwU2hhcGVJbnNpZGUoKTsKKyAgICBBU1NFUlQoc2hhcGUpOworCisgICAgbV9zaGFwZSA9IEV4
Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShzaGFwZSwgbG9naWNhbFdpZHRoLCBs
b2dpY2FsSGVpZ2h0LCBtX2Jsb2NrLT5zdHlsZSgpLT53cml0aW5nTW9kZSgpKTsKKyAgICBBU1NF
UlQobV9zaGFwZSk7Cit9CisKK2Jvb2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRl
U2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCkKK3sKKyAgICBtX2xpbmVUb3AgPSBs
aW5lVG9wOworICAgIG1fc2VnbWVudHMuY2xlYXIoKTsKKworICAgIGlmIChsaW5lU3RhdGUoKSA9
PSBMSU5FX0lOU0lERV9TSEFQRSkgeworICAgICAgICBBU1NFUlQobV9zaGFwZSk7CisgICAgICAg
IG1fc2hhcGUtPmdldEluY2x1ZGVkSW50ZXJ2YWxzKGxpbmVUb3AsIGxpbmVUb3AsIG1fc2VnbWVu
dHMpOyAvLyBGSVhNRTogQnVnIDk1NDc5LCB3b3JrYXJvdW5kIGZvciBub3cKKyAgICB9CisgICAg
cmV0dXJuIG1fc2VnbWVudHMuc2l6ZSgpOworfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWYzNzc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oCkBAIC0wLDAg
KzEsMTA5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jw
b3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg
4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIg
QkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mb19oCisjZGVmaW5lIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb19o
CisKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFw
ZS5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkxheW91dFR5cGVzSW5saW5l
TWV0aG9kcy5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBSZW5kZXJCbG9jazsKKworY2xhc3MgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBlbnVtIExpbmVTdGF0
ZSB7CisgICAgICAgIExJTkVfQkVGT1JFX1NIQVBFLAorICAgICAgICBMSU5FX0lOU0lERV9TSEFQ
RSwKKyAgICAgICAgTElORV9BRlRFUl9TSEFQRQorICAgIH07CisKKyAgICB+RXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvKCk7CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8+IGNyZWF0ZShSZW5kZXJCbG9jayogYmxvY2spIHsgcmV0dXJuIGFkb3B0UHRyKG5l
dyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oYmxvY2spKTsgfQorICAgIHN0YXRpYyBFeGNsdXNp
b25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2Nr
KGNvbnN0IFJlbmRlckJsb2NrKik7CisgICAgc3RhdGljIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byogZW5zdXJlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soUmVuZGVyQmxv
Y2sqKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JS
ZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayopOworICAgIHN0YXRpYyBib29sIGlzRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2Nr
Kik7CisKKyAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbFRvcCgpIGNvbnN0IAorICAgIHsgCisg
ICAgICAgIEFTU0VSVChtX3NoYXBlKTsKKyAgICAgICAgcmV0dXJuIG1fc2hhcGUtPnNoYXBlTG9n
aWNhbEJvdW5kaW5nQm94KCkueSgpOworICAgIH0KKyAgICBib29sIGhhc1NlZ21lbnRzKCkgY29u
c3Q7CisgICAgY29uc3QgU2VnbWVudExpc3QmIHNlZ21lbnRzKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIEFTU0VSVChoYXNTZWdtZW50cygpKTsKKyAgICAgICAgcmV0dXJuIG1fc2VnbWVudHM7Cisg
ICAgfQorICAgIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3Ap
OworICAgIExpbmVTdGF0ZSBsaW5lU3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIGNvbXB1dGVTaGFw
ZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCk7
CisgICAgdm9pZCBkaXJ0eVNoYXBlU2l6ZSgpIHsgbV9zaGFwZVNpemVEaXJ0eSA9IHRydWU7IH0K
KworcHJpdmF0ZToKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oUmVuZGVyQmxvY2sqKTsK
KworICAgIFJlbmRlckJsb2NrKiBtX2Jsb2NrOworICAgIE93blB0cjxFeGNsdXNpb25TaGFwZT4g
bV9zaGFwZTsKKworICAgIExheW91dFVuaXQgbV9saW5lVG9wOworICAgIExheW91dFVuaXQgbV9s
b2dpY2FsV2lkdGg7CisgICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxIZWlnaHQ7CisKKyAgICBTZWdt
ZW50TGlzdCBtX3NlZ21lbnRzOworICAgIGJvb2wgbV9zaGFwZVNpemVEaXJ0eTsKK307CisKK2lu
bGluZSBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OkxpbmVTdGF0ZSBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm86OmxpbmVTdGF0ZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fc2hhcGUpOworICAg
IEZsb2F0UmVjdCBzaGFwZUJvdW5kcyA9IG1fc2hhcGUtPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94
KCk7CisKKyAgICBpZiAobV9saW5lVG9wIDwgc2hhcGVCb3VuZHMueSgpKQorICAgICAgICByZXR1
cm4gTElORV9CRUZPUkVfU0hBUEU7CisKKyAgICBpZiAobV9saW5lVG9wIDwgc2hhcGVCb3VuZHMu
bWF4WSgpKQorICAgICAgICByZXR1cm4gTElORV9JTlNJREVfU0hBUEU7CisKKyAgICByZXR1cm4g
TElORV9BRlRFUl9TSEFQRTsKK30KKworfQorI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGFiZWQ2NjIuLmYxMGEzOTAgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNjIsNyArNjIsNyBAQAogI2lu
Y2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgog
I2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSNpbmNsdWRlICJXcmFwU2hhcGVJbmZvLmgiCisj
aW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgiCiAjZW5kaWYKIAogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKQEAgLTI3OSw3ICsyNzksNyBAQCB2b2lkIFJlbmRlckJsb2NrOjp3aWxsQmVE
ZXN0cm95ZWQoKQogICAgICAgICBsaW5lR3JpZEJveCgpLT5kZXN0cm95KHJlbmRlckFyZW5hKCkp
OwogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgIFdyYXBTaGFwZUluZm86OnJlbW92
ZVdyYXBTaGFwZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKKyAgICBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm86OnJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKHRo
aXMpOwogI2VuZGlmCiAKICAgICBpZiAoVU5MSUtFTFkoZ0RlbGF5ZWRVcGRhdGVTY3JvbGxJbmZv
U2V0ICE9IDApKQpAQCAtMzI4LDkgKzMyOCw5IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnN0eWxlRGlk
Q2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5CiAg
ICAgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShkaWZmLCBvbGRTdHlsZSk7CiAKICNpZiBFTkFC
TEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgLy8gRklYTUU6IEJ1ZyA4OTk5MzogU3R5bGUgY2hhbmdl
cyBzaG91bGQgYWZmZWN0IHRoZSBXcmFwU2hhcGVJbmZvcyBmb3Igb3RoZXIgcmVuZGVyIGJsb2Nr
cyB0aGF0Ci0gICAgLy8gc2hhcmUgdGhlIHNhbWUgV3JhcFNoYXBlSW5mbwotICAgIHVwZGF0ZVdy
YXBTaGFwZUluZm9BZnRlclN0eWxlQ2hhbmdlKHN0eWxlKCktPndyYXBTaGFwZUluc2lkZSgpLCBv
bGRTdHlsZSA/IG9sZFN0eWxlLT53cmFwU2hhcGVJbnNpZGUoKSA6IDApOworICAgIC8vIEZJWE1F
OiBCdWcgODk5OTM6IFN0eWxlIGNoYW5nZXMgc2hvdWxkIGFmZmVjdCB0aGUgRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvcyBmb3Igb3RoZXIgcmVuZGVyIGJsb2NrcyB0aGF0CisgICAgLy8gc2hhcmUg
dGhlIHNhbWUgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvCisgICAgdXBkYXRlRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShzdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUoKSwg
b2xkU3R5bGUgPyBvbGRTdHlsZS0+d3JhcFNoYXBlSW5zaWRlKCkgOiAwKTsKICNlbmRpZgogCiAg
ICAgaWYgKCFpc0Fub255bW91c0Jsb2NrKCkpIHsKQEAgLTEzODAsMjQgKzEzODAsMjQgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6bGF5b3V0KCkKIH0KIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
LXZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVdyYXBTaGFwZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNv
bnN0IEJhc2ljU2hhcGUqIHdyYXBTaGFwZSwgY29uc3QgQmFzaWNTaGFwZSogb2xkV3JhcFNoYXBl
KQordm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvQWZ0ZXJT
dHlsZUNoYW5nZShjb25zdCBCYXNpY1NoYXBlKiB3cmFwU2hhcGUsIGNvbnN0IEJhc2ljU2hhcGUq
IG9sZFdyYXBTaGFwZSkKIHsKICAgICAvLyBGSVhNRTogQSBmdXR1cmUgb3B0aW1pemF0aW9uIHdv
dWxkIGRvIGEgZGVlcCBjb21wYXJpc29uIGZvciBlcXVhbGl0eS4KICAgICBpZiAod3JhcFNoYXBl
ID09IG9sZFdyYXBTaGFwZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHdyYXBTaGFwZSkg
ewotICAgICAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gV3JhcFNoYXBlSW5mbzo6
ZW5zdXJlV3JhcFNoYXBlSW5mb0ZvclJlbmRlckJsb2NrKHRoaXMpOwotICAgICAgICB3cmFwU2hh
cGVJbmZvLT5kaXJ0eVdyYXBTaGFwZVNpemUoKTsKKyAgICAgICAgRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8gPSBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm86OmVuc3VyZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKHRoaXMpOwor
ICAgICAgICBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmRpcnR5U2hhcGVTaXplKCk7CiAgICAg
fSBlbHNlCi0gICAgICAgIFdyYXBTaGFwZUluZm86OnJlbW92ZVdyYXBTaGFwZUluZm9Gb3JSZW5k
ZXJCbG9jayh0aGlzKTsKKyAgICAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpyZW1vdmVF
eGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKIH0KICNlbmRpZgog
CiB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXpl
KCkKIHsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgaWYgKCFpblJlbmRlckZsb3dU
aHJlYWQoKSAmJiAhd3JhcFNoYXBlSW5mbygpKQorICAgIGlmICghaW5SZW5kZXJGbG93VGhyZWFk
KCkgJiYgIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpKQogI2Vsc2UKICAgICBpZiAoIWluUmVu
ZGVyRmxvd1RocmVhZCgpKQogI2VuZGlmCkBAIC0xNDI2LDEwICsxNDI2LDEwIEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OnVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zTG9naWNhbFNpemUoKQogI2lmIEVO
QUJMRShDU1NfRVhDTFVTSU9OUykKIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVFeGNsdXNpb25T
aGFwZVNpemUoKQogewotICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSB0aGlzLT53
cmFwU2hhcGVJbmZvKCk7Ci0gICAgaWYgKHdyYXBTaGFwZUluZm8pIHsKKyAgICBFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHRoaXMtPmV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbygpOworICAgIGlmIChleGNsdXNpb25TaGFwZUluc2lkZUluZm8pIHsK
ICAgICAgICAgYm9vbCBwZXJjZW50YWdlTG9naWNhbEhlaWdodFJlc29sdmFibGUgPSBwZXJjZW50
YWdlTG9naWNhbEhlaWdodElzUmVzb2x2YWJsZUZyb21CbG9jayh0aGlzLCBmYWxzZSk7Ci0gICAg
ICAgIHdyYXBTaGFwZUluZm8tPmNvbXB1dGVTaGFwZVNpemUobG9naWNhbFdpZHRoKCksIHBlcmNl
bnRhZ2VMb2dpY2FsSGVpZ2h0UmVzb2x2YWJsZSA/IGxvZ2ljYWxIZWlnaHQoKSA6IFpFUk9fTEFZ
T1VUX1VOSVQpOworICAgICAgICBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmNvbXB1dGVTaGFw
ZVNpemUobG9naWNhbFdpZHRoKCksIHBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0UmVzb2x2YWJsZSA/
IGxvZ2ljYWxIZWlnaHQoKSA6IFpFUk9fTEFZT1VUX1VOSVQpOwogICAgIH0KIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCBlM2VkMjEwLi5lMTk1ZWM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtMzUsNyArMzUsNyBA
QAogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQotI2luY2x1ZGUgIldyYXBTaGFwZUluZm8uaCIKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm8uaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MDIsOSAr
NDAyLDkgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0g
ICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbygpIGNvbnN0CisgICAgRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHN0eWxlKCktPndyYXBTaGFwZUluc2lkZSgpICYmIFdyYXBTaGFwZUluZm86
OmlzV3JhcFNoYXBlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayh0aGlzKSA/IFdyYXBTaGFwZUlu
Zm86OndyYXBTaGFwZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKSA6IDA7CisgICAgICAgIHJldHVy
biBzdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUoKSAmJiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86
OmlzRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2NrKHRoaXMpID8g
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpleGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5k
ZXJCbG9jayh0aGlzKSA6IDA7CiAgICAgfQogI2VuZGlmCiAKQEAgLTQ5OSw3ICs0OTksNyBAQCBw
cm90ZWN0ZWQ6CiBwcml2YXRlOgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICB2b2lk
IGNvbXB1dGVFeGNsdXNpb25TaGFwZVNpemUoKTsKLSAgICB2b2lkIHVwZGF0ZVdyYXBTaGFwZUlu
Zm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IEJhc2ljU2hhcGUqLCBjb25zdCBCYXNpY1NoYXBlKiBv
bGRXcmFwU2hhcGUpOworICAgIHZvaWQgdXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvQWZ0
ZXJTdHlsZUNoYW5nZShjb25zdCBCYXNpY1NoYXBlKiwgY29uc3QgQmFzaWNTaGFwZSogb2xkV3Jh
cFNoYXBlKTsKICNlbmRpZgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0
dWFsQ2hpbGRyZW4oKSB7IHJldHVybiBjaGlsZHJlbigpOyB9CiAgICAgdmlydHVhbCBjb25zdCBS
ZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGNo
aWxkcmVuKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
TGluZUxheW91dC5jcHAKaW5kZXggYmZlMDNiOC4uMjZiN2NlYyAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTQ2LDcgKzQ2
LDcgQEAKICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgogCiAjaWYgRU5B
QkxFKENTU19FWENMVVNJT05TKQotI2luY2x1ZGUgIldyYXBTaGFwZUluZm8uaCIKKyNpbmNsdWRl
ICJFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCIKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNWRykK
QEAgLTgwLDEyICs4MCwxMiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoYmxvY2sp
OwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgV3JhcFNoYXBlSW5mbyogd3Jh
cFNoYXBlSW5mbyA9IG1fYmxvY2stPndyYXBTaGFwZUluZm8oKTsKKyAgICAgICAgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8gPSBtX2Jsb2NrLT5leGNs
dXNpb25TaGFwZUluc2lkZUluZm8oKTsKICAgICAgICAgLy8gRklYTUU6IEJ1ZyA5MTg3ODogQWRk
IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNlZ21lbnRzLCBjdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0
IG9uZQotICAgICAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5saW5lU3Rh
dGUoKSA9PSBXcmFwU2hhcGVJbmZvOjpMSU5FX0lOU0lERV9TSEFQRSkgeworICAgICAgICBpZiAo
ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvICYmIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+bGlu
ZVN0YXRlKCkgPT0gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpMSU5FX0lOU0lERV9TSEFQRSkg
ewogICAgICAgICAgICAgLy8gQWxsIGludGVyaW9yIHNoYXBlIHBvc2l0aW9ucyBzaG91bGQgaGF2
ZSBhdCBsZWFzdCBvbmUgc2VnbWVudAotICAgICAgICAgICAgQVNTRVJUKHdyYXBTaGFwZUluZm8t
Pmhhc1NlZ21lbnRzKCkpOwotICAgICAgICAgICAgbV9zZWdtZW50ID0gJndyYXBTaGFwZUluZm8t
PnNlZ21lbnRzKClbMF07CisgICAgICAgICAgICBBU1NFUlQoZXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvLT5oYXNTZWdtZW50cygpKTsKKyAgICAgICAgICAgIG1fc2VnbWVudCA9ICZleGNsdXNpb25T
aGFwZUluc2lkZUluZm8tPnNlZ21lbnRzKClbMF07CiAgICAgICAgIH0KICNlbmRpZgogICAgICAg
ICB1cGRhdGVBdmFpbGFibGVXaWR0aCgpOwpAQCAtODA0LDEwICs4MDQsMTAgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGlu
ZUJveCogbGluZUJveCwKICAgICBmbG9hdCBsb2dpY2FsTGVmdCA9IHBpeGVsU25hcHBlZExvZ2lj
YWxMZWZ0T2Zmc2V0Rm9yTGluZShsb2dpY2FsSGVpZ2h0KCksIGZpcnN0TGluZSwgbGluZUxvZ2lj
YWxIZWlnaHQpOwogICAgIGZsb2F0IGxvZ2ljYWxSaWdodCA9IHBpeGVsU25hcHBlZExvZ2ljYWxS
aWdodE9mZnNldEZvckxpbmUobG9naWNhbEhlaWdodCgpLCBmaXJzdExpbmUsIGxpbmVMb2dpY2Fs
SGVpZ2h0KTsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgV3JhcFNoYXBlSW5mbyog
d3JhcFNoYXBlSW5mbyA9IHRoaXMtPndyYXBTaGFwZUluZm8oKTsKLSAgICBpZiAod3JhcFNoYXBl
SW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUoKSA9PSBXcmFwU2hhcGVJbmZvOjpMSU5F
X0lOU0lERV9TSEFQRSkgewotICAgICAgICBsb2dpY2FsTGVmdCA9IG1heDxmbG9hdD4ocm91bmRU
b0ludCh3cmFwU2hhcGVJbmZvLT5zZWdtZW50cygpWzBdLmxvZ2ljYWxMZWZ0KSwgbG9naWNhbExl
ZnQpOwotICAgICAgICBsb2dpY2FsUmlnaHQgPSBtaW48ZmxvYXQ+KGZsb29yVG9JbnQod3JhcFNo
YXBlSW5mby0+c2VnbWVudHMoKVswXS5sb2dpY2FsUmlnaHQpLCBsb2dpY2FsUmlnaHQpOworICAg
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gdGhp
cy0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CisgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyAmJiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmxpbmVTdGF0ZSgpID09IEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbzo6TElORV9JTlNJREVfU0hBUEUpIHsKKyAgICAgICAgbG9naWNh
bExlZnQgPSBtYXg8ZmxvYXQ+KHJvdW5kVG9JbnQoZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5z
ZWdtZW50cygpWzBdLmxvZ2ljYWxMZWZ0KSwgbG9naWNhbExlZnQpOworICAgICAgICBsb2dpY2Fs
UmlnaHQgPSBtaW48ZmxvYXQ+KGZsb29yVG9JbnQoZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5z
ZWdtZW50cygpWzBdLmxvZ2ljYWxSaWdodCksIGxvZ2ljYWxSaWdodCk7CiAgICAgfQogI2VuZGlm
CiAgICAgZmxvYXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoID0gbG9naWNhbFJpZ2h0IC0gbG9naWNh
bExlZnQ7CkBAIC0xMjk2LDEwICsxMjk2LDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1
bnNBbmRGbG9hdHNJblJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAg
ICAgTGluZUJyZWFrZXIgbGluZUJyZWFrZXIodGhpcyk7CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xV
U0lPTlMpCi0gICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IHRoaXMtPndyYXBTaGFw
ZUluZm8oKTsKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyA9IHRoaXMtPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwogICAgIC8vIE1vdmUg
dG8gdGhlIHRvcCBvZiB0aGUgc2hhcGUgaW5zaWRlIHRvIGJlZ2luIGxheW91dAotICAgIGlmICh3
cmFwU2hhcGVJbmZvICYmIGxvZ2ljYWxIZWlnaHQoKSA8IHdyYXBTaGFwZUluZm8tPnNoYXBlTG9n
aWNhbFRvcCgpKQotICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KHdyYXBTaGFwZUluZm8tPnNoYXBl
TG9naWNhbFRvcCgpKTsKKyAgICBpZiAoZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvICYmIGxvZ2lj
YWxIZWlnaHQoKSA8IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+c2hhcGVMb2dpY2FsVG9wKCkp
CisgICAgICAgIHNldExvZ2ljYWxIZWlnaHQoZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5zaGFw
ZUxvZ2ljYWxUb3AoKSk7CiAjZW5kaWYKIAogICAgIHdoaWxlICghZW5kLmF0RW5kKCkpIHsKQEAg
LTEzMjMsOCArMTMyMyw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJ
blJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAjaWYgRU5BQkxFKENT
U19FWENMVVNJT05TKQogICAgICAgICAvLyBGSVhNRTogQnVnIDg5OTkzOiBJZiB0aGUgd3JhcCBz
aGFwZSBjb21lcyBmcm9tIGEgcGFyZW50LCB3ZSB3aWxsIG5lZWQgdG8gYWRqdXN0CiAgICAgICAg
IC8vIHRoZSBoZWlnaHQgY29vcmRpbmF0ZQotICAgICAgICBpZiAod3JhcFNoYXBlSW5mbykKLSAg
ICAgICAgICAgIHdyYXBTaGFwZUluZm8tPmNvbXB1dGVTZWdtZW50c0ZvckxpbmUobG9naWNhbEhl
aWdodCgpKTsKKyAgICAgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbykKKyAgICAgICAg
ICAgIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsb2dp
Y2FsSGVpZ2h0KCkpOwogI2VuZGlmCiAgICAgICAgIGVuZCA9IGxpbmVCcmVha2VyLm5leHRMaW5l
QnJlYWsocmVzb2x2ZXIsIGxheW91dFN0YXRlLmxpbmVJbmZvKCksIHJlbmRlclRleHRJbmZvLCBs
YXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCBjb25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5lcyk7CiAg
ICAgICAgIGlmIChyZXNvbHZlci5wb3NpdGlvbigpLmF0RW5kKCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMGNlNDZlNi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvV3JhcFNo
YXBlSW5mby5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjMgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
Ci0gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZwotICogICAgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKLSAqICAg
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCi0gKiBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCi0gKiBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCi0gKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKLSAqIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICog
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldyYXBT
aGFwZUluZm8uaCIKLQotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLQotI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKLSNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi10eXBlZGVmIEhhc2hNYXA8Y29uc3QgUmVuZGVyQmxvY2sqLCBPd25QdHI8V3JhcFNoYXBl
SW5mbz4gPiBXcmFwU2hhcGVJbmZvTWFwOwotCi1zdGF0aWMgV3JhcFNoYXBlSW5mb01hcCYgd3Jh
cFNoYXBlSW5mb01hcCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChXcmFwU2hhcGVJbmZv
TWFwLCBzdGF0aWNXcmFwU2hhcGVJbmZvTWFwLCAoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY1dyYXBT
aGFwZUluZm9NYXA7Ci19Ci0KLVdyYXBTaGFwZUluZm86OldyYXBTaGFwZUluZm8oUmVuZGVyQmxv
Y2sqIGJsb2NrKQotICAgIDogbV9ibG9jayhibG9jaykKLSAgICAsIG1fd3JhcFNoYXBlU2l6ZURp
cnR5KHRydWUpCi17Ci19Ci0KLVdyYXBTaGFwZUluZm86On5XcmFwU2hhcGVJbmZvKCkKLXsKLX0K
LQotV3JhcFNoYXBlSW5mbyogV3JhcFNoYXBlSW5mbzo6ZW5zdXJlV3JhcFNoYXBlSW5mb0ZvclJl
bmRlckJsb2NrKFJlbmRlckJsb2NrKiBibG9jaykKLXsKLSAgICBXcmFwU2hhcGVJbmZvTWFwOjpB
ZGRSZXN1bHQgcmVzdWx0ID0gd3JhcFNoYXBlSW5mb01hcCgpLmFkZChibG9jaywgY3JlYXRlKGJs
b2NrKSk7Ci0gICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+c2Vjb25kLmdldCgpOwotfQotCi1X
cmFwU2hhcGVJbmZvKiBXcmFwU2hhcGVJbmZvOjp3cmFwU2hhcGVJbmZvRm9yUmVuZGVyQmxvY2so
Y29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQotewotICAgIEFTU0VSVChibG9jay0+c3R5bGUoKS0+
d3JhcFNoYXBlSW5zaWRlKCkpOwotICAgIHJldHVybiB3cmFwU2hhcGVJbmZvTWFwKCkuZ2V0KGJs
b2NrKTsKLX0KLQotYm9vbCBXcmFwU2hhcGVJbmZvOjppc1dyYXBTaGFwZUluZm9FbmFibGVkRm9y
UmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQotewotICAgIC8vIEZJWE1FOiBC
dWcgODk3MDc6IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9yIG5vbi1yZWN0YW5ndWxhciBzaGFwZXMK
LSAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IGJsb2NrLT5zdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUo
KTsKLSAgICByZXR1cm4gKHNoYXBlICYmIHNoYXBlLT50eXBlKCkgPT0gQmFzaWNTaGFwZTo6QkFT
SUNfU0hBUEVfUkVDVEFOR0xFKTsKLX0KLQotdm9pZCBXcmFwU2hhcGVJbmZvOjpyZW1vdmVXcmFw
U2hhcGVJbmZvRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQotewotICAg
IGlmICghYmxvY2stPnN0eWxlKCkgfHwgIWJsb2NrLT5zdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUo
KSkKLSAgICAgICAgcmV0dXJuOwotICAgIHdyYXBTaGFwZUluZm9NYXAoKS5yZW1vdmUoYmxvY2sp
OwotfQotCi1ib29sIFdyYXBTaGFwZUluZm86Omhhc1NlZ21lbnRzKCkgY29uc3QKLXsKLSAgICAv
LyBBbGwgbGluZSBwb3NpdGlvbnMgd2l0aGluIGEgc2hhcGUgc2hvdWxkIGhhdmUgYXQgbGVhc3Qg
b25lIHNlZ21lbnQKLSAgICBBU1NFUlQobGluZVN0YXRlKCkgIT0gTElORV9JTlNJREVfU0hBUEUg
fHwgbV9zZWdtZW50cy5zaXplKCkpOwotICAgIHJldHVybiBtX3NlZ21lbnRzLnNpemUoKTsKLX0K
LQotdm9pZCBXcmFwU2hhcGVJbmZvOjpjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNh
bFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpCi17Ci0gICAgaWYgKCFtX3dyYXBTaGFw
ZVNpemVEaXJ0eSAmJiBsb2dpY2FsV2lkdGggPT0gbV9sb2dpY2FsV2lkdGggJiYgbG9naWNhbEhl
aWdodCA9PSBtX2xvZ2ljYWxIZWlnaHQpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fd3JhcFNo
YXBlU2l6ZURpcnR5ID0gZmFsc2U7Ci0gICAgbV9sb2dpY2FsV2lkdGggPSBsb2dpY2FsV2lkdGg7
Ci0gICAgbV9sb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodDsKLQotICAgIC8vIEZJWE1FOiBC
dWcgODk5OTM6IFRoZSB3cmFwIHNoYXBlIG1heSBjb21lIGZyb20gdGhlIHBhcmVudCBvYmplY3QK
LSAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IG1fYmxvY2stPnN0eWxlKCktPndyYXBTaGFwZUluc2lk
ZSgpOwotICAgIEFTU0VSVChzaGFwZSk7Ci0KLSAgICBtX3NoYXBlID0gRXhjbHVzaW9uU2hhcGU6
OmNyZWF0ZUV4Y2x1c2lvblNoYXBlKHNoYXBlLCBsb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQs
IG1fYmxvY2stPnN0eWxlKCktPndyaXRpbmdNb2RlKCkpOwotICAgIEFTU0VSVChtX3NoYXBlKTsK
LX0KLQotYm9vbCBXcmFwU2hhcGVJbmZvOjpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVu
aXQgbGluZVRvcCkKLXsKLSAgICBtX2xpbmVUb3AgPSBsaW5lVG9wOwotICAgIG1fc2VnbWVudHMu
Y2xlYXIoKTsKLQotICAgIGlmIChsaW5lU3RhdGUoKSA9PSBMSU5FX0lOU0lERV9TSEFQRSkgewot
ICAgICAgICBBU1NFUlQobV9zaGFwZSk7Ci0gICAgICAgIG1fc2hhcGUtPmdldEluY2x1ZGVkSW50
ZXJ2YWxzKGxpbmVUb3AsIGxpbmVUb3AsIG1fc2VnbWVudHMpOyAvLyBGSVhNRTogQnVnIDk1NDc5
LCB3b3JrYXJvdW5kIGZvciBub3cKLSAgICB9Ci0gICAgcmV0dXJuIG1fc2VnbWVudHMuc2l6ZSgp
OwotfQotCi19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9X
cmFwU2hhcGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTI2NzNiLi4wMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmgKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIElu
Y29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMKLSAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSIOKAnEFTIElT4oCdIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIEJFCi0gKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksCi0gKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCi0g
KiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YKLSAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBX
cmFwU2hhcGVJbmZvX2gKLSNkZWZpbmUgV3JhcFNoYXBlSW5mb19oCi0KLSNpZiBFTkFCTEUoQ1NT
X0VYQ0xVU0lPTlMpCi0KLSNpbmNsdWRlICJFeGNsdXNpb25TaGFwZS5oIgotI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgotI2luY2x1ZGUgIkxheW91dFR5cGVzSW5saW5lTWV0aG9kcy5oIgotI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSZW5kZXJCbG9j
azsKLQotY2xhc3MgV3JhcFNoYXBlSW5mbyB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
Ci1wdWJsaWM6Ci0gICAgZW51bSBMaW5lU3RhdGUgewotICAgICAgICBMSU5FX0JFRk9SRV9TSEFQ
RSwKLSAgICAgICAgTElORV9JTlNJREVfU0hBUEUsCi0gICAgICAgIExJTkVfQUZURVJfU0hBUEUK
LSAgICB9OwotCi0gICAgfldyYXBTaGFwZUluZm8oKTsKLQotICAgIHN0YXRpYyBQYXNzT3duUHRy
PFdyYXBTaGFwZUluZm8+IGNyZWF0ZShSZW5kZXJCbG9jayogYmxvY2spIHsgcmV0dXJuIGFkb3B0
UHRyKG5ldyBXcmFwU2hhcGVJbmZvKGJsb2NrKSk7IH0KLSAgICBzdGF0aWMgV3JhcFNoYXBlSW5m
byogd3JhcFNoYXBlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKik7Ci0gICAg
c3RhdGljIFdyYXBTaGFwZUluZm8qIGVuc3VyZVdyYXBTaGFwZUluZm9Gb3JSZW5kZXJCbG9jayhS
ZW5kZXJCbG9jayopOwotICAgIHN0YXRpYyB2b2lkIHJlbW92ZVdyYXBTaGFwZUluZm9Gb3JSZW5k
ZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayopOwotICAgIHN0YXRpYyBib29sIGlzV3JhcFNoYXBl
SW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayopOwotCi0gICAgTGF5
b3V0VW5pdCBzaGFwZUxvZ2ljYWxUb3AoKSBjb25zdCAKLSAgICB7IAotICAgICAgICBBU1NFUlQo
bV9zaGFwZSk7Ci0gICAgICAgIHJldHVybiBtX3NoYXBlLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0Jv
eCgpLnkoKTsKLSAgICB9Ci0gICAgYm9vbCBoYXNTZWdtZW50cygpIGNvbnN0OwotICAgIGNvbnN0
IFNlZ21lbnRMaXN0JiBzZWdtZW50cygpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaGFz
U2VnbWVudHMoKSk7Ci0gICAgICAgIHJldHVybiBtX3NlZ21lbnRzOwotICAgIH0KLSAgICBib29s
IGNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wKTsKLSAgICBMaW5lU3Rh
dGUgbGluZVN0YXRlKCkgY29uc3Q7Ci0gICAgdm9pZCBjb21wdXRlU2hhcGVTaXplKExheW91dFVu
aXQgbG9naWNhbFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpOwotICAgIHZvaWQgZGly
dHlXcmFwU2hhcGVTaXplKCkgeyBtX3dyYXBTaGFwZVNpemVEaXJ0eSA9IHRydWU7IH0KLQotcHJp
dmF0ZToKLSAgICBXcmFwU2hhcGVJbmZvKFJlbmRlckJsb2NrKik7Ci0KLSAgICBSZW5kZXJCbG9j
ayogbV9ibG9jazsKLSAgICBPd25QdHI8RXhjbHVzaW9uU2hhcGU+IG1fc2hhcGU7Ci0KLSAgICBM
YXlvdXRVbml0IG1fbGluZVRvcDsKLSAgICBMYXlvdXRVbml0IG1fbG9naWNhbFdpZHRoOwotICAg
IExheW91dFVuaXQgbV9sb2dpY2FsSGVpZ2h0OwotCi0gICAgU2VnbWVudExpc3QgbV9zZWdtZW50
czsKLSAgICBib29sIG1fd3JhcFNoYXBlU2l6ZURpcnR5OwotfTsKLQotaW5saW5lIFdyYXBTaGFw
ZUluZm86OkxpbmVTdGF0ZSBXcmFwU2hhcGVJbmZvOjpsaW5lU3RhdGUoKSBjb25zdAotewotICAg
IEFTU0VSVChtX3NoYXBlKTsKLSAgICBGbG9hdFJlY3Qgc2hhcGVCb3VuZHMgPSBtX3NoYXBlLT5z
aGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpOwotCi0gICAgaWYgKG1fbGluZVRvcCA8IHNoYXBlQm91
bmRzLnkoKSkKLSAgICAgICAgcmV0dXJuIExJTkVfQkVGT1JFX1NIQVBFOwotCi0gICAgaWYgKG1f
bGluZVRvcCA8IHNoYXBlQm91bmRzLm1heFkoKSkKLSAgICAgICAgcmV0dXJuIExJTkVfSU5TSURF
X1NIQVBFOwotCi0gICAgcmV0dXJuIExJTkVfQUZURVJfU0hBUEU7Ci19Ci0KLX0KLSNlbmRpZgot
I2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165834</attachid>
            <date>2012-09-26 11:07:23 -0700</date>
            <delta_ts>2012-09-26 12:55:18 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-96157-20120926110641.patch</filename>
            <type>text/plain</type>
            <size>47147</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWVmYWMzNTU2NTg1YWU2
MGYzNzJiMzkwODA3YjI2N2EwYjdmY2QxZC4uNzU4MWU3NGJiMTU1YTZjNTlkYjVkODhlODUyY2Fi
YTBiZWNjMWYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTA5LTI2ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IFJlbmFtZSBXcmFwU2hhcGVJbmZvIHRvIEV4Y2x1c2lvblNoYXBlSW5mbworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYxNTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgV3JhcFNoYXBlSW5mbyB0
byB0aGUgbW9yZSBzcGVjaWZpYyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8sIHdoaWNoIGlzIHRo
ZSBvbmx5CisgICAgICAgIGluZm9ybWF0aW9uIHRoZSBjbGFzcyBpcyBjdXJyZW50bHkgdHJhY2tp
bmcuIFRoaXMgcGF0Y2ggdXBkYXRlcyBidWlsZCBmaWxlcywgY2xhc3MKKyAgICAgICAgaW5zdGFu
Y2VzIGFuZCB2YXJpYWJsZSBuYW1lcy4gV2hlbiBzaGFwZS1vdXRzaWRlIGlzIGFkZGVkLCB0aGVy
ZSBtYXkgYmUgYW4gYWRkaXRpb25hbAorICAgICAgICBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZv
IGNsYXNzIHRoYXQgc2hhcmVzIGEgY29tbW9uIHBhcmVudCBjbGFzcyB3aXRoIAorICAgICAgICBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uIFRoaXMgcGF0Y2ggb25seSBjaGFuZ2VzIG5hbWVzLCB0
aGVyZSBpcyBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogUmVuYW1lIGZpbGVzIGZyb20g
V3JhcFNoYXBlSW5mbyB0byBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hh
cGVJbmZvLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOiAgUmVuYW1pbmcgZnVuY3Rpb25zIGFuZCB2
YXJpYWJsZXMgdG8gdXNlIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyByYXRoZXIgdGhhbgorICAg
ICAgICBXcmFwU2hhcGVJbmZvLgorICAgICAgICAoV2ViQ29yZTo6ZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbzo6fkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyk6CisgICAgICAgIChXZWJD
b3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmVuc3VyZUV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mb0ZvclJlbmRlckJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbzo6ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2spOgorICAgICAg
ICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0V4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNp
b25TaGFwZUluc2lkZUluZm86OnJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRl
ckJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6Y29t
cHV0ZVNoYXBlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNp
b25TaGFwZUluc2lkZUluZm8uaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9XcmFwU2hhcGVJbmZvLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm86OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm86OnNoYXBlTG9naWNhbFRvcCk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm86OnNoYXBlTG9naWNhbEJvdHRvbSk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNp
b25TaGFwZUluc2lkZUluZm86Omhhc1NlZ21lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbzo6c2VnbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvOjpkaXJ0eVNoYXBlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpF
eGNsdXNpb25TaGFwZUluc2lkZUluZm86OmxpbmVPdmVybGFwc1NoYXBlQm91bmRzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91
dFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpleGNsdXNpb25TaGFwZUlu
c2lkZUluZm8pOgorICAgICAgICAoTGF5b3V0U3RhdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6d2lsbEJlRGVz
dHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzdHlsZURpZENoYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
dXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6Y29tcHV0ZUV4Y2x1c2lvblNoYXBlU2l6ZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6ZXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvKToKKyAgICAgICAgKFJlbmRlckJsb2NrKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpMaW5l
V2lkdGg6OkxpbmVXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0
ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVmlldy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cHVzaExheW91
dFN0YXRlKToKKwogMjAxMi0wOS0yNiAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5u
ZXRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVvcmRlciBDYWlybyBXZWJDb3JlIGluY2x1ZGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDExMTM4Y2E4NjZlZTVkYzZhMjhlNjlmYjIxMTg4OTli
ODBhMzI2ZWMuLjZkMWVjM2E3MzU3NWM2ZTY0NTY2OTAzYjNkNjljMjA3MTY2OGY1M2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yMDMyLDYgKzIwMzIsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvbkludGVydmFsLmNwcAogICAgIHJlbmRlcmluZy9FeGNs
dXNpb25SZWN0YW5nbGUuY3BwCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNwcAorICAg
IHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwCiAgICAgcmVuZGVyaW5nL0Zp
bHRlckVmZmVjdFJlbmRlcmVyLmNwcAogICAgIHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNw
cAogICAgIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKQEAgLTIxMjcsNyArMjEy
OCw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvUmVuZGVyV29yZEJyZWFr
LmNwcAogICAgIHJlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAogICAgIHJlbmRlcmluZy9TY3Jv
bGxCZWhhdmlvci5jcHAKLSAgICByZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5jcHAKICAgICByZW5k
ZXJpbmcvYnJlYWtfbGluZXMuY3BwCiAKICAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TEJsb2NrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZTU1MWQyN2ViMWVh
ODQ3YzgyZjUxYTkxZDI1ZTExZTlkNjM5NWI0Yy4uYTc5NjAyYjc0NWZhYzYzMmVkZGJlNTY5NTA3
NGE3NzY1NjNjNzdjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00OTA1LDYg
KzQ5MDUsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9FeGNsdXNpb25SZWN0YW5nbGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
LmggXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8u
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAgXApAQCAtNTEwOCw4
ICs1MTEwLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvU2Nyb2xsQmVoYXZpb3IuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Nyb2xs
QmVoYXZpb3IuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1ZlcnRpY2FsUG9zaXRpb25D
YWNoZS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5jcHAgXAot
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmggXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmggXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpp
bmRleCAyNDdjMjBlYzVjMzZiYzQ2Y2UyODAwMGY1NDA4OWUwMTkzYWFhZmVjLi5mYTI3MjRkYmYw
MjFjZmY1OGIxMGU3ZjVjMzFmY2QyMWNmMzE0YjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTExMDMsNiAr
MTEwMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25JbnRlcnZhbC5j
cHAgXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuY3BwIFwKICAgICByZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGUuY3BwIFwKKyAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmNwcCBcCiAgICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCBcCiAg
ICAgcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwIFwKICAgICByZW5kZXJpbmcvRmxvd1Ro
cmVhZENvbnRyb2xsZXIuY3BwIFwKQEAgLTExOTQsNyArMTE5NSw2IEBAIFNPVVJDRVMgKz0gXAog
ICAgIHJlbmRlcmluZy9SZW5kZXJXb3JkQnJlYWsuY3BwIFwKICAgICByZW5kZXJpbmcvUm9vdElu
bGluZUJveC5jcHAgXAogICAgIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5jcHAgXAotICAgIHJl
bmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hh
cGVzLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcCBcCiAgICAgcmVu
ZGVyaW5nL3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmNwcCBcCkBAIC0yMjkzLDYgKzIyOTMsNyBA
QCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uSW50ZXJ2YWwuaCBcCiAgICAg
cmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oIFwKICAgICByZW5kZXJpbmcvRXhjbHVzaW9u
U2hhcGUuaCBcCisgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIFwKICAg
ICByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCBcCiAgICAgcmVuZGVyaW5nL0ZpeGVk
VGFibGVMYXlvdXQuaCBcCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5o
IFwKQEAgLTIzOTEsNyArMjM5Miw2IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9SZW5k
ZXJXb3JkQnJlYWsuaCBcCiAgICAgcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaCBcCiAgICAgcmVu
ZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmggXAotICAgIHJlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmgg
XAogICAgIHJlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oIFwKICAgICByZW5kZXJpbmcvc3R5
bGUvQ29udGVudERhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVz
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDJmMGE2M2FlY2FlN2EyMWM4MTdlODlkM2NjOWNmNzFl
NzgwNDFkN2EuLjNmOTA4ODIwMDU2NGU2ODg2M2YwNGM3M2FmOTUxYzNjYjU0MjkwNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTU4OSw3ICs1ODksNiBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaCcs
CiAgICAgICAgICAgICAncmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmgnLAotICAgICAgICAgICAg
J3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHls
ZS9CYXNpY1NoYXBlcy5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0
YS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvQm9yZGVyVmFsdWUuaCcsCkBAIC0z
MzEwLDYgKzMzMDksOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5n
bGUuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNwcCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmgnLAorICAgICAgICAgICAgJ3JlbmRl
cmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9G
aWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9GaWx0ZXJF
ZmZlY3RSZW5kZXJlci5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91
dC5jcHAnLApAQCAtMzUwNSw3ICszNTA2LDYgQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvVGFi
bGVMYXlvdXQuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1RyYWlsaW5nRmxvYXRzUm9vdElu
bGluZUJveC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvVmVydGljYWxQb3NpdGlvbkNhY2hl
LmgnLAotICAgICAgICAgICAgJ3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcCcsCiAgICAgICAg
ICAgICAncmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5n
L2JyZWFrX2xpbmVzLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MQmxvY2suY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggYjc3NGQ4YTM2ZTY4MzlmYzkxMzQwMTY3YjQyYzIwYTM5MGQwZDQ3Mi4uOTA4
YTcwNWQ1YjU3NDdjYjljY2E1MzFkZWM3ZDc4ODU0MGRkNzAxMyAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTM4NDQ3LDYgKzM4NDQ3LDE0IEBA
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5o
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KQEAgLTQyMjE5LDE0ICs0MjIyNyw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xXcmFwU2hhcGVJbmZvLmNwcCIKLQkJ
CQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5n
XFdyYXBTaGFwZUluZm8uaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN2Z1xSZW5kZXJTVkdBbGxJbk9uZS5jcHAiCiAJCQkJPgog
CQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDIxODI4NDcxYTZmYzQxZTY1ZjVlYjI5MjNjNTZlY2Q5YWQ0MzA1MzYu
LjQ5YTA1ZDgxZTczMDcxZTExZTY4NmUwOTQzMTdkZDE4NzA4M2VjZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY0NzIsOCAr
NjQ3Miw4IEBACiAJCUZENkVEMkM4MTM2QjhFNjYwMDNDRjA3MiAvKiBEeW5hbWljc0NvbXByZXNz
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENkVE
MkM2MTM2QjhFNjYwMDNDRjA3MiAvKiBEeW5hbWljc0NvbXByZXNzb3IuaCAqLzsgfTsKIAkJRkQ2
RjI1MkMxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDZGMjUyOTEz
RjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCAqLzsgfTsK
IAkJRkQ2RjI1MkQxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RjI1
MkExM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oICovOyB9
OwotCQlGRDc0OEFCRjE1QkY3NEVEMDA1OUNGMEQgLyogV3JhcFNoYXBlSW5mby5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDc0OEFCRDE1QkY3NEVE
MDA1OUNGMEQgLyogV3JhcFNoYXBlSW5mby5jcHAgKi87IH07Ci0JCUZENzQ4QUMwMTVCRjc0RUQw
MDU5Q0YwRCAvKiBXcmFwU2hhcGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRDc0OEFCRTE1QkY3NEVEMDA1OUNGMEQgLyogV3JhcFNoYXBlSW5m
by5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUZE
NzQ4QUJGMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ3NDhBQkQxNUJG
NzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgKi87IH07CisJCUZE
NzQ4QUMwMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENzQ4QUJFMTVCRjc0
RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRDc4NjhCOTEzNkI5OTkyMDBENDAz
REYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENzg2OEI3MTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwICovOyB9OwogCQlGRDc4NjhCQTEzNkI5OTkyMDBENDAz
REYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDc4NjhCODEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5h
bWljc0NvbXByZXNzb3JOb2RlLmggKi87IH07CiAJCUZEN0YyOTkxMTNENEMwQ0IwMEFEOTUzNSAv
KiBXYXZlU2hhcGVyRFNQS2VybmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZEN0YyOThBMTNENEMwQ0IwMEFEOTUzNSAvKiBXYXZlU2hhcGVyRFNQ
S2VybmVsLmNwcCAqLzsgfTsKQEAgLTEzOTE2LDggKzEzOTE2LDggQEAKIAkJRkQ2RjI1MjkxM0Y1
RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDZGMjUyQTEzRjVFRjBFMDA2NTE2
NUYgLyogTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGRDZGMjUyQjEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVtZW50
QXVkaW9Tb3VyY2VOb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUVsZW1lbnRB
dWRpb1NvdXJjZU5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGRDc0OEFC
RDE1QkY3NEVEMDA1OUNGMEQgLyogV3JhcFNoYXBlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXcmFwU2hhcGVJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRkQ3NDhBQkUxNUJGNzRFRDAwNTlDRjBEIC8qIFdyYXBTaGFwZUluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JhcFNoYXBlSW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGRDc0OEFCRDE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUZENzQ4QUJFMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZENzg2OEI3MTM2Qjk5OTIw
MEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ3ODY4QjgxMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHlu
YW1pY3NDb21wcmVzc29yTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RkQ3RjI5OEExM0Q0QzBDQjAwQUQ5NTM1IC8qIFdhdmVTaGFwZXJEU1BLZXJuZWwuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2F2ZVNoYXBlckRTUEtlcm5lbC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTM1Miw2ICsyMTM1Miw4IEBACiAJCQkJ
NkU4Nzk4QjcxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblJlY3RhbmdsZS5oICovLAogCQkJ
CTZFODc5OEI4MTVGODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25TaGFwZS5jcHAgKi8sCiAJCQkJ
NkU4Nzk4QjkxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblNoYXBlLmggKi8sCisJCQkJRkQ3
NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgKi8s
CisJCQkJRkQ3NDhBQkUxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
by5oICovLAogCQkJCTMxMzEzRjYzMTQ0M0IzNUUwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5k
ZXJlci5jcHAgKi8sCiAJCQkJMzEzMTNGNjQxNDQzQjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVj
dFJlbmRlcmVyLmggKi8sCiAJCQkJQThDRkYwNDgwQTE1NEYwOTAwMEE0MjM0IC8qIEZpeGVkVGFi
bGVMYXlvdXQuY3BwICovLApAQCAtMjE1NjIsOCArMjE1NjQsNiBAQAogCQkJCUE4Q0ZGMDRDMEEx
NTRGMDkwMDBBNDIzNCAvKiBUYWJsZUxheW91dC5oICovLAogCQkJCTM3RkM5NkRBMTEwNEVENzEw
MDNFMUZBRCAvKiBUcmFpbGluZ0Zsb2F0c1Jvb3RJbmxpbmVCb3guaCAqLywKIAkJCQlCQ0EyNTcx
NDEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGljYWxQb3NpdGlvbkNhY2hlLmggKi8sCi0JCQkJRkQ3
NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIFdyYXBTaGFwZUluZm8uY3BwICovLAotCQkJCUZENzQ4
QUJFMTVCRjc0RUQwMDU5Q0YwRCAvKiBXcmFwU2hhcGVJbmZvLmggKi8sCiAJCQkpOwogCQkJcGF0
aCA9IHJlbmRlcmluZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzM4OSw2ICsy
MzM4OSw3IEBACiAJCQkJNkU4Nzk4QkIxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvbkludGVy
dmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTg3OThCRDE1RjgxRTRBMDBCRkU0QUEgLyogRXhj
bHVzaW9uUmVjdGFuZ2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTg3OThCRjE1RjgxRTRBMDBC
RkU0QUEgLyogRXhjbHVzaW9uU2hhcGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUZENzQ4QUMwMTVC
Rjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBpbiBIZWFkZXJzICov
LAogCQkJCTZFNjdEMkE5MTI4MEU4QkQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTZFNjdEMkE3MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVu
R0wuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0REFCNUIyMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRl
bnNpb25zM0RPcGVuR0xDb21tb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjU1MjgsNyArMjU1Mjks
NiBAQAogCQkJCTBCOTA1NkY5MEYyNjg1RjMwMDk1RkY2QSAvKiBXb3JrZXJUaHJlYWRhYmxlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0FBQkQyRDE0RkEwOUQ1MDA3NDU3QUUgLyogV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5
RTI0MDk5RTY0OTIwMDU2RTU4MSAvKiBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaCBp
biBIZWFkZXJzICovLAotCQkJCUZENzQ4QUMwMTVCRjc0RUQwMDU5Q0YwRCAvKiBXcmFwU2hhcGVJ
bmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkFGM0IyNDEyQzFBMzk4MDAwMTRCRjEgLyogV3Jp
dGluZ0RpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ0NzZBQTgxNURDNEJCMTAwMzA1
REIyIC8qIFdyaXRpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1ODIwMjA5RDE1MDhE
MDAwRTYxRDcgLyogWExpbmtOYW1lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjY0NCw2ICsyNjY0
NCw3IEBACiAJCQkJNkU4Nzk4QkExNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvbkludGVydmFs
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFODc5OEJDMTVGODFFNEEwMEJGRTRBQSAvKiBFeGNs
dXNpb25SZWN0YW5nbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU4Nzk4QkUxNUY4MUU0QTAw
QkZFNEFBIC8qIEV4Y2x1c2lvblNoYXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZENzQ4QUJG
MTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNkU2N0QyQTYxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5H
TC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0
ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRG
ODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yODYzMCw3ICsyODYzMSw2IEBACiAJCQkJMEI5MDU2RjgwRjI2ODVGMzAwOTVG
RjZBIC8qIFdvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdB
QUJEMkMxNEZBMDlENTAwNzQ1N0FFIC8qIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTIzMDk5RTY0OTIwMDU2RTU4MSAvKiBXcmFw
Q29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkQ3NDhB
QkYxNUJGNzRFRDAwNTlDRjBEIC8qIFdyYXBTaGFwZUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTgzM0M3Q0MwQTJDRjA3NDAwRDU3NjY0IC8qIFhMaW5rTmFtZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDBEMDQ2NEExM0M0RDE0NTAwMzI2RkNDIC8qIFhNTENoYXJhY3RlclJlZmVyZW5j
ZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwMEI5MzE4NzEzQkE4REIzMDAzNUE5NDgg
LyogWE1MRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIwMGRhYTZhZWE3MjUyYjhiYzg5NjZjMWIyNGVkMTA0YWEyMTIzNjkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
LmNwcApAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBZG9iZSBT
eXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5o
IgorCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVk
ZWYgSGFzaE1hcDxjb25zdCBSZW5kZXJCbG9jayosIE93blB0cjxFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8+ID4gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwOworCitzdGF0aWMgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvTWFwJiBleGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAoKQoreworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwLCBzdGF0aWNF
eGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAsICgpKTsKKyAgICByZXR1cm4gc3RhdGljRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvTWFwOworfQorCitFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OkV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhSZW5kZXJCbG9jayogYmxvY2spCisgICAgOiBtX2Jsb2Nr
KGJsb2NrKQorICAgICwgbV9zaGFwZVNpemVEaXJ0eSh0cnVlKQoreworfQorCitFeGNsdXNpb25T
aGFwZUluc2lkZUluZm86On5FeGNsdXNpb25TaGFwZUluc2lkZUluZm8oKQoreworfQorCitFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZW5zdXJlRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soUmVuZGVyQmxvY2sqIGJsb2NrKQor
eworICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcDo6QWRkUmVzdWx0IHJlc3VsdCA9IGV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCgpLmFkZChibG9jaywgY3JlYXRlKGJsb2NrKSk7Cisg
ICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+c2Vjb25kLmdldCgpOworfQorCitFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQoreworICAg
IEFTU0VSVChibG9jay0+c3R5bGUoKS0+d3JhcFNoYXBlSW5zaWRlKCkpOworICAgIHJldHVybiBl
eGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAoKS5nZXQoYmxvY2spOworfQorCitib29sIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9FbmFibGVkRm9y
UmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQoreworICAgIC8vIEZJWE1FOiBC
dWcgODk3MDc6IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9yIG5vbi1yZWN0YW5ndWxhciBzaGFwZXMK
KyAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IGJsb2NrLT5zdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUo
KTsKKyAgICByZXR1cm4gKHNoYXBlICYmIHNoYXBlLT50eXBlKCkgPT0gQmFzaWNTaGFwZTo6QkFT
SUNfU0hBUEVfUkVDVEFOR0xFKTsKK30KKwordm9pZCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86
OnJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRl
ckJsb2NrKiBibG9jaykKK3sKKyAgICBpZiAoIWJsb2NrLT5zdHlsZSgpIHx8ICFibG9jay0+c3R5
bGUoKS0+d3JhcFNoYXBlSW5zaWRlKCkpCisgICAgICAgIHJldHVybjsKKyAgICBleGNsdXNpb25T
aGFwZUluc2lkZUluZm9NYXAoKS5yZW1vdmUoYmxvY2spOworfQorCit2b2lkIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNoYXBlU2l6ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KQoreworICAgIGlmICghbV9zaGFwZVNpemVEaXJ0eSAm
JiBsb2dpY2FsV2lkdGggPT0gbV9sb2dpY2FsV2lkdGggJiYgbG9naWNhbEhlaWdodCA9PSBtX2xv
Z2ljYWxIZWlnaHQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc2hhcGVTaXplRGlydHkgPSBm
YWxzZTsKKyAgICBtX2xvZ2ljYWxXaWR0aCA9IGxvZ2ljYWxXaWR0aDsKKyAgICBtX2xvZ2ljYWxI
ZWlnaHQgPSBsb2dpY2FsSGVpZ2h0OworCisgICAgLy8gRklYTUU6IEJ1ZyA4OTk5MzogVGhlIHdy
YXAgc2hhcGUgbWF5IGNvbWUgZnJvbSB0aGUgcGFyZW50IG9iamVjdAorICAgIEJhc2ljU2hhcGUq
IHNoYXBlID0gbV9ibG9jay0+c3R5bGUoKS0+d3JhcFNoYXBlSW5zaWRlKCk7CisgICAgQVNTRVJU
KHNoYXBlKTsKKworICAgIG1fc2hhcGUgPSBFeGNsdXNpb25TaGFwZTo6Y3JlYXRlRXhjbHVzaW9u
U2hhcGUoc2hhcGUsIGxvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdodCwgbV9ibG9jay0+c3R5bGUo
KS0+d3JpdGluZ01vZGUoKSk7CisgICAgQVNTRVJUKG1fc2hhcGUpOworfQorCitib29sIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxp
bmVUb3AsIExheW91dFVuaXQgbGluZUJvdHRvbSkKK3sKKyAgICBBU1NFUlQobGluZVRvcCA8PSBs
aW5lQm90dG9tKTsKKyAgICBtX2xpbmVUb3AgPSBsaW5lVG9wOworICAgIG1fbGluZUJvdHRvbSA9
IGxpbmVCb3R0b207CisgICAgbV9zZWdtZW50cy5jbGVhcigpOworCisgICAgaWYgKGxpbmVPdmVy
bGFwc1NoYXBlQm91bmRzKCkpIHsKKyAgICAgICAgQVNTRVJUKG1fc2hhcGUpOworICAgICAgICBt
X3NoYXBlLT5nZXRJbmNsdWRlZEludGVydmFscyhsaW5lVG9wLCBzdGQ6Om1pbihsaW5lQm90dG9t
LCBzaGFwZUxvZ2ljYWxCb3R0b20oKSksIG1fc2VnbWVudHMpOworICAgIH0KKyAgICByZXR1cm4g
bV9zZWdtZW50cy5zaXplKCk7Cit9CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkYjFi
MTAxZTA4YjcxM2IwOTBmNDZhZTJkNzZiMDQ2MmNhMWU1NzEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKQEAgLTAs
MCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNv
cnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICog
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvX2gKKyNkZWZpbmUgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
X2gKKworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKworI2luY2x1ZGUgIkV4Y2x1c2lvblNo
YXBlLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiTGF5b3V0VHlwZXNJbmxp
bmVNZXRob2RzLmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFJlbmRlckJsb2NrOworCitjbGFzcyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8g
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIH5FeGNsdXNpb25T
aGFwZUluc2lkZUluZm8oKTsKKworICAgIHN0YXRpYyBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbz4gY3JlYXRlKFJlbmRlckJsb2NrKiBibG9jaykgeyByZXR1cm4gYWRvcHRQdHIo
bmV3IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhibG9jaykpOyB9CisgICAgc3RhdGljIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxv
Y2soY29uc3QgUmVuZGVyQmxvY2sqKTsKKyAgICBzdGF0aWMgRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvKiBlbnN1cmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayhSZW5kZXJC
bG9jayopOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0Zv
clJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKik7CisgICAgc3RhdGljIGJvb2wgaXNFeGNs
dXNpb25TaGFwZUluc2lkZUluZm9FbmFibGVkRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxv
Y2sqKTsKKworICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsVG9wKCkgY29uc3QgCisgICAgeyAK
KyAgICAgICAgQVNTRVJUKG1fc2hhcGUpOworICAgICAgICByZXR1cm4gbV9zaGFwZS0+c2hhcGVM
b2dpY2FsQm91bmRpbmdCb3goKS55KCk7CisgICAgfQorICAgIExheW91dFVuaXQgc2hhcGVMb2dp
Y2FsQm90dG9tKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3NoYXBlKTsKKyAgICAg
ICAgcmV0dXJuIG1fc2hhcGUtPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkubWF4WSgpOworICAg
IH0KKyAgICBib29sIGhhc1NlZ21lbnRzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBs
aW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpICYmIG1fc2VnbWVudHMuc2l6ZSgpOworICAgIH0KKyAg
ICBjb25zdCBTZWdtZW50TGlzdCYgc2VnbWVudHMoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNT
RVJUKGhhc1NlZ21lbnRzKCkpOworICAgICAgICByZXR1cm4gbV9zZWdtZW50czsKKyAgICB9Cisg
ICAgYm9vbCBjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0
VW5pdCBsaW5lQm90dG9tKTsKKyAgICBib29sIGxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkgY29u
c3Q7CisgICAgdm9pZCBjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBM
YXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpOworICAgIHZvaWQgZGlydHlTaGFwZVNpemUoKSB7IG1f
c2hhcGVTaXplRGlydHkgPSB0cnVlOyB9CisKK3ByaXZhdGU6CisgICAgRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvKFJlbmRlckJsb2NrKik7CisKKyAgICBSZW5kZXJCbG9jayogbV9ibG9jazsKKyAg
ICBPd25QdHI8RXhjbHVzaW9uU2hhcGU+IG1fc2hhcGU7CisKKyAgICBMYXlvdXRVbml0IG1fbGlu
ZVRvcDsKKyAgICBMYXlvdXRVbml0IG1fbGluZUJvdHRvbTsKKyAgICBMYXlvdXRVbml0IG1fbG9n
aWNhbFdpZHRoOworICAgIExheW91dFVuaXQgbV9sb2dpY2FsSGVpZ2h0OworCisgICAgU2VnbWVu
dExpc3QgbV9zZWdtZW50czsKKyAgICBib29sIG1fc2hhcGVTaXplRGlydHk7Cit9OworCitpbmxp
bmUgYm9vbCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmxpbmVPdmVybGFwc1NoYXBlQm91bmRz
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9zaGFwZSk7CisgICAgRmxvYXRSZWN0IHNoYXBlQm91
bmRzID0gbV9zaGFwZS0+c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKTsKKyAgICByZXR1cm4gbV9s
aW5lVG9wIDw9IHNoYXBlQm91bmRzLm1heFkoKSAmJiBtX2xpbmVCb3R0b20gPj0gc2hhcGVCb3Vu
ZHMueSgpOworfQorCit9CisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
YXlvdXRTdGF0ZS5jcHAKaW5kZXggYjQyOWJkOTc2NjI4NzE5NGFhYTA5YWUzNzkxZmFjY2E3Yjhl
ODgzYS4uZDQwNGY1MDNiODk5OWJkNTNmMmMzZjEwMDA0MjQyMWM3ZWM5YjkyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCkBAIC00Myw3ICs0Myw3IEBAIExheW91
dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSogcHJldiwgUmVuZGVyQm94KiByZW5kZXJl
ciwgY29uc3QgTGF5b3V0U2l6CiAgICAgLCBtX3JlbmRlcmVyKHJlbmRlcmVyKQogI2VuZGlmCiAj
aWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICwgbV93cmFwU2hhcGVJbmZvKDApCisgICAg
LCBtX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygwKQogI2VuZGlmCiB7CiAgICAgQVNTRVJUKG1f
bmV4dCk7CkBAIC0xMTIsOSArMTEyLDkgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKExheW91
dFN0YXRlKiBwcmV2LCBSZW5kZXJCb3gqIHJlbmRlcmVyLCBjb25zdCBMYXlvdXRTaXoKIAogI2lm
IEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBpZiAocmVuZGVyZXItPmlzUmVuZGVyQmxvY2so
KSkgewotICAgICAgICBtX3dyYXBTaGFwZUluZm8gPSB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS0+
d3JhcFNoYXBlSW5mbygpOwotICAgICAgICBpZiAoIW1fd3JhcFNoYXBlSW5mbykKLSAgICAgICAg
ICAgIG1fd3JhcFNoYXBlSW5mbyA9IG1fbmV4dC0+bV93cmFwU2hhcGVJbmZvOworICAgICAgICBt
X2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHRvUmVuZGVyQmxvY2socmVuZGVyZXIpLT5leGNs
dXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICAgICAgaWYgKCFtX2V4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbykKKyAgICAgICAgICAgIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gbV9uZXh0
LT5tX2V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzsKICAgICB9CiAjZW5kaWYKIApAQCAtMTQ0LDcg
KzE0NCw3IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShSZW5kZXJPYmplY3QqIHJvb3QpCiAg
ICAgLCBtX3JlbmRlcmVyKHJvb3QpCiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMp
Ci0gICAgLCBtX3dyYXBTaGFwZUluZm8oMCkKKyAgICAsIG1fZXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvKDApCiAjZW5kaWYKIHsKICAgICBSZW5kZXJPYmplY3QqIGNvbnRhaW5lciA9IHJvb3QtPmNv
bnRhaW5lcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaAppbmRleCBhNDFh
MjI2Nzc5NTU2OWRkYzdhZDQ1YjQwZmRiNjQzMjA4ODRjYmM1Li41NDUwZGY5Y2I4Zjg1Njg2MDQ0
MDM3ZmRkOGIwMjgwMGQ5YWRiYzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTGF5b3V0U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3Rh
dGUuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBSZW5kZXJCb3g7CiBjbGFzcyBSZW5kZXJPYmpl
Y3Q7CiBjbGFzcyBSZW5kZXJGbG93VGhyZWFkOwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
LWNsYXNzIFdyYXBTaGFwZUluZm87CitjbGFzcyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm87CiAj
ZW5kaWYKIAogY2xhc3MgTGF5b3V0U3RhdGUgewpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICwgbV9yZW5kZXJlcigwKQogI2VuZGlmCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05T
KQotICAgICAgICAsIG1fd3JhcFNoYXBlSW5mbygwKQorICAgICAgICAsIG1fZXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvKDApCiAjZW5kaWYKICAgICB7CiAgICAgfQpAQCAtOTUsNyArOTUsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBuZWVkc0Jsb2NrRGlyZWN0aW9uTG9jYXRpb25TZXRCZWZvcmVMYXlv
dXQoKSBjb25zdCB7IHJldHVybiBtX2xpbmVHcmlkIHx8IChtX2lzUGFnaW5hdGVkICYmIG1fcGFn
ZUxvZ2ljYWxIZWlnaHQpOyB9CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgV3Jh
cFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1fd3JhcFNoYXBlSW5m
bzsgfQorICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvKCkgY29uc3QgeyByZXR1cm4gbV9leGNsdXNpb25TaGFwZUluc2lkZUluZm87IH0KICNlbmRp
ZgogcHJpdmF0ZToKICAgICAvLyBUaGUgbm9ybWFsIG9wZXJhdG9yIG5ldyBpcyBkaXNhbGxvd2Vk
LgpAQCAtMTM5LDcgKzEzOSw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJPYmplY3QqIG1fcmVuZGVy
ZXI7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgV3JhcFNoYXBlSW5m
byogbV93cmFwU2hhcGVJbmZvOworICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogbV9leGNs
dXNpb25TaGFwZUluc2lkZUluZm87CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDMxZTY0MDc5NjU3Nzc0N2VmYmFlNTE4NDc0MjBmMDFh
NzU1ZDBjOGQuLmY3M2I3MTYzMDk0YzMxYWIwY2ZkZTkyMDVmMGNlY2FmMmJjNTlhZGEgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNjIsNyArNjIsNyBAQAog
I2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSNpbmNsdWRlICJXcmFwU2hhcGVJbmZvLmgi
CisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgiCiAjZW5kaWYKIAogdXNpbmcg
bmFtZXNwYWNlIHN0ZDsKQEAgLTI3OSw3ICsyNzksNyBAQCB2b2lkIFJlbmRlckJsb2NrOjp3aWxs
QmVEZXN0cm95ZWQoKQogICAgICAgICBsaW5lR3JpZEJveCgpLT5kZXN0cm95KHJlbmRlckFyZW5h
KCkpOwogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgIFdyYXBTaGFwZUluZm86OnJl
bW92ZVdyYXBTaGFwZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKKyAgICBFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm86OnJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2Nr
KHRoaXMpOwogI2VuZGlmCiAKICAgICBpZiAoVU5MSUtFTFkoZ0RlbGF5ZWRVcGRhdGVTY3JvbGxJ
bmZvU2V0ICE9IDApKQpAQCAtMzI4LDkgKzMyOCw5IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
CiAgICAgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShkaWZmLCBvbGRTdHlsZSk7CiAKICNpZiBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgLy8gRklYTUU6IEJ1ZyA4OTk5MzogU3R5bGUgY2hh
bmdlcyBzaG91bGQgYWZmZWN0IHRoZSBXcmFwU2hhcGVJbmZvcyBmb3Igb3RoZXIgcmVuZGVyIGJs
b2NrcyB0aGF0Ci0gICAgLy8gc2hhcmUgdGhlIHNhbWUgV3JhcFNoYXBlSW5mbwotICAgIHVwZGF0
ZVdyYXBTaGFwZUluZm9BZnRlclN0eWxlQ2hhbmdlKHN0eWxlKCktPndyYXBTaGFwZUluc2lkZSgp
LCBvbGRTdHlsZSA/IG9sZFN0eWxlLT53cmFwU2hhcGVJbnNpZGUoKSA6IDApOworICAgIC8vIEZJ
WE1FOiBCdWcgODk5OTM6IFN0eWxlIGNoYW5nZXMgc2hvdWxkIGFmZmVjdCB0aGUgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvcyBmb3Igb3RoZXIgcmVuZGVyIGJsb2NrcyB0aGF0CisgICAgLy8gc2hh
cmUgdGhlIHNhbWUgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvCisgICAgdXBkYXRlRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShzdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUo
KSwgb2xkU3R5bGUgPyBvbGRTdHlsZS0+d3JhcFNoYXBlSW5zaWRlKCkgOiAwKTsKICNlbmRpZgog
CiAgICAgaWYgKCFpc0Fub255bW91c0Jsb2NrKCkpIHsKQEAgLTEzODAsMjQgKzEzODAsMjQgQEAg
dm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0KCkKIH0KIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKLXZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVdyYXBTaGFwZUluZm9BZnRlclN0eWxlQ2hhbmdl
KGNvbnN0IEJhc2ljU2hhcGUqIHdyYXBTaGFwZSwgY29uc3QgQmFzaWNTaGFwZSogb2xkV3JhcFNo
YXBlKQordm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvQWZ0
ZXJTdHlsZUNoYW5nZShjb25zdCBCYXNpY1NoYXBlKiB3cmFwU2hhcGUsIGNvbnN0IEJhc2ljU2hh
cGUqIG9sZFdyYXBTaGFwZSkKIHsKICAgICAvLyBGSVhNRTogQSBmdXR1cmUgb3B0aW1pemF0aW9u
IHdvdWxkIGRvIGEgZGVlcCBjb21wYXJpc29uIGZvciBlcXVhbGl0eS4KICAgICBpZiAod3JhcFNo
YXBlID09IG9sZFdyYXBTaGFwZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHdyYXBTaGFw
ZSkgewotICAgICAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gV3JhcFNoYXBlSW5m
bzo6ZW5zdXJlV3JhcFNoYXBlSW5mb0ZvclJlbmRlckJsb2NrKHRoaXMpOwotICAgICAgICB3cmFw
U2hhcGVJbmZvLT5kaXJ0eVdyYXBTaGFwZVNpemUoKTsKKyAgICAgICAgRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8gPSBFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm86OmVuc3VyZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKHRoaXMp
OworICAgICAgICBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmRpcnR5U2hhcGVTaXplKCk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIFdyYXBTaGFwZUluZm86OnJlbW92ZVdyYXBTaGFwZUluZm9Gb3JS
ZW5kZXJCbG9jayh0aGlzKTsKKyAgICAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpyZW1v
dmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKIH0KICNlbmRp
ZgogCiB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxT
aXplKCkKIHsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgaWYgKCFpblJlbmRlckZs
b3dUaHJlYWQoKSAmJiAhd3JhcFNoYXBlSW5mbygpKQorICAgIGlmICghaW5SZW5kZXJGbG93VGhy
ZWFkKCkgJiYgIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpKQogI2Vsc2UKICAgICBpZiAoIWlu
UmVuZGVyRmxvd1RocmVhZCgpKQogI2VuZGlmCkBAIC0xNDI2LDEwICsxNDI2LDEwIEBAIHZvaWQg
UmVuZGVyQmxvY2s6OnVwZGF0ZVJlZ2lvbnNBbmRFeGNsdXNpb25zTG9naWNhbFNpemUoKQogI2lm
IEVOQUJMRShDU1NfRVhDTFVTSU9OUykKIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVFeGNsdXNp
b25TaGFwZVNpemUoKQogewotICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSB0aGlz
LT53cmFwU2hhcGVJbmZvKCk7Ci0gICAgaWYgKHdyYXBTaGFwZUluZm8pIHsKKyAgICBFeGNsdXNp
b25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHRoaXMtPmV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbygpOworICAgIGlmIChleGNsdXNpb25TaGFwZUluc2lkZUluZm8p
IHsKICAgICAgICAgYm9vbCBwZXJjZW50YWdlTG9naWNhbEhlaWdodFJlc29sdmFibGUgPSBwZXJj
ZW50YWdlTG9naWNhbEhlaWdodElzUmVzb2x2YWJsZUZyb21CbG9jayh0aGlzLCBmYWxzZSk7Ci0g
ICAgICAgIHdyYXBTaGFwZUluZm8tPmNvbXB1dGVTaGFwZVNpemUobG9naWNhbFdpZHRoKCksIHBl
cmNlbnRhZ2VMb2dpY2FsSGVpZ2h0UmVzb2x2YWJsZSA/IGxvZ2ljYWxIZWlnaHQoKSA6IFpFUk9f
TEFZT1VUX1VOSVQpOworICAgICAgICBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmNvbXB1dGVT
aGFwZVNpemUobG9naWNhbFdpZHRoKCksIHBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0UmVzb2x2YWJs
ZSA/IGxvZ2ljYWxIZWlnaHQoKSA6IFpFUk9fTEFZT1VUX1VOSVQpOwogICAgIH0KIH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCBlM2VkMjEwZGU4NDM0
NTFjOGY2MTNiMWRiYTJmYTUzNTRhYzFjZWEzLi5lMTk1ZWM3YTI0NGRiMjExNDQzMTk1NmE3OWZm
MDM0Zjk4NmUzZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAt
MzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogCiAjaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQotI2luY2x1ZGUgIldyYXBTaGFwZUluZm8uaCIKKyNpbmNsdWRlICJF
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC00MDIsOSArNDAyLDkgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0VY
Q0xVU0lPTlMpCi0gICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbygpIGNvbnN0CisgICAg
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0eWxlKCktPndyYXBTaGFwZUluc2lkZSgpICYmIFdy
YXBTaGFwZUluZm86OmlzV3JhcFNoYXBlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayh0aGlzKSA/
IFdyYXBTaGFwZUluZm86OndyYXBTaGFwZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKSA6IDA7Cisg
ICAgICAgIHJldHVybiBzdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUoKSAmJiBFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm86OmlzRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRW5hYmxlZEZvclJlbmRlckJs
b2NrKHRoaXMpID8gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpleGNsdXNpb25TaGFwZUluc2lk
ZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKSA6IDA7CiAgICAgfQogI2VuZGlmCiAKQEAgLTQ5OSw3
ICs0OTksNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKICAgICB2b2lkIGNvbXB1dGVFeGNsdXNpb25TaGFwZVNpemUoKTsKLSAgICB2b2lkIHVwZGF0
ZVdyYXBTaGFwZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IEJhc2ljU2hhcGUqLCBjb25zdCBC
YXNpY1NoYXBlKiBvbGRXcmFwU2hhcGUpOworICAgIHZvaWQgdXBkYXRlRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBCYXNpY1NoYXBlKiwgY29uc3QgQmFzaWNT
aGFwZSogb2xkV3JhcFNoYXBlKTsKICNlbmRpZgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSB7IHJldHVybiBjaGlsZHJlbigpOyB9CiAgICAgdmly
dHVhbCBjb25zdCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIGNvbnN0
IHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXggZjdjZjczZGVkNGMwYjIzM2IzYTFkZGYy
YjVkYzdlM2ViY2M2YjAxMi4uZjhjYjZhNGQ2ZWQyYjFjNjM5ZjNhODQ5OWQyNGVlMGEyNTkxMzQ1
NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxh
eW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxh
eW91dC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAKICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0
ZXJOYW1lcy5oPgogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotI2luY2x1ZGUgIldyYXBT
aGFwZUluZm8uaCIKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCIKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFNWRykKQEAgLTY0LDkgKzY0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY29uc3QgdW5zaWduZWQgY01heExpbmVEZXB0aCA9IDIwMDsKIAogI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKLXN0YXRpYyBpbmxpbmUgV3JhcFNoYXBlSW5mbyogbGF5b3V0V3JhcFNoYXBl
SW5mbyhjb25zdCBSZW5kZXJCbG9jayogYmxvY2spCitzdGF0aWMgaW5saW5lIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbyogbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKGNvbnN0IFJlbmRl
ckJsb2NrKiBibG9jaykKIHsKLSAgICByZXR1cm4gYmxvY2stPnZpZXcoKS0+bGF5b3V0U3RhdGUo
KS0+d3JhcFNoYXBlSW5mbygpOworICAgIHJldHVybiBibG9jay0+dmlldygpLT5sYXlvdXRTdGF0
ZSgpLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKIH0KICNlbmRpZgogCkBAIC04NywxMCAr
ODcsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKGJsb2NrKTsKICNpZiBFTkFC
TEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8g
PSBsYXlvdXRXcmFwU2hhcGVJbmZvKG1fYmxvY2spOworICAgICAgICBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IGxheW91dEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyhtX2Jsb2NrKTsKICAgICAgICAgLy8gRklYTUU6IEJ1ZyA5MTg3ODogQWRkIHN1
cHBvcnQgZm9yIG11bHRpcGxlIHNlZ21lbnRzLCBjdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IG9u
ZQotICAgICAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5oYXNTZWdtZW50
cygpKQotICAgICAgICAgICAgbV9zZWdtZW50ID0gJndyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClb
MF07CisgICAgICAgIGlmIChleGNsdXNpb25TaGFwZUluc2lkZUluZm8gJiYgZXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvLT5oYXNTZWdtZW50cygpKQorICAgICAgICAgICAgbV9zZWdtZW50ID0gJmV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+c2VnbWVudHMoKVswXTsKICNlbmRpZgogICAgICAgICB1
cGRhdGVBdmFpbGFibGVXaWR0aCgpOwogICAgIH0KQEAgLTgwOCwxMCArODA4LDEwIEBAIHZvaWQg
UmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJ
bmxpbmVCb3gqIGxpbmVCb3gsCiAgICAgZmxvYXQgbG9naWNhbExlZnQgPSBwaXhlbFNuYXBwZWRM
b2dpY2FsTGVmdE9mZnNldEZvckxpbmUobG9naWNhbEhlaWdodCgpLCBmaXJzdExpbmUsIGxpbmVM
b2dpY2FsSGVpZ2h0KTsKICAgICBmbG9hdCBsb2dpY2FsUmlnaHQgPSBwaXhlbFNuYXBwZWRMb2dp
Y2FsUmlnaHRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxIZWlnaHQoKSwgZmlyc3RMaW5lLCBsaW5lTG9n
aWNhbEhlaWdodCk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgIFdyYXBTaGFwZUlu
Zm8qIHdyYXBTaGFwZUluZm8gPSBsYXlvdXRXcmFwU2hhcGVJbmZvKHRoaXMpOwotICAgIGlmICh3
cmFwU2hhcGVJbmZvICYmIHdyYXBTaGFwZUluZm8tPmhhc1NlZ21lbnRzKCkpIHsKLSAgICAgICAg
bG9naWNhbExlZnQgPSBtYXg8ZmxvYXQ+KHJvdW5kVG9JbnQod3JhcFNoYXBlSW5mby0+c2VnbWVu
dHMoKVswXS5sb2dpY2FsTGVmdCksIGxvZ2ljYWxMZWZ0KTsKLSAgICAgICAgbG9naWNhbFJpZ2h0
ID0gbWluPGZsb2F0PihmbG9vclRvSW50KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9n
aWNhbFJpZ2h0KSwgbG9naWNhbFJpZ2h0KTsKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8q
IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byh0aGlzKTsKKyAgICBpZiAoZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvICYmIGV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby0+aGFzU2VnbWVudHMoKSkgeworICAgICAgICBsb2dpY2FsTGVmdCA9IG1h
eDxmbG9hdD4ocm91bmRUb0ludChleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPnNlZ21lbnRzKClb
MF0ubG9naWNhbExlZnQpLCBsb2dpY2FsTGVmdCk7CisgICAgICAgIGxvZ2ljYWxSaWdodCA9IG1p
bjxmbG9hdD4oZmxvb3JUb0ludChleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPnNlZ21lbnRzKClb
MF0ubG9naWNhbFJpZ2h0KSwgbG9naWNhbFJpZ2h0KTsKICAgICB9CiAjZW5kaWYKICAgICBmbG9h
dCBhdmFpbGFibGVMb2dpY2FsV2lkdGggPSBsb2dpY2FsUmlnaHQgLSBsb2dpY2FsTGVmdDsKQEAg
LTEzMDEsMTYgKzEzMDEsMTYgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0
c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5saW4KIAogI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKICAgICBMYXlvdXRVbml0IGFic29sdXRlTG9naWNhbFRvcDsKLSAg
ICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gbGF5b3V0V3JhcFNoYXBlSW5mbyh0aGlz
KTsKLSAgICBpZiAod3JhcFNoYXBlSW5mbykgewotICAgICAgICBpZiAod3JhcFNoYXBlSW5mbyAh
PSB0aGlzLT53cmFwU2hhcGVJbmZvKCkpIHsKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8q
IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byh0aGlzKTsKKyAgICBpZiAoZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKSB7CisgICAgICAgIGlm
IChleGNsdXNpb25TaGFwZUluc2lkZUluZm8gIT0gdGhpcy0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvKCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBJZiBsYXlvdXQgc3RhdGUgaXMgZGlzYWJs
ZWQsIHRoZSBvZmZzZXQgd2lsbCBiZSBpbmNvcnJlY3QuCiAgICAgICAgICAgICBMYXlvdXRTaXpl
IGxheW91dE9mZnNldCA9IHZpZXcoKS0+bGF5b3V0U3RhdGUoKS0+bGF5b3V0T2Zmc2V0KCk7CiAg
ICAgICAgICAgICBhYnNvbHV0ZUxvZ2ljYWxUb3AgPSBsb2dpY2FsVG9wKCkgKyAoaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSA/IGxheW91dE9mZnNldC5oZWlnaHQoKSA6IGxheW91dE9mZnNldC53
aWR0aCgpKTsKICAgICAgICAgfQogICAgICAgICAvLyBCZWdpbiBsYXlvdXQgYXQgdGhlIGxvZ2lj
YWwgdG9wIG9mIG91ciBzaGFwZSBpbnNpZGUuCi0gICAgICAgIGlmIChsb2dpY2FsSGVpZ2h0KCkg
KyBhYnNvbHV0ZUxvZ2ljYWxUb3AgPCB3cmFwU2hhcGVJbmZvLT5zaGFwZUxvZ2ljYWxUb3AoKSkK
LSAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQod3JhcFNoYXBlSW5mby0+c2hhcGVMb2dpY2Fs
VG9wKCkgLSBhYnNvbHV0ZUxvZ2ljYWxUb3ApOworICAgICAgICBpZiAobG9naWNhbEhlaWdodCgp
ICsgYWJzb2x1dGVMb2dpY2FsVG9wIDwgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5zaGFwZUxv
Z2ljYWxUb3AoKSkKKyAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQoZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLT5zaGFwZUxvZ2ljYWxUb3AoKSAtIGFic29sdXRlTG9naWNhbFRvcCk7CiAgICAg
fQogI2VuZGlmCiAKQEAgLTEzMzUsMTAgKzEzMzUsMTAgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5
b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5s
aW4KICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAgIC8vIEZJWE1FOiBCdWcgOTUz
NjE6IEl0IGlzIHBvc3NpYmxlIGZvciBhIGxpbmUgdG8gZ3JvdyBiZXlvbmQgbGluZUhlaWdodCwg
aW4gd2hpY2gKICAgICAgICAgLy8gY2FzZSB0aGVzZSBzZWdtZW50cyBtYXkgYmUgaW5jb3JyZWN0
LgotICAgICAgICBpZiAod3JhcFNoYXBlSW5mbykgeworICAgICAgICBpZiAoZXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvKSB7CiAgICAgICAgICAgICBMYXlvdXRVbml0IGxpbmVUb3AgPSBsb2dpY2Fs
SGVpZ2h0KCkgKyBhYnNvbHV0ZUxvZ2ljYWxUb3A7CiAgICAgICAgICAgICBMYXlvdXRVbml0IGxp
bmVCb3R0b20gPSBsaW5lVG9wICsgbGluZUhlaWdodChsYXlvdXRTdGF0ZS5saW5lSW5mbygpLmlz
Rmlyc3RMaW5lKCksIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6
IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKTsKLSAgICAgICAgICAg
IHdyYXBTaGFwZUluZm8tPmNvbXB1dGVTZWdtZW50c0ZvckxpbmUobGluZVRvcCwgbGluZUJvdHRv
bSk7CisgICAgICAgICAgICBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmNvbXB1dGVTZWdtZW50
c0ZvckxpbmUobGluZVRvcCwgbGluZUJvdHRvbSk7CiAgICAgICAgIH0KICNlbmRpZgogICAgICAg
ICBlbmQgPSBsaW5lQnJlYWtlci5uZXh0TGluZUJyZWFrKHJlc29sdmVyLCBsYXlvdXRTdGF0ZS5s
aW5lSW5mbygpLCByZW5kZXJUZXh0SW5mbywgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSwgY29u
c2VjdXRpdmVIeXBoZW5hdGVkTGluZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmgKaW5kZXggN2U5NzU3OTUxNjcyNDIzY2FhYmUzNDE4OTE1ZGYxYTYyMmJiNzFkYi4uZGE0YjIw
M2EwY2NmYjk5YjkxNzQ4ZTIzNjc2NWVkY2Q4Yzk3ZjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oCkBAIC0yMjUsNyArMjI1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYg
KCFkb2luZ0Z1bGxSZXBhaW50KCkgfHwgbV9sYXlvdXRTdGF0ZS0+aXNQYWdpbmF0ZWQoKSB8fCBy
ZW5kZXJlci0+aGFzQ29sdW1ucygpIHx8IHJlbmRlcmVyLT5pblJlbmRlckZsb3dUaHJlYWQoKQog
ICAgICAgICAgICAgfHwgbV9sYXlvdXRTdGF0ZS0+bGluZUdyaWQoKSB8fCAocmVuZGVyZXItPnN0
eWxlKCktPmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lR3JpZCgpICYmIHJl
bmRlcmVyLT5pc0Jsb2NrRmxvdygpKQogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAg
ICAgICAgIHx8IChyZW5kZXJlci0+aXNSZW5kZXJCbG9jaygpICYmIHRvUmVuZGVyQmxvY2socmVu
ZGVyZXIpLT53cmFwU2hhcGVJbmZvKCkpCisgICAgICAgICAgICB8fCAocmVuZGVyZXItPmlzUmVu
ZGVyQmxvY2soKSAmJiB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS0+ZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKCkpCiAjZW5kaWYKICAgICAgICAgICAgICkgewogICAgICAgICAgICAgbV9sYXlvdXRT
dGF0ZSA9IG5ldyAocmVuZGVyQXJlbmEoKSkgTGF5b3V0U3RhdGUobV9sYXlvdXRTdGF0ZSwgcmVu
ZGVyZXIsIG9mZnNldCwgcGFnZUhlaWdodCwgcGFnZUhlaWdodENoYW5nZWQsIGNvbEluZm8pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0MGMwN2MxNWZmOTllNzE4YzJkNjJiYWFiYWVlYWU5YzA4NzE3ZTQ3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEx
OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jw
b3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscwotICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg
4oCcQVMgSVPigJ0gQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIg
QkUKLSAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwKLSAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKLSAqIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRgotICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiV3JhcFNoYXBlSW5mby5oIgotCi0jaWYgRU5BQkxFKENTU19FWENM
VVNJT05TKQotCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJSZW5kZXJC
bG9jay5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXR5cGVkZWYgSGFzaE1hcDxjb25zdCBSZW5kZXJC
bG9jayosIE93blB0cjxXcmFwU2hhcGVJbmZvPiA+IFdyYXBTaGFwZUluZm9NYXA7Ci0KLXN0YXRp
YyBXcmFwU2hhcGVJbmZvTWFwJiB3cmFwU2hhcGVJbmZvTWFwKCkKLXsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFdyYXBTaGFwZUluZm9NYXAsIHN0YXRpY1dyYXBTaGFwZUluZm9NYXAsICgpKTsK
LSAgICByZXR1cm4gc3RhdGljV3JhcFNoYXBlSW5mb01hcDsKLX0KLQotV3JhcFNoYXBlSW5mbzo6
V3JhcFNoYXBlSW5mbyhSZW5kZXJCbG9jayogYmxvY2spCi0gICAgOiBtX2Jsb2NrKGJsb2NrKQot
ICAgICwgbV93cmFwU2hhcGVTaXplRGlydHkodHJ1ZSkKLXsKLX0KLQotV3JhcFNoYXBlSW5mbzo6
fldyYXBTaGFwZUluZm8oKQotewotfQotCi1XcmFwU2hhcGVJbmZvKiBXcmFwU2hhcGVJbmZvOjpl
bnN1cmVXcmFwU2hhcGVJbmZvRm9yUmVuZGVyQmxvY2soUmVuZGVyQmxvY2sqIGJsb2NrKQotewot
ICAgIFdyYXBTaGFwZUluZm9NYXA6OkFkZFJlc3VsdCByZXN1bHQgPSB3cmFwU2hhcGVJbmZvTWFw
KCkuYWRkKGJsb2NrLCBjcmVhdGUoYmxvY2spKTsKLSAgICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9y
LT5zZWNvbmQuZ2V0KCk7Ci19Ci0KLVdyYXBTaGFwZUluZm8qIFdyYXBTaGFwZUluZm86OndyYXBT
aGFwZUluZm9Gb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayogYmxvY2spCi17Ci0gICAg
QVNTRVJUKGJsb2NrLT5zdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUoKSk7Ci0gICAgcmV0dXJuIHdy
YXBTaGFwZUluZm9NYXAoKS5nZXQoYmxvY2spOwotfQotCi1ib29sIFdyYXBTaGFwZUluZm86Omlz
V3JhcFNoYXBlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayogYmxv
Y2spCi17Ci0gICAgLy8gRklYTUU6IEJ1ZyA4OTcwNzogRW5hYmxlIHNoYXBlIGluc2lkZSBmb3Ig
bm9uLXJlY3Rhbmd1bGFyIHNoYXBlcwotICAgIEJhc2ljU2hhcGUqIHNoYXBlID0gYmxvY2stPnN0
eWxlKCktPndyYXBTaGFwZUluc2lkZSgpOwotICAgIHJldHVybiAoc2hhcGUgJiYgc2hhcGUtPnR5
cGUoKSA9PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9SRUNUQU5HTEUpOwotfQotCi12b2lkIFdy
YXBTaGFwZUluZm86OnJlbW92ZVdyYXBTaGFwZUluZm9Gb3JSZW5kZXJCbG9jayhjb25zdCBSZW5k
ZXJCbG9jayogYmxvY2spCi17Ci0gICAgaWYgKCFibG9jay0+c3R5bGUoKSB8fCAhYmxvY2stPnN0
eWxlKCktPndyYXBTaGFwZUluc2lkZSgpKQotICAgICAgICByZXR1cm47Ci0gICAgd3JhcFNoYXBl
SW5mb01hcCgpLnJlbW92ZShibG9jayk7Ci19Ci0KLXZvaWQgV3JhcFNoYXBlSW5mbzo6Y29tcHV0
ZVNoYXBlU2l6ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVp
Z2h0KQotewotICAgIGlmICghbV93cmFwU2hhcGVTaXplRGlydHkgJiYgbG9naWNhbFdpZHRoID09
IG1fbG9naWNhbFdpZHRoICYmIGxvZ2ljYWxIZWlnaHQgPT0gbV9sb2dpY2FsSGVpZ2h0KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX3dyYXBTaGFwZVNpemVEaXJ0eSA9IGZhbHNlOwotICAgIG1f
bG9naWNhbFdpZHRoID0gbG9naWNhbFdpZHRoOwotICAgIG1fbG9naWNhbEhlaWdodCA9IGxvZ2lj
YWxIZWlnaHQ7Ci0KLSAgICAvLyBGSVhNRTogQnVnIDg5OTkzOiBUaGUgd3JhcCBzaGFwZSBtYXkg
Y29tZSBmcm9tIHRoZSBwYXJlbnQgb2JqZWN0Ci0gICAgQmFzaWNTaGFwZSogc2hhcGUgPSBtX2Js
b2NrLT5zdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUoKTsKLSAgICBBU1NFUlQoc2hhcGUpOwotCi0g
ICAgbV9zaGFwZSA9IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShzaGFwZSwg
bG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0LCBtX2Jsb2NrLT5zdHlsZSgpLT53cml0aW5nTW9k
ZSgpKTsKLSAgICBBU1NFUlQobV9zaGFwZSk7Ci19Ci0KLWJvb2wgV3JhcFNoYXBlSW5mbzo6Y29t
cHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJv
dHRvbSkKLXsKLSAgICBBU1NFUlQobGluZVRvcCA8PSBsaW5lQm90dG9tKTsKLSAgICBtX2xpbmVU
b3AgPSBsaW5lVG9wOwotICAgIG1fbGluZUJvdHRvbSA9IGxpbmVCb3R0b207Ci0gICAgbV9zZWdt
ZW50cy5jbGVhcigpOwotCi0gICAgaWYgKGxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkpIHsKLSAg
ICAgICAgQVNTRVJUKG1fc2hhcGUpOwotICAgICAgICBtX3NoYXBlLT5nZXRJbmNsdWRlZEludGVy
dmFscyhsaW5lVG9wLCBzdGQ6Om1pbihsaW5lQm90dG9tLCBzaGFwZUxvZ2ljYWxCb3R0b20oKSks
IG1fc2VnbWVudHMpOwotICAgIH0KLSAgICByZXR1cm4gbV9zZWdtZW50cy5zaXplKCk7Ci19Ci0K
LX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFw
ZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkOTcxN2E3MmIwZDNhNjVlOWRjNjI0MmEwNWI5Yzkw
NGNlYjEzMTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uaAorKysgL2Rldi9udWxsCkBA
IC0xLDEwNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMg
SW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscwotICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgQkUKLSAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IK
LSAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRgotICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFdyYXBTaGFwZUluZm9faAotI2RlZmluZSBXcmFwU2hhcGVJbmZvX2gKLQotI2lmIEVOQUJMRShD
U1NfRVhDTFVTSU9OUykKLQotI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlLmgiCi0jaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiTGF5b3V0VHlwZXNJbmxpbmVNZXRob2RzLmgiCi0jaW5j
bHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJlbmRlckJs
b2NrOwotCi1jbGFzcyBXcmFwU2hhcGVJbmZvIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLXB1YmxpYzoKLSAgICB+V3JhcFNoYXBlSW5mbygpOwotCi0gICAgc3RhdGljIFBhc3NPd25Q
dHI8V3JhcFNoYXBlSW5mbz4gY3JlYXRlKFJlbmRlckJsb2NrKiBibG9jaykgeyByZXR1cm4gYWRv
cHRQdHIobmV3IFdyYXBTaGFwZUluZm8oYmxvY2spKTsgfQotICAgIHN0YXRpYyBXcmFwU2hhcGVJ
bmZvKiB3cmFwU2hhcGVJbmZvRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqKTsKLSAg
ICBzdGF0aWMgV3JhcFNoYXBlSW5mbyogZW5zdXJlV3JhcFNoYXBlSW5mb0ZvclJlbmRlckJsb2Nr
KFJlbmRlckJsb2NrKik7Ci0gICAgc3RhdGljIHZvaWQgcmVtb3ZlV3JhcFNoYXBlSW5mb0ZvclJl
bmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKik7Ci0gICAgc3RhdGljIGJvb2wgaXNXcmFwU2hh
cGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKik7Ci0KLSAgICBM
YXlvdXRVbml0IHNoYXBlTG9naWNhbFRvcCgpIGNvbnN0IAotICAgIHsgCi0gICAgICAgIEFTU0VS
VChtX3NoYXBlKTsKLSAgICAgICAgcmV0dXJuIG1fc2hhcGUtPnNoYXBlTG9naWNhbEJvdW5kaW5n
Qm94KCkueSgpOwotICAgIH0KLSAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbEJvdHRvbSgpIGNv
bnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV9zaGFwZSk7Ci0gICAgICAgIHJldHVybiBtX3No
YXBlLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLm1heFkoKTsKLSAgICB9Ci0gICAgYm9vbCBo
YXNTZWdtZW50cygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbGluZU92ZXJsYXBzU2hh
cGVCb3VuZHMoKSAmJiBtX3NlZ21lbnRzLnNpemUoKTsKLSAgICB9Ci0gICAgY29uc3QgU2VnbWVu
dExpc3QmIHNlZ21lbnRzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChoYXNTZWdtZW50
cygpKTsKLSAgICAgICAgcmV0dXJuIG1fc2VnbWVudHM7Ci0gICAgfQotICAgIGJvb2wgY29tcHV0
ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJvdHRv
bSk7Ci0gICAgYm9vbCBsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpIGNvbnN0OwotICAgIHZvaWQg
Y29tcHV0ZVNoYXBlU2l6ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBsb2dp
Y2FsSGVpZ2h0KTsKLSAgICB2b2lkIGRpcnR5V3JhcFNoYXBlU2l6ZSgpIHsgbV93cmFwU2hhcGVT
aXplRGlydHkgPSB0cnVlOyB9Ci0KLXByaXZhdGU6Ci0gICAgV3JhcFNoYXBlSW5mbyhSZW5kZXJC
bG9jayopOwotCi0gICAgUmVuZGVyQmxvY2sqIG1fYmxvY2s7Ci0gICAgT3duUHRyPEV4Y2x1c2lv
blNoYXBlPiBtX3NoYXBlOwotCi0gICAgTGF5b3V0VW5pdCBtX2xpbmVUb3A7Ci0gICAgTGF5b3V0
VW5pdCBtX2xpbmVCb3R0b207Ci0gICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxXaWR0aDsKLSAgICBM
YXlvdXRVbml0IG1fbG9naWNhbEhlaWdodDsKLQotICAgIFNlZ21lbnRMaXN0IG1fc2VnbWVudHM7
Ci0gICAgYm9vbCBtX3dyYXBTaGFwZVNpemVEaXJ0eTsKLX07Ci0KLWlubGluZSBib29sIFdyYXBT
aGFwZUluZm86OmxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkgY29uc3QKLXsKLSAgICBBU1NFUlQo
bV9zaGFwZSk7Ci0gICAgRmxvYXRSZWN0IHNoYXBlQm91bmRzID0gbV9zaGFwZS0+c2hhcGVMb2dp
Y2FsQm91bmRpbmdCb3goKTsKLSAgICByZXR1cm4gbV9saW5lVG9wIDw9IHNoYXBlQm91bmRzLm1h
eFkoKSAmJiBtX2xpbmVCb3R0b20gPj0gc2hhcGVCb3VuZHMueSgpOwotfQotCi19Ci0jZW5kaWYK
LSNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>