<?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>62848</bug_id>
          
          <creation_ts>2011-06-17 01:23:24 -0700</creation_ts>
          <short_desc>Change GtkWidgetBackingStore.h to WidgetBackingStore.h in order to use in the EFL port.</short_desc>
          <delta_ts>2011-06-22 09:57:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Eunmi Lee">enmi.lee</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>antognolli+webkit</cc>
    
    <cc>bfulgham</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>leandro</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sangseok.lim</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>youngtaeck.song</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>422483</commentid>
    <comment_count>0</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-17 01:23:24 -0700</bug_when>
    <thetext>I want to change WebCore/platform/gtk/GtkWidgetBackingStore.h to WebCore/platform/WidgetBackingStore.h to use WidgetBackingStore class in the EFL port.

My ultimate goal is to share the WebKit2/UIProcess/gtk/BackingStoreGtk.cpp with EFL port by changing it to WebKit2/UIProcess/cairo/BackingStoreCairo.cpp.
When I try to make WebKit2/UIProcess/efl/BackingStoreEfl.cpp, there are many duplicated codes with GTK port because both of them use the &quot;cairo&quot;.
So, I want to integrate cairo codes in the GTK and EFL port.
related bug : https://bugs.webkit.org/show_bug.cgi?id=62444</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422561</commentid>
    <comment_count>1</comment_count>
      <attachid>97582</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-17 04:53:36 -0700</bug_when>
    <thetext>Created attachment 97582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422564</commentid>
    <comment_count>2</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-17 05:00:23 -0700</bug_when>
    <thetext>Dear Martin,
I&apos;ve made patch for sharing GtkWidgetBackingStore with EFL.
I think that you know about GtkWidgetBackingStore very well because you are the author of that class.
Would you review this patch?
I really need your advice :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422586</commentid>
    <comment_count>3</comment_count>
      <attachid>97582</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-06-17 06:32:22 -0700</bug_when>
    <thetext>Comment on attachment 97582
Patch

Attachment 97582 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/8880568</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422599</commentid>
    <comment_count>4</comment_count>
      <attachid>97594</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-17 07:06:47 -0700</bug_when>
    <thetext>Created attachment 97594
Change GtkWidgetBackingStore.h to WidgetBackingStore.h in order to use in the EFL port.

Add missing file - WebCore/platform/WidgetBackingStore.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422943</commentid>
    <comment_count>5</comment_count>
      <attachid>97594</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-06-17 16:15:16 -0700</bug_when>
    <thetext>Comment on attachment 97594
Change GtkWidgetBackingStore.h to WidgetBackingStore.h in order to use in the EFL port.

Attachment 97594 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/8878709</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423454</commentid>
    <comment_count>6</comment_count>
      <attachid>97740</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-19 21:05:41 -0700</bug_when>
    <thetext>Created attachment 97740
Patch to fix efl error

remove EFL related codes to fix efl build break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423778</commentid>
    <comment_count>7</comment_count>
      <attachid>97740</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-06-20 11:06:40 -0700</bug_when>
    <thetext>Comment on attachment 97740
Patch to fix efl error

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

