<?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>179203</bug_id>
          
          <creation_ts>2017-11-02 14:57:13 -0700</creation_ts>
          <short_desc>Remove pointer caging for HashMapImpl, JSLexicalEnvironment, DirectArguments, ScopedArguments, and ScopedArgumentsTable</short_desc>
          <delta_ts>2017-11-15 09:43:00 -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>JavaScriptCore</component>
          <version>Safari Technology Preview</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1367569</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-02 14:57:13 -0700</bug_when>
    <thetext>We&apos;ll still allocate them from the caged area, but we won&apos;t emit code to do caging when loading/storing to them. Example of types we&apos;ll remove this from are scopes and hash maps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369649</commentid>
    <comment_count>1</comment_count>
      <attachid>326392</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-08 15:17:19 -0800</bug_when>
    <thetext>Created attachment 326392
patch

Going to do some local perf testing before I put it up for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369859</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-09 07:10:27 -0800</bug_when>
    <thetext>I remember some benchmarks in kraken or octane are regressed with this caging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371230</commentid>
    <comment_count>3</comment_count>
      <attachid>326842</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-13 20:07:11 -0800</bug_when>
    <thetext>Created attachment 326842
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371241</commentid>
    <comment_count>4</comment_count>
      <attachid>326842</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-13 20:32:33 -0800</bug_when>
    <thetext>Comment on attachment 326842
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371262</commentid>
    <comment_count>5</comment_count>
      <attachid>326842</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-13 21:33:33 -0800</bug_when>
    <thetext>Comment on attachment 326842
patch

Clearing flags on attachment: 326842

Committed r224802: &lt;https://trac.webkit.org/changeset/224802&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371263</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-13 21:33:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371975</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 09:43:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/35562296&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326392</attachid>
            <date>2017-11-08 15:17:19 -0800</date>
            <delta_ts>2017-11-13 20:07:11 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>9245</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI0NjAxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDE3LTExLTA4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBjYWdpbmcgZm9yIEpTTGV4aWNhbEVudmlyb25tZW50LCBEaXJlY3RBcmd1bWVudHMs
