<?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>48684</bug_id>
          
          <creation_ts>2010-10-29 14:55:40 -0700</creation_ts>
          <short_desc>Should make use of purge priorities for different resource types</short_desc>
          <delta_ts>2010-11-04 03:11:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="Pratik Solanki">psolanki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>psolanki</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>302083</commentid>
    <comment_count>0</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2010-10-29 14:55:40 -0700</bug_when>
    <thetext>PurgeableBuffer has support for purge priorities. We use this priority to set the volatile group when we call vm_purgable_control for the memory. Currently, all memory is marked as PurgeMiddle which get passed to the kernel as VM_VOLATILE_GROUP_4. Since some resource types (e.g. javascript) are more important than others, we should change this behavior to have different priority levels, e.g.

Default CachedResource priority - PurgeMiddle (which is the same as PurgeDefault)
CachedImage - PurgeFirst
CachedCSSStyleSheet - PurgeLast
CachedScript - PurgeLast</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302084</commentid>
    <comment_count>1</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2010-10-29 14:56:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/8611802&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302210</commentid>
    <comment_count>2</comment_count>
      <attachid>72421</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2010-10-29 17:44:26 -0700</bug_when>
    <thetext>Created attachment 72421
Patch

In order to use PurgeableBuffer::PurgePriority in CachedResource.h, I had to make the PurgeableBuffer.h private (otherwise WebKit fails to compile). I considered moving the PurgePriority enum to CachedResource but thought that it was more appropriate to leave it in PurgeableBuffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302300</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-30 07:21:15 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; In order to use PurgeableBuffer::PurgePriority in CachedResource.h, I had to make the PurgeableBuffer.h private (otherwise WebKit fails to compile). I considered moving the PurgePriority enum to CachedResource but thought that it was more appropriate to leave it in PurgeableBuffer.

I think that the purge priority enum should move to its own header. We don’t want everyone who includes CachedResource.h to have to include all of PurgeableBuffer.h just because of a single enum that’s needed.

If you did that, the new header would be private and PurgeableBuffer.h would remain project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302317</commentid>
    <comment_count>4</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2010-10-30 08:46:26 -0700</bug_when>
    <thetext>Ok. I can do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302834</commentid>
    <comment_count>5</comment_count>
      <attachid>72537</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2010-11-01 12:11:29 -0700</bug_when>
    <thetext>Created attachment 72537
Patch.v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302900</commentid>
    <comment_count>6</comment_count>
      <attachid>72537</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2010-11-01 13:52:42 -0700</bug_when>
    <thetext>Comment on attachment 72537
Patch.v2

Actually, we might be able to fix this bug by just changing the implementation of setPurgePriority() a bit and using that. Let me look at this a bit more. Removing this from the review queue for now while I try an alternate implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302982</commentid>
    <comment_count>7</comment_count>
      <attachid>72573</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2010-11-01 15:17:12 -0700</bug_when>
    <thetext>Created attachment 72573
Patch.v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303010</commentid>
    <comment_count>8</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-11-01 15:58:17 -0700</bug_when>
    <thetext>Attachment 72573 did not build on qt:
Build output: http://queues.webkit.org/results/4902002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303014</commentid>
    <comment_count>9</comment_count>
      <attachid>72581</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2010-11-01 16:01:47 -0700</bug_when>
    <thetext>Created attachment 72581
Patch.v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303019</commentid>
    <comment_count>10</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2010-11-01 16:03:23 -0700</bug_when>
    <thetext>Fixed the Qt build error. Thank you, Qt EWS bot!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304172</commentid>
    <comment_count>11</comment_count>
      <attachid>72581</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-03 11:54:01 -0700</bug_when>
    <thetext>Comment on attachment 72581
Patch.v4

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

Looks fine to me, but I’m not setting commit-queue+ at this time because you may want to make some of the changes I suggest here.

&gt; WebCore/loader/CachedCSSStyleSheet.h:63
&gt;      protected:
&gt; +        virtual PurgePriority resourcePurgePriority() const { return PurgeLast; }
&gt; +
&gt;          RefPtr&lt;TextResourceDecoder&gt; m_decoder;
&gt;          String m_decodedSheetText;

I think these members should be private, not protected, unless there is a derived class that needs to access these.

&gt; WebCore/loader/CachedImage.h:91
&gt; +protected:
&gt; +    virtual PurgePriority resourcePurgePriority() const { return PurgeFirst; }

This should be private, not protected, unless derived classes have to call it for some reason.

&gt; WebCore/loader/CachedResource.h:212
&gt; +    virtual PurgePriority resourcePurgePriority() const { return PurgeDefault; }

Given that this class is already named CachedResource, it seems this message should be called purgePriority, not resourcePurgePriority. The prefix doesn’t add anything.

This function should be private, not protected. There is no reason for a derived class to call it.

&gt; WebCore/loader/CachedScript.h:56
&gt; +    protected:
&gt; +        virtual PurgePriority resourcePurgePriority() const { return PurgeLast; }

This should be private, not protected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304269</commentid>
    <comment_count>12</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2010-11-03 13:54:42 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 72581 [details])
&gt; &gt; WebCore/loader/CachedCSSStyleSheet.h:63
&gt; &gt;      protected:
&gt; &gt; +        virtual PurgePriority resourcePurgePriority() const { return PurgeLast; }
&gt; &gt; +
&gt; &gt;          RefPtr&lt;TextResourceDecoder&gt; m_decoder;
&gt; &gt;          String m_decodedSheetText;
&gt; 
&gt; I think these members should be private, not protected, unless there is a derived class that needs to access these.

Interesting. I didn&apos;t know private functions could be overridden by subclasses and that it would work as expected. Yes, making it private would be much better. New updated patch coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304329</commentid>
    <comment_count>13</comment_count>
      <attachid>72879</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2010-11-03 15:45:18 -0700</bug_when>
    <thetext>Created attachment 72879
Patch.v5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304330</commentid>
    <comment_count>14</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2010-11-03 15:46:41 -0700</bug_when>
    <thetext>Updated patch attached based on feedback. Changed function name to purgePriority() and it&apos;s now private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304554</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-04 03:08:25 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 72879:

animations/dynamic-stylesheet-loading.html

Please file bugs against the tests.  These tests were authored by cmarrin@apple.com.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304555</commentid>
    <comment_count>16</comment_count>
      <attachid>72879</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-04 03:11:03 -0700</bug_when>
    <thetext>Comment on attachment 72879
Patch.v5

Clearing flags on attachment: 72879

Committed r71318: &lt;http://trac.webkit.org/changeset/71318&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304556</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-04 03:11:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72421</attachid>
            <date>2010-10-29 17:44:26 -0700</date>
            <delta_ts>2010-11-01 12:09:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>48684.patch</filename>
            <type>text/plain</type>
            <size>12305</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">Y29tbWl0IDhjZTE3OTk4MDM5MWJlODhlZmJlZmViODVlNzRmNTMxZjNlNTlmNzYKQXV0aG9yOiBQ
