<?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>152026</bug_id>
          
          <creation_ts>2015-12-08 16:52:00 -0800</creation_ts>
          <short_desc>[JSC] Improve how B3 lowers Add() and Sub() on x86</short_desc>
          <delta_ts>2015-12-08 18:31:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1147540</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-12-08 16:52:00 -0800</bug_when>
    <thetext>[JSC] Improve how B3 lowers Add() and Sub() on x86</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147542</commentid>
    <comment_count>1</comment_count>
      <attachid>266956</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-12-08 17:06:14 -0800</bug_when>
    <thetext>Created attachment 266956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147548</commentid>
    <comment_count>2</comment_count>
      <attachid>266956</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-12-08 17:10:02 -0800</bug_when>
    <thetext>Comment on attachment 266956
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147564</commentid>
    <comment_count>3</comment_count>
      <attachid>266956</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-08 18:30:58 -0800</bug_when>
    <thetext>Comment on attachment 266956
Patch

Clearing flags on attachment: 266956

Committed r193804: &lt;http://trac.webkit.org/changeset/193804&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147565</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-08 18:31:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266956</attachid>
            <date>2015-12-08 17:06:14 -0800</date>
            <delta_ts>2015-12-08 18:30:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152026-20151208170545.patch</filename>
            <type>text/plain</type>
            <size>25462</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzNjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZTU2YmFiNjg3YjFiNGRkNWNmMTE3MDg2M2M1MDM2MmU5NWI2ZDVhLi5mZGQyYWVhYmVjZjUyYTA2