IFNjb3BlZEFyZ3VtZW50cywgYW5kIFNjb3BlZEFyZ3VtZW50c1RhYmxlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzkyMDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG9ubHkgcmVtb3Zl
cyB0aGUgZ2lnYWNhZ2UgZGVjb3JhdGlvbiBmcm9tIG1lbW9yeSBhY2Nlc3NlcyB0byB0aGVzZSB0
eXBlcy4KKyAgICAgICAgVGhlc2UgdHlwZXMgc3RpbGwgYWxsb2NhdGUgb3V0IG9mIHRoZSBnaWdh
Y2FnZS4gVGhpcyBpcyBhIGp1c3QgYSBjb3N0IHZzIGJlbmVmaXQKKyAgICAgICAgdHJhZGVvZmYg
b2YgcGVyZm9ybWFuY2UgdnMgc2VjdXJpdHkuCisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0
QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKToKKyAgICAgICAgKiBmdGwvRlRM
TG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y29tcGlsZUdldEJ5VmFsKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXREaXJlY3RBcmd1bWVudHNHZXRCeVZhbCk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdFNjb3BlZEFyZ3VtZW50c0dldEJ5VmFsKToKKyAgICAgICAgKiBydW50
aW1lL0RpcmVjdEFyZ3VtZW50cy5oOgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6OnN0
b3JhZ2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaDoKKyAgICAg
ICAgKEpTQzo6SlNMZXhpY2FsRW52aXJvbm1lbnQ6OnZhcmlhYmxlcyk6CisgICAgICAgICogcnVu
dGltZS9TY29wZWRBcmd1bWVudHMuaDoKKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjpv
dmVyZmxvd1N0b3JhZ2UgY29uc3QpOgorCiAyMDE3LTExLTA4ICBLZWl0aCBNaWxsZXIgIDxrZWl0
aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBlciBzYW1wbGVyIGJlZ2luIGFu
ZCBlbmQgYnl0ZWNvZGVzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDIyNDU5NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDk2
LDggKzY0OTYsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkRpCiAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywKICAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIERpcmVjdEFyZ3VtZW50
czo6b2Zmc2V0T2ZMZW5ndGgoKSkpKTsKICAgICAKLSAgICBtX2ppdC5jYWdlKEdpZ2FjYWdlOjpK
U1ZhbHVlLCBiYXNlUmVnKTsKLSAgICAKICAgICBtX2ppdC5sb2FkVmFsdWUoCiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoCiAgICAgICAgICAgICBiYXNlUmVnLCBwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9m
ZnNldCgpKSwKQEAgLTY1NTIsNyArNjU1MCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVHZXRCeVZhbE9uU2MKICAgICBtX2ppdC5sb2FkUHRyKAogICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhzY3JhdGNoUmVnLCBTY29wZWRBcmd1bWVudHNUYWJsZTo6b2Zmc2V0T2ZBcmd1
bWVudHMoKSksCiAgICAgICAgIHNjcmF0Y2hSZWcpOwotICAgIG1faml0LmNhZ2UoU2NvcGVkQXJn
dW1lbnRzVGFibGU6OkFyZ3VtZW50c1B0cjo6a2luZCwgc2NyYXRjaFJlZyk7CiAgICAgbV9qaXQu
bG9hZDMyKAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHNjcmF0Y2hSZWcsIHBy
b3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNGb3VyKSwKICAgICAgICAgc2NyYXRjaFJl
Zyk7CkBAIC02NTYyLDggKzY1NTksNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0
QnlWYWxPblNjCiAgICAgICAgIG1faml0LmJyYW5jaDMyKAogICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkVxdWFsLCBzY3JhdGNoUmVnLCBUcnVzdGVkSW1tMzIoU2NvcGVPZmZzZXQ6OmludmFs
aWRPZmZzZXQpKSk7CiAgICAgCi0gICAgbV9qaXQuY2FnZShHaWdhY2FnZTo6SlNWYWx1ZSwgc2Ny
YXRjaDJSZWcpOwotICAgIAogICAgIG1faml0LmxvYWRWYWx1ZSgKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkJhc2VJbmRleCgKICAgICAgICAgICAgIHNjcmF0Y2gyUmVnLCBwcm9wZXJ0eVJlZywg
TWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsCkBAIC02NTc2LDggKzY1NzEsNiBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPblNjCiAgICAgbV9qaXQuc3ViMzIocHJvcGVy
dHlSZWcsIHNjcmF0Y2gyUmVnKTsKICAgICBtX2ppdC5uZWczMihzY3JhdGNoMlJlZyk7CiAgICAg
Ci0gICAgbV9qaXQuY2FnZShHaWdhY2FnZTo6SlNWYWx1ZSwgYmFzZVJlZyk7Ci0gICAgCiAgICAg
bV9qaXQubG9hZFZhbHVlKAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KAogICAg
ICAgICAgICAgYmFzZVJlZywgc2NyYXRjaDJSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0
LApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cAkocmV2aXNpb24gMjI0NTk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzE4LDcgKzM3MTgsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShiYXNlLCBtX2hl
YXBzLkRpcmVjdEFyZ3VtZW50c19sZW5ndGgpKSk7CiAKICAgICAgICAgICAgIFR5cGVkUG9pbnRl
ciBhZGRyZXNzID0gbV9vdXQuYmFzZUluZGV4KAotICAgICAgICAgICAgICAgIG1faGVhcHMuRGly
ZWN0QXJndW1lbnRzX3N0b3JhZ2UsIGNhZ2VkKEdpZ2FjYWdlOjpKU1ZhbHVlLCBiYXNlKSwgbV9v
dXQuemVyb0V4dFB0cihpbmRleCkpOworICAgICAgICAgICAgICAgIG1faGVhcHMuRGlyZWN0QXJn
dW1lbnRzX3N0b3JhZ2UsIGJhc2UsIG1fb3V0Lnplcm9FeHRQdHIoaW5kZXgpKTsKICAgICAgICAg
ICAgIHNldEpTVmFsdWUobV9vdXQubG9hZDY0KGFkZHJlc3MpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQpAQCAtMzc0Niw5ICszNzQ2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obmFtZWRDYXNlLCBvdmVyZmxv
d0Nhc2UpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBMVmFsdWUgc2NvcGUgPSBtX291dC5s
b2FkUHRyKGJhc2UsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX3Njb3BlKTsKLSAgICAgICAgICAg
IExWYWx1ZSBhcmd1bWVudHMgPSBjYWdlZCgKLSAgICAgICAgICAgICAgICBTY29wZWRBcmd1bWVu
dHNUYWJsZTo6QXJndW1lbnRzUHRyOjpraW5kLAotICAgICAgICAgICAgICAgIG1fb3V0LmxvYWRQ
dHIodGFibGUsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzVGFibGVfYXJndW1lbnRzKSk7CisgICAg
ICAgICAgICBMVmFsdWUgYXJndW1lbnRzID0gbV9vdXQubG9hZFB0cih0YWJsZSwgbV9oZWFwcy5T
Y29wZWRBcmd1bWVudHNUYWJsZV9hcmd1bWVudHMpOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBUeXBlZFBvaW50ZXIgYWRkcmVzcyA9IG1fb3V0LmJhc2VJbmRleCgKICAgICAgICAgICAgICAg
ICBtX2hlYXBzLnNjb3BlZEFyZ3VtZW50c1RhYmxlQXJndW1lbnRzLCBhcmd1bWVudHMsIG1fb3V0
Lnplcm9FeHRQdHIoaW5kZXgpKTsKQEAgLTM3NTksMTUgKzM3NTcsMTQgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICBtX291dC5lcXVhbChzY29wZU9mZnNldCwgbV9vdXQuY29uc3RJbnQzMihT
Y29wZU9mZnNldDo6aW52YWxpZE9mZnNldCkpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
YWRkcmVzcyA9IG1fb3V0LmJhc2VJbmRleCgKLSAgICAgICAgICAgICAgICBtX2hlYXBzLkpTTGV4
aWNhbEVudmlyb25tZW50X3ZhcmlhYmxlcywgY2FnZWQoR2lnYWNhZ2U6OkpTVmFsdWUsIHNjb3Bl
KSwKLSAgICAgICAgICAgICAgICBtX291dC56ZXJvRXh0UHRyKHNjb3BlT2Zmc2V0KSk7CisgICAg
ICAgICAgICAgICAgbV9oZWFwcy5KU0xleGljYWxFbnZpcm9ubWVudF92YXJpYWJsZXMsIHNjb3Bl
LCBtX291dC56ZXJvRXh0UHRyKHNjb3BlT2Zmc2V0KSk7CiAgICAgICAgICAgICBWYWx1ZUZyb21C
bG9jayBuYW1lZFJlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5sb2FkNjQoYWRkcmVzcykpOwog
ICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhvdmVyZmxvd0Nhc2UsIGNvbnRpbnVhdGlvbik7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIGFkZHJlc3MgPSBtX291dC5iYXNlSW5kZXgoCi0gICAgICAg
ICAgICAgICAgbV9oZWFwcy5TY29wZWRBcmd1bWVudHNfb3ZlcmZsb3dTdG9yYWdlLCBjYWdlZChH
aWdhY2FnZTo6SlNWYWx1ZSwgYmFzZSksCisgICAgICAgICAgICAgICAgbV9oZWFwcy5TY29wZWRB
cmd1bWVudHNfb3ZlcmZsb3dTdG9yYWdlLCBiYXNlLAogICAgICAgICAgICAgICAgIG1fb3V0Lnpl
cm9FeHRQdHIobV9vdXQuc3ViKGluZGV4LCBuYW1lZExlbmd0aCkpKTsKICAgICAgICAgICAgIExW
YWx1ZSBvdmVyZmxvd1ZhbHVlID0gbV9vdXQubG9hZDY0KGFkZHJlc3MpOwogICAgICAgICAgICAg
c3BlY3VsYXRlKEV4b3RpY09iamVjdE1vZGUsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQuaXNa
ZXJvNjQob3ZlcmZsb3dWYWx1ZSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9uIDIyNDU5NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDExLDcgKzE0MTEsNiBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdERpcmVjdEFyZ3VtZW50
c0dlCiAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0UHRyKE5vblplcm8sIEFkZHJlc3Mo
YmFzZSwgRGlyZWN0QXJndW1lbnRzOjpvZmZzZXRPZk1hcHBlZEFyZ3VtZW50cygpKSkpOwogICAg
IAogICAgIHplcm9FeHRlbmQzMlRvUHRyKHByb3BlcnR5LCBzY3JhdGNoKTsKLSAgICBjYWdlKEdp
Z2FjYWdlOjpKU1ZhbHVlLCBiYXNlKTsKICAgICBsb2FkVmFsdWUoQmFzZUluZGV4KGJhc2UsIHNj
cmF0Y2gsIFRpbWVzRWlnaHQsIERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpKSwgcmVz
dWx0KTsKICAgICAKICAgICByZXR1cm4gc2xvd0Nhc2VzOwpAQCAtMTQ0NCw3ICsxNDQzLDYgQEAg
SklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRTY29wZWRBcmd1bWVudHNHZQogICAgIEp1bXAgb3ZlcmZs
b3dDYXNlID0gYnJhbmNoMzIoQWJvdmVPckVxdWFsLCBwcm9wZXJ0eSwgc2NyYXRjaDIpOwogICAg
IGxvYWRQdHIoQWRkcmVzcyhiYXNlLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mU2NvcGUoKSks
IHNjcmF0Y2gyKTsKICAgICBsb2FkUHRyKEFkZHJlc3Moc2NyYXRjaCwgU2NvcGVkQXJndW1lbnRz
VGFibGU6Om9mZnNldE9mQXJndW1lbnRzKCkpLCBzY3JhdGNoKTsKLSAgICBjYWdlKFNjb3BlZEFy
Z3VtZW50c1RhYmxlOjpBcmd1bWVudHNQdHI6OmtpbmQsIHNjcmF0Y2gpOwogICAgIGxvYWQzMihC
YXNlSW5kZXgoc2NyYXRjaCwgcHJvcGVydHksIFRpbWVzRm91ciksIHNjcmF0Y2gpOwogICAgIHNs
b3dDYXNlcy5hcHBlbmQoYnJhbmNoMzIoRXF1YWwsIHNjcmF0Y2gsIFRydXN0ZWRJbW0zMihTY29w
ZU9mZnNldDo6aW52YWxpZE9mZnNldCkpKTsKICAgICBsb2FkVmFsdWUoQmFzZUluZGV4KHNjcmF0
Y2gyLCBzY3JhdGNoLCBUaW1lc0VpZ2h0LCBKU0xleGljYWxFbnZpcm9ubWVudDo6b2Zmc2V0T2ZW
YXJpYWJsZXMoKSksIHJlc3VsdCk7CkBAIC0xNDUyLDcgKzE0NTAsNiBAQCBKSVQ6Okp1bXBMaXN0
IEpJVDo6ZW1pdFNjb3BlZEFyZ3VtZW50c0dlCiAgICAgb3ZlcmZsb3dDYXNlLmxpbmsodGhpcyk7
CiAgICAgc3ViMzIocHJvcGVydHksIHNjcmF0Y2gyKTsKICAgICBuZWczMihzY3JhdGNoMik7Ci0g
ICAgY2FnZShHaWdhY2FnZTo6SlNWYWx1ZSwgYmFzZSk7CiAgICAgbG9hZFZhbHVlKEJhc2VJbmRl
eChiYXNlLCBzY3JhdGNoMiwgVGltZXNFaWdodCwgU2NvcGVkQXJndW1lbnRzOjpvdmVyZmxvd1N0
b3JhZ2VPZmZzZXQoKSksIHJlc3VsdCk7CiAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hJZkVt
cHR5KHJlc3VsdCkpOwogICAgIGRvbmUubGluayh0aGlzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RpcmVjdEFyZ3VtZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVjdEFyZ3VtZW50cy5oCShyZXZpc2lvbiAyMjQ1OTYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EaXJlY3RBcmd1bWVudHMuaAkod29y
a2luZyBjb3B5KQpAQCAtMTcwLDcgKzE3MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV3Jp
dGVCYXJyaWVyPFVua25vd24+KiBzdG9yYWdlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBiaXR3
aXNlX2Nhc3Q8V3JpdGVCYXJyaWVyPFVua25vd24+Kj4oYml0d2lzZV9jYXN0PGNoYXIqPihHaWdh
Y2FnZTo6Y2FnZWQoR2lnYWNhZ2U6OkpTVmFsdWUsIHRoaXMpKSArIHN0b3JhZ2VPZmZzZXQoKSk7
CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8V3JpdGVCYXJyaWVyPFVua25vd24+Kj4oYml0
d2lzZV9jYXN0PGNoYXIqPih0aGlzKSArIHN0b3JhZ2VPZmZzZXQoKSk7CiAgICAgfQogICAgIAog
ICAgIHVuc2lnbmVkIG1hcHBlZEFyZ3VtZW50c1NpemUoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaAkocmV2aXNp
b24gMjI0NTk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52
aXJvbm1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAKICAg
ICBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+KiB2YXJpYWJsZXMoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGJpdHdpc2VfY2FzdDxXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+Kj4oYml0d2lzZV9j
YXN0PGNoYXIqPihHaWdhY2FnZTo6Y2FnZWQoR2lnYWNhZ2U6OkpTVmFsdWUsIHRoaXMpKSArIG9m
ZnNldE9mVmFyaWFibGVzKCkpOworICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PFdyaXRlQmFy
cmllckJhc2U8VW5rbm93bj4qPihiaXR3aXNlX2Nhc3Q8Y2hhcio+KHRoaXMpICsgb2Zmc2V0T2ZW
YXJpYWJsZXMoKSk7CiAgICAgfQogCiAgICAgYm9vbCBpc1ZhbGlkU2NvcGVPZmZzZXQoU2NvcGVP
ZmZzZXQgb2Zmc2V0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVk
QXJndW1lbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2NvcGVkQXJndW1lbnRzLmgJKHJldmlzaW9uIDIyNDU5NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjEsOCAr
MTYxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIG92
ZXJmbG93U3RvcmFnZSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0
PFdyaXRlQmFycmllcjxVbmtub3duPio+KAotICAgICAgICAgICAgYml0d2lzZV9jYXN0PGNoYXIq
PihHaWdhY2FnZTo6Y2FnZWQoR2lnYWNhZ2U6OkpTVmFsdWUsIHRoaXMpKSArIG92ZXJmbG93U3Rv
cmFnZU9mZnNldCgpKTsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxXcml0ZUJhcnJpZXI8
VW5rbm93bj4qPihiaXR3aXNlX2Nhc3Q8Y2hhcio+KHRoaXMpICsgb3ZlcmZsb3dTdG9yYWdlT2Zm
c2V0KCkpOwogICAgIH0KICAgICAKICAgICBib29sIG1fb3ZlcnJvZGVUaGluZ3M7IC8vIFRydWUg
aWYgbGVuZ3RoLCBjYWxsZWUsIGFuZCBjYWxsZXIgYXJlIGZ1bGx5IG1hdGVyaWFsaXplZCBpbiB0
aGUgb2JqZWN0Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326842</attachid>
            <date>2017-11-13 20:07:11 -0800</date>
            <delta_ts>2017-11-13 21:33:33 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>10580</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI0ODAxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE3LTExLTEzICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBwb2ludGVyIGNhZ2luZyBmb3IgSGFzaE1hcEltcGwsIEpTTGV4aWNhbEVudmlyb25t