cmF0aWsgU29sYW5raSA8cHNvbGFua2lAYXBwbGUuY29tPgpEYXRlOiAgIEZyaSBPY3QgMjkgMTY6
MDc6MjAgMjAxMAoKICAgIFNob3VsZCBtYWtlIHVzZSBvZiBwdXJnZSBwcmlvcml0aWVzIGZvciBk
aWZmZXJlbnQgcmVzb3VyY2UgdHlwZXMKICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00ODY4NAogICAgCiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAg
IAogICAgQXNzaWduIHB1cmdlIHByaW9yaXRpZXMgdG8gQ2FjaGVkUmVzb3VyY2Ugb2JqZWN0cy4g
SmF2YVNjcmlwdCBhbmQgQ1NTIHN0eWxlc2hlZXRzIGFyZSBtb3JlCiAgICBpbXBvcnRhbnQgdGhh
biBpbWFnZXMgc28gaGludCB0byB0aGUga2VybmVsIHRvIHB1cmdlIHRoZW0gbGFzdC4KICAgIAog
ICAgQWxzbywgcmVtb3ZlIHVudXN1ZWQgUHVyZ2VhYmxlQnVmZmVyOjpjcmVhdGUoY29uc3QgVmVj
dG9yPGNoYXI+JikgZnVuY3Rpb24gYW5kIG1vdmUgdGhlCiAgICBwdXJnZWFibGUgbWVtb3J5IHNp
emUgdGhyZXNob2xkIGZyb20gQ2FjaGVkUmVzb3VyY2UgdG8gUHVyZ2VhYmxlQnVmZmVyLgogICAg
CiAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogTWFyayBQdXJnZWFibGVC
dWZmZXIuaCBhcyBwcml2YXRlIGhlYWRlci4KICAgICogbG9hZGVyL0NhY2hlZENTU1N0eWxlU2hl
ZXQuaDoKICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpyZXNvdXJjZVB1cmdlUHJp
b3JpdHkpOgogICAgKiBsb2FkZXIvQ2FjaGVkSW1hZ2UuaDoKICAgIChXZWJDb3JlOjpDYWNoZWRJ
bWFnZTo6cmVzb3VyY2VQdXJnZVByaW9yaXR5KTogQWRkZWQuIE5ldyB2aXJ0dWFsIG1ldGhvZCB0
aGF0IGxldHMgdGhlIGNsYXNzCiAgICBzcGVjaWZ5IGl0cyBwdXJnZSBwcmlvcml0eS4KICAgICog
bG9hZGVyL0NhY2hlZFJlc291cmNlLmNwcDoKICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6
bWFrZVB1cmdlYWJsZSk6IFBhc3MgdGhlIHB1cmdlIHByaW9yaXR5IHRvCiAgICBQdXJnZWFibGVC
dWZmZXI6OmNyZWF0ZS4gQWxzbywgcmVtb3ZlIHRoZSBjaGVjayBmb3IgcHVyZ2VhYmxlIHNpemUg
dGhyZXNob2xkLiBXZSBkbyB0aGlzIGluCiAgICBQdXJnZWFibGVCdWZmZXIgbm93LgogICAgKiBs
b2FkZXIvQ2FjaGVkUmVzb3VyY2UuaDoKICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6cmVz
b3VyY2VQdXJnZVByaW9yaXR5KToKICAgICogbG9hZGVyL0NhY2hlZFNjcmlwdC5oOgogICAgKFdl
YkNvcmU6OkNhY2hlZFNjcmlwdDo6cmVzb3VyY2VQdXJnZVByaW9yaXR5KToKICAgICogcGxhdGZv
cm0vUHVyZ2VhYmxlQnVmZmVyLmg6CiAgICAoV2ViQ29yZTo6UHVyZ2VhYmxlQnVmZmVyOjopOgog
ICAgKFdlYkNvcmU6OlB1cmdlYWJsZUJ1ZmZlcjo6Y3JlYXRlKToKICAgICogcGxhdGZvcm0vbWFj
L1B1cmdlYWJsZUJ1ZmZlck1hYy5jcHA6IFVwZGF0ZSBzaXplIHRocmVzaG9sZCB0byAxNktCIHdo
aWNoIGlzIHdoYXQKICAgIENhY2hlZFJlc291cmNlIHdhcyB1c2luZy4KICAgIChXZWJDb3JlOjpQ
dXJnZWFibGVCdWZmZXI6OlB1cmdlYWJsZUJ1ZmZlcik6CiAgICAoV2ViQ29yZTo6UHVyZ2VhYmxl
QnVmZmVyOjpjcmVhdGUpOgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNWY0YjVlZS4uZjNhMDNlZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0x
MC0yOSAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2hvdWxkIG1ha2UgdXNlIG9mIHB1
cmdlIHByaW9yaXRpZXMgZm9yIGRpZmZlcmVudCByZXNvdXJjZSB0eXBlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg2ODQKKworICAgICAgICBBc3Np
Z24gcHVyZ2UgcHJpb3JpdGllcyB0byBDYWNoZWRSZXNvdXJjZSBvYmplY3RzLiBKYXZhU2NyaXB0
IGFuZCBDU1Mgc3R5bGVzaGVldHMgYXJlIG1vcmUKKyAgICAgICAgaW1wb3J0YW50IHRoYW4gaW1h
Z2VzIHNvIGhpbnQgdG8gdGhlIGtlcm5lbCB0byBwdXJnZSB0aGVtIGxhc3QuCisKKyAgICAgICAg
QWxzbywgcmVtb3ZlIHVudXN1ZWQgUHVyZ2VhYmxlQnVmZmVyOjpjcmVhdGUoY29uc3QgVmVjdG9y
PGNoYXI+JikgZnVuY3Rpb24gYW5kIG1vdmUgdGhlCisgICAgICAgIHB1cmdlYWJsZSBtZW1vcnkg
c2l6ZSB0aHJlc2hvbGQgZnJvbSBDYWNoZWRSZXNvdXJjZSB0byBQdXJnZWFibGVCdWZmZXIuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE1hcmsgUHVyZ2Vh
YmxlQnVmZmVyLmggYXMgcHJpdmF0ZSBoZWFkZXIuCisgICAgICAgICogbG9hZGVyL0NhY2hlZENT
U1N0eWxlU2hlZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hlZXQ6OnJl
c291cmNlUHVyZ2VQcmlvcml0eSk6CisgICAgICAgICogbG9hZGVyL0NhY2hlZEltYWdlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6cmVzb3VyY2VQdXJnZVByaW9yaXR5KTogQWRk
ZWQuIE5ldyB2aXJ0dWFsIG1ldGhvZCB0aGF0IGxldHMgdGhlIGNsYXNzCisgICAgICAgIHNwZWNp
ZnkgaXRzIHB1cmdlIHByaW9yaXR5LgorICAgICAgICAqIGxvYWRlci9DYWNoZWRSZXNvdXJjZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6bWFrZVB1cmdlYWJsZSk6IFBh
c3MgdGhlIHB1cmdlIHByaW9yaXR5IHRvCisgICAgICAgIFB1cmdlYWJsZUJ1ZmZlcjo6Y3JlYXRl
LiBBbHNvLCByZW1vdmUgdGhlIGNoZWNrIGZvciBwdXJnZWFibGUgc2l6ZSB0aHJlc2hvbGQuIFdl
IGRvIHRoaXMgaW4KKyAgICAgICAgUHVyZ2VhYmxlQnVmZmVyIG5vdy4KKyAgICAgICAgKiBsb2Fk
ZXIvQ2FjaGVkUmVzb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpy
ZXNvdXJjZVB1cmdlUHJpb3JpdHkpOgorICAgICAgICAqIGxvYWRlci9DYWNoZWRTY3JpcHQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6cmVzb3VyY2VQdXJnZVByaW9yaXR5KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlB1cmdlYWJsZUJ1ZmZlcjo6KToKKyAgICAgICAgKFdlYkNvcmU6OlB1cmdlYWJsZUJ1ZmZlcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcDog
VXBkYXRlIHNpemUgdGhyZXNob2xkIHRvIDE2S0Igd2hpY2ggaXMgd2hhdAorICAgICAgICBDYWNo
ZWRSZXNvdXJjZSB3YXMgdXNpbmcuCisgICAgICAgIChXZWJDb3JlOjpQdXJnZWFibGVCdWZmZXI6
OlB1cmdlYWJsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpQdXJnZWFibGVCdWZmZXI6OmNy
ZWF0ZSk6CisKIDIwMTAtMTAtMjggIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgYXAuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDZiYzJlMzYuLjQ4NjNhM2EgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NDY5LDcgKzU0NjksNyBAQAogCQlFNEMy
Nzk1ODBDRjk3NDE5MDBFOTdCOTggLyogUmVuZGVyTWVkaWEuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRDMjc5NTYwQ0Y5NzQxOTAwRTk3Qjk4IC8q
IFJlbmRlck1lZGlhLmNwcCAqLzsgfTsKIAkJRTRDMjc5NTkwQ0Y5NzQxOTAwRTk3Qjk4IC8qIFJl
bmRlck1lZGlhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNEMyNzk1NzBDRjk3NDE5MDBFOTdCOTggLyogUmVuZGVyTWVkaWEuaCAqLzsgfTsKIAkJRTRE
Njg3NzcwRUQ3QUUzRDAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlck1hYy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEQ2ODc3NjBFRDdBRTNEMDA2
RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCAqLzsgfTsKLQkJRTRENjg3NzkwRUQ3QUU0
RjAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTRENjg3NzgwRUQ3QUU0RjAwNkVBOTc4IC8qIFB1cmdlYWJs
ZUJ1ZmZlci5oICovOyB9OworCQlFNEQ2ODc3OTBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxl
QnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NEQ2ODc3ODBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTRFRUZGQzgwRDM0NTUwQzAw
NDY5QTU4IC8qIEpTQXVkaW9Db25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEVFRkZDNjBEMzQ1NTBDMDA0NjlBNTggLyogSlNBdWRp
b0NvbnN0cnVjdG9yLmNwcCAqLzsgfTsKIAkJRTRFRUZGQzkwRDM0NTUwQzAwNDY5QTU4IC8qIEpT
QXVkaW9Db25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTRFRUZGQzcwRDM0NTUwQzAwNDY5QTU4IC8qIEpTQXVkaW9Db25zdHJ1Y3Rvci5o
ICovOyB9OwogCQlFRDA0OEFCQzA4MzNGMTMyMDA2RTFFNjcgLyogdGV4dEFyZWFSZXNpemVDb3Ju
ZXIudGlmZiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RUQwNDhBQkIwODMzRjEzMjAwNkUxRTY3IC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnRpZmYgKi87
IH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmggYi9X
ZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKaW5kZXggMDNiZGU2OS4uMWFhZWUy
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCisrKyBi
L1dlYkNvcmUvbG9hZGVyL0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtNTcsNiArNTcsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgY2FuVXNlU2hlZXQoYm9vbCBlbmZvcmNl
TUlNRVR5cGUsIGJvb2wqIGhhc1ZhbGlkTUlNRVR5cGUpIGNvbnN0OwogCiAgICAgcHJvdGVjdGVk
OgorICAgICAgICB2aXJ0dWFsIFB1cmdlYWJsZUJ1ZmZlcjo6UHVyZ2VQcmlvcml0eSByZXNvdXJj
ZVB1cmdlUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBQdXJnZWFibGVCdWZmZXI6OlB1cmdlTGFz
dDsgfQorCiAgICAgICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBtX2RlY29kZXI7CiAg
ICAgICAgIFN0cmluZyBtX2RlY29kZWRTaGVldFRleHQ7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvbG9hZGVyL0NhY2hlZEltYWdlLmggYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRJbWFnZS5o
CmluZGV4IDE1ZjQyMzguLjBjM2Q0NjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0NhY2hl
ZEltYWdlLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkSW1hZ2UuaApAQCAtODcsNiArODcs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkFkdmFuY2VkKGNvbnN0IElt
YWdlKik7CiAgICAgdmlydHVhbCB2b2lkIGNoYW5nZWRJblJlY3QoY29uc3QgSW1hZ2UqLCBjb25z
dCBJbnRSZWN0Jik7CiAKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIFB1cmdlYWJsZUJ1ZmZlcjo6
UHVyZ2VQcmlvcml0eSByZXNvdXJjZVB1cmdlUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBQdXJn
ZWFibGVCdWZmZXI6OlB1cmdlRmlyc3Q7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZUlt
YWdlKCk7CiAgICAgc2l6ZV90IG1heGltdW1EZWNvZGVkSW1hZ2VTaXplKCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNvdXJjZS5jcHAgYi9XZWJDb3JlL2xvYWRlci9DYWNo
ZWRSZXNvdXJjZS5jcHAKaW5kZXggZTUxOWMyOS4uZWQ4MmM1YSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJl
c291cmNlLmNwcApAQCAtNTE3LDE1ICs1MTcsMTAgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZTo6bWFr
ZVB1cmdlYWJsZShib29sIHB1cmdlYWJsZSkKICAgICAgICAgaWYgKCFtX2RhdGEtPmhhc09uZVJl
ZigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKLSAgICAgICAgLy8gUHVy
Z2VhYmxlIGJ1ZmZlcnMgYXJlIGFsbG9jYXRlZCBpbiBtdWx0aXBsZXMgb2YgdGhlIHBhZ2Ugc2l6
ZSAoNEtCIGluIGNvbW1vbiBDUFVzKSBzbyBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGZvciB2ZXJ5
IHNtYWxsIGJ1ZmZlcnMuCi0gICAgICAgIGNvbnN0IHNpemVfdCBwdXJnZWFibGVUaHJlc2hvbGQg
PSA0ICogNDA5NjsKLSAgICAgICAgaWYgKG1fZGF0YS0+c2l6ZSgpIDwgcHVyZ2VhYmxlVGhyZXNo
b2xkKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKICAgICAgICAgaWYgKG1f
ZGF0YS0+aGFzUHVyZ2VhYmxlQnVmZmVyKCkpIHsKICAgICAgICAgICAgIG1fcHVyZ2VhYmxlRGF0
YSA9IG1fZGF0YS0+cmVsZWFzZVB1cmdlYWJsZUJ1ZmZlcigpOwogICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgbV9wdXJnZWFibGVEYXRhID0gUHVyZ2VhYmxlQnVmZmVyOjpjcmVhdGUobV9k
YXRhLT5kYXRhKCksIG1fZGF0YS0+c2l6ZSgpKTsKKyAgICAgICAgICAgIG1fcHVyZ2VhYmxlRGF0
YSA9IFB1cmdlYWJsZUJ1ZmZlcjo6Y3JlYXRlKG1fZGF0YS0+ZGF0YSgpLCBtX2RhdGEtPnNpemUo
KSwgcmVzb3VyY2VQdXJnZVByaW9yaXR5KCkpOwogICAgICAgICAgICAgaWYgKCFtX3B1cmdlYWJs
ZURhdGEpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNvdXJjZS5oIGIvV2ViQ29yZS9sb2FkZXIvQ2Fj
aGVkUmVzb3VyY2UuaAppbmRleCAwNzhkYTU3Li4yOThjODBiIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2xvYWRlci9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291
cmNlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJDYWNoZVBvbGljeS5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2lu
Y2x1ZGUgIlB1cmdlYWJsZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgpAQCAtNDMsNyArNDQsNiBAQCBjbGFzcyBDYWNoZWRSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIEZy
YW1lOwogY2xhc3MgSW5zcGVjdG9yUmVzb3VyY2U7CiBjbGFzcyBSZXF1ZXN0OwotY2xhc3MgUHVy
Z2VhYmxlQnVmZmVyOwogCiAvLyBBIHJlc291cmNlIHRoYXQgaXMgaGVsZCBpbiB0aGUgY2FjaGUu
IENsYXNzZXMgd2hvIHdhbnQgdG8gdXNlIHRoaXMgb2JqZWN0IHNob3VsZCBkZXJpdmUKIC8vIGZy
b20gQ2FjaGVkUmVzb3VyY2VDbGllbnQsIHRvIGdldCB0aGUgZnVuY3Rpb24gY2FsbHMgaW4gY2Fz
ZSB0aGUgcmVxdWVzdGVkIGRhdGEgaGFzIGFycml2ZWQuCkBAIC0yMDgsNiArMjA4LDcgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgZGlkQWNjZXNzRGVjb2RlZERhdGEoZG91YmxlIHRpbWVTdGFtcCk7
CiAKICAgICBib29sIGlzU2FmZVRvTWFrZVB1cmdlYWJsZSgpIGNvbnN0OworICAgIHZpcnR1YWwg
UHVyZ2VhYmxlQnVmZmVyOjpQdXJnZVByaW9yaXR5IHJlc291cmNlUHVyZ2VQcmlvcml0eSgpIGNv
bnN0IHsgcmV0dXJuIFB1cmdlYWJsZUJ1ZmZlcjo6UHVyZ2VEZWZhdWx0OyB9CiAgICAgCiAgICAg
SGFzaENvdW50ZWRTZXQ8Q2FjaGVkUmVzb3VyY2VDbGllbnQqPiBtX2NsaWVudHM7CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFNjcmlwdC5oIGIvV2ViQ29yZS9sb2FkZXIvQ2Fj
aGVkU2NyaXB0LmgKaW5kZXggMWJjNGU4Yy4uYzNkNjM2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvQ2FjaGVkU2NyaXB0LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkU2NyaXB0LmgK
QEAgLTUyLDYgKzUyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkZXN0cm95RGVjb2RlZERhdGEoKTsKIAorICAgIHByb3RlY3RlZDoKKyAgICAgICAgdmly
dHVhbCBQdXJnZWFibGVCdWZmZXI6OlB1cmdlUHJpb3JpdHkgcmVzb3VyY2VQdXJnZVByaW9yaXR5
KCkgY29uc3QgeyByZXR1cm4gUHVyZ2VhYmxlQnVmZmVyOjpQdXJnZUxhc3Q7IH0KKwogICAgIHBy
aXZhdGU6CiAgICAgICAgIHZvaWQgZGVjb2RlZERhdGFEZWxldGlvblRpbWVyRmlyZWQoVGltZXI8
Q2FjaGVkU2NyaXB0PiopOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlYWJs
ZUJ1ZmZlci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaAppbmRleCAzMjM0
MWMyLi4wMzc1ZDFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlYWJsZUJ1ZmZl
ci5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmgKQEAgLTM0LDggKzM0
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogICAgIGNsYXNzIFB1cmdlYWJsZUJ1ZmZl
ciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFz
c093blB0cjxQdXJnZWFibGVCdWZmZXI+IGNyZWF0ZShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qp
OwotICAgICAgICBzdGF0aWMgUGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+IGNyZWF0ZShjb25z
dCBWZWN0b3I8Y2hhcj4mIHZlY3RvcikgeyByZXR1cm4gY3JlYXRlKHZlY3Rvci5kYXRhKCksIHZl
Y3Rvci5zaXplKCkpOyB9CisgICAgICAgIGVudW0gUHVyZ2VQcmlvcml0eSB7IFB1cmdlTGFzdCwg
UHVyZ2VNaWRkbGUsIFB1cmdlRmlyc3QsIFB1cmdlRGVmYXVsdCA9IFB1cmdlTWlkZGxlIH07CisK
KyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8UHVyZ2VhYmxlQnVmZmVyPiBjcmVhdGUoY29uc3Qg
Y2hhciosIHNpemVfdCwgUHVyZ2VQcmlvcml0eSk7CiAgICAgICAgIAogICAgICAgICB+UHVyZ2Vh
YmxlQnVmZmVyKCk7CiAKQEAgLTQzLDcgKzQ0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBjb25zdCBjaGFyKiBkYXRhKCkgY29uc3Q7CiAgICAgICAgIHNpemVfdCBzaXplKCkgY29u
c3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgICAgIAotICAgICAgICBlbnVtIFB1cmdlUHJpb3Jp
dHkgeyBQdXJnZUxhc3QsIFB1cmdlTWlkZGxlLCBQdXJnZUZpcnN0LCBQdXJnZURlZmF1bHQgPSBQ
dXJnZU1pZGRsZSB9OwogICAgICAgICBQdXJnZVByaW9yaXR5IHB1cmdlUHJpb3JpdHkoKSBjb25z
dCB7IHJldHVybiBtX3B1cmdlUHJpb3JpdHk7IH0KICAgICAgICAgdm9pZCBzZXRQdXJnZVByaW9y
aXR5KFB1cmdlUHJpb3JpdHkpOwogICAgICAgICAKQEAgLTUzLDcgKzUzLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBib29sIG1ha2VQdXJnZWFibGUoYm9vbCBwdXJnZWFibGUpOwog
ICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBQdXJnZWFibGVCdWZmZXIoY2hhciogZGF0
YSwgc2l6ZV90KTsKKyAgICAgICAgUHVyZ2VhYmxlQnVmZmVyKGNoYXIqLCBzaXplX3QsIFB1cmdl
UHJpb3JpdHkpOwogICAgIAogICAgICAgICBjaGFyKiBtX2RhdGE7CiAgICAgICAgIHNpemVfdCBt
X3NpemU7CkBAIC02NCw3ICs2NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB9OwogCiAj
aWYgIUVOQUJMRShQVVJHRUFCTEVfTUVNT1JZKQotICAgIGlubGluZSBQYXNzT3duUHRyPFB1cmdl
YWJsZUJ1ZmZlcj4gUHVyZ2VhYmxlQnVmZmVyOjpjcmVhdGUoY29uc3QgY2hhciosIHNpemVfdCkg
eyByZXR1cm4gUGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+KCk7IH0KKyAgICBpbmxpbmUgUGFz
c093blB0cjxQdXJnZWFibGVCdWZmZXI+IFB1cmdlYWJsZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IGNo
YXIqLCBzaXplX3QsIFB1cmdlUHJpb3JpdHkpIHsgcmV0dXJuIFBhc3NPd25QdHI8UHVyZ2VhYmxl
QnVmZmVyPigpOyB9CiAgICAgaW5saW5lIFB1cmdlYWJsZUJ1ZmZlcjo6flB1cmdlYWJsZUJ1ZmZl
cigpIHsgfQogICAgIGlubGluZSBjb25zdCBjaGFyKiBQdXJnZWFibGVCdWZmZXI6OmRhdGEoKSBj
b25zdCB7IHJldHVybiAwOyB9CiAgICAgaW5saW5lIHZvaWQgUHVyZ2VhYmxlQnVmZmVyOjpzZXRQ
dXJnZVByaW9yaXR5KFB1cmdlUHJpb3JpdHkpIHsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1B1
cmdlYWJsZUJ1ZmZlck1hYy5jcHAKaW5kZXggNTRkZTRlZC4uNTM5ZWRhMSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QdXJnZWFibGVCdWZmZXJNYWMuY3BwCkBAIC0zNSwxMiArMzUsMTQgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3Qgc2l6ZV90IG1pblB1cmdlYWJs
ZUJ1ZmZlclNpemUgPSA0MDk2OyAvLyBvbmUgcGFnZQorLy8gUHVyZ2VhYmxlIGJ1ZmZlcnMgYXJl
IGFsbG9jYXRlZCBpbiBtdWx0aXBsZXMgb2YgdGhlIHBhZ2Ugc2l6ZSAoNEtCIGluIGNvbW1vbiBD
UFVzKSBzbworLy8gaXQgZG9lcyBub3QgbWFrZSBzZW5zZSBmb3IgdmVyeSBzbWFsbCBidWZmZXJz
LiBTZXQgb3VyIG1pbmltdW0gc2l6ZSB0byAxNktCLgorc3RhdGljIGNvbnN0IHNpemVfdCBtaW5Q
dXJnZWFibGVCdWZmZXJTaXplID0gNCAqIDQwOTY7CiAKLVB1cmdlYWJsZUJ1ZmZlcjo6UHVyZ2Vh
YmxlQnVmZmVyKGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQorUHVyZ2VhYmxlQnVmZmVyOjpQdXJn
ZWFibGVCdWZmZXIoY2hhciogZGF0YSwgc2l6ZV90IHNpemUsIFB1cmdlUHJpb3JpdHkgcHJpb3Jp
dHkpCiAgICAgOiBtX2RhdGEoZGF0YSkKICAgICAsIG1fc2l6ZShzaXplKQotICAgICwgbV9wdXJn
ZVByaW9yaXR5KFB1cmdlRGVmYXVsdCkKKyAgICAsIG1fcHVyZ2VQcmlvcml0eShwcmlvcml0eSkK
ICAgICAsIG1fc3RhdGUoTm9uVm9sYXRpbGUpCiB7CiB9CkBAIC01MCw3ICs1Miw3IEBAIFB1cmdl
YWJsZUJ1ZmZlcjo6flB1cmdlYWJsZUJ1ZmZlcigpCiAgICAgdm1fZGVhbGxvY2F0ZShtYWNoX3Rh
c2tfc2VsZigpLCByZWludGVycHJldF9jYXN0PHZtX2FkZHJlc3NfdD4obV9kYXRhKSwgbV9zaXpl
KTsKIH0KIAotUGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+IFB1cmdlYWJsZUJ1ZmZlcjo6Y3Jl
YXRlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQorUGFzc093blB0cjxQdXJnZWFibGVC
dWZmZXI+IFB1cmdlYWJsZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBz
aXplLCBQdXJnZVByaW9yaXR5IHByaW9yaXR5KQogewogICAgIGlmIChzaXplIDwgbWluUHVyZ2Vh
YmxlQnVmZmVyU2l6ZSkKICAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8UHVyZ2VhYmxlQnVmZmVy
PigpOwpAQCAtNzAsNyArNzIsNyBAQCBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gUHVyZ2Vh
YmxlQnVmZmVyOjpjcmVhdGUoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpegogICAgICAgICBy
ZXR1cm4gUGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+KCk7CiAgICAgfQogCi0gICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBQdXJnZWFibGVCdWZmZXIocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oYnVm
ZmVyKSwgc2l6ZSkpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgUHVyZ2VhYmxlQnVmZmVyKHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGJ1ZmZlciksIHNpemUsIHByaW9yaXR5KSk7CiB9CiAKIGJv
b2wgUHVyZ2VhYmxlQnVmZmVyOjptYWtlUHVyZ2VhYmxlKGJvb2wgcHVyZ2VhYmxlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72537</attachid>
            <date>2010-11-01 12:11:29 -0700</date>
            <delta_ts>2010-11-01 15:17:09 -0700</delta_ts>
            <desc>Patch.v2</desc>
            <filename>bug-48684-20101101121128.patch</filename>
            <type>text/plain</type>
            <size>15362</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWY0YjVlZTUxNzhhZTczODNjMzM2YmU4YzcwOGEyZDJlM2ZjMWVjNi4uYTg4MzhhNzdkNTY4ODNi
