<?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>35988</bug_id>
          
          <creation_ts>2010-03-10 15:12:39 -0800</creation_ts>
          <short_desc>[chromium] Add API wrapper for SerializedScriptValue</short_desc>
          <delta_ts>2010-03-10 16:59:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Fisher (:fishd, Google)">fishd</reporter>
          <assigned_to name="Darin Fisher (:fishd, Google)">fishd</assigned_to>
          <cc>jorlow</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>198365</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-10 15:12:39 -0800</bug_when>
    <thetext>[chromium] Add API wrapper for SerializedScriptValue

Expose this through WebHistoryItem as a &apos;stateObject&apos; property
to support history.{push,replace}State.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198367</commentid>
    <comment_count>1</comment_count>
      <attachid>50443</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-10 15:13:58 -0800</bug_when>
    <thetext>Created attachment 50443
v1 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198370</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-10 15:15:49 -0800</bug_when>
    <thetext>Attachment 50443 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/public/WebPrivatePtr.h:48:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198373</commentid>
    <comment_count>3</comment_count>
      <attachid>50444</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-10 15:18:25 -0800</bug_when>
    <thetext>Created attachment 50444
v2 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198413</commentid>
    <comment_count>4</comment_count>
      <attachid>50444</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-03-10 16:33:16 -0800</bug_when>
    <thetext>Comment on attachment 50444
v2 patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198423</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-10 16:59:36 -0800</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/55820</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50443</attachid>
            <date>2010-03-10 15:13:58 -0800</date>
            <delta_ts>2010-03-10 15:18:25 -0800</delta_ts>
            <desc>v1 patch</desc>
            <filename>value_1.txt</filename>
            <type>text/plain</type>
            <size>19190</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1NTgxMCkKKysrIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wMy0xMCAgRGFy
