<?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>22394</bug_id>
          
          <creation_ts>2008-11-20 21:41:23 -0800</creation_ts>
          <short_desc>Be more eager in destroying script decoded data</short_desc>
          <delta_ts>2008-11-21 15:18:20 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>99609</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-11-20 21:41:23 -0800</bug_when>
    <thetext>We should be more eager about destroying it as re-creating it is cheap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99610</commentid>
    <comment_count>1</comment_count>
      <attachid>25337</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-11-20 21:43:09 -0800</bug_when>
    <thetext>Created attachment 25337
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99612</commentid>
    <comment_count>2</comment_count>
      <attachid>25337</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-11-20 21:46:34 -0800</bug_when>
    <thetext>Comment on attachment 25337
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99613</commentid>
    <comment_count>3</comment_count>
      <attachid>25337</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-11-20 21:51:41 -0800</bug_when>
    <thetext>Comment on attachment 25337
patch

First patch landed in r38654.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99621</commentid>
    <comment_count>4</comment_count>
      <attachid>25341</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-11-20 23:48:18 -0800</bug_when>
    <thetext>Created attachment 25341
Patch 2 - CachedScriptSourceProvider</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99663</commentid>
    <comment_count>5</comment_count>
      <attachid>25341</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-11-21 10:20:05 -0800</bug_when>
    <thetext>Comment on attachment 25341
Patch 2 - CachedScriptSourceProvider

&gt; +        return JSC::SourceCode(CachedScriptSourceProvider::create(cachedScript), 1);

No need for the &quot;1&quot; here -- it&apos;s automatic.

Isn&apos;t there some .bkl action that needs fixing up, too?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99668</commentid>
    <comment_count>6</comment_count>
      <attachid>25341</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-11-21 10:45:03 -0800</bug_when>
    <thetext>Comment on attachment 25341
Patch 2 - CachedScriptSourceProvider

Second patch landed in r38664.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99675</commentid>
    <comment_count>7</comment_count>
      <attachid>25359</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-11-21 11:40:49 -0800</bug_when>
    <thetext>Created attachment 25359
Patch 3 - Destroy decoded data on allClientsRemoved</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99694</commentid>
    <comment_count>8</comment_count>
      <attachid>25359</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-11-21 13:40:57 -0800</bug_when>
    <thetext>Comment on attachment 25359
Patch 3 - Destroy decoded data on allClientsRemoved

Third patch landed in r38676.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99705</commentid>
    <comment_count>9</comment_count>
      <attachid>25363</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-11-21 14:43:29 -0800</bug_when>
    <thetext>Created attachment 25363
patch 4 - Destroy decoded data on a zero-delay timer

This approach adds a zero-delay timer after decoding script data to destroy it.  This should handle all cases of avoiding re-decoding data shortly after initial re-decode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99706</commentid>
    <comment_count>10</comment_count>
      <attachid>25363</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-11-21 14:45:26 -0800</bug_when>
    <thetext>Comment on attachment 25363
patch 4 - Destroy decoded data on a zero-delay timer

r=geoff garen</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99711</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-11-21 15:16:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/6393888&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99712</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-11-21 15:18:20 -0800</bug_when>
    <thetext>Last patch landed in r38679.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25337</attachid>
            <date>2008-11-20 21:43:09 -0800</date>
            <delta_ts>2008-11-20 23:48:18 -0800</delta_ts>
            <desc>patch</desc>
            <filename>source.diff</filename>
            <type>text/plain</type>
            <size>21285</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4NjUz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMDgtMTEt
MjAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXJzdCBzdGVwIGluIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM5NAorICAgICAgICBCZSBtb3JlIGVhZ2VyIGluIGRl
c3Ryb3lpbmcgc2NyaXB0IGRlY29kZWQgZGF0YQorCisgICAgICAgIFBhc3MgZGF0YSB0byBiZSB1
c2VkIGluIHNjcmlwdCBleGVjdXRpb24gYXJvdW5kIGFzIEpTQzo6U291cmNlQ29kZSBpbnN0ZWFk
CisgICAgICAgIG9mIGEgc291cmNlLCB1cmwsIGFuZCBzdGFydGluZyBsaW5lLgorCisgICAgICAg
ICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1N0cmluZ1NvdXJjZVByb3ZpZGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjptYWtlU291cmNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNj
cmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdEVsZW1lbnREYXRhOjpldmFsdWF0ZVNjcmlwdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFbGVtZW50RGF0YTo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGRv
bS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogZG9tL1dvcmtlclRocmVhZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCk6CisgICAgICAgICogZG9t
L1hNTFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxUb2tlbml6ZXI6Om5vdGlm
eUZpbmlzaGVkKToKKyAgICAgICAgKiBkb20vWE1MVG9rZW5pemVyTGlieG1sMi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpYTUxUb2tlbml6ZXI6OmVuZEVsZW1lbnROcyk6CisgICAgICAgICogZG9t
L1hNTFRva2VuaXplclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTFRva2VuaXplcjo6cGFy
c2VFbmRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6c2NyaXB0SGFuZGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVG9rZW5pemVyOjpzY3JpcHRFeGVjdXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRva2VuaXplcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGh0bWwvSFRNTFRva2Vu
aXplci5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6ZXhlY3V0ZVNjcmlwdCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmg6CisKIDIwMDgtMTEtMjAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KSW5kZXg6IGJpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwCShyZXZpc2lvbiAzODYzMykKKysrIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIFNjcmlwdENvbnRyb2xsZXI6
On5TY3JpcHRDb250cm9sbGVyKCkKICAgICBkaXNjb25uZWN0UGxhdGZvcm1TY3JpcHRPYmplY3Rz
KCk7CiB9CiAKLVNjcmlwdFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFN0
cmluZyYgc291cmNlVVJMLCBpbnQgYmFzZUxpbmUsIGNvbnN0IFN0cmluZyYgc3RyKSAKK1Njcmlw
dFZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IEpTQzo6U291cmNlQ29kZSYg
c291cmNlQ29kZSkgCiB7CiAgICAgLy8gZXZhbHVhdGUgY29kZS4gUmV0dXJucyB0aGUgSlMgcmV0
dXJuIHZhbHVlIG9yIDAKICAgICAvLyBpZiB0aGVyZSB3YXMgbm9uZSwgYW4gZXJyb3Igb2NjdXJl
ZCBvciB0aGUgdHlwZSBjb3VsZG4ndCBiZSBjb252ZXJ0ZWQuCkBAIC0xMDAsNiArMTAwLDcgQEAg
U2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoYwogICAgIC8vIFNlZSBzbWFy
dCB3aW5kb3cub3BlbiBwb2xpY3kgZm9yIHdoZXJlIHRoaXMgaXMgdXNlZC4KICAgICBFeGVjU3Rh
dGUqIGV4ZWMgPSBtX3dpbmRvd1NoZWxsLT53aW5kb3coKS0+Z2xvYmFsRXhlYygpOwogICAgIGNv
bnN0IFN0cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTDsKKyAgICBTdHJpbmcgc291
cmNlVVJMID0gc291cmNlQ29kZS5wcm92aWRlcigpLT51cmwoKTsKICAgICBtX3NvdXJjZVVSTCA9
ICZzb3VyY2VVUkw7CiAKICAgICBKU0xvY2sgbG9jayhmYWxzZSk7CkBAIC0xMDksNyArMTEwLDcg
QEAgU2NyaXB0VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoYwogICAgIG1fZnJhbWUt
PmtlZXBBbGl2ZSgpOwogCiAgICAgbV93aW5kb3dTaGVsbC0+d2luZG93KCktPnN0YXJ0VGltZW91
dENoZWNrKCk7Ci0gICAgQ29tcGxldGlvbiBjb21wID0gSlNDOjpldmFsdWF0ZShleGVjLCBleGVj
LT5keW5hbWljR2xvYmFsT2JqZWN0KCktPmdsb2JhbFNjb3BlQ2hhaW4oKSwgbWFrZVNvdXJjZShz
dHIsIHNvdXJjZVVSTCwgYmFzZUxpbmUpLCBtX3dpbmRvd1NoZWxsKTsKKyAgICBDb21wbGV0aW9u
IGNvbXAgPSBKU0M6OmV2YWx1YXRlKGV4ZWMsIGV4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKS0+
Z2xvYmFsU2NvcGVDaGFpbigpLCBzb3VyY2VDb2RlLCBtX3dpbmRvd1NoZWxsKTsKICAgICBtX3dp
bmRvd1NoZWxsLT53aW5kb3coKS0+c3RvcFRpbWVvdXRDaGVjaygpOwogCiAgICAgaWYgKGNvbXAu
Y29tcGxUeXBlKCkgPT0gTm9ybWFsIHx8IGNvbXAuY29tcGxUeXBlKCkgPT0gUmV0dXJuVmFsdWUp
IHsKSW5kZXg6IGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBi
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDM4NjMzKQorKysgYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBA
IHN0cnVjdCBOUE9iamVjdDsKIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNHbG9iYWxP
YmplY3Q7CisgICAgY2xhc3MgU291cmNlQ29kZTsKIAogICAgIG5hbWVzcGFjZSBCaW5kaW5ncyB7
CiAgICAgICAgIGNsYXNzIEluc3RhbmNlOwpAQCAtNzgsNyArNzksNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBtX3dpbmRvd1NoZWxsLT53aW5kb3coKTsKICAgICB9CiAKLSAgICBTY3JpcHRW
YWx1ZSBldmFsdWF0ZShjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGJhc2VMaW5lLCBjb25z
dCBTdHJpbmcmIGNvZGUpOworICAgIFNjcmlwdFZhbHVlIGV2YWx1YXRlKGNvbnN0IEpTQzo6U291
cmNlQ29kZSYpOwogCiAgICAgUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBjcmVhdGVJbmxpbmVF
dmVudExpc3RlbmVyKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBjb25zdCBTdHJpbmcmIGNv
ZGUsIE5vZGUqKTsKICNpZiBFTkFCTEUoU1ZHKQpJbmRleDogYmluZGluZ3MvanMvU3RyaW5nU291
cmNlUHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW5kaW5ncy9qcy9TdHJpbmdTb3VyY2VQcm92
aWRlci5oCShyZXZpc2lvbiAzODYzMykKKysrIGJpbmRpbmdzL2pzL1N0cmluZ1NvdXJjZVByb3Zp
ZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDEwICs1MSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIFN0cmluZyBtX3NvdXJjZTsKICAgICB9OwogCi0gICAgaW5saW5lIEpTQzo6
U291cmNlQ29kZSBtYWtlU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBKU0M6OlVT
dHJpbmcmIHVybCA9IEpTQzo6VVN0cmluZygpLCBpbnQgZmlyc3RMaW5lID0gMSkKKyAgICBpbmxp
bmUgSlNDOjpTb3VyY2VDb2RlIG1ha2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0
IFN0cmluZyYgdXJsID0gU3RyaW5nKCksIGludCBmaXJzdExpbmUgPSAxKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIEpTQzo6U291cmNlQ29kZShTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNv
dXJjZSwgdXJsKSwgZmlyc3RMaW5lKTsKICAgICB9Ci19CiAKLSNlbmRpZgorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU3RyaW5nU291cmNlUHJvdmlkZXJfaApJbmRleDogYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDM4NjMzKQorKysgYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4
LDE0ICs2OCwxNCBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQoCiAg
ICAgbV93b3JrZXJDb250ZXh0V3JhcHBlciA9IG5ldyAobV9nbG9iYWxEYXRhLmdldCgpKSBKU1dv
cmtlckNvbnRleHQobV93b3JrZXJDb250ZXh0KTsKIH0KIAotSlNWYWx1ZSogV29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBiYXNlTGlu
ZSwgY29uc3QgU3RyaW5nJiBjb2RlKQorSlNWYWx1ZSogV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6
ZXZhbHVhdGUoY29uc3QgSlNDOjpTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQogewogICAgIGluaXRT
Y3JpcHRJZk5lZWRlZCgpOwogICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKIAogICAgIEV4ZWNTdGF0
ZSogZXhlYyA9IG1fd29ya2VyQ29udGV4dFdyYXBwZXItPmdsb2JhbEV4ZWMoKTsKICAgICBtX3dv
cmtlckNvbnRleHRXcmFwcGVyLT5zdGFydFRpbWVvdXRDaGVjaygpOwotICAgIENvbXBsZXRpb24g
Y29tcCA9IEpTQzo6ZXZhbHVhdGUoZXhlYywgZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpLT5n
bG9iYWxTY29wZUNoYWluKCksIG1ha2VTb3VyY2UoY29kZSwgc291cmNlVVJMLCBiYXNlTGluZSks
IG1fd29ya2VyQ29udGV4dFdyYXBwZXIpOworICAgIENvbXBsZXRpb24gY29tcCA9IEpTQzo6ZXZh
bHVhdGUoZXhlYywgZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpLT5nbG9iYWxTY29wZUNoYWlu
KCksIHNvdXJjZUNvZGUsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIpOwogICAgIG1fd29ya2VyQ29u
dGV4dFdyYXBwZXItPnN0b3BUaW1lb3V0Q2hlY2soKTsKIAogICAgIG1fd29ya2VyQ29udGV4dC0+
dGhyZWFkKCktPm1lc3NhZ2luZ1Byb3h5KCktPnJlcG9ydFdvcmtlclRocmVhZEFjdGl2aXR5KG1f
d29ya2VyQ29udGV4dC0+aGFzUGVuZGluZ0FjdGl2aXR5KCkpOwpJbmRleDogYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuaAkocmV2aXNpb24gMzg2MzMpCisrKyBiaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKIG5h
bWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpTR2xvYmFsRGF0YTsKICAgICBjbGFzcyBKU1ZhbHVl
OworICAgIGNsYXNzIFNvdXJjZUNvZGU7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU0
LDcgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgcmV0dXJuIG1fd29y
a2VyQ29udGV4dFdyYXBwZXI7CiAgICAgICAgIH0KIAotICAgICAgICBKU0M6OkpTVmFsdWUqIGV2
YWx1YXRlKGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgYmFzZUxpbmUsIGNvbnN0IFN0cmlu
ZyYgY29kZSk7CisgICAgICAgIEpTQzo6SlNWYWx1ZSogZXZhbHVhdGUoY29uc3QgSlNDOjpTb3Vy
Y2VDb2RlJik7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGluaXRTY3JpcHRJZk5lZWRl
ZCgpCkluZGV4OiBkb20vU2NyaXB0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL1Njcmlw
dEVsZW1lbnQuY3BwCShyZXZpc2lvbiAzODYzMykKKysrIGRvbS9TY3JpcHRFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzMsOSArMzMsMTIgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTdHJpbmdIYXNoLmgi
CisjaW5jbHVkZSAiU3RyaW5nU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAj
aW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCit1c2luZyBuYW1lc3BhY2UgSlNDOworCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9j
dW1lbnQoU2NyaXB0RWxlbWVudERhdGEmIGRhdGEsIGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQpA
QCAtNDgsMTAgKzUxLDEyIEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1l
bnQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8vIEZJWE1FOiBUaGlzIHN0YXJ0aW5n
IGxpbmUgbnVtYmVyIHdpbGwgYmUgaW5jb3JyZWN0IGhlcmUuCisKICAgICAvLyBJZiB0aGVyZSdz
IGFuIGVtcHR5IHNjcmlwdCBub2RlLCB3ZSBzaG91bGRuJ3QgZXZhbHVhdGUgdGhlIHNjcmlwdAog
ICAgIC8vIGJlY2F1c2UgaWYgYSBzY3JpcHQgaXMgaW5zZXJ0ZWQgYWZ0ZXJ3YXJkcyAoYnkgc2V0
dGluZyB0ZXh0IG9yIGlubmVyVGV4dCkKICAgICAvLyBpdCBzaG91bGQgYmUgZXZhbHVhdGVkLCBh
bmQgZXZhbHVhdGVTY3JpcHQgb25seSBldmFsdWF0ZXMgYSBzY3JpcHQgb25jZS4KLSAgICBkYXRh
LmV2YWx1YXRlU2NyaXB0KGRhdGEuZWxlbWVudCgpLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmco
KSwgZGF0YS5zY3JpcHRDb250ZW50KCkpOworICAgIGRhdGEuZXZhbHVhdGVTY3JpcHQobWFrZVNv
dXJjZShkYXRhLnNjcmlwdENvbnRlbnQoKSwgZGF0YS5lbGVtZW50KCktPmRvY3VtZW50KCktPnVy
bCgpLnN0cmluZygpKSk7CiB9CiAKIHZvaWQgU2NyaXB0RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1
bWVudChTY3JpcHRFbGVtZW50RGF0YSYgZGF0YSkKQEAgLTY3LDExICs3MiwxMyBAQCB2b2lkIFNj
cmlwdEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChTY3JpCiAKICAgICBFbGVtZW50KiBlbGVtZW50
ID0gZGF0YS5lbGVtZW50KCk7CiAKKyAgICAvLyBGSVhNRTogVGhpcyBzdGFydGluZyBsaW5lIG51
bWJlciB3aWxsIGJlIGluY29ycmVjdCBoZXJlLgorCiAgICAgLy8gSWYgYSBub2RlIGlzIGluc2Vy
dGVkIGFzIGEgY2hpbGQgb2YgdGhlIHNjcmlwdCBlbGVtZW50CiAgICAgLy8gYW5kIHRoZSBzY3Jp
cHQgZWxlbWVudCBoYXMgYmVlbiBpbnNlcnRlZCBpbiB0aGUgZG9jdW1lbnQKICAgICAvLyB3ZSBl
dmFsdWF0ZSB0aGUgc2NyaXB0LgogICAgIGlmIChlbGVtZW50LT5pbkRvY3VtZW50KCkgJiYgZWxl
bWVudC0+Zmlyc3RDaGlsZCgpKQotICAgICAgICBkYXRhLmV2YWx1YXRlU2NyaXB0KGVsZW1lbnQt
PmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpLCBkYXRhLnNjcmlwdENvbnRlbnQoKSk7CisgICAg
ICAgIGRhdGEuZXZhbHVhdGVTY3JpcHQobWFrZVNvdXJjZShkYXRhLnNjcmlwdENvbnRlbnQoKSwg
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpKTsKIH0KIAogdm9pZCBTY3JpcHRF
bGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oU2NyaXB0RWxlbWVudERhdGEmIGRhdGEsIGNv
bnN0IFN0cmluZyYgc291cmNlVXJsKQpAQCAtMTU4LDkgKzE2NSw5IEBAIHZvaWQgU2NyaXB0RWxl
bWVudERhdGE6OnJlcXVlc3RTY3JpcHQoY28KICAgICBtX3NjcmlwdEVsZW1lbnQtPmRpc3BhdGNo
RXJyb3JFdmVudCgpOwogfQogCi12b2lkIFNjcmlwdEVsZW1lbnREYXRhOjpldmFsdWF0ZVNjcmlw
dChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCwgY29uc3QgU3RyaW5nJiBjb250ZW50KQordm9pZCBT
Y3JpcHRFbGVtZW50RGF0YTo6ZXZhbHVhdGVTY3JpcHQoY29uc3QgU291cmNlQ29kZSYgc291cmNl
Q29kZSkKIHsKLSAgICBpZiAobV9ldmFsdWF0ZWQgfHwgY29udGVudC5pc0VtcHR5KCkgfHwgIXNo
b3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSkKKyAgICBpZiAobV9ldmFsdWF0ZWQgfHwgIXNvdXJj
ZUNvZGUubGVuZ3RoKCkgfHwgIXNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+
ZnJhbWUoKSkgewpAQCAtMTY5LDkgKzE3Niw3IEBAIHZvaWQgU2NyaXB0RWxlbWVudERhdGE6OmV2
YWx1YXRlU2NyaXB0KGMKIAogICAgICAgICBtX2V2YWx1YXRlZCA9IHRydWU7CiAKLSAgICAgICAg
Ly8gRklYTUU6IFRoaXMgc3RhcnRpbmcgbGluZSBudW1iZXIgd2lsbCBiZSBpbmNvcnJlY3QgZm9y
IGV2YWx1YXRpb24gdHJpZ2dlcmVkCi0gICAgICAgIC8vIGZyb20gaW5zZXJ0ZWRJbnRvRG9jdW1l
bnQgb3IgY2hpbGRyZW5DaGFuZ2VkLgotICAgICAgICBmcmFtZS0+c2NyaXB0KCktPmV2YWx1YXRl
KHNvdXJjZVVybCwgMSwgY29udGVudCk7CisgICAgICAgIGZyYW1lLT5zY3JpcHQoKS0+ZXZhbHVh
dGUoc291cmNlQ29kZSk7CiAgICAgICAgIERvY3VtZW50Ojp1cGRhdGVEb2N1bWVudHNSZW5kZXJp
bmcoKTsKICAgICB9CiB9CkBAIC0xOTYsNyArMjAxLDcgQEAgdm9pZCBTY3JpcHRFbGVtZW50RGF0
YTo6bm90aWZ5RmluaXNoZWQoQwogICAgIGlmIChjcy0+ZXJyb3JPY2N1cnJlZCgpKQogICAgICAg
ICBtX3NjcmlwdEVsZW1lbnQtPmRpc3BhdGNoRXJyb3JFdmVudCgpOwogICAgIGVsc2UgewotICAg
ICAgICBldmFsdWF0ZVNjcmlwdChjcy0+dXJsKCksIGNzLT5zY3JpcHQoKSk7CisgICAgICAgIGV2
YWx1YXRlU2NyaXB0KG1ha2VTb3VyY2UoY3MtPnNjcmlwdCgpLCBjcy0+dXJsKCkpKTsKICAgICAg
ICAgbV9zY3JpcHRFbGVtZW50LT5kaXNwYXRjaExvYWRFdmVudCgpOwogICAgIH0KIApJbmRleDog
ZG9tL1NjcmlwdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vU2NyaXB0RWxlbWVudC5oCShy
ZXZpc2lvbiAzODYzMykKKysrIGRvbS9TY3JpcHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI0LDYgKzI0LDEwIEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogCituYW1lc3BhY2UgSlNDIHsKKyAgICBjbGFz
cyBTb3VyY2VDb2RlOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFNj
cmlwdDsKQEAgLTc3LDcgKzgxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SGF2ZUZpcmVkTG9h
ZEV2ZW50KGJvb2wgZmlyZWRMb2FkKSB7IG1fZmlyZWRMb2FkID0gZmlyZWRMb2FkOyB9CiAKICAg
ICB2b2lkIHJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpOwotICAgIHZvaWQg
ZXZhbHVhdGVTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwsIGNvbnN0IFN0cmluZyYgY29u
dGVudCk7CisgICAgdm9pZCBldmFsdWF0ZVNjcmlwdChjb25zdCBKU0M6OlNvdXJjZUNvZGUmKTsK
ICAgICB2b2lkIHN0b3BMb2FkUmVxdWVzdCgpOwogCiBwcml2YXRlOgpJbmRleDogZG9tL1dvcmtl
clRocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL1dvcmtlclRocmVhZC5jcHAJKHJldmlzaW9u
IDM4NjMzKQorKysgZG9tL1dvcmtlclRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKIAogI2luY2x1ZGUgIkpTV29ya2Vy
Q29udGV4dC5oIgorI2luY2x1ZGUgIlN0cmluZ1NvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAi
V29ya2VyLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlck1l
c3NhZ2luZ1Byb3h5LmgiCkBAIC03Nyw3ICs3OCw3IEBAIHZvaWQqIFdvcmtlclRocmVhZDo6d29y
a2VyVGhyZWFkKCkKICAgICBSZWZQdHI8V29ya2VyQ29udGV4dD4gd29ya2VyQ29udGV4dCA9IFdv
cmtlckNvbnRleHQ6OmNyZWF0ZShLVVJMKG1fc2NyaXB0VVJMKSwgdGhpcyk7CiAgICAgV29ya2Vy
U2NyaXB0Q29udHJvbGxlciogc2NyaXB0ID0gd29ya2VyQ29udGV4dC0+c2NyaXB0KCk7CiAKLSAg
ICBzY3JpcHQtPmV2YWx1YXRlKG1fc2NyaXB0VVJMLCAxLCBtX3NvdXJjZUNvZGUpOworICAgIHNj
cmlwdC0+ZXZhbHVhdGUobWFrZVNvdXJjZShtX3NvdXJjZUNvZGUsIG1fc2NyaXB0VVJMKSk7CiAg
ICAgbV9tZXNzYWdpbmdQcm94eS0+Y29uZmlybVdvcmtlclRocmVhZE1lc3NhZ2Uod29ya2VyQ29u
dGV4dC0+aGFzUGVuZGluZ0FjdGl2aXR5KCkpOyAvLyBUaGlzIHdhc24ndCByZWFsbHkgYSBtZXNz
YWdlLCBidXQgaXQgY291bnRzIGFzIG9uZSBmb3IgR0MuCiAKICAgICB3aGlsZSAodHJ1ZSkgewpJ
bmRleDogZG9tL1hNTFRva2VuaXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL1hNTFRva2VuaXpl
ci5jcHAJKHJldmlzaW9uIDM4NjMzKQorKysgZG9tL1hNTFRva2VuaXplci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQxLDEzICs0MSwxNCBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1
ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgot
I2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgog
I2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJy
b3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJTdHJpbmdT
b3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNs
dWRlIDx3dGYvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CkBAIC0z
MzksNyArMzQwLDcgQEAgdm9pZCBYTUxUb2tlbml6ZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZAog
ICAgIGlmIChlcnJvck9jY3VycmVkKSAKICAgICAgICAgc2NyaXB0RWxlbWVudC0+ZGlzcGF0Y2hF
cnJvckV2ZW50KCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIG1fdmlldy0+ZnJhbWUoKS0+bG9hZGVy
KCktPmV4ZWN1dGVTY3JpcHQoY2FjaGVkU2NyaXB0VXJsLCAxLCBzY3JpcHRTb3VyY2UpOworICAg
ICAgICBtX3ZpZXctPmZyYW1lKCktPmxvYWRlcigpLT5leGVjdXRlU2NyaXB0KG1ha2VTb3VyY2Uo
c2NyaXB0U291cmNlLCBjYWNoZWRTY3JpcHRVcmwpKTsKICAgICAgICAgc2NyaXB0RWxlbWVudC0+
ZGlzcGF0Y2hMb2FkRXZlbnQoKTsKICAgICB9CiAgICAgCkluZGV4OiBkb20vWE1MVG9rZW5pemVy
TGlieG1sMi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL1hNTFRva2VuaXplckxpYnhtbDIuY3BwCShy
ZXZpc2lvbiAzODYzMykKKysrIGRvbS9YTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDAsMTQgKzQwLDE1IEBACiAjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIg
Ly8gZm9yIGRlY29kZU5hbWVkRW50aXR5Ci0jaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgot
I2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxl
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNw
b25zZS5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRF
bGVtZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJTdHJpbmdTb3Vy
Y2VQcm92aWRlci5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRl
IDxsaWJ4bWwvcGFyc2VyLmg+CiAjaW5jbHVkZSA8bGlieG1sL3BhcnNlckludGVybmFscy5oPgpA
QCAtODA1LDExICs4MDYsOCBAQCB2b2lkIFhNTFRva2VuaXplcjo6ZW5kRWxlbWVudE5zKCkKICAg
ICAgICAgICAgICAgICAgICAgcGF1c2VQYXJzaW5nKCk7CiAgICAgICAgICAgICB9IGVsc2UgCiAg
ICAgICAgICAgICAgICAgbV9zY3JpcHRFbGVtZW50ID0gMDsKLQotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgU3RyaW5nIHNjcmlwdENvZGUgPSBzY3JpcHRFbGVtZW50LT5zY3JpcHRDb250
ZW50KCk7Ci0gICAgICAgICAgICBtX3ZpZXctPmZyYW1lKCktPmxvYWRlcigpLT5leGVjdXRlU2Ny
aXB0KG1fZG9jLT51cmwoKS5zdHJpbmcoKSwgbV9zY3JpcHRTdGFydExpbmUsIHNjcmlwdENvZGUp
OwotICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV92aWV3LT5mcmFtZSgp
LT5sb2FkZXIoKS0+ZXhlY3V0ZVNjcmlwdChtYWtlU291cmNlKHNjcmlwdEVsZW1lbnQtPnNjcmlw
dENvbnRlbnQoKSwgbV9kb2MtPnVybCgpLnN0cmluZygpLCBtX3NjcmlwdFN0YXJ0TGluZSkpOwog
CiAgICAgICAgIG1fcmVxdWVzdGluZ1NjcmlwdCA9IGZhbHNlOwogICAgIH0KSW5kZXg6IGRvbS9Y
TUxUb2tlbml6ZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL1hNTFRva2VuaXplclF0LmNwcAko
cmV2aXNpb24gMzg2MzMpCisrKyBkb20vWE1MVG9rZW5pemVyUXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MCwxNCArNDAsMTUgQEAKICNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgotI2lu
Y2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCi0j
aW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24u
aCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUu
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3Bv
bnNlLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIlN0cmluZ1NvdXJj
ZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUg
PFFEZWJ1Zz4KICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KQEAgLTU4MywxMSArNTg0LDggQEAg
dm9pZCBYTUxUb2tlbml6ZXI6OnBhcnNlRW5kRWxlbWVudCgpCiAgICAgICAgICAgICAgICAgICAg
IHBhdXNlUGFyc2luZygpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgbV9z
Y3JpcHRFbGVtZW50ID0gMDsKLQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgU3RyaW5n
IHNjcmlwdENvZGUgPSBzY3JpcHRFbGVtZW50LT5zY3JpcHRDb250ZW50KCk7Ci0gICAgICAgICAg
ICBtX3ZpZXctPmZyYW1lKCktPmxvYWRlcigpLT5leGVjdXRlU2NyaXB0KG1fZG9jLT51cmwoKS5z
dHJpbmcoKSwgbV9zY3JpcHRTdGFydExpbmUsIHNjcmlwdENvZGUpOwotICAgICAgICB9CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgbV92aWV3LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZXhlY3V0
ZVNjcmlwdChtYWtlU291cmNlKHNjcmlwdEVsZW1lbnQtPnNjcmlwdENvbnRlbnQoKSwgbV9kb2Mt
PnVybCgpLnN0cmluZygpLCBtX3NjcmlwdFN0YXJ0TGluZSkpOwogCiAgICAgICAgIG1fcmVxdWVz
dGluZ1NjcmlwdCA9IGZhbHNlOwogICAgIH0KSW5kZXg6IGh0bWwvSFRNTFRva2VuaXplci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gaHRtbC9IVE1MVG9rZW5pemVyLmNwcAkocmV2aXNpb24gMzg2MzMpCisr
KyBodG1sL0hUTUxUb2tlbml6ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBA
CiAjaW5jbHVkZSAiUHJlbG9hZFNjYW5uZXIuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJTdHJpbmdTb3VyY2VQcm92
aWRlci5oIgogI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlw
ZS5oPgogCkBAIC01Myw4ICs1NCw5IEBACiAjZGVmaW5lIFBSRUxPQURfU0NBTk5FUl9FTkFCTEVE
IDEKIC8vICNkZWZpbmUgSU5TVFJVTUVOVF9MQVlPVVRfU0NIRURVTElORyAxCiAKLXVzaW5nIG5h
bWVzcGFjZSBzdGQ7Cit1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFtZXNwYWNlIFdURjsK
K3VzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTAwLDcg
KzUwMiw3IEBAIEhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUb2tlbml6ZXI6OnNjcmkKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBwcmVwZW5kaW5nU3JjID0gbV9zcmM7CiAgICAg
ICAgICAgICBzZXRTcmMoU2VnbWVudGVkU3RyaW5nKCkpOwotICAgICAgICAgICAgc3RhdGUgPSBz
Y3JpcHRFeGVjdXRpb24oc2NyaXB0U3RyaW5nLCBzdGF0ZSwgU3RyaW5nKCksIHN0YXJ0TGluZSk7
CisgICAgICAgICAgICBzdGF0ZSA9IHNjcmlwdEV4ZWN1dGlvbihtYWtlU291cmNlKHNjcmlwdFN0
cmluZywgbV9kb2MtPmZyYW1lKCkgPyBtX2RvYy0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+dXJsKCku
c3RyaW5nKCkgOiBTdHJpbmcoKSwgc3RhcnRMaW5lKSwgc3RhdGUpOwogICAgICAgICB9CiAgICAg
fQogCkBAIC01NDIsMTIgKzU0NCwxMSBAQCBIVE1MVG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5p
emVyOjpzY3JpCiAgICAgcmV0dXJuIHN0YXRlOwogfQogCi1IVE1MVG9rZW5pemVyOjpTdGF0ZSBI
VE1MVG9rZW5pemVyOjpzY3JpcHRFeGVjdXRpb24oY29uc3QgU3RyaW5nJiBzdHIsIFN0YXRlIHN0
YXRlLCBjb25zdCBTdHJpbmcmIHNjcmlwdFVSTCwgaW50IGJhc2VMaW5lKQorSFRNTFRva2VuaXpl
cjo6U3RhdGUgSFRNTFRva2VuaXplcjo6c2NyaXB0RXhlY3V0aW9uKGNvbnN0IFNvdXJjZUNvZGUm
IHNvdXJjZUNvZGUsIFN0YXRlIHN0YXRlKQogewogICAgIGlmIChtX2ZyYWdtZW50IHx8ICFtX2Rv
Yy0+ZnJhbWUoKSkKICAgICAgICAgcmV0dXJuIHN0YXRlOwogICAgIG1fZXhlY3V0aW5nU2NyaXB0
Kys7Ci0gICAgU3RyaW5nIHVybCA9IHNjcmlwdFVSTC5pc051bGwoKSA/IG1fZG9jLT5mcmFtZSgp
LT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSA6IHNjcmlwdFVSTDsKIAogICAgIFNlZ21lbnRl
ZFN0cmluZyogc2F2ZWRQcmVwZW5kaW5nU3JjID0gbV9jdXJyZW50UHJlcGVuZGluZ1NyYzsKICAg
ICBTZWdtZW50ZWRTdHJpbmcgcHJlcGVuZGluZ1NyYzsKQEAgLTU1OSw3ICs1NjAsNyBAQCBIVE1M
VG9rZW5pemVyOjpTdGF0ZSBIVE1MVG9rZW5pemVyOjpzY3JpCiAjZW5kaWYKIAogICAgIG1fc3Rh
dGUgPSBzdGF0ZTsKLSAgICBtX2RvYy0+ZnJhbWUoKS0+bG9hZGVyKCktPmV4ZWN1dGVTY3JpcHQo
dXJsLCBiYXNlTGluZSwgc3RyKTsKKyAgICBtX2RvYy0+ZnJhbWUoKS0+bG9hZGVyKCktPmV4ZWN1
dGVTY3JpcHQoc291cmNlQ29kZSk7CiAgICAgc3RhdGUgPSBtX3N0YXRlOwogCiAgICAgc3RhdGUu
c2V0QWxsb3dZaWVsZCh0cnVlKTsKQEAgLTE5ODIsNyArMTk4Myw3IEBAIHZvaWQgSFRNTFRva2Vu
aXplcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGUKICAgICAgICAgICAgIEV2ZW50VGFyZ2V0Tm9kZUNh
c3Qobi5nZXQoKSktPmRpc3BhdGNoRXZlbnRGb3JUeXBlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50
LCB0cnVlLCBmYWxzZSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgaWYgKHN0YXRpY19j
YXN0PEhUTUxTY3JpcHRFbGVtZW50Kj4obi5nZXQoKSktPnNob3VsZEV4ZWN1dGVBc0phdmFTY3Jp
cHQoKSkKLSAgICAgICAgICAgICAgICBtX3N0YXRlID0gc2NyaXB0RXhlY3V0aW9uKHNjcmlwdFNv
dXJjZSwgbV9zdGF0ZSwgY2FjaGVkU2NyaXB0VXJsKTsKKyAgICAgICAgICAgICAgICBtX3N0YXRl
ID0gc2NyaXB0RXhlY3V0aW9uKG1ha2VTb3VyY2Uoc2NyaXB0U291cmNlLCBjYWNoZWRTY3JpcHRV
cmwpLCBtX3N0YXRlKTsKICAgICAgICAgICAgIEV2ZW50VGFyZ2V0Tm9kZUNhc3Qobi5nZXQoKSkt
PmRpc3BhdGNoRXZlbnRGb3JUeXBlKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIGZhbHNlLCBmYWxz
ZSk7CiAgICAgICAgIH0KIApJbmRleDogaHRtbC9IVE1MVG9rZW5pemVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gaHRtbC9IVE1MVG9rZW5pemVyLmgJKHJldmlzaW9uIDM4NjMzKQorKysgaHRtbC9IVE1MVG9r
ZW5pemVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAorbmFtZXNwYWNlIEpTQyB7Cisg
ICAgY2xhc3MgU291cmNlQ29kZTsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBD
YWNoZWRTY3JpcHQ7CkBAIC0xNzcsNyArMTgxLDcgQEAgcHJpdmF0ZToKICAgICBTdGF0ZSBwYXJz
ZUVudGl0eShTZWdtZW50ZWRTdHJpbmcmLCBVQ2hhciomIGRlc3QsIFN0YXRlLCB1bnNpZ25lZCYg
Y0J1ZmZlclBvcywgYm9vbCBzdGFydCwgYm9vbCBwYXJzaW5nVGFnKTsKICAgICBTdGF0ZSBwYXJz
ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSk7CiAgICAgU3Rh
dGUgc2NyaXB0SGFuZGxlcihTdGF0ZSk7Ci0gICAgU3RhdGUgc2NyaXB0RXhlY3V0aW9uKGNvbnN0
IFN0cmluZyYgc2NyaXB0LCBTdGF0ZSwgY29uc3QgU3RyaW5nJiBzY3JpcHRVUkwsIGludCBiYXNl
TGluZSA9IDEpOworICAgIFN0YXRlIHNjcmlwdEV4ZWN1dGlvbihjb25zdCBKU0M6OlNvdXJjZUNv
ZGUmLCBTdGF0ZSk7CiAgICAgdm9pZCBzZXRTcmMoY29uc3QgU2VnbWVudGVkU3RyaW5nJik7CiAg
CiAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBlbm91Z2ggc3BhY2UgaW4gdGhlIGJ1ZmZlci4KSW5k
ZXg6IGxvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAkocmV2aXNpb24gMzg2MzMpCisrKyBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NSw2ICs2NSw4IEBACiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCiAj
aW5jbHVkZSAiSWNvbkxvYWRlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIK
KyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1
ZGUgIk1haW5SZXNvdXJjZUxvYWRlci5oIgpAQCAtNzQsMjEgKzc2LDIxIEBACiAjaW5jbHVkZSAi
UGx1Z2luRGF0YS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlJl
bmRlclBhcnQuaCIKLSNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJSZW5kZXJW
aWV3LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCisjaW5jbHVkZSAiU3RyaW5nU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTeXN0ZW1U
aW1lLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIldpbmRv
d0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKICNpbmNsdWRlICJYTUxU
b2tlbml6ZXIuaCIKLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCi0jaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDxydW50aW1l
L0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CkBAIC0xMDgsNiArMTEwLDggQEAKICNpbmNsdWRlICJTVkdWaWV3U3Bl
Yy5oIgogI2VuZGlmCiAKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogI2lmIEVOQUJMRShTVkcpCkBAIC03NzMsMTAgKzc3NywxMCBAQCBib29sIEZyYW1lTG9h
ZGVyOjpleGVjdXRlSWZKYXZhU2NyaXB0VVJMCiAKIFNjcmlwdFZhbHVlIEZyYW1lTG9hZGVyOjpl
eGVjdXRlU2NyaXB0KGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUp
CiB7Ci0gICAgcmV0dXJuIGV4ZWN1dGVTY3JpcHQoZm9yY2VVc2VyR2VzdHVyZSA/IFN0cmluZygp
IDogbV9VUkwuc3RyaW5nKCksIDEsIHNjcmlwdCk7CisgICAgcmV0dXJuIGV4ZWN1dGVTY3JpcHQo
bWFrZVNvdXJjZShzY3JpcHQsIGZvcmNlVXNlckdlc3R1cmUgPyBTdHJpbmcoKSA6IG1fVVJMLnN0
cmluZygpKSk7CiB9CiAKLVNjcmlwdFZhbHVlIEZyYW1lTG9hZGVyOjpleGVjdXRlU2NyaXB0KGNv
bnN0IFN0cmluZyYgdXJsLCBpbnQgYmFzZUxpbmUsIGNvbnN0IFN0cmluZyYgc2NyaXB0KQorU2Ny
aXB0VmFsdWUgRnJhbWVMb2FkZXI6OmV4ZWN1dGVTY3JpcHQoY29uc3QgU291cmNlQ29kZSYgc291
cmNlQ29kZSkKIHsKICAgICBpZiAoIW1fZnJhbWUtPnNjcmlwdCgpLT5pc0VuYWJsZWQoKSB8fCBt
X2ZyYW1lLT5zY3JpcHQoKS0+aXNQYXVzZWQoKSkKICAgICAgICAgcmV0dXJuIFNjcmlwdFZhbHVl
KCk7CkBAIC03ODQsNyArNzg4LDcgQEAgU2NyaXB0VmFsdWUgRnJhbWVMb2FkZXI6OmV4ZWN1dGVT
Y3JpcHQoYwogICAgIGJvb2wgd2FzUnVubmluZ1NjcmlwdCA9IG1faXNSdW5uaW5nU2NyaXB0Owog
ICAgIG1faXNSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKIAotICAgIFNjcmlwdFZhbHVlIHJlc3VsdCA9
IG1fZnJhbWUtPnNjcmlwdCgpLT5ldmFsdWF0ZSh1cmwsIGJhc2VMaW5lLCBzY3JpcHQpOworICAg
IFNjcmlwdFZhbHVlIHJlc3VsdCA9IG1fZnJhbWUtPnNjcmlwdCgpLT5ldmFsdWF0ZShzb3VyY2VD
b2RlKTsKIAogICAgIGlmICghd2FzUnVubmluZ1NjcmlwdCkgewogICAgICAgICBtX2lzUnVubmlu
Z1NjcmlwdCA9IGZhbHNlOwpJbmRleDogbG9hZGVyL0ZyYW1lTG9hZGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHJldmlzaW9uIDM4NjMzKQorKysgbG9hZGVyL0ZyYW1l
TG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDEwIEBACiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VDbGllbnQuaCIKICNlbmRpZgogCituYW1lc3BhY2UgSlNDIHsKKyAgICBjbGFz
cyBTb3VyY2VDb2RlOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBBcmNo
aXZlOwpAQCAtMzM1LDcgKzMzOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8g
UmV0dXJucyB0cnVlIGlmIHVybCBpcyBhIEphdmFTY3JpcHQgVVJMLgogICAgICAgICBib29sIGV4
ZWN1dGVJZkphdmFTY3JpcHRVUkwoY29uc3QgS1VSTCYgdXJsLCBib29sIHVzZXJHZXN0dXJlID0g
ZmFsc2UsIGJvb2wgcmVwbGFjZURvY3VtZW50ID0gdHJ1ZSk7CiAKLSAgICAgICAgU2NyaXB0VmFs
dWUgZXhlY3V0ZVNjcmlwdChjb25zdCBTdHJpbmcmIHVybCwgaW50IGJhc2VMaW5lLCBjb25zdCBT
dHJpbmcmIHNjcmlwdCk7CisgICAgICAgIFNjcmlwdFZhbHVlIGV4ZWN1dGVTY3JpcHQoY29uc3Qg
SlNDOjpTb3VyY2VDb2RlJik7CiAgICAgICAgIFNjcmlwdFZhbHVlIGV4ZWN1dGVTY3JpcHQoY29u
c3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSA9IGZhbHNlKTsKIAogICAg
ICAgICB2b2lkIGdvdG9BbmNob3IoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25341</attachid>
            <date>2008-11-20 23:48:18 -0800</date>
            <delta_ts>2008-11-21 10:45:03 -0800</delta_ts>
            <desc>Patch 2 - CachedScriptSourceProvider</desc>
            <filename>cachedScriptProvider.diff</filename>
            <type>text/plain</type>
            <size>14284</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4NjU1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMDgtMTEt
MjAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWNvbmQgc3RlcCBpbiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzOTQKKyAgICAgICAgQmUgbW9yZSBlYWdlciBpbiBk
ZXN0cm95aW5nIHNjcmlwdCBkZWNvZGVkIGRhdGEKKworICAgICAgICBVc2UgYSBuZXcgQ2FjaGVk
U2NyaXB0U291cmNlUHJvdmlkZXIgdG8ga2VlcCBDYWNoZWRTY3JpcHRzIGFzCisgICAgICAgIENh
Y2hlZFNjcmlwdHMsIGV2ZW4gZG93biBpbnRvIEpTQy4gIFRoaXMgaGFzIHRoZSBhZGRlZCBiZW5l
Zml0CisgICAgICAgIG9mIHNob3dpbmcgdGhlIENhY2hlZFNjcmlwdHMgYXMgbGl2ZSBpbiB0aGUg
Q2FjaGVzIHdpbmRvdy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3Vy
Y2VQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdFNvdXJj
ZVByb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0U291cmNl
UHJvdmlkZXI6On5DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcjo6Z2V0UmFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI6Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcjo6Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6bWFrZVNvdXJjZSk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudERhdGE6Om5vdGlmeUZpbmlz
aGVkKToKKyAgICAgICAgKiBkb20vWE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTFRva2VuaXplcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGh0bWwvSFRNTFRva2Vu
aXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpub3RpZnlGaW5pc2hl
ZCk6CisKIDIwMDgtMTEtMjAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KSW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAzODYzMykKKysrIEdOVW1ha2VmaWxl
LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yMzIsNiArMjMyLDcgQEAgSURMX0JJTkRJTkdTICs9IFwK
IAogd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL1dlYkNvcmVQcmVmaXguaCBcCisJV2Vi
Q29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIFwKIAlXZWJDb3Jl
L2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvR0ND
b250cm9sbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNBdHRyQ3VzdG9tLmNwcCBcCklu
ZGV4OiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMzg2MzMpCisrKyBXZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTMzMjksNiArMTMzMjksMTAgQEAK
IAkJCQlOYW1lPSJqcyINCiAJCQkJPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIg0KKwkJCQkJPg0KKwkJ
CQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEdDQ29udHJvbGxlci5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkluZGV4OiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAzODYzMykKKysrIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDAwOSw2ICs0MDA5LDcgQEAKIAkJ
QkNEMEZCRDAwREJENjI1RTAwQjJGNjMwIC8qIERPTUFic3RyYWN0Vmlldy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDBGQkNGMERCRDYyNUUwMEIy
RjYzMCAvKiBET01BYnN0cmFjdFZpZXcubW0gKi87IH07CiAJCUJDRDBGQzRGMERCRDcyMEIwMEIy
RjYzMCAvKiBET01SR0JDb2xvckludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0QwRkM0RTBEQkQ3MjBCMDBCMkY2MzAgLyogRE9NUkdCQ29s
b3JJbnRlcm5hbC5oICovOyB9OwogCQlCQ0Q0MUFCQjBDMDYwREU4MDBDMEU0NDYgLyogSlNIVE1M
RnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRDQxQUJBMEMwNjBERTgwMEMwRTQ0NiAvKiBKU0hUTUxGcmFtZVNl
dEVsZW1lbnRDdXN0b20uY3BwICovOyB9OworCQlCQ0Q1MzM2NDBFRDY4NDg5MDA4ODc0NjggLyog
Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3Jp
cHRTb3VyY2VQcm92aWRlci5oICovOyB9OwogCQlCQ0Q5QzI2MjBDMTdBQTY3MDA1QzkwQTIgLyog
SlNET01XaW5kb3dDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNEOUMyNUUwQzE3QUE2NzAwNUM5MEEyIC8qIEpTRE9NV2luZG93Q3VzdG9t
LmNwcCAqLzsgfTsKIAkJQkNEOUMyNjMwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFw
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDRDlDMjVGMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgKi87
IH07CiAJCUJDRDlDMjY0MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNEOUMyNjAwQzE3QUE2
NzAwNUM5MEEyIC8qIEpTTm9kZUN1c3RvbS5jcHAgKi87IH07CkBAIC04NjUwLDYgKzg2NTEsNyBA
QAogCQlCQ0QwRkJDRjBEQkQ2MjVFMDBCMkY2MzAgLyogRE9NQWJzdHJhY3RWaWV3Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NQWJzdHJhY3RWaWV3Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0QwRkM0RTBEQkQ3MjBCMDBCMkY2MzAgLyog
RE9NUkdCQ29sb3JJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01SR0JDb2xvckludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRDQx
QUJBMEMwNjBERTgwMEMwRTQ0NiAvKiBKU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTEZyYW1lU2V0RWxlbWVu
dEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDRDUzMzYzMEVENjg0
ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Q5QzI1RTBDMTdBQTY3MDA1QzkwQTIgLyogSlNET01X
aW5kb3dDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RE9NV2luZG93Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNEOUMy
NUYwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRDlDMjYwMEMxN0FBNjcwMDVDOTBBMiAvKiBK
U05vZGVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
Tm9kZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjk0Niw5ICsx
Mjk0OCwxMCBAQAogCQlCQzFBMzc5MzA5N0M2RkIxMDAxOUYzRDggLyoganMgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTE0REZCMzNGMEE3REY3NjMwMDE4
Rjc2OSAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJQkM0RURFRjcwQzA4RjQxNDAwN0VERDQ5
IC8qIEN1c3RvbSAqLywKKwkJCQkxNERGQjMzRjBBN0RGNzYzMDAxOEY3NjkgLyogRGVyaXZlZCBT
b3VyY2VzICovLAogCQkJCTkzRjhCMzA2MEEzMDBGRUEwMEY2MUFCOCAvKiBDb2RlR2VuZXJhdG9y
SlMucG0gKi8sCisJCQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hlZFNjcmlwdFNv
dXJjZVByb3ZpZGVyLmggKi8sCiAJCQkJMTQzMkU4NDgwQzUxNDkzRjAwQjE1MDBGIC8qIEdDQ29u
dHJvbGxlci5jcHAgKi8sCiAJCQkJMTQzMkU4NDYwQzUxNDkzODAwQjE1MDBGIC8qIEdDQ29udHJv
bGxlci5oICovLAogCQkJCUU0RUVGRkM2MEQzNDU1MEMwMDQ2OUE1OCAvKiBKU0F1ZGlvQ29uc3Ry
dWN0b3IuY3BwICovLApAQCAtMTI5NjUsOSArMTI5NjgsMTEgQEAKIAkJCQlCQ0JGQjUzQjBEQ0Qy
OUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5oICovLAogCQkJCTkzQjcwRDREMDlFQjBD
N0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuY3BwICovLAogCQkJCTkzQjcwRDRFMDlFQjBD
N0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuaCAqLywKKwkJCQlCQzYwOTAxRTBFOTFCOEVD
MDAwQzY4QjUgLyogSlNFdmVudFRhcmdldC5jcHAgKi8sCisJCQkJQkM2MDkwMUQwRTkxQjhFQzAw
MEM2OEI1IC8qIEpTRXZlbnRUYXJnZXQuaCAqLywKIAkJCQlCMjVCRTUwRjBEMDZCNzA4MDBCNTI0
QzYgLyogSlNFdmVudFRhcmdldEJhc2UuaCAqLywKLQkJCQlCQzZEQzdBMDBDMUE0QkZBMDA0RTIw
MTcgLyogSlNIVE1MQWxsQ29sbGVjdGlvbi5oICovLAogCQkJCTkzNTBFNzBDMEU4NzUwMEIwMDE4
OUZGRiAvKiBKU0hUTUxBbGxDb2xsZWN0aW9uLmNwcCAqLywKKwkJCQlCQzZEQzdBMDBDMUE0QkZB
MDA0RTIwMTcgLyogSlNIVE1MQWxsQ29sbGVjdGlvbi5oICovLAogCQkJCUJDNkM0OUYxMEQ3REJB
MDUwMEZGQTU1OCAvKiBKU0ltYWdlQ29uc3RydWN0b3IuY3BwICovLAogCQkJCUJDNkM0OUYyMEQ3
REJBMDUwMEZGQTU1OCAvKiBKU0ltYWdlQ29uc3RydWN0b3IuaCAqLywKIAkJCQlDMDkxNTg4NDBE
QjQyMDkyMDBFNTVBRjQgLyogSlNJbnNwZWN0ZWRPYmplY3RXcmFwcGVyLmNwcCAqLywKQEAgLTEz
MDAwLDE1ICsxMzAwNSwxMyBAQAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hl
ZHVsZWRBY3Rpb24uY3BwICovLAogCQkJCUJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hl
ZHVsZWRBY3Rpb24uaCAqLywKIAkJCQk5M0I3MEQ1MzA5RUIwQzdDMDA5RDg0NjggLyogU2NyaXB0
Q29udHJvbGxlci5jcHAgKi8sCi0JCQkJQTgzRTFDNzIwRTQ5MDQyQjAwMTQwQjlDIC8qIFNjcmlw
dENvbnRyb2xsZXJNYWMubW0gKi8sCiAJCQkJOTNCNzBENTQwOUVCMEM3QzAwOUQ4NDY4IC8qIFNj
cmlwdENvbnRyb2xsZXIuaCAqLywKKwkJCQlBODNFMUM3MjBFNDkwNDJCMDAxNDBCOUMgLyogU2Ny
aXB0Q29udHJvbGxlck1hYy5tbSAqLywKIAkJCQk5MzRDQzBERjBFRDM5RDZGMDBBNjU4RjIgLyog
U2NyaXB0VmFsdWUuY3BwICovLAogCQkJCTkzNENDMEUwMEVEMzlENkYwMEE2NThGMiAvKiBTY3Jp
cHRWYWx1ZS5oICovLAogCQkJCTY1NDg4RDZBMERENUE4M0QwMDlEODNCMiAvKiBTdHJpbmdTb3Vy
Y2VQcm92aWRlci5oICovLAotCQkJCUJDNjA5MDFEMEU5MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50
VGFyZ2V0LmggKi8sCi0JCQkJQkM2MDkwMUUwRTkxQjhFQzAwMEM2OEI1IC8qIEpTRXZlbnRUYXJn
ZXQuY3BwICovLAotCQkJCUUxQTY0M0YxMEVDMDk3MjUwMDc3OTY2OCAvKiBXb3JrZXJTY3JpcHRD
b250cm9sbGVyLmggKi8sCiAJCQkJRTFBNjQzRkMwRUMwOTdBMDAwNzc5NjY4IC8qIFdvcmtlclNj
cmlwdENvbnRyb2xsZXIuY3BwICovLAorCQkJCUUxQTY0M0YxMEVDMDk3MjUwMDc3OTY2OCAvKiBX
b3JrZXJTY3JpcHRDb250cm9sbGVyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGpzOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2MzEwLDYgKzE2MzEzLDcgQEAKIAkJCQlFMTQ3OTlB
NzBFQ0RFM0E0MDAyOTJCRjMgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzNENDMEUyMEVEMzlENkYwMEE2NThGMiAvKiBTY3JpcHRWYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDg5N0MxNEQwRUQyRUJBNTAwQUUwNkRCIC8qIFdNTEJSRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQkNENTMzNjQwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hlZFNjcmlw
dFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IGJpbmRpbmdzL2pzL0NhY2hl
ZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3MvanMvQ2FjaGVk
U2NyaXB0U291cmNlUHJvdmlkZXIuaAkocmV2aXNpb24gMCkKKysrIGJpbmRpbmdzL2pzL0NhY2hl
ZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDYWNo
ZWRTY3JpcHRTb3VyY2VQcm92aWRlcl9oCisjZGVmaW5lIENhY2hlZFNjcmlwdFNvdXJjZVByb3Zp
ZGVyX2gKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCisjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlIDxwYXJzZXIvU291cmNlQ29kZS5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRl
ciA6IHB1YmxpYyBKU0M6OlNvdXJjZVByb3ZpZGVyLCBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGll
bnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2FjaGVkU2NyaXB0
U291cmNlUHJvdmlkZXI+IGNyZWF0ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyKGNhY2hlZFNjcmlwdCkp
OyB9CisKKyAgICAgICAgdmlydHVhbCB+Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIoKQorICAg
ICAgICB7CisgICAgICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwor
ICAgICAgICB9CisKKyAgICAgICAgSlNDOjpVU3RyaW5nIGdldFJhbmdlKGludCBzdGFydCwgaW50
IGVuZCkgY29uc3QgeyByZXR1cm4gSlNDOjpVU3RyaW5nKG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQo
KS5jaGFyYWN0ZXJzKCkgKyBzdGFydCwgZW5kIC0gc3RhcnQpOyB9CisgICAgICAgIGNvbnN0IFVD
aGFyKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQtPnNjcmlwdCgpLmNoYXJh
Y3RlcnMoKTsgfQorICAgICAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRT
Y3JpcHQtPnNjcmlwdCgpLmxlbmd0aCgpOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBDYWNo
ZWRTY3JpcHRTb3VyY2VQcm92aWRlcihDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKKyAgICAg
ICAgICAgIDogU291cmNlUHJvdmlkZXIoY2FjaGVkU2NyaXB0LT51cmwoKSkKKyAgICAgICAgICAg
ICwgbV9jYWNoZWRTY3JpcHQoY2FjaGVkU2NyaXB0KQorICAgICAgICB7CisgICAgICAgICAgICBt
X2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdDsKKyAgICB9Owor
CisgICAgaW5saW5lIEpTQzo6U291cmNlQ29kZSBtYWtlU291cmNlKENhY2hlZFNjcmlwdCogY2Fj
aGVkU2NyaXB0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTQzo6U291cmNlQ29kZShDYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKGNhY2hlZFNjcmlwdCksIDEpOworICAgIH0KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ2FjaGVkU2NyaXB0U291cmNlUHJv
dmlkZXJfaApJbmRleDogZG9tL1NjcmlwdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9T
Y3JpcHRFbGVtZW50LmNwcAkocmV2aXNpb24gMzg2NTQpCisrKyBkb20vU2NyaXB0RWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJTY3JpcHRFbGVt
ZW50LmgiCiAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3Jp
cHRTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIkRvY0xvYWRlci5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTE5Nyw3ICsxOTgsNyBAQCB2b2lkIFNj
cmlwdEVsZW1lbnREYXRhOjpub3RpZnlGaW5pc2hlZChDCiAgICAgaWYgKGNzLT5lcnJvck9jY3Vy
cmVkKCkpCiAgICAgICAgIG1fc2NyaXB0RWxlbWVudC0+ZGlzcGF0Y2hFcnJvckV2ZW50KCk7CiAg
ICAgZWxzZSB7Ci0gICAgICAgIGV2YWx1YXRlU2NyaXB0KG1ha2VTb3VyY2UoY3MtPnNjcmlwdCgp
LCBjcy0+dXJsKCkpKTsKKyAgICAgICAgZXZhbHVhdGVTY3JpcHQobWFrZVNvdXJjZShjcykpOwog
ICAgICAgICBtX3NjcmlwdEVsZW1lbnQtPmRpc3BhdGNoTG9hZEV2ZW50KCk7CiAgICAgfQogCklu
ZGV4OiBkb20vWE1MVG9rZW5pemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vWE1MVG9rZW5pemVy
LmNwcAkocmV2aXNpb24gMzg2NTQpCisrKyBkb20vWE1MVG9rZW5pemVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgogI2luY2x1
ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNsdWRlICJDYWNo
ZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIkNvbW1lbnQuaCIKICNpbmNsdWRl
ICJEb2NMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMzI1LDkgKzMyNiw5IEBA
IHZvaWQgWE1MVG9rZW5pemVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWQKICAgICBBU1NFUlQobV9w
ZW5kaW5nU2NyaXB0ID09IGZpbmlzaGVkT2JqKTsKICAgICBBU1NFUlQobV9wZW5kaW5nU2NyaXB0
LT5hY2Nlc3NDb3VudCgpID4gMCk7CiAgICAgICAgIAotICAgIFN0cmluZyBjYWNoZWRTY3JpcHRV
cmwgPSBtX3BlbmRpbmdTY3JpcHQtPnVybCgpOwotICAgIFN0cmluZyBzY3JpcHRTb3VyY2UgPSBt
X3BlbmRpbmdTY3JpcHQtPnNjcmlwdCgpOworICAgIEpTQzo6U291cmNlQ29kZSBzb3VyY2VDb2Rl
ID0gbWFrZVNvdXJjZShtX3BlbmRpbmdTY3JpcHQuZ2V0KCkpOwogICAgIGJvb2wgZXJyb3JPY2N1
cnJlZCA9IG1fcGVuZGluZ1NjcmlwdC0+ZXJyb3JPY2N1cnJlZCgpOworCiAgICAgbV9wZW5kaW5n
U2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CiAgICAgbV9wZW5kaW5nU2NyaXB0ID0gMDsKICAg
ICAKQEAgLTM0MCwxMCArMzQxLDEwIEBAIHZvaWQgWE1MVG9rZW5pemVyOjpub3RpZnlGaW5pc2hl
ZChDYWNoZWQKICAgICBpZiAoZXJyb3JPY2N1cnJlZCkgCiAgICAgICAgIHNjcmlwdEVsZW1lbnQt
PmRpc3BhdGNoRXJyb3JFdmVudCgpOwogICAgIGVsc2UgewotICAgICAgICBtX3ZpZXctPmZyYW1l
KCktPmxvYWRlcigpLT5leGVjdXRlU2NyaXB0KG1ha2VTb3VyY2Uoc2NyaXB0U291cmNlLCBjYWNo
ZWRTY3JpcHRVcmwpKTsKKyAgICAgICAgbV92aWV3LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZXhlY3V0
ZVNjcmlwdChzb3VyY2VDb2RlKTsKICAgICAgICAgc2NyaXB0RWxlbWVudC0+ZGlzcGF0Y2hMb2Fk
RXZlbnQoKTsKICAgICB9Ci0gICAgCisKICAgICBtX3NjcmlwdEVsZW1lbnQgPSAwOwogICAgIAog
ICAgIGlmICghbV9yZXF1ZXN0aW5nU2NyaXB0KQpJbmRleDogaHRtbC9IVE1MVG9rZW5pemVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxUb2tlbml6ZXIuY3BwCShyZXZpc2lvbiAzODY1NCkK
KysrIGh0bWwvSFRNTFRva2VuaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJDU1NIZWxwZXIuaCIKICNpbmNsdWRlICJDYWNoZS5oIgogI2luY2x1ZGUg
IkNhY2hlZFNjcmlwdC5oIgorI2luY2x1ZGUgIkNhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiRG9jTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgog
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKQEAgLTE5NjQsMTQgKzE5NjUsMTQgQEAgdm9pZCBIVE1M
VG9rZW5pemVyOjpub3RpZnlGaW5pc2hlZChDYWNoZQogICAgICAgICBtX3BlbmRpbmdTY3JpcHRz
LnJlbW92ZUZpcnN0KCk7CiAgICAgICAgIEFTU0VSVChjYWNoZSgpLT5kaXNhYmxlZCgpIHx8IGNz
LT5hY2Nlc3NDb3VudCgpID4gMCk7CiAKLSAgICAgICAgU3RyaW5nIHNjcmlwdFNvdXJjZSA9IGNz
LT5zY3JpcHQoKTsKICAgICAgICAgc2V0U3JjKFNlZ21lbnRlZFN0cmluZygpKTsKIAogICAgICAg
ICAvLyBtYWtlIHN1cmUgd2UgZm9yZ2V0IGFib3V0IHRoZSBzY3JpcHQgYmVmb3JlIHdlIGV4ZWN1
dGUgdGhlIG5ldyBvbmUKICAgICAgICAgLy8gaW5maW5pdGUgcmVjdXJzaW9uIG1pZ2h0IGhhcHBl
biBvdGhlcndpc2UKLSAgICAgICAgU3RyaW5nIGNhY2hlZFNjcmlwdFVybChjcy0+dXJsKCkpOwor
ICAgICAgICBKU0M6OlNvdXJjZUNvZGUgc291cmNlQ29kZSA9IG1ha2VTb3VyY2UoY3MpOwogICAg
ICAgICBib29sIGVycm9yT2NjdXJyZWQgPSBjcy0+ZXJyb3JPY2N1cnJlZCgpOwogICAgICAgICBj
cy0+cmVtb3ZlQ2xpZW50KHRoaXMpOworCiAgICAgICAgIFJlZlB0cjxOb2RlPiBuID0gbV9zY3Jp
cHROb2RlLnJlbGVhc2UoKTsKIAogI2lmZGVmIElOU1RSVU1FTlRfTEFZT1VUX1NDSEVEVUxJTkcK
QEAgLTE5ODMsNyArMTk4NCw3IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6bm90aWZ5RmluaXNoZWQo
Q2FjaGUKICAgICAgICAgICAgIEV2ZW50VGFyZ2V0Tm9kZUNhc3Qobi5nZXQoKSktPmRpc3BhdGNo
RXZlbnRGb3JUeXBlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCB0cnVlLCBmYWxzZSk7CiAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PEhUTUxTY3JpcHRFbGVtZW50
Kj4obi5nZXQoKSktPnNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSkKLSAgICAgICAgICAgICAg
ICBtX3N0YXRlID0gc2NyaXB0RXhlY3V0aW9uKG1ha2VTb3VyY2Uoc2NyaXB0U291cmNlLCBjYWNo
ZWRTY3JpcHRVcmwpLCBtX3N0YXRlKTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlID0gc2NyaXB0
RXhlY3V0aW9uKHNvdXJjZUNvZGUsIG1fc3RhdGUpOwogICAgICAgICAgICAgRXZlbnRUYXJnZXRO
b2RlQ2FzdChuLmdldCgpKS0+ZGlzcGF0Y2hFdmVudEZvclR5cGUoZXZlbnROYW1lcygpLmxvYWRF
dmVudCwgZmFsc2UsIGZhbHNlKTsKICAgICAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25359</attachid>
            <date>2008-11-21 11:40:49 -0800</date>
            <delta_ts>2008-11-21 13:40:57 -0800</delta_ts>
            <desc>Patch 3 - Destroy decoded data on allClientsRemoved</desc>
            <filename>three.diff</filename>
            <type>text/plain</type>
            <size>1613</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4NjY2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDgtMTEt
MjEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlyZCBzdGVwIGluIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM5NAorICAgICAgICBCZSBtb3JlIGVhZ2VyIGluIGRl
c3Ryb3lpbmcgc2NyaXB0IGRlY29kZWQgZGF0YQorCisgICAgICAgIERlc3Ryb3kgdGhlIGRlY29k
ZWQgZGF0YSB3aGVuIGFsbCBjbGllbnRzIGFyZSByZW1vdmVkIGZyb20gYSBDYWNoZWRTY3JpcHQu
CisKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFNjcmlwdDo6YWxsQ2xpZW50c1JlbW92ZWQpOgorICAgICAgICAqIGxvYWRlci9DYWNo
ZWRTY3JpcHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6YWxsQ2xpZW50c1Jl
bW92ZWQpOgorCiAyMDA4LTExLTIxICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCkluZGV4OiBsb2FkZXIvQ2FjaGVkU2Ny
aXB0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBsb2FkZXIvQ2FjaGVkU2NyaXB0LmNwcAkocmV2aXNpb24g
Mzg2NjYpCisrKyBsb2FkZXIvQ2FjaGVkU2NyaXB0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgs
NiArNTgsMTEgQEAgdm9pZCBDYWNoZWRTY3JpcHQ6OmFkZENsaWVudChDYWNoZWRSZXNvdQogICAg
ICAgICBjLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKIH0KIAordm9pZCBDYWNoZWRTY3JpcHQ6OmFs
bENsaWVudHNSZW1vdmVkKCkKK3sKKyAgICBkZXN0cm95RGVjb2RlZERhdGEoKTsKK30KKwogdm9p
ZCBDYWNoZWRTY3JpcHQ6OnNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYgY2hzKQogewogICAgIFRl
eHRFbmNvZGluZyBlbmNvZGluZyhjaHMpOwpJbmRleDogbG9hZGVyL0NhY2hlZFNjcmlwdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGxvYWRlci9DYWNoZWRTY3JpcHQuaAkocmV2aXNpb24gMzg2NjYpCisrKyBs
b2FkZXIvQ2FjaGVkU2NyaXB0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBjb25zdCBTdHJpbmcmIHNjcmlwdCgpOwogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBhZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqKTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGFsbENsaWVudHNSZW1vdmVkKCk7CiAKICAgICAgICAgdmlydHVhbCB2
b2lkIHNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYpOwogICAgICAgICB2aXJ0dWFsIFN0cmluZyBl
bmNvZGluZygpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25363</attachid>
            <date>2008-11-21 14:43:29 -0800</date>
            <delta_ts>2008-11-21 14:45:26 -0800</delta_ts>
            <desc>patch 4 - Destroy decoded data on a zero-delay timer</desc>
            <filename>destroyDecodedDataOnTimer.diff</filename>
            <type>text/plain</type>
            <size>2308</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4Njc3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDgtMTEt
MjEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZXN0cm95IHNjcmlwdCBkZWNvZGVkIGRhdGEgb24g
YSB6ZXJvLWRlbGF5IHRpbWVyIGFmdGVyCisgICAgICAgIGRlY29kaW5nLiAgVGhpcyBtZWFucyB3
ZSBub3cgaGF2ZSBubyBkZWNvZGVkIHNjcmlwdCBkYXRhCisgICAgICAgIGF0IHRoZSBlbmQgb2Yg
TWVtYnVzdGVyLgorCisgICAgICAgICogbG9hZGVyL0NhY2hlZFNjcmlwdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRTY3JpcHQ6OkNhY2hlZFNjcmlwdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRTY3JpcHQ6OnNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTY3JpcHQ6
OmRlY29kZWREYXRhRGVsZXRpb25UaW1lckZpcmVkKToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVk
U2NyaXB0Lmg6CisKIDIwMDgtMTEtMjEgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgR3RrLCBRdCwgYW5kIFd4IGJ1aWxkIGZpeC4KSW5kZXg6IGxv
YWRlci9DYWNoZWRTY3JpcHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxvYWRlci9DYWNoZWRTY3JpcHQu
Y3BwCShyZXZpc2lvbiAzODY3NikKKysrIGxvYWRlci9DYWNoZWRTY3JpcHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIENhY2hlZFNjcmlw
dDo6Q2FjaGVkU2NyaXB0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQp
CiAgICAgOiBDYWNoZWRSZXNvdXJjZSh1cmwsIFNjcmlwdCkKICAgICAsIG1fZW5jb2RpbmcoY2hh
cnNldCkKKyAgICAsIG1fZGVjb2RlZERhdGFEZWxldGlvblRpbWVyKHRoaXMsICZDYWNoZWRTY3Jp
cHQ6OmRlY29kZWREYXRhRGVsZXRpb25UaW1lckZpcmVkKQogewogICAgIC8vIEl0J3MgamF2YXNj
cmlwdCB3ZSB3YW50LgogICAgIC8vIEJ1dCBzb21lIHdlYnNpdGVzIHRoaW5rIHRoZWlyIHNjcmlw
dHMgYXJlIDxzb21lIHdyb25nIG1pbWV0eXBlIGhlcmU+CkBAIC04Miw2ICs4Myw3IEBAIGNvbnN0
IFN0cmluZyYgQ2FjaGVkU2NyaXB0OjpzY3JpcHQoKQogICAgICAgICBzZXREZWNvZGVkU2l6ZSht
X3NjcmlwdC5sZW5ndGgoKSAqIHNpemVvZihVQ2hhcikpOwogICAgIH0KIAorICAgIG1fZGVjb2Rl
ZERhdGFEZWxldGlvblRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICByZXR1cm4gbV9zY3JpcHQ7
CiB9CiAKQEAgLTExOSw0ICsxMjEsOSBAQCB2b2lkIENhY2hlZFNjcmlwdDo6ZGVzdHJveURlY29k
ZWREYXRhKCkKICAgICBzZXREZWNvZGVkU2l6ZSgwKTsKIH0KIAordm9pZCBDYWNoZWRTY3JpcHQ6
OmRlY29kZWREYXRhRGVsZXRpb25UaW1lckZpcmVkKFRpbWVyPENhY2hlZFNjcmlwdD4qKQorewor
ICAgIGRlc3Ryb3lEZWNvZGVkRGF0YSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBsb2FkZXIvQ2FjaGVkU2NyaXB0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbG9hZGVyL0NhY2hlZFNj
cmlwdC5oCShyZXZpc2lvbiAzODY3NikKKysrIGxvYWRlci9DYWNoZWRTY3JpcHQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIK
ICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTU3LDggKzU4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YSgpOwogCiAgICAgcHJpdmF0ZToK
KyAgICAgICAgdm9pZCBkZWNvZGVkRGF0YURlbGV0aW9uVGltZXJGaXJlZChUaW1lcjxDYWNoZWRT
Y3JpcHQ+Kik7CisKICAgICAgICAgU3RyaW5nIG1fc2NyaXB0OwogICAgICAgICBUZXh0RW5jb2Rp
bmcgbV9lbmNvZGluZzsKKyAgICAgICAgVGltZXI8Q2FjaGVkU2NyaXB0PiBtX2RlY29kZWREYXRh
RGVsZXRpb25UaW1lcjsKICAgICB9OwogfQogCg==
</data>
<flag name="review"
          id="11753"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>