ZW50LCBEaXJlY3RBcmd1bWVudHMsIFNjb3BlZEFyZ3VtZW50cywgYW5kIFNjb3BlZEFyZ3VtZW50
c1RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzkyMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIG9ubHkgcmVtb3ZlcyB0aGUgcG9pbnRlciBjYWdpbmcgZm9yIHRoZSBkZXNjcmli
ZWQgdHlwZXMgaW4gdGhlIHRpdGxlLgorICAgICAgICBUaGVzZSB0eXBlcyBzdGlsbCBhbGxvY2F0
ZSBvdXQgb2YgdGhlIGdpZ2FjYWdlLiBUaGlzIGlzIGEganVzdCBhIGNvc3QgdnMgYmVuZWZpdAor
ICAgICAgICB0cmFkZW9mZiBvZiBwZXJmb3JtYW5jZSB2cyBzZWN1cml0eS4KKworICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRGlyZWN0QXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TY29wZWRBcmd1bWVudHMpOgor
ICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRG
Rzo6TG93ZXJERkdUb0IzOjpjb21waWxlR2V0QnlWYWwpOgorICAgICAgICAqIGppdC9KSVRQcm9w
ZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdERpcmVjdEFyZ3VtZW50c0dl
dEJ5VmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2NvcGVkQXJndW1lbnRzR2V0QnlWYWwp
OgorICAgICAgICAqIHJ1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmg6CisgICAgICAgIChKU0M6OkRp
cmVjdEFyZ3VtZW50czo6c3RvcmFnZSk6CisgICAgICAgICogcnVudGltZS9IYXNoTWFwSW1wbC5j
cHA6CisgICAgICAgIChKU0M6Okhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ+Ojp2aXNpdENoaWxk
cmVuKToKKyAgICAgICAgKiBydW50aW1lL0hhc2hNYXBJbXBsLmg6CisgICAgICAgICogcnVudGlt
ZS9KU0xleGljYWxFbnZpcm9ubWVudC5oOgorICAgICAgICAoSlNDOjpKU0xleGljYWxFbnZpcm9u
bWVudDo6dmFyaWFibGVzKToKKyAgICAgICAgKiBydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oOgor
ICAgICAgICAoSlNDOjpTY29wZWRBcmd1bWVudHM6Om92ZXJmbG93U3RvcmFnZSBjb25zdCk6CisK
IDIwMTctMTEtMDggIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgQXN5bmMgaXRlcmF0aW9uIHNob3VsZCBvbmx5IGZldGNoIHRoZSBuZXh0IG1ldGhvZCBv
bmNlIGFuZCBhZGQgZmVhdHVyZSBmbGFnCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMjI0Nzk2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY0OTYsOCArNjQ5Niw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZh
bE9uRGkKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5
UmVnLAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgRGlyZWN0
QXJndW1lbnRzOjpvZmZzZXRPZkxlbmd0aCgpKSkpOwogICAgIAotICAgIG1faml0LmNhZ2UoR2ln
YWNhZ2U6OkpTVmFsdWUsIGJhc2VSZWcpOwotICAgIAogICAgIG1faml0LmxvYWRWYWx1ZSgKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleCgKICAgICAgICAgICAgIGJhc2VSZWcsIHBy
b3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgRGlyZWN0QXJndW1lbnRzOjpz
dG9yYWdlT2Zmc2V0KCkpLApAQCAtNjU1Miw3ICs2NTUwLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUdldEJ5VmFsT25TYwogICAgIG1faml0LmxvYWRQdHIoCiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHNjcmF0Y2hSZWcsIFNjb3BlZEFyZ3VtZW50c1RhYmxlOjpvZmZz
ZXRPZkFyZ3VtZW50cygpKSwKICAgICAgICAgc2NyYXRjaFJlZyk7Ci0gICAgbV9qaXQuY2FnZShT
Y29wZWRBcmd1bWVudHNUYWJsZTo6QXJndW1lbnRzUHRyOjpraW5kLCBzY3JhdGNoUmVnKTsKICAg
ICBtX2ppdC5sb2FkMzIoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc2NyYXRj
aFJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0ZvdXIpLAogICAgICAgICBz
Y3JhdGNoUmVnKTsKQEAgLTY1NjIsOCArNjU1OSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVHZXRCeVZhbE9uU2MKICAgICAgICAgbV9qaXQuYnJhbmNoMzIoCiAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHNjcmF0Y2hSZWcsIFRydXN0ZWRJbW0zMihTY29wZU9mZnNl
dDo6aW52YWxpZE9mZnNldCkpKTsKICAgICAKLSAgICBtX2ppdC5jYWdlKEdpZ2FjYWdlOjpKU1Zh
bHVlLCBzY3JhdGNoMlJlZyk7Ci0gICAgCiAgICAgbV9qaXQubG9hZFZhbHVlKAogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KAogICAgICAgICAgICAgc2NyYXRjaDJSZWcsIHByb3Bl
cnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwKQEAgLTY1NzYsOCArNjU3MSw2IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2MKICAgICBtX2ppdC5zdWIz
Mihwcm9wZXJ0eVJlZywgc2NyYXRjaDJSZWcpOwogICAgIG1faml0Lm5lZzMyKHNjcmF0Y2gyUmVn
KTsKICAgICAKLSAgICBtX2ppdC5jYWdlKEdpZ2FjYWdlOjpKU1ZhbHVlLCBiYXNlUmVnKTsKLSAg
ICAKICAgICBtX2ppdC5sb2FkVmFsdWUoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5k
ZXgoCiAgICAgICAgICAgICBiYXNlUmVnLCBzY3JhdGNoMlJlZywgTWFjcm9Bc3NlbWJsZXI6OlRp
bWVzRWlnaHQsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCShyZXZpc2lvbiAyMjQ3OTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3MTgsNyArMzcxOCw3IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJh
c2UsIG1faGVhcHMuRGlyZWN0QXJndW1lbnRzX2xlbmd0aCkpKTsKIAogICAgICAgICAgICAgVHlw
ZWRQb2ludGVyIGFkZHJlc3MgPSBtX291dC5iYXNlSW5kZXgoCi0gICAgICAgICAgICAgICAgbV9o
ZWFwcy5EaXJlY3RBcmd1bWVudHNfc3RvcmFnZSwgY2FnZWQoR2lnYWNhZ2U6OkpTVmFsdWUsIGJh
c2UpLCBtX291dC56ZXJvRXh0UHRyKGluZGV4KSk7CisgICAgICAgICAgICAgICAgbV9oZWFwcy5E
aXJlY3RBcmd1bWVudHNfc3RvcmFnZSwgYmFzZSwgbV9vdXQuemVyb0V4dFB0cihpbmRleCkpOwog
ICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkNjQoYWRkcmVzcykpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0zNzQ2LDkgKzM3NDYsNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhuYW1lZENhc2Us
IG92ZXJmbG93Q2FzZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSBzY29wZSA9
IG1fb3V0LmxvYWRQdHIoYmFzZSwgbV9oZWFwcy5TY29wZWRBcmd1bWVudHNfc2NvcGUpOwotICAg
ICAgICAgICAgTFZhbHVlIGFyZ3VtZW50cyA9IGNhZ2VkKAotICAgICAgICAgICAgICAgIFNjb3Bl
ZEFyZ3VtZW50c1RhYmxlOjpBcmd1bWVudHNQdHI6OmtpbmQsCi0gICAgICAgICAgICAgICAgbV9v
dXQubG9hZFB0cih0YWJsZSwgbV9oZWFwcy5TY29wZWRBcmd1bWVudHNUYWJsZV9hcmd1bWVudHMp
KTsKKyAgICAgICAgICAgIExWYWx1ZSBhcmd1bWVudHMgPSBtX291dC5sb2FkUHRyKHRhYmxlLCBt
X2hlYXBzLlNjb3BlZEFyZ3VtZW50c1RhYmxlX2FyZ3VtZW50cyk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIFR5cGVkUG9pbnRlciBhZGRyZXNzID0gbV9vdXQuYmFzZUluZGV4KAogICAgICAg
ICAgICAgICAgIG1faGVhcHMuc2NvcGVkQXJndW1lbnRzVGFibGVBcmd1bWVudHMsIGFyZ3VtZW50
cywgbV9vdXQuemVyb0V4dFB0cihpbmRleCkpOwpAQCAtMzc1OSwxNSArMzc1NywxNCBAQCBwcml2
YXRlOgogICAgICAgICAgICAgICAgIG1fb3V0LmVxdWFsKHNjb3BlT2Zmc2V0LCBtX291dC5jb25z
dEludDMyKFNjb3BlT2Zmc2V0OjppbnZhbGlkT2Zmc2V0KSkpOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBhZGRyZXNzID0gbV9vdXQuYmFzZUluZGV4KAotICAgICAgICAgICAgICAgIG1faGVh
cHMuSlNMZXhpY2FsRW52aXJvbm1lbnRfdmFyaWFibGVzLCBjYWdlZChHaWdhY2FnZTo6SlNWYWx1
ZSwgc2NvcGUpLAotICAgICAgICAgICAgICAgIG1fb3V0Lnplcm9FeHRQdHIoc2NvcGVPZmZzZXQp
KTsKKyAgICAgICAgICAgICAgICBtX2hlYXBzLkpTTGV4aWNhbEVudmlyb25tZW50X3ZhcmlhYmxl
cywgc2NvcGUsIG1fb3V0Lnplcm9FeHRQdHIoc2NvcGVPZmZzZXQpKTsKICAgICAgICAgICAgIFZh
bHVlRnJvbUJsb2NrIG5hbWVkUmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmxvYWQ2NChhZGRy
ZXNzKSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG92ZXJmbG93Q2FzZSwgY29udGludWF0aW9u
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgYWRkcmVzcyA9IG1fb3V0LmJhc2VJbmRleCgK
LSAgICAgICAgICAgICAgICBtX2hlYXBzLlNjb3BlZEFyZ3VtZW50c19vdmVyZmxvd1N0b3JhZ2Us
IGNhZ2VkKEdpZ2FjYWdlOjpKU1ZhbHVlLCBiYXNlKSwKKyAgICAgICAgICAgICAgICBtX2hlYXBz
LlNjb3BlZEFyZ3VtZW50c19vdmVyZmxvd1N0b3JhZ2UsIGJhc2UsCiAgICAgICAgICAgICAgICAg
bV9vdXQuemVyb0V4dFB0cihtX291dC5zdWIoaW5kZXgsIG5hbWVkTGVuZ3RoKSkpOwogICAgICAg
ICAgICAgTFZhbHVlIG92ZXJmbG93VmFsdWUgPSBtX291dC5sb2FkNjQoYWRkcmVzcyk7CiAgICAg
ICAgICAgICBzcGVjdWxhdGUoRXhvdGljT2JqZWN0TW9kZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBt
X291dC5pc1plcm82NChvdmVyZmxvd1ZhbHVlKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkocmV2aXNpb24gMjI0Nzk2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE0MDMsNyArMTQwMyw2IEBAIEpJVDo6SnVtcExpc3QgSklUOjplbWl0RGlyZWN0
QXJndW1lbnRzR2UKICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoTm9uWmVybywg
QWRkcmVzcyhiYXNlLCBEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mTWFwcGVkQXJndW1lbnRzKCkp
KSk7CiAgICAgCiAgICAgemVyb0V4dGVuZDMyVG9QdHIocHJvcGVydHksIHNjcmF0Y2gpOwotICAg
IGNhZ2UoR2lnYWNhZ2U6OkpTVmFsdWUsIGJhc2UpOwogICAgIGxvYWRWYWx1ZShCYXNlSW5kZXgo
YmFzZSwgc2NyYXRjaCwgVGltZXNFaWdodCwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0
KCkpLCByZXN1bHQpOwogICAgIAogICAgIHJldHVybiBzbG93Q2FzZXM7CkBAIC0xNDM2LDcgKzE0
MzUsNiBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdFNjb3BlZEFyZ3VtZW50c0dlCiAgICAgSnVt
cCBvdmVyZmxvd0Nhc2UgPSBicmFuY2gzMihBYm92ZU9yRXF1YWwsIHByb3BlcnR5LCBzY3JhdGNo
Mik7CiAgICAgbG9hZFB0cihBZGRyZXNzKGJhc2UsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZT
Y29wZSgpKSwgc2NyYXRjaDIpOwogICAgIGxvYWRQdHIoQWRkcmVzcyhzY3JhdGNoLCBTY29wZWRB
cmd1bWVudHNUYWJsZTo6b2Zmc2V0T2ZBcmd1bWVudHMoKSksIHNjcmF0Y2gpOwotICAgIGNhZ2Uo
U2NvcGVkQXJndW1lbnRzVGFibGU6OkFyZ3VtZW50c1B0cjo6a2luZCwgc2NyYXRjaCk7CiAgICAg
bG9hZDMyKEJhc2VJbmRleChzY3JhdGNoLCBwcm9wZXJ0eSwgVGltZXNGb3VyKSwgc2NyYXRjaCk7
CiAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2gzMihFcXVhbCwgc2NyYXRjaCwgVHJ1c3RlZElt
bTMyKFNjb3BlT2Zmc2V0OjppbnZhbGlkT2Zmc2V0KSkpOwogICAgIGxvYWRWYWx1ZShCYXNlSW5k
ZXgoc2NyYXRjaDIsIHNjcmF0Y2gsIFRpbWVzRWlnaHQsIEpTTGV4aWNhbEVudmlyb25tZW50Ojpv
ZmZzZXRPZlZhcmlhYmxlcygpKSwgcmVzdWx0KTsKQEAgLTE0NDQsNyArMTQ0Miw2IEBAIEpJVDo6
SnVtcExpc3QgSklUOjplbWl0U2NvcGVkQXJndW1lbnRzR2UKICAgICBvdmVyZmxvd0Nhc2UubGlu
ayh0aGlzKTsKICAgICBzdWIzMihwcm9wZXJ0eSwgc2NyYXRjaDIpOwogICAgIG5lZzMyKHNjcmF0
Y2gyKTsKLSAgICBjYWdlKEdpZ2FjYWdlOjpKU1ZhbHVlLCBiYXNlKTsKICAgICBsb2FkVmFsdWUo
QmFzZUluZGV4KGJhc2UsIHNjcmF0Y2gyLCBUaW1lc0VpZ2h0LCBTY29wZWRBcmd1bWVudHM6Om92
ZXJmbG93U3RvcmFnZU9mZnNldCgpKSwgcmVzdWx0KTsKICAgICBzbG93Q2FzZXMuYXBwZW5kKGJy
YW5jaElmRW1wdHkocmVzdWx0KSk7CiAgICAgZG9uZS5saW5rKHRoaXMpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmgJKHJldmlzaW9u
IDIyNDc5NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVjdEFyZ3VtZW50
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNyArMTcwLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIHN0b3JhZ2UoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGJpdHdpc2VfY2FzdDxXcml0ZUJhcnJpZXI8VW5rbm93bj4qPihiaXR3aXNlX2Nhc3Q8Y2hh
cio+KEdpZ2FjYWdlOjpjYWdlZChHaWdhY2FnZTo6SlNWYWx1ZSwgdGhpcykpICsgc3RvcmFnZU9m
ZnNldCgpKTsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxXcml0ZUJhcnJpZXI8VW5rbm93
bj4qPihiaXR3aXNlX2Nhc3Q8Y2hhcio+KHRoaXMpICsgc3RvcmFnZU9mZnNldCgpKTsKICAgICB9
CiAgICAgCiAgICAgdW5zaWduZWQgbWFwcGVkQXJndW1lbnRzU2l6ZSgpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzaE1hcEltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hhc2hNYXBJbXBsLmNwcAkocmV2aXNpb24gMjI0
Nzk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzaE1hcEltcGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgSGFzaE1hcEltcGw8SGFzaE1hcEJ1
Y2tldD46OnZpc2l0Q2gKICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2hlYWQpOwog
ICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fdGFpbCk7CiAgICAgCi0gICAgaWYgKEhh
c2hNYXBCdWZmZXJUeXBlKiBidWZmZXIgPSB0aGlzT2JqZWN0LT5tX2J1ZmZlci5nZXRNYXlCZU51
bGwoKSkKKyAgICBpZiAoSGFzaE1hcEJ1ZmZlclR5cGUqIGJ1ZmZlciA9IHRoaXNPYmplY3QtPm1f
YnVmZmVyLmdldCgpKQogICAgICAgICB2aXNpdG9yLm1hcmtBdXhpbGlhcnkoYnVmZmVyKTsKIH0K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzaE1hcEltcGwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNoTWFwSW1wbC5oCShy
ZXZpc2lvbiAyMjQ3OTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNoTWFw
SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OTgsNyArNjk4LDcgQEAgcHJpdmF0ZToKIAogICAg
IFdyaXRlQmFycmllcjxIYXNoTWFwQnVja2V0VHlwZT4gbV9oZWFkOwogICAgIFdyaXRlQmFycmll
cjxIYXNoTWFwQnVja2V0VHlwZT4gbV90YWlsOwotICAgIENhZ2VkQmFycmllclB0cjxHaWdhY2Fn
ZTo6SlNWYWx1ZSwgSGFzaE1hcEJ1ZmZlclR5cGU+IG1fYnVmZmVyOworICAgIEF1eGlsaWFyeUJh
cnJpZXI8SGFzaE1hcEJ1ZmZlclR5cGUqPiBtX2J1ZmZlcjsKICAgICB1aW50MzJfdCBtX2tleUNv
dW50OwogICAgIHVpbnQzMl90IG1fZGVsZXRlQ291bnQ7CiAgICAgdWludDMyX3QgbV9jYXBhY2l0
eTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25t
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhp
Y2FsRW52aXJvbm1lbnQuaAkocmV2aXNpb24gMjI0Nzk2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTIs
NyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+KiB2YXJp
YWJsZXMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxXcml0ZUJhcnJpZXJC
YXNlPFVua25vd24+Kj4oYml0d2lzZV9jYXN0PGNoYXIqPihHaWdhY2FnZTo6Y2FnZWQoR2lnYWNh
Z2U6OkpTVmFsdWUsIHRoaXMpKSArIG9mZnNldE9mVmFyaWFibGVzKCkpOworICAgICAgICByZXR1
cm4gYml0d2lzZV9jYXN0PFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qPihiaXR3aXNlX2Nhc3Q8
Y2hhcio+KHRoaXMpICsgb2Zmc2V0T2ZWYXJpYWJsZXMoKSk7CiAgICAgfQogCiAgICAgYm9vbCBp
c1ZhbGlkU2NvcGVPZmZzZXQoU2NvcGVPZmZzZXQgb2Zmc2V0KQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmgJKHJldmlzaW9uIDIyNDc5
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjEsOCArMTYxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBX
cml0ZUJhcnJpZXI8VW5rbm93bj4qIG92ZXJmbG93U3RvcmFnZSgpIGNvbnN0CiAgICAgewotICAg
ICAgICByZXR1cm4gYml0d2lzZV9jYXN0PFdyaXRlQmFycmllcjxVbmtub3duPio+KAotICAgICAg
ICAgICAgYml0d2lzZV9jYXN0PGNoYXIqPihHaWdhY2FnZTo6Y2FnZWQoR2lnYWNhZ2U6OkpTVmFs
dWUsIHRoaXMpKSArIG92ZXJmbG93U3RvcmFnZU9mZnNldCgpKTsKKyAgICAgICAgcmV0dXJuIGJp
dHdpc2VfY2FzdDxXcml0ZUJhcnJpZXI8VW5rbm93bj4qPihiaXR3aXNlX2Nhc3Q8Y2hhcio+KHRo
aXMpICsgb3ZlcmZsb3dTdG9yYWdlT2Zmc2V0KCkpOwogICAgIH0KICAgICAKICAgICBib29sIG1f
b3ZlcnJvZGVUaGluZ3M7IC8vIFRydWUgaWYgbGVuZ3RoLCBjYWxsZWUsIGFuZCBjYWxsZXIgYXJl
IGZ1bGx5IG1hdGVyaWFsaXplZCBpbiB0aGUgb2JqZWN0Lgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>