<?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>113675</bug_id>
          
          <creation_ts>2013-03-31 23:02:20 -0700</creation_ts>
          <short_desc>fourthTier: FTL should support ArithSub</short_desc>
          <delta_ts>2013-04-01 10:01:14 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>112840</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>866912</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-31 23:02:20 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866931</commentid>
    <comment_count>1</comment_count>
      <attachid>195928</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-31 23:45:38 -0700</bug_when>
    <thetext>Created attachment 195928
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867194</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-01 10:01:14 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/147337</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195928</attachid>
            <date>2013-03-31 23:45:38 -0700</date>
            <delta_ts>2013-04-01 09:56:18 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>34950</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3MzA0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY5IEBA
CisyMDEzLTAzLTMxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogRlRMIHNob3VsZCBzdXBwb3J0IEFyaXRoU3ViCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2NzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgZG9lcyB0aGUgb2J2
aW91cyBiaXQgb2YgaW1wbGVtZW50aW5nIEFyaXRoU3ViLCBidXQgaXQgYWxzbyB0YWtlcyB0aGlz
CisgICAgICAgIGFzIGFuIG9wcG9ydHVuaXR5IHRvIGNsZWFuIHVwIGhvdyBpbnRyaW5zaWNzIGFu
ZCBjb21tb24gdmFsdWVzIChjb21tb24gdHlwZXMKKyAgICAgICAgYW5kIGNvbnN0YW50cykgYXJl
IGhhbmRsZWQuIFByZXZpb3VzbHkgdGhleSB3ZXJlIGFsbCBsdW1wZWQgdG9nZXRoZXIgaW4KKyAg
ICAgICAgRlRMOjpPdXRwdXQuIE5vdywgaW4gYW4gZWZmb3J0IHRvIHNwbGl0IHVwIHRoZSBmaWxl
cyBhbmQgbWFrZSBGVEw6Ok91dHB1dAorICAgICAgICBsZXNzIGJpZywgSSBjcmVhdGVkIGEgdGhp
bmcgY2FsbGVkIEZUTDo6Q29tbW9uVmFsdWVzIHdoaWNoIGp1c3QgdHJhY2tzIHRoZQorICAgICAg
ICBjb21tb24gdmFsdWVzLCBhbmQgYSB0aGluZyBjYWxsZWQgRlRMOjpJbnRyaW5zaWNSZXBvc2l0
b3J5IHdoaWNoIGp1c3QgdHJhY2tzCisgICAgICAgIGludHJpbnNpY3MuIFRoZXNlIGFuZCBGVEw6
Ok91dHB1dCBhcmUgYWxsIHJlbGF0ZWQgdG8gZWFjaCBvdGhlciBpbiBhIGxpbmVhcgorICAgICAg
ICBoaWVyYXJjaHkuIE1vcmVvdmVyLCBJbnRyaW5zaWNSZXBvc2l0b3J5IHVzZXMgbWFjcm8tZnUg
dG8gbWFrZSBpdCBlYXN5IHRvCisgICAgICAgIGRlY2xhcmUgbmV3IGludHJpbnNpY3MgaW4gdGhl
IGZ1dHVyZS4KKyAgICAgICAgCisgICAgICAgIEkgYWxzbyBvdXQtb2YtbGluZWQgc29tZSB0aGlu
Z3MgYW5kIG1hZGUgLmNwcCBmaWxlcyBmb3IgZWFjaCBvZiB0aGVzZSBjbGFzc2VzLgorICAgICAg
ICBJbml0aWFsaXplIEkgd2Fzbid0IGdvaW5nIHRvIGRvIHRoaXMgYnV0IHRoZW4gSSByZWFsaXpl
ZCB0aGF0IEZUTDo6T3V0cHV0IGlzCisgICAgICAgIGFscmVhZHkgaW5jbHVkZWQgaW4gbXVsdGlw
bGUgcGxhY2VzLiBQcm9iYWJseSBpdCdzIGJldHRlciBpZiBzb21lIG9mIGl0cyBndXRzCisgICAg
ICAgIGFyZSBub3QgaW5saW5lLCBhbmQgaXQncyBhbHNvIGdvb2QgdG8gbm93IGhhdmUgLmNwcCAi
bGFuZGluZyBwYWRzIiBpZiB3ZSBldmVyCisgICAgICAgIHdhbnQgdG8gYWRkIG1vcmUgdGhpbmdz
IHRvIHRoYXQgY2xhc3MuCisgICAgICAgIAorICAgICAgICBOb3RlIHRoYXQgYSBsb3Qgb2YgaG93
IHRoZXNlIHRoaW5ncyBhcmUgZGVzaWduZWQgaGFzIHRvIGRvIHdpdGggdGhlIGZhY3QKKyAgICAg
ICAgdGhhdCBwcmV0dHkgc29vbiBoZXJlIEknbGwgaGF2ZSB0byBzd2l0Y2ggdXMgZnJvbSB1c2lu
ZyB0aGUgTExWTSBnbG9iYWwKKyAgICAgICAgY29udGV4dCB0byB1c2luZyBhIGNvbnRleHQgdGhh
dCB3ZSBjcmVhdGUuIFdoZW4gdGhhdCBoYXBwZW5zLCBhbnlvbmUgd2hvCisgICAgICAgIGNyZWF0
ZXMgYW55dGhpbmcgd2lsbCBoYXZlIHRvIGtub3cgdGhlIGNvbnRleHQ7IHRoYXQncyB3aHkgRlRM
OjpDb21tb25WYWx1ZXMKKyAgICAgICAgYWxyZWFkeSBrbm93cyB0aGUgbW9kdWxlIGJ1dCBkb2Vz
bid0IHVzZSBpdCAtIGluIHRoZSBmdXR1cmUgaXQgd2lsbCBoYXZlIHRvCisgICAgICAgIGRvIHRo
aW5ncyB3aXRoIGl0LgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBmdGwvRlRMQWJicmV2aWF0aW9ucy5oOgorICAgICAgICAo
SlNDOjpGVEw6OmJ1aWxkU3ViKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6QWJzdHJhY3RIZWFwUmVwb3NpdG9yeTo6QWJz
dHJhY3RIZWFwUmVwb3NpdG9yeSk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTENvbW1v
blZhbHVlcy5jcHA6IEFkZGVkLgorICAgICAgICAoRlRMKToKKyAgICAgICAgKEpTQzo6RlRMOjpD
b21tb25WYWx1ZXM6OkNvbW1vblZhbHVlcyk6CisgICAgICAgICogZnRsL0ZUTENvbW1vblZhbHVl
cy5oOiBBZGRlZC4KKyAgICAgICAgKEZUTCk6CisgICAgICAgIChDb21tb25WYWx1ZXMpOgorICAg
ICAgICAoSlNDOjpGVEw6OkNvbW1vblZhbHVlczo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogZnRs
L0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKEZUTCk6CisgICAg
ICAgIChKU0M6OkZUTDo6SW50cmluc2ljUmVwb3NpdG9yeTo6SW50cmluc2ljUmVwb3NpdG9yeSk6
CisgICAgICAgICogZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDogQWRkZWQuCisgICAgICAg
IChGVEwpOgorICAgICAgICAoSW50cmluc2ljUmVwb3NpdG9yeSk6CisgICAgICAgICogZnRsL0ZU
TExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxl
QXJpdGhTdWIpOgorICAgICAgICAoTG93ZXJERkdUb0xMVk0pOgorICAgICAgICAqIGZ0bC9GVExP
dXRwdXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEZUTCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0
cHV0OjpPdXRwdXQpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6fk91dHB1dCk6CisgICAg
ICAgICogZnRsL0ZUTE91dHB1dC5oOgorICAgICAgICAoT3V0cHV0KToKKyAgICAgICAgKEpTQzo6
RlRMOjpPdXRwdXQ6OmluaXRpYWxpemUpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6c3Vi
KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OmFkZFdpdGhPdmVyZmxvdzMyKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnN1YldpdGhPdmVyZmxvdzMyKToKKyAgICAgICAgKEpTQzo6
RlRMOjpPdXRwdXQ6Om11bFdpdGhPdmVyZmxvdzMyKToKKwogMjAxMy0wMy0zMSAgRmlsaXAgUGl6
bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTM2NTYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiAxNDcyOTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjk4LDYgKzI5
OCwxMSBAQAogCQkwRkVBMEExRTE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkVBMEExOTE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5j
cHAgKi87IH07CiAJCTBGRUEwQTFGMTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0cmFjdEhlYXBS
ZXBvc2l0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkVBMEExQTE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGRUEw
QTIwMTcwOEIwMDcwMEJCNzIyQyAvKiBGVExUeXBlZFBvaW50ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUEwQTFCMTcwOEIwMDcwMEJCNzIyQyAv
KiBGVExUeXBlZFBvaW50ZXIuaCAqLzsgfTsKKwkJMEZFQTBBMjMxNzA5NjA2OTAwQkI3MjJDIC8q
IEZUTENvbW1vblZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZFQTBBMjExNzA5NjA2OTAwQkI3MjJDIC8qIEZUTENvbW1vblZhbHVlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGRUEwQTI0
MTcwOTYwNjkwMEJCNzIyQyAvKiBGVExJbnRyaW5zaWNSZXBvc2l0b3J5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVBMEEyMjE3MDk2MDY5MDBCQjcy
MkMgLyogRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGRUEwQTI3MTcwOTYyM0IwMEJCNzIyQyAvKiBGVExD
b21tb25WYWx1ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZFQTBBMjUxNzA5NjIzQjAwQkI3MjJDIC8qIEZUTENvbW1vblZhbHVlcy5jcHAgKi87
IH07CisJCTBGRUEwQTI4MTcwOTYyM0IwMEJCNzIyQyAvKiBGVExJbnRyaW5zaWNSZXBvc2l0b3J5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUEw
QTI2MTcwOTYyM0IwMEJCNzIyQyAvKiBGVExJbnRyaW5zaWNSZXBvc2l0b3J5LmNwcCAqLzsgfTsK
KwkJMEZFQTBBMkExNzA5NjI5NjAwQkI3MjJDIC8qIEZUTE91dHB1dC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVBMEEyOTE3MDk2Mjk2MDBCQjcy
MkMgLyogRlRMT3V0cHV0LmNwcCAqLzsgfTsKIAkJMEZFQjNFQ0QxNjIzN0Y0RDAwQUI2N0FEIC8q
IFR5cGVkQXJyYXlEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkVCM0VDQjE2MjM3RjQ3MDBBQjY3QUQgLyogVHlwZWRBcnJheURlc2Ny
aXB0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRkVCM0VDRjE2MjM3RjZDMDBBQjY3QUQgLyogTWFjcm9Bc3NlbWJsZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQjNFQ0UxNjIzN0Y2NzAw
QUI2N0FEIC8qIE1hY3JvQXNzZW1ibGVyLmNwcCAqLzsgfTsKIAkJMEZFRkM5QUExNjgxQTNCMzAw
NTY3RjUzIC8qIERGR09TUkV4aXRKdW1wUGxhY2Vob2xkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFRkM5QTcxNjgxQTNCMDAwNTY3RjUzIC8q
IERGR09TUkV4aXRKdW1wUGxhY2Vob2xkZXIuY3BwICovOyB9OwpAQCAtMTIzMiw2ICsxMjM3LDEx
IEBACiAJCTBGRUEwQTE5MTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuY3BwOyBwYXRoID0gZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVBMEExQTE3MDhCMDA3MDBCQjcy
MkMgLyogRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBGVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7IHBhdGggPSBmdGwvRlRMQWJz
dHJhY3RIZWFwUmVwb3NpdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVB
MEExQjE3MDhCMDA3MDBCQjcyMkMgLyogRlRMVHlwZWRQb2ludGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEZUTFR5cGVkUG9pbnRlci5oOyBwYXRoID0gZnRsL0ZUTFR5cGVk
UG9pbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkVBMEEyMTE3MDk2MDY5
MDBCQjcyMkMgLyogRlRMQ29tbW9uVmFsdWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEZUTENvbW1vblZhbHVlcy5oOyBwYXRoID0gZnRsL0ZUTENvbW1vblZhbHVlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkVBMEEyMjE3MDk2MDY5MDBCQjcyMkMgLyog
RlRMSW50cmluc2ljUmVwb3NpdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBGVExJbnRyaW5zaWNSZXBvc2l0b3J5Lmg7IHBhdGggPSBmdGwvRlRMSW50cmluc2ljUmVwb3Np
dG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkVBMEEyNTE3MDk2MjNCMDBC
QjcyMkMgLyogRlRMQ29tbW9uVmFsdWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEZUTENvbW1vblZhbHVlcy5jcHA7IHBhdGggPSBmdGwvRlRMQ29tbW9uVmFsdWVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZFQTBBMjYxNzA5NjIzQjAwQkI3
MjJDIC8qIEZUTEludHJpbnNpY1JlcG9zaXRvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gRlRMSW50cmluc2ljUmVwb3NpdG9yeS5jcHA7IHBhdGggPSBmdGwvRlRM
SW50cmluc2ljUmVwb3NpdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBG
RUEwQTI5MTcwOTYyOTYwMEJCNzIyQyAvKiBGVExPdXRwdXQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gRlRMT3V0cHV0LmNwcDsgcGF0aCA9IGZ0bC9GVExPdXRwdXQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVCM0VDQjE2MjM3RjQ3MDBBQjY3
QUQgLyogVHlwZWRBcnJheURlc2NyaXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVHlwZWRBcnJheURlc2NyaXB0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEZFQjNFQ0UxNjIzN0Y2NzAwQUI2N0FEIC8qIE1hY3JvQXNzZW1ibGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hY3JvQXNzZW1ibGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFRkM5QTcxNjgxQTNCMDAwNTY3RjUzIC8qIERGR09T
UkV4aXRKdW1wUGxhY2Vob2xkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gREZHT1NSRXhpdEp1bXBQbGFjZWhvbGRlci5jcHA7IHBhdGggPSBkZmcvREZHT1NSRXhp
dEp1bXBQbGFjZWhvbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDA4
LDEzICsyMDE4LDE4IEBACiAJCQkJMEZFQTA5RkQxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTEFiYnJl
dmlhdGlvbnMuaCAqLywKIAkJCQkwRkVBMDlGRTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJp
bGl0aWVzLmNwcCAqLywKIAkJCQkwRkVBMDlGRjE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJp
bGl0aWVzLmggKi8sCisJCQkJMEZFQTBBMjUxNzA5NjIzQjAwQkI3MjJDIC8qIEZUTENvbW1vblZh
bHVlcy5jcHAgKi8sCisJCQkJMEZFQTBBMjExNzA5NjA2OTAwQkI3MjJDIC8qIEZUTENvbW1vblZh
bHVlcy5oICovLAogCQkJCTBGRUEwQTAwMTcwNTEzREIwMEJCNzIyQyAvKiBGVExDb21waWxlLmNw
cCAqLywKIAkJCQkwRkVBMEEwMTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ29tcGlsZS5oICovLAor
CQkJCTBGRUEwQTI2MTcwOTYyM0IwMEJCNzIyQyAvKiBGVExJbnRyaW5zaWNSZXBvc2l0b3J5LmNw
cCAqLywKKwkJCQkwRkVBMEEyMjE3MDk2MDY5MDBCQjcyMkMgLyogRlRMSW50cmluc2ljUmVwb3Np
dG9yeS5oICovLAogCQkJCTBGRUEwQTAyMTcwNTEzREIwMEJCNzIyQyAvKiBGVExKSVRDb2RlLmNw
cCAqLywKIAkJCQkwRkVBMEEwMzE3MDUxM0RCMDBCQjcyMkMgLyogRlRMSklUQ29kZS5oICovLAog
CQkJCTBGRUEwQTEzMTcwNjM2MzYwMEJCNzIyQyAvKiBGVExMTFZNSGVhZGVycy5oICovLAogCQkJ
CTBGRUEwQTA0MTcwNTEzREIwMEJCNzIyQyAvKiBGVExMb3dlckRGR1RvTExWTS5jcHAgKi8sCiAJ
CQkJMEZFQTBBMDUxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTExvd2VyREZHVG9MTFZNLmggKi8sCisJ
CQkJMEZFQTBBMjkxNzA5NjI5NjAwQkI3MjJDIC8qIEZUTE91dHB1dC5jcHAgKi8sCiAJCQkJMEZF
QTBBMDYxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTE91dHB1dC5oICovLAogCQkJCTBGRUEwQTE1MTcw
NkJCOTAwMEJCNzIyQyAvKiBGVExTdGF0ZS5jcHAgKi8sCiAJCQkJMEZFQTBBMDcxNzA1MTNEQjAw
QkI3MjJDIC8qIEZUTFN0YXRlLmggKi8sCkBAIC0zMDUyLDYgKzMwNjcsNyBAQAogCQkJCTBGQkQ3
RTY5MTQ0Nzk5OTYwMDQ4MTMxNSAvKiBDb2RlT3JpZ2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjIxQzI3RDE0QkU3MjdBMDBBREM2NEIgLyogQ29kZVNwZWNpYWxpemF0aW9uS2luZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYwQjgzQTcxNEJDRjUwNzAwODg1QjRGIC8qIENvZGVUeXBlLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkVBMEEyMzE3MDk2MDY5MDBCQjcyMkMgLyogRlRMQ29tbW9uVmFs
dWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNGMzBFMTZGNUNEMDBCMzQ0NjAgLyogQ29t
bW9uSWRlbnRpZmllcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBDMTcwNTEzREIwMEJC
NzIyQyAvKiBGVExDb21waWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE1RjE1RjE0QjdBNzNF
MDA1REUzN0QgLyogQ29tbW9uU2xvd1BhdGhzLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNDYsNiAr
MzE2Miw3IEBACiAJCQkJMEZEREJGQjYxNjY2RUVEQTAwQzU1RkVGIC8qIERGR1ZhcmlhYmxlQWNj
ZXNzRGF0YUR1bXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzQ5MTUyMjgwOTYwMENEODkx
MCAvKiBERkdWYXJpYWJsZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCREM0QjE1MjI4
MDlEMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZFQTBBMjQxNzA5NjA2OTAwQkI3MjJDIC8qIEZUTEludHJpbnNpY1JlcG9zaXRvcnkuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRkZDOTYwMTRFRjkwQkQwMEM3MjUzMiAvKiBERkdWaXJ0dWFs
UmVnaXN0ZXJBbGxvY2F0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjQyNzMxMTU4
RUJENTQwMDRDQjlGRiAvKiBEaXNhc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMzA0
NjA3MEUxRjQ5N0YwMDMyMzJDRiAvKiBFcnJvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zODM5LDYg
KzM4NTYsNyBAQAogCQkJCTE0ODE2RTFCMTU0Q0M1NkMwMEI4MDU0QyAvKiBCbG9ja0FsbG9jYXRv
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg2MzEwN0VDMTFBMDAxM0U3QjIgLyogQm9v
bGVhbkNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjgwODY0MTA3RUMxMUEw
MDEzRTdCMiAvKiBCb29sZWFuT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUEwQTI4
MTcwOTYyM0IwMEJCNzIyQyAvKiBGVExJbnRyaW5zaWNSZXBvc2l0b3J5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0MjgwODY1MTA3RUMxMUEwMDEzRTdCMiAvKiBCb29sZWFuUHJvdG90eXBlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0OEYyMUFBMTA3RUM1M0EwMDQyRUMyQyAvKiBCeXRlY29k
ZUdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDgyRDEwN0VDMDU3MDAxM0U3
QjIgLyogQ2FsbERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zODkwLDYgKzM5MDgsNyBAQAog
CQkJCUMyQ0YzOUMxMTZFMTVBODEwMERENjlCRSAvKiBKU0FQSVdyYXBwZXJPYmplY3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYyQkRDMTUxNTFDNUQ0RDAwQ0Q4OTEwIC8qIERGR0ZpeHVwUGhh
c2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZFQzlEQzcxMzI4REY4MjAwMkIyQUQ3IC8qIERG
R0dyYXBoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUEwQTI3MTcwOTYyM0IwMEJCNzIyQyAv
KiBGVExDb21tb25WYWx1ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZFQzlEQ0IxMzI4REY4
MjAwMkIyQUQ3IC8qIERGR0pJVENvbXBpbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjBG
MTk5MTZCNzI5RjYwMDVERjk1QiAvKiBERkdMb25nTGl2ZWRTdGF0ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjJCREM0RDE1MjI4MTg2MDBDRDg5MTAgLyogREZHTWluaWZpZWROb2RlLmNwcCBp
biBTb3VyY2VzICovLApAQCAtNDA3OCw2ICs0MDk3LDcgQEAKIAkJCQkxNDQ2OURFODEwN0VDN0U3
MDA2NTA0NDYgLyogUHJvcGVydHlTbG90LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NzRDMzND
MTZBQTJEOUIwMDYyRjAxRCAvKiBQcm90b3R5cGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY5MzMyQTMxNENBN0RENzAwODVGM0M2IC8qIFB1dEJ5SWRTdGF0dXMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZFQTBBMkExNzA5NjI5NjAwQkI3MjJDIC8qIEZUTE91dHB1dC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkY2MEFDMzE2NzQwRjg4MDAwMjk3NzkgLyogUmVkdWNlV2hpdGVzcGFj
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg0MTEwN0VDMDkzMDAxM0U3QjIgLyogUmVn
RXhwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExNzEyQjNCMTFDN0IyMTIwMDdBNTMxNSAvKiBS
ZWdFeHBDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQWJicmV2aWF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQWJicmV2aWF0aW9ucy5oCShyZXZpc2lvbiAxNDcyOTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFiYnJldmlhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAt
MTM1LDYgKzEzNSw3IEBAIHN0YXRpYyBpbmxpbmUgTEJhc2ljQmxvY2sgaW5zZXJ0QmFzaWNCbG8K
IAogc3RhdGljIGlubGluZSBMVmFsdWUgYnVpbGRBbGxvY2EoTEJ1aWxkZXIgYnVpbGRlciwgTFR5
cGUgdHlwZSkgeyByZXR1cm4gTExWTUJ1aWxkQWxsb2NhKGJ1aWxkZXIsIHR5cGUsICIiKTsgfQog
c3RhdGljIGlubGluZSBMVmFsdWUgYnVpbGRBZGQoTEJ1aWxkZXIgYnVpbGRlciwgTFZhbHVlIGxl
ZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gTExWTUJ1aWxkQWRkKGJ1aWxkZXIsIGxlZnQsIHJp
Z2h0LCAiIik7IH0KK3N0YXRpYyBpbmxpbmUgTFZhbHVlIGJ1aWxkU3ViKExCdWlsZGVyIGJ1aWxk
ZXIsIExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIExMVk1CdWlsZFN1YihidWls
ZGVyLCBsZWZ0LCByaWdodCwgIiIpOyB9CiBzdGF0aWMgaW5saW5lIExWYWx1ZSBidWlsZE11bChM
QnVpbGRlciBidWlsZGVyLCBMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVybiBMTFZN
QnVpbGRNdWwoYnVpbGRlciwgbGVmdCwgcmlnaHQsICIiKTsgfQogc3RhdGljIGlubGluZSBMVmFs
dWUgYnVpbGRBbmQoTEJ1aWxkZXIgYnVpbGRlciwgTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkg
eyByZXR1cm4gTExWTUJ1aWxkQW5kKGJ1aWxkZXIsIGxlZnQsIHJpZ2h0LCAiIik7IH0KIHN0YXRp
YyBpbmxpbmUgTFZhbHVlIGJ1aWxkT3IoTEJ1aWxkZXIgYnVpbGRlciwgTFZhbHVlIGxlZnQsIExW
YWx1ZSByaWdodCkgeyByZXR1cm4gTExWTUJ1aWxkT3IoYnVpbGRlciwgbGVmdCwgcmlnaHQsICIi
KTsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFi
c3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwCShyZXZpc2lvbiAxNDcyOTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNSwyNSArMzUsMjUgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewog
QWJzdHJhY3RIZWFwUmVwb3NpdG9yeTo6QWJzdHJhY3RIZWFwUmVwb3NpdG9yeSgpCiAgICAgOiBy
b290KDAsICJqc2NSb290IikKIAotI2RlZmluZSBBQlNUUkFDVF9IRUFQX0RFQ0xBUkFUSU9OKG5h
bWUpICwgbmFtZSgmcm9vdCwgI25hbWUpCi0gICAgRk9SX0VBQ0hfQUJTVFJBQ1RfSEVBUChBQlNU
UkFDVF9IRUFQX0RFQ0xBUkFUSU9OKQotI3VuZGVmIEFCU1RSQUNUX0hFQVBfREVDTEFSQVRJT04K
LQotI2RlZmluZSBBQlNUUkFDVF9GSUVMRF9ERUNMQVJBVElPTihuYW1lLCBvZmZzZXQpICwgbmFt
ZSgmcm9vdCwgI25hbWUsIG9mZnNldCkKLSAgICBGT1JfRUFDSF9BQlNUUkFDVF9GSUVMRChBQlNU
UkFDVF9GSUVMRF9ERUNMQVJBVElPTikKLSN1bmRlZiBBQlNUUkFDVF9GSUVMRF9ERUNMQVJBVElP
TgorI2RlZmluZSBBQlNUUkFDVF9IRUFQX0lOSVRJQUxJWkFUSU9OKG5hbWUpICwgbmFtZSgmcm9v
dCwgI25hbWUpCisgICAgRk9SX0VBQ0hfQUJTVFJBQ1RfSEVBUChBQlNUUkFDVF9IRUFQX0lOSVRJ
QUxJWkFUSU9OKQorI3VuZGVmIEFCU1RSQUNUX0hFQVBfSU5JVElBTElaQVRJT04KKworI2RlZmlu
ZSBBQlNUUkFDVF9GSUVMRF9JTklUSUFMSVpBVElPTihuYW1lLCBvZmZzZXQpICwgbmFtZSgmcm9v
dCwgI25hbWUsIG9mZnNldCkKKyAgICBGT1JfRUFDSF9BQlNUUkFDVF9GSUVMRChBQlNUUkFDVF9G
SUVMRF9JTklUSUFMSVpBVElPTikKKyN1bmRlZiBBQlNUUkFDVF9GSUVMRF9JTklUSUFMSVpBVElP
TgogICAgIAotI2RlZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfREVDTEFSQVRJT04obmFtZSwg
c2l6ZSkgLCBuYW1lKCZyb290LCAjbmFtZSwgc2l6ZSkKLSAgICBGT1JfRUFDSF9JTkRFWEVEX0FC
U1RSQUNUX0hFQVAoSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0RFQ0xBUkFUSU9OKQotI3VuZGVmIElO
REVYRURfQUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElPTgorI2RlZmluZSBJTkRFWEVEX0FCU1RSQUNU
X0hFQVBfSU5JVElBTElaQVRJT04obmFtZSwgc2l6ZSkgLCBuYW1lKCZyb290LCAjbmFtZSwgc2l6
ZSkKKyAgICBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAoSU5ERVhFRF9BQlNUUkFDVF9I
RUFQX0lOSVRJQUxJWkFUSU9OKQorI3VuZGVmIElOREVYRURfQUJTVFJBQ1RfSEVBUF9JTklUSUFM
SVpBVElPTgogICAgIAotI2RlZmluZSBOVU1CRVJFRF9BQlNUUkFDVF9IRUFQX0RFQ0xBUkFUSU9O
KG5hbWUpICwgbmFtZSgmcm9vdCwgI25hbWUpCi0gICAgRk9SX0VBQ0hfTlVNQkVSRURfQUJTVFJB
Q1RfSEVBUChOVU1CRVJFRF9BQlNUUkFDVF9IRUFQX0RFQ0xBUkFUSU9OKQotI3VuZGVmIE5VTUJF
UkVEX0FCU1RSQUNUX0hFQVBfREVDTEFSQVRJT04KLQotI2RlZmluZSBBQlNPTFVURV9BQlNUUkFD
VF9IRUFQX0RFQ0xBUkFUSU9OKG5hbWUpICwgbmFtZSgmcm9vdCwgI25hbWUpCi0gICAgRk9SX0VB
Q0hfQUJTT0xVVEVfQUJTVFJBQ1RfSEVBUChBQlNPTFVURV9BQlNUUkFDVF9IRUFQX0RFQ0xBUkFU
SU9OKQotI3VuZGVmIEFCU09MVVRFX0FCU1RSQUNUX0hFQVBfREVDTEFSQVRJT04KKyNkZWZpbmUg
TlVNQkVSRURfQUJTVFJBQ1RfSEVBUF9JTklUSUFMSVpBVElPTihuYW1lKSAsIG5hbWUoJnJvb3Qs
ICNuYW1lKQorICAgIEZPUl9FQUNIX05VTUJFUkVEX0FCU1RSQUNUX0hFQVAoTlVNQkVSRURfQUJT
VFJBQ1RfSEVBUF9JTklUSUFMSVpBVElPTikKKyN1bmRlZiBOVU1CRVJFRF9BQlNUUkFDVF9IRUFQ
X0lOSVRJQUxJWkFUSU9OCisKKyNkZWZpbmUgQUJTT0xVVEVfQUJTVFJBQ1RfSEVBUF9JTklUSUFM
SVpBVElPTihuYW1lKSAsIG5hbWUoJnJvb3QsICNuYW1lKQorICAgIEZPUl9FQUNIX0FCU09MVVRF
X0FCU1RSQUNUX0hFQVAoQUJTT0xVVEVfQUJTVFJBQ1RfSEVBUF9JTklUSUFMSVpBVElPTikKKyN1
bmRlZiBBQlNPTFVURV9BQlNUUkFDVF9IRUFQX0lOSVRJQUxJWkFUSU9OCiAKICAgICAsIG1fdGJh
YUtpbmQobWRLaW5kSUQoInRiYWEiKSkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJKHJldmlzaW9uIDE0NzI5NykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODUsNiArODUsNyBAQCBib29sIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBWYWx1ZUFkZDoKICAgICAgICAgICAgIGNhc2Ug
QXJpdGhBZGQ6CisgICAgICAgICAgICBjYXNlIEFyaXRoU3ViOgogICAgICAgICAgICAgY2FzZSBB
cml0aE11bDoKICAgICAgICAgICAgICAgICBpZiAobm9kZS0+YmluYXJ5VXNlS2luZCgpID09IElu
dDMyVXNlKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMQ29tbW9uVmFsdWVzLmgi
CisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwg
eworCitDb21tb25WYWx1ZXM6OkNvbW1vblZhbHVlcygpCisgICAgOiB2b2lkVHlwZShGVEw6OnZv
aWRUeXBlKCkpCisgICAgLCBib29sZWFuKGludDFUeXBlKCkpCisgICAgLCBpbnQzMihpbnQzMlR5
cGUoKSkKKyAgICAsIGludDY0KGludDY0VHlwZSgpKQorICAgICwgaW50UHRyKGludFB0clR5cGUo
KSkKKyAgICAsIHJlZjMyKHBvaW50ZXJUeXBlKGludDMyKSkKKyAgICAsIHJlZjY0KHBvaW50ZXJU
eXBlKGludDY0KSkKKyAgICAsIHJlZlB0cihwb2ludGVyVHlwZShpbnRQdHIpKQorICAgICwgYm9v
bGVhblRydWUoY29uc3RJbnQoYm9vbGVhbiwgdHJ1ZSwgWmVyb0V4dGVuZCkpCisgICAgLCBib29s
ZWFuRmFsc2UoY29uc3RJbnQoYm9vbGVhbiwgZmFsc2UsIFplcm9FeHRlbmQpKQorICAgICwgaW50
MzJaZXJvKGNvbnN0SW50KGludDMyLCAwLCBTaWduRXh0ZW5kKSkKKyAgICAsIGludDY0WmVybyhj
b25zdEludChpbnQ2NCwgMCwgU2lnbkV4dGVuZCkpCisgICAgLCBpbnRQdHJaZXJvKGNvbnN0SW50
KGludFB0ciwgMCwgU2lnbkV4dGVuZCkpCisgICAgLCBpbnRQdHJPbmUoY29uc3RJbnQoaW50UHRy
LCAxLCBTaWduRXh0ZW5kKSkKKyAgICAsIGludFB0clR3byhjb25zdEludChpbnRQdHIsIDIsIFNp
Z25FeHRlbmQpKQorICAgICwgaW50UHRyVGhyZWUoY29uc3RJbnQoaW50UHRyLCAzLCBTaWduRXh0
ZW5kKSkKKyAgICAsIGludFB0ckZvdXIoY29uc3RJbnQoaW50UHRyLCA0LCBTaWduRXh0ZW5kKSkK
KyAgICAsIGludFB0ckVpZ2h0KGNvbnN0SW50KGludFB0ciwgOCwgU2lnbkV4dGVuZCkpCisgICAg
LCBpbnRQdHJQdHIoY29uc3RJbnQoaW50UHRyLCBzaXplb2Yodm9pZCopLCBTaWduRXh0ZW5kKSkK
KyAgICAsIG1fbW9kdWxlKDApCit7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKwor
I2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENvbW1vblZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBGVExDb21tb25WYWx1ZXNfaAorI2RlZmluZSBGVExDb21tb25WYWx1ZXNfaAorCisjaW5jbHVk
ZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgIkZU
TEFiYnJldmlhdGlvbnMuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitj
bGFzcyBDb21tb25WYWx1ZXMgeworcHVibGljOgorICAgIENvbW1vblZhbHVlcygpOworICAgIAor
ICAgIHZvaWQgaW5pdGlhbGl6ZShMTW9kdWxlIG1vZHVsZSkKKyAgICB7CisgICAgICAgIG1fbW9k
dWxlID0gbW9kdWxlOworICAgIH0KKyAgICAKKyAgICBjb25zdCBMVHlwZSB2b2lkVHlwZTsKKyAg
ICBjb25zdCBMVHlwZSBib29sZWFuOworICAgIGNvbnN0IExUeXBlIGludDMyOworICAgIGNvbnN0
IExUeXBlIGludDY0OworICAgIGNvbnN0IExUeXBlIGludFB0cjsKKyAgICBjb25zdCBMVHlwZSBy
ZWYzMjsKKyAgICBjb25zdCBMVHlwZSByZWY2NDsKKyAgICBjb25zdCBMVHlwZSByZWZQdHI7Cisg
ICAgY29uc3QgTFZhbHVlIGJvb2xlYW5UcnVlOworICAgIGNvbnN0IExWYWx1ZSBib29sZWFuRmFs
c2U7CisgICAgY29uc3QgTFZhbHVlIGludDMyWmVybzsKKyAgICBjb25zdCBMVmFsdWUgaW50NjRa
ZXJvOworICAgIGNvbnN0IExWYWx1ZSBpbnRQdHJaZXJvOworICAgIGNvbnN0IExWYWx1ZSBpbnRQ
dHJPbmU7CisgICAgY29uc3QgTFZhbHVlIGludFB0clR3bzsKKyAgICBjb25zdCBMVmFsdWUgaW50
UHRyVGhyZWU7CisgICAgY29uc3QgTFZhbHVlIGludFB0ckZvdXI7CisgICAgY29uc3QgTFZhbHVl
IGludFB0ckVpZ2h0OworICAgIGNvbnN0IExWYWx1ZSBpbnRQdHJQdHI7CisgICAgCisgICAgTE1v
ZHVsZSBtX21vZHVsZTsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlm
IC8vIEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMQ29tbW9uVmFsdWVzX2gKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9z
aXRvcnkuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJ
bnRyaW5zaWNSZXBvc2l0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJGVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgiCisKKyNpZiBFTkFC
TEUoRlRMX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitJbnRyaW5z
aWNSZXBvc2l0b3J5OjpJbnRyaW5zaWNSZXBvc2l0b3J5KCkKKyAgICA6IENvbW1vblZhbHVlcygp
IC8vIENhbGwgdGhpcyBleHBsaWNpdGx5IHRvIG1ha2UgdGhlIGZvbGxvd2luZyBtYWNybyBtYWdp
YyB3b3JrLgorI2RlZmluZSBJTlRSSU5TSUNfSU5JVElBTElaQVRJT04ob3VyTmFtZSwgbGx2bU5h
bWUsIHR5cGUpICwgbV8jI291ck5hbWUoMCkKKyAgICBGT1JfRUFDSF9GVExfSU5UUklOU0lDKElO
VFJJTlNJQ19JTklUSUFMSVpBVElPTikKKyN1bmRlZiBJTlRSSU5TSUNfSU5JVElBTElaQVRJT04K
K3sKK30KKworI2RlZmluZSBJTlRSSU5TSUNfR0VUVEVSX1NMT1dfREVGSU5JVElPTihvdXJOYW1l
LCBsbHZtTmFtZSwgdHlwZSkgICAgICAgXAorICAgIExWYWx1ZSBJbnRyaW5zaWNSZXBvc2l0b3J5
OjpvdXJOYW1lIyNJbnRyaW5zaWNTbG93KCkgeyAgICAgICAgICAgICAgXAorICAgICAgICBtXyMj
b3VyTmFtZSA9IGFkZEV4dGVybkZ1bmN0aW9uKG1fbW9kdWxlLCBsbHZtTmFtZSwgdHlwZSk7ICAg
ICAgXAorICAgICAgICByZXR1cm4gbV8jI291ck5hbWU7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0KK0ZPUl9FQUNIX0ZUTF9JTlRSSU5TSUMoSU5U
UklOU0lDX0dFVFRFUl9TTE9XX0RFRklOSVRJT04pCisjdW5kZWYgSU5UUklOU0lDX0dFVFRFUgor
Cit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNS
ZXBvc2l0b3J5LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEludHJpbnNpY1JlcG9zaXRvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRlRM
SW50cmluc2ljUmVwb3NpdG9yeV9oCisjZGVmaW5lIEZUTEludHJpbnNpY1JlcG9zaXRvcnlfaAor
CisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2lu
Y2x1ZGUgIkZUTEFiYnJldmlhdGlvbnMuaCIKKyNpbmNsdWRlICJGVExDb21tb25WYWx1ZXMuaCIK
KworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCisjZGVmaW5lIEZPUl9FQUNIX0ZU
TF9JTlRSSU5TSUMobWFjcm8pIFwKKyAgICBtYWNybyhhZGRXaXRoT3ZlcmZsb3czMiwgImxsdm0u
c2FkZC53aXRoLm92ZXJmbG93LmkzMiIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKGludDMyLCBi
b29sZWFuKSwgaW50MzIsIGludDMyKSkgXAorICAgIG1hY3JvKHN1YldpdGhPdmVyZmxvdzMyLCAi
bGx2bS5zc3ViLndpdGgub3ZlcmZsb3cuaTMyIiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUoaW50
MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKSBcCisgICAgbWFjcm8obXVsV2l0aE92ZXJmbG93
MzIsICJsbHZtLnNtdWwud2l0aC5vdmVyZmxvdy5pMzIiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlw
ZShpbnQzMiwgYm9vbGVhbiksIGludDMyLCBpbnQzMikpCisKK2NsYXNzIEludHJpbnNpY1JlcG9z
aXRvcnkgOiBwdWJsaWMgQ29tbW9uVmFsdWVzIHsKK3B1YmxpYzoKKyAgICBJbnRyaW5zaWNSZXBv
c2l0b3J5KCk7CisgICAgCisjZGVmaW5lIElOVFJJTlNJQ19HRVRURVIob3VyTmFtZSwgbGx2bU5h
bWUsIHR5cGUpIFwKKyAgICBMVmFsdWUgb3VyTmFtZSMjSW50cmluc2ljKCkgeyAgICAgICAgICAg
ICAgICAgXAorICAgICAgICBpZiAoIW1fIyNvdXJOYW1lKSAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgICAgICByZXR1cm4gb3VyTmFtZSMjSW50cmluc2ljU2xvdygpOyAgICAgIFwK
KyAgICAgICAgcmV0dXJuIG1fIyNvdXJOYW1lOyAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IH0KKyAgICBGT1JfRUFDSF9GVExfSU5UUklOU0lDKElOVFJJTlNJQ19HRVRURVIpCisjdW5kZWYg
SU5UUklOU0lDX0dFVFRFUgorCitwcml2YXRlOgorI2RlZmluZSBJTlRSSU5TSUNfR0VUVEVSX1NM
T1dfREVDTEFSQVRJT04ob3VyTmFtZSwgbGx2bU5hbWUsIHR5cGUpIFwKKyAgICBMVmFsdWUgb3Vy
TmFtZSMjSW50cmluc2ljU2xvdygpOworICAgIEZPUl9FQUNIX0ZUTF9JTlRSSU5TSUMoSU5UUklO
U0lDX0dFVFRFUl9TTE9XX0RFQ0xBUkFUSU9OKQorI3VuZGVmIElOVFJJTlNJQ19HRVRURVIKKwor
I2RlZmluZSBJTlRSSU5TSUNfRklFTERfREVDTEFSQVRJT04ob3VyTmFtZSwgbGx2bU5hbWUsIHR5
cGUpIExWYWx1ZSBtXyMjb3VyTmFtZTsKKyAgICBGT1JfRUFDSF9GVExfSU5UUklOU0lDKElOVFJJ
TlNJQ19GSUVMRF9ERUNMQVJBVElPTikKKyN1bmRlZiBJTlRSSU5TSUNfRklFTERfREVDTEFSQVRJ
T04KK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVOQUJMRShG
VExfSklUKQorCisjZW5kaWYgLy8gRlRMSW50cmluc2ljUmVwb3NpdG9yeV9oCisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZp
c2lvbiAxNDcyOTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9M
TFZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcxLDYgKzI3MSw5IEBAIHByaXZhdGU6CiAgICAg
ICAgIGNhc2UgVmFsdWVBZGQ6CiAgICAgICAgICAgICBjb21waWxlQWRkKCk7CiAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBcml0aFN1YjoKKyAgICAgICAgICAgIGNvbXBpbGVBcml0
aFN1YigpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXJpdGhNdWw6CiAgICAg
ICAgICAgICBjb21waWxlQXJpdGhNdWwoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDY5LDYg
KzQ3MiwzMCBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIHZvaWQgY29t
cGlsZUFyaXRoU3ViKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VL
aW5kKCkpIHsKKyAgICAgICAgY2FzZSBJbnQzMlVzZTogeworICAgICAgICAgICAgTFZhbHVlIGxl
ZnQgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSByaWdo
dCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBpZiAobm9kZUNhblRydW5jYXRlSW50ZWdlcihtX25vZGUtPmFyaXRoTm9kZUZsYWdzKCkpKSB7
CisgICAgICAgICAgICAgICAgbV9pbnQzMlZhbHVlcy5hZGQobV9ub2RlLCBtX291dC5zdWIobGVm
dCwgcmlnaHQpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxv
dzMyKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgMCwgMCwg
bV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMSkpOworICAgICAgICAgICAgbV9pbnQzMlZhbHVl
cy5hZGQobV9ub2RlLCBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICB9CisgICAgCiAgICAgdm9pZCBjb21waWxlQXJpdGhNdWwoKQogICAg
IHsKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExPdXRwdXQuaCIKKworI2lmIEVOQUJM
RShGVExfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK091dHB1dDo6
T3V0cHV0KCkKKyAgICA6IG1fZnVuY3Rpb24oMCkKKyAgICAsIG1faGVhcHMoMCkKKyAgICAsIG1f
YnVpbGRlcihMTFZNQ3JlYXRlQnVpbGRlcigpKQorICAgICwgbV9ibG9jaygwKQorICAgICwgbV9u
ZXh0QmxvY2soMCkKK3sKK30KKworT3V0cHV0Ojp+T3V0cHV0KCkKK3sKKyAgICBMTFZNRGlzcG9z
ZUJ1aWxkZXIobV9idWlsZGVyKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisj
ZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT3V0cHV0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPdXRwdXQuaAkocmV2aXNpb24gMTQ3MjkyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPdXRwdXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOCBAQAogCiAjaW5jbHVk
ZSAiRlRMQWJicmV2aWF0aW9ucy5oIgogI2luY2x1ZGUgIkZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuaCIKKyNpbmNsdWRlICJGVExDb21tb25WYWx1ZXMuaCIKKyNpbmNsdWRlICJGVExJbnRyaW5z
aWNSZXBvc2l0b3J5LmgiCiAjaW5jbHVkZSAiRlRMVHlwZWRQb2ludGVyLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKQEAgLTYxLDQ3ICs2MywxNCBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIEZUTCB7CiAKIGVudW0gU2NhbGUgeyBTY2FsZU9uZSwgU2NhbGVUd28sIFNj
YWxlRm91ciwgU2NhbGVFaWdodCwgU2NhbGVQdHIgfTsKIAotY2xhc3MgT3V0cHV0IHsKK2NsYXNz
IE91dHB1dCA6IHB1YmxpYyBJbnRyaW5zaWNSZXBvc2l0b3J5IHsKIHB1YmxpYzoKLSAgICBPdXRw
dXQoKQotICAgICAgICA6IHZvaWRUeXBlKEZUTDo6dm9pZFR5cGUoKSkKLSAgICAgICAgLCBib29s
ZWFuKGludDFUeXBlKCkpCi0gICAgICAgICwgaW50MzIoaW50MzJUeXBlKCkpCi0gICAgICAgICwg
aW50NjQoaW50NjRUeXBlKCkpCi0gICAgICAgICwgaW50UHRyKGludFB0clR5cGUoKSkKLSAgICAg
ICAgLCByZWYzMihwb2ludGVyVHlwZShpbnQzMikpCi0gICAgICAgICwgcmVmNjQocG9pbnRlclR5
cGUoaW50NjQpKQotICAgICAgICAsIHJlZlB0cihwb2ludGVyVHlwZShpbnRQdHIpKQotICAgICAg
ICAsIGJvb2xlYW5UcnVlKGNvbnN0SW50KGJvb2xlYW4sIHRydWUsIFplcm9FeHRlbmQpKQotICAg
ICAgICAsIGJvb2xlYW5GYWxzZShjb25zdEludChib29sZWFuLCBmYWxzZSwgWmVyb0V4dGVuZCkp
Ci0gICAgICAgICwgaW50MzJaZXJvKGNvbnN0SW50KGludDMyLCAwLCBTaWduRXh0ZW5kKSkKLSAg
ICAgICAgLCBpbnQ2NFplcm8oY29uc3RJbnQoaW50NjQsIDAsIFNpZ25FeHRlbmQpKQotICAgICAg
ICAsIGludFB0clplcm8oY29uc3RJbnQoaW50UHRyLCAwLCBTaWduRXh0ZW5kKSkKLSAgICAgICAg
LCBpbnRQdHJPbmUoY29uc3RJbnQoaW50UHRyLCAxLCBTaWduRXh0ZW5kKSkKLSAgICAgICAgLCBp
bnRQdHJUd28oY29uc3RJbnQoaW50UHRyLCAyLCBTaWduRXh0ZW5kKSkKLSAgICAgICAgLCBpbnRQ
dHJUaHJlZShjb25zdEludChpbnRQdHIsIDMsIFNpZ25FeHRlbmQpKQotICAgICAgICAsIGludFB0
ckZvdXIoY29uc3RJbnQoaW50UHRyLCA0LCBTaWduRXh0ZW5kKSkKLSAgICAgICAgLCBpbnRQdHJF
aWdodChjb25zdEludChpbnRQdHIsIDgsIFNpZ25FeHRlbmQpKQotICAgICAgICAsIGludFB0clB0
cihjb25zdEludChpbnRQdHIsIHNpemVvZih2b2lkKiksIFNpZ25FeHRlbmQpKQotICAgICAgICAs
IG1fbW9kdWxlKDApCi0gICAgICAgICwgbV9mdW5jdGlvbigwKQotICAgICAgICAsIG1faGVhcHMo
MCkKLSAgICAgICAgLCBtX2J1aWxkZXIoTExWTUNyZWF0ZUJ1aWxkZXIoKSkKLSAgICAgICAgLCBt
X2Jsb2NrKDApCi0gICAgICAgICwgbV9uZXh0QmxvY2soMCkKLSAgICAgICAgLCBtX2FkZFdpdGhP
dmVyZmxvdzMyRnVuY3Rpb24oMCkKLSAgICAgICAgLCBtX211bFdpdGhPdmVyZmxvdzMyRnVuY3Rp
b24oMCkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIH5PdXRwdXQoKQotICAgIHsKLSAgICAgICAg
TExWTURpc3Bvc2VCdWlsZGVyKG1fYnVpbGRlcik7Ci0gICAgfQorICAgIE91dHB1dCgpOworICAg
IH5PdXRwdXQoKTsKICAgICAKICAgICB2b2lkIGluaXRpYWxpemUoTE1vZHVsZSBtb2R1bGUsIExW
YWx1ZSBmdW5jdGlvbiwgQWJzdHJhY3RIZWFwUmVwb3NpdG9yeSYgaGVhcHMpCiAgICAgewotICAg
ICAgICBtX21vZHVsZSA9IG1vZHVsZTsKKyAgICAgICAgSW50cmluc2ljUmVwb3NpdG9yeTo6aW5p
dGlhbGl6ZShtb2R1bGUpOwogICAgICAgICBtX2Z1bmN0aW9uID0gZnVuY3Rpb247CiAgICAgICAg
IG1faGVhcHMgPSAmaGVhcHM7CiAgICAgfQpAQCAtMTM5LDYgKzEwOCw3IEBAIHB1YmxpYzoKICAg
ICBMVmFsdWUgY29uc3RJbnQ2NChpbnQ2NF90IHZhbHVlKSB7IHJldHVybiBjb25zdEludChpbnQ2
NCwgdmFsdWUsIFNpZ25FeHRlbmQpOyB9CiAgICAgCiAgICAgTFZhbHVlIGFkZChMVmFsdWUgbGVm
dCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVybiBidWlsZEFkZChtX2J1aWxkZXIsIGxlZnQsIHJpZ2h0
KTsgfQorICAgIExWYWx1ZSBzdWIoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4g
YnVpbGRTdWIobV9idWlsZGVyLCBsZWZ0LCByaWdodCk7IH0KICAgICBMVmFsdWUgbXVsKExWYWx1
ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsgcmV0dXJuIGJ1aWxkTXVsKG1fYnVpbGRlciwgbGVmdCwg
cmlnaHQpOyB9CiAgICAgTFZhbHVlIGJpdEFuZChMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7
IHJldHVybiBidWlsZEFuZChtX2J1aWxkZXIsIGxlZnQsIHJpZ2h0KTsgfQogICAgIExWYWx1ZSBi
aXRPcihMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IHJldHVybiBidWlsZE9yKG1fYnVpbGRl
ciwgbGVmdCwgcmlnaHQpOyB9CkBAIC0xNDgsMTEgKzExOCwxNSBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgTFZhbHVlIGFkZFdpdGhPdmVyZmxvdzMyKExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpCiAg
ICAgewotICAgICAgICByZXR1cm4gY2FsbChhZGRXaXRoT3ZlcmZsb3czMkZ1bmN0aW9uKCksIGxl
ZnQsIHJpZ2h0KTsKKyAgICAgICAgcmV0dXJuIGNhbGwoYWRkV2l0aE92ZXJmbG93MzJJbnRyaW5z
aWMoKSwgbGVmdCwgcmlnaHQpOworICAgIH0KKyAgICBMVmFsdWUgc3ViV2l0aE92ZXJmbG93MzIo
TFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkKKyAgICB7CisgICAgICAgIHJldHVybiBjYWxsKHN1
YldpdGhPdmVyZmxvdzMySW50cmluc2ljKCksIGxlZnQsIHJpZ2h0KTsKICAgICB9CiAgICAgTFZh
bHVlIG11bFdpdGhPdmVyZmxvdzMyKExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpCiAgICAgewot
ICAgICAgICByZXR1cm4gY2FsbChtdWxXaXRoT3ZlcmZsb3czMkZ1bmN0aW9uKCksIGxlZnQsIHJp
Z2h0KTsKKyAgICAgICAgcmV0dXJuIGNhbGwobXVsV2l0aE92ZXJmbG93MzJJbnRyaW5zaWMoKSwg
bGVmdCwgcmlnaHQpOwogICAgIH0KICAgICAKICAgICBMVmFsdWUgemVyb0V4dChMVmFsdWUgdmFs
dWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGJ1aWxkWkV4dChtX2J1aWxkZXIsIHZhbHVlLCB0eXBl
KTsgfQpAQCAtMjcyLDU4ICsyNDYsMTEgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgdW5yZWFj
aGFibGUoKSB7IGJ1aWxkVW5yZWFjaGFibGUobV9idWlsZGVyKTsgfQogICAgIAotICAgIExWYWx1
ZSBhZGRXaXRoT3ZlcmZsb3czMkZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICghbV9hZGRX
aXRoT3ZlcmZsb3czMkZ1bmN0aW9uKSB7Ci0gICAgICAgICAgICBtX2FkZFdpdGhPdmVyZmxvdzMy
RnVuY3Rpb24gPSBhZGRFeHRlcm5GdW5jdGlvbigKLSAgICAgICAgICAgICAgICBtX21vZHVsZSwg
Imxsdm0uc2FkZC53aXRoLm92ZXJmbG93LmkzMiIsCi0gICAgICAgICAgICAgICAgZnVuY3Rpb25U
eXBlKHN0cnVjdFR5cGUoaW50MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKTsKLSAgICAgICAg
fQotICAgICAgICAKLSAgICAgICAgcmV0dXJuIG1fYWRkV2l0aE92ZXJmbG93MzJGdW5jdGlvbjsK
LSAgICB9Ci0gICAgCi0gICAgTFZhbHVlIG11bFdpdGhPdmVyZmxvdzMyRnVuY3Rpb24oKQotICAg
IHsKLSAgICAgICAgaWYgKCFtX211bFdpdGhPdmVyZmxvdzMyRnVuY3Rpb24pIHsKLSAgICAgICAg
ICAgIG1fbXVsV2l0aE92ZXJmbG93MzJGdW5jdGlvbiA9IGFkZEV4dGVybkZ1bmN0aW9uKAotICAg
ICAgICAgICAgICAgIG1fbW9kdWxlLCAibGx2bS5zbXVsLndpdGgub3ZlcmZsb3cuaTMyIiwKLSAg
ICAgICAgICAgICAgICBmdW5jdGlvblR5cGUoc3RydWN0VHlwZShpbnQzMiwgYm9vbGVhbiksIGlu
dDMyLCBpbnQzMikpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gbV9hZGRX
aXRoT3ZlcmZsb3czMkZ1bmN0aW9uOwotICAgIH0KLSAgICAKLSAgICBjb25zdCBMVHlwZSB2b2lk
VHlwZTsKLSAgICBjb25zdCBMVHlwZSBib29sZWFuOwotICAgIGNvbnN0IExUeXBlIGludDMyOwot
ICAgIGNvbnN0IExUeXBlIGludDY0OwotICAgIGNvbnN0IExUeXBlIGludFB0cjsKLSAgICBjb25z
dCBMVHlwZSByZWYzMjsKLSAgICBjb25zdCBMVHlwZSByZWY2NDsKLSAgICBjb25zdCBMVHlwZSBy
ZWZQdHI7Ci0gICAgY29uc3QgTFZhbHVlIGJvb2xlYW5UcnVlOwotICAgIGNvbnN0IExWYWx1ZSBi
b29sZWFuRmFsc2U7Ci0gICAgY29uc3QgTFZhbHVlIGludDMyWmVybzsKLSAgICBjb25zdCBMVmFs
dWUgaW50NjRaZXJvOwotICAgIGNvbnN0IExWYWx1ZSBpbnRQdHJaZXJvOwotICAgIGNvbnN0IExW
YWx1ZSBpbnRQdHJPbmU7Ci0gICAgY29uc3QgTFZhbHVlIGludFB0clR3bzsKLSAgICBjb25zdCBM
VmFsdWUgaW50UHRyVGhyZWU7Ci0gICAgY29uc3QgTFZhbHVlIGludFB0ckZvdXI7Ci0gICAgY29u
c3QgTFZhbHVlIGludFB0ckVpZ2h0OwotICAgIGNvbnN0IExWYWx1ZSBpbnRQdHJQdHI7Ci0gICAg
Ci0gICAgTE1vZHVsZSBtX21vZHVsZTsKICAgICBMVmFsdWUgbV9mdW5jdGlvbjsKICAgICBBYnN0
cmFjdEhlYXBSZXBvc2l0b3J5KiBtX2hlYXBzOwogICAgIExCdWlsZGVyIG1fYnVpbGRlcjsKICAg
ICBMQmFzaWNCbG9jayBtX2Jsb2NrOwogICAgIExCYXNpY0Jsb2NrIG1fbmV4dEJsb2NrOwotCi1w
cml2YXRlOgotICAgIExWYWx1ZSBtX2FkZFdpdGhPdmVyZmxvdzMyRnVuY3Rpb247Ci0gICAgTFZh
bHVlIG1fbXVsV2l0aE92ZXJmbG93MzJGdW5jdGlvbjsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpGVEwK
</data>
<flag name="review"
          id="217899"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>