<?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>22859</bug_id>
          
          <creation_ts>2008-12-14 18:10:06 -0800</creation_ts>
          <short_desc>Abstract away the use of JSDOMWindow in CachedPage and introduce ScriptCachedPageData abstraction.</short_desc>
          <delta_ts>2008-12-18 13:21:52 -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 Misc.</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>102517</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2008-12-14 18:10:06 -0800</bug_when>
    <thetext>I basically followed the same pattern as CachedPagePlatformData. Granted, this change only marginally improves separation of concerns, but it helps tremendously with the unforking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102520</commentid>
    <comment_count>1</comment_count>
      <attachid>26017</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2008-12-14 18:11:45 -0800</bug_when>
    <thetext>Created attachment 26017
ScriptCachedPageData v1

ScriptCachedPageData is a bit verbose, but I tried to stick with both Script prefix convention from existing JS abstractions and Data suffix convention of CachedPagePlatformData.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102673</commentid>
    <comment_count>2</comment_count>
      <attachid>26054</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2008-12-16 10:36:40 -0800</bug_when>
    <thetext>Created attachment 26054
ScriptCachedPageData v2 (added domWindow accessor)

Rebased to trunk, added domWindow accessor per recent changes to CachedPage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102674</commentid>
    <comment_count>3</comment_count>
      <attachid>26055</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2008-12-16 10:38:19 -0800</bug_when>
    <thetext>Created attachment 26055
ScriptCachedPageData v2.1 (added added bug URL)

I&apos;ve neglected adding the bug URL in the previous attachment -- fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102917</commentid>
    <comment_count>4</comment_count>
      <attachid>26055</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-12-18 12:58:23 -0800</bug_when>
    <thetext>Comment on attachment 26055
ScriptCachedPageData v2.1 (added added bug URL)

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102920</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2008-12-18 13:21:52 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/39379</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26017</attachid>
            <date>2008-12-14 18:11:45 -0800</date>
            <delta_ts>2008-12-16 10:36:40 -0800</delta_ts>
            <desc>ScriptCachedPageData v1</desc>
            <filename>cachedpage.patch</filename>
            <type>text/plain</type>
            <size>15795</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTBkZTJjOS4uOGM1YzM0MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAwOC0xMi0xNCAgRGltaXRyaSBHbGF6