NTcxY2FjNTAyYmZjZTgwNmIzZTJiYzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NiBAQAorMjAxNS0xMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBJbXByb3ZlIGhvdyBCMyBsb3dlcnMgQWRkKCkgYW5kIFN1
YigpIG9uIHg4NgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUyMDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIGFzc2VtYmxlciB3YXMgbWlzc2luZyBzb21lIGltcG9ydGFudCB4ODYgZm9ybXMgb2YK
KyAgICAgICAgQUREIGFuZCBTVUIgdGhhdCB3ZXJlIG1ha2luZyBvdXIgbG93ZXJpbmcKKyAgICAg
ICAgdW5mcmllbmRseSB3aXRoIHJlZ2lzdGVyIGFsbG9jYXRpb24uCisKKyAgICAgICAgRmlyc3Qs
IHdlIHdlcmUgbWlzc2luZyBhIDMgb3BlcmFuZCB2ZXJzaW9uIG9mIEFkZAorICAgICAgICBpbXBs
ZW1lbnQgd2l0aCBMRUEuIEFzIGEgcmVzdWx0LCBhbiBBZGQgd291bGQKKyAgICAgICAgYmUgbG93
ZXJlZCBhczoKKyAgICAgICAgICAgIE1vdmUgb3AxLT5zcmNEZXN0CisgICAgICAgICAgICBBZGQg
b3AyLCBzcmNEZXN0CisgICAgICAgIFRoZSBwcm9ibGVtIHdpdGggc3VjaCBjb2RlIGlzIHRoYXQg
b3AyIGFuZCBzcmNEZXN0CisgICAgICAgIGludGVyZmVyZXMuIEl0IGlzIGltcG9zc2libGUgdG8g
YXNzaWduIHRoZW0gdGhlIHNhbWUKKyAgICAgICAgbWFjaGluZSByZWdpc3Rlci4KKworICAgICAg
ICBXaXRoIHRoZSBuZXcgQWRkIGZvcm0sIHdlIGhhdmU6CisgICAgICAgICAgICBBZGQgb3AxLCBv
cDIsIGRlc3QKKyAgICAgICAgd2l0aG91dCBpbnRlcmZlcmVuY2VzIGJldHdlZW4gYW55IG9mIHRo
b3NlIHZhbHVlcy4KKyAgICAgICAgVGhlIGFkZCBpcyBpbXBsZW1lbnQgYnkgYSBMRUEgd2l0aG91
dCBzY2FsaW5nIG9yIGRpc3BsYWNlbWVudC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gYWRk
cyBtaXNzaW5nIGZvcm1zIG9mIEFkZCBhbmQgU3ViIHdpdGgKKyAgICAgICAgZGlyZWN0IGFkZHJl
c3NpbmcgZm9yIGFyZ3VtZW50cy4gVGhpcyBhdm9pZHMgZGVhbGluZyB3aXRoIFRtcHMKKyAgICAg
ICAgdGhhdCBvbmx5IGV4aXN0IGZvciB0aG9zZSBvcGVyYXRpb25zLgorCisgICAgICAgIEZpbmFs
bHksIHRoZSBsb3dlcmluZyBvZiBhZGRpbmcgc29tZXRoaW5nIHRvIGl0c2VsZiB3YXMgdXBkYXRl
ZCBhY2NvcmRpbmdseS4KKyAgICAgICAgU3VjaCBvcGVyYXRpb24gaXMgdHJhbnNmb3JtZWQgaW4g
U2hsIGJ5IDIuIFRoZSBsb3dlcmluZyBvZiBTaGwKKyAgICAgICAgd2FzIGFkZGluZyBhbiBleHBs
aWNpdCBNb3ZlLCBwcmV2ZW50aW5nIHRoZSB1c2Ugb2YgTEVBIHdoZW4gaXQKKyAgICAgICAgaXMg
dXNlZnVsLgorICAgICAgICBJbnN0ZWFkIG9mIGhhdmluZyBhbiBleHBsaWNpdCBtb3ZlLCBJIGNo
YW5nZWQgdGhlIGRpcmVjdCBhZGRyZXNzaW5nCisgICAgICAgIGZvcm1zIHRvIG9ubHkgYmUgc2Vs
ZWN0ZWQgaWYgdGhlIHR3byBvcGVyYW5kcyBhcmUgZGlmZmVyZW50LgorICAgICAgICBBIE1vdmUg
aXMgdGhlbiBhZGRlZCBieSBhcHBlbmRCaW5PcCgpIGlmIG5lZWRlZC4KKworICAgICAgICAqIGFz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbjo6YWRkMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbjo6eDg2TGVhMzIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6YWRkNjQpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6eDg2TGVhNjQpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3ViNjQpOgorICAgICAgICAqIGFzc2VtYmxlci9YODZB
c3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjphZGRxX3JtKToKKyAgICAg
ICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpzdWJxX21yKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1i
bGVyOjpzdWJxX3JtKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpzdWJxX2ltKToKKyAg
ICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpsZWFsX21yKToKKyAgICAgICAgKEpTQzo6WDg2QXNz
ZW1ibGVyOjpsZWFxX21yKToKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjphcHBlbmRCaW5PcCk6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2Rl
Lm9wY29kZXM6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RBZGRBcmdNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZE1lbUFyZyk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0QWRkSW1tTWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmcz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJnTWVtMzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEFkZE1lbUFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRJbW1NZW0zMik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnTWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTdWJNZW1BcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkltbU1lbSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0U3ViTWVtSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJNZW1B
cmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnTWVtMzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFN1YkltbU1lbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJNZW1JbW0z
Mik6CisgICAgICAgIChKU0M6OkIzOjpydW4pOgorCiAyMDE1LTEyLTA3ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgU21hbGwgc3R5bGUgZml4ZXMgaW4gQjNNb3Zl
Q29uc3RhbnRzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCmluZGV4IDcxNTE4ZTlmMjM4MWUxNmM4MTVi
NWJkNzg3ZTcyNzlhMDNiYmE1MzQuLjZjMmY2NmI1OWJmNjcyOWQ1MGEwMGZiNjJmNjc3MTE2NGQ1
ZjI2MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODZDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKQEAgLTE2MCw2ICsxNjAsMjYgQEAgcHVibGljOgog
CiAgICAgICAgIG1fYXNzZW1ibGVyLmxlYWxfbXIoaW1tLm1fdmFsdWUsIHNyYywgZGVzdCk7CiAg
ICAgfQorCisgICAgdm9pZCBhZGQzMihSZWdpc3RlcklEIGEsIFJlZ2lzdGVySUQgYiwgUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgeDg2TGVhMzIoQmFzZUluZGV4KGEsIGIsIFRpbWVz
T25lKSwgZGVzdCk7CisgICAgfQorCisgICAgdm9pZCB4ODZMZWEzMihCYXNlSW5kZXggaW5kZXgs
IFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIGlmICghaW5kZXguc2NhbGUgJiYgIWlu
ZGV4Lm9mZnNldCkgeworICAgICAgICAgICAgaWYgKGluZGV4LmJhc2UgPT0gZGVzdCkgeworICAg
ICAgICAgICAgICAgIGFkZDMyKGluZGV4LmluZGV4LCBkZXN0KTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaW5kZXguaW5kZXggPT0gZGVz
dCkgeworICAgICAgICAgICAgICAgIGFkZDMyKGluZGV4LmJhc2UsIGRlc3QpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtX2Fzc2Vt
Ymxlci5sZWFsX21yKGluZGV4Lm9mZnNldCwgaW5kZXguYmFzZSwgaW5kZXguaW5kZXgsIGluZGV4
LnNjYWxlLCBkZXN0KTsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBhbmQzMihSZWdpc3RlcklEIHNy
YywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCAzYjA3OGM5OTU3MTll
OWIyNmFiZWJjZTYzNzU5YWRjNDkzNjcyMzQ2Li5jZTVlMmNlZGI5NzhhZjhmNTNmOThhMDhjYmUw
OGU3MWRiZDFiNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCkBAIC0yNjMsNiArMjYzLDExIEBAIHB1YmxpYzoK
ICAgICAgICAgbV9hc3NlbWJsZXIuYWRkcV9tcihzcmMub2Zmc2V0LCBzcmMuYmFzZSwgZGVzdCk7
CiAgICAgfQogCisgICAgdm9pZCBhZGQ2NChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBkZXN0KQor
ICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuYWRkcV9ybShzcmMsIGRlc3Qub2Zmc2V0LCBkZXN0
LmJhc2UpOworICAgIH0KKwogICAgIHZvaWQgYWRkNjQoQWJzb2x1dGVBZGRyZXNzIHNyYywgUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKHNyYy5tX3B0
ciksIHNjcmF0Y2hSZWdpc3RlcigpKTsKQEAgLTMxMyw2ICszMTgsMjYgQEAgcHVibGljOgogICAg
ICAgICBhZGQ2NChpbW0sIEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKCkpKTsKICAgICB9CiAKKyAg
ICB2b2lkIGFkZDY0KFJlZ2lzdGVySUQgYSwgUmVnaXN0ZXJJRCBiLCBSZWdpc3RlcklEIGRlc3Qp
CisgICAgeworICAgICAgICB4ODZMZWE2NChCYXNlSW5kZXgoYSwgYiwgVGltZXNPbmUpLCBkZXN0
KTsKKyAgICB9CisKKyAgICB2b2lkIHg4NkxlYTY0KEJhc2VJbmRleCBpbmRleCwgUmVnaXN0ZXJJ
RCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKCFpbmRleC5zY2FsZSAmJiAhaW5kZXgub2Zmc2V0
KSB7CisgICAgICAgICAgICBpZiAoaW5kZXguYmFzZSA9PSBkZXN0KSB7CisgICAgICAgICAgICAg
ICAgYWRkNjQoaW5kZXguaW5kZXgsIGRlc3QpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpbmRleC5pbmRleCA9PSBkZXN0KSB7CisgICAg
ICAgICAgICAgICAgYWRkNjQoaW5kZXguYmFzZSwgZGVzdCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fYXNzZW1ibGVyLmxlYXFf
bXIoaW5kZXgub2Zmc2V0LCBpbmRleC5iYXNlLCBpbmRleC5pbmRleCwgaW5kZXguc2NhbGUsIGRl
c3QpOworICAgIH0KKwogICAgIHZvaWQgYWRkUHRyTm9GbGFncyhUcnVzdGVkSW1tMzIgaW1tLCBS
ZWdpc3RlcklEIHNyY0Rlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZWFxX21yKGlt
bS5tX3ZhbHVlLCBzcmNEZXN0LCBzcmNEZXN0KTsKQEAgLTUwNyw2ICs1MzIsMjEgQEAgcHVibGlj
OgogICAgICAgICB9CiAgICAgfQogCisgICAgdm9pZCBzdWI2NChUcnVzdGVkSW1tMzIgaW1tLCBB
ZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5zdWJxX2ltKGltbS5t
X3ZhbHVlLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKKyAgICB9CisKKyAgICB2b2lk
IHN1YjY0KEFkZHJlc3Mgc3JjLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fz
c2VtYmxlci5zdWJxX21yKHNyYy5vZmZzZXQsIHNyYy5iYXNlLCBkZXN0KTsKKyAgICB9CisKKyAg
ICB2b2lkIHN1YjY0KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGRlc3QpCisgICAgeworICAgICAg
ICBtX2Fzc2VtYmxlci5zdWJxX3JtKHNyYywgZGVzdC5vZmZzZXQsIGRlc3QuYmFzZSk7CisgICAg
fQorCiAgICAgdm9pZCB4b3I2NChSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKICAgICAgICAgbV9hc3NlbWJsZXIueG9ycV9ycihzcmMsIGRlc3QpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggNGViNWQ0YmQzZGUz
YjhiMTZhMmYzNTJhNDc0YzFlMmU0MzZhNGZkMC4uMzJlM2MwZDE2YjEwZmYxNzRiZTRlNjEyMzUy
NDNhNjdiNjVmNjg5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9YODZBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4
NkFzc2VtYmxlci5oCkBAIC00NjQsNiArNDY0LDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3Jt
YXR0ZXIub25lQnl0ZU9wNjQoT1BfQUREX0d2RXYsIGRzdCwgYmFzZSwgb2Zmc2V0KTsKICAgICB9
CiAKKyAgICB2b2lkIGFkZHFfcm0oUmVnaXN0ZXJJRCBzcmMsIGludCBvZmZzZXQsIFJlZ2lzdGVy
SUQgYmFzZSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcDY0KE9QX0FERF9F
dkd2LCBzcmMsIGJhc2UsIG9mZnNldCk7CisgICAgfQorCiAgICAgdm9pZCBhZGRxX2lyKGludCBp
bW0sIFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgaWYgKENBTl9TSUdOX0VYVEVORF84
XzMyKGltbSkpIHsKQEAgLTc1OCw2ICs3NjMsMTYgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1h
dHRlci5vbmVCeXRlT3A2NChPUF9TVUJfRXZHdiwgc3JjLCBkc3QpOwogICAgIH0KIAorICAgIHZv
aWQgc3VicV9tcihpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UsIFJlZ2lzdGVySUQgZHN0KQor
ICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wNjQoT1BfU1VCX0d2RXYsIGRzdCwg
YmFzZSwgb2Zmc2V0KTsKKyAgICB9CisKKyAgICB2b2lkIHN1YnFfcm0oUmVnaXN0ZXJJRCBzcmMs
IGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVy
Lm9uZUJ5dGVPcDY0KE9QX1NVQl9Fdkd2LCBzcmMsIGJhc2UsIG9mZnNldCk7CisgICAgfQorCiAg
ICAgdm9pZCBzdWJxX2lyKGludCBpbW0sIFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAg
aWYgKENBTl9TSUdOX0VYVEVORF84XzMyKGltbSkpIHsKQEAgLTc3MSw2ICs3ODYsMTcgQEAgcHVi
bGljOgogICAgICAgICAgICAgbV9mb3JtYXR0ZXIuaW1tZWRpYXRlMzIoaW1tKTsKICAgICAgICAg
fQogICAgIH0KKworICAgIHZvaWQgc3VicV9pbShpbnQgaW1tLCBpbnQgb2Zmc2V0LCBSZWdpc3Rl
cklEIGJhc2UpCisgICAgeworICAgICAgICBpZiAoQ0FOX1NJR05fRVhURU5EXzhfMzIoaW1tKSkg
eworICAgICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wNjQoT1BfR1JPVVAxX0V2SWIsIEdS
T1VQMV9PUF9TVUIsIGJhc2UsIG9mZnNldCk7CisgICAgICAgICAgICBtX2Zvcm1hdHRlci5pbW1l
ZGlhdGU4KGltbSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX2Zvcm1hdHRlci5v
bmVCeXRlT3A2NChPUF9HUk9VUDFfRXZJeiwgR1JPVVAxX09QX1NVQiwgYmFzZSwgb2Zmc2V0KTsK
KyAgICAgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTMyKGltbSk7CisgICAgICAgIH0KKyAg
ICB9CiAjZWxzZQogICAgIHZvaWQgc3VibF9pbShpbnQgaW1tLCBjb25zdCB2b2lkKiBhZGRyKQog
ICAgIHsKQEAgLTE3NzMsMTEgKzE3OTksMjIgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgbV9m
b3JtYXR0ZXIub25lQnl0ZU9wKE9QX0xFQSwgZHN0LCBiYXNlLCBvZmZzZXQpOwogICAgIH0KKwor
ICAgIHZvaWQgbGVhbF9tcihpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UsIFJlZ2lzdGVySUQg
aW5kZXgsIGludCBzY2FsZSwgUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Zvcm1h
dHRlci5vbmVCeXRlT3AoT1BfTEVBLCBkc3QsIGJhc2UsIGluZGV4LCBzY2FsZSwgb2Zmc2V0KTsK
KyAgICB9CisKICNpZiBDUFUoWDg2XzY0KQogICAgIHZvaWQgbGVhcV9tcihpbnQgb2Zmc2V0LCBS
ZWdpc3RlcklEIGJhc2UsIFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0
ZXIub25lQnl0ZU9wNjQoT1BfTEVBLCBkc3QsIGJhc2UsIG9mZnNldCk7CiAgICAgfQorCisgICAg
dm9pZCBsZWFxX21yKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgUmVnaXN0ZXJJRCBpbmRl
eCwgaW50IHNjYWxlLCBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVy
Lm9uZUJ5dGVPcDY0KE9QX0xFQSwgZHN0LCBiYXNlLCBpbmRleCwgc2NhbGUsIG9mZnNldCk7Cisg
ICAgfQogI2VuZGlmCiAKICAgICAvLyBGbG93IGNvbnRyb2w6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IGMwYjY3MmYzNzFiZmNlOTM3NzMwNDhjOGRiZjAz
NjZiMDAwYmU4MTMuLjI3NGRjOWRjM2U1OTRkM2VjYjczOTI1ZTc5NTNmYTA3YzUxMDI4ZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC02MjEsMjEgKzYy
MSwyMyBAQCBwcml2YXRlOgogCiAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlIHByZWZlciB2
ZXJzaW9ucyBvZiB0aGUgb3BlcmF0aW9uIHRoYXQgaGF2ZSBhIGZ1c2VkIGxvYWQgb3IgYW4gaW1t
ZWRpYXRlCiAgICAgICAgIC8vIG92ZXIgdGhyZWUgb3BlcmFuZCBmb3Jtcy4KLSAgICAgICAgCi0g
ICAgICAgIGlmIChjb21tdXRhdGl2aXR5ID09IENvbW11dGF0aXZlKSB7Ci0gICAgICAgICAgICBB
cmdQcm9taXNlIGxlZnRBZGRyID0gbG9hZFByb21pc2UobGVmdCk7Ci0gICAgICAgICAgICBpZiAo
aXNWYWxpZEZvcm0ob3Bjb2RlLCBsZWZ0QWRkci5raW5kKCksIEFyZzo6VG1wKSkgewotICAgICAg
ICAgICAgICAgIGFwcGVuZChyZWxheGVkTW92ZUZvclR5cGUobV92YWx1ZS0+dHlwZSgpKSwgdG1w
KHJpZ2h0KSwgcmVzdWx0KTsKLSAgICAgICAgICAgICAgICBhcHBlbmQob3Bjb2RlLCBsZWZ0QWRk
ci5jb25zdW1lKCp0aGlzKSwgcmVzdWx0KTsKLSAgICAgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgaWYgKGxlZnQgIT0gcmlnaHQpIHsKKyAgICAgICAgICAgIGlmIChjb21tdXRhdGl2aXR5
ID09IENvbW11dGF0aXZlKSB7CisgICAgICAgICAgICAgICAgQXJnUHJvbWlzZSBsZWZ0QWRkciA9
IGxvYWRQcm9taXNlKGxlZnQpOworICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShvcGNv
ZGUsIGxlZnRBZGRyLmtpbmQoKSwgQXJnOjpUbXApKSB7CisgICAgICAgICAgICAgICAgICAgIGFw
cGVuZChyZWxheGVkTW92ZUZvclR5cGUobV92YWx1ZS0+dHlwZSgpKSwgdG1wKHJpZ2h0KSwgcmVz
dWx0KTsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKG9wY29kZSwgbGVmdEFkZHIuY29uc3Vt
ZSgqdGhpcyksIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0KIAotICAgICAgICBBcmdQcm9taXNl
IHJpZ2h0QWRkciA9IGxvYWRQcm9taXNlKHJpZ2h0KTsKLSAgICAgICAgaWYgKGlzVmFsaWRGb3Jt
KG9wY29kZSwgcmlnaHRBZGRyLmtpbmQoKSwgQXJnOjpUbXApKSB7Ci0gICAgICAgICAgICBhcHBl
bmQocmVsYXhlZE1vdmVGb3JUeXBlKG1fdmFsdWUtPnR5cGUoKSksIHRtcChsZWZ0KSwgcmVzdWx0
KTsKLSAgICAgICAgICAgIGFwcGVuZChvcGNvZGUsIHJpZ2h0QWRkci5jb25zdW1lKCp0aGlzKSwg
cmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIEFyZ1Byb21pc2Ugcmln
aHRBZGRyID0gbG9hZFByb21pc2UocmlnaHQpOworICAgICAgICAgICAgaWYgKGlzVmFsaWRGb3Jt
KG9wY29kZSwgcmlnaHRBZGRyLmtpbmQoKSwgQXJnOjpUbXApKSB7CisgICAgICAgICAgICAgICAg
YXBwZW5kKHJlbGF4ZWRNb3ZlRm9yVHlwZShtX3ZhbHVlLT50eXBlKCkpLCB0bXAobGVmdCksIHJl
c3VsdCk7CisgICAgICAgICAgICAgICAgYXBwZW5kKG9wY29kZSwgcmlnaHRBZGRyLmNvbnN1bWUo
KnRoaXMpLCByZXN1bHQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCiAgICAgICAgIGlmIChpbW0ocmlnaHQpICYmIGlzVmFsaWRGb3JtKG9wY29k
ZSwgQXJnOjpJbW0sIEFyZzo6VG1wKSkgewpAQCAtMTQ5NCwxMSArMTQ5Niw3IEBAIHByaXZhdGU6
CiAKICAgICAgICAgY2FzZSBTaGw6IHsKICAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgx
KS0+aXNJbnQzMigxKSkgewotICAgICAgICAgICAgICAgIC8vIFRoaXMgb3B0aW1pemF0aW9uIG1h
a2VzIHNlbnNlIG9uIFg4Ni4gSSBkb24ndCBrbm93IGlmIGl0IG1ha2VzIHNlbnNlIGFueXdoZXJl
IGVsc2UuCi0gICAgICAgICAgICAgICAgYXBwZW5kKE1vdmUsIHRtcChtX3ZhbHVlLT5jaGlsZCgw
KSksIHRtcChtX3ZhbHVlKSk7Ci0gICAgICAgICAgICAgICAgYXBwZW5kKAotICAgICAgICAgICAg
ICAgICAgICBvcGNvZGVGb3JUeXBlKEFkZDMyLCBBZGQ2NCwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5
cGUoKSksCi0gICAgICAgICAgICAgICAgICAgIHRtcChtX3ZhbHVlKSwgdG1wKG1fdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICBhcHBlbmRCaW5PcDxBZGQzMiwgQWRkNjQsIEFkZERvdWJsZSwgQWRk
RmxvYXQsIENvbW11dGF0aXZlPihtX3ZhbHVlLT5jaGlsZCgwKSwgbV92YWx1ZS0+Y2hpbGQoMCkp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2Rl
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKaW5kZXgg
NzgxNWE1OWJhMTY0MTk1NmZmNGE1MmIzZmQxZjIzN2MyODNkZmFjMy4uMWJkOTQ4MGM4OTg1NTgz
NWI4ODczZTYwYzMxM2RiYTNkZmJhNTgyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCkBAIC02OCwxNSArNjgsMTggQEAgQWRkMzIgVTpHLCBV
RDpHCiAKIEFkZDMyIFU6RywgVTpHLCBEOkcKICAgICBJbW0sIFRtcCwgVG1wCisgICAgVG1wLCBU
bXAsIFRtcAogCiBBZGQ2NCBVOkcsIFVEOkcKICAgICBUbXAsIFRtcAogICAgIEltbSwgQWRkcgog
ICAgIEltbSwgVG1wCiAgICAgQWRkciwgVG1wCisgICAgVG1wLCBBZGRyCiAKIEFkZDY0IFU6Rywg
VTpHLCBEOkcKICAgICBJbW0sIFRtcCwgVG1wCisgICAgVG1wLCBUbXAsIFRtcAogCiBBZGREb3Vi
bGUgVTpGLCBVRDpGCiAgICAgVG1wLCBUbXAKQEAgLTk1LDcgKzk4LDEwIEBAIFN1YjMyIFU6Rywg
VUQ6RwogCiBTdWI2NCBVOkcsIFVEOkcKICAgICBUbXAsIFRtcAorICAgIEltbSwgQWRkcgogICAg
IEltbSwgVG1wCisgICAgQWRkciwgVG1wCisgICAgVG1wLCBBZGRyCiAKIFN1YkRvdWJsZSBVOkYs
IFVEOkYKICAgICBUbXAsIFRtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L3Rlc3RiMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAppbmRleCBk
YjBmMDYyYzRjZDk0M2Q5YmI2YzUyZGIyNmE4ZGEzN2Y0NzA4MjYxLi4wMGQ0ZTI1MWQ0YTc0NjAz
NDJmOWIxYmRiNGI2YzYyODJkM2IxZDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvdGVzdGIzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNw
cApAQCAtMjAzLDYgKzIwMyw2NyBAQCB2b2lkIHRlc3RBZGRJbW1BcmcoaW50IGEsIGludCBiKQog
ICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCBiKSA9PSBhICsgYik7CiB9CiAKK3Zv
aWQgdGVzdEFkZEFyZ01lbShpbnQ2NF90IGEsIGludDY0X3QgYikKK3sKKyAgICBQcm9jZWR1cmUg
cHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVl
KiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgIE1lbW9yeVZhbHVlKiBsb2FkID0gcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFk
ZHJlc3MpOworICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFkZCwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKKyAgICAgICAgbG9hZCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IHJlc3VsdCwgYWRkcmVzcyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKKworICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBiOworICAgIENIRUNL
KCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGEsICZpbnB1dE91dHB1dCkpOworICAgIENI
RUNLKGlucHV0T3V0cHV0ID09IGEgKyBiKTsKK30KKwordm9pZCB0ZXN0QWRkTWVtQXJnKGludDY0
X3QgYSwgaW50NjRfdCBiKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CisgICAgTWVtb3J5VmFsdWUqIGxvYWQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CisgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwKKyAgICAg
ICAgbG9hZCwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKKyAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworCisgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmYSwgYikgPT0gYSArIGIpOworfQorCit2
b2lkIHRlc3RBZGRJbW1NZW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCit7CisgICAgUHJvY2VkdXJl
IHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1
ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBNZW1vcnlWYWx1ZSogbG9hZCA9IHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBh
ZGRyZXNzKTsKKyAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYSksCisgICAgICAgIGxvYWQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOworICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisKKyAgICBp
bnQ2NF90IGlucHV0T3V0cHV0ID0gYjsKKyAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHBy
b2MsICZpbnB1dE91dHB1dCkpOworICAgIENIRUNLKGlucHV0T3V0cHV0ID09IGEgKyBiKTsKK30K
Kwordm9pZCB0ZXN0QWRkQXJnMzIoaW50IGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogdmFsdWUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKKworICAgIENIRUNLKGNvbXBp
bGVBbmRSdW48aW50Pihwcm9jLCBhKSA9PSBhICsgYSk7Cit9CisKIHZvaWQgdGVzdEFkZEFyZ3Mz
MihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CkBAIC0yMjEsNiArMjgyLDU0
IEBAIHZvaWQgdGVzdEFkZEFyZ3MzMihpbnQgYSwgaW50IGIpCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ+KHByb2MsIGEsIGIpID09IGEgKyBiKTsKIH0KIAordm9pZCB0ZXN0QWRkQXJnTWVt
MzIoaW50MzJfdCBhLCBpbnQzMl90IGIpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIxKTsKKyAgICBNZW1vcnlWYWx1ZSogbG9hZCA9IHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKKyAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmln
aW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmd1bWVudCwgbG9hZCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IHJlc3VsdCwgYWRkcmVzcyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKKworICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBiOworICAgIENIRUNL
KCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGEsICZpbnB1dE91dHB1dCkpOworICAgIENI
RUNLKGlucHV0T3V0cHV0ID09IGEgKyBiKTsKK30KKwordm9pZCB0ZXN0QWRkTWVtQXJnMzIoaW50
MzJfdCBhLCBpbnQzMl90IGIpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKKyAgICBNZW1vcnlWYWx1ZSogbG9hZCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKKyAgICBWYWx1ZSog
YXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKKyAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBsb2FkLCBhcmd1bWVudCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKworICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEsIGIpID09
IGEgKyBiKTsKK30KKwordm9pZCB0ZXN0QWRkSW1tTWVtMzIoaW50MzJfdCBhLCBpbnQzMl90IGIp
Cit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKKyAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBNZW1v
cnlWYWx1ZSogbG9hZCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwg
SW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKKyAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCisgICAgICAgIGxvYWQpOworICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1
bHQsIGFkZHJlc3MpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CisKKyAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYjsKKyAgICBDSEVDSyghY29t
cGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOworICAgIENIRUNLKGlucHV0T3V0
cHV0ID09IGEgKyBiKTsKK30KKwogdm9pZCB0ZXN0QWRkTG9hZFR3aWNlKCkKIHsKICAgICBhdXRv
IHRlc3QgPSBbJl0gKHVuc2lnbmVkIG9wdExldmVsKSB7CkBAIC0xMDQ3LDYgKzExNTYsNzIgQEAg
dm9pZCB0ZXN0U3ViSW1tQXJnKGludCBhLCBpbnQgYikKICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludD4ocHJvYywgYikgPT0gYSAtIGIpOwogfQogCit2b2lkIHRlc3RTdWJBcmdNZW0oaW50NjRf
dCBhLCBpbnQ2NF90IGIpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKTsKKyAgICBNZW1vcnlWYWx1ZSogbG9hZCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKKyAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLAorICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCksCisgICAgICAgIGxvYWQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisKKyAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGEsICZiKSA9PSBhIC0gYik7Cit9CisKK3Zv
aWQgdGVzdFN1Yk1lbUFyZyhpbnQ2NF90IGEsIGludDY0X3QgYikKK3sKKyAgICBQcm9jZWR1cmUg
cHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVl
KiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIE1lbW9yeVZhbHVlKiBsb2FkID0gcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFk
ZHJlc3MpOworICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFN1YiwgT3JpZ2luKCksCisgICAgICAgIGxvYWQsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IHJlc3VsdCwgYWRkcmVzcyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKKworICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBhOworICAgIENIRUNL
KCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZpbnB1dE91dHB1dCwgYikpOworICAgIENI
RUNLKGlucHV0T3V0cHV0ID09IGEgLSBiKTsKK30KKwordm9pZCB0ZXN0U3ViSW1tTWVtKGludDY0
X3QgYSwgaW50NjRfdCBiKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CisgICAgTWVtb3J5VmFsdWUqIGxvYWQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CisgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAorICAg
ICAgICBsb2FkKTsKKyAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3Jl
LCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworCisgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGI7
CisgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKKyAg
ICBDSEVDSyhpbnB1dE91dHB1dCA9PSBhIC0gYik7Cit9CisKK3ZvaWQgdGVzdFN1Yk1lbUltbShp
bnQ2NF90IGEsIGludDY0X3QgYikKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOworICAgIE1lbW9yeVZhbHVlKiBsb2FkID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOworICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCisg
ICAgICAgIGxvYWQsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBiKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKworICAgIGludDY0X3QgaW5wdXRPdXRwdXQg
PSBhOworICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7
CisgICAgQ0hFQ0soaW5wdXRPdXRwdXQgPT0gYSAtIGIpOworfQorCisKIHZvaWQgdGVzdFN1YkFy
Z3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CkBAIC0xMDk3LDYgKzEy
NzIsNzEgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnMzIoaW50IGEsIGludCBiKQogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50Pihwcm9jLCBiKSA9PSBhIC0gYik7CiB9CiAKK3ZvaWQgdGVzdFN1Yk1l
bUFyZzMyKGludDMyX3QgYSwgaW50MzJfdCBiKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CisgICAgTWVtb3J5VmFsdWUqIGxvYWQgPSByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7Cisg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywg
T3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbG9hZCwgYXJndW1l
bnQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCByZXN1bHQsIGFkZHJlc3MpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CisKKyAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYTsKKyAgICBD
SEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmaW5wdXRPdXRwdXQsIGIpKTsKKyAg
ICBDSEVDSyhpbnB1dE91dHB1dCA9PSBhIC0gYik7Cit9CisKK3ZvaWQgdGVzdFN1YkFyZ01lbTMy
KGludDMyX3QgYSwgaW50MzJfdCBiKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMSk7CisgICAgTWVtb3J5VmFsdWUqIGxvYWQgPSByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CisgICAgVmFs
dWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXJndW1lbnQsIGxvYWQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CisKKyAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGEsICZi
KSA9PSBhIC0gYik7Cit9CisKK3ZvaWQgdGVzdFN1YkltbU1lbTMyKGludDMyX3QgYSwgaW50MzJf
dCBiKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAg
TWVtb3J5VmFsdWUqIGxvYWQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExv
YWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CisgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAorICAgICAgICBsb2FkKTsK
KyAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwg
cmVzdWx0LCBhZGRyZXNzKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOworCisgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGI7CisgICAgQ0hFQ0so
IWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKKyAgICBDSEVDSyhpbnB1
dE91dHB1dCA9PSBhIC0gYik7Cit9CisKK3ZvaWQgdGVzdFN1Yk1lbUltbTMyKGludDMyX3QgYSwg
aW50MzJfdCBiKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CisgICAgTWVtb3J5VmFsdWUqIGxvYWQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CisgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwKKyAgICAgICAgbG9h
ZCwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGIpKTsKKyAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmln
aW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOworCisgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGE7CisgICAg
Q0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKKyAgICBDSEVD
SyhpbnB1dE91dHB1dCA9PSBhIC0gYik7Cit9CisKIHZvaWQgdGVzdE5lZ1ZhbHVlU3ViT25lMzIo
aW50IGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CkBAIC02NjkwLDggKzY5MzAsMTUgQEAgdm9p
ZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0QWRkSW1tQXJnKDEsIDIpKTsK
ICAgICBSVU4odGVzdEFkZEltbUFyZygwLCAyKSk7CiAgICAgUlVOKHRlc3RBZGRJbW1BcmcoMSwg
MCkpOworICAgIFJVTl9CSU5BUlkodGVzdEFkZEFyZ01lbSwgaW50NjRPcGVyYW5kcygpLCBpbnQ2
NE9wZXJhbmRzKCkpOworICAgIFJVTl9CSU5BUlkodGVzdEFkZE1lbUFyZywgaW50NjRPcGVyYW5k
cygpLCBpbnQ2NE9wZXJhbmRzKCkpOworICAgIFJVTl9CSU5BUlkodGVzdEFkZEltbU1lbSwgaW50
NjRPcGVyYW5kcygpLCBpbnQ2NE9wZXJhbmRzKCkpOworICAgIFJVTl9VTkFSWSh0ZXN0QWRkQXJn
MzIsIGludDMyT3BlcmFuZHMoKSk7CiAgICAgUlVOKHRlc3RBZGRBcmdzMzIoMSwgMSkpOwogICAg
IFJVTih0ZXN0QWRkQXJnczMyKDEsIDIpKTsKKyAgICBSVU5fQklOQVJZKHRlc3RBZGRBcmdNZW0z
MiwgaW50MzJPcGVyYW5kcygpLCBpbnQzMk9wZXJhbmRzKCkpOworICAgIFJVTl9CSU5BUlkodGVz
dEFkZE1lbUFyZzMyLCBpbnQzMk9wZXJhbmRzKCksIGludDMyT3BlcmFuZHMoKSk7CisgICAgUlVO
X0JJTkFSWSh0ZXN0QWRkSW1tTWVtMzIsIGludDMyT3BlcmFuZHMoKSwgaW50MzJPcGVyYW5kcygp
KTsKICAgICBSVU4odGVzdEFkZExvYWRUd2ljZSgpKTsKIAogICAgIFJVTih0ZXN0QWRkQXJnRG91
YmxlKE1fUEkpKTsKQEAgLTY4MjYsNiArNzA3MywxMCBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBm
aWx0ZXIpCiAgICAgUlVOKHRlc3RTdWJJbW1BcmcoMSwgMikpOwogICAgIFJVTih0ZXN0U3ViSW1t
QXJnKDEzLCAtNDIpKTsKICAgICBSVU4odGVzdFN1YkltbUFyZygtMTMsIDQyKSk7CisgICAgUlVO
X0JJTkFSWSh0ZXN0U3ViQXJnTWVtLCBpbnQ2NE9wZXJhbmRzKCksIGludDY0T3BlcmFuZHMoKSk7
CisgICAgUlVOX0JJTkFSWSh0ZXN0U3ViTWVtQXJnLCBpbnQ2NE9wZXJhbmRzKCksIGludDY0T3Bl
cmFuZHMoKSk7CisgICAgUlVOX0JJTkFSWSh0ZXN0U3ViSW1tTWVtLCBpbnQzMk9wZXJhbmRzKCks
IGludDMyT3BlcmFuZHMoKSk7CisgICAgUlVOX0JJTkFSWSh0ZXN0U3ViTWVtSW1tLCBpbnQzMk9w
ZXJhbmRzKCksIGludDMyT3BlcmFuZHMoKSk7CiAgICAgUlVOX1VOQVJZKHRlc3ROZWdWYWx1ZVN1
Yk9uZSwgaW50MzJPcGVyYW5kcygpKTsKIAogICAgIFJVTih0ZXN0U3ViQXJnczMyKDEsIDEpKTsK
QEAgLTY4NDAsNiArNzA5MSwxMCBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAg
UlVOKHRlc3RTdWJJbW1BcmczMigxLCAyKSk7CiAgICAgUlVOKHRlc3RTdWJJbW1BcmczMigxMywg
LTQyKSk7CiAgICAgUlVOKHRlc3RTdWJJbW1BcmczMigtMTMsIDQyKSk7CisgICAgUlVOX0JJTkFS
WSh0ZXN0U3ViQXJnTWVtMzIsIGludDMyT3BlcmFuZHMoKSwgaW50MzJPcGVyYW5kcygpKTsKKyAg
ICBSVU5fQklOQVJZKHRlc3RTdWJNZW1BcmczMiwgaW50MzJPcGVyYW5kcygpLCBpbnQzMk9wZXJh
bmRzKCkpOworICAgIFJVTl9CSU5BUlkodGVzdFN1YkltbU1lbTMyLCBpbnQzMk9wZXJhbmRzKCks
IGludDMyT3BlcmFuZHMoKSk7CisgICAgUlVOX0JJTkFSWSh0ZXN0U3ViTWVtSW1tMzIsIGludDMy
T3BlcmFuZHMoKSwgaW50MzJPcGVyYW5kcygpKTsKICAgICBSVU5fVU5BUlkodGVzdE5lZ1ZhbHVl
U3ViT25lMzIsIGludDY0T3BlcmFuZHMoKSk7CiAKICAgICBSVU5fVU5BUlkodGVzdFN1YkFyZ0Rv
dWJsZSwgZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>