<?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>136381</bug_id>
          
          <creation_ts>2014-08-29 12:14:57 -0700</creation_ts>
          <short_desc>LegacyProfiler: ProfileNodes should be used more like structs</short_desc>
          <delta_ts>2014-09-04 10:00:31 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>136380</dependson>
          <blocked>136352</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1032221</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-08-29 12:14:57 -0700</bug_when>
    <thetext>They do too much stuff now that the ProfileGenerator should be doing instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032553</commentid>
    <comment_count>1</comment_count>
      <attachid>237471</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-01 18:10:19 -0700</bug_when>
    <thetext>Created attachment 237471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032555</commentid>
    <comment_count>2</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-01 18:12:20 -0700</bug_when>
    <thetext>This won&apos;t compile unless on top of 136380&apos;s changes. I am fine with combining the two patches, but it would be an even bigger pain to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032561</commentid>
    <comment_count>3</comment_count>
      <attachid>237474</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-01 20:29:18 -0700</bug_when>
    <thetext>Created attachment 237474
Fix test failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033227</commentid>
    <comment_count>4</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-04 10:00:31 -0700</bug_when>
    <thetext>Committed r173262: &lt;http://trac.webkit.org/changeset/173262&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237471</attachid>
            <date>2014-09-01 18:10:19 -0700</date>
            <delta_ts>2014-09-01 20:29:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136381-20140901181006.patch</filename>
            <type>text/plain</type>
            <size>20729</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