&gt; Source/WebCore/platform/WidgetBackingStore.h:7
&gt; +/*
&gt; + * Copyright (C) 2011, Igalia S.L.
&gt; + *
&gt; + *  This library is free software; you can redistribute it and/or
&gt; + *  modify it under the terms of the GNU Lesser General Public
&gt; + *  License as published by the Free Software Foundation; either
&gt; + *  version 2 of the License, or (at your option) any later version.

This file probably belongs in the Cairo subdirectory since it heavily depends on Cairo.

&gt; Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp:34
&gt; -static PassRefPtr&lt;cairo_surface_t&gt; createSurfaceForBackingStore(GtkWidget* widget, const IntSize&amp; size)
&gt; +static PassRefPtr&lt;cairo_surface_t&gt; createSurfaceForBackingStore(PlatformWidget widget, const IntSize&amp; size)
&gt;  {
&gt;      return gdk_window_create_similar_surface(gtk_widget_get_window(widget),
&gt;                                               CAIRO_CONTENT_COLOR_ALPHA,

I&apos;m not sure I understand this part of the change. Here we abstract away that the widget is a GTK+ widget and then immediately call gtk_widget_get_window on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424242</commentid>
    <comment_count>8</comment_count>
      <attachid>97925</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-20 21:31:25 -0700</bug_when>
    <thetext>Created attachment 97925
Patch for comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424250</commentid>
    <comment_count>9</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-20 21:41:52 -0700</bug_when>
    <thetext>Thank you for your comments :)
I&apos;ve modified as follows:

(In reply to comment #7)
&gt; (From update of attachment 97740 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=97740&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/WidgetBackingStore.h:7
&gt; &gt; +/*
&gt; &gt; + * Copyright (C) 2011, Igalia S.L.
&gt; &gt; + *
&gt; &gt; + *  This library is free software; you can redistribute it and/or
&gt; &gt; + *  modify it under the terms of the GNU Lesser General Public
&gt; &gt; + *  License as published by the Free Software Foundation; either
&gt; &gt; + *  version 2 of the License, or (at your option) any later version.
&gt; 
&gt; This file probably belongs in the Cairo subdirectory since it heavily depends on Cairo.
&gt; 
I added Source/WebCore/platform/cairo directory
and moved WidgetBackingStore.h to there.

&gt; &gt; Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp:34
&gt; &gt; -static PassRefPtr&lt;cairo_surface_t&gt; createSurfaceForBackingStore(GtkWidget* widget, const IntSize&amp; size)
&gt; &gt; +static PassRefPtr&lt;cairo_surface_t&gt; createSurfaceForBackingStore(PlatformWidget widget, const IntSize&amp; size)
&gt; &gt;  {
&gt; &gt;      return gdk_window_create_similar_surface(gtk_widget_get_window(widget),
&gt; &gt;                                               CAIRO_CONTENT_COLOR_ALPHA,
&gt; 
&gt; I&apos;m not sure I understand this part of the change. Here we abstract away that the widget is a GTK+ widget and then immediately call gtk_widget_get_window on it.

Yes, that was a strange code and they did not have to use PlatformWidget.
So, I modified to use &quot;GtkWidget*&quot; instead of PlatformWidget in the gtk port&apos;s .cpp files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424569</commentid>
    <comment_count>10</comment_count>
      <attachid>97925</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-06-21 11:03:29 -0700</bug_when>
    <thetext>Comment on attachment 97925
Patch for comments

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

Okay.  Are you a committer. Can you make the following change before committing?

&gt; Source/WebCore/platform/graphics/cairo/CairoUtilities.h:50
&gt; +void copyRectFromOneSurfaceToAnother(cairo_surface_t*, cairo_surface_t*, const IntSize&amp;, const IntRect&amp;);

Here it makes sense to leave the argument names since it&apos;s unclear which is the destination and which is the source.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425022</commentid>
    <comment_count>11</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-06-21 22:17:11 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 97925 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=97925&amp;action=review
&gt; 
&gt; Okay.  Are you a committer. Can you make the following change before committing?

Ok, Eunmi is not committer yet. I can do that. I will give cq+ when Eunmi upload new patch according to your comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425054</commentid>
    <comment_count>12</comment_count>
      <attachid>98125</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-21 23:57:57 -0700</bug_when>
    <thetext>Created attachment 98125
patch for Martin&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425055</commentid>
    <comment_count>13</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-22 00:00:10 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 97925 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=97925&amp;action=review
&gt; 
&gt; Okay.  Are you a committer. Can you make the following change before committing?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/CairoUtilities.h:50
&gt; &gt; +void copyRectFromOneSurfaceToAnother(cairo_surface_t*, cairo_surface_t*, const IntSize&amp;, const IntRect&amp;);
&gt; 
&gt; Here it makes sense to leave the argument names since it&apos;s unclear which is the destination and which is the source.

Thank you very much for your review :)
I&apos;ve added argument names for copyRectFromOneSurfaceToAnother.

And, I&apos;m not a committer, so Gyuyoung will commit this patch.
Thanks for Gyuyoung :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425061</commentid>
    <comment_count>14</comment_count>
      <attachid>98125</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-06-22 00:05:57 -0700</bug_when>
    <thetext>Comment on attachment 98125
patch for Martin&apos;s comments

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425317</commentid>
    <comment_count>15</comment_count>
      <attachid>98125</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 09:57:20 -0700</bug_when>
    <thetext>Comment on attachment 98125
patch for Martin&apos;s comments

Clearing flags on attachment: 98125

Committed r89442: &lt;http://trac.webkit.org/changeset/89442&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425318</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 09:57:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97582</attachid>
            <date>2011-06-17 04:53:36 -0700</date>
            <delta_ts>2011-06-17 07:06:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62848-20110617205253.patch</filename>
            <type>text/plain</type>
            <size>14521</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkxMzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkM2FjMjhjZDczM2YxMDdm
YmQ4ZWE1YTNkZDE1YjI3MTgwZjFhOTE1Li43YjU5YWJhYzc0ZDUyZjg2NDc1OWYwM2M4Zjk1OTIy
NGZkZmJmYTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDYtMTcgIEV1bm1p
IExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBHdGtXaWRnZXRCYWNraW5nU3RvcmUuaCB0
byBXaWRnZXRCYWNraW5nU3RvcmUuaCBpbiBvcmRlciB0byB1c2UgaW4gdGhlIEVGTCBwb3J0Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4NDgKKwor
ICAgICAgICBUaGlzIHBhdGNoIHdpbGwgbWFrZSBHdGtXaWRnZXRCYWNraW5nU3RvcmUgc2hhcmVh
YmxlIHdpdGggRUZMIHBvcnQuCisgICAgICAgIEl0IGlzIGEgcHJlcGFyYXRpb24gdG8gaW50ZWdy
YXRlIFdlYktpdDIncyBCYWNraW5nU3RvcmVHdGsuY3BwIGFuZAorICAgICAgICBCYWNraW5nU3Rv
cmVFZmwuY3BwIGFzIGEgQmFja2luZ1N0b3JlQ2Fpcm8uY3BwLgorCisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0
aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UmVjdEZyb21PbmVTdXJmYWNlVG9B
bm90aGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGll
cy5oOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVDYWlyby5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTdXJmYWNlRm9yQmFja2luZ1N0b3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpXaWRnZXRCYWNraW5nU3Rv
cmVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6V2lkZ2V0QmFja2luZ1N0
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6fldpZGdldEJhY2tp
bmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJvU3Vy
ZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6OnNjcm9sbCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZVgxMS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6fldpZGdldEJhY2tpbmdTdG9y
ZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6
V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNr
aW5nU3RvcmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6
OldpZGdldEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3Rv
cmU6On5XaWRnZXRCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2lu
Z1N0b3JlOjpjYWlyb1N1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0
b3JlOjpzY3JvbGwpOgorCiAyMDExLTA2LTE3ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlNzdkODA0NmJmZjNmNDczNzgxMWI2ODQzMDVhNTA4
MDVkMzFmNTdlLi45YWZhMzlkMTY1YmUwZjI3ZjViMDU5ZWU3MjFmNTEwOWRkNzIwMWVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI3NTksNiArMjc1OSw3IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVVJRC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9X
aWRnZXQuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0QmFja2luZ1N0b3JlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpbmRvd3NLZXlib2FyZENvZGVzLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5oIFwKQEAgLTM4MDksNyArMzgxMCw2IEBAIHdl
YmNvcmVndGtfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a0Ns
aWNrQ291bnRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVz
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5oIFwKLQlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVYMTEu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2VvbG9jYXRpb25TZXJ2aWNlR3Rr
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9DYWlyb1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9DYWlyb1V0aWxpdGllcy5jcHAKaW5kZXggM2I0OGZlMjdhZjRlN2UzODEyNDY1Nzg2MmVm
ZmM5MjZjN2M4MmFlNi4uYjRhZGI2Y2YxYzYxOTQ1M2ZlZWRjZTRjMDE5ZTcwMTBkZTMyYWRkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9V
dGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0NhaXJvVXRpbGl0aWVzLmNwcApAQCAtMTcyLDQgKzE3MiwxMiBAQCBQYXNzUmVmUHRyPGNhaXJv
X3N1cmZhY2VfdD4gY29weUNhaXJvSW1hZ2VTdXJmYWNlKGNhaXJvX3N1cmZhY2VfdCogb3JpZ2lu
YWxTdXJmYQogICAgIHJldHVybiBuZXdTdXJmYWNlLnJlbGVhc2UoKTsKIH0KIAordm9pZCBjb3B5
UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKGNhaXJvX3N1cmZhY2VfdCogZnJvbSwgY2Fpcm9f
c3VyZmFjZV90KiB0bywgY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBjb25zdCBJbnRSZWN0JiByZWN0
KQoreworICAgIFJlZlB0cjxjYWlyb190PiBjb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRl
KHRvKSk7CisgICAgY2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlKGNvbnRleHQuZ2V0KCksIGZyb20s
IG9mZnNldC53aWR0aCgpLCBvZmZzZXQuaGVpZ2h0KCkpOworICAgIGNhaXJvX3JlY3RhbmdsZShj
b250ZXh0LmdldCgpLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWln
aHQoKSk7CisgICAgY2Fpcm9fZmlsbChjb250ZXh0LmdldCgpKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0NhaXJvVXRpbGl0aWVzLmgKaW5kZXggNjhmNzE2NjM5NzM5MTkzMmVhNmY3MWM0YzMx
ZmU1OWM4YmNjYmEwNi4uYzFiMGZmMjYyMGZhZWU0M2RhY2U2NDg2ZDYxOWQxMDQ2MzgzZjA1ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9V
dGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb1V0aWxpdGllcy5oCkBAIC0zNSw2ICszNSw3IEBAIGNsYXNzIENvbG9yOwogY2xhc3MgRmxv
YXRSZWN0OwogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEludFNpemU7CitjbGFzcyBJbnRSZWN0
OwogY2xhc3MgUGF0aDsKIAogdm9pZCBjb3B5Q29udGV4dFByb3BlcnRpZXMoY2Fpcm9fdCogc3Jj
Q3IsIGNhaXJvX3QqIGRzdENyKTsKQEAgLTQ2LDYgKzQ3LDcgQEAgY2Fpcm9fb3BlcmF0b3JfdCB0
b0NhaXJvT3BlcmF0b3IoQ29tcG9zaXRlT3BlcmF0b3Igb3ApOwogdm9pZCBkcmF3UGF0dGVyblRv
Q2Fpcm9Db250ZXh0KGNhaXJvX3QqIGNyLCBjYWlyb19zdXJmYWNlX3QqIGltYWdlLCBjb25zdCBJ
bnRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY2Fpcm9fb3BlcmF0b3JfdCBvcCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCk7CiBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gY29weUNh
aXJvSW1hZ2VTdXJmYWNlKGNhaXJvX3N1cmZhY2VfdCopOwordm9pZCBjb3B5UmVjdEZyb21PbmVT
dXJmYWNlVG9Bbm90aGVyKGNhaXJvX3N1cmZhY2VfdCosIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0
IEludFNpemUmLCBjb25zdCBJbnRSZWN0Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdT
dG9yZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNr
aW5nU3RvcmVDYWlyby5jcHAKaW5kZXggOWE5NjU5N2IwYWZjZTg0MTE0MjRhMmY0MTRlZTVkM2Mz
ZmU5NGIyOC4uNDI5ZWU5ZDc2MGE0NDc5Y2RmMTM4OWM3MmVlNTlkNGQxZjNiMjdjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNh
aXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2lu
Z1N0b3JlQ2Fpcm8uY3BwCkBAIC0xNywxNyArMTcsMTggQEAKICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiR3RrV2lkZ2V0QmFja2luZ1N0b3JlLmgiCisjaW5jbHVkZSAiV2lk
Z2V0QmFja2luZ1N0b3JlLmgiCiAKICNpZm5kZWYgWFBfVU5JWAogCisjaW5jbHVkZSAiQ2Fpcm9V
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgogI2luY2x1ZGUgPGNhaXJvL2Nh
aXJvLmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUgPGdkay9nZGsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNy
ZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3RvcmUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNp
emUmIHNpemUpCitzdGF0aWMgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZh
Y2VGb3JCYWNraW5nU3RvcmUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBz
aXplKQogewogICAgIHJldHVybiBnZGtfd2luZG93X2NyZWF0ZV9zaW1pbGFyX3N1cmZhY2UoZ3Rr
X3dpZGdldF9nZXRfd2luZG93KHdpZGdldCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDQUlST19DT05URU5UX0NPTE9SX0FMUEhBLApAQCAtMzUsNTcgKzM2
LDUwIEBAIHN0YXRpYyBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gY3JlYXRlU3VyZmFjZUZv
ckJhY2tpbmdTdG9yZShHdGtXaWRnZXQqIHdpZGdlCiB9CiAKIAotY2xhc3MgR3RrV2lkZ2V0QmFj
a2luZ1N0b3JlUHJpdmF0ZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR3RrV2lkZ2V0QmFj
a2luZ1N0b3JlUHJpdmF0ZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworY2xhc3MgV2lkZ2V0
QmFja2luZ1N0b3JlUHJpdmF0ZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2lkZ2V0QmFj
a2luZ1N0b3JlUHJpdmF0ZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAKIHB1Ymxp
YzoKICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3N1cmZhY2U7CiAgICAgUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gbV9zY3JvbGxTdXJmYWNlOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8
R3RrV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZT4gY3JlYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBj
b25zdCBJbnRTaXplJiBzaXplKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFdpZGdldEJhY2tpbmdT
dG9yZVByaXZhdGU+IGNyZWF0ZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNpemUm
IHNpemUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEd0a1dpZGdldEJhY2tp
bmdTdG9yZVByaXZhdGUod2lkZ2V0LCBzaXplKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSh3aWRnZXQsIHNpemUpKTsKICAgICB9CiAKIHBy
aXZhdGU6CiAgICAgLy8gV2Uga2VlcCB0d28gY29waWVzIG9mIHRoZSBzdXJmYWNlIGhlcmUsIHdo
aWNoIHdpbGwgZG91YmxlIHRoZSBtZW1vcnkgdXNhZ2UsIGJ1dCBpbmNyZWFzZQogICAgIC8vIHNj
cm9sbGluZyBwZXJmb3JtYW5jZSBzaW5jZSB3ZSBkbyBub3QgaGF2ZSB0byBrZWVwIHJlYWxsb2Nh
dGluZyBhIG1lbW9yeSByZWdpb24gZHVyaW5nCiAgICAgLy8gcXVpY2sgc2Nyb2xsaW5nIHJlcXVl
c3RzLgotICAgIEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUoR3RrV2lkZ2V0KiB3aWRnZXQs
IGNvbnN0IEludFNpemUmIHNpemUpCisgICAgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZShQbGF0
Zm9ybVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgIDogbV9zdXJm
YWNlKGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSkKICAgICAgICAg
LCBtX3Njcm9sbFN1cmZhY2UoY3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZSh3aWRnZXQsIHNp
emUpKQogICAgIHsKICAgICB9CiB9OwogCi1QYXNzT3duUHRyPEd0a1dpZGdldEJhY2tpbmdTdG9y
ZT4gR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjpjcmVhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0
IEludFNpemUmIHNpemUpCitQYXNzT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZT4gV2lkZ2V0QmFj
a2luZ1N0b3JlOjpjcmVhdGUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBz
aXplKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgR3RrV2lkZ2V0QmFja2luZ1N0b3JlKHdp
ZGdldCwgc2l6ZSkpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lkZ2V0QmFja2luZ1N0b3Jl
KHdpZGdldCwgc2l6ZSkpOwogfQogCi1HdGtXaWRnZXRCYWNraW5nU3RvcmU6Okd0a1dpZGdldEJh
Y2tpbmdTdG9yZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLSAgICA6
IG1fcHJpdmF0ZShHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUod2lkZ2V0LCBz
aXplKSkKK1dpZGdldEJhY2tpbmdTdG9yZTo6V2lkZ2V0QmFja2luZ1N0b3JlKFBsYXRmb3JtV2lk
Z2V0IHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICA6IG1fcHJpdmF0ZShXaWRnZXRC
YWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUod2lkZ2V0LCBzaXplKSkKIHsKIH0KIAotR3RrV2lk
Z2V0QmFja2luZ1N0b3JlOjp+R3RrV2lkZ2V0QmFja2luZ1N0b3JlKCkKK1dpZGdldEJhY2tpbmdT
dG9yZTo6fldpZGdldEJhY2tpbmdTdG9yZSgpCiB7CiB9CiAKLWNhaXJvX3N1cmZhY2VfdCogR3Rr
V2lkZ2V0QmFja2luZ1N0b3JlOjpjYWlyb1N1cmZhY2UoKQorY2Fpcm9fc3VyZmFjZV90KiBXaWRn
ZXRCYWNraW5nU3RvcmU6OmNhaXJvU3VyZmFjZSgpCiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
bV9zdXJmYWNlLmdldCgpOwogfQogCi1zdGF0aWMgdm9pZCBjb3B5UmVjdEZyb21PbmVTdXJmYWNl
VG9Bbm90aGVyKGNhaXJvX3N1cmZhY2VfdCogZnJvbSwgY2Fpcm9fc3VyZmFjZV90KiB0bywgY29u
c3QgSW50U2l6ZSYgb2Zmc2V0LCBjb25zdCBJbnRSZWN0JiByZWN0KQotewotICAgIFJlZlB0cjxj
YWlyb190PiBjb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKHRvKSk7Ci0gICAgY2Fpcm9f
c2V0X3NvdXJjZV9zdXJmYWNlKGNvbnRleHQuZ2V0KCksIGZyb20sIG9mZnNldC53aWR0aCgpLCBv
ZmZzZXQuaGVpZ2h0KCkpOwotICAgIGNhaXJvX3JlY3RhbmdsZShjb250ZXh0LmdldCgpLCByZWN0
LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Ci0gICAgY2Fpcm9f
ZmlsbChjb250ZXh0LmdldCgpKTsKLX0KLQotdm9pZCBHdGtXaWRnZXRCYWNraW5nU3RvcmU6OnNj
cm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZz
ZXQpCit2b2lkIFdpZGdldEJhY2tpbmdTdG9yZTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9s
bFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCkKIHsKICAgICBJbnRSZWN0IHRhcmdl
dFJlY3Qoc2Nyb2xsUmVjdCk7CiAgICAgdGFyZ2V0UmVjdC5tb3ZlKHNjcm9sbE9mZnNldCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0
b3JlWDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5n
U3RvcmVYMTEuY3BwCmluZGV4IDFhNjgyOTFmODgyN2NkNWQ3MzIwYjY0MzY0MzQ5OWM4YmFjNWYy
YTMuLjc5NjI0NjRhZjcyNDM5MTgwZGQ2NGUzZDRjZjdiM2FlYTgzYjRhM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVYMTEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVY
MTEuY3BwCkBAIC0xNyw3ICsxNyw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkd0a1dpZGdldEJhY2tpbmdTdG9yZS5oIgorI2luY2x1ZGUgIldpZGdldEJhY2tpbmdT
dG9yZS5oIgogCiAjaWZkZWYgWFBfVU5JWAogCkBAIC0yNywxMiArMjcsMTEgQEAKICNpbmNsdWRl
IDxjYWlyby9jYWlyby14bGliLmg+CiAjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KICNpbmNsdWRl
IDxnZGsvZ2RreC5oPgotI2luY2x1ZGUgPGd0ay9ndGsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKLSAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKTsKK2NsYXNzIFdpZGdldEJh
Y2tpbmdTdG9yZVByaXZhdGUgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdpZGdldEJhY2tp
bmdTdG9yZVByaXZhdGUpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogCiBwdWJsaWM6
CkBAIC00MSwxMiArNDAsMTIgQEAgcHVibGljOgogICAgIEdDIG1fZ2M7CiAgICAgUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNlOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8R3RrV2lk
Z2V0QmFja2luZ1N0b3JlUHJpdmF0ZT4gY3JlYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJ
bnRTaXplJiBzaXplKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZVBy
aXZhdGU+IGNyZWF0ZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEd0a1dpZGdldEJhY2tpbmdTdG9y
ZVByaXZhdGUod2lkZ2V0LCBzaXplKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lk
Z2V0QmFja2luZ1N0b3JlUHJpdmF0ZSh3aWRnZXQsIHNpemUpKTsKICAgICB9CiAKLSAgICB+R3Rr
V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSgpCisgICAgfldpZGdldEJhY2tpbmdTdG9yZVByaXZh
dGUoKQogICAgIHsKICAgICAgICAgWEZyZWVQaXhtYXAobV9kaXNwbGF5LCBtX3BpeG1hcCk7CiAg
ICAgICAgIFhGcmVlR0MobV9kaXNwbGF5LCBtX2djKTsKQEAgLTU2LDcgKzU1LDcgQEAgcHJpdmF0
ZToKICAgICAvLyBXZSBrZWVwIHR3byBjb3BpZXMgb2YgdGhlIHN1cmZhY2UgaGVyZSwgd2hpY2gg
d2lsbCBkb3VibGUgdGhlIG1lbW9yeSB1c2FnZSwgYnV0IGluY3JlYXNlCiAgICAgLy8gc2Nyb2xs
aW5nIHBlcmZvcm1hbmNlIHNpbmNlIHdlIGRvIG5vdCBoYXZlIHRvIGtlZXAgcmVhbGxvY2F0aW5n
IGEgbWVtb3J5IHJlZ2lvbiBkdXJpbmcKICAgICAvLyBxdWljayBzY3JvbGxpbmcgcmVxdWVzdHMu
Ci0gICAgR3RrV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZShHdGtXaWRnZXQqIHdpZGdldCwgY29u
c3QgSW50U2l6ZSYgc2l6ZSkKKyAgICBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKFBsYXRmb3Jt
V2lkZ2V0IHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICB7CiAgICAgICAgIEdka1Zp
c3VhbCogdmlzdWFsID0gZ3RrX3dpZGdldF9nZXRfdmlzdWFsKHdpZGdldCk7CiAgICAgICAgIEdk
a1NjcmVlbiogc2NyZWVuID0gZ2RrX3Zpc3VhbF9nZXRfc2NyZWVuKHZpc3VhbCk7CkBAIC03Mywy
NiArNzIsMjYgQEAgcHJpdmF0ZToKICAgICB9CiB9OwogCi1QYXNzT3duUHRyPEd0a1dpZGdldEJh
Y2tpbmdTdG9yZT4gR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjpjcmVhdGUoR3RrV2lkZ2V0KiB3aWRn
ZXQsIGNvbnN0IEludFNpemUmIHNpemUpCitQYXNzT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZT4g
V2lkZ2V0QmFja2luZ1N0b3JlOjpjcmVhdGUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJ
bnRTaXplJiBzaXplKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgR3RrV2lkZ2V0QmFja2lu
Z1N0b3JlKHdpZGdldCwgc2l6ZSkpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lkZ2V0QmFj
a2luZ1N0b3JlKHdpZGdldCwgc2l6ZSkpOwogfQogCi1HdGtXaWRnZXRCYWNraW5nU3RvcmU6Okd0
a1dpZGdldEJhY2tpbmdTdG9yZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6
ZSkKLSAgICA6IG1fcHJpdmF0ZShHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUo
d2lkZ2V0LCBzaXplKSkKK1dpZGdldEJhY2tpbmdTdG9yZTo6V2lkZ2V0QmFja2luZ1N0b3JlKFBs
YXRmb3JtV2lkZ2V0IHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICA6IG1fcHJpdmF0
ZShXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUod2lkZ2V0LCBzaXplKSkKIHsKIH0K
IAotR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjp+R3RrV2lkZ2V0QmFja2luZ1N0b3JlKCkKK1dpZGdl
dEJhY2tpbmdTdG9yZTo6fldpZGdldEJhY2tpbmdTdG9yZSgpCiB7CiB9CiAKLWNhaXJvX3N1cmZh
Y2VfdCogR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjpjYWlyb1N1cmZhY2UoKQorY2Fpcm9fc3VyZmFj
ZV90KiBXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJvU3VyZmFjZSgpCiB7CiAgICAgcmV0dXJuIG1f
cHJpdmF0ZS0+bV9zdXJmYWNlLmdldCgpOwogfQogCi12b2lkIEd0a1dpZGdldEJhY2tpbmdTdG9y
ZTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9s
bE9mZnNldCkKK3ZvaWQgV2lkZ2V0QmFja2luZ1N0b3JlOjpzY3JvbGwoY29uc3QgSW50UmVjdCYg
c2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQogewogICAgIEludFJlY3Qg
dGFyZ2V0UmVjdChzY3JvbGxSZWN0KTsKICAgICB0YXJnZXRSZWN0Lm1vdmUoc2Nyb2xsT2Zmc2V0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCA4OTQyNjFlN2M5MDEyYWQ4NzI1MTcxZjMzMzI2YzNjNDZhODlmMmVi
Li42MDkzOTA1OThjOGU5M2U1YjVkZDEwY2M1OGRjYzE1ODY3YzI0Y2Y1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYtMTcgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1
bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENoYW5nZSBHdGtXaWRnZXRCYWNraW5nU3RvcmUuaCB0byBXaWRnZXRCYWNraW5nU3RvcmUuaCBp
biBvcmRlciB0byB1c2UgaW4gdGhlIEVGTCBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4NDgKKworICAgICAgICBDaGFuZ2UgR3RrV2lkZ2V0
QmFja2luZ1N0b3JlIHRvIFdpZGdldEJhY2tpbmdTdG9yZSBpbiB0aGUgQmFja2luZ1N0b3JlLmgg
YW5kCisgICAgICAgIGd0ay9CYWNraW5nU3RvcmVHdGsuY3BwLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0JhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvQmFja2luZ1N0b3Jl
R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmFja2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVwZGF0
ZSk6CisKIDIwMTEtMDYtMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeCBXZWJLaXQyIEdUSyBidWlsZCBhZnRlciBy
ODkwNjAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQmFja2luZ1N0b3Jl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQmFja2luZ1N0b3JlLmgKaW5kZXggNWE2NTNm
Yzc5NmY2NmI5ODg1YzAyMzhmYmM1NzBiOGIwNDM3MjBhMy4uMWIyOGZmM2EzNGQyOThkMDIwZGZl
NDZjODgyYmNiMTk5MWY5NmVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0JhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9CYWNraW5nU3Rv
cmUuaApAQCAtNDMsNyArNDMsNyBAQAogCiAjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFJl
ZlB0ckNhaXJvLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9HdGtXaWRnZXRCYWNraW5nU3RvcmUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1dpZGdldEJhY2tpbmdTdG9yZS5oPgogI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKICNlbGlmIFBMQVRGT1JN
KFFUKQogICAgIFFQaXhtYXAgbV9waXhtYXA7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgT3du
UHRyPFdlYkNvcmU6Okd0a1dpZGdldEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CisgICAg
T3duUHRyPFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAjZW5k
aWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvQmFja2lu
Z1N0b3JlR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvQmFja2luZ1N0b3Jl
R3RrLmNwcAppbmRleCBjYjM4ZGNlNTE3MGY4MGIyMzZmNzQxZmU3OTVhZGRkMTBjZDQzMTZhLi5m
MjMzOTg2NmIyMjAzNjJiNTNhNjI1NDIwZWQ0NzNhNGZiYmY2MGI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0JhY2tpbmdTdG9yZUd0ay5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9CYWNraW5nU3RvcmVHdGsuY3BwCkBAIC01MSw3ICs1MSw3
IEBAIHZvaWQgQmFja2luZ1N0b3JlOjpwYWludChjYWlyb190KiBjb250ZXh0LCBjb25zdCBJbnRS
ZWN0JiByZWN0KQogdm9pZCBCYWNraW5nU3RvcmU6OmluY29ycG9yYXRlVXBkYXRlKFNoYXJlYWJs
ZUJpdG1hcCogYml0bWFwLCBjb25zdCBVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQogewogICAgIGlm
ICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIG1fYmFja2luZ1N0b3JlID0gR3RrV2lkZ2V0QmFj
a2luZ1N0b3JlOjpjcmVhdGUobV93ZWJQYWdlUHJveHktPnZpZXdXaWRnZXQoKSwgc2l6ZSgpKTsK
KyAgICAgICAgbV9iYWNraW5nU3RvcmUgPSBXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShtX3dl
YlBhZ2VQcm94eS0+dmlld1dpZGdldCgpLCBzaXplKCkpOwogCiAgICAgc2Nyb2xsKHVwZGF0ZUlu
Zm8uc2Nyb2xsUmVjdCwgdXBkYXRlSW5mby5zY3JvbGxPZmZzZXQpOwogCg==
</data>
<flag name="commit-queue"
          id="91572"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97594</attachid>
            <date>2011-06-17 07:06:47 -0700</date>
            <delta_ts>2011-06-19 21:05:41 -0700</delta_ts>
            <desc>Change GtkWidgetBackingStore.h to WidgetBackingStore.h in order to use in the EFL port.</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>17922</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkM2FjMjhjLi5hM2RjODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTEtMDYtMTcgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBHdGtX
aWRnZXRCYWNraW5nU3RvcmUuaCB0byBXaWRnZXRCYWNraW5nU3RvcmUuaCBpbiBvcmRlciB0byB1
c2UgaW4gdGhlIEVGTCBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjI4NDgKKworICAgICAgICBUaGlzIHBhdGNoIHdpbGwgbWFrZSBHdGtXaWRn
ZXRCYWNraW5nU3RvcmUgc2hhcmVhYmxlIHdpdGggRUZMIHBvcnQuCisgICAgICAgIEl0IGlzIGEg
cHJlcGFyYXRpb24gdG8gaW50ZWdyYXRlIFdlYktpdDIncyBCYWNraW5nU3RvcmVHdGsuY3BwIGFu
ZAorICAgICAgICBCYWNraW5nU3RvcmVFZmwuY3BwIGFzIGEgQmFja2luZ1N0b3JlQ2Fpcm8uY3Bw
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5
UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9DYWlyb1V0aWxpdGllcy5oOgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldEJhY2tp
bmdTdG9yZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2lu
Z1N0b3JlLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tp
bmdTdG9yZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVN1cmZhY2VGb3JCYWNr
aW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6Oldp
ZGdldEJhY2tpbmdTdG9yZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2lu
Z1N0b3JlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjpX
aWRnZXRCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3Jl
Ojp+V2lkZ2V0QmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdT
dG9yZTo6Y2Fpcm9TdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9y
ZTo6c2Nyb2xsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3Jl
WDExLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjp+V2lk
Z2V0QmFja2luZ1N0b3JlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5n
U3RvcmVQcml2YXRlOjpXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OldpZGdldEJhY2tpbmdTdG9yZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdl
dEJhY2tpbmdTdG9yZTo6V2lkZ2V0QmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Oldp
ZGdldEJhY2tpbmdTdG9yZTo6fldpZGdldEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJvU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpX
aWRnZXRCYWNraW5nU3RvcmU6OnNjcm9sbCk6CisKIDIwMTEtMDYtMTcgIEFsZXhhbmRlciBQYXZs
b3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBI
eWF0dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGU3N2Q4MDQuLjlhZmEzOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjc1OSw2ICsyNzU5LDcgQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VVUlELmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1dpZGdldC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXRCYWNraW5nU3Rv
cmUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2luZG93c0tleWJvYXJkQ29kZXMuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmggXApAQCAtMzgwOSw3ICszODEwLDYg
QEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R3RrQ2xpY2tDb3VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGls
aXRpZXMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmgg
XAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmUuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJv
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9y
ZVgxMS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZp
Y2VHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldEJh
Y2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0QmFja2luZ1N0b3Jl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM3ZTk5ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldEJhY2tpbmdTdG9yZS5oCkBA
IC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIElnYWxpYSBTLkwuCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAq
ICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdpZGdldEJhY2tpbmdTdG9y
ZV9oCisjZGVmaW5lIFdpZGdldEJhY2tpbmdTdG9yZV9oCisKKyNpbmNsdWRlICJJbnRSZWN0Lmgi
CisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+Cisj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
KworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisjZWxpZiBQTEFURk9S
TShFRkwpCisjaW5jbHVkZSA8RXZhcy5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTsKKworI2lmIFBMQVRGT1JNKEdUSykK
K3R5cGVkZWYgR3RrV2lkZ2V0KiBQbGF0Zm9ybVdpZGdldDsKKyNlbGlmIFBMQVRGT1JNKEVGTCkK
K3R5cGVkZWYgRXZhc19PYmplY3QqIFBsYXRmb3JtV2lkZ2V0OworI2VuZGlmCisKK2NsYXNzIFdp
ZGdldEJhY2tpbmdTdG9yZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2lkZ2V0QmFja2lu
Z1N0b3JlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZT4gY3JlYXRlKFBsYXRmb3JtV2lkZ2V0
LCBjb25zdCBJbnRTaXplJik7CisKKyAgICB+V2lkZ2V0QmFja2luZ1N0b3JlKCk7CisgICAgY2Fp
cm9fc3VyZmFjZV90KiBjYWlyb1N1cmZhY2UoKTsKKyAgICB2b2lkIHNjcm9sbChjb25zdCBJbnRS
ZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpOworCitwcml2YXRl
OgorICAgIFdpZGdldEJhY2tpbmdTdG9yZShQbGF0Zm9ybVdpZGdldCwgY29uc3QgSW50U2l6ZSYp
OworCisgICAgT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU+IG1fcHJpdmF0ZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdpZGdldEJhY2tpbmdTdG9y
ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9DYWlyb1V0aWxpdGllcy5jcHAKaW5kZXggM2I0OGZlMi4uYjRhZGI2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0
aWVzLmNwcApAQCAtMTcyLDQgKzE3MiwxMiBAQCBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4g
Y29weUNhaXJvSW1hZ2VTdXJmYWNlKGNhaXJvX3N1cmZhY2VfdCogb3JpZ2luYWxTdXJmYQogICAg
IHJldHVybiBuZXdTdXJmYWNlLnJlbGVhc2UoKTsKIH0KIAordm9pZCBjb3B5UmVjdEZyb21PbmVT
dXJmYWNlVG9Bbm90aGVyKGNhaXJvX3N1cmZhY2VfdCogZnJvbSwgY2Fpcm9fc3VyZmFjZV90KiB0
bywgY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIFJl
ZlB0cjxjYWlyb190PiBjb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKHRvKSk7CisgICAg
Y2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlKGNvbnRleHQuZ2V0KCksIGZyb20sIG9mZnNldC53aWR0
aCgpLCBvZmZzZXQuaGVpZ2h0KCkpOworICAgIGNhaXJvX3JlY3RhbmdsZShjb250ZXh0LmdldCgp
LCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAg
Y2Fpcm9fZmlsbChjb250ZXh0LmdldCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9V
dGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJv
VXRpbGl0aWVzLmgKaW5kZXggNjhmNzE2Ni4uYzFiMGZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5oCkBAIC0z
NSw2ICszNSw3IEBAIGNsYXNzIENvbG9yOwogY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRmxvYXRQ
b2ludDsKIGNsYXNzIEludFNpemU7CitjbGFzcyBJbnRSZWN0OwogY2xhc3MgUGF0aDsKIAogdm9p
ZCBjb3B5Q29udGV4dFByb3BlcnRpZXMoY2Fpcm9fdCogc3JjQ3IsIGNhaXJvX3QqIGRzdENyKTsK
QEAgLTQ2LDYgKzQ3LDcgQEAgY2Fpcm9fb3BlcmF0b3JfdCB0b0NhaXJvT3BlcmF0b3IoQ29tcG9z
aXRlT3BlcmF0b3Igb3ApOwogdm9pZCBkcmF3UGF0dGVyblRvQ2Fpcm9Db250ZXh0KGNhaXJvX3Qq
IGNyLCBjYWlyb19zdXJmYWNlX3QqIGltYWdlLCBjb25zdCBJbnRTaXplJiBpbWFnZVNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50
JiBwaGFzZSwgY2Fpcm9fb3BlcmF0b3JfdCBvcCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7
CiBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gY29weUNhaXJvSW1hZ2VTdXJmYWNlKGNhaXJv
X3N1cmZhY2VfdCopOwordm9pZCBjb3B5UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKGNhaXJv
X3N1cmZhY2VfdCosIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRS
ZWN0Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZS5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxMDRkNjYwLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmUuaAorKysgL2Rldi9udWxsCkBAIC0xLDUyICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIElnYWxpYSBTLkwuCi0gKgotICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKLSAqLwotCi0jaWZuZGVmIEd0a1dpZGdldEJhY2tpbmdTdG9yZV9oIAot
I2RlZmluZSBHdGtXaWRnZXRCYWNraW5nU3RvcmVfaCAKLQotI2luY2x1ZGUgIkludFJlY3QuaCIK
LSNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSA8d3RmL0Zhc3RBbGxvY0Jhc2UuaD4KLSNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZh
dGU7Ci0KLWNsYXNzIEd0a1dpZGdldEJhY2tpbmdTdG9yZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoR3RrV2lkZ2V0QmFja2luZ1N0b3JlKTsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLQotcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEd0a1dpZGdldEJhY2tpbmdTdG9y
ZT4gY3JlYXRlKEd0a1dpZGdldCosIGNvbnN0IEludFNpemUmKTsKLQotICAgIH5HdGtXaWRnZXRC
YWNraW5nU3RvcmUoKTsKLSAgICBjYWlyb19zdXJmYWNlX3QqIGNhaXJvU3VyZmFjZSgpOwotICAg
IHZvaWQgc2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNj
cm9sbE9mZnNldCk7Ci0KLXByaXZhdGU6Ci0gICAgR3RrV2lkZ2V0QmFja2luZ1N0b3JlKEd0a1dp
ZGdldCosIGNvbnN0IEludFNpemUmKTsKLQotICAgIE93blB0cjxHdGtXaWRnZXRCYWNraW5nU3Rv
cmVQcml2YXRlPiBtX3ByaXZhdGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBCYWNraW5nU3RvcmVfaAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcAppbmRleCA5YTk2NTk3
Li40MjllZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lk
Z2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTE3LDE3ICsxNywxOCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHdGtXaWRnZXRCYWNraW5nU3RvcmUu
aCIKKyNpbmNsdWRlICJXaWRnZXRCYWNraW5nU3RvcmUuaCIKIAogI2lmbmRlZiBYUF9VTklYCiAK
KyNpbmNsdWRlICJDYWlyb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAj
aW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KLSNpbmNsdWRlIDxndGsvZ3RrLmg+CisjaW5jbHVkZSA8
Z2RrL2dkay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBQYXNzUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gY3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZShHdGtXaWRnZXQqIHdp
ZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3N0YXRpYyBQYXNzUmVmUHRyPGNhaXJvX3N1cmZh
Y2VfdD4gY3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQs
IGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgcmV0dXJuIGdka193aW5kb3dfY3JlYXRlX3Np
bWlsYXJfc3VyZmFjZShndGtfd2lkZ2V0X2dldF93aW5kb3cod2lkZ2V0KSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENBSVJPX0NPTlRFTlRfQ09MT1JfQUxQ
SEEsCkBAIC0zNSw1NyArMzYsNTAgQEAgc3RhdGljIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90
PiBjcmVhdGVTdXJmYWNlRm9yQmFja2luZ1N0b3JlKEd0a1dpZGdldCogd2lkZ2UKIH0KIAogCi1j
bGFzcyBHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitjbGFzcyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIAogcHVibGljOgogICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1fc3VyZmFj
ZTsKICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3Njcm9sbFN1cmZhY2U7CiAKLSAgICBz
dGF0aWMgUGFzc093blB0cjxHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBjcmVhdGUoR3Rr
V2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgc3RhdGljIFBhc3NPd25Q
dHI8V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZT4gY3JlYXRlKFBsYXRmb3JtV2lkZ2V0IHdpZGdl
dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgR3RrV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSh3aWRnZXQsIHNpemUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKHdpZGdldCwgc2l6
ZSkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICAvLyBXZSBrZWVwIHR3byBjb3BpZXMgb2YgdGhl
IHN1cmZhY2UgaGVyZSwgd2hpY2ggd2lsbCBkb3VibGUgdGhlIG1lbW9yeSB1c2FnZSwgYnV0IGlu
Y3JlYXNlCiAgICAgLy8gc2Nyb2xsaW5nIHBlcmZvcm1hbmNlIHNpbmNlIHdlIGRvIG5vdCBoYXZl
IHRvIGtlZXAgcmVhbGxvY2F0aW5nIGEgbWVtb3J5IHJlZ2lvbiBkdXJpbmcKICAgICAvLyBxdWlj
ayBzY3JvbGxpbmcgcmVxdWVzdHMuCi0gICAgR3RrV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZShH
dGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICBXaWRnZXRCYWNraW5n
U3RvcmVQcml2YXRlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkK
ICAgICAgICAgOiBtX3N1cmZhY2UoY3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZSh3aWRnZXQs
IHNpemUpKQogICAgICAgICAsIG1fc2Nyb2xsU3VyZmFjZShjcmVhdGVTdXJmYWNlRm9yQmFja2lu
Z1N0b3JlKHdpZGdldCwgc2l6ZSkpCiAgICAgewogICAgIH0KIH07CiAKLVBhc3NPd25QdHI8R3Rr
V2lkZ2V0QmFja2luZ1N0b3JlPiBHdGtXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShHdGtXaWRn
ZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK1Bhc3NPd25QdHI8V2lkZ2V0QmFja2lu
Z1N0b3JlPiBXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQs
IGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHdGtXaWRn
ZXRCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBX
aWRnZXRCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSk7CiB9CiAKLUd0a1dpZGdldEJhY2tpbmdT
dG9yZTo6R3RrV2lkZ2V0QmFja2luZ1N0b3JlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRT
aXplJiBzaXplKQotICAgIDogbV9wcml2YXRlKEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6
OmNyZWF0ZSh3aWRnZXQsIHNpemUpKQorV2lkZ2V0QmFja2luZ1N0b3JlOjpXaWRnZXRCYWNraW5n
U3RvcmUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIDog
bV9wcml2YXRlKFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OmNyZWF0ZSh3aWRnZXQsIHNpemUp
KQogewogfQogCi1HdGtXaWRnZXRCYWNraW5nU3RvcmU6On5HdGtXaWRnZXRCYWNraW5nU3RvcmUo
KQorV2lkZ2V0QmFja2luZ1N0b3JlOjp+V2lkZ2V0QmFja2luZ1N0b3JlKCkKIHsKIH0KIAotY2Fp
cm9fc3VyZmFjZV90KiBHdGtXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJvU3VyZmFjZSgpCitjYWly
b19zdXJmYWNlX3QqIFdpZGdldEJhY2tpbmdTdG9yZTo6Y2Fpcm9TdXJmYWNlKCkKIHsKICAgICBy
ZXR1cm4gbV9wcml2YXRlLT5tX3N1cmZhY2UuZ2V0KCk7CiB9CiAKLXN0YXRpYyB2b2lkIGNvcHlS
ZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIoY2Fpcm9fc3VyZmFjZV90KiBmcm9tLCBjYWlyb19z
dXJmYWNlX3QqIHRvLCBjb25zdCBJbnRTaXplJiBvZmZzZXQsIGNvbnN0IEludFJlY3QmIHJlY3Qp
Ci17Ci0gICAgUmVmUHRyPGNhaXJvX3Q+IGNvbnRleHQgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUo
dG8pKTsKLSAgICBjYWlyb19zZXRfc291cmNlX3N1cmZhY2UoY29udGV4dC5nZXQoKSwgZnJvbSwg
b2Zmc2V0LndpZHRoKCksIG9mZnNldC5oZWlnaHQoKSk7Ci0gICAgY2Fpcm9fcmVjdGFuZ2xlKGNv
bnRleHQuZ2V0KCksIHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdo
dCgpKTsKLSAgICBjYWlyb19maWxsKGNvbnRleHQuZ2V0KCkpOwotfQotCi12b2lkIEd0a1dpZGdl
dEJhY2tpbmdTdG9yZTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IElu
dFNpemUmIHNjcm9sbE9mZnNldCkKK3ZvaWQgV2lkZ2V0QmFja2luZ1N0b3JlOjpzY3JvbGwoY29u
c3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQogewog
ICAgIEludFJlY3QgdGFyZ2V0UmVjdChzY3JvbGxSZWN0KTsKICAgICB0YXJnZXRSZWN0Lm1vdmUo
c2Nyb2xsT2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9H
dGtXaWRnZXRCYWNraW5nU3RvcmVYMTEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0d0a1dpZGdldEJhY2tpbmdTdG9yZVgxMS5jcHAKaW5kZXggMWE2ODI5MS4uNzk2MjQ2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9y
ZVgxMS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tp
bmdTdG9yZVgxMS5jcHAKQEAgLTE3LDcgKzE3LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiR3RrV2lkZ2V0QmFja2luZ1N0b3JlLmgiCisjaW5jbHVkZSAiV2lkZ2V0
QmFja2luZ1N0b3JlLmgiCiAKICNpZmRlZiBYUF9VTklYCiAKQEAgLTI3LDEyICsyNywxMSBAQAog
I2luY2x1ZGUgPGNhaXJvL2NhaXJvLXhsaWIuaD4KICNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgog
I2luY2x1ZGUgPGdkay9nZGt4Lmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUpOworY2xhc3Mg
V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2lk
Z2V0QmFja2luZ1N0b3JlUHJpdmF0ZSk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAK
IHB1YmxpYzoKQEAgLTQxLDEyICs0MCwxMiBAQCBwdWJsaWM6CiAgICAgR0MgbV9nYzsKICAgICBS
ZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3N1cmZhY2U7CiAKLSAgICBzdGF0aWMgUGFzc093blB0
cjxHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBjcmVhdGUoR3RrV2lkZ2V0KiB3aWRnZXQs
IGNvbnN0IEludFNpemUmIHNpemUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8V2lkZ2V0QmFja2lu
Z1N0b3JlUHJpdmF0ZT4gY3JlYXRlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCwgY29uc3QgSW50U2l6
ZSYgc2l6ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgR3RrV2lkZ2V0QmFj
a2luZ1N0b3JlUHJpdmF0ZSh3aWRnZXQsIHNpemUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKHdpZGdldCwgc2l6ZSkpOwogICAgIH0KIAot
ICAgIH5HdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKCkKKyAgICB+V2lkZ2V0QmFja2luZ1N0
b3JlUHJpdmF0ZSgpCiAgICAgewogICAgICAgICBYRnJlZVBpeG1hcChtX2Rpc3BsYXksIG1fcGl4
bWFwKTsKICAgICAgICAgWEZyZWVHQyhtX2Rpc3BsYXksIG1fZ2MpOwpAQCAtNTYsNyArNTUsNyBA
QCBwcml2YXRlOgogICAgIC8vIFdlIGtlZXAgdHdvIGNvcGllcyBvZiB0aGUgc3VyZmFjZSBoZXJl
LCB3aGljaCB3aWxsIGRvdWJsZSB0aGUgbWVtb3J5IHVzYWdlLCBidXQgaW5jcmVhc2UKICAgICAv
LyBzY3JvbGxpbmcgcGVyZm9ybWFuY2Ugc2luY2Ugd2UgZG8gbm90IGhhdmUgdG8ga2VlcCByZWFs
bG9jYXRpbmcgYSBtZW1vcnkgcmVnaW9uIGR1cmluZwogICAgIC8vIHF1aWNrIHNjcm9sbGluZyBy
ZXF1ZXN0cy4KLSAgICBHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKEd0a1dpZGdldCogd2lk
Z2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUo
UGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQogICAgIHsKICAgICAg
ICAgR2RrVmlzdWFsKiB2aXN1YWwgPSBndGtfd2lkZ2V0X2dldF92aXN1YWwod2lkZ2V0KTsKICAg
ICAgICAgR2RrU2NyZWVuKiBzY3JlZW4gPSBnZGtfdmlzdWFsX2dldF9zY3JlZW4odmlzdWFsKTsK
QEAgLTczLDI2ICs3MiwyNiBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLVBhc3NPd25QdHI8R3Rr
V2lkZ2V0QmFja2luZ1N0b3JlPiBHdGtXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShHdGtXaWRn
ZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK1Bhc3NPd25QdHI8V2lkZ2V0QmFja2lu
Z1N0b3JlPiBXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQs
IGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHdGtXaWRn
ZXRCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBX
aWRnZXRCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSk7CiB9CiAKLUd0a1dpZGdldEJhY2tpbmdT
dG9yZTo6R3RrV2lkZ2V0QmFja2luZ1N0b3JlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRT
aXplJiBzaXplKQotICAgIDogbV9wcml2YXRlKEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6
OmNyZWF0ZSh3aWRnZXQsIHNpemUpKQorV2lkZ2V0QmFja2luZ1N0b3JlOjpXaWRnZXRCYWNraW5n
U3RvcmUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIDog
bV9wcml2YXRlKFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OmNyZWF0ZSh3aWRnZXQsIHNpemUp
KQogewogfQogCi1HdGtXaWRnZXRCYWNraW5nU3RvcmU6On5HdGtXaWRnZXRCYWNraW5nU3RvcmUo
KQorV2lkZ2V0QmFja2luZ1N0b3JlOjp+V2lkZ2V0QmFja2luZ1N0b3JlKCkKIHsKIH0KIAotY2Fp
cm9fc3VyZmFjZV90KiBHdGtXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJvU3VyZmFjZSgpCitjYWly
b19zdXJmYWNlX3QqIFdpZGdldEJhY2tpbmdTdG9yZTo6Y2Fpcm9TdXJmYWNlKCkKIHsKICAgICBy
ZXR1cm4gbV9wcml2YXRlLT5tX3N1cmZhY2UuZ2V0KCk7CiB9CiAKLXZvaWQgR3RrV2lkZ2V0QmFj
a2luZ1N0b3JlOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6
ZSYgc2Nyb2xsT2Zmc2V0KQordm9pZCBXaWRnZXRCYWNraW5nU3RvcmU6OnNjcm9sbChjb25zdCBJ
bnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpCiB7CiAgICAg
SW50UmVjdCB0YXJnZXRSZWN0KHNjcm9sbFJlY3QpOwogICAgIHRhcmdldFJlY3QubW92ZShzY3Jv
bGxPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDg5NDI2MWUuLjYwOTM5MDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMS0wNi0xNyAgRXVubWkgTGVlICA8ZXVubWkxNS5sZWVAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2hhbmdlIEd0a1dpZGdldEJhY2tpbmdTdG9yZS5oIHRvIFdpZGdldEJhY2tpbmdTdG9yZS5oIGlu
IG9yZGVyIHRvIHVzZSBpbiB0aGUgRUZMIHBvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjg0OAorCisgICAgICAgIENoYW5nZSBHdGtXaWRnZXRC
YWNraW5nU3RvcmUgdG8gV2lkZ2V0QmFja2luZ1N0b3JlIGluIHRoZSBCYWNraW5nU3RvcmUuaCBh
bmQKKyAgICAgICAgZ3RrL0JhY2tpbmdTdG9yZUd0ay5jcHAuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9CYWNraW5nU3RvcmVH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpCYWNraW5nU3RvcmU6OmluY29ycG9yYXRlVXBkYXRl
KToKKwogMjAxMS0wNi0xNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IFdlYktpdDIgR1RLIGJ1aWxkIGFmdGVyIHI4
OTA2MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9CYWNraW5nU3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9CYWNraW5nU3RvcmUuaAppbmRleCA1YTY1M2Zj
Li4xYjI4ZmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQmFja2luZ1N0
b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0JhY2tpbmdTdG9yZS5oCkBAIC00
Myw3ICs0Myw3IEBACiAKICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8UmVmUHRyQ2Fpcm8u
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL0d0a1dpZGdldEJhY2tpbmdTdG9yZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvV2lkZ2V0QmFja2luZ1N0b3JlLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtOTcsNyArOTcsNyBAQCBwcml2YXRlOgogI2VsaWYgUExBVEZPUk0oUVQpCiAgICAg
UVBpeG1hcCBtX3BpeG1hcDsKICNlbGlmIFBMQVRGT1JNKEdUSykKLSAgICBPd25QdHI8V2ViQ29y
ZTo6R3RrV2lkZ2V0QmFja2luZ1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsKKyAgICBPd25QdHI8V2Vi
Q29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsKICNlbmRpZgogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9CYWNraW5nU3RvcmVHdGsu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9CYWNraW5nU3RvcmVHdGsuY3BwCmlu
ZGV4IGNiMzhkY2UuLmYyMzM5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9ndGsvQmFja2luZ1N0b3JlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Z3RrL0JhY2tpbmdTdG9yZUd0ay5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgdm9pZCBCYWNraW5nU3Rv
cmU6OnBhaW50KGNhaXJvX3QqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB2b2lkIEJh
Y2tpbmdTdG9yZTo6aW5jb3Jwb3JhdGVVcGRhdGUoU2hhcmVhYmxlQml0bWFwKiBiaXRtYXAsIGNv
bnN0IFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiB7CiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkK
LSAgICAgICAgbV9iYWNraW5nU3RvcmUgPSBHdGtXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZSht
X3dlYlBhZ2VQcm94eS0+dmlld1dpZGdldCgpLCBzaXplKCkpOworICAgICAgICBtX2JhY2tpbmdT
dG9yZSA9IFdpZGdldEJhY2tpbmdTdG9yZTo6Y3JlYXRlKG1fd2ViUGFnZVByb3h5LT52aWV3V2lk
Z2V0KCksIHNpemUoKSk7CiAKICAgICBzY3JvbGwodXBkYXRlSW5mby5zY3JvbGxSZWN0LCB1cGRh
dGVJbmZvLnNjcm9sbE9mZnNldCk7CiAK
</data>
<flag name="commit-queue"
          id="91587"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97740</attachid>
            <date>2011-06-19 21:05:41 -0700</date>
            <delta_ts>2011-06-20 21:31:25 -0700</delta_ts>
            <desc>Patch to fix efl error</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>17823</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkM2FjMjhjLi5hM2RjODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTEtMDYtMTcgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBHdGtX
aWRnZXRCYWNraW5nU3RvcmUuaCB0byBXaWRnZXRCYWNraW5nU3RvcmUuaCBpbiBvcmRlciB0byB1
c2UgaW4gdGhlIEVGTCBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjI4NDgKKworICAgICAgICBUaGlzIHBhdGNoIHdpbGwgbWFrZSBHdGtXaWRn
ZXRCYWNraW5nU3RvcmUgc2hhcmVhYmxlIHdpdGggRUZMIHBvcnQuCisgICAgICAgIEl0IGlzIGEg
cHJlcGFyYXRpb24gdG8gaW50ZWdyYXRlIFdlYktpdDIncyBCYWNraW5nU3RvcmVHdGsuY3BwIGFu
ZAorICAgICAgICBCYWNraW5nU3RvcmVFZmwuY3BwIGFzIGEgQmFja2luZ1N0b3JlQ2Fpcm8uY3Bw
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5
UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9DYWlyb1V0aWxpdGllcy5oOgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldEJhY2tp
bmdTdG9yZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2lu
Z1N0b3JlLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tp
bmdTdG9yZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVN1cmZhY2VGb3JCYWNr
aW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6Oldp
ZGdldEJhY2tpbmdTdG9yZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2lu
Z1N0b3JlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjpX
aWRnZXRCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3Jl
Ojp+V2lkZ2V0QmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdT
dG9yZTo6Y2Fpcm9TdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9y
ZTo6c2Nyb2xsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3Jl
WDExLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjp+V2lk
Z2V0QmFja2luZ1N0b3JlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5n
U3RvcmVQcml2YXRlOjpXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OldpZGdldEJhY2tpbmdTdG9yZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdl
dEJhY2tpbmdTdG9yZTo6V2lkZ2V0QmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Oldp
ZGdldEJhY2tpbmdTdG9yZTo6fldpZGdldEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJvU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpX
aWRnZXRCYWNraW5nU3RvcmU6OnNjcm9sbCk6CisKIDIwMTEtMDYtMTcgIEFsZXhhbmRlciBQYXZs
b3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBI
eWF0dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGU3N2Q4MDQuLjlhZmEzOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjc1OSw2ICsyNzU5LDcgQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VVUlELmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1dpZGdldC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXRCYWNraW5nU3Rv
cmUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2luZG93c0tleWJvYXJkQ29kZXMuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmggXApAQCAtMzgwOSw3ICszODEwLDYg
QEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R3RrQ2xpY2tDb3VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGls
aXRpZXMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmgg
XAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmUuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJv
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9y
ZVgxMS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZp
Y2VHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldEJh
Y2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0QmFja2luZ1N0b3Jl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBkMWM5MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldEJhY2tpbmdTdG9yZS5oCkBA
IC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIElnYWxpYSBTLkwuCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAq
ICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFdpZGdldEJhY2tpbmdTdG9y
ZV9oCisjZGVmaW5lIFdpZGdldEJhY2tpbmdTdG9yZV9oCisKKyNpbmNsdWRlICJJbnRSZWN0Lmgi
CisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+Cisj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
KworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisjZW5kaWYKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOworCisj
aWYgUExBVEZPUk0oR1RLKQordHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OworI2Vu
ZGlmCisKK2NsYXNzIFdpZGdldEJhY2tpbmdTdG9yZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoV2lkZ2V0QmFja2luZ1N0b3JlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKwor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZT4gY3JlYXRl
KFBsYXRmb3JtV2lkZ2V0LCBjb25zdCBJbnRTaXplJik7CisKKyAgICB+V2lkZ2V0QmFja2luZ1N0
b3JlKCk7CisgICAgY2Fpcm9fc3VyZmFjZV90KiBjYWlyb1N1cmZhY2UoKTsKKyAgICB2b2lkIHNj
cm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZz
ZXQpOworCitwcml2YXRlOgorICAgIFdpZGdldEJhY2tpbmdTdG9yZShQbGF0Zm9ybVdpZGdldCwg
Y29uc3QgSW50U2l6ZSYpOworCisgICAgT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU+
IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdp
ZGdldEJhY2tpbmdTdG9yZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKaW5kZXggM2I0OGZlMi4uYjRhZGI2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fp
cm9VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0NhaXJvVXRpbGl0aWVzLmNwcApAQCAtMTcyLDQgKzE3MiwxMiBAQCBQYXNzUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gY29weUNhaXJvSW1hZ2VTdXJmYWNlKGNhaXJvX3N1cmZhY2VfdCogb3Jp
Z2luYWxTdXJmYQogICAgIHJldHVybiBuZXdTdXJmYWNlLnJlbGVhc2UoKTsKIH0KIAordm9pZCBj
b3B5UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKGNhaXJvX3N1cmZhY2VfdCogZnJvbSwgY2Fp
cm9fc3VyZmFjZV90KiB0bywgY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQoreworICAgIFJlZlB0cjxjYWlyb190PiBjb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3Jl
YXRlKHRvKSk7CisgICAgY2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlKGNvbnRleHQuZ2V0KCksIGZy
b20sIG9mZnNldC53aWR0aCgpLCBvZmZzZXQuaGVpZ2h0KCkpOworICAgIGNhaXJvX3JlY3Rhbmds
ZShjb250ZXh0LmdldCgpLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5o
ZWlnaHQoKSk7CisgICAgY2Fpcm9fZmlsbChjb250ZXh0LmdldCgpKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmgKaW5kZXggNjhmNzE2Ni4uYzFiMGZmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRp
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0
aWxpdGllcy5oCkBAIC0zNSw2ICszNSw3IEBAIGNsYXNzIENvbG9yOwogY2xhc3MgRmxvYXRSZWN0
OwogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEludFNpemU7CitjbGFzcyBJbnRSZWN0OwogY2xh
c3MgUGF0aDsKIAogdm9pZCBjb3B5Q29udGV4dFByb3BlcnRpZXMoY2Fpcm9fdCogc3JjQ3IsIGNh
aXJvX3QqIGRzdENyKTsKQEAgLTQ2LDYgKzQ3LDcgQEAgY2Fpcm9fb3BlcmF0b3JfdCB0b0NhaXJv
T3BlcmF0b3IoQ29tcG9zaXRlT3BlcmF0b3Igb3ApOwogdm9pZCBkcmF3UGF0dGVyblRvQ2Fpcm9D
b250ZXh0KGNhaXJvX3QqIGNyLCBjYWlyb19zdXJmYWNlX3QqIGltYWdlLCBjb25zdCBJbnRTaXpl
JiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY2Fpcm9fb3BlcmF0b3JfdCBvcCwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCk7CiBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gY29weUNhaXJvSW1h
Z2VTdXJmYWNlKGNhaXJvX3N1cmZhY2VfdCopOwordm9pZCBjb3B5UmVjdEZyb21PbmVTdXJmYWNl
VG9Bbm90aGVyKGNhaXJvX3N1cmZhY2VfdCosIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0IEludFNp
emUmLCBjb25zdCBJbnRSZWN0Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDRkNjYwLi4wMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmUuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIElnYWxpYSBT
LkwuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaWZuZGVmIEd0a1dpZGdldEJh
Y2tpbmdTdG9yZV9oIAotI2RlZmluZSBHdGtXaWRnZXRCYWNraW5nU3RvcmVfaCAKLQotI2luY2x1
ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSA8d3RmL0Zhc3RB
bGxvY0Jhc2UuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEd0a1dpZGdldEJh
Y2tpbmdTdG9yZVByaXZhdGU7Ci0KLWNsYXNzIEd0a1dpZGdldEJhY2tpbmdTdG9yZSB7Ci0gICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoR3RrV2lkZ2V0QmFja2luZ1N0b3JlKTsKLSAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKLQotcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEd0a1dp
ZGdldEJhY2tpbmdTdG9yZT4gY3JlYXRlKEd0a1dpZGdldCosIGNvbnN0IEludFNpemUmKTsKLQot
ICAgIH5HdGtXaWRnZXRCYWNraW5nU3RvcmUoKTsKLSAgICBjYWlyb19zdXJmYWNlX3QqIGNhaXJv
U3VyZmFjZSgpOwotICAgIHZvaWQgc2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9sbFJlY3QsIGNv
bnN0IEludFNpemUmIHNjcm9sbE9mZnNldCk7Ci0KLXByaXZhdGU6Ci0gICAgR3RrV2lkZ2V0QmFj
a2luZ1N0b3JlKEd0a1dpZGdldCosIGNvbnN0IEludFNpemUmKTsKLQotICAgIE93blB0cjxHdGtX
aWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBtX3ByaXZhdGU7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBCYWNraW5nU3RvcmVfaAotCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNw
cAppbmRleCA5YTk2NTk3Li40MjllZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTE3LDE3
ICsxNywxOCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHdGtXaWRn
ZXRCYWNraW5nU3RvcmUuaCIKKyNpbmNsdWRlICJXaWRnZXRCYWNraW5nU3RvcmUuaCIKIAogI2lm
bmRlZiBYUF9VTklYCiAKKyNpbmNsdWRlICJDYWlyb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIlJl
ZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KLSNpbmNsdWRlIDxndGsvZ3Rr
Lmg+CisjaW5jbHVkZSA8Z2RrL2dkay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gY3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9y
ZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3N0YXRpYyBQYXNzUmVm
UHRyPGNhaXJvX3N1cmZhY2VfdD4gY3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZShQbGF0Zm9y
bVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgcmV0dXJuIGdka193
aW5kb3dfY3JlYXRlX3NpbWlsYXJfc3VyZmFjZShndGtfd2lkZ2V0X2dldF93aW5kb3cod2lkZ2V0
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENBSVJPX0NP
TlRFTlRfQ09MT1JfQUxQSEEsCkBAIC0zNSw1NyArMzYsNTAgQEAgc3RhdGljIFBhc3NSZWZQdHI8
Y2Fpcm9fc3VyZmFjZV90PiBjcmVhdGVTdXJmYWNlRm9yQmFja2luZ1N0b3JlKEd0a1dpZGdldCog
d2lkZ2UKIH0KIAogCi1jbGFzcyBHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKLSAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKTsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIAogcHVibGljOgogICAgIFJlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IG1fc3VyZmFjZTsKICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3Njcm9sbFN1
cmZhY2U7CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2
YXRlPiBjcmVhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAg
c3RhdGljIFBhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZT4gY3JlYXRlKFBsYXRm
b3JtV2lkZ2V0IHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgR3RrV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSh3aWRnZXQsIHNp
emUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNraW5nU3RvcmVQcml2
YXRlKHdpZGdldCwgc2l6ZSkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICAvLyBXZSBrZWVwIHR3
byBjb3BpZXMgb2YgdGhlIHN1cmZhY2UgaGVyZSwgd2hpY2ggd2lsbCBkb3VibGUgdGhlIG1lbW9y
eSB1c2FnZSwgYnV0IGluY3JlYXNlCiAgICAgLy8gc2Nyb2xsaW5nIHBlcmZvcm1hbmNlIHNpbmNl
IHdlIGRvIG5vdCBoYXZlIHRvIGtlZXAgcmVhbGxvY2F0aW5nIGEgbWVtb3J5IHJlZ2lvbiBkdXJp
bmcKICAgICAvLyBxdWljayBzY3JvbGxpbmcgcmVxdWVzdHMuCi0gICAgR3RrV2lkZ2V0QmFja2lu
Z1N0b3JlUHJpdmF0ZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAg
ICBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSkKICAgICAgICAgOiBtX3N1cmZhY2UoY3JlYXRlU3VyZmFjZUZvckJhY2tp
bmdTdG9yZSh3aWRnZXQsIHNpemUpKQogICAgICAgICAsIG1fc2Nyb2xsU3VyZmFjZShjcmVhdGVT
dXJmYWNlRm9yQmFja2luZ1N0b3JlKHdpZGdldCwgc2l6ZSkpCiAgICAgewogICAgIH0KIH07CiAK
LVBhc3NPd25QdHI8R3RrV2lkZ2V0QmFja2luZ1N0b3JlPiBHdGtXaWRnZXRCYWNraW5nU3RvcmU6
OmNyZWF0ZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK1Bhc3NPd25Q
dHI8V2lkZ2V0QmFja2luZ1N0b3JlPiBXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShQbGF0Zm9y
bVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBHdGtXaWRnZXRCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSk7CisgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSk7CiB9CiAKLUd0
a1dpZGdldEJhY2tpbmdTdG9yZTo6R3RrV2lkZ2V0QmFja2luZ1N0b3JlKEd0a1dpZGdldCogd2lk
Z2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgIDogbV9wcml2YXRlKEd0a1dpZGdldEJhY2tp
bmdTdG9yZVByaXZhdGU6OmNyZWF0ZSh3aWRnZXQsIHNpemUpKQorV2lkZ2V0QmFja2luZ1N0b3Jl
OjpXaWRnZXRCYWNraW5nU3RvcmUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXpl
JiBzaXplKQorICAgIDogbV9wcml2YXRlKFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OmNyZWF0
ZSh3aWRnZXQsIHNpemUpKQogewogfQogCi1HdGtXaWRnZXRCYWNraW5nU3RvcmU6On5HdGtXaWRn
ZXRCYWNraW5nU3RvcmUoKQorV2lkZ2V0QmFja2luZ1N0b3JlOjp+V2lkZ2V0QmFja2luZ1N0b3Jl
KCkKIHsKIH0KIAotY2Fpcm9fc3VyZmFjZV90KiBHdGtXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJv
U3VyZmFjZSgpCitjYWlyb19zdXJmYWNlX3QqIFdpZGdldEJhY2tpbmdTdG9yZTo6Y2Fpcm9TdXJm
YWNlKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5tX3N1cmZhY2UuZ2V0KCk7CiB9CiAKLXN0
YXRpYyB2b2lkIGNvcHlSZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIoY2Fpcm9fc3VyZmFjZV90
KiBmcm9tLCBjYWlyb19zdXJmYWNlX3QqIHRvLCBjb25zdCBJbnRTaXplJiBvZmZzZXQsIGNvbnN0
IEludFJlY3QmIHJlY3QpCi17Ci0gICAgUmVmUHRyPGNhaXJvX3Q+IGNvbnRleHQgPSBhZG9wdFJl
ZihjYWlyb19jcmVhdGUodG8pKTsKLSAgICBjYWlyb19zZXRfc291cmNlX3N1cmZhY2UoY29udGV4
dC5nZXQoKSwgZnJvbSwgb2Zmc2V0LndpZHRoKCksIG9mZnNldC5oZWlnaHQoKSk7Ci0gICAgY2Fp
cm9fcmVjdGFuZ2xlKGNvbnRleHQuZ2V0KCksIHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0
aCgpLCByZWN0LmhlaWdodCgpKTsKLSAgICBjYWlyb19maWxsKGNvbnRleHQuZ2V0KCkpOwotfQot
Ci12b2lkIEd0a1dpZGdldEJhY2tpbmdTdG9yZTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9s
bFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCkKK3ZvaWQgV2lkZ2V0QmFja2luZ1N0
b3JlOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Ny
b2xsT2Zmc2V0KQogewogICAgIEludFJlY3QgdGFyZ2V0UmVjdChzY3JvbGxSZWN0KTsKICAgICB0
YXJnZXRSZWN0Lm1vdmUoc2Nyb2xsT2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVYMTEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZVgxMS5jcHAKaW5kZXggMWE2ODI5
MS4uNzk2MjQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dp
ZGdldEJhY2tpbmdTdG9yZVgxMS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0d0a1dpZGdldEJhY2tpbmdTdG9yZVgxMS5jcHAKQEAgLTE3LDcgKzE3LDcgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR3RrV2lkZ2V0QmFja2luZ1N0b3JlLmgiCisj
aW5jbHVkZSAiV2lkZ2V0QmFja2luZ1N0b3JlLmgiCiAKICNpZmRlZiBYUF9VTklYCiAKQEAgLTI3
LDEyICsyNywxMSBAQAogI2luY2x1ZGUgPGNhaXJvL2NhaXJvLXhsaWIuaD4KICNpbmNsdWRlIDxj
YWlyby9jYWlyby5oPgogI2luY2x1ZGUgPGdkay9nZGt4Lmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEd0a1dpZGdldEJhY2tpbmdTdG9yZVBy
aXZhdGUgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEd0a1dpZGdldEJhY2tpbmdTdG9yZVBy
aXZhdGUpOworY2xhc3MgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSB7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSk7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiAKIHB1YmxpYzoKQEAgLTQxLDEyICs0MCwxMiBAQCBwdWJsaWM6CiAgICAg
R0MgbV9nYzsKICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3N1cmZhY2U7CiAKLSAgICBz
dGF0aWMgUGFzc093blB0cjxHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBjcmVhdGUoR3Rr
V2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgc3RhdGljIFBhc3NPd25Q
dHI8V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZT4gY3JlYXRlKFBsYXRmb3JtV2lkZ2V0IHdpZGdl
dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgR3RrV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSh3aWRnZXQsIHNpemUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKHdpZGdldCwgc2l6
ZSkpOwogICAgIH0KIAotICAgIH5HdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKCkKKyAgICB+
V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSgpCiAgICAgewogICAgICAgICBYRnJlZVBpeG1hcCht
X2Rpc3BsYXksIG1fcGl4bWFwKTsKICAgICAgICAgWEZyZWVHQyhtX2Rpc3BsYXksIG1fZ2MpOwpA
QCAtNTYsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlIGtlZXAgdHdvIGNvcGllcyBvZiB0
aGUgc3VyZmFjZSBoZXJlLCB3aGljaCB3aWxsIGRvdWJsZSB0aGUgbWVtb3J5IHVzYWdlLCBidXQg
aW5jcmVhc2UKICAgICAvLyBzY3JvbGxpbmcgcGVyZm9ybWFuY2Ugc2luY2Ugd2UgZG8gbm90IGhh
dmUgdG8ga2VlcCByZWFsbG9jYXRpbmcgYSBtZW1vcnkgcmVnaW9uIGR1cmluZwogICAgIC8vIHF1
aWNrIHNjcm9sbGluZyByZXF1ZXN0cy4KLSAgICBHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRl
KEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIFdpZGdldEJhY2tp
bmdTdG9yZVByaXZhdGUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXpl
KQogICAgIHsKICAgICAgICAgR2RrVmlzdWFsKiB2aXN1YWwgPSBndGtfd2lkZ2V0X2dldF92aXN1
YWwod2lkZ2V0KTsKICAgICAgICAgR2RrU2NyZWVuKiBzY3JlZW4gPSBnZGtfdmlzdWFsX2dldF9z
Y3JlZW4odmlzdWFsKTsKQEAgLTczLDI2ICs3MiwyNiBAQCBwcml2YXRlOgogICAgIH0KIH07CiAK
LVBhc3NPd25QdHI8R3RrV2lkZ2V0QmFja2luZ1N0b3JlPiBHdGtXaWRnZXRCYWNraW5nU3RvcmU6
OmNyZWF0ZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK1Bhc3NPd25Q
dHI8V2lkZ2V0QmFja2luZ1N0b3JlPiBXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShQbGF0Zm9y
bVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBHdGtXaWRnZXRCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSk7CisgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSk7CiB9CiAKLUd0
a1dpZGdldEJhY2tpbmdTdG9yZTo6R3RrV2lkZ2V0QmFja2luZ1N0b3JlKEd0a1dpZGdldCogd2lk
Z2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgIDogbV9wcml2YXRlKEd0a1dpZGdldEJhY2tp
bmdTdG9yZVByaXZhdGU6OmNyZWF0ZSh3aWRnZXQsIHNpemUpKQorV2lkZ2V0QmFja2luZ1N0b3Jl
OjpXaWRnZXRCYWNraW5nU3RvcmUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXpl
JiBzaXplKQorICAgIDogbV9wcml2YXRlKFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OmNyZWF0
ZSh3aWRnZXQsIHNpemUpKQogewogfQogCi1HdGtXaWRnZXRCYWNraW5nU3RvcmU6On5HdGtXaWRn
ZXRCYWNraW5nU3RvcmUoKQorV2lkZ2V0QmFja2luZ1N0b3JlOjp+V2lkZ2V0QmFja2luZ1N0b3Jl
KCkKIHsKIH0KIAotY2Fpcm9fc3VyZmFjZV90KiBHdGtXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJv
U3VyZmFjZSgpCitjYWlyb19zdXJmYWNlX3QqIFdpZGdldEJhY2tpbmdTdG9yZTo6Y2Fpcm9TdXJm
YWNlKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5tX3N1cmZhY2UuZ2V0KCk7CiB9CiAKLXZv
aWQgR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVj
dCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQordm9pZCBXaWRnZXRCYWNraW5nU3RvcmU6
OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxP
ZmZzZXQpCiB7CiAgICAgSW50UmVjdCB0YXJnZXRSZWN0KHNjcm9sbFJlY3QpOwogICAgIHRhcmdl
dFJlY3QubW92ZShzY3JvbGxPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDg5NDI2MWUuLjYwOTM5MDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wNi0xNyAgRXVubWkgTGVlICA8ZXVu
bWkxNS5sZWVAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ2hhbmdlIEd0a1dpZGdldEJhY2tpbmdTdG9yZS5oIHRvIFdpZGdldEJh
Y2tpbmdTdG9yZS5oIGluIG9yZGVyIHRvIHVzZSBpbiB0aGUgRUZMIHBvcnQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjg0OAorCisgICAgICAgIENo
YW5nZSBHdGtXaWRnZXRCYWNraW5nU3RvcmUgdG8gV2lkZ2V0QmFja2luZ1N0b3JlIGluIHRoZSBC
YWNraW5nU3RvcmUuaCBhbmQKKyAgICAgICAgZ3RrL0JhY2tpbmdTdG9yZUd0ay5jcHAuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0
ay9CYWNraW5nU3RvcmVHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpCYWNraW5nU3RvcmU6Omlu
Y29ycG9yYXRlVXBkYXRlKToKKwogMjAxMS0wNi0xNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IFdlYktpdDIgR1RL
IGJ1aWxkIGFmdGVyIHI4OTA2MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9CYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9CYWNraW5nU3RvcmUu
aAppbmRleCA1YTY1M2ZjLi4xYjI4ZmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0JhY2tp
bmdTdG9yZS5oCkBAIC00Myw3ICs0Myw3IEBACiAKICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVk
ZSA8UmVmUHRyQ2Fpcm8uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0d0a1dpZGdldEJhY2tpbmdTdG9y
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2lkZ2V0QmFja2luZ1N0b3JlLmg+CiAjZW5kaWYKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTcsNyArOTcsNyBAQCBwcml2YXRlOgogI2VsaWYgUExB
VEZPUk0oUVQpCiAgICAgUVBpeG1hcCBtX3BpeG1hcDsKICNlbGlmIFBMQVRGT1JNKEdUSykKLSAg
ICBPd25QdHI8V2ViQ29yZTo6R3RrV2lkZ2V0QmFja2luZ1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsK
KyAgICBPd25QdHI8V2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsK
ICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9C
YWNraW5nU3RvcmVHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9CYWNraW5n
U3RvcmVHdGsuY3BwCmluZGV4IGNiMzhkY2UuLmYyMzM5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9ndGsvQmFja2luZ1N0b3JlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZ3RrL0JhY2tpbmdTdG9yZUd0ay5jcHAKQEAgLTUxLDcgKzUxLDcgQEAg
dm9pZCBCYWNraW5nU3RvcmU6OnBhaW50KGNhaXJvX3QqIGNvbnRleHQsIGNvbnN0IEludFJlY3Qm
IHJlY3QpCiB2b2lkIEJhY2tpbmdTdG9yZTo6aW5jb3Jwb3JhdGVVcGRhdGUoU2hhcmVhYmxlQml0
bWFwKiBiaXRtYXAsIGNvbnN0IFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiB7CiAgICAgaWYgKCFt
X2JhY2tpbmdTdG9yZSkKLSAgICAgICAgbV9iYWNraW5nU3RvcmUgPSBHdGtXaWRnZXRCYWNraW5n
U3RvcmU6OmNyZWF0ZShtX3dlYlBhZ2VQcm94eS0+dmlld1dpZGdldCgpLCBzaXplKCkpOworICAg
ICAgICBtX2JhY2tpbmdTdG9yZSA9IFdpZGdldEJhY2tpbmdTdG9yZTo6Y3JlYXRlKG1fd2ViUGFn
ZVByb3h5LT52aWV3V2lkZ2V0KCksIHNpemUoKSk7CiAKICAgICBzY3JvbGwodXBkYXRlSW5mby5z
Y3JvbGxSZWN0LCB1cGRhdGVJbmZvLnNjcm9sbE9mZnNldCk7CiAK
</data>
<flag name="review"
          id="91783"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97925</attachid>
            <date>2011-06-20 21:31:25 -0700</date>
            <delta_ts>2011-06-21 23:57:57 -0700</delta_ts>
            <desc>Patch for comments</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>18097</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkM2FjMjhjLi43ZjgwYTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTEtMDYtMTcgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBHdGtX
aWRnZXRCYWNraW5nU3RvcmUuaCB0byBXaWRnZXRCYWNraW5nU3RvcmUuaCBpbiBvcmRlciB0byB1
c2UgaW4gdGhlIEVGTCBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjI4NDgKKworICAgICAgICBUaGlzIHBhdGNoIHdpbGwgbWFrZSBHdGtXaWRn
ZXRCYWNraW5nU3RvcmUgc2hhcmVhYmxlIHdpdGggRUZMIHBvcnQuCisgICAgICAgIEl0IGlzIGEg
cHJlcGFyYXRpb24gdG8gaW50ZWdyYXRlIFdlYktpdDIncyBCYWNraW5nU3RvcmVHdGsuY3BwIGFu
ZAorICAgICAgICBCYWNraW5nU3RvcmVFZmwuY3BwIGFzIGEgQmFja2luZ1N0b3JlQ2Fpcm8uY3Bw
LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlLmg6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjpXaWRnZXRCYWNraW5nU3RvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjp+V2lkZ2V0QmFja2luZ1N0b3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6Y2Fpcm9TdXJmYWNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6c2Nyb2xsKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlWDExLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjp+V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpXaWRnZXRCYWNr
aW5nU3RvcmVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6V2lkZ2V0QmFj
a2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6fldpZGdl
dEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6OmNh
aXJvU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6OnNjcm9s
bCk6CisKIDIwMTEtMDYtMTcgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
aW5kZXggMGM5YjcyNi4uM2Y3M2M1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTk0LDYgKzk0
LDcgQEAgd2ViY29yZWd0a19jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9ndGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9ndGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrIFwKKwktSSQoc3Jj
ZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlybyBcCiAJLUkkKHNyY2RpcikvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lciBcCiAJLUkkKHNyY2RpcikvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IGU3N2Q4MDQuLmQwMDdmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMzc0Myw2ICszNzQzLDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3Rr
L0ZyYW1lR3RrLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFj
a2luZ1N0b3JlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Nh
aXJvVXRpbGl0aWVzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vQ2Fpcm9VdGlsaXRpZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ29udGV4dFNoYWRvd0NhaXJvLmNwcCBcCkBAIC0zODA5LDcgKzM4MTAsNiBAQCB3ZWJj
b3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtDbGlj
a0NvdW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuaCBcCi0JU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlWDExLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFj
a2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5n
U3RvcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGQxYzkxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2lu
Z1N0b3JlLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgSWdh
bGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgV2lkZ2V0
QmFja2luZ1N0b3JlX2gKKyNkZWZpbmUgV2lkZ2V0QmFja2luZ1N0b3JlX2gKKworI2luY2x1ZGUg
IkludFJlY3QuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8d3RmL0Zhc3RBbGxv
Y0Jhc2UuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgorCisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdpZGdldEJhY2tpbmdTdG9yZVBy
aXZhdGU7CisKKyNpZiBQTEFURk9STShHVEspCit0eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1X
aWRnZXQ7CisjZW5kaWYKKworY2xhc3MgV2lkZ2V0QmFja2luZ1N0b3JlIHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShXaWRnZXRCYWNraW5nU3RvcmUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworCitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0
b3JlPiBjcmVhdGUoUGxhdGZvcm1XaWRnZXQsIGNvbnN0IEludFNpemUmKTsKKworICAgIH5XaWRn
ZXRCYWNraW5nU3RvcmUoKTsKKyAgICBjYWlyb19zdXJmYWNlX3QqIGNhaXJvU3VyZmFjZSgpOwor
ICAgIHZvaWQgc2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUm
IHNjcm9sbE9mZnNldCk7CisKK3ByaXZhdGU6CisgICAgV2lkZ2V0QmFja2luZ1N0b3JlKFBsYXRm
b3JtV2lkZ2V0LCBjb25zdCBJbnRTaXplJik7CisKKyAgICBPd25QdHI8V2lkZ2V0QmFja2luZ1N0
b3JlUHJpdmF0ZT4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gV2lkZ2V0QmFja2luZ1N0b3JlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAppbmRleCAzYjQ4
ZmUyLi5iNGFkYjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCkBAIC0xNzIsNCArMTcyLDEyIEBAIFBh
c3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBjb3B5Q2Fpcm9JbWFnZVN1cmZhY2UoY2Fpcm9fc3Vy
ZmFjZV90KiBvcmlnaW5hbFN1cmZhCiAgICAgcmV0dXJuIG5ld1N1cmZhY2UucmVsZWFzZSgpOwog
fQogCit2b2lkIGNvcHlSZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIoY2Fpcm9fc3VyZmFjZV90
KiBmcm9tLCBjYWlyb19zdXJmYWNlX3QqIHRvLCBjb25zdCBJbnRTaXplJiBvZmZzZXQsIGNvbnN0
IEludFJlY3QmIHJlY3QpCit7CisgICAgUmVmUHRyPGNhaXJvX3Q+IGNvbnRleHQgPSBhZG9wdFJl
ZihjYWlyb19jcmVhdGUodG8pKTsKKyAgICBjYWlyb19zZXRfc291cmNlX3N1cmZhY2UoY29udGV4
dC5nZXQoKSwgZnJvbSwgb2Zmc2V0LndpZHRoKCksIG9mZnNldC5oZWlnaHQoKSk7CisgICAgY2Fp
cm9fcmVjdGFuZ2xlKGNvbnRleHQuZ2V0KCksIHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0
aCgpLCByZWN0LmhlaWdodCgpKTsKKyAgICBjYWlyb19maWxsKGNvbnRleHQuZ2V0KCkpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaAppbmRleCA2OGY3MTY2Li5jMWIw
ZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb1V0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0NhaXJvVXRpbGl0aWVzLmgKQEAgLTM1LDYgKzM1LDcgQEAgY2xhc3MgQ29sb3I7CiBjbGFz
cyBGbG9hdFJlY3Q7CiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgSW50U2l6ZTsKK2NsYXNzIElu
dFJlY3Q7CiBjbGFzcyBQYXRoOwogCiB2b2lkIGNvcHlDb250ZXh0UHJvcGVydGllcyhjYWlyb190
KiBzcmNDciwgY2Fpcm9fdCogZHN0Q3IpOwpAQCAtNDYsNiArNDcsNyBAQCBjYWlyb19vcGVyYXRv
cl90IHRvQ2Fpcm9PcGVyYXRvcihDb21wb3NpdGVPcGVyYXRvciBvcCk7CiB2b2lkIGRyYXdQYXR0
ZXJuVG9DYWlyb0NvbnRleHQoY2Fpcm9fdCogY3IsIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2UsIGNv
bnN0IEludFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5U
cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjYWlyb19vcGVyYXRvcl90IG9wLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBj
b3B5Q2Fpcm9JbWFnZVN1cmZhY2UoY2Fpcm9fc3VyZmFjZV90Kik7Cit2b2lkIGNvcHlSZWN0RnJv
bU9uZVN1cmZhY2VUb0Fub3RoZXIoY2Fpcm9fc3VyZmFjZV90KiwgY2Fpcm9fc3VyZmFjZV90Kiwg
Y29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFj
a2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2lu
Z1N0b3JlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwNGQ2NjAuLjAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZS5o
CisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSwgSWdhbGlhIFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0g
KiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpZm5kZWYg
R3RrV2lkZ2V0QmFja2luZ1N0b3JlX2ggCi0jZGVmaW5lIEd0a1dpZGdldEJhY2tpbmdTdG9yZV9o
IAotCi0jaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgIkludFNpemUuaCIKLSNpbmNsdWRl
IDx3dGYvRmFzdEFsbG9jQmFzZS5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
R3RrV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTsKLQotY2xhc3MgR3RrV2lkZ2V0QmFja2luZ1N0
b3JlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHdGtXaWRnZXRCYWNraW5nU3RvcmUpOwot
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotCi1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NP
d25QdHI8R3RrV2lkZ2V0QmFja2luZ1N0b3JlPiBjcmVhdGUoR3RrV2lkZ2V0KiwgY29uc3QgSW50
U2l6ZSYpOwotCi0gICAgfkd0a1dpZGdldEJhY2tpbmdTdG9yZSgpOwotICAgIGNhaXJvX3N1cmZh
Y2VfdCogY2Fpcm9TdXJmYWNlKCk7Ci0gICAgdm9pZCBzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Ny
b2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KTsKLQotcHJpdmF0ZToKLSAgICBH
dGtXaWRnZXRCYWNraW5nU3RvcmUoR3RrV2lkZ2V0KiwgY29uc3QgSW50U2l6ZSYpOwotCi0gICAg
T3duUHRyPEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU+IG1fcHJpdmF0ZTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEJhY2tpbmdTdG9yZV9oCi0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVD
YWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0
b3JlQ2Fpcm8uY3BwCmluZGV4IDlhOTY1OTcuLjY2NzU1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNw
cApAQCAtMTcsMTMgKzE3LDEzIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkd0a1dpZGdldEJhY2tpbmdTdG9yZS5oIgorI2luY2x1ZGUgIldpZGdldEJhY2tpbmdTdG9y
ZS5oIgogCiAjaWZuZGVmIFhQX1VOSVgKIAorI2luY2x1ZGUgIkNhaXJvVXRpbGl0aWVzLmgiCiAj
aW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKICNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgotI2luY2x1
ZGUgPGd0ay9ndGsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSw1NyArMzUsNTAg
QEAgc3RhdGljIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBjcmVhdGVTdXJmYWNlRm9yQmFj
a2luZ1N0b3JlKEd0a1dpZGdldCogd2lkZ2UKIH0KIAogCi1jbGFzcyBHdGtXaWRnZXRCYWNraW5n
U3RvcmVQcml2YXRlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHdGtXaWRnZXRCYWNraW5n
U3RvcmVQcml2YXRlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBXaWRnZXRCYWNr
aW5nU3RvcmVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXaWRnZXRCYWNraW5n
U3RvcmVQcml2YXRlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIAogcHVibGljOgog
ICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1fc3VyZmFjZTsKICAgICBSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBtX3Njcm9sbFN1cmZhY2U7CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxHdGtX
aWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBjcmVhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0
IEludFNpemUmIHNpemUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3Jl
UHJpdmF0ZT4gY3JlYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHdGtXaWRnZXRCYWNraW5nU3RvcmVQ
cml2YXRlKHdpZGdldCwgc2l6ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdpZGdl
dEJhY2tpbmdTdG9yZVByaXZhdGUod2lkZ2V0LCBzaXplKSk7CiAgICAgfQogCiBwcml2YXRlOgog
ICAgIC8vIFdlIGtlZXAgdHdvIGNvcGllcyBvZiB0aGUgc3VyZmFjZSBoZXJlLCB3aGljaCB3aWxs
IGRvdWJsZSB0aGUgbWVtb3J5IHVzYWdlLCBidXQgaW5jcmVhc2UKICAgICAvLyBzY3JvbGxpbmcg
cGVyZm9ybWFuY2Ugc2luY2Ugd2UgZG8gbm90IGhhdmUgdG8ga2VlcCByZWFsbG9jYXRpbmcgYSBt
ZW1vcnkgcmVnaW9uIGR1cmluZwogICAgIC8vIHF1aWNrIHNjcm9sbGluZyByZXF1ZXN0cy4KLSAg
ICBHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJ
bnRTaXplJiBzaXplKQorICAgIFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUoR3RrV2lkZ2V0KiB3
aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgIDogbV9zdXJmYWNlKGNyZWF0ZVN1
cmZhY2VGb3JCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSkKICAgICAgICAgLCBtX3Njcm9sbFN1
cmZhY2UoY3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZSh3aWRnZXQsIHNpemUpKQogICAgIHsK
ICAgICB9CiB9OwogCi1QYXNzT3duUHRyPEd0a1dpZGdldEJhY2tpbmdTdG9yZT4gR3RrV2lkZ2V0
QmFja2luZ1N0b3JlOjpjcmVhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNp
emUpCitQYXNzT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZT4gV2lkZ2V0QmFja2luZ1N0b3JlOjpj
cmVhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBHdGtXaWRnZXRCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSk7
CiB9CiAKLUd0a1dpZGdldEJhY2tpbmdTdG9yZTo6R3RrV2lkZ2V0QmFja2luZ1N0b3JlKEd0a1dp
ZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgIDogbV9wcml2YXRlKEd0a1dp
ZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OmNyZWF0ZSh3aWRnZXQsIHNpemUpKQorV2lkZ2V0QmFj
a2luZ1N0b3JlOjpXaWRnZXRCYWNraW5nU3RvcmUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IElu
dFNpemUmIHNpemUpCisgICAgOiBtX3ByaXZhdGUoV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6
Y3JlYXRlKHdpZGdldCwgc2l6ZSkpCiB7CiB9CiAKLUd0a1dpZGdldEJhY2tpbmdTdG9yZTo6fkd0
a1dpZGdldEJhY2tpbmdTdG9yZSgpCitXaWRnZXRCYWNraW5nU3RvcmU6On5XaWRnZXRCYWNraW5n
U3RvcmUoKQogewogfQogCi1jYWlyb19zdXJmYWNlX3QqIEd0a1dpZGdldEJhY2tpbmdTdG9yZTo6
Y2Fpcm9TdXJmYWNlKCkKK2NhaXJvX3N1cmZhY2VfdCogV2lkZ2V0QmFja2luZ1N0b3JlOjpjYWly
b1N1cmZhY2UoKQogewogICAgIHJldHVybiBtX3ByaXZhdGUtPm1fc3VyZmFjZS5nZXQoKTsKIH0K
IAotc3RhdGljIHZvaWQgY29weVJlY3RGcm9tT25lU3VyZmFjZVRvQW5vdGhlcihjYWlyb19zdXJm
YWNlX3QqIGZyb20sIGNhaXJvX3N1cmZhY2VfdCogdG8sIGNvbnN0IEludFNpemUmIG9mZnNldCwg
Y29uc3QgSW50UmVjdCYgcmVjdCkKLXsKLSAgICBSZWZQdHI8Y2Fpcm9fdD4gY29udGV4dCA9IGFk
b3B0UmVmKGNhaXJvX2NyZWF0ZSh0bykpOwotICAgIGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZShj
b250ZXh0LmdldCgpLCBmcm9tLCBvZmZzZXQud2lkdGgoKSwgb2Zmc2V0LmhlaWdodCgpKTsKLSAg
ICBjYWlyb19yZWN0YW5nbGUoY29udGV4dC5nZXQoKSwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0
LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwotICAgIGNhaXJvX2ZpbGwoY29udGV4dC5nZXQoKSk7
Ci19Ci0KLXZvaWQgR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjpzY3JvbGwoY29uc3QgSW50UmVjdCYg
c2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQordm9pZCBXaWRnZXRCYWNr
aW5nU3RvcmU6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXpl
JiBzY3JvbGxPZmZzZXQpCiB7CiAgICAgSW50UmVjdCB0YXJnZXRSZWN0KHNjcm9sbFJlY3QpOwog
ICAgIHRhcmdldFJlY3QubW92ZShzY3JvbGxPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZVgxMS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlWDExLmNwcAppbmRleCAx
YTY4MjkxLi42NWIzYTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R3RrV2lkZ2V0QmFja2luZ1N0b3JlWDExLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlWDExLmNwcApAQCAtMTcsNyArMTcsNyBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHdGtXaWRnZXRCYWNraW5nU3RvcmUu
aCIKKyNpbmNsdWRlICJXaWRnZXRCYWNraW5nU3RvcmUuaCIKIAogI2lmZGVmIFhQX1VOSVgKIApA
QCAtMjcsMTIgKzI3LDExIEBACiAjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8teGxpYi5oPgogI2luY2x1
ZGUgPGNhaXJvL2NhaXJvLmg+CiAjaW5jbHVkZSA8Z2RrL2dka3guaD4KLSNpbmNsdWRlIDxndGsv
Z3RrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR3RrV2lkZ2V0QmFja2luZ1N0
b3JlUHJpdmF0ZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR3RrV2lkZ2V0QmFja2luZ1N0
b3JlUHJpdmF0ZSk7CitjbGFzcyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKTsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIAogcHVibGljOgpAQCAtNDEsMTIgKzQwLDEyIEBAIHB1YmxpYzoK
ICAgICBHQyBtX2djOwogICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1fc3VyZmFjZTsKIAot
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU+IGNyZWF0
ZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICBzdGF0aWMgUGFz
c093blB0cjxXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBjcmVhdGUoR3RrV2lkZ2V0KiB3aWRn
ZXQsIGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUod2lkZ2V0LCBzaXplKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSh3aWRnZXQsIHNp
emUpKTsKICAgICB9CiAKLSAgICB+R3RrV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSgpCisgICAg
fldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUoKQogICAgIHsKICAgICAgICAgWEZyZWVQaXhtYXAo
bV9kaXNwbGF5LCBtX3BpeG1hcCk7CiAgICAgICAgIFhGcmVlR0MobV9kaXNwbGF5LCBtX2djKTsK
QEAgLTU2LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICAvLyBXZSBrZWVwIHR3byBjb3BpZXMgb2Yg
dGhlIHN1cmZhY2UgaGVyZSwgd2hpY2ggd2lsbCBkb3VibGUgdGhlIG1lbW9yeSB1c2FnZSwgYnV0
IGluY3JlYXNlCiAgICAgLy8gc2Nyb2xsaW5nIHBlcmZvcm1hbmNlIHNpbmNlIHdlIGRvIG5vdCBo
YXZlIHRvIGtlZXAgcmVhbGxvY2F0aW5nIGEgbWVtb3J5IHJlZ2lvbiBkdXJpbmcKICAgICAvLyBx
dWljayBzY3JvbGxpbmcgcmVxdWVzdHMuCi0gICAgR3RrV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0
ZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICBXaWRnZXRCYWNr
aW5nU3RvcmVQcml2YXRlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQog
ICAgIHsKICAgICAgICAgR2RrVmlzdWFsKiB2aXN1YWwgPSBndGtfd2lkZ2V0X2dldF92aXN1YWwo
d2lkZ2V0KTsKICAgICAgICAgR2RrU2NyZWVuKiBzY3JlZW4gPSBnZGtfdmlzdWFsX2dldF9zY3Jl
ZW4odmlzdWFsKTsKQEAgLTczLDI2ICs3MiwyNiBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLVBh
c3NPd25QdHI8R3RrV2lkZ2V0QmFja2luZ1N0b3JlPiBHdGtXaWRnZXRCYWNraW5nU3RvcmU6OmNy
ZWF0ZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK1Bhc3NPd25QdHI8
V2lkZ2V0QmFja2luZ1N0b3JlPiBXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShHdGtXaWRnZXQq
IHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3
IEd0a1dpZGdldEJhY2tpbmdTdG9yZSh3aWRnZXQsIHNpemUpKTsKKyAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFdpZGdldEJhY2tpbmdTdG9yZSh3aWRnZXQsIHNpemUpKTsKIH0KIAotR3RrV2lkZ2V0
QmFja2luZ1N0b3JlOjpHdGtXaWRnZXRCYWNraW5nU3RvcmUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNv
bnN0IEludFNpemUmIHNpemUpCi0gICAgOiBtX3ByaXZhdGUoR3RrV2lkZ2V0QmFja2luZ1N0b3Jl
UHJpdmF0ZTo6Y3JlYXRlKHdpZGdldCwgc2l6ZSkpCitXaWRnZXRCYWNraW5nU3RvcmU6OldpZGdl
dEJhY2tpbmdTdG9yZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAg
ICA6IG1fcHJpdmF0ZShXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUod2lkZ2V0LCBz
aXplKSkKIHsKIH0KIAotR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjp+R3RrV2lkZ2V0QmFja2luZ1N0
b3JlKCkKK1dpZGdldEJhY2tpbmdTdG9yZTo6fldpZGdldEJhY2tpbmdTdG9yZSgpCiB7CiB9CiAK
LWNhaXJvX3N1cmZhY2VfdCogR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjpjYWlyb1N1cmZhY2UoKQor
Y2Fpcm9fc3VyZmFjZV90KiBXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJvU3VyZmFjZSgpCiB7CiAg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9zdXJmYWNlLmdldCgpOwogfQogCi12b2lkIEd0a1dpZGdl
dEJhY2tpbmdTdG9yZTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IElu
dFNpemUmIHNjcm9sbE9mZnNldCkKK3ZvaWQgV2lkZ2V0QmFja2luZ1N0b3JlOjpzY3JvbGwoY29u
c3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQogewog
ICAgIEludFJlY3QgdGFyZ2V0UmVjdChzY3JvbGxSZWN0KTsKICAgICB0YXJnZXRSZWN0Lm1vdmUo
c2Nyb2xsT2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4OTQyNjFlLi42MDkzOTA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYtMTcgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENoYW5nZSBHdGtXaWRnZXRCYWNraW5nU3RvcmUuaCB0byBXaWRnZXRCYWNraW5nU3RvcmUu
aCBpbiBvcmRlciB0byB1c2UgaW4gdGhlIEVGTCBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4NDgKKworICAgICAgICBDaGFuZ2UgR3RrV2lk
Z2V0QmFja2luZ1N0b3JlIHRvIFdpZGdldEJhY2tpbmdTdG9yZSBpbiB0aGUgQmFja2luZ1N0b3Jl
LmggYW5kCisgICAgICAgIGd0ay9CYWNraW5nU3RvcmVHdGsuY3BwLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0JhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvQmFja2luZ1N0
b3JlR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmFja2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVw
ZGF0ZSk6CisKIDIwMTEtMDYtMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeCBXZWJLaXQyIEdUSyBidWlsZCBhZnRl
ciByODkwNjAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQmFja2luZ1N0
b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQmFja2luZ1N0b3JlLmgKaW5kZXggNWE2
NTNmYy4uMWIyOGZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0JhY2tp
bmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9CYWNraW5nU3RvcmUuaApA
QCAtNDMsNyArNDMsNyBAQAogCiAjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFJlZlB0ckNh
aXJvLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9HdGtXaWRnZXRCYWNraW5nU3RvcmUuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1dpZGdldEJhY2tpbmdTdG9yZS5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKICNlbGlmIFBMQVRGT1JNKFFUKQog
ICAgIFFQaXhtYXAgbV9waXhtYXA7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgT3duUHRyPFdl
YkNvcmU6Okd0a1dpZGdldEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CisgICAgT3duUHRy
PFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAjZW5kaWYKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvQmFja2luZ1N0b3Jl
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvQmFja2luZ1N0b3JlR3RrLmNw
cAppbmRleCBjYjM4ZGNlLi5mMjMzOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZ3RrL0JhY2tpbmdTdG9yZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2d0ay9CYWNraW5nU3RvcmVHdGsuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgQmFja2lu
Z1N0b3JlOjpwYWludChjYWlyb190KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogdm9p
ZCBCYWNraW5nU3RvcmU6OmluY29ycG9yYXRlVXBkYXRlKFNoYXJlYWJsZUJpdG1hcCogYml0bWFw
LCBjb25zdCBVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQogewogICAgIGlmICghbV9iYWNraW5nU3Rv
cmUpCi0gICAgICAgIG1fYmFja2luZ1N0b3JlID0gR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjpjcmVh
dGUobV93ZWJQYWdlUHJveHktPnZpZXdXaWRnZXQoKSwgc2l6ZSgpKTsKKyAgICAgICAgbV9iYWNr
aW5nU3RvcmUgPSBXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShtX3dlYlBhZ2VQcm94eS0+dmll
d1dpZGdldCgpLCBzaXplKCkpOwogCiAgICAgc2Nyb2xsKHVwZGF0ZUluZm8uc2Nyb2xsUmVjdCwg
dXBkYXRlSW5mby5zY3JvbGxPZmZzZXQpOwogCg==
</data>
<flag name="review"
          id="92054"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
    <flag name="commit-queue"
          id="92055"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98125</attachid>
            <date>2011-06-21 23:57:57 -0700</date>
            <delta_ts>2011-06-22 09:57:20 -0700</delta_ts>
            <desc>patch for Martin&apos;s comments</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>18121</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NmJlMmM3Li45Y2UwYWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTEtMDYtMjIgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KKworICAgICAgICBDaGFuZ2UgR3Rr
V2lkZ2V0QmFja2luZ1N0b3JlLmggdG8gV2lkZ2V0QmFja2luZ1N0b3JlLmggaW4gb3JkZXIgdG8g
dXNlIGluIHRoZSBFRkwgcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYyODQ4CisKKyAgICAgICAgVGhpcyBwYXRjaCB3aWxsIG1ha2UgR3RrV2lk
Z2V0QmFja2luZ1N0b3JlIHNoYXJlYWJsZSB3aXRoIEVGTCBwb3J0LgorICAgICAgICBJdCBpcyBh
IHByZXBhcmF0aW9uIHRvIGludGVncmF0ZSBXZWJLaXQyJ3MgQmFja2luZ1N0b3JlR3RrLmNwcCBh
bmQKKyAgICAgICAgQmFja2luZ1N0b3JlRWZsLmNwcCBhcyBhIEJhY2tpbmdTdG9yZUNhaXJvLmNw
cC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29weVJlY3RGcm9tT25lU3VyZmFjZVRvQW5vdGhlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVTdXJmYWNlRm9yQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6V2lkZ2V0QmFja2luZ1N0b3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6fldpZGdldEJhY2tpbmdTdG9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJvU3VyZmFjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6OnNjcm9sbCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZVgxMS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6fldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6V2lkZ2V0QmFj
a2luZ1N0b3JlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6OldpZGdldEJh
Y2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6On5XaWRn
ZXRCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjpj
YWlyb1N1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjpzY3Jv
bGwpOgorCiAyMDExLTA2LTIxICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IGFiY2VlMTYuLjk2OGQ3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC05NCw2ICs5NCw3
IEBAIHdlYmNvcmVndGtfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvZ3RrIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Z3RrIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ayBcCisJLUkkKHNyY2Rp
cikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ayBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCAzYzA4NGEwLi5lZDY2YjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTM4MjMsNiArMzgyMyw3IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9w
YWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9G
cmFtZUd0ay5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tp
bmdTdG9yZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HT3duUHRyR1N0cmVhbWVyLmNwcCBc
CkBAIC0zODY4LDcgKzM4NjksNiBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtDbGlja0NvdW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9HdGtVdGlsaXRpZXMuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dp
ZGdldEJhY2tpbmdTdG9yZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lk
Z2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R3RrV2lkZ2V0QmFja2luZ1N0b3JlWDExLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi43MGQxYzkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmgKQEAgLTAsMCArMSw1OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSwgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKyNpZm5kZWYgV2lkZ2V0QmFja2luZ1N0b3JlX2gKKyNkZWZpbmUgV2lkZ2V0
QmFja2luZ1N0b3JlX2gKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJJbnRTaXpl
LmgiCisjaW5jbHVkZSA8d3RmL0Zhc3RBbGxvY0Jhc2UuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCisjaWYgUExBVEZPUk0oR1RL
KQorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU7CisKKyNpZiBQTEFURk9STShHVEspCit0
eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1XaWRnZXQ7CisjZW5kaWYKKworY2xhc3MgV2lkZ2V0
QmFja2luZ1N0b3JlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXaWRnZXRCYWNraW5nU3Rv
cmUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworCitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlPiBjcmVhdGUoUGxhdGZvcm1XaWRnZXQsIGNv
bnN0IEludFNpemUmKTsKKworICAgIH5XaWRnZXRCYWNraW5nU3RvcmUoKTsKKyAgICBjYWlyb19z
dXJmYWNlX3QqIGNhaXJvU3VyZmFjZSgpOworICAgIHZvaWQgc2Nyb2xsKGNvbnN0IEludFJlY3Qm
IHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCk7CisKK3ByaXZhdGU6Cisg
ICAgV2lkZ2V0QmFja2luZ1N0b3JlKFBsYXRmb3JtV2lkZ2V0LCBjb25zdCBJbnRTaXplJik7CisK
KyAgICBPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZT4gbV9wcml2YXRlOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2lkZ2V0QmFja2luZ1N0b3JlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJv
VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Nh
aXJvVXRpbGl0aWVzLmNwcAppbmRleCAzYjQ4ZmUyLi5iNGFkYjZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMu
Y3BwCkBAIC0xNzIsNCArMTcyLDEyIEBAIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBjb3B5
Q2Fpcm9JbWFnZVN1cmZhY2UoY2Fpcm9fc3VyZmFjZV90KiBvcmlnaW5hbFN1cmZhCiAgICAgcmV0
dXJuIG5ld1N1cmZhY2UucmVsZWFzZSgpOwogfQogCit2b2lkIGNvcHlSZWN0RnJvbU9uZVN1cmZh
Y2VUb0Fub3RoZXIoY2Fpcm9fc3VyZmFjZV90KiBmcm9tLCBjYWlyb19zdXJmYWNlX3QqIHRvLCBj
b25zdCBJbnRTaXplJiBvZmZzZXQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgUmVmUHRy
PGNhaXJvX3Q+IGNvbnRleHQgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUodG8pKTsKKyAgICBjYWly
b19zZXRfc291cmNlX3N1cmZhY2UoY29udGV4dC5nZXQoKSwgZnJvbSwgb2Zmc2V0LndpZHRoKCks
IG9mZnNldC5oZWlnaHQoKSk7CisgICAgY2Fpcm9fcmVjdGFuZ2xlKGNvbnRleHQuZ2V0KCksIHJl
Y3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKKyAgICBjYWly
b19maWxsKGNvbnRleHQuZ2V0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxp
dGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGls
aXRpZXMuaAppbmRleCA2OGY3MTY2Li4yMTEwMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmgKQEAgLTM1LDYg
KzM1LDcgQEAgY2xhc3MgQ29sb3I7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBGbG9hdFBvaW50
OwogY2xhc3MgSW50U2l6ZTsKK2NsYXNzIEludFJlY3Q7CiBjbGFzcyBQYXRoOwogCiB2b2lkIGNv
cHlDb250ZXh0UHJvcGVydGllcyhjYWlyb190KiBzcmNDciwgY2Fpcm9fdCogZHN0Q3IpOwpAQCAt
NDYsNiArNDcsNyBAQCBjYWlyb19vcGVyYXRvcl90IHRvQ2Fpcm9PcGVyYXRvcihDb21wb3NpdGVP
cGVyYXRvciBvcCk7CiB2b2lkIGRyYXdQYXR0ZXJuVG9DYWlyb0NvbnRleHQoY2Fpcm9fdCogY3Is
IGNhaXJvX3N1cmZhY2VfdCogaW1hZ2UsIGNvbnN0IEludFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiB0aWxlUmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjYWlyb19vcGVyYXRvcl90IG9wLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKIFBh
c3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBjb3B5Q2Fpcm9JbWFnZVN1cmZhY2UoY2Fpcm9fc3Vy
ZmFjZV90Kik7Cit2b2lkIGNvcHlSZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIoY2Fpcm9fc3Vy
ZmFjZV90KiBmcm9tLCBjYWlyb19zdXJmYWNlX3QqIHRvLCBjb25zdCBJbnRTaXplJiwgY29uc3Qg
SW50UmVjdCYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmUuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMTA0ZDY2MC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1
MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExLCBJZ2FsaWEgUy5MLgotICoKLSAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2lmbmRlZiBHdGtXaWRnZXRCYWNraW5nU3RvcmVf
aCAKLSNkZWZpbmUgR3RrV2lkZ2V0QmFja2luZ1N0b3JlX2ggCi0KLSNpbmNsdWRlICJJbnRSZWN0
LmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+
Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBHdGtXaWRnZXRCYWNraW5nU3RvcmVQ
cml2YXRlOwotCi1jbGFzcyBHdGtXaWRnZXRCYWNraW5nU3RvcmUgewotICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEd0a1dpZGdldEJhY2tpbmdTdG9yZSk7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7Ci0KLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxHdGtXaWRnZXRCYWNraW5n
U3RvcmU+IGNyZWF0ZShHdGtXaWRnZXQqLCBjb25zdCBJbnRTaXplJik7Ci0KLSAgICB+R3RrV2lk
Z2V0QmFja2luZ1N0b3JlKCk7Ci0gICAgY2Fpcm9fc3VyZmFjZV90KiBjYWlyb1N1cmZhY2UoKTsK
LSAgICB2b2lkIHNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXpl
JiBzY3JvbGxPZmZzZXQpOwotCi1wcml2YXRlOgotICAgIEd0a1dpZGdldEJhY2tpbmdTdG9yZShH
dGtXaWRnZXQqLCBjb25zdCBJbnRTaXplJik7Ci0KLSAgICBPd25QdHI8R3RrV2lkZ2V0QmFja2lu
Z1N0b3JlUHJpdmF0ZT4gbV9wcml2YXRlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gQmFja2luZ1N0b3JlX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAKaW5kZXggOWE5
NjU5Ny4uNjY3NTVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0
a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCkBAIC0xNywxMyArMTcsMTMgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR3RrV2lkZ2V0QmFja2luZ1N0
b3JlLmgiCisjaW5jbHVkZSAiV2lkZ2V0QmFja2luZ1N0b3JlLmgiCiAKICNpZm5kZWYgWFBfVU5J
WAogCisjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5o
IgogI2luY2x1ZGUgPGNhaXJvL2NhaXJvLmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1LDU3ICszNSw1MCBAQCBzdGF0aWMgUGFzc1JlZlB0cjxj
YWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3RvcmUoR3RrV2lkZ2V0KiB3
aWRnZQogfQogCiAKLWNsYXNzIEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUpOyBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK2NsYXNzIFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUgeworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUpOworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogCiBwdWJsaWM6CiAgICAgUmVmUHRyPGNhaXJvX3N1cmZh
Y2VfdD4gbV9zdXJmYWNlOwogICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1fc2Nyb2xsU3Vy
ZmFjZTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZh
dGU+IGNyZWF0ZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICBz
dGF0aWMgUGFzc093blB0cjxXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBjcmVhdGUoR3RrV2lk
Z2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUod2lkZ2V0LCBzaXplKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSh3
aWRnZXQsIHNpemUpKTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgLy8gV2Uga2VlcCB0d28gY29w
aWVzIG9mIHRoZSBzdXJmYWNlIGhlcmUsIHdoaWNoIHdpbGwgZG91YmxlIHRoZSBtZW1vcnkgdXNh
Z2UsIGJ1dCBpbmNyZWFzZQogICAgIC8vIHNjcm9sbGluZyBwZXJmb3JtYW5jZSBzaW5jZSB3ZSBk
byBub3QgaGF2ZSB0byBrZWVwIHJlYWxsb2NhdGluZyBhIG1lbW9yeSByZWdpb24gZHVyaW5nCiAg
ICAgLy8gcXVpY2sgc2Nyb2xsaW5nIHJlcXVlc3RzLgotICAgIEd0a1dpZGdldEJhY2tpbmdTdG9y
ZVByaXZhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgV2lk
Z2V0QmFja2luZ1N0b3JlUHJpdmF0ZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYg
c2l6ZSkKICAgICAgICAgOiBtX3N1cmZhY2UoY3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZSh3
aWRnZXQsIHNpemUpKQogICAgICAgICAsIG1fc2Nyb2xsU3VyZmFjZShjcmVhdGVTdXJmYWNlRm9y
QmFja2luZ1N0b3JlKHdpZGdldCwgc2l6ZSkpCiAgICAgewogICAgIH0KIH07CiAKLVBhc3NPd25Q
dHI8R3RrV2lkZ2V0QmFja2luZ1N0b3JlPiBHdGtXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShH
dGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK1Bhc3NPd25QdHI8V2lkZ2V0
QmFja2luZ1N0b3JlPiBXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShHdGtXaWRnZXQqIHdpZGdl
dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEd0a1dp
ZGdldEJhY2tpbmdTdG9yZSh3aWRnZXQsIHNpemUpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3
IFdpZGdldEJhY2tpbmdTdG9yZSh3aWRnZXQsIHNpemUpKTsKIH0KIAotR3RrV2lkZ2V0QmFja2lu
Z1N0b3JlOjpHdGtXaWRnZXRCYWNraW5nU3RvcmUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IElu
dFNpemUmIHNpemUpCi0gICAgOiBtX3ByaXZhdGUoR3RrV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0
ZTo6Y3JlYXRlKHdpZGdldCwgc2l6ZSkpCitXaWRnZXRCYWNraW5nU3RvcmU6OldpZGdldEJhY2tp
bmdTdG9yZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICA6IG1f
cHJpdmF0ZShXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUod2lkZ2V0LCBzaXplKSkK
IHsKIH0KIAotR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjp+R3RrV2lkZ2V0QmFja2luZ1N0b3JlKCkK
K1dpZGdldEJhY2tpbmdTdG9yZTo6fldpZGdldEJhY2tpbmdTdG9yZSgpCiB7CiB9CiAKLWNhaXJv
X3N1cmZhY2VfdCogR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjpjYWlyb1N1cmZhY2UoKQorY2Fpcm9f
c3VyZmFjZV90KiBXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJvU3VyZmFjZSgpCiB7CiAgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+bV9zdXJmYWNlLmdldCgpOwogfQogCi1zdGF0aWMgdm9pZCBjb3B5UmVj
dEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKGNhaXJvX3N1cmZhY2VfdCogZnJvbSwgY2Fpcm9fc3Vy
ZmFjZV90KiB0bywgY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBjb25zdCBJbnRSZWN0JiByZWN0KQot
ewotICAgIFJlZlB0cjxjYWlyb190PiBjb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKHRv
KSk7Ci0gICAgY2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlKGNvbnRleHQuZ2V0KCksIGZyb20sIG9m
ZnNldC53aWR0aCgpLCBvZmZzZXQuaGVpZ2h0KCkpOwotICAgIGNhaXJvX3JlY3RhbmdsZShjb250
ZXh0LmdldCgpLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQo
KSk7Ci0gICAgY2Fpcm9fZmlsbChjb250ZXh0LmdldCgpKTsKLX0KLQotdm9pZCBHdGtXaWRnZXRC
YWNraW5nU3RvcmU6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRT
aXplJiBzY3JvbGxPZmZzZXQpCit2b2lkIFdpZGdldEJhY2tpbmdTdG9yZTo6c2Nyb2xsKGNvbnN0
IEludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCkKIHsKICAg
ICBJbnRSZWN0IHRhcmdldFJlY3Qoc2Nyb2xsUmVjdCk7CiAgICAgdGFyZ2V0UmVjdC5tb3ZlKHNj
cm9sbE9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3Rr
V2lkZ2V0QmFja2luZ1N0b3JlWDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9H
dGtXaWRnZXRCYWNraW5nU3RvcmVYMTEuY3BwCmluZGV4IDFhNjgyOTEuLjY1YjNhNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVY
MTEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5n
U3RvcmVYMTEuY3BwCkBAIC0xNyw3ICsxNyw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkd0a1dpZGdldEJhY2tpbmdTdG9yZS5oIgorI2luY2x1ZGUgIldpZGdldEJh
Y2tpbmdTdG9yZS5oIgogCiAjaWZkZWYgWFBfVU5JWAogCkBAIC0yNywxMiArMjcsMTEgQEAKICNp
bmNsdWRlIDxjYWlyby9jYWlyby14bGliLmg+CiAjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KICNp
bmNsdWRlIDxnZGsvZ2RreC5oPgotI2luY2x1ZGUgPGd0ay9ndGsuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKLSAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKTsKK2NsYXNzIFdp
ZGdldEJhY2tpbmdTdG9yZVByaXZhdGUgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdpZGdl
dEJhY2tpbmdTdG9yZVByaXZhdGUpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogCiBw
dWJsaWM6CkBAIC00MSwxMiArNDAsMTIgQEAgcHVibGljOgogICAgIEdDIG1fZ2M7CiAgICAgUmVm
UHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNlOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8
R3RrV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZT4gY3JlYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBj
b25zdCBJbnRTaXplJiBzaXplKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFdpZGdldEJhY2tpbmdT
dG9yZVByaXZhdGU+IGNyZWF0ZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgR3RrV2lkZ2V0QmFja2luZ1N0
b3JlUHJpdmF0ZSh3aWRnZXQsIHNpemUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBX
aWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKHdpZGdldCwgc2l6ZSkpOwogICAgIH0KIAotICAgIH5H
dGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKCkKKyAgICB+V2lkZ2V0QmFja2luZ1N0b3JlUHJp
dmF0ZSgpCiAgICAgewogICAgICAgICBYRnJlZVBpeG1hcChtX2Rpc3BsYXksIG1fcGl4bWFwKTsK
ICAgICAgICAgWEZyZWVHQyhtX2Rpc3BsYXksIG1fZ2MpOwpAQCAtNTYsNyArNTUsNyBAQCBwcml2
YXRlOgogICAgIC8vIFdlIGtlZXAgdHdvIGNvcGllcyBvZiB0aGUgc3VyZmFjZSBoZXJlLCB3aGlj
aCB3aWxsIGRvdWJsZSB0aGUgbWVtb3J5IHVzYWdlLCBidXQgaW5jcmVhc2UKICAgICAvLyBzY3Jv
bGxpbmcgcGVyZm9ybWFuY2Ugc2luY2Ugd2UgZG8gbm90IGhhdmUgdG8ga2VlcCByZWFsbG9jYXRp
bmcgYSBtZW1vcnkgcmVnaW9uIGR1cmluZwogICAgIC8vIHF1aWNrIHNjcm9sbGluZyByZXF1ZXN0
cy4KLSAgICBHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKEd0a1dpZGdldCogd2lkZ2V0LCBj
b25zdCBJbnRTaXplJiBzaXplKQorICAgIFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUoR3RrV2lk
Z2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgewogICAgICAgICBHZGtWaXN1
YWwqIHZpc3VhbCA9IGd0a193aWRnZXRfZ2V0X3Zpc3VhbCh3aWRnZXQpOwogICAgICAgICBHZGtT
Y3JlZW4qIHNjcmVlbiA9IGdka192aXN1YWxfZ2V0X3NjcmVlbih2aXN1YWwpOwpAQCAtNzMsMjYg
KzcyLDI2IEBAIHByaXZhdGU6CiAgICAgfQogfTsKIAotUGFzc093blB0cjxHdGtXaWRnZXRCYWNr
aW5nU3RvcmU+IEd0a1dpZGdldEJhY2tpbmdTdG9yZTo6Y3JlYXRlKEd0a1dpZGdldCogd2lkZ2V0
LCBjb25zdCBJbnRTaXplJiBzaXplKQorUGFzc093blB0cjxXaWRnZXRCYWNraW5nU3RvcmU+IFdp
ZGdldEJhY2tpbmdTdG9yZTo6Y3JlYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXpl
JiBzaXplKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgR3RrV2lkZ2V0QmFja2luZ1N0b3Jl
KHdpZGdldCwgc2l6ZSkpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lkZ2V0QmFja2luZ1N0
b3JlKHdpZGdldCwgc2l6ZSkpOwogfQogCi1HdGtXaWRnZXRCYWNraW5nU3RvcmU6Okd0a1dpZGdl
dEJhY2tpbmdTdG9yZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLSAg
ICA6IG1fcHJpdmF0ZShHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUod2lkZ2V0
LCBzaXplKSkKK1dpZGdldEJhY2tpbmdTdG9yZTo6V2lkZ2V0QmFja2luZ1N0b3JlKEd0a1dpZGdl
dCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIDogbV9wcml2YXRlKFdpZGdldEJh
Y2tpbmdTdG9yZVByaXZhdGU6OmNyZWF0ZSh3aWRnZXQsIHNpemUpKQogewogfQogCi1HdGtXaWRn
ZXRCYWNraW5nU3RvcmU6On5HdGtXaWRnZXRCYWNraW5nU3RvcmUoKQorV2lkZ2V0QmFja2luZ1N0
b3JlOjp+V2lkZ2V0QmFja2luZ1N0b3JlKCkKIHsKIH0KIAotY2Fpcm9fc3VyZmFjZV90KiBHdGtX
aWRnZXRCYWNraW5nU3RvcmU6OmNhaXJvU3VyZmFjZSgpCitjYWlyb19zdXJmYWNlX3QqIFdpZGdl
dEJhY2tpbmdTdG9yZTo6Y2Fpcm9TdXJmYWNlKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5t
X3N1cmZhY2UuZ2V0KCk7CiB9CiAKLXZvaWQgR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjpzY3JvbGwo
Y29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQor
dm9pZCBXaWRnZXRCYWNraW5nU3RvcmU6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0
LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpCiB7CiAgICAgSW50UmVjdCB0YXJnZXRSZWN0
KHNjcm9sbFJlY3QpOwogICAgIHRhcmdldFJlY3QubW92ZShzY3JvbGxPZmZzZXQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDA0ZmZlOTEuLjliYTgxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
MS0wNi0yMiAgRXVubWkgTGVlICA8ZXVubWkxNS5sZWVAc2Ftc3VuZy5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgorCisgICAgICAgIENoYW5nZSBHdGtXaWRnZXRC
YWNraW5nU3RvcmUuaCB0byBXaWRnZXRCYWNraW5nU3RvcmUuaCBpbiBvcmRlciB0byB1c2UgaW4g
dGhlIEVGTCBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjI4NDgKKworICAgICAgICBDaGFuZ2UgR3RrV2lkZ2V0QmFja2luZ1N0b3JlIHRvIFdp
ZGdldEJhY2tpbmdTdG9yZSBpbiB0aGUgQmFja2luZ1N0b3JlLmggYW5kCisgICAgICAgIGd0ay9C
YWNraW5nU3RvcmVHdGsuY3BwLgorCisgICAgICAgICogVUlQcm9jZXNzL0JhY2tpbmdTdG9yZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvQmFja2luZ1N0b3JlR3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6QmFja2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVwZGF0ZSk6CisKIDIwMTEtMDYtMjEg
IE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjg5NDAxIGFuZCByODk0MDMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QmFja2luZ1N0b3JlLmgKaW5kZXggNWE2NTNmYy4uMWIyOGZmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0JhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9CYWNraW5nU3RvcmUuaApAQCAtNDMsNyArNDMsNyBAQAogCiAjaWYgUExBVEZPUk0o
R1RLKQogI2luY2x1ZGUgPFJlZlB0ckNhaXJvLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9HdGtXaWRn
ZXRCYWNraW5nU3RvcmUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dpZGdldEJhY2tpbmdTdG9yZS5o
PgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0
ZToKICNlbGlmIFBMQVRGT1JNKFFUKQogICAgIFFQaXhtYXAgbV9waXhtYXA7CiAjZWxpZiBQTEFU
Rk9STShHVEspCi0gICAgT3duUHRyPFdlYkNvcmU6Okd0a1dpZGdldEJhY2tpbmdTdG9yZT4gbV9i
YWNraW5nU3RvcmU7CisgICAgT3duUHRyPFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZT4gbV9i
YWNraW5nU3RvcmU7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvQmFja2luZ1N0b3JlR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9ndGsvQmFja2luZ1N0b3JlR3RrLmNwcAppbmRleCBjYjM4ZGNlLi5mMjMzOTg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0JhY2tpbmdTdG9yZUd0ay5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9CYWNraW5nU3RvcmVHdGsuY3BwCkBAIC01
MSw3ICs1MSw3IEBAIHZvaWQgQmFja2luZ1N0b3JlOjpwYWludChjYWlyb190KiBjb250ZXh0LCBj
b25zdCBJbnRSZWN0JiByZWN0KQogdm9pZCBCYWNraW5nU3RvcmU6OmluY29ycG9yYXRlVXBkYXRl
KFNoYXJlYWJsZUJpdG1hcCogYml0bWFwLCBjb25zdCBVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQog
ewogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIG1fYmFja2luZ1N0b3JlID0gR3Rr
V2lkZ2V0QmFja2luZ1N0b3JlOjpjcmVhdGUobV93ZWJQYWdlUHJveHktPnZpZXdXaWRnZXQoKSwg
c2l6ZSgpKTsKKyAgICAgICAgbV9iYWNraW5nU3RvcmUgPSBXaWRnZXRCYWNraW5nU3RvcmU6OmNy
ZWF0ZShtX3dlYlBhZ2VQcm94eS0+dmlld1dpZGdldCgpLCBzaXplKCkpOwogCiAgICAgc2Nyb2xs
KHVwZGF0ZUluZm8uc2Nyb2xsUmVjdCwgdXBkYXRlSW5mby5zY3JvbGxPZmZzZXQpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>