MTdjZGQ4OTMzMGQ3MDY3M2VmYmU0OTdmOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0xMS0wMSAgUHJh
dGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2hvdWxkIG1ha2UgdXNlIG9mIHB1cmdlIHByaW9y
aXRpZXMgZm9yIGRpZmZlcmVudCByZXNvdXJjZSB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg2ODQKKworICAgICAgICBBc3NpZ24gcHVyZ2Ug
cHJpb3JpdGllcyB0byBDYWNoZWRSZXNvdXJjZSBvYmplY3RzLiBKYXZhU2NyaXB0IGFuZCBDU1Mg
c3R5bGVzaGVldHMgYXJlIG1vcmUKKyAgICAgICAgaW1wb3J0YW50IHRoYW4gaW1hZ2VzIHNvIGhp
bnQgdG8gdGhlIGtlcm5lbCB0byBwdXJnZSB0aGVtIGxhc3QuCisKKyAgICAgICAgQWxzbywgcmVt
b3ZlIHVudXN1ZWQgUHVyZ2VhYmxlQnVmZmVyOjpjcmVhdGUoY29uc3QgVmVjdG9yPGNoYXI+Jikg
ZnVuY3Rpb24gYW5kIG1vdmUgdGhlCisgICAgICAgIHB1cmdlYWJsZSBtZW1vcnkgc2l6ZSB0aHJl
c2hvbGQgZnJvbSBDYWNoZWRSZXNvdXJjZSB0byBQdXJnZWFibGVCdWZmZXIuCisKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBuZXcgUHVyZ2VQcmlvcml0
eS5oIGhlYWRlciBhbmQgbWFyayBpdCBhcyBwcml2YXRlCisgICAgICAgIGhlYWRlci4KKyAgICAg
ICAgKiBsb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkQ1NTU3R5bGVTaGVldDo6cmVzb3VyY2VQdXJnZVByaW9yaXR5KToKKyAgICAgICAgKiBsb2Fk
ZXIvQ2FjaGVkSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpyZXNvdXJj
ZVB1cmdlUHJpb3JpdHkpOgorICAgICAgICAqIGxvYWRlci9DYWNoZWRSZXNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6bWFrZVB1cmdlYWJsZSk6IFBhc3MgdGhl
IHB1cmdlIHByaW9yaXR5IHRvCisgICAgICAgIFB1cmdlYWJsZUJ1ZmZlcjo6Y3JlYXRlLiBBbHNv
LCByZW1vdmUgdGhlIGNoZWNrIGZvciBwdXJnZWFibGUgc2l6ZSB0aHJlc2hvbGQuIFdlIGRvIHRo
aXMgaW4KKyAgICAgICAgUHVyZ2VhYmxlQnVmZmVyIG5vdy4KKyAgICAgICAgKiBsb2FkZXIvQ2Fj
aGVkUmVzb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpyZXNvdXJj
ZVB1cmdlUHJpb3JpdHkpOiBBZGRlZC4gTmV3IHZpcnR1YWwgbWV0aG9kIHRoYXQgbGV0cyB0aGUg
Y2xhc3MKKyAgICAgICAgc3BlY2lmeSBpdHMgcHVyZ2UgcHJpb3JpdHkuCisgICAgICAgICogbG9h
ZGVyL0NhY2hlZFNjcmlwdC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0OjpyZXNv
dXJjZVB1cmdlUHJpb3JpdHkpOgorICAgICAgICAqIHBsYXRmb3JtL1B1cmdlUHJpb3JpdHkuaDog
QWRkZWQuIE1vdmUgdGhlIFB1cmdlUHJpb3JpdHkgZW51bSBmcm9tIFB1cmdlYWJsZUJ1ZmZlciBj
bGFzcyB0bworICAgICAgICBpdHMgb3duIGhlYWRlciBmaWxlLgorICAgICAgICAoV2ViQ29yZTo6
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlB1cmdlYWJsZUJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUHVy
Z2VhYmxlQnVmZmVyTWFjLmNwcDogVXBkYXRlIHNpemUgdGhyZXNob2xkIHRvIDE2S0Igd2hpY2gg
aXMgd2hhdAorICAgICAgICBDYWNoZWRSZXNvdXJjZSB3YXMgdXNpbmcuCisgICAgICAgIChXZWJD
b3JlOjpQdXJnZWFibGVCdWZmZXI6OlB1cmdlYWJsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpQdXJnZWFibGVCdWZmZXI6OmNyZWF0ZSk6CisKIDIwMTAtMTAtMjggIE1pY2hhZWwgTm9yZG1h
biAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgYXAuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZiYzJlMzYyZTQzMWFi
ZDk0NWQ3ODQxYjAxMGRkYWE1YzJiMzUyNGEuLmI2NjAwOTQzYjZmN2RmYzkyNmQ5ZDNkN2I1NGNk
MTkyNGI3YTllNzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNTQ2LDYgKzE1NDYsNyBAQAogCQk3QURFNzIyNjEwQ0JCQjlCMDA2QjNCM0EgLyogQ29u
dGV4dE1lbnVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0FERTcyMjUxMENCQkI5QjAwNkIzQjNBIC8qIENvbnRleHRNZW51UHJvdmlkZXIu
aCAqLzsgfTsKIAkJN0FGRDRBOEIxMTMxQzI3NjAwMzVCODgzIC8qIFNjcmlwdEJyZWFrcG9pbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRkQ0QThB
MTEzMUMyNzYwMDM1Qjg4MyAvKiBTY3JpcHRCcmVha3BvaW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0FGRDRGRjQxMTMyNzdCNjAwMzVCODgz
IC8qIFNjcmlwdERlYnVnTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdBRkQ0RkYzMTEzMjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1Z0xp
c3RlbmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJN0UzM0NEMDExMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFMzNDRDAwMTI3RjM0MEQwMEJF
OEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODFBNzMyNUUxMjEwMTg5QjAwRkMwRDlFIC8qIElEQkN1cnNvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBNzMyNUQx
MjEwMTg5QjAwRkMwRDlFIC8qIElEQkN1cnNvci5oICovOyB9OwogCQk4MUE3MzI2MDEyMTAxOEE0
MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgxQTczMjVGMTIxMDE4QTQwMEZDMEQ5RSAvKiBJREJDdXJzb3IuY3Bw
ICovOyB9OwogCQk4MUE3MzI3ODEyMTAxOUUxMDBGQzBEOUUgLyogSURCQ3Vyc29yQmFja2VuZElt
cGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTcz
Mjc3MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oICovOyB9OwpAQCAt
NzY4Niw2ICs3Njg3LDcgQEAKIAkJN0FERTcyMjUxMENCQkI5QjAwNkIzQjNBIC8qIENvbnRleHRN
ZW51UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGV4dE1l
bnVQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUZENEE4QTExMzFD
Mjc2MDAzNUI4ODMgLyogU2NyaXB0QnJlYWtwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTY3JpcHRCcmVha3BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdBRkQ0RkYzMTEzMjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdERlYnVnTGlzdGVuZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1
cmdlUHJpb3JpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHVyZ2VQcmlv
cml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUE3MzI1RDEyMTAxODlCMDBG
QzBEOUUgLyogSURCQ3Vyc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElE
QkN1cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUE3MzI1RjEyMTAxOEE0
MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IElEQkN1cnNvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQTcz
Mjc3MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3JCYWNrZW5kSW1wbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTc0MTcsNiArMTc0MTksNyBAQAogCQkJCUFCQzEyODc2MEIz
M0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCAqLywKIAkJCQlCQzNCRTEyQTBFOTgw
OTJGMDA4MzU1ODggLyogUG9wdXBNZW51U3R5bGUuaCAqLywKIAkJCQlFNEQ2ODc3ODBFRDdBRTRG
MDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggKi8sCisJCQkJN0UzM0NEMDAxMjdGMzQwRDAw
QkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLywKIAkJCQkxQzYzQTI0NjBGNzE2NDY2MDBDMDlE
NUEgLyogUnVuTG9vcFRpbWVyLmggKi8sCiAJCQkJNTE2MkM3RjIxMUY3N0VGQTAwNjEyRUZFIC8q
IFNjaGVtZVJlZ2lzdHJ5LmNwcCAqLywKIAkJCQk1MTYyQzdGMzExRjc3RUZCMDA2MTJFRkUgLyog
U2NoZW1lUmVnaXN0cnkuaCAqLywKQEAgLTIwNDk5LDYgKzIwNTAyLDcgQEAKIAkJCQk1MUEwNTI1
NjEwNTg4NzQwMDBDQzlFOTUgLyogUHJvdGVjdGlvblNwYWNlSGFzaC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFGOEUxMUExMjU2NTkyNjAwMjMwRkY3IC8qIFByb3h5U2VydmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFNEQ2ODc3OTBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk3RTMzQ0QwMTEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlv
cml0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1
YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTcyMEQwMEJGMjIwMDcxQjc4
MiAvKiBSYWRpYWxHcmFkaWVudEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIz
RENDMTI1MUYxMkQwMDNFRjI2OSAvKiBSYWRpb0lucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmggYi9XZWJDb3Jl
L2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKaW5kZXggMDNiZGU2OTExN2Q2Mjc1NjM4MDg5
ZjVlNzZkMzA4OTA2ZmFjNDUzMi4uM2Q0NGFjN2ZlMzE1OTdiZDUyM2QzZjdkYjVlM2YzMGM5NDdh
YmJiYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCisr
KyBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtNTcsNiArNTcsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgY2FuVXNlU2hlZXQoYm9vbCBlbmZv
cmNlTUlNRVR5cGUsIGJvb2wqIGhhc1ZhbGlkTUlNRVR5cGUpIGNvbnN0OwogCiAgICAgcHJvdGVj
dGVkOgorICAgICAgICB2aXJ0dWFsIFB1cmdlUHJpb3JpdHkgcmVzb3VyY2VQdXJnZVByaW9yaXR5
KCkgY29uc3QgeyByZXR1cm4gUHVyZ2VMYXN0OyB9CisKICAgICAgICAgUmVmUHRyPFRleHRSZXNv
dXJjZURlY29kZXI+IG1fZGVjb2RlcjsKICAgICAgICAgU3RyaW5nIG1fZGVjb2RlZFNoZWV0VGV4
dDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkSW1hZ2UuaCBiL1dl
YkNvcmUvbG9hZGVyL0NhY2hlZEltYWdlLmgKaW5kZXggMTVmNDIzODg0NzAwMjg1Yjg2MmZjZGRj
Mjg5YzZkMmQ3NTMxYjZlOC4uNGUyOTZjMjlhMDBhYmM4NTQ5MGZiOTJjN2FmMGJjMjcwYjgyYjI3
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkSW1hZ2UuaAorKysgYi9XZWJDb3Jl
L2xvYWRlci9DYWNoZWRJbWFnZS5oCkBAIC04Nyw2ICs4Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgYW5pbWF0aW9uQWR2YW5jZWQoY29uc3QgSW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZv
aWQgY2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSosIGNvbnN0IEludFJlY3QmKTsKIAorcHJvdGVj
dGVkOgorICAgIHZpcnR1YWwgUHVyZ2VQcmlvcml0eSByZXNvdXJjZVB1cmdlUHJpb3JpdHkoKSBj
b25zdCB7IHJldHVybiBQdXJnZUZpcnN0OyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVJ
bWFnZSgpOwogICAgIHNpemVfdCBtYXhpbXVtRGVjb2RlZEltYWdlU2l6ZSgpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvV2ViQ29yZS9sb2FkZXIvQ2Fj
aGVkUmVzb3VyY2UuY3BwCmluZGV4IGU1MTljMjlmMTgxZTIzYjViZTUzMTQ2Yjc3NzM0MTYyNjM5
MjY5NDAuLmVkODJjNWE1Mzg3YjdjMmYwNTZlNjRmOTAzNzljYzQ1ODNkMmIzN2YgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9XZWJDb3JlL2xvYWRl
ci9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTUxNywxNSArNTE3LDEwIEBAIGJvb2wgQ2FjaGVkUmVz
b3VyY2U6Om1ha2VQdXJnZWFibGUoYm9vbCBwdXJnZWFibGUpCiAgICAgICAgIGlmICghbV9kYXRh
LT5oYXNPbmVSZWYoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCi0gICAg
ICAgIC8vIFB1cmdlYWJsZSBidWZmZXJzIGFyZSBhbGxvY2F0ZWQgaW4gbXVsdGlwbGVzIG9mIHRo
ZSBwYWdlIHNpemUgKDRLQiBpbiBjb21tb24gQ1BVcykgc28gaXQgZG9lcyBub3QgbWFrZSBzZW5z
ZSBmb3IgdmVyeSBzbWFsbCBidWZmZXJzLgotICAgICAgICBjb25zdCBzaXplX3QgcHVyZ2VhYmxl
VGhyZXNob2xkID0gNCAqIDQwOTY7Ci0gICAgICAgIGlmIChtX2RhdGEtPnNpemUoKSA8IHB1cmdl
YWJsZVRocmVzaG9sZCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgCiAgICAg
ICAgIGlmIChtX2RhdGEtPmhhc1B1cmdlYWJsZUJ1ZmZlcigpKSB7CiAgICAgICAgICAgICBtX3B1
cmdlYWJsZURhdGEgPSBtX2RhdGEtPnJlbGVhc2VQdXJnZWFibGVCdWZmZXIoKTsKICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIG1fcHVyZ2VhYmxlRGF0YSA9IFB1cmdlYWJsZUJ1ZmZlcjo6
Y3JlYXRlKG1fZGF0YS0+ZGF0YSgpLCBtX2RhdGEtPnNpemUoKSk7CisgICAgICAgICAgICBtX3B1
cmdlYWJsZURhdGEgPSBQdXJnZWFibGVCdWZmZXI6OmNyZWF0ZShtX2RhdGEtPmRhdGEoKSwgbV9k
YXRhLT5zaXplKCksIHJlc291cmNlUHVyZ2VQcmlvcml0eSgpKTsKICAgICAgICAgICAgIGlmICgh
bV9wdXJnZWFibGVEYXRhKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuaCBiL1dlYkNvcmUv
bG9hZGVyL0NhY2hlZFJlc291cmNlLmgKaW5kZXggMDc4ZGE1Nzg4YTgxNGVlYTk2ODRjNzMxMmE4
ODdlMWU1ODljYmQyNC4uZjMxN2EwMjhlZTAyMzg3NDMzOGY3NzhmNGNhODYxNDI3OTRmODg2NSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9XZWJDb3Jl
L2xvYWRlci9DYWNoZWRSZXNvdXJjZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ2Fj
aGVQb2xpY3kuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJQdXJnZVByaW9yaXR5LmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC00Miw4ICs0Myw4IEBAIGNsYXNzIENhY2hlZFJlc291cmNl
SGFuZGxlQmFzZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRnJhbWU7CiBj
bGFzcyBJbnNwZWN0b3JSZXNvdXJjZTsKLWNsYXNzIFJlcXVlc3Q7CiBjbGFzcyBQdXJnZWFibGVC
dWZmZXI7CitjbGFzcyBSZXF1ZXN0OwogCiAvLyBBIHJlc291cmNlIHRoYXQgaXMgaGVsZCBpbiB0
aGUgY2FjaGUuIENsYXNzZXMgd2hvIHdhbnQgdG8gdXNlIHRoaXMgb2JqZWN0IHNob3VsZCBkZXJp
dmUKIC8vIGZyb20gQ2FjaGVkUmVzb3VyY2VDbGllbnQsIHRvIGdldCB0aGUgZnVuY3Rpb24gY2Fs
bHMgaW4gY2FzZSB0aGUgcmVxdWVzdGVkIGRhdGEgaGFzIGFycml2ZWQuCkBAIC0yMDgsNiArMjA5
LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGlkQWNjZXNzRGVjb2RlZERhdGEoZG91YmxlIHRp
bWVTdGFtcCk7CiAKICAgICBib29sIGlzU2FmZVRvTWFrZVB1cmdlYWJsZSgpIGNvbnN0OworICAg
IHZpcnR1YWwgUHVyZ2VQcmlvcml0eSByZXNvdXJjZVB1cmdlUHJpb3JpdHkoKSBjb25zdCB7IHJl
dHVybiBQdXJnZURlZmF1bHQ7IH0KICAgICAKICAgICBIYXNoQ291bnRlZFNldDxDYWNoZWRSZXNv
dXJjZUNsaWVudCo+IG1fY2xpZW50czsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvQ2Fj
aGVkU2NyaXB0LmggYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRTY3JpcHQuaAppbmRleCAxYmM0ZThj
YjJjYjk5NDJkNWUyNTBlMDM3ZTk4MGMyNGY5YzBkN2JiLi4xOTgxMjhjYjY0ZmMyN2U4ZWU2MWMz
ZGQ4ZTU5YzZjYjk3ZGZmNGQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRTY3Jp
cHQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRTY3JpcHQuaApAQCAtNTIsNiArNTIsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNv
ZGVkRGF0YSgpOwogCisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIFB1cmdlUHJpb3Jp
dHkgcmVzb3VyY2VQdXJnZVByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gUHVyZ2VMYXN0OyB9CisK
ICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGRlY29kZWREYXRhRGVsZXRpb25UaW1lckZpcmVk
KFRpbWVyPENhY2hlZFNjcmlwdD4qKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Q
dXJnZVByaW9yaXR5LmggYi9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlUHJpb3JpdHkuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YTI4OTRlYjMxNjMwMzlmZDU3Mzc2NWI1ZjE3ODQ0MjY1Njg5YjIyCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZVByaW9yaXR5LmgKQEAgLTAsMCArMSwzOSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFB1cmdlUHJpb3JpdHlfaAorI2RlZmluZSBQdXJnZVBy
aW9yaXR5X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFB1cmdlUHJpb3JpdHkgewor
ICAgIFB1cmdlTGFzdCwKKyAgICBQdXJnZU1pZGRsZSwKKyAgICBQdXJnZUZpcnN0LAorICAgIFB1
cmdlRGVmYXVsdCA9IFB1cmdlTWlkZGxlCit9OworCit9CisKKyNlbmRpZiAvLyBQdXJnZVByaW9y
aXR5X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL1B1cmdlYWJsZUJ1ZmZlci5oCmluZGV4IDMyMzQxYzJiMGI3NjJhZTJi
YmQ5OGU5NzFhNjg2ZGQyYWQzN2U5YWEuLmNjMmUxNWY2YTJhZTQ5M2Y0MDU2NTZjNTMyYzQ5MTkw
NWE0MDY0ODcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmgK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaApAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBQdXJnZWFibGVCdWZmZXJfaAogI2RlZmluZSBQdXJnZWFibGVCdWZmZXJfaAog
CisjaW5jbHVkZSAiUHVyZ2VQcmlvcml0eS5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpA
QCAtMzQsOCArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiAgICAgY2xhc3MgUHVy
Z2VhYmxlQnVmZmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKICAgICBwdWJsaWM6Ci0gICAgICAg
IHN0YXRpYyBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IGNoYXIqIGRh
dGEsIHNpemVfdCk7Ci0gICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4g
Y3JlYXRlKGNvbnN0IFZlY3RvcjxjaGFyPiYgdmVjdG9yKSB7IHJldHVybiBjcmVhdGUodmVjdG9y
LmRhdGEoKSwgdmVjdG9yLnNpemUoKSk7IH0KKyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8UHVy
Z2VhYmxlQnVmZmVyPiBjcmVhdGUoY29uc3QgY2hhciosIHNpemVfdCwgUHVyZ2VQcmlvcml0eSk7
CiAgICAgICAgIAogICAgICAgICB+UHVyZ2VhYmxlQnVmZmVyKCk7CiAKQEAgLTQzLDcgKzQzLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBjb25zdCBjaGFyKiBkYXRhKCkgY29uc3Q7
CiAgICAgICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgICAg
IAotICAgICAgICBlbnVtIFB1cmdlUHJpb3JpdHkgeyBQdXJnZUxhc3QsIFB1cmdlTWlkZGxlLCBQ
dXJnZUZpcnN0LCBQdXJnZURlZmF1bHQgPSBQdXJnZU1pZGRsZSB9OwogICAgICAgICBQdXJnZVBy
aW9yaXR5IHB1cmdlUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBtX3B1cmdlUHJpb3JpdHk7IH0K
ICAgICAgICAgdm9pZCBzZXRQdXJnZVByaW9yaXR5KFB1cmdlUHJpb3JpdHkpOwogICAgICAgICAK
QEAgLTUzLDcgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1ha2VQ
dXJnZWFibGUoYm9vbCBwdXJnZWFibGUpOwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAg
ICBQdXJnZWFibGVCdWZmZXIoY2hhciogZGF0YSwgc2l6ZV90KTsKKyAgICAgICAgUHVyZ2VhYmxl
QnVmZmVyKGNoYXIqLCBzaXplX3QsIFB1cmdlUHJpb3JpdHkpOwogICAgIAogICAgICAgICBjaGFy
KiBtX2RhdGE7CiAgICAgICAgIHNpemVfdCBtX3NpemU7CkBAIC02NCw3ICs2Myw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICB9OwogCiAjaWYgIUVOQUJMRShQVVJHRUFCTEVfTUVNT1JZKQot
ICAgIGlubGluZSBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gUHVyZ2VhYmxlQnVmZmVyOjpj
cmVhdGUoY29uc3QgY2hhciosIHNpemVfdCkgeyByZXR1cm4gUGFzc093blB0cjxQdXJnZWFibGVC
dWZmZXI+KCk7IH0KKyAgICBpbmxpbmUgUGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+IFB1cmdl
YWJsZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IGNoYXIqLCBzaXplX3QsIFB1cmdlUHJpb3JpdHkpIHsg
cmV0dXJuIFBhc3NPd25QdHI8UHVyZ2VhYmxlQnVmZmVyPigpOyB9CiAgICAgaW5saW5lIFB1cmdl
YWJsZUJ1ZmZlcjo6flB1cmdlYWJsZUJ1ZmZlcigpIHsgfQogICAgIGlubGluZSBjb25zdCBjaGFy
KiBQdXJnZWFibGVCdWZmZXI6OmRhdGEoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgaW5saW5l
IHZvaWQgUHVyZ2VhYmxlQnVmZmVyOjpzZXRQdXJnZVByaW9yaXR5KFB1cmdlUHJpb3JpdHkpIHsg
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1B1cmdlYWJsZUJ1ZmZlck1hYy5jcHAKaW5kZXggNTRk
ZTRlZGYzZWIxZWZhN2NkZmE2YmNlYzhjMDMyMGNlODViOGI2MS4uNTM5ZWRhMWRhZTcwZjk2NGZh
MGE5Y2MxNTIzNTYxZTVmMzhiODBjYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UHVyZ2VhYmxlQnVmZmVyTWFjLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9QdXJnZWFi
bGVCdWZmZXJNYWMuY3BwCkBAIC0zNSwxMiArMzUsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1zdGF0aWMgY29uc3Qgc2l6ZV90IG1pblB1cmdlYWJsZUJ1ZmZlclNpemUgPSA0MDk2OyAv
LyBvbmUgcGFnZQorLy8gUHVyZ2VhYmxlIGJ1ZmZlcnMgYXJlIGFsbG9jYXRlZCBpbiBtdWx0aXBs
ZXMgb2YgdGhlIHBhZ2Ugc2l6ZSAoNEtCIGluIGNvbW1vbiBDUFVzKSBzbworLy8gaXQgZG9lcyBu
b3QgbWFrZSBzZW5zZSBmb3IgdmVyeSBzbWFsbCBidWZmZXJzLiBTZXQgb3VyIG1pbmltdW0gc2l6
ZSB0byAxNktCLgorc3RhdGljIGNvbnN0IHNpemVfdCBtaW5QdXJnZWFibGVCdWZmZXJTaXplID0g
NCAqIDQwOTY7CiAKLVB1cmdlYWJsZUJ1ZmZlcjo6UHVyZ2VhYmxlQnVmZmVyKGNoYXIqIGRhdGEs
IHNpemVfdCBzaXplKQorUHVyZ2VhYmxlQnVmZmVyOjpQdXJnZWFibGVCdWZmZXIoY2hhciogZGF0
YSwgc2l6ZV90IHNpemUsIFB1cmdlUHJpb3JpdHkgcHJpb3JpdHkpCiAgICAgOiBtX2RhdGEoZGF0
YSkKICAgICAsIG1fc2l6ZShzaXplKQotICAgICwgbV9wdXJnZVByaW9yaXR5KFB1cmdlRGVmYXVs
dCkKKyAgICAsIG1fcHVyZ2VQcmlvcml0eShwcmlvcml0eSkKICAgICAsIG1fc3RhdGUoTm9uVm9s
YXRpbGUpCiB7CiB9CkBAIC01MCw3ICs1Miw3IEBAIFB1cmdlYWJsZUJ1ZmZlcjo6flB1cmdlYWJs
ZUJ1ZmZlcigpCiAgICAgdm1fZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCByZWludGVycHJl
dF9jYXN0PHZtX2FkZHJlc3NfdD4obV9kYXRhKSwgbV9zaXplKTsKIH0KIAotUGFzc093blB0cjxQ
dXJnZWFibGVCdWZmZXI+IFB1cmdlYWJsZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IGNoYXIqIGRhdGEs
IHNpemVfdCBzaXplKQorUGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+IFB1cmdlYWJsZUJ1ZmZl
cjo6Y3JlYXRlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplLCBQdXJnZVByaW9yaXR5IHBy
aW9yaXR5KQogewogICAgIGlmIChzaXplIDwgbWluUHVyZ2VhYmxlQnVmZmVyU2l6ZSkKICAgICAg
ICAgcmV0dXJuIFBhc3NPd25QdHI8UHVyZ2VhYmxlQnVmZmVyPigpOwpAQCAtNzAsNyArNzIsNyBA
QCBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gUHVyZ2VhYmxlQnVmZmVyOjpjcmVhdGUoY29u
c3QgY2hhciogZGF0YSwgc2l6ZV90IHNpegogICAgICAgICByZXR1cm4gUGFzc093blB0cjxQdXJn
ZWFibGVCdWZmZXI+KCk7CiAgICAgfQogCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQdXJnZWFi
bGVCdWZmZXIocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oYnVmZmVyKSwgc2l6ZSkpOworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgUHVyZ2VhYmxlQnVmZmVyKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KGJ1ZmZlciksIHNpemUsIHByaW9yaXR5KSk7CiB9CiAKIGJvb2wgUHVyZ2VhYmxlQnVmZmVyOjpt
YWtlUHVyZ2VhYmxlKGJvb2wgcHVyZ2VhYmxlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72573</attachid>
            <date>2010-11-01 15:17:12 -0700</date>
            <delta_ts>2010-11-01 16:01:43 -0700</delta_ts>
            <desc>Patch.v3</desc>
            <filename>bug-48684-20101101151711.patch</filename>
            <type>text/plain</type>
            <size>14283</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWY0YjVlZTUxNzhhZTczODNjMzM2YmU4YzcwOGEyZDJlM2ZjMWVjNi4uNzY0MzM3YjdhZDczMjJl