aW4gRmlzaGVyICA8ZGFyaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgd3JhcHBlciBmb3IgV2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNTk4OAorCisgICAgICAgIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBpcyBh
IHdyYXBwZXIgYXJvdW5kIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS4KKworICAgICAgICBXZWJQcml2
YXRlUHRyIGlzIHVzZWQgdG8gc2ltcGxpZnkgd3JhcHBpbmcgcmVmZXJlbmNlIGNvdW50ZWQgV2Vi
Q29yZQorICAgICAgICB0eXBlcy4gIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBjbGVhbnVwIFdlYkhp
c3RvcnlJdGVtLCBhbmQgd2lsbCBiZSB1c2VkCisgICAgICAgIHRvIGNsZWFuIHVwIG90aGVyIGNs
YXNzZXMgaW4gdGhlIFdlYktpdCBBUEkgaW4gYSBmb2xsb3ctdXAgcGF0Y2guCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJIaXN0b3J5SXRlbS5oOgorICAgICAg
ICAqIHB1YmxpYy9XZWJQcml2YXRlUHRyLmg6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaDogQWRkZWQuCisgICAgICAgICogc3JjL1dlYkhpc3RvcnlJ
dGVtLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDogQWRk
ZWQuCisKIDIwMTAtMDMtMTAgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJ
KHJldmlzaW9uIDU1ODEwKQorKysgV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdvcmtpbmcg
Y29weSkKQEAgLTE1OSw2ICsxNTksNyBAQCAgICAgICAgICAgICAnbXN2c19ndWlkJzogJzVFQ0VD
OUU1LThGMjMtCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQb2ludC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYlBvcHVwTWVudS5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlBvcHVwTWVudUluZm8uaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQcml2YXRl
UHRyLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUmFuZ2UuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJSZWN0LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUmVn
dWxhckV4cHJlc3Npb24uaCcsCkBAIC0xNjksNiArMTcwLDcgQEAgICAgICAgICAgICAgJ21zdnNf
Z3VpZCc6ICc1RUNFQzlFNS04RjIzLQogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU2VhcmNo
YWJsZUZvcm1EYXRhLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU2VjdXJpdHlPcmln
aW4uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5oJywKKyAg
ICAgICAgICAgICAgICAncHVibGljL1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYlNldHRpbmdzLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViU2hhcmVkV29ya2VyLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU2hhcmVk
V29ya2VyUmVwb3NpdG9yeS5oJywKQEAgLTM0OSw2ICszNTEsNyBAQCAgICAgICAgICAgICAnbXN2
c19ndWlkJzogJzVFQ0VDOUU1LThGMjMtCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTZWFyY2hh
YmxlRm9ybURhdGEuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlNlY3VyaXR5T3JpZ2lu
LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAnLAorICAg
ICAgICAgICAgICAgICdzcmMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYlNldHRpbmdzSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlNoYXJlZFdvcmtl
ckltcGwuY3BwJywKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSGlzdG9yeUl0ZW0u
aA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSGlzdG9yeUl0ZW0u
aAkocmV2aXNpb24gNTU4MTApCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkhpc3RvcnlJ
dGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE3ICszMiwxNCBAQAogI2RlZmluZSBXZWJIaXN0
b3J5SXRlbV9oCiAKICNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2YXRl
UHRyLmgiCiAKLSNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KIG5hbWVzcGFjZSBXZWJDb3JlIHsg
Y2xhc3MgSGlzdG9yeUl0ZW07IH0KLW5hbWVzcGFjZSBXVEYgeyB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4gY2xhc3MgUGFzc1JlZlB0cjsgfQotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewotCi1j
bGFzcyBXZWJIaXN0b3J5SXRlbVByaXZhdGU7CiBjbGFzcyBXZWJIVFRQQm9keTsKIGNsYXNzIFdl
YlN0cmluZzsKK2NsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIHN0cnVjdCBXZWJQb2lu
dDsKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBXZWJWZWN0b3I7CiAKQEAgLTU1LDggKzUy
LDggQEAgY2xhc3MgV2ViSGlzdG9yeUl0ZW0gewogcHVibGljOgogICAgIH5XZWJIaXN0b3J5SXRl
bSgpIHsgcmVzZXQoKTsgfQogCi0gICAgV2ViSGlzdG9yeUl0ZW0oKSA6IG1fcHJpdmF0ZSgwKSB7
IH0KLSAgICBXZWJIaXN0b3J5SXRlbShjb25zdCBXZWJIaXN0b3J5SXRlbSYgaCkgOiBtX3ByaXZh
dGUoMCkgeyBhc3NpZ24oaCk7IH0KKyAgICBXZWJIaXN0b3J5SXRlbSgpIHsgfQorICAgIFdlYkhp
c3RvcnlJdGVtKGNvbnN0IFdlYkhpc3RvcnlJdGVtJiBoKSB7IGFzc2lnbihoKTsgfQogICAgIFdl
Ykhpc3RvcnlJdGVtJiBvcGVyYXRvcj0oY29uc3QgV2ViSGlzdG9yeUl0ZW0mIGgpCiAgICAgewog
ICAgICAgICBhc3NpZ24oaCk7CkBAIC02Nyw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICBXRUJLSVRf
QVBJIHZvaWQgcmVzZXQoKTsKICAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYkhp
c3RvcnlJdGVtJik7CiAKLSAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuICFtX3ByaXZh
dGU7IH0KKyAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5pc051bGwo
KTsgfQogCiAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdXJsU3RyaW5nKCkgY29uc3Q7CiAgICAg
V0VCS0lUX0FQSSB2b2lkIHNldFVSTFN0cmluZyhjb25zdCBXZWJTdHJpbmcmKTsKQEAgLTEwOCw2
ICsxMDUsOSBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBsb25nIGxvbmcgZG9jdW1lbnRTZXF1
ZW5jZU51bWJlcigpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9pZCBzZXREb2N1bWVudFNlcXVl
bmNlTnVtYmVyKGxvbmcgbG9uZyk7CiAKKyAgICBXRUJLSVRfQVBJIFdlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSBzdGF0ZU9iamVjdCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBzZXRTdGF0
ZU9iamVjdChjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKTsKKwogICAgIFdFQktJVF9B
UEkgV2ViU3RyaW5nIGh0dHBDb250ZW50VHlwZSgpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9p
ZCBzZXRIVFRQQ29udGVudFR5cGUoY29uc3QgV2ViU3RyaW5nJik7CiAKQEAgLTEyNSw5ICsxMjUs
OCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2b2lkIGFzc2lnbihXZWJIaXN0
b3J5SXRlbVByaXZhdGUqKTsKICAgICB2b2lkIGVuc3VyZU11dGFibGUoKTsKLSAgICBXZWJIaXN0
b3J5SXRlbVByaXZhdGUqIG1fcHJpdmF0ZTsKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6Okhp
c3RvcnlJdGVtPiBtX3ByaXZhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUHJpdmF0ZVB0ci5oDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQcml2YXRlUHRyLmgJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlByaXZhdGVQdHIuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYlByaXZhdGVQdHJfaAorI2RlZmluZSBXZWJQcml2YXRlUHRy
X2gKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFRoaXMgY2xhc3MgaXMgYW4g
aW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIHRoZSBXZWJLaXQgQVBJLiAgSXQgZXhpc3RzCisvLyB0
byBoZWxwIHNpbXBsaWZ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBXZWJLaXQgaW50ZXJmYWNlcyB0
aGF0IG1lcmVseQorLy8gd3JhcCBhIHJlZmVyZW5jZSBjb3VudGVkIFdlYkNvcmUgY2xhc3MuCit0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIFdlYlByaXZhdGVQdHIgeworcHVibGljOgorICAg
IFdlYlByaXZhdGVQdHIoKSA6IG1fcHRyKDApIHsgfQorCisgICAgYm9vbCBpc051bGwoKSBjb25z
dCB7IHJldHVybiAhbV9wdHI7IH07CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBX
ZWJQcml2YXRlUHRyKGNvbnN0IFBhc3NSZWZQdHI8VD4mIHBycCkKKyAgICAgICAgOiBtX3B0cihw
cnAucmVsZWFzZVJlZigpKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0KCkKKyAgICB7
CisgICAgICAgIGFzc2lnbigwKTsKKyAgICB9CisKKyAgICB2b2lkIGFzc2lnbihUKiBwKQorICAg
IHsKKyAgICAgICAgLy8gcCBpcyBhbHJlYWR5IHJlZidkIGZvciB1cyBieSB0aGUgY2FsbGVyCisg
ICAgICAgIGlmIChtX3B0cikKKyAgICAgICAgICAgIG1fcHRyLT5kZXJlZigpOworICAgICAgICBt
X3B0ciA9IHA7CisgICAgfQorCisgICAgV2ViUHJpdmF0ZVB0cjxUPiYgb3BlcmF0b3I9KGNvbnN0
IFdlYlByaXZhdGVQdHI8VD4mIG90aGVyKQorICAgIHsKKyAgICAgICAgVCogcCA9IG90aGVyLm1f
cHRyOworICAgICAgICBpZiAocCkKKyAgICAgICAgICAgIHAtPnJlZigpOworICAgICAgICBhc3Np
Z24ocCk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBXZWJQcml2YXRlUHRy
PFQ+JiBvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0cjxUPiYgcHJwKQorICAgIHsKKyAgICAgICAg
YXNzaWduKHBycC5yZWxlYXNlUmVmKCkpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQor
CisgICAgVCogZ2V0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3B0cjsKKyAgICB9
CisKKyAgICBUKiBvcGVyYXRvci0+KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3B0
cik7CisgICAgICAgIHJldHVybiBtX3B0cjsKKyAgICB9CisjZW5kaWYKKworcHJpdmF0ZToKKyAg
ICBUKiBtX3B0cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKDQpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBXZWJLaXRcY2hyb21pdW1ccHVibGljXFdlYlByaXZhdGVQdHIuaA0K
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXw0KQWRkZWQ6IHN2bjplb2wtc3R5bGUNCiAgICsgTEYNCg0KSW5kZXg6IFdlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCShy
ZXZpc2lvbiAwKQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXJpYWxpemVkU2NyaXB0
VmFsdWUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlX2gKKyNkZWZpbmUgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlX2gKKworI2lu
Y2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeyBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7IH0KKworbmFtZXNwYWNl
IFdlYktpdCB7CitjbGFzcyBXZWJTdHJpbmc7CisKK2NsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSB7CitwdWJsaWM6CisgICAgfldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpIHsgcmVzZXQo
KTsgfQorCisgICAgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKCkgeyB9CisgICAgV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgZCkgeyBhc3Np
Z24oZCk7IH0KKyAgICBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIG9wZXJhdG9yPShjb25zdCBX
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIGQpCisgICAgeworICAgICAgICBhc3NpZ24oZCk7Cisg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUgZnJvbVN0cmluZyhjb25zdCBXZWJTdHJpbmcmKTsKKworICAg
IFdFQktJVF9BUEkgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ24oY29u
c3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJik7CisKKyAgICBib29sIGlzTnVsbCgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJpdmF0ZS5pc051bGwoKTsgfQorCisgICAgLy8gUmV0dXJucyBhIHN0cmlu
ZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLgorICAgIFdF
QktJVF9BUEkgV2ViU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CisKKyNpZiBXRUJLSVRfSU1QTEVN
RU5UQVRJT04KKyAgICBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUoY29uc3QgV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mKTsKKyAgICBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUmIG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYpOworICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJD
b3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+KCkgY29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToK
KyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9wcml2
YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgoNClByb3BlcnR5IGNo
YW5nZXMgb246IFdlYktpdFxjaHJvbWl1bVxwdWJsaWNcV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18NCkFkZGVkOiBzdm46ZW9sLXN0eWxlDQogICArIExGDQoNCkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhpc3RvcnlJdGVtLmNwcA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSGlzdG9yeUl0ZW0uY3BwCShyZXZpc2lvbiA1NTgxMCkKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViSGlzdG9yeUl0ZW0uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRlICJXZWJIVFRQQm9keS5oIgogI2luY2x1ZGUgIldl
YlBvaW50LmgiCisjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVk
ZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAKQEAgLTQ0LDMwICs0NSwy
MyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNs
YXNzIFdlYkhpc3RvcnlJdGVtUHJpdmF0ZSA6IHB1YmxpYyBIaXN0b3J5SXRlbSB7Ci19OwotCiB2
b2lkIFdlYkhpc3RvcnlJdGVtOjppbml0aWFsaXplKCkKIHsKLSAgICBhc3NpZ24oc3RhdGljX2Nh
c3Q8V2ViSGlzdG9yeUl0ZW1Qcml2YXRlKj4oSGlzdG9yeUl0ZW06OmNyZWF0ZSgpLnJlbGVhc2VS
ZWYoKSkpOworICAgIG1fcHJpdmF0ZSA9IEhpc3RvcnlJdGVtOjpjcmVhdGUoKTsKIH0KIAogdm9p
ZCBXZWJIaXN0b3J5SXRlbTo6cmVzZXQoKQogewotICAgIGFzc2lnbigwKTsKKyAgICBtX3ByaXZh
dGUucmVzZXQoKTsKIH0KIAogdm9pZCBXZWJIaXN0b3J5SXRlbTo6YXNzaWduKGNvbnN0IFdlYkhp
c3RvcnlJdGVtJiBvdGhlcikKIHsKLSAgICBXZWJIaXN0b3J5SXRlbVByaXZhdGUqIHAgPSBjb25z
dF9jYXN0PFdlYkhpc3RvcnlJdGVtUHJpdmF0ZSo+KG90aGVyLm1fcHJpdmF0ZSk7Ci0gICAgaWYg
KHApCi0gICAgICAgIHAtPnJlZigpOwotICAgIGFzc2lnbihwKTsKKyAgICBtX3ByaXZhdGUgPSBv
dGhlci5tX3ByaXZhdGU7CiB9CiAKIFdlYlN0cmluZyBXZWJIaXN0b3J5SXRlbTo6dXJsU3RyaW5n
KCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIWlzTnVsbCgpKTsKICAgICByZXR1cm4gbV9wcml2YXRl
LT51cmxTdHJpbmcoKTsKIH0KIApAQCAtNzksNyArNzMsNiBAQCAgICAgbV9wcml2YXRlLT5zZXRV
UkxTdHJpbmcoS1VSTChQYXJzZWRVCiAKIFdlYlN0cmluZyBXZWJIaXN0b3J5SXRlbTo6b3JpZ2lu
YWxVUkxTdHJpbmcoKSBjb25zdAogewotICAgIEFTU0VSVCghaXNOdWxsKCkpOwogICAgIHJldHVy
biBtX3ByaXZhdGUtPm9yaWdpbmFsVVJMU3RyaW5nKCk7CiB9CiAKQEAgLTkxLDcgKzg0LDYgQEAg
ICAgIG1fcHJpdmF0ZS0+c2V0T3JpZ2luYWxVUkxTdHJpbmcob3JpZwogCiBXZWJTdHJpbmcgV2Vi
SGlzdG9yeUl0ZW06OnJlZmVycmVyKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIWlzTnVsbCgpKTsK
ICAgICByZXR1cm4gbV9wcml2YXRlLT5yZWZlcnJlcigpOwogfQogCkBAIC0xMDMsNyArOTUsNiBA
QCAgICAgbV9wcml2YXRlLT5zZXRSZWZlcnJlcihyZWZlcnJlcik7CiAKIFdlYlN0cmluZyBXZWJI
aXN0b3J5SXRlbTo6dGFyZ2V0KCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIWlzTnVsbCgpKTsKICAg
ICByZXR1cm4gbV9wcml2YXRlLT50YXJnZXQoKTsKIH0KIApAQCAtMTE1LDcgKzEwNiw2IEBAICAg
ICBtX3ByaXZhdGUtPnNldFRhcmdldCh0YXJnZXQpOwogCiBXZWJTdHJpbmcgV2ViSGlzdG9yeUl0
ZW06OnBhcmVudCgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFpc051bGwoKSk7CiAgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+cGFyZW50KCk7CiB9CiAKQEAgLTEyNyw3ICsxMTcsNiBAQCAgICAgbV9wcml2
YXRlLT5zZXRQYXJlbnQocGFyZW50KTsKIAogV2ViU3RyaW5nIFdlYkhpc3RvcnlJdGVtOjp0aXRs
ZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFpc051bGwoKSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0
ZS0+dGl0bGUoKTsKIH0KIApAQCAtMTM5LDcgKzEyOCw2IEBAICAgICBtX3ByaXZhdGUtPnNldFRp
dGxlKHRpdGxlKTsKIAogV2ViU3RyaW5nIFdlYkhpc3RvcnlJdGVtOjphbHRlcm5hdGVUaXRsZSgp
IGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFpc051bGwoKSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
YWx0ZXJuYXRlVGl0bGUoKTsKIH0KIApAQCAtMTUxLDcgKzEzOSw2IEBAICAgICBtX3ByaXZhdGUt
PnNldEFsdGVybmF0ZVRpdGxlKGFsdGVybmEKIAogZG91YmxlIFdlYkhpc3RvcnlJdGVtOjpsYXN0
VmlzaXRlZFRpbWUoKSBjb25zdAogewotICAgIEFTU0VSVCghaXNOdWxsKCkpOwogICAgIHJldHVy
biBtX3ByaXZhdGUtPmxhc3RWaXNpdGVkVGltZSgpOwogfQogCkBAIC0xNjgsNyArMTU1LDYgQEAg
ICAgIG1fcHJpdmF0ZS0+c2V0VmlzaXRDb3VudChjb3VudCk7CiAKIFdlYlBvaW50IFdlYkhpc3Rv
cnlJdGVtOjpzY3JvbGxPZmZzZXQoKSBjb25zdAogewotICAgIEFTU0VSVCghaXNOdWxsKCkpOwog
ICAgIHJldHVybiBtX3ByaXZhdGUtPnNjcm9sbFBvaW50KCk7CiB9CiAKQEAgLTE4MCw3ICsxNjYs
NiBAQCAgICAgbV9wcml2YXRlLT5zZXRTY3JvbGxQb2ludChzY3JvbGxPZmZzCiAKIGJvb2wgV2Vi
SGlzdG9yeUl0ZW06OmlzVGFyZ2V0SXRlbSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFpc051bGwo
KSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNUYXJnZXRJdGVtKCk7CiB9CiAKQEAgLTE5Miw3
ICsxNzcsNiBAQCAgICAgbV9wcml2YXRlLT5zZXRJc1RhcmdldEl0ZW0oaXNUYXJnZXRJCiAKIGlu
dCBXZWJIaXN0b3J5SXRlbTo6dmlzaXRDb3VudCgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFpc051
bGwoKSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dmlzaXRDb3VudCgpOwogfQogCkBAIC0yMDQs
NyArMTg4LDYgQEAgICAgIG1fcHJpdmF0ZS0+c2V0VmlzaXRDb3VudChjb3VudCk7CiAKIFdlYlZl
Y3RvcjxXZWJTdHJpbmc+IFdlYkhpc3RvcnlJdGVtOjpkb2N1bWVudFN0YXRlKCkgY29uc3QKIHsK
LSAgICBBU1NFUlQoIWlzTnVsbCgpKTsKICAgICByZXR1cm4gbV9wcml2YXRlLT5kb2N1bWVudFN0
YXRlKCk7CiB9CiAKQEAgLTIyMCw3ICsyMDMsNiBAQCAgICAgbV9wcml2YXRlLT5zZXREb2N1bWVu
dFN0YXRlKGRzKTsKIAogbG9uZyBsb25nIFdlYkhpc3RvcnlJdGVtOjpkb2N1bWVudFNlcXVlbmNl
TnVtYmVyKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIWlzTnVsbCgpKTsKICAgICByZXR1cm4gbV9w
cml2YXRlLT5kb2N1bWVudFNlcXVlbmNlTnVtYmVyKCk7CiB9CiAKQEAgLTIzMCw5ICsyMTIsMTkg
QEAgdm9pZCBXZWJIaXN0b3J5SXRlbTo6c2V0RG9jdW1lbnRTZXF1ZW5jZQogICAgIG1fcHJpdmF0
ZS0+c2V0RG9jdW1lbnRTZXF1ZW5jZU51bWJlcihkb2N1bWVudFNlcXVlbmNlTnVtYmVyKTsKIH0K
IAorV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIFdlYkhpc3RvcnlJdGVtOjpzdGF0ZU9iamVjdCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShtX3ByaXZhdGUt
PnN0YXRlT2JqZWN0KCkpOworfQorCit2b2lkIFdlYkhpc3RvcnlJdGVtOjpzZXRTdGF0ZU9iamVj
dChjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIG9iamVjdCkKK3sKKyAgICBlbnN1cmVN
dXRhYmxlKCk7CisgICAgbV9wcml2YXRlLT5zZXRTdGF0ZU9iamVjdChvYmplY3QpOworfQorCiBX
ZWJTdHJpbmcgV2ViSGlzdG9yeUl0ZW06Omh0dHBDb250ZW50VHlwZSgpIGNvbnN0CiB7Ci0gICAg
QVNTRVJUKCFpc051bGwoKSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Zm9ybUNvbnRlbnRUeXBl
KCk7CiB9CiAKQEAgLTI0NCw3ICsyMzYsNiBAQCAgICAgbV9wcml2YXRlLT5zZXRGb3JtQ29udGVu
dFR5cGUoaHR0cENvCiAKIFdlYkhUVFBCb2R5IFdlYkhpc3RvcnlJdGVtOjpodHRwQm9keSgpIGNv
bnN0CiB7Ci0gICAgQVNTRVJUKCFpc051bGwoKSk7CiAgICAgcmV0dXJuIFdlYkhUVFBCb2R5KG1f
cHJpdmF0ZS0+Zm9ybURhdGEoKSk7CiB9CiAKQEAgLTI1Niw3ICsyNDcsNiBAQCAgICAgbV9wcml2
YXRlLT5zZXRGb3JtRGF0YShodHRwQm9keSk7CiAKIFdlYlZlY3RvcjxXZWJIaXN0b3J5SXRlbT4g
V2ViSGlzdG9yeUl0ZW06OmNoaWxkcmVuKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIWlzTnVsbCgp
KTsKICAgICByZXR1cm4gbV9wcml2YXRlLT5jaGlsZHJlbigpOwogfQogCkBAIC0yNzUsMzQgKzI2
NSwyNSBAQCAgICAgbV9wcml2YXRlLT5hZGRDaGlsZEl0ZW0oaXRlbSk7CiB9CiAKIFdlYkhpc3Rv
cnlJdGVtOjpXZWJIaXN0b3J5SXRlbShjb25zdCBQYXNzUmVmUHRyPEhpc3RvcnlJdGVtPiYgaXRl
bSkKLSAgICA6IG1fcHJpdmF0ZShzdGF0aWNfY2FzdDxXZWJIaXN0b3J5SXRlbVByaXZhdGUqPihp
dGVtLnJlbGVhc2VSZWYoKSkpCisgICAgOiBtX3ByaXZhdGUoaXRlbSkKIHsKIH0KIAogV2ViSGlz
dG9yeUl0ZW0mIFdlYkhpc3RvcnlJdGVtOjpvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0cjxIaXN0
b3J5SXRlbT4mIGl0ZW0pCiB7Ci0gICAgYXNzaWduKHN0YXRpY19jYXN0PFdlYkhpc3RvcnlJdGVt
UHJpdmF0ZSo+KGl0ZW0ucmVsZWFzZVJlZigpKSk7CisgICAgbV9wcml2YXRlID0gaXRlbTsKICAg
ICByZXR1cm4gKnRoaXM7CiB9CiAKIFdlYkhpc3RvcnlJdGVtOjpvcGVyYXRvciBQYXNzUmVmUHRy
PEhpc3RvcnlJdGVtPigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZTsKLX0KLQotdm9p
ZCBXZWJIaXN0b3J5SXRlbTo6YXNzaWduKFdlYkhpc3RvcnlJdGVtUHJpdmF0ZSogcCkKLXsKLSAg
ICAvLyBwIGlzIGFscmVhZHkgcmVmJ2QgZm9yIHVzIGJ5IHRoZSBjYWxsZXIKLSAgICBpZiAobV9w
cml2YXRlKQotICAgICAgICBtX3ByaXZhdGUtPmRlcmVmKCk7Ci0gICAgbV9wcml2YXRlID0gcDsK
KyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOwogfQogCiB2b2lkIFdlYkhpc3RvcnlJdGVtOjpl
bnN1cmVNdXRhYmxlKCkKIHsKLSAgICBBU1NFUlQoIWlzTnVsbCgpKTsKICAgICBpZiAoIW1fcHJp
dmF0ZS0+aGFzT25lUmVmKCkpCi0gICAgICAgIGFzc2lnbihzdGF0aWNfY2FzdDxXZWJIaXN0b3J5
SXRlbVByaXZhdGUqPihtX3ByaXZhdGUtPmNvcHkoKS5yZWxlYXNlUmVmKCkpKTsKKyAgICAgICAg
bV9wcml2YXRlID0gbV9wcml2YXRlLT5jb3B5KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorCisjaW5j
bHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBX
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQo
KTsKK30KKwordm9pZCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFzc2lnbihjb25zdCBXZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUmIG90aGVyKQoreworICAgIG1fcHJpdmF0ZSA9IG90aGVyLm1f
cHJpdmF0ZTsKK30KKworV2ViU3RyaW5nIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dG9TdHJp
bmcoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnRvV2lyZVN0cmluZygpOworfQor
CitXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShjb25z
dCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mIHZhbHVlKQorICAgIDogbV9wcml2
YXRlKHZhbHVlKQoreworfQorCitXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIFdlYlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiYgdmFsdWUpCit7CisgICAgbV9wcml2YXRlID0gdmFsdWU7CisgICAgcmV0dXJuICp0
aGlzOworfQorCitXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om9wZXJhdG9yIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS5n
ZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg0KUHJvcGVydHkgY2hhbmdlcyBvbjog
V2ViS2l0XGNocm9taXVtXHNyY1xXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwDQpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fDQpBZGRlZDogc3ZuOmVvbC1zdHlsZQ0KICAgKyBMRg0KDQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50444</attachid>
            <date>2010-03-10 15:18:25 -0800</date>
            <delta_ts>2010-03-10 16:33:16 -0800</delta_ts>
            <desc>v2 patch</desc>
            <filename>value_2.txt</filename>
            <type>text/plain</type>
            <size>19189</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1NTgxMCkKKysrIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wMy0xMCAgRGFy