a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFic3RyYWN0IGF3YXkgdGhlIHVzZSBvZiBKU0RPTVdpbmRv
dyBpbiBDYWNoZWRQYWdlIGFuZCBpbnRyb2R1Y2UKKyAgICAgICAgU2NyaXB0Q2FjaGVkUGFnZURh
dGEgYWJzdHJhY3Rpb24uCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkZWQgU2NyaXB0
Q2FjaGVkUGFnZURhdGEgdG8gcHJvamVjdC4KKyAgICAgICAgKiBXZWJDb3JlLnBybzogQWRkZWQg
U2NyaXB0Q2FjaGVkUGFnZURhdGEgdG8gcHJvamVjdC4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvajogQWRkZWQgU2NyaXB0Q2FjaGVkUGFnZURhdGEgdG8gcHJvamVjdC4K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIFNjcmlw
dENhY2hlZFBhZ2VEYXRhIHRvCisgICAgICAgICAgICBwcm9qZWN0LgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdENhY2hlZFBhZ2VEYXRhLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRDYWNoZWRQYWdlRGF0YTo6U2NyaXB0Q2FjaGVkUGFnZURhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0Q2FjaGVkUGFnZURhdGE6On5TY3JpcHRDYWNoZWRQYWdlRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRDYWNoZWRQYWdlRGF0YTo6cmVzdG9yZSk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRDYWNoZWRQYWdlRGF0YTo6Y2xlYXIpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdENhY2hlZFBhZ2VEYXRhLmg6IEFkZGVkLgorICAgICAgICAqIGhpc3Rvcnkv
Q2FjaGVkUGFnZS5jcHA6IFJlcGxhY2VkIEpTRE9NV2luZG93IGFuZCBQcm90ZWN0ZWRQdHIgd2l0
aAorICAgICAgICAgICAgU2NyaXB0Q2FjaGVkUGFnZURhdGEuCisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRQYWdlOjpDYWNoZWRQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFBhZ2U6OnJl
c3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUGFnZTo6Y2xlYXIpOgorICAgICAgICAq
IGhpc3RvcnkvQ2FjaGVkUGFnZS5oOiBSZXBsYWNlZCBKU0RPTVdpbmRvdyBhbmQgUHJvdGVjdGVk
UHRyIHdpdGgKKyAgICAgICAgICAgIFNjcmlwdENhY2hlZFBhZ2VEYXRhLgorCiAyMDA4LTEyLTEy
ICBCcmV0dCBXaWxzb24gIDxicmV0dHdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYmRjYTA2ZS4uMGUyODNjMyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0z
NDgsNiArMzQ4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1
bGVkQWN0aW9uLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uaCBc
CisJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAgXAorCVdlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkUGFnZURhdGEuaCBcCiAJV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDYWxsRnJhbWUuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENh
bGxGcmFtZS5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5jcHAgXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5k
ZXggMDBlNjU5My4uYWQwY2YwNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysg
Yi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00NDMsNiArNDQzLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNFdmVu
dExpc3RlbmVyLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmNwcCBcCisgICAgYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkUGFnZURhdGEuY3BwIFwKICAgICBi
aW5kaW5ncy9qcy9TY3JpcHRDYWxsRnJhbWUuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRD
YWxsU3RhY2suY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA0MDM4ZTU2Li4yYzQ1ZDhhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTE0MDM3LDYgKzE0MDM3LDE0
IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xTY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAiDQorCQkJCQk+DQorCQkJ
CTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNc
U2NyaXB0Q2FjaGVkUGFnZURhdGEuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8Rmls
ZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xTY3JpcHRDYWxsRnJhbWUuY3Bw
Ig0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBjN2U0ODZlLi45MDdlZmRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU2LDYgKzU1Niw4IEBACiAJCTQxNkU3NUNDMEVE
RjkwQzcwMDM2MEUxRCAvKiBTY3JpcHRDYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2RTc1Q0EwRURGOTBDNzAwMzYwRTFEIC8qIFNj
cmlwdENhbGxGcmFtZS5jcHAgKi87IH07CiAJCTQxNkY0NUYwMEVEN0IzMTEwMDgyMTVCNiAvKiBT
Y3JpcHRTdHJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNkY0NUVGMEVEN0IzMTEwMDgyMTVCNiAvKiBTY3JpcHRTdHJpbmcuaCAqLzsgfTsKIAkJ
NDFDNzYwQjEwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUM3NjBCMDBFREUwM0QzMDBDMTY1NUYg
LyogU2NyaXB0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk0MUYxRDIxRjBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkUGFnZURh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjFE
MjFEMEVGMzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRQYWdlRGF0YS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxRjFEMjIwMEVGMzVDMkEw
MERBODc1MyAvKiBTY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2Ny
aXB0Q2FjaGVkUGFnZURhdGEuY3BwICovOyB9OwogCQk0NDE1MjkyRTBFMUFFOEEwMDBDNEEyRDAg
LyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDQxNTI5MkMwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuaCAqLzsgfTsKIAkJNDQxNTI5MkYwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDQxNTI5MkQwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwICovOyB9OwogCQk0NDFCMDU1NjBDRDc3OUI2MDA3QzFGMTggLyogRE9NQ1NTU3R5
bGVTaGVldFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MjlBQUVBMENCODREQzcwMDc2NDdDNSAvKiBET01DU1NT
dHlsZVNoZWV0UHJpdmF0ZS5oICovOyB9OwpAQCAtNTM5MSw2ICs1MzkzLDggQEAKIAkJNDE2RTc1
Q0EwRURGOTBDNzAwMzYwRTFEIC8qIFNjcmlwdENhbGxGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRDYWxsRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTZGNDVFRjBFRDdCMzExMDA4MjE1QjYgLyogU2NyaXB0U3RyaW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFN0cmluZy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUM3NjBCMDBFREUwM0QzMDBDMTY1NUYgLyogU2Ny
aXB0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0U3RhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGMUQyMUQwRUYzNUMyQTAwREE4NzUz
IC8qIFNjcmlwdENhY2hlZFBhZ2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcmlwdENhY2hlZFBhZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxRjFEMjFFMEVGMzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRDYWNoZWRQYWdlRGF0YS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MTUyOTJDMEUxQUU4QTAwMEM0QTJE
MCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDQxNTI5MkQwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MjlBQUVBMENCODRE
QzcwMDc2NDdDNSAvKiBET01DU1NTdHlsZVNoZWV0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTU3R5bGVTaGVldFByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDc2LDYgKzEzMDgwLDggQEAKIAkJCQlCQ0U5OUVDMjBEQ0E2
MjQxMDAxODI2ODMgLyogSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuaCAqLywKIAkJCQlCQ0Ez
NzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmNwcCAqLywKIAkJCQlCQ0Ez
NzhCQjBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmggKi8sCisJCQkJNDFGMUQy
MUUwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZFBhZ2VEYXRhLmNwcCAqLywKKwkJCQk0
MUYxRDIxRDBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkUGFnZURhdGEuaCAqLywKIAkJ
CQk0MTZFNzVDQTBFREY5MEM3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbEZyYW1lLmNwcCAqLywKIAkJ
CQk0MTZFNzVDOTBFREY5MEM3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbEZyYW1lLmggKi8sCiAJCQkJ
NDE2RTc1QkQwRURGOEZENzAwMzYwRTFEIC8qIFNjcmlwdENhbGxTdGFjay5jcHAgKi8sCkBAIC0x
NjQzMCw2ICsxNjQzNiw3IEBACiAJCQkJMUE1NjlEMjMwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRp
bWVfb2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQyNTBEN0UyQjgyMDA3QzM5ODMg
LyogcnVudGltZV9yb290LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxRTA5OUU2NDkyMDA1
NkU1ODEgLyogdmlzaWJsZV91bml0cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFGMUQyMUYwRUYz
NUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZFBhZ2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTE4Mzc5LDYgKzE4Mzg2LDcgQEAKIAkJCQkxQTU2OUQyMjBEN0UyQjgyMDA3QzM5ODMgLyogcnVu
dGltZV9vYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMjQwRDdFMkI4MjAwN0Mz
OTgzIC8qIHJ1bnRpbWVfcm9vdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxRDA5OUU2
NDkyMDA1NkU1ODEgLyogdmlzaWJsZV91bml0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MUYx
RDIyMDBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkUGFnZURhdGEuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZFBhZ2VE
YXRhLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkUGFnZURhdGEuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZmI5MzUKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZFBhZ2VEYXRhLmNwcApAQCAtMCww
ICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA4LCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqIAorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICogCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWNoZWRQ
YWdlRGF0YS5oIgorCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJHQ0NvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCisjaW5jbHVkZSA8
cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisKK3VzaW5n
IG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2NyaXB0Q2FjaGVkUGFn
ZURhdGE6OlNjcmlwdENhY2hlZFBhZ2VEYXRhKFBhZ2UqIHBhZ2UpCit7CisgICAgSlNMb2NrIGxv
Y2soZmFsc2UpOworCisgICAgU2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29udHJvbGxlciA9IHBh
Z2UtPm1haW5GcmFtZSgpLT5zY3JpcHQoKTsKKyAgICBpZiAoc2NyaXB0Q29udHJvbGxlci0+aGF2
ZVdpbmRvd1NoZWxsKCkpIHsKKyAgICAgICAgbV93aW5kb3cgPSBzY3JpcHRDb250cm9sbGVyLT53
aW5kb3dTaGVsbCgpLT53aW5kb3coKTsKKyAgICB9Cit9CisKK1NjcmlwdENhY2hlZFBhZ2VEYXRh
Ojp+U2NyaXB0Q2FjaGVkUGFnZURhdGEoKQoreworICAgIGNsZWFyKCk7Cit9CisKK3ZvaWQgU2Ny
aXB0Q2FjaGVkUGFnZURhdGE6OnJlc3RvcmUoUGFnZSogcGFnZSkKK3sKKyAgICBGcmFtZSogbWFp
bkZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7CisKKyAgICBKU0xvY2sgbG9jayhmYWxzZSk7CisK
KyAgICBTY3JpcHRDb250cm9sbGVyKiBzY3JpcHRDb250cm9sbGVyID0gbWFpbkZyYW1lLT5zY3Jp
cHQoKTsKKyAgICBpZiAoc2NyaXB0Q29udHJvbGxlci0+aGF2ZVdpbmRvd1NoZWxsKCkpIHsKKyAg
ICAgICAgSlNET01XaW5kb3dTaGVsbCogd2luZG93U2hlbGwgPSBzY3JpcHRDb250cm9sbGVyLT53
aW5kb3dTaGVsbCgpOworICAgICAgICBpZiAobV93aW5kb3cpIHsKKyAgICAgICAgICAgIHdpbmRv
d1NoZWxsLT5zZXRXaW5kb3cobV93aW5kb3cuZ2V0KCkpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgd2luZG93U2hlbGwtPnNldFdpbmRvdyhtYWluRnJhbWUtPmRvbVdpbmRvdygpKTsK
KyAgICAgICAgICAgIHNjcmlwdENvbnRyb2xsZXItPmF0dGFjaERlYnVnZ2VyKHBhZ2UtPmRlYnVn
Z2VyKCkpOworICAgICAgICAgICAgd2luZG93U2hlbGwtPndpbmRvdygpLT5zZXRQcm9maWxlR3Jv
dXAocGFnZS0+Z3JvdXAoKS5pZGVudGlmaWVyKCkpOworICAgICAgICB9CisgICAgfQorfQorCit2
b2lkIFNjcmlwdENhY2hlZFBhZ2VEYXRhOjpjbGVhcigpCit7CisgICAgSlNMb2NrIGxvY2soZmFs
c2UpOworCisgICAgaWYgKCFtX3dpbmRvdykgeworICAgICAgICBtX3dpbmRvdyA9IDA7CisgICAg
ICAgIGdjQ29udHJvbGxlcigpLmdhcmJhZ2VDb2xsZWN0U29vbigpOworICAgIH0KK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDYWNoZWRQYWdlRGF0YS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRQYWdl
RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5N2Q2ZTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZFBhZ2VEYXRhLmgK
QEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOCwgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKiAKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcmlwdENhY2hlZFBhZ2VEYXRhX2gKKyNkZWZp
bmUgU2NyaXB0Q2FjaGVkUGFnZURhdGFfaAorCisjaW5jbHVkZSA8cnVudGltZS9Qcm90ZWN0Lmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBKU0RPTVdpbmRvdzsKKyAgICBjbGFz
cyBQYWdlOworCisgICAgY2xhc3MgU2NyaXB0Q2FjaGVkUGFnZURhdGEgIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIFNjcmlwdENhY2hlZFBhZ2VEYXRhKFBhZ2UqKTsKKyAgICAgICAgflNjcmlwdENh
Y2hlZFBhZ2VEYXRhKCk7CisKKyAgICAgICAgdm9pZCByZXN0b3JlKFBhZ2UqKTsKKyAgICAgICAg
dm9pZCBjbGVhcigpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgSlNDOjpQcm90ZWN0ZWRQdHI8
SlNET01XaW5kb3c+IG1fd2luZG93OworICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFNjcmlwdENhY2hlZFBhZ2VEYXRhX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aGlzdG9yeS9DYWNoZWRQYWdlLmNwcCBiL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcApp
bmRleCBlMjcxMmRjLi5iOGU0YzU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVk
UGFnZS5jcHAKKysrIGIvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCkBAIC0zNiwxNSAr
MzYsMTAgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiR0NDb250cm9sbGVyLmgiCi0jaW5jbHVk
ZSAiSlNET01XaW5kb3cuaCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvd1NoZWxsLmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIK
ICNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCi0jaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgot
I2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFr
Q291bnRlci5oPgogCiAjaWYgRU5BQkxFKFNWRykKQEAgLTcwLDYgKzY1LDcgQEAgQ2FjaGVkUGFn
ZTo6Q2FjaGVkUGFnZShQYWdlKiBwYWdlKQogICAgICwgbV92aWV3KHBhZ2UtPm1haW5GcmFtZSgp
LT52aWV3KCkpCiAgICAgLCBtX21vdXNlUHJlc3NOb2RlKHBhZ2UtPm1haW5GcmFtZSgpLT5ldmVu
dEhhbmRsZXIoKS0+bW91c2VQcmVzc05vZGUoKSkKICAgICAsIG1fVVJMKHBhZ2UtPm1haW5GcmFt
ZSgpLT5sb2FkZXIoKS0+dXJsKCkpCisgICAgLCBtX2NhY2hlZFBhZ2VTY3JpcHREYXRhKHBhZ2Up
CiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGNhY2hlZFBhZ2VDb3VudGVyLmluY3JlbWVudCgpOwpA
QCAtODAsMTMgKzc2LDYgQEAgQ2FjaGVkUGFnZTo6Q2FjaGVkUGFnZShQYWdlKiBwYWdlKQogICAg
IEZyYW1lKiBtYWluRnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsKICAgICBtYWluRnJhbWUtPmNs
ZWFyVGltZXJzKCk7CiAKLSAgICBKU0xvY2sgbG9jayhmYWxzZSk7Ci0KLSAgICBTY3JpcHRDb250
cm9sbGVyKiBwcm94eSA9IG1haW5GcmFtZS0+c2NyaXB0KCk7Ci0gICAgaWYgKHByb3h5LT5oYXZl
V2luZG93U2hlbGwoKSkgewotICAgICAgICBtX3dpbmRvdyA9IHByb3h5LT53aW5kb3dTaGVsbCgp
LT53aW5kb3coKTsKLSAgICB9Ci0KICAgICBtX2RvY3VtZW50LT5zZXRJblBhZ2VDYWNoZSh0cnVl
KTsKIH0KIApAQCAtMTA1LDE5ICs5NCw3IEBAIHZvaWQgQ2FjaGVkUGFnZTo6cmVzdG9yZShQYWdl
KiBwYWdlKQogCiAgICAgRnJhbWUqIG1haW5GcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwogCi0g
ICAgSlNMb2NrIGxvY2soZmFsc2UpOwotCi0gICAgU2NyaXB0Q29udHJvbGxlciogcHJveHkgPSBt
YWluRnJhbWUtPnNjcmlwdCgpOwotICAgIGlmIChwcm94eS0+aGF2ZVdpbmRvd1NoZWxsKCkpIHsK
LSAgICAgICAgSlNET01XaW5kb3dTaGVsbCogd2luZG93U2hlbGwgPSBwcm94eS0+d2luZG93U2hl
bGwoKTsKLSAgICAgICAgaWYgKG1fd2luZG93KSB7Ci0gICAgICAgICAgICB3aW5kb3dTaGVsbC0+
c2V0V2luZG93KG1fd2luZG93LmdldCgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IHdpbmRvd1NoZWxsLT5zZXRXaW5kb3cobWFpbkZyYW1lLT5kb21XaW5kb3coKSk7Ci0gICAgICAg
ICAgICBwcm94eS0+YXR0YWNoRGVidWdnZXIocGFnZS0+ZGVidWdnZXIoKSk7Ci0gICAgICAgICAg
ICB3aW5kb3dTaGVsbC0+d2luZG93KCktPnNldFByb2ZpbGVHcm91cChwYWdlLT5ncm91cCgpLmlk
ZW50aWZpZXIoKSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgbV9jYWNoZWRQYWdlU2NyaXB0RGF0
YS5yZXN0b3JlKHBhZ2UpOwogCiAjaWYgRU5BQkxFKFNWRykKICAgICBpZiAobV9kb2N1bWVudCAm
JiBtX2RvY3VtZW50LT5zdmdFeHRlbnNpb25zKCkpCkBAIC0xNjYsMTIgKzE0Myw5IEBAIHZvaWQg
Q2FjaGVkUGFnZTo6Y2xlYXIoKQogICAgIG1fbW91c2VQcmVzc05vZGUgPSAwOwogICAgIG1fVVJM
ID0gS1VSTCgpOwogCi0gICAgSlNMb2NrIGxvY2soZmFsc2UpOwotICAgIG1fd2luZG93ID0gMDsK
LQogICAgIG1fY2FjaGVkUGFnZVBsYXRmb3JtRGF0YS5jbGVhcigpOwogCi0gICAgZ2NDb250cm9s
bGVyKCkuZ2FyYmFnZUNvbGxlY3RTb29uKCk7CisgICAgbV9jYWNoZWRQYWdlU2NyaXB0RGF0YS5j
bGVhcigpOwogfQogCiB2b2lkIENhY2hlZFBhZ2U6OnNldERvY3VtZW50TG9hZGVyKFBhc3NSZWZQ
dHI8RG9jdW1lbnRMb2FkZXI+IGxvYWRlcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaGlzdG9yeS9D
YWNoZWRQYWdlLmggYi9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5oCmluZGV4IGQ1OThlNTIu
LmQ3M2QwNjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKKysrIGIv
V2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiS1VSTC5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDxydW50aW1lL1By
b3RlY3QuaD4KKyNpbmNsdWRlICJTY3JpcHRDYWNoZWRQYWdlRGF0YS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEZy
YW1lVmlldz4gbV92aWV3OwogICAgIFJlZlB0cjxOb2RlPiBtX21vdXNlUHJlc3NOb2RlOwogICAg
IEtVUkwgbV9VUkw7Ci0gICAgSlNDOjpQcm90ZWN0ZWRQdHI8SlNET01XaW5kb3c+IG1fd2luZG93
OworICAgIFNjcmlwdENhY2hlZFBhZ2VEYXRhIG1fY2FjaGVkUGFnZVNjcmlwdERhdGE7CiAgICAg
T3duUHRyPENhY2hlZFBhZ2VQbGF0Zm9ybURhdGE+IG1fY2FjaGVkUGFnZVBsYXRmb3JtRGF0YTsK
IH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26054</attachid>
            <date>2008-12-16 10:36:40 -0800</date>
            <delta_ts>2008-12-16 10:38:19 -0800</delta_ts>
            <desc>ScriptCachedPageData v2 (added domWindow accessor)</desc>
            <filename>cachedpage.patch</filename>
            <type>text/plain</type>
            <size>16237</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2Q3ODc1NC4uMjE0N2JjNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAwOC0xMi0xNiAgRGltaXRyaSBHbGF6