ZGRhMzdhYTI3NjBlZDczMjJmOGFlY2Q2NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0xMS0wMSAgUHJh
dGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2hvdWxkIG1ha2UgdXNlIG9mIHB1cmdlIHByaW9y
aXRpZXMgZm9yIGRpZmZlcmVudCByZXNvdXJjZSB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg2ODQKKworICAgICAgICBBc3NpZ24gcHVyZ2Ug
cHJpb3JpdGllcyB0byBDYWNoZWRSZXNvdXJjZSBvYmplY3RzLiBKYXZhU2NyaXB0IGFuZCBDU1Mg
c3R5bGVzaGVldHMgYXJlIG1vcmUKKyAgICAgICAgaW1wb3J0YW50IHRoYW4gaW1hZ2VzIHNvIGhp
bnQgdG8gdGhlIGtlcm5lbCB0byBwdXJnZSB0aGVtIGxhc3QuIFdlIGRvIHRoaXMgYnkgcmVwdXJw
b3NpbmcKKyAgICAgICAgdGhlIHByZXZpb3VzbHkgdW51c2VkIGZ1bmN0aW9uLCBQdXJnZWFibGVC
dWZmZXI6OnNldFB1cmdlUHJpb3JpdHkoKS4gSXQgbm93IGp1c3Qgc2V0cyB0aGUKKyAgICAgICAg
cHJpb3JpdHkgZmllbGQgYW5kIGRvZXMgbm90IGhhdmUgc2lkZS1lZmZlY3RzIGxpa2UgY2FsbGlu
ZyBtYWtlUHVyZ2VhYmxlKHRydWUpLgorCisgICAgICAgIEFsc28sIHJlbW92ZSB1bnVzdWVkIFB1
cmdlYWJsZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IFZlY3RvcjxjaGFyPiYpIGZ1bmN0aW9uIGFuZCBt
b3ZlIHRoZQorICAgICAgICBwdXJnZWFibGUgbWVtb3J5IHNpemUgdGhyZXNob2xkIGZyb20gQ2Fj
aGVkUmVzb3VyY2UgdG8gUHVyZ2VhYmxlQnVmZmVyLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IFB1cmdlUHJpb3JpdHkuaCBoZWFkZXIgYW5k
IG1hcmsgaXQgYXMgcHJpdmF0ZQorICAgICAgICBoZWFkZXIuCisgICAgICAgICogbG9hZGVyL0Nh
Y2hlZENTU1N0eWxlU2hlZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hl
ZXQ6OnJlc291cmNlUHVyZ2VQcmlvcml0eSk6CisgICAgICAgICogbG9hZGVyL0NhY2hlZEltYWdl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6cmVzb3VyY2VQdXJnZVByaW9yaXR5
KToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2U6Om1ha2VQdXJnZWFibGUpOiBTZXQgdGhlIHB1cmdlIHByaW9yaXR5
IG9uIHRoZSBQdXJnZWFibGVCZmZlci4KKyAgICAgICAgQWxzbywgbW92ZSB0aGUgY2hlY2sgZm9y
IHB1cmdlYWJsZSBzaXplIHRocmVzaG9sZCB0byBQdXJnZWFibGVCdWZmZXIuCisgICAgICAgICog
bG9hZGVyL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZTo6cmVzb3VyY2VQdXJnZVByaW9yaXR5KTogQWRkZWQuIE5ldyB2aXJ0dWFsIG1ldGhvZCB0aGF0
IGxldHMgdGhlIGNsYXNzCisgICAgICAgIHNwZWNpZnkgaXRzIHB1cmdlIHByaW9yaXR5LgorICAg
ICAgICAqIGxvYWRlci9DYWNoZWRTY3JpcHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNj
cmlwdDo6cmVzb3VyY2VQdXJnZVByaW9yaXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QdXJnZVBy
aW9yaXR5Lmg6IEFkZGVkLiBNb3ZlIHRoZSBQdXJnZVByaW9yaXR5IGVudW0gZnJvbSBQdXJnZWFi
bGVCdWZmZXIgY2xhc3MgdG8KKyAgICAgICAgaXRzIG93biBoZWFkZXIgZmlsZS4KKyAgICAgICAg
KFdlYkNvcmU6Oik6CisgICAgICAgICogcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpQdXJnZWFibGVCdWZmZXI6OnNldFB1cmdlUHJpb3JpdHkpOiBVcGRhdGUg
dGhpcyBwcmV2aW91c2x5IHVudXNlZCBmdW5jdGlvbiB0byBqdXN0CisgICAgICAgIHNldCB0aGUg
cHJpb3JpdHkgYW5kIG5vdCBjYWxsIG1ha2VQdXJnZWFibGUodHJ1ZSkuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL1B1cmdlYWJsZUJ1ZmZlck1hYy5jcHA6IFVwZGF0ZSBzaXplIHRocmVzaG9sZCB0
byAxNktCIHdoaWNoIGlzIHdoYXQKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2Ugd2FzIHVzaW5nLgor
CiAyMDEwLTEwLTI4ICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IGFwLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA2YmMyZTM2MmU0MzFhYmQ5NDVkNzg0MWIwMTBkZGFhNWMyYjM1MjRhLi5i
NjYwMDk0M2I2ZjdkZmM5MjZkOWQzZDdiNTRjZDE5MjRiN2E5ZTcxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU0Niw2ICsxNTQ2LDcgQEAKIAkJN0FE
RTcyMjYxMENCQkI5QjAwNkIzQjNBIC8qIENvbnRleHRNZW51UHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBREU3MjI1MTBDQkJCOUIwMDZC
M0IzQSAvKiBDb250ZXh0TWVudVByb3ZpZGVyLmggKi87IH07CiAJCTdBRkQ0QThCMTEzMUMyNzYw
MDM1Qjg4MyAvKiBTY3JpcHRCcmVha3BvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QUZENEE4QTExMzFDMjc2MDAzNUI4ODMgLyogU2NyaXB0QnJl
YWtwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdBRkQ0RkY0MTEzMjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUZENEZGMzExMzI3
N0I2MDAzNUI4ODMgLyogU2NyaXB0RGVidWdMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdFMzNDRDAxMTI3RjM0MEQwMEJFOEYxNyAv
KiBQdXJnZVByaW9yaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgxQTczMjVFMTIx
MDE4OUIwMEZDMEQ5RSAvKiBJREJDdXJzb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTczMjVEMTIxMDE4OUIwMEZDMEQ5RSAvKiBJREJDdXJzb3Iu
aCAqLzsgfTsKIAkJODFBNzMyNjAxMjEwMThBNDAwRkMwRDlFIC8qIElEQkN1cnNvci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUE3MzI1RjEyMTAx
OEE0MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCAqLzsgfTsKIAkJODFBNzMyNzgxMjEwMTlFMTAw
RkMwRDlFIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUE3MzI3NzEyMTAxOUUxMDBGQzBEOUUgLyogSURCQ3Vy
c29yQmFja2VuZEltcGwuaCAqLzsgfTsKQEAgLTc2ODYsNiArNzY4Nyw3IEBACiAJCTdBREU3MjI1
MTBDQkJCOUIwMDZCM0IzQSAvKiBDb250ZXh0TWVudVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRleHRNZW51UHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0FGRDRBOEExMTMxQzI3NjAwMzVCODgzIC8qIFNjcmlwdEJyZWFrcG9p
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0QnJlYWtwb2ludC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUZENEZGMzExMzI3N0I2MDAzNUI4ODMg
LyogU2NyaXB0RGVidWdMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY3JpcHREZWJ1Z0xpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdF
MzNDRDAwMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFB1cmdlUHJpb3JpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODFBNzMyNUQxMjEwMTg5QjAwRkMwRDlFIC8qIElEQkN1cnNvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODFBNzMyNUYxMjEwMThBNDAwRkMwRDlFIC8qIElEQkN1cnNvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJDdXJzb3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MUE3MzI3NzEyMTAxOUUxMDBGQzBEOUUgLyogSURCQ3Vy
c29yQmFja2VuZEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCQ3Vy
c29yQmFja2VuZEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NDE3LDYg
KzE3NDE5LDcgQEAKIAkJCQlBQkMxMjg3NjBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xp
ZW50LmggKi8sCiAJCQkJQkMzQkUxMkEwRTk4MDkyRjAwODM1NTg4IC8qIFBvcHVwTWVudVN0eWxl
LmggKi8sCiAJCQkJRTRENjg3NzgwRUQ3QUU0RjAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlci5o
ICovLAorCQkJCTdFMzNDRDAwMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi8s
CiAJCQkJMUM2M0EyNDYwRjcxNjQ2NjAwQzA5RDVBIC8qIFJ1bkxvb3BUaW1lci5oICovLAogCQkJ
CTUxNjJDN0YyMTFGNzdFRkEwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJ
NTE2MkM3RjMxMUY3N0VGQjAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmggKi8sCkBAIC0yMDQ5
OSw2ICsyMDUwMiw3IEBACiAJCQkJNTFBMDUyNTYxMDU4ODc0MDAwQ0M5RTk1IC8qIFByb3RlY3Rp
b25TcGFjZUhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjhFMTFBMTI1NjU5MjYwMDIzMEZG
NyAvKiBQcm94eVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRENjg3NzkwRUQ3QUU0RjAw
NkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0UzM0NEMDEx
MjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1
MEEwQkNBMDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyNzk3MjBEMDBCRjIyMDA3MUI3ODIgLyogUmFkaWFsR3JhZGllbnRBdHRyaWJ1dGVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RDQzEyNTFGMTJEMDAzRUYyNjkgLyogUmFkaW9J
bnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvQ2Fj
aGVkQ1NTU3R5bGVTaGVldC5oIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5o
CmluZGV4IDAzYmRlNjkxMTdkNjI3NTYzODA4OWY1ZTc2ZDMwODkwNmZhYzQ1MzIuLjNkNDRhYzdm
ZTMxNTk3YmQ1MjNkM2Y3ZGI1ZTNmMzBjOTQ3YWJiYmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9h
ZGVyL0NhY2hlZENTU1N0eWxlU2hlZXQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NT
dHlsZVNoZWV0LmgKQEAgLTU3LDYgKzU3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBib29sIGNhblVzZVNoZWV0KGJvb2wgZW5mb3JjZU1JTUVUeXBlLCBib29sKiBoYXNWYWxpZE1J
TUVUeXBlKSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoKKyAgICAgICAgdmlydHVhbCBQdXJnZVBy
aW9yaXR5IHJlc291cmNlUHVyZ2VQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIFB1cmdlTGFzdDsg
fQorCiAgICAgICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBtX2RlY29kZXI7CiAgICAg
ICAgIFN0cmluZyBtX2RlY29kZWRTaGVldFRleHQ7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL0NhY2hlZEltYWdlLmggYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRJbWFnZS5oCmlu
ZGV4IDE1ZjQyMzg4NDcwMDI4NWI4NjJmY2RkYzI4OWM2ZDJkNzUzMWI2ZTguLjRlMjk2YzI5YTAw
YWJjODU0OTBmYjkyYzdhZjBiYzI3MGI4MmIyN2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L0NhY2hlZEltYWdlLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkSW1hZ2UuaApAQCAtODcs
NiArODcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkFkdmFuY2VkKGNv
bnN0IEltYWdlKik7CiAgICAgdmlydHVhbCB2b2lkIGNoYW5nZWRJblJlY3QoY29uc3QgSW1hZ2Uq
LCBjb25zdCBJbnRSZWN0Jik7CiAKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIFB1cmdlUHJpb3Jp
dHkgcmVzb3VyY2VQdXJnZVByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gUHVyZ2VGaXJzdDsgfQor
CiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlSW1hZ2UoKTsKICAgICBzaXplX3QgbWF4aW11bURl
Y29kZWRJbWFnZVNpemUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291
cmNlLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCBlNTE5YzI5
ZjE4MWUyM2I1YmU1MzE0NmI3NzczNDE2MjYzOTI2OTQwLi44MWJhYjEzN2VhYmJlNzY1MGM0Mjk1
YzMzZjY3ODQ1YTA3YjM5YTg4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNv
dXJjZS5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC01MTcs
MTcgKzUxNywxMyBAQCBib29sIENhY2hlZFJlc291cmNlOjptYWtlUHVyZ2VhYmxlKGJvb2wgcHVy
Z2VhYmxlKQogICAgICAgICBpZiAoIW1fZGF0YS0+aGFzT25lUmVmKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIAotICAgICAgICAvLyBQdXJnZWFibGUgYnVmZmVycyBhcmUg
YWxsb2NhdGVkIGluIG11bHRpcGxlcyBvZiB0aGUgcGFnZSBzaXplICg0S0IgaW4gY29tbW9uIENQ
VXMpIHNvIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgZm9yIHZlcnkgc21hbGwgYnVmZmVycy4KLSAg
ICAgICAgY29uc3Qgc2l6ZV90IHB1cmdlYWJsZVRocmVzaG9sZCA9IDQgKiA0MDk2OwotICAgICAg
ICBpZiAobV9kYXRhLT5zaXplKCkgPCBwdXJnZWFibGVUaHJlc2hvbGQpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIAogICAgICAgICBpZiAobV9kYXRhLT5oYXNQdXJnZWFibGVC
dWZmZXIoKSkgewogICAgICAgICAgICAgbV9wdXJnZWFibGVEYXRhID0gbV9kYXRhLT5yZWxlYXNl
UHVyZ2VhYmxlQnVmZmVyKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX3B1cmdl
YWJsZURhdGEgPSBQdXJnZWFibGVCdWZmZXI6OmNyZWF0ZShtX2RhdGEtPmRhdGEoKSwgbV9kYXRh
LT5zaXplKCkpOwogICAgICAgICAgICAgaWYgKCFtX3B1cmdlYWJsZURhdGEpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgbV9wdXJnZWFibGVEYXRhLT5zZXRQdXJn
ZVByaW9yaXR5KHJlc291cmNlUHVyZ2VQcmlvcml0eSgpKTsKICAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgbV9wdXJnZWFibGVEYXRhLT5tYWtlUHVyZ2VhYmxlKHRydWUpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuaCBiL1dlYkNvcmUvbG9hZGVyL0NhY2hl
ZFJlc291cmNlLmgKaW5kZXggMDc4ZGE1Nzg4YTgxNGVlYTk2ODRjNzMxMmE4ODdlMWU1ODljYmQy
NC4uZjMxN2EwMjhlZTAyMzg3NDMzOGY3NzhmNGNhODYxNDI3OTRmODg2NSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9XZWJDb3JlL2xvYWRlci9DYWNo
ZWRSZXNvdXJjZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVQb2xpY3kuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlICJQdXJnZVByaW9yaXR5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25z
ZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CkBAIC00Miw4ICs0Myw4IEBAIGNsYXNzIENhY2hlZFJlc291cmNlSGFuZGxlQmFzZTsK
IGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBJbnNwZWN0
b3JSZXNvdXJjZTsKLWNsYXNzIFJlcXVlc3Q7CiBjbGFzcyBQdXJnZWFibGVCdWZmZXI7CitjbGFz
cyBSZXF1ZXN0OwogCiAvLyBBIHJlc291cmNlIHRoYXQgaXMgaGVsZCBpbiB0aGUgY2FjaGUuIENs
YXNzZXMgd2hvIHdhbnQgdG8gdXNlIHRoaXMgb2JqZWN0IHNob3VsZCBkZXJpdmUKIC8vIGZyb20g
Q2FjaGVkUmVzb3VyY2VDbGllbnQsIHRvIGdldCB0aGUgZnVuY3Rpb24gY2FsbHMgaW4gY2FzZSB0
aGUgcmVxdWVzdGVkIGRhdGEgaGFzIGFycml2ZWQuCkBAIC0yMDgsNiArMjA5LDcgQEAgcHJvdGVj
dGVkOgogICAgIHZvaWQgZGlkQWNjZXNzRGVjb2RlZERhdGEoZG91YmxlIHRpbWVTdGFtcCk7CiAK
ICAgICBib29sIGlzU2FmZVRvTWFrZVB1cmdlYWJsZSgpIGNvbnN0OworICAgIHZpcnR1YWwgUHVy
Z2VQcmlvcml0eSByZXNvdXJjZVB1cmdlUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBQdXJnZURl
ZmF1bHQ7IH0KICAgICAKICAgICBIYXNoQ291bnRlZFNldDxDYWNoZWRSZXNvdXJjZUNsaWVudCo+
IG1fY2xpZW50czsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkU2NyaXB0Lmgg
Yi9XZWJDb3JlL2xvYWRlci9DYWNoZWRTY3JpcHQuaAppbmRleCAxYmM0ZThjYjJjYjk5NDJkNWUy
NTBlMDM3ZTk4MGMyNGY5YzBkN2JiLi4xOTgxMjhjYjY0ZmMyN2U4ZWU2MWMzZGQ4ZTU5YzZjYjk3
ZGZmNGQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRTY3JpcHQuaAorKysgYi9X
ZWJDb3JlL2xvYWRlci9DYWNoZWRTY3JpcHQuaApAQCAtNTIsNiArNTIsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YSgpOwog
CisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIFB1cmdlUHJpb3JpdHkgcmVzb3VyY2VQ
dXJnZVByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gUHVyZ2VMYXN0OyB9CisKICAgICBwcml2YXRl
OgogICAgICAgICB2b2lkIGRlY29kZWREYXRhRGVsZXRpb25UaW1lckZpcmVkKFRpbWVyPENhY2hl
ZFNjcmlwdD4qKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZVByaW9yaXR5
LmggYi9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlUHJpb3JpdHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTI4OTRl
YjMxNjMwMzlmZDU3Mzc2NWI1ZjE3ODQ0MjY1Njg5YjIyCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9QdXJnZVByaW9yaXR5LmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFB1cmdlUHJpb3JpdHlfaAorI2RlZmluZSBQdXJnZVByaW9yaXR5X2gKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFB1cmdlUHJpb3JpdHkgeworICAgIFB1cmdlTGFz
dCwKKyAgICBQdXJnZU1pZGRsZSwKKyAgICBQdXJnZUZpcnN0LAorICAgIFB1cmdlRGVmYXVsdCA9
IFB1cmdlTWlkZGxlCit9OworCit9CisKKyNlbmRpZiAvLyBQdXJnZVByaW9yaXR5X2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmggYi9XZWJDb3JlL3BsYXRm
b3JtL1B1cmdlYWJsZUJ1ZmZlci5oCmluZGV4IDMyMzQxYzJiMGI3NjJhZTJiYmQ5OGU5NzFhNjg2
ZGQyYWQzN2U5YWEuLjk0NWQ1OWE2NDY3ODgyMGNkMGJkNmFmYTMyNDZlNGI5YTk0NjcwNzIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBQ
dXJnZWFibGVCdWZmZXJfaAogI2RlZmluZSBQdXJnZWFibGVCdWZmZXJfaAogCisjaW5jbHVkZSAi
UHVyZ2VQcmlvcml0eS5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzUsNyArMzYs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUHVyZ2VhYmxlQnVmZmVyIDogcHVi
bGljIE5vbmNvcHlhYmxlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzT3duUHRy
PFB1cmdlYWJsZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCk7Ci0gICAg
ICAgIHN0YXRpYyBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IFZlY3Rv
cjxjaGFyPiYgdmVjdG9yKSB7IHJldHVybiBjcmVhdGUodmVjdG9yLmRhdGEoKSwgdmVjdG9yLnNp
emUoKSk7IH0KICAgICAgICAgCiAgICAgICAgIH5QdXJnZWFibGVCdWZmZXIoKTsKIApAQCAtNDMs
OSArNDMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGRhdGEo
KSBjb25zdDsKICAgICAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0K
ICAgICAgICAgCi0gICAgICAgIGVudW0gUHVyZ2VQcmlvcml0eSB7IFB1cmdlTGFzdCwgUHVyZ2VN
aWRkbGUsIFB1cmdlRmlyc3QsIFB1cmdlRGVmYXVsdCA9IFB1cmdlTWlkZGxlIH07CiAgICAgICAg
IFB1cmdlUHJpb3JpdHkgcHVyZ2VQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHVyZ2VQcmlv
cml0eTsgfQotICAgICAgICB2b2lkIHNldFB1cmdlUHJpb3JpdHkoUHVyZ2VQcmlvcml0eSk7Cisg
ICAgICAgIHZvaWQgc2V0UHVyZ2VQcmlvcml0eShQdXJnZVByaW9yaXR5IHByaW9yaXR5KSB7IG1f
cHVyZ2VQcmlvcml0eSA9IHByaW9yaXR5OyB9CiAgICAgICAgIAogICAgICAgICBib29sIGlzUHVy
Z2VhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBOb25Wb2xhdGlsZTsgfQogICAgICAg
ICBib29sIHdhc1B1cmdlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1B1cmdlYWJs
ZUJ1ZmZlck1hYy5jcHAKaW5kZXggNTRkZTRlZGYzZWIxZWZhN2NkZmE2YmNlYzhjMDMyMGNlODVi
OGI2MS4uZmRiYWMxZmVjODIzNmE1NDhlYjc0ZDVkMjM5MjA0ZjEzYzI5MTA2ZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QdXJnZWFibGVCdWZmZXJNYWMuY3BwCkBAIC0zNSw3ICszNSw5IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNvbnN0IHNpemVfdCBtaW5QdXJnZWFi
bGVCdWZmZXJTaXplID0gNDA5NjsgLy8gb25lIHBhZ2UKKy8vIFB1cmdlYWJsZSBidWZmZXJzIGFy
ZSBhbGxvY2F0ZWQgaW4gbXVsdGlwbGVzIG9mIHRoZSBwYWdlIHNpemUgKDRLQiBpbiBjb21tb24g
Q1BVcykgc28KKy8vIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgZm9yIHZlcnkgc21hbGwgYnVmZmVy
cy4gU2V0IG91ciBtaW5pbXVtIHNpemUgdG8gMTZLQi4KK3N0YXRpYyBjb25zdCBzaXplX3QgbWlu
UHVyZ2VhYmxlQnVmZmVyU2l6ZSA9IDQgKiA0MDk2OwogCiBQdXJnZWFibGVCdWZmZXI6OlB1cmdl
YWJsZUJ1ZmZlcihjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKICAgICA6IG1fZGF0YShkYXRhKQpA
QCAtMTQzLDE3ICsxNDUsNiBAQCBib29sIFB1cmdlYWJsZUJ1ZmZlcjo6d2FzUHVyZ2VkKCkgY29u
c3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUHVyZ2VhYmxlQnVmZmVyOjpzZXRQdXJn
ZVByaW9yaXR5KFB1cmdlUHJpb3JpdHkgcHJpb3JpdHkpCi17Ci0gICAgaWYgKHByaW9yaXR5ID09
IG1fcHVyZ2VQcmlvcml0eSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fcHVyZ2VQcmlvcml0eSA9
IHByaW9yaXR5OwotICAgIGlmIChtX3N0YXRlICE9IFZvbGF0aWxlKQotICAgICAgICByZXR1cm47
Ci0gICAgbV9zdGF0ZSA9IE5vblZvbGF0aWxlOwotICAgIG1ha2VQdXJnZWFibGUodHJ1ZSk7Ci19
Ci0gICAgCiBjb25zdCBjaGFyKiBQdXJnZWFibGVCdWZmZXI6OmRhdGEoKSBjb25zdAogewogICAg
IEFTU0VSVChtX3N0YXRlID09IE5vblZvbGF0aWxlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72581</attachid>
            <date>2010-11-01 16:01:47 -0700</date>
            <delta_ts>2010-11-03 15:45:14 -0700</delta_ts>
            <desc>Patch.v4</desc>
            <filename>bug-48684-20101101160145.patch</filename>
            <type>text/plain</type>
            <size>14788</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWY0YjVlZTUxNzhhZTczODNjMzM2YmU4YzcwOGEyZDJlM2ZjMWVjNi4uNzY0MzM3YjdhZDczMjJl
