<?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>51764</bug_id>
          
          <creation_ts>2010-12-30 16:31:29 -0800</creation_ts>
          <short_desc>[GTK] Port stock icon painting to GtkStyleContext</short_desc>
          <delta_ts>2011-01-04 14:12:24 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>50820</blocked>
    
    <blocked>51812</blocked>
    
    <blocked>51815</blocked>
    
    <blocked>51828</blocked>
    
    <blocked>51830</blocked>
    
    <blocked>51870</blocked>
    
    <blocked>51874</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>328066</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-30 16:31:29 -0800</bug_when>
    <thetext>This bug tracks porting only the stock icon painting to the new GtkStyleContext API. Since this is the first patch which uses GtkStyleContext, it will also include the initial machinary for all GtkStyleContext usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328078</commentid>
    <comment_count>1</comment_count>
      <attachid>77700</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-30 17:32:40 -0800</bug_when>
    <thetext>Created attachment 77700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328190</commentid>
    <comment_count>2</comment_count>
      <attachid>77700</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-31 09:32:38 -0800</bug_when>
    <thetext>Comment on attachment 77700
Patch

Removing review flag as there are some GTK+ 3.x issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328201</commentid>
    <comment_count>3</comment_count>
      <attachid>77728</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-31 10:52:18 -0800</bug_when>
    <thetext>Created attachment 77728
Patch with build fixes for GTK+ 3.x</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328493</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-03 00:48:19 -0800</bug_when>
    <thetext>+static void gtkStyleChangedCallback(GObject*, GParamSpec*)
+{
+    StyleContextMap::const_iterator end = styleContextMap().end();
+    for (StyleContextMap::const_iterator iter = styleContextMap().begin(); iter != end; ++iter)
+        gtk_style_context_invalidate(iter-&gt;second.get());
+
+    RenderTheme::themeForPage(0)-&gt;platformColorsDidChange();
+}

I would use RenderTheme::defaultTheme() instead, it&apos;s exactly the same but less confusing. But maybe we can just call Page::scheduleForcedStyleRecalcForAllPages(); to avoid creating a new RenderTheme only to call platformColorsDidChange();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328499</commentid>
    <comment_count>5</comment_count>
      <attachid>77798</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-03 02:20:07 -0800</bug_when>
    <thetext>Created attachment 77798
Updated patch using Page::scheduleForcedStyleRecalcForAllPages()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328951</commentid>
    <comment_count>6</comment_count>
      <attachid>77798</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2011-01-04 04:15:29 -0800</bug_when>
    <thetext>Comment on attachment 77798
Updated patch using Page::scheduleForcedStyleRecalcForAllPages()

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

r- in case we can avoid searching twice.

&gt; WebCore/platform/gtk/RenderThemeGtk3.cpp:85
&gt; +

GtkWidgetPath could possibly be added to our GOwnPtr stuff at some point.

&gt; WebCore/platform/gtk/RenderThemeGtk3.cpp:91
&gt; +    return iter-&gt;second.get();

Instead of doing contains() + find() I think you could just do one find() and then check that the iter is valid. Seems pointless to search twice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329009</commentid>
    <comment_count>7</comment_count>
      <attachid>77892</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-04 09:13:20 -0800</bug_when>
    <thetext>Created attachment 77892
Updated patch according to review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329013</commentid>
    <comment_count>8</comment_count>
      <attachid>77892</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-04 09:17:58 -0800</bug_when>
    <thetext>Comment on attachment 77892
Updated patch according to review

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

&gt; WebCore/platform/gtk/RenderThemeGtk3.cpp:50
&gt; +typedef HashMap&lt;GType, PlatformRefPtr&lt;GtkStyleContext&gt; &gt; StyleContextMap;

This must be updated to say GRefPtr for this to land cleanly. PlatformRefPtr was renamed yesterday.

&gt; WebCore/platform/gtk/RenderThemeGtk3.cpp:78
&gt; +    std::pair&lt;StyleContextMap::iterator, bool&gt;result = styleContextMap().add(widgetType, 0);

Missing a space here before &apos;result&apos;.

&gt; WebCore/platform/gtk/RenderThemeGtk3.cpp:85
&gt; +    PlatformRefPtr&lt;GtkStyleContext&gt; context = adoptPlatformRef(gtk_style_context_new());

This should be GRefPtr and adoptGRef now.

&gt; WebCore/platform/gtk/RenderThemeGtk3.cpp:89
&gt; +    result.first-&gt;second = context;

Wow. Does modifying the iterator actually update the hash table? I think it&apos;s much clearer anyway to just do an insertion.

&gt; WebCore/platform/gtk/RenderThemeGtk3.cpp:418
&gt; +PlatformRefPtr&lt;GdkPixbuf&gt; RenderThemeGtk::getStockIcon(GType widgetType, const char* iconName, gint direction, gint state, gint iconSize)

This must be updated to return GRefPtr now.

&gt; WebCore/platform/gtk/RenderThemeGtk3.cpp:437
&gt; +    return adoptPlatformRef(icon);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329046</commentid>
    <comment_count>9</comment_count>
      <attachid>77898</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-04 10:28:53 -0800</bug_when>
    <thetext>Created attachment 77898
Updated patch fixing coding style

PlatformRefPtr is still available in current git master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329049</commentid>
    <comment_count>10</comment_count>
      <attachid>77898</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-04 10:31:41 -0800</bug_when>
    <thetext>Comment on attachment 77898
Updated patch fixing coding style

Looks good to me, but I think that Xan has to pull the lever officially since I worked on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329054</commentid>
    <comment_count>11</comment_count>
      <attachid>77898</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2011-01-04 10:34:08 -0800</bug_when>
    <thetext>Comment on attachment 77898
Updated patch fixing coding style

*pulls lever*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329159</commentid>
    <comment_count>12</comment_count>
      <attachid>77898</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-04 13:09:38 -0800</bug_when>
    <thetext>Comment on attachment 77898
Updated patch fixing coding style

Clearing flags on attachment: 77898

Committed r74997: &lt;http://trac.webkit.org/changeset/74997&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329160</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-04 13:09:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329207</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-04 14:12:24 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/74997 might have broken Leopard Intel Debug (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77700</attachid>
            <date>2010-12-30 17:32:40 -0800</date>
            <delta_ts>2010-12-31 10:52:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51764-20101230173241.patch</filename>
            <type>text/plain</type>
            <size>11662</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmUyM2FlN2MwZTU3MGY4OTUxN2YyZWJkODlkY2Q3MTNkOTJmMDEzNC4uMzU1OTNkNzQ4ODVjMmNm