a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFic3RyYWN0IGF3YXkgdGhlIHVzZSBvZiBKU0RPTVdpbmRv
dyBpbiBDYWNoZWRQYWdlIGFuZCBpbnRyb2R1Y2UKKyAgICAgICAgU2NyaXB0Q2FjaGVkUGFnZURh
dGEgYWJzdHJhY3Rpb24uCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkZWQgU2NyaXB0
Q2FjaGVkUGFnZURhdGEgdG8gcHJvamVjdC4KKyAgICAgICAgKiBXZWJDb3JlLnBybzogQWRkZWQg
U2NyaXB0Q2FjaGVkUGFnZURhdGEgdG8gcHJvamVjdC4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvajogQWRkZWQgU2NyaXB0Q2FjaGVkUGFnZURhdGEgdG8gcHJvamVjdC4K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIFNjcmlw
dENhY2hlZFBhZ2VEYXRhIHRvCisgICAgICAgICAgICBwcm9qZWN0LgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdENhY2hlZFBhZ2VEYXRhLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRDYWNoZWRQYWdlRGF0YTo6U2NyaXB0Q2FjaGVkUGFnZURhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0Q2FjaGVkUGFnZURhdGE6On5TY3JpcHRDYWNoZWRQYWdlRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRDYWNoZWRQYWdlRGF0YTo6cmVzdG9yZSk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRDYWNoZWRQYWdlRGF0YTo6Y2xlYXIpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdENhY2hlZFBhZ2VEYXRhLmg6IEFkZGVkLgorICAgICAgICAqIGhpc3Rvcnkv
Q2FjaGVkUGFnZS5jcHA6IFJlcGxhY2VkIEpTRE9NV2luZG93IGFuZCBQcm90ZWN0ZWRQdHIgd2l0
aAorICAgICAgICAgICAgU2NyaXB0Q2FjaGVkUGFnZURhdGEuCisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRQYWdlOjpDYWNoZWRQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFBhZ2U6OmRv
bVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRQYWdlOjpyZXN0b3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFBhZ2U6OmNsZWFyKToKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hl
ZFBhZ2UuaDogUmVwbGFjZWQgSlNET01XaW5kb3cgYW5kIFByb3RlY3RlZFB0ciB3aXRoCisgICAg
ICAgICAgICBTY3JpcHRDYWNoZWRQYWdlRGF0YS4KKwogMjAwOC0xMi0xNiBZYWVsIEFoYXJvbiA8
eWFlbC5haGFyb25Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZl
c3Riw7guCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCBiMTY0OGJlLi5jODMxNmE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTM0OCw2ICszNDgs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJv
Y2Vzc29yQ3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24u
Y3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5oIFwKKwlXZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZFBhZ2VEYXRhLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDYWNoZWRQYWdlRGF0YS5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENhbGxGcmFtZS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbEZyYW1lLmgg
XAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmNwcCBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA5OWI5ZTgw
Li5kZDczNWRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5wcm8KQEAgLTQ0Myw2ICs0NDMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIu
Y3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIFwKKyAg
ICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAgXAogICAgIGJpbmRpbmdzL2pz
L1NjcmlwdENhbGxGcmFtZS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5j
cHAgXAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIFwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDlhZTc4NjkuLmQ5N2I3NmEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMTQwMzMsNiArMTQwMzMsMTQgQEAKIAkJCQkJ
Pg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXFNjcmlwdENhY2hlZFBhZ2VEYXRhLmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0K
KwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xTY3JpcHRDYWNo
ZWRQYWdlRGF0YS5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXFNjcmlwdENhbGxGcmFtZS5jcHAiDQogCQkJCQk+
DQogCQkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGU3Mzc3ZDkuLmQ2NTY3NDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC01NTgsNiArNTU4LDggQEAKIAkJNDE2RTc1Q0MwRURGOTBDNzAwMzYw
RTFEIC8qIFNjcmlwdENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTZFNzVDQTBFREY5MEM3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbEZy
YW1lLmNwcCAqLzsgfTsKIAkJNDE2RjQ1RjAwRUQ3QjMxMTAwODIxNUI2IC8qIFNjcmlwdFN0cmlu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2RjQ1
RUYwRUQ3QjMxMTAwODIxNUI2IC8qIFNjcmlwdFN0cmluZy5oICovOyB9OwogCQk0MUM3NjBCMTBF
REUwM0QzMDBDMTY1NUYgLyogU2NyaXB0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxQzc2MEIwMEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRT
dGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTQxRjFEMjFGMEVGMzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRQYWdlRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGMUQyMUQwRUYzNUMy
QTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZFBhZ2VEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDFGMUQyMjAwRUYzNUMyQTAwREE4NzUzIC8q
IFNjcmlwdENhY2hlZFBhZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRjFEMjFFMEVGMzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRQ
YWdlRGF0YS5jcHAgKi87IH07CiAJCTQ0MTUyOTJFMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVu
dC5oICovOyB9OwogCQk0NDE1MjkyRjBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NDE1MjkyRDBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAg
Ki87IH07CiAJCTQ0MUIwNTU2MENENzc5QjYwMDdDMUYxOCAvKiBET01DU1NTdHlsZVNoZWV0UHJp
dmF0ZS5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDQyOUFBRUEwQ0I4NERDNzAwNzY0N0M1IC8qIERPTUNTU1N0eWxlU2hlZXRQ
cml2YXRlLmggKi87IH07CkBAIC01Mzk0LDYgKzUzOTYsOCBAQAogCQk0MTZFNzVDQTBFREY5MEM3
MDAzNjBFMUQgLyogU2NyaXB0Q2FsbEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNjcmlwdENhbGxGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxNkY0NUVGMEVEN0IzMTEwMDgyMTVCNiAvKiBTY3JpcHRTdHJpbmcuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0U3RyaW5nLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxQzc2MEIwMEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRTdGF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MUYxRDIxRDBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0
Q2FjaGVkUGFnZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0
Q2FjaGVkUGFnZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGMUQyMUUw
RUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZFBhZ2VEYXRhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdENhY2hlZFBhZ2VEYXRhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQxNTI5MkMwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDE1
MjkyRDBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQyOUFBRUEwQ0I4NERDNzAwNzY0N0M1
IC8qIERPTUNTU1N0eWxlU2hlZXRQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01DU1NTdHlsZVNoZWV0UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTMwNzgsNiArMTMwODIsOCBAQAogCQkJCUJDRTk5RUMyMERDQTYyNDEwMDE4MjY4
MyAvKiBKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2
NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uY3BwICovLAogCQkJCUJDQTM3OEJCMEQxNUY2
NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLywKKwkJCQk0MUYxRDIxRTBFRjM1QzJB
MDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkUGFnZURhdGEuY3BwICovLAorCQkJCTQxRjFEMjFEMEVG
MzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRQYWdlRGF0YS5oICovLAogCQkJCTQxNkU3NUNB
MEVERjkwQzcwMDM2MEUxRCAvKiBTY3JpcHRDYWxsRnJhbWUuY3BwICovLAogCQkJCTQxNkU3NUM5
MEVERjkwQzcwMDM2MEUxRCAvKiBTY3JpcHRDYWxsRnJhbWUuaCAqLywKIAkJCQk0MTZFNzVCRDBF
REY4RkQ3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbFN0YWNrLmNwcCAqLywKQEAgLTE2NDMyLDYgKzE2
NDM4LDcgQEAKIAkJCQkxQTU2OUQyNTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9yb290Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxRTA5OUU2NDkyMDA1NkU1ODEgLyogdmlzaWJsZV91
bml0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4MjBCREYwRUY1RDM4MTAwOTA5OUE4IC8qIFdN
TFRhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFGMUQyMUYwRUYzNUMyQTAwREE4
NzUzIC8qIFNjcmlwdENhY2hlZFBhZ2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE4MzgzLDYg
KzE4MzkwLDcgQEAKIAkJCQkxQTU2OUQyNDBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9yb290
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTFEMDk5RTY0OTIwMDU2RTU4MSAvKiB2aXNp
YmxlX3VuaXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4ODIwQkRFMEVGNUQzODEwMDkwOTlB
OCAvKiBXTUxUYWJsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDFGMUQyMjAwRUYz
NUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZFBhZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZFBhZ2VEYXRhLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWNjZjQzCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAKQEAgLTAsMCArMSw5MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKiAK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqIAorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FjaGVkUGFnZURhdGEu
aCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiR0NDb250cm9sbGVyLmgiCisjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgPHJ1bnRpbWUv
SlNMb2NrLmg+CisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorCit1c2luZyBuYW1lc3Bh
Y2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NjcmlwdENhY2hlZFBhZ2VEYXRhOjpT
Y3JpcHRDYWNoZWRQYWdlRGF0YShQYWdlKiBwYWdlKQoreworICAgIEpTTG9jayBsb2NrKGZhbHNl
KTsKKworICAgIFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIgPSBwYWdlLT5tYWlu
RnJhbWUoKS0+c2NyaXB0KCk7CisgICAgaWYgKHNjcmlwdENvbnRyb2xsZXItPmhhdmVXaW5kb3dT
aGVsbCgpKSB7CisgICAgICAgIG1fd2luZG93ID0gc2NyaXB0Q29udHJvbGxlci0+d2luZG93U2hl
bGwoKS0+d2luZG93KCk7CisgICAgfQorfQorCitET01XaW5kb3cqIFNjcmlwdENhY2hlZFBhZ2VE
YXRhOjpkb21XaW5kb3coKSBjb25zdCB7CisgICAgcmV0dXJuIG1fd2luZG93ID8gbV93aW5kb3ct
PmltcGwoKSA6IDA7Cit9CisKK1NjcmlwdENhY2hlZFBhZ2VEYXRhOjp+U2NyaXB0Q2FjaGVkUGFn
ZURhdGEoKQoreworICAgIGNsZWFyKCk7Cit9CisKK3ZvaWQgU2NyaXB0Q2FjaGVkUGFnZURhdGE6
OnJlc3RvcmUoUGFnZSogcGFnZSkKK3sKKyAgICBGcmFtZSogbWFpbkZyYW1lID0gcGFnZS0+bWFp
bkZyYW1lKCk7CisKKyAgICBKU0xvY2sgbG9jayhmYWxzZSk7CisKKyAgICBTY3JpcHRDb250cm9s
bGVyKiBzY3JpcHRDb250cm9sbGVyID0gbWFpbkZyYW1lLT5zY3JpcHQoKTsKKyAgICBpZiAoc2Ny
aXB0Q29udHJvbGxlci0+aGF2ZVdpbmRvd1NoZWxsKCkpIHsKKyAgICAgICAgSlNET01XaW5kb3dT
aGVsbCogd2luZG93U2hlbGwgPSBzY3JpcHRDb250cm9sbGVyLT53aW5kb3dTaGVsbCgpOworICAg
ICAgICBpZiAobV93aW5kb3cpIHsKKyAgICAgICAgICAgIHdpbmRvd1NoZWxsLT5zZXRXaW5kb3co
bV93aW5kb3cuZ2V0KCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd2luZG93U2hl
bGwtPnNldFdpbmRvdyhtYWluRnJhbWUtPmRvbVdpbmRvdygpKTsKKyAgICAgICAgICAgIHNjcmlw
dENvbnRyb2xsZXItPmF0dGFjaERlYnVnZ2VyKHBhZ2UtPmRlYnVnZ2VyKCkpOworICAgICAgICAg
ICAgd2luZG93U2hlbGwtPndpbmRvdygpLT5zZXRQcm9maWxlR3JvdXAocGFnZS0+Z3JvdXAoKS5p
ZGVudGlmaWVyKCkpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIFNjcmlwdENhY2hlZFBh
Z2VEYXRhOjpjbGVhcigpCit7CisgICAgSlNMb2NrIGxvY2soZmFsc2UpOworCisgICAgaWYgKCFt
X3dpbmRvdykgeworICAgICAgICBtX3dpbmRvdyA9IDA7CisgICAgICAgIGdjQ29udHJvbGxlcigp
LmdhcmJhZ2VDb2xsZWN0U29vbigpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRQYWdlRGF0YS5o
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRQYWdlRGF0YS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxZTQ3ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZFBhZ2VEYXRhLmgKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoYykgMjAwOCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKiAKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqIAorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFNjcmlwdENhY2hlZFBhZ2VEYXRhX2gKKyNkZWZpbmUgU2NyaXB0Q2FjaGVkUGFn
ZURhdGFfaAorCisjaW5jbHVkZSA8cnVudGltZS9Qcm90ZWN0Lmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICBjbGFzcyBKU0RPTVdpbmRvdzsKKyAgICBjbGFzcyBQYWdlOworICAgIGNsYXNz
IERPTVdpbmRvdzsKKworICAgIGNsYXNzIFNjcmlwdENhY2hlZFBhZ2VEYXRhICB7CisgICAgcHVi
bGljOgorICAgICAgICBTY3JpcHRDYWNoZWRQYWdlRGF0YShQYWdlKik7CisgICAgICAgIH5TY3Jp
cHRDYWNoZWRQYWdlRGF0YSgpOworCisgICAgICAgIHZvaWQgcmVzdG9yZShQYWdlKik7CisgICAg
ICAgIHZvaWQgY2xlYXIoKTsKKyAgICAgICAgRE9NV2luZG93KiBkb21XaW5kb3coKSBjb25zdDsK
KworICAgIHByaXZhdGU6CisgICAgICAgIEpTQzo6UHJvdGVjdGVkUHRyPEpTRE9NV2luZG93PiBt
X3dpbmRvdzsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBT
Y3JpcHRDYWNoZWRQYWdlRGF0YV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVk
UGFnZS5jcHAgYi9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAKaW5kZXggMTI1ZGYzMC4u
MjY5MGY3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCisrKyBi
L1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcApAQCAtMzYsMTUgKzM2LDEwIEBACiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgotI2luY2x1ZGUgIkdDQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkpTRE9NV2luZG93
LmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dTaGVsbC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiU3lz
dGVtVGltZS5oIgotI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDxydW50
aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KIAog
I2lmIEVOQUJMRShTVkcpCkBAIC03MCw2ICs2NSw3IEBAIENhY2hlZFBhZ2U6OkNhY2hlZFBhZ2Uo
UGFnZSogcGFnZSkKICAgICAsIG1fdmlldyhwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKQogICAg
ICwgbV9tb3VzZVByZXNzTm9kZShwYWdlLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPm1v
dXNlUHJlc3NOb2RlKCkpCiAgICAgLCBtX1VSTChwYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCkt
PnVybCgpKQorICAgICwgbV9jYWNoZWRQYWdlU2NyaXB0RGF0YShwYWdlKQogewogI2lmbmRlZiBO
REVCVUcKICAgICBjYWNoZWRQYWdlQ291bnRlci5pbmNyZW1lbnQoKTsKQEAgLTgwLDEzICs3Niw2
IEBAIENhY2hlZFBhZ2U6OkNhY2hlZFBhZ2UoUGFnZSogcGFnZSkKICAgICBGcmFtZSogbWFpbkZy
YW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgbWFpbkZyYW1lLT5jbGVhclRpbWVycygpOwog
Ci0gICAgSlNMb2NrIGxvY2soZmFsc2UpOwotCi0gICAgU2NyaXB0Q29udHJvbGxlciogcHJveHkg
PSBtYWluRnJhbWUtPnNjcmlwdCgpOwotICAgIGlmIChwcm94eS0+aGF2ZVdpbmRvd1NoZWxsKCkp
IHsKLSAgICAgICAgbV93aW5kb3cgPSBwcm94eS0+d2luZG93U2hlbGwoKS0+d2luZG93KCk7Ci0g
ICAgfQotCiAgICAgbV9kb2N1bWVudC0+c2V0SW5QYWdlQ2FjaGUodHJ1ZSk7CiB9CiAKQEAgLTEw
MSw3ICs5MCw3IEBAIENhY2hlZFBhZ2U6On5DYWNoZWRQYWdlKCkKIAogRE9NV2luZG93KiBDYWNo
ZWRQYWdlOjpkb21XaW5kb3coKSBjb25zdAogewotICAgIHJldHVybiBtX3dpbmRvdyA/IG1fd2lu
ZG93LT5pbXBsKCkgOiAwOworICAgIHJldHVybiBtX2NhY2hlZFBhZ2VTY3JpcHREYXRhLmRvbVdp
bmRvdygpOwogfQogCiB2b2lkIENhY2hlZFBhZ2U6OnJlc3RvcmUoUGFnZSogcGFnZSkKQEAgLTEx
MCwxOSArOTksNyBAQCB2b2lkIENhY2hlZFBhZ2U6OnJlc3RvcmUoUGFnZSogcGFnZSkKIAogICAg
IEZyYW1lKiBtYWluRnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsKIAotICAgIEpTTG9jayBsb2Nr
KGZhbHNlKTsKLQotICAgIFNjcmlwdENvbnRyb2xsZXIqIHByb3h5ID0gbWFpbkZyYW1lLT5zY3Jp
cHQoKTsKLSAgICBpZiAocHJveHktPmhhdmVXaW5kb3dTaGVsbCgpKSB7Ci0gICAgICAgIEpTRE9N
V2luZG93U2hlbGwqIHdpbmRvd1NoZWxsID0gcHJveHktPndpbmRvd1NoZWxsKCk7Ci0gICAgICAg
IGlmIChtX3dpbmRvdykgewotICAgICAgICAgICAgd2luZG93U2hlbGwtPnNldFdpbmRvdyhtX3dp
bmRvdy5nZXQoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB3aW5kb3dTaGVsbC0+
c2V0V2luZG93KG1haW5GcmFtZS0+ZG9tV2luZG93KCkpOwotICAgICAgICAgICAgcHJveHktPmF0
dGFjaERlYnVnZ2VyKHBhZ2UtPmRlYnVnZ2VyKCkpOwotICAgICAgICAgICAgd2luZG93U2hlbGwt
PndpbmRvdygpLT5zZXRQcm9maWxlR3JvdXAocGFnZS0+Z3JvdXAoKS5pZGVudGlmaWVyKCkpOwot
ICAgICAgICB9Ci0gICAgfQorICAgIG1fY2FjaGVkUGFnZVNjcmlwdERhdGEucmVzdG9yZShwYWdl
KTsKIAogI2lmIEVOQUJMRShTVkcpCiAgICAgaWYgKG1fZG9jdW1lbnQgJiYgbV9kb2N1bWVudC0+
c3ZnRXh0ZW5zaW9ucygpKQpAQCAtMTcxLDEyICsxNDgsOSBAQCB2b2lkIENhY2hlZFBhZ2U6OmNs
ZWFyKCkKICAgICBtX21vdXNlUHJlc3NOb2RlID0gMDsKICAgICBtX1VSTCA9IEtVUkwoKTsKIAot
ICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKLSAgICBtX3dpbmRvdyA9IDA7Ci0KICAgICBtX2NhY2hl
ZFBhZ2VQbGF0Zm9ybURhdGEuY2xlYXIoKTsKIAotICAgIGdjQ29udHJvbGxlcigpLmdhcmJhZ2VD
b2xsZWN0U29vbigpOworICAgIG1fY2FjaGVkUGFnZVNjcmlwdERhdGEuY2xlYXIoKTsKIH0KIAog
dm9pZCBDYWNoZWRQYWdlOjpzZXREb2N1bWVudExvYWRlcihQYXNzUmVmUHRyPERvY3VtZW50TG9h
ZGVyPiBsb2FkZXIpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5oIGIv
V2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuaAppbmRleCA4ZGMwMDhiLi43NjAyZTIwIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5oCisrKyBiL1dlYkNvcmUvaGlzdG9y
eS9DYWNoZWRQYWdlLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIktVUkwuaCIKICNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9Qcm90ZWN0Lmg+CisjaW5j
bHVkZSAiU2NyaXB0Q2FjaGVkUGFnZURhdGEuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IApAQCAtNzQsNyArNzQsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxGcmFtZVZpZXc+IG1fdmll
dzsKICAgICBSZWZQdHI8Tm9kZT4gbV9tb3VzZVByZXNzTm9kZTsKICAgICBLVVJMIG1fVVJMOwot
ICAgIEpTQzo6UHJvdGVjdGVkUHRyPEpTRE9NV2luZG93PiBtX3dpbmRvdzsKKyAgICBTY3JpcHRD
YWNoZWRQYWdlRGF0YSBtX2NhY2hlZFBhZ2VTY3JpcHREYXRhOwogICAgIE93blB0cjxDYWNoZWRQ
YWdlUGxhdGZvcm1EYXRhPiBtX2NhY2hlZFBhZ2VQbGF0Zm9ybURhdGE7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26055</attachid>
            <date>2008-12-16 10:38:19 -0800</date>
            <delta_ts>2008-12-18 12:58:23 -0800</delta_ts>
            <desc>ScriptCachedPageData v2.1 (added added bug URL)</desc>
            <filename>cachedpage.patch</filename>
            <type>text/plain</type>
            <size>16292</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2Q3ODc1NC4uOTYzN2ZiOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAwOC0xMi0xNiAgRGltaXRyaSBHbGF6
