<?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>175573</bug_id>
          
          <creation_ts>2017-08-15 08:53:12 -0700</creation_ts>
          <short_desc>Update testmasm to use new CPUState APIs.</short_desc>
          <delta_ts>2017-08-15 09:44:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>buildbot</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1338675</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-15 08:53:12 -0700</bug_when>
    <thetext>Also make some improvements to the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338682</commentid>
    <comment_count>1</comment_count>
      <attachid>318122</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-15 09:06:11 -0700</bug_when>
    <thetext>Created attachment 318122
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338693</commentid>
    <comment_count>2</comment_count>
      <attachid>318122</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-08-15 09:23:35 -0700</bug_when>
    <thetext>Comment on attachment 318122
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338707</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-15 09:43:26 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r220744: &lt;http://trac.webkit.org/r220744&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338709</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-15 09:44:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/33897569&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318122</attachid>
            <date>2017-08-15 09:06:11 -0700</date>
            <delta_ts>2017-08-15 09:23:35 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-175573.patch</filename>
            <type>text/plain</type>
            <size>18402</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNzQzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE3LTA4LTE1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBV
cGRhdGUgdGVzdG1hc20gdG8gdXNlIG5ldyBDUFVTdGF0ZSBBUElzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NTczCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gQXBwbGllZCBjb252ZW5pZW5jZSBD
UFVTdGF0ZSBhY2Nlc3NvcnMgdG8gbWluaW1pemUgY2FzdGluZy4KKyAgICAgICAgMi4gQ29udmVy
dGVkIHRoZSBDSEVDSyBtYWNybyB0byBDSEVDS19FUSB0byBnZXQgbW9yZSBmcmllbmRseSBmYWls
dXJlIGRlYnVnZ2luZworICAgICAgICAgICBtZXNzYWdlcy4KKyAgICAgICAgMy4gUmVtb3ZlZCB0
aGUgQ0hFQ0tfRE9VQkxFX0JJVFdJU0VfRVEgbWFjcm8uICBXZSBjYW4ganVzdCB1c2UgQ0hFQ0tf
RVEgbm93IHNpbmNlCisgICAgICAgICAgIGNhc3RpbmcgaXMgKG1vc3RseSkgbm8gbG9uZ2VyIGFu
IGlzc3VlLgorICAgICAgICA0LiBSZXBsYWNlZCB0aGUgdXNlIG9mIHRlc3REb3VibGVXb3JkKGlk
KSB3aXRoIGJpdHdpc2VfY2FzdDxkb3VibGU+KHRlc3RXb3JkNjQoaWQpKQorICAgICAgICAgICB0
byBtYWtlIGl0IGNsZWFyIHRoYXQgd2UncmUgY29tcGFyaW5nIGFnYWluc3QgdGhlIGJpdCB2YWx1
ZXMgb2YgdGVzdFdvcmQ2NChpZCkuCisgICAgICAgIDUuIEFkZGVkIGEgIkNvbXBsZXRlZCBOIHRl
c3RzIiBtZXNzYWdlIGF0IHRoZSBlbmQgb2YgcnVubmluZyBhbGwgdGVzdHMuCisgICAgICAgICAg
IFRoaXMgbWFrZXMgaXQgZWFzeSB0byB0ZWxsIGF0IGEgZ2xhbmNlIHRoYXQgdGVzdG1hc20gY29t
cGxldGVkIHN1Y2Nlc3NmdWxseQorICAgICAgICAgICB2ZXJzdXMgd2hlbiBpdCBjcmFzaGVkIG1p
ZHdheSBpbiBhIHRlc3QuICBUaGUgbnVtYmVyIG9mIHRlc3RzIGFsc28gc2VydmVzIGFzCisgICAg
ICAgICAgIGEgcXVpY2sgY2hlY2tzdW0gdG8gY29uZmlybSB0aGF0IHdlIHJhbiB0aGUgbnVtYmVy
IG9mIHRlc3RzIHdlIGV4cGVjdGVkLgorCisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNw
cDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgIChKU0M6OnRlc3RTaW1w
bGUpOgorICAgICAgICAoSlNDOjp0ZXN0UHJvYmVSZWFkc0FyZ3VtZW50UmVnaXN0ZXJzKToKKyAg
ICAgICAgKEpTQzo6dGVzdFByb2JlV3JpdGVzQXJndW1lbnRSZWdpc3RlcnMpOgorICAgICAgICAo
SlNDOjp0ZXN0UHJvYmVQcmVzZXJ2ZXNHUFJTKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlTW9k
aWZpZXNTdGFja1BvaW50ZXIpOgorICAgICAgICAoSlNDOjp0ZXN0UHJvYmVNb2RpZmllc1Byb2dy
YW1Db3VudGVyKToKKyAgICAgICAgKEpTQzo6cnVuKToKKwogMjAxNy0wOC0xNCAgS2VpdGggTWls
bGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgdGVzdGluZyB0b29s
IHRvIGxpZSB0byB0aGUgREZHIGFib3V0IHByb2ZpbGVzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAkocmV2aXNpb24gMjIwNzM0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUwLDYgKzUwLDE1IEBAIHN0YXRpYyB2b2lkIHVzYWdlKCkKIAogI2lmIEVOQUJMRShKSVQp
CiAKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgdm9pZCBwcmludEludGVybmFsKFByaW50U3Ry
ZWFtJiBvdXQsIHZvaWQqIHZhbHVlKQoreworICAgIG91dC5wcmludGYoIiVwIiwgdmFsdWUpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNw
YWNlIHsKQEAgLTcxLDIwICs4MCwxNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIG5leHRJRChU
IGlkKSB7IHJlCiAjZWxzZQogI2RlZmluZSB0ZXN0V29yZCh4KSB0ZXN0V29yZDMyKHgpCiAjZW5k
aWYKLSNkZWZpbmUgdGVzdERvdWJsZVdvcmQoeCkgc3RhdGljX2Nhc3Q8ZG91YmxlPih0ZXN0V29y
ZCh4KSkKIAogLy8gTm90aGluZyBmYW5jeSBmb3Igbm93OyB3ZSBqdXN0IHVzZSB0aGUgZXhpc3Rp
bmcgV1RGIGFzc2VydGlvbiBtYWNoaW5lcnkuCi0jZGVmaW5lIENIRUNLKHgpIGRvIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGlm
ICghISh4KSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisjZGVmaW5lIENIRUNLX0VRKF9hY3R1YWwsIF9leHBlY3RlZCkgZG8geyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmICgoX2FjdHVhbCkgPT0gKF9leHBl
Y3RlZCkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBi
cmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCiAgICAgICAgIGNyYXNoTG9jay5sb2NrKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIFdURlJlcG9ydEFzc2VydGlvbkZhaWx1cmUo
X19GSUxFX18sIF9fTElORV9fLCBXVEZfUFJFVFRZX0ZVTkNUSU9OLCAjeCk7IFwKKyAgICAgICAg
ZGF0YUxvZygiRkFJTEVEIHdoaWxlIHRlc3RpbmcgIiAjX2FjdHVhbCAiOiBleHBlY3RlZDogIiwg
X2V4cGVjdGVkLCAiLCBhY3R1YWw6ICIsIF9hY3R1YWwsICJcbiIpOyBcCisgICAgICAgIFdURlJl
cG9ydEFzc2VydGlvbkZhaWx1cmUoX19GSUxFX18sIF9fTElORV9fLCBXVEZfUFJFVFRZX0ZVTkNU
SU9OLCAiQ0hFQ0tfRVEoIiNfYWN0dWFsICIsICIgI19leHBlY3RlZCAiKSIpOyBcCiAgICAgICAg
IENSQVNIKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKLSNkZWZpbmUgQ0hFQ0tfRE9VQkxFX0JJ
VFdJU0VfRVEoYSwgYikgXAotICAgIENIRUNLKGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oYSkgPT0g
Yml0d2lzZV9jYXN0PHVpbnQ2NF90PihhKSkKLQogYm9vbCBpc1BDKE1hY3JvQXNzZW1ibGVyOjpS
ZWdpc3RlcklEIGlkKQogewogI2lmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNX1RSQURJVElP
TkFMKQpAQCAtMTM5LDEyICsxNDUsMTIgQEAgVCBjb21waWxlQW5kUnVuKEdlbmVyYXRvciYmIGdl
bmVyYXRvciwgQQogCiB2b2lkIHRlc3RTaW1wbGUoKQogewotICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50PihbXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICBDSEVDS19FUShjb21waWxlQW5k
UnVuPGludD4oW10gKENDYWxsSGVscGVycyYgaml0KSB7CiAgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25Qcm9sb2d1ZSgpOwogICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
Mig0MiksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKICAgICAgICAgaml0LmVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgICAgIGppdC5yZXQoKTsKLSAgICB9KSA9PSA0Mik7CisgICAgfSks
IDQyKTsKIH0KIAogdm9pZCB0ZXN0UHJvYmVSZWFkc0FyZ3VtZW50UmVnaXN0ZXJzKCkKQEAgLTE3
MCwxOSArMTc2LDIwIEBAIHZvaWQgdGVzdFByb2JlUmVhZHNBcmd1bWVudFJlZ2lzdGVycygpCiAj
ZW5kaWYKIAogICAgICAgICBqaXQucHJvYmUoWyZdIChQcm9iZUNvbnRleHQqIGNvbnRleHQpIHsK
KyAgICAgICAgICAgIGF1dG8mIGNwdSA9IGNvbnRleHQtPmNwdTsKICAgICAgICAgICAgIHByb2Jl
V2FzQ2FsbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihHUFJJbmZv
Ojphcmd1bWVudEdQUjApID09IHRlc3RXb3JkKDApKTsKLSAgICAgICAgICAgIENIRUNLKGNvbnRl
eHQtPmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjEpID09IHRlc3RXb3JkKDEpKTsKLSAgICAgICAg
ICAgIENIRUNLKGNvbnRleHQtPmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjIpID09IHRlc3RXb3Jk
KDIpKTsKLSAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihHUFJJbmZvOjphcmd1bWVudEdQ
UjMpID09IHRlc3RXb3JkKDMpKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGNwdS5ncHIoR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSwgdGVzdFdvcmQoMCkpOworICAgICAgICAgICAgQ0hFQ0tfRVEoY3B1
LmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjEpLCB0ZXN0V29yZCgxKSk7CisgICAgICAgICAgICBD
SEVDS19FUShjcHUuZ3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMiksIHRlc3RXb3JkKDIpKTsKKyAg
ICAgICAgICAgIENIRUNLX0VRKGNwdS5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIzKSwgdGVzdFdv
cmQoMykpOwogCi0gICAgICAgICAgICBDSEVDS19ET1VCTEVfQklUV0lTRV9FUShjb250ZXh0LT5m
cHIoRlBSSW5mbzo6ZnBSZWdUMCksIHN0YXRpY19jYXN0PGRvdWJsZT4odGVzdFdvcmQzMigwKSkp
OwotICAgICAgICAgICAgQ0hFQ0tfRE9VQkxFX0JJVFdJU0VfRVEoY29udGV4dC0+ZnByKEZQUklu
Zm86OmZwUmVnVDEpLCAgc3RhdGljX2Nhc3Q8ZG91YmxlPih0ZXN0V29yZDMyKDEpKSk7CisgICAg
ICAgICAgICBDSEVDS19FUShjcHUuZnByKEZQUkluZm86OmZwUmVnVDApLCB0ZXN0V29yZDMyKDAp
KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGNwdS5mcHIoRlBSSW5mbzo6ZnBSZWdUMSksIHRlc3RX
b3JkMzIoMSkpOwogICAgICAgICB9KTsKICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgICAgIGppdC5yZXQoKTsKICAgICB9KTsKLSAgICBDSEVDSyhwcm9iZVdhc0NhbGxl
ZCk7CisgICAgQ0hFQ0tfRVEocHJvYmVXYXNDYWxsZWQsIHRydWUpOwogfQogCiB2b2lkIHRlc3RQ
cm9iZVdyaXRlc0FyZ3VtZW50UmVnaXN0ZXJzKCkKQEAgLTIxMSwzMiArMjE4LDM0IEBAIHZvaWQg
dGVzdFByb2JlV3JpdGVzQXJndW1lbnRSZWdpc3RlcnMoKQogCiAgICAgICAgIC8vIFdyaXRlIGV4
cGVjdGVkIHZhbHVlcy4KICAgICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVDb250ZXh0KiBjb250
ZXh0KSB7CisgICAgICAgICAgICBhdXRvJiBjcHUgPSBjb250ZXh0LT5jcHU7CiAgICAgICAgICAg
ICBwcm9iZUNhbGxDb3VudCsrOwotICAgICAgICAgICAgY29udGV4dC0+Z3ByKEdQUkluZm86OmFy
Z3VtZW50R1BSMCkgPSB0ZXN0V29yZCgwKTsKLSAgICAgICAgICAgIGNvbnRleHQtPmdwcihHUFJJ
bmZvOjphcmd1bWVudEdQUjEpID0gdGVzdFdvcmQoMSk7Ci0gICAgICAgICAgICBjb250ZXh0LT5n
cHIoR1BSSW5mbzo6YXJndW1lbnRHUFIyKSA9IHRlc3RXb3JkKDIpOwotICAgICAgICAgICAgY29u
dGV4dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMykgPSB0ZXN0V29yZCgzKTsKKyAgICAgICAg
ICAgIGNwdS5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSA9IHRlc3RXb3JkKDApOworICAgICAg
ICAgICAgY3B1LmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjEpID0gdGVzdFdvcmQoMSk7CisgICAg
ICAgICAgICBjcHUuZ3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMikgPSB0ZXN0V29yZCgyKTsKKyAg
ICAgICAgICAgIGNwdS5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIzKSA9IHRlc3RXb3JkKDMpOwog
ICAgICAgICAgICAgCi0gICAgICAgICAgICBjb250ZXh0LT5mcHIoRlBSSW5mbzo6ZnBSZWdUMCkg
PSB0ZXN0V29yZDMyKDApOwotICAgICAgICAgICAgY29udGV4dC0+ZnByKEZQUkluZm86OmZwUmVn
VDEpID0gdGVzdFdvcmQzMigxKTsKKyAgICAgICAgICAgIGNwdS5mcHIoRlBSSW5mbzo6ZnBSZWdU
MCkgPSBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih0ZXN0V29yZDY0KDApKTsKKyAgICAgICAgICAgIGNw
dS5mcHIoRlBSSW5mbzo6ZnBSZWdUMSkgPSBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih0ZXN0V29yZDY0
KDEpKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCBleHBlY3RlZCB2
YWx1ZXMgd2VyZSB3cml0dGVuLgogICAgICAgICBqaXQucHJvYmUoWyZdIChQcm9iZUNvbnRleHQq
IGNvbnRleHQpIHsKKyAgICAgICAgICAgIGF1dG8mIGNwdSA9IGNvbnRleHQtPmNwdTsKICAgICAg
ICAgICAgIHByb2JlQ2FsbENvdW50Kys7Ci0gICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5ncHIo
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSA9PSB0ZXN0V29yZCgwKSk7Ci0gICAgICAgICAgICBDSEVD
Syhjb250ZXh0LT5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIxKSA9PSB0ZXN0V29yZCgxKSk7Ci0g
ICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIyKSA9PSB0
ZXN0V29yZCgyKSk7Ci0gICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5ncHIoR1BSSW5mbzo6YXJn
dW1lbnRHUFIzKSA9PSB0ZXN0V29yZCgzKSk7CisgICAgICAgICAgICBDSEVDS19FUShjcHUuZ3By
KEdQUkluZm86OmFyZ3VtZW50R1BSMCksIHRlc3RXb3JkKDApKTsKKyAgICAgICAgICAgIENIRUNL
X0VRKGNwdS5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIxKSwgdGVzdFdvcmQoMSkpOworICAgICAg
ICAgICAgQ0hFQ0tfRVEoY3B1LmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjIpLCB0ZXN0V29yZCgy
KSk7CisgICAgICAgICAgICBDSEVDS19FUShjcHUuZ3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMyks
IHRlc3RXb3JkKDMpKTsKIAotICAgICAgICAgICAgQ0hFQ0tfRE9VQkxFX0JJVFdJU0VfRVEoY29u
dGV4dC0+ZnByKEZQUkluZm86OmZwUmVnVDApLCBzdGF0aWNfY2FzdDxkb3VibGU+KHRlc3RXb3Jk
MzIoMCkpKTsKLSAgICAgICAgICAgIENIRUNLX0RPVUJMRV9CSVRXSVNFX0VRKGNvbnRleHQtPmZw
cihGUFJJbmZvOjpmcFJlZ1QxKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih0ZXN0V29yZDMyKDEpKSk7
CisgICAgICAgICAgICBDSEVDS19FUShjcHUuZnByPHVpbnQ2NF90PihGUFJJbmZvOjpmcFJlZ1Qw
KSwgdGVzdFdvcmQ2NCgwKSk7CisgICAgICAgICAgICBDSEVDS19FUShjcHUuZnByPHVpbnQ2NF90
PihGUFJJbmZvOjpmcFJlZ1QxKSwgdGVzdFdvcmQ2NCgxKSk7CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICBqaXQucmV0KCk7CiAgICAg
fSk7Ci0gICAgQ0hFQ0socHJvYmVDYWxsQ291bnQgPT0gMik7CisgICAgQ0hFQ0tfRVEocHJvYmVD
YWxsQ291bnQsIDIpOwogfQogCiBzdGF0aWMgTkVWRVJfSU5MSU5FIE5PVF9UQUlMX0NBTExFRCBp
bnQgdGVzdEZ1bmN0aW9uVG9UcmFzaEdQUnMoaW50IGEsIGludCBiLCBpbnQgYywgaW50IGQsIGlu
dCBlLCBpbnQgZiwgaW50IGcsIGludCBoLCBpbnQgaSwgaW50IGopCkBAIC0yNjUsNzcgKzI3NCw4
MSBAQCB2b2lkIHRlc3RQcm9iZVByZXNlcnZlc0dQUlMoKQogCiAgICAgICAgIC8vIFdyaXRlIGV4
cGVjdGVkIHZhbHVlcyBpbnRvIHRoZSByZWdpc3RlcnMgKGV4Y2VwdCBmb3Igc3AsIGZwLCBhbmQg
cGMpLgogICAgICAgICBqaXQucHJvYmUoWyZdIChQcm9iZUNvbnRleHQqIGNvbnRleHQpIHsKKyAg
ICAgICAgICAgIGF1dG8mIGNwdSA9IGNvbnRleHQtPmNwdTsKICAgICAgICAgICAgIHByb2JlQ2Fs
bENvdW50Kys7CiAgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0
UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0
SUQoaWQpKSB7Ci0gICAgICAgICAgICAgICAgb3JpZ2luYWxTdGF0ZS5ncHIoaWQpID0gY29udGV4
dC0+Z3ByKGlkKTsKKyAgICAgICAgICAgICAgICBvcmlnaW5hbFN0YXRlLmdwcihpZCkgPSBjcHUu
Z3ByKGlkKTsKICAgICAgICAgICAgICAgICBpZiAoaXNTcGVjaWFsR1BSKGlkKSkKICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgY29udGV4dC0+Z3ByKGlkKSA9
IHRlc3RXb3JkKHN0YXRpY19jYXN0PGludD4oaWQpKTsKKyAgICAgICAgICAgICAgICBjcHUuZ3By
KGlkKSA9IHRlc3RXb3JkKHN0YXRpY19jYXN0PGludD4oaWQpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RGUFJlZ2lzdGVyKCk7
IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7
Ci0gICAgICAgICAgICAgICAgb3JpZ2luYWxTdGF0ZS5mcHIoaWQpID0gY29udGV4dC0+ZnByKGlk
KTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5mcHIoaWQpID0gdGVzdERvdWJsZVdvcmQoaWQp
OworICAgICAgICAgICAgICAgIG9yaWdpbmFsU3RhdGUuZnByKGlkKSA9IGNwdS5mcHIoaWQpOwor
ICAgICAgICAgICAgICAgIGNwdS5mcHIoaWQpID0gYml0d2lzZV9jYXN0PGRvdWJsZT4odGVzdFdv
cmQ2NChpZCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsKIAogICAgICAgICAvLyBJbnZv
a2UgdGhlIHByb2JlIHRvIGNhbGwgYSBsb3Qgb2YgZnVuY3Rpb25zIGFuZCB0cmFzaCByZWdpc3Rl
ciB2YWx1ZXMuCiAgICAgICAgIGppdC5wcm9iZShbJl0gKFByb2JlQ29udGV4dCopIHsKICAgICAg
ICAgICAgIHByb2JlQ2FsbENvdW50Kys7Ci0gICAgICAgICAgICBDSEVDSyh0ZXN0RnVuY3Rpb25U
b1RyYXNoR1BScygwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5KSA9PSAxMCk7Ci0gICAgICAg
ICAgICBDSEVDSyh0ZXN0RnVuY3Rpb25Ub1RyYXNoRlBScygwLCAxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4LCA5KSA9PSAxMCk7CisgICAgICAgICAgICBDSEVDS19FUSh0ZXN0RnVuY3Rpb25Ub1RyYXNo
R1BScygwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5KSwgMTApOworICAgICAgICAgICAgQ0hF
Q0tfRVEodGVzdEZ1bmN0aW9uVG9UcmFzaEZQUnMoMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwg
OSksIDEwKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgcmVn
aXN0ZXJzIGhhdmUgdGhlIGV4cGVjdGVkIHZhbHVlcy4KICAgICAgICAgaml0LnByb2JlKFsmXSAo
UHJvYmVDb250ZXh0KiBjb250ZXh0KSB7CisgICAgICAgICAgICBhdXRvJiBjcHUgPSBjb250ZXh0
LT5jcHU7CiAgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsrOwogICAgICAgICAgICAgZm9yIChh
dXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVy
czo6bGFzdFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkgewogICAgICAgICAgICAgICAgIGlm
IChpc1NQKGlkKSB8fCBpc0ZQKGlkKSkgewotICAgICAgICAgICAgICAgICAgICBDSEVDSyhjb250
ZXh0LT5ncHIoaWQpID09IG9yaWdpbmFsU3RhdGUuZ3ByKGlkKSk7CisgICAgICAgICAgICAgICAg
ICAgIENIRUNLX0VRKGNwdS5ncHIoaWQpLCBvcmlnaW5hbFN0YXRlLmdwcihpZCkpOwogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgaWYgKGlzU3BlY2lhbEdQUihpZCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihpZCkgPT0gdGVzdFdvcmQoaWQpKTsK
KyAgICAgICAgICAgICAgICBDSEVDS19FUShjcHUuZ3ByKGlkKSwgdGVzdFdvcmQoaWQpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmly
c3RGUFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQg
PSBuZXh0SUQoaWQpKQotICAgICAgICAgICAgICAgIENIRUNLX0RPVUJMRV9CSVRXSVNFX0VRKGNv
bnRleHQtPmZwcihpZCksIHRlc3REb3VibGVXb3JkKGlkKSk7CisgICAgICAgICAgICAgICAgQ0hF
Q0tfRVEoY3B1LmZwcjx1aW50NjRfdD4oaWQpLCB0ZXN0V29yZDY0KGlkKSk7CiAgICAgICAgIH0p
OwogCiAgICAgICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsIHN0YXRlLgogICAgICAgICBqaXQu
cHJvYmUoWyZdIChQcm9iZUNvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAgIGF1dG8mIGNw
dSA9IGNvbnRleHQtPmNwdTsKICAgICAgICAgICAgIHByb2JlQ2FsbENvdW50Kys7CiAgICAgICAg
ICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgaWQgPD0g
Q0NhbGxIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKGlzU3BlY2lhbEdQUihpZCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgICAgIGNvbnRleHQtPmdwcihpZCkgPSBvcmlnaW5hbFN0YXRlLmdw
cihpZCk7CisgICAgICAgICAgICAgICAgY3B1LmdwcihpZCkgPSBvcmlnaW5hbFN0YXRlLmdwcihp
ZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBl
cnM6OmZpcnN0RlBSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RGUFJlZ2lzdGVy
KCk7IGlkID0gbmV4dElEKGlkKSkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5mcHIoaWQpID0g
b3JpZ2luYWxTdGF0ZS5mcHIoaWQpOworICAgICAgICAgICAgICAgIGNwdS5mcHIoaWQpID0gb3Jp
Z2luYWxTdGF0ZS5mcHIoaWQpOwogICAgICAgICB9KTsKIAogICAgICAgICAvLyBWYWxpZGF0ZSB0
aGF0IHRoZSBvcmlnaW5hbCBzdGF0ZSB3YXMgcmVzdG9yZWQuCiAgICAgICAgIGppdC5wcm9iZShb
Jl0gKFByb2JlQ29udGV4dCogY29udGV4dCkgeworICAgICAgICAgICAgYXV0byYgY3B1ID0gY29u
dGV4dC0+Y3B1OwogICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKICAgICAgICAgICAgIGZv
ciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhl
bHBlcnM6Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKICAgICAgICAgICAgICAg
ICBpZiAoaXNTcGVjaWFsR1BSKGlkKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKGlkKSA9PSBvcmlnaW5hbFN0YXRlLmdw
cihpZCkpOworICAgICAgICAgICAgICAgIENIRUNLX0VRKGNwdS5ncHIoaWQpLCBvcmlnaW5hbFN0
YXRlLmdwcihpZCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZm9yIChhdXRvIGlkID0g
Q0NhbGxIZWxwZXJzOjpmaXJzdEZQUmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0
RlBSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpCi0gICAgICAgICAgICAgICAgQ0hFQ0tfRE9V
QkxFX0JJVFdJU0VfRVEoY29udGV4dC0+ZnByKGlkKSwgb3JpZ2luYWxTdGF0ZS5mcHIoaWQpKTsK
KyAgICAgICAgICAgICAgICBDSEVDS19FUShjcHUuZnByPHVpbnQ2NF90PihpZCksIG9yaWdpbmFs
U3RhdGUuZnByPHVpbnQ2NF90PihpZCkpOwogICAgICAgICB9KTsKIAogICAgICAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgaml0LnJldCgpOwogICAgIH0pOwotICAgIENI
RUNLKHByb2JlQ2FsbENvdW50ID09IDUpOworICAgIENIRUNLX0VRKHByb2JlQ2FsbENvdW50LCA1
KTsKIH0KIAogdm9pZCB0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlcihXVEY6OkZ1bmN0aW9u
PHZvaWQqKFByb2JlQ29udGV4dCopPiBjb21wdXRlTW9kaWZpZWRTdGFjaykKIHsKICAgICB1bnNp
Z25lZCBwcm9iZUNhbGxDb3VudCA9IDA7CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNQVVN0YXRlIG9y
aWdpbmFsU3RhdGU7Ci0gICAgdWludDhfdCogb3JpZ2luYWxTUCB7IG51bGxwdHIgfTsKKyAgICB2
b2lkKiBvcmlnaW5hbFNQIHsgbnVsbHB0ciB9OwogICAgIHZvaWQqIG1vZGlmaWVkU1AgeyBudWxs
cHRyIH07CiAgICAgdWludHB0cl90IG1vZGlmaWVkRmxhZ3MgeyAwIH07CiAgICAgCkBAIC0zNTYs
NzcgKzM2OSw4MSBAQCB2b2lkIHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVyKFdURjo6CiAg
ICAgICAgIC8vIFByZXNlcnZlIG9yaWdpbmFsIHN0YWNrIHBvaW50ZXIgYW5kIG1vZGlmeSB0aGUg
c3AsIGFuZAogICAgICAgICAvLyB3cml0ZSBleHBlY3RlZCB2YWx1ZXMgaW50byBvdGhlciByZWdp
c3RlcnMgKGV4Y2VwdCBmb3IgZnAsIGFuZCBwYykuCiAgICAgICAgIGppdC5wcm9iZShbJl0gKFBy
b2JlQ29udGV4dCogY29udGV4dCkgeworICAgICAgICAgICAgYXV0byYgY3B1ID0gY29udGV4dC0+
Y3B1OwogICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKICAgICAgICAgICAgIGZvciAoYXV0
byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6
Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKLSAgICAgICAgICAgICAgICBvcmln
aW5hbFN0YXRlLmdwcihpZCkgPSBjb250ZXh0LT5ncHIoaWQpOworICAgICAgICAgICAgICAgIG9y
aWdpbmFsU3RhdGUuZ3ByKGlkKSA9IGNwdS5ncHIoaWQpOwogICAgICAgICAgICAgICAgIGlmIChp
c1NwZWNpYWxHUFIoaWQpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
ICAgICAgICBjb250ZXh0LT5ncHIoaWQpID0gdGVzdFdvcmQoc3RhdGljX2Nhc3Q8aW50PihpZCkp
OworICAgICAgICAgICAgICAgIGNwdS5ncHIoaWQpID0gdGVzdFdvcmQoc3RhdGljX2Nhc3Q8aW50
PihpZCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxI
ZWxwZXJzOjpmaXJzdEZQUmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdp
c3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKLSAgICAgICAgICAgICAgICBvcmlnaW5hbFN0YXRl
LmZwcihpZCkgPSBjb250ZXh0LT5mcHIoaWQpOwotICAgICAgICAgICAgICAgIGNvbnRleHQtPmZw
cihpZCkgPSB0ZXN0V29yZChpZCk7CisgICAgICAgICAgICAgICAgb3JpZ2luYWxTdGF0ZS5mcHIo
aWQpID0gY3B1LmZwcihpZCk7CisgICAgICAgICAgICAgICAgY3B1LmZwcihpZCkgPSBiaXR3aXNl
X2Nhc3Q8ZG91YmxlPih0ZXN0V29yZDY0KGlkKSk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIG9yaWdpbmFsU3RhdGUuc3ByKGZsYWdzU1BSKSA9IGNvbnRleHQtPnNwcihmbGFnc1NQUik7
CisgICAgICAgICAgICBvcmlnaW5hbFN0YXRlLnNwcihmbGFnc1NQUikgPSBjcHUuc3ByKGZsYWdz
U1BSKTsKICAgICAgICAgICAgIG1vZGlmaWVkRmxhZ3MgPSBvcmlnaW5hbFN0YXRlLnNwcihmbGFn
c1NQUikgXiBmbGFnc01hc2s7Ci0gICAgICAgICAgICBjb250ZXh0LT5zcHIoZmxhZ3NTUFIpID0g
bW9kaWZpZWRGbGFnczsKKyAgICAgICAgICAgIGNwdS5zcHIoZmxhZ3NTUFIpID0gbW9kaWZpZWRG
bGFnczsKIAotICAgICAgICAgICAgb3JpZ2luYWxTUCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhf
dCo+KGNvbnRleHQtPnNwKCkpOworICAgICAgICAgICAgb3JpZ2luYWxTUCA9IGNwdS5zcCgpOwog
ICAgICAgICAgICAgbW9kaWZpZWRTUCA9IGNvbXB1dGVNb2RpZmllZFN0YWNrKGNvbnRleHQpOwot
ICAgICAgICAgICAgY29udGV4dC0+c3AoKSA9IG1vZGlmaWVkU1A7CisgICAgICAgICAgICBjcHUu
c3AoKSA9IG1vZGlmaWVkU1A7CiAgICAgICAgIH0pOwogCiAgICAgICAgIC8vIFZhbGlkYXRlIHRo
YXQgdGhlIHJlZ2lzdGVycyBoYXZlIHRoZSBleHBlY3RlZCB2YWx1ZXMuCiAgICAgICAgIGppdC5w
cm9iZShbJl0gKFByb2JlQ29udGV4dCogY29udGV4dCkgeworICAgICAgICAgICAgYXV0byYgY3B1
ID0gY29udGV4dC0+Y3B1OwogICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKICAgICAgICAg
ICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBD
Q2FsbEhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKICAgICAgICAg
ICAgICAgICBpZiAoaXNGUChpZCkpIHsKLSAgICAgICAgICAgICAgICAgICAgQ0hFQ0soY29udGV4
dC0+Z3ByKGlkKSA9PSBvcmlnaW5hbFN0YXRlLmdwcihpZCkpOworICAgICAgICAgICAgICAgICAg
ICBDSEVDS19FUShjcHUuZ3ByKGlkKSwgb3JpZ2luYWxTdGF0ZS5ncHIoaWQpKTsKICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IGlmIChpc1NwZWNpYWxHUFIoaWQpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5ncHIoaWQpID09IHRlc3RXb3JkKGlkKSk7Cisg
ICAgICAgICAgICAgICAgQ0hFQ0tfRVEoY3B1LmdwcihpZCksIHRlc3RXb3JkKGlkKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0
RlBSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RGUFJlZ2lzdGVyKCk7IGlkID0g
bmV4dElEKGlkKSkKLSAgICAgICAgICAgICAgICBDSEVDS19ET1VCTEVfQklUV0lTRV9FUShjb250
ZXh0LT5mcHIoaWQpLCB0ZXN0RG91YmxlV29yZChpZCkpOwotICAgICAgICAgICAgQ0hFQ0soY29u
dGV4dC0+c3ByKGZsYWdzU1BSKSA9PSBtb2RpZmllZEZsYWdzKTsKLSAgICAgICAgICAgIENIRUNL
KGNvbnRleHQtPnNwKCkgPT0gbW9kaWZpZWRTUCk7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEo
Y3B1LmZwcjx1aW50NjRfdD4oaWQpLCB0ZXN0V29yZDY0KGlkKSk7CisgICAgICAgICAgICBDSEVD
S19FUShjcHUuc3ByKGZsYWdzU1BSKSwgbW9kaWZpZWRGbGFncyk7CisgICAgICAgICAgICBDSEVD
S19FUShjcHUuc3AoKSwgbW9kaWZpZWRTUCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIC8vIFJl
c3RvcmUgdGhlIG9yaWdpbmFsIHN0YXRlLgogICAgICAgICBqaXQucHJvYmUoWyZdIChQcm9iZUNv
bnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAgIGF1dG8mIGNwdSA9IGNvbnRleHQtPmNwdTsK
ICAgICAgICAgICAgIHByb2JlQ2FsbENvdW50Kys7CiAgICAgICAgICAgICBmb3IgKGF1dG8gaWQg
PSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0
UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGlzU3Bl
Y2lhbEdQUihpZCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
ICAgIGNvbnRleHQtPmdwcihpZCkgPSBvcmlnaW5hbFN0YXRlLmdwcihpZCk7CisgICAgICAgICAg
ICAgICAgY3B1LmdwcihpZCkgPSBvcmlnaW5hbFN0YXRlLmdwcihpZCk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0RlBSZWdpc3Rl
cigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RGUFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlk
KSkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5mcHIoaWQpID0gb3JpZ2luYWxTdGF0ZS5mcHIo
aWQpOwotICAgICAgICAgICAgY29udGV4dC0+c3ByKGZsYWdzU1BSKSA9IG9yaWdpbmFsU3RhdGUu
c3ByKGZsYWdzU1BSKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnNwKCkgPSBvcmlnaW5hbFNQOwor
ICAgICAgICAgICAgICAgIGNwdS5mcHIoaWQpID0gb3JpZ2luYWxTdGF0ZS5mcHIoaWQpOworICAg
ICAgICAgICAgY3B1LnNwcihmbGFnc1NQUikgPSBvcmlnaW5hbFN0YXRlLnNwcihmbGFnc1NQUik7
CisgICAgICAgICAgICBjcHUuc3AoKSA9IG9yaWdpbmFsU1A7CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIC8vIFZhbGlkYXRlIHRoYXQgdGhlIG9yaWdpbmFsIHN0YXRlIHdhcyByZXN0b3JlZC4KICAg
ICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVDb250ZXh0KiBjb250ZXh0KSB7CisgICAgICAgICAg
ICBhdXRvJiBjcHUgPSBjb250ZXh0LT5jcHU7CiAgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsr
OwogICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdFJlZ2lzdGVy
KCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkg
ewogICAgICAgICAgICAgICAgIGlmIChpc1NwZWNpYWxHUFIoaWQpKQogICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5ncHIoaWQpID09
IG9yaWdpbmFsU3RhdGUuZ3ByKGlkKSk7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoY3B1Lmdw
cihpZCksIG9yaWdpbmFsU3RhdGUuZ3ByKGlkKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0RlBSZWdpc3RlcigpOyBpZCA8PSBD
Q2FsbEhlbHBlcnM6Omxhc3RGUFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkKLSAgICAgICAg
ICAgICAgICBDSEVDS19ET1VCTEVfQklUV0lTRV9FUShjb250ZXh0LT5mcHIoaWQpLCAgb3JpZ2lu
YWxTdGF0ZS5mcHIoaWQpKTsKLSAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPnNwcihmbGFnc1NQ
UikgPT0gb3JpZ2luYWxTdGF0ZS5zcHIoZmxhZ3NTUFIpKTsKLSAgICAgICAgICAgIENIRUNLKGNv
bnRleHQtPnNwKCkgPT0gb3JpZ2luYWxTUCk7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoY3B1
LmZwcjx1aW50NjRfdD4oaWQpLCBvcmlnaW5hbFN0YXRlLmZwcjx1aW50NjRfdD4oaWQpKTsKKyAg
ICAgICAgICAgIENIRUNLX0VRKGNwdS5zcHIoZmxhZ3NTUFIpLCBvcmlnaW5hbFN0YXRlLnNwcihm
bGFnc1NQUikpOworICAgICAgICAgICAgQ0hFQ0tfRVEoY3B1LnNwKCksIG9yaWdpbmFsU1ApOwog
ICAgICAgICB9KTsKIAogICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAg
ICAgaml0LnJldCgpOwogICAgIH0pOwotICAgIENIRUNLKHByb2JlQ2FsbENvdW50ID09IDQpOwor
ICAgIENIRUNLX0VRKHByb2JlQ2FsbENvdW50LCA0KTsKIH0KIAogdm9pZCB0ZXN0UHJvYmVNb2Rp
Zmllc1N0YWNrUG9pbnRlclRvSW5zaWRlUHJvYmVDb250ZXh0T25TdGFjaygpCkBAIC00ODcsMTMg
KzUwNCwxNCBAQCB2b2lkIHRlc3RQcm9iZU1vZGlmaWVzUHJvZ3JhbUNvdW50ZXIoKQogCiAgICAg
ICAgIGppdC5icmVha3BvaW50KCk7IC8vIFdlIHNob3VsZCBuZXZlciBnZXQgaGVyZS4KICAgICB9
KTsKLSAgICBDSEVDSyhwcm9iZUNhbGxDb3VudCA9PSAyKTsKLSAgICBDSEVDSyhjb250aW51YXRp
b25XYXNSZWFjaGVkKTsKKyAgICBDSEVDS19FUShwcm9iZUNhbGxDb3VudCwgMik7CisgICAgQ0hF
Q0tfRVEoY29udGludWF0aW9uV2FzUmVhY2hlZCwgdHJ1ZSk7CiB9CiAKICNkZWZpbmUgUlVOKHRl
c3QpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgaWYgKCFzaG91bGRS
dW4oI3Rlc3QpKSAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIGJyZWFrOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbnVtYmVyT2ZUZXN0cysrOyAgICAgICAg
ICAgICAgICAgICAgICAgIFwKICAgICAgICAgdGFza3MuYXBwZW5kKCAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKICAgICAgICAgICAgIGNyZWF0ZVNoYXJlZFRhc2s8dm9pZCgpPiggICAgICAg
ICAgIFwKICAgICAgICAgICAgICAgICBbJl0gKCkgeyAgICAgICAgICAgICAgICAgICAgICAgIFwK
QEAgLTUwNiw2ICs1MjQsNyBAQCB2b2lkIHRlc3RQcm9iZU1vZGlmaWVzUHJvZ3JhbUNvdW50ZXIo
KQogdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogewogICAgIEpTQzo6aW5pdGlhbGl6ZVRo
cmVhZGluZygpOworICAgIHVuc2lnbmVkIG51bWJlck9mVGVzdHMgPSAwOwogCiAgICAgRGVxdWU8
UmVmUHRyPFNoYXJlZFRhc2s8dm9pZCgpPj4+IHRhc2tzOwogCkBAIC01NTAsNiArNTY5LDcgQEAg
dm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIGZvciAoUmVmUHRyPFRocmVhZD4gdGhy
ZWFkIDogdGhyZWFkcykKICAgICAgICAgdGhyZWFkLT53YWl0Rm9yQ29tcGxldGlvbigpOwogICAg
IGNyYXNoTG9jay5sb2NrKCk7CisgICAgZGF0YUxvZygiQ29tcGxldGVkICIsIG51bWJlck9mVGVz
dHMsICIgdGVzdHNcbiIpOwogfQogCiB9IC8vIGFub255bW91cyBuYW1lc3BhY2UK
</data>
<flag name="review"
          id="338575"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>