YTZlNTQ1MzVkMjUwODA5ZjkzY2UwMTc1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0xMi0zMCAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+IGFuZCBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBQb3J0IHN0b2NrIGlj
b24gcGFpbnRpbmcgdG8gR3RrU3R5bGVDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTc2NAorCisgICAgICAgIFBvcnQgc3RvY2sgaWNvbiBw
YWludGluZyBmb3IgbWVkaWEgYW5kIHNlYXJjaCBpbnB1dCBlbGVtZW50cyB0byBHdGtTdHlsZUNv
bnRleHQuCisgICAgICAgIEFsc28gY3JlYXRlIHRoZSBpbml0aWFsIG1hY2hpbmVyeSBmb3IgYWNj
ZXNzaW5nIHN0eWxlIGNvbnRleHRzIGZvciBhbGwgR1RLKyAzLngKKyAgICAgICAgYmFzZWQgd2lk
Z2V0cy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgc2hvdWxkIG5vdCBjaGFuZ2UgZnVu
Y3Rpb25hbGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwYWludEdka1BpeGJ1Zik6IEFkZGVkIHRoaXMgaGVscGVyIHdo
aWNoIHBhaW50cyBhIEdka1BpeGJ1ZiBhdCBhIGdpdmVuIGxvY2F0aW9uCisgICAgICAgIG9uIGEg
R3JhcGhpY3NDb250ZXh0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50
U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvbik6IFVzZSBnZXRTdG9ja0ljb24gYW5kIHBhaW50
UGl4YnVmLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmll
bGRDYW5jZWxCdXR0b24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3Rr
OjpwYWludE1lZGlhQnV0dG9uKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRl
clRoZW1lR3RrLmg6IEFkZGVkIGdldFN0b2NrSWNvbiBkZWNsYXJhdGlvbi4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lR3RrOjpnZXRTdG9ja0ljb24pOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
UmVuZGVyVGhlbWVHdGszLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omd0a1N0eWxlQ2hhbmdlZENh
bGxiYWNrKTogQWRkZWQgY2FsbGJhY2sgd2hpY2ggaGFuZGxlcyBzdHlsZSBjaGFuZ2VzLgorICAg
ICAgICAoV2ViQ29yZTo6c3R5bGVDb250ZXh0TWFwKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpnZXRTdHlsZUNvbnRleHQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
R3RrOjpnZXRTdG9ja0ljb24pOkFkZGVkLgorCiAyMDEwLTEyLTMwICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXou
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKaW5kZXggNjAxM2ViMjliZGNl
ZmNjMDRkZmQwMGIwMTYxMzczNDYxNmU3ZGNmNS4uOGVjZDI1YThlYzAyOTkxNTIxNDEyZWMzZTI4
OWI3MTM5MTg0YzgzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhl
bWVHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcApA
QCAtNDQsMTkgKzQ0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCi1zdGF0aWMgdm9pZCBwYWludFN0b2NrSWNvbihHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IEludFBvaW50JiBpY29uUG9pbnQsIEd0a1N0eWxlKiBzdHlsZSwgY29u
c3QgY2hhciogaWNvbk5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtUZXh0RGly
ZWN0aW9uIGRpcmVjdGlvbiwgR3RrU3RhdGVUeXBlIHN0YXRlLCBHdGtJY29uU2l6ZSBpY29uU2l6
ZSkKLXsKLSAgICBHdGtJY29uU2V0KiBpY29uU2V0ID0gZ3RrX3N0eWxlX2xvb2t1cF9pY29uX3Nl
dChzdHlsZSwgaWNvbk5hbWUpOwotICAgIFBsYXRmb3JtUmVmUHRyPEdka1BpeGJ1Zj4gaWNvbiA9
IGFkb3B0UGxhdGZvcm1SZWYoZ3RrX2ljb25fc2V0X3JlbmRlcl9pY29uKGljb25TZXQsIHN0eWxl
LCBkaXJlY3Rpb24sIHN0YXRlLCBpY29uU2l6ZSwgMCwgMCkpOwotCi0gICAgY2Fpcm9fdCogY3Ig
PSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKLSAgICBjYWlyb19zYXZlKGNyKTsKLSAgICBn
ZGtfY2Fpcm9fc2V0X3NvdXJjZV9waXhidWYoY3IsIGljb24uZ2V0KCksIGljb25Qb2ludC54KCks
IGljb25Qb2ludC55KCkpOwotICAgIGNhaXJvX3BhaW50KGNyKTsKLSAgICBjYWlyb19yZXN0b3Jl
KGNyKTsKLX0KLQogI2lmIEVOQUJMRShWSURFTykKIHN0YXRpYyBIVE1MTWVkaWFFbGVtZW50KiBn
ZXRNZWRpYUVsZW1lbnRGcm9tUmVuZGVyT2JqZWN0KFJlbmRlck9iamVjdCogbykKIHsKQEAgLTI4
OCw2ICsyNzUsMTUgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRUZXh0QXJlYShSZW5kZXJP
YmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgaSwgY29uc3QgSW4KICAgICByZXR1cm4gcGFpbnRU
ZXh0RmllbGQobywgaSwgcik7CiB9CiAKK3N0YXRpYyB2b2lkIHBhaW50R2RrUGl4YnVmKEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgR2RrUGl4YnVmKiBpY29uLCBjb25zdCBJbnRQb2lu
dCYgaWNvblBvaW50KQoreworICAgIGNhaXJvX3QqIGNyID0gY29udGV4dC0+cGxhdGZvcm1Db250
ZXh0KCk7CisgICAgY2Fpcm9fc2F2ZShjcik7CisgICAgZ2RrX2NhaXJvX3NldF9zb3VyY2VfcGl4
YnVmKGNyLCBpY29uLCBpY29uUG9pbnQueCgpLCBpY29uUG9pbnQueSgpKTsKKyAgICBjYWlyb19w
YWludChjcik7CisgICAgY2Fpcm9fcmVzdG9yZShjcik7Cit9CisKIHZvaWQgUmVuZGVyVGhlbWVH
dGs6OmFkanVzdFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3Iq
IHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGUpIGNvbnN0CiB7CiAgICAg
YWRqdXN0U2VhcmNoRmllbGRDYW5jZWxCdXR0b25TdHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOwpA
QCAtMzI1LDExICszMjEsMTAgQEAgc3RhdGljIEludFBvaW50IGNlbnRlclJlY3RWZXJ0aWNhbGx5
SW5QYXJlbnRJbnB1dEVsZW1lbnQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGMKIAogYm9vbCBSZW5k
ZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uKFJlbmRlck9iamVj
dCogcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVj
dCYgcmVjdCkKIHsKLSAgICBHdGtTdHlsZSogc3R5bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZShH
VEtfV0lER0VUKGd0a0VudHJ5KCkpKTsKLSAgICBJbnRQb2ludCBpY29uUG9pbnQoY2VudGVyUmVj
dFZlcnRpY2FsbHlJblBhcmVudElucHV0RWxlbWVudChyZW5kZXJPYmplY3QsIHJlY3QpKTsKLSAg
ICBwYWludFN0b2NrSWNvbihwYWludEluZm8uY29udGV4dCwgaWNvblBvaW50LCBzdHlsZSwgR1RL
X1NUT0NLX0ZJTkQsCi0gICAgICAgICAgICAgICAgICAgZ3RrVGV4dERpcmVjdGlvbihyZW5kZXJP
YmplY3QtPnN0eWxlKCktPmRpcmVjdGlvbigpKSwKLSAgICAgICAgICAgICAgICAgICBndGtJY29u
U3RhdGUocmVuZGVyT2JqZWN0KSwgR1RLX0lDT05fU0laRV9NRU5VKTsKKyAgICBQbGF0Zm9ybVJl
ZlB0cjxHZGtQaXhidWY+IGljb24gPSBnZXRTdG9ja0ljb24oR1RLX1RZUEVfRU5UUlksIEdUS19T
VE9DS19GSU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndGtJ
Y29uU3RhdGUocmVuZGVyT2JqZWN0KSwgR1RLX0lDT05fU0laRV9NRU5VKTsKKyAgICBwYWludEdk
a1BpeGJ1ZihwYWludEluZm8uY29udGV4dCwgaWNvbi5nZXQoKSwgY2VudGVyUmVjdFZlcnRpY2Fs
bHlJblBhcmVudElucHV0RWxlbWVudChyZW5kZXJPYmplY3QsIHJlY3QpKTsKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKQEAgLTM0NiwxMSArMzQxLDEwIEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFk
anVzdFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0
CiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRDYW5jZWxCdXR0b24oUmVu
ZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBJbnRSZWN0JiByZWN0KQogewotICAgIEd0a1N0eWxlKiBzdHlsZSA9IGd0a193aWRnZXRfZ2V0
X3N0eWxlKEdUS19XSURHRVQoZ3RrRW50cnkoKSkpOwotICAgIEludFBvaW50IGljb25Qb2ludChj
ZW50ZXJSZWN0VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVjdCwgcmVj
dCkpOwotICAgIHBhaW50U3RvY2tJY29uKHBhaW50SW5mby5jb250ZXh0LCBpY29uUG9pbnQsIHN0
eWxlLCBHVEtfU1RPQ0tfQ0xFQVIsCi0gICAgICAgICAgICAgICAgICAgZ3RrVGV4dERpcmVjdGlv
bihyZW5kZXJPYmplY3QtPnN0eWxlKCktPmRpcmVjdGlvbigpKSwKLSAgICAgICAgICAgICAgICAg
ICBndGtJY29uU3RhdGUocmVuZGVyT2JqZWN0KSwgR1RLX0lDT05fU0laRV9NRU5VKTsKKyAgICBQ
bGF0Zm9ybVJlZlB0cjxHZGtQaXhidWY+IGljb24gPSBnZXRTdG9ja0ljb24oR1RLX1RZUEVfRU5U
UlksIEdUS19TVE9DS19DTEVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ3RrVGV4dERpcmVjdGlvbihyZW5kZXJPYmplY3QtPnN0eWxlKCktPmRp
cmVjdGlvbigpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ3RrSWNvblN0YXRlKHJlbmRlck9iamVjdCksIEdUS19JQ09OX1NJWkVfTUVOVSk7Cisg
ICAgcGFpbnRHZGtQaXhidWYocGFpbnRJbmZvLmNvbnRleHQsIGljb24uZ2V0KCksIGNlbnRlclJl
Y3RWZXJ0aWNhbGx5SW5QYXJlbnRJbnB1dEVsZW1lbnQocmVuZGVyT2JqZWN0LCByZWN0KSk7CiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC00NDgsMTMgKzQ0MiwxNCBAQCBTdHJpbmcgUmVuZGVy
VGhlbWVHdGs6OmV4dHJhTWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKQogCiBib29sIFJlbmRlclRo
ZW1lR3RrOjpwYWludE1lZGlhQnV0dG9uKFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0LCBHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IGNoYXIqIGlj
b25OYW1lKQogewotICAgIEd0a1N0eWxlKiBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKEdU
S19XSURHRVQoZ3RrQ29udGFpbmVyKCkpKTsKKyAgICBQbGF0Zm9ybVJlZlB0cjxHZGtQaXhidWY+
IGljb24gPSBnZXRTdG9ja0ljb24oR1RLX1RZUEVfQ09OVEFJTkVSLCBpY29uTmFtZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RrVGV4dERpcmVj
dGlvbihyZW5kZXJPYmplY3QtPnN0eWxlKCktPmRpcmVjdGlvbigpKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RrSWNvblN0YXRlKHJlbmRlck9i
amVjdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdldE1lZGlhQnV0dG9uSWNvblNpemUobV9tZWRpYUljb25TaXplKSk7CiAgICAgSW50UG9pbnQg
aWNvblBvaW50KHJlY3QueCgpICsgKHJlY3Qud2lkdGgoKSAtIG1fbWVkaWFJY29uU2l6ZSkgLyAy
LAogICAgICAgICAgICAgICAgICAgICAgICByZWN0LnkoKSArIChyZWN0LmhlaWdodCgpIC0gbV9t
ZWRpYUljb25TaXplKSAvIDIpOwogICAgIGNvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdChyZWN0
KSwgbV9wYW5lbENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICBwYWludFN0b2NrSWNv
bihjb250ZXh0LCBpY29uUG9pbnQsIHN0eWxlLCBpY29uTmFtZSwgCi0gICAgICAgICAgICAgICAg
ICAgZ3RrVGV4dERpcmVjdGlvbihyZW5kZXJPYmplY3QtPnN0eWxlKCktPmRpcmVjdGlvbigpKSwg
Z3RrSWNvblN0YXRlKHJlbmRlck9iamVjdCksIGdldE1lZGlhQnV0dG9uSWNvblNpemUobV9tZWRp
YUljb25TaXplKSk7Ci0KKyAgICBwYWludEdka1BpeGJ1Zihjb250ZXh0LCBpY29uLmdldCgpLCBp
Y29uUG9pbnQpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRl
clRoZW1lR3RrLmgKaW5kZXggNjdhOWQzMDQyYmE4ZjRhOWY3ZGRmNDU1NzljMWMxNTQxYzQzOGEy
My4uMjliZjY2YTVmNzZkMTA3MDRhOTY1MDQ3NTJiYzE3NGMyMTkxMTIwNSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCkBAIC0xNzQsNiArMTc0LDcgQEAgcHJpdmF0ZToKICNl
bmRpZgogICAgIEd0a1N0YXRlVHlwZSBndGtJY29uU3RhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAg
c3RhdGljIHZvaWQgc2V0VGV4dElucHV0Qm9yZGVycyhSZW5kZXJTdHlsZSopOworICAgIFBsYXRm
b3JtUmVmUHRyPEdka1BpeGJ1Zj4gZ2V0U3RvY2tJY29uKEdUeXBlLCBjb25zdCBjaGFyKiBpY29u
TmFtZSwgZ2ludCBkaXJlY3Rpb24sIGdpbnQgc3RhdGUsIGdpbnQgaWNvblNpemUpOwogCiAgICAg
bXV0YWJsZSBHdGtXaWRnZXQqIG1fZ3RrV2luZG93OwogICAgIG11dGFibGUgR3RrV2lkZ2V0KiBt
X2d0a0NvbnRhaW5lcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrMi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwCmlu
ZGV4IGIzOTQzYWVkYjQxNGEzOGMzMDE2OTM1NGYxNWVlYmIyNTBhYzk4MzMuLjMwODkxYzFiNWRh
ZjQzMTRjMjM5NTdiMTJmMzI5NjFlZjZiMzI3NWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1JlbmRlclRoZW1lR3RrMi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGsyLmNwcApAQCAtMzc4LDYgKzM3OCwxOSBAQCBib29sIFJlbmRlclRoZW1lR3Rr
OjpwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0LCBjb25zdCBQYWlu
dEluZgogfQogI2VuZGlmCiAKK1BsYXRmb3JtUmVmUHRyPEdka1BpeGJ1Zj4gUmVuZGVyVGhlbWVH
dGs6OmdldFN0b2NrSWNvbihHVHlwZSB3aWRnZXRUeXBlLCBjb25zdCBjaGFyKiBpY29uTmFtZSwg
Z2ludCBkaXJlY3Rpb24sIGdpbnQgc3RhdGUsIGdpbnQgaWNvblNpemUpCit7CisgICAgQVNTRVJU
KHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfQ09OVEFJTkVSIHx8IHdpZGdldFR5cGUgPT0gR1RLX1RZ
UEVfRU5UUlkpOworICAgIEd0a1dpZGdldCogd2lkZ2V0ID0gd2lkZ2V0VHlwZSA9PSBHVEtfVFlQ
RV9DT05UQUlORVIgPyBHVEtfV0lER0VUKGd0a0NvbnRhaW5lcigpKSA6IGd0a0VudHJ5KCk7Cisg
ICAgR3RrU3R5bGUqIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUod2lkZ2V0KTsKKyAgICBH
dGtJY29uU2V0KiBpY29uU2V0ID0gZ3RrX3N0eWxlX2xvb2t1cF9pY29uX3NldChzdHlsZSwgaWNv
bk5hbWUpOworICAgIHJldHVybiBhZG9wdFBsYXRmb3JtUmVmKGd0a19pY29uX3NldF9yZW5kZXJf
aWNvbihpY29uU2V0LCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R3RrVGV4dERpcmVjdGlvbj4oZGlyZWN0aW9u
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8R3RrU3RhdGVUeXBlPihzdGF0ZSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEd0a0ljb25TaXplPihp
Y29uU2l6ZSksIDAsIDApKTsKK30KKworCiBDb2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1B
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIEd0a1dpZGdldCog
d2lkZ2V0ID0gZ3RrRW50cnkoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Jl
bmRlclRoZW1lR3RrMy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMu
Y3BwCmluZGV4IDIzNjFkYTk4MDlhZmFjZjAxNzVlMjQ0NmU3NmMxYTlmNzljMzEyZDguLmNlZjhj
MDcxY2QyOGIwZDZhMjU2MDI5OWUyY2Y0ZmQ5ZTU3MmI0ZjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUmVuZGVyVGhlbWVHdGszLmNwcApAQCAtNDYsNiArNDYsNTAgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitzdGF0aWMgdm9pZCBndGtTdHlsZUNoYW5nZWRDYWxsYmFjayhHT2JqZWN0Kiwg
R1BhcmFtU3BlYyopCit7CisgICAgU3R5bGVDb250ZXh0TWFwOjpjb25zdF9pdGVyYXRvciBlbmQg
PSBzdHlsZUNvbnRleHRNYXAoKS5lbmQoKTsKKyAgICBmb3IgKFN0eWxlQ29udGV4dE1hcDo6Y29u
c3RfaXRlcmF0b3IgaXRlciA9IHN0eWxlQ29udGV4dE1hcCgpLmJlZ2luKCk7IGl0ZXIgIT0gZW5k
OyArK2l0ZXIpCisgICAgICAgIGd0a19zdHlsZV9jb250ZXh0X2ludmFsaWRhdGUoaXRlci0+c2Vj
b25kLmdldCgpKTsKKworICAgIFJlbmRlclRoZW1lOjp0aGVtZUZvclBhZ2UoMCktPnBsYXRmb3Jt
Q29sb3JzRGlkQ2hhbmdlKCk7Cit9CisKK3R5cGVkZWYgSGFzaE1hcDxHVHlwZSwgUGxhdGZvcm1S
ZWZQdHI8R3RrU3R5bGVDb250ZXh0PiA+IFN0eWxlQ29udGV4dE1hcDsKK3N0YXRpYyBTdHlsZUNv
bnRleHRNYXAmIHN0eWxlQ29udGV4dE1hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChT
dHlsZUNvbnRleHRNYXAsIG1hcCwgKCkpOworCisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQg
PSBmYWxzZTsKKyAgICBpZiAoIWluaXRpYWxpemVkKSB7CisgICAgICAgIEd0a1NldHRpbmdzKiBz
ZXR0aW5ncyA9IGd0a19zZXR0aW5nc19nZXRfZGVmYXVsdCgpOworICAgICAgICBnX3NpZ25hbF9j
b25uZWN0KHNldHRpbmdzLCAibm90aWZ5OjpndGstdGhlbWUtbmFtZSIsIEdfQ0FMTEJBQ0soZ3Rr
U3R5bGVDaGFuZ2VkQ2FsbGJhY2spLCAwKTsKKyAgICAgICAgZ19zaWduYWxfY29ubmVjdChzZXR0
aW5ncywgIm5vdGlmeTo6Z3RrLWNvbG9yLXNjaGVtZSIsIEdfQ0FMTEJBQ0soZ3RrU3R5bGVDaGFu
Z2VkQ2FsbGJhY2spLCAwKTsKKyAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIH0KKyAg
ICByZXR1cm4gbWFwOworfQorCisKK3N0YXRpYyBHdGtTdHlsZUNvbnRleHQqIGdldFN0eWxlQ29u
dGV4dChHVHlwZSB3aWRnZXRUeXBlKQoreworICAgIGlmICghc3R5bGVDb250ZXh0TWFwKCkuY29u
dGFpbnMod2lkZ2V0VHlwZSkpIHsKKyAgICAgICAgR3RrV2lkZ2V0UGF0aCogcGF0aCA9IGd0a193
aWRnZXRfcGF0aF9uZXcoKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBh
dGgsIHdpZGdldFR5cGUpOworCisgICAgICAgIFBsYXRmb3JtUmVmUHRyPEd0a1N0eWxlQ29udGV4
dD4gY29udGV4dCA9IGFkb3B0UGxhdGZvcm1SZWYoZ3RrX3N0eWxlX2NvbnRleHRfbmV3KCkpOwor
ICAgICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChjb250ZXh0LmdldCgpLCBwYXRoKTsK
KyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2ZyZWUocGF0aCk7CisKKyAgICAgICAgc3R5bGVDb250
ZXh0TWFwKCkuc2V0KHdpZGdldFR5cGUsIGNvbnRleHQpOworICAgICAgICByZXR1cm4gY29udGV4
dC5nZXQoKTsKKyAgICB9CisKKyAgICBTdHlsZUNvbnRleHRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBz
dHlsZUNvbnRleHRNYXAoKS5maW5kKHdpZGdldFR5cGUpOworICAgIHJldHVybiBpdGVyLT5zZWNv
bmQuZ2V0KCk7Cit9CisrCisKIC8vIFRoaXMgaXMgbm90IGEgc3RhdGljIG1ldGhvZCwgYmVjYXVz
ZSB3ZSB3YW50IHRvIGF2b2lkIGhhdmluZyBHVEsrIGhlYWRlcnMgaW4gUmVuZGVyVGhlbWVHdGsu
aC4KIGV4dGVybiBHdGtUZXh0RGlyZWN0aW9uIGd0a1RleHREaXJlY3Rpb24oVGV4dERpcmVjdGlv
bik7CiAKQEAgLTM3MSw2ICs0MTUsMjggQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRQcm9n
cmVzc0JhcihSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgY29uc3QgUGFpbnRJbmYKIH0KICNl
bmRpZgogCitQbGF0Zm9ybVJlZlB0cjxHZGtQaXhidWY+IFJlbmRlclRoZW1lR3RrOjpnZXRTdG9j
a0ljb24oR1R5cGUgd2lkZ2V0VHlwZSwgY29uc3QgY2hhciogaWNvbk5hbWUsIGdpbnQgZGlyZWN0
aW9uLCBnaW50IHN0YXRlLCBnaW50IGljb25TaXplKQoreworICAgIEd0a1N0eWxlQ29udGV4dCog
Y29udGV4dCA9IGdldFN0eWxlQ29udGV4dCh3aWRnZXRUeXBlKTsKKyAgICBHdGtJY29uU2V0KiBp
Y29uU2V0ID0gZ3RrX3N0eWxlX2NvbnRleHRfbG9va3VwX2ljb25fc2V0KGNvbnRleHQsIGljb25O
YW1lKTsKKworICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoY29udGV4dCk7CisKKyAgICBndWlu
dCBmbGFncyA9IDA7CisgICAgaWYgKHN0YXRlID09IEdUS19TVEFURV9QUkVMSUdIVCkKKyAgICAg
ICAgZmxhZ3MgfD0gR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQ7CisgICAgZWxzZSBpZiAoc3RhdGUg
PT0gR1RLX1NUQVRFX0lOU0VOU0lUSVZFKQorICAgICAgICBmbGFncyB8PSBHVEtfU1RBVEVfRkxB
R19JTlNFTlNJVElWRTsKKworICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9zdGF0ZShjb250ZXh0
LCBzdGF0aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPihmbGFncykpOworICAgIGd0a19zdHlsZV9jb250
ZXh0X3NldF9kaXJlY3Rpb24oY29udGV4dCwgc3RhdGljX2Nhc3Q8R3RrVGV4dERpcmVjdGlvbj4o
ZGlyZWN0aW9uKSk7CisgICAgR2RrUGl4YnVmKiBpY29uID0gZ3RrX2ljb25fc2V0X3JlbmRlcl9p
Y29uX3BpeGJ1ZihpY29uU2V0LCBjb250ZXh0LCBzdGF0aWNfY2FzdDxHdGtJY29uU2l6ZT4oaWNv
blNpemUpKTsKKworICAgIGd0a19zdHlsZV9jb250ZXh0X3Jlc3RvcmUoY29udGV4dCk7CisKKyAg
ICByZXR1cm4gYWRvcHRQbGF0Zm9ybVJlZihpY29uKTsKK30KKwogQ29sb3IgUmVuZGVyVGhlbWVH
dGs6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKIHsKICAg
ICBHdGtXaWRnZXQqIHdpZGdldCA9IGd0a0VudHJ5KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77728</attachid>
            <date>2010-12-31 10:52:18 -0800</date>
            <delta_ts>2011-01-03 08:41:06 -0800</delta_ts>
            <desc>Patch with build fixes for GTK+ 3.x</desc>
            <filename>bug-51764-20101231105216.patch</filename>
            <type>text/plain</type>
            <size>11700</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWQwNTFjZGZlOTA5ZGE0ZGQ1Y2I4ZWQ0MTNlMGMyZjAzMGVkZTQ3Zi4uNWM2NjRkZjNjMWE4ZWNi