N2IzMTBiNWM1YjhlNjUxYjhjNTJjNDkxZDQ4M2ZiNDliMTY3MTRkLi5kNWY0Zjk0ODRhMzc3Nzc0
ZDEyNDY4ZjcyZTY1ZGQ3YjYzMDBmYzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1NiBAQAogMjAxNC0wOS0wMSAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CiAKKyAgICAgICAgTGVnYWN5UHJvZmlsZXI6IFByb2ZpbGVOb2RlcyBzaG91bGQgYmUg
dXNlZCBtb3JlIGxpa2Ugc3RydWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM2MzgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgYm90aCB0aGUgcHJvZmlsZSBnZW5lcmF0b3IgYW5k
IGluZGl2aWR1YWwgcHJvZmlsZSBub2RlcworICAgICAgICB3ZXJlIGNvbGxlY3RpdmVseSByZXNw
b25zaWJsZSBmb3IgY3JlYXRpbmcgbmV3IENhbGwgZW50cmllcyBhbmQKKyAgICAgICAgbWFpbnRh
aW5pbmcgZGF0YSBzdHJ1Y3R1cmUgaW52YXJpYW50cy4gVGhpcyBjb21wbGV4aXR5IGlzIHVubmVj
ZXNzYXJ5LgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2VudHJhbGl6ZXMgcHJvZmlsZSBkYXRhIGNy
ZWF0aW9uIGluc2lkZSB0aGUgcHJvZmlsZSBnZW5lcmF0b3IuCisgICAgICAgIFRoZSBwcm9maWxl
IG5vZGVzIG1hbmFnZSBuZXh0U2libGluZyBhbmQgcGFyZW50IHBvaW50ZXJzLCBidXQgZG8gbm90
CisgICAgICAgIGNvbGxlY3QgdGhlIGN1cnJlbnQgdGltZSBvciBjcmVhdGUgbmV3IENhbGwgZW50
cmllcyB0aGVtc2VsdmVzLgorCisgICAgICAgIFNpbmNlIFByb2ZpbGVOb2RlOjpuZXh0U2libGlu
ZyBhbmQgaXRzIGNhbGxlcnMgYXJlIG9ubHkgdXNlZCB3aXRoaW4KKyAgICAgICAgZGVidWcgcHJp
bnRpbmcgY29kZSwgaXQgc2hvdWxkIGJlIGNvbXBpbGVkIG91dCBmb3IgcmVsZWFzZSBidWlsZHMu
CisKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6UHJvZmlsZUdlbmVyYXRvcjo6UHJvZmlsZUdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkFk
ZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlND
OjpQcm9maWxlR2VuZXJhdG9yOjpiZWdpbkNhbGxFbnRyeSk6IGNyZWF0ZSBhIG5ldyBDYWxsIGVu
dHJ5LgorICAgICAgICAoSlNDOjpQcm9maWxlR2VuZXJhdG9yOjplbmRDYWxsRW50cnkpOiBmaW5p
c2ggdGhlIGxhc3QgQ2FsbCBlbnRyeS4KKyAgICAgICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6
d2lsbEV4ZWN1dGUpOiBpbmxpbmUgUHJvZmlsZU5vZGU6OndpbGxFeGVjdXRlKCkKKyAgICAgICAg
KEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZSk6IGlubGluZSBQcm9maWxlTm9kZTo6
ZGlkRXhlY3V0ZSgpCisgICAgICAgIChKU0M6OlByb2ZpbGVHZW5lcmF0b3I6OnN0b3BQcm9maWxp
bmcpOiBPbmx5IHdhbGsgdXAgdGhlIHNwaW5lLgorICAgICAgICAoSlNDOjpQcm9maWxlR2VuZXJh
dG9yOjpyZW1vdmVQcm9maWxlU3RhcnQpOgorICAgICAgICAoSlNDOjpQcm9maWxlR2VuZXJhdG9y
OjpyZW1vdmVQcm9maWxlRW5kKToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
Lmg6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwOgorICAgICAgICAoSlNDOjpQ
cm9maWxlTm9kZTo6UHJvZmlsZU5vZGUpOgorICAgICAgICAoSlNDOjpQcm9maWxlTm9kZTo6YWRk
Q2hpbGQpOgorICAgICAgICAoSlNDOjpQcm9maWxlTm9kZTo6cmVtb3ZlQ2hpbGQpOgorICAgICAg
ICAoSlNDOjpQcm9maWxlTm9kZTo6c3BsaWNlTm9kZSk6IFJlbmFtZWQgZnJvbSBpbnNlcnROb2Rl
LCBzaW5jZSAnaW5zZXJ0JyBpcworICAgICAgICBhbWJpZ3VvdXMuIEl0IHdhcyB1c2VkIGluY29y
cmVjdGx5IGluIG9uZSBwbGFjZSBpbnN0ZWFkIG9mIGFkZENoaWxkLgorICAgICAgICAoSlNDOjpQ
cm9maWxlTm9kZTo6ZGVidWdQcmludFJlY3Vyc2l2ZWx5KToKKyAgICAgICAgKEpTQzo6UHJvZmls
ZU5vZGU6OndpbGxFeGVjdXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6
Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpQcm9maWxlTm9kZTo6c3RvcFBy
b2ZpbGluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlByb2ZpbGVOb2RlOjp0cmF2ZXJzZU5l
eHROb2RlUG9zdE9yZGVyKToKKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6OmVuZEFuZFJlY29y
ZENhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpQcm9maWxlTm9kZTo6ZGVidWdQcmludERh
dGFTYW1wbGVTdHlsZSk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZU5vZGUuaDoKKyAgICAg
ICAgKEpTQzo6UHJvZmlsZU5vZGU6OkNhbGw6OnNldFN0YXJ0VGltZSk6CisgICAgICAgIChKU0M6
OlByb2ZpbGVOb2RlOjpDYWxsOjpzZXRUb3RhbFRpbWUpOgorICAgICAgICAoSlNDOjpQcm9maWxl
Tm9kZTo6YXBwZW5kQ2FsbCk6CisgICAgICAgIChKU0M6OlByb2ZpbGVOb2RlOjpmaXJzdENoaWxk
KToKKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6Omxhc3RDaGlsZCk6CisgICAgICAgIChKU0M6
OlByb2ZpbGVOb2RlOjpuZXh0U2libGluZyk6CisgICAgICAgIChKU0M6OlByb2ZpbGVOb2RlOjpz
ZXROZXh0U2libGluZyk6CisKKzIwMTQtMDktMDEgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndh
c2hpbmd0b24uZWR1PgorCiAgICAgICAgIFByb3ZpZGUgY29sdW1uIG51bWJlcnMgdG8gRFRyYWNl
IHdpbGxFeGVjdXRlL2RpZEV4ZWN1dGUgcHJvYmVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY0MzQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhkZjg3MzE4ZGM1
ZjI3ODUzZTRiNmVlYWJkYzY0NDU4ZmMxOTNkZTEuLjdhYmNjYjQ4ZThiNDg4NWFkYWFiNzQxOWNm
OGFkM2YwMzM2YWRmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNC0wOS0wMSAg
QnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CisKKyAgICAgICAgTGVnYWN5
UHJvZmlsZXI6IFByb2ZpbGVOb2RlcyBzaG91bGQgYmUgdXNlZCBtb3JlIGxpa2Ugc3RydWN0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MzgxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsOiBSZW1vdmUgYW4gdW51c2VkIHByb3BlcnR5LgorCiAy
MDE0LTA4LTMxICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAogICAg
ICAgICBMZWdhY3lQcm9maWxlcjogcmVtb3ZlIHJlZHVuZGFudCBQcm9maWxlTm9kZSBtZW1iZXJz
IGFuZCBvdGhlciBjbGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAKaW5kZXggZjJmYjZmMjg5N2E3ODcyMTIzYTI0ODRjNjBl
NjM4Mjg0YjBhYjgzYS4uOThiNTgxMjE4NDI5YzZlNjY3NDRjNWRlNWFhZGI1YTMzMjYyZWUyYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJh
dG9yLmNwcApAQCAtNDUsNyArNDUsNyBAQCBQYXNzUmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+IFBy
b2ZpbGVHZW5lcmF0b3I6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cgogfQogCiBQ
cm9maWxlR2VuZXJhdG9yOjpQcm9maWxlR2VuZXJhdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkKQotICAgIDogbV9vcmlnaW4oZXhlYyA/IGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSA6IDApCisgICAgOiBtX29yaWdpbihleGVjID8gZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpIDogbnVsbHB0cikKICAgICAsIG1fcHJvZmlsZUdyb3VwKGV4
ZWMgPyBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpIDogMCkKICAg
ICAsIG1fZm91bmRDb25zb2xlU3RhcnRQYXJlbnQoZmFsc2UpCiB7CkBAIC03OSw3ICs3OSw3IEBA
IHB1YmxpYzoKICAgICAgICAgdW5zaWduZWQgY29sdW1uID0gMDsKICAgICAgICAgdmlzaXRvci0+
Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgY29sdW1uKTsKICAgICAgICAgbV9jdXJyZW50Tm9k
ZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUobV9leGVjLCBMZWdhY3lQcm9maWxlcjo6Y3JlYXRlQ2Fs
bElkZW50aWZpZXIobV9leGVjLCB2aXNpdG9yLT5jYWxsZWUoKSwgdmlzaXRvci0+c291cmNlVVJM
KCksIGxpbmUsIGNvbHVtbiksIG1fcm9vdE5vZGUuZ2V0KCkpOwotICAgICAgICBtX3Jvb3ROb2Rl
LT5pbnNlcnROb2RlKG1fY3VycmVudE5vZGUuZ2V0KCkpOworICAgICAgICBtX3Jvb3ROb2RlLT5z
cGxpY2VOb2RlKG1fY3VycmVudE5vZGUuZ2V0KCkpOwogCiAgICAgICAgIG1fZm91bmRQYXJlbnQg
PSB0cnVlOwogICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpEb25lOwpAQCAtMTA2LDYgKzEw
NiwyNSBAQCBjb25zdCBTdHJpbmcmIFByb2ZpbGVHZW5lcmF0b3I6OnRpdGxlKCkgY29uc3QKICAg
ICByZXR1cm4gbV9wcm9maWxlLT50aXRsZSgpOwogfQogCit2b2lkIFByb2ZpbGVHZW5lcmF0b3I6
OmJlZ2luQ2FsbEVudHJ5KFByb2ZpbGVOb2RlKiBub2RlLCBkb3VibGUgc3RhcnRUaW1lKQorewor
ICAgIEFTU0VSVF9BUkcobm9kZSwgbm9kZSk7CisKKyAgICBpZiAoaXNuYW4oc3RhcnRUaW1lKSkK
KyAgICAgICAgc3RhcnRUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBub2RlLT5hcHBlbmRDYWxs
KFByb2ZpbGVOb2RlOjpDYWxsKHN0YXJ0VGltZSkpOworfQorCit2b2lkIFByb2ZpbGVHZW5lcmF0
b3I6OmVuZENhbGxFbnRyeShQcm9maWxlTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlRfQVJHKG5v
ZGUsIG5vZGUpOworCisgICAgUHJvZmlsZU5vZGU6OkNhbGwmIGxhc3QgPSBub2RlLT5sYXN0Q2Fs
bCgpOworICAgIEFTU0VSVChpc25hbihsYXN0LnRvdGFsVGltZSgpKSk7CisKKyAgICBsYXN0LnNl
dFRvdGFsVGltZShjdXJyZW50VGltZSgpIC0gbGFzdC5zdGFydFRpbWUoKSk7Cit9CisKIHZvaWQg
UHJvZmlsZUdlbmVyYXRvcjo6d2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUs
IGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllcikKIHsKICAgICBpZiAoSkFWQVND
UklQVENPUkVfUFJPRklMRV9XSUxMX0VYRUNVVEVfRU5BQkxFRCgpKSB7CkBAIC0xMTcsOCArMTM2
LDIxIEBAIHZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6d2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxs
ZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmCiAgICAgaWYgKCFtX29yaWdpbikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fY3VycmVudE5vZGUpOwotICAgIG1fY3VycmVudE5v
ZGUgPSBtX2N1cnJlbnROb2RlLT53aWxsRXhlY3V0ZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVu
dGlmaWVyKTsKKyAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IGNhbGxlZU5vZGUgPSBudWxscHRyOwor
CisgICAgLy8gRmluZCBvciBjcmVhdGUgYSBub2RlIGZvciB0aGUgY2FsbGVlIGNhbGwgZnJhbWUu
CisgICAgZm9yIChjb25zdCBSZWZQdHI8UHJvZmlsZU5vZGU+JiBjaGlsZCA6IG1fY3VycmVudE5v
ZGUtPmNoaWxkcmVuKCkpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5jYWxsSWRlbnRpZmllcigpID09
IGNhbGxJZGVudGlmaWVyKQorICAgICAgICAgICAgY2FsbGVlTm9kZSA9IGNoaWxkOworICAgIH0K
KworICAgIGlmICghY2FsbGVlTm9kZSkgeworICAgICAgICBjYWxsZWVOb2RlID0gUHJvZmlsZU5v
ZGU6OmNyZWF0ZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyLCBtX2N1cnJlbnROb2Rl
LmdldCgpKTsKKyAgICAgICAgbV9jdXJyZW50Tm9kZS0+YWRkQ2hpbGQoY2FsbGVlTm9kZSk7Cisg
ICAgfQorCisgICAgbV9jdXJyZW50Tm9kZSA9IGNhbGxlZU5vZGU7CisgICAgYmVnaW5DYWxsRW50
cnkoY2FsbGVlTm9kZS5nZXQoKSk7CiB9CiAKIHZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhl
Y3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNh
bGxJZGVudGlmaWVyKQpAQCAtMTMyLDE2ICsxNjQsMTggQEAgdm9pZCBQcm9maWxlR2VuZXJhdG9y
OjpkaWRFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRp
ZmkKICAgICBpZiAoIW1fb3JpZ2luKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBNYWtlIGEg
bmV3IG5vZGUgaWYgdGhlIGNhbGxlciBub2RlIGhhcyBuZXZlciBzZWVuIHRoaXMgY2FsbGVlIGNh
bGwgZnJhbWUgYmVmb3JlLgogICAgIEFTU0VSVChtX2N1cnJlbnROb2RlKTsKICAgICBpZiAobV9j
dXJyZW50Tm9kZS0+Y2FsbElkZW50aWZpZXIoKSAhPSBjYWxsSWRlbnRpZmllcikgewotICAgICAg
ICBSZWZQdHI8UHJvZmlsZU5vZGU+IHJldHVybmluZ05vZGUgPSBQcm9maWxlTm9kZTo6Y3JlYXRl
KGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIsIG1fY3VycmVudE5vZGUuZ2V0KCkpOwot
ICAgICAgICByZXR1cm5pbmdOb2RlLT5sYXN0Q2FsbCgpLnNldFN0YXJ0VGltZShtX2N1cnJlbnRO
b2RlLT5sYXN0Q2FsbCgpLnN0YXJ0VGltZSgpKTsKLSAgICAgICAgcmV0dXJuaW5nTm9kZS0+ZGlk
RXhlY3V0ZSgpOwotICAgICAgICBtX2N1cnJlbnROb2RlLT5pbnNlcnROb2RlKHJldHVybmluZ05v
ZGUucmVsZWFzZSgpKTsKKyAgICAgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBjYWxsZWVOb2RlID0g
UHJvZmlsZU5vZGU6OmNyZWF0ZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyLCBtX2N1
cnJlbnROb2RlLmdldCgpKTsKKyAgICAgICAgYmVnaW5DYWxsRW50cnkoY2FsbGVlTm9kZS5nZXQo
KSwgbV9jdXJyZW50Tm9kZS0+bGFzdENhbGwoKS5zdGFydFRpbWUoKSk7CisgICAgICAgIGVuZENh
bGxFbnRyeShjYWxsZWVOb2RlLmdldCgpKTsKKyAgICAgICAgbV9jdXJyZW50Tm9kZS0+YWRkQ2hp
bGQoY2FsbGVlTm9kZS5yZWxlYXNlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
bV9jdXJyZW50Tm9kZSA9IG1fY3VycmVudE5vZGUtPmRpZEV4ZWN1dGUoKTsKKyAgICBlbmRDYWxs
RW50cnkobV9jdXJyZW50Tm9kZS5nZXQoKSk7CisgICAgbV9jdXJyZW50Tm9kZSA9IG1fY3VycmVu
dE5vZGUtPnBhcmVudCgpOwogfQogCiB2b2lkIFByb2ZpbGVHZW5lcmF0b3I6OmV4Y2VwdGlvblVu
d2luZChFeGVjU3RhdGUqIGhhbmRsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJikK
QEAgLTE1NSwxNiArMTg5LDEwIEBAIHZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6ZXhjZXB0aW9uVW53
aW5kKEV4ZWNTdGF0ZSogaGFuZGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkCiAgICAgfQogfQog
Ci1zdHJ1Y3QgU3RvcFByb2ZpbGluZ0Z1bmN0b3IgewotICAgIHZvaWQgb3BlcmF0b3IoKShQcm9m
aWxlTm9kZSogbm9kZSkgeyBub2RlLT5zdG9wUHJvZmlsaW5nKCk7IH0KLX07Ci0KIHZvaWQgUHJv
ZmlsZUdlbmVyYXRvcjo6c3RvcFByb2ZpbGluZygpCiB7Ci0gICAgLy8gRklYTUU6IHdlIHNob3Vs
ZG4ndCBuZWVkIGEgZnVsbCB0cmF2ZXJzYWwgaGVyZSwgc2luY2Ugb25seSB0aGUgc3BpbmUgZnJv
bQotICAgIC8vIG1fY3VycmVudE5vZGUgdG8gbV9yb290Tm9kZSBzaG91bGQgaGF2ZSBhbnkgbm9k
ZXMgY3VycmVudGx5IGFjY3J1aW5nIHRpbWUuCi0gICAgU3RvcFByb2ZpbGluZ0Z1bmN0b3IgZnVu
Y3RvcjsKLSAgICBtX3Byb2ZpbGUtPnJvb3ROb2RlKCktPmZvckVhY2hOb2RlUG9zdG9yZGVyKGZ1
bmN0b3IpOworICAgIGZvciAoUHJvZmlsZU5vZGUqIG5vZGUgPSBtX2N1cnJlbnROb2RlLmdldCgp
OyBub2RlICE9IG1fcHJvZmlsZS0+cm9vdE5vZGUoKTsgbm9kZSA9IG5vZGUtPnBhcmVudCgpKQor
ICAgICAgICBlbmRDYWxsRW50cnkobm9kZSk7CiAKICAgICBpZiAobV9mb3VuZENvbnNvbGVTdGFy
dFBhcmVudCkgewogICAgICAgICByZW1vdmVQcm9maWxlU3RhcnQoKTsKQEAgLTE4MSw3ICsyMDks
NyBAQCB2b2lkIFByb2ZpbGVHZW5lcmF0b3I6OnN0b3BQcm9maWxpbmcoKQogLy8gVGhlIGNvbnNv
bGUucHJvZmlsZSB0aGF0IHN0YXJ0ZWQgdGhpcyBQcm9maWxlR2VuZXJhdG9yIHdpbGwgYmUgdGhl
IGZpcnN0IGNoaWxkLgogdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpyZW1vdmVQcm9maWxlU3RhcnQo
KQogewotICAgIFByb2ZpbGVOb2RlKiBjdXJyZW50Tm9kZSA9IDA7CisgICAgUHJvZmlsZU5vZGUq
IGN1cnJlbnROb2RlID0gbnVsbHB0cjsKICAgICBmb3IgKFByb2ZpbGVOb2RlKiBuZXh0ID0gbV9y
b290Tm9kZS5nZXQoKTsgbmV4dDsgbmV4dCA9IG5leHQtPmZpcnN0Q2hpbGQoKSkKICAgICAgICAg
Y3VycmVudE5vZGUgPSBuZXh0OwogCkBAIC0xOTQsNyArMjIyLDcgQEAgdm9pZCBQcm9maWxlR2Vu
ZXJhdG9yOjpyZW1vdmVQcm9maWxlU3RhcnQoKQogLy8gVGhlIGNvbnNvbGUucHJvZmlsZUVuZCB0
aGF0IHN0b3BwZWQgdGhpcyBQcm9maWxlR2VuZXJhdG9yIHdpbGwgYmUgdGhlIGxhc3QgY2hpbGQu
CiB2b2lkIFByb2ZpbGVHZW5lcmF0b3I6OnJlbW92ZVByb2ZpbGVFbmQoKQogewotICAgIFByb2Zp
bGVOb2RlKiBjdXJyZW50Tm9kZSA9IDA7CisgICAgUHJvZmlsZU5vZGUqIGN1cnJlbnROb2RlID0g
bnVsbHB0cjsKICAgICBmb3IgKFByb2ZpbGVOb2RlKiBuZXh0ID0gbV9yb290Tm9kZS5nZXQoKTsg
bmV4dDsgbmV4dCA9IG5leHQtPmxhc3RDaGlsZCgpKQogICAgICAgICBjdXJyZW50Tm9kZSA9IG5l
eHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
R2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVy
YXRvci5oCmluZGV4IDQ1NDNkZWYyY2MxOTRhNWUxN2MwMDlmZmIxMTlhMGY2ODFhMjE1NjkuLjcw
ZGNkZWFmY2E2ZjRiNmQ0MWMwZTI4NmYxNDlkNzY1ZmNlMTg0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaApAQCAtMjYsMTAgKzI2
LDEwIEBACiAjaWZuZGVmIFByb2ZpbGVHZW5lcmF0b3JfaAogI2RlZmluZSBQcm9maWxlR2VuZXJh
dG9yX2gKIAotI2luY2x1ZGUgIlByb2ZpbGUuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAt
NDksMTMgKzQ5LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU0dsb2JhbE9iamVjdCog
b3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KICAgICAgICAgdW5zaWduZWQgcHJv
ZmlsZUdyb3VwKCkgY29uc3QgeyByZXR1cm4gbV9wcm9maWxlR3JvdXA7IH0KIAotICAgICAgICAv
LyBDb2xsZWN0aW5nCiAgICAgICAgIHZvaWQgd2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJD
YWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJik7CiAgICAgICAgIHZvaWQgZGlkRXhlY3V0
ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImKTsKLQog
ICAgICAgICB2b2lkIGV4Y2VwdGlvblVud2luZChFeGVjU3RhdGUqIGhhbmRsZXJDYWxsRnJhbWUs
IGNvbnN0IENhbGxJZGVudGlmaWVyJik7CiAKLSAgICAgICAgLy8gU3RvcHBpbmcgUHJvZmlsaW5n
CiAgICAgICAgIHZvaWQgc3RvcFByb2ZpbGluZygpOwogCiAgICAgICAgIHR5cGVkZWYgdm9pZCAo
UHJvZmlsZUdlbmVyYXRvcjo6KlByb2ZpbGVGdW5jdGlvbikoRXhlY1N0YXRlKiBjYWxsZXJPckhh
bmRsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllcik7CkBA
IC02Nyw2ICs2NCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHJlbW92ZVByb2Zp
bGVTdGFydCgpOwogICAgICAgICB2b2lkIHJlbW92ZVByb2ZpbGVFbmQoKTsKIAorICAgICAgICB2
b2lkIGJlZ2luQ2FsbEVudHJ5KFByb2ZpbGVOb2RlKiwgZG91YmxlIHN0YXJ0VGltZSA9IE5BTik7
CisgICAgICAgIHZvaWQgZW5kQ2FsbEVudHJ5KFByb2ZpbGVOb2RlKik7CisKICAgICAgICAgUmVm
UHRyPFByb2ZpbGU+IG1fcHJvZmlsZTsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIG1fb3JpZ2lu
OwogICAgICAgICB1bnNpZ25lZCBtX3Byb2ZpbGVHcm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwCmluZGV4IGI2MTE1MDBhZDgzNzQ5YTU2Zjc4
YWEwYjRiMjkzNDlhN2UzYWQ2YjUuLjI2NWNkZGQwZWY3ODgzM2Y2MWI1NzExMTljZmQ3NzIwZmQ0
NmQxNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
Tm9kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2Rl
LmNwcApAQCAtNDIsNDggKzQyLDMxIEBAIFByb2ZpbGVOb2RlOjpQcm9maWxlTm9kZShFeGVjU3Rh
dGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJCiAgICAgOiBt
X2NhbGxlckNhbGxGcmFtZShjYWxsZXJDYWxsRnJhbWUpCiAgICAgLCBtX2NhbGxJZGVudGlmaWVy
KGNhbGxJZGVudGlmaWVyKQogICAgICwgbV9wYXJlbnQocGFyZW50Tm9kZSkKKyNpZm5kZWYgTkRF
QlVHCiAgICAgLCBtX25leHRTaWJsaW5nKG51bGxwdHIpCisjZW5kaWYKIHsKLSAgICBzdGFydFRp
bWVyKCk7CiB9CiAKIFByb2ZpbGVOb2RlOjpQcm9maWxlTm9kZShFeGVjU3RhdGUqIGNhbGxlckNh
bGxGcmFtZSwgUHJvZmlsZU5vZGUqIG5vZGVUb0NvcHkpCiAgICAgOiBtX2NhbGxlckNhbGxGcmFt
ZShjYWxsZXJDYWxsRnJhbWUpCiAgICAgLCBtX2NhbGxJZGVudGlmaWVyKG5vZGVUb0NvcHktPmNh
bGxJZGVudGlmaWVyKCkpCiAgICAgLCBtX3BhcmVudChub2RlVG9Db3B5LT5wYXJlbnQoKSkKLSAg
ICAsIG1fbmV4dFNpYmxpbmcobnVsbHB0cikKICAgICAsIG1fY2FsbHMobm9kZVRvQ29weS0+Y2Fs
bHMoKSkKKyNpZm5kZWYgTkRFQlVHCisgICAgLCBtX25leHRTaWJsaW5nKG51bGxwdHIpCisjZW5k
aWYKIHsKIH0KIAotUHJvZmlsZU5vZGUqIFByb2ZpbGVOb2RlOjp3aWxsRXhlY3V0ZShFeGVjU3Rh
dGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVudGlmaWVy
KQotewotICAgIGZvciAoU3RhY2tJdGVyYXRvciBjdXJyZW50Q2hpbGQgPSBtX2NoaWxkcmVuLmJl
Z2luKCk7IGN1cnJlbnRDaGlsZCAhPSBtX2NoaWxkcmVuLmVuZCgpOyArK2N1cnJlbnRDaGlsZCkg
ewotICAgICAgICBpZiAoKCpjdXJyZW50Q2hpbGQpLT5jYWxsSWRlbnRpZmllcigpID09IGNhbGxJ
ZGVudGlmaWVyKSB7Ci0gICAgICAgICAgICAoKmN1cnJlbnRDaGlsZCktPnN0YXJ0VGltZXIoKTsK
LSAgICAgICAgICAgIHJldHVybiAoKmN1cnJlbnRDaGlsZCkuZ2V0KCk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IG5ld0NoaWxkID0gUHJvZmlsZU5vZGU6OmNy
ZWF0ZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyLCB0aGlzKTsKLSAgICBpZiAobV9j
aGlsZHJlbi5zaXplKCkpCi0gICAgICAgIG1fY2hpbGRyZW4ubGFzdCgpLT5zZXROZXh0U2libGlu
ZyhuZXdDaGlsZC5nZXQoKSk7Ci0gICAgbV9jaGlsZHJlbi5hcHBlbmQobmV3Q2hpbGQucmVsZWFz
ZSgpKTsKLSAgICByZXR1cm4gbV9jaGlsZHJlbi5sYXN0KCkuZ2V0KCk7Ci19Ci0KLVByb2ZpbGVO
b2RlKiBQcm9maWxlTm9kZTo6ZGlkRXhlY3V0ZSgpCi17Ci0gICAgZW5kQW5kUmVjb3JkQ2FsbCgp
OwotICAgIHJldHVybiBtX3BhcmVudDsKLX0KLQogdm9pZCBQcm9maWxlTm9kZTo6YWRkQ2hpbGQo
UGFzc1JlZlB0cjxQcm9maWxlTm9kZT4gcHJwQ2hpbGQpCiB7CiAgICAgUmVmUHRyPFByb2ZpbGVO
b2RlPiBjaGlsZCA9IHBycENoaWxkOwogICAgIGNoaWxkLT5zZXRQYXJlbnQodGhpcyk7CisjaWZu
ZGVmIE5ERUJVRwogICAgIGlmIChtX2NoaWxkcmVuLnNpemUoKSkKICAgICAgICAgbV9jaGlsZHJl
bi5sYXN0KCktPnNldE5leHRTaWJsaW5nKGNoaWxkLmdldCgpKTsKKyNlbmRpZgogICAgIG1fY2hp
bGRyZW4uYXBwZW5kKGNoaWxkLnJlbGVhc2UoKSk7CiB9CiAKQEAgLTk5LDEwICs4MiwxNCBAQCB2
b2lkIFByb2ZpbGVOb2RlOjpyZW1vdmVDaGlsZChQcm9maWxlTm9kZSogbm9kZSkKICAgICAgICAg
fQogICAgIH0KIAotICAgIHJlc2V0Q2hpbGRyZW5zU2libGluZ3MoKTsKKyNpZm5kZWYgTkRFQlVH
CisgICAgc2l6ZV90IHNpemUgPSBtX2NoaWxkcmVuLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgbV9jaGlsZHJlbltpXS0+c2V0TmV4dFNpYmxp
bmcoaSArIDEgPT0gc2l6ZSA/IG51bGxwdHIgOiBtX2NoaWxkcmVuW2kgKyAxXS5nZXQoKSk7Cisj
ZW5kaWYKIH0KIAotdm9pZCBQcm9maWxlTm9kZTo6aW5zZXJ0Tm9kZShQYXNzUmVmUHRyPFByb2Zp
bGVOb2RlPiBwcnBOb2RlKQordm9pZCBQcm9maWxlTm9kZTo6c3BsaWNlTm9kZShQYXNzUmVmUHRy
PFByb2ZpbGVOb2RlPiBwcnBOb2RlKQogewogICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gbm9kZSA9
IHBycE5vZGU7CiAKQEAgLTExMywxNCArMTAwLDcgQEAgdm9pZCBQcm9maWxlTm9kZTo6aW5zZXJ0
Tm9kZShQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBwcnBOb2RlKQogICAgIG1fY2hpbGRyZW4uYXBw
ZW5kKG5vZGUucmVsZWFzZSgpKTsKIH0KIAotdm9pZCBQcm9maWxlTm9kZTo6c3RvcFByb2ZpbGlu
ZygpCi17Ci0gICAgQVNTRVJUKCFtX2NhbGxzLmlzRW1wdHkoKSk7Ci0KLSAgICBpZiAoaXNuYW4o
bV9jYWxscy5sYXN0KCkudG90YWxUaW1lKCkpKQotICAgICAgICBlbmRBbmRSZWNvcmRDYWxsKCk7
Ci19Ci0KKyNpZm5kZWYgTkRFQlVHCiBQcm9maWxlTm9kZSogUHJvZmlsZU5vZGU6OnRyYXZlcnNl
TmV4dE5vZGVQb3N0T3JkZXIoKSBjb25zdAogewogICAgIFByb2ZpbGVOb2RlKiBuZXh0ID0gbV9u
ZXh0U2libGluZzsKQEAgLTEzMSwyNyArMTExLDYgQEAgUHJvZmlsZU5vZGUqIFByb2ZpbGVOb2Rl
Ojp0cmF2ZXJzZU5leHROb2RlUG9zdE9yZGVyKCkgY29uc3QKICAgICByZXR1cm4gbmV4dDsKIH0K
IAotdm9pZCBQcm9maWxlTm9kZTo6ZW5kQW5kUmVjb3JkQ2FsbCgpCi17Ci0gICAgQ2FsbCYgbGFz
dCA9IGxhc3RDYWxsKCk7Ci0gICAgQVNTRVJUKGlzbmFuKGxhc3QudG90YWxUaW1lKCkpKTsKLQot
ICAgIGxhc3Quc2V0VG90YWxUaW1lKGN1cnJlbnRUaW1lKCkgLSBsYXN0LnN0YXJ0VGltZSgpKTsK
LX0KLQotdm9pZCBQcm9maWxlTm9kZTo6c3RhcnRUaW1lcigpCi17Ci0gICAgbV9jYWxscy5hcHBl
bmQoQ2FsbChjdXJyZW50VGltZSgpKSk7Ci19Ci0KLXZvaWQgUHJvZmlsZU5vZGU6OnJlc2V0Q2hp
bGRyZW5zU2libGluZ3MoKQotewotICAgIHVuc2lnbmVkIHNpemUgPSBtX2NoaWxkcmVuLnNpemUo
KTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX2No
aWxkcmVuW2ldLT5zZXROZXh0U2libGluZyhpICsgMSA9PSBzaXplID8gMCA6IG1fY2hpbGRyZW5b
aSArIDFdLmdldCgpKTsKLX0KLQotI2lmbmRlZiBOREVCVUcKIHZvaWQgUHJvZmlsZU5vZGU6OmRl
YnVnUHJpbnQoKQogewogICAgIENhbGN1bGF0ZVByb2ZpbGVTdWJ0cmVlRGF0YUZ1bmN0b3IgZnVu
Y3RvcjsKQEAgLTE4Nyw3ICsxNDYsNyBAQCB2b2lkIFByb2ZpbGVOb2RlOjpkZWJ1Z1ByaW50UmVj
dXJzaXZlbHkoaW50IGluZGVudExldmVsLCBjb25zdCBQcm9maWxlU3VidHJlZURhdAogCiAgICAg
ZGF0YUxvZ0YoIkZ1bmN0aW9uIE5hbWUgJXMgJXp1IFNlbGZUaW1lICUuM2Ztcy8lLjNmJSUgVG90
YWxUaW1lICUuM2Ztcy8lLjNmJSUgTmV4dCBTaWJsaW5nICVzXG4iLAogICAgICAgICBmdW5jdGlv
bk5hbWUoKS51dGY4KCkuZGF0YSgpLAotICAgICAgICBudW1iZXJPZkNhbGxzKCksIG5vZGVTZWxm
VGltZSwgbm9kZVNlbGZUaW1lIC8gcm9vdFRvdGFsVGltZSAqIDEwMC4wLCBub2RlVG90YWxUaW1l
LCBub2RlVG90YWxUaW1lIC8gcm9vdFRvdGFsVGltZSAqIDEwMC4wLAorICAgICAgICBtX2NhbGxz
LnNpemUoKSwgbm9kZVNlbGZUaW1lLCBub2RlU2VsZlRpbWUgLyByb290VG90YWxUaW1lICogMTAw
LjAsIG5vZGVUb3RhbFRpbWUsIG5vZGVUb3RhbFRpbWUgLyByb290VG90YWxUaW1lICogMTAwLjAs
CiAgICAgICAgIG1fbmV4dFNpYmxpbmcgPyBtX25leHRTaWJsaW5nLT5mdW5jdGlvbk5hbWUoKS51
dGY4KCkuZGF0YSgpIDogIiIpOwogCiAgICAgKytpbmRlbnRMZXZlbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKaW5kZXggMjM4NWNlMTdkYjUwNjM2ZTQz
OWQ5ODI5Yzk4NjVhMWFmMzNlNDgwMS4uNjY3NmU5MTBhYjQ5NDdkMTc5NmQ0Nzc4ZjkzNjdlNWRh
YjY4NjNjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2Rl
LmgKQEAgLTYzLDEwICs2MywxOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgZG91YmxlIHN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1l
OyB9Ci0gICAgICAgICAgICB2b2lkIHNldFN0YXJ0VGltZShkb3VibGUgdGltZSkgeyBtX3N0YXJ0
VGltZSA9IHRpbWU7IH0KKyAgICAgICAgICAgIHZvaWQgc2V0U3RhcnRUaW1lKGRvdWJsZSB0aW1l
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEFTU0VSVF9BUkcodGltZSwgdGltZSA+
PSAwLjApOworICAgICAgICAgICAgICAgIG1fc3RhcnRUaW1lID0gdGltZTsKKyAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgZG91YmxlIHRvdGFsVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdG90
YWxUaW1lOyB9Ci0gICAgICAgICAgICB2b2lkIHNldFRvdGFsVGltZShkb3VibGUgdGltZSkgeyBt
X3RvdGFsVGltZSA9IHRpbWU7IH0KKyAgICAgICAgICAgIHZvaWQgc2V0VG90YWxUaW1lKGRvdWJs
ZSB0aW1lKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEFTU0VSVF9BUkcodGltZSwg
dGltZSA+PSAwLjApOworICAgICAgICAgICAgICAgIG1fdG90YWxUaW1lID0gdGltZTsKKyAgICAg
ICAgICAgIH0KIAogICAgICAgICBwcml2YXRlOgogICAgICAgICAgICAgZG91YmxlIG1fc3RhcnRU
aW1lOwpAQCAtNzUsMTIgKzgzLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgYm9vbCBv
cGVyYXRvcj09KFByb2ZpbGVOb2RlKiBub2RlKSB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyID09
IG5vZGUtPmNhbGxJZGVudGlmaWVyKCk7IH0KIAotICAgICAgICBQcm9maWxlTm9kZSogd2lsbEV4
ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJik7
Ci0gICAgICAgIFByb2ZpbGVOb2RlKiBkaWRFeGVjdXRlKCk7Ci0KLSAgICAgICAgdm9pZCBzdG9w
UHJvZmlsaW5nKCk7Ci0KLSAgICAgICAgLy8gQ2FsbElkZW50aWZpZXIgbWVtYmVycwogICAgICAg
ICBFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGVyQ2Fs
bEZyYW1lOyB9CiAgICAgICAgIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1fY2FsbElkZW50aWZpZXI7IH0KICAgICAgICAgdW5zaWduZWQgaWQo
KSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyLmhhc2goKTsgfQpAQCAtODksMjYgKzkx
LDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVyKCkgY29u
c3QgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmllci5saW5lTnVtYmVyKCk7IH0KICAgICAgICAgdW5z
aWduZWQgY29sdW1uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmllci5jb2x1
bW5OdW1iZXIoKTsgfQogCi0gICAgICAgIC8vIFJlbGF0aW9uc2hpcHMKICAgICAgICAgUHJvZmls
ZU5vZGUqIHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CiAgICAgICAgIHZvaWQg
c2V0UGFyZW50KFByb2ZpbGVOb2RlKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KIAot
ICAgICAgICBQcm9maWxlTm9kZSogbmV4dFNpYmxpbmcoKSBjb25zdCB7IHJldHVybiBtX25leHRT
aWJsaW5nOyB9Ci0gICAgICAgIHZvaWQgc2V0TmV4dFNpYmxpbmcoUHJvZmlsZU5vZGUqIG5leHRT
aWJsaW5nKSB7IG1fbmV4dFNpYmxpbmcgPSBuZXh0U2libGluZzsgfQotCiAgICAgICAgIGNvbnN0
IFZlY3RvcjxDYWxsPiYgY2FsbHMoKSBjb25zdCB7IHJldHVybiBtX2NhbGxzOyB9CiAgICAgICAg
IENhbGwmIGxhc3RDYWxsKCkgeyBBU1NFUlQoIW1fY2FsbHMuaXNFbXB0eSgpKTsgcmV0dXJuIG1f
Y2FsbHMubGFzdCgpOyB9Ci0gICAgICAgIHNpemVfdCBudW1iZXJPZkNhbGxzKCkgY29uc3QgeyBy
ZXR1cm4gbV9jYWxscy5zaXplKCk7IH0KKyAgICAgICAgdm9pZCBhcHBlbmRDYWxsKENhbGwgY2Fs
bCkgeyBtX2NhbGxzLmFwcGVuZChjYWxsKTsgfQogCi0gICAgICAgIC8vIENoaWxkcmVuIG1lbWJl
cnMKICAgICAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQcm9maWxlTm9kZT4+JiBjaGlsZHJlbigp
IGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW47IH0KLSAgICAgICAgUHJvZmlsZU5vZGUqIGZpcnN0
Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuLnNpemUoKSA/IG1fY2hpbGRyZW4uZmly
c3QoKS5nZXQoKSA6IDA7IH0KLSAgICAgICAgUHJvZmlsZU5vZGUqIGxhc3RDaGlsZCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2hpbGRyZW4uc2l6ZSgpID8gbV9jaGlsZHJlbi5sYXN0KCkuZ2V0KCkgOiAw
OyB9Ci0gICAgICAgIHZvaWQgcmVtb3ZlQ2hpbGQoUHJvZmlsZU5vZGUqKTsKLSAgICAgICAgdm9p
ZCBhZGRDaGlsZChQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBwcnBDaGlsZCk7Ci0gICAgICAgIHZv
aWQgaW5zZXJ0Tm9kZShQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBwcnBOb2RlKTsKKyAgICAgICAg
UHJvZmlsZU5vZGUqIGZpcnN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuLnNpemUo
KSA/IG1fY2hpbGRyZW4uZmlyc3QoKS5nZXQoKSA6IG51bGxwdHI7IH0KKyAgICAgICAgUHJvZmls
ZU5vZGUqIGxhc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4uc2l6ZSgpID8gbV9j
aGlsZHJlbi5sYXN0KCkuZ2V0KCkgOiBudWxscHRyOyB9CiAKLSAgICAgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIEZ1bmN0b3I+IHZvaWQgZm9yRWFjaE5vZGVQb3N0b3JkZXIoRnVuY3RvciYpOworICAg
ICAgICB2b2lkIHJlbW92ZUNoaWxkKFByb2ZpbGVOb2RlKik7CisgICAgICAgIHZvaWQgYWRkQ2hp
bGQoUGFzc1JlZlB0cjxQcm9maWxlTm9kZT4pOworICAgICAgICAvLyBSZXBhcmVudCBvdXIgY2hp
bGQgbm9kZXMgdG8gdGhlIHBhc3NlZCBub2RlLCBhbmQgbWFrZSBpdCBhIGNoaWxkIG5vZGUgb2Yg
fHRoaXN8LgorICAgICAgICB2b2lkIHNwbGljZU5vZGUoUGFzc1JlZlB0cjxQcm9maWxlTm9kZT4p
OwogCiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBzdHJ1Y3QgUHJvZmlsZVN1YnRyZWVEYXRhIHsK
QEAgLTExNiwxMiArMTEzLDEzIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgZG91Ymxl
IHJvb3RUb3RhbFRpbWU7CiAgICAgICAgIH07CiAKLSAgICAgICAgY29uc3QgY2hhciogY19zdHIo
KSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyOyB9CiAgICAgICAgIC8vIFVzZSB0aGVz
ZSBmdW5jdGlvbnMgdG8gZHVtcCB0aGUgc3VidHJlZSByb290ZWQgYXQgdGhpcyBub2RlLgogICAg
ICAgICB2b2lkIGRlYnVnUHJpbnQoKTsKICAgICAgICAgdm9pZCBkZWJ1Z1ByaW50U2FtcGxlU3R5
bGUoKTsKIAogICAgICAgICAvLyBUaGVzZSBhcmUgdXNlZCB0byByZWN1cnNpdmVseSBwcmludCBl
bnRpcmUgc3VidHJlZXMgdXNpbmcgcHJlY29tcHV0ZWQgc2VsZiBhbmQgdG90YWwgdGltZXMuCisg
ICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGZvckVhY2hOb2RlUG9zdG9y
ZGVyKEZ1bmN0b3ImKTsKKwogICAgICAgICB2b2lkIGRlYnVnUHJpbnRSZWN1cnNpdmVseShpbnQg
aW5kZW50TGV2ZWwsIGNvbnN0IFByb2ZpbGVTdWJ0cmVlRGF0YSYpOwogICAgICAgICBkb3VibGUg
ZGVidWdQcmludFNhbXBsZVN0eWxlUmVjdXJzaXZlbHkoaW50IGluZGVudExldmVsLCBGdW5jdGlv
bkNhbGxIYXNoQ291bnQmLCBjb25zdCBQcm9maWxlU3VidHJlZURhdGEmKTsKICNlbmRpZgpAQCAt
MTMyLDIwICsxMzAsMjUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFByb2ZpbGVOb2RlKEV4
ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYsIFByb2ZpbGVO
b2RlKiBwYXJlbnROb2RlKTsKICAgICAgICAgUHJvZmlsZU5vZGUoRXhlY1N0YXRlKiBjYWxsZXJD
YWxsRnJhbWUsIFByb2ZpbGVOb2RlKiBub2RlVG9Db3B5KTsKIAotICAgICAgICB2b2lkIHN0YXJ0
VGltZXIoKTsKLSAgICAgICAgdm9pZCByZXNldENoaWxkcmVuc1NpYmxpbmdzKCk7Ci0gICAgICAg
IHZvaWQgZW5kQW5kUmVjb3JkQ2FsbCgpOworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgUHJvZmls
ZU5vZGUqIG5leHRTaWJsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9uZXh0U2libGluZzsgfQorICAg
ICAgICB2b2lkIHNldE5leHRTaWJsaW5nKFByb2ZpbGVOb2RlKiBuZXh0U2libGluZykgeyBtX25l
eHRTaWJsaW5nID0gbmV4dFNpYmxpbmc7IH0KKwogICAgICAgICBQcm9maWxlTm9kZSogdHJhdmVy
c2VOZXh0Tm9kZVBvc3RPcmRlcigpIGNvbnN0OworI2VuZGlmCiAKICAgICAgICAgRXhlY1N0YXRl
KiBtX2NhbGxlckNhbGxGcmFtZTsKICAgICAgICAgQ2FsbElkZW50aWZpZXIgbV9jYWxsSWRlbnRp
ZmllcjsKICAgICAgICAgUHJvZmlsZU5vZGUqIG1fcGFyZW50OwotICAgICAgICBQcm9maWxlTm9k
ZSogbV9uZXh0U2libGluZzsKLQogICAgICAgICBWZWN0b3I8Q2FsbD4gbV9jYWxsczsKICAgICAg
ICAgVmVjdG9yPFJlZlB0cjxQcm9maWxlTm9kZT4+IG1fY2hpbGRyZW47CisKKyNpZm5kZWYgTkRF
QlVHCisgICAgICAgIFByb2ZpbGVOb2RlKiBtX25leHRTaWJsaW5nOworI2VuZGlmCiAgICAgfTsK
IAorI2lmbmRlZiBOREVCVUcKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gaW5saW5l
IHZvaWQgUHJvZmlsZU5vZGU6OmZvckVhY2hOb2RlUG9zdG9yZGVyKEZ1bmN0b3ImIGZ1bmN0b3Ip
CiAgICAgewogICAgICAgICBQcm9maWxlTm9kZSogY3VycmVudE5vZGUgPSB0aGlzOwpAQCAtMTYy
LDcgKzE2NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBmdW5jdG9yKGVuZE5vZGUpOwog
ICAgIH0KIAotI2lmbmRlZiBOREVCVUcKICAgICBzdHJ1Y3QgQ2FsY3VsYXRlUHJvZmlsZVN1YnRy
ZWVEYXRhRnVuY3RvciB7CiAgICAgICAgIHZvaWQgb3BlcmF0b3IoKShQcm9maWxlTm9kZSogbm9k
ZSkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Njcmlw
dFByb2ZpbGVOb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxl
Tm9kZS5pZGwKaW5kZXggZTgxN2EwMDdkYjM5MjNmMGVlOTdmZDhjZmJmMTk3ZjIwY2QxMmE1Ni4u
ZWYxNWM1ZjRjZmUzMTM2NWMzYjI4NzU4MjM2ZDRiMWEyOTAzYzA1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCkBAIC0zNiw3ICszNiw1IEBA
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGluZU51bWJlcjsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBjb2x1bW5OdW1iZXI7CiAKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJPZkNhbGxzOwotCiAgICAgc2VxdWVu
Y2U8U2NyaXB0UHJvZmlsZU5vZGU+IGNoaWxkcmVuKCk7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237474</attachid>
            <date>2014-09-01 20:29:18 -0700</date>
            <delta_ts>2014-09-02 22:37:13 -0700</delta_ts>
            <desc>Fix test failures</desc>
            <filename>bug-136381-20140901202905.patch</filename>
            <type>text/plain</type>
            <size>21671</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