a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjg1OQorICAgICAgICBBYnN0cmFjdCBhd2F5IHRoZSB1c2Ugb2YgSlNET01XaW5kb3cg
aW4gQ2FjaGVkUGFnZSBhbmQgaW50cm9kdWNlCisgICAgICAgIFNjcmlwdENhY2hlZFBhZ2VEYXRh
IGFic3RyYWN0aW9uLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZGVkIFNjcmlwdENh
Y2hlZFBhZ2VEYXRhIHRvIHByb2plY3QuCisgICAgICAgICogV2ViQ29yZS5wcm86IEFkZGVkIFNj
cmlwdENhY2hlZFBhZ2VEYXRhIHRvIHByb2plY3QuCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6IEFkZGVkIFNjcmlwdENhY2hlZFBhZ2VEYXRhIHRvIHByb2plY3QuCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBTY3JpcHRD
YWNoZWRQYWdlRGF0YSB0bworICAgICAgICAgICAgcHJvamVjdC4KKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0Q2FjaGVkUGFnZURhdGE6OlNjcmlwdENhY2hlZFBhZ2VEYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdENhY2hlZFBhZ2VEYXRhOjp+U2NyaXB0Q2FjaGVkUGFnZURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0Q2FjaGVkUGFnZURhdGE6OnJlc3RvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0Q2FjaGVkUGFnZURhdGE6OmNsZWFyKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDYWNoZWRQYWdlRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKiBoaXN0b3J5L0Nh
Y2hlZFBhZ2UuY3BwOiBSZXBsYWNlZCBKU0RPTVdpbmRvdyBhbmQgUHJvdGVjdGVkUHRyIHdpdGgK
KyAgICAgICAgICAgIFNjcmlwdENhY2hlZFBhZ2VEYXRhLgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUGFnZTo6Q2FjaGVkUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRQYWdlOjpkb21X
aW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUGFnZTo6cmVzdG9yZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRQYWdlOjpjbGVhcik6CisgICAgICAgICogaGlzdG9yeS9DYWNoZWRQ
YWdlLmg6IFJlcGxhY2VkIEpTRE9NV2luZG93IGFuZCBQcm90ZWN0ZWRQdHIgd2l0aAorICAgICAg
ICAgICAgU2NyaXB0Q2FjaGVkUGFnZURhdGEuCisKIDIwMDgtMTItMTYgWWFlbCBBaGFyb24gPHlh
ZWwuYWhhcm9uQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb3IgQXJuZSBWZXN0
YsO4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KaW5kZXggYjE2NDhiZS4uYzgzMTZhOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0zNDgsNiArMzQ4LDgg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFNMVFByb2Nl
c3NvckN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNw
cCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uaCBcCisJV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q2FjaGVkUGFnZURhdGEuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
YWxsRnJhbWUuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxGcmFtZS5oIFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5jcHAgXApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggOTliOWU4MC4u
ZGQ3MzVkZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dl
YkNvcmUucHJvCkBAIC00NDMsNiArNDQzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNw
cCBcCiAgICAgYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBcCisgICAg
YmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkUGFnZURhdGEuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9T
Y3JpcHRDYWxsRnJhbWUuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2suY3Bw
IFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBcCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA5YWU3ODY5Li5kOTdiNzZhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTE0MDMzLDYgKzE0MDMzLDE0IEBACiAJCQkJCT4N
CiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xTY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJ
CQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcU2NyaXB0Q2FjaGVk
UGFnZURhdGEuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xTY3JpcHRDYWxsRnJhbWUuY3BwIg0KIAkJCQkJPg0K
IAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBlNzM3N2Q5Li5kNjU2NzQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNTU4LDYgKzU1OCw4IEBACiAJCTQxNkU3NUNDMEVERjkwQzcwMDM2MEUx
RCAvKiBTY3JpcHRDYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE2RTc1Q0EwRURGOTBDNzAwMzYwRTFEIC8qIFNjcmlwdENhbGxGcmFt
ZS5jcHAgKi87IH07CiAJCTQxNkY0NUYwMEVEN0IzMTEwMDgyMTVCNiAvKiBTY3JpcHRTdHJpbmcu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNkY0NUVG
MEVEN0IzMTEwMDgyMTVCNiAvKiBTY3JpcHRTdHJpbmcuaCAqLzsgfTsKIAkJNDFDNzYwQjEwRURF
MDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MUM3NjBCMDBFREUwM0QzMDBDMTY1NUYgLyogU2NyaXB0U3Rh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0
MUYxRDIxRjBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkUGFnZURhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjFEMjFEMEVGMzVDMkEw
MERBODc1MyAvKiBTY3JpcHRDYWNoZWRQYWdlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxRjFEMjIwMEVGMzVDMkEwMERBODc1MyAvKiBT
Y3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkUGFn
ZURhdGEuY3BwICovOyB9OwogCQk0NDE1MjkyRTBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDQxNTI5MkMwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aCAqLzsgfTsKIAkJNDQxNTI5MkYwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQxNTI5MkQwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwICov
OyB9OwogCQk0NDFCMDU1NjBDRDc3OUI2MDA3QzFGMTggLyogRE9NQ1NTU3R5bGVTaGVldFByaXZh
dGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ0MjlBQUVBMENCODREQzcwMDc2NDdDNSAvKiBET01DU1NTdHlsZVNoZWV0UHJp
dmF0ZS5oICovOyB9OwpAQCAtNTM5NCw2ICs1Mzk2LDggQEAKIAkJNDE2RTc1Q0EwRURGOTBDNzAw
MzYwRTFEIC8qIFNjcmlwdENhbGxGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTY3JpcHRDYWxsRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTZGNDVFRjBFRDdCMzExMDA4MjE1QjYgLyogU2NyaXB0U3RyaW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MUM3NjBCMDBFREUwM0QzMDBDMTY1NUYgLyogU2NyaXB0U3RhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0U3RhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGMUQyMUQwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENh
Y2hlZFBhZ2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdENh
Y2hlZFBhZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRjFEMjFFMEVG
MzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MTUyOTJDMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQxNTI5
MkQwRTFBRThBMDAwQzRBMkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MjlBQUVBMENCODREQzcwMDc2NDdDNSAv
KiBET01DU1NTdHlsZVNoZWV0UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NQ1NTU3R5bGVTaGVldFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEzMDc4LDYgKzEzMDgyLDggQEAKIAkJCQlCQ0U5OUVDMjBEQ0E2MjQxMDAxODI2ODMg
LyogSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuaCAqLywKIAkJCQlCQ0EzNzhCQTBEMTVGNjQy
MDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmNwcCAqLywKIAkJCQlCQ0EzNzhCQjBEMTVGNjQy
MDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmggKi8sCisJCQkJNDFGMUQyMUUwRUYzNUMyQTAw
REE4NzUzIC8qIFNjcmlwdENhY2hlZFBhZ2VEYXRhLmNwcCAqLywKKwkJCQk0MUYxRDIxRDBFRjM1
QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkUGFnZURhdGEuaCAqLywKIAkJCQk0MTZFNzVDQTBF
REY5MEM3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbEZyYW1lLmNwcCAqLywKIAkJCQk0MTZFNzVDOTBF
REY5MEM3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbEZyYW1lLmggKi8sCiAJCQkJNDE2RTc1QkQwRURG
OEZENzAwMzYwRTFEIC8qIFNjcmlwdENhbGxTdGFjay5jcHAgKi8sCkBAIC0xNjQzMiw2ICsxNjQz
OCw3IEBACiAJCQkJMUE1NjlEMjUwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9vdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMUUwOTlFNjQ5MjAwNTZFNTgxIC8qIHZpc2libGVfdW5p
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4ODIwQkRGMEVGNUQzODEwMDkwOTlBOCAvKiBXTUxU
YWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxRjFEMjFGMEVGMzVDMkEwMERBODc1
MyAvKiBTY3JpcHRDYWNoZWRQYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xODM4Myw2ICsx
ODM5MCw3IEBACiAJCQkJMUE1NjlEMjQwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9vdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxRDA5OUU2NDkyMDA1NkU1ODEgLyogdmlzaWJs
ZV91bml0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODgyMEJERTBFRjVEMzgxMDA5MDk5QTgg
LyogV01MVGFibGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxRjFEMjIwMEVGMzVD
MkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkUGFnZURhdGEuY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRQYWdlRGF0YS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWVjY2Y0MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkUGFnZURhdGEuY3BwCkBAIC0wLDAgKzEsOTMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICogCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiAKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcmlwdENhY2hlZFBhZ2VEYXRhLmgi
CisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkdDQ29udHJvbGxlci5oIgorI2luY2x1
ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pT
TG9jay5oPgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKwordXNpbmcgbmFtZXNwYWNl
IEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTY3JpcHRDYWNoZWRQYWdlRGF0YTo6U2Ny
aXB0Q2FjaGVkUGFnZURhdGEoUGFnZSogcGFnZSkKK3sKKyAgICBKU0xvY2sgbG9jayhmYWxzZSk7
CisKKyAgICBTY3JpcHRDb250cm9sbGVyKiBzY3JpcHRDb250cm9sbGVyID0gcGFnZS0+bWFpbkZy
YW1lKCktPnNjcmlwdCgpOworICAgIGlmIChzY3JpcHRDb250cm9sbGVyLT5oYXZlV2luZG93U2hl
bGwoKSkgeworICAgICAgICBtX3dpbmRvdyA9IHNjcmlwdENvbnRyb2xsZXItPndpbmRvd1NoZWxs
KCktPndpbmRvdygpOworICAgIH0KK30KKworRE9NV2luZG93KiBTY3JpcHRDYWNoZWRQYWdlRGF0
YTo6ZG9tV2luZG93KCkgY29uc3QgeworICAgIHJldHVybiBtX3dpbmRvdyA/IG1fd2luZG93LT5p
bXBsKCkgOiAwOworfQorCitTY3JpcHRDYWNoZWRQYWdlRGF0YTo6flNjcmlwdENhY2hlZFBhZ2VE
YXRhKCkKK3sKKyAgICBjbGVhcigpOworfQorCit2b2lkIFNjcmlwdENhY2hlZFBhZ2VEYXRhOjpy
ZXN0b3JlKFBhZ2UqIHBhZ2UpCit7CisgICAgRnJhbWUqIG1haW5GcmFtZSA9IHBhZ2UtPm1haW5G
cmFtZSgpOworCisgICAgSlNMb2NrIGxvY2soZmFsc2UpOworCisgICAgU2NyaXB0Q29udHJvbGxl
ciogc2NyaXB0Q29udHJvbGxlciA9IG1haW5GcmFtZS0+c2NyaXB0KCk7CisgICAgaWYgKHNjcmlw
dENvbnRyb2xsZXItPmhhdmVXaW5kb3dTaGVsbCgpKSB7CisgICAgICAgIEpTRE9NV2luZG93U2hl
bGwqIHdpbmRvd1NoZWxsID0gc2NyaXB0Q29udHJvbGxlci0+d2luZG93U2hlbGwoKTsKKyAgICAg
ICAgaWYgKG1fd2luZG93KSB7CisgICAgICAgICAgICB3aW5kb3dTaGVsbC0+c2V0V2luZG93KG1f
d2luZG93LmdldCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHdpbmRvd1NoZWxs
LT5zZXRXaW5kb3cobWFpbkZyYW1lLT5kb21XaW5kb3coKSk7CisgICAgICAgICAgICBzY3JpcHRD
b250cm9sbGVyLT5hdHRhY2hEZWJ1Z2dlcihwYWdlLT5kZWJ1Z2dlcigpKTsKKyAgICAgICAgICAg
IHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0UHJvZmlsZUdyb3VwKHBhZ2UtPmdyb3VwKCkuaWRl
bnRpZmllcigpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBTY3JpcHRDYWNoZWRQYWdl
RGF0YTo6Y2xlYXIoKQoreworICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKKworICAgIGlmICghbV93
aW5kb3cpIHsKKyAgICAgICAgbV93aW5kb3cgPSAwOworICAgICAgICBnY0NvbnRyb2xsZXIoKS5n
YXJiYWdlQ29sbGVjdFNvb24oKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkUGFnZURhdGEuaCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkUGFnZURhdGEuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWU0N2QwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRQYWdlRGF0YS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICogCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiAKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBTY3JpcHRDYWNoZWRQYWdlRGF0YV9oCisjZGVmaW5lIFNjcmlwdENhY2hlZFBhZ2VE
YXRhX2gKKworI2luY2x1ZGUgPHJ1bnRpbWUvUHJvdGVjdC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisgICAgY2xhc3MgSlNET01XaW5kb3c7CisgICAgY2xhc3MgUGFnZTsKKyAgICBjbGFzcyBE
T01XaW5kb3c7CisKKyAgICBjbGFzcyBTY3JpcHRDYWNoZWRQYWdlRGF0YSAgeworICAgIHB1Ymxp
YzoKKyAgICAgICAgU2NyaXB0Q2FjaGVkUGFnZURhdGEoUGFnZSopOworICAgICAgICB+U2NyaXB0
Q2FjaGVkUGFnZURhdGEoKTsKKworICAgICAgICB2b2lkIHJlc3RvcmUoUGFnZSopOworICAgICAg
ICB2b2lkIGNsZWFyKCk7CisgICAgICAgIERPTVdpbmRvdyogZG9tV2luZG93KCkgY29uc3Q7CisK
KyAgICBwcml2YXRlOgorICAgICAgICBKU0M6OlByb3RlY3RlZFB0cjxKU0RPTVdpbmRvdz4gbV93
aW5kb3c7CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU2Ny
aXB0Q2FjaGVkUGFnZURhdGFfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBh
Z2UuY3BwIGIvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCmluZGV4IDEyNWRmMzAuLjI2
OTBmNzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcAorKysgYi9X
ZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAKQEAgLTM2LDE1ICszNiwxMCBAQAogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKLSNpbmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvdy5o
IgotI2luY2x1ZGUgIkpTRE9NV2luZG93U2hlbGwuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlN5c3Rl
bVRpbWUuaCIKLSNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCi0jaW5jbHVkZSA8cnVudGlt
ZS9KU0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAKICNp
ZiBFTkFCTEUoU1ZHKQpAQCAtNzAsNiArNjUsNyBAQCBDYWNoZWRQYWdlOjpDYWNoZWRQYWdlKFBh
Z2UqIHBhZ2UpCiAgICAgLCBtX3ZpZXcocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSkKICAgICAs
IG1fbW91c2VQcmVzc05vZGUocGFnZS0+bWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5tb3Vz
ZVByZXNzTm9kZSgpKQogICAgICwgbV9VUkwocGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT51
cmwoKSkKKyAgICAsIG1fY2FjaGVkUGFnZVNjcmlwdERhdGEocGFnZSkKIHsKICNpZm5kZWYgTkRF
QlVHCiAgICAgY2FjaGVkUGFnZUNvdW50ZXIuaW5jcmVtZW50KCk7CkBAIC04MCwxMyArNzYsNiBA
QCBDYWNoZWRQYWdlOjpDYWNoZWRQYWdlKFBhZ2UqIHBhZ2UpCiAgICAgRnJhbWUqIG1haW5GcmFt
ZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwogICAgIG1haW5GcmFtZS0+Y2xlYXJUaW1lcnMoKTsKIAot
ICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKLQotICAgIFNjcmlwdENvbnRyb2xsZXIqIHByb3h5ID0g
bWFpbkZyYW1lLT5zY3JpcHQoKTsKLSAgICBpZiAocHJveHktPmhhdmVXaW5kb3dTaGVsbCgpKSB7
Ci0gICAgICAgIG1fd2luZG93ID0gcHJveHktPndpbmRvd1NoZWxsKCktPndpbmRvdygpOwotICAg
IH0KLQogICAgIG1fZG9jdW1lbnQtPnNldEluUGFnZUNhY2hlKHRydWUpOwogfQogCkBAIC0xMDEs
NyArOTAsNyBAQCBDYWNoZWRQYWdlOjp+Q2FjaGVkUGFnZSgpCiAKIERPTVdpbmRvdyogQ2FjaGVk
UGFnZTo6ZG9tV2luZG93KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV93aW5kb3cgPyBtX3dpbmRv
dy0+aW1wbCgpIDogMDsKKyAgICByZXR1cm4gbV9jYWNoZWRQYWdlU2NyaXB0RGF0YS5kb21XaW5k
b3coKTsKIH0KIAogdm9pZCBDYWNoZWRQYWdlOjpyZXN0b3JlKFBhZ2UqIHBhZ2UpCkBAIC0xMTAs
MTkgKzk5LDcgQEAgdm9pZCBDYWNoZWRQYWdlOjpyZXN0b3JlKFBhZ2UqIHBhZ2UpCiAKICAgICBG
cmFtZSogbWFpbkZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7CiAKLSAgICBKU0xvY2sgbG9jayhm
YWxzZSk7Ci0KLSAgICBTY3JpcHRDb250cm9sbGVyKiBwcm94eSA9IG1haW5GcmFtZS0+c2NyaXB0
KCk7Ci0gICAgaWYgKHByb3h5LT5oYXZlV2luZG93U2hlbGwoKSkgewotICAgICAgICBKU0RPTVdp
bmRvd1NoZWxsKiB3aW5kb3dTaGVsbCA9IHByb3h5LT53aW5kb3dTaGVsbCgpOwotICAgICAgICBp
ZiAobV93aW5kb3cpIHsKLSAgICAgICAgICAgIHdpbmRvd1NoZWxsLT5zZXRXaW5kb3cobV93aW5k
b3cuZ2V0KCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgd2luZG93U2hlbGwtPnNl
dFdpbmRvdyhtYWluRnJhbWUtPmRvbVdpbmRvdygpKTsKLSAgICAgICAgICAgIHByb3h5LT5hdHRh
Y2hEZWJ1Z2dlcihwYWdlLT5kZWJ1Z2dlcigpKTsKLSAgICAgICAgICAgIHdpbmRvd1NoZWxsLT53
aW5kb3coKS0+c2V0UHJvZmlsZUdyb3VwKHBhZ2UtPmdyb3VwKCkuaWRlbnRpZmllcigpKTsKLSAg
ICAgICAgfQotICAgIH0KKyAgICBtX2NhY2hlZFBhZ2VTY3JpcHREYXRhLnJlc3RvcmUocGFnZSk7
CiAKICNpZiBFTkFCTEUoU1ZHKQogICAgIGlmIChtX2RvY3VtZW50ICYmIG1fZG9jdW1lbnQtPnN2
Z0V4dGVuc2lvbnMoKSkKQEAgLTE3MSwxMiArMTQ4LDkgQEAgdm9pZCBDYWNoZWRQYWdlOjpjbGVh
cigpCiAgICAgbV9tb3VzZVByZXNzTm9kZSA9IDA7CiAgICAgbV9VUkwgPSBLVVJMKCk7CiAKLSAg
ICBKU0xvY2sgbG9jayhmYWxzZSk7Ci0gICAgbV93aW5kb3cgPSAwOwotCiAgICAgbV9jYWNoZWRQ
YWdlUGxhdGZvcm1EYXRhLmNsZWFyKCk7CiAKLSAgICBnY0NvbnRyb2xsZXIoKS5nYXJiYWdlQ29s
bGVjdFNvb24oKTsKKyAgICBtX2NhY2hlZFBhZ2VTY3JpcHREYXRhLmNsZWFyKCk7CiB9CiAKIHZv
aWQgQ2FjaGVkUGFnZTo6c2V0RG9jdW1lbnRMb2FkZXIoUGFzc1JlZlB0cjxEb2N1bWVudExvYWRl
cj4gbG9hZGVyKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuaCBiL1dl
YkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKaW5kZXggOGRjMDA4Yi4uNzYwMmUyMCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuaAorKysgYi9XZWJDb3JlL2hpc3Rvcnkv
Q2FjaGVkUGFnZS5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvUHJvdGVjdC5oPgorI2luY2x1
ZGUgIlNjcmlwdENhY2hlZFBhZ2VEYXRhLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAK
QEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RnJhbWVWaWV3PiBtX3ZpZXc7
CiAgICAgUmVmUHRyPE5vZGU+IG1fbW91c2VQcmVzc05vZGU7CiAgICAgS1VSTCBtX1VSTDsKLSAg
ICBKU0M6OlByb3RlY3RlZFB0cjxKU0RPTVdpbmRvdz4gbV93aW5kb3c7CisgICAgU2NyaXB0Q2Fj
aGVkUGFnZURhdGEgbV9jYWNoZWRQYWdlU2NyaXB0RGF0YTsKICAgICBPd25QdHI8Q2FjaGVkUGFn
ZVBsYXRmb3JtRGF0YT4gbV9jYWNoZWRQYWdlUGxhdGZvcm1EYXRhOwogfTsKIAo=
</data>
<flag name="review"
          id="12280"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>