NTBjM2FkMDRiZDg1MWNkMmE4YzA2MWI1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0xMi0zMCAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+IGFuZCBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBQb3J0IHN0b2NrIGlj
b24gcGFpbnRpbmcgdG8gR3RrU3R5bGVDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTc2NAorCisgICAgICAgIFBvcnQgc3RvY2sgaWNvbiBw
YWludGluZyBmb3IgbWVkaWEgYW5kIHNlYXJjaCBpbnB1dCBlbGVtZW50cyB0byBHdGtTdHlsZUNv
bnRleHQuCisgICAgICAgIEFsc28gY3JlYXRlIHRoZSBpbml0aWFsIG1hY2hpbmVyeSBmb3IgYWNj
ZXNzaW5nIHN0eWxlIGNvbnRleHRzIGZvciBhbGwgR1RLKyAzLngKKyAgICAgICAgYmFzZWQgd2lk
Z2V0cy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgc2hvdWxkIG5vdCBjaGFuZ2UgZnVu
Y3Rpb25hbGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwYWludEdka1BpeGJ1Zik6IEFkZGVkIHRoaXMgaGVscGVyIHdo
aWNoIHBhaW50cyBhIEdka1BpeGJ1ZiBhdCBhIGdpdmVuIGxvY2F0aW9uCisgICAgICAgIG9uIGEg
R3JhcGhpY3NDb250ZXh0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50
U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvbik6IFVzZSBnZXRTdG9ja0ljb24gYW5kIHBhaW50
UGl4YnVmLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmll
bGRDYW5jZWxCdXR0b24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3Rr
OjpwYWludE1lZGlhQnV0dG9uKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRl
clRoZW1lR3RrLmg6IEFkZGVkIGdldFN0b2NrSWNvbiBkZWNsYXJhdGlvbi4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lR3RrOjpnZXRTdG9ja0ljb24pOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
UmVuZGVyVGhlbWVHdGszLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omd0a1N0eWxlQ2hhbmdlZENh
bGxiYWNrKTogQWRkZWQgY2FsbGJhY2sgd2hpY2ggaGFuZGxlcyBzdHlsZSBjaGFuZ2VzLgorICAg
ICAgICAoV2ViQ29yZTo6c3R5bGVDb250ZXh0TWFwKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpnZXRTdHlsZUNvbnRleHQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
R3RrOjpnZXRTdG9ja0ljb24pOkFkZGVkLgorCiAyMDEwLTEyLTI5ICBaaGVueWFvIE1vICA8em1v
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IDYwMTNlYjI5YmRjZWZjYzA0
ZGZkMDBiMDE2MTM3MzQ2MTZlN2RjZjUuLjhlY2QyNWE4ZWMwMjk5MTUyMTQxMmVjM2UyODliNzEz
OTE4NGM4M2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3Rr
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTQ0
LDE5ICs0NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAotc3RhdGljIHZvaWQgcGFpbnRTdG9ja0ljb24oR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBJbnRQb2ludCYgaWNvblBvaW50LCBHdGtTdHlsZSogc3R5bGUsIGNvbnN0IGNo
YXIqIGljb25OYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgR3RrVGV4dERpcmVjdGlv
biBkaXJlY3Rpb24sIEd0a1N0YXRlVHlwZSBzdGF0ZSwgR3RrSWNvblNpemUgaWNvblNpemUpCi17
Ci0gICAgR3RrSWNvblNldCogaWNvblNldCA9IGd0a19zdHlsZV9sb29rdXBfaWNvbl9zZXQoc3R5
bGUsIGljb25OYW1lKTsKLSAgICBQbGF0Zm9ybVJlZlB0cjxHZGtQaXhidWY+IGljb24gPSBhZG9w
dFBsYXRmb3JtUmVmKGd0a19pY29uX3NldF9yZW5kZXJfaWNvbihpY29uU2V0LCBzdHlsZSwgZGly
ZWN0aW9uLCBzdGF0ZSwgaWNvblNpemUsIDAsIDApKTsKLQotICAgIGNhaXJvX3QqIGNyID0gY29u
dGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgY2Fpcm9fc2F2ZShjcik7Ci0gICAgZ2RrX2Nh
aXJvX3NldF9zb3VyY2VfcGl4YnVmKGNyLCBpY29uLmdldCgpLCBpY29uUG9pbnQueCgpLCBpY29u
UG9pbnQueSgpKTsKLSAgICBjYWlyb19wYWludChjcik7Ci0gICAgY2Fpcm9fcmVzdG9yZShjcik7
Ci19Ci0KICNpZiBFTkFCTEUoVklERU8pCiBzdGF0aWMgSFRNTE1lZGlhRWxlbWVudCogZ2V0TWVk
aWFFbGVtZW50RnJvbVJlbmRlck9iamVjdChSZW5kZXJPYmplY3QqIG8pCiB7CkBAIC0yODgsNiAr
Mjc1LDE1IEBAIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50VGV4dEFyZWEoUmVuZGVyT2JqZWN0
KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEluCiAgICAgcmV0dXJuIHBhaW50VGV4dEZp
ZWxkKG8sIGksIHIpOwogfQogCitzdGF0aWMgdm9pZCBwYWludEdka1BpeGJ1ZihHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IEdka1BpeGJ1ZiogaWNvbiwgY29uc3QgSW50UG9pbnQmIGlj
b25Qb2ludCkKK3sKKyAgICBjYWlyb190KiBjciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
OworICAgIGNhaXJvX3NhdmUoY3IpOworICAgIGdka19jYWlyb19zZXRfc291cmNlX3BpeGJ1Zihj
ciwgaWNvbiwgaWNvblBvaW50LngoKSwgaWNvblBvaW50LnkoKSk7CisgICAgY2Fpcm9fcGFpbnQo
Y3IpOworICAgIGNhaXJvX3Jlc3RvcmUoY3IpOworfQorCiB2b2lkIFJlbmRlclRoZW1lR3RrOjph
ZGp1c3RTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxl
Y3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBlKSBjb25zdAogewogICAgIGFkanVz
dFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5bGUoc2VsZWN0b3IsIHN0eWxlLCBlKTsKQEAgLTMy
NSwxMSArMzIxLDEwIEBAIHN0YXRpYyBJbnRQb2ludCBjZW50ZXJSZWN0VmVydGljYWxseUluUGFy
ZW50SW5wdXRFbGVtZW50KFJlbmRlck9iamVjdCogb2JqZWN0LCBjCiAKIGJvb2wgUmVuZGVyVGhl
bWVHdGs6OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvbihSZW5kZXJPYmplY3QqIHJl
bmRlck9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJl
Y3QpCiB7Ci0gICAgR3RrU3R5bGUqIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUoR1RLX1dJ
REdFVChndGtFbnRyeSgpKSk7Ci0gICAgSW50UG9pbnQgaWNvblBvaW50KGNlbnRlclJlY3RWZXJ0
aWNhbGx5SW5QYXJlbnRJbnB1dEVsZW1lbnQocmVuZGVyT2JqZWN0LCByZWN0KSk7Ci0gICAgcGFp
bnRTdG9ja0ljb24ocGFpbnRJbmZvLmNvbnRleHQsIGljb25Qb2ludCwgc3R5bGUsIEdUS19TVE9D
S19GSU5ELAotICAgICAgICAgICAgICAgICAgIGd0a1RleHREaXJlY3Rpb24ocmVuZGVyT2JqZWN0
LT5zdHlsZSgpLT5kaXJlY3Rpb24oKSksCi0gICAgICAgICAgICAgICAgICAgZ3RrSWNvblN0YXRl
KHJlbmRlck9iamVjdCksIEdUS19JQ09OX1NJWkVfTUVOVSk7CisgICAgUGxhdGZvcm1SZWZQdHI8
R2RrUGl4YnVmPiBpY29uID0gZ2V0U3RvY2tJY29uKEdUS19UWVBFX0VOVFJZLCBHVEtfU1RPQ0tf
RklORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3RrVGV4dERpcmVjdGlvbihyZW5kZXJPYmplY3QtPnN0eWxlKCktPmRpcmVjdGlvbigpKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RrSWNvblN0
YXRlKHJlbmRlck9iamVjdCksIEdUS19JQ09OX1NJWkVfTUVOVSk7CisgICAgcGFpbnRHZGtQaXhi
dWYocGFpbnRJbmZvLmNvbnRleHQsIGljb24uZ2V0KCksIGNlbnRlclJlY3RWZXJ0aWNhbGx5SW5Q
YXJlbnRJbnB1dEVsZW1lbnQocmVuZGVyT2JqZWN0LCByZWN0KSk7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCkBAIC0zNDYsMTEgKzM0MSwxMCBAQCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RT
ZWFyY2hGaWVsZENhbmNlbEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdAogCiBi
b29sIFJlbmRlclRoZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uKFJlbmRlck9i
amVjdCogcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50
UmVjdCYgcmVjdCkKIHsKLSAgICBHdGtTdHlsZSogc3R5bGUgPSBndGtfd2lkZ2V0X2dldF9zdHls
ZShHVEtfV0lER0VUKGd0a0VudHJ5KCkpKTsKLSAgICBJbnRQb2ludCBpY29uUG9pbnQoY2VudGVy
UmVjdFZlcnRpY2FsbHlJblBhcmVudElucHV0RWxlbWVudChyZW5kZXJPYmplY3QsIHJlY3QpKTsK
LSAgICBwYWludFN0b2NrSWNvbihwYWludEluZm8uY29udGV4dCwgaWNvblBvaW50LCBzdHlsZSwg
R1RLX1NUT0NLX0NMRUFSLAotICAgICAgICAgICAgICAgICAgIGd0a1RleHREaXJlY3Rpb24ocmVu
ZGVyT2JqZWN0LT5zdHlsZSgpLT5kaXJlY3Rpb24oKSksCi0gICAgICAgICAgICAgICAgICAgZ3Rr
SWNvblN0YXRlKHJlbmRlck9iamVjdCksIEdUS19JQ09OX1NJWkVfTUVOVSk7CisgICAgUGxhdGZv
cm1SZWZQdHI8R2RrUGl4YnVmPiBpY29uID0gZ2V0U3RvY2tJY29uKEdUS19UWVBFX0VOVFJZLCBH
VEtfU1RPQ0tfQ0xFQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGd0a1RleHREaXJlY3Rpb24ocmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5kaXJlY3Rp
b24oKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGd0a0ljb25TdGF0ZShyZW5kZXJPYmplY3QpLCBHVEtfSUNPTl9TSVpFX01FTlUpOworICAgIHBh
aW50R2RrUGl4YnVmKHBhaW50SW5mby5jb250ZXh0LCBpY29uLmdldCgpLCBjZW50ZXJSZWN0VmVy
dGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVjdCwgcmVjdCkpOwogICAgIHJl
dHVybiBmYWxzZTsKIH0KIApAQCAtNDQ4LDEzICs0NDIsMTQgQEAgU3RyaW5nIFJlbmRlclRoZW1l
R3RrOjpleHRyYU1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkKIAogYm9vbCBSZW5kZXJUaGVtZUd0
azo6cGFpbnRNZWRpYUJ1dHRvbihSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBjaGFyKiBpY29uTmFt
ZSkKIHsKLSAgICBHdGtTdHlsZSogc3R5bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZShHVEtfV0lE
R0VUKGd0a0NvbnRhaW5lcigpKSk7CisgICAgUGxhdGZvcm1SZWZQdHI8R2RrUGl4YnVmPiBpY29u
ID0gZ2V0U3RvY2tJY29uKEdUS19UWVBFX0NPTlRBSU5FUiwgaWNvbk5hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a1RleHREaXJlY3Rpb24o
cmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5kaXJlY3Rpb24oKSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0a0ljb25TdGF0ZShyZW5kZXJPYmplY3Qp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRN
ZWRpYUJ1dHRvbkljb25TaXplKG1fbWVkaWFJY29uU2l6ZSkpOwogICAgIEludFBvaW50IGljb25Q
b2ludChyZWN0LngoKSArIChyZWN0LndpZHRoKCkgLSBtX21lZGlhSWNvblNpemUpIC8gMiwKICAg
ICAgICAgICAgICAgICAgICAgICAgcmVjdC55KCkgKyAocmVjdC5oZWlnaHQoKSAtIG1fbWVkaWFJ
Y29uU2l6ZSkgLyAyKTsKICAgICBjb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QocmVjdCksIG1f
cGFuZWxDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgcGFpbnRTdG9ja0ljb24oY29u
dGV4dCwgaWNvblBvaW50LCBzdHlsZSwgaWNvbk5hbWUsIAotICAgICAgICAgICAgICAgICAgIGd0
a1RleHREaXJlY3Rpb24ocmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5kaXJlY3Rpb24oKSksIGd0a0lj
b25TdGF0ZShyZW5kZXJPYmplY3QpLCBnZXRNZWRpYUJ1dHRvbkljb25TaXplKG1fbWVkaWFJY29u
U2l6ZSkpOwotCisgICAgcGFpbnRHZGtQaXhidWYoY29udGV4dCwgaWNvbi5nZXQoKSwgaWNvblBv
aW50KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1JlbmRlclRoZW1lR3RrLmggYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVt
ZUd0ay5oCmluZGV4IDY3YTlkMzA0MmJhOGY0YTlmN2RkZjQ1NTc5YzFjMTU0MWM0MzhhMjMuLjI5
YmY2NmE1Zjc2ZDEwNzA0YTk2NTA0NzUyYmMxNzRjMjE5MTEyMDUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUmVuZGVyVGhlbWVHdGsuaApAQCAtMTc0LDYgKzE3NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
ICAgICBHdGtTdGF0ZVR5cGUgZ3RrSWNvblN0YXRlKFJlbmRlck9iamVjdCopOwogICAgIHN0YXRp
YyB2b2lkIHNldFRleHRJbnB1dEJvcmRlcnMoUmVuZGVyU3R5bGUqKTsKKyAgICBQbGF0Zm9ybVJl
ZlB0cjxHZGtQaXhidWY+IGdldFN0b2NrSWNvbihHVHlwZSwgY29uc3QgY2hhciogaWNvbk5hbWUs
IGdpbnQgZGlyZWN0aW9uLCBnaW50IHN0YXRlLCBnaW50IGljb25TaXplKTsKIAogICAgIG11dGFi
bGUgR3RrV2lkZ2V0KiBtX2d0a1dpbmRvdzsKICAgICBtdXRhYmxlIEd0a1dpZGdldCogbV9ndGtD
b250YWluZXI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0
azIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcAppbmRleCBi
Mzk0M2FlZGI0MTRhMzhjMzAxNjkzNTRmMTVlZWJiMjUwYWM5ODMzLi4zMDg5MWMxYjVkYWY0MzE0
YzIzOTU3YjEyZjMyOTYxZWY2YjMyNzVjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0azIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrMi5jcHAKQEAgLTM3OCw2ICszNzgsMTkgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFp
bnRQcm9ncmVzc0JhcihSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgY29uc3QgUGFpbnRJbmYK
IH0KICNlbmRpZgogCitQbGF0Zm9ybVJlZlB0cjxHZGtQaXhidWY+IFJlbmRlclRoZW1lR3RrOjpn
ZXRTdG9ja0ljb24oR1R5cGUgd2lkZ2V0VHlwZSwgY29uc3QgY2hhciogaWNvbk5hbWUsIGdpbnQg
ZGlyZWN0aW9uLCBnaW50IHN0YXRlLCBnaW50IGljb25TaXplKQoreworICAgIEFTU0VSVCh3aWRn
ZXRUeXBlID09IEdUS19UWVBFX0NPTlRBSU5FUiB8fCB3aWRnZXRUeXBlID09IEdUS19UWVBFX0VO
VFJZKTsKKyAgICBHdGtXaWRnZXQqIHdpZGdldCA9IHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfQ09O
VEFJTkVSID8gR1RLX1dJREdFVChndGtDb250YWluZXIoKSkgOiBndGtFbnRyeSgpOworICAgIEd0
a1N0eWxlKiBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCk7CisgICAgR3RrSWNv
blNldCogaWNvblNldCA9IGd0a19zdHlsZV9sb29rdXBfaWNvbl9zZXQoc3R5bGUsIGljb25OYW1l
KTsKKyAgICByZXR1cm4gYWRvcHRQbGF0Zm9ybVJlZihndGtfaWNvbl9zZXRfcmVuZGVyX2ljb24o
aWNvblNldCwgc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXRpY19jYXN0PEd0a1RleHREaXJlY3Rpb24+KGRpcmVjdGlvbiksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PEd0a1N0YXRlVHlwZT4oc3RhdGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHdGtJY29uU2l6ZT4oaWNvblNp
emUpLCAwLCAwKSk7Cit9CisKKwogQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnBsYXRmb3JtQWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBHdGtXaWRnZXQqIHdpZGdl
dCA9IGd0a0VudHJ5KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJU
aGVtZUd0azMuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcApp
bmRleCAyMzYxZGE5ODA5YWZhY2YwMTc1ZTI0NDZlNzZjMWE5Zjc5YzMxMmQ4Li5kN2NhYmIyNzRh
ZTRkYmRmZDMxZWNlYjEzNzc0NGM3NDVkZTlhOWZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Jl
bmRlclRoZW1lR3RrMy5jcHAKQEAgLTQ2LDYgKzQ2LDUxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAordHlwZWRlZiBIYXNoTWFwPEdUeXBlLCBQbGF0Zm9ybVJlZlB0cjxHdGtTdHlsZUNvbnRl
eHQ+ID4gU3R5bGVDb250ZXh0TWFwOworc3RhdGljIFN0eWxlQ29udGV4dE1hcCYgc3R5bGVDb250
ZXh0TWFwKCk7CisKK3N0YXRpYyB2b2lkIGd0a1N0eWxlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3Qq
LCBHUGFyYW1TcGVjKikKK3sKKyAgICBTdHlsZUNvbnRleHRNYXA6OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IHN0eWxlQ29udGV4dE1hcCgpLmVuZCgpOworICAgIGZvciAoU3R5bGVDb250ZXh0TWFwOjpj
b25zdF9pdGVyYXRvciBpdGVyID0gc3R5bGVDb250ZXh0TWFwKCkuYmVnaW4oKTsgaXRlciAhPSBl
bmQ7ICsraXRlcikKKyAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfaW52YWxpZGF0ZShpdGVyLT5z
ZWNvbmQuZ2V0KCkpOworCisgICAgUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZSgwKS0+cGxhdGZv
cm1Db2xvcnNEaWRDaGFuZ2UoKTsKK30KKworc3RhdGljIFN0eWxlQ29udGV4dE1hcCYgc3R5bGVD
b250ZXh0TWFwKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxlQ29udGV4dE1hcCwg
bWFwLCAoKSk7CisKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworICAgIGlm
ICghaW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgR3RrU2V0dGluZ3MqIHNldHRpbmdzID0gZ3RrX3Nl
dHRpbmdzX2dldF9kZWZhdWx0KCk7CisgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc2V0dGluZ3Ms
ICJub3RpZnk6Omd0ay10aGVtZS1uYW1lIiwgR19DQUxMQkFDSyhndGtTdHlsZUNoYW5nZWRDYWxs
YmFjayksIDApOworICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHNldHRpbmdzLCAibm90aWZ5Ojpn
dGstY29sb3Itc2NoZW1lIiwgR19DQUxMQkFDSyhndGtTdHlsZUNoYW5nZWRDYWxsYmFjayksIDAp
OworICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgfQorICAgIHJldHVybiBtYXA7Cit9
CisKKworc3RhdGljIEd0a1N0eWxlQ29udGV4dCogZ2V0U3R5bGVDb250ZXh0KEdUeXBlIHdpZGdl
dFR5cGUpCit7CisgICAgaWYgKCFzdHlsZUNvbnRleHRNYXAoKS5jb250YWlucyh3aWRnZXRUeXBl
KSkgeworICAgICAgICBHdGtXaWRnZXRQYXRoKiBwYXRoID0gZ3RrX3dpZGdldF9wYXRoX25ldygp
OworICAgICAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aCwgd2lkZ2V0VHlwZSk7
CisKKyAgICAgICAgUGxhdGZvcm1SZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBjb250ZXh0ID0gYWRv
cHRQbGF0Zm9ybVJlZihndGtfc3R5bGVfY29udGV4dF9uZXcoKSk7CisgICAgICAgIGd0a19zdHls
ZV9jb250ZXh0X3NldF9wYXRoKGNvbnRleHQuZ2V0KCksIHBhdGgpOworICAgICAgICBndGtfd2lk
Z2V0X3BhdGhfZnJlZShwYXRoKTsKKworICAgICAgICBzdHlsZUNvbnRleHRNYXAoKS5zZXQod2lk
Z2V0VHlwZSwgY29udGV4dCk7CisgICAgICAgIHJldHVybiBjb250ZXh0LmdldCgpOworICAgIH0K
KworICAgIFN0eWxlQ29udGV4dE1hcDo6aXRlcmF0b3IgaXRlciA9IHN0eWxlQ29udGV4dE1hcCgp
LmZpbmQod2lkZ2V0VHlwZSk7CisgICAgcmV0dXJuIGl0ZXItPnNlY29uZC5nZXQoKTsKK30KKwog
Ly8gVGhpcyBpcyBub3QgYSBzdGF0aWMgbWV0aG9kLCBiZWNhdXNlIHdlIHdhbnQgdG8gYXZvaWQg
aGF2aW5nIEdUSysgaGVhZGVycyBpbiBSZW5kZXJUaGVtZUd0ay5oLgogZXh0ZXJuIEd0a1RleHRE
aXJlY3Rpb24gZ3RrVGV4dERpcmVjdGlvbihUZXh0RGlyZWN0aW9uKTsKIApAQCAtMzcxLDYgKzQx
NiwyOCBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVj
dCogcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZgogfQogI2VuZGlmCiAKK1BsYXRmb3JtUmVm
UHRyPEdka1BpeGJ1Zj4gUmVuZGVyVGhlbWVHdGs6OmdldFN0b2NrSWNvbihHVHlwZSB3aWRnZXRU
eXBlLCBjb25zdCBjaGFyKiBpY29uTmFtZSwgZ2ludCBkaXJlY3Rpb24sIGdpbnQgc3RhdGUsIGdp
bnQgaWNvblNpemUpCit7CisgICAgR3RrU3R5bGVDb250ZXh0KiBjb250ZXh0ID0gZ2V0U3R5bGVD
b250ZXh0KHdpZGdldFR5cGUpOworICAgIEd0a0ljb25TZXQqIGljb25TZXQgPSBndGtfc3R5bGVf
Y29udGV4dF9sb29rdXBfaWNvbl9zZXQoY29udGV4dCwgaWNvbk5hbWUpOworCisgICAgZ3RrX3N0
eWxlX2NvbnRleHRfc2F2ZShjb250ZXh0KTsKKworICAgIGd1aW50IGZsYWdzID0gMDsKKyAgICBp
ZiAoc3RhdGUgPT0gR1RLX1NUQVRFX1BSRUxJR0hUKQorICAgICAgICBmbGFncyB8PSBHVEtfU1RB
VEVfRkxBR19QUkVMSUdIVDsKKyAgICBlbHNlIGlmIChzdGF0ZSA9PSBHVEtfU1RBVEVfSU5TRU5T
SVRJVkUpCisgICAgICAgIGZsYWdzIHw9IEdUS19TVEFURV9GTEFHX0lOU0VOU0lUSVZFOworCisg
ICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3N0YXRlKGNvbnRleHQsIHN0YXRpY19jYXN0PEd0a1N0
YXRlRmxhZ3M+KGZsYWdzKSk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlvbihj
b250ZXh0LCBzdGF0aWNfY2FzdDxHdGtUZXh0RGlyZWN0aW9uPihkaXJlY3Rpb24pKTsKKyAgICBH
ZGtQaXhidWYqIGljb24gPSBndGtfaWNvbl9zZXRfcmVuZGVyX2ljb25fcGl4YnVmKGljb25TZXQs
IGNvbnRleHQsIHN0YXRpY19jYXN0PEd0a0ljb25TaXplPihpY29uU2l6ZSkpOworCisgICAgZ3Rr
X3N0eWxlX2NvbnRleHRfcmVzdG9yZShjb250ZXh0KTsKKworICAgIHJldHVybiBhZG9wdFBsYXRm
b3JtUmVmKGljb24pOworfQorCiBDb2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIEd0a1dpZGdldCogd2lkZ2V0
ID0gZ3RrRW50cnkoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77798</attachid>
            <date>2011-01-03 02:20:07 -0800</date>
            <delta_ts>2011-01-04 09:13:20 -0800</delta_ts>
            <desc>Updated patch using Page::scheduleForcedStyleRecalcForAllPages()</desc>
            <filename>style-context-icons.diff</filename>
            <type>text/plain</type>
            <size>11371</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWUxZWQ1OC4uYjExM2U5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wMS0wMyAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+IGFuZCBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBbR1RLXSBQb3J0IHN0b2NrIGljb24gcGFpbnRpbmcgdG8gR3RrU3R5bGVDb250
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTc2
NAorCisgICAgICAgIFBvcnQgc3RvY2sgaWNvbiBwYWludGluZyBmb3IgbWVkaWEgYW5kIHNlYXJj
aCBpbnB1dCBlbGVtZW50cyB0bworICAgICAgICBHdGtTdHlsZUNvbnRleHQuIEFsc28gY3JlYXRl
IHRoZSBpbml0aWFsIG1hY2hpbmVyeSBmb3IgYWNjZXNzaW5nCisgICAgICAgIHN0eWxlIGNvbnRl
eHRzIGZvciBhbGwgR1RLKyAzLnggYmFzZWQgd2lkZ2V0cy4KKworICAgICAgICBObyBuZXcgdGVz
dHMuIFRoaXMgc2hvdWxkIG5vdCBjaGFuZ2UgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWludEdk
a1BpeGJ1Zik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hG
aWVsZFJlc3VsdHNEZWNvcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3Rr
OjpwYWludFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lR3RrOjpwYWludE1lZGlhQnV0dG9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpnZXRTdG9ja0ljb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Z3RrU3R5bGVDaGFuZ2VkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVDb250
ZXh0TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmdldFN0eWxlQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6Z2V0U3RvY2tJY29uKToKKwogMjAxMS0wMS0wMiAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5
IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAppbmRl
eCA2MDEzZWIyLi44ZWNkMjVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5k
ZXJUaGVtZUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsu
Y3BwCkBAIC00NCwxOSArNDQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyB2b2lkIHBhaW50U3RvY2tJY29uKEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgSW50UG9pbnQmIGljb25Qb2ludCwgR3RrU3R5bGUqIHN0eWxl
LCBjb25zdCBjaGFyKiBpY29uTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0a1Rl
eHREaXJlY3Rpb24gZGlyZWN0aW9uLCBHdGtTdGF0ZVR5cGUgc3RhdGUsIEd0a0ljb25TaXplIGlj
b25TaXplKQotewotICAgIEd0a0ljb25TZXQqIGljb25TZXQgPSBndGtfc3R5bGVfbG9va3VwX2lj
b25fc2V0KHN0eWxlLCBpY29uTmFtZSk7Ci0gICAgUGxhdGZvcm1SZWZQdHI8R2RrUGl4YnVmPiBp
Y29uID0gYWRvcHRQbGF0Zm9ybVJlZihndGtfaWNvbl9zZXRfcmVuZGVyX2ljb24oaWNvblNldCwg
c3R5bGUsIGRpcmVjdGlvbiwgc3RhdGUsIGljb25TaXplLCAwLCAwKSk7Ci0KLSAgICBjYWlyb190
KiBjciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwotICAgIGNhaXJvX3NhdmUoY3IpOwot
ICAgIGdka19jYWlyb19zZXRfc291cmNlX3BpeGJ1ZihjciwgaWNvbi5nZXQoKSwgaWNvblBvaW50
LngoKSwgaWNvblBvaW50LnkoKSk7Ci0gICAgY2Fpcm9fcGFpbnQoY3IpOwotICAgIGNhaXJvX3Jl
c3RvcmUoY3IpOwotfQotCiAjaWYgRU5BQkxFKFZJREVPKQogc3RhdGljIEhUTUxNZWRpYUVsZW1l
bnQqIGdldE1lZGlhRWxlbWVudEZyb21SZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0KiBvKQogewpA
QCAtMjg4LDYgKzI3NSwxNSBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFRleHRBcmVhKFJl
bmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbgogICAgIHJldHVybiBw
YWludFRleHRGaWVsZChvLCBpLCByKTsKIH0KIAorc3RhdGljIHZvaWQgcGFpbnRHZGtQaXhidWYo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBHZGtQaXhidWYqIGljb24sIGNvbnN0IElu
dFBvaW50JiBpY29uUG9pbnQpCit7CisgICAgY2Fpcm9fdCogY3IgPSBjb250ZXh0LT5wbGF0Zm9y
bUNvbnRleHQoKTsKKyAgICBjYWlyb19zYXZlKGNyKTsKKyAgICBnZGtfY2Fpcm9fc2V0X3NvdXJj
ZV9waXhidWYoY3IsIGljb24sIGljb25Qb2ludC54KCksIGljb25Qb2ludC55KCkpOworICAgIGNh
aXJvX3BhaW50KGNyKTsKKyAgICBjYWlyb19yZXN0b3JlKGNyKTsKK30KKwogdm9pZCBSZW5kZXJU
aGVtZUd0azo6YWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxl
Y3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZSkgY29uc3QKIHsK
ICAgICBhZGp1c3RTZWFyY2hGaWVsZENhbmNlbEJ1dHRvblN0eWxlKHNlbGVjdG9yLCBzdHlsZSwg
ZSk7CkBAIC0zMjUsMTEgKzMyMSwxMCBAQCBzdGF0aWMgSW50UG9pbnQgY2VudGVyUmVjdFZlcnRp
Y2FsbHlJblBhcmVudElucHV0RWxlbWVudChSZW5kZXJPYmplY3QqIG9iamVjdCwgYwogCiBib29s
IFJlbmRlclRoZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb24oUmVuZGVy
T2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJ
bnRSZWN0JiByZWN0KQogewotICAgIEd0a1N0eWxlKiBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0
eWxlKEdUS19XSURHRVQoZ3RrRW50cnkoKSkpOwotICAgIEludFBvaW50IGljb25Qb2ludChjZW50
ZXJSZWN0VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVjdCwgcmVjdCkp
OwotICAgIHBhaW50U3RvY2tJY29uKHBhaW50SW5mby5jb250ZXh0LCBpY29uUG9pbnQsIHN0eWxl
LCBHVEtfU1RPQ0tfRklORCwKLSAgICAgICAgICAgICAgICAgICBndGtUZXh0RGlyZWN0aW9uKHJl
bmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpLAotICAgICAgICAgICAgICAgICAgIGd0
a0ljb25TdGF0ZShyZW5kZXJPYmplY3QpLCBHVEtfSUNPTl9TSVpFX01FTlUpOworICAgIFBsYXRm
b3JtUmVmUHRyPEdka1BpeGJ1Zj4gaWNvbiA9IGdldFN0b2NrSWNvbihHVEtfVFlQRV9FTlRSWSwg
R1RLX1NUT0NLX0ZJTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGd0a1RleHREaXJlY3Rpb24ocmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5kaXJlY3Rp
b24oKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGd0a0ljb25TdGF0ZShyZW5kZXJPYmplY3QpLCBHVEtfSUNPTl9TSVpFX01FTlUpOworICAgIHBh
aW50R2RrUGl4YnVmKHBhaW50SW5mby5jb250ZXh0LCBpY29uLmdldCgpLCBjZW50ZXJSZWN0VmVy
dGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVjdCwgcmVjdCkpOwogICAgIHJl
dHVybiBmYWxzZTsKIH0KIApAQCAtMzQ2LDExICszNDEsMTAgQEAgdm9pZCBSZW5kZXJUaGVtZUd0
azo6YWRqdXN0U2VhcmNoRmllbGRDYW5jZWxCdXR0b25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBz
ZWxlY3QKIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
bihSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgR3RrU3R5bGUqIHN0eWxlID0gZ3RrX3dpZGdl
dF9nZXRfc3R5bGUoR1RLX1dJREdFVChndGtFbnRyeSgpKSk7Ci0gICAgSW50UG9pbnQgaWNvblBv
aW50KGNlbnRlclJlY3RWZXJ0aWNhbGx5SW5QYXJlbnRJbnB1dEVsZW1lbnQocmVuZGVyT2JqZWN0
LCByZWN0KSk7Ci0gICAgcGFpbnRTdG9ja0ljb24ocGFpbnRJbmZvLmNvbnRleHQsIGljb25Qb2lu
dCwgc3R5bGUsIEdUS19TVE9DS19DTEVBUiwKLSAgICAgICAgICAgICAgICAgICBndGtUZXh0RGly
ZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpLAotICAgICAgICAgICAg
ICAgICAgIGd0a0ljb25TdGF0ZShyZW5kZXJPYmplY3QpLCBHVEtfSUNPTl9TSVpFX01FTlUpOwor
ICAgIFBsYXRmb3JtUmVmUHRyPEdka1BpeGJ1Zj4gaWNvbiA9IGdldFN0b2NrSWNvbihHVEtfVFlQ
RV9FTlRSWSwgR1RLX1NUT0NLX0NMRUFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUo
KS0+ZGlyZWN0aW9uKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBndGtJY29uU3RhdGUocmVuZGVyT2JqZWN0KSwgR1RLX0lDT05fU0laRV9NRU5V
KTsKKyAgICBwYWludEdka1BpeGJ1ZihwYWludEluZm8uY29udGV4dCwgaWNvbi5nZXQoKSwgY2Vu
dGVyUmVjdFZlcnRpY2FsbHlJblBhcmVudElucHV0RWxlbWVudChyZW5kZXJPYmplY3QsIHJlY3Qp
KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTQ0OCwxMyArNDQyLDE0IEBAIFN0cmluZyBS
ZW5kZXJUaGVtZUd0azo6ZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpCiAKIGJvb2wgUmVu
ZGVyVGhlbWVHdGs6OnBhaW50TWVkaWFCdXR0b24oUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3Qs
IEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgY2hh
ciogaWNvbk5hbWUpCiB7Ci0gICAgR3RrU3R5bGUqIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5
bGUoR1RLX1dJREdFVChndGtDb250YWluZXIoKSkpOworICAgIFBsYXRmb3JtUmVmUHRyPEdka1Bp
eGJ1Zj4gaWNvbiA9IGdldFN0b2NrSWNvbihHVEtfVFlQRV9DT05UQUlORVIsIGljb25OYW1lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndGtUZXh0
RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndGtJY29uU3RhdGUocmVu
ZGVyT2JqZWN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2V0TWVkaWFCdXR0b25JY29uU2l6ZShtX21lZGlhSWNvblNpemUpKTsKICAgICBJbnRQ
b2ludCBpY29uUG9pbnQocmVjdC54KCkgKyAocmVjdC53aWR0aCgpIC0gbV9tZWRpYUljb25TaXpl
KSAvIDIsCiAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QueSgpICsgKHJlY3QuaGVpZ2h0KCkg
LSBtX21lZGlhSWNvblNpemUpIC8gMik7CiAgICAgY29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0
KHJlY3QpLCBtX3BhbmVsQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgIHBhaW50U3Rv
Y2tJY29uKGNvbnRleHQsIGljb25Qb2ludCwgc3R5bGUsIGljb25OYW1lLCAKLSAgICAgICAgICAg
ICAgICAgICBndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9u
KCkpLCBndGtJY29uU3RhdGUocmVuZGVyT2JqZWN0KSwgZ2V0TWVkaWFCdXR0b25JY29uU2l6ZSht
X21lZGlhSWNvblNpemUpKTsKLQorICAgIHBhaW50R2RrUGl4YnVmKGNvbnRleHQsIGljb24uZ2V0
KCksIGljb25Qb2ludCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UmVuZGVyVGhlbWVHdGsuaAppbmRleCA2N2E5ZDMwLi4yOWJmNjZhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1JlbmRlclRoZW1lR3RrLmgKQEAgLTE3NCw2ICsxNzQsNyBAQCBwcml2YXRlOgogI2VuZGlm
CiAgICAgR3RrU3RhdGVUeXBlIGd0a0ljb25TdGF0ZShSZW5kZXJPYmplY3QqKTsKICAgICBzdGF0
aWMgdm9pZCBzZXRUZXh0SW5wdXRCb3JkZXJzKFJlbmRlclN0eWxlKik7CisgICAgUGxhdGZvcm1S
ZWZQdHI8R2RrUGl4YnVmPiBnZXRTdG9ja0ljb24oR1R5cGUsIGNvbnN0IGNoYXIqIGljb25OYW1l
LCBnaW50IGRpcmVjdGlvbiwgZ2ludCBzdGF0ZSwgZ2ludCBpY29uU2l6ZSk7CiAKICAgICBtdXRh
YmxlIEd0a1dpZGdldCogbV9ndGtXaW5kb3c7CiAgICAgbXV0YWJsZSBHdGtXaWRnZXQqIG1fZ3Rr
Q29udGFpbmVyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
dGsyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMi5jcHAKaW5kZXgg
YjM5NDNhZS4uMzA4OTFjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVy
VGhlbWVHdGsyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIu
Y3BwCkBAIC0zNzgsNiArMzc4LDE5IEBAIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50UHJvZ3Jl
c3NCYXIoUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW5mCiB9CiAjZW5k
aWYKIAorUGxhdGZvcm1SZWZQdHI8R2RrUGl4YnVmPiBSZW5kZXJUaGVtZUd0azo6Z2V0U3RvY2tJ
Y29uKEdUeXBlIHdpZGdldFR5cGUsIGNvbnN0IGNoYXIqIGljb25OYW1lLCBnaW50IGRpcmVjdGlv
biwgZ2ludCBzdGF0ZSwgZ2ludCBpY29uU2l6ZSkKK3sKKyAgICBBU1NFUlQod2lkZ2V0VHlwZSA9
PSBHVEtfVFlQRV9DT05UQUlORVIgfHwgd2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9FTlRSWSk7Cisg
ICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSB3aWRnZXRUeXBlID09IEdUS19UWVBFX0NPTlRBSU5FUiA/
IEdUS19XSURHRVQoZ3RrQ29udGFpbmVyKCkpIDogZ3RrRW50cnkoKTsKKyAgICBHdGtTdHlsZSog
c3R5bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZSh3aWRnZXQpOworICAgIEd0a0ljb25TZXQqIGlj
b25TZXQgPSBndGtfc3R5bGVfbG9va3VwX2ljb25fc2V0KHN0eWxlLCBpY29uTmFtZSk7CisgICAg
cmV0dXJuIGFkb3B0UGxhdGZvcm1SZWYoZ3RrX2ljb25fc2V0X3JlbmRlcl9pY29uKGljb25TZXQs
IHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0aWNfY2FzdDxHdGtUZXh0RGlyZWN0aW9uPihkaXJlY3Rpb24pLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxH
dGtTdGF0ZVR5cGU+KHN0YXRlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R3RrSWNvblNpemU+KGljb25TaXplKSwgMCwg
MCkpOworfQorCisKIENvbG9yIFJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtF
bnRyeSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsz
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKaW5kZXggMjM2
MWRhOS4uZTYzNjJiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhl
bWVHdGszLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3Bw
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiR3RrVmVyc2lvbmluZy5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlRleHREaXJl
Y3Rpb24uaCIKICNpbmNsdWRlICJVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIgpAQCAtNDYsNiArNDcs
NTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit0eXBlZGVmIEhhc2hNYXA8R1R5cGUsIFBs
YXRmb3JtUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gPiBTdHlsZUNvbnRleHRNYXA7CitzdGF0aWMg
U3R5bGVDb250ZXh0TWFwJiBzdHlsZUNvbnRleHRNYXAoKTsKKworc3RhdGljIHZvaWQgZ3RrU3R5
bGVDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNwZWMqKQoreworICAgIFN0eWxlQ29u
dGV4dE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gc3R5bGVDb250ZXh0TWFwKCkuZW5kKCk7Cisg
ICAgZm9yIChTdHlsZUNvbnRleHRNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBzdHlsZUNvbnRl
eHRNYXAoKS5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKQorICAgICAgICBndGtfc3R5bGVf
Y29udGV4dF9pbnZhbGlkYXRlKGl0ZXItPnNlY29uZC5nZXQoKSk7CisKKyAgICBQYWdlOjpzY2hl
ZHVsZUZvcmNlZFN0eWxlUmVjYWxjRm9yQWxsUGFnZXMoKTsKK30KKworc3RhdGljIFN0eWxlQ29u
dGV4dE1hcCYgc3R5bGVDb250ZXh0TWFwKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0
eWxlQ29udGV4dE1hcCwgbWFwLCAoKSk7CisKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9
IGZhbHNlOworICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgR3RrU2V0dGluZ3MqIHNl
dHRpbmdzID0gZ3RrX3NldHRpbmdzX2dldF9kZWZhdWx0KCk7CisgICAgICAgIGdfc2lnbmFsX2Nv
bm5lY3Qoc2V0dGluZ3MsICJub3RpZnk6Omd0ay10aGVtZS1uYW1lIiwgR19DQUxMQkFDSyhndGtT
dHlsZUNoYW5nZWRDYWxsYmFjayksIDApOworICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHNldHRp
bmdzLCAibm90aWZ5OjpndGstY29sb3Itc2NoZW1lIiwgR19DQUxMQkFDSyhndGtTdHlsZUNoYW5n
ZWRDYWxsYmFjayksIDApOworICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgfQorICAg
IHJldHVybiBtYXA7Cit9CisKK3N0YXRpYyBHdGtTdHlsZUNvbnRleHQqIGdldFN0eWxlQ29udGV4
dChHVHlwZSB3aWRnZXRUeXBlKQoreworICAgIGlmICghc3R5bGVDb250ZXh0TWFwKCkuY29udGFp
bnMod2lkZ2V0VHlwZSkpIHsKKyAgICAgICAgR3RrV2lkZ2V0UGF0aCogcGF0aCA9IGd0a193aWRn
ZXRfcGF0aF9uZXcoKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGgs
IHdpZGdldFR5cGUpOworCisgICAgICAgIFBsYXRmb3JtUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4g
Y29udGV4dCA9IGFkb3B0UGxhdGZvcm1SZWYoZ3RrX3N0eWxlX2NvbnRleHRfbmV3KCkpOworICAg
ICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChjb250ZXh0LmdldCgpLCBwYXRoKTsKKyAg
ICAgICAgZ3RrX3dpZGdldF9wYXRoX2ZyZWUocGF0aCk7CisKKyAgICAgICAgc3R5bGVDb250ZXh0
TWFwKCkuc2V0KHdpZGdldFR5cGUsIGNvbnRleHQpOworICAgICAgICByZXR1cm4gY29udGV4dC5n
ZXQoKTsKKyAgICB9CisKKyAgICBTdHlsZUNvbnRleHRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBzdHls
ZUNvbnRleHRNYXAoKS5maW5kKHdpZGdldFR5cGUpOworICAgIHJldHVybiBpdGVyLT5zZWNvbmQu
Z2V0KCk7Cit9CisKIC8vIFRoaXMgaXMgbm90IGEgc3RhdGljIG1ldGhvZCwgYmVjYXVzZSB3ZSB3
YW50IHRvIGF2b2lkIGhhdmluZyBHVEsrIGhlYWRlcnMgaW4gUmVuZGVyVGhlbWVHdGsuaC4KIGV4
dGVybiBHdGtUZXh0RGlyZWN0aW9uIGd0a1RleHREaXJlY3Rpb24oVGV4dERpcmVjdGlvbik7CiAK
QEAgLTM3MSw2ICs0MTYsMjggQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRQcm9ncmVzc0Jh
cihSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgY29uc3QgUGFpbnRJbmYKIH0KICNlbmRpZgog
CitQbGF0Zm9ybVJlZlB0cjxHZGtQaXhidWY+IFJlbmRlclRoZW1lR3RrOjpnZXRTdG9ja0ljb24o
R1R5cGUgd2lkZ2V0VHlwZSwgY29uc3QgY2hhciogaWNvbk5hbWUsIGdpbnQgZGlyZWN0aW9uLCBn
aW50IHN0YXRlLCBnaW50IGljb25TaXplKQoreworICAgIEd0a1N0eWxlQ29udGV4dCogY29udGV4
dCA9IGdldFN0eWxlQ29udGV4dCh3aWRnZXRUeXBlKTsKKyAgICBHdGtJY29uU2V0KiBpY29uU2V0
ID0gZ3RrX3N0eWxlX2NvbnRleHRfbG9va3VwX2ljb25fc2V0KGNvbnRleHQsIGljb25OYW1lKTsK
KworICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoY29udGV4dCk7CisKKyAgICBndWludCBmbGFn
cyA9IDA7CisgICAgaWYgKHN0YXRlID09IEdUS19TVEFURV9QUkVMSUdIVCkKKyAgICAgICAgZmxh
Z3MgfD0gR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQ7CisgICAgZWxzZSBpZiAoc3RhdGUgPT0gR1RL
X1NUQVRFX0lOU0VOU0lUSVZFKQorICAgICAgICBmbGFncyB8PSBHVEtfU1RBVEVfRkxBR19JTlNF
TlNJVElWRTsKKworICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9zdGF0ZShjb250ZXh0LCBzdGF0
aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPihmbGFncykpOworICAgIGd0a19zdHlsZV9jb250ZXh0X3Nl
dF9kaXJlY3Rpb24oY29udGV4dCwgc3RhdGljX2Nhc3Q8R3RrVGV4dERpcmVjdGlvbj4oZGlyZWN0
aW9uKSk7CisgICAgR2RrUGl4YnVmKiBpY29uID0gZ3RrX2ljb25fc2V0X3JlbmRlcl9pY29uX3Bp
eGJ1ZihpY29uU2V0LCBjb250ZXh0LCBzdGF0aWNfY2FzdDxHdGtJY29uU2l6ZT4oaWNvblNpemUp
KTsKKworICAgIGd0a19zdHlsZV9jb250ZXh0X3Jlc3RvcmUoY29udGV4dCk7CisKKyAgICByZXR1
cm4gYWRvcHRQbGF0Zm9ybVJlZihpY29uKTsKK30KKwogQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnBs
YXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBHdGtX
aWRnZXQqIHdpZGdldCA9IGd0a0VudHJ5KCk7Cg==
</data>
<flag name="review"
          id="68983"
          type_id="1"
          status="-"
          setter="xan.lopez"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77892</attachid>
            <date>2011-01-04 09:13:20 -0800</date>
            <delta_ts>2011-01-04 10:28:53 -0800</delta_ts>
            <desc>Updated patch according to review</desc>
            <filename>style-context-icons2.diff</filename>
            <type>text/plain</type>
            <size>11330</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWUxZWQ1OC4uNWY4MjkxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wMS0wNCAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+IGFuZCBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBbR1RLXSBQb3J0IHN0b2NrIGljb24gcGFpbnRpbmcgdG8gR3RrU3R5bGVDb250
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTc2
NAorCisgICAgICAgIFBvcnQgc3RvY2sgaWNvbiBwYWludGluZyBmb3IgbWVkaWEgYW5kIHNlYXJj
aCBpbnB1dCBlbGVtZW50cyB0bworICAgICAgICBHdGtTdHlsZUNvbnRleHQuIEFsc28gY3JlYXRl
IHRoZSBpbml0aWFsIG1hY2hpbmVyeSBmb3IgYWNjZXNzaW5nCisgICAgICAgIHN0eWxlIGNvbnRl
eHRzIGZvciBhbGwgR1RLKyAzLnggYmFzZWQgd2lkZ2V0cy4KKworICAgICAgICBObyBuZXcgdGVz
dHMuIFRoaXMgc2hvdWxkIG5vdCBjaGFuZ2UgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWludEdk
a1BpeGJ1Zik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hG
aWVsZFJlc3VsdHNEZWNvcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3Rr
OjpwYWludFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lR3RrOjpwYWludE1lZGlhQnV0dG9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpnZXRTdG9ja0ljb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Z3RrU3R5bGVDaGFuZ2VkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVDb250
ZXh0TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmdldFN0eWxlQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRNZW51TGlzdCk6CisKIDIwMTEtMDEtMDIgIERh
biBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBi
eSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJU
aGVtZUd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKaW5k
ZXggNjAxM2ViMi4uOGVjZDI1YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3Rr
LmNwcApAQCAtNDQsMTkgKzQ0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCi1zdGF0aWMgdm9pZCBwYWludFN0b2NrSWNvbihHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IEludFBvaW50JiBpY29uUG9pbnQsIEd0a1N0eWxlKiBzdHls
ZSwgY29uc3QgY2hhciogaWNvbk5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtU
ZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiwgR3RrU3RhdGVUeXBlIHN0YXRlLCBHdGtJY29uU2l6ZSBp
Y29uU2l6ZSkKLXsKLSAgICBHdGtJY29uU2V0KiBpY29uU2V0ID0gZ3RrX3N0eWxlX2xvb2t1cF9p
Y29uX3NldChzdHlsZSwgaWNvbk5hbWUpOwotICAgIFBsYXRmb3JtUmVmUHRyPEdka1BpeGJ1Zj4g
aWNvbiA9IGFkb3B0UGxhdGZvcm1SZWYoZ3RrX2ljb25fc2V0X3JlbmRlcl9pY29uKGljb25TZXQs
IHN0eWxlLCBkaXJlY3Rpb24sIHN0YXRlLCBpY29uU2l6ZSwgMCwgMCkpOwotCi0gICAgY2Fpcm9f
dCogY3IgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKLSAgICBjYWlyb19zYXZlKGNyKTsK
LSAgICBnZGtfY2Fpcm9fc2V0X3NvdXJjZV9waXhidWYoY3IsIGljb24uZ2V0KCksIGljb25Qb2lu
dC54KCksIGljb25Qb2ludC55KCkpOwotICAgIGNhaXJvX3BhaW50KGNyKTsKLSAgICBjYWlyb19y
ZXN0b3JlKGNyKTsKLX0KLQogI2lmIEVOQUJMRShWSURFTykKIHN0YXRpYyBIVE1MTWVkaWFFbGVt
ZW50KiBnZXRNZWRpYUVsZW1lbnRGcm9tUmVuZGVyT2JqZWN0KFJlbmRlck9iamVjdCogbykKIHsK
QEAgLTI4OCw2ICsyNzUsMTUgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRUZXh0QXJlYShS
ZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgaSwgY29uc3QgSW4KICAgICByZXR1cm4g
cGFpbnRUZXh0RmllbGQobywgaSwgcik7CiB9CiAKK3N0YXRpYyB2b2lkIHBhaW50R2RrUGl4YnVm
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgR2RrUGl4YnVmKiBpY29uLCBjb25zdCBJ
bnRQb2ludCYgaWNvblBvaW50KQoreworICAgIGNhaXJvX3QqIGNyID0gY29udGV4dC0+cGxhdGZv
cm1Db250ZXh0KCk7CisgICAgY2Fpcm9fc2F2ZShjcik7CisgICAgZ2RrX2NhaXJvX3NldF9zb3Vy
Y2VfcGl4YnVmKGNyLCBpY29uLCBpY29uUG9pbnQueCgpLCBpY29uUG9pbnQueSgpKTsKKyAgICBj
YWlyb19wYWludChjcik7CisgICAgY2Fpcm9fcmVzdG9yZShjcik7Cit9CisKIHZvaWQgUmVuZGVy
VGhlbWVHdGs6OmFkanVzdFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblN0eWxlKENTU1N0eWxlU2Vs
ZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGUpIGNvbnN0CiB7
CiAgICAgYWRqdXN0U2VhcmNoRmllbGRDYW5jZWxCdXR0b25TdHlsZShzZWxlY3Rvciwgc3R5bGUs
IGUpOwpAQCAtMzI1LDExICszMjEsMTAgQEAgc3RhdGljIEludFBvaW50IGNlbnRlclJlY3RWZXJ0
aWNhbGx5SW5QYXJlbnRJbnB1dEVsZW1lbnQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGMKIAogYm9v
bCBSZW5kZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uKFJlbmRl
ck9iamVjdCogcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
SW50UmVjdCYgcmVjdCkKIHsKLSAgICBHdGtTdHlsZSogc3R5bGUgPSBndGtfd2lkZ2V0X2dldF9z
dHlsZShHVEtfV0lER0VUKGd0a0VudHJ5KCkpKTsKLSAgICBJbnRQb2ludCBpY29uUG9pbnQoY2Vu
dGVyUmVjdFZlcnRpY2FsbHlJblBhcmVudElucHV0RWxlbWVudChyZW5kZXJPYmplY3QsIHJlY3Qp
KTsKLSAgICBwYWludFN0b2NrSWNvbihwYWludEluZm8uY29udGV4dCwgaWNvblBvaW50LCBzdHls
ZSwgR1RLX1NUT0NLX0ZJTkQsCi0gICAgICAgICAgICAgICAgICAgZ3RrVGV4dERpcmVjdGlvbihy
ZW5kZXJPYmplY3QtPnN0eWxlKCktPmRpcmVjdGlvbigpKSwKLSAgICAgICAgICAgICAgICAgICBn
dGtJY29uU3RhdGUocmVuZGVyT2JqZWN0KSwgR1RLX0lDT05fU0laRV9NRU5VKTsKKyAgICBQbGF0
Zm9ybVJlZlB0cjxHZGtQaXhidWY+IGljb24gPSBnZXRTdG9ja0ljb24oR1RLX1RZUEVfRU5UUlks
IEdUS19TVE9DS19GSU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0
aW9uKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBndGtJY29uU3RhdGUocmVuZGVyT2JqZWN0KSwgR1RLX0lDT05fU0laRV9NRU5VKTsKKyAgICBw
YWludEdka1BpeGJ1ZihwYWludEluZm8uY29udGV4dCwgaWNvbi5nZXQoKSwgY2VudGVyUmVjdFZl
cnRpY2FsbHlJblBhcmVudElucHV0RWxlbWVudChyZW5kZXJPYmplY3QsIHJlY3QpKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTM0NiwxMSArMzQxLDEwIEBAIHZvaWQgUmVuZGVyVGhlbWVH
dGs6OmFkanVzdFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciog
c2VsZWN0CiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2VhcmNoRmllbGRDYW5jZWxCdXR0
b24oUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIEd0a1N0eWxlKiBzdHlsZSA9IGd0a193aWRn
ZXRfZ2V0X3N0eWxlKEdUS19XSURHRVQoZ3RrRW50cnkoKSkpOwotICAgIEludFBvaW50IGljb25Q
b2ludChjZW50ZXJSZWN0VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVj
dCwgcmVjdCkpOwotICAgIHBhaW50U3RvY2tJY29uKHBhaW50SW5mby5jb250ZXh0LCBpY29uUG9p
bnQsIHN0eWxlLCBHVEtfU1RPQ0tfQ0xFQVIsCi0gICAgICAgICAgICAgICAgICAgZ3RrVGV4dERp
cmVjdGlvbihyZW5kZXJPYmplY3QtPnN0eWxlKCktPmRpcmVjdGlvbigpKSwKLSAgICAgICAgICAg
ICAgICAgICBndGtJY29uU3RhdGUocmVuZGVyT2JqZWN0KSwgR1RLX0lDT05fU0laRV9NRU5VKTsK
KyAgICBQbGF0Zm9ybVJlZlB0cjxHZGtQaXhidWY+IGljb24gPSBnZXRTdG9ja0ljb24oR1RLX1RZ
UEVfRU5UUlksIEdUS19TVE9DS19DTEVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ3RrVGV4dERpcmVjdGlvbihyZW5kZXJPYmplY3QtPnN0eWxl
KCktPmRpcmVjdGlvbigpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3RrSWNvblN0YXRlKHJlbmRlck9iamVjdCksIEdUS19JQ09OX1NJWkVfTUVO
VSk7CisgICAgcGFpbnRHZGtQaXhidWYocGFpbnRJbmZvLmNvbnRleHQsIGljb24uZ2V0KCksIGNl
bnRlclJlY3RWZXJ0aWNhbGx5SW5QYXJlbnRJbnB1dEVsZW1lbnQocmVuZGVyT2JqZWN0LCByZWN0
KSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC00NDgsMTMgKzQ0MiwxNCBAQCBTdHJpbmcg
UmVuZGVyVGhlbWVHdGs6OmV4dHJhTWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKQogCiBib29sIFJl
bmRlclRoZW1lR3RrOjpwYWludE1lZGlhQnV0dG9uKFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0
LCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IGNo
YXIqIGljb25OYW1lKQogewotICAgIEd0a1N0eWxlKiBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0
eWxlKEdUS19XSURHRVQoZ3RrQ29udGFpbmVyKCkpKTsKKyAgICBQbGF0Zm9ybVJlZlB0cjxHZGtQ
aXhidWY+IGljb24gPSBnZXRTdG9ja0ljb24oR1RLX1RZUEVfQ09OVEFJTkVSLCBpY29uTmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RrVGV4
dERpcmVjdGlvbihyZW5kZXJPYmplY3QtPnN0eWxlKCktPmRpcmVjdGlvbigpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RrSWNvblN0YXRlKHJl
bmRlck9iamVjdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdldE1lZGlhQnV0dG9uSWNvblNpemUobV9tZWRpYUljb25TaXplKSk7CiAgICAgSW50
UG9pbnQgaWNvblBvaW50KHJlY3QueCgpICsgKHJlY3Qud2lkdGgoKSAtIG1fbWVkaWFJY29uU2l6
ZSkgLyAyLAogICAgICAgICAgICAgICAgICAgICAgICByZWN0LnkoKSArIChyZWN0LmhlaWdodCgp
IC0gbV9tZWRpYUljb25TaXplKSAvIDIpOwogICAgIGNvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVj
dChyZWN0KSwgbV9wYW5lbENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICBwYWludFN0
b2NrSWNvbihjb250ZXh0LCBpY29uUG9pbnQsIHN0eWxlLCBpY29uTmFtZSwgCi0gICAgICAgICAg
ICAgICAgICAgZ3RrVGV4dERpcmVjdGlvbihyZW5kZXJPYmplY3QtPnN0eWxlKCktPmRpcmVjdGlv
bigpKSwgZ3RrSWNvblN0YXRlKHJlbmRlck9iamVjdCksIGdldE1lZGlhQnV0dG9uSWNvblNpemUo
bV9tZWRpYUljb25TaXplKSk7Ci0KKyAgICBwYWludEdka1BpeGJ1Zihjb250ZXh0LCBpY29uLmdl
dCgpLCBpY29uUG9pbnQpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1JlbmRlclRoZW1lR3RrLmgKaW5kZXggNjdhOWQzMC4uMjliZjY2YSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9SZW5kZXJUaGVtZUd0ay5oCkBAIC0xNzQsNiArMTc0LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogICAgIEd0a1N0YXRlVHlwZSBndGtJY29uU3RhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgc3Rh
dGljIHZvaWQgc2V0VGV4dElucHV0Qm9yZGVycyhSZW5kZXJTdHlsZSopOworICAgIFBsYXRmb3Jt
UmVmUHRyPEdka1BpeGJ1Zj4gZ2V0U3RvY2tJY29uKEdUeXBlLCBjb25zdCBjaGFyKiBpY29uTmFt
ZSwgZ2ludCBkaXJlY3Rpb24sIGdpbnQgc3RhdGUsIGdpbnQgaWNvblNpemUpOwogCiAgICAgbXV0
YWJsZSBHdGtXaWRnZXQqIG1fZ3RrV2luZG93OwogICAgIG11dGFibGUgR3RrV2lkZ2V0KiBtX2d0
a0NvbnRhaW5lcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1l
R3RrMi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwCmluZGV4
IGIzOTQzYWUuLjMwODkxYzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRl
clRoZW1lR3RrMi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsy
LmNwcApAQCAtMzc4LDYgKzM3OCwxOSBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFByb2dy
ZXNzQmFyKFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZgogfQogI2Vu
ZGlmCiAKK1BsYXRmb3JtUmVmUHRyPEdka1BpeGJ1Zj4gUmVuZGVyVGhlbWVHdGs6OmdldFN0b2Nr
SWNvbihHVHlwZSB3aWRnZXRUeXBlLCBjb25zdCBjaGFyKiBpY29uTmFtZSwgZ2ludCBkaXJlY3Rp
b24sIGdpbnQgc3RhdGUsIGdpbnQgaWNvblNpemUpCit7CisgICAgQVNTRVJUKHdpZGdldFR5cGUg
PT0gR1RLX1RZUEVfQ09OVEFJTkVSIHx8IHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfRU5UUlkpOwor
ICAgIEd0a1dpZGdldCogd2lkZ2V0ID0gd2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9DT05UQUlORVIg
PyBHVEtfV0lER0VUKGd0a0NvbnRhaW5lcigpKSA6IGd0a0VudHJ5KCk7CisgICAgR3RrU3R5bGUq
IHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUod2lkZ2V0KTsKKyAgICBHdGtJY29uU2V0KiBp
Y29uU2V0ID0gZ3RrX3N0eWxlX2xvb2t1cF9pY29uX3NldChzdHlsZSwgaWNvbk5hbWUpOworICAg
IHJldHVybiBhZG9wdFBsYXRmb3JtUmVmKGd0a19pY29uX3NldF9yZW5kZXJfaWNvbihpY29uU2V0
LCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8R3RrVGV4dERpcmVjdGlvbj4oZGlyZWN0aW9uKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
R3RrU3RhdGVUeXBlPihzdGF0ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEd0a0ljb25TaXplPihpY29uU2l6ZSksIDAs
IDApKTsKK30KKworCiBDb2xvciBSZW5kZXJUaGVtZUd0azo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIEd0a1dpZGdldCogd2lkZ2V0ID0gZ3Rr
RW50cnkoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3Rr
My5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCmluZGV4IDIz
NjFkYTkuLjJmMDhhMDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrMy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xFbGVtZW50cy5oIgorI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJUZXh0RGly
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiVXNlckFnZW50U3R5bGVTaGVldHMuaCIKQEAgLTQ2LDYgKzQ3
LDQ5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordHlwZWRlZiBIYXNoTWFwPEdUeXBlLCBQ
bGF0Zm9ybVJlZlB0cjxHdGtTdHlsZUNvbnRleHQ+ID4gU3R5bGVDb250ZXh0TWFwOworc3RhdGlj
IFN0eWxlQ29udGV4dE1hcCYgc3R5bGVDb250ZXh0TWFwKCk7CisKK3N0YXRpYyB2b2lkIGd0a1N0
eWxlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqLCBHUGFyYW1TcGVjKikKK3sKKyAgICBTdHlsZUNv
bnRleHRNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHN0eWxlQ29udGV4dE1hcCgpLmVuZCgpOwor
ICAgIGZvciAoU3R5bGVDb250ZXh0TWFwOjpjb25zdF9pdGVyYXRvciBpdGVyID0gc3R5bGVDb250
ZXh0TWFwKCkuYmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKKyAgICAgICAgZ3RrX3N0eWxl
X2NvbnRleHRfaW52YWxpZGF0ZShpdGVyLT5zZWNvbmQuZ2V0KCkpOworCisgICAgUGFnZTo6c2No
ZWR1bGVGb3JjZWRTdHlsZVJlY2FsY0ZvckFsbFBhZ2VzKCk7Cit9CisKK3N0YXRpYyBTdHlsZUNv
bnRleHRNYXAmIHN0eWxlQ29udGV4dE1hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChT
dHlsZUNvbnRleHRNYXAsIG1hcCwgKCkpOworCisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQg
PSBmYWxzZTsKKyAgICBpZiAoIWluaXRpYWxpemVkKSB7CisgICAgICAgIEd0a1NldHRpbmdzKiBz
ZXR0aW5ncyA9IGd0a19zZXR0aW5nc19nZXRfZGVmYXVsdCgpOworICAgICAgICBnX3NpZ25hbF9j
b25uZWN0KHNldHRpbmdzLCAibm90aWZ5OjpndGstdGhlbWUtbmFtZSIsIEdfQ0FMTEJBQ0soZ3Rr
U3R5bGVDaGFuZ2VkQ2FsbGJhY2spLCAwKTsKKyAgICAgICAgZ19zaWduYWxfY29ubmVjdChzZXR0
aW5ncywgIm5vdGlmeTo6Z3RrLWNvbG9yLXNjaGVtZSIsIEdfQ0FMTEJBQ0soZ3RrU3R5bGVDaGFu
Z2VkQ2FsbGJhY2spLCAwKTsKKyAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIH0KKyAg
ICByZXR1cm4gbWFwOworfQorCitzdGF0aWMgR3RrU3R5bGVDb250ZXh0KiBnZXRTdHlsZUNvbnRl
eHQoR1R5cGUgd2lkZ2V0VHlwZSkKK3sKKyAgICBzdGQ6OnBhaXI8U3R5bGVDb250ZXh0TWFwOjpp
dGVyYXRvciwgYm9vbD5yZXN1bHQgPSBzdHlsZUNvbnRleHRNYXAoKS5hZGQod2lkZ2V0VHlwZSwg
MCk7CisgICAgaWYgKCFyZXN1bHQuc2Vjb25kKQorICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0
LT5zZWNvbmQuZ2V0KCk7CisKKyAgICBHdGtXaWRnZXRQYXRoKiBwYXRoID0gZ3RrX3dpZGdldF9w
YXRoX25ldygpOworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLCB3aWRnZXRU
eXBlKTsKKworICAgIFBsYXRmb3JtUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gY29udGV4dCA9IGFk
b3B0UGxhdGZvcm1SZWYoZ3RrX3N0eWxlX2NvbnRleHRfbmV3KCkpOworICAgIGd0a19zdHlsZV9j
b250ZXh0X3NldF9wYXRoKGNvbnRleHQuZ2V0KCksIHBhdGgpOworICAgIGd0a193aWRnZXRfcGF0
aF9mcmVlKHBhdGgpOworCisgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQgPSBjb250ZXh0OworICAg
IHJldHVybiBjb250ZXh0LmdldCgpOworfQorCiAvLyBUaGlzIGlzIG5vdCBhIHN0YXRpYyBtZXRo
b2QsIGJlY2F1c2Ugd2Ugd2FudCB0byBhdm9pZCBoYXZpbmcgR1RLKyBoZWFkZXJzIGluIFJlbmRl
clRoZW1lR3RrLmguCiBleHRlcm4gR3RrVGV4dERpcmVjdGlvbiBndGtUZXh0RGlyZWN0aW9uKFRl
eHREaXJlY3Rpb24pOwogCkBAIC0zNzEsNiArNDE1LDI4IEBAIGJvb2wgUmVuZGVyVGhlbWVHdGs6
OnBhaW50UHJvZ3Jlc3NCYXIoUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50
SW5mCiB9CiAjZW5kaWYKIAorUGxhdGZvcm1SZWZQdHI8R2RrUGl4YnVmPiBSZW5kZXJUaGVtZUd0
azo6Z2V0U3RvY2tJY29uKEdUeXBlIHdpZGdldFR5cGUsIGNvbnN0IGNoYXIqIGljb25OYW1lLCBn
aW50IGRpcmVjdGlvbiwgZ2ludCBzdGF0ZSwgZ2ludCBpY29uU2l6ZSkKK3sKKyAgICBHdGtTdHls
ZUNvbnRleHQqIGNvbnRleHQgPSBnZXRTdHlsZUNvbnRleHQod2lkZ2V0VHlwZSk7CisgICAgR3Rr
SWNvblNldCogaWNvblNldCA9IGd0a19zdHlsZV9jb250ZXh0X2xvb2t1cF9pY29uX3NldChjb250
ZXh0LCBpY29uTmFtZSk7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9zYXZlKGNvbnRleHQpOwor
CisgICAgZ3VpbnQgZmxhZ3MgPSAwOworICAgIGlmIChzdGF0ZSA9PSBHVEtfU1RBVEVfUFJFTElH
SFQpCisgICAgICAgIGZsYWdzIHw9IEdUS19TVEFURV9GTEFHX1BSRUxJR0hUOworICAgIGVsc2Ug
aWYgKHN0YXRlID09IEdUS19TVEFURV9JTlNFTlNJVElWRSkKKyAgICAgICAgZmxhZ3MgfD0gR1RL
X1NUQVRFX0ZMQUdfSU5TRU5TSVRJVkU7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfc3Rh
dGUoY29udGV4dCwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oZmxhZ3MpKTsKKyAgICBndGtf
c3R5bGVfY29udGV4dF9zZXRfZGlyZWN0aW9uKGNvbnRleHQsIHN0YXRpY19jYXN0PEd0a1RleHRE
aXJlY3Rpb24+KGRpcmVjdGlvbikpOworICAgIEdka1BpeGJ1ZiogaWNvbiA9IGd0a19pY29uX3Nl
dF9yZW5kZXJfaWNvbl9waXhidWYoaWNvblNldCwgY29udGV4dCwgc3RhdGljX2Nhc3Q8R3RrSWNv
blNpemU+KGljb25TaXplKSk7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9yZXN0b3JlKGNvbnRl
eHQpOworCisgICAgcmV0dXJuIGFkb3B0UGxhdGZvcm1SZWYoaWNvbik7Cit9CisKIENvbG9yIFJl
bmRlclRoZW1lR3RrOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNv
bnN0CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtFbnRyeSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77898</attachid>
            <date>2011-01-04 10:28:53 -0800</date>
            <delta_ts>2011-01-04 13:09:38 -0800</delta_ts>
            <desc>Updated patch fixing coding style</desc>
            <filename>style-context-icons3.diff</filename>
            <type>text/plain</type>
            <size>11327</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTVmMjkxMy4uZjhjZTIwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wMS0wNCAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+IGFuZCBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBbR1RLXSBQb3J0IHN0b2NrIGljb24gcGFpbnRpbmcgdG8gR3RrU3R5bGVDb250
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTc2
NAorCisgICAgICAgIFBvcnQgc3RvY2sgaWNvbiBwYWludGluZyBmb3IgbWVkaWEgYW5kIHNlYXJj
aCBpbnB1dCBlbGVtZW50cyB0bworICAgICAgICBHdGtTdHlsZUNvbnRleHQuIEFsc28gY3JlYXRl
IHRoZSBpbml0aWFsIG1hY2hpbmVyeSBmb3IgYWNjZXNzaW5nCisgICAgICAgIHN0eWxlIGNvbnRl
eHRzIGZvciBhbGwgR1RLKyAzLnggYmFzZWQgd2lkZ2V0cy4KKworICAgICAgICBObyBuZXcgdGVz
dHMuIFRoaXMgc2hvdWxkIG5vdCBjaGFuZ2UgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWludEdk
a1BpeGJ1Zik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hG
aWVsZFJlc3VsdHNEZWNvcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3Rr
OjpwYWludFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lR3RrOjpwYWludE1lZGlhQnV0dG9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpnZXRTdG9ja0ljb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Z3RrU3R5bGVDaGFuZ2VkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVDb250
ZXh0TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmdldFN0eWxlQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cGFpbnRNZW51TGlzdCk6CisKIDIwMTEtMDEtMDQgIFRv
bnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
IGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1l
R3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAppbmRleCAz
ZjdkNzUyLi44ZmNhNzExIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJU
aGVtZUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3Bw
CkBAIC00NCwxOSArNDQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyB2b2lkIHBhaW50U3RvY2tJY29uKEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgSW50UG9pbnQmIGljb25Qb2ludCwgR3RrU3R5bGUqIHN0eWxlLCBj
b25zdCBjaGFyKiBpY29uTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0a1RleHRE
aXJlY3Rpb24gZGlyZWN0aW9uLCBHdGtTdGF0ZVR5cGUgc3RhdGUsIEd0a0ljb25TaXplIGljb25T
aXplKQotewotICAgIEd0a0ljb25TZXQqIGljb25TZXQgPSBndGtfc3R5bGVfbG9va3VwX2ljb25f
c2V0KHN0eWxlLCBpY29uTmFtZSk7Ci0gICAgUGxhdGZvcm1SZWZQdHI8R2RrUGl4YnVmPiBpY29u
ID0gYWRvcHRQbGF0Zm9ybVJlZihndGtfaWNvbl9zZXRfcmVuZGVyX2ljb24oaWNvblNldCwgc3R5
bGUsIGRpcmVjdGlvbiwgc3RhdGUsIGljb25TaXplLCAwLCAwKSk7Ci0KLSAgICBjYWlyb190KiBj
ciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwotICAgIGNhaXJvX3NhdmUoY3IpOwotICAg
IGdka19jYWlyb19zZXRfc291cmNlX3BpeGJ1ZihjciwgaWNvbi5nZXQoKSwgaWNvblBvaW50Lngo
KSwgaWNvblBvaW50LnkoKSk7Ci0gICAgY2Fpcm9fcGFpbnQoY3IpOwotICAgIGNhaXJvX3Jlc3Rv
cmUoY3IpOwotfQotCiAjaWYgRU5BQkxFKFZJREVPKQogc3RhdGljIEhUTUxNZWRpYUVsZW1lbnQq
IGdldE1lZGlhRWxlbWVudEZyb21SZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0KiBvKQogewpAQCAt
MjkzLDYgKzI4MCwxNSBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFRleHRBcmVhKFJlbmRl
ck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbgogICAgIHJldHVybiBwYWlu
dFRleHRGaWVsZChvLCBpLCByKTsKIH0KIAorc3RhdGljIHZvaWQgcGFpbnRHZGtQaXhidWYoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBHZGtQaXhidWYqIGljb24sIGNvbnN0IEludFBv
aW50JiBpY29uUG9pbnQpCit7CisgICAgY2Fpcm9fdCogY3IgPSBjb250ZXh0LT5wbGF0Zm9ybUNv
bnRleHQoKTsKKyAgICBjYWlyb19zYXZlKGNyKTsKKyAgICBnZGtfY2Fpcm9fc2V0X3NvdXJjZV9w
aXhidWYoY3IsIGljb24sIGljb25Qb2ludC54KCksIGljb25Qb2ludC55KCkpOworICAgIGNhaXJv
X3BhaW50KGNyKTsKKyAgICBjYWlyb19yZXN0b3JlKGNyKTsKK30KKwogdm9pZCBSZW5kZXJUaGVt
ZUd0azo6YWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3Rv
ciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZSkgY29uc3QKIHsKICAg
ICBhZGp1c3RTZWFyY2hGaWVsZENhbmNlbEJ1dHRvblN0eWxlKHNlbGVjdG9yLCBzdHlsZSwgZSk7
CkBAIC0zMzAsMTEgKzMyNiwxMCBAQCBzdGF0aWMgSW50UG9pbnQgY2VudGVyUmVjdFZlcnRpY2Fs
bHlJblBhcmVudElucHV0RWxlbWVudChSZW5kZXJPYmplY3QqIG9iamVjdCwgYwogCiBib29sIFJl
bmRlclRoZW1lR3RrOjpwYWludFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb24oUmVuZGVyT2Jq
ZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRS
ZWN0JiByZWN0KQogewotICAgIEd0a1N0eWxlKiBzdHlsZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxl
KEdUS19XSURHRVQoZ3RrRW50cnkoKSkpOwotICAgIEludFBvaW50IGljb25Qb2ludChjZW50ZXJS
ZWN0VmVydGljYWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVjdCwgcmVjdCkpOwot
ICAgIHBhaW50U3RvY2tJY29uKHBhaW50SW5mby5jb250ZXh0LCBpY29uUG9pbnQsIHN0eWxlLCBH
VEtfU1RPQ0tfRklORCwKLSAgICAgICAgICAgICAgICAgICBndGtUZXh0RGlyZWN0aW9uKHJlbmRl
ck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpLAotICAgICAgICAgICAgICAgICAgIGd0a0lj
b25TdGF0ZShyZW5kZXJPYmplY3QpLCBHVEtfSUNPTl9TSVpFX01FTlUpOworICAgIFBsYXRmb3Jt
UmVmUHRyPEdka1BpeGJ1Zj4gaWNvbiA9IGdldFN0b2NrSWNvbihHVEtfVFlQRV9FTlRSWSwgR1RL
X1NUT0NLX0ZJTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGd0a1RleHREaXJlY3Rpb24ocmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5kaXJlY3Rpb24o
KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0
a0ljb25TdGF0ZShyZW5kZXJPYmplY3QpLCBHVEtfSUNPTl9TSVpFX01FTlUpOworICAgIHBhaW50
R2RrUGl4YnVmKHBhaW50SW5mby5jb250ZXh0LCBpY29uLmdldCgpLCBjZW50ZXJSZWN0VmVydGlj
YWxseUluUGFyZW50SW5wdXRFbGVtZW50KHJlbmRlck9iamVjdCwgcmVjdCkpOwogICAgIHJldHVy
biBmYWxzZTsKIH0KIApAQCAtMzUxLDExICszNDYsMTAgQEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6
YWRqdXN0U2VhcmNoRmllbGRDYW5jZWxCdXR0b25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxl
Y3QKIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbihS
ZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgR3RrU3R5bGUqIHN0eWxlID0gZ3RrX3dpZGdldF9n
ZXRfc3R5bGUoR1RLX1dJREdFVChndGtFbnRyeSgpKSk7Ci0gICAgSW50UG9pbnQgaWNvblBvaW50
KGNlbnRlclJlY3RWZXJ0aWNhbGx5SW5QYXJlbnRJbnB1dEVsZW1lbnQocmVuZGVyT2JqZWN0LCBy
ZWN0KSk7Ci0gICAgcGFpbnRTdG9ja0ljb24ocGFpbnRJbmZvLmNvbnRleHQsIGljb25Qb2ludCwg
c3R5bGUsIEdUS19TVE9DS19DTEVBUiwKLSAgICAgICAgICAgICAgICAgICBndGtUZXh0RGlyZWN0
aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpLAotICAgICAgICAgICAgICAg
ICAgIGd0a0ljb25TdGF0ZShyZW5kZXJPYmplY3QpLCBHVEtfSUNPTl9TSVpFX01FTlUpOworICAg
IFBsYXRmb3JtUmVmUHRyPEdka1BpeGJ1Zj4gaWNvbiA9IGdldFN0b2NrSWNvbihHVEtfVFlQRV9F
TlRSWSwgR1RLX1NUT0NLX0NMRUFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+
ZGlyZWN0aW9uKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBndGtJY29uU3RhdGUocmVuZGVyT2JqZWN0KSwgR1RLX0lDT05fU0laRV9NRU5VKTsK
KyAgICBwYWludEdka1BpeGJ1ZihwYWludEluZm8uY29udGV4dCwgaWNvbi5nZXQoKSwgY2VudGVy
UmVjdFZlcnRpY2FsbHlJblBhcmVudElucHV0RWxlbWVudChyZW5kZXJPYmplY3QsIHJlY3QpKTsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTQ1MywxMyArNDQ3LDE0IEBAIFN0cmluZyBSZW5k
ZXJUaGVtZUd0azo6ZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpCiAKIGJvb2wgUmVuZGVy
VGhlbWVHdGs6OnBhaW50TWVkaWFCdXR0b24oUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgY2hhciog
aWNvbk5hbWUpCiB7Ci0gICAgR3RrU3R5bGUqIHN0eWxlID0gZ3RrX3dpZGdldF9nZXRfc3R5bGUo
R1RLX1dJREdFVChndGtDb250YWluZXIoKSkpOworICAgIFBsYXRmb3JtUmVmUHRyPEdka1BpeGJ1
Zj4gaWNvbiA9IGdldFN0b2NrSWNvbihHVEtfVFlQRV9DT05UQUlORVIsIGljb25OYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndGtUZXh0RGly
ZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndGtJY29uU3RhdGUocmVuZGVy
T2JqZWN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2V0TWVkaWFCdXR0b25JY29uU2l6ZShtX21lZGlhSWNvblNpemUpKTsKICAgICBJbnRQb2lu
dCBpY29uUG9pbnQocmVjdC54KCkgKyAocmVjdC53aWR0aCgpIC0gbV9tZWRpYUljb25TaXplKSAv
IDIsCiAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QueSgpICsgKHJlY3QuaGVpZ2h0KCkgLSBt
X21lZGlhSWNvblNpemUpIC8gMik7CiAgICAgY29udGV4dC0+ZmlsbFJlY3QoRmxvYXRSZWN0KHJl
Y3QpLCBtX3BhbmVsQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgIHBhaW50U3RvY2tJ
Y29uKGNvbnRleHQsIGljb25Qb2ludCwgc3R5bGUsIGljb25OYW1lLCAKLSAgICAgICAgICAgICAg
ICAgICBndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkp
LCBndGtJY29uU3RhdGUocmVuZGVyT2JqZWN0KSwgZ2V0TWVkaWFCdXR0b25JY29uU2l6ZShtX21l
ZGlhSWNvblNpemUpKTsKLQorICAgIHBhaW50R2RrUGl4YnVmKGNvbnRleHQsIGljb24uZ2V0KCks
IGljb25Qb2ludCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGsuaAppbmRleCA2N2E5ZDMwLi4yOWJmNjZhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1JlbmRlclRoZW1lR3RrLmgKQEAgLTE3NCw2ICsxNzQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAg
ICAgR3RrU3RhdGVUeXBlIGd0a0ljb25TdGF0ZShSZW5kZXJPYmplY3QqKTsKICAgICBzdGF0aWMg
dm9pZCBzZXRUZXh0SW5wdXRCb3JkZXJzKFJlbmRlclN0eWxlKik7CisgICAgUGxhdGZvcm1SZWZQ
dHI8R2RrUGl4YnVmPiBnZXRTdG9ja0ljb24oR1R5cGUsIGNvbnN0IGNoYXIqIGljb25OYW1lLCBn
aW50IGRpcmVjdGlvbiwgZ2ludCBzdGF0ZSwgZ2ludCBpY29uU2l6ZSk7CiAKICAgICBtdXRhYmxl
IEd0a1dpZGdldCogbV9ndGtXaW5kb3c7CiAgICAgbXV0YWJsZSBHdGtXaWRnZXQqIG1fZ3RrQ29u
dGFpbmVyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsy
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMi5jcHAKaW5kZXggNTcy
Y2MyNS4uZTM3ZjkyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhl
bWVHdGsyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3Bw
CkBAIC0zNzUsNiArMzc1LDE5IEBAIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50UHJvZ3Jlc3NC
YXIoUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW5mCiB9CiAjZW5kaWYK
IAorUGxhdGZvcm1SZWZQdHI8R2RrUGl4YnVmPiBSZW5kZXJUaGVtZUd0azo6Z2V0U3RvY2tJY29u
KEdUeXBlIHdpZGdldFR5cGUsIGNvbnN0IGNoYXIqIGljb25OYW1lLCBnaW50IGRpcmVjdGlvbiwg
Z2ludCBzdGF0ZSwgZ2ludCBpY29uU2l6ZSkKK3sKKyAgICBBU1NFUlQod2lkZ2V0VHlwZSA9PSBH
VEtfVFlQRV9DT05UQUlORVIgfHwgd2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9FTlRSWSk7CisgICAg
R3RrV2lkZ2V0KiB3aWRnZXQgPSB3aWRnZXRUeXBlID09IEdUS19UWVBFX0NPTlRBSU5FUiA/IEdU
S19XSURHRVQoZ3RrQ29udGFpbmVyKCkpIDogZ3RrRW50cnkoKTsKKyAgICBHdGtTdHlsZSogc3R5
bGUgPSBndGtfd2lkZ2V0X2dldF9zdHlsZSh3aWRnZXQpOworICAgIEd0a0ljb25TZXQqIGljb25T
ZXQgPSBndGtfc3R5bGVfbG9va3VwX2ljb25fc2V0KHN0eWxlLCBpY29uTmFtZSk7CisgICAgcmV0
dXJuIGFkb3B0UGxhdGZvcm1SZWYoZ3RrX2ljb25fc2V0X3JlbmRlcl9pY29uKGljb25TZXQsIHN0
eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxHdGtUZXh0RGlyZWN0aW9uPihkaXJlY3Rpb24pLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHdGtT
dGF0ZVR5cGU+KHN0YXRlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R3RrSWNvblNpemU+KGljb25TaXplKSwgMCwgMCkp
OworfQorCisKIENvbG9yIFJlbmRlclRoZW1lR3RrOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtFbnRy
eSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKaW5kZXggZWFlOTRj
ZS4uZWUzM2MzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
dGszLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiR3RrVmVyc2lvbmluZy5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlRleHREaXJlY3Rp
b24uaCIKICNpbmNsdWRlICJVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIgpAQCAtNDYsNiArNDcsNDkg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit0eXBlZGVmIEhhc2hNYXA8R1R5cGUsIFBsYXRm
b3JtUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gPiBTdHlsZUNvbnRleHRNYXA7CitzdGF0aWMgU3R5
bGVDb250ZXh0TWFwJiBzdHlsZUNvbnRleHRNYXAoKTsKKworc3RhdGljIHZvaWQgZ3RrU3R5bGVD
aGFuZ2VkQ2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNwZWMqKQoreworICAgIFN0eWxlQ29udGV4
dE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gc3R5bGVDb250ZXh0TWFwKCkuZW5kKCk7CisgICAg
Zm9yIChTdHlsZUNvbnRleHRNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBzdHlsZUNvbnRleHRN
YXAoKS5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKQorICAgICAgICBndGtfc3R5bGVfY29u
dGV4dF9pbnZhbGlkYXRlKGl0ZXItPnNlY29uZC5nZXQoKSk7CisKKyAgICBQYWdlOjpzY2hlZHVs
ZUZvcmNlZFN0eWxlUmVjYWxjRm9yQWxsUGFnZXMoKTsKK30KKworc3RhdGljIFN0eWxlQ29udGV4
dE1hcCYgc3R5bGVDb250ZXh0TWFwKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxl
Q29udGV4dE1hcCwgbWFwLCAoKSk7CisKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZh
bHNlOworICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgR3RrU2V0dGluZ3MqIHNldHRp
bmdzID0gZ3RrX3NldHRpbmdzX2dldF9kZWZhdWx0KCk7CisgICAgICAgIGdfc2lnbmFsX2Nvbm5l
Y3Qoc2V0dGluZ3MsICJub3RpZnk6Omd0ay10aGVtZS1uYW1lIiwgR19DQUxMQkFDSyhndGtTdHls
ZUNoYW5nZWRDYWxsYmFjayksIDApOworICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHNldHRpbmdz
LCAibm90aWZ5OjpndGstY29sb3Itc2NoZW1lIiwgR19DQUxMQkFDSyhndGtTdHlsZUNoYW5nZWRD
YWxsYmFjayksIDApOworICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgfQorICAgIHJl
dHVybiBtYXA7Cit9CisKK3N0YXRpYyBHdGtTdHlsZUNvbnRleHQqIGdldFN0eWxlQ29udGV4dChH
VHlwZSB3aWRnZXRUeXBlKQoreworICAgIHN0ZDo6cGFpcjxTdHlsZUNvbnRleHRNYXA6Oml0ZXJh
dG9yLCBib29sPiByZXN1bHQgPSBzdHlsZUNvbnRleHRNYXAoKS5hZGQod2lkZ2V0VHlwZSwgMCk7
CisgICAgaWYgKCFyZXN1bHQuc2Vjb25kKQorICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0LT5z
ZWNvbmQuZ2V0KCk7CisKKyAgICBHdGtXaWRnZXRQYXRoKiBwYXRoID0gZ3RrX3dpZGdldF9wYXRo
X25ldygpOworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRoLCB3aWRnZXRUeXBl
KTsKKworICAgIFBsYXRmb3JtUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gY29udGV4dCA9IGFkb3B0
UGxhdGZvcm1SZWYoZ3RrX3N0eWxlX2NvbnRleHRfbmV3KCkpOworICAgIGd0a19zdHlsZV9jb250
ZXh0X3NldF9wYXRoKGNvbnRleHQuZ2V0KCksIHBhdGgpOworICAgIGd0a193aWRnZXRfcGF0aF9m
cmVlKHBhdGgpOworCisgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQgPSBjb250ZXh0OworICAgIHJl
dHVybiBjb250ZXh0LmdldCgpOworfQorCiAvLyBUaGlzIGlzIG5vdCBhIHN0YXRpYyBtZXRob2Qs
IGJlY2F1c2Ugd2Ugd2FudCB0byBhdm9pZCBoYXZpbmcgR1RLKyBoZWFkZXJzIGluIFJlbmRlclRo
ZW1lR3RrLmguCiBleHRlcm4gR3RrVGV4dERpcmVjdGlvbiBndGtUZXh0RGlyZWN0aW9uKFRleHRE
aXJlY3Rpb24pOwogCkBAIC0zNjYsNiArNDEwLDI4IEBAIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBh
aW50UHJvZ3Jlc3NCYXIoUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW5m
CiB9CiAjZW5kaWYKIAorUGxhdGZvcm1SZWZQdHI8R2RrUGl4YnVmPiBSZW5kZXJUaGVtZUd0azo6
Z2V0U3RvY2tJY29uKEdUeXBlIHdpZGdldFR5cGUsIGNvbnN0IGNoYXIqIGljb25OYW1lLCBnaW50
IGRpcmVjdGlvbiwgZ2ludCBzdGF0ZSwgZ2ludCBpY29uU2l6ZSkKK3sKKyAgICBHdGtTdHlsZUNv
bnRleHQqIGNvbnRleHQgPSBnZXRTdHlsZUNvbnRleHQod2lkZ2V0VHlwZSk7CisgICAgR3RrSWNv
blNldCogaWNvblNldCA9IGd0a19zdHlsZV9jb250ZXh0X2xvb2t1cF9pY29uX3NldChjb250ZXh0
LCBpY29uTmFtZSk7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9zYXZlKGNvbnRleHQpOworCisg
ICAgZ3VpbnQgZmxhZ3MgPSAwOworICAgIGlmIChzdGF0ZSA9PSBHVEtfU1RBVEVfUFJFTElHSFQp
CisgICAgICAgIGZsYWdzIHw9IEdUS19TVEFURV9GTEFHX1BSRUxJR0hUOworICAgIGVsc2UgaWYg
KHN0YXRlID09IEdUS19TVEFURV9JTlNFTlNJVElWRSkKKyAgICAgICAgZmxhZ3MgfD0gR1RLX1NU
QVRFX0ZMQUdfSU5TRU5TSVRJVkU7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfc3RhdGUo
Y29udGV4dCwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oZmxhZ3MpKTsKKyAgICBndGtfc3R5
bGVfY29udGV4dF9zZXRfZGlyZWN0aW9uKGNvbnRleHQsIHN0YXRpY19jYXN0PEd0a1RleHREaXJl
Y3Rpb24+KGRpcmVjdGlvbikpOworICAgIEdka1BpeGJ1ZiogaWNvbiA9IGd0a19pY29uX3NldF9y
ZW5kZXJfaWNvbl9waXhidWYoaWNvblNldCwgY29udGV4dCwgc3RhdGljX2Nhc3Q8R3RrSWNvblNp
emU+KGljb25TaXplKSk7CisKKyAgICBndGtfc3R5bGVfY29udGV4dF9yZXN0b3JlKGNvbnRleHQp
OworCisgICAgcmV0dXJuIGFkb3B0UGxhdGZvcm1SZWYoaWNvbik7Cit9CisKIENvbG9yIFJlbmRl
clRoZW1lR3RrOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0
CiB7CiAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtFbnRyeSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>