<?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>35329</bug_id>
          
          <creation_ts>2010-02-23 22:26:43 -0800</creation_ts>
          <short_desc>Enhance CSS parser for Paged Media (Iteration 1)</short_desc>
          <delta_ts>2013-12-12 03:39:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>15548</blocked>
    
    <blocked>35782</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuzo Fujishima">yuzo</reporter>
          <assigned_to name="Yuzo Fujishima">yuzo</assigned_to>
          <cc>darin</cc>
    
    <cc>douglas</cc>
    
    <cc>hamaji</cc>
    
    <cc>hayato</cc>
    
    <cc>hyatt</cc>
    
    <cc>mitz</cc>
    
    <cc>m.kurz+webkitbugs</cc>
    
    <cc>peter.linss</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>193245</commentid>
    <comment_count>0</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-23 22:26:43 -0800</bug_when>
    <thetext>Enhance CSS parser for Paged Media.

First, extend the grammar and define skeletal methods for creating page rules and margin at-rules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193253</commentid>
    <comment_count>1</comment_count>
      <attachid>49359</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-23 22:48:08 -0800</bug_when>
    <thetext>Created attachment 49359
Enhance CSS parser for Paged Media (Iteration 1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193260</commentid>
    <comment_count>2</comment_count>
      <attachid>49359</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-02-24 00:21:07 -0800</bug_when>
    <thetext>Comment on attachment 49359
Enhance CSS parser for Paged Media (Iteration 1)

I&apos;m not good at CSS parser stuff so we need CSS guru&apos;s reviews eventually, but I&apos;d like to do preliminary reviews for this patch. Please consider following comments.

&gt; +        Note: http://dev.w3.org/csswg/css3-page/#syntax-page-selector says margin_box contains ruleset, but I believe this is a bug.
&gt; +        margin_box contains property declarations as far as I can tell from the examples there. I&apos;ve sent a question about this to
&gt; +        www-style@w3.org.

I think this kind of comments should be in bugzilla, not in ChangeLog.

&gt; +        This change contains no tests because it doesn&apos;t change the rendering yet.

I think we can add tests for invalid styles by something like

@page {
  div {
    background-color: red; /* this must be ignored */
  }
}
div {
  background-color: green;
  @page {
    background-color: red; /* this must be ignored */
  }
  background-color: red; /* this must be ignored */
}

I think having bunch of valid @page rules in tests would be also nice because we can ensure the grammar introduced in this change won&apos;t crash.

&gt; +%token &lt;string&gt; TOPLEFTCORNER_SYM
&gt; +%token &lt;string&gt; TOPLEFT_SYM
&gt; +%token &lt;string&gt; TOPCENTER_SYM
&gt; +%token &lt;string&gt; TOPRIGHT_SYM
&gt; +%token &lt;string&gt; TOPRIGHTCORNER_SYM
&gt; +%token &lt;string&gt; BOTTOMLEFTCORNER_SYM
&gt; +%token &lt;string&gt; BOTTOMLEFT_SYM
&gt; +%token &lt;string&gt; BOTTOMCENTER_SYM
&gt; +%token &lt;string&gt; BOTTOMRIGHT_SYM
&gt; +%token &lt;string&gt; BOTTOMRIGHTCORNER_SYM
&gt; +%token &lt;string&gt; LEFTTOP_SYM
&gt; +%token &lt;string&gt; LEFTMIDDLE_SYM
&gt; +%token &lt;string&gt; LEFTBOTTOM_SYM
&gt; +%token &lt;string&gt; RIGHTTOP_SYM
&gt; +%token &lt;string&gt; RIGHTMIDDLE_SYM
&gt; +%token &lt;string&gt; RIGHTBOTTOM_SYM

&gt; +%type &lt;string&gt; margin_sym

I&apos;m not sure why they are strings. I guess they should be integers.

&gt; +declarations_and_margins:
&gt; +    declaration_list {
&gt; +    }
&gt; +    |
&gt; +    decl_followed_by_margin {
&gt; +    }
&gt; +    |
&gt; +    decl_followed_by_margin maybe_space declaration_list {
&gt; +    }
&gt; +    ;
&gt; +
&gt; +decl_followed_by_margin:
&gt; +    margin_box {
&gt; +    }
&gt; +    | declaration_list maybe_space margin_box {
&gt; +    }
&gt; +    | decl_followed_by_margin maybe_space margin_box {
&gt; +    }
&gt; +    | decl_followed_by_margin maybe_space declaration_list maybe_space margin_box {
&gt; +    }
&gt; +    ;

I&apos;m not sure, but cannot we use simpler syntax like

declarations_and_margins:
  declarations_and_margins maybe_space margin_box {
  }
  declarations_and_margins maybe_space declaration_list {
  }
  | /* empty */ {
  }
  ;

?

&gt; +margin_box:
&gt; +    margin_sym {static_cast&lt;CSSParser*&gt;(parser)-&gt;startDeclarationsForMarginBox();} maybe_space

I think we need line breaks.

&gt; +CSSRule* CSSParser::createPageRule(CSSSelector* /* pageSelector */)
&gt; +{
&gt; +// FIXME: Create page rule here, using:
&gt; +//        - pageSelector-&gt;pseudoType(): the page pseudo-class, i.e., :left, :right, or :first
&gt; +//        - pageSelector-&gt;m_tag:  the page name
&gt; +//        - m_parsedProperties: the page properties

Wrong indentation.

&gt; +// FIXME: Implement margin at-rule here, using:
&gt; +//        - margin: margin box names excluding &apos;@&apos;, e.g., &quot;top-left-corner&quot;, &quot;top-left&quot;, ...
&gt; +//        - m_parsedProperties: properties at [m_numParsedPropertiesBeforeMarginBox, m_numParsedProperties) are for this at-rule.

Ditto.

&gt; +    ASSERT(m_numParsedPropertiesBeforeMarginBox &gt;= 0);

On my mac, compiler warns for this expression because m_numParsedPropertiesBeforeMarginBox is unsigned.

  /Users/hamaji/WebKit/WebCore/css/CSSParser.cpp:5189: warning: comparison of unsigned expression &gt;= 0 is always true</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193273</commentid>
    <comment_count>3</comment_count>
      <attachid>49365</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-24 02:16:49 -0800</bug_when>
    <thetext>Created attachment 49365
Enhance CSS parser for Paged Media (Iteration 1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193274</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-24 02:19:39 -0800</bug_when>
    <thetext>Attachment 49365 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/CSSParser.cpp:73:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193276</commentid>
    <comment_count>5</comment_count>
      <attachid>49367</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-24 02:24:00 -0800</bug_when>
    <thetext>Created attachment 49367
Enhance CSS parser for Paged Media (Iteration 1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193277</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-24 02:27:11 -0800</bug_when>
    <thetext>Attachment 49367 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/CSSParser.cpp:73:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193278</commentid>
    <comment_count>7</comment_count>
      <attachid>49368</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-24 02:29:00 -0800</bug_when>
    <thetext>Created attachment 49368
Enhance CSS parser for Paged Media (Iteration 1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193279</commentid>
    <comment_count>8</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-24 02:33:27 -0800</bug_when>
    <thetext>Hi, Hamaji-san,

Thank you for the review.

(In reply to comment #2)
&gt; (From update of attachment 49359 [details])
&gt; I&apos;m not good at CSS parser stuff so we need CSS guru&apos;s reviews eventually, but
&gt; I&apos;d like to do preliminary reviews for this patch. Please consider following
&gt; comments.
&gt; 
&gt; &gt; +        Note: http://dev.w3.org/csswg/css3-page/#syntax-page-selector says margin_box contains ruleset, but I believe this is a bug.
&gt; &gt; +        margin_box contains property declarations as far as I can tell from the examples there. I&apos;ve sent a question about this to
&gt; &gt; +        www-style@w3.org.
&gt; 
&gt; I think this kind of comments should be in bugzilla, not in ChangeLog.

OK, deleted.

&gt; 
&gt; &gt; +        This change contains no tests because it doesn&apos;t change the rendering yet.
&gt; 
&gt; I think we can add tests for invalid styles by something like
&gt; 
&gt; @page {
&gt;   div {
&gt;     background-color: red; /* this must be ignored */
&gt;   }
&gt; }
&gt; div {
&gt;   background-color: green;
&gt;   @page {
&gt;     background-color: red; /* this must be ignored */
&gt;   }
&gt;   background-color: red; /* this must be ignored */
&gt; }
&gt; 
&gt; I think having bunch of valid @page rules in tests would be also nice because
&gt; we can ensure the grammar introduced in this change won&apos;t crash.

Added tests.

&gt; 
&gt; &gt; +%token &lt;string&gt; TOPLEFTCORNER_SYM
&gt; &gt; +%token &lt;string&gt; TOPLEFT_SYM
&gt; &gt; +%token &lt;string&gt; TOPCENTER_SYM
&gt; &gt; +%token &lt;string&gt; TOPRIGHT_SYM
&gt; &gt; +%token &lt;string&gt; TOPRIGHTCORNER_SYM
&gt; &gt; +%token &lt;string&gt; BOTTOMLEFTCORNER_SYM
&gt; &gt; +%token &lt;string&gt; BOTTOMLEFT_SYM
&gt; &gt; +%token &lt;string&gt; BOTTOMCENTER_SYM
&gt; &gt; +%token &lt;string&gt; BOTTOMRIGHT_SYM
&gt; &gt; +%token &lt;string&gt; BOTTOMRIGHTCORNER_SYM
&gt; &gt; +%token &lt;string&gt; LEFTTOP_SYM
&gt; &gt; +%token &lt;string&gt; LEFTMIDDLE_SYM
&gt; &gt; +%token &lt;string&gt; LEFTBOTTOM_SYM
&gt; &gt; +%token &lt;string&gt; RIGHTTOP_SYM
&gt; &gt; +%token &lt;string&gt; RIGHTMIDDLE_SYM
&gt; &gt; +%token &lt;string&gt; RIGHTBOTTOM_SYM
&gt; 
&gt; &gt; +%type &lt;string&gt; margin_sym
&gt; 
&gt; I&apos;m not sure why they are strings. I guess they should be integers.
&gt; 

Changed to use CSSSelector::MarginBox instead.

&gt; &gt; +declarations_and_margins:
&gt; &gt; +    declaration_list {
&gt; &gt; +    }
&gt; &gt; +    |
&gt; &gt; +    decl_followed_by_margin {
&gt; &gt; +    }
&gt; &gt; +    |
&gt; &gt; +    decl_followed_by_margin maybe_space declaration_list {
&gt; &gt; +    }
&gt; &gt; +    ;
&gt; &gt; +
&gt; &gt; +decl_followed_by_margin:
&gt; &gt; +    margin_box {
&gt; &gt; +    }
&gt; &gt; +    | declaration_list maybe_space margin_box {
&gt; &gt; +    }
&gt; &gt; +    | decl_followed_by_margin maybe_space margin_box {
&gt; &gt; +    }
&gt; &gt; +    | decl_followed_by_margin maybe_space declaration_list maybe_space margin_box {
&gt; &gt; +    }
&gt; &gt; +    ;
&gt; 
&gt; I&apos;m not sure, but cannot we use simpler syntax like
&gt; 
&gt; declarations_and_margins:
&gt;   declarations_and_margins maybe_space margin_box {
&gt;   }
&gt;   declarations_and_margins maybe_space declaration_list {
&gt;   }
&gt;   | /* empty */ {
&gt;   }
&gt;   ;
&gt; 
&gt; ?

Made them simpler and shorter.

&gt; 
&gt; &gt; +margin_box:
&gt; &gt; +    margin_sym {static_cast&lt;CSSParser*&gt;(parser)-&gt;startDeclarationsForMarginBox();} maybe_space
&gt; 
&gt; I think we need line breaks.
&gt; 

Done.

&gt; &gt; +CSSRule* CSSParser::createPageRule(CSSSelector* /* pageSelector */)
&gt; &gt; +{
&gt; &gt; +// FIXME: Create page rule here, using:
&gt; &gt; +//        - pageSelector-&gt;pseudoType(): the page pseudo-class, i.e., :left, :right, or :first
&gt; &gt; +//        - pageSelector-&gt;m_tag:  the page name
&gt; &gt; +//        - m_parsedProperties: the page properties
&gt; 
&gt; Wrong indentation.
&gt; 

Fixed.

&gt; &gt; +// FIXME: Implement margin at-rule here, using:
&gt; &gt; +//        - margin: margin box names excluding &apos;@&apos;, e.g., &quot;top-left-corner&quot;, &quot;top-left&quot;, ...
&gt; &gt; +//        - m_parsedProperties: properties at [m_numParsedPropertiesBeforeMarginBox, m_numParsedProperties) are for this at-rule.
&gt; 
&gt; Ditto.

Fixed.

&gt; 
&gt; &gt; +    ASSERT(m_numParsedPropertiesBeforeMarginBox &gt;= 0);
&gt; 
&gt; On my mac, compiler warns for this expression because
&gt; m_numParsedPropertiesBeforeMarginBox is unsigned.
&gt; 
&gt;   /Users/hamaji/WebKit/WebCore/css/CSSParser.cpp:5189: warning: comparison of
&gt; unsigned expression &gt;= 0 is always true

Oops. Thanks for the good catch.

Changed to use a constant representing an invalid value (actually UNIT_MAX).

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194654</commentid>
    <comment_count>9</comment_count>
      <attachid>49713</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-01 02:09:46 -0800</bug_when>
    <thetext>Created attachment 49713
Enhance CSS parser for Paged Media (Iteration 1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194656</commentid>
    <comment_count>10</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-01 02:10:14 -0800</bug_when>
    <thetext>Changed not to use unnamed namespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194662</commentid>
    <comment_count>11</comment_count>
      <attachid>49716</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-01 02:21:55 -0800</bug_when>
    <thetext>Created attachment 49716
Enhance CSS parser for Paged Media (Iteration 1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194663</commentid>
    <comment_count>12</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-01 02:25:28 -0800</bug_when>
    <thetext>Changed to include limits.h instead of climits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194951</commentid>
    <comment_count>13</comment_count>
      <attachid>49781</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-01 22:51:09 -0800</bug_when>
    <thetext>Created attachment 49781
Enhance CSS parser for Paged Media (Iteration 1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194952</commentid>
    <comment_count>14</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-01 22:51:59 -0800</bug_when>
    <thetext>Simplified the grammar.
Fixed indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195839</commentid>
    <comment_count>15</comment_count>
      <attachid>49970</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-03 18:13:42 -0800</bug_when>
    <thetext>Created attachment 49970
Enhance CSS parser for Paged Media (Iteration 1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195840</commentid>
    <comment_count>16</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-03 18:14:51 -0800</bug_when>
    <thetext>1-line fix in the patch. Sunk floating selector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195997</commentid>
    <comment_count>17</comment_count>
      <attachid>50004</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-04 04:26:16 -0800</bug_when>
    <thetext>Created attachment 50004
Enhance CSS parser for Paged Media (Iteration 1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195999</commentid>
    <comment_count>18</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-04 04:27:48 -0800</bug_when>
    <thetext>1-line fix: use nullAtom for selector local name for no identifier no pseudo-class case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197941</commentid>
    <comment_count>19</comment_count>
      <attachid>50382</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-10 02:11:55 -0800</bug_when>
    <thetext>Created attachment 50382
Enhance CSS parser for Paged Media (Iteration 1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199551</commentid>
    <comment_count>20</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-14 23:43:33 -0700</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199892</commentid>
    <comment_count>21</comment_count>
      <attachid>50382</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-15 15:56:07 -0700</bug_when>
    <thetext>Comment on attachment 50382
Enhance CSS parser for Paged Media (Iteration 1)

I do not speak yacc well enough to review this.  Darin Adler has historically reviewed a lot of these changes in the past.  Perhaps I should learn yacc and review this. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200089</commentid>
    <comment_count>22</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-16 03:16:54 -0700</bug_when>
    <thetext>Eric, thank you for your review.

Darin, I&apos;d appreciate it if you could take a look at this and other patches that
I CC to you shortly.

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206986</commentid>
    <comment_count>23</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-31 23:41:25 -0700</bug_when>
    <thetext>Darin,

Would you mind reviewing this?
Or can you recommend a reviewer for this?

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209523</commentid>
    <comment_count>24</comment_count>
      <attachid>50382</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-07 01:12:41 -0700</bug_when>
    <thetext>Comment on attachment 50382
Enhance CSS parser for Paged Media (Iteration 1)

&gt; +        CSSRule* createMarginAtRule(CSSSelector::MarginBox&amp; marginBox);

Why marginBox is passed by reference? Will we modify this value inside this function?

&gt; +        enum MarginBox {

I this good naming? I would say MarginBoxPosition, MarginBoxType or something like this, but I&apos;m not sure.

&gt; +            TopLeftCorner,
&gt; +            TopLeft,
&gt; +            TopCenter,
&gt; +            TopRight,
&gt; +            TopRightCorner,
&gt; +            BottomLeftCorner,
&gt; +            BottomLeft,
&gt; +            BottomCenter,
&gt; +            BottomRight,
&gt; +            BottomRightCorner,
&gt; +            LeftTop,
&gt; +            LeftMiddle,
&gt; +            LeftBottom,
&gt; +            RightTop,
&gt; +            RightMiddle,
&gt; +            RightBottom,

CSSSelector::TopLeftCorner sounds a bit unclear to me. How about adding MarginBox prefixes for them (e.g., MarginBoxTopLeftCorner)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209970</commentid>
    <comment_count>25</comment_count>
      <attachid>52820</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-07 19:22:51 -0700</bug_when>
    <thetext>Created attachment 52820
Enhance CSS parser for Paged Media (Iteration 1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209971</commentid>
    <comment_count>26</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-07 19:27:27 -0700</bug_when>
    <thetext>Thank you for the review.

(In reply to comment #24)
&gt; (From update of attachment 50382 [details])
&gt; &gt; +        CSSRule* createMarginAtRule(CSSSelector::MarginBox&amp; marginBox);
&gt; 
&gt; Why marginBox is passed by reference? Will we modify this value inside this
&gt; function?

Changed to pass-by-value.

&gt; 
&gt; &gt; +        enum MarginBox {
&gt; 
&gt; I this good naming? I would say MarginBoxPosition, MarginBoxType or something
&gt; like this, but I&apos;m not sure.

Renamed it MarginBoxType.

&gt; 
&gt; &gt; +            TopLeftCorner,
&gt; &gt; +            TopLeft,
&gt; &gt; +            TopCenter,
&gt; &gt; +            TopRight,
&gt; &gt; +            TopRightCorner,
&gt; &gt; +            BottomLeftCorner,
&gt; &gt; +            BottomLeft,
&gt; &gt; +            BottomCenter,
&gt; &gt; +            BottomRight,
&gt; &gt; +            BottomRightCorner,
&gt; &gt; +            LeftTop,
&gt; &gt; +            LeftMiddle,
&gt; &gt; +            LeftBottom,
&gt; &gt; +            RightTop,
&gt; &gt; +            RightMiddle,
&gt; &gt; +            RightBottom,
&gt; 
&gt; CSSSelector::TopLeftCorner sounds a bit unclear to me. How about adding
&gt; MarginBox prefixes for them (e.g., MarginBoxTopLeftCorner)?

Added &quot;MarginBox&quot; suffix, e.g., TopLeftCornerMarginBox because
it is a little bit easier to read. I have no strong preference, though.
I can use prefix if you prefer.

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215084</commentid>
    <comment_count>27</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-20 17:40:17 -0700</bug_when>
    <thetext>Hyatt, could you look at this patch please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215442</commentid>
    <comment_count>28</comment_count>
      <attachid>52820</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-04-21 12:36:36 -0700</bug_when>
    <thetext>Comment on attachment 52820
Enhance CSS parser for Paged Media (Iteration 1)

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217618</commentid>
    <comment_count>29</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-27 02:35:35 -0700</bug_when>
    <thetext>Committed r58299: &lt;http://trac.webkit.org/changeset/58299&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217642</commentid>
    <comment_count>30</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-27 03:55:03 -0700</bug_when>
    <thetext>Committed r58301: &lt;http://trac.webkit.org/changeset/58301&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217643</commentid>
    <comment_count>31</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-27 03:59:04 -0700</bug_when>
    <thetext>Rolled out r58299 by r58301 because it causes: Tiger Intel Release : compiled failed.

    /bin/sh -c \&quot;/Volumes/Data/WebKit-BuildSlave/tiger-intel-release/build/WebKitBuild/WebCore.build/Release/Derived\ Sources.build/Script-DD041FBD09D9DDBE0010AF2A.sh\&quot;
bison -d -p cssyy WebCore/css/CSSGrammar.y -o CSSGrammar.cpp
WebCore/css/CSSGrammar.y:790: type clash (`&apos; `boolean&apos;) on default action
make[1]: *** [CSSGrammar.cpp] Error 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217644</commentid>
    <comment_count>32</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-27 04:00:03 -0700</bug_when>
    <thetext>The Tiger compilation error needs to be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217652</commentid>
    <comment_count>33</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-27 04:19:45 -0700</bug_when>
    <thetext>r58299 also causes the following crash:

perl ./WebKitTools/Scripts/run-webkit-tests --no-launch-safari --no-new-test-results --no-sample-on-timeout --results-directory layout-test-results --use-remote-links-to-tests --debug --exit-after-n-failures 20 --leaks
 in dir /Volumes/Data/WebKit-BuildSlave/snowleopard-intel-leaks/build (timeout 1200 secs)
 watching logfiles {}
 argv: [&apos;perl&apos;, &apos;./WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--no-new-test-results&apos;, &apos;--no-sample-on-timeout&apos;, &apos;--results-directory&apos;, &apos;layout-test-results&apos;, &apos;--use-remote-links-to-tests&apos;, &apos;--debug&apos;, &apos;--exit-after-n-failures&apos;, &apos;20&apos;, &apos;--leaks&apos;]
 environment:
  HOME=/Users/buildbot
  LOGNAME=buildbot
  PATH=/usr/bin:/bin:/usr/sbin:/sbin
  PWD=/Volumes/Data/WebKit-BuildSlave/snowleopard-intel-leaks/build
  SHELL=/bin/bash
  TMPDIR=/var/folders/dR/dRbf9KVoHs0rNZjRONbHTU+++TI/-Tmp-/
  USER=buildbot
  VERSIONER_PYTHON_PREFER_32_BIT=no
  VERSIONER_PYTHON_VERSION=2.6
 closing stdin
 using PTY: False
Running build-dumprendertree
...
java/lc3/ConvertNumber/number-011.html -&gt; crashed
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217663</commentid>
    <comment_count>34</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-27 05:33:35 -0700</bug_when>
    <thetext>I could reproduce the bison error on my snow leopard by using bison in

http://www.opensource.apple.com/release/mac-os-x-103/

It seems just adding the following line fixes this issue.

%type &lt;boolean&gt; declarations_and_margins</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218174</commentid>
    <comment_count>35</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-27 20:42:32 -0700</bug_when>
    <thetext>Committed r58374: &lt;http://trac.webkit.org/changeset/58374&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218475</commentid>
    <comment_count>36</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-04-28 10:53:02 -0700</bug_when>
    <thetext>This caused bug 38272.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221999</commentid>
    <comment_count>37</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-06 15:15:54 -0700</bug_when>
    <thetext>This also caused bug 38697.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49359</attachid>
            <date>2010-02-23 22:48:08 -0800</date>
            <delta_ts>2010-02-24 02:16:44 -0800</delta_ts>
            <desc>Enhance CSS parser for Paged Media (Iteration 1)</desc>
            <filename>bug-35329-20100224154806.patch</filename>
            <type>text/plain</type>
            <size>13622</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGZmOTU3ZS4uNDc4YzUzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMC0wMi0yMyAgWXV6byBGdWppc2hp
bWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRW5oYW5jZSBDU1MgcGFyc2VyIGZvciBQYWdlZCBNZWRpYSAoSXRlcmF0
aW9uIDEpCisKKyAgICAgICAgSW4gdGhpcyBjaGFuZ2UsIHRoZSBncmFtbWFyIGlzIGV4dGVuZGVk
IGFuZCBza2VsZXRhbCBtZXRob2RzIGZvciBjcmVhdGluZyBwYWdlIHJ1bGVzIGFuZCBtYXJnaW4g
YXQtcnVsZXMgYXJlIGRlZmluZWQuCisgICAgICAgIFRoZSBjb250ZW50cyBvZiB0aGUgbWV0aG9k
cyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkgb3RoZXIgY2hhbmdlcy4KKworICAgICAgICBOb3Rl
OiBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXBhZ2UvI3N5bnRheC1wYWdlLXNlbGVjdG9y
IHNheXMgbWFyZ2luX2JveCBjb250YWlucyBydWxlc2V0LCBidXQgSSBiZWxpZXZlIHRoaXMgaXMg
YSBidWcuCisgICAgICAgIG1hcmdpbl9ib3ggY29udGFpbnMgcHJvcGVydHkgZGVjbGFyYXRpb25z
IGFzIGZhciBhcyBJIGNhbiB0ZWxsIGZyb20gdGhlIGV4YW1wbGVzIHRoZXJlLiBJJ3ZlIHNlbnQg
YSBxdWVzdGlvbiBhYm91dCB0aGlzIHRvCisgICAgICAgIHd3dy1zdHlsZUB3My5vcmcuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5CisKKyAg
ICAgICAgVGhpcyBjaGFuZ2UgY29udGFpbnMgbm8gdGVzdHMgYmVjYXVzZSBpdCBkb2Vzbid0IGNo
YW5nZSB0aGUgcmVuZGVyaW5nIHlldC4KKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6Cisg
ICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OkNTU1BhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNsZWFyUHJvcGVydGll
cyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmxleCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVQ
YWdlUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZU1hcmdpbkF0UnVs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFy
Z2luQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZW5kRGVjbGFyYXRpb25zRm9y
TWFyZ2luQm94KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NT
U1NlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpleHRyYWN0UHNl
dWRvVHlwZSk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6KToKKyAgICAgICAgKiBjc3MvdG9rZW5pemVyLmZsZXg6CisKIDIwMTAt
MDItMDcgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55
IGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IDlkNWViNmUuLjZjZGQyZmUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQorKysgYi9XZWJDb3JlL2Nzcy9DU1NHcmFt
bWFyLnkKQEAgLTk3LDcgKzk3LDcgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2
YWwsIHZvaWQqIHBhcnNlcikKIAogJX0KIAotJWV4cGVjdCA1NAorJWV4cGVjdCA2NwogCiAlbm9u
YXNzb2MgTE9XRVNUX1BSRUMKIApAQCAtMTQyLDYgKzE0MiwyMyBAQCBzdGF0aWMgaW50IGNzc3l5
bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2VyKQogJXRva2VuIFdFQktJVF9ERUZJTkVf
U1lNCiAldG9rZW4gVkFSSUFCTEVTX0ZPUgogJXRva2VuIFdFQktJVF9WQVJJQUJMRVNfREVDTFNf
U1lNCisldG9rZW4gPHN0cmluZz4gVE9QTEVGVENPUk5FUl9TWU0KKyV0b2tlbiA8c3RyaW5nPiBU
T1BMRUZUX1NZTQorJXRva2VuIDxzdHJpbmc+IFRPUENFTlRFUl9TWU0KKyV0b2tlbiA8c3RyaW5n
PiBUT1BSSUdIVF9TWU0KKyV0b2tlbiA8c3RyaW5nPiBUT1BSSUdIVENPUk5FUl9TWU0KKyV0b2tl
biA8c3RyaW5nPiBCT1RUT01MRUZUQ09STkVSX1NZTQorJXRva2VuIDxzdHJpbmc+IEJPVFRPTUxF
RlRfU1lNCisldG9rZW4gPHN0cmluZz4gQk9UVE9NQ0VOVEVSX1NZTQorJXRva2VuIDxzdHJpbmc+
IEJPVFRPTVJJR0hUX1NZTQorJXRva2VuIDxzdHJpbmc+IEJPVFRPTVJJR0hUQ09STkVSX1NZTQor
JXRva2VuIDxzdHJpbmc+IExFRlRUT1BfU1lNCisldG9rZW4gPHN0cmluZz4gTEVGVE1JRERMRV9T
WU0KKyV0b2tlbiA8c3RyaW5nPiBMRUZUQk9UVE9NX1NZTQorJXRva2VuIDxzdHJpbmc+IFJJR0hU
VE9QX1NZTQorJXRva2VuIDxzdHJpbmc+IFJJR0hUTUlERExFX1NZTQorJXRva2VuIDxzdHJpbmc+
IFJJR0hUQk9UVE9NX1NZTQorCiAldG9rZW4gQVRLRVlXT1JECiAKICV0b2tlbiBJTVBPUlRBTlRf
U1lNCkBAIC0xODgsNiArMjA1LDcgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2
YWwsIHZvaWQqIHBhcnNlcikKICV0eXBlIDxydWxlPiBpbXBvcnQKICV0eXBlIDxydWxlPiBuYW1l
c3BhY2UKICV0eXBlIDxydWxlPiBwYWdlCisldHlwZSA8cnVsZT4gbWFyZ2luX2JveAogJXR5cGUg
PHJ1bGU+IGZvbnRfZmFjZQogJXR5cGUgPHJ1bGU+IGtleWZyYW1lcwogJXR5cGUgPHJ1bGU+IGlu
dmFsaWRfcnVsZQpAQCAtMjA5LDYgKzIyNyw3IEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQ
RSogeXlsdmFsLCB2b2lkKiBwYXJzZXIpCiAldHlwZSA8c3RyaW5nPiBpZGVudF9vcl9zdHJpbmcK
ICV0eXBlIDxzdHJpbmc+IG1lZGl1bQogJXR5cGUgPHN0cmluZz4gaGV4Y29sb3IKKyV0eXBlIDxz
dHJpbmc+IG1hcmdpbl9zeW0KIAogJXR5cGUgPHN0cmluZz4gbWVkaWFfZmVhdHVyZQogJXR5cGUg
PG1lZGlhTGlzdD4gbWVkaWFfbGlzdApAQCAtMjM3LDYgKzI1Niw3IEBAIHN0YXRpYyBpbnQgY3Nz
eXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lkKiBwYXJzZXIpCiAldHlwZSA8c2VsZWN0b3I+IGNs
YXNzCiAldHlwZSA8c2VsZWN0b3I+IGF0dHJpYgogJXR5cGUgPHNlbGVjdG9yPiBwc2V1ZG8KKyV0
eXBlIDxzZWxlY3Rvcj4gcGFnZV9zZWxlY3RvcgogCiAldHlwZSA8Ym9vbGVhbj4gZGVjbGFyYXRp
b25fbGlzdAogJXR5cGUgPGJvb2xlYW4+IGRlY2xfbGlzdApAQCAtNzI4LDI2ICs3NDgsODggQEAg
a2V5OgogICAgIH0KICAgICA7CiAKLS8qCiBwYWdlOgotICAgIFBBR0VfU1lNIG1heWJlX3NwYWNl
IElERU5UPyBwc2V1ZG9fcGFnZT8gbWF5YmVfc3BhY2UKLSAgICAneycgbWF5YmVfc3BhY2UgZGVj
bGFyYXRpb24gWyAnOycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb24gXSogJ30nIG1heWJlX3NwYWNl
Ci0gIDsKLQotcHNldWRvX3BhZ2UKLSAgOiAnOicgSURFTlQKLSAgOwotKi8KLQotcGFnZToKLSAg
ICBQQUdFX1NZTSBlcnJvciBpbnZhbGlkX2Jsb2NrIHsKKyAgICBQQUdFX1NZTSBtYXliZV9zcGFj
ZSBwYWdlX3NlbGVjdG9yIG1heWJlX3NwYWNlCisgICAgJ3snIG1heWJlX3NwYWNlIGRlY2xhcmF0
aW9uc19hbmRfbWFyZ2lucyBjbG9zaW5nX2JyYWNlIHsKKyAgICAgICAgJCQgPSBzdGF0aWNfY2Fz
dDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVhdGVQYWdlUnVsZSgkMyk7CisgICAgfQorICAgIHwg
UEFHRV9TWU0gZXJyb3IgaW52YWxpZF9ibG9jayB7CiAgICAgICAkJCA9IDA7CiAgICAgfQotICB8
IFBBR0VfU1lNIGVycm9yICc7JyB7CisgICAgfCBQQUdFX1NZTSBlcnJvciAnOycgewogICAgICAg
JCQgPSAwOwogICAgIH0KICAgICA7CiAKK3BhZ2Vfc2VsZWN0b3I6CisgICAgSURFTlQgeworICAg
ICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAg
ICAgICAkJCA9IHAtPmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKKyAgICAgICAgJCQtPm1fdGFn
ID0gUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVzcGFjZSk7Cisg
ICAgfQorICAgIHwgSURFTlQgcHNldWRvIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGlj
X2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgJCQgPSAkMjsKKyAgICAgICAgaWYg
KCQkKQorICAgICAgICAgICAgJCQtPm1fdGFnID0gUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEs
IHAtPm1fZGVmYXVsdE5hbWVzcGFjZSk7CisgICAgfQorICAgIHwgcHNldWRvIHsKKyAgICAgICAg
JCQgPSAkMTsKKyAgICB9CisgICAgfCAvKiBlbXB0eSAqLyB7CisgICAgICAgIENTU1BhcnNlciog
cCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgICQkID0gcC0+Y3Jl
YXRlRmxvYXRpbmdTZWxlY3RvcigpOworICAgIH0KKyAgICA7CisKK2RlY2xhcmF0aW9uc19hbmRf
bWFyZ2luczoKKyAgICBkZWNsYXJhdGlvbl9saXN0IHsKKyAgICB9CisgICAgfAorICAgIGRlY2xf
Zm9sbG93ZWRfYnlfbWFyZ2luIHsKKyAgICB9CisgICAgfAorICAgIGRlY2xfZm9sbG93ZWRfYnlf
bWFyZ2luIG1heWJlX3NwYWNlIGRlY2xhcmF0aW9uX2xpc3QgeworICAgIH0KKyAgICA7CisKK2Rl
Y2xfZm9sbG93ZWRfYnlfbWFyZ2luOgorICAgIG1hcmdpbl9ib3ggeworICAgIH0KKyAgICB8IGRl
Y2xhcmF0aW9uX2xpc3QgbWF5YmVfc3BhY2UgbWFyZ2luX2JveCB7CisgICAgfQorICAgIHwgZGVj
bF9mb2xsb3dlZF9ieV9tYXJnaW4gbWF5YmVfc3BhY2UgbWFyZ2luX2JveCB7CisgICAgfQorICAg
IHwgZGVjbF9mb2xsb3dlZF9ieV9tYXJnaW4gbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCBt
YXliZV9zcGFjZSBtYXJnaW5fYm94IHsKKyAgICB9CisgICAgOworCittYXJnaW5fYm94OgorICAg
IG1hcmdpbl9zeW0ge3N0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlciktPnN0YXJ0RGVjbGFy
YXRpb25zRm9yTWFyZ2luQm94KCk7fSBtYXliZV9zcGFjZQorICAgICd7JyBtYXliZV9zcGFjZSBk
ZWNsYXJhdGlvbl9saXN0IGNsb3NpbmdfYnJhY2UgeworICAgICAgICAkJCA9IHN0YXRpY19jYXN0
PENTU1BhcnNlcio+KHBhcnNlciktPmNyZWF0ZU1hcmdpbkF0UnVsZSgkMSk7CisgICAgfQorICAg
IDsKKworbWFyZ2luX3N5bSA6CisgICAgVE9QTEVGVENPUk5FUl9TWU0KKyAgICB8IFRPUExFRlRf
U1lNCisgICAgfCBUT1BDRU5URVJfU1lNCisgICAgfCBUT1BSSUdIVF9TWU0KKyAgICB8IFRPUFJJ
R0hUQ09STkVSX1NZTQorICAgIHwgQk9UVE9NTEVGVENPUk5FUl9TWU0KKyAgICB8IEJPVFRPTUxF
RlRfU1lNCisgICAgfCBCT1RUT01DRU5URVJfU1lNCisgICAgfCBCT1RUT01SSUdIVF9TWU0KKyAg
ICB8IEJPVFRPTVJJR0hUQ09STkVSX1NZTQorICAgIHwgTEVGVFRPUF9TWU0KKyAgICB8IExFRlRN
SURETEVfU1lNCisgICAgfCBMRUZUQk9UVE9NX1NZTQorICAgIHwgUklHSFRUT1BfU1lNCisgICAg
fCBSSUdIVE1JRERMRV9TWU0KKyAgICB8IFJJR0hUQk9UVE9NX1NZTQorICAgIDsKKwogZm9udF9m
YWNlOgogICAgIEZPTlRfRkFDRV9TWU0gbWF5YmVfc3BhY2UKICAgICAneycgbWF5YmVfc3BhY2Ug
ZGVjbGFyYXRpb25fbGlzdCAnfScgIG1heWJlX3NwYWNlIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDVjNjUx
NDIuLjM4MDZmNzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTM1LDYgKzEzNSw3IEBAIENTU1BhcnNlcjo6
Q1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICAgICAsIG1fcGFyc2VkUHJvcGVydGllcyhz
dGF0aWNfY2FzdDxDU1NQcm9wZXJ0eSoqPihmYXN0TWFsbG9jKDMyICogc2l6ZW9mKENTU1Byb3Bl
cnR5KikpKSkKICAgICAsIG1fbnVtUGFyc2VkUHJvcGVydGllcygwKQogICAgICwgbV9tYXhQYXJz
ZWRQcm9wZXJ0aWVzKDMyKQorICAgICwgbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2lu
Qm94KC0xKQogICAgICwgbV9pblBhcnNlU2hvcnRoYW5kKDApCiAgICAgLCBtX2N1cnJlbnRTaG9y
dGhhbmQoMCkKICAgICAsIG1faW1wbGljaXRTaG9ydGhhbmQoZmFsc2UpCkBAIC0zOTQsNiArMzk1
LDcgQEAgdm9pZCBDU1NQYXJzZXI6OmNsZWFyUHJvcGVydGllcygpCiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG1fbnVtUGFyc2VkUHJvcGVydGllczsgaSsrKQogICAgICAgICBkZWxldGUg
bV9wYXJzZWRQcm9wZXJ0aWVzW2ldOwogICAgIG1fbnVtUGFyc2VkUHJvcGVydGllcyA9IDA7Cisg
ICAgbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94ID0gLTE7CiAgICAgbV9oYXNG
b250RmFjZU9ubHlWYWx1ZXMgPSBmYWxzZTsKIH0KIApAQCAtNDY1MSw2ICs0NjUzLDIyIEBAIGlu
dCBDU1NQYXJzZXI6OmxleCh2b2lkKiB5eWx2YWxXaXRob3V0VHlwZSkKICAgICBjYXNlIEZVTkNU
SU9OOgogICAgIGNhc2UgTk9URlVOQ1RJT046CiAgICAgY2FzZSBWQVJDQUxMOgorICAgIGNhc2Ug
VE9QTEVGVENPUk5FUl9TWU06CisgICAgY2FzZSBUT1BMRUZUX1NZTToKKyAgICBjYXNlIFRPUENF
TlRFUl9TWU06CisgICAgY2FzZSBUT1BSSUdIVF9TWU06CisgICAgY2FzZSBUT1BSSUdIVENPUk5F
Ul9TWU06CisgICAgY2FzZSBCT1RUT01MRUZUQ09STkVSX1NZTToKKyAgICBjYXNlIEJPVFRPTUxF
RlRfU1lNOgorICAgIGNhc2UgQk9UVE9NQ0VOVEVSX1NZTToKKyAgICBjYXNlIEJPVFRPTVJJR0hU
X1NZTToKKyAgICBjYXNlIEJPVFRPTVJJR0hUQ09STkVSX1NZTToKKyAgICBjYXNlIExFRlRUT1Bf
U1lNOgorICAgIGNhc2UgTEVGVE1JRERMRV9TWU06CisgICAgY2FzZSBMRUZUQk9UVE9NX1NZTToK
KyAgICBjYXNlIFJJR0hUVE9QX1NZTToKKyAgICBjYXNlIFJJR0hUTUlERExFX1NZTToKKyAgICBj
YXNlIFJJR0hUQk9UVE9NX1NZTToKICAgICAgICAgeXlsdmFsLT5zdHJpbmcuY2hhcmFjdGVycyA9
IHQ7CiAgICAgICAgIHl5bHZhbC0+c3RyaW5nLmxlbmd0aCA9IGxlbmd0aDsKICAgICAgICAgYnJl
YWs7CkBAIC00NzM5LDYgKzQ3NTcsMjIgQEAgVUNoYXIqIENTU1BhcnNlcjo6dGV4dChpbnQgKmxl
bmd0aCkKICAgICAgICAgLyogbm9icmVhayAqLwogICAgIGNhc2UgSEVYOgogICAgIGNhc2UgSURT
RUw6CisgICAgY2FzZSBUT1BMRUZUQ09STkVSX1NZTToKKyAgICBjYXNlIFRPUExFRlRfU1lNOgor
ICAgIGNhc2UgVE9QQ0VOVEVSX1NZTToKKyAgICBjYXNlIFRPUFJJR0hUX1NZTToKKyAgICBjYXNl
IFRPUFJJR0hUQ09STkVSX1NZTToKKyAgICBjYXNlIEJPVFRPTUxFRlRDT1JORVJfU1lNOgorICAg
IGNhc2UgQk9UVE9NTEVGVF9TWU06CisgICAgY2FzZSBCT1RUT01DRU5URVJfU1lNOgorICAgIGNh
c2UgQk9UVE9NUklHSFRfU1lNOgorICAgIGNhc2UgQk9UVE9NUklHSFRDT1JORVJfU1lNOgorICAg
IGNhc2UgTEVGVFRPUF9TWU06CisgICAgY2FzZSBMRUZUTUlERExFX1NZTToKKyAgICBjYXNlIExF
RlRCT1RUT01fU1lNOgorICAgIGNhc2UgUklHSFRUT1BfU1lNOgorICAgIGNhc2UgUklHSFRNSURE
TEVfU1lNOgorICAgIGNhc2UgUklHSFRCT1RUT01fU1lNOgogICAgICAgICBzdGFydCsrOwogICAg
ICAgICBsLS07CiAgICAgICAgIGJyZWFrOwpAQCAtNTEyNCw2ICs1MTU4LDM5IEBAIGJvb2wgQ1NT
UGFyc2VyOjphZGRWYXJpYWJsZURlY2xhcmF0aW9uQmxvY2soY29uc3QgQ1NTUGFyc2VyU3RyaW5n
JikKIAogI2VuZGlmCiAKK0NTU1J1bGUqIENTU1BhcnNlcjo6Y3JlYXRlUGFnZVJ1bGUoQ1NTU2Vs
ZWN0b3IqIC8qIHBhZ2VTZWxlY3RvciAqLykKK3sKKy8vIEZJWE1FOiBDcmVhdGUgcGFnZSBydWxl
IGhlcmUsIHVzaW5nOgorLy8gICAgICAgIC0gcGFnZVNlbGVjdG9yLT5wc2V1ZG9UeXBlKCk6IHRo
ZSBwYWdlIHBzZXVkby1jbGFzcywgaS5lLiwgOmxlZnQsIDpyaWdodCwgb3IgOmZpcnN0CisvLyAg
ICAgICAgLSBwYWdlU2VsZWN0b3ItPm1fdGFnOiAgdGhlIHBhZ2UgbmFtZQorLy8gICAgICAgIC0g
bV9wYXJzZWRQcm9wZXJ0aWVzOiB0aGUgcGFnZSBwcm9wZXJ0aWVzCisKKyAgICBjbGVhclByb3Bl
cnRpZXMoKTsKKyAgICByZXR1cm4gMDsgLy8gdW50aWwgdGhpcyBtZXRob2QgaXMgaW1wbGVtZW50
ZWQuCit9CisKK0NTU1J1bGUqIENTU1BhcnNlcjo6Y3JlYXRlTWFyZ2luQXRSdWxlKGNvbnN0IENT
U1BhcnNlclN0cmluZyYgLyogbWFyZ2luICovKQoreworLy8gRklYTUU6IEltcGxlbWVudCBtYXJn
aW4gYXQtcnVsZSBoZXJlLCB1c2luZzoKKy8vICAgICAgICAtIG1hcmdpbjogbWFyZ2luIGJveCBu
YW1lcyBleGNsdWRpbmcgJ0AnLCBlLmcuLCAidG9wLWxlZnQtY29ybmVyIiwgInRvcC1sZWZ0Iiwg
Li4uCisvLyAgICAgICAgLSBtX3BhcnNlZFByb3BlcnRpZXM6IHByb3BlcnRpZXMgYXQgW21fbnVt
UGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveCwgbV9udW1QYXJzZWRQcm9wZXJ0aWVzKSBh
cmUgZm9yIHRoaXMgYXQtcnVsZS4KKworICAgIGVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgp
OworICAgIHJldHVybiAwOyAvLyB1bnRpbCB0aGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZC4KK30K
Kwordm9pZCBDU1NQYXJzZXI6OnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCkKK3sKKyAg
ICBtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggPSBtX251bVBhcnNlZFByb3Bl
cnRpZXM7Cit9CisKK3ZvaWQgQ1NTUGFyc2VyOjplbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3go
KQoreworICAgIEFTU0VSVChtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggPj0g
MCk7CisgICAgcm9sbGJhY2tMYXN0UHJvcGVydGllcyhtX251bVBhcnNlZFByb3BlcnRpZXMgLSBt
X251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3gpOworICAgIG1fbnVtUGFyc2VkUHJv
cGVydGllc0JlZm9yZU1hcmdpbkJveCA9IC0xOworfQorCiB2b2lkIENTU1BhcnNlcjo6Y2xlYXJW
YXJpYWJsZXMoKQogewogICAgIG1fdmFyaWFibGVOYW1lcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCAz
OTIyYTJhLi5kYTZlZDdhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysg
Yi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMTc4LDYgKzE3OCwxMCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIENTU1J1bGUqIGNyZWF0ZVN0eWxlUnVsZShWZWN0b3I8Q1NTU2Vs
ZWN0b3IqPiogc2VsZWN0b3JzKTsKICAgICAgICAgQ1NTUnVsZSogY3JlYXRlRm9udEZhY2VSdWxl
KCk7CiAgICAgICAgIENTU1J1bGUqIGNyZWF0ZVZhcmlhYmxlc1J1bGUoTWVkaWFMaXN0KiwgYm9v
bCB2YXJpYWJsZXNLZXl3b3JkKTsKKyAgICAgICAgQ1NTUnVsZSogY3JlYXRlUGFnZVJ1bGUoQ1NT
U2VsZWN0b3IqIHBhZ2VTZWxlY3Rvcik7CisgICAgICAgIENTU1J1bGUqIGNyZWF0ZU1hcmdpbkF0
UnVsZShjb25zdCBDU1NQYXJzZXJTdHJpbmcmIG1hcmdpbik7CisgICAgICAgIHZvaWQgc3RhcnRE
ZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKTsKKyAgICAgICAgdm9pZCBlbmREZWNsYXJhdGlvbnNG
b3JNYXJnaW5Cb3goKTsKIAogICAgICAgICBNZWRpYVF1ZXJ5RXhwKiBjcmVhdGVGbG9hdGluZ01l
ZGlhUXVlcnlFeHAoY29uc3QgQXRvbWljU3RyaW5nJiwgQ1NTUGFyc2VyVmFsdWVMaXN0Kik7CiAg
ICAgICAgIE1lZGlhUXVlcnlFeHAqIHNpbmtGbG9hdGluZ01lZGlhUXVlcnlFeHAoTWVkaWFRdWVy
eUV4cCopOwpAQCAtMjA5LDYgKzIxMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
Q1NTU2VsZWN0b3JMaXN0KiBtX3NlbGVjdG9yTGlzdEZvclBhcnNlU2VsZWN0b3I7CiAgICAgICAg
IHVuc2lnbmVkIG1fbnVtUGFyc2VkUHJvcGVydGllczsKICAgICAgICAgdW5zaWduZWQgbV9tYXhQ
YXJzZWRQcm9wZXJ0aWVzOworICAgICAgICB1bnNpZ25lZCBtX251bVBhcnNlZFByb3BlcnRpZXNC
ZWZvcmVNYXJnaW5Cb3g7CiAKICAgICAgICAgaW50IG1faW5QYXJzZVNob3J0aGFuZDsKICAgICAg
ICAgaW50IG1fY3VycmVudFNob3J0aGFuZDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1Nl
bGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCA5YWU5YjlmLi5m
YzA1NjA2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0xNTcsNiArMTU3LDEwIEBAIHZvaWQgQ1NTU2Vs
ZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgc2luZ2xlQnV0dG9uLCAoInNpbmdsZS1idXR0b24iKSk7CiAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5vQnV0dG9uLCAoIm5vLWJ1dHRvbiIpKTsK
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY29ybmVyUHJlc2VudCwgKCJj
b3JuZXItcHJlc2VudCIpKTsKKyAgICAvLyBQYWdlZCBNZWRpYSBwc2V1ZG8tY2xhc3NlcworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBsZWZ0UGFnZSwgKCJsZWZ0IikpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByaWdodFBhZ2UsICgicmlnaHQi
KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpcnN0UGFnZSwgKCJm
aXJzdCIpKTsKIAogICAgIGJvb2wgZWxlbWVudCA9IGZhbHNlOyAvLyBwc2V1ZG8tZWxlbWVudAog
ICAgIGJvb2wgY29tcGF0ID0gZmFsc2U7IC8vIHNpbmdsZSBjb2xvbiBjb21wYXRiaWxpdHkgbW9k
ZQpAQCAtMzc5LDYgKzM4MywxMiBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlw
ZSgpIGNvbnN0CiAgICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb1RhcmdldDsKICAgICBlbHNl
IGlmIChtX3ZhbHVlID09IHZpc2l0ZWQpCiAgICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb1Zp
c2l0ZWQ7CisgICAgZWxzZSBpZiAobV92YWx1ZSA9PSBsZWZ0UGFnZSkKKyAgICAgICAgbV9wc2V1
ZG9UeXBlID0gUHNldWRvTGVmdFBhZ2U7CisgICAgZWxzZSBpZiAobV92YWx1ZSA9PSByaWdodFBh
Z2UpCisgICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb1JpZ2h0UGFnZTsKKyAgICBlbHNlIGlm
IChtX3ZhbHVlID09IGZpcnN0UGFnZSkKKyAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvRmly
c3RQYWdlOwogCiAgICAgaWYgKG1fbWF0Y2ggPT0gUHNldWRvQ2xhc3MgJiYgZWxlbWVudCkgewog
ICAgICAgICBpZiAoIWNvbXBhdCkgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5oIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAppbmRleCA3MGYyNTc0Li4zZjVhMzZmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisrKyBiL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmgKQEAgLTE4Niw2ICsxODYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgICAgICBQc2V1ZG9JbnB1dExpc3RCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9Jbm5lclNw
aW5CdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9PdXRlclNwaW5CdXR0b24sCisgICAgICAgICAg
ICBQc2V1ZG9MZWZ0UGFnZSwKKyAgICAgICAgICAgIFBzZXVkb1JpZ2h0UGFnZSwKKyAgICAgICAg
ICAgIFBzZXVkb0ZpcnN0UGFnZSwKICAgICAgICAgfTsKIAogICAgICAgICBQc2V1ZG9UeXBlIHBz
ZXVkb1R5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgg
Yi9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAppbmRleCAxNTY5ZWUyLi41ZTM4OGM0IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAorKysgYi9XZWJDb3JlL2Nzcy90b2tl
bml6ZXIuZmxleApAQCAtNTMsNiArNTMsMjIgQEAgbnRoICAgICAgICAgICAgICgtP1swLTldKm5b
XCstXVswLTldKyl8KC0/WzAtOV0qbikKIAogIkBpbXBvcnQiICAgICAgICAgICAgICAge0JFR0lO
KG1lZGlhcXVlcnkpOyB5eVRvayA9IElNUE9SVF9TWU07IHJldHVybiB5eVRvazt9CiAiQHBhZ2Ui
ICAgICAgICAgICAgICAgICB7eXlUb2sgPSBQQUdFX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAdG9w
LWxlZnQtY29ybmVyIiAgICAgIHt5eVRvayA9IFRPUExFRlRDT1JORVJfU1lNOyByZXR1cm4geXlU
b2s7fQorIkB0b3AtbGVmdCIgICAgICAgICAgICAge3l5VG9rID0gVE9QTEVGVF9TWU07IHJldHVy
biB5eVRvazt9CisiQHRvcC1jZW50ZXIiICAgICAgICAgICB7eXlUb2sgPSBUT1BDRU5URVJfU1lN
OyByZXR1cm4geXlUb2s7fQorIkB0b3AtcmlnaHQiICAgICAgICAgICAge3l5VG9rID0gVE9QUklH
SFRfU1lNOyByZXR1cm4geXlUb2s7fQorIkB0b3AtcmlnaHQtY29ybmVyIiAgICAge3l5VG9rID0g
VE9QUklHSFRDT1JORVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20tbGVmdC1jb3JuZXIi
ICAge3l5VG9rID0gQk9UVE9NTEVGVENPUk5FUl9TWU07IHJldHVybiB5eVRvazt9CisiQGJvdHRv
bS1sZWZ0IiAgICAgICAgICB7eXlUb2sgPSBCT1RUT01MRUZUX1NZTTsgcmV0dXJuIHl5VG9rO30K
KyJAYm90dG9tLWNlbnRlciIgICAgICAgIHt5eVRvayA9IEJPVFRPTUNFTlRFUl9TWU07IHJldHVy
biB5eVRvazt9CisiQGJvdHRvbS1yaWdodCIgICAgICAgICB7eXlUb2sgPSBCT1RUT01SSUdIVF9T
WU07IHJldHVybiB5eVRvazt9CisiQGJvdHRvbS1yaWdodC1jb3JuZXIiICB7eXlUb2sgPSBCT1RU
T01SSUdIVENPUk5FUl9TWU07IHJldHVybiB5eVRvazt9CisiQGxlZnQtdG9wIiAgICAgICAgICAg
ICB7eXlUb2sgPSBMRUZUVE9QX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAbGVmdC1taWRkbGUiICAg
ICAgICAgIHt5eVRvayA9IExFRlRNSURETEVfU1lNOyByZXR1cm4geXlUb2s7fQorIkBsZWZ0LWJv
dHRvbSIgICAgICAgICAge3l5VG9rID0gTEVGVEJPVFRPTV9TWU07IHJldHVybiB5eVRvazt9Cisi
QHJpZ2h0LXRvcCIgICAgICAgICAgICB7eXlUb2sgPSBSSUdIVFRPUF9TWU07IHJldHVybiB5eVRv
azt9CisiQHJpZ2h0LW1pZGRsZSIgICAgICAgICB7eXlUb2sgPSBSSUdIVE1JRERMRV9TWU07IHJl
dHVybiB5eVRvazt9CisiQHJpZ2h0LWJvdHRvbSIgICAgICAgICB7eXlUb2sgPSBSSUdIVEJPVFRP
TV9TWU07IHJldHVybiB5eVRvazt9CiAiQG1lZGlhIiAgICAgICAgICAgICAgICB7QkVHSU4obWVk
aWFxdWVyeSk7IHl5VG9rID0gTUVESUFfU1lNOyByZXR1cm4geXlUb2s7fQogIkBmb250LWZhY2Ui
ICAgICAgICAgICAge3l5VG9rID0gRk9OVF9GQUNFX1NZTTsgcmV0dXJuIHl5VG9rO30KICJAY2hh
cnNldCIgICAgICAgICAgICAgIHt5eVRvayA9IENIQVJTRVRfU1lNOyByZXR1cm4geXlUb2s7fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49365</attachid>
            <date>2010-02-24 02:16:49 -0800</date>
            <delta_ts>2010-02-24 02:23:55 -0800</delta_ts>
            <desc>Enhance CSS parser for Paged Media (Iteration 1)</desc>
            <filename>bug-35329-20100224191647.patch</filename>
            <type>text/plain</type>
            <size>18225</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyYjU5NGM0Li41MGFkYmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFn
ZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisgICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3Jh
bW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBy
dWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFyZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVu
dHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5n
LXBhZ2UtcnVsZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMi0wNyAgWXV6byBGdWppc2hpbWEgIDx5
dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VmMjJlOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9w
YXJzaW5nLXBhZ2UtcnVsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdl
LXJ1bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTk5ZWVhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdlLXJ1bGUu
aHRtbApAQCAtMCwwICsxLDY1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgLnRvX2JlX3No
b3duIHsKKyAgICAgICAgICBkaXNwbGF5Om5vbmU7CisgICAgICAgICAgY29sb3I6Z3JlZW47Cisg
ICAgICAgIH0KKyAgICAgICAgLnRvX2JlX2hpZGRlbiB7CisgICAgICAgICAgZGlzcGxheTpibG9j
azsKKyAgICAgICAgICBjb2xvcjpyZWQ7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxz
dHlsZT4KKyAgICAgICAgLyogcGFnZSBydWxlIG11c3Qgbm90IGludGVyZmVyZSB3aXRoIG5vbi1w
YWdlIHJ1bGVzICovCisgICAgICAgICN0ZXN0MSB7CisgICAgICAgICAgICBkaXNwbGF5Om5vbmU7
CisgICAgICAgIH0KKyAgICAgICAgQHBhZ2UgeworICAgICAgICAgICAgI3Rlc3QxIHsKKyAgICAg
ICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQHRv
cC1jZW50ZXIgeworICAgICAgICAgICAgICAgIGNvbnRlbnQ6IlRlc3QiOworICAgICAgICAgICAg
ICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAjdGVzdDIgewor
ICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgI3Rlc3QyIHsKKyAgICAgICAgICAgIGRpc3BsYXk6bm9uZTsKKyAgICAgICAgfQor
ICAgIDwvc3R5bGU+CisgICAgPHN0eWxlPgorICAgICAgICAvKiBNYWxmb3JtZWQgcGFnZSBydWxl
IG11c3Qgbm90IGludGVyZmVyZSB3aXRoIG5vbi1wYWdlIHJ1bGVzIGFzIGZhciBhcyBicmFjZXMg
YXJlIHBhaXJlZCBwcm9wZXJseSAqLworICAgICAgICBAcGFnZSB7CisgICAgICAgICAgICBwOmJl
Zm9yZSB7CisgICAgICAgICAgICAgICAgY29udGVudDoibWFsZm9ybWVkCisgICAgICAgICAgICB9
CisgICAgICAgICAgICBAdG9wLWxlZnQKKyAgICAgICAgfQorICAgICAgICAjdGVzdDMgeworICAg
ICAgICAgICAgZGlzcGxheTpub25lOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c3R5
bGU+CisgICAgICAgIC8qIFN1Y2Nlc3NmdWxseSBwYXJzZWQgKi8KKyAgICAgICAgI2xhc3Qgewor
ICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPGRpdiBjbGFzcz0idG9fYmVfaGlkZGVuIiBpZD0idGVzdDEiPkZBSUw6
IFRlc3QgMTwvZGl2PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9oaWRkZW4iIGlkPSJ0ZXN0MiI+RkFJ
TDogVGVzdCAyPC9kaXY+CisgIDxkaXYgY2xhc3M9InRvX2JlX2hpZGRlbiIgaWQ9InRlc3QzIj5G
QUlMOiBUZXN0IDM8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idG9fYmVfc2hvd24iIGlkPSJsYXN0Ij5Q
QVNTPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZmOTU3ZS4uOGQzOGVjNSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MyBAQAorMjAxMC0wMi0yNCAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5oYW5jZSBDU1Mg
cGFyc2VyIGZvciBQYWdlZCBNZWRpYSAoSXRlcmF0aW9uIDEpCisKKyAgICAgICAgSW4gdGhpcyBj
aGFuZ2UsIHRoZSBncmFtbWFyIGlzIGV4dGVuZGVkIGFuZCBza2VsZXRhbCBtZXRob2RzIGZvciBj
cmVhdGluZyBwYWdlIHJ1bGVzIGFuZCBtYXJnaW4gYXQtcnVsZXMgYXJlIGRlZmluZWQuCisgICAg
ICAgIFRoZSBjb250ZW50cyBvZiB0aGUgbWV0aG9kcyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkg
b3RoZXIgY2hhbmdlcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzUzMjkKKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVs
ZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55OgorICAgICAgICAqIGNzcy9DU1NQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpDU1NQYXJzZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjbGVhclByb3BlcnRpZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpsZXgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjp0ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlUGFnZVJ1bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVNYXJnaW5BdFJ1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpzdGFydERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OmVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCk6CisgICAg
ICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOgorICAgICAg
ICAqIGNzcy9DU1NTZWxlY3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6Oik6
CisgICAgICAgICogY3NzL3Rva2VuaXplci5mbGV4OgorCiAyMDEwLTAyLTA3ICBZdXpvIEZ1amlz
aGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueSBiL1dlYkNvcmUvY3NzL0NT
U0dyYW1tYXIueQppbmRleCA5ZDVlYjZlLi4zYWI4NjNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9DU1NHcmFtbWFyLnkKKysrIGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CkBAIC03MCw2ICs3
MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAgICAgQ1NTUnVsZUxpc3QqIHJ1bGVM
aXN0OwogICAgIENTU1NlbGVjdG9yKiBzZWxlY3RvcjsKICAgICBWZWN0b3I8Q1NTU2VsZWN0b3Iq
Piogc2VsZWN0b3JMaXN0OworICAgIENTU1NlbGVjdG9yOjpNYXJnaW5Cb3ggbWFyZ2luQm94Owog
ICAgIENTU1NlbGVjdG9yOjpSZWxhdGlvbiByZWxhdGlvbjsKICAgICBNZWRpYUxpc3QqIG1lZGlh
TGlzdDsKICAgICBNZWRpYVF1ZXJ5KiBtZWRpYVF1ZXJ5OwpAQCAtOTcsNyArOTgsNyBAQCBzdGF0
aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2VyKQogCiAlfQogCi0l
ZXhwZWN0IDU0CislZXhwZWN0IDY3CiAKICVub25hc3NvYyBMT1dFU1RfUFJFQwogCkBAIC0xNDIs
NiArMTQzLDIzIEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lkKiBw
YXJzZXIpCiAldG9rZW4gV0VCS0lUX0RFRklORV9TWU0KICV0b2tlbiBWQVJJQUJMRVNfRk9SCiAl
dG9rZW4gV0VCS0lUX1ZBUklBQkxFU19ERUNMU19TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBUT1BM
RUZUQ09STkVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRPUExFRlRfU1lNCisldG9rZW4gPG1h
cmdpbkJveD4gVE9QQ0VOVEVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRPUFJJR0hUX1NZTQor
JXRva2VuIDxtYXJnaW5Cb3g+IFRPUFJJR0hUQ09STkVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+
IEJPVFRPTUxFRlRDT1JORVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NTEVGVF9TWU0K
KyV0b2tlbiA8bWFyZ2luQm94PiBCT1RUT01DRU5URVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4g
Qk9UVE9NUklHSFRfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NUklHSFRDT1JORVJfU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gTEVGVFRPUF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBMRUZU
TUlERExFX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IExFRlRCT1RUT01fU1lNCisldG9rZW4gPG1h
cmdpbkJveD4gUklHSFRUT1BfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gUklHSFRNSURETEVfU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gUklHSFRCT1RUT01fU1lNCisKICV0b2tlbiBBVEtFWVdPUkQK
IAogJXRva2VuIElNUE9SVEFOVF9TWU0KQEAgLTE4OCw2ICsyMDYsNyBAQCBzdGF0aWMgaW50IGNz
c3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2VyKQogJXR5cGUgPHJ1bGU+IGltcG9y
dAogJXR5cGUgPHJ1bGU+IG5hbWVzcGFjZQogJXR5cGUgPHJ1bGU+IHBhZ2UKKyV0eXBlIDxydWxl
PiBtYXJnaW5fYm94CiAldHlwZSA8cnVsZT4gZm9udF9mYWNlCiAldHlwZSA8cnVsZT4ga2V5ZnJh
bWVzCiAldHlwZSA8cnVsZT4gaW52YWxpZF9ydWxlCkBAIC0yMDksNiArMjI4LDcgQEAgc3RhdGlj
IGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikKICV0eXBlIDxzdHJp
bmc+IGlkZW50X29yX3N0cmluZwogJXR5cGUgPHN0cmluZz4gbWVkaXVtCiAldHlwZSA8c3RyaW5n
PiBoZXhjb2xvcgorJXR5cGUgPG1hcmdpbkJveD4gbWFyZ2luX3N5bQogCiAldHlwZSA8c3RyaW5n
PiBtZWRpYV9mZWF0dXJlCiAldHlwZSA8bWVkaWFMaXN0PiBtZWRpYV9saXN0CkBAIC0yMzcsNiAr
MjU3LDcgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNl
cikKICV0eXBlIDxzZWxlY3Rvcj4gY2xhc3MKICV0eXBlIDxzZWxlY3Rvcj4gYXR0cmliCiAldHlw
ZSA8c2VsZWN0b3I+IHBzZXVkbworJXR5cGUgPHNlbGVjdG9yPiBwYWdlX3NlbGVjdG9yCiAKICV0
eXBlIDxib29sZWFuPiBkZWNsYXJhdGlvbl9saXN0CiAldHlwZSA8Ym9vbGVhbj4gZGVjbF9saXN0
CkBAIC03MjgsMjYgKzc0OSwxMTIgQEAga2V5OgogICAgIH0KICAgICA7CiAKLS8qCiBwYWdlOgot
ICAgIFBBR0VfU1lNIG1heWJlX3NwYWNlIElERU5UPyBwc2V1ZG9fcGFnZT8gbWF5YmVfc3BhY2UK
LSAgICAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb24gWyAnOycgbWF5YmVfc3BhY2UgZGVjbGFy
YXRpb24gXSogJ30nIG1heWJlX3NwYWNlCi0gIDsKLQotcHNldWRvX3BhZ2UKLSAgOiAnOicgSURF
TlQKLSAgOwotKi8KLQotcGFnZToKLSAgICBQQUdFX1NZTSBlcnJvciBpbnZhbGlkX2Jsb2NrIHsK
KyAgICBQQUdFX1NZTSBtYXliZV9zcGFjZSBwYWdlX3NlbGVjdG9yIG1heWJlX3NwYWNlCisgICAg
J3snIG1heWJlX3NwYWNlIGRlY2xhcmF0aW9uc19hbmRfbWFyZ2lucyBjbG9zaW5nX2JyYWNlIHsK
KyAgICAgICAgJCQgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVhdGVQYWdl
UnVsZSgkMyk7CisgICAgfQorICAgIHwgUEFHRV9TWU0gZXJyb3IgaW52YWxpZF9ibG9jayB7CiAg
ICAgICAkJCA9IDA7CiAgICAgfQotICB8IFBBR0VfU1lNIGVycm9yICc7JyB7CisgICAgfCBQQUdF
X1NZTSBlcnJvciAnOycgewogICAgICAgJCQgPSAwOwogICAgIH0KICAgICA7CiAKK3BhZ2Vfc2Vs
ZWN0b3I6CisgICAgSURFTlQgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxD
U1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICAkJCA9IHAtPmNyZWF0ZUZsb2F0aW5nU2VsZWN0
b3IoKTsKKyAgICAgICAgJCQtPm1fdGFnID0gUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHAt
Pm1fZGVmYXVsdE5hbWVzcGFjZSk7CisgICAgfQorICAgIHwgSURFTlQgcHNldWRvIHsKKyAgICAg
ICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAg
ICAgJCQgPSAkMjsKKyAgICAgICAgaWYgKCQkKQorICAgICAgICAgICAgJCQtPm1fdGFnID0gUXVh
bGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVzcGFjZSk7CisgICAgfQor
ICAgIHwgcHNldWRvIHsKKyAgICAgICAgJCQgPSAkMTsKKyAgICB9CisgICAgfCAvKiBlbXB0eSAq
LyB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNl
cik7CisgICAgICAgICQkID0gcC0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOworICAgIH0KKyAg
ICA7CisKK2RlY2xhcmF0aW9uc19hbmRfbWFyZ2luczoKKyAgICBkZWNsYXJhdGlvbl9saXN0Cisg
ICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbgorICAgIHwgZGVjbF9mb2xsb3dlZF9ieV9tYXJn
aW4gbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdAorICAgIDsKKworZGVjbF9mb2xsb3dlZF9i
eV9tYXJnaW46CisgICAgbWFyZ2luX2JveAorICAgIHwgZGVjbGFyYXRpb25fbGlzdCBtYXliZV9z
cGFjZSBtYXJnaW5fYm94CisgICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbiBtYXliZV9zcGFj
ZSBtYXJnaW5fYm94CisgICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbiBtYXliZV9zcGFjZSBk
ZWNsYXJhdGlvbl9saXN0IG1heWJlX3NwYWNlIG1hcmdpbl9ib3gKKyAgICA7CisKK21hcmdpbl9i
b3g6CisgICAgbWFyZ2luX3N5bSB7CisgICAgICAgIHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBh
cnNlciktPnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCk7CisgICAgfSBtYXliZV9zcGFj
ZSAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCBjbG9zaW5nX2JyYWNlIHsKKyAgICAg
ICAgJCQgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVhdGVNYXJnaW5BdFJ1
bGUoJDEpOworICAgIH0KKyAgICA7CisKK21hcmdpbl9zeW0gOgorICAgIFRPUExFRlRDT1JORVJf
U1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6VG9wTGVmdENvcm5lcjsKKyAgICB9Cisg
ICAgfCBUT1BMRUZUX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlRvcExlZnQ7Cisg
ICAgfQorICAgIHwgVE9QQ0VOVEVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlRv
cENlbnRlcjsKKyAgICB9CisgICAgfCBUT1BSSUdIVF9TWU0geworICAgICAgICAkJCA9IENTU1Nl
bGVjdG9yOjpUb3BSaWdodDsKKyAgICB9CisgICAgfCBUT1BSSUdIVENPUk5FUl9TWU0geworICAg
ICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BSaWdodENvcm5lcjsKKyAgICB9CisgICAgfCBCT1RU
T01MRUZUQ09STkVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbUxlZnRD
b3JuZXI7CisgICAgfQorICAgIHwgQk9UVE9NTEVGVF9TWU0geworICAgICAgICAkJCA9IENTU1Nl
bGVjdG9yOjpCb3R0b21MZWZ0OworICAgIH0KKyAgICB8IEJPVFRPTUNFTlRFUl9TWU0geworICAg
ICAgICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21DZW50ZXI7CisgICAgfQorICAgIHwgQk9UVE9N
UklHSFRfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Qm90dG9tUmlnaHQ7CisgICAg
fQorICAgIHwgQk9UVE9NUklHSFRDT1JORVJfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rv
cjo6Qm90dG9tUmlnaHRDb3JuZXI7CisgICAgfQorICAgIHwgTEVGVFRPUF9TWU0geworICAgICAg
ICAkJCA9IENTU1NlbGVjdG9yOjpMZWZ0VG9wOworICAgIH0KKyAgICB8IExFRlRNSURETEVfU1lN
IHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6TGVmdE1pZGRsZTsKKyAgICB9CisgICAgfCBM
RUZUQk9UVE9NX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkxlZnRCb3R0b207Cisg
ICAgfQorICAgIHwgUklHSFRUT1BfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Umln
aHRUb3A7CisgICAgfQorICAgIHwgUklHSFRNSURETEVfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NT
ZWxlY3Rvcjo6UmlnaHRNaWRkbGU7CisgICAgfQorICAgIHwgUklHSFRCT1RUT01fU1lNIHsKKyAg
ICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRCb3R0b207CisgICAgfQorICAgIDsKKwogZm9u
dF9mYWNlOgogICAgIEZPTlRfRkFDRV9TWU0gbWF5YmVfc3BhY2UKICAgICAneycgbWF5YmVfc3Bh
Y2UgZGVjbGFyYXRpb25fbGlzdCAnfScgIG1heWJlX3NwYWNlIHsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDVj
NjUxNDIuLjU1NDAxZTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysr
IGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNzAsNiArNzAsNyBAQAogI2luY2x1ZGUg
IldlYktpdENTU0tleWZyYW1lc1J1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CisjaW5jbHVkZSA8Y2xpbWl0cz4KIAogI2lm
IEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICNpbmNsdWRlICJEYXNoYm9hcmRSZWdpb24uaCIK
QEAgLTg5LDYgKzkwLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAjaW5jbHVkZSAiQ1NTUHJv
cGVydHlOYW1lcy5jcHAiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5jIgogCituYW1lc3Bh
Y2UgeworCitjb25zdCB1bnNpZ25lZCBJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElFUyA9IFVJ
TlRfTUFYOworCit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGJvb2wgZXF1YWwo
Y29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBhLCBjb25zdCBjaGFyKiBiKQpAQCAtMTM1LDYgKzE0Miw3
IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICAgICAsIG1fcGFy
c2VkUHJvcGVydGllcyhzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eSoqPihmYXN0TWFsbG9jKDMyICog
c2l6ZW9mKENTU1Byb3BlcnR5KikpKSkKICAgICAsIG1fbnVtUGFyc2VkUHJvcGVydGllcygwKQog
ICAgICwgbV9tYXhQYXJzZWRQcm9wZXJ0aWVzKDMyKQorICAgICwgbV9udW1QYXJzZWRQcm9wZXJ0
aWVzQmVmb3JlTWFyZ2luQm94KElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTKQogICAgICwg
bV9pblBhcnNlU2hvcnRoYW5kKDApCiAgICAgLCBtX2N1cnJlbnRTaG9ydGhhbmQoMCkKICAgICAs
IG1faW1wbGljaXRTaG9ydGhhbmQoZmFsc2UpCkBAIC0zOTQsNiArNDAyLDcgQEAgdm9pZCBDU1NQ
YXJzZXI6OmNsZWFyUHJvcGVydGllcygpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1f
bnVtUGFyc2VkUHJvcGVydGllczsgaSsrKQogICAgICAgICBkZWxldGUgbV9wYXJzZWRQcm9wZXJ0
aWVzW2ldOwogICAgIG1fbnVtUGFyc2VkUHJvcGVydGllcyA9IDA7CisgICAgbV9udW1QYXJzZWRQ
cm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94ID0gSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVM7
CiAgICAgbV9oYXNGb250RmFjZU9ubHlWYWx1ZXMgPSBmYWxzZTsKIH0KIApAQCAtNDY1MSw2ICs0
NjYwLDIyIEBAIGludCBDU1NQYXJzZXI6OmxleCh2b2lkKiB5eWx2YWxXaXRob3V0VHlwZSkKICAg
ICBjYXNlIEZVTkNUSU9OOgogICAgIGNhc2UgTk9URlVOQ1RJT046CiAgICAgY2FzZSBWQVJDQUxM
OgorICAgIGNhc2UgVE9QTEVGVENPUk5FUl9TWU06CisgICAgY2FzZSBUT1BMRUZUX1NZTToKKyAg
ICBjYXNlIFRPUENFTlRFUl9TWU06CisgICAgY2FzZSBUT1BSSUdIVF9TWU06CisgICAgY2FzZSBU
T1BSSUdIVENPUk5FUl9TWU06CisgICAgY2FzZSBCT1RUT01MRUZUQ09STkVSX1NZTToKKyAgICBj
YXNlIEJPVFRPTUxFRlRfU1lNOgorICAgIGNhc2UgQk9UVE9NQ0VOVEVSX1NZTToKKyAgICBjYXNl
IEJPVFRPTVJJR0hUX1NZTToKKyAgICBjYXNlIEJPVFRPTVJJR0hUQ09STkVSX1NZTToKKyAgICBj
YXNlIExFRlRUT1BfU1lNOgorICAgIGNhc2UgTEVGVE1JRERMRV9TWU06CisgICAgY2FzZSBMRUZU
Qk9UVE9NX1NZTToKKyAgICBjYXNlIFJJR0hUVE9QX1NZTToKKyAgICBjYXNlIFJJR0hUTUlERExF
X1NZTToKKyAgICBjYXNlIFJJR0hUQk9UVE9NX1NZTToKICAgICAgICAgeXlsdmFsLT5zdHJpbmcu
Y2hhcmFjdGVycyA9IHQ7CiAgICAgICAgIHl5bHZhbC0+c3RyaW5nLmxlbmd0aCA9IGxlbmd0aDsK
ICAgICAgICAgYnJlYWs7CkBAIC00NzM5LDYgKzQ3NjQsMjIgQEAgVUNoYXIqIENTU1BhcnNlcjo6
dGV4dChpbnQgKmxlbmd0aCkKICAgICAgICAgLyogbm9icmVhayAqLwogICAgIGNhc2UgSEVYOgog
ICAgIGNhc2UgSURTRUw6CisgICAgY2FzZSBUT1BMRUZUQ09STkVSX1NZTToKKyAgICBjYXNlIFRP
UExFRlRfU1lNOgorICAgIGNhc2UgVE9QQ0VOVEVSX1NZTToKKyAgICBjYXNlIFRPUFJJR0hUX1NZ
TToKKyAgICBjYXNlIFRPUFJJR0hUQ09STkVSX1NZTToKKyAgICBjYXNlIEJPVFRPTUxFRlRDT1JO
RVJfU1lNOgorICAgIGNhc2UgQk9UVE9NTEVGVF9TWU06CisgICAgY2FzZSBCT1RUT01DRU5URVJf
U1lNOgorICAgIGNhc2UgQk9UVE9NUklHSFRfU1lNOgorICAgIGNhc2UgQk9UVE9NUklHSFRDT1JO
RVJfU1lNOgorICAgIGNhc2UgTEVGVFRPUF9TWU06CisgICAgY2FzZSBMRUZUTUlERExFX1NZTToK
KyAgICBjYXNlIExFRlRCT1RUT01fU1lNOgorICAgIGNhc2UgUklHSFRUT1BfU1lNOgorICAgIGNh
c2UgUklHSFRNSURETEVfU1lNOgorICAgIGNhc2UgUklHSFRCT1RUT01fU1lNOgogICAgICAgICBz
dGFydCsrOwogICAgICAgICBsLS07CiAgICAgICAgIGJyZWFrOwpAQCAtNTEyNCw2ICs1MTY1LDM5
IEBAIGJvb2wgQ1NTUGFyc2VyOjphZGRWYXJpYWJsZURlY2xhcmF0aW9uQmxvY2soY29uc3QgQ1NT
UGFyc2VyU3RyaW5nJikKIAogI2VuZGlmCiAKK0NTU1J1bGUqIENTU1BhcnNlcjo6Y3JlYXRlUGFn
ZVJ1bGUoQ1NTU2VsZWN0b3IqIC8qIHBhZ2VTZWxlY3RvciAqLykKK3sKKyAgICAvLyBGSVhNRTog
Q3JlYXRlIHBhZ2UgcnVsZSBoZXJlLCB1c2luZzoKKyAgICAvLyAgICAgICAgLSBwYWdlU2VsZWN0
b3ItPnBzZXVkb1R5cGUoKTogdGhlIHBhZ2UgcHNldWRvLWNsYXNzLCBpLmUuLCA6bGVmdCwgOnJp
Z2h0LCBvciA6Zmlyc3QKKyAgICAvLyAgICAgICAgLSBwYWdlU2VsZWN0b3ItPm1fdGFnOiAgdGhl
IHBhZ2UgbmFtZQorICAgIC8vICAgICAgICAtIG1fcGFyc2VkUHJvcGVydGllczogdGhlIHBhZ2Ug
cHJvcGVydGllcworCisgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CisgICAgcmV0dXJuIDA7IC8vIHVu
dGlsIHRoaXMgbWV0aG9kIGlzIGltcGxlbWVudGVkLgorfQorCitDU1NSdWxlKiBDU1NQYXJzZXI6
OmNyZWF0ZU1hcmdpbkF0UnVsZShDU1NTZWxlY3Rvcjo6TWFyZ2luQm94JiAvKiBtYXJnaW5Cb3gg
Ki8pCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBtYXJnaW4gYXQtcnVsZSBoZXJlLCB1c2lu
ZzoKKyAgICAvLyAgICAgICAgLSBtYXJnaW5Cb3g6IG1hcmdpbiBib3gKKyAgICAvLyAgICAgICAg
LSBtX3BhcnNlZFByb3BlcnRpZXM6IHByb3BlcnRpZXMgYXQgW21fbnVtUGFyc2VkUHJvcGVydGll
c0JlZm9yZU1hcmdpbkJveCwgbV9udW1QYXJzZWRQcm9wZXJ0aWVzKSBhcmUgZm9yIHRoaXMgYXQt
cnVsZS4KKworICAgIGVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgpOworICAgIHJldHVybiAw
OyAvLyB1bnRpbCB0aGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZC4KK30KKwordm9pZCBDU1NQYXJz
ZXI6OnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCkKK3sKKyAgICBtX251bVBhcnNlZFBy
b3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggPSBtX251bVBhcnNlZFByb3BlcnRpZXM7Cit9CisKK3Zv
aWQgQ1NTUGFyc2VyOjplbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKQoreworICAgIEFTU0VS
VChtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggIT0gSU5WQUxJRF9OVU1fUEFS
U0VEX1BST1BFUlRJRVMpOworICAgIHJvbGxiYWNrTGFzdFByb3BlcnRpZXMobV9udW1QYXJzZWRQ
cm9wZXJ0aWVzIC0gbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94KTsKKyAgICBt
X251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggPSBJTlZBTElEX05VTV9QQVJTRURf
UFJPUEVSVElFUzsKK30KKwogdm9pZCBDU1NQYXJzZXI6OmNsZWFyVmFyaWFibGVzKCkKIHsKICAg
ICBtX3ZhcmlhYmxlTmFtZXMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggMzkyMmEyYS4uMjZmNzAwOCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmgKQEAgLTE3OCw2ICsxNzgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBDU1NSdWxlKiBjcmVhdGVTdHlsZVJ1bGUoVmVjdG9yPENTU1NlbGVjdG9yKj4qIHNlbGVjdG9y
cyk7CiAgICAgICAgIENTU1J1bGUqIGNyZWF0ZUZvbnRGYWNlUnVsZSgpOwogICAgICAgICBDU1NS
dWxlKiBjcmVhdGVWYXJpYWJsZXNSdWxlKE1lZGlhTGlzdCosIGJvb2wgdmFyaWFibGVzS2V5d29y
ZCk7CisgICAgICAgIENTU1J1bGUqIGNyZWF0ZVBhZ2VSdWxlKENTU1NlbGVjdG9yKiBwYWdlU2Vs
ZWN0b3IpOworICAgICAgICBDU1NSdWxlKiBjcmVhdGVNYXJnaW5BdFJ1bGUoQ1NTU2VsZWN0b3I6
Ok1hcmdpbkJveCYgbWFyZ2luQm94KTsKKyAgICAgICAgdm9pZCBzdGFydERlY2xhcmF0aW9uc0Zv
ck1hcmdpbkJveCgpOworICAgICAgICB2b2lkIGVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgp
OwogCiAgICAgICAgIE1lZGlhUXVlcnlFeHAqIGNyZWF0ZUZsb2F0aW5nTWVkaWFRdWVyeUV4cChj
b25zdCBBdG9taWNTdHJpbmcmLCBDU1NQYXJzZXJWYWx1ZUxpc3QqKTsKICAgICAgICAgTWVkaWFR
dWVyeUV4cCogc2lua0Zsb2F0aW5nTWVkaWFRdWVyeUV4cChNZWRpYVF1ZXJ5RXhwKik7CkBAIC0y
MDksNiArMjEzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBDU1NTZWxlY3Rvckxp
c3QqIG1fc2VsZWN0b3JMaXN0Rm9yUGFyc2VTZWxlY3RvcjsKICAgICAgICAgdW5zaWduZWQgbV9u
dW1QYXJzZWRQcm9wZXJ0aWVzOwogICAgICAgICB1bnNpZ25lZCBtX21heFBhcnNlZFByb3BlcnRp
ZXM7CisgICAgICAgIHVuc2lnbmVkIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJv
eDsKIAogICAgICAgICBpbnQgbV9pblBhcnNlU2hvcnRoYW5kOwogICAgICAgICBpbnQgbV9jdXJy
ZW50U2hvcnRoYW5kOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIv
V2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IDlhZTliOWYuLmZjMDU2MDYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NT
ZWxlY3Rvci5jcHAKQEAgLTE1Nyw2ICsxNTcsMTAgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFj
dFBzZXVkb1R5cGUoKSBjb25zdAogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBzaW5nbGVCdXR0b24sICgic2luZ2xlLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbm9CdXR0b24sICgibm8tYnV0dG9uIikpOwogICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBjb3JuZXJQcmVzZW50LCAoImNvcm5lci1wcmVzZW50
IikpOworICAgIC8vIFBhZ2VkIE1lZGlhIHBzZXVkby1jbGFzc2VzCisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGxlZnRQYWdlLCAoImxlZnQiKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJpZ2h0UGFnZSwgKCJyaWdodCIpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlyc3RQYWdlLCAoImZpcnN0IikpOwogCiAg
ICAgYm9vbCBlbGVtZW50ID0gZmFsc2U7IC8vIHBzZXVkby1lbGVtZW50CiAgICAgYm9vbCBjb21w
YXQgPSBmYWxzZTsgLy8gc2luZ2xlIGNvbG9uIGNvbXBhdGJpbGl0eSBtb2RlCkBAIC0zNzksNiAr
MzgzLDEyIEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QKICAg
ICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvVGFyZ2V0OwogICAgIGVsc2UgaWYgKG1fdmFsdWUg
PT0gdmlzaXRlZCkKICAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvVmlzaXRlZDsKKyAgICBl
bHNlIGlmIChtX3ZhbHVlID09IGxlZnRQYWdlKQorICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1
ZG9MZWZ0UGFnZTsKKyAgICBlbHNlIGlmIChtX3ZhbHVlID09IHJpZ2h0UGFnZSkKKyAgICAgICAg
bV9wc2V1ZG9UeXBlID0gUHNldWRvUmlnaHRQYWdlOworICAgIGVsc2UgaWYgKG1fdmFsdWUgPT0g
Zmlyc3RQYWdlKQorICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9GaXJzdFBhZ2U7CiAKICAg
ICBpZiAobV9tYXRjaCA9PSBQc2V1ZG9DbGFzcyAmJiBlbGVtZW50KSB7CiAgICAgICAgIGlmICgh
Y29tcGF0KSAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9XZWJDb3Jl
L2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDcwZjI1NzQuLjVhNTRiNTIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApA
QCAtMTg2LDYgKzE4NiwyOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBQc2V1
ZG9JbnB1dExpc3RCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9Jbm5lclNwaW5CdXR0b24sCiAg
ICAgICAgICAgICBQc2V1ZG9PdXRlclNwaW5CdXR0b24sCisgICAgICAgICAgICBQc2V1ZG9MZWZ0
UGFnZSwKKyAgICAgICAgICAgIFBzZXVkb1JpZ2h0UGFnZSwKKyAgICAgICAgICAgIFBzZXVkb0Zp
cnN0UGFnZSwKKyAgICAgICAgfTsKKworICAgICAgICBlbnVtIE1hcmdpbkJveCB7CisgICAgICAg
ICAgICBUb3BMZWZ0Q29ybmVyLAorICAgICAgICAgICAgVG9wTGVmdCwKKyAgICAgICAgICAgIFRv
cENlbnRlciwKKyAgICAgICAgICAgIFRvcFJpZ2h0LAorICAgICAgICAgICAgVG9wUmlnaHRDb3Ju
ZXIsCisgICAgICAgICAgICBCb3R0b21MZWZ0Q29ybmVyLAorICAgICAgICAgICAgQm90dG9tTGVm
dCwKKyAgICAgICAgICAgIEJvdHRvbUNlbnRlciwKKyAgICAgICAgICAgIEJvdHRvbVJpZ2h0LAor
ICAgICAgICAgICAgQm90dG9tUmlnaHRDb3JuZXIsCisgICAgICAgICAgICBMZWZ0VG9wLAorICAg
ICAgICAgICAgTGVmdE1pZGRsZSwKKyAgICAgICAgICAgIExlZnRCb3R0b20sCisgICAgICAgICAg
ICBSaWdodFRvcCwKKyAgICAgICAgICAgIFJpZ2h0TWlkZGxlLAorICAgICAgICAgICAgUmlnaHRC
b3R0b20sCiAgICAgICAgIH07CiAKICAgICAgICAgUHNldWRvVHlwZSBwc2V1ZG9UeXBlKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4IGIvV2ViQ29yZS9jc3Mv
dG9rZW5pemVyLmZsZXgKaW5kZXggMTU2OWVlMi4uNWUzODhjNCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9jc3MvdG9rZW5pemVyLmZsZXgKKysrIGIvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKQEAg
LTUzLDYgKzUzLDIyIEBAIG50aCAgICAgICAgICAgICAoLT9bMC05XSpuW1wrLV1bMC05XSspfCgt
P1swLTldKm4pCiAKICJAaW1wb3J0IiAgICAgICAgICAgICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsg
eXlUb2sgPSBJTVBPUlRfU1lNOyByZXR1cm4geXlUb2s7fQogIkBwYWdlIiAgICAgICAgICAgICAg
ICAge3l5VG9rID0gUEFHRV9TWU07IHJldHVybiB5eVRvazt9CisiQHRvcC1sZWZ0LWNvcm5lciIg
ICAgICB7eXlUb2sgPSBUT1BMRUZUQ09STkVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAdG9wLWxl
ZnQiICAgICAgICAgICAgIHt5eVRvayA9IFRPUExFRlRfU1lNOyByZXR1cm4geXlUb2s7fQorIkB0
b3AtY2VudGVyIiAgICAgICAgICAge3l5VG9rID0gVE9QQ0VOVEVSX1NZTTsgcmV0dXJuIHl5VG9r
O30KKyJAdG9wLXJpZ2h0IiAgICAgICAgICAgIHt5eVRvayA9IFRPUFJJR0hUX1NZTTsgcmV0dXJu
IHl5VG9rO30KKyJAdG9wLXJpZ2h0LWNvcm5lciIgICAgIHt5eVRvayA9IFRPUFJJR0hUQ09STkVS
X1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAYm90dG9tLWxlZnQtY29ybmVyIiAgIHt5eVRvayA9IEJP
VFRPTUxFRlRDT1JORVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20tbGVmdCIgICAgICAg
ICAge3l5VG9rID0gQk9UVE9NTEVGVF9TWU07IHJldHVybiB5eVRvazt9CisiQGJvdHRvbS1jZW50
ZXIiICAgICAgICB7eXlUb2sgPSBCT1RUT01DRU5URVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBi
b3R0b20tcmlnaHQiICAgICAgICAge3l5VG9rID0gQk9UVE9NUklHSFRfU1lNOyByZXR1cm4geXlU
b2s7fQorIkBib3R0b20tcmlnaHQtY29ybmVyIiAge3l5VG9rID0gQk9UVE9NUklHSFRDT1JORVJf
U1lNOyByZXR1cm4geXlUb2s7fQorIkBsZWZ0LXRvcCIgICAgICAgICAgICAge3l5VG9rID0gTEVG
VFRPUF9TWU07IHJldHVybiB5eVRvazt9CisiQGxlZnQtbWlkZGxlIiAgICAgICAgICB7eXlUb2sg
PSBMRUZUTUlERExFX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAbGVmdC1ib3R0b20iICAgICAgICAg
IHt5eVRvayA9IExFRlRCT1RUT01fU1lNOyByZXR1cm4geXlUb2s7fQorIkByaWdodC10b3AiICAg
ICAgICAgICAge3l5VG9rID0gUklHSFRUT1BfU1lNOyByZXR1cm4geXlUb2s7fQorIkByaWdodC1t
aWRkbGUiICAgICAgICAge3l5VG9rID0gUklHSFRNSURETEVfU1lNOyByZXR1cm4geXlUb2s7fQor
IkByaWdodC1ib3R0b20iICAgICAgICAge3l5VG9rID0gUklHSFRCT1RUT01fU1lNOyByZXR1cm4g
eXlUb2s7fQogIkBtZWRpYSIgICAgICAgICAgICAgICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRv
ayA9IE1FRElBX1NZTTsgcmV0dXJuIHl5VG9rO30KICJAZm9udC1mYWNlIiAgICAgICAgICAgIHt5
eVRvayA9IEZPTlRfRkFDRV9TWU07IHJldHVybiB5eVRvazt9CiAiQGNoYXJzZXQiICAgICAgICAg
ICAgICB7eXlUb2sgPSBDSEFSU0VUX1NZTTsgcmV0dXJuIHl5VG9rO30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49367</attachid>
            <date>2010-02-24 02:24:00 -0800</date>
            <delta_ts>2010-02-24 02:28:55 -0800</delta_ts>
            <desc>Enhance CSS parser for Paged Media (Iteration 1)</desc>
            <filename>bug-35329-20100224192358.patch</filename>
            <type>text/plain</type>
            <size>16977</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyYjU5NGM0Li41MGFkYmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFn
ZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisgICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3Jh
bW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBy
dWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFyZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVu
dHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5n
LXBhZ2UtcnVsZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMi0wNyAgWXV6byBGdWppc2hpbWEgIDx5
dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VmMjJlOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9w
YXJzaW5nLXBhZ2UtcnVsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdl
LXJ1bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTk5ZWVhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdlLXJ1bGUu
aHRtbApAQCAtMCwwICsxLDY1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgLnRvX2JlX3No
b3duIHsKKyAgICAgICAgICBkaXNwbGF5Om5vbmU7CisgICAgICAgICAgY29sb3I6Z3JlZW47Cisg
ICAgICAgIH0KKyAgICAgICAgLnRvX2JlX2hpZGRlbiB7CisgICAgICAgICAgZGlzcGxheTpibG9j
azsKKyAgICAgICAgICBjb2xvcjpyZWQ7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxz
dHlsZT4KKyAgICAgICAgLyogcGFnZSBydWxlIG11c3Qgbm90IGludGVyZmVyZSB3aXRoIG5vbi1w
YWdlIHJ1bGVzICovCisgICAgICAgICN0ZXN0MSB7CisgICAgICAgICAgICBkaXNwbGF5Om5vbmU7
CisgICAgICAgIH0KKyAgICAgICAgQHBhZ2UgeworICAgICAgICAgICAgI3Rlc3QxIHsKKyAgICAg
ICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQHRv
cC1jZW50ZXIgeworICAgICAgICAgICAgICAgIGNvbnRlbnQ6IlRlc3QiOworICAgICAgICAgICAg
ICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAjdGVzdDIgewor
ICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgI3Rlc3QyIHsKKyAgICAgICAgICAgIGRpc3BsYXk6bm9uZTsKKyAgICAgICAgfQor
ICAgIDwvc3R5bGU+CisgICAgPHN0eWxlPgorICAgICAgICAvKiBNYWxmb3JtZWQgcGFnZSBydWxl
IG11c3Qgbm90IGludGVyZmVyZSB3aXRoIG5vbi1wYWdlIHJ1bGVzIGFzIGZhciBhcyBicmFjZXMg
YXJlIHBhaXJlZCBwcm9wZXJseSAqLworICAgICAgICBAcGFnZSB7CisgICAgICAgICAgICBwOmJl
Zm9yZSB7CisgICAgICAgICAgICAgICAgY29udGVudDoibWFsZm9ybWVkCisgICAgICAgICAgICB9
CisgICAgICAgICAgICBAdG9wLWxlZnQKKyAgICAgICAgfQorICAgICAgICAjdGVzdDMgeworICAg
ICAgICAgICAgZGlzcGxheTpub25lOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c3R5
bGU+CisgICAgICAgIC8qIFN1Y2Nlc3NmdWxseSBwYXJzZWQgKi8KKyAgICAgICAgI2xhc3Qgewor
ICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPGRpdiBjbGFzcz0idG9fYmVfaGlkZGVuIiBpZD0idGVzdDEiPkZBSUw6
IFRlc3QgMTwvZGl2PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9oaWRkZW4iIGlkPSJ0ZXN0MiI+RkFJ
TDogVGVzdCAyPC9kaXY+CisgIDxkaXYgY2xhc3M9InRvX2JlX2hpZGRlbiIgaWQ9InRlc3QzIj5G
QUlMOiBUZXN0IDM8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idG9fYmVfc2hvd24iIGlkPSJsYXN0Ij5Q
QVNTPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZmOTU3ZS4uOGQzOGVjNSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MyBAQAorMjAxMC0wMi0yNCAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5oYW5jZSBDU1Mg
cGFyc2VyIGZvciBQYWdlZCBNZWRpYSAoSXRlcmF0aW9uIDEpCisKKyAgICAgICAgSW4gdGhpcyBj
aGFuZ2UsIHRoZSBncmFtbWFyIGlzIGV4dGVuZGVkIGFuZCBza2VsZXRhbCBtZXRob2RzIGZvciBj
cmVhdGluZyBwYWdlIHJ1bGVzIGFuZCBtYXJnaW4gYXQtcnVsZXMgYXJlIGRlZmluZWQuCisgICAg
ICAgIFRoZSBjb250ZW50cyBvZiB0aGUgbWV0aG9kcyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkg
b3RoZXIgY2hhbmdlcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzUzMjkKKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVs
ZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55OgorICAgICAgICAqIGNzcy9DU1NQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpDU1NQYXJzZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjbGVhclByb3BlcnRpZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpsZXgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjp0ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlUGFnZVJ1bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVNYXJnaW5BdFJ1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpzdGFydERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OmVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCk6CisgICAg
ICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOgorICAgICAg
ICAqIGNzcy9DU1NTZWxlY3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6Oik6
CisgICAgICAgICogY3NzL3Rva2VuaXplci5mbGV4OgorCiAyMDEwLTAyLTA3ICBZdXpvIEZ1amlz
aGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueSBiL1dlYkNvcmUvY3NzL0NT
U0dyYW1tYXIueQppbmRleCA5ZDVlYjZlLi4zYWI4NjNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9DU1NHcmFtbWFyLnkKKysrIGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CkBAIC03MCw2ICs3
MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAgICAgQ1NTUnVsZUxpc3QqIHJ1bGVM
aXN0OwogICAgIENTU1NlbGVjdG9yKiBzZWxlY3RvcjsKICAgICBWZWN0b3I8Q1NTU2VsZWN0b3Iq
Piogc2VsZWN0b3JMaXN0OworICAgIENTU1NlbGVjdG9yOjpNYXJnaW5Cb3ggbWFyZ2luQm94Owog
ICAgIENTU1NlbGVjdG9yOjpSZWxhdGlvbiByZWxhdGlvbjsKICAgICBNZWRpYUxpc3QqIG1lZGlh
TGlzdDsKICAgICBNZWRpYVF1ZXJ5KiBtZWRpYVF1ZXJ5OwpAQCAtOTcsNyArOTgsNyBAQCBzdGF0
aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2VyKQogCiAlfQogCi0l
ZXhwZWN0IDU0CislZXhwZWN0IDY3CiAKICVub25hc3NvYyBMT1dFU1RfUFJFQwogCkBAIC0xNDIs
NiArMTQzLDIzIEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lkKiBw
YXJzZXIpCiAldG9rZW4gV0VCS0lUX0RFRklORV9TWU0KICV0b2tlbiBWQVJJQUJMRVNfRk9SCiAl
dG9rZW4gV0VCS0lUX1ZBUklBQkxFU19ERUNMU19TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBUT1BM
RUZUQ09STkVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRPUExFRlRfU1lNCisldG9rZW4gPG1h
cmdpbkJveD4gVE9QQ0VOVEVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRPUFJJR0hUX1NZTQor
JXRva2VuIDxtYXJnaW5Cb3g+IFRPUFJJR0hUQ09STkVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+
IEJPVFRPTUxFRlRDT1JORVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NTEVGVF9TWU0K
KyV0b2tlbiA8bWFyZ2luQm94PiBCT1RUT01DRU5URVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4g
Qk9UVE9NUklHSFRfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NUklHSFRDT1JORVJfU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gTEVGVFRPUF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBMRUZU
TUlERExFX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IExFRlRCT1RUT01fU1lNCisldG9rZW4gPG1h
cmdpbkJveD4gUklHSFRUT1BfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gUklHSFRNSURETEVfU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gUklHSFRCT1RUT01fU1lNCisKICV0b2tlbiBBVEtFWVdPUkQK
IAogJXRva2VuIElNUE9SVEFOVF9TWU0KQEAgLTE4OCw2ICsyMDYsNyBAQCBzdGF0aWMgaW50IGNz
c3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2VyKQogJXR5cGUgPHJ1bGU+IGltcG9y
dAogJXR5cGUgPHJ1bGU+IG5hbWVzcGFjZQogJXR5cGUgPHJ1bGU+IHBhZ2UKKyV0eXBlIDxydWxl
PiBtYXJnaW5fYm94CiAldHlwZSA8cnVsZT4gZm9udF9mYWNlCiAldHlwZSA8cnVsZT4ga2V5ZnJh
bWVzCiAldHlwZSA8cnVsZT4gaW52YWxpZF9ydWxlCkBAIC0yMDksNiArMjI4LDcgQEAgc3RhdGlj
IGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikKICV0eXBlIDxzdHJp
bmc+IGlkZW50X29yX3N0cmluZwogJXR5cGUgPHN0cmluZz4gbWVkaXVtCiAldHlwZSA8c3RyaW5n
PiBoZXhjb2xvcgorJXR5cGUgPG1hcmdpbkJveD4gbWFyZ2luX3N5bQogCiAldHlwZSA8c3RyaW5n
PiBtZWRpYV9mZWF0dXJlCiAldHlwZSA8bWVkaWFMaXN0PiBtZWRpYV9saXN0CkBAIC0yMzcsNiAr
MjU3LDcgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNl
cikKICV0eXBlIDxzZWxlY3Rvcj4gY2xhc3MKICV0eXBlIDxzZWxlY3Rvcj4gYXR0cmliCiAldHlw
ZSA8c2VsZWN0b3I+IHBzZXVkbworJXR5cGUgPHNlbGVjdG9yPiBwYWdlX3NlbGVjdG9yCiAKICV0
eXBlIDxib29sZWFuPiBkZWNsYXJhdGlvbl9saXN0CiAldHlwZSA8Ym9vbGVhbj4gZGVjbF9saXN0
CkBAIC03MjgsMjYgKzc0OSwxMTIgQEAga2V5OgogICAgIH0KICAgICA7CiAKLS8qCiBwYWdlOgot
ICAgIFBBR0VfU1lNIG1heWJlX3NwYWNlIElERU5UPyBwc2V1ZG9fcGFnZT8gbWF5YmVfc3BhY2UK
LSAgICAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb24gWyAnOycgbWF5YmVfc3BhY2UgZGVjbGFy
YXRpb24gXSogJ30nIG1heWJlX3NwYWNlCi0gIDsKLQotcHNldWRvX3BhZ2UKLSAgOiAnOicgSURF
TlQKLSAgOwotKi8KLQotcGFnZToKLSAgICBQQUdFX1NZTSBlcnJvciBpbnZhbGlkX2Jsb2NrIHsK
KyAgICBQQUdFX1NZTSBtYXliZV9zcGFjZSBwYWdlX3NlbGVjdG9yIG1heWJlX3NwYWNlCisgICAg
J3snIG1heWJlX3NwYWNlIGRlY2xhcmF0aW9uc19hbmRfbWFyZ2lucyBjbG9zaW5nX2JyYWNlIHsK
KyAgICAgICAgJCQgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVhdGVQYWdl
UnVsZSgkMyk7CisgICAgfQorICAgIHwgUEFHRV9TWU0gZXJyb3IgaW52YWxpZF9ibG9jayB7CiAg
ICAgICAkJCA9IDA7CiAgICAgfQotICB8IFBBR0VfU1lNIGVycm9yICc7JyB7CisgICAgfCBQQUdF
X1NZTSBlcnJvciAnOycgewogICAgICAgJCQgPSAwOwogICAgIH0KICAgICA7CiAKK3BhZ2Vfc2Vs
ZWN0b3I6CisgICAgSURFTlQgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxD
U1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICAkJCA9IHAtPmNyZWF0ZUZsb2F0aW5nU2VsZWN0
b3IoKTsKKyAgICAgICAgJCQtPm1fdGFnID0gUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHAt
Pm1fZGVmYXVsdE5hbWVzcGFjZSk7CisgICAgfQorICAgIHwgSURFTlQgcHNldWRvIHsKKyAgICAg
ICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAg
ICAgJCQgPSAkMjsKKyAgICAgICAgaWYgKCQkKQorICAgICAgICAgICAgJCQtPm1fdGFnID0gUXVh
bGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVzcGFjZSk7CisgICAgfQor
ICAgIHwgcHNldWRvIHsKKyAgICAgICAgJCQgPSAkMTsKKyAgICB9CisgICAgfCAvKiBlbXB0eSAq
LyB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNl
cik7CisgICAgICAgICQkID0gcC0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOworICAgIH0KKyAg
ICA7CisKK2RlY2xhcmF0aW9uc19hbmRfbWFyZ2luczoKKyAgICBkZWNsYXJhdGlvbl9saXN0Cisg
ICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbgorICAgIHwgZGVjbF9mb2xsb3dlZF9ieV9tYXJn
aW4gbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdAorICAgIDsKKworZGVjbF9mb2xsb3dlZF9i
eV9tYXJnaW46CisgICAgbWFyZ2luX2JveAorICAgIHwgZGVjbGFyYXRpb25fbGlzdCBtYXliZV9z
cGFjZSBtYXJnaW5fYm94CisgICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbiBtYXliZV9zcGFj
ZSBtYXJnaW5fYm94CisgICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbiBtYXliZV9zcGFjZSBk
ZWNsYXJhdGlvbl9saXN0IG1heWJlX3NwYWNlIG1hcmdpbl9ib3gKKyAgICA7CisKK21hcmdpbl9i
b3g6CisgICAgbWFyZ2luX3N5bSB7CisgICAgICAgIHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBh
cnNlciktPnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCk7CisgICAgfSBtYXliZV9zcGFj
ZSAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCBjbG9zaW5nX2JyYWNlIHsKKyAgICAg
ICAgJCQgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVhdGVNYXJnaW5BdFJ1
bGUoJDEpOworICAgIH0KKyAgICA7CisKK21hcmdpbl9zeW0gOgorICAgIFRPUExFRlRDT1JORVJf
U1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6VG9wTGVmdENvcm5lcjsKKyAgICB9Cisg
ICAgfCBUT1BMRUZUX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlRvcExlZnQ7Cisg
ICAgfQorICAgIHwgVE9QQ0VOVEVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlRv
cENlbnRlcjsKKyAgICB9CisgICAgfCBUT1BSSUdIVF9TWU0geworICAgICAgICAkJCA9IENTU1Nl
bGVjdG9yOjpUb3BSaWdodDsKKyAgICB9CisgICAgfCBUT1BSSUdIVENPUk5FUl9TWU0geworICAg
ICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BSaWdodENvcm5lcjsKKyAgICB9CisgICAgfCBCT1RU
T01MRUZUQ09STkVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbUxlZnRD
b3JuZXI7CisgICAgfQorICAgIHwgQk9UVE9NTEVGVF9TWU0geworICAgICAgICAkJCA9IENTU1Nl
bGVjdG9yOjpCb3R0b21MZWZ0OworICAgIH0KKyAgICB8IEJPVFRPTUNFTlRFUl9TWU0geworICAg
ICAgICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21DZW50ZXI7CisgICAgfQorICAgIHwgQk9UVE9N
UklHSFRfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Qm90dG9tUmlnaHQ7CisgICAg
fQorICAgIHwgQk9UVE9NUklHSFRDT1JORVJfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rv
cjo6Qm90dG9tUmlnaHRDb3JuZXI7CisgICAgfQorICAgIHwgTEVGVFRPUF9TWU0geworICAgICAg
ICAkJCA9IENTU1NlbGVjdG9yOjpMZWZ0VG9wOworICAgIH0KKyAgICB8IExFRlRNSURETEVfU1lN
IHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6TGVmdE1pZGRsZTsKKyAgICB9CisgICAgfCBM
RUZUQk9UVE9NX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkxlZnRCb3R0b207Cisg
ICAgfQorICAgIHwgUklHSFRUT1BfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Umln
aHRUb3A7CisgICAgfQorICAgIHwgUklHSFRNSURETEVfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NT
ZWxlY3Rvcjo6UmlnaHRNaWRkbGU7CisgICAgfQorICAgIHwgUklHSFRCT1RUT01fU1lNIHsKKyAg
ICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRCb3R0b207CisgICAgfQorICAgIDsKKwogZm9u
dF9mYWNlOgogICAgIEZPTlRfRkFDRV9TWU0gbWF5YmVfc3BhY2UKICAgICAneycgbWF5YmVfc3Bh
Y2UgZGVjbGFyYXRpb25fbGlzdCAnfScgIG1heWJlX3NwYWNlIHsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDVj
NjUxNDIuLmQzMzc0N2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysr
IGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNzAsNiArNzAsNyBAQAogI2luY2x1ZGUg
IldlYktpdENTU0tleWZyYW1lc1J1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CisjaW5jbHVkZSA8Y2xpbWl0cz4KIAogI2lm
IEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICNpbmNsdWRlICJEYXNoYm9hcmRSZWdpb24uaCIK
QEAgLTg5LDYgKzkwLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAjaW5jbHVkZSAiQ1NTUHJv
cGVydHlOYW1lcy5jcHAiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5jIgogCituYW1lc3Bh
Y2UgeworCitjb25zdCB1bnNpZ25lZCBJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElFUyA9IFVJ
TlRfTUFYOworCit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGJvb2wgZXF1YWwo
Y29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBhLCBjb25zdCBjaGFyKiBiKQpAQCAtMTM1LDYgKzE0Miw3
IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICAgICAsIG1fcGFy
c2VkUHJvcGVydGllcyhzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eSoqPihmYXN0TWFsbG9jKDMyICog
c2l6ZW9mKENTU1Byb3BlcnR5KikpKSkKICAgICAsIG1fbnVtUGFyc2VkUHJvcGVydGllcygwKQog
ICAgICwgbV9tYXhQYXJzZWRQcm9wZXJ0aWVzKDMyKQorICAgICwgbV9udW1QYXJzZWRQcm9wZXJ0
aWVzQmVmb3JlTWFyZ2luQm94KElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTKQogICAgICwg
bV9pblBhcnNlU2hvcnRoYW5kKDApCiAgICAgLCBtX2N1cnJlbnRTaG9ydGhhbmQoMCkKICAgICAs
IG1faW1wbGljaXRTaG9ydGhhbmQoZmFsc2UpCkBAIC0zOTQsNiArNDAyLDcgQEAgdm9pZCBDU1NQ
YXJzZXI6OmNsZWFyUHJvcGVydGllcygpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1f
bnVtUGFyc2VkUHJvcGVydGllczsgaSsrKQogICAgICAgICBkZWxldGUgbV9wYXJzZWRQcm9wZXJ0
aWVzW2ldOwogICAgIG1fbnVtUGFyc2VkUHJvcGVydGllcyA9IDA7CisgICAgbV9udW1QYXJzZWRQ
cm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94ID0gSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVM7
CiAgICAgbV9oYXNGb250RmFjZU9ubHlWYWx1ZXMgPSBmYWxzZTsKIH0KIApAQCAtNTEyNCw2ICs1
MTMzLDM5IEBAIGJvb2wgQ1NTUGFyc2VyOjphZGRWYXJpYWJsZURlY2xhcmF0aW9uQmxvY2soY29u
c3QgQ1NTUGFyc2VyU3RyaW5nJikKIAogI2VuZGlmCiAKK0NTU1J1bGUqIENTU1BhcnNlcjo6Y3Jl
YXRlUGFnZVJ1bGUoQ1NTU2VsZWN0b3IqIC8qIHBhZ2VTZWxlY3RvciAqLykKK3sKKyAgICAvLyBG
SVhNRTogQ3JlYXRlIHBhZ2UgcnVsZSBoZXJlLCB1c2luZzoKKyAgICAvLyAgICAgICAgLSBwYWdl
U2VsZWN0b3ItPnBzZXVkb1R5cGUoKTogdGhlIHBhZ2UgcHNldWRvLWNsYXNzLCBpLmUuLCA6bGVm
dCwgOnJpZ2h0LCBvciA6Zmlyc3QKKyAgICAvLyAgICAgICAgLSBwYWdlU2VsZWN0b3ItPm1fdGFn
OiAgdGhlIHBhZ2UgbmFtZQorICAgIC8vICAgICAgICAtIG1fcGFyc2VkUHJvcGVydGllczogdGhl
IHBhZ2UgcHJvcGVydGllcworCisgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CisgICAgcmV0dXJuIDA7
IC8vIHVudGlsIHRoaXMgbWV0aG9kIGlzIGltcGxlbWVudGVkLgorfQorCitDU1NSdWxlKiBDU1NQ
YXJzZXI6OmNyZWF0ZU1hcmdpbkF0UnVsZShDU1NTZWxlY3Rvcjo6TWFyZ2luQm94JiAvKiBtYXJn
aW5Cb3ggKi8pCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBtYXJnaW4gYXQtcnVsZSBoZXJl
LCB1c2luZzoKKyAgICAvLyAgICAgICAgLSBtYXJnaW5Cb3g6IG1hcmdpbiBib3gKKyAgICAvLyAg
ICAgICAgLSBtX3BhcnNlZFByb3BlcnRpZXM6IHByb3BlcnRpZXMgYXQgW21fbnVtUGFyc2VkUHJv
cGVydGllc0JlZm9yZU1hcmdpbkJveCwgbV9udW1QYXJzZWRQcm9wZXJ0aWVzKSBhcmUgZm9yIHRo
aXMgYXQtcnVsZS4KKworICAgIGVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgpOworICAgIHJl
dHVybiAwOyAvLyB1bnRpbCB0aGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZC4KK30KKwordm9pZCBD
U1NQYXJzZXI6OnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCkKK3sKKyAgICBtX251bVBh
cnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggPSBtX251bVBhcnNlZFByb3BlcnRpZXM7Cit9
CisKK3ZvaWQgQ1NTUGFyc2VyOjplbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKQoreworICAg
IEFTU0VSVChtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggIT0gSU5WQUxJRF9O
VU1fUEFSU0VEX1BST1BFUlRJRVMpOworICAgIHJvbGxiYWNrTGFzdFByb3BlcnRpZXMobV9udW1Q
YXJzZWRQcm9wZXJ0aWVzIC0gbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94KTsK
KyAgICBtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggPSBJTlZBTElEX05VTV9Q
QVJTRURfUFJPUEVSVElFUzsKK30KKwogdm9pZCBDU1NQYXJzZXI6OmNsZWFyVmFyaWFibGVzKCkK
IHsKICAgICBtX3ZhcmlhYmxlTmFtZXMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5oIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggMzkyMmEyYS4uMjZm
NzAwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmgKQEAgLTE3OCw2ICsxNzgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBDU1NSdWxlKiBjcmVhdGVTdHlsZVJ1bGUoVmVjdG9yPENTU1NlbGVjdG9yKj4qIHNl
bGVjdG9ycyk7CiAgICAgICAgIENTU1J1bGUqIGNyZWF0ZUZvbnRGYWNlUnVsZSgpOwogICAgICAg
ICBDU1NSdWxlKiBjcmVhdGVWYXJpYWJsZXNSdWxlKE1lZGlhTGlzdCosIGJvb2wgdmFyaWFibGVz
S2V5d29yZCk7CisgICAgICAgIENTU1J1bGUqIGNyZWF0ZVBhZ2VSdWxlKENTU1NlbGVjdG9yKiBw
YWdlU2VsZWN0b3IpOworICAgICAgICBDU1NSdWxlKiBjcmVhdGVNYXJnaW5BdFJ1bGUoQ1NTU2Vs
ZWN0b3I6Ok1hcmdpbkJveCYgbWFyZ2luQm94KTsKKyAgICAgICAgdm9pZCBzdGFydERlY2xhcmF0
aW9uc0Zvck1hcmdpbkJveCgpOworICAgICAgICB2b2lkIGVuZERlY2xhcmF0aW9uc0Zvck1hcmdp
bkJveCgpOwogCiAgICAgICAgIE1lZGlhUXVlcnlFeHAqIGNyZWF0ZUZsb2F0aW5nTWVkaWFRdWVy
eUV4cChjb25zdCBBdG9taWNTdHJpbmcmLCBDU1NQYXJzZXJWYWx1ZUxpc3QqKTsKICAgICAgICAg
TWVkaWFRdWVyeUV4cCogc2lua0Zsb2F0aW5nTWVkaWFRdWVyeUV4cChNZWRpYVF1ZXJ5RXhwKik7
CkBAIC0yMDksNiArMjEzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBDU1NTZWxl
Y3Rvckxpc3QqIG1fc2VsZWN0b3JMaXN0Rm9yUGFyc2VTZWxlY3RvcjsKICAgICAgICAgdW5zaWdu
ZWQgbV9udW1QYXJzZWRQcm9wZXJ0aWVzOwogICAgICAgICB1bnNpZ25lZCBtX21heFBhcnNlZFBy
b3BlcnRpZXM7CisgICAgICAgIHVuc2lnbmVkIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1h
cmdpbkJveDsKIAogICAgICAgICBpbnQgbV9pblBhcnNlU2hvcnRoYW5kOwogICAgICAgICBpbnQg
bV9jdXJyZW50U2hvcnRoYW5kOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
Y3BwIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IDlhZTliOWYuLmZjMDU2MDYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nz
cy9DU1NTZWxlY3Rvci5jcHAKQEAgLTE1Nyw2ICsxNTcsMTAgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6
ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzaW5nbGVCdXR0b24sICgic2luZ2xlLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbm9CdXR0b24sICgibm8tYnV0dG9uIikpOwogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBjb3JuZXJQcmVzZW50LCAoImNvcm5lci1w
cmVzZW50IikpOworICAgIC8vIFBhZ2VkIE1lZGlhIHBzZXVkby1jbGFzc2VzCisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGxlZnRQYWdlLCAoImxlZnQiKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJpZ2h0UGFnZSwgKCJyaWdodCIpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlyc3RQYWdlLCAoImZpcnN0Iikp
OwogCiAgICAgYm9vbCBlbGVtZW50ID0gZmFsc2U7IC8vIHBzZXVkby1lbGVtZW50CiAgICAgYm9v
bCBjb21wYXQgPSBmYWxzZTsgLy8gc2luZ2xlIGNvbG9uIGNvbXBhdGJpbGl0eSBtb2RlCkBAIC0z
NzksNiArMzgzLDEyIEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29u
c3QKICAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvVGFyZ2V0OwogICAgIGVsc2UgaWYgKG1f
dmFsdWUgPT0gdmlzaXRlZCkKICAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvVmlzaXRlZDsK
KyAgICBlbHNlIGlmIChtX3ZhbHVlID09IGxlZnRQYWdlKQorICAgICAgICBtX3BzZXVkb1R5cGUg
PSBQc2V1ZG9MZWZ0UGFnZTsKKyAgICBlbHNlIGlmIChtX3ZhbHVlID09IHJpZ2h0UGFnZSkKKyAg
ICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvUmlnaHRQYWdlOworICAgIGVsc2UgaWYgKG1fdmFs
dWUgPT0gZmlyc3RQYWdlKQorICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9GaXJzdFBhZ2U7
CiAKICAgICBpZiAobV9tYXRjaCA9PSBQc2V1ZG9DbGFzcyAmJiBlbGVtZW50KSB7CiAgICAgICAg
IGlmICghY29tcGF0KSAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDcwZjI1NzQuLjVhNTRiNTIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuaApAQCAtMTg2LDYgKzE4NiwyOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAg
ICBQc2V1ZG9JbnB1dExpc3RCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9Jbm5lclNwaW5CdXR0
b24sCiAgICAgICAgICAgICBQc2V1ZG9PdXRlclNwaW5CdXR0b24sCisgICAgICAgICAgICBQc2V1
ZG9MZWZ0UGFnZSwKKyAgICAgICAgICAgIFBzZXVkb1JpZ2h0UGFnZSwKKyAgICAgICAgICAgIFBz
ZXVkb0ZpcnN0UGFnZSwKKyAgICAgICAgfTsKKworICAgICAgICBlbnVtIE1hcmdpbkJveCB7Cisg
ICAgICAgICAgICBUb3BMZWZ0Q29ybmVyLAorICAgICAgICAgICAgVG9wTGVmdCwKKyAgICAgICAg
ICAgIFRvcENlbnRlciwKKyAgICAgICAgICAgIFRvcFJpZ2h0LAorICAgICAgICAgICAgVG9wUmln
aHRDb3JuZXIsCisgICAgICAgICAgICBCb3R0b21MZWZ0Q29ybmVyLAorICAgICAgICAgICAgQm90
dG9tTGVmdCwKKyAgICAgICAgICAgIEJvdHRvbUNlbnRlciwKKyAgICAgICAgICAgIEJvdHRvbVJp
Z2h0LAorICAgICAgICAgICAgQm90dG9tUmlnaHRDb3JuZXIsCisgICAgICAgICAgICBMZWZ0VG9w
LAorICAgICAgICAgICAgTGVmdE1pZGRsZSwKKyAgICAgICAgICAgIExlZnRCb3R0b20sCisgICAg
ICAgICAgICBSaWdodFRvcCwKKyAgICAgICAgICAgIFJpZ2h0TWlkZGxlLAorICAgICAgICAgICAg
UmlnaHRCb3R0b20sCiAgICAgICAgIH07CiAKICAgICAgICAgUHNldWRvVHlwZSBwc2V1ZG9UeXBl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4IGIvV2ViQ29y
ZS9jc3MvdG9rZW5pemVyLmZsZXgKaW5kZXggMTU2OWVlMi4uNWUzODhjNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKKysrIGIvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZs
ZXgKQEAgLTUzLDYgKzUzLDIyIEBAIG50aCAgICAgICAgICAgICAoLT9bMC05XSpuW1wrLV1bMC05
XSspfCgtP1swLTldKm4pCiAKICJAaW1wb3J0IiAgICAgICAgICAgICAgIHtCRUdJTihtZWRpYXF1
ZXJ5KTsgeXlUb2sgPSBJTVBPUlRfU1lNOyByZXR1cm4geXlUb2s7fQogIkBwYWdlIiAgICAgICAg
ICAgICAgICAge3l5VG9rID0gUEFHRV9TWU07IHJldHVybiB5eVRvazt9CisiQHRvcC1sZWZ0LWNv
cm5lciIgICAgICB7eXlUb2sgPSBUT1BMRUZUQ09STkVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJA
dG9wLWxlZnQiICAgICAgICAgICAgIHt5eVRvayA9IFRPUExFRlRfU1lNOyByZXR1cm4geXlUb2s7
fQorIkB0b3AtY2VudGVyIiAgICAgICAgICAge3l5VG9rID0gVE9QQ0VOVEVSX1NZTTsgcmV0dXJu
IHl5VG9rO30KKyJAdG9wLXJpZ2h0IiAgICAgICAgICAgIHt5eVRvayA9IFRPUFJJR0hUX1NZTTsg
cmV0dXJuIHl5VG9rO30KKyJAdG9wLXJpZ2h0LWNvcm5lciIgICAgIHt5eVRvayA9IFRPUFJJR0hU
Q09STkVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAYm90dG9tLWxlZnQtY29ybmVyIiAgIHt5eVRv
ayA9IEJPVFRPTUxFRlRDT1JORVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20tbGVmdCIg
ICAgICAgICAge3l5VG9rID0gQk9UVE9NTEVGVF9TWU07IHJldHVybiB5eVRvazt9CisiQGJvdHRv
bS1jZW50ZXIiICAgICAgICB7eXlUb2sgPSBCT1RUT01DRU5URVJfU1lNOyByZXR1cm4geXlUb2s7
fQorIkBib3R0b20tcmlnaHQiICAgICAgICAge3l5VG9rID0gQk9UVE9NUklHSFRfU1lNOyByZXR1
cm4geXlUb2s7fQorIkBib3R0b20tcmlnaHQtY29ybmVyIiAge3l5VG9rID0gQk9UVE9NUklHSFRD
T1JORVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBsZWZ0LXRvcCIgICAgICAgICAgICAge3l5VG9r
ID0gTEVGVFRPUF9TWU07IHJldHVybiB5eVRvazt9CisiQGxlZnQtbWlkZGxlIiAgICAgICAgICB7
eXlUb2sgPSBMRUZUTUlERExFX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAbGVmdC1ib3R0b20iICAg
ICAgICAgIHt5eVRvayA9IExFRlRCT1RUT01fU1lNOyByZXR1cm4geXlUb2s7fQorIkByaWdodC10
b3AiICAgICAgICAgICAge3l5VG9rID0gUklHSFRUT1BfU1lNOyByZXR1cm4geXlUb2s7fQorIkBy
aWdodC1taWRkbGUiICAgICAgICAge3l5VG9rID0gUklHSFRNSURETEVfU1lNOyByZXR1cm4geXlU
b2s7fQorIkByaWdodC1ib3R0b20iICAgICAgICAge3l5VG9rID0gUklHSFRCT1RUT01fU1lNOyBy
ZXR1cm4geXlUb2s7fQogIkBtZWRpYSIgICAgICAgICAgICAgICAge0JFR0lOKG1lZGlhcXVlcnkp
OyB5eVRvayA9IE1FRElBX1NZTTsgcmV0dXJuIHl5VG9rO30KICJAZm9udC1mYWNlIiAgICAgICAg
ICAgIHt5eVRvayA9IEZPTlRfRkFDRV9TWU07IHJldHVybiB5eVRvazt9CiAiQGNoYXJzZXQiICAg
ICAgICAgICAgICB7eXlUb2sgPSBDSEFSU0VUX1NZTTsgcmV0dXJuIHl5VG9rO30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49368</attachid>
            <date>2010-02-24 02:29:00 -0800</date>
            <delta_ts>2010-03-01 02:09:40 -0800</delta_ts>
            <desc>Enhance CSS parser for Paged Media (Iteration 1)</desc>
            <filename>bug-35329-20100224192858.patch</filename>
            <type>text/plain</type>
            <size>16983</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyYjU5NGM0Li41MGFkYmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFn
ZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisgICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3Jh
bW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBy
dWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFyZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVu
dHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5n
LXBhZ2UtcnVsZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMi0wNyAgWXV6byBGdWppc2hpbWEgIDx5
dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VmMjJlOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9w
YXJzaW5nLXBhZ2UtcnVsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdl
LXJ1bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTk5ZWVhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdlLXJ1bGUu
aHRtbApAQCAtMCwwICsxLDY1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgLnRvX2JlX3No
b3duIHsKKyAgICAgICAgICBkaXNwbGF5Om5vbmU7CisgICAgICAgICAgY29sb3I6Z3JlZW47Cisg
ICAgICAgIH0KKyAgICAgICAgLnRvX2JlX2hpZGRlbiB7CisgICAgICAgICAgZGlzcGxheTpibG9j
azsKKyAgICAgICAgICBjb2xvcjpyZWQ7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxz
dHlsZT4KKyAgICAgICAgLyogcGFnZSBydWxlIG11c3Qgbm90IGludGVyZmVyZSB3aXRoIG5vbi1w
YWdlIHJ1bGVzICovCisgICAgICAgICN0ZXN0MSB7CisgICAgICAgICAgICBkaXNwbGF5Om5vbmU7
CisgICAgICAgIH0KKyAgICAgICAgQHBhZ2UgeworICAgICAgICAgICAgI3Rlc3QxIHsKKyAgICAg
ICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQHRv
cC1jZW50ZXIgeworICAgICAgICAgICAgICAgIGNvbnRlbnQ6IlRlc3QiOworICAgICAgICAgICAg
ICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAjdGVzdDIgewor
ICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgI3Rlc3QyIHsKKyAgICAgICAgICAgIGRpc3BsYXk6bm9uZTsKKyAgICAgICAgfQor
ICAgIDwvc3R5bGU+CisgICAgPHN0eWxlPgorICAgICAgICAvKiBNYWxmb3JtZWQgcGFnZSBydWxl
IG11c3Qgbm90IGludGVyZmVyZSB3aXRoIG5vbi1wYWdlIHJ1bGVzIGFzIGZhciBhcyBicmFjZXMg
YXJlIHBhaXJlZCBwcm9wZXJseSAqLworICAgICAgICBAcGFnZSB7CisgICAgICAgICAgICBwOmJl
Zm9yZSB7CisgICAgICAgICAgICAgICAgY29udGVudDoibWFsZm9ybWVkCisgICAgICAgICAgICB9
CisgICAgICAgICAgICBAdG9wLWxlZnQKKyAgICAgICAgfQorICAgICAgICAjdGVzdDMgeworICAg
ICAgICAgICAgZGlzcGxheTpub25lOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c3R5
bGU+CisgICAgICAgIC8qIFN1Y2Nlc3NmdWxseSBwYXJzZWQgKi8KKyAgICAgICAgI2xhc3Qgewor
ICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPGRpdiBjbGFzcz0idG9fYmVfaGlkZGVuIiBpZD0idGVzdDEiPkZBSUw6
IFRlc3QgMTwvZGl2PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9oaWRkZW4iIGlkPSJ0ZXN0MiI+RkFJ
TDogVGVzdCAyPC9kaXY+CisgIDxkaXYgY2xhc3M9InRvX2JlX2hpZGRlbiIgaWQ9InRlc3QzIj5G
QUlMOiBUZXN0IDM8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idG9fYmVfc2hvd24iIGlkPSJsYXN0Ij5Q
QVNTPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZmOTU3ZS4uOGQzOGVjNSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MyBAQAorMjAxMC0wMi0yNCAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5oYW5jZSBDU1Mg
cGFyc2VyIGZvciBQYWdlZCBNZWRpYSAoSXRlcmF0aW9uIDEpCisKKyAgICAgICAgSW4gdGhpcyBj
aGFuZ2UsIHRoZSBncmFtbWFyIGlzIGV4dGVuZGVkIGFuZCBza2VsZXRhbCBtZXRob2RzIGZvciBj
cmVhdGluZyBwYWdlIHJ1bGVzIGFuZCBtYXJnaW4gYXQtcnVsZXMgYXJlIGRlZmluZWQuCisgICAg
ICAgIFRoZSBjb250ZW50cyBvZiB0aGUgbWV0aG9kcyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkg
b3RoZXIgY2hhbmdlcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzUzMjkKKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVs
ZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55OgorICAgICAgICAqIGNzcy9DU1NQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpDU1NQYXJzZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjbGVhclByb3BlcnRpZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpsZXgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjp0ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlUGFnZVJ1bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVNYXJnaW5BdFJ1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpzdGFydERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OmVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCk6CisgICAg
ICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOgorICAgICAg
ICAqIGNzcy9DU1NTZWxlY3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6Oik6
CisgICAgICAgICogY3NzL3Rva2VuaXplci5mbGV4OgorCiAyMDEwLTAyLTA3ICBZdXpvIEZ1amlz
aGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueSBiL1dlYkNvcmUvY3NzL0NT
U0dyYW1tYXIueQppbmRleCA5ZDVlYjZlLi4zYWI4NjNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9DU1NHcmFtbWFyLnkKKysrIGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CkBAIC03MCw2ICs3
MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAgICAgQ1NTUnVsZUxpc3QqIHJ1bGVM
aXN0OwogICAgIENTU1NlbGVjdG9yKiBzZWxlY3RvcjsKICAgICBWZWN0b3I8Q1NTU2VsZWN0b3Iq
Piogc2VsZWN0b3JMaXN0OworICAgIENTU1NlbGVjdG9yOjpNYXJnaW5Cb3ggbWFyZ2luQm94Owog
ICAgIENTU1NlbGVjdG9yOjpSZWxhdGlvbiByZWxhdGlvbjsKICAgICBNZWRpYUxpc3QqIG1lZGlh
TGlzdDsKICAgICBNZWRpYVF1ZXJ5KiBtZWRpYVF1ZXJ5OwpAQCAtOTcsNyArOTgsNyBAQCBzdGF0
aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2VyKQogCiAlfQogCi0l
ZXhwZWN0IDU0CislZXhwZWN0IDY3CiAKICVub25hc3NvYyBMT1dFU1RfUFJFQwogCkBAIC0xNDIs
NiArMTQzLDIzIEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lkKiBw
YXJzZXIpCiAldG9rZW4gV0VCS0lUX0RFRklORV9TWU0KICV0b2tlbiBWQVJJQUJMRVNfRk9SCiAl
dG9rZW4gV0VCS0lUX1ZBUklBQkxFU19ERUNMU19TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBUT1BM
RUZUQ09STkVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRPUExFRlRfU1lNCisldG9rZW4gPG1h
cmdpbkJveD4gVE9QQ0VOVEVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRPUFJJR0hUX1NZTQor
JXRva2VuIDxtYXJnaW5Cb3g+IFRPUFJJR0hUQ09STkVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+
IEJPVFRPTUxFRlRDT1JORVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NTEVGVF9TWU0K
KyV0b2tlbiA8bWFyZ2luQm94PiBCT1RUT01DRU5URVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4g
Qk9UVE9NUklHSFRfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NUklHSFRDT1JORVJfU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gTEVGVFRPUF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBMRUZU
TUlERExFX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IExFRlRCT1RUT01fU1lNCisldG9rZW4gPG1h
cmdpbkJveD4gUklHSFRUT1BfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gUklHSFRNSURETEVfU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gUklHSFRCT1RUT01fU1lNCisKICV0b2tlbiBBVEtFWVdPUkQK
IAogJXRva2VuIElNUE9SVEFOVF9TWU0KQEAgLTE4OCw2ICsyMDYsNyBAQCBzdGF0aWMgaW50IGNz
c3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2VyKQogJXR5cGUgPHJ1bGU+IGltcG9y
dAogJXR5cGUgPHJ1bGU+IG5hbWVzcGFjZQogJXR5cGUgPHJ1bGU+IHBhZ2UKKyV0eXBlIDxydWxl
PiBtYXJnaW5fYm94CiAldHlwZSA8cnVsZT4gZm9udF9mYWNlCiAldHlwZSA8cnVsZT4ga2V5ZnJh
bWVzCiAldHlwZSA8cnVsZT4gaW52YWxpZF9ydWxlCkBAIC0yMDksNiArMjI4LDcgQEAgc3RhdGlj
IGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikKICV0eXBlIDxzdHJp
bmc+IGlkZW50X29yX3N0cmluZwogJXR5cGUgPHN0cmluZz4gbWVkaXVtCiAldHlwZSA8c3RyaW5n
PiBoZXhjb2xvcgorJXR5cGUgPG1hcmdpbkJveD4gbWFyZ2luX3N5bQogCiAldHlwZSA8c3RyaW5n
PiBtZWRpYV9mZWF0dXJlCiAldHlwZSA8bWVkaWFMaXN0PiBtZWRpYV9saXN0CkBAIC0yMzcsNiAr
MjU3LDcgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNl
cikKICV0eXBlIDxzZWxlY3Rvcj4gY2xhc3MKICV0eXBlIDxzZWxlY3Rvcj4gYXR0cmliCiAldHlw
ZSA8c2VsZWN0b3I+IHBzZXVkbworJXR5cGUgPHNlbGVjdG9yPiBwYWdlX3NlbGVjdG9yCiAKICV0
eXBlIDxib29sZWFuPiBkZWNsYXJhdGlvbl9saXN0CiAldHlwZSA8Ym9vbGVhbj4gZGVjbF9saXN0
CkBAIC03MjgsMjYgKzc0OSwxMTIgQEAga2V5OgogICAgIH0KICAgICA7CiAKLS8qCiBwYWdlOgot
ICAgIFBBR0VfU1lNIG1heWJlX3NwYWNlIElERU5UPyBwc2V1ZG9fcGFnZT8gbWF5YmVfc3BhY2UK
LSAgICAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb24gWyAnOycgbWF5YmVfc3BhY2UgZGVjbGFy
YXRpb24gXSogJ30nIG1heWJlX3NwYWNlCi0gIDsKLQotcHNldWRvX3BhZ2UKLSAgOiAnOicgSURF
TlQKLSAgOwotKi8KLQotcGFnZToKLSAgICBQQUdFX1NZTSBlcnJvciBpbnZhbGlkX2Jsb2NrIHsK
KyAgICBQQUdFX1NZTSBtYXliZV9zcGFjZSBwYWdlX3NlbGVjdG9yIG1heWJlX3NwYWNlCisgICAg
J3snIG1heWJlX3NwYWNlIGRlY2xhcmF0aW9uc19hbmRfbWFyZ2lucyBjbG9zaW5nX2JyYWNlIHsK
KyAgICAgICAgJCQgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVhdGVQYWdl
UnVsZSgkMyk7CisgICAgfQorICAgIHwgUEFHRV9TWU0gZXJyb3IgaW52YWxpZF9ibG9jayB7CiAg
ICAgICAkJCA9IDA7CiAgICAgfQotICB8IFBBR0VfU1lNIGVycm9yICc7JyB7CisgICAgfCBQQUdF
X1NZTSBlcnJvciAnOycgewogICAgICAgJCQgPSAwOwogICAgIH0KICAgICA7CiAKK3BhZ2Vfc2Vs
ZWN0b3I6CisgICAgSURFTlQgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxD
U1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICAkJCA9IHAtPmNyZWF0ZUZsb2F0aW5nU2VsZWN0
b3IoKTsKKyAgICAgICAgJCQtPm1fdGFnID0gUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHAt
Pm1fZGVmYXVsdE5hbWVzcGFjZSk7CisgICAgfQorICAgIHwgSURFTlQgcHNldWRvIHsKKyAgICAg
ICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAg
ICAgJCQgPSAkMjsKKyAgICAgICAgaWYgKCQkKQorICAgICAgICAgICAgJCQtPm1fdGFnID0gUXVh
bGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVzcGFjZSk7CisgICAgfQor
ICAgIHwgcHNldWRvIHsKKyAgICAgICAgJCQgPSAkMTsKKyAgICB9CisgICAgfCAvKiBlbXB0eSAq
LyB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNl
cik7CisgICAgICAgICQkID0gcC0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOworICAgIH0KKyAg
ICA7CisKK2RlY2xhcmF0aW9uc19hbmRfbWFyZ2luczoKKyAgICBkZWNsYXJhdGlvbl9saXN0Cisg
ICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbgorICAgIHwgZGVjbF9mb2xsb3dlZF9ieV9tYXJn
aW4gbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdAorICAgIDsKKworZGVjbF9mb2xsb3dlZF9i
eV9tYXJnaW46CisgICAgbWFyZ2luX2JveAorICAgIHwgZGVjbGFyYXRpb25fbGlzdCBtYXliZV9z
cGFjZSBtYXJnaW5fYm94CisgICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbiBtYXliZV9zcGFj
ZSBtYXJnaW5fYm94CisgICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbiBtYXliZV9zcGFjZSBk
ZWNsYXJhdGlvbl9saXN0IG1heWJlX3NwYWNlIG1hcmdpbl9ib3gKKyAgICA7CisKK21hcmdpbl9i
b3g6CisgICAgbWFyZ2luX3N5bSB7CisgICAgICAgIHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBh
cnNlciktPnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCk7CisgICAgfSBtYXliZV9zcGFj
ZSAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCBjbG9zaW5nX2JyYWNlIHsKKyAgICAg
ICAgJCQgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVhdGVNYXJnaW5BdFJ1
bGUoJDEpOworICAgIH0KKyAgICA7CisKK21hcmdpbl9zeW0gOgorICAgIFRPUExFRlRDT1JORVJf
U1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6VG9wTGVmdENvcm5lcjsKKyAgICB9Cisg
ICAgfCBUT1BMRUZUX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlRvcExlZnQ7Cisg
ICAgfQorICAgIHwgVE9QQ0VOVEVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlRv
cENlbnRlcjsKKyAgICB9CisgICAgfCBUT1BSSUdIVF9TWU0geworICAgICAgICAkJCA9IENTU1Nl
bGVjdG9yOjpUb3BSaWdodDsKKyAgICB9CisgICAgfCBUT1BSSUdIVENPUk5FUl9TWU0geworICAg
ICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BSaWdodENvcm5lcjsKKyAgICB9CisgICAgfCBCT1RU
T01MRUZUQ09STkVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbUxlZnRD
b3JuZXI7CisgICAgfQorICAgIHwgQk9UVE9NTEVGVF9TWU0geworICAgICAgICAkJCA9IENTU1Nl
bGVjdG9yOjpCb3R0b21MZWZ0OworICAgIH0KKyAgICB8IEJPVFRPTUNFTlRFUl9TWU0geworICAg
ICAgICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21DZW50ZXI7CisgICAgfQorICAgIHwgQk9UVE9N
UklHSFRfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Qm90dG9tUmlnaHQ7CisgICAg
fQorICAgIHwgQk9UVE9NUklHSFRDT1JORVJfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rv
cjo6Qm90dG9tUmlnaHRDb3JuZXI7CisgICAgfQorICAgIHwgTEVGVFRPUF9TWU0geworICAgICAg
ICAkJCA9IENTU1NlbGVjdG9yOjpMZWZ0VG9wOworICAgIH0KKyAgICB8IExFRlRNSURETEVfU1lN
IHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6TGVmdE1pZGRsZTsKKyAgICB9CisgICAgfCBM
RUZUQk9UVE9NX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkxlZnRCb3R0b207Cisg
ICAgfQorICAgIHwgUklHSFRUT1BfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Umln
aHRUb3A7CisgICAgfQorICAgIHwgUklHSFRNSURETEVfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NT
ZWxlY3Rvcjo6UmlnaHRNaWRkbGU7CisgICAgfQorICAgIHwgUklHSFRCT1RUT01fU1lNIHsKKyAg
ICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRCb3R0b207CisgICAgfQorICAgIDsKKwogZm9u
dF9mYWNlOgogICAgIEZPTlRfRkFDRV9TWU0gbWF5YmVfc3BhY2UKICAgICAneycgbWF5YmVfc3Bh
Y2UgZGVjbGFyYXRpb25fbGlzdCAnfScgIG1heWJlX3NwYWNlIHsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDVj
NjUxNDIuLjFkMWE2M2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysr
IGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUg
IldlYktpdENTU0tleWZyYW1lUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lc1J1
bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgorI2luY2x1ZGUgPGNs
aW1pdHM+CiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKQEAgLTg5LDYgKzkwLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlOYW1lcy5jcHAiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5jIgogCitu
YW1lc3BhY2UgeworCitjb25zdCB1bnNpZ25lZCBJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElF
UyA9IFVJTlRfTUFYOworCit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGJvb2wg
ZXF1YWwoY29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBhLCBjb25zdCBjaGFyKiBiKQpAQCAtMTM1LDYg
KzE0Miw3IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICAgICAs
IG1fcGFyc2VkUHJvcGVydGllcyhzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eSoqPihmYXN0TWFsbG9j
KDMyICogc2l6ZW9mKENTU1Byb3BlcnR5KikpKSkKICAgICAsIG1fbnVtUGFyc2VkUHJvcGVydGll
cygwKQogICAgICwgbV9tYXhQYXJzZWRQcm9wZXJ0aWVzKDMyKQorICAgICwgbV9udW1QYXJzZWRQ
cm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94KElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTKQog
ICAgICwgbV9pblBhcnNlU2hvcnRoYW5kKDApCiAgICAgLCBtX2N1cnJlbnRTaG9ydGhhbmQoMCkK
ICAgICAsIG1faW1wbGljaXRTaG9ydGhhbmQoZmFsc2UpCkBAIC0zOTQsNiArNDAyLDcgQEAgdm9p
ZCBDU1NQYXJzZXI6OmNsZWFyUHJvcGVydGllcygpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG1fbnVtUGFyc2VkUHJvcGVydGllczsgaSsrKQogICAgICAgICBkZWxldGUgbV9wYXJzZWRQ
cm9wZXJ0aWVzW2ldOwogICAgIG1fbnVtUGFyc2VkUHJvcGVydGllcyA9IDA7CisgICAgbV9udW1Q
YXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94ID0gSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BF
UlRJRVM7CiAgICAgbV9oYXNGb250RmFjZU9ubHlWYWx1ZXMgPSBmYWxzZTsKIH0KIApAQCAtNTEy
NCw2ICs1MTMzLDM5IEBAIGJvb2wgQ1NTUGFyc2VyOjphZGRWYXJpYWJsZURlY2xhcmF0aW9uQmxv
Y2soY29uc3QgQ1NTUGFyc2VyU3RyaW5nJikKIAogI2VuZGlmCiAKK0NTU1J1bGUqIENTU1BhcnNl
cjo6Y3JlYXRlUGFnZVJ1bGUoQ1NTU2VsZWN0b3IqIC8qIHBhZ2VTZWxlY3RvciAqLykKK3sKKyAg
ICAvLyBGSVhNRTogQ3JlYXRlIHBhZ2UgcnVsZSBoZXJlLCB1c2luZzoKKyAgICAvLyAgICAgICAg
LSBwYWdlU2VsZWN0b3ItPnBzZXVkb1R5cGUoKTogdGhlIHBhZ2UgcHNldWRvLWNsYXNzLCBpLmUu
LCA6bGVmdCwgOnJpZ2h0LCBvciA6Zmlyc3QKKyAgICAvLyAgICAgICAgLSBwYWdlU2VsZWN0b3It
Pm1fdGFnOiAgdGhlIHBhZ2UgbmFtZQorICAgIC8vICAgICAgICAtIG1fcGFyc2VkUHJvcGVydGll
czogdGhlIHBhZ2UgcHJvcGVydGllcworCisgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CisgICAgcmV0
dXJuIDA7IC8vIHVudGlsIHRoaXMgbWV0aG9kIGlzIGltcGxlbWVudGVkLgorfQorCitDU1NSdWxl
KiBDU1NQYXJzZXI6OmNyZWF0ZU1hcmdpbkF0UnVsZShDU1NTZWxlY3Rvcjo6TWFyZ2luQm94JiAv
KiBtYXJnaW5Cb3ggKi8pCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBtYXJnaW4gYXQtcnVs
ZSBoZXJlLCB1c2luZzoKKyAgICAvLyAgICAgICAgLSBtYXJnaW5Cb3g6IG1hcmdpbiBib3gKKyAg
ICAvLyAgICAgICAgLSBtX3BhcnNlZFByb3BlcnRpZXM6IHByb3BlcnRpZXMgYXQgW21fbnVtUGFy
c2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveCwgbV9udW1QYXJzZWRQcm9wZXJ0aWVzKSBhcmUg
Zm9yIHRoaXMgYXQtcnVsZS4KKworICAgIGVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgpOwor
ICAgIHJldHVybiAwOyAvLyB1bnRpbCB0aGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZC4KK30KKwor
dm9pZCBDU1NQYXJzZXI6OnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCkKK3sKKyAgICBt
X251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggPSBtX251bVBhcnNlZFByb3BlcnRp
ZXM7Cit9CisKK3ZvaWQgQ1NTUGFyc2VyOjplbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKQor
eworICAgIEFTU0VSVChtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggIT0gSU5W
QUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVMpOworICAgIHJvbGxiYWNrTGFzdFByb3BlcnRpZXMo
bV9udW1QYXJzZWRQcm9wZXJ0aWVzIC0gbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2lu
Qm94KTsKKyAgICBtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggPSBJTlZBTElE
X05VTV9QQVJTRURfUFJPUEVSVElFUzsKK30KKwogdm9pZCBDU1NQYXJzZXI6OmNsZWFyVmFyaWFi
bGVzKCkKIHsKICAgICBtX3ZhcmlhYmxlTmFtZXMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggMzkyMmEy
YS4uMjZmNzAwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTE3OCw2ICsxNzgsMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBDU1NSdWxlKiBjcmVhdGVTdHlsZVJ1bGUoVmVjdG9yPENTU1NlbGVjdG9y
Kj4qIHNlbGVjdG9ycyk7CiAgICAgICAgIENTU1J1bGUqIGNyZWF0ZUZvbnRGYWNlUnVsZSgpOwog
ICAgICAgICBDU1NSdWxlKiBjcmVhdGVWYXJpYWJsZXNSdWxlKE1lZGlhTGlzdCosIGJvb2wgdmFy
aWFibGVzS2V5d29yZCk7CisgICAgICAgIENTU1J1bGUqIGNyZWF0ZVBhZ2VSdWxlKENTU1NlbGVj
dG9yKiBwYWdlU2VsZWN0b3IpOworICAgICAgICBDU1NSdWxlKiBjcmVhdGVNYXJnaW5BdFJ1bGUo
Q1NTU2VsZWN0b3I6Ok1hcmdpbkJveCYgbWFyZ2luQm94KTsKKyAgICAgICAgdm9pZCBzdGFydERl
Y2xhcmF0aW9uc0Zvck1hcmdpbkJveCgpOworICAgICAgICB2b2lkIGVuZERlY2xhcmF0aW9uc0Zv
ck1hcmdpbkJveCgpOwogCiAgICAgICAgIE1lZGlhUXVlcnlFeHAqIGNyZWF0ZUZsb2F0aW5nTWVk
aWFRdWVyeUV4cChjb25zdCBBdG9taWNTdHJpbmcmLCBDU1NQYXJzZXJWYWx1ZUxpc3QqKTsKICAg
ICAgICAgTWVkaWFRdWVyeUV4cCogc2lua0Zsb2F0aW5nTWVkaWFRdWVyeUV4cChNZWRpYVF1ZXJ5
RXhwKik7CkBAIC0yMDksNiArMjEzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBD
U1NTZWxlY3Rvckxpc3QqIG1fc2VsZWN0b3JMaXN0Rm9yUGFyc2VTZWxlY3RvcjsKICAgICAgICAg
dW5zaWduZWQgbV9udW1QYXJzZWRQcm9wZXJ0aWVzOwogICAgICAgICB1bnNpZ25lZCBtX21heFBh
cnNlZFByb3BlcnRpZXM7CisgICAgICAgIHVuc2lnbmVkIG1fbnVtUGFyc2VkUHJvcGVydGllc0Jl
Zm9yZU1hcmdpbkJveDsKIAogICAgICAgICBpbnQgbV9pblBhcnNlU2hvcnRoYW5kOwogICAgICAg
ICBpbnQgbV9jdXJyZW50U2hvcnRoYW5kOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2Vs
ZWN0b3IuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IDlhZTliOWYuLmZj
MDU2MDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAgLTE1Nyw2ICsxNTcsMTAgQEAgdm9pZCBDU1NTZWxl
Y3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzaW5nbGVCdXR0b24sICgic2luZ2xlLWJ1dHRvbiIpKTsKICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbm9CdXR0b24sICgibm8tYnV0dG9uIikpOwog
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBjb3JuZXJQcmVzZW50LCAoImNv
cm5lci1wcmVzZW50IikpOworICAgIC8vIFBhZ2VkIE1lZGlhIHBzZXVkby1jbGFzc2VzCisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGxlZnRQYWdlLCAoImxlZnQiKSk7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJpZ2h0UGFnZSwgKCJyaWdodCIp
KTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlyc3RQYWdlLCAoImZp
cnN0IikpOwogCiAgICAgYm9vbCBlbGVtZW50ID0gZmFsc2U7IC8vIHBzZXVkby1lbGVtZW50CiAg
ICAgYm9vbCBjb21wYXQgPSBmYWxzZTsgLy8gc2luZ2xlIGNvbG9uIGNvbXBhdGJpbGl0eSBtb2Rl
CkBAIC0zNzksNiArMzgzLDEyIEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBl
KCkgY29uc3QKICAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvVGFyZ2V0OwogICAgIGVsc2Ug
aWYgKG1fdmFsdWUgPT0gdmlzaXRlZCkKICAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvVmlz
aXRlZDsKKyAgICBlbHNlIGlmIChtX3ZhbHVlID09IGxlZnRQYWdlKQorICAgICAgICBtX3BzZXVk
b1R5cGUgPSBQc2V1ZG9MZWZ0UGFnZTsKKyAgICBlbHNlIGlmIChtX3ZhbHVlID09IHJpZ2h0UGFn
ZSkKKyAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvUmlnaHRQYWdlOworICAgIGVsc2UgaWYg
KG1fdmFsdWUgPT0gZmlyc3RQYWdlKQorICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9GaXJz
dFBhZ2U7CiAKICAgICBpZiAobV9tYXRjaCA9PSBQc2V1ZG9DbGFzcyAmJiBlbGVtZW50KSB7CiAg
ICAgICAgIGlmICghY29tcGF0KSAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9y
LmggYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDcwZjI1NzQuLjVhNTRiNTIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuaApAQCAtMTg2LDYgKzE4NiwyOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgICAgICBQc2V1ZG9JbnB1dExpc3RCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9Jbm5lclNw
aW5CdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9PdXRlclNwaW5CdXR0b24sCisgICAgICAgICAg
ICBQc2V1ZG9MZWZ0UGFnZSwKKyAgICAgICAgICAgIFBzZXVkb1JpZ2h0UGFnZSwKKyAgICAgICAg
ICAgIFBzZXVkb0ZpcnN0UGFnZSwKKyAgICAgICAgfTsKKworICAgICAgICBlbnVtIE1hcmdpbkJv
eCB7CisgICAgICAgICAgICBUb3BMZWZ0Q29ybmVyLAorICAgICAgICAgICAgVG9wTGVmdCwKKyAg
ICAgICAgICAgIFRvcENlbnRlciwKKyAgICAgICAgICAgIFRvcFJpZ2h0LAorICAgICAgICAgICAg
VG9wUmlnaHRDb3JuZXIsCisgICAgICAgICAgICBCb3R0b21MZWZ0Q29ybmVyLAorICAgICAgICAg
ICAgQm90dG9tTGVmdCwKKyAgICAgICAgICAgIEJvdHRvbUNlbnRlciwKKyAgICAgICAgICAgIEJv
dHRvbVJpZ2h0LAorICAgICAgICAgICAgQm90dG9tUmlnaHRDb3JuZXIsCisgICAgICAgICAgICBM
ZWZ0VG9wLAorICAgICAgICAgICAgTGVmdE1pZGRsZSwKKyAgICAgICAgICAgIExlZnRCb3R0b20s
CisgICAgICAgICAgICBSaWdodFRvcCwKKyAgICAgICAgICAgIFJpZ2h0TWlkZGxlLAorICAgICAg
ICAgICAgUmlnaHRCb3R0b20sCiAgICAgICAgIH07CiAKICAgICAgICAgUHNldWRvVHlwZSBwc2V1
ZG9UeXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4IGIv
V2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKaW5kZXggMTU2OWVlMi4uNWUzODhjNCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKKysrIGIvV2ViQ29yZS9jc3MvdG9rZW5p
emVyLmZsZXgKQEAgLTUzLDYgKzUzLDIyIEBAIG50aCAgICAgICAgICAgICAoLT9bMC05XSpuW1wr
LV1bMC05XSspfCgtP1swLTldKm4pCiAKICJAaW1wb3J0IiAgICAgICAgICAgICAgIHtCRUdJTiht
ZWRpYXF1ZXJ5KTsgeXlUb2sgPSBJTVBPUlRfU1lNOyByZXR1cm4geXlUb2s7fQogIkBwYWdlIiAg
ICAgICAgICAgICAgICAge3l5VG9rID0gUEFHRV9TWU07IHJldHVybiB5eVRvazt9CisiQHRvcC1s
ZWZ0LWNvcm5lciIgICAgICB7eXlUb2sgPSBUT1BMRUZUQ09STkVSX1NZTTsgcmV0dXJuIHl5VG9r
O30KKyJAdG9wLWxlZnQiICAgICAgICAgICAgIHt5eVRvayA9IFRPUExFRlRfU1lNOyByZXR1cm4g
eXlUb2s7fQorIkB0b3AtY2VudGVyIiAgICAgICAgICAge3l5VG9rID0gVE9QQ0VOVEVSX1NZTTsg
cmV0dXJuIHl5VG9rO30KKyJAdG9wLXJpZ2h0IiAgICAgICAgICAgIHt5eVRvayA9IFRPUFJJR0hU
X1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAdG9wLXJpZ2h0LWNvcm5lciIgICAgIHt5eVRvayA9IFRP
UFJJR0hUQ09STkVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAYm90dG9tLWxlZnQtY29ybmVyIiAg
IHt5eVRvayA9IEJPVFRPTUxFRlRDT1JORVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20t
bGVmdCIgICAgICAgICAge3l5VG9rID0gQk9UVE9NTEVGVF9TWU07IHJldHVybiB5eVRvazt9Cisi
QGJvdHRvbS1jZW50ZXIiICAgICAgICB7eXlUb2sgPSBCT1RUT01DRU5URVJfU1lNOyByZXR1cm4g
eXlUb2s7fQorIkBib3R0b20tcmlnaHQiICAgICAgICAge3l5VG9rID0gQk9UVE9NUklHSFRfU1lN
OyByZXR1cm4geXlUb2s7fQorIkBib3R0b20tcmlnaHQtY29ybmVyIiAge3l5VG9rID0gQk9UVE9N
UklHSFRDT1JORVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBsZWZ0LXRvcCIgICAgICAgICAgICAg
e3l5VG9rID0gTEVGVFRPUF9TWU07IHJldHVybiB5eVRvazt9CisiQGxlZnQtbWlkZGxlIiAgICAg
ICAgICB7eXlUb2sgPSBMRUZUTUlERExFX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAbGVmdC1ib3R0
b20iICAgICAgICAgIHt5eVRvayA9IExFRlRCT1RUT01fU1lNOyByZXR1cm4geXlUb2s7fQorIkBy
aWdodC10b3AiICAgICAgICAgICAge3l5VG9rID0gUklHSFRUT1BfU1lNOyByZXR1cm4geXlUb2s7
fQorIkByaWdodC1taWRkbGUiICAgICAgICAge3l5VG9rID0gUklHSFRNSURETEVfU1lNOyByZXR1
cm4geXlUb2s7fQorIkByaWdodC1ib3R0b20iICAgICAgICAge3l5VG9rID0gUklHSFRCT1RUT01f
U1lNOyByZXR1cm4geXlUb2s7fQogIkBtZWRpYSIgICAgICAgICAgICAgICAge0JFR0lOKG1lZGlh
cXVlcnkpOyB5eVRvayA9IE1FRElBX1NZTTsgcmV0dXJuIHl5VG9rO30KICJAZm9udC1mYWNlIiAg
ICAgICAgICAgIHt5eVRvayA9IEZPTlRfRkFDRV9TWU07IHJldHVybiB5eVRvazt9CiAiQGNoYXJz
ZXQiICAgICAgICAgICAgICB7eXlUb2sgPSBDSEFSU0VUX1NZTTsgcmV0dXJuIHl5VG9rO30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49713</attachid>
            <date>2010-03-01 02:09:46 -0800</date>
            <delta_ts>2010-03-01 02:21:49 -0800</delta_ts>
            <desc>Enhance CSS parser for Paged Media (Iteration 1)</desc>
            <filename>bug-35329-20100301190944.patch</filename>
            <type>text/plain</type>
            <size>16962</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODcxOWI5Li43MjQ0OTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFn
ZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisgICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3Jh
bW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBy
dWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFyZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVu
dHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5n
LXBhZ2UtcnVsZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMi0yOCAgUm9iZXJ0IEhvZ2FuICA8cm9i
ZXJ0QHJvYmVydGhvZ2FuLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFu
bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWYyMmU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdlLXJ1bGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJz
aW5nLXBhZ2UtcnVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5
OTllZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBh
Z2UtcnVsZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICAu
dG9fYmVfc2hvd24geworICAgICAgICAgIGRpc3BsYXk6bm9uZTsKKyAgICAgICAgICBjb2xvcjpn
cmVlbjsKKyAgICAgICAgfQorICAgICAgICAudG9fYmVfaGlkZGVuIHsKKyAgICAgICAgICBkaXNw
bGF5OmJsb2NrOworICAgICAgICAgIGNvbG9yOnJlZDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+
CisgICAgPHN0eWxlPgorICAgICAgICAvKiBwYWdlIHJ1bGUgbXVzdCBub3QgaW50ZXJmZXJlIHdp
dGggbm9uLXBhZ2UgcnVsZXMgKi8KKyAgICAgICAgI3Rlc3QxIHsKKyAgICAgICAgICAgIGRpc3Bs
YXk6bm9uZTsKKyAgICAgICAgfQorICAgICAgICBAcGFnZSB7CisgICAgICAgICAgICAjdGVzdDEg
eworICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBAdG9wLWNlbnRlciB7CisgICAgICAgICAgICAgICAgY29udGVudDoiVGVzdCI7CisgICAg
ICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICN0
ZXN0MiB7CisgICAgICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICAjdGVzdDIgeworICAgICAgICAgICAgZGlzcGxheTpub25lOworICAg
ICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c3R5bGU+CisgICAgICAgIC8qIE1hbGZvcm1lZCBw
YWdlIHJ1bGUgbXVzdCBub3QgaW50ZXJmZXJlIHdpdGggbm9uLXBhZ2UgcnVsZXMgYXMgZmFyIGFz
IGJyYWNlcyBhcmUgcGFpcmVkIHByb3Blcmx5ICovCisgICAgICAgIEBwYWdlIHsKKyAgICAgICAg
ICAgIHA6YmVmb3JlIHsKKyAgICAgICAgICAgICAgICBjb250ZW50OiJtYWxmb3JtZWQKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIEB0b3AtbGVmdAorICAgICAgICB9CisgICAgICAgICN0ZXN0
MyB7CisgICAgICAgICAgICBkaXNwbGF5Om5vbmU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgor
ICAgIDxzdHlsZT4KKyAgICAgICAgLyogU3VjY2Vzc2Z1bGx5IHBhcnNlZCAqLworICAgICAgICAj
bGFzdCB7CisgICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICB9CisgICAgPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9oaWRkZW4iIGlkPSJ0ZXN0
MSI+RkFJTDogVGVzdCAxPC9kaXY+CisgIDxkaXYgY2xhc3M9InRvX2JlX2hpZGRlbiIgaWQ9InRl
c3QyIj5GQUlMOiBUZXN0IDI8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idG9fYmVfaGlkZGVuIiBpZD0i
dGVzdDMiPkZBSUw6IFRlc3QgMzwvZGl2PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9zaG93biIgaWQ9
Imxhc3QiPlBBU1M8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYzhjYzAxLi4yYmEyZmNiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMzIEBACisyMDEwLTAyLTI0ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmhh
bmNlIENTUyBwYXJzZXIgZm9yIFBhZ2VkIE1lZGlhIChJdGVyYXRpb24gMSkKKworICAgICAgICBJ
biB0aGlzIGNoYW5nZSwgdGhlIGdyYW1tYXIgaXMgZXh0ZW5kZWQgYW5kIHNrZWxldGFsIG1ldGhv
ZHMgZm9yIGNyZWF0aW5nIHBhZ2UgcnVsZXMgYW5kIG1hcmdpbiBhdC1ydWxlcyBhcmUgZGVmaW5l
ZC4KKyAgICAgICAgVGhlIGNvbnRlbnRzIG9mIHRoZSBtZXRob2RzIHNob3VsZCBiZSBpbXBsZW1l
bnRlZCBieSBvdGhlciBjaGFuZ2VzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNTMyOQorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3BhcnNpbmct
cGFnZS1ydWxlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6CisgICAgICAgICog
Y3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OkNTU1BhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNsZWFyUHJvcGVydGllcyk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmxleCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVQYWdlUnVsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZU1hcmdpbkF0UnVsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZW5kRGVjbGFyYXRpb25zRm9yTWFyZ2luQm94
KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSk6
CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxl
Y3Rvcjo6KToKKyAgICAgICAgKiBjc3MvdG9rZW5pemVyLmZsZXg6CisKIDIwMTAtMDItMjggIEFs
ZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueSBiL1dl
YkNvcmUvY3NzL0NTU0dyYW1tYXIueQppbmRleCA5ZDVlYjZlLi4zYWI4NjNjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKKysrIGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55
CkBAIC03MCw2ICs3MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAgICAgQ1NTUnVs
ZUxpc3QqIHJ1bGVMaXN0OwogICAgIENTU1NlbGVjdG9yKiBzZWxlY3RvcjsKICAgICBWZWN0b3I8
Q1NTU2VsZWN0b3IqPiogc2VsZWN0b3JMaXN0OworICAgIENTU1NlbGVjdG9yOjpNYXJnaW5Cb3gg
bWFyZ2luQm94OwogICAgIENTU1NlbGVjdG9yOjpSZWxhdGlvbiByZWxhdGlvbjsKICAgICBNZWRp
YUxpc3QqIG1lZGlhTGlzdDsKICAgICBNZWRpYVF1ZXJ5KiBtZWRpYVF1ZXJ5OwpAQCAtOTcsNyAr
OTgsNyBAQCBzdGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2Vy
KQogCiAlfQogCi0lZXhwZWN0IDU0CislZXhwZWN0IDY3CiAKICVub25hc3NvYyBMT1dFU1RfUFJF
QwogCkBAIC0xNDIsNiArMTQzLDIzIEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXls
dmFsLCB2b2lkKiBwYXJzZXIpCiAldG9rZW4gV0VCS0lUX0RFRklORV9TWU0KICV0b2tlbiBWQVJJ
QUJMRVNfRk9SCiAldG9rZW4gV0VCS0lUX1ZBUklBQkxFU19ERUNMU19TWU0KKyV0b2tlbiA8bWFy
Z2luQm94PiBUT1BMRUZUQ09STkVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRPUExFRlRfU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gVE9QQ0VOVEVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRP
UFJJR0hUX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRPUFJJR0hUQ09STkVSX1NZTQorJXRva2Vu
IDxtYXJnaW5Cb3g+IEJPVFRPTUxFRlRDT1JORVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gQk9U
VE9NTEVGVF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBCT1RUT01DRU5URVJfU1lNCisldG9rZW4g
PG1hcmdpbkJveD4gQk9UVE9NUklHSFRfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NUklH
SFRDT1JORVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gTEVGVFRPUF9TWU0KKyV0b2tlbiA8bWFy
Z2luQm94PiBMRUZUTUlERExFX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IExFRlRCT1RUT01fU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gUklHSFRUT1BfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gUklH
SFRNSURETEVfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gUklHSFRCT1RUT01fU1lNCisKICV0b2tl
biBBVEtFWVdPUkQKIAogJXRva2VuIElNUE9SVEFOVF9TWU0KQEAgLTE4OCw2ICsyMDYsNyBAQCBz
dGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2VyKQogJXR5cGUg
PHJ1bGU+IGltcG9ydAogJXR5cGUgPHJ1bGU+IG5hbWVzcGFjZQogJXR5cGUgPHJ1bGU+IHBhZ2UK
KyV0eXBlIDxydWxlPiBtYXJnaW5fYm94CiAldHlwZSA8cnVsZT4gZm9udF9mYWNlCiAldHlwZSA8
cnVsZT4ga2V5ZnJhbWVzCiAldHlwZSA8cnVsZT4gaW52YWxpZF9ydWxlCkBAIC0yMDksNiArMjI4
LDcgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikK
ICV0eXBlIDxzdHJpbmc+IGlkZW50X29yX3N0cmluZwogJXR5cGUgPHN0cmluZz4gbWVkaXVtCiAl
dHlwZSA8c3RyaW5nPiBoZXhjb2xvcgorJXR5cGUgPG1hcmdpbkJveD4gbWFyZ2luX3N5bQogCiAl
dHlwZSA8c3RyaW5nPiBtZWRpYV9mZWF0dXJlCiAldHlwZSA8bWVkaWFMaXN0PiBtZWRpYV9saXN0
CkBAIC0yMzcsNiArMjU3LDcgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWws
IHZvaWQqIHBhcnNlcikKICV0eXBlIDxzZWxlY3Rvcj4gY2xhc3MKICV0eXBlIDxzZWxlY3Rvcj4g
YXR0cmliCiAldHlwZSA8c2VsZWN0b3I+IHBzZXVkbworJXR5cGUgPHNlbGVjdG9yPiBwYWdlX3Nl
bGVjdG9yCiAKICV0eXBlIDxib29sZWFuPiBkZWNsYXJhdGlvbl9saXN0CiAldHlwZSA8Ym9vbGVh
bj4gZGVjbF9saXN0CkBAIC03MjgsMjYgKzc0OSwxMTIgQEAga2V5OgogICAgIH0KICAgICA7CiAK
LS8qCiBwYWdlOgotICAgIFBBR0VfU1lNIG1heWJlX3NwYWNlIElERU5UPyBwc2V1ZG9fcGFnZT8g
bWF5YmVfc3BhY2UKLSAgICAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb24gWyAnOycgbWF5YmVf
c3BhY2UgZGVjbGFyYXRpb24gXSogJ30nIG1heWJlX3NwYWNlCi0gIDsKLQotcHNldWRvX3BhZ2UK
LSAgOiAnOicgSURFTlQKLSAgOwotKi8KLQotcGFnZToKLSAgICBQQUdFX1NZTSBlcnJvciBpbnZh
bGlkX2Jsb2NrIHsKKyAgICBQQUdFX1NZTSBtYXliZV9zcGFjZSBwYWdlX3NlbGVjdG9yIG1heWJl
X3NwYWNlCisgICAgJ3snIG1heWJlX3NwYWNlIGRlY2xhcmF0aW9uc19hbmRfbWFyZ2lucyBjbG9z
aW5nX2JyYWNlIHsKKyAgICAgICAgJCQgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIp
LT5jcmVhdGVQYWdlUnVsZSgkMyk7CisgICAgfQorICAgIHwgUEFHRV9TWU0gZXJyb3IgaW52YWxp
ZF9ibG9jayB7CiAgICAgICAkJCA9IDA7CiAgICAgfQotICB8IFBBR0VfU1lNIGVycm9yICc7JyB7
CisgICAgfCBQQUdFX1NZTSBlcnJvciAnOycgewogICAgICAgJCQgPSAwOwogICAgIH0KICAgICA7
CiAKK3BhZ2Vfc2VsZWN0b3I6CisgICAgSURFTlQgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBz
dGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICAkJCA9IHAtPmNyZWF0ZUZs
b2F0aW5nU2VsZWN0b3IoKTsKKyAgICAgICAgJCQtPm1fdGFnID0gUXVhbGlmaWVkTmFtZShudWxs
QXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVzcGFjZSk7CisgICAgfQorICAgIHwgSURFTlQgcHNl
dWRvIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFy
c2VyKTsKKyAgICAgICAgJCQgPSAkMjsKKyAgICAgICAgaWYgKCQkKQorICAgICAgICAgICAgJCQt
Pm1fdGFnID0gUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVzcGFj
ZSk7CisgICAgfQorICAgIHwgcHNldWRvIHsKKyAgICAgICAgJCQgPSAkMTsKKyAgICB9CisgICAg
fCAvKiBlbXB0eSAqLyB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1Bh
cnNlcio+KHBhcnNlcik7CisgICAgICAgICQkID0gcC0+Y3JlYXRlRmxvYXRpbmdTZWxlY3Rvcigp
OworICAgIH0KKyAgICA7CisKK2RlY2xhcmF0aW9uc19hbmRfbWFyZ2luczoKKyAgICBkZWNsYXJh
dGlvbl9saXN0CisgICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbgorICAgIHwgZGVjbF9mb2xs
b3dlZF9ieV9tYXJnaW4gbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdAorICAgIDsKKworZGVj
bF9mb2xsb3dlZF9ieV9tYXJnaW46CisgICAgbWFyZ2luX2JveAorICAgIHwgZGVjbGFyYXRpb25f
bGlzdCBtYXliZV9zcGFjZSBtYXJnaW5fYm94CisgICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdp
biBtYXliZV9zcGFjZSBtYXJnaW5fYm94CisgICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbiBt
YXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0IG1heWJlX3NwYWNlIG1hcmdpbl9ib3gKKyAgICA7
CisKK21hcmdpbl9ib3g6CisgICAgbWFyZ2luX3N5bSB7CisgICAgICAgIHN0YXRpY19jYXN0PENT
U1BhcnNlcio+KHBhcnNlciktPnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCk7CisgICAg
fSBtYXliZV9zcGFjZSAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCBjbG9zaW5nX2Jy
YWNlIHsKKyAgICAgICAgJCQgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVh
dGVNYXJnaW5BdFJ1bGUoJDEpOworICAgIH0KKyAgICA7CisKK21hcmdpbl9zeW0gOgorICAgIFRP
UExFRlRDT1JORVJfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6VG9wTGVmdENvcm5l
cjsKKyAgICB9CisgICAgfCBUT1BMRUZUX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6
OlRvcExlZnQ7CisgICAgfQorICAgIHwgVE9QQ0VOVEVSX1NZTSB7CisgICAgICAgICQkID0gQ1NT
U2VsZWN0b3I6OlRvcENlbnRlcjsKKyAgICB9CisgICAgfCBUT1BSSUdIVF9TWU0geworICAgICAg
ICAkJCA9IENTU1NlbGVjdG9yOjpUb3BSaWdodDsKKyAgICB9CisgICAgfCBUT1BSSUdIVENPUk5F
Ul9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BSaWdodENvcm5lcjsKKyAgICB9
CisgICAgfCBCT1RUT01MRUZUQ09STkVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6
OkJvdHRvbUxlZnRDb3JuZXI7CisgICAgfQorICAgIHwgQk9UVE9NTEVGVF9TWU0geworICAgICAg
ICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21MZWZ0OworICAgIH0KKyAgICB8IEJPVFRPTUNFTlRF
Ul9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21DZW50ZXI7CisgICAgfQor
ICAgIHwgQk9UVE9NUklHSFRfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Qm90dG9t
UmlnaHQ7CisgICAgfQorICAgIHwgQk9UVE9NUklHSFRDT1JORVJfU1lNIHsKKyAgICAgICAgJCQg
PSBDU1NTZWxlY3Rvcjo6Qm90dG9tUmlnaHRDb3JuZXI7CisgICAgfQorICAgIHwgTEVGVFRPUF9T
WU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpMZWZ0VG9wOworICAgIH0KKyAgICB8IExF
RlRNSURETEVfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6TGVmdE1pZGRsZTsKKyAg
ICB9CisgICAgfCBMRUZUQk9UVE9NX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6Okxl
ZnRCb3R0b207CisgICAgfQorICAgIHwgUklHSFRUT1BfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NT
ZWxlY3Rvcjo6UmlnaHRUb3A7CisgICAgfQorICAgIHwgUklHSFRNSURETEVfU1lNIHsKKyAgICAg
ICAgJCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRNaWRkbGU7CisgICAgfQorICAgIHwgUklHSFRCT1RU
T01fU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRCb3R0b207CisgICAgfQor
ICAgIDsKKwogZm9udF9mYWNlOgogICAgIEZPTlRfRkFDRV9TWU0gbWF5YmVfc3BhY2UKICAgICAn
eycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCAnfScgIG1heWJlX3NwYWNlIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCmluZGV4IGE3NDY4MDEuLjBiM2JjY2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjksNiArNjksNyBA
QAogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENT
U0tleWZyYW1lc1J1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgor
I2luY2x1ZGUgPGNsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KIAogI2lmIEVOQUJMRShE
QVNIQk9BUkRfU1VQUE9SVCkKQEAgLTkxLDYgKzkyLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdURjsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgY29uc3QgdW5zaWduZWQgSU5WQUxJRF9O
VU1fUEFSU0VEX1BST1BFUlRJRVMgPSBVSU5UX01BWDsKKwogc3RhdGljIGJvb2wgZXF1YWwoY29u
c3QgQ1NTUGFyc2VyU3RyaW5nJiBhLCBjb25zdCBjaGFyKiBiKQogewogICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgewpAQCAtMTM1LDYgKzEzOCw3IEBAIENTU1BhcnNlcjo6
Q1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICAgICAsIG1fcGFyc2VkUHJvcGVydGllcyhz
dGF0aWNfY2FzdDxDU1NQcm9wZXJ0eSoqPihmYXN0TWFsbG9jKDMyICogc2l6ZW9mKENTU1Byb3Bl
cnR5KikpKSkKICAgICAsIG1fbnVtUGFyc2VkUHJvcGVydGllcygwKQogICAgICwgbV9tYXhQYXJz
ZWRQcm9wZXJ0aWVzKDMyKQorICAgICwgbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2lu
Qm94KElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTKQogICAgICwgbV9pblBhcnNlU2hvcnRo
YW5kKDApCiAgICAgLCBtX2N1cnJlbnRTaG9ydGhhbmQoMCkKICAgICAsIG1faW1wbGljaXRTaG9y
dGhhbmQoZmFsc2UpCkBAIC0zOTQsNiArMzk4LDcgQEAgdm9pZCBDU1NQYXJzZXI6OmNsZWFyUHJv
cGVydGllcygpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbnVtUGFyc2VkUHJvcGVy
dGllczsgaSsrKQogICAgICAgICBkZWxldGUgbV9wYXJzZWRQcm9wZXJ0aWVzW2ldOwogICAgIG1f
bnVtUGFyc2VkUHJvcGVydGllcyA9IDA7CisgICAgbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3Jl
TWFyZ2luQm94ID0gSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVM7CiAgICAgbV9oYXNGb250
RmFjZU9ubHlWYWx1ZXMgPSBmYWxzZTsKIH0KIApAQCAtNTE1OSw2ICs1MTY0LDM5IEBAIGJvb2wg
Q1NTUGFyc2VyOjphZGRWYXJpYWJsZURlY2xhcmF0aW9uQmxvY2soY29uc3QgQ1NTUGFyc2VyU3Ry
aW5nJikKIAogI2VuZGlmCiAKK0NTU1J1bGUqIENTU1BhcnNlcjo6Y3JlYXRlUGFnZVJ1bGUoQ1NT
U2VsZWN0b3IqIC8qIHBhZ2VTZWxlY3RvciAqLykKK3sKKyAgICAvLyBGSVhNRTogQ3JlYXRlIHBh
Z2UgcnVsZSBoZXJlLCB1c2luZzoKKyAgICAvLyAgICAgICAgLSBwYWdlU2VsZWN0b3ItPnBzZXVk
b1R5cGUoKTogdGhlIHBhZ2UgcHNldWRvLWNsYXNzLCBpLmUuLCA6bGVmdCwgOnJpZ2h0LCBvciA6
Zmlyc3QKKyAgICAvLyAgICAgICAgLSBwYWdlU2VsZWN0b3ItPm1fdGFnOiAgdGhlIHBhZ2UgbmFt
ZQorICAgIC8vICAgICAgICAtIG1fcGFyc2VkUHJvcGVydGllczogdGhlIHBhZ2UgcHJvcGVydGll
cworCisgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CisgICAgcmV0dXJuIDA7IC8vIHVudGlsIHRoaXMg
bWV0aG9kIGlzIGltcGxlbWVudGVkLgorfQorCitDU1NSdWxlKiBDU1NQYXJzZXI6OmNyZWF0ZU1h
cmdpbkF0UnVsZShDU1NTZWxlY3Rvcjo6TWFyZ2luQm94JiAvKiBtYXJnaW5Cb3ggKi8pCit7Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudCBtYXJnaW4gYXQtcnVsZSBoZXJlLCB1c2luZzoKKyAgICAv
LyAgICAgICAgLSBtYXJnaW5Cb3g6IG1hcmdpbiBib3gKKyAgICAvLyAgICAgICAgLSBtX3BhcnNl
ZFByb3BlcnRpZXM6IHByb3BlcnRpZXMgYXQgW21fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1h
cmdpbkJveCwgbV9udW1QYXJzZWRQcm9wZXJ0aWVzKSBhcmUgZm9yIHRoaXMgYXQtcnVsZS4KKwor
ICAgIGVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgpOworICAgIHJldHVybiAwOyAvLyB1bnRp
bCB0aGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZC4KK30KKwordm9pZCBDU1NQYXJzZXI6OnN0YXJ0
RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCkKK3sKKyAgICBtX251bVBhcnNlZFByb3BlcnRpZXNC
ZWZvcmVNYXJnaW5Cb3ggPSBtX251bVBhcnNlZFByb3BlcnRpZXM7Cit9CisKK3ZvaWQgQ1NTUGFy
c2VyOjplbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKQoreworICAgIEFTU0VSVChtX251bVBh
cnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggIT0gSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BF
UlRJRVMpOworICAgIHJvbGxiYWNrTGFzdFByb3BlcnRpZXMobV9udW1QYXJzZWRQcm9wZXJ0aWVz
IC0gbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94KTsKKyAgICBtX251bVBhcnNl
ZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggPSBJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElF
UzsKK30KKwogdm9pZCBDU1NQYXJzZXI6OmNsZWFyVmFyaWFibGVzKCkKIHsKICAgICBtX3Zhcmlh
YmxlTmFtZXMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggMzkyMmEyYS4uMjZmNzAwOCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgK
QEAgLTE3OCw2ICsxNzgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBDU1NSdWxl
KiBjcmVhdGVTdHlsZVJ1bGUoVmVjdG9yPENTU1NlbGVjdG9yKj4qIHNlbGVjdG9ycyk7CiAgICAg
ICAgIENTU1J1bGUqIGNyZWF0ZUZvbnRGYWNlUnVsZSgpOwogICAgICAgICBDU1NSdWxlKiBjcmVh
dGVWYXJpYWJsZXNSdWxlKE1lZGlhTGlzdCosIGJvb2wgdmFyaWFibGVzS2V5d29yZCk7CisgICAg
ICAgIENTU1J1bGUqIGNyZWF0ZVBhZ2VSdWxlKENTU1NlbGVjdG9yKiBwYWdlU2VsZWN0b3IpOwor
ICAgICAgICBDU1NSdWxlKiBjcmVhdGVNYXJnaW5BdFJ1bGUoQ1NTU2VsZWN0b3I6Ok1hcmdpbkJv
eCYgbWFyZ2luQm94KTsKKyAgICAgICAgdm9pZCBzdGFydERlY2xhcmF0aW9uc0Zvck1hcmdpbkJv
eCgpOworICAgICAgICB2b2lkIGVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgpOwogCiAgICAg
ICAgIE1lZGlhUXVlcnlFeHAqIGNyZWF0ZUZsb2F0aW5nTWVkaWFRdWVyeUV4cChjb25zdCBBdG9t
aWNTdHJpbmcmLCBDU1NQYXJzZXJWYWx1ZUxpc3QqKTsKICAgICAgICAgTWVkaWFRdWVyeUV4cCog
c2lua0Zsb2F0aW5nTWVkaWFRdWVyeUV4cChNZWRpYVF1ZXJ5RXhwKik7CkBAIC0yMDksNiArMjEz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBDU1NTZWxlY3Rvckxpc3QqIG1fc2Vs
ZWN0b3JMaXN0Rm9yUGFyc2VTZWxlY3RvcjsKICAgICAgICAgdW5zaWduZWQgbV9udW1QYXJzZWRQ
cm9wZXJ0aWVzOwogICAgICAgICB1bnNpZ25lZCBtX21heFBhcnNlZFByb3BlcnRpZXM7CisgICAg
ICAgIHVuc2lnbmVkIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveDsKIAogICAg
ICAgICBpbnQgbV9pblBhcnNlU2hvcnRoYW5kOwogICAgICAgICBpbnQgbV9jdXJyZW50U2hvcnRo
YW5kOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IDlhZTliOWYuLmZjMDU2MDYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5j
cHAKQEAgLTE1Nyw2ICsxNTcsMTAgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5
cGUoKSBjb25zdAogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzaW5nbGVC
dXR0b24sICgic2luZ2xlLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgbm9CdXR0b24sICgibm8tYnV0dG9uIikpOwogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBjb3JuZXJQcmVzZW50LCAoImNvcm5lci1wcmVzZW50IikpOworICAg
IC8vIFBhZ2VkIE1lZGlhIHBzZXVkby1jbGFzc2VzCisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGxlZnRQYWdlLCAoImxlZnQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHJpZ2h0UGFnZSwgKCJyaWdodCIpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgZmlyc3RQYWdlLCAoImZpcnN0IikpOwogCiAgICAgYm9vbCBl
bGVtZW50ID0gZmFsc2U7IC8vIHBzZXVkby1lbGVtZW50CiAgICAgYm9vbCBjb21wYXQgPSBmYWxz
ZTsgLy8gc2luZ2xlIGNvbG9uIGNvbXBhdGJpbGl0eSBtb2RlCkBAIC0zNzksNiArMzgzLDEyIEBA
IHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QKICAgICAgICAgbV9w
c2V1ZG9UeXBlID0gUHNldWRvVGFyZ2V0OwogICAgIGVsc2UgaWYgKG1fdmFsdWUgPT0gdmlzaXRl
ZCkKICAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvVmlzaXRlZDsKKyAgICBlbHNlIGlmICht
X3ZhbHVlID09IGxlZnRQYWdlKQorICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9MZWZ0UGFn
ZTsKKyAgICBlbHNlIGlmIChtX3ZhbHVlID09IHJpZ2h0UGFnZSkKKyAgICAgICAgbV9wc2V1ZG9U
eXBlID0gUHNldWRvUmlnaHRQYWdlOworICAgIGVsc2UgaWYgKG1fdmFsdWUgPT0gZmlyc3RQYWdl
KQorICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9GaXJzdFBhZ2U7CiAKICAgICBpZiAobV9t
YXRjaCA9PSBQc2V1ZG9DbGFzcyAmJiBlbGVtZW50KSB7CiAgICAgICAgIGlmICghY29tcGF0KSAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9XZWJDb3JlL2Nzcy9DU1NT
ZWxlY3Rvci5oCmluZGV4IDcwZjI1NzQuLjVhNTRiNTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAtMTg2LDYg
KzE4NiwyOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBQc2V1ZG9JbnB1dExp
c3RCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9Jbm5lclNwaW5CdXR0b24sCiAgICAgICAgICAg
ICBQc2V1ZG9PdXRlclNwaW5CdXR0b24sCisgICAgICAgICAgICBQc2V1ZG9MZWZ0UGFnZSwKKyAg
ICAgICAgICAgIFBzZXVkb1JpZ2h0UGFnZSwKKyAgICAgICAgICAgIFBzZXVkb0ZpcnN0UGFnZSwK
KyAgICAgICAgfTsKKworICAgICAgICBlbnVtIE1hcmdpbkJveCB7CisgICAgICAgICAgICBUb3BM
ZWZ0Q29ybmVyLAorICAgICAgICAgICAgVG9wTGVmdCwKKyAgICAgICAgICAgIFRvcENlbnRlciwK
KyAgICAgICAgICAgIFRvcFJpZ2h0LAorICAgICAgICAgICAgVG9wUmlnaHRDb3JuZXIsCisgICAg
ICAgICAgICBCb3R0b21MZWZ0Q29ybmVyLAorICAgICAgICAgICAgQm90dG9tTGVmdCwKKyAgICAg
ICAgICAgIEJvdHRvbUNlbnRlciwKKyAgICAgICAgICAgIEJvdHRvbVJpZ2h0LAorICAgICAgICAg
ICAgQm90dG9tUmlnaHRDb3JuZXIsCisgICAgICAgICAgICBMZWZ0VG9wLAorICAgICAgICAgICAg
TGVmdE1pZGRsZSwKKyAgICAgICAgICAgIExlZnRCb3R0b20sCisgICAgICAgICAgICBSaWdodFRv
cCwKKyAgICAgICAgICAgIFJpZ2h0TWlkZGxlLAorICAgICAgICAgICAgUmlnaHRCb3R0b20sCiAg
ICAgICAgIH07CiAKICAgICAgICAgUHNldWRvVHlwZSBwc2V1ZG9UeXBlKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4IGIvV2ViQ29yZS9jc3MvdG9rZW5pemVy
LmZsZXgKaW5kZXggMTU2OWVlMi4uNWUzODhjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvdG9r
ZW5pemVyLmZsZXgKKysrIGIvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKQEAgLTUzLDYgKzUz
LDIyIEBAIG50aCAgICAgICAgICAgICAoLT9bMC05XSpuW1wrLV1bMC05XSspfCgtP1swLTldKm4p
CiAKICJAaW1wb3J0IiAgICAgICAgICAgICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBJ
TVBPUlRfU1lNOyByZXR1cm4geXlUb2s7fQogIkBwYWdlIiAgICAgICAgICAgICAgICAge3l5VG9r
ID0gUEFHRV9TWU07IHJldHVybiB5eVRvazt9CisiQHRvcC1sZWZ0LWNvcm5lciIgICAgICB7eXlU
b2sgPSBUT1BMRUZUQ09STkVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAdG9wLWxlZnQiICAgICAg
ICAgICAgIHt5eVRvayA9IFRPUExFRlRfU1lNOyByZXR1cm4geXlUb2s7fQorIkB0b3AtY2VudGVy
IiAgICAgICAgICAge3l5VG9rID0gVE9QQ0VOVEVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAdG9w
LXJpZ2h0IiAgICAgICAgICAgIHt5eVRvayA9IFRPUFJJR0hUX1NZTTsgcmV0dXJuIHl5VG9rO30K
KyJAdG9wLXJpZ2h0LWNvcm5lciIgICAgIHt5eVRvayA9IFRPUFJJR0hUQ09STkVSX1NZTTsgcmV0
dXJuIHl5VG9rO30KKyJAYm90dG9tLWxlZnQtY29ybmVyIiAgIHt5eVRvayA9IEJPVFRPTUxFRlRD
T1JORVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20tbGVmdCIgICAgICAgICAge3l5VG9r
ID0gQk9UVE9NTEVGVF9TWU07IHJldHVybiB5eVRvazt9CisiQGJvdHRvbS1jZW50ZXIiICAgICAg
ICB7eXlUb2sgPSBCT1RUT01DRU5URVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20tcmln
aHQiICAgICAgICAge3l5VG9rID0gQk9UVE9NUklHSFRfU1lNOyByZXR1cm4geXlUb2s7fQorIkBi
b3R0b20tcmlnaHQtY29ybmVyIiAge3l5VG9rID0gQk9UVE9NUklHSFRDT1JORVJfU1lNOyByZXR1
cm4geXlUb2s7fQorIkBsZWZ0LXRvcCIgICAgICAgICAgICAge3l5VG9rID0gTEVGVFRPUF9TWU07
IHJldHVybiB5eVRvazt9CisiQGxlZnQtbWlkZGxlIiAgICAgICAgICB7eXlUb2sgPSBMRUZUTUlE
RExFX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAbGVmdC1ib3R0b20iICAgICAgICAgIHt5eVRvayA9
IExFRlRCT1RUT01fU1lNOyByZXR1cm4geXlUb2s7fQorIkByaWdodC10b3AiICAgICAgICAgICAg
e3l5VG9rID0gUklHSFRUT1BfU1lNOyByZXR1cm4geXlUb2s7fQorIkByaWdodC1taWRkbGUiICAg
ICAgICAge3l5VG9rID0gUklHSFRNSURETEVfU1lNOyByZXR1cm4geXlUb2s7fQorIkByaWdodC1i
b3R0b20iICAgICAgICAge3l5VG9rID0gUklHSFRCT1RUT01fU1lNOyByZXR1cm4geXlUb2s7fQog
IkBtZWRpYSIgICAgICAgICAgICAgICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRvayA9IE1FRElB
X1NZTTsgcmV0dXJuIHl5VG9rO30KICJAZm9udC1mYWNlIiAgICAgICAgICAgIHt5eVRvayA9IEZP
TlRfRkFDRV9TWU07IHJldHVybiB5eVRvazt9CiAiQGNoYXJzZXQiICAgICAgICAgICAgICB7eXlU
b2sgPSBDSEFSU0VUX1NZTTsgcmV0dXJuIHl5VG9rO30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49716</attachid>
            <date>2010-03-01 02:21:55 -0800</date>
            <delta_ts>2010-03-01 22:51:03 -0800</delta_ts>
            <desc>Enhance CSS parser for Paged Media (Iteration 1)</desc>
            <filename>bug-35329-20100301192152.patch</filename>
            <type>text/plain</type>
            <size>16963</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODcxOWI5Li43MjQ0OTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFn
ZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisgICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3Jh
bW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBy
dWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFyZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVu
dHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5n
LXBhZ2UtcnVsZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMi0yOCAgUm9iZXJ0IEhvZ2FuICA8cm9i
ZXJ0QHJvYmVydGhvZ2FuLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFu
bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWYyMmU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdlLXJ1bGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJz
aW5nLXBhZ2UtcnVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5
OTllZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBh
Z2UtcnVsZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICAu
dG9fYmVfc2hvd24geworICAgICAgICAgIGRpc3BsYXk6bm9uZTsKKyAgICAgICAgICBjb2xvcjpn
cmVlbjsKKyAgICAgICAgfQorICAgICAgICAudG9fYmVfaGlkZGVuIHsKKyAgICAgICAgICBkaXNw
bGF5OmJsb2NrOworICAgICAgICAgIGNvbG9yOnJlZDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+
CisgICAgPHN0eWxlPgorICAgICAgICAvKiBwYWdlIHJ1bGUgbXVzdCBub3QgaW50ZXJmZXJlIHdp
dGggbm9uLXBhZ2UgcnVsZXMgKi8KKyAgICAgICAgI3Rlc3QxIHsKKyAgICAgICAgICAgIGRpc3Bs
YXk6bm9uZTsKKyAgICAgICAgfQorICAgICAgICBAcGFnZSB7CisgICAgICAgICAgICAjdGVzdDEg
eworICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBAdG9wLWNlbnRlciB7CisgICAgICAgICAgICAgICAgY29udGVudDoiVGVzdCI7CisgICAg
ICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICN0
ZXN0MiB7CisgICAgICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICAjdGVzdDIgeworICAgICAgICAgICAgZGlzcGxheTpub25lOworICAg
ICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c3R5bGU+CisgICAgICAgIC8qIE1hbGZvcm1lZCBw
YWdlIHJ1bGUgbXVzdCBub3QgaW50ZXJmZXJlIHdpdGggbm9uLXBhZ2UgcnVsZXMgYXMgZmFyIGFz
IGJyYWNlcyBhcmUgcGFpcmVkIHByb3Blcmx5ICovCisgICAgICAgIEBwYWdlIHsKKyAgICAgICAg
ICAgIHA6YmVmb3JlIHsKKyAgICAgICAgICAgICAgICBjb250ZW50OiJtYWxmb3JtZWQKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIEB0b3AtbGVmdAorICAgICAgICB9CisgICAgICAgICN0ZXN0
MyB7CisgICAgICAgICAgICBkaXNwbGF5Om5vbmU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgor
ICAgIDxzdHlsZT4KKyAgICAgICAgLyogU3VjY2Vzc2Z1bGx5IHBhcnNlZCAqLworICAgICAgICAj
bGFzdCB7CisgICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICB9CisgICAgPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9oaWRkZW4iIGlkPSJ0ZXN0
MSI+RkFJTDogVGVzdCAxPC9kaXY+CisgIDxkaXYgY2xhc3M9InRvX2JlX2hpZGRlbiIgaWQ9InRl
c3QyIj5GQUlMOiBUZXN0IDI8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idG9fYmVfaGlkZGVuIiBpZD0i
dGVzdDMiPkZBSUw6IFRlc3QgMzwvZGl2PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9zaG93biIgaWQ9
Imxhc3QiPlBBU1M8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYzhjYzAxLi4yYmEyZmNiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMzIEBACisyMDEwLTAyLTI0ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmhh
bmNlIENTUyBwYXJzZXIgZm9yIFBhZ2VkIE1lZGlhIChJdGVyYXRpb24gMSkKKworICAgICAgICBJ
biB0aGlzIGNoYW5nZSwgdGhlIGdyYW1tYXIgaXMgZXh0ZW5kZWQgYW5kIHNrZWxldGFsIG1ldGhv
ZHMgZm9yIGNyZWF0aW5nIHBhZ2UgcnVsZXMgYW5kIG1hcmdpbiBhdC1ydWxlcyBhcmUgZGVmaW5l
ZC4KKyAgICAgICAgVGhlIGNvbnRlbnRzIG9mIHRoZSBtZXRob2RzIHNob3VsZCBiZSBpbXBsZW1l
bnRlZCBieSBvdGhlciBjaGFuZ2VzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNTMyOQorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3BhcnNpbmct
cGFnZS1ydWxlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6CisgICAgICAgICog
Y3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OkNTU1BhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNsZWFyUHJvcGVydGllcyk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmxleCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVQYWdlUnVsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZU1hcmdpbkF0UnVsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZW5kRGVjbGFyYXRpb25zRm9yTWFyZ2luQm94
KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSk6
CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxl
Y3Rvcjo6KToKKyAgICAgICAgKiBjc3MvdG9rZW5pemVyLmZsZXg6CisKIDIwMTAtMDItMjggIEFs
ZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueSBiL1dl
YkNvcmUvY3NzL0NTU0dyYW1tYXIueQppbmRleCA5ZDVlYjZlLi4zYWI4NjNjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKKysrIGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55
CkBAIC03MCw2ICs3MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAgICAgQ1NTUnVs
ZUxpc3QqIHJ1bGVMaXN0OwogICAgIENTU1NlbGVjdG9yKiBzZWxlY3RvcjsKICAgICBWZWN0b3I8
Q1NTU2VsZWN0b3IqPiogc2VsZWN0b3JMaXN0OworICAgIENTU1NlbGVjdG9yOjpNYXJnaW5Cb3gg
bWFyZ2luQm94OwogICAgIENTU1NlbGVjdG9yOjpSZWxhdGlvbiByZWxhdGlvbjsKICAgICBNZWRp
YUxpc3QqIG1lZGlhTGlzdDsKICAgICBNZWRpYVF1ZXJ5KiBtZWRpYVF1ZXJ5OwpAQCAtOTcsNyAr
OTgsNyBAQCBzdGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2Vy
KQogCiAlfQogCi0lZXhwZWN0IDU0CislZXhwZWN0IDY3CiAKICVub25hc3NvYyBMT1dFU1RfUFJF
QwogCkBAIC0xNDIsNiArMTQzLDIzIEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXls
dmFsLCB2b2lkKiBwYXJzZXIpCiAldG9rZW4gV0VCS0lUX0RFRklORV9TWU0KICV0b2tlbiBWQVJJ
QUJMRVNfRk9SCiAldG9rZW4gV0VCS0lUX1ZBUklBQkxFU19ERUNMU19TWU0KKyV0b2tlbiA8bWFy
Z2luQm94PiBUT1BMRUZUQ09STkVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRPUExFRlRfU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gVE9QQ0VOVEVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRP
UFJJR0hUX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRPUFJJR0hUQ09STkVSX1NZTQorJXRva2Vu
IDxtYXJnaW5Cb3g+IEJPVFRPTUxFRlRDT1JORVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gQk9U
VE9NTEVGVF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBCT1RUT01DRU5URVJfU1lNCisldG9rZW4g
PG1hcmdpbkJveD4gQk9UVE9NUklHSFRfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NUklH
SFRDT1JORVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gTEVGVFRPUF9TWU0KKyV0b2tlbiA8bWFy
Z2luQm94PiBMRUZUTUlERExFX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IExFRlRCT1RUT01fU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gUklHSFRUT1BfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gUklH
SFRNSURETEVfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gUklHSFRCT1RUT01fU1lNCisKICV0b2tl
biBBVEtFWVdPUkQKIAogJXRva2VuIElNUE9SVEFOVF9TWU0KQEAgLTE4OCw2ICsyMDYsNyBAQCBz
dGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2VyKQogJXR5cGUg
PHJ1bGU+IGltcG9ydAogJXR5cGUgPHJ1bGU+IG5hbWVzcGFjZQogJXR5cGUgPHJ1bGU+IHBhZ2UK
KyV0eXBlIDxydWxlPiBtYXJnaW5fYm94CiAldHlwZSA8cnVsZT4gZm9udF9mYWNlCiAldHlwZSA8
cnVsZT4ga2V5ZnJhbWVzCiAldHlwZSA8cnVsZT4gaW52YWxpZF9ydWxlCkBAIC0yMDksNiArMjI4
LDcgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikK
ICV0eXBlIDxzdHJpbmc+IGlkZW50X29yX3N0cmluZwogJXR5cGUgPHN0cmluZz4gbWVkaXVtCiAl
dHlwZSA8c3RyaW5nPiBoZXhjb2xvcgorJXR5cGUgPG1hcmdpbkJveD4gbWFyZ2luX3N5bQogCiAl
dHlwZSA8c3RyaW5nPiBtZWRpYV9mZWF0dXJlCiAldHlwZSA8bWVkaWFMaXN0PiBtZWRpYV9saXN0
CkBAIC0yMzcsNiArMjU3LDcgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWws
IHZvaWQqIHBhcnNlcikKICV0eXBlIDxzZWxlY3Rvcj4gY2xhc3MKICV0eXBlIDxzZWxlY3Rvcj4g
YXR0cmliCiAldHlwZSA8c2VsZWN0b3I+IHBzZXVkbworJXR5cGUgPHNlbGVjdG9yPiBwYWdlX3Nl
bGVjdG9yCiAKICV0eXBlIDxib29sZWFuPiBkZWNsYXJhdGlvbl9saXN0CiAldHlwZSA8Ym9vbGVh
bj4gZGVjbF9saXN0CkBAIC03MjgsMjYgKzc0OSwxMTIgQEAga2V5OgogICAgIH0KICAgICA7CiAK
LS8qCiBwYWdlOgotICAgIFBBR0VfU1lNIG1heWJlX3NwYWNlIElERU5UPyBwc2V1ZG9fcGFnZT8g
bWF5YmVfc3BhY2UKLSAgICAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb24gWyAnOycgbWF5YmVf
c3BhY2UgZGVjbGFyYXRpb24gXSogJ30nIG1heWJlX3NwYWNlCi0gIDsKLQotcHNldWRvX3BhZ2UK
LSAgOiAnOicgSURFTlQKLSAgOwotKi8KLQotcGFnZToKLSAgICBQQUdFX1NZTSBlcnJvciBpbnZh
bGlkX2Jsb2NrIHsKKyAgICBQQUdFX1NZTSBtYXliZV9zcGFjZSBwYWdlX3NlbGVjdG9yIG1heWJl
X3NwYWNlCisgICAgJ3snIG1heWJlX3NwYWNlIGRlY2xhcmF0aW9uc19hbmRfbWFyZ2lucyBjbG9z
aW5nX2JyYWNlIHsKKyAgICAgICAgJCQgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIp
LT5jcmVhdGVQYWdlUnVsZSgkMyk7CisgICAgfQorICAgIHwgUEFHRV9TWU0gZXJyb3IgaW52YWxp
ZF9ibG9jayB7CiAgICAgICAkJCA9IDA7CiAgICAgfQotICB8IFBBR0VfU1lNIGVycm9yICc7JyB7
CisgICAgfCBQQUdFX1NZTSBlcnJvciAnOycgewogICAgICAgJCQgPSAwOwogICAgIH0KICAgICA7
CiAKK3BhZ2Vfc2VsZWN0b3I6CisgICAgSURFTlQgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBz
dGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICAkJCA9IHAtPmNyZWF0ZUZs
b2F0aW5nU2VsZWN0b3IoKTsKKyAgICAgICAgJCQtPm1fdGFnID0gUXVhbGlmaWVkTmFtZShudWxs
QXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVzcGFjZSk7CisgICAgfQorICAgIHwgSURFTlQgcHNl
dWRvIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFy
c2VyKTsKKyAgICAgICAgJCQgPSAkMjsKKyAgICAgICAgaWYgKCQkKQorICAgICAgICAgICAgJCQt
Pm1fdGFnID0gUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVzcGFj
ZSk7CisgICAgfQorICAgIHwgcHNldWRvIHsKKyAgICAgICAgJCQgPSAkMTsKKyAgICB9CisgICAg
fCAvKiBlbXB0eSAqLyB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1Bh
cnNlcio+KHBhcnNlcik7CisgICAgICAgICQkID0gcC0+Y3JlYXRlRmxvYXRpbmdTZWxlY3Rvcigp
OworICAgIH0KKyAgICA7CisKK2RlY2xhcmF0aW9uc19hbmRfbWFyZ2luczoKKyAgICBkZWNsYXJh
dGlvbl9saXN0CisgICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbgorICAgIHwgZGVjbF9mb2xs
b3dlZF9ieV9tYXJnaW4gbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdAorICAgIDsKKworZGVj
bF9mb2xsb3dlZF9ieV9tYXJnaW46CisgICAgbWFyZ2luX2JveAorICAgIHwgZGVjbGFyYXRpb25f
bGlzdCBtYXliZV9zcGFjZSBtYXJnaW5fYm94CisgICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdp
biBtYXliZV9zcGFjZSBtYXJnaW5fYm94CisgICAgfCBkZWNsX2ZvbGxvd2VkX2J5X21hcmdpbiBt
YXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0IG1heWJlX3NwYWNlIG1hcmdpbl9ib3gKKyAgICA7
CisKK21hcmdpbl9ib3g6CisgICAgbWFyZ2luX3N5bSB7CisgICAgICAgIHN0YXRpY19jYXN0PENT
U1BhcnNlcio+KHBhcnNlciktPnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCk7CisgICAg
fSBtYXliZV9zcGFjZSAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCBjbG9zaW5nX2Jy
YWNlIHsKKyAgICAgICAgJCQgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVh
dGVNYXJnaW5BdFJ1bGUoJDEpOworICAgIH0KKyAgICA7CisKK21hcmdpbl9zeW0gOgorICAgIFRP
UExFRlRDT1JORVJfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6VG9wTGVmdENvcm5l
cjsKKyAgICB9CisgICAgfCBUT1BMRUZUX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6
OlRvcExlZnQ7CisgICAgfQorICAgIHwgVE9QQ0VOVEVSX1NZTSB7CisgICAgICAgICQkID0gQ1NT
U2VsZWN0b3I6OlRvcENlbnRlcjsKKyAgICB9CisgICAgfCBUT1BSSUdIVF9TWU0geworICAgICAg
ICAkJCA9IENTU1NlbGVjdG9yOjpUb3BSaWdodDsKKyAgICB9CisgICAgfCBUT1BSSUdIVENPUk5F
Ul9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BSaWdodENvcm5lcjsKKyAgICB9
CisgICAgfCBCT1RUT01MRUZUQ09STkVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6
OkJvdHRvbUxlZnRDb3JuZXI7CisgICAgfQorICAgIHwgQk9UVE9NTEVGVF9TWU0geworICAgICAg
ICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21MZWZ0OworICAgIH0KKyAgICB8IEJPVFRPTUNFTlRF
Ul9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21DZW50ZXI7CisgICAgfQor
ICAgIHwgQk9UVE9NUklHSFRfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Qm90dG9t
UmlnaHQ7CisgICAgfQorICAgIHwgQk9UVE9NUklHSFRDT1JORVJfU1lNIHsKKyAgICAgICAgJCQg
PSBDU1NTZWxlY3Rvcjo6Qm90dG9tUmlnaHRDb3JuZXI7CisgICAgfQorICAgIHwgTEVGVFRPUF9T
WU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpMZWZ0VG9wOworICAgIH0KKyAgICB8IExF
RlRNSURETEVfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6TGVmdE1pZGRsZTsKKyAg
ICB9CisgICAgfCBMRUZUQk9UVE9NX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6Okxl
ZnRCb3R0b207CisgICAgfQorICAgIHwgUklHSFRUT1BfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NT
ZWxlY3Rvcjo6UmlnaHRUb3A7CisgICAgfQorICAgIHwgUklHSFRNSURETEVfU1lNIHsKKyAgICAg
ICAgJCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRNaWRkbGU7CisgICAgfQorICAgIHwgUklHSFRCT1RU
T01fU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRCb3R0b207CisgICAgfQor
ICAgIDsKKwogZm9udF9mYWNlOgogICAgIEZPTlRfRkFDRV9TWU0gbWF5YmVfc3BhY2UKICAgICAn
eycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCAnfScgIG1heWJlX3NwYWNlIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCmluZGV4IGE3NDY4MDEuLmVmMGRmMTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjksNiArNjksNyBA
QAogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENT
U0tleWZyYW1lc1J1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgor
I2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CiAKICNpZiBFTkFCTEUo
REFTSEJPQVJEX1NVUFBPUlQpCkBAIC05MSw2ICs5Miw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGNvbnN0IHVuc2lnbmVkIElOVkFMSURf
TlVNX1BBUlNFRF9QUk9QRVJUSUVTID0gVUlOVF9NQVg7CisKIHN0YXRpYyBib29sIGVxdWFsKGNv
bnN0IENTU1BhcnNlclN0cmluZyYgYSwgY29uc3QgY2hhciogYikKIHsKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKQEAgLTEzNSw2ICsxMzgsNyBAQCBDU1NQYXJzZXI6
OkNTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcpCiAgICAgLCBtX3BhcnNlZFByb3BlcnRpZXMo
c3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHkqKj4oZmFzdE1hbGxvYygzMiAqIHNpemVvZihDU1NQcm9w
ZXJ0eSopKSkpCiAgICAgLCBtX251bVBhcnNlZFByb3BlcnRpZXMoMCkKICAgICAsIG1fbWF4UGFy
c2VkUHJvcGVydGllcygzMikKKyAgICAsIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdp
bkJveChJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElFUykKICAgICAsIG1faW5QYXJzZVNob3J0
aGFuZCgwKQogICAgICwgbV9jdXJyZW50U2hvcnRoYW5kKDApCiAgICAgLCBtX2ltcGxpY2l0U2hv
cnRoYW5kKGZhbHNlKQpAQCAtMzk0LDYgKzM5OCw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpjbGVhclBy
b3BlcnRpZXMoKQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX251bVBhcnNlZFByb3Bl
cnRpZXM7IGkrKykKICAgICAgICAgZGVsZXRlIG1fcGFyc2VkUHJvcGVydGllc1tpXTsKICAgICBt
X251bVBhcnNlZFByb3BlcnRpZXMgPSAwOworICAgIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9y
ZU1hcmdpbkJveCA9IElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTOwogICAgIG1faGFzRm9u
dEZhY2VPbmx5VmFsdWVzID0gZmFsc2U7CiB9CiAKQEAgLTUxNTksNiArNTE2NCwzOSBAQCBib29s
IENTU1BhcnNlcjo6YWRkVmFyaWFibGVEZWNsYXJhdGlvbkJsb2NrKGNvbnN0IENTU1BhcnNlclN0
cmluZyYpCiAKICNlbmRpZgogCitDU1NSdWxlKiBDU1NQYXJzZXI6OmNyZWF0ZVBhZ2VSdWxlKENT
U1NlbGVjdG9yKiAvKiBwYWdlU2VsZWN0b3IgKi8pCit7CisgICAgLy8gRklYTUU6IENyZWF0ZSBw
YWdlIHJ1bGUgaGVyZSwgdXNpbmc6CisgICAgLy8gICAgICAgIC0gcGFnZVNlbGVjdG9yLT5wc2V1
ZG9UeXBlKCk6IHRoZSBwYWdlIHBzZXVkby1jbGFzcywgaS5lLiwgOmxlZnQsIDpyaWdodCwgb3Ig
OmZpcnN0CisgICAgLy8gICAgICAgIC0gcGFnZVNlbGVjdG9yLT5tX3RhZzogIHRoZSBwYWdlIG5h
bWUKKyAgICAvLyAgICAgICAgLSBtX3BhcnNlZFByb3BlcnRpZXM6IHRoZSBwYWdlIHByb3BlcnRp
ZXMKKworICAgIGNsZWFyUHJvcGVydGllcygpOworICAgIHJldHVybiAwOyAvLyB1bnRpbCB0aGlz
IG1ldGhvZCBpcyBpbXBsZW1lbnRlZC4KK30KKworQ1NTUnVsZSogQ1NTUGFyc2VyOjpjcmVhdGVN
YXJnaW5BdFJ1bGUoQ1NTU2VsZWN0b3I6Ok1hcmdpbkJveCYgLyogbWFyZ2luQm94ICovKQorewor
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgbWFyZ2luIGF0LXJ1bGUgaGVyZSwgdXNpbmc6CisgICAg
Ly8gICAgICAgIC0gbWFyZ2luQm94OiBtYXJnaW4gYm94CisgICAgLy8gICAgICAgIC0gbV9wYXJz
ZWRQcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzIGF0IFttX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVN
YXJnaW5Cb3gsIG1fbnVtUGFyc2VkUHJvcGVydGllcykgYXJlIGZvciB0aGlzIGF0LXJ1bGUuCisK
KyAgICBlbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKTsKKyAgICByZXR1cm4gMDsgLy8gdW50
aWwgdGhpcyBtZXRob2QgaXMgaW1wbGVtZW50ZWQuCit9CisKK3ZvaWQgQ1NTUGFyc2VyOjpzdGFy
dERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgpCit7CisgICAgbV9udW1QYXJzZWRQcm9wZXJ0aWVz
QmVmb3JlTWFyZ2luQm94ID0gbV9udW1QYXJzZWRQcm9wZXJ0aWVzOworfQorCit2b2lkIENTU1Bh
cnNlcjo6ZW5kRGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCkKK3sKKyAgICBBU1NFUlQobV9udW1Q
YXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94ICE9IElOVkFMSURfTlVNX1BBUlNFRF9QUk9Q
RVJUSUVTKTsKKyAgICByb2xsYmFja0xhc3RQcm9wZXJ0aWVzKG1fbnVtUGFyc2VkUHJvcGVydGll
cyAtIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveCk7CisgICAgbV9udW1QYXJz
ZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94ID0gSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJ
RVM7Cit9CisKIHZvaWQgQ1NTUGFyc2VyOjpjbGVhclZhcmlhYmxlcygpCiB7CiAgICAgbV92YXJp
YWJsZU5hbWVzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBi
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDM5MjJhMmEuLjI2ZjcwMDggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5o
CkBAIC0xNzgsNiArMTc4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQ1NTUnVs
ZSogY3JlYXRlU3R5bGVSdWxlKFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxlY3RvcnMpOwogICAg
ICAgICBDU1NSdWxlKiBjcmVhdGVGb250RmFjZVJ1bGUoKTsKICAgICAgICAgQ1NTUnVsZSogY3Jl
YXRlVmFyaWFibGVzUnVsZShNZWRpYUxpc3QqLCBib29sIHZhcmlhYmxlc0tleXdvcmQpOworICAg
ICAgICBDU1NSdWxlKiBjcmVhdGVQYWdlUnVsZShDU1NTZWxlY3RvciogcGFnZVNlbGVjdG9yKTsK
KyAgICAgICAgQ1NTUnVsZSogY3JlYXRlTWFyZ2luQXRSdWxlKENTU1NlbGVjdG9yOjpNYXJnaW5C
b3gmIG1hcmdpbkJveCk7CisgICAgICAgIHZvaWQgc3RhcnREZWNsYXJhdGlvbnNGb3JNYXJnaW5C
b3goKTsKKyAgICAgICAgdm9pZCBlbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKTsKIAogICAg
ICAgICBNZWRpYVF1ZXJ5RXhwKiBjcmVhdGVGbG9hdGluZ01lZGlhUXVlcnlFeHAoY29uc3QgQXRv
bWljU3RyaW5nJiwgQ1NTUGFyc2VyVmFsdWVMaXN0Kik7CiAgICAgICAgIE1lZGlhUXVlcnlFeHAq
IHNpbmtGbG9hdGluZ01lZGlhUXVlcnlFeHAoTWVkaWFRdWVyeUV4cCopOwpAQCAtMjA5LDYgKzIx
Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQ1NTU2VsZWN0b3JMaXN0KiBtX3Nl
bGVjdG9yTGlzdEZvclBhcnNlU2VsZWN0b3I7CiAgICAgICAgIHVuc2lnbmVkIG1fbnVtUGFyc2Vk
UHJvcGVydGllczsKICAgICAgICAgdW5zaWduZWQgbV9tYXhQYXJzZWRQcm9wZXJ0aWVzOworICAg
ICAgICB1bnNpZ25lZCBtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3g7CiAKICAg
ICAgICAgaW50IG1faW5QYXJzZVNob3J0aGFuZDsKICAgICAgICAgaW50IG1fY3VycmVudFNob3J0
aGFuZDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCA5YWU5YjlmLi5mYzA1NjA2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
Y3BwCkBAIC0xNTcsNiArMTU3LDEwIEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9U
eXBlKCkgY29uc3QKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2luZ2xl
QnV0dG9uLCAoInNpbmdsZS1idXR0b24iKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG5vQnV0dG9uLCAoIm5vLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgY29ybmVyUHJlc2VudCwgKCJjb3JuZXItcHJlc2VudCIpKTsKKyAg
ICAvLyBQYWdlZCBNZWRpYSBwc2V1ZG8tY2xhc3NlcworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBsZWZ0UGFnZSwgKCJsZWZ0IikpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCByaWdodFBhZ2UsICgicmlnaHQiKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGZpcnN0UGFnZSwgKCJmaXJzdCIpKTsKIAogICAgIGJvb2wg
ZWxlbWVudCA9IGZhbHNlOyAvLyBwc2V1ZG8tZWxlbWVudAogICAgIGJvb2wgY29tcGF0ID0gZmFs
c2U7IC8vIHNpbmdsZSBjb2xvbiBjb21wYXRiaWxpdHkgbW9kZQpAQCAtMzc5LDYgKzM4MywxMiBA
QCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAgICAgIG1f
cHNldWRvVHlwZSA9IFBzZXVkb1RhcmdldDsKICAgICBlbHNlIGlmIChtX3ZhbHVlID09IHZpc2l0
ZWQpCiAgICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb1Zpc2l0ZWQ7CisgICAgZWxzZSBpZiAo
bV92YWx1ZSA9PSBsZWZ0UGFnZSkKKyAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvTGVmdFBh
Z2U7CisgICAgZWxzZSBpZiAobV92YWx1ZSA9PSByaWdodFBhZ2UpCisgICAgICAgIG1fcHNldWRv
VHlwZSA9IFBzZXVkb1JpZ2h0UGFnZTsKKyAgICBlbHNlIGlmIChtX3ZhbHVlID09IGZpcnN0UGFn
ZSkKKyAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvRmlyc3RQYWdlOwogCiAgICAgaWYgKG1f
bWF0Y2ggPT0gUHNldWRvQ2xhc3MgJiYgZWxlbWVudCkgewogICAgICAgICBpZiAoIWNvbXBhdCkg
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuaAppbmRleCA3MGYyNTc0Li41YTU0YjUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9DU1NTZWxlY3Rvci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKQEAgLTE4Niw2
ICsxODYsMjggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgUHNldWRvSW5wdXRM
aXN0QnV0dG9uLAogICAgICAgICAgICAgUHNldWRvSW5uZXJTcGluQnV0dG9uLAogICAgICAgICAg
ICAgUHNldWRvT3V0ZXJTcGluQnV0dG9uLAorICAgICAgICAgICAgUHNldWRvTGVmdFBhZ2UsCisg
ICAgICAgICAgICBQc2V1ZG9SaWdodFBhZ2UsCisgICAgICAgICAgICBQc2V1ZG9GaXJzdFBhZ2Us
CisgICAgICAgIH07CisKKyAgICAgICAgZW51bSBNYXJnaW5Cb3ggeworICAgICAgICAgICAgVG9w
TGVmdENvcm5lciwKKyAgICAgICAgICAgIFRvcExlZnQsCisgICAgICAgICAgICBUb3BDZW50ZXIs
CisgICAgICAgICAgICBUb3BSaWdodCwKKyAgICAgICAgICAgIFRvcFJpZ2h0Q29ybmVyLAorICAg
ICAgICAgICAgQm90dG9tTGVmdENvcm5lciwKKyAgICAgICAgICAgIEJvdHRvbUxlZnQsCisgICAg
ICAgICAgICBCb3R0b21DZW50ZXIsCisgICAgICAgICAgICBCb3R0b21SaWdodCwKKyAgICAgICAg
ICAgIEJvdHRvbVJpZ2h0Q29ybmVyLAorICAgICAgICAgICAgTGVmdFRvcCwKKyAgICAgICAgICAg
IExlZnRNaWRkbGUsCisgICAgICAgICAgICBMZWZ0Qm90dG9tLAorICAgICAgICAgICAgUmlnaHRU
b3AsCisgICAgICAgICAgICBSaWdodE1pZGRsZSwKKyAgICAgICAgICAgIFJpZ2h0Qm90dG9tLAog
ICAgICAgICB9OwogCiAgICAgICAgIFBzZXVkb1R5cGUgcHNldWRvVHlwZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleCBiL1dlYkNvcmUvY3NzL3Rva2VuaXpl
ci5mbGV4CmluZGV4IDE1NjllZTIuLjVlMzg4YzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL3Rv
a2VuaXplci5mbGV4CisrKyBiL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4CkBAIC01Myw2ICs1
MywyMiBAQCBudGggICAgICAgICAgICAgKC0/WzAtOV0qbltcKy1dWzAtOV0rKXwoLT9bMC05XSpu
KQogCiAiQGltcG9ydCIgICAgICAgICAgICAgICB7QkVHSU4obWVkaWFxdWVyeSk7IHl5VG9rID0g
SU1QT1JUX1NZTTsgcmV0dXJuIHl5VG9rO30KICJAcGFnZSIgICAgICAgICAgICAgICAgIHt5eVRv
ayA9IFBBR0VfU1lNOyByZXR1cm4geXlUb2s7fQorIkB0b3AtbGVmdC1jb3JuZXIiICAgICAge3l5
VG9rID0gVE9QTEVGVENPUk5FUl9TWU07IHJldHVybiB5eVRvazt9CisiQHRvcC1sZWZ0IiAgICAg
ICAgICAgICB7eXlUb2sgPSBUT1BMRUZUX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAdG9wLWNlbnRl
ciIgICAgICAgICAgIHt5eVRvayA9IFRPUENFTlRFUl9TWU07IHJldHVybiB5eVRvazt9CisiQHRv
cC1yaWdodCIgICAgICAgICAgICB7eXlUb2sgPSBUT1BSSUdIVF9TWU07IHJldHVybiB5eVRvazt9
CisiQHRvcC1yaWdodC1jb3JuZXIiICAgICB7eXlUb2sgPSBUT1BSSUdIVENPUk5FUl9TWU07IHJl
dHVybiB5eVRvazt9CisiQGJvdHRvbS1sZWZ0LWNvcm5lciIgICB7eXlUb2sgPSBCT1RUT01MRUZU
Q09STkVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAYm90dG9tLWxlZnQiICAgICAgICAgIHt5eVRv
ayA9IEJPVFRPTUxFRlRfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20tY2VudGVyIiAgICAg
ICAge3l5VG9rID0gQk9UVE9NQ0VOVEVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAYm90dG9tLXJp
Z2h0IiAgICAgICAgIHt5eVRvayA9IEJPVFRPTVJJR0hUX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJA
Ym90dG9tLXJpZ2h0LWNvcm5lciIgIHt5eVRvayA9IEJPVFRPTVJJR0hUQ09STkVSX1NZTTsgcmV0
dXJuIHl5VG9rO30KKyJAbGVmdC10b3AiICAgICAgICAgICAgIHt5eVRvayA9IExFRlRUT1BfU1lN
OyByZXR1cm4geXlUb2s7fQorIkBsZWZ0LW1pZGRsZSIgICAgICAgICAge3l5VG9rID0gTEVGVE1J
RERMRV9TWU07IHJldHVybiB5eVRvazt9CisiQGxlZnQtYm90dG9tIiAgICAgICAgICB7eXlUb2sg
PSBMRUZUQk9UVE9NX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAcmlnaHQtdG9wIiAgICAgICAgICAg
IHt5eVRvayA9IFJJR0hUVE9QX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAcmlnaHQtbWlkZGxlIiAg
ICAgICAgIHt5eVRvayA9IFJJR0hUTUlERExFX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAcmlnaHQt
Ym90dG9tIiAgICAgICAgIHt5eVRvayA9IFJJR0hUQk9UVE9NX1NZTTsgcmV0dXJuIHl5VG9rO30K
ICJAbWVkaWEiICAgICAgICAgICAgICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBNRURJ
QV9TWU07IHJldHVybiB5eVRvazt9CiAiQGZvbnQtZmFjZSIgICAgICAgICAgICB7eXlUb2sgPSBG
T05UX0ZBQ0VfU1lNOyByZXR1cm4geXlUb2s7fQogIkBjaGFyc2V0IiAgICAgICAgICAgICAge3l5
VG9rID0gQ0hBUlNFVF9TWU07IHJldHVybiB5eVRvazt9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49781</attachid>
            <date>2010-03-01 22:51:09 -0800</date>
            <delta_ts>2010-03-03 18:13:36 -0800</delta_ts>
            <desc>Enhance CSS parser for Paged Media (Iteration 1)</desc>
            <filename>bug-35329-20100302155107.patch</filename>
            <type>text/plain</type>
            <size>16717</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODcxOWI5Li43MjQ0OTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFn
ZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisgICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3Jh
bW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBy
dWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFyZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVu
dHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5n
LXBhZ2UtcnVsZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMi0yOCAgUm9iZXJ0IEhvZ2FuICA8cm9i
ZXJ0QHJvYmVydGhvZ2FuLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFu
bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWYyMmU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdlLXJ1bGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJz
aW5nLXBhZ2UtcnVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0
ODRmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBh
Z2UtcnVsZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICAu
dG9fYmVfc2hvd24geworICAgICAgICAgICAgZGlzcGxheTpub25lOworICAgICAgICAgICAgY29s
b3I6Z3JlZW47CisgICAgICAgIH0KKyAgICAgICAgLnRvX2JlX2hpZGRlbiB7CisgICAgICAgICAg
ICBkaXNwbGF5OmJsb2NrOworICAgICAgICAgICAgY29sb3I6cmVkOworICAgICAgICB9CisgICAg
PC9zdHlsZT4KKyAgICA8c3R5bGU+CisgICAgICAgIC8qIHBhZ2UgcnVsZSBtdXN0IG5vdCBpbnRl
cmZlcmUgd2l0aCBub24tcGFnZSBydWxlcyAqLworICAgICAgICAjdGVzdDEgeworICAgICAgICAg
ICAgZGlzcGxheTpub25lOworICAgICAgICB9CisgICAgICAgIEBwYWdlIHsKKyAgICAgICAgICAg
ICN0ZXN0MSB7CisgICAgICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIEB0b3AtY2VudGVyIHsKKyAgICAgICAgICAgICAgICBjb250ZW50OiJUZXN0
IjsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgI3Rlc3QyIHsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgICN0ZXN0MiB7CisgICAgICAgICAgICBkaXNwbGF5Om5v
bmU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzdHlsZT4KKyAgICAgICAgLyogTWFs
Zm9ybWVkIHBhZ2UgcnVsZSBtdXN0IG5vdCBpbnRlcmZlcmUgd2l0aCBub24tcGFnZSBydWxlcyBh
cyBmYXIgYXMgYnJhY2VzIGFyZSBwYWlyZWQgcHJvcGVybHkgKi8KKyAgICAgICAgQHBhZ2Ugewor
ICAgICAgICAgICAgcDpiZWZvcmUgeworICAgICAgICAgICAgICAgIGNvbnRlbnQ6Im1hbGZvcm1l
ZAorICAgICAgICAgICAgfQorICAgICAgICAgICAgQHRvcC1sZWZ0CisgICAgICAgIH0KKyAgICAg
ICAgI3Rlc3QzIHsKKyAgICAgICAgICAgIGRpc3BsYXk6bm9uZTsKKyAgICAgICAgfQorICAgIDwv
c3R5bGU+CisgICAgPHN0eWxlPgorICAgICAgICAvKiBTdWNjZXNzZnVsbHkgcGFyc2VkICovCisg
ICAgICAgICNsYXN0IHsKKyAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgIH0KKyAg
ICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgY2xhc3M9InRvX2JlX2hpZGRlbiIg
aWQ9InRlc3QxIj5GQUlMOiBUZXN0IDE8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idG9fYmVfaGlkZGVu
IiBpZD0idGVzdDIiPkZBSUw6IFRlc3QgMjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9oaWRk
ZW4iIGlkPSJ0ZXN0MyI+RkFJTDogVGVzdCAzPC9kaXY+CisgIDxkaXYgY2xhc3M9InRvX2JlX3No
b3duIiBpZD0ibGFzdCI+UEFTUzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBjOGNjMDEuLjJi
YTJmY2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTAtMDItMjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFnZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisg
ICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3JhbW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0
YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBydWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFy
ZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVudHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJl
IGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5CisKKyAgICAgICAgVGVzdDogZmFzdC9jc3Mv
cGFyc2luZy1wYWdlLXJ1bGUuaHRtbAorCisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
Q1NTUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y2xlYXJQcm9wZXJ0aWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6bGV4KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVBh
Z2VSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlTWFyZ2luQXRSdWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6c3RhcnREZWNsYXJhdGlvbnNGb3JNYXJn
aW5Cb3gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjplbmREZWNsYXJhdGlvbnNGb3JN
YXJnaW5Cb3gpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NT
U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1
ZG9UeXBlKToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NlbGVjdG9yOjopOgorICAgICAgICAqIGNzcy90b2tlbml6ZXIuZmxleDoKKwogMjAxMC0w
Mi0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTR3JhbW1h
ci55IGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IDlkNWViNmUuLmQzYTA1MjkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQorKysgYi9XZWJDb3JlL2Nzcy9DU1NH
cmFtbWFyLnkKQEAgLTcwLDYgKzcwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKICAg
ICBDU1NSdWxlTGlzdCogcnVsZUxpc3Q7CiAgICAgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yOwogICAg
IFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxlY3Rvckxpc3Q7CisgICAgQ1NTU2VsZWN0b3I6Ok1h
cmdpbkJveCBtYXJnaW5Cb3g7CiAgICAgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHJlbGF0aW9uOwog
ICAgIE1lZGlhTGlzdCogbWVkaWFMaXN0OwogICAgIE1lZGlhUXVlcnkqIG1lZGlhUXVlcnk7CkBA
IC05Nyw3ICs5OCw3IEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lk
KiBwYXJzZXIpCiAKICV9CiAKLSVleHBlY3QgNTQKKyVleHBlY3QgNTUKIAogJW5vbmFzc29jIExP
V0VTVF9QUkVDCiAKQEAgLTE0Miw2ICsxNDMsMjMgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNU
WVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikKICV0b2tlbiBXRUJLSVRfREVGSU5FX1NZTQogJXRv
a2VuIFZBUklBQkxFU19GT1IKICV0b2tlbiBXRUJLSVRfVkFSSUFCTEVTX0RFQ0xTX1NZTQorJXRv
a2VuIDxtYXJnaW5Cb3g+IFRPUExFRlRDT1JORVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gVE9Q
TEVGVF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBUT1BDRU5URVJfU1lNCisldG9rZW4gPG1hcmdp
bkJveD4gVE9QUklHSFRfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gVE9QUklHSFRDT1JORVJfU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NTEVGVENPUk5FUl9TWU0KKyV0b2tlbiA8bWFyZ2lu
Qm94PiBCT1RUT01MRUZUX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IEJPVFRPTUNFTlRFUl9TWU0K
KyV0b2tlbiA8bWFyZ2luQm94PiBCT1RUT01SSUdIVF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBC
T1RUT01SSUdIVENPUk5FUl9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBMRUZUVE9QX1NZTQorJXRv
a2VuIDxtYXJnaW5Cb3g+IExFRlRNSURETEVfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gTEVGVEJP
VFRPTV9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVFRPUF9TWU0KKyV0b2tlbiA8bWFyZ2lu
Qm94PiBSSUdIVE1JRERMRV9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVEJPVFRPTV9TWU0K
KwogJXRva2VuIEFUS0VZV09SRAogCiAldG9rZW4gSU1QT1JUQU5UX1NZTQpAQCAtMTg4LDYgKzIw
Niw3IEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lkKiBwYXJzZXIp
CiAldHlwZSA8cnVsZT4gaW1wb3J0CiAldHlwZSA8cnVsZT4gbmFtZXNwYWNlCiAldHlwZSA8cnVs
ZT4gcGFnZQorJXR5cGUgPHJ1bGU+IG1hcmdpbl9ib3gKICV0eXBlIDxydWxlPiBmb250X2ZhY2UK
ICV0eXBlIDxydWxlPiBrZXlmcmFtZXMKICV0eXBlIDxydWxlPiBpbnZhbGlkX3J1bGUKQEAgLTIw
OSw2ICsyMjgsNyBAQCBzdGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCog
cGFyc2VyKQogJXR5cGUgPHN0cmluZz4gaWRlbnRfb3Jfc3RyaW5nCiAldHlwZSA8c3RyaW5nPiBt
ZWRpdW0KICV0eXBlIDxzdHJpbmc+IGhleGNvbG9yCisldHlwZSA8bWFyZ2luQm94PiBtYXJnaW5f
c3ltCiAKICV0eXBlIDxzdHJpbmc+IG1lZGlhX2ZlYXR1cmUKICV0eXBlIDxtZWRpYUxpc3Q+IG1l
ZGlhX2xpc3QKQEAgLTIzNyw2ICsyNTcsNyBAQCBzdGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUq
IHl5bHZhbCwgdm9pZCogcGFyc2VyKQogJXR5cGUgPHNlbGVjdG9yPiBjbGFzcwogJXR5cGUgPHNl
bGVjdG9yPiBhdHRyaWIKICV0eXBlIDxzZWxlY3Rvcj4gcHNldWRvCisldHlwZSA8c2VsZWN0b3I+
IHBhZ2Vfc2VsZWN0b3IKIAogJXR5cGUgPGJvb2xlYW4+IGRlY2xhcmF0aW9uX2xpc3QKICV0eXBl
IDxib29sZWFuPiBkZWNsX2xpc3QKQEAgLTcyOCwyNiArNzQ5LDEwNCBAQCBrZXk6CiAgICAgfQog
ICAgIDsKIAotLyoKIHBhZ2U6Ci0gICAgUEFHRV9TWU0gbWF5YmVfc3BhY2UgSURFTlQ/IHBzZXVk
b19wYWdlPyBtYXliZV9zcGFjZQotICAgICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbiBbICc7
JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbiBdKiAnfScgbWF5YmVfc3BhY2UKLSAgOwotCi1wc2V1
ZG9fcGFnZQotICA6ICc6JyBJREVOVAotICA7Ci0qLwotCi1wYWdlOgotICAgIFBBR0VfU1lNIGVy
cm9yIGludmFsaWRfYmxvY2sgeworICAgIFBBR0VfU1lNIG1heWJlX3NwYWNlIHBhZ2Vfc2VsZWN0
b3IgbWF5YmVfc3BhY2UKKyAgICAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25zX2FuZF9tYXJn
aW5zIGNsb3NpbmdfYnJhY2UgeworICAgICAgICAkJCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+
KHBhcnNlciktPmNyZWF0ZVBhZ2VSdWxlKCQzKTsKKyAgICB9CisgICAgfCBQQUdFX1NZTSBlcnJv
ciBpbnZhbGlkX2Jsb2NrIHsKICAgICAgICQkID0gMDsKICAgICB9Ci0gIHwgUEFHRV9TWU0gZXJy
b3IgJzsnIHsKKyAgICB8IFBBR0VfU1lNIGVycm9yICc7JyB7CiAgICAgICAkJCA9IDA7CiAgICAg
fQogICAgIDsKIAorcGFnZV9zZWxlY3RvcjoKKyAgICBJREVOVCB7CisgICAgICAgIENTU1BhcnNl
ciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgICQkID0gcC0+
Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOworICAgICAgICAkJC0+bV90YWcgPSBRdWFsaWZpZWRO
YW1lKG51bGxBdG9tLCAkMSwgcC0+bV9kZWZhdWx0TmFtZXNwYWNlKTsKKyAgICB9CisgICAgfCBJ
REVOVCBwc2V1ZG8geworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJz
ZXIqPihwYXJzZXIpOworICAgICAgICAkJCA9ICQyOworICAgICAgICBpZiAoJCQpCisgICAgICAg
ICAgICAkJC0+bV90YWcgPSBRdWFsaWZpZWROYW1lKG51bGxBdG9tLCAkMSwgcC0+bV9kZWZhdWx0
TmFtZXNwYWNlKTsKKyAgICB9CisgICAgfCBwc2V1ZG8geworICAgICAgICAkJCA9ICQxOworICAg
IH0KKyAgICB8IC8qIGVtcHR5ICovIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nh
c3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgJCQgPSBwLT5jcmVhdGVGbG9hdGluZ1Nl
bGVjdG9yKCk7CisgICAgfQorICAgIDsKKworZGVjbGFyYXRpb25zX2FuZF9tYXJnaW5zOgorICAg
IGRlY2xhcmF0aW9uX2xpc3QKKyAgICB8IGRlY2xhcmF0aW9uc19hbmRfbWFyZ2lucyBtYXJnaW5f
Ym94IG1heWJlX3NwYWNlIGRlY2xhcmF0aW9uX2xpc3QKKyAgICA7CisKK21hcmdpbl9ib3g6Cisg
ICAgbWFyZ2luX3N5bSB7CisgICAgICAgIHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcikt
PnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCk7CisgICAgfSBtYXliZV9zcGFjZSAneycg
bWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCBjbG9zaW5nX2JyYWNlIHsKKyAgICAgICAgJCQg
PSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVhdGVNYXJnaW5BdFJ1bGUoJDEp
OworICAgIH0KKyAgICA7CisKK21hcmdpbl9zeW0gOgorICAgIFRPUExFRlRDT1JORVJfU1lNIHsK
KyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6VG9wTGVmdENvcm5lcjsKKyAgICB9CisgICAgfCBU
T1BMRUZUX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlRvcExlZnQ7CisgICAgfQor
ICAgIHwgVE9QQ0VOVEVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlRvcENlbnRl
cjsKKyAgICB9CisgICAgfCBUT1BSSUdIVF9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9y
OjpUb3BSaWdodDsKKyAgICB9CisgICAgfCBUT1BSSUdIVENPUk5FUl9TWU0geworICAgICAgICAk
JCA9IENTU1NlbGVjdG9yOjpUb3BSaWdodENvcm5lcjsKKyAgICB9CisgICAgfCBCT1RUT01MRUZU
Q09STkVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbUxlZnRDb3JuZXI7
CisgICAgfQorICAgIHwgQk9UVE9NTEVGVF9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9y
OjpCb3R0b21MZWZ0OworICAgIH0KKyAgICB8IEJPVFRPTUNFTlRFUl9TWU0geworICAgICAgICAk
JCA9IENTU1NlbGVjdG9yOjpCb3R0b21DZW50ZXI7CisgICAgfQorICAgIHwgQk9UVE9NUklHSFRf
U1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Qm90dG9tUmlnaHQ7CisgICAgfQorICAg
IHwgQk9UVE9NUklHSFRDT1JORVJfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Qm90
dG9tUmlnaHRDb3JuZXI7CisgICAgfQorICAgIHwgTEVGVFRPUF9TWU0geworICAgICAgICAkJCA9
IENTU1NlbGVjdG9yOjpMZWZ0VG9wOworICAgIH0KKyAgICB8IExFRlRNSURETEVfU1lNIHsKKyAg
ICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6TGVmdE1pZGRsZTsKKyAgICB9CisgICAgfCBMRUZUQk9U
VE9NX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkxlZnRCb3R0b207CisgICAgfQor
ICAgIHwgUklHSFRUT1BfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRUb3A7
CisgICAgfQorICAgIHwgUklHSFRNSURETEVfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rv
cjo6UmlnaHRNaWRkbGU7CisgICAgfQorICAgIHwgUklHSFRCT1RUT01fU1lNIHsKKyAgICAgICAg
JCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRCb3R0b207CisgICAgfQorICAgIDsKKwogZm9udF9mYWNl
OgogICAgIEZPTlRfRkFDRV9TWU0gbWF5YmVfc3BhY2UKICAgICAneycgbWF5YmVfc3BhY2UgZGVj
bGFyYXRpb25fbGlzdCAnfScgIG1heWJlX3NwYWNlIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGE3NDY4MDEu
LmVmMGRmMTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUgIldlYktp
dENTU0tleWZyYW1lUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lc1J1bGUuaCIK
ICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgorI2luY2x1ZGUgPGxpbWl0cy5o
PgogI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQp
CkBAIC05MSw2ICs5Miw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorc3RhdGljIGNvbnN0IHVuc2lnbmVkIElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJU
SUVTID0gVUlOVF9NQVg7CisKIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IENTU1BhcnNlclN0cmlu
ZyYgYSwgY29uc3QgY2hhciogYikKIHsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3Ro
OyArK2kpIHsKQEAgLTEzNSw2ICsxMzgsNyBAQCBDU1NQYXJzZXI6OkNTU1BhcnNlcihib29sIHN0
cmljdFBhcnNpbmcpCiAgICAgLCBtX3BhcnNlZFByb3BlcnRpZXMoc3RhdGljX2Nhc3Q8Q1NTUHJv
cGVydHkqKj4oZmFzdE1hbGxvYygzMiAqIHNpemVvZihDU1NQcm9wZXJ0eSopKSkpCiAgICAgLCBt
X251bVBhcnNlZFByb3BlcnRpZXMoMCkKICAgICAsIG1fbWF4UGFyc2VkUHJvcGVydGllcygzMikK
KyAgICAsIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveChJTlZBTElEX05VTV9Q
QVJTRURfUFJPUEVSVElFUykKICAgICAsIG1faW5QYXJzZVNob3J0aGFuZCgwKQogICAgICwgbV9j
dXJyZW50U2hvcnRoYW5kKDApCiAgICAgLCBtX2ltcGxpY2l0U2hvcnRoYW5kKGZhbHNlKQpAQCAt
Mzk0LDYgKzM5OCw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpjbGVhclByb3BlcnRpZXMoKQogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX251bVBhcnNlZFByb3BlcnRpZXM7IGkrKykKICAgICAg
ICAgZGVsZXRlIG1fcGFyc2VkUHJvcGVydGllc1tpXTsKICAgICBtX251bVBhcnNlZFByb3BlcnRp
ZXMgPSAwOworICAgIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveCA9IElOVkFM
SURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTOwogICAgIG1faGFzRm9udEZhY2VPbmx5VmFsdWVzID0g
ZmFsc2U7CiB9CiAKQEAgLTUxNTksNiArNTE2NCwzOSBAQCBib29sIENTU1BhcnNlcjo6YWRkVmFy
aWFibGVEZWNsYXJhdGlvbkJsb2NrKGNvbnN0IENTU1BhcnNlclN0cmluZyYpCiAKICNlbmRpZgog
CitDU1NSdWxlKiBDU1NQYXJzZXI6OmNyZWF0ZVBhZ2VSdWxlKENTU1NlbGVjdG9yKiAvKiBwYWdl
U2VsZWN0b3IgKi8pCit7CisgICAgLy8gRklYTUU6IENyZWF0ZSBwYWdlIHJ1bGUgaGVyZSwgdXNp
bmc6CisgICAgLy8gICAgICAgIC0gcGFnZVNlbGVjdG9yLT5wc2V1ZG9UeXBlKCk6IHRoZSBwYWdl
IHBzZXVkby1jbGFzcywgaS5lLiwgOmxlZnQsIDpyaWdodCwgb3IgOmZpcnN0CisgICAgLy8gICAg
ICAgIC0gcGFnZVNlbGVjdG9yLT5tX3RhZzogIHRoZSBwYWdlIG5hbWUKKyAgICAvLyAgICAgICAg
LSBtX3BhcnNlZFByb3BlcnRpZXM6IHRoZSBwYWdlIHByb3BlcnRpZXMKKworICAgIGNsZWFyUHJv
cGVydGllcygpOworICAgIHJldHVybiAwOyAvLyB1bnRpbCB0aGlzIG1ldGhvZCBpcyBpbXBsZW1l
bnRlZC4KK30KKworQ1NTUnVsZSogQ1NTUGFyc2VyOjpjcmVhdGVNYXJnaW5BdFJ1bGUoQ1NTU2Vs
ZWN0b3I6Ok1hcmdpbkJveCYgLyogbWFyZ2luQm94ICovKQoreworICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgbWFyZ2luIGF0LXJ1bGUgaGVyZSwgdXNpbmc6CisgICAgLy8gICAgICAgIC0gbWFyZ2lu
Qm94OiBtYXJnaW4gYm94CisgICAgLy8gICAgICAgIC0gbV9wYXJzZWRQcm9wZXJ0aWVzOiBwcm9w
ZXJ0aWVzIGF0IFttX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3gsIG1fbnVtUGFy
c2VkUHJvcGVydGllcykgYXJlIGZvciB0aGlzIGF0LXJ1bGUuCisKKyAgICBlbmREZWNsYXJhdGlv
bnNGb3JNYXJnaW5Cb3goKTsKKyAgICByZXR1cm4gMDsgLy8gdW50aWwgdGhpcyBtZXRob2QgaXMg
aW1wbGVtZW50ZWQuCit9CisKK3ZvaWQgQ1NTUGFyc2VyOjpzdGFydERlY2xhcmF0aW9uc0Zvck1h
cmdpbkJveCgpCit7CisgICAgbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94ID0g
bV9udW1QYXJzZWRQcm9wZXJ0aWVzOworfQorCit2b2lkIENTU1BhcnNlcjo6ZW5kRGVjbGFyYXRp
b25zRm9yTWFyZ2luQm94KCkKK3sKKyAgICBBU1NFUlQobV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVm
b3JlTWFyZ2luQm94ICE9IElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTKTsKKyAgICByb2xs
YmFja0xhc3RQcm9wZXJ0aWVzKG1fbnVtUGFyc2VkUHJvcGVydGllcyAtIG1fbnVtUGFyc2VkUHJv
cGVydGllc0JlZm9yZU1hcmdpbkJveCk7CisgICAgbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3Jl
TWFyZ2luQm94ID0gSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVM7Cit9CisKIHZvaWQgQ1NT
UGFyc2VyOjpjbGVhclZhcmlhYmxlcygpCiB7CiAgICAgbV92YXJpYWJsZU5hbWVzLmNsZWFyKCk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oCmluZGV4IDM5MjJhMmEuLjI2ZjcwMDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0xNzgsNiArMTc4LDEw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQ1NTUnVsZSogY3JlYXRlU3R5bGVSdWxl
KFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxlY3RvcnMpOwogICAgICAgICBDU1NSdWxlKiBjcmVh
dGVGb250RmFjZVJ1bGUoKTsKICAgICAgICAgQ1NTUnVsZSogY3JlYXRlVmFyaWFibGVzUnVsZShN
ZWRpYUxpc3QqLCBib29sIHZhcmlhYmxlc0tleXdvcmQpOworICAgICAgICBDU1NSdWxlKiBjcmVh
dGVQYWdlUnVsZShDU1NTZWxlY3RvciogcGFnZVNlbGVjdG9yKTsKKyAgICAgICAgQ1NTUnVsZSog
Y3JlYXRlTWFyZ2luQXRSdWxlKENTU1NlbGVjdG9yOjpNYXJnaW5Cb3gmIG1hcmdpbkJveCk7Cisg
ICAgICAgIHZvaWQgc3RhcnREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKTsKKyAgICAgICAgdm9p
ZCBlbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKTsKIAogICAgICAgICBNZWRpYVF1ZXJ5RXhw
KiBjcmVhdGVGbG9hdGluZ01lZGlhUXVlcnlFeHAoY29uc3QgQXRvbWljU3RyaW5nJiwgQ1NTUGFy
c2VyVmFsdWVMaXN0Kik7CiAgICAgICAgIE1lZGlhUXVlcnlFeHAqIHNpbmtGbG9hdGluZ01lZGlh
UXVlcnlFeHAoTWVkaWFRdWVyeUV4cCopOwpAQCAtMjA5LDYgKzIxMyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgQ1NTU2VsZWN0b3JMaXN0KiBtX3NlbGVjdG9yTGlzdEZvclBhcnNl
U2VsZWN0b3I7CiAgICAgICAgIHVuc2lnbmVkIG1fbnVtUGFyc2VkUHJvcGVydGllczsKICAgICAg
ICAgdW5zaWduZWQgbV9tYXhQYXJzZWRQcm9wZXJ0aWVzOworICAgICAgICB1bnNpZ25lZCBtX251
bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3g7CiAKICAgICAgICAgaW50IG1faW5QYXJz
ZVNob3J0aGFuZDsKICAgICAgICAgaW50IG1fY3VycmVudFNob3J0aGFuZDsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cAppbmRleCA5YWU5YjlmLi5mYzA1NjA2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0xNTcsNiArMTU3
LDEwIEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QKICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2luZ2xlQnV0dG9uLCAoInNpbmdsZS1i
dXR0b24iKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5vQnV0dG9u
LCAoIm5vLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
Y29ybmVyUHJlc2VudCwgKCJjb3JuZXItcHJlc2VudCIpKTsKKyAgICAvLyBQYWdlZCBNZWRpYSBw
c2V1ZG8tY2xhc3NlcworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBsZWZ0
UGFnZSwgKCJsZWZ0IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBy
aWdodFBhZ2UsICgicmlnaHQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIGZpcnN0UGFnZSwgKCJmaXJzdCIpKTsKIAogICAgIGJvb2wgZWxlbWVudCA9IGZhbHNlOyAv
LyBwc2V1ZG8tZWxlbWVudAogICAgIGJvb2wgY29tcGF0ID0gZmFsc2U7IC8vIHNpbmdsZSBjb2xv
biBjb21wYXRiaWxpdHkgbW9kZQpAQCAtMzc5LDYgKzM4MywxMiBAQCB2b2lkIENTU1NlbGVjdG9y
OjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVk
b1RhcmdldDsKICAgICBlbHNlIGlmIChtX3ZhbHVlID09IHZpc2l0ZWQpCiAgICAgICAgIG1fcHNl
dWRvVHlwZSA9IFBzZXVkb1Zpc2l0ZWQ7CisgICAgZWxzZSBpZiAobV92YWx1ZSA9PSBsZWZ0UGFn
ZSkKKyAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvTGVmdFBhZ2U7CisgICAgZWxzZSBpZiAo
bV92YWx1ZSA9PSByaWdodFBhZ2UpCisgICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb1JpZ2h0
UGFnZTsKKyAgICBlbHNlIGlmIChtX3ZhbHVlID09IGZpcnN0UGFnZSkKKyAgICAgICAgbV9wc2V1
ZG9UeXBlID0gUHNldWRvRmlyc3RQYWdlOwogCiAgICAgaWYgKG1fbWF0Y2ggPT0gUHNldWRvQ2xh
c3MgJiYgZWxlbWVudCkgewogICAgICAgICBpZiAoIWNvbXBhdCkgCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAppbmRleCA3
MGYyNTc0Li41YTU0YjUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisr
KyBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKQEAgLTE4Niw2ICsxODYsMjggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICAgICAgUHNldWRvSW5wdXRMaXN0QnV0dG9uLAogICAgICAg
ICAgICAgUHNldWRvSW5uZXJTcGluQnV0dG9uLAogICAgICAgICAgICAgUHNldWRvT3V0ZXJTcGlu
QnV0dG9uLAorICAgICAgICAgICAgUHNldWRvTGVmdFBhZ2UsCisgICAgICAgICAgICBQc2V1ZG9S
aWdodFBhZ2UsCisgICAgICAgICAgICBQc2V1ZG9GaXJzdFBhZ2UsCisgICAgICAgIH07CisKKyAg
ICAgICAgZW51bSBNYXJnaW5Cb3ggeworICAgICAgICAgICAgVG9wTGVmdENvcm5lciwKKyAgICAg
ICAgICAgIFRvcExlZnQsCisgICAgICAgICAgICBUb3BDZW50ZXIsCisgICAgICAgICAgICBUb3BS
aWdodCwKKyAgICAgICAgICAgIFRvcFJpZ2h0Q29ybmVyLAorICAgICAgICAgICAgQm90dG9tTGVm
dENvcm5lciwKKyAgICAgICAgICAgIEJvdHRvbUxlZnQsCisgICAgICAgICAgICBCb3R0b21DZW50
ZXIsCisgICAgICAgICAgICBCb3R0b21SaWdodCwKKyAgICAgICAgICAgIEJvdHRvbVJpZ2h0Q29y
bmVyLAorICAgICAgICAgICAgTGVmdFRvcCwKKyAgICAgICAgICAgIExlZnRNaWRkbGUsCisgICAg
ICAgICAgICBMZWZ0Qm90dG9tLAorICAgICAgICAgICAgUmlnaHRUb3AsCisgICAgICAgICAgICBS
aWdodE1pZGRsZSwKKyAgICAgICAgICAgIFJpZ2h0Qm90dG9tLAogICAgICAgICB9OwogCiAgICAg
ICAgIFBzZXVkb1R5cGUgcHNldWRvVHlwZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nz
cy90b2tlbml6ZXIuZmxleCBiL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4CmluZGV4IDE1Njll
ZTIuLjVlMzg4YzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4CisrKyBi
L1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4CkBAIC01Myw2ICs1MywyMiBAQCBudGggICAgICAg
ICAgICAgKC0/WzAtOV0qbltcKy1dWzAtOV0rKXwoLT9bMC05XSpuKQogCiAiQGltcG9ydCIgICAg
ICAgICAgICAgICB7QkVHSU4obWVkaWFxdWVyeSk7IHl5VG9rID0gSU1QT1JUX1NZTTsgcmV0dXJu
IHl5VG9rO30KICJAcGFnZSIgICAgICAgICAgICAgICAgIHt5eVRvayA9IFBBR0VfU1lNOyByZXR1
cm4geXlUb2s7fQorIkB0b3AtbGVmdC1jb3JuZXIiICAgICAge3l5VG9rID0gVE9QTEVGVENPUk5F
Ul9TWU07IHJldHVybiB5eVRvazt9CisiQHRvcC1sZWZ0IiAgICAgICAgICAgICB7eXlUb2sgPSBU
T1BMRUZUX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAdG9wLWNlbnRlciIgICAgICAgICAgIHt5eVRv
ayA9IFRPUENFTlRFUl9TWU07IHJldHVybiB5eVRvazt9CisiQHRvcC1yaWdodCIgICAgICAgICAg
ICB7eXlUb2sgPSBUT1BSSUdIVF9TWU07IHJldHVybiB5eVRvazt9CisiQHRvcC1yaWdodC1jb3Ju
ZXIiICAgICB7eXlUb2sgPSBUT1BSSUdIVENPUk5FUl9TWU07IHJldHVybiB5eVRvazt9CisiQGJv
dHRvbS1sZWZ0LWNvcm5lciIgICB7eXlUb2sgPSBCT1RUT01MRUZUQ09STkVSX1NZTTsgcmV0dXJu
IHl5VG9rO30KKyJAYm90dG9tLWxlZnQiICAgICAgICAgIHt5eVRvayA9IEJPVFRPTUxFRlRfU1lN
OyByZXR1cm4geXlUb2s7fQorIkBib3R0b20tY2VudGVyIiAgICAgICAge3l5VG9rID0gQk9UVE9N
Q0VOVEVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAYm90dG9tLXJpZ2h0IiAgICAgICAgIHt5eVRv
ayA9IEJPVFRPTVJJR0hUX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAYm90dG9tLXJpZ2h0LWNvcm5l
ciIgIHt5eVRvayA9IEJPVFRPTVJJR0hUQ09STkVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAbGVm
dC10b3AiICAgICAgICAgICAgIHt5eVRvayA9IExFRlRUT1BfU1lNOyByZXR1cm4geXlUb2s7fQor
IkBsZWZ0LW1pZGRsZSIgICAgICAgICAge3l5VG9rID0gTEVGVE1JRERMRV9TWU07IHJldHVybiB5
eVRvazt9CisiQGxlZnQtYm90dG9tIiAgICAgICAgICB7eXlUb2sgPSBMRUZUQk9UVE9NX1NZTTsg
cmV0dXJuIHl5VG9rO30KKyJAcmlnaHQtdG9wIiAgICAgICAgICAgIHt5eVRvayA9IFJJR0hUVE9Q
X1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAcmlnaHQtbWlkZGxlIiAgICAgICAgIHt5eVRvayA9IFJJ
R0hUTUlERExFX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAcmlnaHQtYm90dG9tIiAgICAgICAgIHt5
eVRvayA9IFJJR0hUQk9UVE9NX1NZTTsgcmV0dXJuIHl5VG9rO30KICJAbWVkaWEiICAgICAgICAg
ICAgICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBNRURJQV9TWU07IHJldHVybiB5eVRv
azt9CiAiQGZvbnQtZmFjZSIgICAgICAgICAgICB7eXlUb2sgPSBGT05UX0ZBQ0VfU1lNOyByZXR1
cm4geXlUb2s7fQogIkBjaGFyc2V0IiAgICAgICAgICAgICAge3l5VG9rID0gQ0hBUlNFVF9TWU07
IHJldHVybiB5eVRvazt9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49970</attachid>
            <date>2010-03-03 18:13:42 -0800</date>
            <delta_ts>2010-03-04 04:26:10 -0800</delta_ts>
            <desc>Enhance CSS parser for Paged Media (Iteration 1)</desc>
            <filename>bug-35329-20100304111339.patch</filename>
            <type>text/plain</type>
            <size>16769</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODcxOWI5Li43MjQ0OTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFn
ZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisgICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3Jh
bW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBy
dWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFyZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVu
dHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5n
LXBhZ2UtcnVsZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMi0yOCAgUm9iZXJ0IEhvZ2FuICA8cm9i
ZXJ0QHJvYmVydGhvZ2FuLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFu
bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWYyMmU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdlLXJ1bGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJz
aW5nLXBhZ2UtcnVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0
ODRmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBh
Z2UtcnVsZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICAu
dG9fYmVfc2hvd24geworICAgICAgICAgICAgZGlzcGxheTpub25lOworICAgICAgICAgICAgY29s
b3I6Z3JlZW47CisgICAgICAgIH0KKyAgICAgICAgLnRvX2JlX2hpZGRlbiB7CisgICAgICAgICAg
ICBkaXNwbGF5OmJsb2NrOworICAgICAgICAgICAgY29sb3I6cmVkOworICAgICAgICB9CisgICAg
PC9zdHlsZT4KKyAgICA8c3R5bGU+CisgICAgICAgIC8qIHBhZ2UgcnVsZSBtdXN0IG5vdCBpbnRl
cmZlcmUgd2l0aCBub24tcGFnZSBydWxlcyAqLworICAgICAgICAjdGVzdDEgeworICAgICAgICAg
ICAgZGlzcGxheTpub25lOworICAgICAgICB9CisgICAgICAgIEBwYWdlIHsKKyAgICAgICAgICAg
ICN0ZXN0MSB7CisgICAgICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIEB0b3AtY2VudGVyIHsKKyAgICAgICAgICAgICAgICBjb250ZW50OiJUZXN0
IjsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgI3Rlc3QyIHsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgICN0ZXN0MiB7CisgICAgICAgICAgICBkaXNwbGF5Om5v
bmU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzdHlsZT4KKyAgICAgICAgLyogTWFs
Zm9ybWVkIHBhZ2UgcnVsZSBtdXN0IG5vdCBpbnRlcmZlcmUgd2l0aCBub24tcGFnZSBydWxlcyBh
cyBmYXIgYXMgYnJhY2VzIGFyZSBwYWlyZWQgcHJvcGVybHkgKi8KKyAgICAgICAgQHBhZ2Ugewor
ICAgICAgICAgICAgcDpiZWZvcmUgeworICAgICAgICAgICAgICAgIGNvbnRlbnQ6Im1hbGZvcm1l
ZAorICAgICAgICAgICAgfQorICAgICAgICAgICAgQHRvcC1sZWZ0CisgICAgICAgIH0KKyAgICAg
ICAgI3Rlc3QzIHsKKyAgICAgICAgICAgIGRpc3BsYXk6bm9uZTsKKyAgICAgICAgfQorICAgIDwv
c3R5bGU+CisgICAgPHN0eWxlPgorICAgICAgICAvKiBTdWNjZXNzZnVsbHkgcGFyc2VkICovCisg
ICAgICAgICNsYXN0IHsKKyAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgIH0KKyAg
ICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgY2xhc3M9InRvX2JlX2hpZGRlbiIg
aWQ9InRlc3QxIj5GQUlMOiBUZXN0IDE8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idG9fYmVfaGlkZGVu
IiBpZD0idGVzdDIiPkZBSUw6IFRlc3QgMjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9oaWRk
ZW4iIGlkPSJ0ZXN0MyI+RkFJTDogVGVzdCAzPC9kaXY+CisgIDxkaXYgY2xhc3M9InRvX2JlX3No
b3duIiBpZD0ibGFzdCI+UEFTUzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBjOGNjMDEuLjJi
YTJmY2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTAtMDItMjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFnZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisg
ICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3JhbW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0
YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBydWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFy
ZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVudHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJl
IGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5CisKKyAgICAgICAgVGVzdDogZmFzdC9jc3Mv
cGFyc2luZy1wYWdlLXJ1bGUuaHRtbAorCisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
Q1NTUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y2xlYXJQcm9wZXJ0aWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6bGV4KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVBh
Z2VSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlTWFyZ2luQXRSdWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6c3RhcnREZWNsYXJhdGlvbnNGb3JNYXJn
aW5Cb3gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjplbmREZWNsYXJhdGlvbnNGb3JN
YXJnaW5Cb3gpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NT
U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1
ZG9UeXBlKToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NlbGVjdG9yOjopOgorICAgICAgICAqIGNzcy90b2tlbml6ZXIuZmxleDoKKwogMjAxMC0w
Mi0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTR3JhbW1h
ci55IGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IDlkNWViNmUuLjVmMjlkOGYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQorKysgYi9XZWJDb3JlL2Nzcy9DU1NH
cmFtbWFyLnkKQEAgLTcwLDYgKzcwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKICAg
ICBDU1NSdWxlTGlzdCogcnVsZUxpc3Q7CiAgICAgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yOwogICAg
IFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxlY3Rvckxpc3Q7CisgICAgQ1NTU2VsZWN0b3I6Ok1h
cmdpbkJveCBtYXJnaW5Cb3g7CiAgICAgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHJlbGF0aW9uOwog
ICAgIE1lZGlhTGlzdCogbWVkaWFMaXN0OwogICAgIE1lZGlhUXVlcnkqIG1lZGlhUXVlcnk7CkBA
IC05Nyw3ICs5OCw3IEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lk
KiBwYXJzZXIpCiAKICV9CiAKLSVleHBlY3QgNTQKKyVleHBlY3QgNTUKIAogJW5vbmFzc29jIExP
V0VTVF9QUkVDCiAKQEAgLTE0Miw2ICsxNDMsMjMgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNU
WVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikKICV0b2tlbiBXRUJLSVRfREVGSU5FX1NZTQogJXRv
a2VuIFZBUklBQkxFU19GT1IKICV0b2tlbiBXRUJLSVRfVkFSSUFCTEVTX0RFQ0xTX1NZTQorJXRv
a2VuIDxtYXJnaW5Cb3g+IFRPUExFRlRDT1JORVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gVE9Q
TEVGVF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBUT1BDRU5URVJfU1lNCisldG9rZW4gPG1hcmdp
bkJveD4gVE9QUklHSFRfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gVE9QUklHSFRDT1JORVJfU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NTEVGVENPUk5FUl9TWU0KKyV0b2tlbiA8bWFyZ2lu
Qm94PiBCT1RUT01MRUZUX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IEJPVFRPTUNFTlRFUl9TWU0K
KyV0b2tlbiA8bWFyZ2luQm94PiBCT1RUT01SSUdIVF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBC
T1RUT01SSUdIVENPUk5FUl9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBMRUZUVE9QX1NZTQorJXRv
a2VuIDxtYXJnaW5Cb3g+IExFRlRNSURETEVfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gTEVGVEJP
VFRPTV9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVFRPUF9TWU0KKyV0b2tlbiA8bWFyZ2lu
Qm94PiBSSUdIVE1JRERMRV9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVEJPVFRPTV9TWU0K
KwogJXRva2VuIEFUS0VZV09SRAogCiAldG9rZW4gSU1QT1JUQU5UX1NZTQpAQCAtMTg4LDYgKzIw
Niw3IEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lkKiBwYXJzZXIp
CiAldHlwZSA8cnVsZT4gaW1wb3J0CiAldHlwZSA8cnVsZT4gbmFtZXNwYWNlCiAldHlwZSA8cnVs
ZT4gcGFnZQorJXR5cGUgPHJ1bGU+IG1hcmdpbl9ib3gKICV0eXBlIDxydWxlPiBmb250X2ZhY2UK
ICV0eXBlIDxydWxlPiBrZXlmcmFtZXMKICV0eXBlIDxydWxlPiBpbnZhbGlkX3J1bGUKQEAgLTIw
OSw2ICsyMjgsNyBAQCBzdGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCog
cGFyc2VyKQogJXR5cGUgPHN0cmluZz4gaWRlbnRfb3Jfc3RyaW5nCiAldHlwZSA8c3RyaW5nPiBt
ZWRpdW0KICV0eXBlIDxzdHJpbmc+IGhleGNvbG9yCisldHlwZSA8bWFyZ2luQm94PiBtYXJnaW5f
c3ltCiAKICV0eXBlIDxzdHJpbmc+IG1lZGlhX2ZlYXR1cmUKICV0eXBlIDxtZWRpYUxpc3Q+IG1l
ZGlhX2xpc3QKQEAgLTIzNyw2ICsyNTcsNyBAQCBzdGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUq
IHl5bHZhbCwgdm9pZCogcGFyc2VyKQogJXR5cGUgPHNlbGVjdG9yPiBjbGFzcwogJXR5cGUgPHNl
bGVjdG9yPiBhdHRyaWIKICV0eXBlIDxzZWxlY3Rvcj4gcHNldWRvCisldHlwZSA8c2VsZWN0b3I+
IHBhZ2Vfc2VsZWN0b3IKIAogJXR5cGUgPGJvb2xlYW4+IGRlY2xhcmF0aW9uX2xpc3QKICV0eXBl
IDxib29sZWFuPiBkZWNsX2xpc3QKQEAgLTcyOCwyNiArNzQ5LDEwNSBAQCBrZXk6CiAgICAgfQog
ICAgIDsKIAotLyoKIHBhZ2U6Ci0gICAgUEFHRV9TWU0gbWF5YmVfc3BhY2UgSURFTlQ/IHBzZXVk
b19wYWdlPyBtYXliZV9zcGFjZQotICAgICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbiBbICc7
JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbiBdKiAnfScgbWF5YmVfc3BhY2UKLSAgOwotCi1wc2V1
ZG9fcGFnZQotICA6ICc6JyBJREVOVAotICA7Ci0qLwotCi1wYWdlOgotICAgIFBBR0VfU1lNIGVy
cm9yIGludmFsaWRfYmxvY2sgeworICAgIFBBR0VfU1lNIG1heWJlX3NwYWNlIHBhZ2Vfc2VsZWN0
b3IgbWF5YmVfc3BhY2UKKyAgICAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25zX2FuZF9tYXJn
aW5zIGNsb3NpbmdfYnJhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxD
U1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICAkJCA9IHAtPmNyZWF0ZVBhZ2VSdWxlKHAtPnNp
bmtGbG9hdGluZ1NlbGVjdG9yKCQzKSk7CisgICAgfQorICAgIHwgUEFHRV9TWU0gZXJyb3IgaW52
YWxpZF9ibG9jayB7CiAgICAgICAkJCA9IDA7CiAgICAgfQotICB8IFBBR0VfU1lNIGVycm9yICc7
JyB7CisgICAgfCBQQUdFX1NZTSBlcnJvciAnOycgewogICAgICAgJCQgPSAwOwogICAgIH0KICAg
ICA7CiAKK3BhZ2Vfc2VsZWN0b3I6CisgICAgSURFTlQgeworICAgICAgICBDU1NQYXJzZXIqIHAg
PSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICAkJCA9IHAtPmNyZWF0
ZUZsb2F0aW5nU2VsZWN0b3IoKTsKKyAgICAgICAgJCQtPm1fdGFnID0gUXVhbGlmaWVkTmFtZShu
dWxsQXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVzcGFjZSk7CisgICAgfQorICAgIHwgSURFTlQg
cHNldWRvIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4o
cGFyc2VyKTsKKyAgICAgICAgJCQgPSAkMjsKKyAgICAgICAgaWYgKCQkKQorICAgICAgICAgICAg
JCQtPm1fdGFnID0gUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVz
cGFjZSk7CisgICAgfQorICAgIHwgcHNldWRvIHsKKyAgICAgICAgJCQgPSAkMTsKKyAgICB9Cisg
ICAgfCAvKiBlbXB0eSAqLyB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENT
U1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgICQkID0gcC0+Y3JlYXRlRmxvYXRpbmdTZWxlY3Rv
cigpOworICAgIH0KKyAgICA7CisKK2RlY2xhcmF0aW9uc19hbmRfbWFyZ2luczoKKyAgICBkZWNs
YXJhdGlvbl9saXN0CisgICAgfCBkZWNsYXJhdGlvbnNfYW5kX21hcmdpbnMgbWFyZ2luX2JveCBt
YXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0CisgICAgOworCittYXJnaW5fYm94OgorICAgIG1h
cmdpbl9zeW0geworICAgICAgICBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5zdGFy
dERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgpOworICAgIH0gbWF5YmVfc3BhY2UgJ3snIG1heWJl
X3NwYWNlIGRlY2xhcmF0aW9uX2xpc3QgY2xvc2luZ19icmFjZSB7CisgICAgICAgICQkID0gc3Rh
dGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKS0+Y3JlYXRlTWFyZ2luQXRSdWxlKCQxKTsKKyAg
ICB9CisgICAgOworCittYXJnaW5fc3ltIDoKKyAgICBUT1BMRUZUQ09STkVSX1NZTSB7CisgICAg
ICAgICQkID0gQ1NTU2VsZWN0b3I6OlRvcExlZnRDb3JuZXI7CisgICAgfQorICAgIHwgVE9QTEVG
VF9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BMZWZ0OworICAgIH0KKyAgICB8
IFRPUENFTlRFUl9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BDZW50ZXI7Cisg
ICAgfQorICAgIHwgVE9QUklHSFRfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6VG9w
UmlnaHQ7CisgICAgfQorICAgIHwgVE9QUklHSFRDT1JORVJfU1lNIHsKKyAgICAgICAgJCQgPSBD
U1NTZWxlY3Rvcjo6VG9wUmlnaHRDb3JuZXI7CisgICAgfQorICAgIHwgQk9UVE9NTEVGVENPUk5F
Ul9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21MZWZ0Q29ybmVyOworICAg
IH0KKyAgICB8IEJPVFRPTUxFRlRfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Qm90
dG9tTGVmdDsKKyAgICB9CisgICAgfCBCT1RUT01DRU5URVJfU1lNIHsKKyAgICAgICAgJCQgPSBD
U1NTZWxlY3Rvcjo6Qm90dG9tQ2VudGVyOworICAgIH0KKyAgICB8IEJPVFRPTVJJR0hUX1NZTSB7
CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbVJpZ2h0OworICAgIH0KKyAgICB8IEJP
VFRPTVJJR0hUQ09STkVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbVJp
Z2h0Q29ybmVyOworICAgIH0KKyAgICB8IExFRlRUT1BfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NT
ZWxlY3Rvcjo6TGVmdFRvcDsKKyAgICB9CisgICAgfCBMRUZUTUlERExFX1NZTSB7CisgICAgICAg
ICQkID0gQ1NTU2VsZWN0b3I6OkxlZnRNaWRkbGU7CisgICAgfQorICAgIHwgTEVGVEJPVFRPTV9T
WU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpMZWZ0Qm90dG9tOworICAgIH0KKyAgICB8
IFJJR0hUVE9QX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlJpZ2h0VG9wOworICAg
IH0KKyAgICB8IFJJR0hUTUlERExFX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlJp
Z2h0TWlkZGxlOworICAgIH0KKyAgICB8IFJJR0hUQk9UVE9NX1NZTSB7CisgICAgICAgICQkID0g
Q1NTU2VsZWN0b3I6OlJpZ2h0Qm90dG9tOworICAgIH0KKyAgICA7CisKIGZvbnRfZmFjZToKICAg
ICBGT05UX0ZBQ0VfU1lNIG1heWJlX3NwYWNlCiAgICAgJ3snIG1heWJlX3NwYWNlIGRlY2xhcmF0
aW9uX2xpc3QgJ30nICBtYXliZV9zcGFjZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBhNzQ2ODAxLi5lZjBk
ZjEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJXZWJLaXRDU1NL
ZXlmcmFtZVJ1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIKKyNpbmNsdWRlIDxsaW1pdHMuaD4KICNp
bmNsdWRlIDx3dGYvZHRvYS5oPgogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQpAQCAt
OTEsNiArOTIsOCBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElFUyA9
IFVJTlRfTUFYOworCiBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDU1NQYXJzZXJTdHJpbmcmIGEs
IGNvbnN0IGNoYXIqIGIpCiB7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytp
KSB7CkBAIC0xMzUsNiArMTM4LDcgQEAgQ1NTUGFyc2VyOjpDU1NQYXJzZXIoYm9vbCBzdHJpY3RQ
YXJzaW5nKQogICAgICwgbV9wYXJzZWRQcm9wZXJ0aWVzKHN0YXRpY19jYXN0PENTU1Byb3BlcnR5
Kio+KGZhc3RNYWxsb2MoMzIgKiBzaXplb2YoQ1NTUHJvcGVydHkqKSkpKQogICAgICwgbV9udW1Q
YXJzZWRQcm9wZXJ0aWVzKDApCiAgICAgLCBtX21heFBhcnNlZFByb3BlcnRpZXMoMzIpCisgICAg
LCBtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3goSU5WQUxJRF9OVU1fUEFSU0VE
X1BST1BFUlRJRVMpCiAgICAgLCBtX2luUGFyc2VTaG9ydGhhbmQoMCkKICAgICAsIG1fY3VycmVu
dFNob3J0aGFuZCgwKQogICAgICwgbV9pbXBsaWNpdFNob3J0aGFuZChmYWxzZSkKQEAgLTM5NCw2
ICszOTgsNyBAQCB2b2lkIENTU1BhcnNlcjo6Y2xlYXJQcm9wZXJ0aWVzKCkKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbV9udW1QYXJzZWRQcm9wZXJ0aWVzOyBpKyspCiAgICAgICAgIGRl
bGV0ZSBtX3BhcnNlZFByb3BlcnRpZXNbaV07CiAgICAgbV9udW1QYXJzZWRQcm9wZXJ0aWVzID0g
MDsKKyAgICBtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggPSBJTlZBTElEX05V
TV9QQVJTRURfUFJPUEVSVElFUzsKICAgICBtX2hhc0ZvbnRGYWNlT25seVZhbHVlcyA9IGZhbHNl
OwogfQogCkBAIC01MTU5LDYgKzUxNjQsMzkgQEAgYm9vbCBDU1NQYXJzZXI6OmFkZFZhcmlhYmxl
RGVjbGFyYXRpb25CbG9jayhjb25zdCBDU1NQYXJzZXJTdHJpbmcmKQogCiAjZW5kaWYKIAorQ1NT
UnVsZSogQ1NTUGFyc2VyOjpjcmVhdGVQYWdlUnVsZShDU1NTZWxlY3RvciogLyogcGFnZVNlbGVj
dG9yICovKQoreworICAgIC8vIEZJWE1FOiBDcmVhdGUgcGFnZSBydWxlIGhlcmUsIHVzaW5nOgor
ICAgIC8vICAgICAgICAtIHBhZ2VTZWxlY3Rvci0+cHNldWRvVHlwZSgpOiB0aGUgcGFnZSBwc2V1
ZG8tY2xhc3MsIGkuZS4sIDpsZWZ0LCA6cmlnaHQsIG9yIDpmaXJzdAorICAgIC8vICAgICAgICAt
IHBhZ2VTZWxlY3Rvci0+bV90YWc6ICB0aGUgcGFnZSBuYW1lCisgICAgLy8gICAgICAgIC0gbV9w
YXJzZWRQcm9wZXJ0aWVzOiB0aGUgcGFnZSBwcm9wZXJ0aWVzCisKKyAgICBjbGVhclByb3BlcnRp
ZXMoKTsKKyAgICByZXR1cm4gMDsgLy8gdW50aWwgdGhpcyBtZXRob2QgaXMgaW1wbGVtZW50ZWQu
Cit9CisKK0NTU1J1bGUqIENTU1BhcnNlcjo6Y3JlYXRlTWFyZ2luQXRSdWxlKENTU1NlbGVjdG9y
OjpNYXJnaW5Cb3gmIC8qIG1hcmdpbkJveCAqLykKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50
IG1hcmdpbiBhdC1ydWxlIGhlcmUsIHVzaW5nOgorICAgIC8vICAgICAgICAtIG1hcmdpbkJveDog
bWFyZ2luIGJveAorICAgIC8vICAgICAgICAtIG1fcGFyc2VkUHJvcGVydGllczogcHJvcGVydGll
cyBhdCBbbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94LCBtX251bVBhcnNlZFBy
b3BlcnRpZXMpIGFyZSBmb3IgdGhpcyBhdC1ydWxlLgorCisgICAgZW5kRGVjbGFyYXRpb25zRm9y
TWFyZ2luQm94KCk7CisgICAgcmV0dXJuIDA7IC8vIHVudGlsIHRoaXMgbWV0aG9kIGlzIGltcGxl
bWVudGVkLgorfQorCit2b2lkIENTU1BhcnNlcjo6c3RhcnREZWNsYXJhdGlvbnNGb3JNYXJnaW5C
b3goKQoreworICAgIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveCA9IG1fbnVt
UGFyc2VkUHJvcGVydGllczsKK30KKwordm9pZCBDU1NQYXJzZXI6OmVuZERlY2xhcmF0aW9uc0Zv
ck1hcmdpbkJveCgpCit7CisgICAgQVNTRVJUKG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1h
cmdpbkJveCAhPSBJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElFUyk7CisgICAgcm9sbGJhY2tM
YXN0UHJvcGVydGllcyhtX251bVBhcnNlZFByb3BlcnRpZXMgLSBtX251bVBhcnNlZFByb3BlcnRp
ZXNCZWZvcmVNYXJnaW5Cb3gpOworICAgIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdp
bkJveCA9IElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTOworfQorCiB2b2lkIENTU1BhcnNl
cjo6Y2xlYXJWYXJpYWJsZXMoKQogewogICAgIG1fdmFyaWFibGVOYW1lcy5jbGVhcigpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aAppbmRleCAzOTIyYTJhLi4yNmY3MDA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMTc4LDYgKzE3OCwxMCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIENTU1J1bGUqIGNyZWF0ZVN0eWxlUnVsZShWZWN0
b3I8Q1NTU2VsZWN0b3IqPiogc2VsZWN0b3JzKTsKICAgICAgICAgQ1NTUnVsZSogY3JlYXRlRm9u
dEZhY2VSdWxlKCk7CiAgICAgICAgIENTU1J1bGUqIGNyZWF0ZVZhcmlhYmxlc1J1bGUoTWVkaWFM
aXN0KiwgYm9vbCB2YXJpYWJsZXNLZXl3b3JkKTsKKyAgICAgICAgQ1NTUnVsZSogY3JlYXRlUGFn
ZVJ1bGUoQ1NTU2VsZWN0b3IqIHBhZ2VTZWxlY3Rvcik7CisgICAgICAgIENTU1J1bGUqIGNyZWF0
ZU1hcmdpbkF0UnVsZShDU1NTZWxlY3Rvcjo6TWFyZ2luQm94JiBtYXJnaW5Cb3gpOworICAgICAg
ICB2b2lkIHN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCk7CisgICAgICAgIHZvaWQgZW5k
RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCk7CiAKICAgICAgICAgTWVkaWFRdWVyeUV4cCogY3Jl
YXRlRmxvYXRpbmdNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0cmluZyYsIENTU1BhcnNlclZh
bHVlTGlzdCopOwogICAgICAgICBNZWRpYVF1ZXJ5RXhwKiBzaW5rRmxvYXRpbmdNZWRpYVF1ZXJ5
RXhwKE1lZGlhUXVlcnlFeHAqKTsKQEAgLTIwOSw2ICsyMTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIENTU1NlbGVjdG9yTGlzdCogbV9zZWxlY3Rvckxpc3RGb3JQYXJzZVNlbGVj
dG9yOwogICAgICAgICB1bnNpZ25lZCBtX251bVBhcnNlZFByb3BlcnRpZXM7CiAgICAgICAgIHVu
c2lnbmVkIG1fbWF4UGFyc2VkUHJvcGVydGllczsKKyAgICAgICAgdW5zaWduZWQgbV9udW1QYXJz
ZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94OwogCiAgICAgICAgIGludCBtX2luUGFyc2VTaG9y
dGhhbmQ7CiAgICAgICAgIGludCBtX2N1cnJlbnRTaG9ydGhhbmQ7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5k
ZXggOWFlOWI5Zi4uZmMwNTYwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
Y3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtMTU3LDYgKzE1NywxMCBA
QCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNpbmdsZUJ1dHRvbiwgKCJzaW5nbGUtYnV0dG9u
IikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBub0J1dHRvbiwgKCJu
by1idXR0b24iKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGNvcm5l
clByZXNlbnQsICgiY29ybmVyLXByZXNlbnQiKSk7CisgICAgLy8gUGFnZWQgTWVkaWEgcHNldWRv
LWNsYXNzZXMKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbGVmdFBhZ2Us
ICgibGVmdCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmlnaHRQ
YWdlLCAoInJpZ2h0IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBm
aXJzdFBhZ2UsICgiZmlyc3QiKSk7CiAKICAgICBib29sIGVsZW1lbnQgPSBmYWxzZTsgLy8gcHNl
dWRvLWVsZW1lbnQKICAgICBib29sIGNvbXBhdCA9IGZhbHNlOyAvLyBzaW5nbGUgY29sb24gY29t
cGF0YmlsaXR5IG1vZGUKQEAgLTM3OSw2ICszODMsMTIgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6ZXh0
cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9UYXJn
ZXQ7CiAgICAgZWxzZSBpZiAobV92YWx1ZSA9PSB2aXNpdGVkKQogICAgICAgICBtX3BzZXVkb1R5
cGUgPSBQc2V1ZG9WaXNpdGVkOworICAgIGVsc2UgaWYgKG1fdmFsdWUgPT0gbGVmdFBhZ2UpCisg
ICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb0xlZnRQYWdlOworICAgIGVsc2UgaWYgKG1fdmFs
dWUgPT0gcmlnaHRQYWdlKQorICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9SaWdodFBhZ2U7
CisgICAgZWxzZSBpZiAobV92YWx1ZSA9PSBmaXJzdFBhZ2UpCisgICAgICAgIG1fcHNldWRvVHlw
ZSA9IFBzZXVkb0ZpcnN0UGFnZTsKIAogICAgIGlmIChtX21hdGNoID09IFBzZXVkb0NsYXNzICYm
IGVsZW1lbnQpIHsKICAgICAgICAgaWYgKCFjb21wYXQpIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3IuaCBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKaW5kZXggNzBmMjU3
NC4uNWE1NGI1MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0xODYsNiArMTg2LDI4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgICAgIFBzZXVkb0lucHV0TGlzdEJ1dHRvbiwKICAgICAgICAgICAg
IFBzZXVkb0lubmVyU3BpbkJ1dHRvbiwKICAgICAgICAgICAgIFBzZXVkb091dGVyU3BpbkJ1dHRv
biwKKyAgICAgICAgICAgIFBzZXVkb0xlZnRQYWdlLAorICAgICAgICAgICAgUHNldWRvUmlnaHRQ
YWdlLAorICAgICAgICAgICAgUHNldWRvRmlyc3RQYWdlLAorICAgICAgICB9OworCisgICAgICAg
IGVudW0gTWFyZ2luQm94IHsKKyAgICAgICAgICAgIFRvcExlZnRDb3JuZXIsCisgICAgICAgICAg
ICBUb3BMZWZ0LAorICAgICAgICAgICAgVG9wQ2VudGVyLAorICAgICAgICAgICAgVG9wUmlnaHQs
CisgICAgICAgICAgICBUb3BSaWdodENvcm5lciwKKyAgICAgICAgICAgIEJvdHRvbUxlZnRDb3Ju
ZXIsCisgICAgICAgICAgICBCb3R0b21MZWZ0LAorICAgICAgICAgICAgQm90dG9tQ2VudGVyLAor
ICAgICAgICAgICAgQm90dG9tUmlnaHQsCisgICAgICAgICAgICBCb3R0b21SaWdodENvcm5lciwK
KyAgICAgICAgICAgIExlZnRUb3AsCisgICAgICAgICAgICBMZWZ0TWlkZGxlLAorICAgICAgICAg
ICAgTGVmdEJvdHRvbSwKKyAgICAgICAgICAgIFJpZ2h0VG9wLAorICAgICAgICAgICAgUmlnaHRN
aWRkbGUsCisgICAgICAgICAgICBSaWdodEJvdHRvbSwKICAgICAgICAgfTsKIAogICAgICAgICBQ
c2V1ZG9UeXBlIHBzZXVkb1R5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvdG9r
ZW5pemVyLmZsZXggYi9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAppbmRleCAxNTY5ZWUyLi41
ZTM4OGM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAorKysgYi9XZWJD
b3JlL2Nzcy90b2tlbml6ZXIuZmxleApAQCAtNTMsNiArNTMsMjIgQEAgbnRoICAgICAgICAgICAg
ICgtP1swLTldKm5bXCstXVswLTldKyl8KC0/WzAtOV0qbikKIAogIkBpbXBvcnQiICAgICAgICAg
ICAgICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRvayA9IElNUE9SVF9TWU07IHJldHVybiB5eVRv
azt9CiAiQHBhZ2UiICAgICAgICAgICAgICAgICB7eXlUb2sgPSBQQUdFX1NZTTsgcmV0dXJuIHl5
VG9rO30KKyJAdG9wLWxlZnQtY29ybmVyIiAgICAgIHt5eVRvayA9IFRPUExFRlRDT1JORVJfU1lN
OyByZXR1cm4geXlUb2s7fQorIkB0b3AtbGVmdCIgICAgICAgICAgICAge3l5VG9rID0gVE9QTEVG
VF9TWU07IHJldHVybiB5eVRvazt9CisiQHRvcC1jZW50ZXIiICAgICAgICAgICB7eXlUb2sgPSBU
T1BDRU5URVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkB0b3AtcmlnaHQiICAgICAgICAgICAge3l5
VG9rID0gVE9QUklHSFRfU1lNOyByZXR1cm4geXlUb2s7fQorIkB0b3AtcmlnaHQtY29ybmVyIiAg
ICAge3l5VG9rID0gVE9QUklHSFRDT1JORVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20t
bGVmdC1jb3JuZXIiICAge3l5VG9rID0gQk9UVE9NTEVGVENPUk5FUl9TWU07IHJldHVybiB5eVRv
azt9CisiQGJvdHRvbS1sZWZ0IiAgICAgICAgICB7eXlUb2sgPSBCT1RUT01MRUZUX1NZTTsgcmV0
dXJuIHl5VG9rO30KKyJAYm90dG9tLWNlbnRlciIgICAgICAgIHt5eVRvayA9IEJPVFRPTUNFTlRF
Ul9TWU07IHJldHVybiB5eVRvazt9CisiQGJvdHRvbS1yaWdodCIgICAgICAgICB7eXlUb2sgPSBC
T1RUT01SSUdIVF9TWU07IHJldHVybiB5eVRvazt9CisiQGJvdHRvbS1yaWdodC1jb3JuZXIiICB7
eXlUb2sgPSBCT1RUT01SSUdIVENPUk5FUl9TWU07IHJldHVybiB5eVRvazt9CisiQGxlZnQtdG9w
IiAgICAgICAgICAgICB7eXlUb2sgPSBMRUZUVE9QX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAbGVm
dC1taWRkbGUiICAgICAgICAgIHt5eVRvayA9IExFRlRNSURETEVfU1lNOyByZXR1cm4geXlUb2s7
fQorIkBsZWZ0LWJvdHRvbSIgICAgICAgICAge3l5VG9rID0gTEVGVEJPVFRPTV9TWU07IHJldHVy
biB5eVRvazt9CisiQHJpZ2h0LXRvcCIgICAgICAgICAgICB7eXlUb2sgPSBSSUdIVFRPUF9TWU07
IHJldHVybiB5eVRvazt9CisiQHJpZ2h0LW1pZGRsZSIgICAgICAgICB7eXlUb2sgPSBSSUdIVE1J
RERMRV9TWU07IHJldHVybiB5eVRvazt9CisiQHJpZ2h0LWJvdHRvbSIgICAgICAgICB7eXlUb2sg
PSBSSUdIVEJPVFRPTV9TWU07IHJldHVybiB5eVRvazt9CiAiQG1lZGlhIiAgICAgICAgICAgICAg
ICB7QkVHSU4obWVkaWFxdWVyeSk7IHl5VG9rID0gTUVESUFfU1lNOyByZXR1cm4geXlUb2s7fQog
IkBmb250LWZhY2UiICAgICAgICAgICAge3l5VG9rID0gRk9OVF9GQUNFX1NZTTsgcmV0dXJuIHl5
VG9rO30KICJAY2hhcnNldCIgICAgICAgICAgICAgIHt5eVRvayA9IENIQVJTRVRfU1lNOyByZXR1
cm4geXlUb2s7fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50004</attachid>
            <date>2010-03-04 04:26:16 -0800</date>
            <delta_ts>2010-03-10 02:11:50 -0800</delta_ts>
            <desc>Enhance CSS parser for Paged Media (Iteration 1)</desc>
            <filename>bug-35329-20100304212614.patch</filename>
            <type>text/plain</type>
            <size>16848</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODcxOWI5Li43MjQ0OTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFn
ZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisgICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3Jh
bW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBy
dWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFyZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVu
dHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5n
LXBhZ2UtcnVsZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMi0yOCAgUm9iZXJ0IEhvZ2FuICA8cm9i
ZXJ0QHJvYmVydGhvZ2FuLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFu
bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWYyMmU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdlLXJ1bGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJz
aW5nLXBhZ2UtcnVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0
ODRmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBh
Z2UtcnVsZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICAu
dG9fYmVfc2hvd24geworICAgICAgICAgICAgZGlzcGxheTpub25lOworICAgICAgICAgICAgY29s
b3I6Z3JlZW47CisgICAgICAgIH0KKyAgICAgICAgLnRvX2JlX2hpZGRlbiB7CisgICAgICAgICAg
ICBkaXNwbGF5OmJsb2NrOworICAgICAgICAgICAgY29sb3I6cmVkOworICAgICAgICB9CisgICAg
PC9zdHlsZT4KKyAgICA8c3R5bGU+CisgICAgICAgIC8qIHBhZ2UgcnVsZSBtdXN0IG5vdCBpbnRl
cmZlcmUgd2l0aCBub24tcGFnZSBydWxlcyAqLworICAgICAgICAjdGVzdDEgeworICAgICAgICAg
ICAgZGlzcGxheTpub25lOworICAgICAgICB9CisgICAgICAgIEBwYWdlIHsKKyAgICAgICAgICAg
ICN0ZXN0MSB7CisgICAgICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIEB0b3AtY2VudGVyIHsKKyAgICAgICAgICAgICAgICBjb250ZW50OiJUZXN0
IjsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgI3Rlc3QyIHsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgICN0ZXN0MiB7CisgICAgICAgICAgICBkaXNwbGF5Om5v
bmU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzdHlsZT4KKyAgICAgICAgLyogTWFs
Zm9ybWVkIHBhZ2UgcnVsZSBtdXN0IG5vdCBpbnRlcmZlcmUgd2l0aCBub24tcGFnZSBydWxlcyBh
cyBmYXIgYXMgYnJhY2VzIGFyZSBwYWlyZWQgcHJvcGVybHkgKi8KKyAgICAgICAgQHBhZ2Ugewor
ICAgICAgICAgICAgcDpiZWZvcmUgeworICAgICAgICAgICAgICAgIGNvbnRlbnQ6Im1hbGZvcm1l
ZAorICAgICAgICAgICAgfQorICAgICAgICAgICAgQHRvcC1sZWZ0CisgICAgICAgIH0KKyAgICAg
ICAgI3Rlc3QzIHsKKyAgICAgICAgICAgIGRpc3BsYXk6bm9uZTsKKyAgICAgICAgfQorICAgIDwv
c3R5bGU+CisgICAgPHN0eWxlPgorICAgICAgICAvKiBTdWNjZXNzZnVsbHkgcGFyc2VkICovCisg
ICAgICAgICNsYXN0IHsKKyAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgIH0KKyAg
ICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgY2xhc3M9InRvX2JlX2hpZGRlbiIg
aWQ9InRlc3QxIj5GQUlMOiBUZXN0IDE8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idG9fYmVfaGlkZGVu
IiBpZD0idGVzdDIiPkZBSUw6IFRlc3QgMjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9oaWRk
ZW4iIGlkPSJ0ZXN0MyI+RkFJTDogVGVzdCAzPC9kaXY+CisgIDxkaXYgY2xhc3M9InRvX2JlX3No
b3duIiBpZD0ibGFzdCI+UEFTUzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBjOGNjMDEuLjJi
YTJmY2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTAtMDItMjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFnZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisg
ICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3JhbW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0
YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBydWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFy
ZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVudHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJl
IGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5CisKKyAgICAgICAgVGVzdDogZmFzdC9jc3Mv
cGFyc2luZy1wYWdlLXJ1bGUuaHRtbAorCisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
Q1NTUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y2xlYXJQcm9wZXJ0aWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6bGV4KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVBh
Z2VSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlTWFyZ2luQXRSdWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6c3RhcnREZWNsYXJhdGlvbnNGb3JNYXJn
aW5Cb3gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjplbmREZWNsYXJhdGlvbnNGb3JN
YXJnaW5Cb3gpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NT
U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1
ZG9UeXBlKToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NlbGVjdG9yOjopOgorICAgICAgICAqIGNzcy90b2tlbml6ZXIuZmxleDoKKwogMjAxMC0w
Mi0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTR3JhbW1h
ci55IGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IDlkNWViNmUuLmZlZjJjMjAgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQorKysgYi9XZWJDb3JlL2Nzcy9DU1NH
cmFtbWFyLnkKQEAgLTcwLDYgKzcwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKICAg
ICBDU1NSdWxlTGlzdCogcnVsZUxpc3Q7CiAgICAgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yOwogICAg
IFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxlY3Rvckxpc3Q7CisgICAgQ1NTU2VsZWN0b3I6Ok1h
cmdpbkJveCBtYXJnaW5Cb3g7CiAgICAgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHJlbGF0aW9uOwog
ICAgIE1lZGlhTGlzdCogbWVkaWFMaXN0OwogICAgIE1lZGlhUXVlcnkqIG1lZGlhUXVlcnk7CkBA
IC05Nyw3ICs5OCw3IEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lk
KiBwYXJzZXIpCiAKICV9CiAKLSVleHBlY3QgNTQKKyVleHBlY3QgNTUKIAogJW5vbmFzc29jIExP
V0VTVF9QUkVDCiAKQEAgLTE0Miw2ICsxNDMsMjMgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNU
WVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikKICV0b2tlbiBXRUJLSVRfREVGSU5FX1NZTQogJXRv
a2VuIFZBUklBQkxFU19GT1IKICV0b2tlbiBXRUJLSVRfVkFSSUFCTEVTX0RFQ0xTX1NZTQorJXRv
a2VuIDxtYXJnaW5Cb3g+IFRPUExFRlRDT1JORVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gVE9Q
TEVGVF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBUT1BDRU5URVJfU1lNCisldG9rZW4gPG1hcmdp
bkJveD4gVE9QUklHSFRfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gVE9QUklHSFRDT1JORVJfU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NTEVGVENPUk5FUl9TWU0KKyV0b2tlbiA8bWFyZ2lu
Qm94PiBCT1RUT01MRUZUX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IEJPVFRPTUNFTlRFUl9TWU0K
KyV0b2tlbiA8bWFyZ2luQm94PiBCT1RUT01SSUdIVF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBC
T1RUT01SSUdIVENPUk5FUl9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBMRUZUVE9QX1NZTQorJXRv
a2VuIDxtYXJnaW5Cb3g+IExFRlRNSURETEVfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gTEVGVEJP
VFRPTV9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVFRPUF9TWU0KKyV0b2tlbiA8bWFyZ2lu
Qm94PiBSSUdIVE1JRERMRV9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVEJPVFRPTV9TWU0K
KwogJXRva2VuIEFUS0VZV09SRAogCiAldG9rZW4gSU1QT1JUQU5UX1NZTQpAQCAtMTg4LDYgKzIw
Niw3IEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lkKiBwYXJzZXIp
CiAldHlwZSA8cnVsZT4gaW1wb3J0CiAldHlwZSA8cnVsZT4gbmFtZXNwYWNlCiAldHlwZSA8cnVs
ZT4gcGFnZQorJXR5cGUgPHJ1bGU+IG1hcmdpbl9ib3gKICV0eXBlIDxydWxlPiBmb250X2ZhY2UK
ICV0eXBlIDxydWxlPiBrZXlmcmFtZXMKICV0eXBlIDxydWxlPiBpbnZhbGlkX3J1bGUKQEAgLTIw
OSw2ICsyMjgsNyBAQCBzdGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCog
cGFyc2VyKQogJXR5cGUgPHN0cmluZz4gaWRlbnRfb3Jfc3RyaW5nCiAldHlwZSA8c3RyaW5nPiBt
ZWRpdW0KICV0eXBlIDxzdHJpbmc+IGhleGNvbG9yCisldHlwZSA8bWFyZ2luQm94PiBtYXJnaW5f
c3ltCiAKICV0eXBlIDxzdHJpbmc+IG1lZGlhX2ZlYXR1cmUKICV0eXBlIDxtZWRpYUxpc3Q+IG1l
ZGlhX2xpc3QKQEAgLTIzNyw2ICsyNTcsNyBAQCBzdGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUq
IHl5bHZhbCwgdm9pZCogcGFyc2VyKQogJXR5cGUgPHNlbGVjdG9yPiBjbGFzcwogJXR5cGUgPHNl
bGVjdG9yPiBhdHRyaWIKICV0eXBlIDxzZWxlY3Rvcj4gcHNldWRvCisldHlwZSA8c2VsZWN0b3I+
IHBhZ2Vfc2VsZWN0b3IKIAogJXR5cGUgPGJvb2xlYW4+IGRlY2xhcmF0aW9uX2xpc3QKICV0eXBl
IDxib29sZWFuPiBkZWNsX2xpc3QKQEAgLTcyOCwyNiArNzQ5LDEwNiBAQCBrZXk6CiAgICAgfQog
ICAgIDsKIAotLyoKIHBhZ2U6Ci0gICAgUEFHRV9TWU0gbWF5YmVfc3BhY2UgSURFTlQ/IHBzZXVk
b19wYWdlPyBtYXliZV9zcGFjZQotICAgICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbiBbICc7
JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbiBdKiAnfScgbWF5YmVfc3BhY2UKLSAgOwotCi1wc2V1
ZG9fcGFnZQotICA6ICc6JyBJREVOVAotICA7Ci0qLwotCi1wYWdlOgotICAgIFBBR0VfU1lNIGVy
cm9yIGludmFsaWRfYmxvY2sgeworICAgIFBBR0VfU1lNIG1heWJlX3NwYWNlIHBhZ2Vfc2VsZWN0
b3IgbWF5YmVfc3BhY2UKKyAgICAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25zX2FuZF9tYXJn
aW5zIGNsb3NpbmdfYnJhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxD
U1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICAkJCA9IHAtPmNyZWF0ZVBhZ2VSdWxlKHAtPnNp
bmtGbG9hdGluZ1NlbGVjdG9yKCQzKSk7CisgICAgfQorICAgIHwgUEFHRV9TWU0gZXJyb3IgaW52
YWxpZF9ibG9jayB7CiAgICAgICAkJCA9IDA7CiAgICAgfQotICB8IFBBR0VfU1lNIGVycm9yICc7
JyB7CisgICAgfCBQQUdFX1NZTSBlcnJvciAnOycgewogICAgICAgJCQgPSAwOwogICAgIH0KICAg
ICA7CiAKK3BhZ2Vfc2VsZWN0b3I6CisgICAgSURFTlQgeworICAgICAgICBDU1NQYXJzZXIqIHAg
PSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICAkJCA9IHAtPmNyZWF0
ZUZsb2F0aW5nU2VsZWN0b3IoKTsKKyAgICAgICAgJCQtPm1fdGFnID0gUXVhbGlmaWVkTmFtZShu
dWxsQXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVzcGFjZSk7CisgICAgfQorICAgIHwgSURFTlQg
cHNldWRvIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4o
cGFyc2VyKTsKKyAgICAgICAgJCQgPSAkMjsKKyAgICAgICAgaWYgKCQkKQorICAgICAgICAgICAg
JCQtPm1fdGFnID0gUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVz
cGFjZSk7CisgICAgfQorICAgIHwgcHNldWRvIHsKKyAgICAgICAgJCQgPSAkMTsKKyAgICB9Cisg
ICAgfCAvKiBlbXB0eSAqLyB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENT
U1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgICQkID0gcC0+Y3JlYXRlRmxvYXRpbmdTZWxlY3Rv
cigpOworICAgICAgICAkJC0+bV90YWcgPSBRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBudWxsQXRv
bSwgcC0+bV9kZWZhdWx0TmFtZXNwYWNlKTsKKyAgICB9CisgICAgOworCitkZWNsYXJhdGlvbnNf
YW5kX21hcmdpbnM6CisgICAgZGVjbGFyYXRpb25fbGlzdAorICAgIHwgZGVjbGFyYXRpb25zX2Fu
ZF9tYXJnaW5zIG1hcmdpbl9ib3ggbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdAorICAgIDsK
KworbWFyZ2luX2JveDoKKyAgICBtYXJnaW5fc3ltIHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NT
UGFyc2VyKj4ocGFyc2VyKS0+c3RhcnREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKTsKKyAgICB9
IG1heWJlX3NwYWNlICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0IGNsb3NpbmdfYnJh
Y2UgeworICAgICAgICAkJCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlciktPmNyZWF0
ZU1hcmdpbkF0UnVsZSgkMSk7CisgICAgfQorICAgIDsKKworbWFyZ2luX3N5bSA6CisgICAgVE9Q
TEVGVENPUk5FUl9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BMZWZ0Q29ybmVy
OworICAgIH0KKyAgICB8IFRPUExFRlRfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6
VG9wTGVmdDsKKyAgICB9CisgICAgfCBUT1BDRU5URVJfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NT
ZWxlY3Rvcjo6VG9wQ2VudGVyOworICAgIH0KKyAgICB8IFRPUFJJR0hUX1NZTSB7CisgICAgICAg
ICQkID0gQ1NTU2VsZWN0b3I6OlRvcFJpZ2h0OworICAgIH0KKyAgICB8IFRPUFJJR0hUQ09STkVS
X1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlRvcFJpZ2h0Q29ybmVyOworICAgIH0K
KyAgICB8IEJPVFRPTUxFRlRDT1JORVJfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6
Qm90dG9tTGVmdENvcm5lcjsKKyAgICB9CisgICAgfCBCT1RUT01MRUZUX1NZTSB7CisgICAgICAg
ICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbUxlZnQ7CisgICAgfQorICAgIHwgQk9UVE9NQ0VOVEVS
X1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbUNlbnRlcjsKKyAgICB9Cisg
ICAgfCBCT1RUT01SSUdIVF9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21S
aWdodDsKKyAgICB9CisgICAgfCBCT1RUT01SSUdIVENPUk5FUl9TWU0geworICAgICAgICAkJCA9
IENTU1NlbGVjdG9yOjpCb3R0b21SaWdodENvcm5lcjsKKyAgICB9CisgICAgfCBMRUZUVE9QX1NZ
TSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkxlZnRUb3A7CisgICAgfQorICAgIHwgTEVG
VE1JRERMRV9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpMZWZ0TWlkZGxlOworICAg
IH0KKyAgICB8IExFRlRCT1RUT01fU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6TGVm
dEJvdHRvbTsKKyAgICB9CisgICAgfCBSSUdIVFRPUF9TWU0geworICAgICAgICAkJCA9IENTU1Nl
bGVjdG9yOjpSaWdodFRvcDsKKyAgICB9CisgICAgfCBSSUdIVE1JRERMRV9TWU0geworICAgICAg
ICAkJCA9IENTU1NlbGVjdG9yOjpSaWdodE1pZGRsZTsKKyAgICB9CisgICAgfCBSSUdIVEJPVFRP
TV9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpSaWdodEJvdHRvbTsKKyAgICB9Cisg
ICAgOworCiBmb250X2ZhY2U6CiAgICAgRk9OVF9GQUNFX1NZTSBtYXliZV9zcGFjZQogICAgICd7
JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0ICd9JyAgbWF5YmVfc3BhY2UgewpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKaW5kZXggYTc0NjgwMS4uZWYwZGYxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02OSw2ICs2OSw3IEBA
CiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NT
S2V5ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgiCisj
aW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KIAogI2lmIEVOQUJMRShE
QVNIQk9BUkRfU1VQUE9SVCkKQEAgLTkxLDYgKzkyLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdURjsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgY29uc3QgdW5zaWduZWQgSU5WQUxJRF9O
VU1fUEFSU0VEX1BST1BFUlRJRVMgPSBVSU5UX01BWDsKKwogc3RhdGljIGJvb2wgZXF1YWwoY29u
c3QgQ1NTUGFyc2VyU3RyaW5nJiBhLCBjb25zdCBjaGFyKiBiKQogewogICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgewpAQCAtMTM1LDYgKzEzOCw3IEBAIENTU1BhcnNlcjo6
Q1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICAgICAsIG1fcGFyc2VkUHJvcGVydGllcyhz
dGF0aWNfY2FzdDxDU1NQcm9wZXJ0eSoqPihmYXN0TWFsbG9jKDMyICogc2l6ZW9mKENTU1Byb3Bl
cnR5KikpKSkKICAgICAsIG1fbnVtUGFyc2VkUHJvcGVydGllcygwKQogICAgICwgbV9tYXhQYXJz
ZWRQcm9wZXJ0aWVzKDMyKQorICAgICwgbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2lu
Qm94KElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTKQogICAgICwgbV9pblBhcnNlU2hvcnRo
YW5kKDApCiAgICAgLCBtX2N1cnJlbnRTaG9ydGhhbmQoMCkKICAgICAsIG1faW1wbGljaXRTaG9y
dGhhbmQoZmFsc2UpCkBAIC0zOTQsNiArMzk4LDcgQEAgdm9pZCBDU1NQYXJzZXI6OmNsZWFyUHJv
cGVydGllcygpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbnVtUGFyc2VkUHJvcGVy
dGllczsgaSsrKQogICAgICAgICBkZWxldGUgbV9wYXJzZWRQcm9wZXJ0aWVzW2ldOwogICAgIG1f
bnVtUGFyc2VkUHJvcGVydGllcyA9IDA7CisgICAgbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3Jl
TWFyZ2luQm94ID0gSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVM7CiAgICAgbV9oYXNGb250
RmFjZU9ubHlWYWx1ZXMgPSBmYWxzZTsKIH0KIApAQCAtNTE1OSw2ICs1MTY0LDM5IEBAIGJvb2wg
Q1NTUGFyc2VyOjphZGRWYXJpYWJsZURlY2xhcmF0aW9uQmxvY2soY29uc3QgQ1NTUGFyc2VyU3Ry
aW5nJikKIAogI2VuZGlmCiAKK0NTU1J1bGUqIENTU1BhcnNlcjo6Y3JlYXRlUGFnZVJ1bGUoQ1NT
U2VsZWN0b3IqIC8qIHBhZ2VTZWxlY3RvciAqLykKK3sKKyAgICAvLyBGSVhNRTogQ3JlYXRlIHBh
Z2UgcnVsZSBoZXJlLCB1c2luZzoKKyAgICAvLyAgICAgICAgLSBwYWdlU2VsZWN0b3ItPnBzZXVk
b1R5cGUoKTogdGhlIHBhZ2UgcHNldWRvLWNsYXNzLCBpLmUuLCA6bGVmdCwgOnJpZ2h0LCBvciA6
Zmlyc3QKKyAgICAvLyAgICAgICAgLSBwYWdlU2VsZWN0b3ItPm1fdGFnOiAgdGhlIHBhZ2UgbmFt
ZQorICAgIC8vICAgICAgICAtIG1fcGFyc2VkUHJvcGVydGllczogdGhlIHBhZ2UgcHJvcGVydGll
cworCisgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CisgICAgcmV0dXJuIDA7IC8vIHVudGlsIHRoaXMg
bWV0aG9kIGlzIGltcGxlbWVudGVkLgorfQorCitDU1NSdWxlKiBDU1NQYXJzZXI6OmNyZWF0ZU1h
cmdpbkF0UnVsZShDU1NTZWxlY3Rvcjo6TWFyZ2luQm94JiAvKiBtYXJnaW5Cb3ggKi8pCit7Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudCBtYXJnaW4gYXQtcnVsZSBoZXJlLCB1c2luZzoKKyAgICAv
LyAgICAgICAgLSBtYXJnaW5Cb3g6IG1hcmdpbiBib3gKKyAgICAvLyAgICAgICAgLSBtX3BhcnNl
ZFByb3BlcnRpZXM6IHByb3BlcnRpZXMgYXQgW21fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1h
cmdpbkJveCwgbV9udW1QYXJzZWRQcm9wZXJ0aWVzKSBhcmUgZm9yIHRoaXMgYXQtcnVsZS4KKwor
ICAgIGVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgpOworICAgIHJldHVybiAwOyAvLyB1bnRp
bCB0aGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZC4KK30KKwordm9pZCBDU1NQYXJzZXI6OnN0YXJ0
RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCkKK3sKKyAgICBtX251bVBhcnNlZFByb3BlcnRpZXNC
ZWZvcmVNYXJnaW5Cb3ggPSBtX251bVBhcnNlZFByb3BlcnRpZXM7Cit9CisKK3ZvaWQgQ1NTUGFy
c2VyOjplbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKQoreworICAgIEFTU0VSVChtX251bVBh
cnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggIT0gSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BF
UlRJRVMpOworICAgIHJvbGxiYWNrTGFzdFByb3BlcnRpZXMobV9udW1QYXJzZWRQcm9wZXJ0aWVz
IC0gbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94KTsKKyAgICBtX251bVBhcnNl
ZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggPSBJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElF
UzsKK30KKwogdm9pZCBDU1NQYXJzZXI6OmNsZWFyVmFyaWFibGVzKCkKIHsKICAgICBtX3Zhcmlh
YmxlTmFtZXMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggMzkyMmEyYS4uMjZmNzAwOCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgK
QEAgLTE3OCw2ICsxNzgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBDU1NSdWxl
KiBjcmVhdGVTdHlsZVJ1bGUoVmVjdG9yPENTU1NlbGVjdG9yKj4qIHNlbGVjdG9ycyk7CiAgICAg
ICAgIENTU1J1bGUqIGNyZWF0ZUZvbnRGYWNlUnVsZSgpOwogICAgICAgICBDU1NSdWxlKiBjcmVh
dGVWYXJpYWJsZXNSdWxlKE1lZGlhTGlzdCosIGJvb2wgdmFyaWFibGVzS2V5d29yZCk7CisgICAg
ICAgIENTU1J1bGUqIGNyZWF0ZVBhZ2VSdWxlKENTU1NlbGVjdG9yKiBwYWdlU2VsZWN0b3IpOwor
ICAgICAgICBDU1NSdWxlKiBjcmVhdGVNYXJnaW5BdFJ1bGUoQ1NTU2VsZWN0b3I6Ok1hcmdpbkJv
eCYgbWFyZ2luQm94KTsKKyAgICAgICAgdm9pZCBzdGFydERlY2xhcmF0aW9uc0Zvck1hcmdpbkJv
eCgpOworICAgICAgICB2b2lkIGVuZERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgpOwogCiAgICAg
ICAgIE1lZGlhUXVlcnlFeHAqIGNyZWF0ZUZsb2F0aW5nTWVkaWFRdWVyeUV4cChjb25zdCBBdG9t
aWNTdHJpbmcmLCBDU1NQYXJzZXJWYWx1ZUxpc3QqKTsKICAgICAgICAgTWVkaWFRdWVyeUV4cCog
c2lua0Zsb2F0aW5nTWVkaWFRdWVyeUV4cChNZWRpYVF1ZXJ5RXhwKik7CkBAIC0yMDksNiArMjEz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBDU1NTZWxlY3Rvckxpc3QqIG1fc2Vs
ZWN0b3JMaXN0Rm9yUGFyc2VTZWxlY3RvcjsKICAgICAgICAgdW5zaWduZWQgbV9udW1QYXJzZWRQ
cm9wZXJ0aWVzOwogICAgICAgICB1bnNpZ25lZCBtX21heFBhcnNlZFByb3BlcnRpZXM7CisgICAg
ICAgIHVuc2lnbmVkIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveDsKIAogICAg
ICAgICBpbnQgbV9pblBhcnNlU2hvcnRoYW5kOwogICAgICAgICBpbnQgbV9jdXJyZW50U2hvcnRo
YW5kOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IDlhZTliOWYuLmZjMDU2MDYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5j
cHAKQEAgLTE1Nyw2ICsxNTcsMTAgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5
cGUoKSBjb25zdAogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzaW5nbGVC
dXR0b24sICgic2luZ2xlLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgbm9CdXR0b24sICgibm8tYnV0dG9uIikpOwogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBjb3JuZXJQcmVzZW50LCAoImNvcm5lci1wcmVzZW50IikpOworICAg
IC8vIFBhZ2VkIE1lZGlhIHBzZXVkby1jbGFzc2VzCisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGxlZnRQYWdlLCAoImxlZnQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHJpZ2h0UGFnZSwgKCJyaWdodCIpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgZmlyc3RQYWdlLCAoImZpcnN0IikpOwogCiAgICAgYm9vbCBl
bGVtZW50ID0gZmFsc2U7IC8vIHBzZXVkby1lbGVtZW50CiAgICAgYm9vbCBjb21wYXQgPSBmYWxz
ZTsgLy8gc2luZ2xlIGNvbG9uIGNvbXBhdGJpbGl0eSBtb2RlCkBAIC0zNzksNiArMzgzLDEyIEBA
IHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QKICAgICAgICAgbV9w
c2V1ZG9UeXBlID0gUHNldWRvVGFyZ2V0OwogICAgIGVsc2UgaWYgKG1fdmFsdWUgPT0gdmlzaXRl
ZCkKICAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvVmlzaXRlZDsKKyAgICBlbHNlIGlmICht
X3ZhbHVlID09IGxlZnRQYWdlKQorICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9MZWZ0UGFn
ZTsKKyAgICBlbHNlIGlmIChtX3ZhbHVlID09IHJpZ2h0UGFnZSkKKyAgICAgICAgbV9wc2V1ZG9U
eXBlID0gUHNldWRvUmlnaHRQYWdlOworICAgIGVsc2UgaWYgKG1fdmFsdWUgPT0gZmlyc3RQYWdl
KQorICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9GaXJzdFBhZ2U7CiAKICAgICBpZiAobV9t
YXRjaCA9PSBQc2V1ZG9DbGFzcyAmJiBlbGVtZW50KSB7CiAgICAgICAgIGlmICghY29tcGF0KSAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9XZWJDb3JlL2Nzcy9DU1NT
ZWxlY3Rvci5oCmluZGV4IDcwZjI1NzQuLjVhNTRiNTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAtMTg2LDYg
KzE4NiwyOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBQc2V1ZG9JbnB1dExp
c3RCdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9Jbm5lclNwaW5CdXR0b24sCiAgICAgICAgICAg
ICBQc2V1ZG9PdXRlclNwaW5CdXR0b24sCisgICAgICAgICAgICBQc2V1ZG9MZWZ0UGFnZSwKKyAg
ICAgICAgICAgIFBzZXVkb1JpZ2h0UGFnZSwKKyAgICAgICAgICAgIFBzZXVkb0ZpcnN0UGFnZSwK
KyAgICAgICAgfTsKKworICAgICAgICBlbnVtIE1hcmdpbkJveCB7CisgICAgICAgICAgICBUb3BM
ZWZ0Q29ybmVyLAorICAgICAgICAgICAgVG9wTGVmdCwKKyAgICAgICAgICAgIFRvcENlbnRlciwK
KyAgICAgICAgICAgIFRvcFJpZ2h0LAorICAgICAgICAgICAgVG9wUmlnaHRDb3JuZXIsCisgICAg
ICAgICAgICBCb3R0b21MZWZ0Q29ybmVyLAorICAgICAgICAgICAgQm90dG9tTGVmdCwKKyAgICAg
ICAgICAgIEJvdHRvbUNlbnRlciwKKyAgICAgICAgICAgIEJvdHRvbVJpZ2h0LAorICAgICAgICAg
ICAgQm90dG9tUmlnaHRDb3JuZXIsCisgICAgICAgICAgICBMZWZ0VG9wLAorICAgICAgICAgICAg
TGVmdE1pZGRsZSwKKyAgICAgICAgICAgIExlZnRCb3R0b20sCisgICAgICAgICAgICBSaWdodFRv
cCwKKyAgICAgICAgICAgIFJpZ2h0TWlkZGxlLAorICAgICAgICAgICAgUmlnaHRCb3R0b20sCiAg
ICAgICAgIH07CiAKICAgICAgICAgUHNldWRvVHlwZSBwc2V1ZG9UeXBlKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4IGIvV2ViQ29yZS9jc3MvdG9rZW5pemVy
LmZsZXgKaW5kZXggMTU2OWVlMi4uNWUzODhjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvdG9r
ZW5pemVyLmZsZXgKKysrIGIvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKQEAgLTUzLDYgKzUz
LDIyIEBAIG50aCAgICAgICAgICAgICAoLT9bMC05XSpuW1wrLV1bMC05XSspfCgtP1swLTldKm4p
CiAKICJAaW1wb3J0IiAgICAgICAgICAgICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBJ
TVBPUlRfU1lNOyByZXR1cm4geXlUb2s7fQogIkBwYWdlIiAgICAgICAgICAgICAgICAge3l5VG9r
ID0gUEFHRV9TWU07IHJldHVybiB5eVRvazt9CisiQHRvcC1sZWZ0LWNvcm5lciIgICAgICB7eXlU
b2sgPSBUT1BMRUZUQ09STkVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAdG9wLWxlZnQiICAgICAg
ICAgICAgIHt5eVRvayA9IFRPUExFRlRfU1lNOyByZXR1cm4geXlUb2s7fQorIkB0b3AtY2VudGVy
IiAgICAgICAgICAge3l5VG9rID0gVE9QQ0VOVEVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAdG9w
LXJpZ2h0IiAgICAgICAgICAgIHt5eVRvayA9IFRPUFJJR0hUX1NZTTsgcmV0dXJuIHl5VG9rO30K
KyJAdG9wLXJpZ2h0LWNvcm5lciIgICAgIHt5eVRvayA9IFRPUFJJR0hUQ09STkVSX1NZTTsgcmV0
dXJuIHl5VG9rO30KKyJAYm90dG9tLWxlZnQtY29ybmVyIiAgIHt5eVRvayA9IEJPVFRPTUxFRlRD
T1JORVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20tbGVmdCIgICAgICAgICAge3l5VG9r
ID0gQk9UVE9NTEVGVF9TWU07IHJldHVybiB5eVRvazt9CisiQGJvdHRvbS1jZW50ZXIiICAgICAg
ICB7eXlUb2sgPSBCT1RUT01DRU5URVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20tcmln
aHQiICAgICAgICAge3l5VG9rID0gQk9UVE9NUklHSFRfU1lNOyByZXR1cm4geXlUb2s7fQorIkBi
b3R0b20tcmlnaHQtY29ybmVyIiAge3l5VG9rID0gQk9UVE9NUklHSFRDT1JORVJfU1lNOyByZXR1
cm4geXlUb2s7fQorIkBsZWZ0LXRvcCIgICAgICAgICAgICAge3l5VG9rID0gTEVGVFRPUF9TWU07
IHJldHVybiB5eVRvazt9CisiQGxlZnQtbWlkZGxlIiAgICAgICAgICB7eXlUb2sgPSBMRUZUTUlE
RExFX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAbGVmdC1ib3R0b20iICAgICAgICAgIHt5eVRvayA9
IExFRlRCT1RUT01fU1lNOyByZXR1cm4geXlUb2s7fQorIkByaWdodC10b3AiICAgICAgICAgICAg
e3l5VG9rID0gUklHSFRUT1BfU1lNOyByZXR1cm4geXlUb2s7fQorIkByaWdodC1taWRkbGUiICAg
ICAgICAge3l5VG9rID0gUklHSFRNSURETEVfU1lNOyByZXR1cm4geXlUb2s7fQorIkByaWdodC1i
b3R0b20iICAgICAgICAge3l5VG9rID0gUklHSFRCT1RUT01fU1lNOyByZXR1cm4geXlUb2s7fQog
IkBtZWRpYSIgICAgICAgICAgICAgICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRvayA9IE1FRElB
X1NZTTsgcmV0dXJuIHl5VG9rO30KICJAZm9udC1mYWNlIiAgICAgICAgICAgIHt5eVRvayA9IEZP
TlRfRkFDRV9TWU07IHJldHVybiB5eVRvazt9CiAiQGNoYXJzZXQiICAgICAgICAgICAgICB7eXlU
b2sgPSBDSEFSU0VUX1NZTTsgcmV0dXJuIHl5VG9rO30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50382</attachid>
            <date>2010-03-10 02:11:55 -0800</date>
            <delta_ts>2010-04-07 19:22:43 -0700</delta_ts>
            <desc>Enhance CSS parser for Paged Media (Iteration 1)</desc>
            <filename>bug-35329-20100310191153.patch</filename>
            <type>text/plain</type>
            <size>16769</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODcxOWI5Li43MjQ0OTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFn
ZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisgICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3Jh
bW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBy
dWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFyZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVu
dHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5n
LXBhZ2UtcnVsZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMi0yOCAgUm9iZXJ0IEhvZ2FuICA8cm9i
ZXJ0QHJvYmVydGhvZ2FuLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFu
bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWYyMmU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdlLXJ1bGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJz
aW5nLXBhZ2UtcnVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0
ODRmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBh
Z2UtcnVsZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICAu
dG9fYmVfc2hvd24geworICAgICAgICAgICAgZGlzcGxheTpub25lOworICAgICAgICAgICAgY29s
b3I6Z3JlZW47CisgICAgICAgIH0KKyAgICAgICAgLnRvX2JlX2hpZGRlbiB7CisgICAgICAgICAg
ICBkaXNwbGF5OmJsb2NrOworICAgICAgICAgICAgY29sb3I6cmVkOworICAgICAgICB9CisgICAg
PC9zdHlsZT4KKyAgICA8c3R5bGU+CisgICAgICAgIC8qIHBhZ2UgcnVsZSBtdXN0IG5vdCBpbnRl
cmZlcmUgd2l0aCBub24tcGFnZSBydWxlcyAqLworICAgICAgICAjdGVzdDEgeworICAgICAgICAg
ICAgZGlzcGxheTpub25lOworICAgICAgICB9CisgICAgICAgIEBwYWdlIHsKKyAgICAgICAgICAg
ICN0ZXN0MSB7CisgICAgICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIEB0b3AtY2VudGVyIHsKKyAgICAgICAgICAgICAgICBjb250ZW50OiJUZXN0
IjsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgI3Rlc3QyIHsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgICN0ZXN0MiB7CisgICAgICAgICAgICBkaXNwbGF5Om5v
bmU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzdHlsZT4KKyAgICAgICAgLyogTWFs
Zm9ybWVkIHBhZ2UgcnVsZSBtdXN0IG5vdCBpbnRlcmZlcmUgd2l0aCBub24tcGFnZSBydWxlcyBh
cyBmYXIgYXMgYnJhY2VzIGFyZSBwYWlyZWQgcHJvcGVybHkgKi8KKyAgICAgICAgQHBhZ2Ugewor
ICAgICAgICAgICAgcDpiZWZvcmUgeworICAgICAgICAgICAgICAgIGNvbnRlbnQ6Im1hbGZvcm1l
ZAorICAgICAgICAgICAgfQorICAgICAgICAgICAgQHRvcC1sZWZ0CisgICAgICAgIH0KKyAgICAg
ICAgI3Rlc3QzIHsKKyAgICAgICAgICAgIGRpc3BsYXk6bm9uZTsKKyAgICAgICAgfQorICAgIDwv
c3R5bGU+CisgICAgPHN0eWxlPgorICAgICAgICAvKiBTdWNjZXNzZnVsbHkgcGFyc2VkICovCisg
ICAgICAgICNsYXN0IHsKKyAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgIH0KKyAg
ICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgY2xhc3M9InRvX2JlX2hpZGRlbiIg
aWQ9InRlc3QxIj5GQUlMOiBUZXN0IDE8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idG9fYmVfaGlkZGVu
IiBpZD0idGVzdDIiPkZBSUw6IFRlc3QgMjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9oaWRk
ZW4iIGlkPSJ0ZXN0MyI+RkFJTDogVGVzdCAzPC9kaXY+CisgIDxkaXYgY2xhc3M9InRvX2JlX3No
b3duIiBpZD0ibGFzdCI+UEFTUzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBjOGNjMDEuLjJi
YTJmY2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTAtMDItMjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFnZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisg
ICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3JhbW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0
YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBydWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFy
ZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVudHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJl
IGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5CisKKyAgICAgICAgVGVzdDogZmFzdC9jc3Mv
cGFyc2luZy1wYWdlLXJ1bGUuaHRtbAorCisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
Q1NTUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y2xlYXJQcm9wZXJ0aWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6bGV4KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVBh
Z2VSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlTWFyZ2luQXRSdWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6c3RhcnREZWNsYXJhdGlvbnNGb3JNYXJn
aW5Cb3gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjplbmREZWNsYXJhdGlvbnNGb3JN
YXJnaW5Cb3gpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NT
U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1
ZG9UeXBlKToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NlbGVjdG9yOjopOgorICAgICAgICAqIGNzcy90b2tlbml6ZXIuZmxleDoKKwogMjAxMC0w
Mi0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTR3JhbW1h
ci55IGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IDlkNWViNmUuLjVmMjlkOGYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQorKysgYi9XZWJDb3JlL2Nzcy9DU1NH
cmFtbWFyLnkKQEAgLTcwLDYgKzcwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKICAg
ICBDU1NSdWxlTGlzdCogcnVsZUxpc3Q7CiAgICAgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yOwogICAg
IFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxlY3Rvckxpc3Q7CisgICAgQ1NTU2VsZWN0b3I6Ok1h
cmdpbkJveCBtYXJnaW5Cb3g7CiAgICAgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHJlbGF0aW9uOwog
ICAgIE1lZGlhTGlzdCogbWVkaWFMaXN0OwogICAgIE1lZGlhUXVlcnkqIG1lZGlhUXVlcnk7CkBA
IC05Nyw3ICs5OCw3IEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lk
KiBwYXJzZXIpCiAKICV9CiAKLSVleHBlY3QgNTQKKyVleHBlY3QgNTUKIAogJW5vbmFzc29jIExP
V0VTVF9QUkVDCiAKQEAgLTE0Miw2ICsxNDMsMjMgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNU
WVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikKICV0b2tlbiBXRUJLSVRfREVGSU5FX1NZTQogJXRv
a2VuIFZBUklBQkxFU19GT1IKICV0b2tlbiBXRUJLSVRfVkFSSUFCTEVTX0RFQ0xTX1NZTQorJXRv
a2VuIDxtYXJnaW5Cb3g+IFRPUExFRlRDT1JORVJfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gVE9Q
TEVGVF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBUT1BDRU5URVJfU1lNCisldG9rZW4gPG1hcmdp
bkJveD4gVE9QUklHSFRfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gVE9QUklHSFRDT1JORVJfU1lN
CisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NTEVGVENPUk5FUl9TWU0KKyV0b2tlbiA8bWFyZ2lu
Qm94PiBCT1RUT01MRUZUX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IEJPVFRPTUNFTlRFUl9TWU0K
KyV0b2tlbiA8bWFyZ2luQm94PiBCT1RUT01SSUdIVF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBC
T1RUT01SSUdIVENPUk5FUl9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBMRUZUVE9QX1NZTQorJXRv
a2VuIDxtYXJnaW5Cb3g+IExFRlRNSURETEVfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gTEVGVEJP
VFRPTV9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVFRPUF9TWU0KKyV0b2tlbiA8bWFyZ2lu
Qm94PiBSSUdIVE1JRERMRV9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBSSUdIVEJPVFRPTV9TWU0K
KwogJXRva2VuIEFUS0VZV09SRAogCiAldG9rZW4gSU1QT1JUQU5UX1NZTQpAQCAtMTg4LDYgKzIw
Niw3IEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lkKiBwYXJzZXIp
CiAldHlwZSA8cnVsZT4gaW1wb3J0CiAldHlwZSA8cnVsZT4gbmFtZXNwYWNlCiAldHlwZSA8cnVs
ZT4gcGFnZQorJXR5cGUgPHJ1bGU+IG1hcmdpbl9ib3gKICV0eXBlIDxydWxlPiBmb250X2ZhY2UK
ICV0eXBlIDxydWxlPiBrZXlmcmFtZXMKICV0eXBlIDxydWxlPiBpbnZhbGlkX3J1bGUKQEAgLTIw
OSw2ICsyMjgsNyBAQCBzdGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCog
cGFyc2VyKQogJXR5cGUgPHN0cmluZz4gaWRlbnRfb3Jfc3RyaW5nCiAldHlwZSA8c3RyaW5nPiBt
ZWRpdW0KICV0eXBlIDxzdHJpbmc+IGhleGNvbG9yCisldHlwZSA8bWFyZ2luQm94PiBtYXJnaW5f
c3ltCiAKICV0eXBlIDxzdHJpbmc+IG1lZGlhX2ZlYXR1cmUKICV0eXBlIDxtZWRpYUxpc3Q+IG1l
ZGlhX2xpc3QKQEAgLTIzNyw2ICsyNTcsNyBAQCBzdGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUq
IHl5bHZhbCwgdm9pZCogcGFyc2VyKQogJXR5cGUgPHNlbGVjdG9yPiBjbGFzcwogJXR5cGUgPHNl
bGVjdG9yPiBhdHRyaWIKICV0eXBlIDxzZWxlY3Rvcj4gcHNldWRvCisldHlwZSA8c2VsZWN0b3I+
IHBhZ2Vfc2VsZWN0b3IKIAogJXR5cGUgPGJvb2xlYW4+IGRlY2xhcmF0aW9uX2xpc3QKICV0eXBl
IDxib29sZWFuPiBkZWNsX2xpc3QKQEAgLTcyOCwyNiArNzQ5LDEwNSBAQCBrZXk6CiAgICAgfQog
ICAgIDsKIAotLyoKIHBhZ2U6Ci0gICAgUEFHRV9TWU0gbWF5YmVfc3BhY2UgSURFTlQ/IHBzZXVk
b19wYWdlPyBtYXliZV9zcGFjZQotICAgICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbiBbICc7
JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbiBdKiAnfScgbWF5YmVfc3BhY2UKLSAgOwotCi1wc2V1
ZG9fcGFnZQotICA6ICc6JyBJREVOVAotICA7Ci0qLwotCi1wYWdlOgotICAgIFBBR0VfU1lNIGVy
cm9yIGludmFsaWRfYmxvY2sgeworICAgIFBBR0VfU1lNIG1heWJlX3NwYWNlIHBhZ2Vfc2VsZWN0
b3IgbWF5YmVfc3BhY2UKKyAgICAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25zX2FuZF9tYXJn
aW5zIGNsb3NpbmdfYnJhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxD
U1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICAkJCA9IHAtPmNyZWF0ZVBhZ2VSdWxlKHAtPnNp
bmtGbG9hdGluZ1NlbGVjdG9yKCQzKSk7CisgICAgfQorICAgIHwgUEFHRV9TWU0gZXJyb3IgaW52
YWxpZF9ibG9jayB7CiAgICAgICAkJCA9IDA7CiAgICAgfQotICB8IFBBR0VfU1lNIGVycm9yICc7
JyB7CisgICAgfCBQQUdFX1NZTSBlcnJvciAnOycgewogICAgICAgJCQgPSAwOwogICAgIH0KICAg
ICA7CiAKK3BhZ2Vfc2VsZWN0b3I6CisgICAgSURFTlQgeworICAgICAgICBDU1NQYXJzZXIqIHAg
PSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICAkJCA9IHAtPmNyZWF0
ZUZsb2F0aW5nU2VsZWN0b3IoKTsKKyAgICAgICAgJCQtPm1fdGFnID0gUXVhbGlmaWVkTmFtZShu
dWxsQXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVzcGFjZSk7CisgICAgfQorICAgIHwgSURFTlQg
cHNldWRvIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4o
cGFyc2VyKTsKKyAgICAgICAgJCQgPSAkMjsKKyAgICAgICAgaWYgKCQkKQorICAgICAgICAgICAg
JCQtPm1fdGFnID0gUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHAtPm1fZGVmYXVsdE5hbWVz
cGFjZSk7CisgICAgfQorICAgIHwgcHNldWRvIHsKKyAgICAgICAgJCQgPSAkMTsKKyAgICB9Cisg
ICAgfCAvKiBlbXB0eSAqLyB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENT
U1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgICQkID0gcC0+Y3JlYXRlRmxvYXRpbmdTZWxlY3Rv
cigpOworICAgIH0KKyAgICA7CisKK2RlY2xhcmF0aW9uc19hbmRfbWFyZ2luczoKKyAgICBkZWNs
YXJhdGlvbl9saXN0CisgICAgfCBkZWNsYXJhdGlvbnNfYW5kX21hcmdpbnMgbWFyZ2luX2JveCBt
YXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0CisgICAgOworCittYXJnaW5fYm94OgorICAgIG1h
cmdpbl9zeW0geworICAgICAgICBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5zdGFy
dERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgpOworICAgIH0gbWF5YmVfc3BhY2UgJ3snIG1heWJl
X3NwYWNlIGRlY2xhcmF0aW9uX2xpc3QgY2xvc2luZ19icmFjZSB7CisgICAgICAgICQkID0gc3Rh
dGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKS0+Y3JlYXRlTWFyZ2luQXRSdWxlKCQxKTsKKyAg
ICB9CisgICAgOworCittYXJnaW5fc3ltIDoKKyAgICBUT1BMRUZUQ09STkVSX1NZTSB7CisgICAg
ICAgICQkID0gQ1NTU2VsZWN0b3I6OlRvcExlZnRDb3JuZXI7CisgICAgfQorICAgIHwgVE9QTEVG
VF9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BMZWZ0OworICAgIH0KKyAgICB8
IFRPUENFTlRFUl9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BDZW50ZXI7Cisg
ICAgfQorICAgIHwgVE9QUklHSFRfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6VG9w
UmlnaHQ7CisgICAgfQorICAgIHwgVE9QUklHSFRDT1JORVJfU1lNIHsKKyAgICAgICAgJCQgPSBD
U1NTZWxlY3Rvcjo6VG9wUmlnaHRDb3JuZXI7CisgICAgfQorICAgIHwgQk9UVE9NTEVGVENPUk5F
Ul9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21MZWZ0Q29ybmVyOworICAg
IH0KKyAgICB8IEJPVFRPTUxFRlRfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Qm90
dG9tTGVmdDsKKyAgICB9CisgICAgfCBCT1RUT01DRU5URVJfU1lNIHsKKyAgICAgICAgJCQgPSBD
U1NTZWxlY3Rvcjo6Qm90dG9tQ2VudGVyOworICAgIH0KKyAgICB8IEJPVFRPTVJJR0hUX1NZTSB7
CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbVJpZ2h0OworICAgIH0KKyAgICB8IEJP
VFRPTVJJR0hUQ09STkVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbVJp
Z2h0Q29ybmVyOworICAgIH0KKyAgICB8IExFRlRUT1BfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NT
ZWxlY3Rvcjo6TGVmdFRvcDsKKyAgICB9CisgICAgfCBMRUZUTUlERExFX1NZTSB7CisgICAgICAg
ICQkID0gQ1NTU2VsZWN0b3I6OkxlZnRNaWRkbGU7CisgICAgfQorICAgIHwgTEVGVEJPVFRPTV9T
WU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpMZWZ0Qm90dG9tOworICAgIH0KKyAgICB8
IFJJR0hUVE9QX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlJpZ2h0VG9wOworICAg
IH0KKyAgICB8IFJJR0hUTUlERExFX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlJp
Z2h0TWlkZGxlOworICAgIH0KKyAgICB8IFJJR0hUQk9UVE9NX1NZTSB7CisgICAgICAgICQkID0g
Q1NTU2VsZWN0b3I6OlJpZ2h0Qm90dG9tOworICAgIH0KKyAgICA7CisKIGZvbnRfZmFjZToKICAg
ICBGT05UX0ZBQ0VfU1lNIG1heWJlX3NwYWNlCiAgICAgJ3snIG1heWJlX3NwYWNlIGRlY2xhcmF0
aW9uX2xpc3QgJ30nICBtYXliZV9zcGFjZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBhNzQ2ODAxLi5lZjBk
ZjEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJXZWJLaXRDU1NL
ZXlmcmFtZVJ1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIKKyNpbmNsdWRlIDxsaW1pdHMuaD4KICNp
bmNsdWRlIDx3dGYvZHRvYS5oPgogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQpAQCAt
OTEsNiArOTIsOCBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElFUyA9
IFVJTlRfTUFYOworCiBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDU1NQYXJzZXJTdHJpbmcmIGEs
IGNvbnN0IGNoYXIqIGIpCiB7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytp
KSB7CkBAIC0xMzUsNiArMTM4LDcgQEAgQ1NTUGFyc2VyOjpDU1NQYXJzZXIoYm9vbCBzdHJpY3RQ
YXJzaW5nKQogICAgICwgbV9wYXJzZWRQcm9wZXJ0aWVzKHN0YXRpY19jYXN0PENTU1Byb3BlcnR5
Kio+KGZhc3RNYWxsb2MoMzIgKiBzaXplb2YoQ1NTUHJvcGVydHkqKSkpKQogICAgICwgbV9udW1Q
YXJzZWRQcm9wZXJ0aWVzKDApCiAgICAgLCBtX21heFBhcnNlZFByb3BlcnRpZXMoMzIpCisgICAg
LCBtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3goSU5WQUxJRF9OVU1fUEFSU0VE
X1BST1BFUlRJRVMpCiAgICAgLCBtX2luUGFyc2VTaG9ydGhhbmQoMCkKICAgICAsIG1fY3VycmVu
dFNob3J0aGFuZCgwKQogICAgICwgbV9pbXBsaWNpdFNob3J0aGFuZChmYWxzZSkKQEAgLTM5NCw2
ICszOTgsNyBAQCB2b2lkIENTU1BhcnNlcjo6Y2xlYXJQcm9wZXJ0aWVzKCkKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbV9udW1QYXJzZWRQcm9wZXJ0aWVzOyBpKyspCiAgICAgICAgIGRl
bGV0ZSBtX3BhcnNlZFByb3BlcnRpZXNbaV07CiAgICAgbV9udW1QYXJzZWRQcm9wZXJ0aWVzID0g
MDsKKyAgICBtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3ggPSBJTlZBTElEX05V
TV9QQVJTRURfUFJPUEVSVElFUzsKICAgICBtX2hhc0ZvbnRGYWNlT25seVZhbHVlcyA9IGZhbHNl
OwogfQogCkBAIC01MTU5LDYgKzUxNjQsMzkgQEAgYm9vbCBDU1NQYXJzZXI6OmFkZFZhcmlhYmxl
RGVjbGFyYXRpb25CbG9jayhjb25zdCBDU1NQYXJzZXJTdHJpbmcmKQogCiAjZW5kaWYKIAorQ1NT
UnVsZSogQ1NTUGFyc2VyOjpjcmVhdGVQYWdlUnVsZShDU1NTZWxlY3RvciogLyogcGFnZVNlbGVj
dG9yICovKQoreworICAgIC8vIEZJWE1FOiBDcmVhdGUgcGFnZSBydWxlIGhlcmUsIHVzaW5nOgor
ICAgIC8vICAgICAgICAtIHBhZ2VTZWxlY3Rvci0+cHNldWRvVHlwZSgpOiB0aGUgcGFnZSBwc2V1
ZG8tY2xhc3MsIGkuZS4sIDpsZWZ0LCA6cmlnaHQsIG9yIDpmaXJzdAorICAgIC8vICAgICAgICAt
IHBhZ2VTZWxlY3Rvci0+bV90YWc6ICB0aGUgcGFnZSBuYW1lCisgICAgLy8gICAgICAgIC0gbV9w
YXJzZWRQcm9wZXJ0aWVzOiB0aGUgcGFnZSBwcm9wZXJ0aWVzCisKKyAgICBjbGVhclByb3BlcnRp
ZXMoKTsKKyAgICByZXR1cm4gMDsgLy8gdW50aWwgdGhpcyBtZXRob2QgaXMgaW1wbGVtZW50ZWQu
Cit9CisKK0NTU1J1bGUqIENTU1BhcnNlcjo6Y3JlYXRlTWFyZ2luQXRSdWxlKENTU1NlbGVjdG9y
OjpNYXJnaW5Cb3gmIC8qIG1hcmdpbkJveCAqLykKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50
IG1hcmdpbiBhdC1ydWxlIGhlcmUsIHVzaW5nOgorICAgIC8vICAgICAgICAtIG1hcmdpbkJveDog
bWFyZ2luIGJveAorICAgIC8vICAgICAgICAtIG1fcGFyc2VkUHJvcGVydGllczogcHJvcGVydGll
cyBhdCBbbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94LCBtX251bVBhcnNlZFBy
b3BlcnRpZXMpIGFyZSBmb3IgdGhpcyBhdC1ydWxlLgorCisgICAgZW5kRGVjbGFyYXRpb25zRm9y
TWFyZ2luQm94KCk7CisgICAgcmV0dXJuIDA7IC8vIHVudGlsIHRoaXMgbWV0aG9kIGlzIGltcGxl
bWVudGVkLgorfQorCit2b2lkIENTU1BhcnNlcjo6c3RhcnREZWNsYXJhdGlvbnNGb3JNYXJnaW5C
b3goKQoreworICAgIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveCA9IG1fbnVt
UGFyc2VkUHJvcGVydGllczsKK30KKwordm9pZCBDU1NQYXJzZXI6OmVuZERlY2xhcmF0aW9uc0Zv
ck1hcmdpbkJveCgpCit7CisgICAgQVNTRVJUKG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1h
cmdpbkJveCAhPSBJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElFUyk7CisgICAgcm9sbGJhY2tM
YXN0UHJvcGVydGllcyhtX251bVBhcnNlZFByb3BlcnRpZXMgLSBtX251bVBhcnNlZFByb3BlcnRp
ZXNCZWZvcmVNYXJnaW5Cb3gpOworICAgIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdp
bkJveCA9IElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTOworfQorCiB2b2lkIENTU1BhcnNl
cjo6Y2xlYXJWYXJpYWJsZXMoKQogewogICAgIG1fdmFyaWFibGVOYW1lcy5jbGVhcigpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aAppbmRleCAzOTIyYTJhLi4yNmY3MDA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMTc4LDYgKzE3OCwxMCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIENTU1J1bGUqIGNyZWF0ZVN0eWxlUnVsZShWZWN0
b3I8Q1NTU2VsZWN0b3IqPiogc2VsZWN0b3JzKTsKICAgICAgICAgQ1NTUnVsZSogY3JlYXRlRm9u
dEZhY2VSdWxlKCk7CiAgICAgICAgIENTU1J1bGUqIGNyZWF0ZVZhcmlhYmxlc1J1bGUoTWVkaWFM
aXN0KiwgYm9vbCB2YXJpYWJsZXNLZXl3b3JkKTsKKyAgICAgICAgQ1NTUnVsZSogY3JlYXRlUGFn
ZVJ1bGUoQ1NTU2VsZWN0b3IqIHBhZ2VTZWxlY3Rvcik7CisgICAgICAgIENTU1J1bGUqIGNyZWF0
ZU1hcmdpbkF0UnVsZShDU1NTZWxlY3Rvcjo6TWFyZ2luQm94JiBtYXJnaW5Cb3gpOworICAgICAg
ICB2b2lkIHN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCk7CisgICAgICAgIHZvaWQgZW5k
RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCk7CiAKICAgICAgICAgTWVkaWFRdWVyeUV4cCogY3Jl
YXRlRmxvYXRpbmdNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0cmluZyYsIENTU1BhcnNlclZh
bHVlTGlzdCopOwogICAgICAgICBNZWRpYVF1ZXJ5RXhwKiBzaW5rRmxvYXRpbmdNZWRpYVF1ZXJ5
RXhwKE1lZGlhUXVlcnlFeHAqKTsKQEAgLTIwOSw2ICsyMTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIENTU1NlbGVjdG9yTGlzdCogbV9zZWxlY3Rvckxpc3RGb3JQYXJzZVNlbGVj
dG9yOwogICAgICAgICB1bnNpZ25lZCBtX251bVBhcnNlZFByb3BlcnRpZXM7CiAgICAgICAgIHVu
c2lnbmVkIG1fbWF4UGFyc2VkUHJvcGVydGllczsKKyAgICAgICAgdW5zaWduZWQgbV9udW1QYXJz
ZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94OwogCiAgICAgICAgIGludCBtX2luUGFyc2VTaG9y
dGhhbmQ7CiAgICAgICAgIGludCBtX2N1cnJlbnRTaG9ydGhhbmQ7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5k
ZXggOWFlOWI5Zi4uZmMwNTYwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
Y3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtMTU3LDYgKzE1NywxMCBA
QCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNpbmdsZUJ1dHRvbiwgKCJzaW5nbGUtYnV0dG9u
IikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBub0J1dHRvbiwgKCJu
by1idXR0b24iKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGNvcm5l
clByZXNlbnQsICgiY29ybmVyLXByZXNlbnQiKSk7CisgICAgLy8gUGFnZWQgTWVkaWEgcHNldWRv
LWNsYXNzZXMKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbGVmdFBhZ2Us
ICgibGVmdCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmlnaHRQ
YWdlLCAoInJpZ2h0IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBm
aXJzdFBhZ2UsICgiZmlyc3QiKSk7CiAKICAgICBib29sIGVsZW1lbnQgPSBmYWxzZTsgLy8gcHNl
dWRvLWVsZW1lbnQKICAgICBib29sIGNvbXBhdCA9IGZhbHNlOyAvLyBzaW5nbGUgY29sb24gY29t
cGF0YmlsaXR5IG1vZGUKQEAgLTM3OSw2ICszODMsMTIgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6ZXh0
cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9UYXJn
ZXQ7CiAgICAgZWxzZSBpZiAobV92YWx1ZSA9PSB2aXNpdGVkKQogICAgICAgICBtX3BzZXVkb1R5
cGUgPSBQc2V1ZG9WaXNpdGVkOworICAgIGVsc2UgaWYgKG1fdmFsdWUgPT0gbGVmdFBhZ2UpCisg
ICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb0xlZnRQYWdlOworICAgIGVsc2UgaWYgKG1fdmFs
dWUgPT0gcmlnaHRQYWdlKQorICAgICAgICBtX3BzZXVkb1R5cGUgPSBQc2V1ZG9SaWdodFBhZ2U7
CisgICAgZWxzZSBpZiAobV92YWx1ZSA9PSBmaXJzdFBhZ2UpCisgICAgICAgIG1fcHNldWRvVHlw
ZSA9IFBzZXVkb0ZpcnN0UGFnZTsKIAogICAgIGlmIChtX21hdGNoID09IFBzZXVkb0NsYXNzICYm
IGVsZW1lbnQpIHsKICAgICAgICAgaWYgKCFjb21wYXQpIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3IuaCBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKaW5kZXggNzBmMjU3
NC4uNWE1NGI1MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0xODYsNiArMTg2LDI4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgICAgIFBzZXVkb0lucHV0TGlzdEJ1dHRvbiwKICAgICAgICAgICAg
IFBzZXVkb0lubmVyU3BpbkJ1dHRvbiwKICAgICAgICAgICAgIFBzZXVkb091dGVyU3BpbkJ1dHRv
biwKKyAgICAgICAgICAgIFBzZXVkb0xlZnRQYWdlLAorICAgICAgICAgICAgUHNldWRvUmlnaHRQ
YWdlLAorICAgICAgICAgICAgUHNldWRvRmlyc3RQYWdlLAorICAgICAgICB9OworCisgICAgICAg
IGVudW0gTWFyZ2luQm94IHsKKyAgICAgICAgICAgIFRvcExlZnRDb3JuZXIsCisgICAgICAgICAg
ICBUb3BMZWZ0LAorICAgICAgICAgICAgVG9wQ2VudGVyLAorICAgICAgICAgICAgVG9wUmlnaHQs
CisgICAgICAgICAgICBUb3BSaWdodENvcm5lciwKKyAgICAgICAgICAgIEJvdHRvbUxlZnRDb3Ju
ZXIsCisgICAgICAgICAgICBCb3R0b21MZWZ0LAorICAgICAgICAgICAgQm90dG9tQ2VudGVyLAor
ICAgICAgICAgICAgQm90dG9tUmlnaHQsCisgICAgICAgICAgICBCb3R0b21SaWdodENvcm5lciwK
KyAgICAgICAgICAgIExlZnRUb3AsCisgICAgICAgICAgICBMZWZ0TWlkZGxlLAorICAgICAgICAg
ICAgTGVmdEJvdHRvbSwKKyAgICAgICAgICAgIFJpZ2h0VG9wLAorICAgICAgICAgICAgUmlnaHRN
aWRkbGUsCisgICAgICAgICAgICBSaWdodEJvdHRvbSwKICAgICAgICAgfTsKIAogICAgICAgICBQ
c2V1ZG9UeXBlIHBzZXVkb1R5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvdG9r
ZW5pemVyLmZsZXggYi9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAppbmRleCAxNTY5ZWUyLi41
ZTM4OGM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAorKysgYi9XZWJD
b3JlL2Nzcy90b2tlbml6ZXIuZmxleApAQCAtNTMsNiArNTMsMjIgQEAgbnRoICAgICAgICAgICAg
ICgtP1swLTldKm5bXCstXVswLTldKyl8KC0/WzAtOV0qbikKIAogIkBpbXBvcnQiICAgICAgICAg
ICAgICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRvayA9IElNUE9SVF9TWU07IHJldHVybiB5eVRv
azt9CiAiQHBhZ2UiICAgICAgICAgICAgICAgICB7eXlUb2sgPSBQQUdFX1NZTTsgcmV0dXJuIHl5
VG9rO30KKyJAdG9wLWxlZnQtY29ybmVyIiAgICAgIHt5eVRvayA9IFRPUExFRlRDT1JORVJfU1lN
OyByZXR1cm4geXlUb2s7fQorIkB0b3AtbGVmdCIgICAgICAgICAgICAge3l5VG9rID0gVE9QTEVG
VF9TWU07IHJldHVybiB5eVRvazt9CisiQHRvcC1jZW50ZXIiICAgICAgICAgICB7eXlUb2sgPSBU
T1BDRU5URVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkB0b3AtcmlnaHQiICAgICAgICAgICAge3l5
VG9rID0gVE9QUklHSFRfU1lNOyByZXR1cm4geXlUb2s7fQorIkB0b3AtcmlnaHQtY29ybmVyIiAg
ICAge3l5VG9rID0gVE9QUklHSFRDT1JORVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20t
bGVmdC1jb3JuZXIiICAge3l5VG9rID0gQk9UVE9NTEVGVENPUk5FUl9TWU07IHJldHVybiB5eVRv
azt9CisiQGJvdHRvbS1sZWZ0IiAgICAgICAgICB7eXlUb2sgPSBCT1RUT01MRUZUX1NZTTsgcmV0
dXJuIHl5VG9rO30KKyJAYm90dG9tLWNlbnRlciIgICAgICAgIHt5eVRvayA9IEJPVFRPTUNFTlRF
Ul9TWU07IHJldHVybiB5eVRvazt9CisiQGJvdHRvbS1yaWdodCIgICAgICAgICB7eXlUb2sgPSBC
T1RUT01SSUdIVF9TWU07IHJldHVybiB5eVRvazt9CisiQGJvdHRvbS1yaWdodC1jb3JuZXIiICB7
eXlUb2sgPSBCT1RUT01SSUdIVENPUk5FUl9TWU07IHJldHVybiB5eVRvazt9CisiQGxlZnQtdG9w
IiAgICAgICAgICAgICB7eXlUb2sgPSBMRUZUVE9QX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAbGVm
dC1taWRkbGUiICAgICAgICAgIHt5eVRvayA9IExFRlRNSURETEVfU1lNOyByZXR1cm4geXlUb2s7
fQorIkBsZWZ0LWJvdHRvbSIgICAgICAgICAge3l5VG9rID0gTEVGVEJPVFRPTV9TWU07IHJldHVy
biB5eVRvazt9CisiQHJpZ2h0LXRvcCIgICAgICAgICAgICB7eXlUb2sgPSBSSUdIVFRPUF9TWU07
IHJldHVybiB5eVRvazt9CisiQHJpZ2h0LW1pZGRsZSIgICAgICAgICB7eXlUb2sgPSBSSUdIVE1J
RERMRV9TWU07IHJldHVybiB5eVRvazt9CisiQHJpZ2h0LWJvdHRvbSIgICAgICAgICB7eXlUb2sg
PSBSSUdIVEJPVFRPTV9TWU07IHJldHVybiB5eVRvazt9CiAiQG1lZGlhIiAgICAgICAgICAgICAg
ICB7QkVHSU4obWVkaWFxdWVyeSk7IHl5VG9rID0gTUVESUFfU1lNOyByZXR1cm4geXlUb2s7fQog
IkBmb250LWZhY2UiICAgICAgICAgICAge3l5VG9rID0gRk9OVF9GQUNFX1NZTTsgcmV0dXJuIHl5
VG9rO30KICJAY2hhcnNldCIgICAgICAgICAgICAgIHt5eVRvayA9IENIQVJTRVRfU1lNOyByZXR1
cm4geXlUb2s7fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52820</attachid>
            <date>2010-04-07 19:22:51 -0700</date>
            <delta_ts>2010-04-21 12:36:35 -0700</delta_ts>
            <desc>Enhance CSS parser for Paged Media (Iteration 1)</desc>
            <filename>bug-35329-20100408112249.patch</filename>
            <type>text/plain</type>
            <size>17061</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NDNmZmFkLi5kNzkxZDU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuaGFuY2UgQ1NTIHBhcnNlciBmb3IgUGFn
ZWQgTWVkaWEgKEl0ZXJhdGlvbiAxKQorCisgICAgICAgIEluIHRoaXMgY2hhbmdlLCB0aGUgZ3Jh
bW1hciBpcyBleHRlbmRlZCBhbmQgc2tlbGV0YWwgbWV0aG9kcyBmb3IgY3JlYXRpbmcgcGFnZSBy
dWxlcyBhbmQgbWFyZ2luIGF0LXJ1bGVzIGFyZSBkZWZpbmVkLgorICAgICAgICBUaGUgY29udGVu
dHMgb2YgdGhlIG1ldGhvZHMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IG90aGVyIGNoYW5nZXMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzI5
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQ6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5n
LXBhZ2UtcnVsZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wNC0wMSAgWXV6byBGdWppc2hpbWEgIDx5
dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXBhZ2UtcnVsZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VmMjJlOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9w
YXJzaW5nLXBhZ2UtcnVsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdl
LXJ1bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDg0ZjZkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1wYWdlLXJ1bGUu
aHRtbApAQCAtMCwwICsxLDY1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgLnRvX2JlX3No
b3duIHsKKyAgICAgICAgICAgIGRpc3BsYXk6bm9uZTsKKyAgICAgICAgICAgIGNvbG9yOmdyZWVu
OworICAgICAgICB9CisgICAgICAgIC50b19iZV9oaWRkZW4geworICAgICAgICAgICAgZGlzcGxh
eTpibG9jazsKKyAgICAgICAgICAgIGNvbG9yOnJlZDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+
CisgICAgPHN0eWxlPgorICAgICAgICAvKiBwYWdlIHJ1bGUgbXVzdCBub3QgaW50ZXJmZXJlIHdp
dGggbm9uLXBhZ2UgcnVsZXMgKi8KKyAgICAgICAgI3Rlc3QxIHsKKyAgICAgICAgICAgIGRpc3Bs
YXk6bm9uZTsKKyAgICAgICAgfQorICAgICAgICBAcGFnZSB7CisgICAgICAgICAgICAjdGVzdDEg
eworICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBAdG9wLWNlbnRlciB7CisgICAgICAgICAgICAgICAgY29udGVudDoiVGVzdCI7CisgICAg
ICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICN0
ZXN0MiB7CisgICAgICAgICAgICAgICAgZGlzcGxheTpibG9jazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICAjdGVzdDIgeworICAgICAgICAgICAgZGlzcGxheTpub25lOworICAg
ICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c3R5bGU+CisgICAgICAgIC8qIE1hbGZvcm1lZCBw
YWdlIHJ1bGUgbXVzdCBub3QgaW50ZXJmZXJlIHdpdGggbm9uLXBhZ2UgcnVsZXMgYXMgZmFyIGFz
IGJyYWNlcyBhcmUgcGFpcmVkIHByb3Blcmx5ICovCisgICAgICAgIEBwYWdlIHsKKyAgICAgICAg
ICAgIHA6YmVmb3JlIHsKKyAgICAgICAgICAgICAgICBjb250ZW50OiJtYWxmb3JtZWQKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIEB0b3AtbGVmdAorICAgICAgICB9CisgICAgICAgICN0ZXN0
MyB7CisgICAgICAgICAgICBkaXNwbGF5Om5vbmU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgor
ICAgIDxzdHlsZT4KKyAgICAgICAgLyogU3VjY2Vzc2Z1bGx5IHBhcnNlZCAqLworICAgICAgICAj
bGFzdCB7CisgICAgICAgICAgICBkaXNwbGF5OmJsb2NrOworICAgICAgICB9CisgICAgPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9oaWRkZW4iIGlkPSJ0ZXN0
MSI+RkFJTDogVGVzdCAxPC9kaXY+CisgIDxkaXYgY2xhc3M9InRvX2JlX2hpZGRlbiIgaWQ9InRl
c3QyIj5GQUlMOiBUZXN0IDI8L2Rpdj4KKyAgPGRpdiBjbGFzcz0idG9fYmVfaGlkZGVuIiBpZD0i
dGVzdDMiPkZBSUw6IFRlc3QgMzwvZGl2PgorICA8ZGl2IGNsYXNzPSJ0b19iZV9zaG93biIgaWQ9
Imxhc3QiPlBBU1M8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ODViODI4Li5jYmQ2MDJlIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMzIEBACisyMDEwLTAyLTI0ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmhh
bmNlIENTUyBwYXJzZXIgZm9yIFBhZ2VkIE1lZGlhIChJdGVyYXRpb24gMSkKKworICAgICAgICBJ
biB0aGlzIGNoYW5nZSwgdGhlIGdyYW1tYXIgaXMgZXh0ZW5kZWQgYW5kIHNrZWxldGFsIG1ldGhv
ZHMgZm9yIGNyZWF0aW5nIHBhZ2UgcnVsZXMgYW5kIG1hcmdpbiBhdC1ydWxlcyBhcmUgZGVmaW5l
ZC4KKyAgICAgICAgVGhlIGNvbnRlbnRzIG9mIHRoZSBtZXRob2RzIHNob3VsZCBiZSBpbXBsZW1l
bnRlZCBieSBvdGhlciBjaGFuZ2VzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNTMyOQorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3BhcnNpbmct
cGFnZS1ydWxlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6CisgICAgICAgICog
Y3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OkNTU1BhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNsZWFyUHJvcGVydGllcyk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmxleCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVQYWdlUnVsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZU1hcmdpbkF0UnVsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnN0YXJ0RGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZW5kRGVjbGFyYXRpb25zRm9yTWFyZ2luQm94
KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSk6
CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxl
Y3Rvcjo6KToKKyAgICAgICAgKiBjc3MvdG9rZW5pemVyLmZsZXg6CisKIDIwMTAtMDQtMDYgIEV2
YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERp
bWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueSBiL1dl
YkNvcmUvY3NzL0NTU0dyYW1tYXIueQppbmRleCA5Y2YzYzkwLi5jYzlmZGRmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKKysrIGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55
CkBAIC03MCw2ICs3MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAgICAgQ1NTUnVs
ZUxpc3QqIHJ1bGVMaXN0OwogICAgIENTU1NlbGVjdG9yKiBzZWxlY3RvcjsKICAgICBWZWN0b3I8
Q1NTU2VsZWN0b3IqPiogc2VsZWN0b3JMaXN0OworICAgIENTU1NlbGVjdG9yOjpNYXJnaW5Cb3hU
eXBlIG1hcmdpbkJveDsKICAgICBDU1NTZWxlY3Rvcjo6UmVsYXRpb24gcmVsYXRpb247CiAgICAg
TWVkaWFMaXN0KiBtZWRpYUxpc3Q7CiAgICAgTWVkaWFRdWVyeSogbWVkaWFRdWVyeTsKQEAgLTk3
LDcgKzk4LDcgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBh
cnNlcikKIAogJX0KIAotJWV4cGVjdCA1NAorJWV4cGVjdCA1NQogCiAlbm9uYXNzb2MgTE9XRVNU
X1BSRUMKIApAQCAtMTQyLDYgKzE0MywyMyBAQCBzdGF0aWMgaW50IGNzc3l5bGV4KFlZU1RZUEUq
IHl5bHZhbCwgdm9pZCogcGFyc2VyKQogJXRva2VuIFdFQktJVF9ERUZJTkVfU1lNCiAldG9rZW4g
VkFSSUFCTEVTX0ZPUgogJXRva2VuIFdFQktJVF9WQVJJQUJMRVNfREVDTFNfU1lNCisldG9rZW4g
PG1hcmdpbkJveD4gVE9QTEVGVENPUk5FUl9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBUT1BMRUZU
X1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFRPUENFTlRFUl9TWU0KKyV0b2tlbiA8bWFyZ2luQm94
PiBUT1BSSUdIVF9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBUT1BSSUdIVENPUk5FUl9TWU0KKyV0
b2tlbiA8bWFyZ2luQm94PiBCT1RUT01MRUZUQ09STkVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+
IEJPVFRPTUxFRlRfU1lNCisldG9rZW4gPG1hcmdpbkJveD4gQk9UVE9NQ0VOVEVSX1NZTQorJXRv
a2VuIDxtYXJnaW5Cb3g+IEJPVFRPTVJJR0hUX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IEJPVFRP
TVJJR0hUQ09STkVSX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IExFRlRUT1BfU1lNCisldG9rZW4g
PG1hcmdpbkJveD4gTEVGVE1JRERMRV9TWU0KKyV0b2tlbiA8bWFyZ2luQm94PiBMRUZUQk9UVE9N
X1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFJJR0hUVE9QX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+
IFJJR0hUTUlERExFX1NZTQorJXRva2VuIDxtYXJnaW5Cb3g+IFJJR0hUQk9UVE9NX1NZTQorCiAl
dG9rZW4gQVRLRVlXT1JECiAKICV0b2tlbiBJTVBPUlRBTlRfU1lNCkBAIC0xODgsNiArMjA2LDcg
QEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikKICV0
eXBlIDxydWxlPiBpbXBvcnQKICV0eXBlIDxydWxlPiBuYW1lc3BhY2UKICV0eXBlIDxydWxlPiBw
YWdlCisldHlwZSA8cnVsZT4gbWFyZ2luX2JveAogJXR5cGUgPHJ1bGU+IGZvbnRfZmFjZQogJXR5
cGUgPHJ1bGU+IGtleWZyYW1lcwogJXR5cGUgPHJ1bGU+IGludmFsaWRfcnVsZQpAQCAtMjA5LDYg
KzIyOCw3IEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXlsdmFsLCB2b2lkKiBwYXJz
ZXIpCiAldHlwZSA8c3RyaW5nPiBpZGVudF9vcl9zdHJpbmcKICV0eXBlIDxzdHJpbmc+IG1lZGl1
bQogJXR5cGUgPHN0cmluZz4gaGV4Y29sb3IKKyV0eXBlIDxtYXJnaW5Cb3g+IG1hcmdpbl9zeW0K
IAogJXR5cGUgPHN0cmluZz4gbWVkaWFfZmVhdHVyZQogJXR5cGUgPG1lZGlhTGlzdD4gbWVkaWFf
bGlzdApAQCAtMjM3LDYgKzI1Nyw3IEBAIHN0YXRpYyBpbnQgY3NzeXlsZXgoWVlTVFlQRSogeXls
dmFsLCB2b2lkKiBwYXJzZXIpCiAldHlwZSA8c2VsZWN0b3I+IGNsYXNzCiAldHlwZSA8c2VsZWN0
b3I+IGF0dHJpYgogJXR5cGUgPHNlbGVjdG9yPiBwc2V1ZG8KKyV0eXBlIDxzZWxlY3Rvcj4gcGFn
ZV9zZWxlY3RvcgogCiAldHlwZSA8Ym9vbGVhbj4gZGVjbGFyYXRpb25fbGlzdAogJXR5cGUgPGJv
b2xlYW4+IGRlY2xfbGlzdApAQCAtNzI5LDI2ICs3NTAsMTA1IEBAIGtleToKICAgICB9CiAgICAg
OwogCi0vKgogcGFnZToKLSAgICBQQUdFX1NZTSBtYXliZV9zcGFjZSBJREVOVD8gcHNldWRvX3Bh
Z2U/IG1heWJlX3NwYWNlCi0gICAgJ3snIG1heWJlX3NwYWNlIGRlY2xhcmF0aW9uIFsgJzsnIG1h
eWJlX3NwYWNlIGRlY2xhcmF0aW9uIF0qICd9JyBtYXliZV9zcGFjZQotICA7Ci0KLXBzZXVkb19w
YWdlCi0gIDogJzonIElERU5UCi0gIDsKLSovCi0KLXBhZ2U6Ci0gICAgUEFHRV9TWU0gZXJyb3Ig
aW52YWxpZF9ibG9jayB7CisgICAgUEFHRV9TWU0gbWF5YmVfc3BhY2UgcGFnZV9zZWxlY3RvciBt
YXliZV9zcGFjZQorICAgICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbnNfYW5kX21hcmdpbnMg
Y2xvc2luZ19icmFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1Bh
cnNlcio+KHBhcnNlcik7CisgICAgICAgICQkID0gcC0+Y3JlYXRlUGFnZVJ1bGUocC0+c2lua0Zs
b2F0aW5nU2VsZWN0b3IoJDMpKTsKKyAgICB9CisgICAgfCBQQUdFX1NZTSBlcnJvciBpbnZhbGlk
X2Jsb2NrIHsKICAgICAgICQkID0gMDsKICAgICB9Ci0gIHwgUEFHRV9TWU0gZXJyb3IgJzsnIHsK
KyAgICB8IFBBR0VfU1lNIGVycm9yICc7JyB7CiAgICAgICAkJCA9IDA7CiAgICAgfQogICAgIDsK
IAorcGFnZV9zZWxlY3RvcjoKKyAgICBJREVOVCB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0
YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgICQkID0gcC0+Y3JlYXRlRmxv
YXRpbmdTZWxlY3RvcigpOworICAgICAgICAkJC0+bV90YWcgPSBRdWFsaWZpZWROYW1lKG51bGxB
dG9tLCAkMSwgcC0+bV9kZWZhdWx0TmFtZXNwYWNlKTsKKyAgICB9CisgICAgfCBJREVOVCBwc2V1
ZG8geworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJz
ZXIpOworICAgICAgICAkJCA9ICQyOworICAgICAgICBpZiAoJCQpCisgICAgICAgICAgICAkJC0+
bV90YWcgPSBRdWFsaWZpZWROYW1lKG51bGxBdG9tLCAkMSwgcC0+bV9kZWZhdWx0TmFtZXNwYWNl
KTsKKyAgICB9CisgICAgfCBwc2V1ZG8geworICAgICAgICAkJCA9ICQxOworICAgIH0KKyAgICB8
IC8qIGVtcHR5ICovIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFy
c2VyKj4ocGFyc2VyKTsKKyAgICAgICAgJCQgPSBwLT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCk7
CisgICAgfQorICAgIDsKKworZGVjbGFyYXRpb25zX2FuZF9tYXJnaW5zOgorICAgIGRlY2xhcmF0
aW9uX2xpc3QKKyAgICB8IGRlY2xhcmF0aW9uc19hbmRfbWFyZ2lucyBtYXJnaW5fYm94IG1heWJl
X3NwYWNlIGRlY2xhcmF0aW9uX2xpc3QKKyAgICA7CisKK21hcmdpbl9ib3g6CisgICAgbWFyZ2lu
X3N5bSB7CisgICAgICAgIHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlciktPnN0YXJ0RGVj
bGFyYXRpb25zRm9yTWFyZ2luQm94KCk7CisgICAgfSBtYXliZV9zcGFjZSAneycgbWF5YmVfc3Bh
Y2UgZGVjbGFyYXRpb25fbGlzdCBjbG9zaW5nX2JyYWNlIHsKKyAgICAgICAgJCQgPSBzdGF0aWNf
Y2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVhdGVNYXJnaW5BdFJ1bGUoJDEpOworICAgIH0K
KyAgICA7CisKK21hcmdpbl9zeW0gOgorICAgIFRPUExFRlRDT1JORVJfU1lNIHsKKyAgICAgICAg
JCQgPSBDU1NTZWxlY3Rvcjo6VG9wTGVmdENvcm5lck1hcmdpbkJveDsKKyAgICB9CisgICAgfCBU
T1BMRUZUX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6OlRvcExlZnRNYXJnaW5Cb3g7
CisgICAgfQorICAgIHwgVE9QQ0VOVEVSX1NZTSB7CisgICAgICAgICQkID0gQ1NTU2VsZWN0b3I6
OlRvcENlbnRlck1hcmdpbkJveDsKKyAgICB9CisgICAgfCBUT1BSSUdIVF9TWU0geworICAgICAg
ICAkJCA9IENTU1NlbGVjdG9yOjpUb3BSaWdodE1hcmdpbkJveDsKKyAgICB9CisgICAgfCBUT1BS
SUdIVENPUk5FUl9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpUb3BSaWdodENvcm5l
ck1hcmdpbkJveDsKKyAgICB9CisgICAgfCBCT1RUT01MRUZUQ09STkVSX1NZTSB7CisgICAgICAg
ICQkID0gQ1NTU2VsZWN0b3I6OkJvdHRvbUxlZnRDb3JuZXJNYXJnaW5Cb3g7CisgICAgfQorICAg
IHwgQk9UVE9NTEVGVF9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpCb3R0b21MZWZ0
TWFyZ2luQm94OworICAgIH0KKyAgICB8IEJPVFRPTUNFTlRFUl9TWU0geworICAgICAgICAkJCA9
IENTU1NlbGVjdG9yOjpCb3R0b21DZW50ZXJNYXJnaW5Cb3g7CisgICAgfQorICAgIHwgQk9UVE9N
UklHSFRfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6Qm90dG9tUmlnaHRNYXJnaW5C
b3g7CisgICAgfQorICAgIHwgQk9UVE9NUklHSFRDT1JORVJfU1lNIHsKKyAgICAgICAgJCQgPSBD
U1NTZWxlY3Rvcjo6Qm90dG9tUmlnaHRDb3JuZXJNYXJnaW5Cb3g7CisgICAgfQorICAgIHwgTEVG
VFRPUF9TWU0geworICAgICAgICAkJCA9IENTU1NlbGVjdG9yOjpMZWZ0VG9wTWFyZ2luQm94Owor
ICAgIH0KKyAgICB8IExFRlRNSURETEVfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6
TGVmdE1pZGRsZU1hcmdpbkJveDsKKyAgICB9CisgICAgfCBMRUZUQk9UVE9NX1NZTSB7CisgICAg
ICAgICQkID0gQ1NTU2VsZWN0b3I6OkxlZnRCb3R0b21NYXJnaW5Cb3g7CisgICAgfQorICAgIHwg
UklHSFRUT1BfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRUb3BNYXJnaW5C
b3g7CisgICAgfQorICAgIHwgUklHSFRNSURETEVfU1lNIHsKKyAgICAgICAgJCQgPSBDU1NTZWxl
Y3Rvcjo6UmlnaHRNaWRkbGVNYXJnaW5Cb3g7CisgICAgfQorICAgIHwgUklHSFRCT1RUT01fU1lN
IHsKKyAgICAgICAgJCQgPSBDU1NTZWxlY3Rvcjo6UmlnaHRCb3R0b21NYXJnaW5Cb3g7CisgICAg
fQorICAgIDsKKwogZm9udF9mYWNlOgogICAgIEZPTlRfRkFDRV9TWU0gbWF5YmVfc3BhY2UKICAg
ICAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCAnfScgIG1heWJlX3NwYWNlIHsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCmluZGV4IDA0YTg4NTUuLjk3YjAxNDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjksNiArNjks
NyBAQAogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lUnVsZS5oIgogI2luY2x1ZGUgIldlYktp
dENTU0tleWZyYW1lc1J1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5o
IgorI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CiAKICNpZiBFTkFC
TEUoREFTSEJPQVJEX1NVUFBPUlQpCkBAIC05MSw2ICs5Miw4IEBAIHVzaW5nIG5hbWVzcGFjZSBX
VEY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGNvbnN0IHVuc2lnbmVkIElOVkFM
SURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTID0gVUlOVF9NQVg7CisKIHN0YXRpYyBib29sIGVxdWFs
KGNvbnN0IENTU1BhcnNlclN0cmluZyYgYSwgY29uc3QgY2hhciogYikKIHsKICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKQEAgLTEzNSw2ICsxMzgsNyBAQCBDU1NQYXJz
ZXI6OkNTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcpCiAgICAgLCBtX3BhcnNlZFByb3BlcnRp
ZXMoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHkqKj4oZmFzdE1hbGxvYygzMiAqIHNpemVvZihDU1NQ
cm9wZXJ0eSopKSkpCiAgICAgLCBtX251bVBhcnNlZFByb3BlcnRpZXMoMCkKICAgICAsIG1fbWF4
UGFyc2VkUHJvcGVydGllcygzMikKKyAgICAsIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1h
cmdpbkJveChJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElFUykKICAgICAsIG1faW5QYXJzZVNo
b3J0aGFuZCgwKQogICAgICwgbV9jdXJyZW50U2hvcnRoYW5kKDApCiAgICAgLCBtX2ltcGxpY2l0
U2hvcnRoYW5kKGZhbHNlKQpAQCAtMzk2LDYgKzQwMCw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpjbGVh
clByb3BlcnRpZXMoKQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX251bVBhcnNlZFBy
b3BlcnRpZXM7IGkrKykKICAgICAgICAgZGVsZXRlIG1fcGFyc2VkUHJvcGVydGllc1tpXTsKICAg
ICBtX251bVBhcnNlZFByb3BlcnRpZXMgPSAwOworICAgIG1fbnVtUGFyc2VkUHJvcGVydGllc0Jl
Zm9yZU1hcmdpbkJveCA9IElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTOwogICAgIG1faGFz
Rm9udEZhY2VPbmx5VmFsdWVzID0gZmFsc2U7CiB9CiAKQEAgLTUxOTMsNiArNTE5OCwzOSBAQCBi
b29sIENTU1BhcnNlcjo6YWRkVmFyaWFibGVEZWNsYXJhdGlvbkJsb2NrKGNvbnN0IENTU1BhcnNl
clN0cmluZyYpCiAKICNlbmRpZgogCitDU1NSdWxlKiBDU1NQYXJzZXI6OmNyZWF0ZVBhZ2VSdWxl
KENTU1NlbGVjdG9yKiAvKiBwYWdlU2VsZWN0b3IgKi8pCit7CisgICAgLy8gRklYTUU6IENyZWF0
ZSBwYWdlIHJ1bGUgaGVyZSwgdXNpbmc6CisgICAgLy8gICAgICAgIC0gcGFnZVNlbGVjdG9yLT5w
c2V1ZG9UeXBlKCk6IHRoZSBwYWdlIHBzZXVkby1jbGFzcywgaS5lLiwgOmxlZnQsIDpyaWdodCwg
b3IgOmZpcnN0CisgICAgLy8gICAgICAgIC0gcGFnZVNlbGVjdG9yLT5tX3RhZzogIHRoZSBwYWdl
IG5hbWUKKyAgICAvLyAgICAgICAgLSBtX3BhcnNlZFByb3BlcnRpZXM6IHRoZSBwYWdlIHByb3Bl
cnRpZXMKKworICAgIGNsZWFyUHJvcGVydGllcygpOworICAgIHJldHVybiAwOyAvLyB1bnRpbCB0
aGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZC4KK30KKworQ1NTUnVsZSogQ1NTUGFyc2VyOjpjcmVh
dGVNYXJnaW5BdFJ1bGUoQ1NTU2VsZWN0b3I6Ok1hcmdpbkJveFR5cGUgLyogbWFyZ2luQm94ICov
KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgbWFyZ2luIGF0LXJ1bGUgaGVyZSwgdXNpbmc6
CisgICAgLy8gICAgICAgIC0gbWFyZ2luQm94OiBtYXJnaW4gYm94CisgICAgLy8gICAgICAgIC0g
bV9wYXJzZWRQcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzIGF0IFttX251bVBhcnNlZFByb3BlcnRpZXNC
ZWZvcmVNYXJnaW5Cb3gsIG1fbnVtUGFyc2VkUHJvcGVydGllcykgYXJlIGZvciB0aGlzIGF0LXJ1
bGUuCisKKyAgICBlbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKTsKKyAgICByZXR1cm4gMDsg
Ly8gdW50aWwgdGhpcyBtZXRob2QgaXMgaW1wbGVtZW50ZWQuCit9CisKK3ZvaWQgQ1NTUGFyc2Vy
OjpzdGFydERlY2xhcmF0aW9uc0Zvck1hcmdpbkJveCgpCit7CisgICAgbV9udW1QYXJzZWRQcm9w
ZXJ0aWVzQmVmb3JlTWFyZ2luQm94ID0gbV9udW1QYXJzZWRQcm9wZXJ0aWVzOworfQorCit2b2lk
IENTU1BhcnNlcjo6ZW5kRGVjbGFyYXRpb25zRm9yTWFyZ2luQm94KCkKK3sKKyAgICBBU1NFUlQo
bV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94ICE9IElOVkFMSURfTlVNX1BBUlNF
RF9QUk9QRVJUSUVTKTsKKyAgICByb2xsYmFja0xhc3RQcm9wZXJ0aWVzKG1fbnVtUGFyc2VkUHJv
cGVydGllcyAtIG1fbnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveCk7CisgICAgbV9u
dW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2luQm94ID0gSU5WQUxJRF9OVU1fUEFSU0VEX1BS
T1BFUlRJRVM7Cit9CisKIHZvaWQgQ1NTUGFyc2VyOjpjbGVhclZhcmlhYmxlcygpCiB7CiAgICAg
bV92YXJpYWJsZU5hbWVzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IGNhOGM2NmEuLmE4OGFkYzQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oCkBAIC0xNzksNiArMTc5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
Q1NTUnVsZSogY3JlYXRlU3R5bGVSdWxlKFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxlY3RvcnMp
OwogICAgICAgICBDU1NSdWxlKiBjcmVhdGVGb250RmFjZVJ1bGUoKTsKICAgICAgICAgQ1NTUnVs
ZSogY3JlYXRlVmFyaWFibGVzUnVsZShNZWRpYUxpc3QqLCBib29sIHZhcmlhYmxlc0tleXdvcmQp
OworICAgICAgICBDU1NSdWxlKiBjcmVhdGVQYWdlUnVsZShDU1NTZWxlY3RvciogcGFnZVNlbGVj
dG9yKTsKKyAgICAgICAgQ1NTUnVsZSogY3JlYXRlTWFyZ2luQXRSdWxlKENTU1NlbGVjdG9yOjpN
YXJnaW5Cb3hUeXBlIG1hcmdpbkJveCk7CisgICAgICAgIHZvaWQgc3RhcnREZWNsYXJhdGlvbnNG
b3JNYXJnaW5Cb3goKTsKKyAgICAgICAgdm9pZCBlbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3go
KTsKIAogICAgICAgICBNZWRpYVF1ZXJ5RXhwKiBjcmVhdGVGbG9hdGluZ01lZGlhUXVlcnlFeHAo
Y29uc3QgQXRvbWljU3RyaW5nJiwgQ1NTUGFyc2VyVmFsdWVMaXN0Kik7CiAgICAgICAgIE1lZGlh
UXVlcnlFeHAqIHNpbmtGbG9hdGluZ01lZGlhUXVlcnlFeHAoTWVkaWFRdWVyeUV4cCopOwpAQCAt
MjEyLDYgKzIxNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQ1NTU2VsZWN0b3JM
aXN0KiBtX3NlbGVjdG9yTGlzdEZvclBhcnNlU2VsZWN0b3I7CiAgICAgICAgIHVuc2lnbmVkIG1f
bnVtUGFyc2VkUHJvcGVydGllczsKICAgICAgICAgdW5zaWduZWQgbV9tYXhQYXJzZWRQcm9wZXJ0
aWVzOworICAgICAgICB1bnNpZ25lZCBtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5C
b3g7CiAKICAgICAgICAgaW50IG1faW5QYXJzZVNob3J0aGFuZDsKICAgICAgICAgaW50IG1fY3Vy
cmVudFNob3J0aGFuZDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBi
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCA5Y2ViNTAzLi42NjY4MDliIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuY3BwCkBAIC0xNjAsNiArMTYwLDEwIEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJh
Y3RQc2V1ZG9UeXBlKCkgY29uc3QKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgc2luZ2xlQnV0dG9uLCAoInNpbmdsZS1idXR0b24iKSk7CiAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIG5vQnV0dG9uLCAoIm5vLWJ1dHRvbiIpKTsKICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY29ybmVyUHJlc2VudCwgKCJjb3JuZXItcHJlc2Vu
dCIpKTsKKyAgICAvLyBQYWdlZCBNZWRpYSBwc2V1ZG8tY2xhc3NlcworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBsZWZ0UGFnZSwgKCJsZWZ0IikpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByaWdodFBhZ2UsICgicmlnaHQiKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpcnN0UGFnZSwgKCJmaXJzdCIpKTsKIAog
ICAgIGJvb2wgZWxlbWVudCA9IGZhbHNlOyAvLyBwc2V1ZG8tZWxlbWVudAogICAgIGJvb2wgY29t
cGF0ID0gZmFsc2U7IC8vIHNpbmdsZSBjb2xvbiBjb21wYXRiaWxpdHkgbW9kZQpAQCAtMzgyLDYg
KzM4NiwxMiBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAg
ICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb1RhcmdldDsKICAgICBlbHNlIGlmIChtX3ZhbHVl
ID09IHZpc2l0ZWQpCiAgICAgICAgIG1fcHNldWRvVHlwZSA9IFBzZXVkb1Zpc2l0ZWQ7CisgICAg
ZWxzZSBpZiAobV92YWx1ZSA9PSBsZWZ0UGFnZSkKKyAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNl
dWRvTGVmdFBhZ2U7CisgICAgZWxzZSBpZiAobV92YWx1ZSA9PSByaWdodFBhZ2UpCisgICAgICAg
IG1fcHNldWRvVHlwZSA9IFBzZXVkb1JpZ2h0UGFnZTsKKyAgICBlbHNlIGlmIChtX3ZhbHVlID09
IGZpcnN0UGFnZSkKKyAgICAgICAgbV9wc2V1ZG9UeXBlID0gUHNldWRvRmlyc3RQYWdlOwogCiAg
ICAgaWYgKG1fbWF0Y2ggPT0gUHNldWRvQ2xhc3MgJiYgZWxlbWVudCkgewogICAgICAgICBpZiAo
IWNvbXBhdCkgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuaAppbmRleCA4ZDlkNjRjLi4yNDIzZWMzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgK
QEAgLTE4Niw2ICsxODYsMjggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgUHNl
dWRvSW5wdXRMaXN0QnV0dG9uLAogICAgICAgICAgICAgUHNldWRvSW5uZXJTcGluQnV0dG9uLAog
ICAgICAgICAgICAgUHNldWRvT3V0ZXJTcGluQnV0dG9uLAorICAgICAgICAgICAgUHNldWRvTGVm
dFBhZ2UsCisgICAgICAgICAgICBQc2V1ZG9SaWdodFBhZ2UsCisgICAgICAgICAgICBQc2V1ZG9G
aXJzdFBhZ2UsCisgICAgICAgIH07CisKKyAgICAgICAgZW51bSBNYXJnaW5Cb3hUeXBlIHsKKyAg
ICAgICAgICAgIFRvcExlZnRDb3JuZXJNYXJnaW5Cb3gsCisgICAgICAgICAgICBUb3BMZWZ0TWFy
Z2luQm94LAorICAgICAgICAgICAgVG9wQ2VudGVyTWFyZ2luQm94LAorICAgICAgICAgICAgVG9w
UmlnaHRNYXJnaW5Cb3gsCisgICAgICAgICAgICBUb3BSaWdodENvcm5lck1hcmdpbkJveCwKKyAg
ICAgICAgICAgIEJvdHRvbUxlZnRDb3JuZXJNYXJnaW5Cb3gsCisgICAgICAgICAgICBCb3R0b21M
ZWZ0TWFyZ2luQm94LAorICAgICAgICAgICAgQm90dG9tQ2VudGVyTWFyZ2luQm94LAorICAgICAg
ICAgICAgQm90dG9tUmlnaHRNYXJnaW5Cb3gsCisgICAgICAgICAgICBCb3R0b21SaWdodENvcm5l
ck1hcmdpbkJveCwKKyAgICAgICAgICAgIExlZnRUb3BNYXJnaW5Cb3gsCisgICAgICAgICAgICBM
ZWZ0TWlkZGxlTWFyZ2luQm94LAorICAgICAgICAgICAgTGVmdEJvdHRvbU1hcmdpbkJveCwKKyAg
ICAgICAgICAgIFJpZ2h0VG9wTWFyZ2luQm94LAorICAgICAgICAgICAgUmlnaHRNaWRkbGVNYXJn
aW5Cb3gsCisgICAgICAgICAgICBSaWdodEJvdHRvbU1hcmdpbkJveCwKICAgICAgICAgfTsKIAog
ICAgICAgICBQc2V1ZG9UeXBlIHBzZXVkb1R5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9jc3MvdG9rZW5pemVyLmZsZXggYi9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAppbmRleCAz
YWY3MjVjLi4yOTBjNTkwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAor
KysgYi9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleApAQCAtNTMsNiArNTMsMjIgQEAgbnRoICAg
ICAgICAgICAgIFtcKy1dP3tpbnRudW19Km4oW1wrLV17aW50bnVtfSk/CiAKICJAaW1wb3J0IiAg
ICAgICAgICAgICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBJTVBPUlRfU1lNOyByZXR1
cm4geXlUb2s7fQogIkBwYWdlIiAgICAgICAgICAgICAgICAge3l5VG9rID0gUEFHRV9TWU07IHJl
dHVybiB5eVRvazt9CisiQHRvcC1sZWZ0LWNvcm5lciIgICAgICB7eXlUb2sgPSBUT1BMRUZUQ09S
TkVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAdG9wLWxlZnQiICAgICAgICAgICAgIHt5eVRvayA9
IFRPUExFRlRfU1lNOyByZXR1cm4geXlUb2s7fQorIkB0b3AtY2VudGVyIiAgICAgICAgICAge3l5
VG9rID0gVE9QQ0VOVEVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAdG9wLXJpZ2h0IiAgICAgICAg
ICAgIHt5eVRvayA9IFRPUFJJR0hUX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAdG9wLXJpZ2h0LWNv
cm5lciIgICAgIHt5eVRvayA9IFRPUFJJR0hUQ09STkVSX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJA
Ym90dG9tLWxlZnQtY29ybmVyIiAgIHt5eVRvayA9IEJPVFRPTUxFRlRDT1JORVJfU1lNOyByZXR1
cm4geXlUb2s7fQorIkBib3R0b20tbGVmdCIgICAgICAgICAge3l5VG9rID0gQk9UVE9NTEVGVF9T
WU07IHJldHVybiB5eVRvazt9CisiQGJvdHRvbS1jZW50ZXIiICAgICAgICB7eXlUb2sgPSBCT1RU
T01DRU5URVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20tcmlnaHQiICAgICAgICAge3l5
VG9rID0gQk9UVE9NUklHSFRfU1lNOyByZXR1cm4geXlUb2s7fQorIkBib3R0b20tcmlnaHQtY29y
bmVyIiAge3l5VG9rID0gQk9UVE9NUklHSFRDT1JORVJfU1lNOyByZXR1cm4geXlUb2s7fQorIkBs
ZWZ0LXRvcCIgICAgICAgICAgICAge3l5VG9rID0gTEVGVFRPUF9TWU07IHJldHVybiB5eVRvazt9
CisiQGxlZnQtbWlkZGxlIiAgICAgICAgICB7eXlUb2sgPSBMRUZUTUlERExFX1NZTTsgcmV0dXJu
IHl5VG9rO30KKyJAbGVmdC1ib3R0b20iICAgICAgICAgIHt5eVRvayA9IExFRlRCT1RUT01fU1lN
OyByZXR1cm4geXlUb2s7fQorIkByaWdodC10b3AiICAgICAgICAgICAge3l5VG9rID0gUklHSFRU
T1BfU1lNOyByZXR1cm4geXlUb2s7fQorIkByaWdodC1taWRkbGUiICAgICAgICAge3l5VG9rID0g
UklHSFRNSURETEVfU1lNOyByZXR1cm4geXlUb2s7fQorIkByaWdodC1ib3R0b20iICAgICAgICAg
e3l5VG9rID0gUklHSFRCT1RUT01fU1lNOyByZXR1cm4geXlUb2s7fQogIkBtZWRpYSIgICAgICAg
ICAgICAgICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRvayA9IE1FRElBX1NZTTsgcmV0dXJuIHl5
VG9rO30KICJAZm9udC1mYWNlIiAgICAgICAgICAgIHt5eVRvayA9IEZPTlRfRkFDRV9TWU07IHJl
dHVybiB5eVRvazt9CiAiQGNoYXJzZXQiICAgICAgICAgICAgICB7eXlUb2sgPSBDSEFSU0VUX1NZ
TTsgcmV0dXJuIHl5VG9rO30K
</data>
<flag name="review"
          id="36412"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>