<?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>87401</bug_id>
          
          <creation_ts>2012-05-24 10:35:29 -0700</creation_ts>
          <short_desc>Made WeakSet per-block instead of per-heap</short_desc>
          <delta_ts>2012-05-24 14:18:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>632923</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-24 10:35:29 -0700</bug_when>
    <thetext>Made WeakSet per-block instead of per-heap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632932</commentid>
    <comment_count>1</comment_count>
      <attachid>143849</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-24 10:43:30 -0700</bug_when>
    <thetext>Created attachment 143849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633214</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-24 14:18:15 -0700</bug_when>
    <thetext>Committed r118416: &lt;http://trac.webkit.org/changeset/118416&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143849</attachid>
            <date>2012-05-24 10:43:30 -0700</date>
            <delta_ts>2012-05-24 12:43:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87401-20120524104329.patch</filename>
            <type>text/plain</type>
            <size>16585</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE4MzkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg0IEBA
CisyMDEyLTA1LTI0ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFkZSBXZWFrU2V0IHBlci1ibG9jayBpbnN0ZWFkIG9mIHBlci1oZWFwCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzQwMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIGZhc3Qg
YWNjZXNzIHRvIHRoZSBzZXQgb2YgYWxsIHdlYWsgcG9pbnRlcnMgZm9yIGEgYmxvY2ssCisgICAg
ICAgIHdoaWNoIGlzIGEgc3RlcCB0b3dhcmQgbGF6eSBmaW5hbGl6YXRpb24uCisKKyAgICAgICAg
Tm8gcGVyZm9ybWFuY2UgY2hhbmdlLgorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAg
ICAgKEpTQzo6SGVhcDo6SGVhcCk6CisgICAgICAgIChKU0M6OkhlYXA6Omxhc3RDaGFuY2VUb0Zp
bmFsaXplKTogUmVtb3ZlZCB0aGUgcGVyLWhlYXAgd2VhayBzZXQsIHNpbmNlCisgICAgICAgIGl0
J3MgcGVyLWJsb2NrIG5vdy4KKworICAgICAgICAoSlNDOjpIZWFwOjptYXJrUm9vdHMpOiBEZWxl
Z2F0ZSB3ZWFrIHNldCB2aXNpdGluZyB0byB0aGUgbWFya2VkIHNwYWNlLAorICAgICAgICBzaW5j
ZSBpdCBrbm93cyBob3cgdG8gaXRlcmF0ZSBhbGwgYmxvY2tzLgorCisgICAgICAgIChKU0M6Okhl
YXA6OmNvbGxlY3QpOiBNb3ZlZCB0aGUgcmVhcGluZyBvdXRzaWRlIG9mIG1hcmtSb290cywgc2lu
Y2UgaXQKKyAgICAgICAgZG9lc24ndCBtYXJrIGFueXRoaW5nLgorCisgICAgICAgIE1ha2Ugc3Vy
ZSB0byByZXNldCBhbGxvY2F0b3JzIGFmdGVyIHNocmlua2luZywgc2luY2Ugc2hyaW5raW5nIG1h
eQorICAgICAgICBkZWFsbG9jYXRlIHRoZSBjdXJyZW50IGFsbG9jYXRvci4KKworICAgICAgICAq
IGhlYXAvSGVhcC5oOgorICAgICAgICAoSGVhcCk6IE5vIG1vcmUgcGVyLWhlYXAgd2VhayBzZXQs
IHNpbmNlIGl0J3MgcGVyLWJsb2NrIG5vdy4KKworICAgICAgICAqIGhlYXAvTWFya2VkQmxvY2su
Y3BwOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6TWFya2VkQmxvY2spOgorICAgICAgICAq
IGhlYXAvTWFya2VkQmxvY2suaDoKKyAgICAgICAgKE1hcmtlZEJsb2NrKToKKyAgICAgICAgKEpT
Qzo6TWFya2VkQmxvY2s6Omxhc3RDaGFuY2VUb0ZpbmFsaXplKTogTWlncmF0ZWQgZmluYWxpemF0
aW9uIGxvZ2ljCisgICAgICAgIGhlcmUgZnJvbSB0aGUgaGVhcCwgc28gdGhlIGhlYXAgZG9lc24n
dCBuZWVkIHRvIGtub3cgYWJvdXQgb3VyIGludGVybmFsCisgICAgICAgIGRhdGEgc3RydWN0dXJl
cyBsaWtlIG91ciB3ZWFrIHNldC4KKworICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6aGVhcCk6
CisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjp3ZWFrU2V0KToKKyAgICAgICAgKEpTQzo6TWFy
a2VkQmxvY2s6OnNocmluayk6CisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpyZXNldEFsbG9j
YXRvcik6CisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjp2aXNpdFdlYWtTZXQpOgorICAgICAg
ICAoSlNDOjpNYXJrZWRCbG9jazo6cmVhcFdlYWtTZXQpOgorICAgICAgICAoSlNDOjpNYXJrZWRC
bG9jazo6c3dlZXBXZWFrU2V0KToKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmNwcDoKKyAg
ICAgICAgKEpTQzo6VmlzaXRXZWFrU2V0OjpWaXNpdFdlYWtTZXQpOgorICAgICAgICAoSlNDOjpW
aXNpdFdlYWtTZXQ6Om9wZXJhdG9yKCkpOgorICAgICAgICAoVmlzaXRXZWFrU2V0KToKKyAgICAg
ICAgKEpTQyk6CisgICAgICAgIChKU0M6OlJlYXBXZWFrU2V0OjpvcGVyYXRvcigpKToKKyAgICAg
ICAgKEpTQzo6U3dlZXBXZWFrU2V0OjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpTQzo6TGFzdENo
YW5jZVRvRmluYWxpemU6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6
bGFzdENoYW5jZVRvRmluYWxpemUpOgorICAgICAgICAoSlNDOjpSZXNldEFsbG9jYXRvcjo6b3Bl
cmF0b3IoKSk6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpyZXNldEFsbG9jYXRvcnMpOgor
ICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6dmlzaXRXZWFrU2V0cyk6CisgICAgICAgIChKU0M6
Ok1hcmtlZFNwYWNlOjpyZWFwV2Vha1NldHMpOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6
c3dlZXBXZWFrU2V0cyk6CisgICAgICAgIChKU0M6OlNocmluazo6b3BlcmF0b3IoKSk6CisgICAg
ICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpzaHJpbmspOgorICAgICAgICAqIGhlYXAvTWFya2VkU3Bh
Y2UuaDoKKyAgICAgICAgKE1hcmtlZFNwYWNlKTogTWFrZSBzdXJlIHRvIGFjY291bnQgZm9yIG91
ciB3ZWFrIHNldHMgd2hlbiBzd2VlcGluZywKKyAgICAgICAgc2hyaW5raW5nLCBldGMuCisKKyAg
ICAgICAgKiBoZWFwL1dlYWtTZXQuY3BwOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBoZWFw
L1dlYWtTZXQuaDoKKyAgICAgICAgKFdlYWtTZXQpOgorICAgICAgICAoSlNDOjpXZWFrU2V0Ojpo
ZWFwKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6OldlYWtTZXQ6Omxhc3RDaGFuY2VU
b0ZpbmFsaXplKToKKyAgICAgICAgKEpTQzo6V2Vha1NldDo6dmlzaXQpOgorICAgICAgICAoSlND
OjpXZWFrU2V0OjpyZWFwKToKKyAgICAgICAgKEpTQzo6V2Vha1NldDo6c2hyaW5rKToKKyAgICAg
ICAgKEpTQzo6V2Vha1NldDo6cmVzZXRBbGxvY2F0b3IpOiBJbmxpbmVkIHNvbWUgdGhpbmdzIHNp
bmNlIHRoZXkncmUgY2FsbGVkCisgICAgICAgIG9uY2UgcGVyIGJsb2NrIG5vdyBpbnN0ZWFkIG9m
IG9uY2UgcGVyIGhlYXAuCisKKyAgICAgICAgKiBoZWFwL1dlYWtTZXRJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OldlYWtTZXQ6OmFsbG9jYXRlKTogVXNlIHRoZSBwZXItYmxvY2sgd2VhayBzZXQg
c2luY2UgdGhlcmUgaXMgbm8KKyAgICAgICAgcGVyLWhlYXAgd2VhayBzZXQgYW55bW9yZS4KKwog
MjAxMi0wNS0yNCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQG5va2lhLmNv
bT4KIAogICAgICAgICBjdGlfdm1fdGhyb3cgZ2V0cyBraWNrZWQgb3V0IGJ5IGdjYyA0LjYgLWZs
dG8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxMTgzMjAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjQ4LDcgKzI0OCw2IEBAIEhlYXA6OkhlYXAoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBI
ZWEKICAgICAsIG1fbWFjaGluZVRocmVhZHModGhpcykKICAgICAsIG1fc2hhcmVkRGF0YShnbG9i
YWxEYXRhKQogICAgICwgbV9zbG90VmlzaXRvcihtX3NoYXJlZERhdGEpCi0gICAgLCBtX3dlYWtT
ZXQodGhpcykKICAgICAsIG1faGFuZGxlU2V0KGdsb2JhbERhdGEpCiAgICAgLCBtX2lzU2FmZVRv
Q29sbGVjdChmYWxzZSkKICAgICAsIG1fZ2xvYmFsRGF0YShnbG9iYWxEYXRhKQpAQCAtMjc4LDcg
KzI3Nyw2IEBAIHZvaWQgSGVhcDo6bGFzdENoYW5jZVRvRmluYWxpemUoKQogICAgIGlmIChzaXpl
X3Qgc2l6ZSA9IG1fcHJvdGVjdGVkVmFsdWVzLnNpemUoKSkKICAgICAgICAgV1RGTG9nQWx3YXlz
KCJFUlJPUjogSmF2YVNjcmlwdENvcmUgaGVhcCBkZWFsbG9jYXRlZCB3aGlsZSAlbGQgdmFsdWVz
IHdlcmUgc3RpbGwgcHJvdGVjdGVkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oc2l6ZSkp
OwogCi0gICAgbV93ZWFrU2V0Lmxhc3RDaGFuY2VUb0ZpbmFsaXplKCk7CiAgICAgbV9vYmplY3RT
cGFjZS5sYXN0Q2hhbmNlVG9GaW5hbGl6ZSgpOwogCiAjaWYgRU5BQkxFKFNJTVBMRV9IRUFQX1BS
T0ZJTElORykKQEAgLTU2MSw3ICs1NTksNyBAQCB2b2lkIEhlYXA6Om1hcmtSb290cyhib29sIGZ1
bGxHQykKICAgICB7CiAgICAgICAgIEdDUEhBU0UoVmlzaXRpbmdMaXZlV2Vha0hhbmRsZXMpOwog
ICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgbV93ZWFrU2V0LnZpc2l0KGhlYXBS
b290VmlzaXRvcik7CisgICAgICAgICAgICBtX29iamVjdFNwYWNlLnZpc2l0V2Vha1NldHMoaGVh
cFJvb3RWaXNpdG9yKTsKICAgICAgICAgICAgIGhhcnZlc3RXZWFrUmVmZXJlbmNlcygpOwogICAg
ICAgICAgICAgaWYgKHZpc2l0b3IuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIGJyZWFrOwpA
QCAtNTc1LDExICs1NzMsNiBAQCB2b2lkIEhlYXA6Om1hcmtSb290cyhib29sIGZ1bGxHQykKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHsKLSAgICAgICAgR0NQSEFTRShSZWFwaW5nV2Vha0hhbmRs
ZXMpOwotICAgICAgICBtX3dlYWtTZXQucmVhcCgpOwotICAgIH0KLQogICAgIEdDQ09VTlRFUihW
aXNpdGVkVmFsdWVDb3VudCwgdmlzaXRvci52aXNpdENvdW50KCkpOwogCiAgICAgdmlzaXRvci5k
b25lQ29weWluZygpOwpAQCAtNjgzLDI1ICs2NzYsMjQgQEAgdm9pZCBIZWFwOjpjb2xsZWN0KFN3
ZWVwVG9nZ2xlIHN3ZWVwVG9nZwogICAgIG1hcmtSb290cyhmdWxsR0MpOwogICAgIAogICAgIHsK
KyAgICAgICAgR0NQSEFTRShSZWFwaW5nV2Vha0hhbmRsZXMpOworICAgICAgICBtX29iamVjdFNw
YWNlLnJlYXBXZWFrU2V0cygpOworICAgIH0KKworICAgIHsKICAgICAgICAgR0NQSEFTRShGaW5h
bGl6ZVVuY29uZGl0aW9uYWxGaW5hbGl6ZXJzKTsKICAgICAgICAgZmluYWxpemVVbmNvbmRpdGlv
bmFsRmluYWxpemVycygpOwogICAgIH0KLSAgICAgICAgCisKICAgICB7CiAgICAgICAgIEdDUEhB
U0UoRmluYWxpemVXZWFrSGFuZGxlcyk7Ci0gICAgICAgIG1fd2Vha1NldC5zd2VlcCgpOworICAg
ICAgICBtX29iamVjdFNwYWNlLnN3ZWVwV2Vha1NldHMoKTsKICAgICAgICAgbV9nbG9iYWxEYXRh
LT5zbWFsbFN0cmluZ3MuZmluYWxpemVTbWFsbFN0cmluZ3MoKTsKICAgICB9CiAgICAgCiAgICAg
SkFWQVNDUklQVENPUkVfR0NfTUFSS0VEKCk7CiAKICAgICB7Ci0gICAgICAgIEdDUEhBU0UoUmVz
ZXRBbGxvY2F0b3JzKTsKLSAgICAgICAgbV9vYmplY3RTcGFjZS5yZXNldEFsbG9jYXRvcnMoKTsK
LSAgICAgICAgbV93ZWFrU2V0LnJlc2V0QWxsb2NhdG9yKCk7Ci0gICAgfQotICAgIAotICAgIHsK
ICAgICAgICAgR0NQSEFTRShEZWxldGVDb2RlQmxvY2tzKTsKICAgICAgICAgbV9kZmdDb2RlQmxv
Y2tzLmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZENvZGVCbG9ja3MoKTsKICAgICB9CkBAIC03MTEs
MTAgKzcwMywxNCBAQCB2b2lkIEhlYXA6OmNvbGxlY3QoU3dlZXBUb2dnbGUgc3dlZXBUb2dnCiAg
ICAgICAgIEdDUEhBU0UoU3dlZXBpbmcpOwogICAgICAgICBtX29iamVjdFNwYWNlLnN3ZWVwKCk7
CiAgICAgICAgIG1fb2JqZWN0U3BhY2Uuc2hyaW5rKCk7Ci0gICAgICAgIG1fd2Vha1NldC5zaHJp
bmsoKTsKICAgICAgICAgbV9ieXRlc0FiYW5kb25lZCA9IDA7CiAgICAgfQogCisgICAgeworICAg
ICAgICBHQ1BIQVNFKFJlc2V0QWxsb2NhdG9ycyk7CisgICAgICAgIG1fb2JqZWN0U3BhY2UucmVz
ZXRBbGxvY2F0b3JzKCk7CisgICAgfQorICAgIAogICAgIHNpemVfdCBjdXJyZW50SGVhcFNpemUg
PSBzaXplKCk7CiAgICAgaWYgKGZ1bGxHQykgewogICAgICAgICBtX3NpemVBZnRlckxhc3RDb2xs
ZWN0ID0gY3VycmVudEhlYXBTaXplOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAko
cmV2aXNpb24gMTE4MzIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiTWFya2VkU3BhY2UuaCIK
ICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIldlYWtIYW5kbGVPd25lci5oIgot
I2luY2x1ZGUgIldlYWtTZXQuaCIKICNpbmNsdWRlICJXcml0ZUJhcnJpZXJTdXBwb3J0LmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
QEAgLTE0OCw3ICsxNDcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRnVuY3Rvcj4gdHlwZW5hbWUgRnVuY3Rvcjo6UmV0dXJuVHlwZSBmb3JFYWNoUHJvdGVj
dGVkQ2VsbChGdW5jdG9yJik7CiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHR5
cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaFByb3RlY3RlZENlbGwoKTsKIAotICAg
ICAgICBXZWFrU2V0KiB3ZWFrU2V0KCkgeyByZXR1cm4gJm1fd2Vha1NldDsgfQogICAgICAgICBI
YW5kbGVTZXQqIGhhbmRsZVNldCgpIHsgcmV0dXJuICZtX2hhbmRsZVNldDsgfQogICAgICAgICBI
YW5kbGVTdGFjayogaGFuZGxlU3RhY2soKSB7IHJldHVybiAmbV9oYW5kbGVTdGFjazsgfQogCkBA
IC0yMjUsNyArMjIzLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hcmtTdGFja1RocmVh
ZFNoYXJlZERhdGEgbV9zaGFyZWREYXRhOwogICAgICAgICBTbG90VmlzaXRvciBtX3Nsb3RWaXNp
dG9yOwogCi0gICAgICAgIFdlYWtTZXQgbV93ZWFrU2V0OwogICAgICAgICBIYW5kbGVTZXQgbV9o
YW5kbGVTZXQ7CiAgICAgICAgIEhhbmRsZVN0YWNrIG1faGFuZGxlU3RhY2s7CiAgICAgICAgIERG
R0NvZGVCbG9ja3MgbV9kZmdDb2RlQmxvY2tzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvTWFya2VkQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtlZEJsb2NrLmNwcAkocmV2aXNpb24gMTE4MzIwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1
Miw3IEBAIE1hcmtlZEJsb2NrOjpNYXJrZWRCbG9jayhjb25zdCBQYWdlQWxsb2MKICAgICAsIG1f
ZW5kQXRvbShhdG9tc1BlckJsb2NrIC0gbV9hdG9tc1BlckNlbGwgKyAxKQogICAgICwgbV9jZWxs
c05lZWREZXN0cnVjdGlvbihjZWxsc05lZWREZXN0cnVjdGlvbikKICAgICAsIG1fc3RhdGUoTmV3
KSAvLyBBbGwgY2VsbHMgc3RhcnQgb3V0IHVubWFya2VkLgotICAgICwgbV9oZWFwKGhlYXApCisg
ICAgLCBtX3dlYWtTZXQoaGVhcCkKIHsKICAgICBBU1NFUlQoaGVhcCk7CiAgICAgSEVBUF9MT0df
QkxPQ0tfU1RBVEVfVFJBTlNJVElPTih0aGlzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtlZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvTWFya2VkQmxvY2suaAkocmV2aXNpb24gMTE4MzIwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBA
QAogI2luY2x1ZGUgIkNhcmRTZXQuaCIKICNpbmNsdWRlICJIZWFwQmxvY2suaCIKIAorI2luY2x1
ZGUgIldlYWtTZXQuaCIKICNpbmNsdWRlIDx3dGYvQml0bWFwLmg+CiAjaW5jbHVkZSA8d3RmL0Rh
dGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgpAQCAtMTE5LDEzICsx
MjAsMjEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBNYXJrZWRCbG9jayogYmxv
Y2tGb3IoY29uc3Qgdm9pZCopOwogICAgICAgICBzdGF0aWMgc2l6ZV90IGZpcnN0QXRvbSgpOwog
ICAgICAgICAKKyAgICAgICAgdm9pZCBsYXN0Q2hhbmNlVG9GaW5hbGl6ZSgpOworCiAgICAgICAg
IEhlYXAqIGhlYXAoKSBjb25zdDsKKyAgICAgICAgV2Vha1NldCYgd2Vha1NldCgpOwogICAgICAg
ICAKLSAgICAgICAgdm9pZCogYWxsb2NhdGUoKTsKLQogICAgICAgICBlbnVtIFN3ZWVwTW9kZSB7
IFN3ZWVwT25seSwgU3dlZXBUb0ZyZWVMaXN0IH07CiAgICAgICAgIEZyZWVMaXN0IHN3ZWVwKFN3
ZWVwTW9kZSA9IFN3ZWVwT25seSk7CiAKKyAgICAgICAgdm9pZCBzaHJpbmsoKTsKKyAgICAgICAg
dm9pZCByZXNldEFsbG9jYXRvcigpOworCisgICAgICAgIHZvaWQgdmlzaXRXZWFrU2V0KEhlYXBS
b290VmlzaXRvciYpOworICAgICAgICB2b2lkIHJlYXBXZWFrU2V0KCk7CisgICAgICAgIHZvaWQg
c3dlZXBXZWFrU2V0KCk7CisKICAgICAgICAgLy8gV2hpbGUgYWxsb2NhdGluZyBmcm9tIGEgZnJl
ZSBsaXN0LCBNYXJrZWRCbG9jayB0ZW1wb3JhcmlseSBoYXMgYm9ndXMKICAgICAgICAgLy8gY2Vs
bCBsaXZlbmVzcyBkYXRhLiBUbyByZXN0b3JlIGFjY3VyYXRlIGNlbGwgbGl2ZW5lc3MgZGF0YSwg
Y2FsbCBvbmUKICAgICAgICAgLy8gb2YgdGhlc2UgZnVuY3Rpb25zOgpAQCAtMjA1LDcgKzIxNCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogI2VuZGlmCiAgICAgICAgIGJvb2wgbV9jZWxsc05lZWREZXN0
cnVjdGlvbjsKICAgICAgICAgQmxvY2tTdGF0ZSBtX3N0YXRlOwotICAgICAgICBIZWFwKiBtX2hl
YXA7CisgICAgICAgIFdlYWtTZXQgbV93ZWFrU2V0OwogICAgIH07CiAKICAgICBpbmxpbmUgTWFy
a2VkQmxvY2s6OkZyZWVMaXN0OjpGcmVlTGlzdCgpCkBAIC0yNDAsOSArMjQ5LDQ3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxNYXJrZWRCbG9jayo+
KHJlaW50ZXJwcmV0X2Nhc3Q8Qml0cz4ocCkgJiBibG9ja01hc2spOwogICAgIH0KIAorICAgIGlu
bGluZSB2b2lkIE1hcmtlZEJsb2NrOjpsYXN0Q2hhbmNlVG9GaW5hbGl6ZSgpCisgICAgeworICAg
ICAgICBtX3dlYWtTZXQubGFzdENoYW5jZVRvRmluYWxpemUoKTsKKworICAgICAgICBjbGVhck1h
cmtzKCk7CisgICAgICAgIHN3ZWVwKCk7CisgICAgfQorCiAgICAgaW5saW5lIEhlYXAqIE1hcmtl
ZEJsb2NrOjpoZWFwKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2hlYXA7CisgICAg
ICAgIHJldHVybiBtX3dlYWtTZXQuaGVhcCgpOworICAgIH0KKworICAgIGlubGluZSBXZWFrU2V0
JiBNYXJrZWRCbG9jazo6d2Vha1NldCgpCisgICAgeworICAgICAgICByZXR1cm4gbV93ZWFrU2V0
OworICAgIH0KKworICAgIGlubGluZSB2b2lkIE1hcmtlZEJsb2NrOjpzaHJpbmsoKQorICAgIHsK
KyAgICAgICAgbV93ZWFrU2V0LnNocmluaygpOworICAgIH0KKworICAgIGlubGluZSB2b2lkIE1h
cmtlZEJsb2NrOjpyZXNldEFsbG9jYXRvcigpCisgICAgeworICAgICAgICBtX3dlYWtTZXQucmVz
ZXRBbGxvY2F0b3IoKTsKKyAgICB9CisKKyAgICBpbmxpbmUgdm9pZCBNYXJrZWRCbG9jazo6dmlz
aXRXZWFrU2V0KEhlYXBSb290VmlzaXRvciYgaGVhcFJvb3RWaXNpdG9yKQorICAgIHsKKyAgICAg
ICAgbV93ZWFrU2V0LnZpc2l0KGhlYXBSb290VmlzaXRvcik7CisgICAgfQorCisgICAgaW5saW5l
IHZvaWQgTWFya2VkQmxvY2s6OnJlYXBXZWFrU2V0KCkKKyAgICB7CisgICAgICAgIG1fd2Vha1Nl
dC5yZWFwKCk7CisgICAgfQorCisgICAgaW5saW5lIHZvaWQgTWFya2VkQmxvY2s6OnN3ZWVwV2Vh
a1NldCgpCisgICAgeworICAgICAgICBtX3dlYWtTZXQuc3dlZXAoKTsKICAgICB9CiAKICAgICBp
bmxpbmUgdm9pZCBNYXJrZWRCbG9jazo6ZGlkQ29uc3VtZUZyZWVMaXN0KCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAJKHJldmlzaW9uIDExODMyMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjYsNiArNjYsMjEgQEAgaW5saW5lIFRha2U6OlJldHVyblR5cGUgVGFrZTo6cmV0
dXJuVmFsdQogICAgIHJldHVybiBtX2Jsb2Nrcy5oZWFkKCk7CiB9CiAKK3N0cnVjdCBWaXNpdFdl
YWtTZXQgOiBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0b3IgeworICAgIFZpc2l0V2Vha1NldChIZWFw
Um9vdFZpc2l0b3ImIGhlYXBSb290VmlzaXRvcikgOiBtX2hlYXBSb290VmlzaXRvcihoZWFwUm9v
dFZpc2l0b3IpIHsgfQorICAgIHZvaWQgb3BlcmF0b3IoKShNYXJrZWRCbG9jayogYmxvY2spIHsg
YmxvY2stPnZpc2l0V2Vha1NldChtX2hlYXBSb290VmlzaXRvcik7IH0KK3ByaXZhdGU6CisgICAg
SGVhcFJvb3RWaXNpdG9yJiBtX2hlYXBSb290VmlzaXRvcjsKK307CisKK3N0cnVjdCBSZWFwV2Vh
a1NldCA6IE1hcmtlZEJsb2NrOjpWb2lkRnVuY3RvciB7CisgICAgdm9pZCBvcGVyYXRvcigpKE1h
cmtlZEJsb2NrKiBibG9jaykgeyBibG9jay0+cmVhcFdlYWtTZXQoKTsgfQorfTsKKworc3RydWN0
IFN3ZWVwV2Vha1NldCA6IE1hcmtlZEJsb2NrOjpWb2lkRnVuY3RvciB7CisgICAgdm9pZCBvcGVy
YXRvcigpKE1hcmtlZEJsb2NrKiBibG9jaykgeyBibG9jay0+c3dlZXBXZWFrU2V0KCk7IH0KK307
CisKIE1hcmtlZFNwYWNlOjpNYXJrZWRTcGFjZShIZWFwKiBoZWFwKQogICAgIDogbV9oZWFwKGhl
YXApCiB7CkBAIC04NywxMyArMTAyLDIwIEBAIE1hcmtlZFNwYWNlOjp+TWFya2VkU3BhY2UoKQog
ICAgIGZyZWVCbG9ja3MoZm9yRWFjaEJsb2NrKHRha2UpKTsKIH0KIAorc3RydWN0IExhc3RDaGFu
Y2VUb0ZpbmFsaXplIDogTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9yIHsKKyAgICB2b2lkIG9wZXJh
dG9yKCkoTWFya2VkQmxvY2sqIGJsb2NrKSB7IGJsb2NrLT5sYXN0Q2hhbmNlVG9GaW5hbGl6ZSgp
OyB9Cit9OworCiB2b2lkIE1hcmtlZFNwYWNlOjpsYXN0Q2hhbmNlVG9GaW5hbGl6ZSgpCiB7CiAg
ICAgY2Fub25pY2FsaXplQ2VsbExpdmVuZXNzRGF0YSgpOwotICAgIGNsZWFyTWFya3MoKTsKLSAg
ICBzd2VlcCgpOworICAgIGZvckVhY2hCbG9jazxMYXN0Q2hhbmNlVG9GaW5hbGl6ZT4oKTsKIH0K
IAorc3RydWN0IFJlc2V0QWxsb2NhdG9yIDogTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9yIHsKKyAg
ICB2b2lkIG9wZXJhdG9yKCkoTWFya2VkQmxvY2sqIGJsb2NrKSB7IGJsb2NrLT5yZXNldEFsbG9j
YXRvcigpOyB9Cit9OworCiB2b2lkIE1hcmtlZFNwYWNlOjpyZXNldEFsbG9jYXRvcnMoKQogewog
ICAgIGZvciAoc2l6ZV90IGNlbGxTaXplID0gcHJlY2lzZVN0ZXA7IGNlbGxTaXplIDw9IHByZWNp
c2VDdXRvZmY7IGNlbGxTaXplICs9IHByZWNpc2VTdGVwKSB7CkBAIC0xMDUsNiArMTI3LDI0IEBA
IHZvaWQgTWFya2VkU3BhY2U6OnJlc2V0QWxsb2NhdG9ycygpCiAgICAgICAgIGFsbG9jYXRvckZv
cihjZWxsU2l6ZSkucmVzZXQoKTsKICAgICAgICAgZGVzdHJ1Y3RvckFsbG9jYXRvckZvcihjZWxs
U2l6ZSkucmVzZXQoKTsKICAgICB9CisKKyAgICBmb3JFYWNoQmxvY2s8UmVzZXRBbGxvY2F0b3I+
KCk7Cit9CisKK3ZvaWQgTWFya2VkU3BhY2U6OnZpc2l0V2Vha1NldHMoSGVhcFJvb3RWaXNpdG9y
JiBoZWFwUm9vdFZpc2l0b3IpCit7CisgICAgVmlzaXRXZWFrU2V0IHZpc2l0V2Vha1NldChoZWFw
Um9vdFZpc2l0b3IpOworICAgIGZvckVhY2hCbG9jayh2aXNpdFdlYWtTZXQpOworfQorCit2b2lk
IE1hcmtlZFNwYWNlOjpyZWFwV2Vha1NldHMoKQoreworICAgIGZvckVhY2hCbG9jazxSZWFwV2Vh
a1NldD4oKTsKK30KKwordm9pZCBNYXJrZWRTcGFjZTo6c3dlZXBXZWFrU2V0cygpCit7CisgICAg
Zm9yRWFjaEJsb2NrPFN3ZWVwV2Vha1NldD4oKTsKIH0KIAogdm9pZCBNYXJrZWRTcGFjZTo6Y2Fu
b25pY2FsaXplQ2VsbExpdmVuZXNzRGF0YSgpCkBAIC0xNDgsMTEgKzE4OCwxNyBAQCB2b2lkIE1h
cmtlZFNwYWNlOjpmcmVlQmxvY2tzKE1hcmtlZEJsb2NrCiAgICAgfQogfQogCitzdHJ1Y3QgU2hy
aW5rIDogTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9yIHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoTWFy
a2VkQmxvY2sqIGJsb2NrKSB7IGJsb2NrLT5zaHJpbmsoKTsgfQorfTsKKwogdm9pZCBNYXJrZWRT
cGFjZTo6c2hyaW5rKCkKIHsKICAgICAvLyBXZSByZWNvcmQgYSB0ZW1wb3JhcnkgbGlzdCBvZiBl
bXB0aWVzIHRvIGF2b2lkIG1vZGlmeWluZyBtX2Jsb2NrcyB3aGlsZSBpdGVyYXRpbmcgaXQuCiAg
ICAgVGFrZSB0YWtlSWZFbXB0eShUYWtlOjpUYWtlSWZFbXB0eSwgdGhpcyk7CiAgICAgZnJlZUJs
b2Nrcyhmb3JFYWNoQmxvY2sodGFrZUlmRW1wdHkpKTsKKworICAgIGZvckVhY2hCbG9jazxTaHJp
bms+KCk7CiB9CiAKICNpZiBFTkFCTEUoR0dDKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvTWFya2VkU3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrZWRTcGFjZS5oCShyZXZpc2lvbiAxMTgzMjApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4MywxMCBA
QCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCByZXNldEFsbG9jYXRvcnMoKTsKIAorICAgIHZvaWQg
dmlzaXRXZWFrU2V0cyhIZWFwUm9vdFZpc2l0b3ImKTsKKyAgICB2b2lkIHJlYXBXZWFrU2V0cygp
OworICAgIHZvaWQgc3dlZXBXZWFrU2V0cygpOworCiAgICAgTWFya2VkQmxvY2tTZXQmIGJsb2Nr
cygpIHsgcmV0dXJuIG1fYmxvY2tzOyB9CiAgICAgCiAgICAgdm9pZCBjYW5vbmljYWxpemVDZWxs
TGl2ZW5lc3NEYXRhKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0LmNw
cAkocmV2aXNpb24gMTE4MzIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1Nl
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDI0ICs0MCw2IEBAIFdlYWtTZXQ6On5XZWFrU2V0
KCkKICAgICBtX2Jsb2Nrcy5jbGVhcigpOwogfQogCi12b2lkIFdlYWtTZXQ6Omxhc3RDaGFuY2VU
b0ZpbmFsaXplKCkKLXsKLSAgICBmb3IgKFdlYWtCbG9jayogYmxvY2sgPSBtX2Jsb2Nrcy5oZWFk
KCk7IGJsb2NrOyBibG9jayA9IGJsb2NrLT5uZXh0KCkpCi0gICAgICAgIGJsb2NrLT5sYXN0Q2hh
bmNlVG9GaW5hbGl6ZSgpOwotfQotCi12b2lkIFdlYWtTZXQ6OnZpc2l0KEhlYXBSb290VmlzaXRv
ciYgdmlzaXRvcikKLXsKLSAgICBmb3IgKFdlYWtCbG9jayogYmxvY2sgPSBtX2Jsb2Nrcy5oZWFk
KCk7IGJsb2NrOyBibG9jayA9IGJsb2NrLT5uZXh0KCkpCi0gICAgICAgIGJsb2NrLT52aXNpdCh2
aXNpdG9yKTsKLX0KLQotdm9pZCBXZWFrU2V0OjpyZWFwKCkKLXsKLSAgICBmb3IgKFdlYWtCbG9j
ayogYmxvY2sgPSBtX2Jsb2Nrcy5oZWFkKCk7IGJsb2NrOyBibG9jayA9IGJsb2NrLT5uZXh0KCkp
Ci0gICAgICAgIGJsb2NrLT5yZWFwKCk7Ci19Ci0KIHZvaWQgV2Vha1NldDo6c3dlZXAoKQogewog
ICAgIFdlYWtCbG9jayogbmV4dDsKQEAgLTczLDIzICs1NSw2IEBAIHZvaWQgV2Vha1NldDo6c3dl
ZXAoKQogICAgIH0KIH0KIAotdm9pZCBXZWFrU2V0OjpzaHJpbmsoKQotewotICAgIFdlYWtCbG9j
ayogbmV4dDsKLSAgICBmb3IgKFdlYWtCbG9jayogYmxvY2sgPSBtX2Jsb2Nrcy5oZWFkKCk7IGJs
b2NrOyBibG9jayA9IG5leHQpIHsKLSAgICAgICAgbmV4dCA9IGJsb2NrLT5uZXh0KCk7Ci0KLSAg
ICAgICAgaWYgKGJsb2NrLT5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZW1vdmVBbGxvY2F0b3Io
YmxvY2spOwotICAgIH0KLX0KLQotdm9pZCBXZWFrU2V0OjpyZXNldEFsbG9jYXRvcigpCi17Ci0g
ICAgbV9hbGxvY2F0b3IgPSAwOwotICAgIG1fbmV4dEFsbG9jYXRvciA9IG1fYmxvY2tzLmhlYWQo
KTsKLX0KLQogV2Vha0Jsb2NrOjpGcmVlQ2VsbCogV2Vha1NldDo6ZmluZEFsbG9jYXRvcigpCiB7
CiAgICAgaWYgKFdlYWtCbG9jazo6RnJlZUNlbGwqIGFsbG9jYXRvciA9IHRyeUZpbmRBbGxvY2F0
b3IoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0LmgJKHJldmlzaW9uIDEx
ODMyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXQuaAkod29ya2luZyBj
b3B5KQpAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAgICAgfldlYWtTZXQoKTsKICAgICB2b2lk
IGxhc3RDaGFuY2VUb0ZpbmFsaXplKCk7CiAKKyAgICBIZWFwKiBoZWFwKCkgY29uc3Q7CisKICAg
ICB2b2lkIHZpc2l0KEhlYXBSb290VmlzaXRvciYpOwogICAgIHZvaWQgcmVhcCgpOwogCkBAIC02
OSwxMSArNzEsNTEgQEAgaW5saW5lIFdlYWtTZXQ6OldlYWtTZXQoSGVhcCogaGVhcCkKIHsKIH0K
IAoraW5saW5lIEhlYXAqIFdlYWtTZXQ6OmhlYXAoKSBjb25zdAoreworICAgIHJldHVybiBtX2hl
YXA7Cit9CisKIGlubGluZSB2b2lkIFdlYWtTZXQ6OmRlYWxsb2NhdGUoV2Vha0ltcGwqIHdlYWtJ
bXBsKQogewogICAgIHdlYWtJbXBsLT5zZXRTdGF0ZShXZWFrSW1wbDo6RGVhbGxvY2F0ZWQpOwog
fQogCitpbmxpbmUgdm9pZCBXZWFrU2V0OjpsYXN0Q2hhbmNlVG9GaW5hbGl6ZSgpCit7CisgICAg
Zm9yIChXZWFrQmxvY2sqIGJsb2NrID0gbV9ibG9ja3MuaGVhZCgpOyBibG9jazsgYmxvY2sgPSBi
bG9jay0+bmV4dCgpKQorICAgICAgICBibG9jay0+bGFzdENoYW5jZVRvRmluYWxpemUoKTsKK30K
KworaW5saW5lIHZvaWQgV2Vha1NldDo6dmlzaXQoSGVhcFJvb3RWaXNpdG9yJiB2aXNpdG9yKQor
eworICAgIGZvciAoV2Vha0Jsb2NrKiBibG9jayA9IG1fYmxvY2tzLmhlYWQoKTsgYmxvY2s7IGJs
b2NrID0gYmxvY2stPm5leHQoKSkKKyAgICAgICAgYmxvY2stPnZpc2l0KHZpc2l0b3IpOworfQor
CitpbmxpbmUgdm9pZCBXZWFrU2V0OjpyZWFwKCkKK3sKKyAgICBmb3IgKFdlYWtCbG9jayogYmxv
Y2sgPSBtX2Jsb2Nrcy5oZWFkKCk7IGJsb2NrOyBibG9jayA9IGJsb2NrLT5uZXh0KCkpCisgICAg
ICAgIGJsb2NrLT5yZWFwKCk7Cit9CisKK2lubGluZSB2b2lkIFdlYWtTZXQ6OnNocmluaygpCit7
CisgICAgV2Vha0Jsb2NrKiBuZXh0OworICAgIGZvciAoV2Vha0Jsb2NrKiBibG9jayA9IG1fYmxv
Y2tzLmhlYWQoKTsgYmxvY2s7IGJsb2NrID0gbmV4dCkgeworICAgICAgICBuZXh0ID0gYmxvY2st
Pm5leHQoKTsKKworICAgICAgICBpZiAoYmxvY2stPmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJl
bW92ZUFsbG9jYXRvcihibG9jayk7CisgICAgfQorfQorCitpbmxpbmUgdm9pZCBXZWFrU2V0Ojpy
ZXNldEFsbG9jYXRvcigpCit7CisgICAgbV9hbGxvY2F0b3IgPSAwOworICAgIG1fbmV4dEFsbG9j
YXRvciA9IG1fYmxvY2tzLmhlYWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRp
ZiAvLyBXZWFrU2V0X2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXRJ
bmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha1Nl
dElubGluZXMuaAkocmV2aXNpb24gMTE4MzIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvV2Vha1NldElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogaW5saW5lIFdlYWtJbXBsKiBXZWFrU2V0OjphbGxvY2F0ZShKU1ZhbHVl
IGpzVmFsdWUsIFdlYWtIYW5kbGVPd25lciogd2Vha0hhbmRsZU93bmVyLCB2b2lkKiBjb250ZXh0
KQogewotICAgIFdlYWtTZXQmIHdlYWtTZXQgPSAqSGVhcDo6aGVhcChqc1ZhbHVlLmFzQ2VsbCgp
KS0+d2Vha1NldCgpOworICAgIFdlYWtTZXQmIHdlYWtTZXQgPSBNYXJrZWRCbG9jazo6YmxvY2tG
b3IoanNWYWx1ZS5hc0NlbGwoKSktPndlYWtTZXQoKTsKICAgICBXZWFrQmxvY2s6OkZyZWVDZWxs
KiBhbGxvY2F0b3IgPSB3ZWFrU2V0Lm1fYWxsb2NhdG9yOwogICAgIGlmIChVTkxJS0VMWSghYWxs
b2NhdG9yKSkKICAgICAgICAgYWxsb2NhdG9yID0gd2Vha1NldC5maW5kQWxsb2NhdG9yKCk7Cg==
</data>
<flag name="review"
          id="150525"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>