N2IzMTBiNWM1YjhlNjUxYjhjNTJjNDkxZDQ4M2ZiNDliMTY3MTRkLi5jZTIyNGY3YTgwYzhmY2U3
OTg2ZjkwNGI0MWZkZDBhNjlhNTY4Y2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1NSBAQAogMjAxNC0wOS0wMSAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CiAKKyAgICAgICAgTGVnYWN5UHJvZmlsZXI6IFByb2ZpbGVOb2RlcyBzaG91bGQgYmUg
dXNlZCBtb3JlIGxpa2Ugc3RydWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM2MzgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgYm90aCB0aGUgcHJvZmlsZSBnZW5lcmF0b3IgYW5k
IGluZGl2aWR1YWwgcHJvZmlsZSBub2RlcworICAgICAgICB3ZXJlIGNvbGxlY3RpdmVseSByZXNw
b25zaWJsZSBmb3IgY3JlYXRpbmcgbmV3IENhbGwgZW50cmllcyBhbmQKKyAgICAgICAgbWFpbnRh
aW5pbmcgZGF0YSBzdHJ1Y3R1cmUgaW52YXJpYW50cy4gVGhpcyBjb21wbGV4aXR5IGlzIHVubmVj
ZXNzYXJ5LgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2VudHJhbGl6ZXMgcHJvZmlsZSBkYXRhIGNy
ZWF0aW9uIGluc2lkZSB0aGUgcHJvZmlsZSBnZW5lcmF0b3IuCisgICAgICAgIFRoZSBwcm9maWxl
IG5vZGVzIG1hbmFnZSBuZXh0U2libGluZyBhbmQgcGFyZW50IHBvaW50ZXJzLCBidXQgZG8gbm90
CisgICAgICAgIGNvbGxlY3QgdGhlIGN1cnJlbnQgdGltZSBvciBjcmVhdGUgbmV3IENhbGwgZW50
cmllcyB0aGVtc2VsdmVzLgorCisgICAgICAgIFNpbmNlIFByb2ZpbGVOb2RlOjpuZXh0U2libGlu
ZyBhbmQgaXRzIGNhbGxlcnMgYXJlIG9ubHkgdXNlZCB3aXRoaW4KKyAgICAgICAgZGVidWcgcHJp
bnRpbmcgY29kZSwgaXQgc2hvdWxkIGJlIGNvbXBpbGVkIG91dCBmb3IgcmVsZWFzZSBidWlsZHMu
CisKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6UHJvZmlsZUdlbmVyYXRvcjo6UHJvZmlsZUdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkFk
ZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlND
OjpQcm9maWxlR2VuZXJhdG9yOjpiZWdpbkNhbGxFbnRyeSk6IGNyZWF0ZSBhIG5ldyBDYWxsIGVu
dHJ5LgorICAgICAgICAoSlNDOjpQcm9maWxlR2VuZXJhdG9yOjplbmRDYWxsRW50cnkpOiBmaW5p
c2ggdGhlIGxhc3QgQ2FsbCBlbnRyeS4KKyAgICAgICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6
d2lsbEV4ZWN1dGUpOiBpbmxpbmUgUHJvZmlsZU5vZGU6OndpbGxFeGVjdXRlKCkKKyAgICAgICAg
KEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZSk6IGlubGluZSBQcm9maWxlTm9kZTo6
ZGlkRXhlY3V0ZSgpCisgICAgICAgIChKU0M6OlByb2ZpbGVHZW5lcmF0b3I6OnN0b3BQcm9maWxp
bmcpOiBPbmx5IHdhbGsgdXAgdGhlIHNwaW5lLgorICAgICAgICAoSlNDOjpQcm9maWxlR2VuZXJh
dG9yOjpyZW1vdmVQcm9maWxlU3RhcnQpOgorICAgICAgICAoSlNDOjpQcm9maWxlR2VuZXJhdG9y
OjpyZW1vdmVQcm9maWxlRW5kKToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
Lmg6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwOgorICAgICAgICAoSlNDOjpQ
cm9maWxlTm9kZTo6UHJvZmlsZU5vZGUpOgorICAgICAgICAoSlNDOjpQcm9maWxlTm9kZTo6YWRk
Q2hpbGQpOgorICAgICAgICAoSlNDOjpQcm9maWxlTm9kZTo6cmVtb3ZlQ2hpbGQpOgorICAgICAg
ICAoSlNDOjpQcm9maWxlTm9kZTo6c3BsaWNlTm9kZSk6IFJlbmFtZWQgZnJvbSBpbnNlcnROb2Rl
LgorICAgICAgICAoSlNDOjpQcm9maWxlTm9kZTo6ZGVidWdQcmludFJlY3Vyc2l2ZWx5KToKKyAg
ICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6OndpbGxFeGVjdXRlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UHJvZmlsZU5vZGU6Omluc2VydE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpQ
cm9maWxlTm9kZTo6c3RvcFByb2ZpbGluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlByb2Zp
bGVOb2RlOjp0cmF2ZXJzZU5leHROb2RlUG9zdE9yZGVyKToKKyAgICAgICAgKEpTQzo6UHJvZmls
ZU5vZGU6OmVuZEFuZFJlY29yZENhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpQcm9maWxl
Tm9kZTo6ZGVidWdQcmludERhdGFTYW1wbGVTdHlsZSk6CisgICAgICAgICogcHJvZmlsZXIvUHJv
ZmlsZU5vZGUuaDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6OkNhbGw6OnNldFN0YXJ0VGlt
ZSk6CisgICAgICAgIChKU0M6OlByb2ZpbGVOb2RlOjpDYWxsOjpzZXRUb3RhbFRpbWUpOgorICAg
ICAgICAoSlNDOjpQcm9maWxlTm9kZTo6YXBwZW5kQ2FsbCk6CisgICAgICAgIChKU0M6OlByb2Zp
bGVOb2RlOjpmaXJzdENoaWxkKToKKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6Omxhc3RDaGls
ZCk6CisgICAgICAgIChKU0M6OlByb2ZpbGVOb2RlOjpuZXh0U2libGluZyk6CisgICAgICAgIChK
U0M6OlByb2ZpbGVOb2RlOjpzZXROZXh0U2libGluZyk6CisKKzIwMTQtMDktMDEgIEJyaWFuIEou
IEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgorCiAgICAgICAgIFByb3ZpZGUgY29sdW1u
IG51bWJlcnMgdG8gRFRyYWNlIHdpbGxFeGVjdXRlL2RpZEV4ZWN1dGUgcHJvYmVzCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY0MzQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhkZjg3MzE4ZGM1ZjI3ODUzZTRiNmVlYWJkYzY0NDU4ZmMxOTNkZTEuLjdhYmNjYjQ4
ZThiNDg4NWFkYWFiNzQxOWNmOGFkM2YwMzM2YWRmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAxNC0wOS0wMSAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+
CisKKyAgICAgICAgTGVnYWN5UHJvZmlsZXI6IFByb2ZpbGVOb2RlcyBzaG91bGQgYmUgdXNlZCBt
b3JlIGxpa2Ugc3RydWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM2MzgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsOiBSZW1vdmUgYW4gdW51
c2VkIHByb3BlcnR5LgorCiAyMDE0LTA4LTMxICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNo
aW5ndG9uLmVkdT4KIAogICAgICAgICBMZWdhY3lQcm9maWxlcjogcmVtb3ZlIHJlZHVuZGFudCBQ
cm9maWxlTm9kZSBtZW1iZXJzIGFuZCBvdGhlciBjbGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZS5jcHAKaW5kZXggYzQxOWFmZWVhODhmNTdlN2Q5ZDdmZDg4YjM2
MWRlOGM1Y2JkMzRkOS4uNzUyYjZjYzJkZTIzMzgwZjVhMjc0MmNlNDgzMGMxNTgwNWY4MzdiYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcApAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIlByb2ZpbGUuaCIKIAogI2luY2x1ZGUgIlByb2ZpbGVOb2RlLmgi
CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4K
IAogbmFtZXNwYWNlIEpTQyB7CkBAIC00Myw2ICs0NCw3IEBAIFByb2ZpbGU6OlByb2ZpbGUoY29u
c3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkKQogICAgIC8vIEZJWE1FOiBXaGVuIG11bHRp
LXRocmVhZGluZyBpcyBzdXBwb3J0ZWQgdGhpcyB3aWxsIGJlIGEgdmVjdG9yIGFuZCBjYWxscwog
ICAgIC8vIGludG8gdGhlIHByb2ZpbGVyIHdpbGwgbmVlZCB0byBrbm93IHdoaWNoIHRocmVhZCBp
dCBpcyBleGVjdXRpbmcgb24uCiAgICAgbV9yb290Tm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUo
bnVsbHB0ciwgQ2FsbElkZW50aWZpZXIoQVNDSUlMaXRlcmFsKCJUaHJlYWRfMSIpLCBTdHJpbmco
KSwgMCwgMCksIG51bGxwdHIpOworICAgIG1fcm9vdE5vZGUtPmFwcGVuZENhbGwoUHJvZmlsZU5v
ZGU6OkNhbGwoY3VycmVudFRpbWUoKSkpOwogfQogCiBQcm9maWxlOjp+UHJvZmlsZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAK
aW5kZXggZjJmYjZmMjg5N2E3ODcyMTIzYTI0ODRjNjBlNjM4Mjg0YjBhYjgzYS4uMzBkNjZjYTc4
NDc5NzY1MTdiNDM0MWY1NTY5NTk2YjA1YjY5ZDM5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcApAQCAtNDUsNyArNDUsNyBA
QCBQYXNzUmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+IFByb2ZpbGVHZW5lcmF0b3I6OmNyZWF0ZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cgogfQogCiBQcm9maWxlR2VuZXJhdG9yOjpQcm9maWxl
R2VuZXJhdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQg
dWlkKQotICAgIDogbV9vcmlnaW4oZXhlYyA/IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSA6
IDApCisgICAgOiBtX29yaWdpbihleGVjID8gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpIDog
bnVsbHB0cikKICAgICAsIG1fcHJvZmlsZUdyb3VwKGV4ZWMgPyBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCktPnByb2ZpbGVHcm91cCgpIDogMCkKICAgICAsIG1fZm91bmRDb25zb2xlU3RhcnRQ
YXJlbnQoZmFsc2UpCiB7CkBAIC03OSw3ICs3OSw4IEBAIHB1YmxpYzoKICAgICAgICAgdW5zaWdu
ZWQgY29sdW1uID0gMDsKICAgICAgICAgdmlzaXRvci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGlu
ZSwgY29sdW1uKTsKICAgICAgICAgbV9jdXJyZW50Tm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUo
bV9leGVjLCBMZWdhY3lQcm9maWxlcjo6Y3JlYXRlQ2FsbElkZW50aWZpZXIobV9leGVjLCB2aXNp
dG9yLT5jYWxsZWUoKSwgdmlzaXRvci0+c291cmNlVVJMKCksIGxpbmUsIGNvbHVtbiksIG1fcm9v
dE5vZGUuZ2V0KCkpOwotICAgICAgICBtX3Jvb3ROb2RlLT5pbnNlcnROb2RlKG1fY3VycmVudE5v
ZGUuZ2V0KCkpOworICAgICAgICBtX2N1cnJlbnROb2RlLT5hcHBlbmRDYWxsKFByb2ZpbGVOb2Rl
OjpDYWxsKGN1cnJlbnRUaW1lKCkpKTsKKyAgICAgICAgbV9yb290Tm9kZS0+c3BsaWNlTm9kZSht
X2N1cnJlbnROb2RlLmdldCgpKTsKIAogICAgICAgICBtX2ZvdW5kUGFyZW50ID0gdHJ1ZTsKICAg
ICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6RG9uZTsKQEAgLTEwNiw2ICsxMDcsMjUgQEAgY29u
c3QgU3RyaW5nJiBQcm9maWxlR2VuZXJhdG9yOjp0aXRsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cHJvZmlsZS0+dGl0bGUoKTsKIH0KIAordm9pZCBQcm9maWxlR2VuZXJhdG9yOjpiZWdpbkNhbGxF
bnRyeShQcm9maWxlTm9kZSogbm9kZSwgZG91YmxlIHN0YXJ0VGltZSkKK3sKKyAgICBBU1NFUlRf
QVJHKG5vZGUsIG5vZGUpOworCisgICAgaWYgKGlzbmFuKHN0YXJ0VGltZSkpCisgICAgICAgIHN0
YXJ0VGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgbm9kZS0+YXBwZW5kQ2FsbChQcm9maWxlTm9k
ZTo6Q2FsbChzdGFydFRpbWUpKTsKK30KKwordm9pZCBQcm9maWxlR2VuZXJhdG9yOjplbmRDYWxs
RW50cnkoUHJvZmlsZU5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUX0FSRyhub2RlLCBub2RlKTsK
KworICAgIFByb2ZpbGVOb2RlOjpDYWxsJiBsYXN0ID0gbm9kZS0+bGFzdENhbGwoKTsKKyAgICBB
U1NFUlQoaXNuYW4obGFzdC50b3RhbFRpbWUoKSkpOworCisgICAgbGFzdC5zZXRUb3RhbFRpbWUo
Y3VycmVudFRpbWUoKSAtIGxhc3Quc3RhcnRUaW1lKCkpOworfQorCiB2b2lkIFByb2ZpbGVHZW5l
cmF0b3I6OndpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxs
SWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIpCiB7CiAgICAgaWYgKEpBVkFTQ1JJUFRDT1JFX1BS
T0ZJTEVfV0lMTF9FWEVDVVRFX0VOQUJMRUQoKSkgewpAQCAtMTE3LDggKzEzNywyMSBAQCB2b2lk
IFByb2ZpbGVHZW5lcmF0b3I6OndpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1l
LCBjb25zdCBDYWxsSWRlbnRpZgogICAgIGlmICghbV9vcmlnaW4pCiAgICAgICAgIHJldHVybjsK
IAotICAgIEFTU0VSVChtX2N1cnJlbnROb2RlKTsKLSAgICBtX2N1cnJlbnROb2RlID0gbV9jdXJy
ZW50Tm9kZS0+d2lsbEV4ZWN1dGUoY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllcik7Cisg
ICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBjYWxsZWVOb2RlID0gbnVsbHB0cjsKKworICAgIC8vIEZp
bmQgb3IgY3JlYXRlIGEgbm9kZSBmb3IgdGhlIGNhbGxlZSBjYWxsIGZyYW1lLgorICAgIGZvciAo
Y29uc3QgUmVmUHRyPFByb2ZpbGVOb2RlPiYgY2hpbGQgOiBtX2N1cnJlbnROb2RlLT5jaGlsZHJl
bigpKSB7CisgICAgICAgIGlmIChjaGlsZC0+Y2FsbElkZW50aWZpZXIoKSA9PSBjYWxsSWRlbnRp
ZmllcikKKyAgICAgICAgICAgIGNhbGxlZU5vZGUgPSBjaGlsZDsKKyAgICB9CisKKyAgICBpZiAo
IWNhbGxlZU5vZGUpIHsKKyAgICAgICAgY2FsbGVlTm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUo
Y2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciwgbV9jdXJyZW50Tm9kZS5nZXQoKSk7Cisg
ICAgICAgIG1fY3VycmVudE5vZGUtPmFkZENoaWxkKGNhbGxlZU5vZGUpOworICAgIH0KKworICAg
IG1fY3VycmVudE5vZGUgPSBjYWxsZWVOb2RlOworICAgIGJlZ2luQ2FsbEVudHJ5KGNhbGxlZU5v
ZGUuZ2V0KCkpOwogfQogCiB2b2lkIFByb2ZpbGVHZW5lcmF0b3I6OmRpZEV4ZWN1dGUoRXhlY1N0
YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmll
cikKQEAgLTEzMiwxNiArMTY1LDE5IEBAIHZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0
ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpCiAgICAgaWYg
KCFtX29yaWdpbikKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gTWFrZSBhIG5ldyBub2RlIGlm
IHRoZSBjYWxsZXIgbm9kZSBoYXMgbmV2ZXIgc2VlbiB0aGlzIGNhbGxlZSBjYWxsIGZyYW1lIGJl
Zm9yZS4KKyAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgfGNvbnNvbGUucHJvZmlsZSgpfCBpcyBj
YWxsZWQgc2V2ZXJhbCBmcmFtZXMgZGVlcCBpbiB0aGUgY2FsbCBzdGFjay4KICAgICBBU1NFUlQo
bV9jdXJyZW50Tm9kZSk7CiAgICAgaWYgKG1fY3VycmVudE5vZGUtPmNhbGxJZGVudGlmaWVyKCkg
IT0gY2FsbElkZW50aWZpZXIpIHsKLSAgICAgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiByZXR1cm5p
bmdOb2RlID0gUHJvZmlsZU5vZGU6OmNyZWF0ZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlm
aWVyLCBtX2N1cnJlbnROb2RlLmdldCgpKTsKLSAgICAgICAgcmV0dXJuaW5nTm9kZS0+bGFzdENh
bGwoKS5zZXRTdGFydFRpbWUobV9jdXJyZW50Tm9kZS0+bGFzdENhbGwoKS5zdGFydFRpbWUoKSk7
Ci0gICAgICAgIHJldHVybmluZ05vZGUtPmRpZEV4ZWN1dGUoKTsKLSAgICAgICAgbV9jdXJyZW50
Tm9kZS0+aW5zZXJ0Tm9kZShyZXR1cm5pbmdOb2RlLnJlbGVhc2UoKSk7CisgICAgICAgIFJlZlB0
cjxQcm9maWxlTm9kZT4gY2FsbGVlTm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUoY2FsbGVyQ2Fs
bEZyYW1lLCBjYWxsSWRlbnRpZmllciwgbV9jdXJyZW50Tm9kZS5nZXQoKSk7CisgICAgICAgIGJl
Z2luQ2FsbEVudHJ5KGNhbGxlZU5vZGUuZ2V0KCksIG1fY3VycmVudE5vZGUtPmxhc3RDYWxsKCku
c3RhcnRUaW1lKCkpOworICAgICAgICBlbmRDYWxsRW50cnkoY2FsbGVlTm9kZS5nZXQoKSk7Cisg
ICAgICAgIG1fY3VycmVudE5vZGUtPnNwbGljZU5vZGUoY2FsbGVlTm9kZS5yZWxlYXNlKCkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jdXJyZW50Tm9kZSA9IG1fY3VycmVudE5v
ZGUtPmRpZEV4ZWN1dGUoKTsKKyAgICBlbmRDYWxsRW50cnkobV9jdXJyZW50Tm9kZS5nZXQoKSk7
CisgICAgbV9jdXJyZW50Tm9kZSA9IG1fY3VycmVudE5vZGUtPnBhcmVudCgpOwogfQogCiB2b2lk
IFByb2ZpbGVHZW5lcmF0b3I6OmV4Y2VwdGlvblVud2luZChFeGVjU3RhdGUqIGhhbmRsZXJDYWxs
RnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJikKQEAgLTE1NSwxNiArMTkxLDEwIEBAIHZvaWQg
UHJvZmlsZUdlbmVyYXRvcjo6ZXhjZXB0aW9uVW53aW5kKEV4ZWNTdGF0ZSogaGFuZGxlckNhbGxG
cmFtZSwgY29uc3QgQ2FsbElkCiAgICAgfQogfQogCi1zdHJ1Y3QgU3RvcFByb2ZpbGluZ0Z1bmN0
b3IgewotICAgIHZvaWQgb3BlcmF0b3IoKShQcm9maWxlTm9kZSogbm9kZSkgeyBub2RlLT5zdG9w
UHJvZmlsaW5nKCk7IH0KLX07Ci0KIHZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6c3RvcFByb2ZpbGlu
ZygpCiB7Ci0gICAgLy8gRklYTUU6IHdlIHNob3VsZG4ndCBuZWVkIGEgZnVsbCB0cmF2ZXJzYWwg
aGVyZSwgc2luY2Ugb25seSB0aGUgc3BpbmUgZnJvbQotICAgIC8vIG1fY3VycmVudE5vZGUgdG8g
bV9yb290Tm9kZSBzaG91bGQgaGF2ZSBhbnkgbm9kZXMgY3VycmVudGx5IGFjY3J1aW5nIHRpbWUu
Ci0gICAgU3RvcFByb2ZpbGluZ0Z1bmN0b3IgZnVuY3RvcjsKLSAgICBtX3Byb2ZpbGUtPnJvb3RO
b2RlKCktPmZvckVhY2hOb2RlUG9zdG9yZGVyKGZ1bmN0b3IpOworICAgIGZvciAoUHJvZmlsZU5v
ZGUqIG5vZGUgPSBtX2N1cnJlbnROb2RlLmdldCgpOyBub2RlICE9IG1fcHJvZmlsZS0+cm9vdE5v
ZGUoKTsgbm9kZSA9IG5vZGUtPnBhcmVudCgpKQorICAgICAgICBlbmRDYWxsRW50cnkobm9kZSk7
CiAKICAgICBpZiAobV9mb3VuZENvbnNvbGVTdGFydFBhcmVudCkgewogICAgICAgICByZW1vdmVQ
cm9maWxlU3RhcnQoKTsKQEAgLTE4MSw3ICsyMTEsNyBAQCB2b2lkIFByb2ZpbGVHZW5lcmF0b3I6
OnN0b3BQcm9maWxpbmcoKQogLy8gVGhlIGNvbnNvbGUucHJvZmlsZSB0aGF0IHN0YXJ0ZWQgdGhp
cyBQcm9maWxlR2VuZXJhdG9yIHdpbGwgYmUgdGhlIGZpcnN0IGNoaWxkLgogdm9pZCBQcm9maWxl
R2VuZXJhdG9yOjpyZW1vdmVQcm9maWxlU3RhcnQoKQogewotICAgIFByb2ZpbGVOb2RlKiBjdXJy
ZW50Tm9kZSA9IDA7CisgICAgUHJvZmlsZU5vZGUqIGN1cnJlbnROb2RlID0gbnVsbHB0cjsKICAg
ICBmb3IgKFByb2ZpbGVOb2RlKiBuZXh0ID0gbV9yb290Tm9kZS5nZXQoKTsgbmV4dDsgbmV4dCA9
IG5leHQtPmZpcnN0Q2hpbGQoKSkKICAgICAgICAgY3VycmVudE5vZGUgPSBuZXh0OwogCkBAIC0x
OTQsNyArMjI0LDcgQEAgdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpyZW1vdmVQcm9maWxlU3RhcnQo
KQogLy8gVGhlIGNvbnNvbGUucHJvZmlsZUVuZCB0aGF0IHN0b3BwZWQgdGhpcyBQcm9maWxlR2Vu
ZXJhdG9yIHdpbGwgYmUgdGhlIGxhc3QgY2hpbGQuCiB2b2lkIFByb2ZpbGVHZW5lcmF0b3I6OnJl
bW92ZVByb2ZpbGVFbmQoKQogewotICAgIFByb2ZpbGVOb2RlKiBjdXJyZW50Tm9kZSA9IDA7Cisg
ICAgUHJvZmlsZU5vZGUqIGN1cnJlbnROb2RlID0gbnVsbHB0cjsKICAgICBmb3IgKFByb2ZpbGVO
b2RlKiBuZXh0ID0gbV9yb290Tm9kZS5nZXQoKTsgbmV4dDsgbmV4dCA9IG5leHQtPmxhc3RDaGls
ZCgpKQogICAgICAgICBjdXJyZW50Tm9kZSA9IG5leHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oCmluZGV4IDQ1NDNkZWYyY2MxOTRh
NWUxN2MwMDlmZmIxMTlhMGY2ODFhMjE1NjkuLjcwZGNkZWFmY2E2ZjRiNmQ0MWMwZTI4NmYxNDlk
NzY1ZmNlMTg0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVHZW5lcmF0b3IuaApAQCAtMjYsMTAgKzI2LDEwIEBACiAjaWZuZGVmIFByb2ZpbGVHZW5l
cmF0b3JfaAogI2RlZmluZSBQcm9maWxlR2VuZXJhdG9yX2gKIAotI2luY2x1ZGUgIlByb2ZpbGUu
aCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDksMTMgKzQ5LDEwIEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBKU0dsb2JhbE9iamVjdCogb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9v
cmlnaW47IH0KICAgICAgICAgdW5zaWduZWQgcHJvZmlsZUdyb3VwKCkgY29uc3QgeyByZXR1cm4g
bV9wcm9maWxlR3JvdXA7IH0KIAotICAgICAgICAvLyBDb2xsZWN0aW5nCiAgICAgICAgIHZvaWQg
d2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlm
aWVyJik7CiAgICAgICAgIHZvaWQgZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFt
ZSwgY29uc3QgQ2FsbElkZW50aWZpZXImKTsKLQogICAgICAgICB2b2lkIGV4Y2VwdGlvblVud2lu
ZChFeGVjU3RhdGUqIGhhbmRsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJik7CiAK
LSAgICAgICAgLy8gU3RvcHBpbmcgUHJvZmlsaW5nCiAgICAgICAgIHZvaWQgc3RvcFByb2ZpbGlu
ZygpOwogCiAgICAgICAgIHR5cGVkZWYgdm9pZCAoUHJvZmlsZUdlbmVyYXRvcjo6KlByb2ZpbGVG
dW5jdGlvbikoRXhlY1N0YXRlKiBjYWxsZXJPckhhbmRsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJ
ZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllcik7CkBAIC02Nyw2ICs2NCw5IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB2b2lkIHJlbW92ZVByb2ZpbGVTdGFydCgpOwogICAgICAgICB2b2lkIHJl
bW92ZVByb2ZpbGVFbmQoKTsKIAorICAgICAgICB2b2lkIGJlZ2luQ2FsbEVudHJ5KFByb2ZpbGVO
b2RlKiwgZG91YmxlIHN0YXJ0VGltZSA9IE5BTik7CisgICAgICAgIHZvaWQgZW5kQ2FsbEVudHJ5
KFByb2ZpbGVOb2RlKik7CisKICAgICAgICAgUmVmUHRyPFByb2ZpbGU+IG1fcHJvZmlsZTsKICAg
ICAgICAgSlNHbG9iYWxPYmplY3QqIG1fb3JpZ2luOwogICAgICAgICB1bnNpZ25lZCBtX3Byb2Zp
bGVHcm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlTm9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZU5vZGUu
Y3BwCmluZGV4IGI2MTE1MDBhZDgzNzQ5YTU2Zjc4YWEwYjRiMjkzNDlhN2UzYWQ2YjUuLjI2NWNk
ZGQwZWY3ODgzM2Y2MWI1NzExMTljZmQ3NzIwZmQ0NmQxNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcApAQCAtNDIsNDggKzQyLDMxIEBAIFBy
b2ZpbGVOb2RlOjpQcm9maWxlTm9kZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3Qg
Q2FsbElkZW50aWZpZXImIGNhbGxJCiAgICAgOiBtX2NhbGxlckNhbGxGcmFtZShjYWxsZXJDYWxs
RnJhbWUpCiAgICAgLCBtX2NhbGxJZGVudGlmaWVyKGNhbGxJZGVudGlmaWVyKQogICAgICwgbV9w
YXJlbnQocGFyZW50Tm9kZSkKKyNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX25leHRTaWJsaW5nKG51
bGxwdHIpCisjZW5kaWYKIHsKLSAgICBzdGFydFRpbWVyKCk7CiB9CiAKIFByb2ZpbGVOb2RlOjpQ
cm9maWxlTm9kZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgUHJvZmlsZU5vZGUqIG5vZGVU
b0NvcHkpCiAgICAgOiBtX2NhbGxlckNhbGxGcmFtZShjYWxsZXJDYWxsRnJhbWUpCiAgICAgLCBt
X2NhbGxJZGVudGlmaWVyKG5vZGVUb0NvcHktPmNhbGxJZGVudGlmaWVyKCkpCiAgICAgLCBtX3Bh
cmVudChub2RlVG9Db3B5LT5wYXJlbnQoKSkKLSAgICAsIG1fbmV4dFNpYmxpbmcobnVsbHB0cikK
ICAgICAsIG1fY2FsbHMobm9kZVRvQ29weS0+Y2FsbHMoKSkKKyNpZm5kZWYgTkRFQlVHCisgICAg
LCBtX25leHRTaWJsaW5nKG51bGxwdHIpCisjZW5kaWYKIHsKIH0KIAotUHJvZmlsZU5vZGUqIFBy
b2ZpbGVOb2RlOjp3aWxsRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3Qg
Q2FsbElkZW50aWZpZXImIGNhbGxJZGVudGlmaWVyKQotewotICAgIGZvciAoU3RhY2tJdGVyYXRv
ciBjdXJyZW50Q2hpbGQgPSBtX2NoaWxkcmVuLmJlZ2luKCk7IGN1cnJlbnRDaGlsZCAhPSBtX2No
aWxkcmVuLmVuZCgpOyArK2N1cnJlbnRDaGlsZCkgewotICAgICAgICBpZiAoKCpjdXJyZW50Q2hp
bGQpLT5jYWxsSWRlbnRpZmllcigpID09IGNhbGxJZGVudGlmaWVyKSB7Ci0gICAgICAgICAgICAo
KmN1cnJlbnRDaGlsZCktPnN0YXJ0VGltZXIoKTsKLSAgICAgICAgICAgIHJldHVybiAoKmN1cnJl
bnRDaGlsZCkuZ2V0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBSZWZQdHI8UHJvZmlsZU5v
ZGU+IG5ld0NoaWxkID0gUHJvZmlsZU5vZGU6OmNyZWF0ZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJ
ZGVudGlmaWVyLCB0aGlzKTsKLSAgICBpZiAobV9jaGlsZHJlbi5zaXplKCkpCi0gICAgICAgIG1f
Y2hpbGRyZW4ubGFzdCgpLT5zZXROZXh0U2libGluZyhuZXdDaGlsZC5nZXQoKSk7Ci0gICAgbV9j
aGlsZHJlbi5hcHBlbmQobmV3Q2hpbGQucmVsZWFzZSgpKTsKLSAgICByZXR1cm4gbV9jaGlsZHJl
bi5sYXN0KCkuZ2V0KCk7Ci19Ci0KLVByb2ZpbGVOb2RlKiBQcm9maWxlTm9kZTo6ZGlkRXhlY3V0
ZSgpCi17Ci0gICAgZW5kQW5kUmVjb3JkQ2FsbCgpOwotICAgIHJldHVybiBtX3BhcmVudDsKLX0K
LQogdm9pZCBQcm9maWxlTm9kZTo6YWRkQ2hpbGQoUGFzc1JlZlB0cjxQcm9maWxlTm9kZT4gcHJw
Q2hpbGQpCiB7CiAgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBjaGlsZCA9IHBycENoaWxkOwogICAg
IGNoaWxkLT5zZXRQYXJlbnQodGhpcyk7CisjaWZuZGVmIE5ERUJVRwogICAgIGlmIChtX2NoaWxk
cmVuLnNpemUoKSkKICAgICAgICAgbV9jaGlsZHJlbi5sYXN0KCktPnNldE5leHRTaWJsaW5nKGNo
aWxkLmdldCgpKTsKKyNlbmRpZgogICAgIG1fY2hpbGRyZW4uYXBwZW5kKGNoaWxkLnJlbGVhc2Uo
KSk7CiB9CiAKQEAgLTk5LDEwICs4MiwxNCBAQCB2b2lkIFByb2ZpbGVOb2RlOjpyZW1vdmVDaGls
ZChQcm9maWxlTm9kZSogbm9kZSkKICAgICAgICAgfQogICAgIH0KIAotICAgIHJlc2V0Q2hpbGRy
ZW5zU2libGluZ3MoKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgc2l6ZV90IHNpemUgPSBtX2NoaWxk
cmVuLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAg
ICAgbV9jaGlsZHJlbltpXS0+c2V0TmV4dFNpYmxpbmcoaSArIDEgPT0gc2l6ZSA/IG51bGxwdHIg
OiBtX2NoaWxkcmVuW2kgKyAxXS5nZXQoKSk7CisjZW5kaWYKIH0KIAotdm9pZCBQcm9maWxlTm9k
ZTo6aW5zZXJ0Tm9kZShQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBwcnBOb2RlKQordm9pZCBQcm9m
aWxlTm9kZTo6c3BsaWNlTm9kZShQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBwcnBOb2RlKQogewog
ICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gbm9kZSA9IHBycE5vZGU7CiAKQEAgLTExMywxNCArMTAw
LDcgQEAgdm9pZCBQcm9maWxlTm9kZTo6aW5zZXJ0Tm9kZShQYXNzUmVmUHRyPFByb2ZpbGVOb2Rl
PiBwcnBOb2RlKQogICAgIG1fY2hpbGRyZW4uYXBwZW5kKG5vZGUucmVsZWFzZSgpKTsKIH0KIAot
dm9pZCBQcm9maWxlTm9kZTo6c3RvcFByb2ZpbGluZygpCi17Ci0gICAgQVNTRVJUKCFtX2NhbGxz
LmlzRW1wdHkoKSk7Ci0KLSAgICBpZiAoaXNuYW4obV9jYWxscy5sYXN0KCkudG90YWxUaW1lKCkp
KQotICAgICAgICBlbmRBbmRSZWNvcmRDYWxsKCk7Ci19Ci0KKyNpZm5kZWYgTkRFQlVHCiBQcm9m
aWxlTm9kZSogUHJvZmlsZU5vZGU6OnRyYXZlcnNlTmV4dE5vZGVQb3N0T3JkZXIoKSBjb25zdAog
ewogICAgIFByb2ZpbGVOb2RlKiBuZXh0ID0gbV9uZXh0U2libGluZzsKQEAgLTEzMSwyNyArMTEx
LDYgQEAgUHJvZmlsZU5vZGUqIFByb2ZpbGVOb2RlOjp0cmF2ZXJzZU5leHROb2RlUG9zdE9yZGVy
KCkgY29uc3QKICAgICByZXR1cm4gbmV4dDsKIH0KIAotdm9pZCBQcm9maWxlTm9kZTo6ZW5kQW5k
UmVjb3JkQ2FsbCgpCi17Ci0gICAgQ2FsbCYgbGFzdCA9IGxhc3RDYWxsKCk7Ci0gICAgQVNTRVJU
KGlzbmFuKGxhc3QudG90YWxUaW1lKCkpKTsKLQotICAgIGxhc3Quc2V0VG90YWxUaW1lKGN1cnJl
bnRUaW1lKCkgLSBsYXN0LnN0YXJ0VGltZSgpKTsKLX0KLQotdm9pZCBQcm9maWxlTm9kZTo6c3Rh
cnRUaW1lcigpCi17Ci0gICAgbV9jYWxscy5hcHBlbmQoQ2FsbChjdXJyZW50VGltZSgpKSk7Ci19
Ci0KLXZvaWQgUHJvZmlsZU5vZGU6OnJlc2V0Q2hpbGRyZW5zU2libGluZ3MoKQotewotICAgIHVu
c2lnbmVkIHNpemUgPSBtX2NoaWxkcmVuLnNpemUoKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX2NoaWxkcmVuW2ldLT5zZXROZXh0U2libGluZyhp
ICsgMSA9PSBzaXplID8gMCA6IG1fY2hpbGRyZW5baSArIDFdLmdldCgpKTsKLX0KLQotI2lmbmRl
ZiBOREVCVUcKIHZvaWQgUHJvZmlsZU5vZGU6OmRlYnVnUHJpbnQoKQogewogICAgIENhbGN1bGF0
ZVByb2ZpbGVTdWJ0cmVlRGF0YUZ1bmN0b3IgZnVuY3RvcjsKQEAgLTE4Nyw3ICsxNDYsNyBAQCB2
b2lkIFByb2ZpbGVOb2RlOjpkZWJ1Z1ByaW50UmVjdXJzaXZlbHkoaW50IGluZGVudExldmVsLCBj
b25zdCBQcm9maWxlU3VidHJlZURhdAogCiAgICAgZGF0YUxvZ0YoIkZ1bmN0aW9uIE5hbWUgJXMg
JXp1IFNlbGZUaW1lICUuM2Ztcy8lLjNmJSUgVG90YWxUaW1lICUuM2Ztcy8lLjNmJSUgTmV4dCBT
aWJsaW5nICVzXG4iLAogICAgICAgICBmdW5jdGlvbk5hbWUoKS51dGY4KCkuZGF0YSgpLAotICAg
ICAgICBudW1iZXJPZkNhbGxzKCksIG5vZGVTZWxmVGltZSwgbm9kZVNlbGZUaW1lIC8gcm9vdFRv
dGFsVGltZSAqIDEwMC4wLCBub2RlVG90YWxUaW1lLCBub2RlVG90YWxUaW1lIC8gcm9vdFRvdGFs
VGltZSAqIDEwMC4wLAorICAgICAgICBtX2NhbGxzLnNpemUoKSwgbm9kZVNlbGZUaW1lLCBub2Rl
U2VsZlRpbWUgLyByb290VG90YWxUaW1lICogMTAwLjAsIG5vZGVUb3RhbFRpbWUsIG5vZGVUb3Rh
bFRpbWUgLyByb290VG90YWxUaW1lICogMTAwLjAsCiAgICAgICAgIG1fbmV4dFNpYmxpbmcgPyBt
X25leHRTaWJsaW5nLT5mdW5jdGlvbk5hbWUoKS51dGY4KCkuZGF0YSgpIDogIiIpOwogCiAgICAg
KytpbmRlbnRMZXZlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVO
b2RlLmgKaW5kZXggMjM4NWNlMTdkYjUwNjM2ZTQzOWQ5ODI5Yzk4NjVhMWFmMzNlNDgwMS4uNjY3
NmU5MTBhYjQ5NDdkMTc5NmQ0Nzc4ZjkzNjdlNWRhYjY4NjNjZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKQEAgLTYzLDEwICs2MywxOCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZG91YmxlIHN0YXJ0VGlt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1lOyB9Ci0gICAgICAgICAgICB2b2lkIHNldFN0
YXJ0VGltZShkb3VibGUgdGltZSkgeyBtX3N0YXJ0VGltZSA9IHRpbWU7IH0KKyAgICAgICAgICAg
IHZvaWQgc2V0U3RhcnRUaW1lKGRvdWJsZSB0aW1lKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIEFTU0VSVF9BUkcodGltZSwgdGltZSA+PSAwLjApOworICAgICAgICAgICAgICAgIG1f
c3RhcnRUaW1lID0gdGltZTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZG91YmxlIHRv
dGFsVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdG90YWxUaW1lOyB9Ci0gICAgICAgICAgICB2b2lk
IHNldFRvdGFsVGltZShkb3VibGUgdGltZSkgeyBtX3RvdGFsVGltZSA9IHRpbWU7IH0KKyAgICAg
ICAgICAgIHZvaWQgc2V0VG90YWxUaW1lKGRvdWJsZSB0aW1lKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIEFTU0VSVF9BUkcodGltZSwgdGltZSA+PSAwLjApOworICAgICAgICAgICAg
ICAgIG1fdG90YWxUaW1lID0gdGltZTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICBwcml2YXRl
OgogICAgICAgICAgICAgZG91YmxlIG1fc3RhcnRUaW1lOwpAQCAtNzUsMTIgKzgzLDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICAgICAgYm9vbCBvcGVyYXRvcj09KFByb2ZpbGVOb2RlKiBub2Rl
KSB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyID09IG5vZGUtPmNhbGxJZGVudGlmaWVyKCk7IH0K
IAotICAgICAgICBQcm9maWxlTm9kZSogd2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxs
RnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJik7Ci0gICAgICAgIFByb2ZpbGVOb2RlKiBkaWRF
eGVjdXRlKCk7Ci0KLSAgICAgICAgdm9pZCBzdG9wUHJvZmlsaW5nKCk7Ci0KLSAgICAgICAgLy8g
Q2FsbElkZW50aWZpZXIgbWVtYmVycwogICAgICAgICBFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGVyQ2FsbEZyYW1lOyB9CiAgICAgICAgIGNvbnN0IENh
bGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbElkZW50
aWZpZXI7IH0KICAgICAgICAgdW5zaWduZWQgaWQoKSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVu
dGlmaWVyLmhhc2goKTsgfQpAQCAtODksMjYgKzkxLDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB1bnNpZ25lZCBsaW5lTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmll
ci5saW5lTnVtYmVyKCk7IH0KICAgICAgICAgdW5zaWduZWQgY29sdW1uTnVtYmVyKCkgY29uc3Qg
eyByZXR1cm4gbV9jYWxsSWRlbnRpZmllci5jb2x1bW5OdW1iZXIoKTsgfQogCi0gICAgICAgIC8v
IFJlbGF0aW9uc2hpcHMKICAgICAgICAgUHJvZmlsZU5vZGUqIHBhcmVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyZW50OyB9CiAgICAgICAgIHZvaWQgc2V0UGFyZW50KFByb2ZpbGVOb2RlKiBwYXJl
bnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KIAotICAgICAgICBQcm9maWxlTm9kZSogbmV4dFNp
YmxpbmcoKSBjb25zdCB7IHJldHVybiBtX25leHRTaWJsaW5nOyB9Ci0gICAgICAgIHZvaWQgc2V0
TmV4dFNpYmxpbmcoUHJvZmlsZU5vZGUqIG5leHRTaWJsaW5nKSB7IG1fbmV4dFNpYmxpbmcgPSBu
ZXh0U2libGluZzsgfQotCiAgICAgICAgIGNvbnN0IFZlY3RvcjxDYWxsPiYgY2FsbHMoKSBjb25z
dCB7IHJldHVybiBtX2NhbGxzOyB9CiAgICAgICAgIENhbGwmIGxhc3RDYWxsKCkgeyBBU1NFUlQo
IW1fY2FsbHMuaXNFbXB0eSgpKTsgcmV0dXJuIG1fY2FsbHMubGFzdCgpOyB9Ci0gICAgICAgIHNp
emVfdCBudW1iZXJPZkNhbGxzKCkgY29uc3QgeyByZXR1cm4gbV9jYWxscy5zaXplKCk7IH0KKyAg
ICAgICAgdm9pZCBhcHBlbmRDYWxsKENhbGwgY2FsbCkgeyBtX2NhbGxzLmFwcGVuZChjYWxsKTsg
fQogCi0gICAgICAgIC8vIENoaWxkcmVuIG1lbWJlcnMKICAgICAgICAgY29uc3QgVmVjdG9yPFJl
ZlB0cjxQcm9maWxlTm9kZT4+JiBjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW47
IH0KLSAgICAgICAgUHJvZmlsZU5vZGUqIGZpcnN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2No
aWxkcmVuLnNpemUoKSA/IG1fY2hpbGRyZW4uZmlyc3QoKS5nZXQoKSA6IDA7IH0KLSAgICAgICAg
UHJvZmlsZU5vZGUqIGxhc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4uc2l6ZSgp
ID8gbV9jaGlsZHJlbi5sYXN0KCkuZ2V0KCkgOiAwOyB9Ci0gICAgICAgIHZvaWQgcmVtb3ZlQ2hp
bGQoUHJvZmlsZU5vZGUqKTsKLSAgICAgICAgdm9pZCBhZGRDaGlsZChQYXNzUmVmUHRyPFByb2Zp
bGVOb2RlPiBwcnBDaGlsZCk7Ci0gICAgICAgIHZvaWQgaW5zZXJ0Tm9kZShQYXNzUmVmUHRyPFBy
b2ZpbGVOb2RlPiBwcnBOb2RlKTsKKyAgICAgICAgUHJvZmlsZU5vZGUqIGZpcnN0Q2hpbGQoKSBj
b25zdCB7IHJldHVybiBtX2NoaWxkcmVuLnNpemUoKSA/IG1fY2hpbGRyZW4uZmlyc3QoKS5nZXQo
KSA6IG51bGxwdHI7IH0KKyAgICAgICAgUHJvZmlsZU5vZGUqIGxhc3RDaGlsZCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2hpbGRyZW4uc2l6ZSgpID8gbV9jaGlsZHJlbi5sYXN0KCkuZ2V0KCkgOiBudWxs
cHRyOyB9CiAKLSAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0b3I+IHZvaWQgZm9yRWFj
aE5vZGVQb3N0b3JkZXIoRnVuY3RvciYpOworICAgICAgICB2b2lkIHJlbW92ZUNoaWxkKFByb2Zp
bGVOb2RlKik7CisgICAgICAgIHZvaWQgYWRkQ2hpbGQoUGFzc1JlZlB0cjxQcm9maWxlTm9kZT4p
OworICAgICAgICAvLyBSZXBhcmVudCBvdXIgY2hpbGQgbm9kZXMgdG8gdGhlIHBhc3NlZCBub2Rl
LCBhbmQgbWFrZSBpdCBhIGNoaWxkIG5vZGUgb2YgfHRoaXN8LgorICAgICAgICB2b2lkIHNwbGlj
ZU5vZGUoUGFzc1JlZlB0cjxQcm9maWxlTm9kZT4pOwogCiAjaWZuZGVmIE5ERUJVRwogICAgICAg
ICBzdHJ1Y3QgUHJvZmlsZVN1YnRyZWVEYXRhIHsKQEAgLTExNiwxMiArMTEzLDEzIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICAgICAgZG91YmxlIHJvb3RUb3RhbFRpbWU7CiAgICAgICAgIH07
CiAKLSAgICAgICAgY29uc3QgY2hhciogY19zdHIoKSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVu
dGlmaWVyOyB9CiAgICAgICAgIC8vIFVzZSB0aGVzZSBmdW5jdGlvbnMgdG8gZHVtcCB0aGUgc3Vi
dHJlZSByb290ZWQgYXQgdGhpcyBub2RlLgogICAgICAgICB2b2lkIGRlYnVnUHJpbnQoKTsKICAg
ICAgICAgdm9pZCBkZWJ1Z1ByaW50U2FtcGxlU3R5bGUoKTsKIAogICAgICAgICAvLyBUaGVzZSBh
cmUgdXNlZCB0byByZWN1cnNpdmVseSBwcmludCBlbnRpcmUgc3VidHJlZXMgdXNpbmcgcHJlY29t
cHV0ZWQgc2VsZiBhbmQgdG90YWwgdGltZXMuCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBG
dW5jdG9yPiB2b2lkIGZvckVhY2hOb2RlUG9zdG9yZGVyKEZ1bmN0b3ImKTsKKwogICAgICAgICB2
b2lkIGRlYnVnUHJpbnRSZWN1cnNpdmVseShpbnQgaW5kZW50TGV2ZWwsIGNvbnN0IFByb2ZpbGVT
dWJ0cmVlRGF0YSYpOwogICAgICAgICBkb3VibGUgZGVidWdQcmludFNhbXBsZVN0eWxlUmVjdXJz
aXZlbHkoaW50IGluZGVudExldmVsLCBGdW5jdGlvbkNhbGxIYXNoQ291bnQmLCBjb25zdCBQcm9m
aWxlU3VidHJlZURhdGEmKTsKICNlbmRpZgpAQCAtMTMyLDIwICsxMzAsMjUgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIFByb2ZpbGVOb2RlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBj
b25zdCBDYWxsSWRlbnRpZmllciYsIFByb2ZpbGVOb2RlKiBwYXJlbnROb2RlKTsKICAgICAgICAg
UHJvZmlsZU5vZGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIFByb2ZpbGVOb2RlKiBub2Rl
VG9Db3B5KTsKIAotICAgICAgICB2b2lkIHN0YXJ0VGltZXIoKTsKLSAgICAgICAgdm9pZCByZXNl
dENoaWxkcmVuc1NpYmxpbmdzKCk7Ci0gICAgICAgIHZvaWQgZW5kQW5kUmVjb3JkQ2FsbCgpOwor
I2lmbmRlZiBOREVCVUcKKyAgICAgICAgUHJvZmlsZU5vZGUqIG5leHRTaWJsaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9uZXh0U2libGluZzsgfQorICAgICAgICB2b2lkIHNldE5leHRTaWJsaW5nKFBy
b2ZpbGVOb2RlKiBuZXh0U2libGluZykgeyBtX25leHRTaWJsaW5nID0gbmV4dFNpYmxpbmc7IH0K
KwogICAgICAgICBQcm9maWxlTm9kZSogdHJhdmVyc2VOZXh0Tm9kZVBvc3RPcmRlcigpIGNvbnN0
OworI2VuZGlmCiAKICAgICAgICAgRXhlY1N0YXRlKiBtX2NhbGxlckNhbGxGcmFtZTsKICAgICAg
ICAgQ2FsbElkZW50aWZpZXIgbV9jYWxsSWRlbnRpZmllcjsKICAgICAgICAgUHJvZmlsZU5vZGUq
IG1fcGFyZW50OwotICAgICAgICBQcm9maWxlTm9kZSogbV9uZXh0U2libGluZzsKLQogICAgICAg
ICBWZWN0b3I8Q2FsbD4gbV9jYWxsczsKICAgICAgICAgVmVjdG9yPFJlZlB0cjxQcm9maWxlTm9k
ZT4+IG1fY2hpbGRyZW47CisKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIFByb2ZpbGVOb2RlKiBt
X25leHRTaWJsaW5nOworI2VuZGlmCiAgICAgfTsKIAorI2lmbmRlZiBOREVCVUcKICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gaW5saW5lIHZvaWQgUHJvZmlsZU5vZGU6OmZvckVhY2hO
b2RlUG9zdG9yZGVyKEZ1bmN0b3ImIGZ1bmN0b3IpCiAgICAgewogICAgICAgICBQcm9maWxlTm9k
ZSogY3VycmVudE5vZGUgPSB0aGlzOwpAQCAtMTYyLDcgKzE2NSw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBmdW5jdG9yKGVuZE5vZGUpOwogICAgIH0KIAotI2lmbmRlZiBOREVCVUcKICAg
ICBzdHJ1Y3QgQ2FsY3VsYXRlUHJvZmlsZVN1YnRyZWVEYXRhRnVuY3RvciB7CiAgICAgICAgIHZv
aWQgb3BlcmF0b3IoKShQcm9maWxlTm9kZSogbm9kZSkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwKaW5kZXggZTgxN2EwMDdkYjM5
MjNmMGVlOTdmZDhjZmJmMTk3ZjIwY2QxMmE1Ni4uZWYxNWM1ZjRjZmUzMTM2NWMzYjI4NzU4MjM2
ZDRiMWEyOTAzYzA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Njcmlw
dFByb2ZpbGVOb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJv
ZmlsZU5vZGUuaWRsCkBAIC0zNiw3ICszNiw1IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbGluZU51bWJlcjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBjb2x1bW5OdW1iZXI7CiAKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBudW1iZXJPZkNhbGxzOwotCiAgICAgc2VxdWVuY2U8U2NyaXB0UHJvZmlsZU5vZGU+IGNoaWxk
cmVuKCk7CiB9Owo=
</data>
<flag name="review"
          id="262206"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>