<?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>99174</bug_id>
          
          <creation_ts>2012-10-12 06:57:10 -0700</creation_ts>
          <short_desc>[EFL][WK2] Encapsulate ref counting for Ewk objects in a parent class</short_desc>
          <delta_ts>2012-10-16 22:34:25 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>99321</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>740893</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-12 06:57:10 -0700</bug_when>
    <thetext>Have a proposal to encapsulate ref counting for Ewk objects in a parent class, this also would allow us to use smart pointers internally
instead of manual refing and derefing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740896</commentid>
    <comment_count>1</comment_count>
      <attachid>168416</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-12 07:09:47 -0700</bug_when>
    <thetext>Created attachment 168416
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741464</commentid>
    <comment_count>2</comment_count>
      <attachid>168416</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-13 04:42:58 -0700</bug_when>
    <thetext>Comment on attachment 168416
patch

Looks great. BTW, is &quot;Source/WebKit2/UIProcess/API/efl&quot; place best place for this util class ? As you know, similar util classes are placed to Source/WTF/wtf. Can&apos;t we move this to Source/WTF/wtf/efl ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741848</commentid>
    <comment_count>3</comment_count>
      <attachid>168416</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-15 01:42:51 -0700</bug_when>
    <thetext>Comment on attachment 168416
patch

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

&gt; Source/WebKit2/ChangeLog:10
&gt; +        Added EwkRefCounted which is encapsulating ref counting for Ewk objects (supposed to be 
&gt; +        parent class for them). Also added typedefs for EwkRefCounted-based smart pointer types.
&gt; +        Applied the new approach for Ewk_Navigation_Data and Ewk_Url_Request objects as an example.

:-) finally

&gt; Source/WebKit2/UIProcess/API/efl/EwkRefCounted.h:36
&gt; +    EwkRefCounted() { relaxAdoptionRequirement(); } // Do not require adoption as both plain and smart pointers may co-exist.

Is that smart? and without this we could just use RefCounted directly

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context_history_client.cpp:58
&gt; +    EwkRefPtr navigationDataEwk = ewk_navigation_data_new(navigationData);

Isn&apos;t it a problem now that you could do RefPtr here? as it inherits from RefCounted? Sounds like something we want to avoid working? or we want to stick to actually using RefPtr instead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741855</commentid>
    <comment_count>4</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-15 01:53:19 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 168416 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168416&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:10
&gt; &gt; +        Added EwkRefCounted which is encapsulating ref counting for Ewk objects (supposed to be 
&gt; &gt; +        parent class for them). Also added typedefs for EwkRefCounted-based smart pointer types.
&gt; &gt; +        Applied the new approach for Ewk_Navigation_Data and Ewk_Url_Request objects as an example.
&gt; 
&gt; :-) finally
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkRefCounted.h:36
&gt; &gt; +    EwkRefCounted() { relaxAdoptionRequirement(); } // Do not require adoption as both plain and smart pointers may co-exist.
&gt; 
&gt; Is that smart? and without this we could just use RefCounted directly
My idea was that we use RefPtr internally and keep manual ref counting for external usage, so we have to relax adoption requirement here.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_context_history_client.cpp:58
&gt; &gt; +    EwkRefPtr navigationDataEwk = ewk_navigation_data_new(navigationData);
&gt; 
&gt; Isn&apos;t it a problem now that you could do RefPtr here? as it inherits from RefCounted? Sounds like something we want to avoid working? or we want to stick to actually using RefPtr instead
Why do you think it&apos;s a problem (did not get your point :( )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741869</commentid>
    <comment_count>5</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-15 02:12:27 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 168416 [details])
Can&apos;t we move this to Source/WTF/wtf/efl ?

Would not do it, as area of this class usage is quite narrow: EFL WK2 API objects, so would leave it in WebKit2/UIProcess/API/efl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741880</commentid>
    <comment_count>6</comment_count>
      <attachid>168416</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-15 02:39:37 -0700</bug_when>
    <thetext>Comment on attachment 168416
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/EwkRefCounted.h:44
&gt; +EwkAPIType* toEwkAPI(EwkRefCounted* refCounted)

If we used things like RefPtr&lt;Ewk_Navigation_Data&gt; instead of EwkRefPtr, we could use RefPtr::get() instead of toEwkAPI(). It would be more consistent with the rest of WebKit too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741882</commentid>
    <comment_count>7</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-15 02:44:12 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 168416 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168416&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkRefCounted.h:44
&gt; &gt; +EwkAPIType* toEwkAPI(EwkRefCounted* refCounted)
&gt; 
&gt; If we used things like RefPtr&lt;Ewk_Navigation_Data&gt; instead of EwkRefPtr, we could use RefPtr::get() instead of toEwkAPI(). It would be more consistent with the rest of WebKit too.

Absolutely, the reason why it&apos;s not done like that from the beginning is that structures used to be defined in .ccp files so it was impossible, but since I&apos;ve moved declaration to private header we off course should follow standard way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741886</commentid>
    <comment_count>8</comment_count>
      <attachid>168659</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-15 02:50:38 -0700</bug_when>
    <thetext>Created attachment 168659
patch v2

Took comments from Kenneth and Chris into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741888</commentid>
    <comment_count>9</comment_count>
      <attachid>168659</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-15 02:55:10 -0700</bug_when>
    <thetext>Comment on attachment 168659
patch v2

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

I love this change, great idea.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context_history_client.cpp:58
&gt; +    RefPtr&lt;Ewk_Navigation_Data&gt; navigationDataEwk = ewk_navigation_data_new(navigationData);

Shouldn&apos;t it be navigationDataEwk = adoptRef(ewk_navigation_data_new(navigationData))?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_navigation_data_private.h:51
&gt; +        request = ewk_url_request_new(requestWK.get());