ZGRhMzdhYTI3NjBlZDczMjJmOGFlY2Q2NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0xMS0wMSAgUHJh
dGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2hvdWxkIG1ha2UgdXNlIG9mIHB1cmdlIHByaW9y
aXRpZXMgZm9yIGRpZmZlcmVudCByZXNvdXJjZSB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg2ODQKKworICAgICAgICBBc3NpZ24gcHVyZ2Ug
cHJpb3JpdGllcyB0byBDYWNoZWRSZXNvdXJjZSBvYmplY3RzLiBKYXZhU2NyaXB0IGFuZCBDU1Mg
c3R5bGVzaGVldHMgYXJlIG1vcmUKKyAgICAgICAgaW1wb3J0YW50IHRoYW4gaW1hZ2VzIHNvIGhp
bnQgdG8gdGhlIGtlcm5lbCB0byBwdXJnZSB0aGVtIGxhc3QuIFdlIGRvIHRoaXMgYnkgcmVwdXJw
b3NpbmcKKyAgICAgICAgdGhlIHByZXZpb3VzbHkgdW51c2VkIGZ1bmN0aW9uLCBQdXJnZWFibGVC
dWZmZXI6OnNldFB1cmdlUHJpb3JpdHkoKS4gSXQgbm93IGp1c3Qgc2V0cyB0aGUKKyAgICAgICAg
cHJpb3JpdHkgZmllbGQgYW5kIGRvZXMgbm90IGhhdmUgc2lkZS1lZmZlY3RzIGxpa2UgY2FsbGlu
ZyBtYWtlUHVyZ2VhYmxlKHRydWUpLgorCisgICAgICAgIEFsc28sIHJlbW92ZSB1bnVzdWVkIFB1
cmdlYWJsZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IFZlY3RvcjxjaGFyPiYpIGZ1bmN0aW9uIGFuZCBt
b3ZlIHRoZQorICAgICAgICBwdXJnZWFibGUgbWVtb3J5IHNpemUgdGhyZXNob2xkIGZyb20gQ2Fj
aGVkUmVzb3VyY2UgdG8gUHVyZ2VhYmxlQnVmZmVyLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IFB1cmdlUHJpb3JpdHkuaCBoZWFkZXIgYW5k
IG1hcmsgaXQgYXMgcHJpdmF0ZQorICAgICAgICBoZWFkZXIuCisgICAgICAgICogbG9hZGVyL0Nh
Y2hlZENTU1N0eWxlU2hlZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hl
ZXQ6OnJlc291cmNlUHVyZ2VQcmlvcml0eSk6CisgICAgICAgICogbG9hZGVyL0NhY2hlZEltYWdl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6cmVzb3VyY2VQdXJnZVByaW9yaXR5
KToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2U6Om1ha2VQdXJnZWFibGUpOiBTZXQgdGhlIHB1cmdlIHByaW9yaXR5
IG9uIHRoZSBQdXJnZWFibGVCZmZlci4KKyAgICAgICAgQWxzbywgbW92ZSB0aGUgY2hlY2sgZm9y
IHB1cmdlYWJsZSBzaXplIHRocmVzaG9sZCB0byBQdXJnZWFibGVCdWZmZXIuCisgICAgICAgICog
bG9hZGVyL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZTo6cmVzb3VyY2VQdXJnZVByaW9yaXR5KTogQWRkZWQuIE5ldyB2aXJ0dWFsIG1ldGhvZCB0aGF0
IGxldHMgdGhlIGNsYXNzCisgICAgICAgIHNwZWNpZnkgaXRzIHB1cmdlIHByaW9yaXR5LgorICAg
ICAgICAqIGxvYWRlci9DYWNoZWRTY3JpcHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNj
cmlwdDo6cmVzb3VyY2VQdXJnZVByaW9yaXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QdXJnZVBy
aW9yaXR5Lmg6IEFkZGVkLiBNb3ZlIHRoZSBQdXJnZVByaW9yaXR5IGVudW0gZnJvbSBQdXJnZWFi
bGVCdWZmZXIgY2xhc3MgdG8KKyAgICAgICAgaXRzIG93biBoZWFkZXIgZmlsZS4KKyAgICAgICAg
KFdlYkNvcmU6Oik6CisgICAgICAgICogcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpQdXJnZWFibGVCdWZmZXI6OnNldFB1cmdlUHJpb3JpdHkpOiBVcGRhdGUg
dGhpcyBwcmV2aW91c2x5IHVudXNlZCBmdW5jdGlvbiB0byBqdXN0CisgICAgICAgIHNldCB0aGUg
cHJpb3JpdHkgYW5kIG5vdCBjYWxsIG1ha2VQdXJnZWFibGUodHJ1ZSkuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL1B1cmdlYWJsZUJ1ZmZlck1hYy5jcHA6IFVwZGF0ZSBzaXplIHRocmVzaG9sZCB0
byAxNktCIHdoaWNoIGlzIHdoYXQKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2Ugd2FzIHVzaW5nLgor
CiAyMDEwLTEwLTI4ICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IGFwLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA2YmMyZTM2MmU0MzFhYmQ5NDVkNzg0MWIwMTBkZGFhNWMyYjM1MjRhLi5i
NjYwMDk0M2I2ZjdkZmM5MjZkOWQzZDdiNTRjZDE5MjRiN2E5ZTcxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU0Niw2ICsxNTQ2LDcgQEAKIAkJN0FE
RTcyMjYxMENCQkI5QjAwNkIzQjNBIC8qIENvbnRleHRNZW51UHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBREU3MjI1MTBDQkJCOUIwMDZC
M0IzQSAvKiBDb250ZXh0TWVudVByb3ZpZGVyLmggKi87IH07CiAJCTdBRkQ0QThCMTEzMUMyNzYw
MDM1Qjg4MyAvKiBTY3JpcHRCcmVha3BvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QUZENEE4QTExMzFDMjc2MDAzNUI4ODMgLyogU2NyaXB0QnJl
YWtwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdBRkQ0RkY0MTEzMjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUZENEZGMzExMzI3
N0I2MDAzNUI4ODMgLyogU2NyaXB0RGVidWdMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdFMzNDRDAxMTI3RjM0MEQwMEJFOEYxNyAv
KiBQdXJnZVByaW9yaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgxQTczMjVFMTIx
MDE4OUIwMEZDMEQ5RSAvKiBJREJDdXJzb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTczMjVEMTIxMDE4OUIwMEZDMEQ5RSAvKiBJREJDdXJzb3Iu
aCAqLzsgfTsKIAkJODFBNzMyNjAxMjEwMThBNDAwRkMwRDlFIC8qIElEQkN1cnNvci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUE3MzI1RjEyMTAx
OEE0MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCAqLzsgfTsKIAkJODFBNzMyNzgxMjEwMTlFMTAw
RkMwRDlFIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUE3MzI3NzEyMTAxOUUxMDBGQzBEOUUgLyogSURCQ3Vy
c29yQmFja2VuZEltcGwuaCAqLzsgfTsKQEAgLTc2ODYsNiArNzY4Nyw3IEBACiAJCTdBREU3MjI1
MTBDQkJCOUIwMDZCM0IzQSAvKiBDb250ZXh0TWVudVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRleHRNZW51UHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0FGRDRBOEExMTMxQzI3NjAwMzVCODgzIC8qIFNjcmlwdEJyZWFrcG9p
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0QnJlYWtwb2ludC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUZENEZGMzExMzI3N0I2MDAzNUI4ODMg
LyogU2NyaXB0RGVidWdMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTY3JpcHREZWJ1Z0xpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdF
MzNDRDAwMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFB1cmdlUHJpb3JpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODFBNzMyNUQxMjEwMTg5QjAwRkMwRDlFIC8qIElEQkN1cnNvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODFBNzMyNUYxMjEwMThBNDAwRkMwRDlFIC8qIElEQkN1cnNvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJDdXJzb3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MUE3MzI3NzEyMTAxOUUxMDBGQzBEOUUgLyogSURCQ3Vy
c29yQmFja2VuZEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCQ3Vy
c29yQmFja2VuZEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NDE3LDYg
KzE3NDE5LDcgQEAKIAkJCQlBQkMxMjg3NjBCMzNBQTZEMDBDNjkzRDUgLyogUG9wdXBNZW51Q2xp
ZW50LmggKi8sCiAJCQkJQkMzQkUxMkEwRTk4MDkyRjAwODM1NTg4IC8qIFBvcHVwTWVudVN0eWxl
LmggKi8sCiAJCQkJRTRENjg3NzgwRUQ3QUU0RjAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlci5o
ICovLAorCQkJCTdFMzNDRDAwMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi8s
CiAJCQkJMUM2M0EyNDYwRjcxNjQ2NjAwQzA5RDVBIC8qIFJ1bkxvb3BUaW1lci5oICovLAogCQkJ
CTUxNjJDN0YyMTFGNzdFRkEwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJ
NTE2MkM3RjMxMUY3N0VGQjAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmggKi8sCkBAIC0yMDQ5
OSw2ICsyMDUwMiw3IEBACiAJCQkJNTFBMDUyNTYxMDU4ODc0MDAwQ0M5RTk1IC8qIFByb3RlY3Rp
b25TcGFjZUhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjhFMTFBMTI1NjU5MjYwMDIzMEZG
NyAvKiBQcm94eVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRENjg3NzkwRUQ3QUU0RjAw
NkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0UzM0NEMDEx
MjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1
MEEwQkNBMDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyNzk3MjBEMDBCRjIyMDA3MUI3ODIgLyogUmFkaWFsR3JhZGllbnRBdHRyaWJ1dGVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RDQzEyNTFGMTJEMDAzRUYyNjkgLyogUmFkaW9J
bnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvQ2Fj
aGVkQ1NTU3R5bGVTaGVldC5oIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5o
CmluZGV4IDAzYmRlNjkxMTdkNjI3NTYzODA4OWY1ZTc2ZDMwODkwNmZhYzQ1MzIuLjNkNDRhYzdm
ZTMxNTk3YmQ1MjNkM2Y3ZGI1ZTNmMzBjOTQ3YWJiYmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9h
ZGVyL0NhY2hlZENTU1N0eWxlU2hlZXQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NT
dHlsZVNoZWV0LmgKQEAgLTU3LDYgKzU3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBib29sIGNhblVzZVNoZWV0KGJvb2wgZW5mb3JjZU1JTUVUeXBlLCBib29sKiBoYXNWYWxpZE1J
TUVUeXBlKSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoKKyAgICAgICAgdmlydHVhbCBQdXJnZVBy
aW9yaXR5IHJlc291cmNlUHVyZ2VQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIFB1cmdlTGFzdDsg
fQorCiAgICAgICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBtX2RlY29kZXI7CiAgICAg
ICAgIFN0cmluZyBtX2RlY29kZWRTaGVldFRleHQ7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL0NhY2hlZEltYWdlLmggYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRJbWFnZS5oCmlu
ZGV4IDE1ZjQyMzg4NDcwMDI4NWI4NjJmY2RkYzI4OWM2ZDJkNzUzMWI2ZTguLjRlMjk2YzI5YTAw
YWJjODU0OTBmYjkyYzdhZjBiYzI3MGI4MmIyN2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L0NhY2hlZEltYWdlLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkSW1hZ2UuaApAQCAtODcs
NiArODcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkFkdmFuY2VkKGNv
bnN0IEltYWdlKik7CiAgICAgdmlydHVhbCB2b2lkIGNoYW5nZWRJblJlY3QoY29uc3QgSW1hZ2Uq
LCBjb25zdCBJbnRSZWN0Jik7CiAKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIFB1cmdlUHJpb3Jp
dHkgcmVzb3VyY2VQdXJnZVByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gUHVyZ2VGaXJzdDsgfQor
CiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlSW1hZ2UoKTsKICAgICBzaXplX3QgbWF4aW11bURl
Y29kZWRJbWFnZVNpemUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291
cmNlLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCBlNTE5YzI5
ZjE4MWUyM2I1YmU1MzE0NmI3NzczNDE2MjYzOTI2OTQwLi44MWJhYjEzN2VhYmJlNzY1MGM0Mjk1
YzMzZjY3ODQ1YTA3YjM5YTg4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNv
dXJjZS5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC01MTcs
MTcgKzUxNywxMyBAQCBib29sIENhY2hlZFJlc291cmNlOjptYWtlUHVyZ2VhYmxlKGJvb2wgcHVy
Z2VhYmxlKQogICAgICAgICBpZiAoIW1fZGF0YS0+aGFzT25lUmVmKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIAotICAgICAgICAvLyBQdXJnZWFibGUgYnVmZmVycyBhcmUg
YWxsb2NhdGVkIGluIG11bHRpcGxlcyBvZiB0aGUgcGFnZSBzaXplICg0S0IgaW4gY29tbW9uIENQ
VXMpIHNvIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgZm9yIHZlcnkgc21hbGwgYnVmZmVycy4KLSAg
ICAgICAgY29uc3Qgc2l6ZV90IHB1cmdlYWJsZVRocmVzaG9sZCA9IDQgKiA0MDk2OwotICAgICAg
ICBpZiAobV9kYXRhLT5zaXplKCkgPCBwdXJnZWFibGVUaHJlc2hvbGQpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIAogICAgICAgICBpZiAobV9kYXRhLT5oYXNQdXJnZWFibGVC
dWZmZXIoKSkgewogICAgICAgICAgICAgbV9wdXJnZWFibGVEYXRhID0gbV9kYXRhLT5yZWxlYXNl
UHVyZ2VhYmxlQnVmZmVyKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX3B1cmdl
YWJsZURhdGEgPSBQdXJnZWFibGVCdWZmZXI6OmNyZWF0ZShtX2RhdGEtPmRhdGEoKSwgbV9kYXRh
LT5zaXplKCkpOwogICAgICAgICAgICAgaWYgKCFtX3B1cmdlYWJsZURhdGEpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgbV9wdXJnZWFibGVEYXRhLT5zZXRQdXJn
ZVByaW9yaXR5KHJlc291cmNlUHVyZ2VQcmlvcml0eSgpKTsKICAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgbV9wdXJnZWFibGVEYXRhLT5tYWtlUHVyZ2VhYmxlKHRydWUpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuaCBiL1dlYkNvcmUvbG9hZGVyL0NhY2hl
ZFJlc291cmNlLmgKaW5kZXggMDc4ZGE1Nzg4YTgxNGVlYTk2ODRjNzMxMmE4ODdlMWU1ODljYmQy
NC4uZjMxN2EwMjhlZTAyMzg3NDMzOGY3NzhmNGNhODYxNDI3OTRmODg2NSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9XZWJDb3JlL2xvYWRlci9DYWNo
ZWRSZXNvdXJjZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVQb2xpY3kuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlICJQdXJnZVByaW9yaXR5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25z
ZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CkBAIC00Miw4ICs0Myw4IEBAIGNsYXNzIENhY2hlZFJlc291cmNlSGFuZGxlQmFzZTsK
IGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBJbnNwZWN0
b3JSZXNvdXJjZTsKLWNsYXNzIFJlcXVlc3Q7CiBjbGFzcyBQdXJnZWFibGVCdWZmZXI7CitjbGFz
cyBSZXF1ZXN0OwogCiAvLyBBIHJlc291cmNlIHRoYXQgaXMgaGVsZCBpbiB0aGUgY2FjaGUuIENs
YXNzZXMgd2hvIHdhbnQgdG8gdXNlIHRoaXMgb2JqZWN0IHNob3VsZCBkZXJpdmUKIC8vIGZyb20g
Q2FjaGVkUmVzb3VyY2VDbGllbnQsIHRvIGdldCB0aGUgZnVuY3Rpb24gY2FsbHMgaW4gY2FzZSB0
aGUgcmVxdWVzdGVkIGRhdGEgaGFzIGFycml2ZWQuCkBAIC0yMDgsNiArMjA5LDcgQEAgcHJvdGVj
dGVkOgogICAgIHZvaWQgZGlkQWNjZXNzRGVjb2RlZERhdGEoZG91YmxlIHRpbWVTdGFtcCk7CiAK
ICAgICBib29sIGlzU2FmZVRvTWFrZVB1cmdlYWJsZSgpIGNvbnN0OworICAgIHZpcnR1YWwgUHVy
Z2VQcmlvcml0eSByZXNvdXJjZVB1cmdlUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBQdXJnZURl
ZmF1bHQ7IH0KICAgICAKICAgICBIYXNoQ291bnRlZFNldDxDYWNoZWRSZXNvdXJjZUNsaWVudCo+
IG1fY2xpZW50czsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkU2NyaXB0Lmgg
Yi9XZWJDb3JlL2xvYWRlci9DYWNoZWRTY3JpcHQuaAppbmRleCAxYmM0ZThjYjJjYjk5NDJkNWUy
NTBlMDM3ZTk4MGMyNGY5YzBkN2JiLi4xOTgxMjhjYjY0ZmMyN2U4ZWU2MWMzZGQ4ZTU5YzZjYjk3
ZGZmNGQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRTY3JpcHQuaAorKysgYi9X
ZWJDb3JlL2xvYWRlci9DYWNoZWRTY3JpcHQuaApAQCAtNTIsNiArNTIsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YSgpOwog
CisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIFB1cmdlUHJpb3JpdHkgcmVzb3VyY2VQ
dXJnZVByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gUHVyZ2VMYXN0OyB9CisKICAgICBwcml2YXRl
OgogICAgICAgICB2b2lkIGRlY29kZWREYXRhRGVsZXRpb25UaW1lckZpcmVkKFRpbWVyPENhY2hl
ZFNjcmlwdD4qKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZVByaW9yaXR5
LmggYi9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlUHJpb3JpdHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTI4OTRl
YjMxNjMwMzlmZDU3Mzc2NWI1ZjE3ODQ0MjY1Njg5YjIyCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9QdXJnZVByaW9yaXR5LmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFB1cmdlUHJpb3JpdHlfaAorI2RlZmluZSBQdXJnZVByaW9yaXR5X2gKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFB1cmdlUHJpb3JpdHkgeworICAgIFB1cmdlTGFz
dCwKKyAgICBQdXJnZU1pZGRsZSwKKyAgICBQdXJnZUZpcnN0LAorICAgIFB1cmdlRGVmYXVsdCA9
IFB1cmdlTWlkZGxlCit9OworCit9CisKKyNlbmRpZiAvLyBQdXJnZVByaW9yaXR5X2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmggYi9XZWJDb3JlL3BsYXRm
b3JtL1B1cmdlYWJsZUJ1ZmZlci5oCmluZGV4IDMyMzQxYzJiMGI3NjJhZTJiYmQ5OGU5NzFhNjg2
ZGQyYWQzN2U5YWEuLjliZGEyZDVkMjkwZTI0MWJhYzYzZmE0ODBhMzU4MTM0ZGM2ZGU4NjcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBQ
dXJnZWFibGVCdWZmZXJfaAogI2RlZmluZSBQdXJnZWFibGVCdWZmZXJfaAogCisjaW5jbHVkZSAi
UHVyZ2VQcmlvcml0eS5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzUsNyArMzYs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUHVyZ2VhYmxlQnVmZmVyIDogcHVi
bGljIE5vbmNvcHlhYmxlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzT3duUHRy
PFB1cmdlYWJsZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCk7Ci0gICAg
ICAgIHN0YXRpYyBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IFZlY3Rv
cjxjaGFyPiYgdmVjdG9yKSB7IHJldHVybiBjcmVhdGUodmVjdG9yLmRhdGEoKSwgdmVjdG9yLnNp
emUoKSk7IH0KICAgICAgICAgCiAgICAgICAgIH5QdXJnZWFibGVCdWZmZXIoKTsKIApAQCAtNDMs
OSArNDMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGRhdGEo
KSBjb25zdDsKICAgICAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0K
ICAgICAgICAgCi0gICAgICAgIGVudW0gUHVyZ2VQcmlvcml0eSB7IFB1cmdlTGFzdCwgUHVyZ2VN
aWRkbGUsIFB1cmdlRmlyc3QsIFB1cmdlRGVmYXVsdCA9IFB1cmdlTWlkZGxlIH07CiAgICAgICAg
IFB1cmdlUHJpb3JpdHkgcHVyZ2VQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHVyZ2VQcmlv
cml0eTsgfQotICAgICAgICB2b2lkIHNldFB1cmdlUHJpb3JpdHkoUHVyZ2VQcmlvcml0eSk7Cisg
ICAgICAgIHZvaWQgc2V0UHVyZ2VQcmlvcml0eShQdXJnZVByaW9yaXR5IHByaW9yaXR5KSB7IG1f
cHVyZ2VQcmlvcml0eSA9IHByaW9yaXR5OyB9CiAgICAgICAgIAogICAgICAgICBib29sIGlzUHVy
Z2VhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBOb25Wb2xhdGlsZTsgfQogICAgICAg
ICBib29sIHdhc1B1cmdlZCgpIGNvbnN0OwpAQCAtNjcsNyArNjYsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgaW5saW5lIFBhc3NPd25QdHI8UHVyZ2VhYmxlQnVmZmVyPiBQdXJnZWFibGVC
dWZmZXI6OmNyZWF0ZShjb25zdCBjaGFyKiwgc2l6ZV90KSB7IHJldHVybiBQYXNzT3duUHRyPFB1
cmdlYWJsZUJ1ZmZlcj4oKTsgfQogICAgIGlubGluZSBQdXJnZWFibGVCdWZmZXI6On5QdXJnZWFi
bGVCdWZmZXIoKSB7IH0KICAgICBpbmxpbmUgY29uc3QgY2hhciogUHVyZ2VhYmxlQnVmZmVyOjpk
YXRhKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIGlubGluZSB2b2lkIFB1cmdlYWJsZUJ1ZmZl
cjo6c2V0UHVyZ2VQcmlvcml0eShQdXJnZVByaW9yaXR5KSB7IH0KICAgICBpbmxpbmUgYm9vbCBQ
dXJnZWFibGVCdWZmZXI6Ondhc1B1cmdlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
aW5saW5lIGJvb2wgUHVyZ2VhYmxlQnVmZmVyOjptYWtlUHVyZ2VhYmxlKGJvb2wpIHsgcmV0dXJu
IGZhbHNlOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1B1cmdl
YWJsZUJ1ZmZlck1hYy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9QdXJnZWFibGVCdWZmZXJN
YWMuY3BwCmluZGV4IDU0ZGU0ZWRmM2ViMWVmYTdjZGZhNmJjZWM4YzAzMjBjZTg1YjhiNjEuLmZk
YmFjMWZlYzgyMzZhNTQ4ZWI3NGQ1ZDIzOTIwNGYxM2MyOTEwNmQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1B1cmdlYWJsZUJ1ZmZlck1hYy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcApAQCAtMzUsNyArMzUsOSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBjb25zdCBzaXplX3QgbWluUHVyZ2VhYmxlQnVmZmVy
U2l6ZSA9IDQwOTY7IC8vIG9uZSBwYWdlCisvLyBQdXJnZWFibGUgYnVmZmVycyBhcmUgYWxsb2Nh
dGVkIGluIG11bHRpcGxlcyBvZiB0aGUgcGFnZSBzaXplICg0S0IgaW4gY29tbW9uIENQVXMpIHNv
CisvLyBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGZvciB2ZXJ5IHNtYWxsIGJ1ZmZlcnMuIFNldCBv
dXIgbWluaW11bSBzaXplIHRvIDE2S0IuCitzdGF0aWMgY29uc3Qgc2l6ZV90IG1pblB1cmdlYWJs
ZUJ1ZmZlclNpemUgPSA0ICogNDA5NjsKIAogUHVyZ2VhYmxlQnVmZmVyOjpQdXJnZWFibGVCdWZm
ZXIoY2hhciogZGF0YSwgc2l6ZV90IHNpemUpCiAgICAgOiBtX2RhdGEoZGF0YSkKQEAgLTE0Mywx
NyArMTQ1LDYgQEAgYm9vbCBQdXJnZWFibGVCdWZmZXI6Ondhc1B1cmdlZCgpIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFB1cmdlYWJsZUJ1ZmZlcjo6c2V0UHVyZ2VQcmlvcml0
eShQdXJnZVByaW9yaXR5IHByaW9yaXR5KQotewotICAgIGlmIChwcmlvcml0eSA9PSBtX3B1cmdl
UHJpb3JpdHkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3B1cmdlUHJpb3JpdHkgPSBwcmlvcml0
eTsKLSAgICBpZiAobV9zdGF0ZSAhPSBWb2xhdGlsZSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1f
c3RhdGUgPSBOb25Wb2xhdGlsZTsKLSAgICBtYWtlUHVyZ2VhYmxlKHRydWUpOwotfQotICAgIAog
Y29uc3QgY2hhciogUHVyZ2VhYmxlQnVmZmVyOjpkYXRhKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
bV9zdGF0ZSA9PSBOb25Wb2xhdGlsZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72879</attachid>
            <date>2010-11-03 15:45:18 -0700</date>
            <delta_ts>2010-11-04 03:11:03 -0700</delta_ts>
            <desc>Patch.v5</desc>
            <filename>bug-48684-20101103154517.patch</filename>
            <type>text/plain</type>
            <size>14855</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWY0YjVlZTUxNzhhZTczODNjMzM2YmU4YzcwOGEyZDJlM2ZjMWVjNi4uMTAzNmQ5MDc4ZmVkMGE2