aW4gRmlzaGVyICA8ZGFyaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgd3JhcHBlciBmb3IgV2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNTk4OAorCisgICAgICAgIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBpcyBh
IHdyYXBwZXIgYXJvdW5kIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS4KKworICAgICAgICBXZWJQcml2
YXRlUHRyIGlzIHVzZWQgdG8gc2ltcGxpZnkgd3JhcHBpbmcgcmVmZXJlbmNlIGNvdW50ZWQgV2Vi
Q29yZQorICAgICAgICB0eXBlcy4gIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBjbGVhbnVwIFdlYkhp
c3RvcnlJdGVtLCBhbmQgd2lsbCBiZSB1c2VkCisgICAgICAgIHRvIGNsZWFuIHVwIG90aGVyIGNs
YXNzZXMgaW4gdGhlIFdlYktpdCBBUEkgaW4gYSBmb2xsb3ctdXAgcGF0Y2guCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJIaXN0b3J5SXRlbS5oOgorICAgICAg
ICAqIHB1YmxpYy9XZWJQcml2YXRlUHRyLmg6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaDogQWRkZWQuCisgICAgICAgICogc3JjL1dlYkhpc3RvcnlJ
dGVtLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDogQWRk
ZWQuCisKIDIwMTAtMDMtMTAgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJ
KHJldmlzaW9uIDU1ODEwKQorKysgV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdvcmtpbmcg
Y29weSkKQEAgLTE1OSw2ICsxNTksNyBAQCAgICAgICAgICAgICAnbXN2c19ndWlkJzogJzVFQ0VD
OUU1LThGMjMtCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQb2ludC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYlBvcHVwTWVudS5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlBvcHVwTWVudUluZm8uaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQcml2YXRl
UHRyLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUmFuZ2UuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJSZWN0LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUmVn
dWxhckV4cHJlc3Npb24uaCcsCkBAIC0xNjksNiArMTcwLDcgQEAgICAgICAgICAgICAgJ21zdnNf
Z3VpZCc6ICc1RUNFQzlFNS04RjIzLQogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU2VhcmNo
YWJsZUZvcm1EYXRhLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU2VjdXJpdHlPcmln
aW4uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5oJywKKyAg
ICAgICAgICAgICAgICAncHVibGljL1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYlNldHRpbmdzLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViU2hhcmVkV29ya2VyLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU2hhcmVk
V29ya2VyUmVwb3NpdG9yeS5oJywKQEAgLTM0OSw2ICszNTEsNyBAQCAgICAgICAgICAgICAnbXN2
c19ndWlkJzogJzVFQ0VDOUU1LThGMjMtCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTZWFyY2hh
YmxlRm9ybURhdGEuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlNlY3VyaXR5T3JpZ2lu
LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAnLAorICAg
ICAgICAgICAgICAgICdzcmMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYlNldHRpbmdzSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlNoYXJlZFdvcmtl
ckltcGwuY3BwJywKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSGlzdG9yeUl0ZW0u
aA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSGlzdG9yeUl0ZW0u
aAkocmV2aXNpb24gNTU4MTApCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkhpc3RvcnlJ
dGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE3ICszMiwxNCBAQAogI2RlZmluZSBXZWJIaXN0
b3J5SXRlbV9oCiAKICNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2YXRl
UHRyLmgiCiAKLSNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KIG5hbWVzcGFjZSBXZWJDb3JlIHsg
Y2xhc3MgSGlzdG9yeUl0ZW07IH0KLW5hbWVzcGFjZSBXVEYgeyB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4gY2xhc3MgUGFzc1JlZlB0cjsgfQotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewotCi1j
bGFzcyBXZWJIaXN0b3J5SXRlbVByaXZhdGU7CiBjbGFzcyBXZWJIVFRQQm9keTsKIGNsYXNzIFdl
YlN0cmluZzsKK2NsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIHN0cnVjdCBXZWJQb2lu
dDsKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBXZWJWZWN0b3I7CiAKQEAgLTU1LDggKzUy
LDggQEAgY2xhc3MgV2ViSGlzdG9yeUl0ZW0gewogcHVibGljOgogICAgIH5XZWJIaXN0b3J5SXRl
bSgpIHsgcmVzZXQoKTsgfQogCi0gICAgV2ViSGlzdG9yeUl0ZW0oKSA6IG1fcHJpdmF0ZSgwKSB7
IH0KLSAgICBXZWJIaXN0b3J5SXRlbShjb25zdCBXZWJIaXN0b3J5SXRlbSYgaCkgOiBtX3ByaXZh
dGUoMCkgeyBhc3NpZ24oaCk7IH0KKyAgICBXZWJIaXN0b3J5SXRlbSgpIHsgfQorICAgIFdlYkhp
c3RvcnlJdGVtKGNvbnN0IFdlYkhpc3RvcnlJdGVtJiBoKSB7IGFzc2lnbihoKTsgfQogICAgIFdl
Ykhpc3RvcnlJdGVtJiBvcGVyYXRvcj0oY29uc3QgV2ViSGlzdG9yeUl0ZW0mIGgpCiAgICAgewog
ICAgICAgICBhc3NpZ24oaCk7CkBAIC02Nyw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICBXRUJLSVRf
QVBJIHZvaWQgcmVzZXQoKTsKICAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYkhp
c3RvcnlJdGVtJik7CiAKLSAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuICFtX3ByaXZh
dGU7IH0KKyAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5pc051bGwo
KTsgfQogCiAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdXJsU3RyaW5nKCkgY29uc3Q7CiAgICAg
V0VCS0lUX0FQSSB2b2lkIHNldFVSTFN0cmluZyhjb25zdCBXZWJTdHJpbmcmKTsKQEAgLTEwOCw2
ICsxMDUsOSBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBsb25nIGxvbmcgZG9jdW1lbnRTZXF1
ZW5jZU51bWJlcigpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9pZCBzZXREb2N1bWVudFNlcXVl
bmNlTnVtYmVyKGxvbmcgbG9uZyk7CiAKKyAgICBXRUJLSVRfQVBJIFdlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSBzdGF0ZU9iamVjdCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBzZXRTdGF0
ZU9iamVjdChjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKTsKKwogICAgIFdFQktJVF9B
UEkgV2ViU3RyaW5nIGh0dHBDb250ZW50VHlwZSgpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9p
ZCBzZXRIVFRQQ29udGVudFR5cGUoY29uc3QgV2ViU3RyaW5nJik7CiAKQEAgLTEyNSw5ICsxMjUs
OCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2b2lkIGFzc2lnbihXZWJIaXN0
b3J5SXRlbVByaXZhdGUqKTsKICAgICB2b2lkIGVuc3VyZU11dGFibGUoKTsKLSAgICBXZWJIaXN0
b3J5SXRlbVByaXZhdGUqIG1fcHJpdmF0ZTsKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6Okhp
c3RvcnlJdGVtPiBtX3ByaXZhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUHJpdmF0ZVB0ci5oDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQcml2YXRlUHRyLmgJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlByaXZhdGVQdHIuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYlByaXZhdGVQdHJfaAorI2RlZmluZSBXZWJQcml2YXRlUHRy
X2gKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFRoaXMgY2xhc3MgaXMgYW4g
aW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIHRoZSBXZWJLaXQgQVBJLiAgSXQgZXhpc3RzCisvLyB0
byBoZWxwIHNpbXBsaWZ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBXZWJLaXQgaW50ZXJmYWNlcyB0
aGF0IG1lcmVseQorLy8gd3JhcCBhIHJlZmVyZW5jZSBjb3VudGVkIFdlYkNvcmUgY2xhc3MuCit0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2NsYXNzIFdlYlByaXZhdGVQdHIgeworcHVibGljOgorICAg
IFdlYlByaXZhdGVQdHIoKSA6IG1fcHRyKDApIHsgfQorCisgICAgYm9vbCBpc051bGwoKSBjb25z
dCB7IHJldHVybiAhbV9wdHI7IH0KKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdl
YlByaXZhdGVQdHIoY29uc3QgUGFzc1JlZlB0cjxUPiYgcHJwKQorICAgICAgICA6IG1fcHRyKHBy
cC5yZWxlYXNlUmVmKCkpCisgICAgeworICAgIH0KKworICAgIHZvaWQgcmVzZXQoKQorICAgIHsK
KyAgICAgICAgYXNzaWduKDApOworICAgIH0KKworICAgIHZvaWQgYXNzaWduKFQqIHApCisgICAg
eworICAgICAgICAvLyBwIGlzIGFscmVhZHkgcmVmJ2QgZm9yIHVzIGJ5IHRoZSBjYWxsZXIKKyAg
ICAgICAgaWYgKG1fcHRyKQorICAgICAgICAgICAgbV9wdHItPmRlcmVmKCk7CisgICAgICAgIG1f
cHRyID0gcDsKKyAgICB9CisKKyAgICBXZWJQcml2YXRlUHRyPFQ+JiBvcGVyYXRvcj0oY29uc3Qg
V2ViUHJpdmF0ZVB0cjxUPiYgb3RoZXIpCisgICAgeworICAgICAgICBUKiBwID0gb3RoZXIubV9w
dHI7CisgICAgICAgIGlmIChwKQorICAgICAgICAgICAgcC0+cmVmKCk7CisgICAgICAgIGFzc2ln
bihwKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIFdlYlByaXZhdGVQdHI8
VD4mIG9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+JiBwcnApCisgICAgeworICAgICAgICBh
c3NpZ24ocHJwLnJlbGVhc2VSZWYoKSk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisK
KyAgICBUKiBnZXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fcHRyOworICAgIH0K
KworICAgIFQqIG9wZXJhdG9yLT4oKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fcHRy
KTsKKyAgICAgICAgcmV0dXJuIG1fcHRyOworICAgIH0KKyNlbmRpZgorCitwcml2YXRlOgorICAg
IFQqIG1fcHRyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgoNClByb3Bl
cnR5IGNoYW5nZXMgb246IFdlYktpdFxjaHJvbWl1bVxwdWJsaWNcV2ViUHJpdmF0ZVB0ci5oDQpf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fDQpBZGRlZDogc3ZuOmVvbC1zdHlsZQ0KICAgKyBMRg0KDQpJbmRleDogV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHJl
dmlzaW9uIDApCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWVfaAorI2RlZmluZSBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWVfaAorCisjaW5j
bHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7IGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsgfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKK2NsYXNzIFdlYlN0cmluZzsKKworY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlIHsKK3B1YmxpYzoKKyAgICB+V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKCkgeyByZXNldCgp
OyB9CisKKyAgICBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUoKSB7IH0KKyAgICBXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiBkKSB7IGFzc2ln
bihkKTsgfQorICAgIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgb3BlcmF0b3I9KGNvbnN0IFdl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgZCkKKyAgICB7CisgICAgICAgIGFzc2lnbihkKTsKKyAg
ICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSBmcm9tU3RyaW5nKGNvbnN0IFdlYlN0cmluZyYpOworCisgICAg
V0VCS0lUX0FQSSB2b2lkIHJlc2V0KCk7CisgICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25z
dCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKTsKKworICAgIGJvb2wgaXNOdWxsKCkgY29uc3Qg
eyByZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOyB9CisKKyAgICAvLyBSZXR1cm5zIGEgc3RyaW5n
IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuCisgICAgV0VC
S0lUX0FQSSBXZWJTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKKworI2lmIFdFQktJVF9JTVBMRU1F
TlRBVElPTgorICAgIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShjb25zdCBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYpOworICAgIFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSYgb3BlcmF0b3I9KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWU+Jik7CisgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4oKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgor
ICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX3ByaXZh
dGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCg0KUHJvcGVydHkgY2hh
bmdlcyBvbjogV2ViS2l0XGNocm9taXVtXHB1YmxpY1xXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXw0KQWRkZWQ6IHN2bjplb2wtc3R5bGUNCiAgICsgTEYNCg0KSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSGlzdG9yeUl0ZW0uY3BwDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJIaXN0b3J5SXRlbS5jcHAJKHJldmlzaW9uIDU1ODEwKQorKysg
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIaXN0b3J5SXRlbS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDYgKzM3LDcgQEAKIAogI2luY2x1ZGUgIldlYkhUVFBCb2R5LmgiCiAjaW5jbHVkZSAiV2Vi
UG9pbnQuaCIKKyNpbmNsdWRlICJXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRl
ICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIKIApAQCAtNDQsMzAgKzQ1LDIz
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xh
c3MgV2ViSGlzdG9yeUl0ZW1Qcml2YXRlIDogcHVibGljIEhpc3RvcnlJdGVtIHsKLX07Ci0KIHZv
aWQgV2ViSGlzdG9yeUl0ZW06OmluaXRpYWxpemUoKQogewotICAgIGFzc2lnbihzdGF0aWNfY2Fz
dDxXZWJIaXN0b3J5SXRlbVByaXZhdGUqPihIaXN0b3J5SXRlbTo6Y3JlYXRlKCkucmVsZWFzZVJl
ZigpKSk7CisgICAgbV9wcml2YXRlID0gSGlzdG9yeUl0ZW06OmNyZWF0ZSgpOwogfQogCiB2b2lk
IFdlYkhpc3RvcnlJdGVtOjpyZXNldCgpCiB7Ci0gICAgYXNzaWduKDApOworICAgIG1fcHJpdmF0
ZS5yZXNldCgpOwogfQogCiB2b2lkIFdlYkhpc3RvcnlJdGVtOjphc3NpZ24oY29uc3QgV2ViSGlz
dG9yeUl0ZW0mIG90aGVyKQogewotICAgIFdlYkhpc3RvcnlJdGVtUHJpdmF0ZSogcCA9IGNvbnN0
X2Nhc3Q8V2ViSGlzdG9yeUl0ZW1Qcml2YXRlKj4ob3RoZXIubV9wcml2YXRlKTsKLSAgICBpZiAo
cCkKLSAgICAgICAgcC0+cmVmKCk7Ci0gICAgYXNzaWduKHApOworICAgIG1fcHJpdmF0ZSA9IG90
aGVyLm1fcHJpdmF0ZTsKIH0KIAogV2ViU3RyaW5nIFdlYkhpc3RvcnlJdGVtOjp1cmxTdHJpbmco
KSBjb25zdAogewotICAgIEFTU0VSVCghaXNOdWxsKCkpOwogICAgIHJldHVybiBtX3ByaXZhdGUt
PnVybFN0cmluZygpOwogfQogCkBAIC03OSw3ICs3Myw2IEBAICAgICBtX3ByaXZhdGUtPnNldFVS
TFN0cmluZyhLVVJMKFBhcnNlZFUKIAogV2ViU3RyaW5nIFdlYkhpc3RvcnlJdGVtOjpvcmlnaW5h
bFVSTFN0cmluZygpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFpc051bGwoKSk7CiAgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+b3JpZ2luYWxVUkxTdHJpbmcoKTsKIH0KIApAQCAtOTEsNyArODQsNiBAQCAg
ICAgbV9wcml2YXRlLT5zZXRPcmlnaW5hbFVSTFN0cmluZyhvcmlnCiAKIFdlYlN0cmluZyBXZWJI
aXN0b3J5SXRlbTo6cmVmZXJyZXIoKSBjb25zdAogewotICAgIEFTU0VSVCghaXNOdWxsKCkpOwog
ICAgIHJldHVybiBtX3ByaXZhdGUtPnJlZmVycmVyKCk7CiB9CiAKQEAgLTEwMyw3ICs5NSw2IEBA
ICAgICBtX3ByaXZhdGUtPnNldFJlZmVycmVyKHJlZmVycmVyKTsKIAogV2ViU3RyaW5nIFdlYkhp
c3RvcnlJdGVtOjp0YXJnZXQoKSBjb25zdAogewotICAgIEFTU0VSVCghaXNOdWxsKCkpOwogICAg
IHJldHVybiBtX3ByaXZhdGUtPnRhcmdldCgpOwogfQogCkBAIC0xMTUsNyArMTA2LDYgQEAgICAg
IG1fcHJpdmF0ZS0+c2V0VGFyZ2V0KHRhcmdldCk7CiAKIFdlYlN0cmluZyBXZWJIaXN0b3J5SXRl
bTo6cGFyZW50KCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIWlzTnVsbCgpKTsKICAgICByZXR1cm4g
bV9wcml2YXRlLT5wYXJlbnQoKTsKIH0KIApAQCAtMTI3LDcgKzExNyw2IEBAICAgICBtX3ByaXZh
dGUtPnNldFBhcmVudChwYXJlbnQpOwogCiBXZWJTdHJpbmcgV2ViSGlzdG9yeUl0ZW06OnRpdGxl
KCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIWlzTnVsbCgpKTsKICAgICByZXR1cm4gbV9wcml2YXRl
LT50aXRsZSgpOwogfQogCkBAIC0xMzksNyArMTI4LDYgQEAgICAgIG1fcHJpdmF0ZS0+c2V0VGl0
bGUodGl0bGUpOwogCiBXZWJTdHJpbmcgV2ViSGlzdG9yeUl0ZW06OmFsdGVybmF0ZVRpdGxlKCkg
Y29uc3QKIHsKLSAgICBBU1NFUlQoIWlzTnVsbCgpKTsKICAgICByZXR1cm4gbV9wcml2YXRlLT5h
bHRlcm5hdGVUaXRsZSgpOwogfQogCkBAIC0xNTEsNyArMTM5LDYgQEAgICAgIG1fcHJpdmF0ZS0+
c2V0QWx0ZXJuYXRlVGl0bGUoYWx0ZXJuYQogCiBkb3VibGUgV2ViSGlzdG9yeUl0ZW06Omxhc3RW
aXNpdGVkVGltZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFpc051bGwoKSk7CiAgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+bGFzdFZpc2l0ZWRUaW1lKCk7CiB9CiAKQEAgLTE2OCw3ICsxNTUsNiBAQCAg
ICAgbV9wcml2YXRlLT5zZXRWaXNpdENvdW50KGNvdW50KTsKIAogV2ViUG9pbnQgV2ViSGlzdG9y
eUl0ZW06OnNjcm9sbE9mZnNldCgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFpc051bGwoKSk7CiAg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2Nyb2xsUG9pbnQoKTsKIH0KIApAQCAtMTgwLDcgKzE2Niw2
IEBAICAgICBtX3ByaXZhdGUtPnNldFNjcm9sbFBvaW50KHNjcm9sbE9mZnMKIAogYm9vbCBXZWJI
aXN0b3J5SXRlbTo6aXNUYXJnZXRJdGVtKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIWlzTnVsbCgp
KTsKICAgICByZXR1cm4gbV9wcml2YXRlLT5pc1RhcmdldEl0ZW0oKTsKIH0KIApAQCAtMTkyLDcg
KzE3Nyw2IEBAICAgICBtX3ByaXZhdGUtPnNldElzVGFyZ2V0SXRlbShpc1RhcmdldEkKIAogaW50
IFdlYkhpc3RvcnlJdGVtOjp2aXNpdENvdW50KCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIWlzTnVs
bCgpKTsKICAgICByZXR1cm4gbV9wcml2YXRlLT52aXNpdENvdW50KCk7CiB9CiAKQEAgLTIwNCw3
ICsxODgsNiBAQCAgICAgbV9wcml2YXRlLT5zZXRWaXNpdENvdW50KGNvdW50KTsKIAogV2ViVmVj
dG9yPFdlYlN0cmluZz4gV2ViSGlzdG9yeUl0ZW06OmRvY3VtZW50U3RhdGUoKSBjb25zdAogewot
ICAgIEFTU0VSVCghaXNOdWxsKCkpOwogICAgIHJldHVybiBtX3ByaXZhdGUtPmRvY3VtZW50U3Rh
dGUoKTsKIH0KIApAQCAtMjIwLDcgKzIwMyw2IEBAICAgICBtX3ByaXZhdGUtPnNldERvY3VtZW50
U3RhdGUoZHMpOwogCiBsb25nIGxvbmcgV2ViSGlzdG9yeUl0ZW06OmRvY3VtZW50U2VxdWVuY2VO
dW1iZXIoKSBjb25zdAogewotICAgIEFTU0VSVCghaXNOdWxsKCkpOwogICAgIHJldHVybiBtX3By
aXZhdGUtPmRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKTsKIH0KIApAQCAtMjMwLDkgKzIxMiwxOSBA
QCB2b2lkIFdlYkhpc3RvcnlJdGVtOjpzZXREb2N1bWVudFNlcXVlbmNlCiAgICAgbV9wcml2YXRl
LT5zZXREb2N1bWVudFNlcXVlbmNlTnVtYmVyKGRvY3VtZW50U2VxdWVuY2VOdW1iZXIpOwogfQog
CitXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUgV2ViSGlzdG9yeUl0ZW06OnN0YXRlT2JqZWN0KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKG1fcHJpdmF0ZS0+
c3RhdGVPYmplY3QoKSk7Cit9CisKK3ZvaWQgV2ViSGlzdG9yeUl0ZW06OnNldFN0YXRlT2JqZWN0
KGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgb2JqZWN0KQoreworICAgIGVuc3VyZU11
dGFibGUoKTsKKyAgICBtX3ByaXZhdGUtPnNldFN0YXRlT2JqZWN0KG9iamVjdCk7Cit9CisKIFdl
YlN0cmluZyBXZWJIaXN0b3J5SXRlbTo6aHR0cENvbnRlbnRUeXBlKCkgY29uc3QKIHsKLSAgICBB
U1NFUlQoIWlzTnVsbCgpKTsKICAgICByZXR1cm4gbV9wcml2YXRlLT5mb3JtQ29udGVudFR5cGUo
KTsKIH0KIApAQCAtMjQ0LDcgKzIzNiw2IEBAICAgICBtX3ByaXZhdGUtPnNldEZvcm1Db250ZW50
VHlwZShodHRwQ28KIAogV2ViSFRUUEJvZHkgV2ViSGlzdG9yeUl0ZW06Omh0dHBCb2R5KCkgY29u
c3QKIHsKLSAgICBBU1NFUlQoIWlzTnVsbCgpKTsKICAgICByZXR1cm4gV2ViSFRUUEJvZHkobV9w
cml2YXRlLT5mb3JtRGF0YSgpKTsKIH0KIApAQCAtMjU2LDcgKzI0Nyw2IEBAICAgICBtX3ByaXZh
dGUtPnNldEZvcm1EYXRhKGh0dHBCb2R5KTsKIAogV2ViVmVjdG9yPFdlYkhpc3RvcnlJdGVtPiBX
ZWJIaXN0b3J5SXRlbTo6Y2hpbGRyZW4oKSBjb25zdAogewotICAgIEFTU0VSVCghaXNOdWxsKCkp
OwogICAgIHJldHVybiBtX3ByaXZhdGUtPmNoaWxkcmVuKCk7CiB9CiAKQEAgLTI3NSwzNCArMjY1
LDI1IEBAICAgICBtX3ByaXZhdGUtPmFkZENoaWxkSXRlbShpdGVtKTsKIH0KIAogV2ViSGlzdG9y
eUl0ZW06OldlYkhpc3RvcnlJdGVtKGNvbnN0IFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+JiBpdGVt
KQotICAgIDogbV9wcml2YXRlKHN0YXRpY19jYXN0PFdlYkhpc3RvcnlJdGVtUHJpdmF0ZSo+KGl0
ZW0ucmVsZWFzZVJlZigpKSkKKyAgICA6IG1fcHJpdmF0ZShpdGVtKQogewogfQogCiBXZWJIaXN0
b3J5SXRlbSYgV2ViSGlzdG9yeUl0ZW06Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPEhpc3Rv
cnlJdGVtPiYgaXRlbSkKIHsKLSAgICBhc3NpZ24oc3RhdGljX2Nhc3Q8V2ViSGlzdG9yeUl0ZW1Q
cml2YXRlKj4oaXRlbS5yZWxlYXNlUmVmKCkpKTsKKyAgICBtX3ByaXZhdGUgPSBpdGVtOwogICAg
IHJldHVybiAqdGhpczsKIH0KIAogV2ViSGlzdG9yeUl0ZW06Om9wZXJhdG9yIFBhc3NSZWZQdHI8
SGlzdG9yeUl0ZW0+KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlOwotfQotCi12b2lk
IFdlYkhpc3RvcnlJdGVtOjphc3NpZ24oV2ViSGlzdG9yeUl0ZW1Qcml2YXRlKiBwKQotewotICAg
IC8vIHAgaXMgYWxyZWFkeSByZWYnZCBmb3IgdXMgYnkgdGhlIGNhbGxlcgotICAgIGlmIChtX3By
aXZhdGUpCi0gICAgICAgIG1fcHJpdmF0ZS0+ZGVyZWYoKTsKLSAgICBtX3ByaXZhdGUgPSBwOwor
ICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7CiB9CiAKIHZvaWQgV2ViSGlzdG9yeUl0ZW06OmVu
c3VyZU11dGFibGUoKQogewotICAgIEFTU0VSVCghaXNOdWxsKCkpOwogICAgIGlmICghbV9wcml2
YXRlLT5oYXNPbmVSZWYoKSkKLSAgICAgICAgYXNzaWduKHN0YXRpY19jYXN0PFdlYkhpc3RvcnlJ
dGVtUHJpdmF0ZSo+KG1fcHJpdmF0ZS0+Y29weSgpLnJlbGVhc2VSZWYoKSkpOworICAgICAgICBt
X3ByaXZhdGUgPSBtX3ByaXZhdGUtPmNvcHkoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisKKyNpbmNs
dWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6cmVzZXQoKQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgp
OworfQorCit2b2lkIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YXNzaWduKGNvbnN0IFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSYgb3RoZXIpCit7CisgICAgbV9wcml2YXRlID0gb3RoZXIubV9w
cml2YXRlOworfQorCitXZWJTdHJpbmcgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOjp0b1N0cmlu
ZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dG9XaXJlU3RyaW5nKCk7Cit9CisK
K1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKGNvbnN0
IFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYgdmFsdWUpCisgICAgOiBtX3ByaXZh
dGUodmFsdWUpCit7Cit9CisKK1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgV2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+JiB2YWx1ZSkKK3sKKyAgICBtX3ByaXZhdGUgPSB2YWx1ZTsKKyAgICByZXR1cm4gKnRo
aXM7Cit9CisKK1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6b3BlcmF0b3IgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLmdl
dCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKDQpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBX
ZWJLaXRcY2hyb21pdW1cc3JjXFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHANCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18NCkFkZGVkOiBzdm46ZW9sLXN0eWxlDQogICArIExGDQoNCg==
</data>
<flag name="review"
          id="33594"
          type_id="1"
          status="+"
          setter="jorlow"
    />
          </attachment>
      

    </bug>

</bugzilla>