shouldn&apos;t it be adoptRef(ewk_url_request_new(requestWK.get()) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741891</commentid>
    <comment_count>10</comment_count>
      <attachid>168659</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-15 03:00:02 -0700</bug_when>
    <thetext>Comment on attachment 168659
patch v2

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

&gt; Source/WebKit2/UIProcess/API/efl/EWKRefCounted.h:35
&gt; +    // Idea is to use RefPtr internally and keep manual ref counting for external usage, so we relax adoption requirement here.

The idea*

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_navigation_data_private.h:51
&gt;&gt; +        request = ewk_url_request_new(requestWK.get());
&gt; 
&gt; shouldn&apos;t it be adoptRef(ewk_url_request_new(requestWK.get()) ?

That is what you get from relaxing the requirements. In what case don&apos;t we have to adopt it first?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741902</commentid>
    <comment_count>11</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-15 03:15:40 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 168659 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168659&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EWKRefCounted.h:35
&gt; &gt; +    // Idea is to use RefPtr internally and keep manual ref counting for external usage, so we relax adoption requirement here.
&gt; 
&gt; The idea*
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_navigation_data_private.h:51
&gt; &gt;&gt; +        request = ewk_url_request_new(requestWK.get());
&gt; &gt; 
&gt; &gt; shouldn&apos;t it be adoptRef(ewk_url_request_new(requestWK.get()) ?
&gt; 
&gt; That is what you get from relaxing the requirements. In what case don&apos;t we have to adopt it first?

If the client has created an instance(might have reffed it several times) and then gave it to us we should not adopt it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741905</commentid>
    <comment_count>12</comment_count>
      <attachid>168666</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-15 03:20:19 -0700</bug_when>
    <thetext>Created attachment 168666
patch v3

Added adoption (hate myself for being absentminded :( ).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741906</commentid>
    <comment_count>13</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-15 03:21:05 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 168659 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168659&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/EWKRefCounted.h:35
&gt; &gt; &gt; +    // Idea is to use RefPtr internally and keep manual ref counting for external usage, so we relax adoption requirement here.
&gt; &gt; 
&gt; &gt; The idea*
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_navigation_data_private.h:51
&gt; &gt; &gt;&gt; +        request = ewk_url_request_new(requestWK.get());
&gt; &gt; &gt; 
&gt; &gt; &gt; shouldn&apos;t it be adoptRef(ewk_url_request_new(requestWK.get()) ?
&gt; &gt; 
&gt; &gt; That is what you get from relaxing the requirements. In what case don&apos;t we have to adopt it first?
&gt; 
&gt; If the client has created an instance(might have reffed it several times) and then gave it to us we should not adopt it.

But then the adopt case wouldnt be checked anyway right? And when does that actually happen? coduln&apos;t we have a relaxAdoptionRule() for that specific case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741907</commentid>
    <comment_count>14</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-15 03:21:53 -0700</bug_when>
    <thetext>
&gt; But then the adopt case wouldnt be checked anyway right? And when does that actually happen? coduln&apos;t we have a relaxAdoptionRule() for that specific case?

Which we already have relaxAdoptationRequirement()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741945</commentid>
    <comment_count>15</comment_count>
      <attachid>168677</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-15 04:39:34 -0700</bug_when>
    <thetext>Created attachment 168677
patch v4

Actually we do not even need some extra class, RefCounted is sufficient. The requirement of adoption can be satisfied as long as we keep dealing with smart pointers only, in case external client provides us an object having already refs as a row pointer relaxAdoptionRequirement() can be set explicitly in the specific place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741948</commentid>
    <comment_count>16</comment_count>
      <attachid>168677</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-15 04:41:10 -0700</bug_when>
    <thetext>Comment on attachment 168677
patch v4

some garbage left..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741949</commentid>
    <comment_count>17</comment_count>
      <attachid>168679</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-15 04:43:30 -0700</bug_when>
    <thetext>Created attachment 168679
patch

Removed some garbage (unneeded commented #include)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741972</commentid>
    <comment_count>18</comment_count>
      <attachid>168679</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-15 05:40:34 -0700</bug_when>
    <thetext>Comment on attachment 168679
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_url_request_private.h:40
&gt; +    WKEinaSharedString first_party;

why not firstParty?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741973</commentid>
    <comment_count>19</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-15 05:51:24 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 168679 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168679&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_url_request_private.h:40
&gt; &gt; +    WKEinaSharedString first_party;
&gt; 
&gt; why not firstParty?

Well, just moved the existing code from .cpp file.. Anyway, not a big deal to correct</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741981</commentid>
    <comment_count>20</comment_count>
      <attachid>168693</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-15 05:58:57 -0700</bug_when>
    <thetext>Created attachment 168693
to be landed

corrected also ewk_url_request data members names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741998</commentid>
    <comment_count>21</comment_count>
      <attachid>168693</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-10-15 06:19:31 -0700</bug_when>
    <thetext>Comment on attachment 168693
to be landed

Clearing flags on attachment: 168693

Committed r131298: &lt;http://trac.webkit.org/changeset/131298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741999</commentid>
    <comment_count>22</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-10-15 06:19:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168416</attachid>
            <date>2012-10-12 07:09:47 -0700</date>
            <delta_ts>2012-10-15 02:50:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug99174</filename>
            <type>text/plain</type>
            <size>11965</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDhjNmI0MmUxZWFiNTExYjQzMmZkMDNjYTc4ZDNkYTdiMGUxMGZmMDYKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
RnJpIE9jdCAxMiAxNzowNDowMiAyMDEyICswMzAwCgogICAgYnVnOTkxNzQKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggMzMwMjQ0Yy4uM2Q0YTUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTEw
LTEyICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gRW5jYXBzdWxhdGUgcmVmIGNvdW50aW5nIGZvciBFd2sgb2Jq
ZWN0cyBpbiBhIHBhcmVudCBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTkxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBFd2tSZWZDb3VudGVkIHdoaWNoIGlzIGVuY2Fwc3VsYXRpbmcg
cmVmIGNvdW50aW5nIGZvciBFd2sgb2JqZWN0cyAoc3VwcG9zZWQgdG8gYmUgCisgICAgICAgIHBh
cmVudCBjbGFzcyBmb3IgdGhlbSkuIEFsc28gYWRkZWQgdHlwZWRlZnMgZm9yIEV3a1JlZkNvdW50
ZWQtYmFzZWQgc21hcnQgcG9pbnRlciB0eXBlcy4KKyAgICAgICAgQXBwbGllZCB0aGUgbmV3IGFw
cHJvYWNoIGZvciBFd2tfTmF2aWdhdGlvbl9EYXRhIGFuZCBFd2tfVXJsX1JlcXVlc3Qgb2JqZWN0
cyBhcyBhbiBleGFtcGxlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrUmVmQ291
bnRlZC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChFd2tSZWZDb3VudGVk
KToKKyAgICAgICAgKFdlYktpdDo6RXdrUmVmQ291bnRlZDo6RXdrUmVmQ291bnRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkV3a1JlZkNvdW50ZWQ6On5Fd2tSZWZDb3VudGVkKToKKyAgICAgICAgKFdl
YktpdDo6dG9Fd2tBUEkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0
X2hpc3RvcnlfY2xpZW50LmNwcDoKKyAgICAgICAgKGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25E
YXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhLmNw
cDoKKyAgICAgICAgKGV3a19uYXZpZ2F0aW9uX2RhdGFfcmVmKToKKyAgICAgICAgKGV3a19uYXZp
Z2F0aW9uX2RhdGFfdW5yZWYpOgorICAgICAgICAoZXdrX25hdmlnYXRpb25fZGF0YV9vcmlnaW5h
bF9yZXF1ZXN0X2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRp
b25fZGF0YV9wcml2YXRlLmg6CisgICAgICAgIChfRXdrX05hdmlnYXRpb25fRGF0YSk6CisgICAg
ICAgIChfRXdrX05hdmlnYXRpb25fRGF0YTo6X0V3a19OYXZpZ2F0aW9uX0RhdGEpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHA6CisgICAgICAgIChld2tf
dXJsX3JlcXVlc3RfcmVmKToKKyAgICAgICAgKGV3a191cmxfcmVxdWVzdF91bnJlZik6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaDoKKyAgICAg
ICAgKF9Fd2tfVXJsX1JlcXVlc3QpOgorICAgICAgICAoX0V3a19VcmxfUmVxdWVzdDo6X0V3a19V
cmxfUmVxdWVzdCk6CisKIDIwMTItMTAtMTEgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBzb21lIGJhc2ljIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgdG8gdGhl
IGluamVjdGVkIGJ1bmRsZSBPYmplY3RpdmUtQyBET00gQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tSZWZDb3VudGVkLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tSZWZDb3VudGVkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMzI1NGJkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1JlZkNvdW50ZWQuaApAQCAtMCwwICsxLDY3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIEV3a1JlZkNvdW50ZWRfaAorI2RlZmluZSBFd2tSZWZD
b3VudGVkX2gKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgRXdrUmVmQ291bnRlZCA6IHB1
YmxpYyBSZWZDb3VudGVkPEV3a1JlZkNvdW50ZWQ+IHsKK3B1YmxpYzoKKyAgICBFd2tSZWZDb3Vu
dGVkKCkgeyByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsgfSAvLyBEbyBub3QgcmVxdWlyZSBh
ZG9wdGlvbiBhcyBib3RoIHBsYWluIGFuZCBzbWFydCBwb2ludGVycyBtYXkgY28tZXhpc3QuCisg
ICAgdmlydHVhbCB+RXdrUmVmQ291bnRlZCgpIHsgfQorfTsKKwordHlwZWRlZiBSZWZQdHI8RXdr
UmVmQ291bnRlZD4gRXdrUmVmUHRyOwordHlwZWRlZiBQYXNzUmVmUHRyPEV3a1JlZkNvdW50ZWQ+
IEV3a1Bhc3NSZWZQdHI7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBFd2tBUElUeXBlPgorRXdrQVBJ
VHlwZSogdG9Fd2tBUEkoRXdrUmVmQ291bnRlZCogcmVmQ291bnRlZCkKK3sKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8RXdrQVBJVHlwZSo+KHJlZkNvdW50ZWQpOworfQorCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgRXdrQVBJVHlwZT4KK0V3a0FQSVR5cGUqIHRvRXdrQVBJKGNvbnN0IEV3a1JlZlB0ciYg
cmVmUHRyKQoreworICAgIHJldHVybiB0b0V3a0FQSTxFd2tBUElUeXBlPihyZWZQdHIuZ2V0KCkp
OworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRXdrQVBJVHlwZT4KK0V3a0FQSVR5cGUqIHRvRXdr
QVBJKGNvbnN0IEV3a1Bhc3NSZWZQdHImIHJlZlB0cikKK3sKKyAgICByZXR1cm4gdG9Fd2tBUEk8
RXdrQVBJVHlwZT4ocmVmUHRyLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
K3VzaW5nIFdlYktpdDo6RXdrUmVmQ291bnRlZDsKK3VzaW5nIFdlYktpdDo6RXdrUmVmUHRyOwor
dXNpbmcgV2ViS2l0OjpFd2tQYXNzUmVmUHRyOworCisjZW5kaWYgLy8gRXdrUmVmQ291bnRlZF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dF9oaXN0b3J5X2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfY29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHAKaW5kZXggMWFiOTVlNC4uNzk1Y2YyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfaGlz
dG9yeV9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19jb250ZXh0X2hpc3RvcnlfY2xpZW50LmNwcApAQCAtNTUsOSArNTUsOCBAQCBzdGF0aWMgdm9p
ZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShXS0NvbnRleHRSZWYsIFdLUGFnZVJlZiBw
YWdlLCBXS05hdmlnYQogICAgIGlmICghaGlzdG9yeURlbGVnYXRlLT5uYXZpZ2F0ZV9mdW5jKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBFd2tfTmF2aWdhdGlvbl9EYXRhKiBuYXZpZ2F0aW9uRGF0
YUV3ayA9IGV3a19uYXZpZ2F0aW9uX2RhdGFfbmV3KG5hdmlnYXRpb25EYXRhKTsKLSAgICBoaXN0
b3J5RGVsZWdhdGUtPm5hdmlnYXRlX2Z1bmMoZXdrX3ZpZXdfZnJvbV9wYWdlX2dldCh0b0ltcGwo
cGFnZSkpLCBuYXZpZ2F0aW9uRGF0YUV3aywgaGlzdG9yeURlbGVnYXRlLT51c2VyX2RhdGEpOwot
ICAgIGV3a19uYXZpZ2F0aW9uX2RhdGFfdW5yZWYobmF2aWdhdGlvbkRhdGFFd2spOworICAgIEV3
a1JlZlB0ciBuYXZpZ2F0aW9uRGF0YUV3ayA9IGV3a19uYXZpZ2F0aW9uX2RhdGFfbmV3KG5hdmln
YXRpb25EYXRhKTsKKyAgICBoaXN0b3J5RGVsZWdhdGUtPm5hdmlnYXRlX2Z1bmMoZXdrX3ZpZXdf
ZnJvbV9wYWdlX2dldCh0b0ltcGwocGFnZSkpLCB0b0V3a0FQSTxFd2tfTmF2aWdhdGlvbl9EYXRh
PihuYXZpZ2F0aW9uRGF0YUV3ayksIGhpc3RvcnlEZWxlZ2F0ZS0+dXNlcl9kYXRhKTsKIH0KIAog
c3RhdGljIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFdLQ29udGV4dFJlZiwgV0tQYWdl
UmVmIHBhZ2UsIFdLVVJMUmVmIHNvdXJjZVVSTCwgV0tVUkxSZWYgZGVzdGluYXRpb25VUkwsIFdL
RnJhbWVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEuY3BwCmluZGV4IDUz
NjdmZWYuLjkyMDU5ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEuY3BwCkBAIC0yNiw0NyArMjYsMTUgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9kYXRhLmgiCiAKLSNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKLSNp
bmNsdWRlICJXS1JldGFpblB0ci5oIgogI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX2RhdGFfcHJp
dmF0ZS5oIgotI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3VybF9yZXF1
ZXN0X3ByaXZhdGUuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotLyoqCi0gKiBcc3Ry
dWN0ICBfRXdrX05hdmlnYXRpb25fRGF0YQotICogQGJyaWVmICAgQ29udGFpbnMgdGhlIG5hdmln
YXRpb24gZGF0YSBkZXRhaWxzLgotICovCi1zdHJ1Y3QgX0V3a19OYXZpZ2F0aW9uX0RhdGEgewot
ICAgIHVuc2lnbmVkIF9fcmVmOyAvKio8IHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIG9iamVj
dCAqLwotICAgIFdLRWluYVNoYXJlZFN0cmluZyB0aXRsZTsKLSAgICBXS0VpbmFTaGFyZWRTdHJp
bmcgdXJsOwotICAgIEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdDsKLQotICAgIF9Fd2tfTmF2aWdh
dGlvbl9EYXRhKFdLTmF2aWdhdGlvbkRhdGFSZWYgZGF0YVJlZikKLSAgICAgICAgOiBfX3JlZigx
KQotICAgICAgICAsIHRpdGxlKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFDb3B5VGl0bGUoZGF0
YVJlZikpCi0gICAgICAgICwgdXJsKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFDb3B5VVJMKGRh
dGFSZWYpKQotICAgICAgICAsIHJlcXVlc3QoMCkKLSAgICB7Ci0gICAgICAgIFdLUmV0YWluUHRy
PFdLVVJMUmVxdWVzdFJlZj4gcmVxdWVzdFdLKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFDb3B5
T3JpZ2luYWxSZXF1ZXN0KGRhdGFSZWYpKTsKLSAgICAgICAgcmVxdWVzdCA9IGV3a191cmxfcmVx
dWVzdF9uZXcocmVxdWVzdFdLLmdldCgpKTsKLSAgICB9Ci0KLSAgICB+X0V3a19OYXZpZ2F0aW9u
X0RhdGEoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFfX3JlZik7Ci0gICAgICAgIGV3a191cmxf
cmVxdWVzdF91bnJlZihyZXF1ZXN0KTsKLSAgICB9Ci19OwotCiBFd2tfTmF2aWdhdGlvbl9EYXRh
KiBld2tfbmF2aWdhdGlvbl9kYXRhX3JlZihFd2tfTmF2aWdhdGlvbl9EYXRhKiBkYXRhKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChkYXRhLCAwKTsKIAotICAgICsrZGF0
YS0+X19yZWY7CisgICAgZGF0YS0+cmVmKCk7CiAKICAgICByZXR1cm4gZGF0YTsKIH0KQEAgLTc1
LDEwICs0Myw3IEBAIHZvaWQgZXdrX25hdmlnYXRpb25fZGF0YV91bnJlZihFd2tfTmF2aWdhdGlv
bl9EYXRhKiBkYXRhKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGRhdGEpOwog
Ci0gICAgaWYgKC0tZGF0YS0+X19yZWYpCi0gICAgICAgIHJldHVybjsKLQotICAgIGRlbGV0ZSBk
YXRhOworICAgIGRhdGEtPmRlcmVmKCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19uYXZpZ2F0aW9u
X2RhdGFfdGl0bGVfZ2V0KGNvbnN0IEV3a19OYXZpZ2F0aW9uX0RhdGEqIGRhdGEpCkBAIC05Miw3
ICs1Nyw3IEBAIEV3a19VcmxfUmVxdWVzdCogZXdrX25hdmlnYXRpb25fZGF0YV9vcmlnaW5hbF9y
ZXF1ZXN0X2dldChjb25zdCBFd2tfTmF2aWdhdGlvbl9ECiB7CiAgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKGRhdGEsIDApOwogCi0gICAgcmV0dXJuIGRhdGEtPnJlcXVlc3Q7Cisg
ICAgcmV0dXJuIHRvRXdrQVBJPEV3a19VcmxfUmVxdWVzdD4oZGF0YS0+cmVxdWVzdCk7CiB9CiAK
IGNvbnN0IGNoYXIqIGV3a19uYXZpZ2F0aW9uX2RhdGFfdXJsX2dldChjb25zdCBFd2tfTmF2aWdh
dGlvbl9EYXRhKiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YV9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaAppbmRleCA0MzBjNjE1
Li43MGFiODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaApAQCAtMjYsNyArMjYsMzEg
QEAKICNpZm5kZWYgZXdrX25hdmlnYXRpb25fZGF0YV9wcml2YXRlX2gKICNkZWZpbmUgZXdrX25h
dmlnYXRpb25fZGF0YV9wcml2YXRlX2gKIAorI2luY2x1ZGUgIkV3a1JlZkNvdW50ZWQuaCIKKyNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNp
bmNsdWRlICJXS05hdmlnYXRpb25EYXRhLmgiCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNp
bmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdF9wcml2YXRl
LmgiCisKKy8qKgorICogXHN0cnVjdCAgX0V3a19OYXZpZ2F0aW9uX0RhdGEKKyAqIEBicmllZiAg
IENvbnRhaW5zIHRoZSBuYXZpZ2F0aW9uIGRhdGEgZGV0YWlscy4KKyAqLworc3RydWN0IF9Fd2tf
TmF2aWdhdGlvbl9EYXRhIDogcHVibGljIEV3a1JlZkNvdW50ZWQgeworICAgIFdLRWluYVNoYXJl
ZFN0cmluZyB0aXRsZTsKKyAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsOworICAgIEV3a1JlZlB0
ciByZXF1ZXN0OworCisgICAgX0V3a19OYXZpZ2F0aW9uX0RhdGEoV0tOYXZpZ2F0aW9uRGF0YVJl
ZiBkYXRhUmVmKQorICAgICAgICA6IHRpdGxlKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFDb3B5
VGl0bGUoZGF0YVJlZikpCisgICAgICAgICwgdXJsKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFD
b3B5VVJMKGRhdGFSZWYpKQorICAgIHsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZXF1ZXN0
UmVmPiByZXF1ZXN0V0soQWRvcHRXSywgV0tOYXZpZ2F0aW9uRGF0YUNvcHlPcmlnaW5hbFJlcXVl
c3QoZGF0YVJlZikpOworICAgICAgICByZXF1ZXN0ID0gZXdrX3VybF9yZXF1ZXN0X25ldyhyZXF1
ZXN0V0suZ2V0KCkpOworICAgIH0KK307CiAKIHR5cGVkZWYgc3RydWN0IF9Fd2tfTmF2aWdhdGlv
bl9EYXRhIEV3a19OYXZpZ2F0aW9uX0RhdGE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCmluZGV4IDllN2M4MGMuLjUxMTlm
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxf
cmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Vy
bF9yZXF1ZXN0LmNwcApAQCAtMjYsNDQgKzI2LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0LmgiCiAKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNp
bmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJXS1VSTC5oIgotI2luY2x1
ZGUgIldLVVJMUmVxdWVzdC5oIgotI2luY2x1ZGUgIldlYlVSTFJlcXVlc3QuaCIKICNpbmNsdWRl
ICJld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotLyoqCi0gKiBcc3RydWN0ICBfRXdrX1Vy
bF9SZXF1ZXN0Ci0gKiBAYnJpZWYgICBDb250YWlucyB0aGUgVVJMIHJlcXVlc3QgZGF0YS4KLSAq
Lwotc3RydWN0IF9Fd2tfVXJsX1JlcXVlc3QgewotICAgIHVuc2lnbmVkIGludCBfX3JlZjsgLyoq
PCB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBvYmplY3QgKi8KLQotICAgIFdLRWluYVNoYXJl
ZFN0cmluZyB1cmw7Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIGZpcnN0X3BhcnR5OwotICAgIFdL
RWluYVNoYXJlZFN0cmluZyBodHRwX21ldGhvZDsKLQotICAgIF9Fd2tfVXJsX1JlcXVlc3QoV0tV
UkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCi0gICAgICAgIDogX19yZWYoMSkKLSAgICAgICAgLCB1
cmwoQWRvcHRXSywgV0tVUkxSZXF1ZXN0Q29weVVSTChyZXF1ZXN0UmVmKSkKLSAgICAgICAgLCBm
aXJzdF9wYXJ0eShBZG9wdFdLLCBXS1VSTFJlcXVlc3RDb3B5Rmlyc3RQYXJ0eUZvckNvb2tpZXMo
cmVxdWVzdFJlZikpCi0gICAgICAgICwgaHR0cF9tZXRob2QoQWRvcHRXSywgV0tVUkxSZXF1ZXN0
Q29weUhUVFBNZXRob2QocmVxdWVzdFJlZikpCi0gICAgeyB9Ci0KLSAgICB+X0V3a19VcmxfUmVx
dWVzdCgpCi0gICAgewotICAgICAgICBBU1NFUlQoIV9fcmVmKTsKLSAgICB9Ci19OwotCiBFd2tf
VXJsX1JlcXVlc3QqIGV3a191cmxfcmVxdWVzdF9yZWYoRXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0
KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXF1ZXN0LCAwKTsKLSAg
ICArK3JlcXVlc3QtPl9fcmVmOworICAgIHJlcXVlc3QtPnJlZigpOwogCiAgICAgcmV0dXJuIHJl
cXVlc3Q7CiB9CkBAIC03MiwxMCArNDIsNyBAQCB2b2lkIGV3a191cmxfcmVxdWVzdF91bnJlZihF
d2tfVXJsX1JlcXVlc3QqIHJlcXVlc3QpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk4ocmVxdWVzdCk7CiAKLSAgICBpZiAoLS1yZXF1ZXN0LT5fX3JlZikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgZGVsZXRlIHJlcXVlc3Q7CisgICAgcmVxdWVzdC0+ZGVyZWYoKTsKIH0KIAogY29u
c3QgY2hhciogZXdrX3VybF9yZXF1ZXN0X3VybF9nZXQoY29uc3QgRXdrX1VybF9SZXF1ZXN0KiBy
ZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3VybF9yZXF1ZXN0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmgKaW5kZXggNTQ4YjZlOS4uNDRkYTc4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jl
cXVlc3RfcHJpdmF0ZS5oCkBAIC0yNiw2ICsyNiwzMCBAQAogI2lmbmRlZiBld2tfdXJsX3JlcXVl
c3RfcHJpdmF0ZV9oCiAjZGVmaW5lIGV3a191cmxfcmVxdWVzdF9wcml2YXRlX2gKIAorI2luY2x1
ZGUgIkV3a1JlZkNvdW50ZWQuaCIKKyNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKKyNp
bmNsdWRlICJXS1VSTC5oIgorI2luY2x1ZGUgIldLVVJMUmVxdWVzdC5oIgorI2luY2x1ZGUgIldl
YlVSTFJlcXVlc3QuaCIKKworLyoqCisgKiBcc3RydWN0ICBfRXdrX1VybF9SZXF1ZXN0CisgKiBA
YnJpZWYgICBDb250YWlucyB0aGUgVVJMIHJlcXVlc3QgZGF0YS4KKyAqLworc3RydWN0IF9Fd2tf
VXJsX1JlcXVlc3QgOiBwdWJsaWMgRXdrUmVmQ291bnRlZCB7CisgICAgV0tFaW5hU2hhcmVkU3Ry
aW5nIHVybDsKKyAgICBXS0VpbmFTaGFyZWRTdHJpbmcgZmlyc3RfcGFydHk7CisgICAgV0tFaW5h
U2hhcmVkU3RyaW5nIGh0dHBfbWV0aG9kOworCisgICAgX0V3a19VcmxfUmVxdWVzdChXS1VSTFJl
cXVlc3RSZWYgcmVxdWVzdFJlZikKKyAgICAgICAgOiB1cmwoQWRvcHRXSywgV0tVUkxSZXF1ZXN0
Q29weVVSTChyZXF1ZXN0UmVmKSkKKyAgICAgICAgLCBmaXJzdF9wYXJ0eShBZG9wdFdLLCBXS1VS
TFJlcXVlc3RDb3B5Rmlyc3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdFJlZikpCisgICAgICAgICwg
aHR0cF9tZXRob2QoQWRvcHRXSywgV0tVUkxSZXF1ZXN0Q29weUhUVFBNZXRob2QocmVxdWVzdFJl
ZikpCisgICAgeyB9Cit9OworCit0eXBlZGVmIHN0cnVjdCBfRXdrX1VybF9SZXF1ZXN0IEV3a19V
cmxfUmVxdWVzdDsKKwogRXdrX1VybF9SZXF1ZXN0KiBld2tfdXJsX3JlcXVlc3RfbmV3KFdLVVJM
UmVxdWVzdFJlZik7CiAKICNlbmRpZiAvLyBld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168659</attachid>
            <date>2012-10-15 02:50:38 -0700</date>
            <delta_ts>2012-10-15 03:20:19 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug99174_v2</filename>
            <type>text/plain</type>
            <size>11330</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGQ4ODliMWQwYzc2MGI4NzA2ZjNkZDFlNjA1MGQ4MThjNjk4NWMwZGIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
TW9uIE9jdCAxNSAxMjoxNzoxMCAyMDEyICswMzAwCgogICAgYnVnOTkxNzQKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggZTY0YzYwMi4uMGUyNTk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEw
LTE1ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gRW5jYXBzdWxhdGUgcmVmIGNvdW50aW5nIGZvciBFd2sgb2Jq
ZWN0cyBpbiBhIHBhcmVudCBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTkxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBFd2tSZWZDb3VudGVkIHdoaWNoIGlzIGVuY2Fwc3VsYXRpbmcg
cmVmIGNvdW50aW5nIGZvciBFd2sgb2JqZWN0cyAoc3VwcG9zZWQgdG8gYmUgCisgICAgICAgIHBh
cmVudCBjbGFzcyBmb3IgdGhlbSkuIEFsc28gYWRkZWQgdHlwZWRlZnMgZm9yIEV3a1JlZkNvdW50
ZWQtYmFzZWQgc21hcnQgcG9pbnRlciB0eXBlcy4KKyAgICAgICAgQXBwbGllZCB0aGUgbmV3IGFw
cHJvYWNoIGZvciBFd2tfTmF2aWdhdGlvbl9EYXRhIGFuZCBFd2tfVXJsX1JlcXVlc3Qgb2JqZWN0
cyBhcyBhbiBleGFtcGxlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRVdLUmVmQ291
bnRlZC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChFV0tSZWZDb3VudGVk
KToKKyAgICAgICAgKFdlYktpdDo6RVdLUmVmQ291bnRlZDo6RVdLUmVmQ291bnRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkVXS1JlZkNvdW50ZWQ6On5FV0tSZWZDb3VudGVkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHA6CisgICAgICAg
IChkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHA6CisgICAgICAgIChld2tfbmF2aWdhdGlvbl9k
YXRhX3JlZik6CisgICAgICAgIChld2tfbmF2aWdhdGlvbl9kYXRhX3VucmVmKToKKyAgICAgICAg
KGV3a19uYXZpZ2F0aW9uX2RhdGFfb3JpZ2luYWxfcmVxdWVzdF9nZXQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZS5oOgorICAgICAgICAo
X0V3a19OYXZpZ2F0aW9uX0RhdGEpOgorICAgICAgICAoX0V3a19OYXZpZ2F0aW9uX0RhdGE6Ol9F
d2tfTmF2aWdhdGlvbl9EYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3JlcXVlc3QuY3BwOgorICAgICAgICAoZXdrX3VybF9yZXF1ZXN0X3JlZik6CisgICAgICAgIChl
d2tfdXJsX3JlcXVlc3RfdW5yZWYpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfcmVxdWVzdF9wcml2YXRlLmg6CisgICAgICAgIChfRXdrX1VybF9SZXF1ZXN0KToKKyAgICAg
ICAgKF9Fd2tfVXJsX1JlcXVlc3Q6Ol9Fd2tfVXJsX1JlcXVlc3QpOgorCiAyMDEyLTEwLTE0ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSB3
b3JsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXS1Jl
ZkNvdW50ZWQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXS1JlZkNvdW50
ZWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODFiMjMzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdLUmVmQ291bnRl
ZC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29y
cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRVdLUmVm
Q291bnRlZF9oCisjZGVmaW5lIEVXS1JlZkNvdW50ZWRfaAorCisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEVXS1JlZkNvdW50ZWQgOiBw
dWJsaWMgUmVmQ291bnRlZDxFV0tSZWZDb3VudGVkPiB7CitwdWJsaWM6CisgICAgLy8gSWRlYSBp
cyB0byB1c2UgUmVmUHRyIGludGVybmFsbHkgYW5kIGtlZXAgbWFudWFsIHJlZiBjb3VudGluZyBm
b3IgZXh0ZXJuYWwgdXNhZ2UsIHNvIHdlIHJlbGF4IGFkb3B0aW9uIHJlcXVpcmVtZW50IGhlcmUu
CisgICAgRVdLUmVmQ291bnRlZCgpIHsgcmVsYXhBZG9wdGlvblJlcXVpcmVtZW50KCk7IH0KKyAg
ICB2aXJ0dWFsIH5FV0tSZWZDb3VudGVkKCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKwordXNpbmcgV2ViS2l0OjpFV0tSZWZDb3VudGVkOworCisjZW5kaWYgLy8gRVdLUmVmQ291
bnRlZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHAKaW5kZXggMWFiOTVlNC4uNjJjYWVh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHRfaGlzdG9yeV9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0X2hpc3RvcnlfY2xpZW50LmNwcApAQCAtNTUsOSArNTUsOCBAQCBzdGF0
aWMgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShXS0NvbnRleHRSZWYsIFdLUGFn
ZVJlZiBwYWdlLCBXS05hdmlnYQogICAgIGlmICghaGlzdG9yeURlbGVnYXRlLT5uYXZpZ2F0ZV9m
dW5jKQogICAgICAgICByZXR1cm47CiAKLSAgICBFd2tfTmF2aWdhdGlvbl9EYXRhKiBuYXZpZ2F0
aW9uRGF0YUV3ayA9IGV3a19uYXZpZ2F0aW9uX2RhdGFfbmV3KG5hdmlnYXRpb25EYXRhKTsKLSAg
ICBoaXN0b3J5RGVsZWdhdGUtPm5hdmlnYXRlX2Z1bmMoZXdrX3ZpZXdfZnJvbV9wYWdlX2dldCh0
b0ltcGwocGFnZSkpLCBuYXZpZ2F0aW9uRGF0YUV3aywgaGlzdG9yeURlbGVnYXRlLT51c2VyX2Rh
dGEpOwotICAgIGV3a19uYXZpZ2F0aW9uX2RhdGFfdW5yZWYobmF2aWdhdGlvbkRhdGFFd2spOwor
ICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9EYXRhPiBuYXZpZ2F0aW9uRGF0YUV3ayA9IGV3a19u
YXZpZ2F0aW9uX2RhdGFfbmV3KG5hdmlnYXRpb25EYXRhKTsKKyAgICBoaXN0b3J5RGVsZWdhdGUt
Pm5hdmlnYXRlX2Z1bmMoZXdrX3ZpZXdfZnJvbV9wYWdlX2dldCh0b0ltcGwocGFnZSkpLCBuYXZp
Z2F0aW9uRGF0YUV3ay5nZXQoKSwgaGlzdG9yeURlbGVnYXRlLT51c2VyX2RhdGEpOwogfQogCiBz
dGF0aWMgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoV0tDb250ZXh0UmVmLCBXS1BhZ2VS
ZWYgcGFnZSwgV0tVUkxSZWYgc291cmNlVVJMLCBXS1VSTFJlZiBkZXN0aW5hdGlvblVSTCwgV0tG
cmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHAKaW5kZXggNTM2
N2ZlZi4uMjdhNTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHAKQEAgLTI2LDQ3ICsyNiwxNSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX2RhdGEuaCIKIAotI2lu
Y2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgotI2lu
Y2x1ZGUgIldLUmV0YWluUHRyLmgiCiAjaW5jbHVkZSAiZXdrX25hdmlnYXRpb25fZGF0YV9wcml2
YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKLSNpbmNsdWRlICJld2tfdXJsX3JlcXVl
c3RfcHJpdmF0ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0vKioKLSAqIFxzdHJ1
Y3QgIF9Fd2tfTmF2aWdhdGlvbl9EYXRhCi0gKiBAYnJpZWYgICBDb250YWlucyB0aGUgbmF2aWdh
dGlvbiBkYXRhIGRldGFpbHMuCi0gKi8KLXN0cnVjdCBfRXdrX05hdmlnYXRpb25fRGF0YSB7Ci0g
ICAgdW5zaWduZWQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgb2JqZWN0
ICovCi0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIHRpdGxlOwotICAgIFdLRWluYVNoYXJlZFN0cmlu
ZyB1cmw7Ci0gICAgRXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0OwotCi0gICAgX0V3a19OYXZpZ2F0
aW9uX0RhdGEoV0tOYXZpZ2F0aW9uRGF0YVJlZiBkYXRhUmVmKQotICAgICAgICA6IF9fcmVmKDEp
Ci0gICAgICAgICwgdGl0bGUoQWRvcHRXSywgV0tOYXZpZ2F0aW9uRGF0YUNvcHlUaXRsZShkYXRh
UmVmKSkKLSAgICAgICAgLCB1cmwoQWRvcHRXSywgV0tOYXZpZ2F0aW9uRGF0YUNvcHlVUkwoZGF0
YVJlZikpCi0gICAgICAgICwgcmVxdWVzdCgwKQotICAgIHsKLSAgICAgICAgV0tSZXRhaW5QdHI8
V0tVUkxSZXF1ZXN0UmVmPiByZXF1ZXN0V0soQWRvcHRXSywgV0tOYXZpZ2F0aW9uRGF0YUNvcHlP
cmlnaW5hbFJlcXVlc3QoZGF0YVJlZikpOwotICAgICAgICByZXF1ZXN0ID0gZXdrX3VybF9yZXF1
ZXN0X25ldyhyZXF1ZXN0V0suZ2V0KCkpOwotICAgIH0KLQotICAgIH5fRXdrX05hdmlnYXRpb25f
RGF0YSgpCi0gICAgewotICAgICAgICBBU1NFUlQoIV9fcmVmKTsKLSAgICAgICAgZXdrX3VybF9y
ZXF1ZXN0X3VucmVmKHJlcXVlc3QpOwotICAgIH0KLX07Ci0KIEV3a19OYXZpZ2F0aW9uX0RhdGEq
IGV3a19uYXZpZ2F0aW9uX2RhdGFfcmVmKEV3a19OYXZpZ2F0aW9uX0RhdGEqIGRhdGEpCiB7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGRhdGEsIDApOwogCi0gICAgKytkYXRh
LT5fX3JlZjsKKyAgICBkYXRhLT5yZWYoKTsKIAogICAgIHJldHVybiBkYXRhOwogfQpAQCAtNzUs
MTAgKzQzLDcgQEAgdm9pZCBld2tfbmF2aWdhdGlvbl9kYXRhX3VucmVmKEV3a19OYXZpZ2F0aW9u
X0RhdGEqIGRhdGEpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oZGF0YSk7CiAK
LSAgICBpZiAoLS1kYXRhLT5fX3JlZikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZGVsZXRlIGRh
dGE7CisgICAgZGF0YS0+ZGVyZWYoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX25hdmlnYXRpb25f
ZGF0YV90aXRsZV9nZXQoY29uc3QgRXdrX05hdmlnYXRpb25fRGF0YSogZGF0YSkKQEAgLTkyLDcg
KzU3LDcgQEAgRXdrX1VybF9SZXF1ZXN0KiBld2tfbmF2aWdhdGlvbl9kYXRhX29yaWdpbmFsX3Jl
cXVlc3RfZ2V0KGNvbnN0IEV3a19OYXZpZ2F0aW9uX0QKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwoZGF0YSwgMCk7CiAKLSAgICByZXR1cm4gZGF0YS0+cmVxdWVzdDsKKyAg
ICByZXR1cm4gZGF0YS0+cmVxdWVzdC5nZXQoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX25hdmln
YXRpb25fZGF0YV91cmxfZ2V0KGNvbnN0IEV3a19OYXZpZ2F0aW9uX0RhdGEqIGRhdGEpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9k
YXRhX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZp
Z2F0aW9uX2RhdGFfcHJpdmF0ZS5oCmluZGV4IDQzMGM2MTUuLjcwOTA4Y2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0
aW9uX2RhdGFfcHJpdmF0ZS5oCkBAIC0yNiw3ICsyNiwzMSBAQAogI2lmbmRlZiBld2tfbmF2aWdh
dGlvbl9kYXRhX3ByaXZhdGVfaAogI2RlZmluZSBld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGVf
aAogCisjaW5jbHVkZSAiRVdLUmVmQ291bnRlZC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgor
I2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgogI2luY2x1ZGUgIldLTmF2aWdhdGlvbkRh
dGEuaCIKKyNpbmNsdWRlICJXS1JldGFpblB0ci5oIgorI2luY2x1ZGUgImV3a19wcml2YXRlLmgi
CisjaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaCIKKworLyoqCisgKiBcc3RydWN0
ICBfRXdrX05hdmlnYXRpb25fRGF0YQorICogQGJyaWVmICAgQ29udGFpbnMgdGhlIG5hdmlnYXRp
b24gZGF0YSBkZXRhaWxzLgorICovCitzdHJ1Y3QgX0V3a19OYXZpZ2F0aW9uX0RhdGEgOiBwdWJs
aWMgRVdLUmVmQ291bnRlZCB7CisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHRpdGxlOworICAgIFdL
RWluYVNoYXJlZFN0cmluZyB1cmw7CisgICAgUmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gcmVxdWVz
dDsKKworICAgIF9Fd2tfTmF2aWdhdGlvbl9EYXRhKFdLTmF2aWdhdGlvbkRhdGFSZWYgZGF0YVJl
ZikKKyAgICAgICAgOiB0aXRsZShBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weVRpdGxlKGRh
dGFSZWYpKQorICAgICAgICAsIHVybChBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weVVSTChk
YXRhUmVmKSkKKyAgICB7CisgICAgICAgIFdLUmV0YWluUHRyPFdLVVJMUmVxdWVzdFJlZj4gcmVx
dWVzdFdLKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFDb3B5T3JpZ2luYWxSZXF1ZXN0KGRhdGFS
ZWYpKTsKKyAgICAgICAgcmVxdWVzdCA9IGV3a191cmxfcmVxdWVzdF9uZXcocmVxdWVzdFdLLmdl
dCgpKTsKKyAgICB9Cit9OwogCiB0eXBlZGVmIHN0cnVjdCBfRXdrX05hdmlnYXRpb25fRGF0YSBF
d2tfTmF2aWdhdGlvbl9EYXRhOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0LmNwcAppbmRleCA5ZTdjODBjLi41MTE5ZjI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVz
dC5jcHAKQEAgLTI2LDQ0ICsyNiwxNCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
ImV3a191cmxfcmVxdWVzdC5oIgogCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAi
V0tFaW5hU2hhcmVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiV0tVUkwuaCIKLSNpbmNsdWRlICJXS1VS
TFJlcXVlc3QuaCIKLSNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3Vy
bF9yZXF1ZXN0X3ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLS8qKgotICogXHN0cnVjdCAgX0V3a19VcmxfUmVxdWVz
dAotICogQGJyaWVmICAgQ29udGFpbnMgdGhlIFVSTCByZXF1ZXN0IGRhdGEuCi0gKi8KLXN0cnVj
dCBfRXdrX1VybF9SZXF1ZXN0IHsKLSAgICB1bnNpZ25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJl
ZmVyZW5jZSBjb3VudCBvZiB0aGUgb2JqZWN0ICovCi0KLSAgICBXS0VpbmFTaGFyZWRTdHJpbmcg
dXJsOwotICAgIFdLRWluYVNoYXJlZFN0cmluZyBmaXJzdF9wYXJ0eTsKLSAgICBXS0VpbmFTaGFy
ZWRTdHJpbmcgaHR0cF9tZXRob2Q7Ci0KLSAgICBfRXdrX1VybF9SZXF1ZXN0KFdLVVJMUmVxdWVz
dFJlZiByZXF1ZXN0UmVmKQotICAgICAgICA6IF9fcmVmKDEpCi0gICAgICAgICwgdXJsKEFkb3B0
V0ssIFdLVVJMUmVxdWVzdENvcHlVUkwocmVxdWVzdFJlZikpCi0gICAgICAgICwgZmlyc3RfcGFy
dHkoQWRvcHRXSywgV0tVUkxSZXF1ZXN0Q29weUZpcnN0UGFydHlGb3JDb29raWVzKHJlcXVlc3RS
ZWYpKQotICAgICAgICAsIGh0dHBfbWV0aG9kKEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlIVFRQ
TWV0aG9kKHJlcXVlc3RSZWYpKQotICAgIHsgfQotCi0gICAgfl9Fd2tfVXJsX1JlcXVlc3QoKQot
ICAgIHsKLSAgICAgICAgQVNTRVJUKCFfX3JlZik7Ci0gICAgfQotfTsKLQogRXdrX1VybF9SZXF1
ZXN0KiBld2tfdXJsX3JlcXVlc3RfcmVmKEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCkKIHsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgMCk7Ci0gICAgKytyZXF1
ZXN0LT5fX3JlZjsKKyAgICByZXF1ZXN0LT5yZWYoKTsKIAogICAgIHJldHVybiByZXF1ZXN0Owog
fQpAQCAtNzIsMTAgKzQyLDcgQEAgdm9pZCBld2tfdXJsX3JlcXVlc3RfdW5yZWYoRXdrX1VybF9S
ZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHJlcXVl
c3QpOwogCi0gICAgaWYgKC0tcmVxdWVzdC0+X19yZWYpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGRlbGV0ZSByZXF1ZXN0OworICAgIHJlcXVlc3QtPmRlcmVmKCk7CiB9CiAKIGNvbnN0IGNoYXIq
IGV3a191cmxfcmVxdWVzdF91cmxfZ2V0KGNvbnN0IEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVx
dWVzdF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4IDU0OGI2ZTkuLjVlMmJhY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3By
aXZhdGUuaApAQCAtMjYsNiArMjYsMzAgQEAKICNpZm5kZWYgZXdrX3VybF9yZXF1ZXN0X3ByaXZh
dGVfaAogI2RlZmluZSBld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZV9oCiAKKyNpbmNsdWRlICJFV0tS
ZWZDb3VudGVkLmgiCisjaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCisjaW5jbHVkZSAi
V0tVUkwuaCIKKyNpbmNsdWRlICJXS1VSTFJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJVUkxSZXF1
ZXN0LmgiCisKKy8qKgorICogXHN0cnVjdCAgX0V3a19VcmxfUmVxdWVzdAorICogQGJyaWVmICAg
Q29udGFpbnMgdGhlIFVSTCByZXF1ZXN0IGRhdGEuCisgKi8KK3N0cnVjdCBfRXdrX1VybF9SZXF1
ZXN0IDogcHVibGljIEVXS1JlZkNvdW50ZWQgeworICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7
CisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIGZpcnN0X3BhcnR5OworICAgIFdLRWluYVNoYXJlZFN0
cmluZyBodHRwX21ldGhvZDsKKworICAgIF9Fd2tfVXJsX1JlcXVlc3QoV0tVUkxSZXF1ZXN0UmVm
IHJlcXVlc3RSZWYpCisgICAgICAgIDogdXJsKEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlVUkwo
cmVxdWVzdFJlZikpCisgICAgICAgICwgZmlyc3RfcGFydHkoQWRvcHRXSywgV0tVUkxSZXF1ZXN0
Q29weUZpcnN0UGFydHlGb3JDb29raWVzKHJlcXVlc3RSZWYpKQorICAgICAgICAsIGh0dHBfbWV0
aG9kKEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlIVFRQTWV0aG9kKHJlcXVlc3RSZWYpKQorICAg
IHsgfQorfTsKKwordHlwZWRlZiBzdHJ1Y3QgX0V3a19VcmxfUmVxdWVzdCBFd2tfVXJsX1JlcXVl
c3Q7CisKIEV3a19VcmxfUmVxdWVzdCogZXdrX3VybF9yZXF1ZXN0X25ldyhXS1VSTFJlcXVlc3RS
ZWYpOwogCiAjZW5kaWYgLy8gZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGVfaAo=
</data>
<flag name="commit-queue"
          id="181706"
          type_id="3"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168666</attachid>
            <date>2012-10-15 03:20:19 -0700</date>
            <delta_ts>2012-10-15 03:21:20 -0700</delta_ts>
            <desc>patch v3</desc>
            <filename>bug99174_v3</filename>
            <type>text/plain</type>
            <size>11330</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGQ4ODliMWQwYzc2MGI4NzA2ZjNkZDFlNjA1MGQ4MThjNjk4NWMwZGIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
TW9uIE9jdCAxNSAxMjoxNzoxMCAyMDEyICswMzAwCgogICAgYnVnOTkxNzQKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggZTY0YzYwMi4uMGUyNTk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEw
LTE1ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gRW5jYXBzdWxhdGUgcmVmIGNvdW50aW5nIGZvciBFd2sgb2Jq
ZWN0cyBpbiBhIHBhcmVudCBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTkxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBFd2tSZWZDb3VudGVkIHdoaWNoIGlzIGVuY2Fwc3VsYXRpbmcg
cmVmIGNvdW50aW5nIGZvciBFd2sgb2JqZWN0cyAoc3VwcG9zZWQgdG8gYmUgCisgICAgICAgIHBh
cmVudCBjbGFzcyBmb3IgdGhlbSkuIEFsc28gYWRkZWQgdHlwZWRlZnMgZm9yIEV3a1JlZkNvdW50
ZWQtYmFzZWQgc21hcnQgcG9pbnRlciB0eXBlcy4KKyAgICAgICAgQXBwbGllZCB0aGUgbmV3IGFw
cHJvYWNoIGZvciBFd2tfTmF2aWdhdGlvbl9EYXRhIGFuZCBFd2tfVXJsX1JlcXVlc3Qgb2JqZWN0
cyBhcyBhbiBleGFtcGxlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRVdLUmVmQ291
bnRlZC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChFV0tSZWZDb3VudGVk
KToKKyAgICAgICAgKFdlYktpdDo6RVdLUmVmQ291bnRlZDo6RVdLUmVmQ291bnRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkVXS1JlZkNvdW50ZWQ6On5FV0tSZWZDb3VudGVkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHA6CisgICAgICAg
IChkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHA6CisgICAgICAgIChld2tfbmF2aWdhdGlvbl9k
YXRhX3JlZik6CisgICAgICAgIChld2tfbmF2aWdhdGlvbl9kYXRhX3VucmVmKToKKyAgICAgICAg
KGV3a19uYXZpZ2F0aW9uX2RhdGFfb3JpZ2luYWxfcmVxdWVzdF9nZXQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZS5oOgorICAgICAgICAo
X0V3a19OYXZpZ2F0aW9uX0RhdGEpOgorICAgICAgICAoX0V3a19OYXZpZ2F0aW9uX0RhdGE6Ol9F
d2tfTmF2aWdhdGlvbl9EYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3JlcXVlc3QuY3BwOgorICAgICAgICAoZXdrX3VybF9yZXF1ZXN0X3JlZik6CisgICAgICAgIChl
d2tfdXJsX3JlcXVlc3RfdW5yZWYpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfcmVxdWVzdF9wcml2YXRlLmg6CisgICAgICAgIChfRXdrX1VybF9SZXF1ZXN0KToKKyAgICAg
ICAgKF9Fd2tfVXJsX1JlcXVlc3Q6Ol9Fd2tfVXJsX1JlcXVlc3QpOgorCiAyMDEyLTEwLTE0ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSB3
b3JsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXS1Jl
ZkNvdW50ZWQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXS1JlZkNvdW50
ZWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODFiMjMzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdLUmVmQ291bnRl
ZC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29y
cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRVdLUmVm
Q291bnRlZF9oCisjZGVmaW5lIEVXS1JlZkNvdW50ZWRfaAorCisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEVXS1JlZkNvdW50ZWQgOiBw
dWJsaWMgUmVmQ291bnRlZDxFV0tSZWZDb3VudGVkPiB7CitwdWJsaWM6CisgICAgLy8gSWRlYSBp
cyB0byB1c2UgUmVmUHRyIGludGVybmFsbHkgYW5kIGtlZXAgbWFudWFsIHJlZiBjb3VudGluZyBm
b3IgZXh0ZXJuYWwgdXNhZ2UsIHNvIHdlIHJlbGF4IGFkb3B0aW9uIHJlcXVpcmVtZW50IGhlcmUu
CisgICAgRVdLUmVmQ291bnRlZCgpIHsgcmVsYXhBZG9wdGlvblJlcXVpcmVtZW50KCk7IH0KKyAg
ICB2aXJ0dWFsIH5FV0tSZWZDb3VudGVkKCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKwordXNpbmcgV2ViS2l0OjpFV0tSZWZDb3VudGVkOworCisjZW5kaWYgLy8gRVdLUmVmQ291
bnRlZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHAKaW5kZXggMWFiOTVlNC4uNjJjYWVh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHRfaGlzdG9yeV9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0X2hpc3RvcnlfY2xpZW50LmNwcApAQCAtNTUsOSArNTUsOCBAQCBzdGF0
aWMgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShXS0NvbnRleHRSZWYsIFdLUGFn
ZVJlZiBwYWdlLCBXS05hdmlnYQogICAgIGlmICghaGlzdG9yeURlbGVnYXRlLT5uYXZpZ2F0ZV9m
dW5jKQogICAgICAgICByZXR1cm47CiAKLSAgICBFd2tfTmF2aWdhdGlvbl9EYXRhKiBuYXZpZ2F0
aW9uRGF0YUV3ayA9IGV3a19uYXZpZ2F0aW9uX2RhdGFfbmV3KG5hdmlnYXRpb25EYXRhKTsKLSAg
ICBoaXN0b3J5RGVsZWdhdGUtPm5hdmlnYXRlX2Z1bmMoZXdrX3ZpZXdfZnJvbV9wYWdlX2dldCh0
b0ltcGwocGFnZSkpLCBuYXZpZ2F0aW9uRGF0YUV3aywgaGlzdG9yeURlbGVnYXRlLT51c2VyX2Rh
dGEpOwotICAgIGV3a19uYXZpZ2F0aW9uX2RhdGFfdW5yZWYobmF2aWdhdGlvbkRhdGFFd2spOwor
ICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9EYXRhPiBuYXZpZ2F0aW9uRGF0YUV3ayA9IGV3a19u
YXZpZ2F0aW9uX2RhdGFfbmV3KG5hdmlnYXRpb25EYXRhKTsKKyAgICBoaXN0b3J5RGVsZWdhdGUt
Pm5hdmlnYXRlX2Z1bmMoZXdrX3ZpZXdfZnJvbV9wYWdlX2dldCh0b0ltcGwocGFnZSkpLCBuYXZp
Z2F0aW9uRGF0YUV3ay5nZXQoKSwgaGlzdG9yeURlbGVnYXRlLT51c2VyX2RhdGEpOwogfQogCiBz
dGF0aWMgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoV0tDb250ZXh0UmVmLCBXS1BhZ2VS
ZWYgcGFnZSwgV0tVUkxSZWYgc291cmNlVVJMLCBXS1VSTFJlZiBkZXN0aW5hdGlvblVSTCwgV0tG
cmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHAKaW5kZXggNTM2
N2ZlZi4uMjdhNTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHAKQEAgLTI2LDQ3ICsyNiwxNSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX2RhdGEuaCIKIAotI2lu
Y2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgotI2lu
Y2x1ZGUgIldLUmV0YWluUHRyLmgiCiAjaW5jbHVkZSAiZXdrX25hdmlnYXRpb25fZGF0YV9wcml2
YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKLSNpbmNsdWRlICJld2tfdXJsX3JlcXVl
c3RfcHJpdmF0ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0vKioKLSAqIFxzdHJ1
Y3QgIF9Fd2tfTmF2aWdhdGlvbl9EYXRhCi0gKiBAYnJpZWYgICBDb250YWlucyB0aGUgbmF2aWdh
dGlvbiBkYXRhIGRldGFpbHMuCi0gKi8KLXN0cnVjdCBfRXdrX05hdmlnYXRpb25fRGF0YSB7Ci0g
ICAgdW5zaWduZWQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgb2JqZWN0
ICovCi0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIHRpdGxlOwotICAgIFdLRWluYVNoYXJlZFN0cmlu
ZyB1cmw7Ci0gICAgRXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0OwotCi0gICAgX0V3a19OYXZpZ2F0
aW9uX0RhdGEoV0tOYXZpZ2F0aW9uRGF0YVJlZiBkYXRhUmVmKQotICAgICAgICA6IF9fcmVmKDEp
Ci0gICAgICAgICwgdGl0bGUoQWRvcHRXSywgV0tOYXZpZ2F0aW9uRGF0YUNvcHlUaXRsZShkYXRh
UmVmKSkKLSAgICAgICAgLCB1cmwoQWRvcHRXSywgV0tOYXZpZ2F0aW9uRGF0YUNvcHlVUkwoZGF0
YVJlZikpCi0gICAgICAgICwgcmVxdWVzdCgwKQotICAgIHsKLSAgICAgICAgV0tSZXRhaW5QdHI8
V0tVUkxSZXF1ZXN0UmVmPiByZXF1ZXN0V0soQWRvcHRXSywgV0tOYXZpZ2F0aW9uRGF0YUNvcHlP
cmlnaW5hbFJlcXVlc3QoZGF0YVJlZikpOwotICAgICAgICByZXF1ZXN0ID0gZXdrX3VybF9yZXF1
ZXN0X25ldyhyZXF1ZXN0V0suZ2V0KCkpOwotICAgIH0KLQotICAgIH5fRXdrX05hdmlnYXRpb25f
RGF0YSgpCi0gICAgewotICAgICAgICBBU1NFUlQoIV9fcmVmKTsKLSAgICAgICAgZXdrX3VybF9y
ZXF1ZXN0X3VucmVmKHJlcXVlc3QpOwotICAgIH0KLX07Ci0KIEV3a19OYXZpZ2F0aW9uX0RhdGEq
IGV3a19uYXZpZ2F0aW9uX2RhdGFfcmVmKEV3a19OYXZpZ2F0aW9uX0RhdGEqIGRhdGEpCiB7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGRhdGEsIDApOwogCi0gICAgKytkYXRh
LT5fX3JlZjsKKyAgICBkYXRhLT5yZWYoKTsKIAogICAgIHJldHVybiBkYXRhOwogfQpAQCAtNzUs
MTAgKzQzLDcgQEAgdm9pZCBld2tfbmF2aWdhdGlvbl9kYXRhX3VucmVmKEV3a19OYXZpZ2F0aW9u
X0RhdGEqIGRhdGEpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oZGF0YSk7CiAK
LSAgICBpZiAoLS1kYXRhLT5fX3JlZikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZGVsZXRlIGRh
dGE7CisgICAgZGF0YS0+ZGVyZWYoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX25hdmlnYXRpb25f
ZGF0YV90aXRsZV9nZXQoY29uc3QgRXdrX05hdmlnYXRpb25fRGF0YSogZGF0YSkKQEAgLTkyLDcg
KzU3LDcgQEAgRXdrX1VybF9SZXF1ZXN0KiBld2tfbmF2aWdhdGlvbl9kYXRhX29yaWdpbmFsX3Jl
cXVlc3RfZ2V0KGNvbnN0IEV3a19OYXZpZ2F0aW9uX0QKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwoZGF0YSwgMCk7CiAKLSAgICByZXR1cm4gZGF0YS0+cmVxdWVzdDsKKyAg
ICByZXR1cm4gZGF0YS0+cmVxdWVzdC5nZXQoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX25hdmln
YXRpb25fZGF0YV91cmxfZ2V0KGNvbnN0IEV3a19OYXZpZ2F0aW9uX0RhdGEqIGRhdGEpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9k
YXRhX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZp
Z2F0aW9uX2RhdGFfcHJpdmF0ZS5oCmluZGV4IDQzMGM2MTUuLjcwOTA4Y2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0
aW9uX2RhdGFfcHJpdmF0ZS5oCkBAIC0yNiw3ICsyNiwzMSBAQAogI2lmbmRlZiBld2tfbmF2aWdh
dGlvbl9kYXRhX3ByaXZhdGVfaAogI2RlZmluZSBld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGVf
aAogCisjaW5jbHVkZSAiRVdLUmVmQ291bnRlZC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgor
I2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgogI2luY2x1ZGUgIldLTmF2aWdhdGlvbkRh
dGEuaCIKKyNpbmNsdWRlICJXS1JldGFpblB0ci5oIgorI2luY2x1ZGUgImV3a19wcml2YXRlLmgi
CisjaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaCIKKworLyoqCisgKiBcc3RydWN0
ICBfRXdrX05hdmlnYXRpb25fRGF0YQorICogQGJyaWVmICAgQ29udGFpbnMgdGhlIG5hdmlnYXRp
b24gZGF0YSBkZXRhaWxzLgorICovCitzdHJ1Y3QgX0V3a19OYXZpZ2F0aW9uX0RhdGEgOiBwdWJs
aWMgRVdLUmVmQ291bnRlZCB7CisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHRpdGxlOworICAgIFdL
RWluYVNoYXJlZFN0cmluZyB1cmw7CisgICAgUmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gcmVxdWVz
dDsKKworICAgIF9Fd2tfTmF2aWdhdGlvbl9EYXRhKFdLTmF2aWdhdGlvbkRhdGFSZWYgZGF0YVJl
ZikKKyAgICAgICAgOiB0aXRsZShBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weVRpdGxlKGRh
dGFSZWYpKQorICAgICAgICAsIHVybChBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weVVSTChk
YXRhUmVmKSkKKyAgICB7CisgICAgICAgIFdLUmV0YWluUHRyPFdLVVJMUmVxdWVzdFJlZj4gcmVx
dWVzdFdLKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFDb3B5T3JpZ2luYWxSZXF1ZXN0KGRhdGFS
ZWYpKTsKKyAgICAgICAgcmVxdWVzdCA9IGV3a191cmxfcmVxdWVzdF9uZXcocmVxdWVzdFdLLmdl
dCgpKTsKKyAgICB9Cit9OwogCiB0eXBlZGVmIHN0cnVjdCBfRXdrX05hdmlnYXRpb25fRGF0YSBF
d2tfTmF2aWdhdGlvbl9EYXRhOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0LmNwcAppbmRleCA5ZTdjODBjLi41MTE5ZjI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVz
dC5jcHAKQEAgLTI2LDQ0ICsyNiwxNCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
ImV3a191cmxfcmVxdWVzdC5oIgogCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAi
V0tFaW5hU2hhcmVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiV0tVUkwuaCIKLSNpbmNsdWRlICJXS1VS
TFJlcXVlc3QuaCIKLSNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3Vy
bF9yZXF1ZXN0X3ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLS8qKgotICogXHN0cnVjdCAgX0V3a19VcmxfUmVxdWVz
dAotICogQGJyaWVmICAgQ29udGFpbnMgdGhlIFVSTCByZXF1ZXN0IGRhdGEuCi0gKi8KLXN0cnVj
dCBfRXdrX1VybF9SZXF1ZXN0IHsKLSAgICB1bnNpZ25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJl
ZmVyZW5jZSBjb3VudCBvZiB0aGUgb2JqZWN0ICovCi0KLSAgICBXS0VpbmFTaGFyZWRTdHJpbmcg
dXJsOwotICAgIFdLRWluYVNoYXJlZFN0cmluZyBmaXJzdF9wYXJ0eTsKLSAgICBXS0VpbmFTaGFy
ZWRTdHJpbmcgaHR0cF9tZXRob2Q7Ci0KLSAgICBfRXdrX1VybF9SZXF1ZXN0KFdLVVJMUmVxdWVz
dFJlZiByZXF1ZXN0UmVmKQotICAgICAgICA6IF9fcmVmKDEpCi0gICAgICAgICwgdXJsKEFkb3B0
V0ssIFdLVVJMUmVxdWVzdENvcHlVUkwocmVxdWVzdFJlZikpCi0gICAgICAgICwgZmlyc3RfcGFy
dHkoQWRvcHRXSywgV0tVUkxSZXF1ZXN0Q29weUZpcnN0UGFydHlGb3JDb29raWVzKHJlcXVlc3RS
ZWYpKQotICAgICAgICAsIGh0dHBfbWV0aG9kKEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlIVFRQ
TWV0aG9kKHJlcXVlc3RSZWYpKQotICAgIHsgfQotCi0gICAgfl9Fd2tfVXJsX1JlcXVlc3QoKQot
ICAgIHsKLSAgICAgICAgQVNTRVJUKCFfX3JlZik7Ci0gICAgfQotfTsKLQogRXdrX1VybF9SZXF1
ZXN0KiBld2tfdXJsX3JlcXVlc3RfcmVmKEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCkKIHsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgMCk7Ci0gICAgKytyZXF1
ZXN0LT5fX3JlZjsKKyAgICByZXF1ZXN0LT5yZWYoKTsKIAogICAgIHJldHVybiByZXF1ZXN0Owog
fQpAQCAtNzIsMTAgKzQyLDcgQEAgdm9pZCBld2tfdXJsX3JlcXVlc3RfdW5yZWYoRXdrX1VybF9S
ZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHJlcXVl
c3QpOwogCi0gICAgaWYgKC0tcmVxdWVzdC0+X19yZWYpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGRlbGV0ZSByZXF1ZXN0OworICAgIHJlcXVlc3QtPmRlcmVmKCk7CiB9CiAKIGNvbnN0IGNoYXIq
IGV3a191cmxfcmVxdWVzdF91cmxfZ2V0KGNvbnN0IEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVx
dWVzdF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4IDU0OGI2ZTkuLjVlMmJhY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3By
aXZhdGUuaApAQCAtMjYsNiArMjYsMzAgQEAKICNpZm5kZWYgZXdrX3VybF9yZXF1ZXN0X3ByaXZh
dGVfaAogI2RlZmluZSBld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZV9oCiAKKyNpbmNsdWRlICJFV0tS
ZWZDb3VudGVkLmgiCisjaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCisjaW5jbHVkZSAi
V0tVUkwuaCIKKyNpbmNsdWRlICJXS1VSTFJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJVUkxSZXF1
ZXN0LmgiCisKKy8qKgorICogXHN0cnVjdCAgX0V3a19VcmxfUmVxdWVzdAorICogQGJyaWVmICAg
Q29udGFpbnMgdGhlIFVSTCByZXF1ZXN0IGRhdGEuCisgKi8KK3N0cnVjdCBfRXdrX1VybF9SZXF1
ZXN0IDogcHVibGljIEVXS1JlZkNvdW50ZWQgeworICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7
CisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIGZpcnN0X3BhcnR5OworICAgIFdLRWluYVNoYXJlZFN0
cmluZyBodHRwX21ldGhvZDsKKworICAgIF9Fd2tfVXJsX1JlcXVlc3QoV0tVUkxSZXF1ZXN0UmVm
IHJlcXVlc3RSZWYpCisgICAgICAgIDogdXJsKEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlVUkwo
cmVxdWVzdFJlZikpCisgICAgICAgICwgZmlyc3RfcGFydHkoQWRvcHRXSywgV0tVUkxSZXF1ZXN0
Q29weUZpcnN0UGFydHlGb3JDb29raWVzKHJlcXVlc3RSZWYpKQorICAgICAgICAsIGh0dHBfbWV0
aG9kKEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlIVFRQTWV0aG9kKHJlcXVlc3RSZWYpKQorICAg
IHsgfQorfTsKKwordHlwZWRlZiBzdHJ1Y3QgX0V3a19VcmxfUmVxdWVzdCBFd2tfVXJsX1JlcXVl
c3Q7CisKIEV3a19VcmxfUmVxdWVzdCogZXdrX3VybF9yZXF1ZXN0X25ldyhXS1VSTFJlcXVlc3RS
ZWYpOwogCiAjZW5kaWYgLy8gZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGVfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168677</attachid>
            <date>2012-10-15 04:39:34 -0700</date>
            <delta_ts>2012-10-15 04:41:09 -0700</delta_ts>
            <desc>patch v4</desc>
            <filename>bug99174_v4</filename>
            <type>text/plain</type>
            <size>15983</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDExZTgzYmNhMjRmOTY2YjY5ZDk2M2ZjNjhiNWI1OTBiN2ExYmE5NmEKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
TW9uIE9jdCAxNSAxNDoyNDozMSAyMDEyICswMzAwCgogICAgYnVnOTkxNzQKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggZTY0YzYwMi4uYTI5YmY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTEw
LTE1ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gRW5jYXBzdWxhdGUgcmVmIGNvdW50aW5nIGZvciBFd2sgb2Jq
ZWN0cyBpbiBhIHBhcmVudCBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTkxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFd2sgb2JqZWN0cyBjYW4gYmUgaW5oZXJpdGVkIGZyb20gUmVmQ291bnRl
ZCBjbGFzcywgc28gdGhhdCByZWYgY291bnRpbmcgaXMgZW5jYXBzdWxhdGVkIGFuZCBSZWZQdHIg
Y2FuIGJlIHVzZWQuCisgICAgICAgIEFwcGxpZWQgdGhlIG5ldyBhcHByb2FjaCBmb3IgRXdrX05h
dmlnYXRpb25fRGF0YSBhbmQgRXdrX1VybF9SZXF1ZXN0IG9iamVjdHMgYXMgYW4gZXhhbXBsZS4K
KyAgICAgICAgVGhlIHJlcXVpcmVtZW50IG9mIGFkb3B0aW9uIGNhbiBiZSBzYXRpc2ZpZWQgYXMg
bG9uZyBhcyB3ZSBrZWVwIGRlYWxpbmcgd2l0aCBzbWFydCBwb2ludGVycyBvbmx5LCBpbiBjYXNl
IGV4dGVybmFsIGNsaWVudCBwcm92aWRlcworICAgICAgICBhbiBvYmplY3QgaGF2aW5nIGFscmVh
ZHkgcmVmcyBhcyBhIHJvdyBwb2ludGVyIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpIGNhbiBi
ZSBzZXQgZXhwbGljaXRseSBpbiB0aGlzIHNwZWNpZmljIHBsYWNlLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfaGlzdG9yeV9jbGllbnQuY3BwOgorICAgICAgICAo
ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19kb3dubG9hZF9qb2IuY3BwOgorICAgICAgICAoX0V3a19Eb3dubG9hZF9Kb2IpOgor
ICAgICAgICAoX0V3a19Eb3dubG9hZF9Kb2I6Ol9Fd2tfRG93bmxvYWRfSm9iKToKKyAgICAgICAg
KF9Fd2tfRG93bmxvYWRfSm9iOjp+X0V3a19Eb3dubG9hZF9Kb2IpOgorICAgICAgICAoZXdrX2Rv
d25sb2FkX2pvYl9yZXF1ZXN0X2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X25hdmlnYXRpb25fZGF0YS5jcHA6CisgICAgICAgIChld2tfbmF2aWdhdGlvbl9kYXRhX3JlZik6
CisgICAgICAgIChld2tfbmF2aWdhdGlvbl9kYXRhX3VucmVmKToKKyAgICAgICAgKGV3a19uYXZp
Z2F0aW9uX2RhdGFfb3JpZ2luYWxfcmVxdWVzdF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZS5oOgorICAgICAgICAoX0V3a19OYXZp
Z2F0aW9uX0RhdGEpOgorICAgICAgICAoX0V3a19OYXZpZ2F0aW9uX0RhdGE6Ol9Fd2tfTmF2aWdh
dGlvbl9EYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9w
b2xpY3lfZGVjaXNpb24uY3BwOgorICAgICAgICAoX0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNp
c2lvbik6CisgICAgICAgIChfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpfRXdrX05h
dmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKToKKyAgICAgICAgKF9Fd2tfTmF2aWdhdGlvbl9Qb2xp
Y3lfRGVjaXNpb246On5fRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKToKKyAgICAgICAg
KGV3a19uYXZpZ2F0aW9uX3BvbGljeV9yZXF1ZXN0X2dldCk6CisgICAgICAgIChld2tfbmF2aWdh
dGlvbl9wb2xpY3lfZGVjaXNpb25fbmV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdXJsX3JlcXVlc3QuY3BwOgorICAgICAgICAoZXdrX3VybF9yZXF1ZXN0X3JlZik6CisgICAg
ICAgIChld2tfdXJsX3JlcXVlc3RfdW5yZWYpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmg6CisgICAgICAgIChfRXdrX1VybF9SZXF1ZXN0KToK
KyAgICAgICAgKF9Fd2tfVXJsX1JlcXVlc3Q6Ol9Fd2tfVXJsX1JlcXVlc3QpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50LmNwcDoKKyAg
ICAgICAgKGRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKToKKyAgICAgICAgKGRpZFNlbmRSZXF1
ZXN0Rm9yUmVzb3VyY2UpOgorCiAyMDEyLTEwLTE0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSB3b3JsZC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2hpc3RvcnlfY2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2hpc3Rvcnlf
Y2xpZW50LmNwcAppbmRleCAxYWI5NWU0Li5mZDFiODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfaGlzdG9yeV9j
bGllbnQuY3BwCkBAIC01NSw5ICs1NSw4IEBAIHN0YXRpYyB2b2lkIGRpZE5hdmlnYXRlV2l0aE5h
dmlnYXRpb25EYXRhKFdLQ29udGV4dFJlZiwgV0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdhCiAgICAg
aWYgKCFoaXN0b3J5RGVsZWdhdGUtPm5hdmlnYXRlX2Z1bmMpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIEV3a19OYXZpZ2F0aW9uX0RhdGEqIG5hdmlnYXRpb25EYXRhRXdrID0gZXdrX25hdmlnYXRp
b25fZGF0YV9uZXcobmF2aWdhdGlvbkRhdGEpOwotICAgIGhpc3RvcnlEZWxlZ2F0ZS0+bmF2aWdh
dGVfZnVuYyhld2tfdmlld19mcm9tX3BhZ2VfZ2V0KHRvSW1wbChwYWdlKSksIG5hdmlnYXRpb25E
YXRhRXdrLCBoaXN0b3J5RGVsZWdhdGUtPnVzZXJfZGF0YSk7Ci0gICAgZXdrX25hdmlnYXRpb25f
ZGF0YV91bnJlZihuYXZpZ2F0aW9uRGF0YUV3ayk7CisgICAgUmVmUHRyPEV3a19OYXZpZ2F0aW9u
X0RhdGE+IG5hdmlnYXRpb25EYXRhRXdrID0gYWRvcHRSZWYoZXdrX25hdmlnYXRpb25fZGF0YV9u
ZXcobmF2aWdhdGlvbkRhdGEpKTsKKyAgICBoaXN0b3J5RGVsZWdhdGUtPm5hdmlnYXRlX2Z1bmMo
ZXdrX3ZpZXdfZnJvbV9wYWdlX2dldCh0b0ltcGwocGFnZSkpLCBuYXZpZ2F0aW9uRGF0YUV3ay5n
ZXQoKSwgaGlzdG9yeURlbGVnYXRlLT51c2VyX2RhdGEpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QoV0tDb250ZXh0UmVmLCBXS1BhZ2VSZWYgcGFnZSwgV0tVUkxS
ZWYgc291cmNlVVJMLCBXS1VSTFJlZiBkZXN0aW5hdGlvblVSTCwgV0tGcmFtZVJlZiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19kb3dubG9hZF9qb2IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2Rvd25sb2FkX2pvYi5jcHAKaW5kZXggNjEyOTc5Mi4uMTVhOTViMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYi5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pv
Yi5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IF9Fd2tfRG93bmxvYWRfSm9iIHsKICAgICBE
b3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5OwogICAgIEV2YXNfT2JqZWN0KiB2aWV3OwogICAg
IEV3a19Eb3dubG9hZF9Kb2JfU3RhdGUgc3RhdGU7Ci0gICAgRXdrX1VybF9SZXF1ZXN0KiByZXF1
ZXN0OworICAgIFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3Q7CiAgICAgRXdrX1VybF9S
ZXNwb25zZSogcmVzcG9uc2U7CiAgICAgZG91YmxlIHN0YXJ0VGltZTsKICAgICBkb3VibGUgZW5k
VGltZTsKQEAgLTU5LDcgKzU5LDYgQEAgc3RydWN0IF9Fd2tfRG93bmxvYWRfSm9iIHsKICAgICAg
ICAgLCBkb3dubG9hZFByb3h5KGRvd25sb2FkKQogICAgICAgICAsIHZpZXcoZXdrVmlldykKICAg
ICAgICAgLCBzdGF0ZShFV0tfRE9XTkxPQURfSk9CX1NUQVRFX05PVF9TVEFSVEVEKQotICAgICAg
ICAsIHJlcXVlc3QoMCkKICAgICAgICAgLCByZXNwb25zZSgwKQogICAgICAgICAsIHN0YXJ0VGlt
ZSgtMSkKICAgICAgICAgLCBlbmRUaW1lKC0xKQpAQCAtNjksOCArNjgsNiBAQCBzdHJ1Y3QgX0V3
a19Eb3dubG9hZF9Kb2IgewogICAgIH5fRXdrX0Rvd25sb2FkX0pvYigpCiAgICAgewogICAgICAg
ICBBU1NFUlQoIV9fcmVmKTsKLSAgICAgICAgaWYgKHJlcXVlc3QpCi0gICAgICAgICAgICBld2tf
dXJsX3JlcXVlc3RfdW5yZWYocmVxdWVzdCk7CiAgICAgICAgIGlmIChyZXNwb25zZSkKICAgICAg
ICAgICAgIGV3a191cmxfcmVzcG9uc2VfdW5yZWYocmVzcG9uc2UpOwogICAgIH0KQEAgLTEzMywx
MCArMTMwLDEwIEBAIEV3a19VcmxfUmVxdWVzdCogZXdrX2Rvd25sb2FkX2pvYl9yZXF1ZXN0X2dl
dChjb25zdCBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCkKICAgICBpZiAoIWRvd25sb2FkLT5y
ZXF1ZXN0KSB7CiAgICAgICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChkb3dubG9h
ZC0+ZG93bmxvYWRQcm94eSwgMCk7CiAgICAgICAgIFdLUmV0YWluUHRyPFdLVVJMUmVxdWVzdFJl
Zj4gd2tVUkxSZXF1ZXN0KEFkb3B0V0ssIHRvQVBJKFdlYlVSTFJlcXVlc3Q6OmNyZWF0ZShkb3du
bG9hZC0+ZG93bmxvYWRQcm94eS0+cmVxdWVzdCgpKS5sZWFrUmVmKCkpKTsKLSAgICAgICAgY29u
c3RfY2FzdDxFd2tfRG93bmxvYWRfSm9iKj4oZG93bmxvYWQpLT5yZXF1ZXN0ID0gZXdrX3VybF9y
ZXF1ZXN0X25ldyh3a1VSTFJlcXVlc3QuZ2V0KCkpOworICAgICAgICBjb25zdF9jYXN0PEV3a19E
b3dubG9hZF9Kb2IqPihkb3dubG9hZCktPnJlcXVlc3QgPSBhZG9wdFJlZihld2tfdXJsX3JlcXVl
c3RfbmV3KHdrVVJMUmVxdWVzdC5nZXQoKSkpOwogICAgIH0KIAotICAgIHJldHVybiBkb3dubG9h
ZC0+cmVxdWVzdDsKKyAgICByZXR1cm4gZG93bmxvYWQtPnJlcXVlc3QuZ2V0KCk7CiB9CiAKIEV3
a19VcmxfUmVzcG9uc2UqIGV3a19kb3dubG9hZF9qb2JfcmVzcG9uc2VfZ2V0KGNvbnN0IEV3a19E
b3dubG9hZF9Kb2IqIGRvd25sb2FkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhLmNwcAppbmRleCA1MzY3ZmVmLi4yN2E1
MWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2
aWdhdGlvbl9kYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfbmF2aWdhdGlvbl9kYXRhLmNwcApAQCAtMjYsNDcgKzI2LDE1IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiZXdrX25hdmlnYXRpb25fZGF0YS5oIgogCi0jaW5jbHVkZSAiV0tB
UElDYXN0LmgiCi0jaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiV0tS
ZXRhaW5QdHIuaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaCIKLSNp
bmNsdWRlICJld2tfcHJpdmF0ZS5oIgotI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdF9wcml2YXRl
LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLS8qKgotICogXHN0cnVjdCAgX0V3a19O
YXZpZ2F0aW9uX0RhdGEKLSAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBuYXZpZ2F0aW9uIGRhdGEg
ZGV0YWlscy4KLSAqLwotc3RydWN0IF9Fd2tfTmF2aWdhdGlvbl9EYXRhIHsKLSAgICB1bnNpZ25l
ZCBfX3JlZjsgLyoqPCB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBvYmplY3QgKi8KLSAgICBX
S0VpbmFTaGFyZWRTdHJpbmcgdGl0bGU7Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKLSAg
ICBFd2tfVXJsX1JlcXVlc3QqIHJlcXVlc3Q7Ci0KLSAgICBfRXdrX05hdmlnYXRpb25fRGF0YShX
S05hdmlnYXRpb25EYXRhUmVmIGRhdGFSZWYpCi0gICAgICAgIDogX19yZWYoMSkKLSAgICAgICAg
LCB0aXRsZShBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weVRpdGxlKGRhdGFSZWYpKQotICAg
ICAgICAsIHVybChBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weVVSTChkYXRhUmVmKSkKLSAg
ICAgICAgLCByZXF1ZXN0KDApCi0gICAgewotICAgICAgICBXS1JldGFpblB0cjxXS1VSTFJlcXVl
c3RSZWY+IHJlcXVlc3RXSyhBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weU9yaWdpbmFsUmVx
dWVzdChkYXRhUmVmKSk7Ci0gICAgICAgIHJlcXVlc3QgPSBld2tfdXJsX3JlcXVlc3RfbmV3KHJl
cXVlc3RXSy5nZXQoKSk7Ci0gICAgfQotCi0gICAgfl9Fd2tfTmF2aWdhdGlvbl9EYXRhKCkKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVCghX19yZWYpOwotICAgICAgICBld2tfdXJsX3JlcXVlc3RfdW5y
ZWYocmVxdWVzdCk7Ci0gICAgfQotfTsKLQogRXdrX05hdmlnYXRpb25fRGF0YSogZXdrX25hdmln
YXRpb25fZGF0YV9yZWYoRXdrX05hdmlnYXRpb25fRGF0YSogZGF0YSkKIHsKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZGF0YSwgMCk7CiAKLSAgICArK2RhdGEtPl9fcmVmOwor
ICAgIGRhdGEtPnJlZigpOwogCiAgICAgcmV0dXJuIGRhdGE7CiB9CkBAIC03NSwxMCArNDMsNyBA
QCB2b2lkIGV3a19uYXZpZ2F0aW9uX2RhdGFfdW5yZWYoRXdrX05hdmlnYXRpb25fRGF0YSogZGF0
YSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihkYXRhKTsKIAotICAgIGlmICgt
LWRhdGEtPl9fcmVmKQotICAgICAgICByZXR1cm47Ci0KLSAgICBkZWxldGUgZGF0YTsKKyAgICBk
YXRhLT5kZXJlZigpOwogfQogCiBjb25zdCBjaGFyKiBld2tfbmF2aWdhdGlvbl9kYXRhX3RpdGxl
X2dldChjb25zdCBFd2tfTmF2aWdhdGlvbl9EYXRhKiBkYXRhKQpAQCAtOTIsNyArNTcsNyBAQCBF
d2tfVXJsX1JlcXVlc3QqIGV3a19uYXZpZ2F0aW9uX2RhdGFfb3JpZ2luYWxfcmVxdWVzdF9nZXQo
Y29uc3QgRXdrX05hdmlnYXRpb25fRAogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChkYXRhLCAwKTsKIAotICAgIHJldHVybiBkYXRhLT5yZXF1ZXN0OworICAgIHJldHVybiBk
YXRhLT5yZXF1ZXN0LmdldCgpOwogfQogCiBjb25zdCBjaGFyKiBld2tfbmF2aWdhdGlvbl9kYXRh
X3VybF9nZXQoY29uc3QgRXdrX05hdmlnYXRpb25fRGF0YSogZGF0YSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0
YV9wcml2YXRlLmgKaW5kZXggNDMwYzYxNS4uYjk5ZTUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YV9wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YV9w
cml2YXRlLmgKQEAgLTI2LDcgKzI2LDMxIEBACiAjaWZuZGVmIGV3a19uYXZpZ2F0aW9uX2RhdGFf
cHJpdmF0ZV9oCiAjZGVmaW5lIGV3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZV9oCiAKKy8vI2lu
Y2x1ZGUgIkVXS1JlZkNvdW50ZWQuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRl
ICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNsdWRlICJXS05hdmlnYXRpb25EYXRhLmgiCisj
aW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2luY2x1
ZGUgImV3a191cmxfcmVxdWVzdF9wcml2YXRlLmgiCisKKy8qKgorICogXHN0cnVjdCAgX0V3a19O
YXZpZ2F0aW9uX0RhdGEKKyAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBuYXZpZ2F0aW9uIGRhdGEg
ZGV0YWlscy4KKyAqLworc3RydWN0IF9Fd2tfTmF2aWdhdGlvbl9EYXRhIDogcHVibGljIFJlZkNv
dW50ZWQ8X0V3a19OYXZpZ2F0aW9uX0RhdGE+IHsKKyAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdGl0
bGU7CisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKKyAgICBSZWZQdHI8RXdrX1VybF9SZXF1
ZXN0PiByZXF1ZXN0OworCisgICAgX0V3a19OYXZpZ2F0aW9uX0RhdGEoV0tOYXZpZ2F0aW9uRGF0
YVJlZiBkYXRhUmVmKQorICAgICAgICA6IHRpdGxlKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFD
b3B5VGl0bGUoZGF0YVJlZikpCisgICAgICAgICwgdXJsKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRh
dGFDb3B5VVJMKGRhdGFSZWYpKQorICAgIHsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZXF1
ZXN0UmVmPiByZXF1ZXN0V0soQWRvcHRXSywgV0tOYXZpZ2F0aW9uRGF0YUNvcHlPcmlnaW5hbFJl
cXVlc3QoZGF0YVJlZikpOworICAgICAgICByZXF1ZXN0ID0gYWRvcHRSZWYoZXdrX3VybF9yZXF1
ZXN0X25ldyhyZXF1ZXN0V0suZ2V0KCkpKTsKKyAgICB9Cit9OwogCiB0eXBlZGVmIHN0cnVjdCBf
RXdrX05hdmlnYXRpb25fRGF0YSBFd2tfTmF2aWdhdGlvbl9EYXRhOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVj
aXNpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRp
b25fcG9saWN5X2RlY2lzaW9uLmNwcAppbmRleCBkNDY4MDVmLi42ZWJiZWJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lf
ZGVjaXNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19u
YXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAKQEAgLTQ3LDEwICs0NywxMCBAQCBzdHJ1Y3Qg
X0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiB7CiAgICAgRXdrX05hdmlnYXRpb25fVHlw
ZSBuYXZpZ2F0aW9uVHlwZTsKICAgICBFdmVudF9Nb3VzZV9CdXR0b24gbW91c2VCdXR0b247CiAg
ICAgRXZlbnRfTW9kaWZpZXJfS2V5cyBtb2RpZmllcnM7Ci0gICAgRXdrX1VybF9SZXF1ZXN0KiBy
ZXF1ZXN0OworICAgIFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3Q7CiAgICAgV0tFaW5h
U2hhcmVkU3RyaW5nIGZyYW1lTmFtZTsKIAotICAgIF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVj
aXNpb24oV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIF9saXN0ZW5lciwgRXdrX05hdmlnYXRpb25f
VHlwZSBfbmF2aWdhdGlvblR5cGUsIEV2ZW50X01vdXNlX0J1dHRvbiBfbW91c2VCdXR0b24sIEV2
ZW50X01vZGlmaWVyX0tleXMgX21vZGlmaWVycywgRXdrX1VybF9SZXF1ZXN0KiBfcmVxdWVzdCwg
Y29uc3QgY2hhciogX2ZyYW1lTmFtZSkKKyAgICBfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lz
aW9uKFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBfbGlzdGVuZXIsIEV3a19OYXZpZ2F0aW9uX1R5
cGUgX25hdmlnYXRpb25UeXBlLCBFdmVudF9Nb3VzZV9CdXR0b24gX21vdXNlQnV0dG9uLCBFdmVu
dF9Nb2RpZmllcl9LZXlzIF9tb2RpZmllcnMsIFBhc3NSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiBf
cmVxdWVzdCwgY29uc3QgY2hhciogX2ZyYW1lTmFtZSkKICAgICAgICAgOiBfX3JlZigxKQogICAg
ICAgICAsIGxpc3RlbmVyKF9saXN0ZW5lcikKICAgICAgICAgLCBhY3RlZFVwb25CeUNsaWVudChm
YWxzZSkKQEAgLTY4LDggKzY4LDYgQEAgc3RydWN0IF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVj
aXNpb24gewogICAgICAgICAvLyBUaGlzIGlzIHRoZSBkZWZhdWx0IGNob2ljZSBmb3IgYWxsIHBv
bGljeSBkZWNpc2lvbnMgaW4gV2ViUGFnZVByb3h5LmNwcC4KICAgICAgICAgaWYgKCFhY3RlZFVw
b25CeUNsaWVudCkKICAgICAgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5l
ci5nZXQoKSk7Ci0KLSAgICAgICAgZXdrX3VybF9yZXF1ZXN0X3VucmVmKHJlcXVlc3QpOwogICAg
IH0KIH07CiAKQEAgLTEyNCw3ICsxMjIsNyBAQCBFd2tfVXJsX1JlcXVlc3QqIGV3a19uYXZpZ2F0
aW9uX3BvbGljeV9yZXF1ZXN0X2dldChjb25zdCBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRAogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChkZWNpc2lvbiwgMCk7CiAKLSAgICBy
ZXR1cm4gZGVjaXNpb24tPnJlcXVlc3Q7CisgICAgcmV0dXJuIGRlY2lzaW9uLT5yZXF1ZXN0Lmdl
dCgpOwogfQogCiB2b2lkIGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9hY2NlcHQoRXdr
X05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBkZWNpc2lvbikKQEAgLTE3Nyw2ICsxNzUsNiBA
QCBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24qIGV3a19uYXZpZ2F0aW9uX3BvbGljeV9k
ZWNpc2lvbl9uZXcoV0tGcmFtZU5hdmlnYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEV3a19OYXZpZ2F0aW9uX1R5cGU+KG5hdmlnYXRp
b25UeXBlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0aWNfY2FzdDxFdmVudF9Nb3VzZV9CdXR0b24+KG1vdXNlQnV0dG9uKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxFdmVudF9Nb2Rp
Zmllcl9LZXlzPihtb2RpZmllcnMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGV3a191cmxfcmVxdWVzdF9uZXcocmVxdWVzdCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRvcHRSZWYoZXdrX3VybF9yZXF1ZXN0
X25ldyhyZXF1ZXN0KSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZnJhbWVOYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCmluZGV4IDllN2M4MGMuLjUxMTlmMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0
LmNwcApAQCAtMjYsNDQgKzI2LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
ZXdrX3VybF9yZXF1ZXN0LmgiCiAKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJX
S0VpbmFTaGFyZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJXS1VSTC5oIgotI2luY2x1ZGUgIldLVVJM
UmVxdWVzdC5oIgotI2luY2x1ZGUgIldlYlVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJld2tfdXJs
X3JlcXVlc3RfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAotLyoqCi0gKiBcc3RydWN0ICBfRXdrX1VybF9SZXF1ZXN0
Ci0gKiBAYnJpZWYgICBDb250YWlucyB0aGUgVVJMIHJlcXVlc3QgZGF0YS4KLSAqLwotc3RydWN0
IF9Fd2tfVXJsX1JlcXVlc3QgewotICAgIHVuc2lnbmVkIGludCBfX3JlZjsgLyoqPCB0aGUgcmVm
ZXJlbmNlIGNvdW50IG9mIHRoZSBvYmplY3QgKi8KLQotICAgIFdLRWluYVNoYXJlZFN0cmluZyB1
cmw7Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIGZpcnN0X3BhcnR5OwotICAgIFdLRWluYVNoYXJl
ZFN0cmluZyBodHRwX21ldGhvZDsKLQotICAgIF9Fd2tfVXJsX1JlcXVlc3QoV0tVUkxSZXF1ZXN0
UmVmIHJlcXVlc3RSZWYpCi0gICAgICAgIDogX19yZWYoMSkKLSAgICAgICAgLCB1cmwoQWRvcHRX
SywgV0tVUkxSZXF1ZXN0Q29weVVSTChyZXF1ZXN0UmVmKSkKLSAgICAgICAgLCBmaXJzdF9wYXJ0
eShBZG9wdFdLLCBXS1VSTFJlcXVlc3RDb3B5Rmlyc3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdFJl
ZikpCi0gICAgICAgICwgaHR0cF9tZXRob2QoQWRvcHRXSywgV0tVUkxSZXF1ZXN0Q29weUhUVFBN
ZXRob2QocmVxdWVzdFJlZikpCi0gICAgeyB9Ci0KLSAgICB+X0V3a19VcmxfUmVxdWVzdCgpCi0g
ICAgewotICAgICAgICBBU1NFUlQoIV9fcmVmKTsKLSAgICB9Ci19OwotCiBFd2tfVXJsX1JlcXVl
c3QqIGV3a191cmxfcmVxdWVzdF9yZWYoRXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0KQogewogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXF1ZXN0LCAwKTsKLSAgICArK3JlcXVl
c3QtPl9fcmVmOworICAgIHJlcXVlc3QtPnJlZigpOwogCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9
CkBAIC03MiwxMCArNDIsNyBAQCB2b2lkIGV3a191cmxfcmVxdWVzdF91bnJlZihFd2tfVXJsX1Jl
cXVlc3QqIHJlcXVlc3QpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4ocmVxdWVz
dCk7CiAKLSAgICBpZiAoLS1yZXF1ZXN0LT5fX3JlZikKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
ZGVsZXRlIHJlcXVlc3Q7CisgICAgcmVxdWVzdC0+ZGVyZWYoKTsKIH0KIAogY29uc3QgY2hhciog
ZXdrX3VybF9yZXF1ZXN0X3VybF9nZXQoY29uc3QgRXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1
ZXN0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxf
cmVxdWVzdF9wcml2YXRlLmgKaW5kZXggNTQ4YjZlOS4uMjMzNGQ1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJp
dmF0ZS5oCkBAIC0yNiw2ICsyNiwzMCBAQAogI2lmbmRlZiBld2tfdXJsX3JlcXVlc3RfcHJpdmF0
ZV9oCiAjZGVmaW5lIGV3a191cmxfcmVxdWVzdF9wcml2YXRlX2gKIAorLy8jaW5jbHVkZSAiRVdL
UmVmQ291bnRlZC5oIgorI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgorI2luY2x1ZGUg
IldLVVJMLmgiCisjaW5jbHVkZSAiV0tVUkxSZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViVVJMUmVx
dWVzdC5oIgorCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfVXJsX1JlcXVlc3QKKyAqIEBicmllZiAg
IENvbnRhaW5zIHRoZSBVUkwgcmVxdWVzdCBkYXRhLgorICovCitzdHJ1Y3QgX0V3a19VcmxfUmVx
dWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfVXJsX1JlcXVlc3Q+IHsKKyAgICBXS0VpbmFT
aGFyZWRTdHJpbmcgdXJsOworICAgIFdLRWluYVNoYXJlZFN0cmluZyBmaXJzdF9wYXJ0eTsKKyAg
ICBXS0VpbmFTaGFyZWRTdHJpbmcgaHR0cF9tZXRob2Q7CisKKyAgICBfRXdrX1VybF9SZXF1ZXN0
KFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKQorICAgICAgICA6IHVybChBZG9wdFdLLCBXS1VS
TFJlcXVlc3RDb3B5VVJMKHJlcXVlc3RSZWYpKQorICAgICAgICAsIGZpcnN0X3BhcnR5KEFkb3B0
V0ssIFdLVVJMUmVxdWVzdENvcHlGaXJzdFBhcnR5Rm9yQ29va2llcyhyZXF1ZXN0UmVmKSkKKyAg
ICAgICAgLCBodHRwX21ldGhvZChBZG9wdFdLLCBXS1VSTFJlcXVlc3RDb3B5SFRUUE1ldGhvZChy
ZXF1ZXN0UmVmKSkKKyAgICB7IH0KK307CisKK3R5cGVkZWYgc3RydWN0IF9Fd2tfVXJsX1JlcXVl
c3QgRXdrX1VybF9SZXF1ZXN0OworCiBFd2tfVXJsX1JlcXVlc3QqIGV3a191cmxfcmVxdWVzdF9u
ZXcoV0tVUkxSZXF1ZXN0UmVmKTsKIAogI2VuZGlmIC8vIGV3a191cmxfcmVxdWVzdF9wcml2YXRl
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
X3Jlc291cmNlX2xvYWRfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50LmNwcAppbmRleCA0N2UwZDE2Li40Njll
MTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
d19yZXNvdXJjZV9sb2FkX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnQuY3BwCkBAIC01NywxOCArNTcs
MTYgQEAgc3RhdGljIHZvaWQgZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UoV0tQYWdlUmVmLCBX
S0ZyYW1lUmVmIHdrRnJhbWUsIHVpbnQ2NF90IHIKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4g
d2tVcmwoQWRvcHRXSywgV0tVUkxSZXF1ZXN0Q29weVVSTCh3a1JlcXVlc3QpKTsKIAogICAgIEV3
a19SZXNvdXJjZSogcmVzb3VyY2UgPSBld2tfcmVzb3VyY2VfbmV3KHRvSW1wbCh3a1VybC5nZXQo
KSktPnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGlzTWFpblJlc291cmNlKTsKLSAgICBFd2tfVXJs
X1JlcXVlc3QqIHJlcXVlc3QgPSBld2tfdXJsX3JlcXVlc3RfbmV3KHdrUmVxdWVzdCk7Ci0gICAg
ZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9pbml0aWF0ZWQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCBy
ZXNvdXJjZUlkZW50aWZpZXIsIHJlc291cmNlLCByZXF1ZXN0KTsKKyAgICBSZWZQdHI8RXdrX1Vy
bF9SZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRSZWYoZXdrX3VybF9yZXF1ZXN0X25ldyh3a1JlcXVl
c3QpKTsKKyAgICBld2tfdmlld19yZXNvdXJjZV9sb2FkX2luaXRpYXRlZCh0b0V3a1ZpZXcoY2xp
ZW50SW5mbyksIHJlc291cmNlSWRlbnRpZmllciwgcmVzb3VyY2UsIHJlcXVlc3QuZ2V0KCkpOwog
ICAgIGV3a19yZXNvdXJjZV91bnJlZihyZXNvdXJjZSk7Ci0gICAgZXdrX3VybF9yZXF1ZXN0X3Vu
cmVmKHJlcXVlc3QpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRTZW5kUmVxdWVzdEZvclJlc291cmNl
KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBXS1VS
TFJlcXVlc3RSZWYgd2tSZXF1ZXN0LCBXS1VSTFJlc3BvbnNlUmVmIHdrUmVkaXJlY3RSZXNwb25z
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICBFd2tfVXJsX1JlcXVlc3QqIHJlcXVl
c3QgPSBld2tfdXJsX3JlcXVlc3RfbmV3KHdrUmVxdWVzdCk7CisgICAgUmVmUHRyPEV3a19Vcmxf
UmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0UmVmKGV3a191cmxfcmVxdWVzdF9uZXcod2tSZXF1ZXN0
KSk7CiAgICAgRXdrX1VybF9SZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSA9IHdrUmVkaXJlY3RS
ZXNwb25zZSA/IGV3a191cmxfcmVzcG9uc2VfbmV3KHRvSW1wbCh3a1JlZGlyZWN0UmVzcG9uc2Up
LT5yZXNvdXJjZVJlc3BvbnNlKCkpIDogMDsKLSAgICBld2tfdmlld19yZXNvdXJjZV9yZXF1ZXN0
X3NlbnQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3Qs
IHJlZGlyZWN0UmVzcG9uc2UpOwotICAgIGV3a191cmxfcmVxdWVzdF91bnJlZihyZXF1ZXN0KTsK
KyAgICBld2tfdmlld19yZXNvdXJjZV9yZXF1ZXN0X3NlbnQodG9Fd2tWaWV3KGNsaWVudEluZm8p
LCByZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3QuZ2V0KCksIHJlZGlyZWN0UmVzcG9uc2UpOwog
ICAgIGlmIChyZWRpcmVjdFJlc3BvbnNlKQogICAgICAgICBld2tfdXJsX3Jlc3BvbnNlX3VucmVm
KHJlZGlyZWN0UmVzcG9uc2UpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168679</attachid>
            <date>2012-10-15 04:43:30 -0700</date>
            <delta_ts>2012-10-15 05:58:57 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug99174_v5</filename>
            <type>text/plain</type>
            <size>15923</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGNhMDQxZGU1ODlkYjE0OWE0YzljOTI1YTUyNzZiYWIxM2NlZDQwYmQKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
TW9uIE9jdCAxNSAxNDoyNDozMSAyMDEyICswMzAwCgogICAgYnVnOTkxNzQKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggZTY0YzYwMi4uYTI5YmY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTEw
LTE1ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gRW5jYXBzdWxhdGUgcmVmIGNvdW50aW5nIGZvciBFd2sgb2Jq
ZWN0cyBpbiBhIHBhcmVudCBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTkxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFd2sgb2JqZWN0cyBjYW4gYmUgaW5oZXJpdGVkIGZyb20gUmVmQ291bnRl
ZCBjbGFzcywgc28gdGhhdCByZWYgY291bnRpbmcgaXMgZW5jYXBzdWxhdGVkIGFuZCBSZWZQdHIg
Y2FuIGJlIHVzZWQuCisgICAgICAgIEFwcGxpZWQgdGhlIG5ldyBhcHByb2FjaCBmb3IgRXdrX05h
dmlnYXRpb25fRGF0YSBhbmQgRXdrX1VybF9SZXF1ZXN0IG9iamVjdHMgYXMgYW4gZXhhbXBsZS4K
KyAgICAgICAgVGhlIHJlcXVpcmVtZW50IG9mIGFkb3B0aW9uIGNhbiBiZSBzYXRpc2ZpZWQgYXMg
bG9uZyBhcyB3ZSBrZWVwIGRlYWxpbmcgd2l0aCBzbWFydCBwb2ludGVycyBvbmx5LCBpbiBjYXNl
IGV4dGVybmFsIGNsaWVudCBwcm92aWRlcworICAgICAgICBhbiBvYmplY3QgaGF2aW5nIGFscmVh
ZHkgcmVmcyBhcyBhIHJvdyBwb2ludGVyIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpIGNhbiBi
ZSBzZXQgZXhwbGljaXRseSBpbiB0aGlzIHNwZWNpZmljIHBsYWNlLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfaGlzdG9yeV9jbGllbnQuY3BwOgorICAgICAgICAo
ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19kb3dubG9hZF9qb2IuY3BwOgorICAgICAgICAoX0V3a19Eb3dubG9hZF9Kb2IpOgor
ICAgICAgICAoX0V3a19Eb3dubG9hZF9Kb2I6Ol9Fd2tfRG93bmxvYWRfSm9iKToKKyAgICAgICAg
KF9Fd2tfRG93bmxvYWRfSm9iOjp+X0V3a19Eb3dubG9hZF9Kb2IpOgorICAgICAgICAoZXdrX2Rv
d25sb2FkX2pvYl9yZXF1ZXN0X2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X25hdmlnYXRpb25fZGF0YS5jcHA6CisgICAgICAgIChld2tfbmF2aWdhdGlvbl9kYXRhX3JlZik6
CisgICAgICAgIChld2tfbmF2aWdhdGlvbl9kYXRhX3VucmVmKToKKyAgICAgICAgKGV3a19uYXZp
Z2F0aW9uX2RhdGFfb3JpZ2luYWxfcmVxdWVzdF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZS5oOgorICAgICAgICAoX0V3a19OYXZp
Z2F0aW9uX0RhdGEpOgorICAgICAgICAoX0V3a19OYXZpZ2F0aW9uX0RhdGE6Ol9Fd2tfTmF2aWdh
dGlvbl9EYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9w
b2xpY3lfZGVjaXNpb24uY3BwOgorICAgICAgICAoX0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNp
c2lvbik6CisgICAgICAgIChfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpfRXdrX05h
dmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKToKKyAgICAgICAgKF9Fd2tfTmF2aWdhdGlvbl9Qb2xp
Y3lfRGVjaXNpb246On5fRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKToKKyAgICAgICAg
KGV3a19uYXZpZ2F0aW9uX3BvbGljeV9yZXF1ZXN0X2dldCk6CisgICAgICAgIChld2tfbmF2aWdh
dGlvbl9wb2xpY3lfZGVjaXNpb25fbmV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdXJsX3JlcXVlc3QuY3BwOgorICAgICAgICAoZXdrX3VybF9yZXF1ZXN0X3JlZik6CisgICAg
ICAgIChld2tfdXJsX3JlcXVlc3RfdW5yZWYpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmg6CisgICAgICAgIChfRXdrX1VybF9SZXF1ZXN0KToK
KyAgICAgICAgKF9Fd2tfVXJsX1JlcXVlc3Q6Ol9Fd2tfVXJsX1JlcXVlc3QpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50LmNwcDoKKyAg
ICAgICAgKGRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKToKKyAgICAgICAgKGRpZFNlbmRSZXF1
ZXN0Rm9yUmVzb3VyY2UpOgorCiAyMDEyLTEwLTE0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSB3b3JsZC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2hpc3RvcnlfY2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2hpc3Rvcnlf
Y2xpZW50LmNwcAppbmRleCAxYWI5NWU0Li5mZDFiODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfaGlzdG9yeV9j
bGllbnQuY3BwCkBAIC01NSw5ICs1NSw4IEBAIHN0YXRpYyB2b2lkIGRpZE5hdmlnYXRlV2l0aE5h
dmlnYXRpb25EYXRhKFdLQ29udGV4dFJlZiwgV0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdhCiAgICAg
aWYgKCFoaXN0b3J5RGVsZWdhdGUtPm5hdmlnYXRlX2Z1bmMpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIEV3a19OYXZpZ2F0aW9uX0RhdGEqIG5hdmlnYXRpb25EYXRhRXdrID0gZXdrX25hdmlnYXRp
b25fZGF0YV9uZXcobmF2aWdhdGlvbkRhdGEpOwotICAgIGhpc3RvcnlEZWxlZ2F0ZS0+bmF2aWdh
dGVfZnVuYyhld2tfdmlld19mcm9tX3BhZ2VfZ2V0KHRvSW1wbChwYWdlKSksIG5hdmlnYXRpb25E
YXRhRXdrLCBoaXN0b3J5RGVsZWdhdGUtPnVzZXJfZGF0YSk7Ci0gICAgZXdrX25hdmlnYXRpb25f
ZGF0YV91bnJlZihuYXZpZ2F0aW9uRGF0YUV3ayk7CisgICAgUmVmUHRyPEV3a19OYXZpZ2F0aW9u
X0RhdGE+IG5hdmlnYXRpb25EYXRhRXdrID0gYWRvcHRSZWYoZXdrX25hdmlnYXRpb25fZGF0YV9u
ZXcobmF2aWdhdGlvbkRhdGEpKTsKKyAgICBoaXN0b3J5RGVsZWdhdGUtPm5hdmlnYXRlX2Z1bmMo
ZXdrX3ZpZXdfZnJvbV9wYWdlX2dldCh0b0ltcGwocGFnZSkpLCBuYXZpZ2F0aW9uRGF0YUV3ay5n
ZXQoKSwgaGlzdG9yeURlbGVnYXRlLT51c2VyX2RhdGEpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QoV0tDb250ZXh0UmVmLCBXS1BhZ2VSZWYgcGFnZSwgV0tVUkxS
ZWYgc291cmNlVVJMLCBXS1VSTFJlZiBkZXN0aW5hdGlvblVSTCwgV0tGcmFtZVJlZiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19kb3dubG9hZF9qb2IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2Rvd25sb2FkX2pvYi5jcHAKaW5kZXggNjEyOTc5Mi4uMTVhOTViMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYi5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pv
Yi5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IF9Fd2tfRG93bmxvYWRfSm9iIHsKICAgICBE
b3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5OwogICAgIEV2YXNfT2JqZWN0KiB2aWV3OwogICAg
IEV3a19Eb3dubG9hZF9Kb2JfU3RhdGUgc3RhdGU7Ci0gICAgRXdrX1VybF9SZXF1ZXN0KiByZXF1
ZXN0OworICAgIFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3Q7CiAgICAgRXdrX1VybF9S
ZXNwb25zZSogcmVzcG9uc2U7CiAgICAgZG91YmxlIHN0YXJ0VGltZTsKICAgICBkb3VibGUgZW5k
VGltZTsKQEAgLTU5LDcgKzU5LDYgQEAgc3RydWN0IF9Fd2tfRG93bmxvYWRfSm9iIHsKICAgICAg
ICAgLCBkb3dubG9hZFByb3h5KGRvd25sb2FkKQogICAgICAgICAsIHZpZXcoZXdrVmlldykKICAg
ICAgICAgLCBzdGF0ZShFV0tfRE9XTkxPQURfSk9CX1NUQVRFX05PVF9TVEFSVEVEKQotICAgICAg
ICAsIHJlcXVlc3QoMCkKICAgICAgICAgLCByZXNwb25zZSgwKQogICAgICAgICAsIHN0YXJ0VGlt
ZSgtMSkKICAgICAgICAgLCBlbmRUaW1lKC0xKQpAQCAtNjksOCArNjgsNiBAQCBzdHJ1Y3QgX0V3
a19Eb3dubG9hZF9Kb2IgewogICAgIH5fRXdrX0Rvd25sb2FkX0pvYigpCiAgICAgewogICAgICAg
ICBBU1NFUlQoIV9fcmVmKTsKLSAgICAgICAgaWYgKHJlcXVlc3QpCi0gICAgICAgICAgICBld2tf
dXJsX3JlcXVlc3RfdW5yZWYocmVxdWVzdCk7CiAgICAgICAgIGlmIChyZXNwb25zZSkKICAgICAg
ICAgICAgIGV3a191cmxfcmVzcG9uc2VfdW5yZWYocmVzcG9uc2UpOwogICAgIH0KQEAgLTEzMywx
MCArMTMwLDEwIEBAIEV3a19VcmxfUmVxdWVzdCogZXdrX2Rvd25sb2FkX2pvYl9yZXF1ZXN0X2dl
dChjb25zdCBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCkKICAgICBpZiAoIWRvd25sb2FkLT5y
ZXF1ZXN0KSB7CiAgICAgICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChkb3dubG9h
ZC0+ZG93bmxvYWRQcm94eSwgMCk7CiAgICAgICAgIFdLUmV0YWluUHRyPFdLVVJMUmVxdWVzdFJl
Zj4gd2tVUkxSZXF1ZXN0KEFkb3B0V0ssIHRvQVBJKFdlYlVSTFJlcXVlc3Q6OmNyZWF0ZShkb3du
bG9hZC0+ZG93bmxvYWRQcm94eS0+cmVxdWVzdCgpKS5sZWFrUmVmKCkpKTsKLSAgICAgICAgY29u
c3RfY2FzdDxFd2tfRG93bmxvYWRfSm9iKj4oZG93bmxvYWQpLT5yZXF1ZXN0ID0gZXdrX3VybF9y
ZXF1ZXN0X25ldyh3a1VSTFJlcXVlc3QuZ2V0KCkpOworICAgICAgICBjb25zdF9jYXN0PEV3a19E
b3dubG9hZF9Kb2IqPihkb3dubG9hZCktPnJlcXVlc3QgPSBhZG9wdFJlZihld2tfdXJsX3JlcXVl
c3RfbmV3KHdrVVJMUmVxdWVzdC5nZXQoKSkpOwogICAgIH0KIAotICAgIHJldHVybiBkb3dubG9h
ZC0+cmVxdWVzdDsKKyAgICByZXR1cm4gZG93bmxvYWQtPnJlcXVlc3QuZ2V0KCk7CiB9CiAKIEV3
a19VcmxfUmVzcG9uc2UqIGV3a19kb3dubG9hZF9qb2JfcmVzcG9uc2VfZ2V0KGNvbnN0IEV3a19E
b3dubG9hZF9Kb2IqIGRvd25sb2FkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhLmNwcAppbmRleCA1MzY3ZmVmLi4yN2E1
MWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2
aWdhdGlvbl9kYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfbmF2aWdhdGlvbl9kYXRhLmNwcApAQCAtMjYsNDcgKzI2LDE1IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiZXdrX25hdmlnYXRpb25fZGF0YS5oIgogCi0jaW5jbHVkZSAiV0tB
UElDYXN0LmgiCi0jaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiV0tS
ZXRhaW5QdHIuaCIKICNpbmNsdWRlICJld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaCIKLSNp
bmNsdWRlICJld2tfcHJpdmF0ZS5oIgotI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdF9wcml2YXRl
LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLS8qKgotICogXHN0cnVjdCAgX0V3a19O
YXZpZ2F0aW9uX0RhdGEKLSAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBuYXZpZ2F0aW9uIGRhdGEg
ZGV0YWlscy4KLSAqLwotc3RydWN0IF9Fd2tfTmF2aWdhdGlvbl9EYXRhIHsKLSAgICB1bnNpZ25l
ZCBfX3JlZjsgLyoqPCB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBvYmplY3QgKi8KLSAgICBX
S0VpbmFTaGFyZWRTdHJpbmcgdGl0bGU7Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKLSAg
ICBFd2tfVXJsX1JlcXVlc3QqIHJlcXVlc3Q7Ci0KLSAgICBfRXdrX05hdmlnYXRpb25fRGF0YShX
S05hdmlnYXRpb25EYXRhUmVmIGRhdGFSZWYpCi0gICAgICAgIDogX19yZWYoMSkKLSAgICAgICAg
LCB0aXRsZShBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weVRpdGxlKGRhdGFSZWYpKQotICAg
ICAgICAsIHVybChBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weVVSTChkYXRhUmVmKSkKLSAg
ICAgICAgLCByZXF1ZXN0KDApCi0gICAgewotICAgICAgICBXS1JldGFpblB0cjxXS1VSTFJlcXVl
c3RSZWY+IHJlcXVlc3RXSyhBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weU9yaWdpbmFsUmVx
dWVzdChkYXRhUmVmKSk7Ci0gICAgICAgIHJlcXVlc3QgPSBld2tfdXJsX3JlcXVlc3RfbmV3KHJl
cXVlc3RXSy5nZXQoKSk7Ci0gICAgfQotCi0gICAgfl9Fd2tfTmF2aWdhdGlvbl9EYXRhKCkKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVCghX19yZWYpOwotICAgICAgICBld2tfdXJsX3JlcXVlc3RfdW5y
ZWYocmVxdWVzdCk7Ci0gICAgfQotfTsKLQogRXdrX05hdmlnYXRpb25fRGF0YSogZXdrX25hdmln
YXRpb25fZGF0YV9yZWYoRXdrX05hdmlnYXRpb25fRGF0YSogZGF0YSkKIHsKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZGF0YSwgMCk7CiAKLSAgICArK2RhdGEtPl9fcmVmOwor
ICAgIGRhdGEtPnJlZigpOwogCiAgICAgcmV0dXJuIGRhdGE7CiB9CkBAIC03NSwxMCArNDMsNyBA
QCB2b2lkIGV3a19uYXZpZ2F0aW9uX2RhdGFfdW5yZWYoRXdrX05hdmlnYXRpb25fRGF0YSogZGF0
YSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihkYXRhKTsKIAotICAgIGlmICgt
LWRhdGEtPl9fcmVmKQotICAgICAgICByZXR1cm47Ci0KLSAgICBkZWxldGUgZGF0YTsKKyAgICBk
YXRhLT5kZXJlZigpOwogfQogCiBjb25zdCBjaGFyKiBld2tfbmF2aWdhdGlvbl9kYXRhX3RpdGxl
X2dldChjb25zdCBFd2tfTmF2aWdhdGlvbl9EYXRhKiBkYXRhKQpAQCAtOTIsNyArNTcsNyBAQCBF
d2tfVXJsX1JlcXVlc3QqIGV3a19uYXZpZ2F0aW9uX2RhdGFfb3JpZ2luYWxfcmVxdWVzdF9nZXQo
Y29uc3QgRXdrX05hdmlnYXRpb25fRAogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChkYXRhLCAwKTsKIAotICAgIHJldHVybiBkYXRhLT5yZXF1ZXN0OworICAgIHJldHVybiBk
YXRhLT5yZXF1ZXN0LmdldCgpOwogfQogCiBjb25zdCBjaGFyKiBld2tfbmF2aWdhdGlvbl9kYXRh
X3VybF9nZXQoY29uc3QgRXdrX05hdmlnYXRpb25fRGF0YSogZGF0YSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0
YV9wcml2YXRlLmgKaW5kZXggNDMwYzYxNS4uNmU0MmRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YV9wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YV9w
cml2YXRlLmgKQEAgLTI2LDcgKzI2LDMwIEBACiAjaWZuZGVmIGV3a19uYXZpZ2F0aW9uX2RhdGFf
cHJpdmF0ZV9oCiAjZGVmaW5lIGV3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZV9oCiAKKyNpbmNs
dWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNs
dWRlICJXS05hdmlnYXRpb25EYXRhLmgiCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNpbmNs
dWRlICJld2tfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdF9wcml2YXRlLmgi
CisKKy8qKgorICogXHN0cnVjdCAgX0V3a19OYXZpZ2F0aW9uX0RhdGEKKyAqIEBicmllZiAgIENv
bnRhaW5zIHRoZSBuYXZpZ2F0aW9uIGRhdGEgZGV0YWlscy4KKyAqLworc3RydWN0IF9Fd2tfTmF2
aWdhdGlvbl9EYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8X0V3a19OYXZpZ2F0aW9uX0RhdGE+IHsK
KyAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdGl0bGU7CisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVy
bDsKKyAgICBSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiByZXF1ZXN0OworCisgICAgX0V3a19OYXZp
Z2F0aW9uX0RhdGEoV0tOYXZpZ2F0aW9uRGF0YVJlZiBkYXRhUmVmKQorICAgICAgICA6IHRpdGxl
KEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFDb3B5VGl0bGUoZGF0YVJlZikpCisgICAgICAgICwg
dXJsKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFDb3B5VVJMKGRhdGFSZWYpKQorICAgIHsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZXF1ZXN0UmVmPiByZXF1ZXN0V0soQWRvcHRXSywgV0tO
YXZpZ2F0aW9uRGF0YUNvcHlPcmlnaW5hbFJlcXVlc3QoZGF0YVJlZikpOworICAgICAgICByZXF1
ZXN0ID0gYWRvcHRSZWYoZXdrX3VybF9yZXF1ZXN0X25ldyhyZXF1ZXN0V0suZ2V0KCkpKTsKKyAg
ICB9Cit9OwogCiB0eXBlZGVmIHN0cnVjdCBfRXdrX05hdmlnYXRpb25fRGF0YSBFd2tfTmF2aWdh
dGlvbl9EYXRhOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmNwcAppbmRleCBk
NDY4MDVmLi42ZWJiZWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAK
QEAgLTQ3LDEwICs0NywxMCBAQCBzdHJ1Y3QgX0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lv
biB7CiAgICAgRXdrX05hdmlnYXRpb25fVHlwZSBuYXZpZ2F0aW9uVHlwZTsKICAgICBFdmVudF9N
b3VzZV9CdXR0b24gbW91c2VCdXR0b247CiAgICAgRXZlbnRfTW9kaWZpZXJfS2V5cyBtb2RpZmll
cnM7Ci0gICAgRXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0OworICAgIFJlZlB0cjxFd2tfVXJsX1Jl
cXVlc3Q+IHJlcXVlc3Q7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIGZyYW1lTmFtZTsKIAotICAg
IF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24oV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVm
IF9saXN0ZW5lciwgRXdrX05hdmlnYXRpb25fVHlwZSBfbmF2aWdhdGlvblR5cGUsIEV2ZW50X01v
dXNlX0J1dHRvbiBfbW91c2VCdXR0b24sIEV2ZW50X01vZGlmaWVyX0tleXMgX21vZGlmaWVycywg
RXdrX1VybF9SZXF1ZXN0KiBfcmVxdWVzdCwgY29uc3QgY2hhciogX2ZyYW1lTmFtZSkKKyAgICBf
RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBf
bGlzdGVuZXIsIEV3a19OYXZpZ2F0aW9uX1R5cGUgX25hdmlnYXRpb25UeXBlLCBFdmVudF9Nb3Vz
ZV9CdXR0b24gX21vdXNlQnV0dG9uLCBFdmVudF9Nb2RpZmllcl9LZXlzIF9tb2RpZmllcnMsIFBh
c3NSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiBfcmVxdWVzdCwgY29uc3QgY2hhciogX2ZyYW1lTmFt
ZSkKICAgICAgICAgOiBfX3JlZigxKQogICAgICAgICAsIGxpc3RlbmVyKF9saXN0ZW5lcikKICAg
ICAgICAgLCBhY3RlZFVwb25CeUNsaWVudChmYWxzZSkKQEAgLTY4LDggKzY4LDYgQEAgc3RydWN0
IF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24gewogICAgICAgICAvLyBUaGlzIGlzIHRo
ZSBkZWZhdWx0IGNob2ljZSBmb3IgYWxsIHBvbGljeSBkZWNpc2lvbnMgaW4gV2ViUGFnZVByb3h5
LmNwcC4KICAgICAgICAgaWYgKCFhY3RlZFVwb25CeUNsaWVudCkKICAgICAgICAgICAgIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lci5nZXQoKSk7Ci0KLSAgICAgICAgZXdrX3VybF9y
ZXF1ZXN0X3VucmVmKHJlcXVlc3QpOwogICAgIH0KIH07CiAKQEAgLTEyNCw3ICsxMjIsNyBAQCBF
d2tfVXJsX1JlcXVlc3QqIGV3a19uYXZpZ2F0aW9uX3BvbGljeV9yZXF1ZXN0X2dldChjb25zdCBF
d2tfTmF2aWdhdGlvbl9Qb2xpY3lfRAogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChkZWNpc2lvbiwgMCk7CiAKLSAgICByZXR1cm4gZGVjaXNpb24tPnJlcXVlc3Q7CisgICAg
cmV0dXJuIGRlY2lzaW9uLT5yZXF1ZXN0LmdldCgpOwogfQogCiB2b2lkIGV3a19uYXZpZ2F0aW9u
X3BvbGljeV9kZWNpc2lvbl9hY2NlcHQoRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBk
ZWNpc2lvbikKQEAgLTE3Nyw2ICsxNzUsNiBAQCBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNp
b24qIGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcoV0tGcmFtZU5hdmlnYQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEV3
a19OYXZpZ2F0aW9uX1R5cGU+KG5hdmlnYXRpb25UeXBlKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxFdmVudF9Nb3VzZV9CdXR0b24+
KG1vdXNlQnV0dG9uKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0aWNfY2FzdDxFdmVudF9Nb2RpZmllcl9LZXlzPihtb2RpZmllcnMpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV3a191cmxfcmVxdWVzdF9u
ZXcocmVxdWVzdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWRvcHRSZWYoZXdrX3VybF9yZXF1ZXN0X25ldyhyZXF1ZXN0KSksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVOYW1lKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCmlu
ZGV4IDllN2M4MGMuLjUxMTlmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0LmNwcApAQCAtMjYsNDQgKzI2LDE0IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0LmgiCiAKLSNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKLSNpbmNsdWRl
ICJXS1VSTC5oIgotI2luY2x1ZGUgIldLVVJMUmVxdWVzdC5oIgotI2luY2x1ZGUgIldlYlVSTFJl
cXVlc3QuaCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oIgotI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotLyoqCi0g
KiBcc3RydWN0ICBfRXdrX1VybF9SZXF1ZXN0Ci0gKiBAYnJpZWYgICBDb250YWlucyB0aGUgVVJM
IHJlcXVlc3QgZGF0YS4KLSAqLwotc3RydWN0IF9Fd2tfVXJsX1JlcXVlc3QgewotICAgIHVuc2ln
bmVkIGludCBfX3JlZjsgLyoqPCB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBvYmplY3QgKi8K
LQotICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIGZp
cnN0X3BhcnR5OwotICAgIFdLRWluYVNoYXJlZFN0cmluZyBodHRwX21ldGhvZDsKLQotICAgIF9F
d2tfVXJsX1JlcXVlc3QoV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCi0gICAgICAgIDogX19y
ZWYoMSkKLSAgICAgICAgLCB1cmwoQWRvcHRXSywgV0tVUkxSZXF1ZXN0Q29weVVSTChyZXF1ZXN0
UmVmKSkKLSAgICAgICAgLCBmaXJzdF9wYXJ0eShBZG9wdFdLLCBXS1VSTFJlcXVlc3RDb3B5Rmly
c3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdFJlZikpCi0gICAgICAgICwgaHR0cF9tZXRob2QoQWRv
cHRXSywgV0tVUkxSZXF1ZXN0Q29weUhUVFBNZXRob2QocmVxdWVzdFJlZikpCi0gICAgeyB9Ci0K
LSAgICB+X0V3a19VcmxfUmVxdWVzdCgpCi0gICAgewotICAgICAgICBBU1NFUlQoIV9fcmVmKTsK
LSAgICB9Ci19OwotCiBFd2tfVXJsX1JlcXVlc3QqIGV3a191cmxfcmVxdWVzdF9yZWYoRXdrX1Vy
bF9SZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChyZXF1ZXN0LCAwKTsKLSAgICArK3JlcXVlc3QtPl9fcmVmOworICAgIHJlcXVlc3QtPnJlZigp
OwogCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CkBAIC03MiwxMCArNDIsNyBAQCB2b2lkIGV3a191
cmxfcmVxdWVzdF91bnJlZihFd2tfVXJsX1JlcXVlc3QqIHJlcXVlc3QpCiB7CiAgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk4ocmVxdWVzdCk7CiAKLSAgICBpZiAoLS1yZXF1ZXN0LT5fX3Jl
ZikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZGVsZXRlIHJlcXVlc3Q7CisgICAgcmVxdWVzdC0+
ZGVyZWYoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX3VybF9yZXF1ZXN0X3VybF9nZXQoY29uc3Qg
RXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmgKaW5kZXggNTQ4YjZl
OS4uNjQwYWE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oCkBAIC0yNiw2ICsyNiwyOSBAQAogI2lm
bmRlZiBld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZV9oCiAjZGVmaW5lIGV3a191cmxfcmVxdWVzdF9w
cml2YXRlX2gKIAorI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgorI2luY2x1ZGUgIldL
VVJMLmgiCisjaW5jbHVkZSAiV0tVUkxSZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViVVJMUmVxdWVz
dC5oIgorCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfVXJsX1JlcXVlc3QKKyAqIEBicmllZiAgIENv
bnRhaW5zIHRoZSBVUkwgcmVxdWVzdCBkYXRhLgorICovCitzdHJ1Y3QgX0V3a19VcmxfUmVxdWVz
dCA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfVXJsX1JlcXVlc3Q+IHsKKyAgICBXS0VpbmFTaGFy
ZWRTdHJpbmcgdXJsOworICAgIFdLRWluYVNoYXJlZFN0cmluZyBmaXJzdF9wYXJ0eTsKKyAgICBX
S0VpbmFTaGFyZWRTdHJpbmcgaHR0cF9tZXRob2Q7CisKKyAgICBfRXdrX1VybF9SZXF1ZXN0KFdL
VVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKQorICAgICAgICA6IHVybChBZG9wdFdLLCBXS1VSTFJl
cXVlc3RDb3B5VVJMKHJlcXVlc3RSZWYpKQorICAgICAgICAsIGZpcnN0X3BhcnR5KEFkb3B0V0ss
IFdLVVJMUmVxdWVzdENvcHlGaXJzdFBhcnR5Rm9yQ29va2llcyhyZXF1ZXN0UmVmKSkKKyAgICAg
ICAgLCBodHRwX21ldGhvZChBZG9wdFdLLCBXS1VSTFJlcXVlc3RDb3B5SFRUUE1ldGhvZChyZXF1
ZXN0UmVmKSkKKyAgICB7IH0KK307CisKK3R5cGVkZWYgc3RydWN0IF9Fd2tfVXJsX1JlcXVlc3Qg
RXdrX1VybF9SZXF1ZXN0OworCiBFd2tfVXJsX1JlcXVlc3QqIGV3a191cmxfcmVxdWVzdF9uZXco
V0tVUkxSZXF1ZXN0UmVmKTsKIAogI2VuZGlmIC8vIGV3a191cmxfcmVxdWVzdF9wcml2YXRlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jl
c291cmNlX2xvYWRfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50LmNwcAppbmRleCA0N2UwZDE2Li40NjllMTgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19y
ZXNvdXJjZV9sb2FkX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnQuY3BwCkBAIC01NywxOCArNTcsMTYg
QEAgc3RhdGljIHZvaWQgZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UoV0tQYWdlUmVmLCBXS0Zy
YW1lUmVmIHdrRnJhbWUsIHVpbnQ2NF90IHIKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gd2tV
cmwoQWRvcHRXSywgV0tVUkxSZXF1ZXN0Q29weVVSTCh3a1JlcXVlc3QpKTsKIAogICAgIEV3a19S
ZXNvdXJjZSogcmVzb3VyY2UgPSBld2tfcmVzb3VyY2VfbmV3KHRvSW1wbCh3a1VybC5nZXQoKSkt
PnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGlzTWFpblJlc291cmNlKTsKLSAgICBFd2tfVXJsX1Jl
cXVlc3QqIHJlcXVlc3QgPSBld2tfdXJsX3JlcXVlc3RfbmV3KHdrUmVxdWVzdCk7Ci0gICAgZXdr
X3ZpZXdfcmVzb3VyY2VfbG9hZF9pbml0aWF0ZWQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCByZXNv
dXJjZUlkZW50aWZpZXIsIHJlc291cmNlLCByZXF1ZXN0KTsKKyAgICBSZWZQdHI8RXdrX1VybF9S
ZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRSZWYoZXdrX3VybF9yZXF1ZXN0X25ldyh3a1JlcXVlc3Qp
KTsKKyAgICBld2tfdmlld19yZXNvdXJjZV9sb2FkX2luaXRpYXRlZCh0b0V3a1ZpZXcoY2xpZW50
SW5mbyksIHJlc291cmNlSWRlbnRpZmllciwgcmVzb3VyY2UsIHJlcXVlc3QuZ2V0KCkpOwogICAg
IGV3a19yZXNvdXJjZV91bnJlZihyZXNvdXJjZSk7Ci0gICAgZXdrX3VybF9yZXF1ZXN0X3VucmVm
KHJlcXVlc3QpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRTZW5kUmVxdWVzdEZvclJlc291cmNlKFdL
UGFnZVJlZiwgV0tGcmFtZVJlZiwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBXS1VSTFJl
cXVlc3RSZWYgd2tSZXF1ZXN0LCBXS1VSTFJlc3BvbnNlUmVmIHdrUmVkaXJlY3RSZXNwb25zZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICBFd2tfVXJsX1JlcXVlc3QqIHJlcXVlc3Qg
PSBld2tfdXJsX3JlcXVlc3RfbmV3KHdrUmVxdWVzdCk7CisgICAgUmVmUHRyPEV3a19VcmxfUmVx
dWVzdD4gcmVxdWVzdCA9IGFkb3B0UmVmKGV3a191cmxfcmVxdWVzdF9uZXcod2tSZXF1ZXN0KSk7
CiAgICAgRXdrX1VybF9SZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSA9IHdrUmVkaXJlY3RSZXNw
b25zZSA/IGV3a191cmxfcmVzcG9uc2VfbmV3KHRvSW1wbCh3a1JlZGlyZWN0UmVzcG9uc2UpLT5y
ZXNvdXJjZVJlc3BvbnNlKCkpIDogMDsKLSAgICBld2tfdmlld19yZXNvdXJjZV9yZXF1ZXN0X3Nl
bnQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3QsIHJl
ZGlyZWN0UmVzcG9uc2UpOwotICAgIGV3a191cmxfcmVxdWVzdF91bnJlZihyZXF1ZXN0KTsKKyAg
ICBld2tfdmlld19yZXNvdXJjZV9yZXF1ZXN0X3NlbnQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCBy
ZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3QuZ2V0KCksIHJlZGlyZWN0UmVzcG9uc2UpOwogICAg
IGlmIChyZWRpcmVjdFJlc3BvbnNlKQogICAgICAgICBld2tfdXJsX3Jlc3BvbnNlX3VucmVmKHJl
ZGlyZWN0UmVzcG9uc2UpOwogfQo=
</data>
<flag name="review"
          id="181732"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168693</attachid>
            <date>2012-10-15 05:58:57 -0700</date>
            <delta_ts>2012-10-15 06:19:31 -0700</delta_ts>
            <desc>to be landed</desc>
            <filename>bug99174_v6</filename>
            <type>text/plain</type>
            <size>16435</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGVjYjA5MTJhYTk1NDBmN2YwNTkzYjZkM2JlNjA3OWE1OGQ5OGFlYWYKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
TW9uIE9jdCAxNSAxNTo1NjoxMSAyMDEyICswMzAwCgogICAgYnVnOTkxNzQKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggN2Q0MTI5Zi4uM2FlY2FlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTEw
LTE1ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gRW5jYXBzdWxhdGUgcmVmIGNvdW50aW5nIGZvciBFd2sgb2Jq
ZWN0cyBpbiBhIHBhcmVudCBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTkxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRl
IENocmlzdGlhbnNlbi4KKworICAgICAgICBFd2sgb2JqZWN0cyBjYW4gYmUgaW5oZXJpdGVkIGZy
b20gUmVmQ291bnRlZCBjbGFzcywgc28gdGhhdCByZWYgY291bnRpbmcgaXMgZW5jYXBzdWxhdGVk
IGFuZCBSZWZQdHIgY2FuIGJlIHVzZWQuCisgICAgICAgIEFwcGxpZWQgdGhlIG5ldyBhcHByb2Fj
aCBmb3IgRXdrX05hdmlnYXRpb25fRGF0YSBhbmQgRXdrX1VybF9SZXF1ZXN0IG9iamVjdHMgYXMg
YW4gZXhhbXBsZS4KKyAgICAgICAgVGhlIHJlcXVpcmVtZW50IG9mIGFkb3B0aW9uIGNhbiBiZSBz
YXRpc2ZpZWQgYXMgbG9uZyBhcyB3ZSBrZWVwIGRlYWxpbmcgd2l0aCBzbWFydCBwb2ludGVycyBv
bmx5LiAKKyAgICAgICAgSW4gY2FzZSBleHRlcm5hbCBjbGllbnQgcHJvdmlkZXMgYW4gYWxyZWFk
eSByZWZlcmVuY2VkIG9iamVjdCBhcyBhIHJhdyBwb2ludGVyLCByZWxheEFkb3B0aW9uUmVxdWly
ZW1lbnQoKSBjYW4gYmUgc2V0CisgICAgICAgIGV4cGxpY2l0bHkgaW4gdGhpcyBzcGVjaWZpYyBw
bGFjZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2hpc3Rvcnlf
Y2xpZW50LmNwcDoKKyAgICAgICAgKGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9iLmNwcDoKKyAgICAgICAg
KF9Fd2tfRG93bmxvYWRfSm9iKToKKyAgICAgICAgKF9Fd2tfRG93bmxvYWRfSm9iOjpfRXdrX0Rv
d25sb2FkX0pvYik6CisgICAgICAgIChfRXdrX0Rvd25sb2FkX0pvYjo6fl9Fd2tfRG93bmxvYWRf
Sm9iKToKKyAgICAgICAgKGV3a19kb3dubG9hZF9qb2JfcmVxdWVzdF9nZXQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEuY3BwOgorICAgICAgICAoZXdr
X25hdmlnYXRpb25fZGF0YV9yZWYpOgorICAgICAgICAoZXdrX25hdmlnYXRpb25fZGF0YV91bnJl
Zik6CisgICAgICAgIChld2tfbmF2aWdhdGlvbl9kYXRhX29yaWdpbmFsX3JlcXVlc3RfZ2V0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUu
aDoKKyAgICAgICAgKF9Fd2tfTmF2aWdhdGlvbl9EYXRhKToKKyAgICAgICAgKF9Fd2tfTmF2aWdh
dGlvbl9EYXRhOjpfRXdrX05hdmlnYXRpb25fRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmNwcDoKKyAgICAgICAgKF9Fd2tf
TmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24pOgorICAgICAgICAoX0V3a19OYXZpZ2F0aW9uX1Bv
bGljeV9EZWNpc2lvbjo6X0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbik6CisgICAgICAg
IChfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjp+X0V3a19OYXZpZ2F0aW9uX1BvbGlj
eV9EZWNpc2lvbik6CisgICAgICAgIChld2tfbmF2aWdhdGlvbl9wb2xpY3lfcmVxdWVzdF9nZXQp
OgorICAgICAgICAoZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX25ldyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0LmNwcDoKKyAgICAgICAgKGV3a191
cmxfcmVxdWVzdF9yZWYpOgorICAgICAgICAoZXdrX3VybF9yZXF1ZXN0X3VucmVmKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oOgorICAgICAg
ICAoX0V3a19VcmxfUmVxdWVzdCk6CisgICAgICAgIChfRXdrX1VybF9SZXF1ZXN0OjpfRXdrX1Vy
bF9SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19yZXNvdXJj
ZV9sb2FkX2NsaWVudC5jcHA6CisgICAgICAgIChkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSk6
CisgICAgICAgIChkaWRTZW5kUmVxdWVzdEZvclJlc291cmNlKToKKwogMjAxMi0xMC0xNSAgQWxs
YW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KIAogICAgICAgICBb
UXRdIFJlZ3Jlc3Npb24ocjEzMDAzMSkgY292ZXJSZWN0IGlzIHVzZWQgaW4gd3JvbmcgY29vcmRp
bmF0ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHAKaW5kZXggMWFiOTVlNC4uZmQxYjgz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHRfaGlzdG9yeV9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0X2hpc3RvcnlfY2xpZW50LmNwcApAQCAtNTUsOSArNTUsOCBAQCBzdGF0
aWMgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShXS0NvbnRleHRSZWYsIFdLUGFn
ZVJlZiBwYWdlLCBXS05hdmlnYQogICAgIGlmICghaGlzdG9yeURlbGVnYXRlLT5uYXZpZ2F0ZV9m
dW5jKQogICAgICAgICByZXR1cm47CiAKLSAgICBFd2tfTmF2aWdhdGlvbl9EYXRhKiBuYXZpZ2F0
aW9uRGF0YUV3ayA9IGV3a19uYXZpZ2F0aW9uX2RhdGFfbmV3KG5hdmlnYXRpb25EYXRhKTsKLSAg
ICBoaXN0b3J5RGVsZWdhdGUtPm5hdmlnYXRlX2Z1bmMoZXdrX3ZpZXdfZnJvbV9wYWdlX2dldCh0
b0ltcGwocGFnZSkpLCBuYXZpZ2F0aW9uRGF0YUV3aywgaGlzdG9yeURlbGVnYXRlLT51c2VyX2Rh
dGEpOwotICAgIGV3a19uYXZpZ2F0aW9uX2RhdGFfdW5yZWYobmF2aWdhdGlvbkRhdGFFd2spOwor
ICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9EYXRhPiBuYXZpZ2F0aW9uRGF0YUV3ayA9IGFkb3B0
UmVmKGV3a19uYXZpZ2F0aW9uX2RhdGFfbmV3KG5hdmlnYXRpb25EYXRhKSk7CisgICAgaGlzdG9y
eURlbGVnYXRlLT5uYXZpZ2F0ZV9mdW5jKGV3a192aWV3X2Zyb21fcGFnZV9nZXQodG9JbXBsKHBh
Z2UpKSwgbmF2aWdhdGlvbkRhdGFFd2suZ2V0KCksIGhpc3RvcnlEZWxlZ2F0ZS0+dXNlcl9kYXRh
KTsKIH0KIAogc3RhdGljIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFdLQ29udGV4dFJl
ZiwgV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHNvdXJjZVVSTCwgV0tVUkxSZWYgZGVzdGluYXRp
b25VUkwsIFdLRnJhbWVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9iLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2IuY3BwCmluZGV4
IDYxMjk3OTIuLjE1YTk1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19kb3dubG9hZF9qb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2IuY3BwCkBAIC00Niw3ICs0Niw3IEBAIHN0cnVjdCBf
RXdrX0Rvd25sb2FkX0pvYiB7CiAgICAgRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eTsKICAg
ICBFdmFzX09iamVjdCogdmlldzsKICAgICBFd2tfRG93bmxvYWRfSm9iX1N0YXRlIHN0YXRlOwot
ICAgIEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdDsKKyAgICBSZWZQdHI8RXdrX1VybF9SZXF1ZXN0
PiByZXF1ZXN0OwogICAgIEV3a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNlOwogICAgIGRvdWJsZSBz
dGFydFRpbWU7CiAgICAgZG91YmxlIGVuZFRpbWU7CkBAIC01OSw3ICs1OSw2IEBAIHN0cnVjdCBf
RXdrX0Rvd25sb2FkX0pvYiB7CiAgICAgICAgICwgZG93bmxvYWRQcm94eShkb3dubG9hZCkKICAg
ICAgICAgLCB2aWV3KGV3a1ZpZXcpCiAgICAgICAgICwgc3RhdGUoRVdLX0RPV05MT0FEX0pPQl9T
VEFURV9OT1RfU1RBUlRFRCkKLSAgICAgICAgLCByZXF1ZXN0KDApCiAgICAgICAgICwgcmVzcG9u
c2UoMCkKICAgICAgICAgLCBzdGFydFRpbWUoLTEpCiAgICAgICAgICwgZW5kVGltZSgtMSkKQEAg
LTY5LDggKzY4LDYgQEAgc3RydWN0IF9Fd2tfRG93bmxvYWRfSm9iIHsKICAgICB+X0V3a19Eb3du
bG9hZF9Kb2IoKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFfX3JlZik7Ci0gICAgICAgIGlmIChy
ZXF1ZXN0KQotICAgICAgICAgICAgZXdrX3VybF9yZXF1ZXN0X3VucmVmKHJlcXVlc3QpOwogICAg
ICAgICBpZiAocmVzcG9uc2UpCiAgICAgICAgICAgICBld2tfdXJsX3Jlc3BvbnNlX3VucmVmKHJl
c3BvbnNlKTsKICAgICB9CkBAIC0xMzMsMTAgKzEzMCwxMCBAQCBFd2tfVXJsX1JlcXVlc3QqIGV3
a19kb3dubG9hZF9qb2JfcmVxdWVzdF9nZXQoY29uc3QgRXdrX0Rvd25sb2FkX0pvYiogZG93bmxv
YWQpCiAgICAgaWYgKCFkb3dubG9hZC0+cmVxdWVzdCkgewogICAgICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoZG93bmxvYWQtPmRvd25sb2FkUHJveHksIDApOwogICAgICAgICBX
S1JldGFpblB0cjxXS1VSTFJlcXVlc3RSZWY+IHdrVVJMUmVxdWVzdChBZG9wdFdLLCB0b0FQSShX
ZWJVUkxSZXF1ZXN0OjpjcmVhdGUoZG93bmxvYWQtPmRvd25sb2FkUHJveHktPnJlcXVlc3QoKSku
bGVha1JlZigpKSk7Ci0gICAgICAgIGNvbnN0X2Nhc3Q8RXdrX0Rvd25sb2FkX0pvYio+KGRvd25s
b2FkKS0+cmVxdWVzdCA9IGV3a191cmxfcmVxdWVzdF9uZXcod2tVUkxSZXF1ZXN0LmdldCgpKTsK
KyAgICAgICAgY29uc3RfY2FzdDxFd2tfRG93bmxvYWRfSm9iKj4oZG93bmxvYWQpLT5yZXF1ZXN0
ID0gYWRvcHRSZWYoZXdrX3VybF9yZXF1ZXN0X25ldyh3a1VSTFJlcXVlc3QuZ2V0KCkpKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gZG93bmxvYWQtPnJlcXVlc3Q7CisgICAgcmV0dXJuIGRvd25sb2Fk
LT5yZXF1ZXN0LmdldCgpOwogfQogCiBFd2tfVXJsX1Jlc3BvbnNlKiBld2tfZG93bmxvYWRfam9i
X3Jlc3BvbnNlX2dldChjb25zdCBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0
YS5jcHAKaW5kZXggNTM2N2ZlZi4uMjdhNTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHAKQEAgLTI2LDQ3
ICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9u
X2RhdGEuaCIKIAotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldLRWluYVNoYXJl
ZFN0cmluZy5oIgotI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCiAjaW5jbHVkZSAiZXdrX25hdmln
YXRpb25fZGF0YV9wcml2YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKLSNpbmNsdWRl
ICJld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owog
Ci0vKioKLSAqIFxzdHJ1Y3QgIF9Fd2tfTmF2aWdhdGlvbl9EYXRhCi0gKiBAYnJpZWYgICBDb250
YWlucyB0aGUgbmF2aWdhdGlvbiBkYXRhIGRldGFpbHMuCi0gKi8KLXN0cnVjdCBfRXdrX05hdmln
YXRpb25fRGF0YSB7Ci0gICAgdW5zaWduZWQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3Vu
dCBvZiB0aGUgb2JqZWN0ICovCi0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIHRpdGxlOwotICAgIFdL
RWluYVNoYXJlZFN0cmluZyB1cmw7Ci0gICAgRXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0OwotCi0g
ICAgX0V3a19OYXZpZ2F0aW9uX0RhdGEoV0tOYXZpZ2F0aW9uRGF0YVJlZiBkYXRhUmVmKQotICAg
ICAgICA6IF9fcmVmKDEpCi0gICAgICAgICwgdGl0bGUoQWRvcHRXSywgV0tOYXZpZ2F0aW9uRGF0
YUNvcHlUaXRsZShkYXRhUmVmKSkKLSAgICAgICAgLCB1cmwoQWRvcHRXSywgV0tOYXZpZ2F0aW9u
RGF0YUNvcHlVUkwoZGF0YVJlZikpCi0gICAgICAgICwgcmVxdWVzdCgwKQotICAgIHsKLSAgICAg
ICAgV0tSZXRhaW5QdHI8V0tVUkxSZXF1ZXN0UmVmPiByZXF1ZXN0V0soQWRvcHRXSywgV0tOYXZp
Z2F0aW9uRGF0YUNvcHlPcmlnaW5hbFJlcXVlc3QoZGF0YVJlZikpOwotICAgICAgICByZXF1ZXN0
ID0gZXdrX3VybF9yZXF1ZXN0X25ldyhyZXF1ZXN0V0suZ2V0KCkpOwotICAgIH0KLQotICAgIH5f
RXdrX05hdmlnYXRpb25fRGF0YSgpCi0gICAgewotICAgICAgICBBU1NFUlQoIV9fcmVmKTsKLSAg
ICAgICAgZXdrX3VybF9yZXF1ZXN0X3VucmVmKHJlcXVlc3QpOwotICAgIH0KLX07Ci0KIEV3a19O
YXZpZ2F0aW9uX0RhdGEqIGV3a19uYXZpZ2F0aW9uX2RhdGFfcmVmKEV3a19OYXZpZ2F0aW9uX0Rh
dGEqIGRhdGEpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGRhdGEsIDAp
OwogCi0gICAgKytkYXRhLT5fX3JlZjsKKyAgICBkYXRhLT5yZWYoKTsKIAogICAgIHJldHVybiBk
YXRhOwogfQpAQCAtNzUsMTAgKzQzLDcgQEAgdm9pZCBld2tfbmF2aWdhdGlvbl9kYXRhX3VucmVm
KEV3a19OYXZpZ2F0aW9uX0RhdGEqIGRhdGEpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk4oZGF0YSk7CiAKLSAgICBpZiAoLS1kYXRhLT5fX3JlZikKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZGVsZXRlIGRhdGE7CisgICAgZGF0YS0+ZGVyZWYoKTsKIH0KIAogY29uc3QgY2hhciog
ZXdrX25hdmlnYXRpb25fZGF0YV90aXRsZV9nZXQoY29uc3QgRXdrX05hdmlnYXRpb25fRGF0YSog
ZGF0YSkKQEAgLTkyLDcgKzU3LDcgQEAgRXdrX1VybF9SZXF1ZXN0KiBld2tfbmF2aWdhdGlvbl9k
YXRhX29yaWdpbmFsX3JlcXVlc3RfZ2V0KGNvbnN0IEV3a19OYXZpZ2F0aW9uX0QKIHsKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZGF0YSwgMCk7CiAKLSAgICByZXR1cm4gZGF0
YS0+cmVxdWVzdDsKKyAgICByZXR1cm4gZGF0YS0+cmVxdWVzdC5nZXQoKTsKIH0KIAogY29uc3Qg
Y2hhciogZXdrX25hdmlnYXRpb25fZGF0YV91cmxfZ2V0KGNvbnN0IEV3a19OYXZpZ2F0aW9uX0Rh
dGEqIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZS5oCmluZGV4IDQzMGM2MTUuLjZlNDJk
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZp
Z2F0aW9uX2RhdGFfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZS5oCkBAIC0yNiw3ICsyNiwzMCBAQAogI2lm
bmRlZiBld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGVfaAogI2RlZmluZSBld2tfbmF2aWdhdGlv
bl9kYXRhX3ByaXZhdGVfaAogCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tF
aW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tOYXZpZ2F0aW9uRGF0YS5oIgorI2luY2x1
ZGUgIldLUmV0YWluUHRyLmgiCisjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKKyNpbmNsdWRlICJl
d2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oIgorCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfTmF2aWdh
dGlvbl9EYXRhCisgKiBAYnJpZWYgICBDb250YWlucyB0aGUgbmF2aWdhdGlvbiBkYXRhIGRldGFp
bHMuCisgKi8KK3N0cnVjdCBfRXdrX05hdmlnYXRpb25fRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVk
PF9Fd2tfTmF2aWdhdGlvbl9EYXRhPiB7CisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHRpdGxlOwor
ICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7CisgICAgUmVmUHRyPEV3a19VcmxfUmVxdWVzdD4g
cmVxdWVzdDsKKworICAgIF9Fd2tfTmF2aWdhdGlvbl9EYXRhKFdLTmF2aWdhdGlvbkRhdGFSZWYg
ZGF0YVJlZikKKyAgICAgICAgOiB0aXRsZShBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weVRp
dGxlKGRhdGFSZWYpKQorICAgICAgICAsIHVybChBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29w
eVVSTChkYXRhUmVmKSkKKyAgICB7CisgICAgICAgIFdLUmV0YWluUHRyPFdLVVJMUmVxdWVzdFJl
Zj4gcmVxdWVzdFdLKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFDb3B5T3JpZ2luYWxSZXF1ZXN0
KGRhdGFSZWYpKTsKKyAgICAgICAgcmVxdWVzdCA9IGFkb3B0UmVmKGV3a191cmxfcmVxdWVzdF9u
ZXcocmVxdWVzdFdLLmdldCgpKSk7CisgICAgfQorfTsKIAogdHlwZWRlZiBzdHJ1Y3QgX0V3a19O
YXZpZ2F0aW9uX0RhdGEgRXdrX05hdmlnYXRpb25fRGF0YTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3Bv
bGljeV9kZWNpc2lvbi5jcHAKaW5kZXggZDQ2ODA1Zi4uNmViYmViYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lz
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdh
dGlvbl9wb2xpY3lfZGVjaXNpb24uY3BwCkBAIC00NywxMCArNDcsMTAgQEAgc3RydWN0IF9Fd2tf
TmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24gewogICAgIEV3a19OYXZpZ2F0aW9uX1R5cGUgbmF2
aWdhdGlvblR5cGU7CiAgICAgRXZlbnRfTW91c2VfQnV0dG9uIG1vdXNlQnV0dG9uOwogICAgIEV2
ZW50X01vZGlmaWVyX0tleXMgbW9kaWZpZXJzOwotICAgIEV3a19VcmxfUmVxdWVzdCogcmVxdWVz
dDsKKyAgICBSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiByZXF1ZXN0OwogICAgIFdLRWluYVNoYXJl
ZFN0cmluZyBmcmFtZU5hbWU7CiAKLSAgICBfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9u
KFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBfbGlzdGVuZXIsIEV3a19OYXZpZ2F0aW9uX1R5cGUg
X25hdmlnYXRpb25UeXBlLCBFdmVudF9Nb3VzZV9CdXR0b24gX21vdXNlQnV0dG9uLCBFdmVudF9N
b2RpZmllcl9LZXlzIF9tb2RpZmllcnMsIEV3a19VcmxfUmVxdWVzdCogX3JlcXVlc3QsIGNvbnN0
IGNoYXIqIF9mcmFtZU5hbWUpCisgICAgX0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbihX
S0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgX2xpc3RlbmVyLCBFd2tfTmF2aWdhdGlvbl9UeXBlIF9u
YXZpZ2F0aW9uVHlwZSwgRXZlbnRfTW91c2VfQnV0dG9uIF9tb3VzZUJ1dHRvbiwgRXZlbnRfTW9k
aWZpZXJfS2V5cyBfbW9kaWZpZXJzLCBQYXNzUmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gX3JlcXVl
c3QsIGNvbnN0IGNoYXIqIF9mcmFtZU5hbWUpCiAgICAgICAgIDogX19yZWYoMSkKICAgICAgICAg
LCBsaXN0ZW5lcihfbGlzdGVuZXIpCiAgICAgICAgICwgYWN0ZWRVcG9uQnlDbGllbnQoZmFsc2Up
CkBAIC02OCw4ICs2OCw2IEBAIHN0cnVjdCBfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9u
IHsKICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBjaG9pY2UgZm9yIGFsbCBwb2xpY3kg
ZGVjaXNpb25zIGluIFdlYlBhZ2VQcm94eS5jcHAuCiAgICAgICAgIGlmICghYWN0ZWRVcG9uQnlD
bGllbnQpCiAgICAgICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIuZ2V0
KCkpOwotCi0gICAgICAgIGV3a191cmxfcmVxdWVzdF91bnJlZihyZXF1ZXN0KTsKICAgICB9CiB9
OwogCkBAIC0xMjQsNyArMTIyLDcgQEAgRXdrX1VybF9SZXF1ZXN0KiBld2tfbmF2aWdhdGlvbl9w
b2xpY3lfcmVxdWVzdF9nZXQoY29uc3QgRXdrX05hdmlnYXRpb25fUG9saWN5X0QKIHsKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZGVjaXNpb24sIDApOwogCi0gICAgcmV0dXJu
IGRlY2lzaW9uLT5yZXF1ZXN0OworICAgIHJldHVybiBkZWNpc2lvbi0+cmVxdWVzdC5nZXQoKTsK
IH0KIAogdm9pZCBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fYWNjZXB0KEV3a19OYXZp
Z2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNpb24pCkBAIC0xNzcsNiArMTc1LDYgQEAgRXdr
X05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b25fbmV3KFdLRnJhbWVOYXZpZ2EKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxFd2tfTmF2aWdhdGlvbl9UeXBlPihuYXZpZ2F0aW9uVHlw
ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8RXZlbnRfTW91c2VfQnV0dG9uPihtb3VzZUJ1dHRvbiksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8RXZlbnRfTW9kaWZpZXJf
S2V5cz4obW9kaWZpZXJzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBld2tfdXJsX3JlcXVlc3RfbmV3KHJlcXVlc3QpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkb3B0UmVmKGV3a191cmxfcmVxdWVzdF9uZXco
cmVxdWVzdCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZyYW1lTmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3VybF9yZXF1ZXN0LmNwcAppbmRleCA5ZTdjODBjLi5iMWM5NGFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAK
QEAgLTI2LDQ0ICsyNiwxNCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a191
cmxfcmVxdWVzdC5oIgogCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV0tFaW5h
U2hhcmVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiV0tVUkwuaCIKLSNpbmNsdWRlICJXS1VSTFJlcXVl
c3QuaCIKLSNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXF1
ZXN0X3ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKLS8qKgotICogXHN0cnVjdCAgX0V3a19VcmxfUmVxdWVzdAotICog
QGJyaWVmICAgQ29udGFpbnMgdGhlIFVSTCByZXF1ZXN0IGRhdGEuCi0gKi8KLXN0cnVjdCBfRXdr
X1VybF9SZXF1ZXN0IHsKLSAgICB1bnNpZ25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5j
ZSBjb3VudCBvZiB0aGUgb2JqZWN0ICovCi0KLSAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsOwot
ICAgIFdLRWluYVNoYXJlZFN0cmluZyBmaXJzdF9wYXJ0eTsKLSAgICBXS0VpbmFTaGFyZWRTdHJp
bmcgaHR0cF9tZXRob2Q7Ci0KLSAgICBfRXdrX1VybF9SZXF1ZXN0KFdLVVJMUmVxdWVzdFJlZiBy
ZXF1ZXN0UmVmKQotICAgICAgICA6IF9fcmVmKDEpCi0gICAgICAgICwgdXJsKEFkb3B0V0ssIFdL
VVJMUmVxdWVzdENvcHlVUkwocmVxdWVzdFJlZikpCi0gICAgICAgICwgZmlyc3RfcGFydHkoQWRv
cHRXSywgV0tVUkxSZXF1ZXN0Q29weUZpcnN0UGFydHlGb3JDb29raWVzKHJlcXVlc3RSZWYpKQot
ICAgICAgICAsIGh0dHBfbWV0aG9kKEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlIVFRQTWV0aG9k
KHJlcXVlc3RSZWYpKQotICAgIHsgfQotCi0gICAgfl9Fd2tfVXJsX1JlcXVlc3QoKQotICAgIHsK
LSAgICAgICAgQVNTRVJUKCFfX3JlZik7Ci0gICAgfQotfTsKLQogRXdrX1VybF9SZXF1ZXN0KiBl
d2tfdXJsX3JlcXVlc3RfcmVmKEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCkKIHsKICAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgMCk7Ci0gICAgKytyZXF1ZXN0LT5f
X3JlZjsKKyAgICByZXF1ZXN0LT5yZWYoKTsKIAogICAgIHJldHVybiByZXF1ZXN0OwogfQpAQCAt
NzIsMTAgKzQyLDcgQEAgdm9pZCBld2tfdXJsX3JlcXVlc3RfdW5yZWYoRXdrX1VybF9SZXF1ZXN0
KiByZXF1ZXN0KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHJlcXVlc3QpOwog
Ci0gICAgaWYgKC0tcmVxdWVzdC0+X19yZWYpCi0gICAgICAgIHJldHVybjsKLQotICAgIGRlbGV0
ZSByZXF1ZXN0OworICAgIHJlcXVlc3QtPmRlcmVmKCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a191
cmxfcmVxdWVzdF91cmxfZ2V0KGNvbnN0IEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCkKQEAgLTg5
LDE0ICs1NiwxNCBAQCBjb25zdCBjaGFyKiBld2tfcmVxdWVzdF9jb29raWVzX2ZpcnN0X3BhcnR5
X2dldChjb25zdCBFd2tfVXJsX1JlcXVlc3QqIHJlcXVlc3QpCiB7CiAgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKHJlcXVlc3QsIDApOwogCi0gICAgcmV0dXJuIHJlcXVlc3QtPmZp
cnN0X3BhcnR5OworICAgIHJldHVybiByZXF1ZXN0LT5maXJzdFBhcnR5OwogfQogCiBjb25zdCBj
aGFyKiBld2tfdXJsX3JlcXVlc3RfaHR0cF9tZXRob2RfZ2V0KGNvbnN0IEV3a19VcmxfUmVxdWVz
dCogcmVxdWVzdCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVz
dCwgMCk7CiAKLSAgICByZXR1cm4gcmVxdWVzdC0+aHR0cF9tZXRob2Q7CisgICAgcmV0dXJuIHJl
cXVlc3QtPmh0dHBNZXRob2Q7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmgKaW5kZXggNTQ4
YjZlOS4uYWNiYzk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oCkBAIC0yNiw2ICsyNiwyOSBAQAog
I2lmbmRlZiBld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZV9oCiAjZGVmaW5lIGV3a191cmxfcmVxdWVz
dF9wcml2YXRlX2gKIAorI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgorI2luY2x1ZGUg
IldLVVJMLmgiCisjaW5jbHVkZSAiV0tVUkxSZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViVVJMUmVx
dWVzdC5oIgorCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfVXJsX1JlcXVlc3QKKyAqIEBicmllZiAg
IENvbnRhaW5zIHRoZSBVUkwgcmVxdWVzdCBkYXRhLgorICovCitzdHJ1Y3QgX0V3a19VcmxfUmVx
dWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfVXJsX1JlcXVlc3Q+IHsKKyAgICBXS0VpbmFT
aGFyZWRTdHJpbmcgdXJsOworICAgIFdLRWluYVNoYXJlZFN0cmluZyBmaXJzdFBhcnR5OworICAg
IFdLRWluYVNoYXJlZFN0cmluZyBodHRwTWV0aG9kOworCisgICAgX0V3a19VcmxfUmVxdWVzdChX
S1VSTFJlcXVlc3RSZWYgcmVxdWVzdFJlZikKKyAgICAgICAgOiB1cmwoQWRvcHRXSywgV0tVUkxS
ZXF1ZXN0Q29weVVSTChyZXF1ZXN0UmVmKSkKKyAgICAgICAgLCBmaXJzdFBhcnR5KEFkb3B0V0ss
IFdLVVJMUmVxdWVzdENvcHlGaXJzdFBhcnR5Rm9yQ29va2llcyhyZXF1ZXN0UmVmKSkKKyAgICAg
ICAgLCBodHRwTWV0aG9kKEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlIVFRQTWV0aG9kKHJlcXVl
c3RSZWYpKQorICAgIHsgfQorfTsKKwordHlwZWRlZiBzdHJ1Y3QgX0V3a19VcmxfUmVxdWVzdCBF
d2tfVXJsX1JlcXVlc3Q7CisKIEV3a19VcmxfUmVxdWVzdCogZXdrX3VybF9yZXF1ZXN0X25ldyhX
S1VSTFJlcXVlc3RSZWYpOwogCiAjZW5kaWYgLy8gZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGVfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcmVz
b3VyY2VfbG9hZF9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnQuY3BwCmluZGV4IDQ3ZTBkMTYuLjQ2OWUxODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jl
c291cmNlX2xvYWRfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudC5jcHAKQEAgLTU3LDE4ICs1NywxNiBA
QCBzdGF0aWMgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS1BhZ2VSZWYsIFdLRnJh
bWVSZWYgd2tGcmFtZSwgdWludDY0X3QgcgogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB3a1Vy
bChBZG9wdFdLLCBXS1VSTFJlcXVlc3RDb3B5VVJMKHdrUmVxdWVzdCkpOwogCiAgICAgRXdrX1Jl
c291cmNlKiByZXNvdXJjZSA9IGV3a19yZXNvdXJjZV9uZXcodG9JbXBsKHdrVXJsLmdldCgpKS0+
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgaXNNYWluUmVzb3VyY2UpOwotICAgIEV3a19VcmxfUmVx
dWVzdCogcmVxdWVzdCA9IGV3a191cmxfcmVxdWVzdF9uZXcod2tSZXF1ZXN0KTsKLSAgICBld2tf
dmlld19yZXNvdXJjZV9sb2FkX2luaXRpYXRlZCh0b0V3a1ZpZXcoY2xpZW50SW5mbyksIHJlc291
cmNlSWRlbnRpZmllciwgcmVzb3VyY2UsIHJlcXVlc3QpOworICAgIFJlZlB0cjxFd2tfVXJsX1Jl
cXVlc3Q+IHJlcXVlc3QgPSBhZG9wdFJlZihld2tfdXJsX3JlcXVlc3RfbmV3KHdrUmVxdWVzdCkp
OworICAgIGV3a192aWV3X3Jlc291cmNlX2xvYWRfaW5pdGlhdGVkKHRvRXdrVmlldyhjbGllbnRJ
bmZvKSwgcmVzb3VyY2VJZGVudGlmaWVyLCByZXNvdXJjZSwgcmVxdWVzdC5nZXQoKSk7CiAgICAg
ZXdrX3Jlc291cmNlX3VucmVmKHJlc291cmNlKTsKLSAgICBld2tfdXJsX3JlcXVlc3RfdW5yZWYo
cmVxdWVzdCk7CiB9CiAKIHN0YXRpYyB2b2lkIGRpZFNlbmRSZXF1ZXN0Rm9yUmVzb3VyY2UoV0tQ
YWdlUmVmLCBXS0ZyYW1lUmVmLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFdLVVJMUmVx
dWVzdFJlZiB3a1JlcXVlc3QsIFdLVVJMUmVzcG9uc2VSZWYgd2tSZWRpcmVjdFJlc3BvbnNlLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCA9
IGV3a191cmxfcmVxdWVzdF9uZXcod2tSZXF1ZXN0KTsKKyAgICBSZWZQdHI8RXdrX1VybF9SZXF1
ZXN0PiByZXF1ZXN0ID0gYWRvcHRSZWYoZXdrX3VybF9yZXF1ZXN0X25ldyh3a1JlcXVlc3QpKTsK
ICAgICBFd2tfVXJsX1Jlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNlID0gd2tSZWRpcmVjdFJlc3Bv
bnNlID8gZXdrX3VybF9yZXNwb25zZV9uZXcodG9JbXBsKHdrUmVkaXJlY3RSZXNwb25zZSktPnJl
c291cmNlUmVzcG9uc2UoKSkgOiAwOwotICAgIGV3a192aWV3X3Jlc291cmNlX3JlcXVlc3Rfc2Vu
dCh0b0V3a1ZpZXcoY2xpZW50SW5mbyksIHJlc291cmNlSWRlbnRpZmllciwgcmVxdWVzdCwgcmVk
aXJlY3RSZXNwb25zZSk7Ci0gICAgZXdrX3VybF9yZXF1ZXN0X3VucmVmKHJlcXVlc3QpOworICAg
IGV3a192aWV3X3Jlc291cmNlX3JlcXVlc3Rfc2VudCh0b0V3a1ZpZXcoY2xpZW50SW5mbyksIHJl
c291cmNlSWRlbnRpZmllciwgcmVxdWVzdC5nZXQoKSwgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAg
aWYgKHJlZGlyZWN0UmVzcG9uc2UpCiAgICAgICAgIGV3a191cmxfcmVzcG9uc2VfdW5yZWYocmVk
aXJlY3RSZXNwb25zZSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>