N2Y3NGFhODI5MWUyZWMxNzY1NDIzMDNmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0xMS0wMSAgUHJh
dGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2hvdWxkIG1ha2UgdXNlIG9mIHB1cmdlIHByaW9y
aXRpZXMgZm9yIGRpZmZlcmVudCByZXNvdXJjZSB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg2ODQKKworICAgICAgICBBc3NpZ24gcHVyZ2Ug
cHJpb3JpdGllcyB0byBDYWNoZWRSZXNvdXJjZSBvYmplY3RzLiBKYXZhU2NyaXB0IGFuZCBDU1Mg
c3R5bGVzaGVldHMgYXJlIG1vcmUKKyAgICAgICAgaW1wb3J0YW50IHRoYW4gaW1hZ2VzIHNvIGhp
bnQgdG8gdGhlIGtlcm5lbCB0byBwdXJnZSB0aGVtIGxhc3QuIFdlIGRvIHRoaXMgYnkgcmVwdXJw
b3NpbmcKKyAgICAgICAgdGhlIHByZXZpb3VzbHkgdW51c2VkIGZ1bmN0aW9uLCBQdXJnZWFibGVC
dWZmZXI6OnNldFB1cmdlUHJpb3JpdHkoKS4gSXQgbm93IGp1c3Qgc2V0cyB0aGUKKyAgICAgICAg
cHJpb3JpdHkgZmllbGQgYW5kIGRvZXMgbm90IGhhdmUgc2lkZS1lZmZlY3RzIGxpa2UgY2FsbGlu
ZyBtYWtlUHVyZ2VhYmxlKHRydWUpLgorCisgICAgICAgIEFsc28sIHJlbW92ZSB1bnVzdWVkIFB1
cmdlYWJsZUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IFZlY3RvcjxjaGFyPiYpIGZ1bmN0aW9uIGFuZCBt
b3ZlIHRoZQorICAgICAgICBwdXJnZWFibGUgbWVtb3J5IHNpemUgdGhyZXNob2xkIGZyb20gQ2Fj
aGVkUmVzb3VyY2UgdG8gUHVyZ2VhYmxlQnVmZmVyLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IFB1cmdlUHJpb3JpdHkuaCBoZWFkZXIgYW5k
IG1hcmsgaXQgYXMgcHJpdmF0ZQorICAgICAgICBoZWFkZXIuCisgICAgICAgICogbG9hZGVyL0Nh
Y2hlZENTU1N0eWxlU2hlZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hl
ZXQ6OnB1cmdlUHJpb3JpdHkpOgorICAgICAgICAqIGxvYWRlci9DYWNoZWRJbWFnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OnB1cmdlUHJpb3JpdHkpOgorICAgICAgICAqIGxv
YWRlci9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZTo6bWFrZVB1cmdlYWJsZSk6IFNldCB0aGUgcHVyZ2UgcHJpb3JpdHkgb24gdGhlIFB1cmdlYWJs
ZUJmZmVyLgorICAgICAgICBBbHNvLCBtb3ZlIHRoZSBjaGVjayBmb3IgcHVyZ2VhYmxlIHNpemUg
dGhyZXNob2xkIHRvIFB1cmdlYWJsZUJ1ZmZlci4KKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkUmVz
b3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpwdXJnZVByaW9yaXR5
KTogQWRkZWQuIE5ldyB2aXJ0dWFsIG1ldGhvZCB0aGF0IGxldHMgdGhlIGNsYXNzCisgICAgICAg
IHNwZWNpZnkgaXRzIHB1cmdlIHByaW9yaXR5LgorICAgICAgICAqIGxvYWRlci9DYWNoZWRTY3Jp
cHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6cHVyZ2VQcmlvcml0eSk6Cisg
ICAgICAgICogcGxhdGZvcm0vUHVyZ2VQcmlvcml0eS5oOiBBZGRlZC4gTW92ZSB0aGUgUHVyZ2VQ
cmlvcml0eSBlbnVtIGZyb20gUHVyZ2VhYmxlQnVmZmVyIGNsYXNzIHRvCisgICAgICAgIGl0cyBv
d24gaGVhZGVyIGZpbGUuCisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAqIHBsYXRmb3Jt
L1B1cmdlYWJsZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6UHVyZ2VhYmxlQnVmZmVyOjpz
ZXRQdXJnZVByaW9yaXR5KTogVXBkYXRlIHRoaXMgcHJldmlvdXNseSB1bnVzZWQgZnVuY3Rpb24g
dG8ganVzdAorICAgICAgICBzZXQgdGhlIHByaW9yaXR5IGFuZCBub3QgY2FsbCBtYWtlUHVyZ2Vh
YmxlKHRydWUpLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QdXJnZWFibGVCdWZmZXJNYWMuY3Bw
OiBVcGRhdGUgc2l6ZSB0aHJlc2hvbGQgdG8gMTZLQiB3aGljaCBpcyB3aGF0CisgICAgICAgIENh
Y2hlZFJlc291cmNlIHdhcyB1c2luZy4KKwogMjAxMC0xMC0yOCAgTWljaGFlbCBOb3JkbWFuICA8
bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBhcC4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmJjMmUzNjJlNDMxYWJkOTQ1
ZDc4NDFiMDEwZGRhYTVjMmIzNTI0YS4uYjY2MDA5NDNiNmY3ZGZjOTI2ZDlkM2Q3YjU0Y2QxOTI0
YjdhOWU3MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE1NDYsNiArMTU0Niw3IEBACiAJCTdBREU3MjI2MTBDQkJCOUIwMDZCM0IzQSAvKiBDb250ZXh0
TWVudVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QURFNzIyNTEwQ0JCQjlCMDA2QjNCM0EgLyogQ29udGV4dE1lbnVQcm92aWRlci5oICov
OyB9OwogCQk3QUZENEE4QjExMzFDMjc2MDAzNUI4ODMgLyogU2NyaXB0QnJlYWtwb2ludC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FGRDRBOEExMTMx
QzI3NjAwMzVCODgzIC8qIFNjcmlwdEJyZWFrcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QUZENEZGNDExMzI3N0I2MDAzNUI4ODMgLyog
U2NyaXB0RGVidWdMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0FGRDRGRjMxMTMyNzdCNjAwMzVCODgzIC8qIFNjcmlwdERlYnVnTGlzdGVu
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3
RTMzQ0QwMTEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3
IC8qIFB1cmdlUHJpb3JpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4MUE3MzI1RTEyMTAxODlCMDBGQzBEOUUgLyogSURCQ3Vyc29yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUE3MzI1RDEyMTAx
ODlCMDBGQzBEOUUgLyogSURCQ3Vyc29yLmggKi87IH07CiAJCTgxQTczMjYwMTIxMDE4QTQwMEZD
MEQ5RSAvKiBJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODFBNzMyNUYxMjEwMThBNDAwRkMwRDlFIC8qIElEQkN1cnNvci5jcHAgKi87
IH07CiAJCTgxQTczMjc4MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBNzMyNzcx
MjEwMTlFMTAwRkMwRDlFIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmggKi87IH07CkBAIC03Njg2
LDYgKzc2ODcsNyBAQAogCQk3QURFNzIyNTEwQ0JCQjlCMDA2QjNCM0EgLyogQ29udGV4dE1lbnVQ
cm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZXh0TWVudVBy
b3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBRkQ0QThBMTEzMUMyNzYw
MDM1Qjg4MyAvKiBTY3JpcHRCcmVha3BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcmlwdEJyZWFrcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0FGRDRGRjMxMTMyNzdCNjAwMzVCODgzIC8qIFNjcmlwdERlYnVnTGlzdGVuZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RGVidWdMaXN0ZW5lci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQ
cmlvcml0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXJnZVByaW9yaXR5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQTczMjVEMTIxMDE4OUIwMEZDMEQ5
RSAvKiBJREJDdXJzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCQ3Vy
c29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQTczMjVGMTIxMDE4QTQwMEZD
MEQ5RSAvKiBJREJDdXJzb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSURCQ3Vyc29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFBNzMyNzcx
MjEwMTlFMTAwRkMwRDlFIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbXBsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNzQxNyw2ICsxNzQxOSw3IEBACiAJCQkJQUJDMTI4NzYwQjMzQUE2
RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oICovLAogCQkJCUJDM0JFMTJBMEU5ODA5MkYw
MDgzNTU4OCAvKiBQb3B1cE1lbnVTdHlsZS5oICovLAogCQkJCUU0RDY4Nzc4MEVEN0FFNEYwMDZF
QTk3OCAvKiBQdXJnZWFibGVCdWZmZXIuaCAqLywKKwkJCQk3RTMzQ0QwMDEyN0YzNDBEMDBCRThG
MTcgLyogUHVyZ2VQcmlvcml0eS5oICovLAogCQkJCTFDNjNBMjQ2MEY3MTY0NjYwMEMwOUQ1QSAv
KiBSdW5Mb29wVGltZXIuaCAqLywKIAkJCQk1MTYyQzdGMjExRjc3RUZBMDA2MTJFRkUgLyogU2No
ZW1lUmVnaXN0cnkuY3BwICovLAogCQkJCTUxNjJDN0YzMTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hl
bWVSZWdpc3RyeS5oICovLApAQCAtMjA0OTksNiArMjA1MDIsNyBAQAogCQkJCTUxQTA1MjU2MTA1
ODg3NDAwMENDOUU5NSAvKiBQcm90ZWN0aW9uU3BhY2VIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUY4RTExQTEyNTY1OTI2MDAyMzBGRjcgLyogUHJveHlTZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUU0RDY4Nzc5MEVEN0FFNEYwMDZFQTk3OCAvKiBQdXJnZWFibGVCdWZmZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTdFMzNDRDAxMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NTBBMEJDQTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlm
aWVkTmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5NzIwRDAwQkYyMjAwNzFCNzgyIC8q
IFJhZGlhbEdyYWRpZW50QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQ0Mx
MjUxRjEyRDAwM0VGMjY5IC8qIFJhZGlvSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZENTU1N0eWxlU2hlZXQuaCBiL1dlYkNvcmUvbG9h
ZGVyL0NhY2hlZENTU1N0eWxlU2hlZXQuaAppbmRleCAwM2JkZTY5MTE3ZDYyNzU2MzgwODlmNWU3
NmQzMDg5MDZmYWM0NTMyLi5hYmNkYjg1NDI5NTY5NWJjNzcxMmZmZjExZWRkZTk4NDkxZTVjNjY4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIv
V2ViQ29yZS9sb2FkZXIvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCkBAIC01NSw2ICs1NSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAKICAgICBwcml2YXRlOgogICAgICAgICBib29sIGNhblVz
ZVNoZWV0KGJvb2wgZW5mb3JjZU1JTUVUeXBlLCBib29sKiBoYXNWYWxpZE1JTUVUeXBlKSBjb25z
dDsKKyAgICAgICAgdmlydHVhbCBQdXJnZVByaW9yaXR5IHB1cmdlUHJpb3JpdHkoKSBjb25zdCB7
IHJldHVybiBQdXJnZUxhc3Q7IH0KIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgUmVmUHRyPFRl
eHRSZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVy
L0NhY2hlZEltYWdlLmggYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRJbWFnZS5oCmluZGV4IDE1ZjQy
Mzg4NDcwMDI4NWI4NjJmY2RkYzI4OWM2ZDJkNzUzMWI2ZTguLmRhODc1NGFiYjA4MGIwYTk3OTc2
M2RiMDI3ODdmZmZmMjViNjFiZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZElt
YWdlLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkSW1hZ2UuaApAQCAtOTMsNiArOTMsNyBA
QCBwcml2YXRlOgogICAgIC8vIElmIG5vdCBudWxsLCBjaGFuZ2VSZWN0IGlzIHRoZSBjaGFuZ2Vk
IHBhcnQgb2YgdGhlIGltYWdlLgogICAgIHZvaWQgbm90aWZ5T2JzZXJ2ZXJzKGNvbnN0IEludFJl
Y3QqIGNoYW5nZVJlY3QgPSAwKTsKICAgICB2b2lkIGRlY29kZWREYXRhRGVsZXRpb25UaW1lckZp
cmVkKFRpbWVyPENhY2hlZEltYWdlPiopOworICAgIHZpcnR1YWwgUHVyZ2VQcmlvcml0eSBwdXJn
ZVByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gUHVyZ2VGaXJzdDsgfQogCiAgICAgUmVmUHRyPElt
YWdlPiBtX2ltYWdlOwogICAgIFRpbWVyPENhY2hlZEltYWdlPiBtX2RlY29kZWREYXRhRGVsZXRp
b25UaW1lcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291cmNlLmNwcCBi
L1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCBlNTE5YzI5ZjE4MWUyM2I1
YmU1MzE0NmI3NzczNDE2MjYzOTI2OTQwLi4wMDliNTBhMWI0YTg4MzQyM2IxOWFiMjI3YjkwYTMw
MzFmMDMzMjgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNvdXJjZS5jcHAK
KysrIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC01MTcsMTcgKzUxNywx
MyBAQCBib29sIENhY2hlZFJlc291cmNlOjptYWtlUHVyZ2VhYmxlKGJvb2wgcHVyZ2VhYmxlKQog
ICAgICAgICBpZiAoIW1fZGF0YS0+aGFzT25lUmVmKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIAotICAgICAgICAvLyBQdXJnZWFibGUgYnVmZmVycyBhcmUgYWxsb2NhdGVk
IGluIG11bHRpcGxlcyBvZiB0aGUgcGFnZSBzaXplICg0S0IgaW4gY29tbW9uIENQVXMpIHNvIGl0
IGRvZXMgbm90IG1ha2Ugc2Vuc2UgZm9yIHZlcnkgc21hbGwgYnVmZmVycy4KLSAgICAgICAgY29u
c3Qgc2l6ZV90IHB1cmdlYWJsZVRocmVzaG9sZCA9IDQgKiA0MDk2OwotICAgICAgICBpZiAobV9k
YXRhLT5zaXplKCkgPCBwdXJnZWFibGVUaHJlc2hvbGQpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIAogICAgICAgICBpZiAobV9kYXRhLT5oYXNQdXJnZWFibGVCdWZmZXIoKSkg
ewogICAgICAgICAgICAgbV9wdXJnZWFibGVEYXRhID0gbV9kYXRhLT5yZWxlYXNlUHVyZ2VhYmxl
QnVmZmVyKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX3B1cmdlYWJsZURhdGEg
PSBQdXJnZWFibGVCdWZmZXI6OmNyZWF0ZShtX2RhdGEtPmRhdGEoKSwgbV9kYXRhLT5zaXplKCkp
OwogICAgICAgICAgICAgaWYgKCFtX3B1cmdlYWJsZURhdGEpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgbV9wdXJnZWFibGVEYXRhLT5zZXRQdXJnZVByaW9yaXR5
KHB1cmdlUHJpb3JpdHkoKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIG1fcHVyZ2Vh
YmxlRGF0YS0+bWFrZVB1cmdlYWJsZSh0cnVlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVy
L0NhY2hlZFJlc291cmNlLmggYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNvdXJjZS5oCmluZGV4
IDA3OGRhNTc4OGE4MTRlZWE5Njg0YzczMTJhODg3ZTFlNTg5Y2JkMjQuLmY3NDdmYzRhZmNjODIy
ZjFiNTc0MmI5YjRjZDRkNzA5NDJmOTE5NjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0Nh
Y2hlZFJlc291cmNlLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuaApAQCAt
MjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkNhY2hlUG9saWN5LmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiUHVy
Z2VQcmlvcml0eS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlIDx3
dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNDIsOCAr
NDMsOCBAQCBjbGFzcyBDYWNoZWRSZXNvdXJjZUhhbmRsZUJhc2U7CiBjbGFzcyBDYWNoZWRSZXNv
dXJjZUxvYWRlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSW5zcGVjdG9yUmVzb3VyY2U7Ci1jbGFz
cyBSZXF1ZXN0OwogY2xhc3MgUHVyZ2VhYmxlQnVmZmVyOworY2xhc3MgUmVxdWVzdDsKIAogLy8g
QSByZXNvdXJjZSB0aGF0IGlzIGhlbGQgaW4gdGhlIGNhY2hlLiBDbGFzc2VzIHdobyB3YW50IHRv
IHVzZSB0aGlzIG9iamVjdCBzaG91bGQgZGVyaXZlCiAvLyBmcm9tIENhY2hlZFJlc291cmNlQ2xp
ZW50LCB0byBnZXQgdGhlIGZ1bmN0aW9uIGNhbGxzIGluIGNhc2UgdGhlIHJlcXVlc3RlZCBkYXRh
IGhhcyBhcnJpdmVkLgpAQCAtMjI5LDYgKzIzMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzd2l0
Y2hDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNlKCk7CiAgICAgdm9pZCBjbGVhclJlc291cmNl
VG9SZXZhbGlkYXRlKCk7CiAgICAgdm9pZCB1cGRhdGVSZXNwb25zZUFmdGVyUmV2YWxpZGF0aW9u
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHZhbGlkYXRpbmdSZXNwb25zZSk7CisgICAgdmlydHVh
bCBQdXJnZVByaW9yaXR5IHB1cmdlUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBQdXJnZURlZmF1
bHQ7IH0KIAogICAgIGRvdWJsZSBjdXJyZW50QWdlKCkgY29uc3Q7CiAgICAgZG91YmxlIGZyZXNo
bmVzc0xpZmV0aW1lKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRT
Y3JpcHQuaCBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFNjcmlwdC5oCmluZGV4IDFiYzRlOGNiMmNi
OTk0MmQ1ZTI1MGUwMzdlOTgwYzI0ZjljMGQ3YmIuLjczMTFmOWI0MTc5YzgxYTcwNDFjOTViZWIw
NzY1OWYwOGFiODFiMGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFNjcmlwdC5o
CisrKyBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFNjcmlwdC5oCkBAIC01NCw2ICs1NCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZGVjb2RlZERh
dGFEZWxldGlvblRpbWVyRmlyZWQoVGltZXI8Q2FjaGVkU2NyaXB0PiopOworICAgICAgICB2aXJ0
dWFsIFB1cmdlUHJpb3JpdHkgcHVyZ2VQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIFB1cmdlTGFz
dDsgfQogCiAgICAgICAgIFN0cmluZyBtX3NjcmlwdDsKICAgICAgICAgUmVmUHRyPFRleHRSZXNv
dXJjZURlY29kZXI+IG1fZGVjb2RlcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vUHVy
Z2VQcmlvcml0eS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZVByaW9yaXR5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmEyODk0ZWIzMTYzMDM5ZmQ1NzM3NjViNWYxNzg0NDI2NTY4OWIyMgotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VQcmlvcml0eS5oCkBAIC0wLDAgKzEsMzkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwor
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBQdXJnZVByaW9yaXR5X2gKKyNkZWZpbmUgUHVyZ2VQcmlv
cml0eV9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBQdXJnZVByaW9yaXR5IHsKKyAg
ICBQdXJnZUxhc3QsCisgICAgUHVyZ2VNaWRkbGUsCisgICAgUHVyZ2VGaXJzdCwKKyAgICBQdXJn
ZURlZmF1bHQgPSBQdXJnZU1pZGRsZQorfTsKKworfQorCisjZW5kaWYgLy8gUHVyZ2VQcmlvcml0
eV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlYWJsZUJ1ZmZlci5oIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaAppbmRleCAzMjM0MWMyYjBiNzYyYWUyYmJk
OThlOTcxYTY4NmRkMmFkMzdlOWFhLi45YmRhMmQ1ZDI5MGUyNDFiYWM2M2ZhNDgwYTM1ODEzNGRj
NmRlODY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlYWJsZUJ1ZmZlci5oCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpZm5kZWYgUHVyZ2VhYmxlQnVmZmVyX2gKICNkZWZpbmUgUHVyZ2VhYmxlQnVmZmVyX2gKIAor
I2luY2x1ZGUgIlB1cmdlUHJpb3JpdHkuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
ICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAg
LTM1LDcgKzM2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFB1cmdlYWJsZUJ1
ZmZlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMg
UGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+IGNyZWF0ZShjb25zdCBjaGFyKiBkYXRhLCBzaXpl
X3QpOwotICAgICAgICBzdGF0aWMgUGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+IGNyZWF0ZShj
b25zdCBWZWN0b3I8Y2hhcj4mIHZlY3RvcikgeyByZXR1cm4gY3JlYXRlKHZlY3Rvci5kYXRhKCks
IHZlY3Rvci5zaXplKCkpOyB9CiAgICAgICAgIAogICAgICAgICB+UHVyZ2VhYmxlQnVmZmVyKCk7
CiAKQEAgLTQzLDkgKzQzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBjb25zdCBj
aGFyKiBkYXRhKCkgY29uc3Q7CiAgICAgICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4g
bV9zaXplOyB9CiAgICAgICAgIAotICAgICAgICBlbnVtIFB1cmdlUHJpb3JpdHkgeyBQdXJnZUxh
c3QsIFB1cmdlTWlkZGxlLCBQdXJnZUZpcnN0LCBQdXJnZURlZmF1bHQgPSBQdXJnZU1pZGRsZSB9
OwogICAgICAgICBQdXJnZVByaW9yaXR5IHB1cmdlUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBt
X3B1cmdlUHJpb3JpdHk7IH0KLSAgICAgICAgdm9pZCBzZXRQdXJnZVByaW9yaXR5KFB1cmdlUHJp
b3JpdHkpOworICAgICAgICB2b2lkIHNldFB1cmdlUHJpb3JpdHkoUHVyZ2VQcmlvcml0eSBwcmlv
cml0eSkgeyBtX3B1cmdlUHJpb3JpdHkgPSBwcmlvcml0eTsgfQogICAgICAgICAKICAgICAgICAg
Ym9vbCBpc1B1cmdlYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgIT0gTm9uVm9sYXRpbGU7
IH0KICAgICAgICAgYm9vbCB3YXNQdXJnZWQoKSBjb25zdDsKQEAgLTY3LDcgKzY2LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGlubGluZSBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4g
UHVyZ2VhYmxlQnVmZmVyOjpjcmVhdGUoY29uc3QgY2hhciosIHNpemVfdCkgeyByZXR1cm4gUGFz
c093blB0cjxQdXJnZWFibGVCdWZmZXI+KCk7IH0KICAgICBpbmxpbmUgUHVyZ2VhYmxlQnVmZmVy
Ojp+UHVyZ2VhYmxlQnVmZmVyKCkgeyB9CiAgICAgaW5saW5lIGNvbnN0IGNoYXIqIFB1cmdlYWJs
ZUJ1ZmZlcjo6ZGF0YSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICBpbmxpbmUgdm9pZCBQdXJn
ZWFibGVCdWZmZXI6OnNldFB1cmdlUHJpb3JpdHkoUHVyZ2VQcmlvcml0eSkgeyB9CiAgICAgaW5s
aW5lIGJvb2wgUHVyZ2VhYmxlQnVmZmVyOjp3YXNQdXJnZWQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIGlubGluZSBib29sIFB1cmdlYWJsZUJ1ZmZlcjo6bWFrZVB1cmdlYWJsZShib29s
KSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QdXJnZWFibGVCdWZmZXJNYWMuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUHVyZ2Vh
YmxlQnVmZmVyTWFjLmNwcAppbmRleCA1NGRlNGVkZjNlYjFlZmE3Y2RmYTZiY2VjOGMwMzIwY2U4
NWI4YjYxLi5mZGJhYzFmZWM4MjM2YTU0OGViNzRkNWQyMzkyMDRmMTNjMjkxMDZkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QdXJnZWFibGVCdWZmZXJNYWMuY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1B1cmdlYWJsZUJ1ZmZlck1hYy5jcHAKQEAgLTM1LDcgKzM1LDkg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3Qgc2l6ZV90IG1pblB1cmdl
YWJsZUJ1ZmZlclNpemUgPSA0MDk2OyAvLyBvbmUgcGFnZQorLy8gUHVyZ2VhYmxlIGJ1ZmZlcnMg
YXJlIGFsbG9jYXRlZCBpbiBtdWx0aXBsZXMgb2YgdGhlIHBhZ2Ugc2l6ZSAoNEtCIGluIGNvbW1v
biBDUFVzKSBzbworLy8gaXQgZG9lcyBub3QgbWFrZSBzZW5zZSBmb3IgdmVyeSBzbWFsbCBidWZm
ZXJzLiBTZXQgb3VyIG1pbmltdW0gc2l6ZSB0byAxNktCLgorc3RhdGljIGNvbnN0IHNpemVfdCBt
aW5QdXJnZWFibGVCdWZmZXJTaXplID0gNCAqIDQwOTY7CiAKIFB1cmdlYWJsZUJ1ZmZlcjo6UHVy
Z2VhYmxlQnVmZmVyKGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQogICAgIDogbV9kYXRhKGRhdGEp
CkBAIC0xNDMsMTcgKzE0NSw2IEBAIGJvb2wgUHVyZ2VhYmxlQnVmZmVyOjp3YXNQdXJnZWQoKSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBQdXJnZWFibGVCdWZmZXI6OnNldFB1
cmdlUHJpb3JpdHkoUHVyZ2VQcmlvcml0eSBwcmlvcml0eSkKLXsKLSAgICBpZiAocHJpb3JpdHkg
PT0gbV9wdXJnZVByaW9yaXR5KQotICAgICAgICByZXR1cm47Ci0gICAgbV9wdXJnZVByaW9yaXR5
ID0gcHJpb3JpdHk7Ci0gICAgaWYgKG1fc3RhdGUgIT0gVm9sYXRpbGUpCi0gICAgICAgIHJldHVy
bjsKLSAgICBtX3N0YXRlID0gTm9uVm9sYXRpbGU7Ci0gICAgbWFrZVB1cmdlYWJsZSh0cnVlKTsK
LX0KLSAgICAKIGNvbnN0IGNoYXIqIFB1cmdlYWJsZUJ1ZmZlcjo6ZGF0YSgpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKG1fc3RhdGUgPT0gTm9uVm9sYXRpbGUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>