<?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>45091</bug_id>
          
          <creation_ts>2010-09-01 23:53:11 -0700</creation_ts>
          <short_desc>[DRT/Chromium] Remove dependency to base/task.h and base/timer.h</short_desc>
          <delta_ts>2010-09-02 18:51:41 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>
          
          <blocked>36641</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>273239</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-01 23:53:11 -0700</bug_when>
    <thetext>[DRT/Chromium] Remove dependency to base/task.h and base/timer.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273246</commentid>
    <comment_count>1</comment_count>
      <attachid>66337</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-02 00:53:47 -0700</bug_when>
    <thetext>Created attachment 66337
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273383</commentid>
    <comment_count>2</comment_count>
      <attachid>66337</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-09-02 07:34:40 -0700</bug_when>
    <thetext>Comment on attachment 66337
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=66337&amp;action=prettypatch

&gt; WebKitTools/DumpRenderTree/chromium/Task.h:40
&gt; +class WebTask {
Minor quibble: the Web prefix is typically used in WebKit layer. How about we call it something like DRTTask. Blergh, that&apos;s bad too! Ok, I am out of ideas -- you can land as-is :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273728</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-02 18:50:36 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 66337 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=66337&amp;action=prettypatch
&gt; 
&gt; &gt; WebKitTools/DumpRenderTree/chromium/Task.h:40
&gt; &gt; +class WebTask {
&gt; Minor quibble: the Web prefix is typically used in WebKit layer. How about we call it something like DRTTask. Blergh, that&apos;s bad too! Ok, I am out of ideas -- you can land as-is :)

I&apos;ll commit the patch as is.
We can rename it easily later :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273729</commentid>
    <comment_count>4</comment_count>
      <attachid>66337</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-02 18:51:34 -0700</bug_when>
    <thetext>Comment on attachment 66337
Patch

Clearing flags on attachment: 66337

Committed r66701: &lt;http://trac.webkit.org/changeset/66701&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273730</commentid>
    <comment_count>5</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-02 18:51:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66337</attachid>
            <date>2010-09-02 00:53:47 -0700</date>
            <delta_ts>2010-09-02 18:51:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45091-20100902165345.patch</filename>
            <type>text/plain</type>
            <size>28059</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGM4ZWE3ZDkxYmJhOTdlNjdkM2YzMWVmNjhlOWQzZTliZDVmMGU2ODQu
LjI0MDU2MjQ4ZDlmM2VlZTBjYjlhY2NhNGEyODUwYzAzYTg0MTU5ZjQgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEwLTA5LTAyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
RFJUL0Nocm9taXVtXSBSZW1vdmUgZGVwZW5kZW5jeSB0byBiYXNlL3Rhc2suaCBhbmQgYmFzZS90
aW1lci5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTA5MQorCisgICAgICAgICogREVQUzogUm9sbCBDaHJvbWl1bSByZXZpc2lvbiB0byA1ODI3NyBp
biBvcmRlciB0byBoYXZlCisgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpQb3N0RGVsYXllZFRhc2so
KS4KKwogMjAxMC0wOS0wMSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY2NTc2LgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL0RFUFMgYi9XZWJLaXQvY2hyb21pdW0vREVQUwppbmRleCA2MjUyZjA4ZWQ4M2Rj
YmQ3M2JjYTdiNDBmOWI3YWVjZjBjMTg1NTEwLi4yZmMyMThiZDRmZGQ5Yjk3OGU4NzU2NTBhYzll
Y2IzMzJkYzhlNzA5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vREVQUworKysgYi9XZWJL
aXQvY2hyb21pdW0vREVQUwpAQCAtMzIsNyArMzIsNyBAQAogCiB2YXJzID0gewogICAnY2hyb21p
dW1fc3ZuJzogJ2h0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3N2bi90cnVuay9zcmMnLAotICAnY2hy
b21pdW1fcmV2JzogJzU3ODIzJywKKyAgJ2Nocm9taXVtX3Jldic6ICc1ODI3NycsCiB9CiAKIGRl
cHMgPSB7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9D
aGFuZ2VMb2cKaW5kZXggNGZlZmRlZjdiODkzYjk3OGRmYmE3ODg2ODYwOGY4NWM1MWY4MzNiOC4u
ZDEzZDBiMTc0ZjRmNTEwNWVkMTYzYWI3OGQ1NDUwNjFmOTEyMmI0MyAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDUwIEBACisyMDEwLTA5LTAyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbRFJUL0Nocm9t
aXVtXSBSZW1vdmUgZGVwZW5kZW5jeSB0byBiYXNlL3Rhc2suaCBhbmQgYmFzZS90aW1lci5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTA5MQorCisg
ICAgICAgIFRhc2sue2NwcCxofSBpbnRyb2R1Y2VzIGEgc2ltcGxlciB2ZXJzaW9uIG9mIENocm9t
aXVtCisgICAgICAgIGJhc2UvdGFzay5oLiBJdCBkb2Vzbid0IGhhdmUgVHVwbGVOIGFuZCBNZXRo
b2QuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpOgorICAg
ICAgICAgQWRkIFRhc2suY3BwIGFuZCBUYXNrLmgKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmNwcDoKKyAgICAgICAgKERSVERldlRvb2xzQWdlbnQ6
OkRSVERldlRvb2xzQWdlbnQpOgorICAgICAgICAoRFJURGV2VG9vbHNBZ2VudDo6cmVzZXQpOgor
ICAgICAgICAoRFJURGV2VG9vbHNBZ2VudDo6YXN5bmNDYWxsKToKKyAgICAgICAgKERSVERldlRv
b2xzQWdlbnQ6OmZyb250ZW5kTG9hZGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9EUlREZXZUb29sc0FnZW50Lmg6CisgICAgICAgIChEUlREZXZUb29sc0FnZW50Ojp0YXNr
TGlzdCk6IEFkZGVkIHRvIHVzZSBNZXRob2RUYXNrPFQ+LgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0RSVERldlRvb2xzQ2xpZW50LmNwcDoKKyAgICAgICAgKERSVERldlRvb2xz
Q2xpZW50OjpEUlREZXZUb29sc0NsaWVudCk6CisgICAgICAgIChEUlREZXZUb29sc0NsaWVudDo6
fkRSVERldlRvb2xzQ2xpZW50KToKKyAgICAgICAgKERSVERldlRvb2xzQ2xpZW50OjpyZXNldCk6
CisgICAgICAgIChEUlREZXZUb29sc0NsaWVudDo6YXN5bmNDYWxsKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0NsaWVudC5oOgorICAgICAgICAoRFJURGV2
VG9vbHNDbGllbnQ6OnRhc2tMaXN0KTogQWRkZWQgdG8gdXNlIE1ldGhvZFRhc2s8VD4uCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAo
RXZlbnRTZW5kZXI6OkV2ZW50U2VuZGVyKToKKyAgICAgICAgKEV2ZW50U2VuZGVyOjpyZXNldCk6
CisgICAgICAgIChFdmVudFNlbmRlcjo6c2NoZWR1bGVBc3luY2hyb25vdXNDbGljayk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRXZlbnRTZW5kZXIuaDoKKyAgICAgICAgKEV2
ZW50U2VuZGVyOjp0YXNrTGlzdCk6IEFkZGVkIHRvIHVzZSBNZXRob2RUYXNrPFQ+LgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAg
ICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6V29ya1F1ZXVlOjpwcm9jZXNzV29ya1Nvb24pOgor
ICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRVbnRpbERvbmUpOgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXI6Om5vdGlmeURvbmUpOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnJlc2V0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnRhc2tM
aXN0KTogQWRkZWQgdG8gdXNlIE1ldGhvZFRhc2s8VD4uCisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6V29ya1F1ZXVlOjp0YXNrTGlzdCk6IEFkZGVkIHRvIHVzZSBNZXRob2RUYXNrPFQ+
LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL05vdGlmaWNhdGlvblByZXNlbnRl
ci5jcHA6CisgICAgICAgIChkZWZlcnJlZERpc3BsYXlEaXNwYXRjaCk6CisgICAgICAgIChOb3Rp
ZmljYXRpb25QcmVzZW50ZXI6OnNob3cpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rhc2suY3BwOiBBZGRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
YXNrLmg6IEFkZGVkLgorCiAyMDEwLTA5LTAxICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCmluZGV4IGE1MjU1MzJlODk0MzMwZTA2MDk1
MmRlYjU2MzEwODQ4OTE5OTIxYmYuLmIzOWZkMmFmYTQ4ZmYwNDUxODY2Y2YyMjZiYzczYWFlMTE0
YjNjNjAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJU
cmVlLmd5cGkKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUu
Z3lwaQpAQCAtMjYsNiArMjYsOCBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL05vdGlmaWNhdGlv
blByZXNlbnRlci5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1BsYWluVGV4dENvbnRyb2xs
ZXIuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9QbGFpblRleHRDb250cm9sbGVyLmgnLAor
ICAgICAgICAgICAgJ2Nocm9taXVtL1Rhc2suaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vVGFz
ay5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RFdmVudFByaW50ZXIuaCcsCiAgICAg
ICAgICAgICAnY2hyb21pdW0vVGVzdEV2ZW50UHJpbnRlci5jcHAnLAogICAgICAgICAgICAgJ2No
cm9taXVtL1Rlc3ROYXZpZ2F0aW9uQ29udHJvbGxlci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAgYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmNwcAppbmRl
eCBiYTFlZGQ3ODUyOGM0YjhiYTE1YTkyZjg4MjAwMzY4YjdmYmMzZGEyLi42NmQ4OTRjOWUxYTQx
MmMzMmE2ODY5MTQ4NWRjZTUyNmYxOTM1NzZhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmNwcAorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmNwcApAQCAtNDMsOCAr
NDMsNyBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogRFJURGV2VG9vbHNBZ2VudDo6RFJU
RGV2VG9vbHNBZ2VudCgpCi0gICAgOiBtX2NhbGxNZXRob2RGYWN0b3J5KHRoaXMpCi0gICAgLCBt
X2RydERldlRvb2xzQ2xpZW50KDApCisgICAgOiBtX2RydERldlRvb2xzQ2xpZW50KDApCiAgICAg
LCBtX3dlYlZpZXcoMCkKIHsKICAgICBzdGF0aWMgaW50IGRldlRvb2xzQWdlbnRDb3VudGVyID0g
MDsKQEAgLTU2LDcgKzU1LDcgQEAgRFJURGV2VG9vbHNBZ2VudDo6RFJURGV2VG9vbHNBZ2VudCgp
CiAKIHZvaWQgRFJURGV2VG9vbHNBZ2VudDo6cmVzZXQoKQogewotICAgIG1fY2FsbE1ldGhvZEZh
Y3RvcnkuUmV2b2tlQWxsKCk7CisgICAgbV90YXNrTGlzdC5yZXZva2VBbGwoKTsKIH0KIAogdm9p
ZCBEUlREZXZUb29sc0FnZW50OjpzZXRXZWJWaWV3KFdlYlZpZXcqIHdlYlZpZXcpCkBAIC04OSwx
MCArODgsOSBAQCBXZWJEZXZUb29sc0FnZW50Q2xpZW50OjpXZWJLaXRDbGllbnRNZXNzYWdlTG9v
cCogRFJURGV2VG9vbHNBZ2VudDo6Y3JlYXRlQ2xpZW50TQogICAgIHJldHVybiB3ZWJraXRfc3Vw
cG9ydDo6Q3JlYXRlRGV2VG9vbHNNZXNzYWdlTG9vcCgpOwogfQogCi12b2lkIERSVERldlRvb2xz
QWdlbnQ6OmFzeW5jQ2FsbChjb25zdCBEUlREZXZUb29sc0NhbGxBcmdzICZhcmdzKQordm9pZCBE
UlREZXZUb29sc0FnZW50Ojphc3luY0NhbGwoY29uc3QgRFJURGV2VG9vbHNDYWxsQXJncyYgYXJn
cykKIHsKLSAgICB3ZWJraXRfc3VwcG9ydDo6UG9zdFRhc2tGcm9tSGVyZSgKLSAgICAgICAgbV9j
YWxsTWV0aG9kRmFjdG9yeS5OZXdSdW5uYWJsZU1ldGhvZCgmRFJURGV2VG9vbHNBZ2VudDo6Y2Fs
bCwgYXJncykpOworICAgIHBvc3RUYXNrKG5ldyBBc3luY0NhbGxUYXNrKHRoaXMsIGFyZ3MpKTsK
IH0KIAogdm9pZCBEUlREZXZUb29sc0FnZW50OjpjYWxsKGNvbnN0IERSVERldlRvb2xzQ2FsbEFy
Z3MgJmFyZ3MpCkBAIC0xMzcsOSArMTM1LDkgQEAgdm9pZCBEUlREZXZUb29sc0FnZW50OjpkZXRh
Y2goKQogICAgIG1fZHJ0RGV2VG9vbHNDbGllbnQgPSAwOwogfQogCi12b2lkIERSVERldlRvb2xz
QWdlbnQ6OmZyb250ZW5kTG9hZGVkKCkgewotICAgIHdlYmtpdF9zdXBwb3J0OjpQb3N0VGFza0Zy
b21IZXJlKAotICAgICAgICBtX2NhbGxNZXRob2RGYWN0b3J5Lk5ld1J1bm5hYmxlTWV0aG9kKCZE
UlREZXZUb29sc0FnZW50OjpkZWxheWVkRnJvbnRlbmRMb2FkZWQpKTsKK3ZvaWQgRFJURGV2VG9v
bHNBZ2VudDo6ZnJvbnRlbmRMb2FkZWQoKQoreworICAgIHBvc3RUYXNrKG5ldyBEZWxheWVkRnJv
bnRlbmRMb2FkZWRUYXNrKHRoaXMpKTsKIH0KIAogYm9vbCBEUlREZXZUb29sc0FnZW50OjpzZXRU
aW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oCmluZGV4IDg3
NDdjZWExMzc1YTViY2JmODZjMmNjNGE4YWQxZjI4NDRjZGY0NzIuLmY5ZWMyMGZhMTZmNzM5ZGIw
N2ZkNzRiNTExYmE3Njk1ZmZlYTg3N2IgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaAorKysgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmgKQEAgLTMxLDcgKzMxLDggQEAK
ICNpZm5kZWYgRFJURGV2VG9vbHNBZ2VudF9oCiAjZGVmaW5lIERSVERldlRvb2xzQWdlbnRfaAog
Ci0jaW5jbHVkZSAiYmFzZS90YXNrLmgiIC8vIEZJWE1FOiByZW1vdmUgdGhpcworI2luY2x1ZGUg
IkRSVERldlRvb2xzQ2FsbEFyZ3MuaCIKKyNpbmNsdWRlICJUYXNrLmgiCiAjaW5jbHVkZSAicHVi
bGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDYsNyArNDcsNiBAQCBzdHJ1Y3QgV2Vi
RGV2VG9vbHNNZXNzYWdlRGF0YTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLWNsYXNzIERS
VERldlRvb2xzQ2FsbEFyZ3M7CiBjbGFzcyBEUlREZXZUb29sc0NsaWVudDsKIAogY2xhc3MgRFJU
RGV2VG9vbHNBZ2VudCA6IHB1YmxpYyBXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRDbGllbnQKQEAg
LTc0LDYgKzc0LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBldmFsdWF0ZUluV2ViSW5zcGVjdG9y
KGxvbmcgY2FsbElELCBjb25zdCBzdGQ6OnN0cmluZyYgc2NyaXB0KTsKICAgICBib29sIHNldFRp
bWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZSk7CisgICAgVGFza0xpc3QqIHRhc2tM
aXN0KCkgeyByZXR1cm4gJm1fdGFza0xpc3Q7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGNhbGwo
Y29uc3QgRFJURGV2VG9vbHNDYWxsQXJncyYpOwpAQCAtODEsNyArODIsMjEgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaE1lc3NhZ2VMb29wKCk7CiAgICAgV2ViS2l0OjpXZWJE
ZXZUb29sc0FnZW50KiB3ZWJEZXZUb29sc0FnZW50KCk7CiAKLSAgICBTY29wZWRSdW5uYWJsZU1l
dGhvZEZhY3Rvcnk8RFJURGV2VG9vbHNBZ2VudD4gbV9jYWxsTWV0aG9kRmFjdG9yeTsKKyAgICBj
bGFzcyBBc3luY0NhbGxUYXNrOiBwdWJsaWMgTWV0aG9kVGFzazxEUlREZXZUb29sc0FnZW50PiB7
CisgICAgcHVibGljOgorICAgICAgICBBc3luY0NhbGxUYXNrKERSVERldlRvb2xzQWdlbnQqIG9i
amVjdCwgY29uc3QgRFJURGV2VG9vbHNDYWxsQXJncyYgYXJncykKKyAgICAgICAgICAgIDogTWV0
aG9kVGFzazxEUlREZXZUb29sc0FnZW50PihvYmplY3QpLCBtX2FyZ3MoYXJncykge30KKyAgICAg
ICAgdmlydHVhbCB2b2lkIHJ1bklmVmFsaWQoKSB7IG1fb2JqZWN0LT5jYWxsKG1fYXJncyk7IH0K
KyAgICBwcml2YXRlOgorICAgICAgICBEUlREZXZUb29sc0NhbGxBcmdzIG1fYXJnczsKKyAgICB9
OworCisgICAgc3RydWN0IERlbGF5ZWRGcm9udGVuZExvYWRlZFRhc2s6IHB1YmxpYyBNZXRob2RU
YXNrPERSVERldlRvb2xzQWdlbnQ+IHsKKyAgICAgICAgRGVsYXllZEZyb250ZW5kTG9hZGVkVGFz
ayhEUlREZXZUb29sc0FnZW50KiBvYmplY3QpIDogTWV0aG9kVGFzazxEUlREZXZUb29sc0FnZW50
PihvYmplY3QpIHt9CisgICAgICAgIHZpcnR1YWwgdm9pZCBydW5JZlZhbGlkKCkgeyBtX29iamVj
dC0+ZGVsYXllZEZyb250ZW5kTG9hZGVkKCk7IH0KKyAgICB9OworCisgICAgVGFza0xpc3QgbV90
YXNrTGlzdDsKICAgICBEUlREZXZUb29sc0NsaWVudCogbV9kcnREZXZUb29sc0NsaWVudDsKICAg
ICBpbnQgbV9yb3V0aW5nSUQ7CiAgICAgV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50KiBtX3dlYkRl
dlRvb2xzQWdlbnQ7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9EUlREZXZUb29sc0NsaWVudC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9EUlREZXZUb29sc0NsaWVudC5jcHAKaW5kZXggNDJmMzcyNDE5YmZiNGJkMTJjMDY4
YWE0OTExMTIzNDFkZGU5ZTBhMy4uYTUzZjBkYjRlODE0NzI1YWVjZTlmNGU4MDIyMGYzY2M0ZTEy
YTA3MSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJU
RGV2VG9vbHNDbGllbnQuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0RSVERldlRvb2xzQ2xpZW50LmNwcApAQCAtNDUsOCArNDUsNyBAQAogdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogRFJURGV2VG9vbHNDbGllbnQ6OkRSVERldlRvb2xzQ2xpZW50KERSVERl
dlRvb2xzQWdlbnQqIGFnZW50LCBXZWJWaWV3KiB3ZWJWaWV3KQotICAgIDogbV9jYWxsTWV0aG9k
RmFjdG9yeSh0aGlzKQotICAgICwgbV9kcnREZXZUb29sc0FnZW50KGFnZW50KQorICAgIDogbV9k
cnREZXZUb29sc0FnZW50KGFnZW50KQogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCiB7CiAgICAg
bV93ZWJEZXZUb29sc0Zyb250ZW5kLnNldChXZWJEZXZUb29sc0Zyb250ZW5kOjpjcmVhdGUobV93
ZWJWaWV3LApAQCAtNTksMTQgKzU4LDE0IEBAIERSVERldlRvb2xzQ2xpZW50Ojp+RFJURGV2VG9v
bHNDbGllbnQoKQogewogICAgIC8vIFRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgdGhlIHBhZ2Ugd2ls
bCBiZSBkZXN0cm95ZWQgYXQgZGV0YWNoIHN0ZXAgb2YKICAgICAvLyBtX2RydERldlRvb2xzQWdl
bnQgYW5kIHdlIHNob3VsZCBjbGVhbiBwZW5kaW5nIHJlcXVlc3RzIGEgYml0IGVhcmxpZXIuCi0g
ICAgbV9jYWxsTWV0aG9kRmFjdG9yeS5SZXZva2VBbGwoKTsKKyAgICBtX3Rhc2tMaXN0LnJldm9r
ZUFsbCgpOwogICAgIGlmIChtX2RydERldlRvb2xzQWdlbnQpCiAgICAgICAgIG1fZHJ0RGV2VG9v
bHNBZ2VudC0+ZGV0YWNoKCk7CiB9CiAKIHZvaWQgRFJURGV2VG9vbHNDbGllbnQ6OnJlc2V0KCkK
IHsKLSAgICBtX2NhbGxNZXRob2RGYWN0b3J5LlJldm9rZUFsbCgpOworICAgIG1fdGFza0xpc3Qu
cmV2b2tlQWxsKCk7CiB9CiAKIHZvaWQgRFJURGV2VG9vbHNDbGllbnQ6OnNlbmRGcm9udGVuZExv
YWRlZCgpIHsKQEAgLTEwNyw4ICsxMDYsNyBAQCB2b2lkIERSVERldlRvb2xzQ2xpZW50Ojp1bmRv
Y2tXaW5kb3coKQogCiB2b2lkIERSVERldlRvb2xzQ2xpZW50Ojphc3luY0NhbGwoY29uc3QgRFJU
RGV2VG9vbHNDYWxsQXJncyYgYXJncykKIHsKLSAgICB3ZWJraXRfc3VwcG9ydDo6UG9zdFRhc2tG
cm9tSGVyZSgKLSAgICAgICAgbV9jYWxsTWV0aG9kRmFjdG9yeS5OZXdSdW5uYWJsZU1ldGhvZCgm
RFJURGV2VG9vbHNDbGllbnQ6OmNhbGwsIGFyZ3MpKTsKKyAgICBwb3N0VGFzayhuZXcgQXN5bmND
YWxsVGFzayh0aGlzLCBhcmdzKSk7CiB9CiAKIHZvaWQgRFJURGV2VG9vbHNDbGllbnQ6OmNhbGwo
Y29uc3QgRFJURGV2VG9vbHNDYWxsQXJncyYgYXJncykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQ2xpZW50LmggYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0NsaWVudC5oCmluZGV4IDM3YjFl
OWRiNzcxZTgzNTgyMDExMTk4YTk1OWFjNWZhZGJmMmU4N2UuLmY3YzhmYmZkMjFhMWJkYmQ3NTc3
NjczNzlhYjBlZDJhNDQ5ODllNzMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0RSVERldlRvb2xzQ2xpZW50LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNDbGllbnQuaApAQCAtMzEsNyArMzEsOCBAQAog
I2lmbmRlZiBEUlREZXZUb29sc0NsaWVudF9oCiAjZGVmaW5lIERSVERldlRvb2xzQ2xpZW50X2gK
IAotI2luY2x1ZGUgImJhc2UvdGFzay5oIiAvLyBGSVhNRTogcmVtb3ZlIHRoaXMKKyNpbmNsdWRl
ICJEUlREZXZUb29sc0NhbGxBcmdzLmgiCisjaW5jbHVkZSAiVGFzay5oIgogI2luY2x1ZGUgInB1
YmxpYy9XZWJEZXZUb29sc0Zyb250ZW5kQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtNDUsNyArNDYsNiBAQCBjbGFzcyBX
ZWJWaWV3OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotY2xhc3MgRFJURGV2VG9vbHNDYWxs
QXJnczsKIGNsYXNzIERSVERldlRvb2xzQWdlbnQ7CiAKIGNsYXNzIERSVERldlRvb2xzQ2xpZW50
IDogcHVibGljIFdlYktpdDo6V2ViRGV2VG9vbHNGcm9udGVuZENsaWVudApAQCAtNjgsMTEgKzY4
LDIwIEBAIHB1YmxpYzoKICAgICB2b2lkIGFzeW5jQ2FsbChjb25zdCBEUlREZXZUb29sc0NhbGxB
cmdzJik7CiAKICAgICB2b2lkIGFsbE1lc3NhZ2VzUHJvY2Vzc2VkKCk7CisgICAgVGFza0xpc3Qq
IHRhc2tMaXN0KCkgeyByZXR1cm4gJm1fdGFza0xpc3Q7IH0KIAogIHByaXZhdGU6CiAgICAgdm9p
ZCBjYWxsKGNvbnN0IERSVERldlRvb2xzQ2FsbEFyZ3MmKTsKKyAgICBjbGFzcyBBc3luY0NhbGxU
YXNrOiBwdWJsaWMgTWV0aG9kVGFzazxEUlREZXZUb29sc0NsaWVudD4geworICAgIHB1YmxpYzoK
KyAgICAgICAgQXN5bmNDYWxsVGFzayhEUlREZXZUb29sc0NsaWVudCogb2JqZWN0LCBjb25zdCBE
UlREZXZUb29sc0NhbGxBcmdzJiBhcmdzKQorICAgICAgICAgICAgOiBNZXRob2RUYXNrPERSVERl
dlRvb2xzQ2xpZW50PihvYmplY3QpLCBtX2FyZ3MoYXJncykge30KKyAgICAgICAgdmlydHVhbCB2
b2lkIHJ1bklmVmFsaWQoKSB7IG1fb2JqZWN0LT5jYWxsKG1fYXJncyk7IH0KKyAgICBwcml2YXRl
OgorICAgICAgICBEUlREZXZUb29sc0NhbGxBcmdzIG1fYXJnczsKKyAgICB9OwogCi0gICAgU2Nv
cGVkUnVubmFibGVNZXRob2RGYWN0b3J5PERSVERldlRvb2xzQ2xpZW50PiBtX2NhbGxNZXRob2RG
YWN0b3J5OworICAgIFRhc2tMaXN0IG1fdGFza0xpc3Q7CiAgICAgV2ViS2l0OjpXZWJWaWV3KiBt
X3dlYlZpZXc7CiAgICAgRFJURGV2VG9vbHNBZ2VudCogbV9kcnREZXZUb29sc0FnZW50OwogICAg
IFdURjo6T3duUHRyPFdlYktpdDo6V2ViRGV2VG9vbHNGcm9udGVuZD4gbV93ZWJEZXZUb29sc0Zy
b250ZW5kOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
RXZlbnRTZW5kZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRXZl
bnRTZW5kZXIuY3BwCmluZGV4IGI2YjhkNmUzZmViYTAwYzdhMjNhOGU0MGMwNmNmMzVkYzNmMWQ0
NjEuLjZmZWY3Zjc0NmIwOTEwY2M5MzdmOWZmZjk0MDQ2Y2I2YWFiNzk4ODIgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0V2ZW50U2VuZGVyLmNwcAorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHAKQEAg
LTI0NCw4ICsyNDQsNyBAQCBlbnVtIEtleUxvY2F0aW9uQ29kZSB7CiB9OwogCiBFdmVudFNlbmRl
cjo6RXZlbnRTZW5kZXIoVGVzdFNoZWxsKiBzaGVsbCkKLSAgICA6IG1fbWV0aG9kRmFjdG9yeSh0
aGlzKQotICAgICwgbV9zaGVsbChzaGVsbCkKKyAgICA6IG1fc2hlbGwoc2hlbGwpCiB7CiAgICAg
Ly8gSW5pdGlhbGl6ZSB0aGUgbWFwIHRoYXQgYXNzb2NpYXRlcyBtZXRob2RzIG9mIHRoaXMgY2xh
c3Mgd2l0aCB0aGUgbmFtZXMKICAgICAvLyB0aGV5IHdpbGwgdXNlIHdoZW4gY2FsbGVkIGJ5IEph
dmFTY3JpcHQuICBUaGUgYWN0dWFsIGJpbmRpbmcgb2YgdGhvc2UKQEAgLTMyMSw3ICszMjAsNyBA
QCB2b2lkIEV2ZW50U2VuZGVyOjpyZXNldCgpCiAgICAgdGltZU9mZnNldE1zID0gMDsKICAgICB0
b3VjaE1vZGlmaWVycyA9IDA7CiAgICAgdG91Y2hQb2ludHMuY2xlYXIoKTsKLSAgICBtX21ldGhv
ZEZhY3RvcnkuUmV2b2tlQWxsKCk7CisgICAgbV90YXNrTGlzdC5yZXZva2VBbGwoKTsKIH0KIAog
V2ViVmlldyogRXZlbnRTZW5kZXI6OndlYnZpZXcoKQpAQCAtNzY1LDE0ICs3NjQsMjkgQEAgdm9p
ZCBFdmVudFNlbmRlcjo6Y29udGV4dENsaWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXMKICAgICBwcmVzc2VkQnV0dG9uID0gV2ViTW91c2VFdmVudDo6
QnV0dG9uTm9uZTsKIH0KIAorY2xhc3MgTW91c2VEb3duVGFzazogcHVibGljIE1ldGhvZFRhc2s8
RXZlbnRTZW5kZXI+IHsKK3B1YmxpYzoKKyAgICBNb3VzZURvd25UYXNrKEV2ZW50U2VuZGVyKiBv
YmosIGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJnKQorICAgICAgICA6IE1ldGhvZFRhc2s8RXZl
bnRTZW5kZXI+KG9iaiksIG1fYXJndW1lbnRzKGFyZykge30KKyAgICB2aXJ0dWFsIHZvaWQgcnVu
SWZWYWxpZCgpIHsgbV9vYmplY3QtPm1vdXNlRG93bihtX2FyZ3VtZW50cywgMCk7IH0KK3ByaXZh
dGU6CisgICAgQ3BwQXJndW1lbnRMaXN0IG1fYXJndW1lbnRzOworfTsKKworY2xhc3MgTW91c2VV
cFRhc2s6IHB1YmxpYyBNZXRob2RUYXNrPEV2ZW50U2VuZGVyPiB7CitwdWJsaWM6CisgICAgTW91
c2VVcFRhc2soRXZlbnRTZW5kZXIqIG9iaiwgY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmcpCisg
ICAgICAgIDogTWV0aG9kVGFzazxFdmVudFNlbmRlcj4ob2JqKSwgbV9hcmd1bWVudHMoYXJnKSB7
fQorICAgIHZpcnR1YWwgdm9pZCBydW5JZlZhbGlkKCkgeyBtX29iamVjdC0+bW91c2VVcChtX2Fy
Z3VtZW50cywgMCk7IH0KK3ByaXZhdGU6CisgICAgQ3BwQXJndW1lbnRMaXN0IG1fYXJndW1lbnRz
OworfTsKKwogdm9pZCBFdmVudFNlbmRlcjo6c2NoZWR1bGVBc3luY2hyb25vdXNDbGljayhjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAg
IHJlc3VsdC0+c2V0TnVsbCgpOwotCi0gICAgd2Via2l0X3N1cHBvcnQ6OlBvc3RUYXNrRnJvbUhl
cmUobV9tZXRob2RGYWN0b3J5Lk5ld1J1bm5hYmxlTWV0aG9kKAotICAgICAgICAgICAgJkV2ZW50
U2VuZGVyOjptb3VzZURvd24sIGFyZ3VtZW50cywgc3RhdGljX2Nhc3Q8Q3BwVmFyaWFudCo+KDAp
KSk7Ci0gICAgd2Via2l0X3N1cHBvcnQ6OlBvc3RUYXNrRnJvbUhlcmUobV9tZXRob2RGYWN0b3J5
Lk5ld1J1bm5hYmxlTWV0aG9kKAotICAgICAgICAgICAgJkV2ZW50U2VuZGVyOjptb3VzZVVwLCBh
cmd1bWVudHMsIHN0YXRpY19jYXN0PENwcFZhcmlhbnQqPigwKSkpOworICAgIHBvc3RUYXNrKG5l
dyBNb3VzZURvd25UYXNrKHRoaXMsIGFyZ3VtZW50cykpOworICAgIHBvc3RUYXNrKG5ldyBNb3Vz
ZVVwVGFzayh0aGlzLCBhcmd1bWVudHMpKTsKIH0KIAogdm9pZCBFdmVudFNlbmRlcjo6YmVnaW5E
cmFnV2l0aEZpbGVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KiByZXN1bHQpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9FdmVudFNlbmRlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRXZl
bnRTZW5kZXIuaAppbmRleCBhYzQ3NWEzYjQxODIxMGMyZTNjYzQ3ZDBkNzRkZmI4NzFmZGQ1YmUx
Li4xMjVhNGYyYjNmOWE2MTUyZjEzYzU1MDY5OWFlNzc3ODg3MjkwMWM3IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5oCisrKyBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0V2ZW50U2VuZGVyLmgKQEAgLTM4LDcg
KzM4LDcgQEAKICNkZWZpbmUgRXZlbnRTZW5kZXJfaAogCiAjaW5jbHVkZSAiQ3BwQm91bmRDbGFz
cy5oIgotI2luY2x1ZGUgImJhc2UvdGFzay5oIgorI2luY2x1ZGUgIlRhc2suaCIKICNpbmNsdWRl
ICJwdWJsaWMvV2ViRHJhZ09wZXJhdGlvbi5oIgogI2luY2x1ZGUgInB1YmxpYy9XZWJJbnB1dEV2
ZW50LmgiCiAjaW5jbHVkZSAicHVibGljL1dlYlBvaW50LmgiCkBAIC0xMDcsNiArMTA3LDggQEAg
cHVibGljOgogICAgIENwcFZhcmlhbnQgd21TeXNEZWFkQ2hhcjsKICNlbmRpZgogCisgICAgVGFz
a0xpc3QqIHRhc2tMaXN0KCkgeyByZXR1cm4gJm1fdGFza0xpc3Q7IH0KKwogcHJpdmF0ZToKICAg
ICAvLyBSZXR1cm5zIHRoZSB0ZXN0IHNoZWxsJ3Mgd2Vidmlldy4KICAgICBXZWJLaXQ6OldlYlZp
ZXcqIHdlYnZpZXcoKTsKQEAgLTEzNyw3ICsxMzksNyBAQCBwcml2YXRlOgogICAgIC8vIENvbXBv
c2UgYSB0b3VjaCBldmVudCBmcm9tIHRoZSBjdXJyZW50IHRvdWNoIHBvaW50cyBhbmQgc2VuZCBp
dC4KICAgICB2b2lkIHNlbmRDdXJyZW50VG91Y2hFdmVudChjb25zdCBXZWJLaXQ6OldlYklucHV0
RXZlbnQ6OlR5cGUpOwogCi0gICAgU2NvcGVkUnVubmFibGVNZXRob2RGYWN0b3J5PEV2ZW50U2Vu
ZGVyPiBtX21ldGhvZEZhY3Rvcnk7CisgICAgVGFza0xpc3QgbV90YXNrTGlzdDsKIAogICAgIC8v
IE5vbi1vd25pbmcgcG9pbnRlci4gIFRoZSBFdmVudFNlbmRlciBpcyBvd25lZCBieSB0aGUgVGVz
dFNoZWxsLgogICAgIFRlc3RTaGVsbCogbV9zaGVsbDsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApp
bmRleCAyOTk5ZDNhMDZkZTJhZWEzZTE5MzQ0YWQ2M2ExNDYwZDAwZDk2ZjIzLi44ZTA4YzRjZjll
NTRjYTVkYzI4MDYyMDk5NzQ0MGNiOWY3NjczZWJmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC02Nyw4ICs2Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVz
dFNoZWxsKiBzaGVsbCkKLSAgICA6IG1fdGltZW91dEZhY3RvcnkodGhpcykKLSAgICAsIG1fc2hl
bGwoc2hlbGwpCisgICAgOiBtX3NoZWxsKHNoZWxsKQogICAgICwgbV93b3JrUXVldWUodGhpcykK
IHsKIApAQCAtMjA3LDEwICsyMDYsOSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpXb3Jr
UXVldWU6OnByb2Nlc3NXb3JrU29vbigpCiAKICAgICBpZiAoIW1fcXVldWUuaXNFbXB0eSgpKSB7
CiAgICAgICAgIC8vIFdlIGRlbGF5IHByb2Nlc3NpbmcgcXVldWVkIHdvcmsgdG8gYXZvaWQgcmVj
dXJzaW9uIHByb2JsZW1zLgotICAgICAgICBtX3RpbWVyLlN0YXJ0KGJhc2U6OlRpbWVEZWx0YSgp
LCB0aGlzLCAmV29ya1F1ZXVlOjpwcm9jZXNzV29yayk7Ci0gICAgfSBlbHNlIGlmICghbV9jb250
cm9sbGVyLT5tX3dhaXRVbnRpbERvbmUpIHsKKyAgICAgICAgcG9zdFRhc2sobmV3IFdvcmtRdWV1
ZVRhc2sodGhpcykpOworICAgIH0gZWxzZSBpZiAoIW1fY29udHJvbGxlci0+bV93YWl0VW50aWxE
b25lKQogICAgICAgICBtX2NvbnRyb2xsZXItPm1fc2hlbGwtPnRlc3RGaW5pc2hlZCgpOwotICAg
IH0KIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6V29ya1F1ZXVlOjpwcm9jZXNzV29y
aygpCkBAIC0zMjAsMTEgKzMxOCw4IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFj
Y2VwdHNFZGl0aW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDCiAKIHZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRVbnRpbERvbmUoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewotICAgIGlmICghd2Via2l0X3N1cHBvcnQ6OkJlaW5n
RGVidWdnZWQoKSkgewotICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UG9zdERlbGF5ZWRUYXNrRnJv
bUhlcmUoCi0gICAgICAgICAgICBtX3RpbWVvdXRGYWN0b3J5Lk5ld1J1bm5hYmxlTWV0aG9kKCZM
YXlvdXRUZXN0Q29udHJvbGxlcjo6bm90aWZ5RG9uZVRpbWVkT3V0KSwKLSAgICAgICAgICAgIG1f
c2hlbGwtPmxheW91dFRlc3RUaW1lb3V0KCkpOwotICAgIH0KKyAgICBpZiAoIXdlYmtpdF9zdXBw
b3J0OjpCZWluZ0RlYnVnZ2VkKCkpCisgICAgICAgIHBvc3REZWxheWVkVGFzayhuZXcgTm90aWZ5
RG9uZVRpbWVkT3V0VGFzayh0aGlzKSwgbV9zaGVsbC0+bGF5b3V0VGVzdFRpbWVvdXQoKSk7CiAg
ICAgbV93YWl0VW50aWxEb25lID0gdHJ1ZTsKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KQEAg
LTMzMiwxNyArMzI3LDEyIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRVbnRpbERv
bmUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzCiB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpub3RpZnlEb25lKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqIHJlc3VsdCkKIHsKICAgICAvLyBUZXN0IGRpZG4ndCB0aW1lb3V0LiBLaWxsIHRoZSB0aW1l
b3V0IHRpbWVyLgotICAgIG1fdGltZW91dEZhY3RvcnkuUmV2b2tlQWxsKCk7CisgICAgbV90YXNr
TGlzdC5yZXZva2VBbGwoKTsKIAogICAgIGNvbXBsZXRlTm90aWZ5RG9uZShmYWxzZSk7CiAgICAg
cmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om5vdGlm
eURvbmVUaW1lZE91dCgpCi17Ci0gICAgY29tcGxldGVOb3RpZnlEb25lKHRydWUpOwotfQotCiB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpjb21wbGV0ZU5vdGlmeURvbmUoYm9vbCBpc1RpbWVv
dXQpCiB7CiAgICAgaWYgKG1fd2FpdFVudGlsRG9uZSAmJiAhbV9zaGVsbC0+d2ViVmlld0hvc3Qo
KS0+dG9wTG9hZGluZ0ZyYW1lKCkgJiYgbV93b3JrUXVldWUuaXNFbXB0eSgpKSB7CkBAIC01MjEs
NyArNTExLDcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQoKQogICAgIGVsc2UK
ICAgICAgICAgbV9jbG9zZVJlbWFpbmluZ1dpbmRvd3MgPSB0cnVlOwogICAgIG1fd29ya1F1ZXVl
LnJlc2V0KCk7Ci0gICAgbV90aW1lb3V0RmFjdG9yeS5SZXZva2VBbGwoKTsKKyAgICBtX3Rhc2tM
aXN0LnJldm9rZUFsbCgpOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpsb2NhdGlv
bkNoYW5nZURvbmUoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggNjcwNjE1N2ViY2ExZWY3MTE2
MjRmNzFkZWZlMDA0NWYyM2RiNzRkMC4uNTVjOGM4YmIyMzgyNjRjMDIzZWQ2OTJiNDRkNGFiOTll
NGY1YzYwZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC00Miw3ICs0Miw3IEBACiAjZGVmaW5l
IExheW91dFRlc3RDb250cm9sbGVyX2gKIAogI2luY2x1ZGUgIkNwcEJvdW5kQ2xhc3MuaCIKLSNp
bmNsdWRlICJiYXNlL3RpbWVyLmgiIC8vIEZJWE1FOiBSZW1vdmUgdGhpcy4KKyNpbmNsdWRlICJU
YXNrLmgiCiAjaW5jbHVkZSAicHVibGljL1dlYlN0cmluZy5oIgogI2luY2x1ZGUgInB1YmxpYy9X
ZWJVUkwuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KQEAgLTExNiw3ICsxMTYsNiBAQCBwdWJs
aWM6CiAgICAgLy8gdG8gZGVsYXkgdGhlIGNvbXBsZXRpb24gb2YgdGhlIHRlc3QgdW50aWwgbm90
aWZ5RG9uZSBpcyBjYWxsZWQuCiAgICAgdm9pZCB3YWl0VW50aWxEb25lKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIG5vdGlmeURvbmUoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgbm90aWZ5RG9uZVRpbWVkT3V0KCk7
CiAKICAgICAvLyBNZXRob2RzIGZvciBhZGRpbmcgYWN0aW9ucyB0byB0aGUgd29yayBxdWV1ZS4g
IFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aAogICAgIC8vIHdhaXRVbnRpbERvbmUvbm90aWZ5RG9u
ZSBhYm92ZS4KQEAgLTM2MCw2ICszNTksOCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBydW4oVGVzdFNoZWxsKiBzaGVsbCkgPSAwOwogICAgIH07CiAKKyAgICBUYXNrTGlzdCogdGFz
a0xpc3QoKSB7IHJldHVybiAmbV90YXNrTGlzdDsgfQorCiBwcml2YXRlOgogICAgIGZyaWVuZCBj
bGFzcyBXb3JrSXRlbTsKICAgICBmcmllbmQgY2xhc3MgV29ya1F1ZXVlOwpAQCAtMzc5LDExICsz
ODAsMTcgQEAgcHJpdmF0ZToKIAogICAgICAgICB2b2lkIHNldEZyb3plbihib29sIGZyb3plbikg
eyBtX2Zyb3plbiA9IGZyb3plbjsgfQogICAgICAgICBib29sIGlzRW1wdHkoKSB7IHJldHVybiBt
X3F1ZXVlLmlzRW1wdHkoKTsgfQorICAgICAgICBUYXNrTGlzdCogdGFza0xpc3QoKSB7IHJldHVy
biAmbV90YXNrTGlzdDsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBwcm9jZXNzV29y
aygpOworICAgICAgICBjbGFzcyBXb3JrUXVldWVUYXNrOiBwdWJsaWMgTWV0aG9kVGFzazxXb3Jr
UXVldWU+IHsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgV29ya1F1ZXVlVGFzayhXb3Jr
UXVldWUqIG9iamVjdCk6IE1ldGhvZFRhc2s8V29ya1F1ZXVlPihvYmplY3QpIHt9CisgICAgICAg
ICAgICB2aXJ0dWFsIHZvaWQgcnVuSWZWYWxpZCgpIHsgbV9vYmplY3QtPnByb2Nlc3NXb3JrKCk7
IH0KKyAgICAgICAgfTsKIAotICAgICAgICBiYXNlOjpPbmVTaG90VGltZXI8V29ya1F1ZXVlPiBt
X3RpbWVyOworICAgICAgICBUYXNrTGlzdCBtX3Rhc2tMaXN0OwogICAgICAgICBEZXF1ZTxXb3Jr
SXRlbSo+IG1fcXVldWU7CiAgICAgICAgIGJvb2wgbV9mcm96ZW47CiAgICAgICAgIExheW91dFRl
c3RDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CkBAIC0zOTYsNiArNDAzLDEyIEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIGxvZ0Vycm9yVG9Db25zb2xlKGNvbnN0IHN0ZDo6c3RyaW5nJik7CiAgICAg
dm9pZCBjb21wbGV0ZU5vdGlmeURvbmUoYm9vbCBpc1RpbWVvdXQpOworICAgIGNsYXNzIE5vdGlm
eURvbmVUaW1lZE91dFRhc2s6IHB1YmxpYyBNZXRob2RUYXNrPExheW91dFRlc3RDb250cm9sbGVy
PiB7CisgICAgcHVibGljOgorICAgICAgICBOb3RpZnlEb25lVGltZWRPdXRUYXNrKExheW91dFRl
c3RDb250cm9sbGVyKiBvYmplY3QpOiBNZXRob2RUYXNrPExheW91dFRlc3RDb250cm9sbGVyPihv
YmplY3QpIHt9CisgICAgICAgIHZpcnR1YWwgdm9pZCBydW5JZlZhbGlkKCkgeyBtX29iamVjdC0+
Y29tcGxldGVOb3RpZnlEb25lKHRydWUpOyB9CisgICAgfTsKKwogCiAgICAgYm9vbCBwYXVzZUFu
aW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgYW5p
bWF0aW9uTmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBlbGVtZW50
SWQpOwogICAgIGJvb2wgcGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKGNvbnN0
IFdlYktpdDo6V2ViU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSB0aW1lLCBjb25zdCBXZWJL
aXQ6OldlYlN0cmluZyYgZWxlbWVudElkKTsKQEAgLTQwNSw3ICs0MTgsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpOwogCiAgICAgLy8gVXNlZCBmb3IgdGVzdCB0aW1l
b3V0cy4KLSAgICBTY29wZWRSdW5uYWJsZU1ldGhvZEZhY3Rvcnk8TGF5b3V0VGVzdENvbnRyb2xs
ZXI+IG1fdGltZW91dEZhY3Rvcnk7CisgICAgVGFza0xpc3QgbV90YXNrTGlzdDsKIAogICAgIC8v
IE5vbi1vd25pbmcgcG9pbnRlci4gIFRoZSBMYXlvdXRUZXN0Q29udHJvbGxlciBpcyBvd25lZCBi
eSB0aGUgaG9zdC4KICAgICBUZXN0U2hlbGwqIG1fc2hlbGw7CmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Ob3RpZmljYXRpb25QcmVzZW50ZXIuY3BwIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTm90aWZpY2F0aW9uUHJlc2VudGVy
LmNwcAppbmRleCAxMDk4ZTM4OTA1YzE1ZmQzYTMxOWYxNjNlYjA4YzBmYjg1MTlkNmEzLi43ZDRj
YmUzZDcwODY3M2YwZWFmODI4ZDBiMWFlYjQ2ZGE2MjRjNWQ3IDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Ob3RpZmljYXRpb25QcmVzZW50ZXIuY3BwCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL05vdGlmaWNhdGlvblByZXNl
bnRlci5jcHAKQEAgLTMxLDE0ICszMSwxNCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgogCi0jaW5jbHVkZSAiYmFzZS90YXNrLmgiIC8v
IEZJWE1FOiBSZW1vdmUgdGhpcwogI2luY2x1ZGUgImdvb2dsZXVybC9zcmMvZ3VybC5oIgorI2lu
Y2x1ZGUgInB1YmxpYy9XZWJLaXQuaCIKKyNpbmNsdWRlICJwdWJsaWMvV2ViS2l0Q2xpZW50Lmgi
CiAjaW5jbHVkZSAicHVibGljL1dlYk5vdGlmaWNhdGlvbi5oIgogI2luY2x1ZGUgInB1YmxpYy9X
ZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaCIKICNpbmNsdWRlICJwdWJsaWMvV2Vi
U2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJwdWJsaWMvV2ViU3RyaW5nLmgiCiAjaW5jbHVk
ZSAicHVibGljL1dlYlVSTC5oIgotI2luY2x1ZGUgIndlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBw
b3J0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCkBAIC01MSw5ICs1MSwxMSBAQCBzdGF0aWMgV2ViU3RyaW5nIGlkZW50
aWZpZXJGb3JOb3RpZmljYXRpb24oY29uc3QgV2ViTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24p
CiAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbi50aXRsZSgpOwogfQogCi1zdGF0aWMgdm9pZCBkZWZl
cnJlZERpc3BsYXlEaXNwYXRjaChXZWJOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQorc3RhdGlj
IHZvaWQgZGVmZXJyZWREaXNwbGF5RGlzcGF0Y2godm9pZCogY29udGV4dCkKIHsKLSAgICBub3Rp
ZmljYXRpb24uZGlzcGF0Y2hEaXNwbGF5RXZlbnQoKTsKKyAgICBXZWJOb3RpZmljYXRpb24qIG5v
dGlmaWNhdGlvbiA9IHN0YXRpY19jYXN0PFdlYk5vdGlmaWNhdGlvbio+KGNvbnRleHQpOworICAg
IG5vdGlmaWNhdGlvbi0+ZGlzcGF0Y2hEaXNwbGF5RXZlbnQoKTsKKyAgICBkZWxldGUgbm90aWZp
Y2F0aW9uOwogfQogCiB2b2lkIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6Z3JhbnRQZXJtaXNzaW9u
KGNvbnN0IFdlYlN0cmluZyYgb3JpZ2luKQpAQCAtMTA1LDggKzEwNyw3IEBAIGJvb2wgTm90aWZp
Y2F0aW9uUHJlc2VudGVyOjpzaG93KGNvbnN0IFdlYk5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9u
KQogICAgIFdURjo6U3RyaW5nIGlkKGlkZW50aWZpZXIuZGF0YSgpLCBpZGVudGlmaWVyLmxlbmd0
aCgpKTsKICAgICBtX2FjdGl2ZU5vdGlmaWNhdGlvbnMuc2V0KGlkLCBub3RpZmljYXRpb24pOwog
Ci0gICAgV2ViTm90aWZpY2F0aW9uIGV2ZW50VGFyZ2V0KG5vdGlmaWNhdGlvbik7Ci0gICAgd2Vi
a2l0X3N1cHBvcnQ6OlBvc3RUYXNrRnJvbUhlcmUoTmV3UnVubmFibGVGdW5jdGlvbigmZGVmZXJy
ZWREaXNwbGF5RGlzcGF0Y2gsIGV2ZW50VGFyZ2V0KSk7CisgICAgd2ViS2l0Q2xpZW50KCktPmNh
bGxPbk1haW5UaHJlYWQoZGVmZXJyZWREaXNwbGF5RGlzcGF0Y2gsIG5ldyBXZWJOb3RpZmljYXRp
b24obm90aWZpY2F0aW9uKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rhc2suY3BwIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y5MGQ4Y2RiZGY3
ZjFkMjhhNzJiOGU4YzcyYWU2MGMzZmJjYTI3NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rhc2suY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGFzay5oIgorCisjaW5jbHVkZSAicHVibGljL1dl
YktpdC5oIgorI2luY2x1ZGUgInB1YmxpYy9XZWJLaXRDbGllbnQuaCIKKyNpbmNsdWRlICJ3ZWJr
aXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgorCitXZWJUYXNrOjpXZWJUYXNrKFRhc2tMaXN0
KiBsaXN0KTogbV90YXNrTGlzdChsaXN0KSB7IG1fdGFza0xpc3QtPnJlZ2lzdGVyVGFzayh0aGlz
KTsgfQorV2ViVGFzazo6fldlYlRhc2soKSB7IG1fdGFza0xpc3QtPnVucmVnaXN0ZXJUYXNrKHRo
aXMpOyB9CisKK3ZvaWQgVGFza0xpc3Q6OnVucmVnaXN0ZXJUYXNrKFdlYlRhc2sqIHRhc2spCit7
CisgICAgc2l6ZV90IGluZGV4ID0gbV90YXNrcy5maW5kKHRhc2spOworICAgIGlmIChpbmRleCAh
PSBub3RGb3VuZCkKKyAgICAgICAgbV90YXNrcy5yZW1vdmUoaW5kZXgpOworfQorCit2b2lkIFRh
c2tMaXN0OjpyZXZva2VBbGwoKQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3Rh
c2tzLnNpemUoKTsgKytpKQorICAgICAgICBtX3Rhc2tzW2ldLT5jYW5jZWwoKTsKKyAgICBtX3Rh
c2tzLmNsZWFyKCk7Cit9CisKK3N0YXRpYyB2b2lkIGludm9rZVRhc2sodm9pZCogY29udGV4dCkK
K3sKKyAgICBXZWJUYXNrKiB0YXNrID0gc3RhdGljX2Nhc3Q8V2ViVGFzayo+KGNvbnRleHQpOwor
ICAgIHRhc2stPnJ1bigpOworICAgIGRlbGV0ZSB0YXNrOworfQorCit2b2lkIHBvc3RUYXNrKFdl
YlRhc2sqIHRhc2spCit7CisgICAgV2ViS2l0Ojp3ZWJLaXRDbGllbnQoKS0+Y2FsbE9uTWFpblRo
cmVhZChpbnZva2VUYXNrLCBzdGF0aWNfY2FzdDx2b2lkKj4odGFzaykpOworfQorCit2b2lkIHBv
c3REZWxheWVkVGFzayhXZWJUYXNrKiB0YXNrLCBpbnQ2NF90IG1zKQoreworICAgIHdlYmtpdF9z
dXBwb3J0OjpQb3N0RGVsYXllZFRhc2soaW52b2tlVGFzaywgc3RhdGljX2Nhc3Q8dm9pZCo+KHRh
c2spLCBtcyk7Cit9CisKKwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGFzay5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGFz
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM5ZmI4ZjJkMmVmMzQ2ODlmZmY1NTYwYjgxOGMzNjc5MzI0ODVkYmQK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
YXNrLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGFza19oCisjZGVmaW5lIFRhc2tfaAorCisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitjbGFzcyBUYXNrTGlzdDsKKworLy8gV2ViVGFzayBy
ZXByZXNlbnRzIGEgdGFzayB3aGljaCBjYW4gcnVuIGJ5IHBvc3RUYXNrKCkgb3IgcG9zdERlbGF5
ZWRUYXNrKCkuCisvLyBpdCBpcyBuYW1lZCAiV2ViVGFzayIsIG5vdCAiVGFzayIsIHRvIGF2b2lk
IGNvbmZsaXN0IHdpdGggYmFzZS90YXNrLmguCitjbGFzcyBXZWJUYXNrIHsKK3B1YmxpYzoKKyAg
ICBXZWJUYXNrKFRhc2tMaXN0Kik7CisgICAgLy8gVGhlIG1haW4gY29kZSBvZiB0aGlzIHRhc2su
CisgICAgLy8gQW4gaW1wbGVtZW50YXRpb24gb2YgcnVuKCkgc2hvdWxkIHJldHVybiBpbW1lZGlh
dGVseSBpZiBjYW5jZWwoKSB3YXMgY2FsbGVkLgorICAgIHZpcnR1YWwgdm9pZCBydW4oKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpID0gMDsKKyAgICB2aXJ0dWFsIH5XZWJUYXNrKCk7
Citwcml2YXRlOgorICAgIFRhc2tMaXN0KiBtX3Rhc2tMaXN0OworfTsKKworY2xhc3MgVGFza0xp
c3QgeworcHVibGljOgorICAgIFRhc2tMaXN0KCkge30KKyAgICB+VGFza0xpc3QoKSB7IHJldm9r
ZUFsbCgpOyB9CisgICAgdm9pZCByZWdpc3RlclRhc2soV2ViVGFzayogdGFzaykgeyBtX3Rhc2tz
LmFwcGVuZCh0YXNrKTsgfQorICAgIHZvaWQgdW5yZWdpc3RlclRhc2soV2ViVGFzayogdGFzayk7
CisgICAgdm9pZCByZXZva2VBbGwoKTsKK3ByaXZhdGU6CisgICAgVmVjdG9yPFdlYlRhc2sqPiBt
X3Rhc2tzOworfTsKKworLy8gQSB0YXNrIGNvbnRhaW5pbmcgYW4gb2JqZWN0IHBvaW50ZXIgb2Yg
Y2xhc3MgVC4gSXMgaXMgc3VwcG9zZWQgdGhhdAorLy8gcnVuaWZWYWxpZCgpIGNhbGxzIGEgbWVt
YmVyIGZ1bmN0aW9uIG9mIHRoZSBvYmplY3QgcG9pbnRlci4KKy8vIENsYXNzIFQgbXVzdCBoYXZl
ICJUYXNrTGlzdCogdGFza0xpc3QoKSIuCit0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBNZXRob2RU
YXNrOiBwdWJsaWMgV2ViVGFzayB7CitwdWJsaWM6CisgICAgTWV0aG9kVGFzayhUKiBvYmplY3Qp
OiBXZWJUYXNrKG9iamVjdC0+dGFza0xpc3QoKSksIG1fb2JqZWN0KG9iamVjdCkge30KKyAgICB2
aXJ0dWFsIHZvaWQgcnVuKCkKKyAgICB7CisgICAgICAgIGlmIChtX29iamVjdCkKKyAgICAgICAg
ICAgIHJ1bklmVmFsaWQoKTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpIHsgbV9v
YmplY3QgPSAwOyB9CisgICAgdmlydHVhbCB2b2lkIHJ1bklmVmFsaWQoKSA9IDA7Citwcm90ZWN0
ZWQ6CisgICAgVCogbV9vYmplY3Q7Cit9OworCit2b2lkIHBvc3RUYXNrKFdlYlRhc2sqIHRhc2sp
Owordm9pZCBwb3N0RGVsYXllZFRhc2soV2ViVGFzayogdGFzaywgaW50NjRfdCBtcyk7CisKKyNl
bmRpZiAvLyBUYXNrX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>