<?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>38438</bug_id>
          
          <creation_ts>2010-05-02 09:12:30 -0700</creation_ts>
          <short_desc>[Qt] Platform plugin</short_desc>
          <delta_ts>2010-06-14 08:40:08 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Luiz Agostini">luiz</reporter>
          <assigned_to name="Luiz Agostini">luiz</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>tasuku.suzuki</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>219869</commentid>
    <comment_count>0</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-02 09:12:30 -0700</bug_when>
    <thetext>Select input method private API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219877</commentid>
    <comment_count>1</comment_count>
      <attachid>54885</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-02 10:06:41 -0700</bug_when>
    <thetext>Created attachment 54885
patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219878</commentid>
    <comment_count>2</comment_count>
      <attachid>54886</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-02 10:10:25 -0700</bug_when>
    <thetext>Created attachment 54886
usage example</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219879</commentid>
    <comment_count>3</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-02 10:17:54 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=54886) [details]
&gt; usage example

This example is essentially what we have done for maemo. Just build it and it will create a plugin and put it in Qt plugins directory. The plugin will than be automatically used by QtWebKit.

This plugin will replace all select popups by QDialogs. To use the plugin for &lt;select multiple&gt; elements include the following line to WebCore.pro and make a clean build of QtWebKit.

DEFINES += ENABLE_NO_LISTBOX_RENDERING=1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219888</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-05-02 13:34:35 -0700</bug_when>
    <thetext>I&apos;d like to avoid using the term input method for this work, as it is generally used for text input methods (across toolkits and platforms). I am on the other hand quite fond of the term platform plugin :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219890</commentid>
    <comment_count>5</comment_count>
      <attachid>54885</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-05-02 13:48:37 -0700</bug_when>
    <thetext>Comment on attachment 54885
patch 1


WebCore/ChangeLog:5
 +          [Qt] Select input method plugin
Like I wrote in the earlier comment, I suggest to use platform plugin in the title.

WebKit/qt/Api/qwebkitplatformplugininterface.h:25
 +   *  Warning: The contents of this file is not  part of the public Qt API
&quot;part of the public Qt API&quot; -&gt; &quot;QtWebKit API&quot; :)

WebKit/qt/Api/qwebkitplatformplugininterface.h:33
 +  public:
Please add a virtual inline destructor here, to avoid annoying gcc compiler warnings.

WebKit/qt/Api/qwebkitplatformplugininterface.h:62
 +      virtual bool handlesMultipleSelections() = 0;
I don&apos;t mind this for now, but in the long run I suggest to replace one boolean method per &quot;feature&quot; in the platform plugin with a &quot;supportsExtension&quot; pattern with an enum. See qwebpage.h.

WebKit/qt/Api/qwebkitplatformplugininterface.h:65
 +  Q_DECLARE_INTERFACE(QWebKitPlatformPluginInterface, &quot;com.nokia.Qt.WebKit.QWebKitPlatformPluginInterface/1.0&quot;);
Why duplicate WebKit in &quot;Qt.WebKit.QWebKitPlatformPlugin&quot; instead of simply &quot;Qt.WebKit.PlatformPlugin&quot; ? :)

WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp:35
 +      SelectData(QtAbstractWebPopup* data) : d(data) {}
I guess QWebSelectData and QAbstractWebPopup could be merged in the future?

WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp:119
 +          obj-&gt;deleteLater();
deleteLater() doesn&apos;t sound right to me. I think if the plugin doesn&apos;t fit we should delete it immediately. Any reason for the deleteLater()?

WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp:124
 +  static QWebKitPlatformPluginInterface* plugin()
There&apos;s a lot of nesting of helper functions here. Why not combine them all into one single method? It&apos;s just a few lines of code :)

WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp:126
 +      static QWebKitPlatformPluginInterface* result = getPluginInterface();
I don&apos;t like that the plugin object is never deleted. WebKit currently isn&apos;t really made for unloading and loading as a plugin, but on the other hand I think we should give the plugin a chance for destruction...

WebKit/qt/WebCoreSupport/QtPlatformPlugin.h:31
 +  class SelectInputMethodWrapper : public QObject, public QtAbstractWebPopup {
There&apos;s a lot of abstraction and wrapping here. Wouldn&apos;t it be simpler to have one interface towards WebCore only, the one that we export and also implement ourselves as fallback?


I&apos;m going to say r- Luiz, but mostly because I think this needs a few more cleanups. In general this looks like a very good start!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219911</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-02 14:45:10 -0700</bug_when>
    <thetext>I actually find it to be some kind of input handling, instead of purely UI, and you can implement a plugin without any UI whatsoever.

What about SelectMethod?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219912</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-02 14:47:08 -0700</bug_when>
    <thetext>
&gt; WebKit/qt/WebCoreSupport/QtPlatformPlugin.h:31
&gt;  +  class SelectInputMethodWrapper : public QObject, public QtAbstractWebPopup
&gt; {
&gt; There&apos;s a lot of abstraction and wrapping here. Wouldn&apos;t it be simpler to have
&gt; one interface towards WebCore only, the one that we export and also implement
&gt; ourselves as fallback?

How does that sit with layering?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220009</commentid>
    <comment_count>8</comment_count>
      <attachid>54903</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-02 21:10:35 -0700</bug_when>
    <thetext>Created attachment 54903
patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220010</commentid>
    <comment_count>9</comment_count>
      <attachid>54904</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-02 21:12:36 -0700</bug_when>
    <thetext>Created attachment 54904
usage example</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220018</commentid>
    <comment_count>10</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-02 21:48:18 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 54885 [details])
&gt; 
&gt; WebCore/ChangeLog:5
&gt;  +          [Qt] Select input method plugin
&gt; Like I wrote in the earlier comment, I suggest to use platform plugin in the
&gt; title.

done.

&gt; 
&gt; WebKit/qt/Api/qwebkitplatformplugininterface.h:25
&gt;  +   *  Warning: The contents of this file is not  part of the public Qt API
&gt; &quot;part of the public Qt API&quot; -&gt; &quot;QtWebKit API&quot; :)

done.

&gt; 
&gt; WebKit/qt/Api/qwebkitplatformplugininterface.h:33
&gt;  +  public:
&gt; Please add a virtual inline destructor here, to avoid annoying gcc compiler
&gt; warnings.

done.

&gt; 
&gt; WebKit/qt/Api/qwebkitplatformplugininterface.h:62
&gt;  +      virtual bool handlesMultipleSelections() = 0;
&gt; I don&apos;t mind this for now, but in the long run I suggest to replace one boolean
&gt; method per &quot;feature&quot; in the platform plugin with a &quot;supportsExtension&quot; pattern
&gt; with an enum. See qwebpage.h.

done. is that what you mean?

&gt; 
&gt; WebKit/qt/Api/qwebkitplatformplugininterface.h:65
&gt;  +  Q_DECLARE_INTERFACE(QWebKitPlatformPluginInterface,
&gt; &quot;com.nokia.Qt.WebKit.QWebKitPlatformPluginInterface/1.0&quot;);
&gt; Why duplicate WebKit in &quot;Qt.WebKit.QWebKitPlatformPlugin&quot; instead of simply
&gt; &quot;Qt.WebKit.PlatformPlugin&quot; ? :)

sure :). done.

&gt; 
&gt; WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp:35
&gt;  +      SelectData(QtAbstractWebPopup* data) : d(data) {}
&gt; I guess QWebSelectData and QAbstractWebPopup could be merged in the future?

I think that it could be a layering problem.

&gt; 
&gt; WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp:119
&gt;  +          obj-&gt;deleteLater();
&gt; deleteLater() doesn&apos;t sound right to me. I think if the plugin doesn&apos;t fit we
&gt; should delete it immediately. Any reason for the deleteLater()?

no good reason. changed.

&gt; 
&gt; WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp:124
&gt;  +  static QWebKitPlatformPluginInterface* plugin()
&gt; There&apos;s a lot of nesting of helper functions here. Why not combine them all
&gt; into one single method? It&apos;s just a few lines of code :)

done.

&gt; 
&gt; WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp:126
&gt;  +      static QWebKitPlatformPluginInterface* result = getPluginInterface();
&gt; I don&apos;t like that the plugin object is never deleted. WebKit currently isn&apos;t
&gt; really made for unloading and loading as a plugin, but on the other hand I
&gt; think we should give the plugin a chance for destruction...

done.

&gt; 
&gt; WebKit/qt/WebCoreSupport/QtPlatformPlugin.h:31
&gt;  +  class SelectInputMethodWrapper : public QObject, public QtAbstractWebPopup
&gt; {
&gt; There&apos;s a lot of abstraction and wrapping here. Wouldn&apos;t it be simpler to have
&gt; one interface towards WebCore only, the one that we export and also implement
&gt; ourselves as fallback?

Again I think that it could be a layreing problem. I came to this solution to avoid to use in WebKit/qt/API files that are implemented in WebCore/platform/qt.

&gt; 
&gt; 
&gt; I&apos;m going to say r- Luiz, but mostly because I think this needs a few more
&gt; cleanups. In general this looks like a very good start!

Good comments. Thanks. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220378</commentid>
    <comment_count>11</comment_count>
      <attachid>54977</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-03 17:09:49 -0700</bug_when>
    <thetext>Created attachment 54977
orbit usage example

This is a very simple plugin example using orbit. It does not handle multiple selections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220664</commentid>
    <comment_count>12</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-05-04 10:57:17 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=54977) [details]
&gt; orbit usage example
&gt; 
&gt; This is a very simple plugin example using orbit. It does not handle multiple
&gt; selections.

I did not look at the code very closely, but wanted to give some quick feedback:
1. The Popup class should inherit HbDialog or HbListDialog but not QDialog. 
2. Enabling the mutli-select list is a main use-case, I don&apos;t think it should be treated as an extension. IMO, The same API can be used for both single-select and multi-select. Just set a flag indicating if the dialog should allow multi-select or not.
3. Do we want to allow using control modifier for multi-select? The current proposal only allows shift modifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221165</commentid>
    <comment_count>13</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-05 10:11:05 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; Created an attachment (id=54977) [details] [details]
&gt; &gt; orbit usage example
&gt; &gt; 
&gt; &gt; This is a very simple plugin example using orbit. It does not handle multiple
&gt; &gt; selections.
&gt; 
&gt; I did not look at the code very closely, but wanted to give some quick
&gt; feedback:
&gt; 1. The Popup class should inherit HbDialog or HbListDialog but not QDialog. 
&gt; 2. Enabling the mutli-select list is a main use-case, I don&apos;t think it should
&gt; be treated as an extension. IMO, The same API can be used for both
&gt; single-select and multi-select. Just set a flag indicating if the dialog should
&gt; allow multi-select or not.
&gt; 3. Do we want to allow using control modifier for multi-select? The current
&gt; proposal only allows shift modifier.

The intention here is just to provide simple examples of plugins. The focus is in the plugin support by QtWebKit and not in the plugins examples themselves.  As I have never been using orbit it would be hard to me to provide more elaborated examples.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221301</commentid>
    <comment_count>14</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-05-05 15:23:13 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; The intention here is just to provide simple examples of plugins. The focus is
&gt; in the plugin support by QtWebKit and not in the plugins examples themselves. 
&gt; As I have never been using orbit it would be hard to me to provide more
&gt; elaborated examples.

Only the first comment is related to Orbit :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221311</commentid>
    <comment_count>15</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-05 15:42:36 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; Created an attachment (id=54977) [details] [details]
&gt; &gt; orbit usage example
&gt; &gt; 
&gt; &gt; This is a very simple plugin example using orbit. It does not handle multiple
&gt; &gt; selections.
&gt; 
&gt; I did not look at the code very closely, but wanted to give some quick
&gt; feedback:
&gt; 1. The Popup class should inherit HbDialog or HbListDialog but not QDialog.

I can&apos;t say much about orbit. :)

&gt; 2. Enabling the mutli-select list is a main use-case, I don&apos;t think it should
&gt; be treated as an extension. IMO, The same API can be used for both
&gt; single-select and multi-select. Just set a flag indicating if the dialog should
&gt; allow multi-select or not.

It is possible to provide multi-select lists. Actually the first usage example provides multi-select lists. The flag that indicates if the dialog should allow multi-select is QWebSelectData::multiple().

&gt; 3. Do we want to allow using control modifier for multi-select? The current
&gt; proposal only allows shift modifier.

control modifier is there in QWebSelectMethod:: selectItem(). it is named allowMultiplySelections. We came to this name on the review proccess of previous patches. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221312</commentid>
    <comment_count>16</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-05 15:43:51 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; The intention here is just to provide simple examples of plugins. The focus is
&gt; &gt; in the plugin support by QtWebKit and not in the plugins examples themselves. 
&gt; &gt; As I have never been using orbit it would be hard to me to provide more
&gt; &gt; elaborated examples.
&gt; 
&gt; Only the first comment is related to Orbit :-)

now I see. :-)
thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221322</commentid>
    <comment_count>17</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-05 15:56:50 -0700</bug_when>
    <thetext>One comment about QWebKitPlatformPlugin::supportsExtension() : 

This method is not used by QtWebKit at the moment. It was included in plugin&apos;s interface by Kenneth&apos;s suggestion to avoid changing the plugin version when the support for it is enabled in future.

Today, to use or not multi-select popus is a compile time decision. if ENABLE(NO_LISTBOX_RENDERING) is true  at compile time all &lt;select&gt; elements, multiple or not, will be rendered as combo boxes and will rely on the plugins to provide the popups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221617</commentid>
    <comment_count>18</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-05-06 05:04:57 -0700</bug_when>
    <thetext>I assume that &quot;selectItem&quot; is used both for selection and de-selection of items in a multi-select list?

One more Symbian specific comment is that we will need to rework the way plugins are loaded. Take a look at PluginDatabaseSymbian.cpp s an example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222386</commentid>
    <comment_count>19</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-07 08:20:28 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; I assume that &quot;selectItem&quot; is used both for selection and de-selection of items
&gt; in a multi-select list?

Yes, you are right.

&gt; 
&gt; One more Symbian specific comment is that we will need to rework the way
&gt; plugins are loaded. Take a look at PluginDatabaseSymbian.cpp s an example.

I am using QCoreApplication::libraryPaths() to look for the plugins. It should work in Symbian as well.

I probably did not understand your point. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222432</commentid>
    <comment_count>20</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-05-07 09:37:44 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; I probably did not understand your point. :)
The point was that QPluginLoader on Symbian needs some quirks in order to work properly :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222450</commentid>
    <comment_count>21</comment_count>
      <attachid>54903</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-05-07 10:02:07 -0700</bug_when>
    <thetext>Comment on attachment 54903
patch 2

WebKit/qt/Api/qwebkitplatformplugin.h:34
 +      ~QWebSelectData() {}
Please add the inline keyword before landing.

WebKit/qt/Api/qwebkitplatformplugin.h:51
 +      ~QWebSelectMethod() {}
Ditto :)

I think the patch looks good otherwise. My only other concern would be that this slows down the startup time. I think it would be better if the plugin was loaded on-demand. That can be done in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222515</commentid>
    <comment_count>22</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-07 11:52:49 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 54903 [details])
&gt; WebKit/qt/Api/qwebkitplatformplugin.h:34
&gt;  +      ~QWebSelectData() {}
&gt; Please add the inline keyword before landing.
&gt; 
&gt; WebKit/qt/Api/qwebkitplatformplugin.h:51
&gt;  +      ~QWebSelectMethod() {}
&gt; Ditto :)

Ok.

&gt; 
&gt; I think the patch looks good otherwise. My only other concern would be that
&gt; this slows down the startup time. I think it would be better if the plugin was
&gt; loaded on-demand. That can be done in a follow-up patch.

The plugin is loaded on-demand in this implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222555</commentid>
    <comment_count>23</comment_count>
      <attachid>55407</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-07 12:34:06 -0700</bug_when>
    <thetext>Created attachment 55407
patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222561</commentid>
    <comment_count>24</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-05-07 12:40:04 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; I probably did not understand your point. :)
&gt; The point was that QPluginLoader on Symbian needs some quirks in order to work
&gt; properly :-)

I see. Please let me know if you have problems loading plugins in Symbian.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222669</commentid>
    <comment_count>25</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-05-07 15:53:41 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; &gt; I think the patch looks good otherwise. My only other concern would be that
&gt; &gt; this slows down the startup time. I think it would be better if the plugin was
&gt; &gt; loaded on-demand. That can be done in a follow-up patch.
&gt; 
&gt; The plugin is loaded on-demand in this implementation.

You&apos;re right, I overlooked that. Great stuff, Luiz :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222917</commentid>
    <comment_count>26</comment_count>
      <attachid>55407</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-08 11:51:59 -0700</bug_when>
    <thetext>Comment on attachment 55407
patch 3

Clearing flags on attachment: 55407

Committed r59033: &lt;http://trac.webkit.org/changeset/59033&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222918</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-08 11:52:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228787</commentid>
    <comment_count>28</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-05-21 01:16:40 -0700</bug_when>
    <thetext>Is this really meant to go into the 2.0 release branch?

It seems like a new feature to me, and I thought the resulting work is scheduled for &gt;=2.1 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228861</commentid>
    <comment_count>29</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-05-21 05:00:09 -0700</bug_when>
    <thetext>According to the latest pla on record, this is no longer needed for 2.0 - removing dependency for 2.0 bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237841</commentid>
    <comment_count>30</comment_count>
    <who name="Tasuku Suzuki">tasuku.suzuki</who>
    <bug_when>2010-06-14 08:40:08 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; Is this really meant to go into the 2.0 release branch?
&gt; 
&gt; It seems like a new feature to me, and I thought the resulting work is scheduled for &gt;=2.1 ?

4baa866d2216e344e1134be1861902838609956b depends on patch 1. If this doesn&apos;t go into the 2.0 release branch, the commit should be updated.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54885</attachid>
            <date>2010-05-02 10:06:41 -0700</date>
            <delta_ts>2010-05-02 21:10:35 -0700</delta_ts>
            <desc>patch 1</desc>
            <filename>0001-Qt-Select-input-method-plugin.patch</filename>
            <type>text/plain</type>
            <size>16240</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA4MzNhOTI2ZThhMzEwNmIxNDZkNTBmMGVlNWI4Y2U3ZDM5OWRjNWZlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFN1biwgMiBNYXkgMjAxMCAxMzozMzowOCAtMDMwMApTdWJqZWN0OiBbUEFU
Q0hdIFtRdF0gU2VsZWN0IGlucHV0IG1ldGhvZCBwbHVnaW4KIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zODQzOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpT
ZWxlY3QgcG9wdXBzIGRlbGVnYXRlIHByaXZhdGUgQVBJLiBUbyBwcm92aWRlIHNlbGVjdCBwb3B1
cCBkZWxlZ2F0ZXMKYSBwbHVnaW4gdGhhdCBpbXBsZW1lbnRzIFFXZWJLaXRQbGF0Zm9ybVBsdWdp
bkludGVyZmFjZSBtdXN0IGJlIGZvdW5kCmluIFFDb3JlQXBwbGljYXRpb246OmxpYnJhcnlQYXRo
cy4KCldlYkNvcmU6CgoqIFdlYkNvcmUucHJvOgoKV2ViS2l0L3F0OgoKKiBBcGkvaGVhZGVycy5w
cmk6CiogQXBpL3F3ZWJraXRwbGF0Zm9ybXBsdWdpbmludGVyZmFjZS5oOiBBZGRlZC4KKFFXZWJT
ZWxlY3REYXRhOjopOgooUVdlYktpdFBsYXRmb3JtUGx1Z2luSW50ZXJmYWNlOjp+UVdlYktpdFBs
YXRmb3JtUGx1Z2luSW50ZXJmYWNlKToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5j
cHA6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2VsZWN0UG9wdXApOgoqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CiogV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBs
dWdpbi5jcHA6IEFkZGVkLgooV2ViQ29yZTo6U2VsZWN0RGF0YTo6U2VsZWN0RGF0YSk6CihXZWJD
b3JlOjpTZWxlY3REYXRhOjppdGVtVGV4dCk6CihXZWJDb3JlOjpTZWxlY3REYXRhOjppdGVtVG9v
bFRpcCk6CihXZWJDb3JlOjpTZWxlY3REYXRhOjppdGVtSXNFbmFibGVkKToKKFdlYkNvcmU6OlNl
bGVjdERhdGE6Oml0ZW1Db3VudCk6CihXZWJDb3JlOjpTZWxlY3REYXRhOjppdGVtSXNTZWxlY3Rl
ZCk6CihXZWJDb3JlOjpTZWxlY3REYXRhOjptdWx0aXBsZSk6CihXZWJDb3JlOjpTZWxlY3REYXRh
OjppdGVtVHlwZSk6CihXZWJDb3JlOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OlNlbGVjdElu
cHV0TWV0aG9kV3JhcHBlcik6CihXZWJDb3JlOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OnNo
b3cpOgooV2ViQ29yZTo6U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpoaWRlKToKKFdlYkNvcmU6
OlNlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6c2VsZWN0SXRlbSk6CihXZWJDb3JlOjpTZWxlY3RJ
bnB1dE1ldGhvZFdyYXBwZXI6OmRpZEhpZGUpOgooV2ViQ29yZTo6Z2V0UGx1Z2luT2JqZWN0KToK
KFdlYkNvcmU6OmdldFBsdWdpbkludGVyZmFjZSk6CihXZWJDb3JlOjpwbHVnaW4pOgooV2ViQ29y
ZTo6UXRQbGF0Zm9ybVBsdWdpbjo6Y3JlYXRlU2VsZWN0SW5wdXRNZXRob2QpOgoqIFdlYkNvcmVT
dXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uaDogQWRkZWQuCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysKIFdlYkNvcmUvV2ViQ29yZS5w
cm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYktpdC9xdC9BcGkvaGVh
ZGVycy5wcmkgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC9xdC9BcGkvcXdl
YmtpdHBsYXRmb3JtcGx1Z2luaW50ZXJmYWNlLmggfCAgIDY3ICsrKysrKysrKysrCiBXZWJLaXQv
cXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzOCArKysrKysKIFdl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgICAgfCAgICA0ICsKIFdl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oICAgICAgfCAgICAzICsKIFdl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmNwcCAgfCAgMTQzICsrKysr
KysrKysrKysrKysrKysrKysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1Q
bHVnaW4uaCAgICB8ICAgNTQgKysrKysrKysrCiA5IGZpbGVzIGNoYW5nZWQsIDMyNSBpbnNlcnRp
b25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9xdC9BcGkv
cXdlYmtpdHBsYXRmb3JtcGx1Z2luaW50ZXJmYWNlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5jcHAKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5oCgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ODAyZTdk
Li5jOTdjZGIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA1LTAyICBMdWl6IEFnb3N0aW5pICA8bHVp
ei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtRdF0gU2VsZWN0IGlucHV0IG1ldGhvZCBwbHVnaW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NDM4CisKKyAgICAg
ICAgU2VsZWN0IHBvcHVwcyBkZWxlZ2F0ZSBwcml2YXRlIEFQSS4gVG8gcHJvdmlkZSBzZWxlY3Qg
cG9wdXAgZGVsZWdhdGVzCisgICAgICAgIGEgcGx1Z2luIHRoYXQgaW1wbGVtZW50cyBRV2ViS2l0
UGxhdGZvcm1QbHVnaW5JbnRlcmZhY2UgbXVzdCBiZSBmb3VuZAorICAgICAgICBpbiBRQ29yZUFw
cGxpY2F0aW9uOjpsaWJyYXJ5UGF0aHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKwogMjAx
MC0wNC0zMCAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZWY2MDIxZC4uYjZmZWFiYiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0y
MDQ0LDYgKzIwNDQsNyBAQCBIRUFERVJTICs9IFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaCBcCiAgICAg
JCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5oIFwKKyAgICAk
JFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5oIFwKICAg
ICAkJFBXRC9wbGF0Zm9ybS9uZXR3b3JrL3F0L0Ruc1ByZWZldGNoSGVscGVyLmgKIAogU09VUkNF
UyArPSBcCkBAIC0yMTMyLDYgKzIxMzMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICAuLi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuY3BwIFwKICAg
ICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNwcCBcCisgICAgLi4v
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uY3BwIFwKICAgICAuLi9X
ZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9BcGkvcWdyYXBo
aWNzd2Vidmlldy5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIFwKZGlm
ZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkgYi9XZWJLaXQvcXQvQXBpL2hlYWRl
cnMucHJpCmluZGV4IDFhNDI1OTcuLmE5ZDJkNzQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkv
aGVhZGVycy5wcmkKKysrIGIvV2ViS2l0L3F0L0FwaS9oZWFkZXJzLnByaQpAQCAtMSw2ICsxLDcg
QEAKIFdFQktJVF9BUElfSEVBREVSUyA9ICQkUFdEL3F3ZWJmcmFtZS5oIFwKICAgICAgICAgICAg
ICAgICAgICAgICQkUFdEL3FncmFwaGljc3dlYnZpZXcuaCBcCiAgICAgICAgICAgICAgICAgICAg
ICAkJFBXRC9xd2Via2l0Z2xvYmFsLmggXAorICAgICAgICAgICAgICAgICAgICAgJCRQV0QvcXdl
YmtpdHBsYXRmb3JtcGx1Z2luaW50ZXJmYWNlLmggXAogICAgICAgICAgICAgICAgICAgICAgJCRQ
V0QvcXdlYnBhZ2UuaCBcCiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC9xd2Vidmlldy5oIFwK
ICAgICAgICAgICAgICAgICAgICAgICQkUFdEL3F3ZWJzZXR0aW5ncy5oIFwKZGlmZiAtLWdpdCBh
L1dlYktpdC9xdC9BcGkvcXdlYmtpdHBsYXRmb3JtcGx1Z2luaW50ZXJmYWNlLmggYi9XZWJLaXQv
cXQvQXBpL3F3ZWJraXRwbGF0Zm9ybXBsdWdpbmludGVyZmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjM0YjIzNjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvcXQv
QXBpL3F3ZWJraXRwbGF0Zm9ybXBsdWdpbmludGVyZmFjZS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICoKKyAqLworCisjaWZuZGVmIFFXRUJLSVRQTEFURk9STVBMVUdJTklOVEVSRkFDRV9I
CisjZGVmaW5lIFFXRUJLSVRQTEFURk9STVBMVUdJTklOVEVSRkFDRV9ICisKKy8qCisgKiAgV2Fy
bmluZzogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBpcyBub3QgIHBhcnQgb2YgdGhlIHB1Ymxp
YyBRdCBBUEkKKyAqICBhbmQgbWF5IGJlIGNoYW5nZWQgZnJvbSB2ZXJzaW9uIHRvIHZlcnNpb24g
b3IgZXZlbiBiZSBjb21wbGV0ZWx5IHJlbW92ZWQuCisqLworCisjaW5jbHVkZSA8UU9iamVjdD4K
KworY2xhc3MgUVdlYlNlbGVjdERhdGEKK3sKK3B1YmxpYzoKKyAgICBlbnVtIEl0ZW1UeXBlIHsg
T3B0aW9uLCBHcm91cCwgU2VwYXJhdG9yIH07CisKKyAgICB2aXJ0dWFsIEl0ZW1UeXBlIGl0ZW1U
eXBlKGludCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUVN0cmluZyBpdGVtVGV4dChpbnQgaW5k
ZXgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFFTdHJpbmcgaXRlbVRvb2xUaXAoaW50IGluZGV4
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGl0ZW1Jc0VuYWJsZWQoaW50IGluZGV4KSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGl0ZW1Jc1NlbGVjdGVkKGludCBpbmRleCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgaW50IGl0ZW1Db3VudCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIGJvb2wgbXVsdGlwbGUoKSBjb25zdCA9IDA7Cit9OworCitjbGFzcyBRV2ViU2VsZWN0SW5w
dXRNZXRob2QgOiBwdWJsaWMgUU9iamVjdAoreworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAg
dmlydHVhbCB2b2lkIHNob3coY29uc3QgUVdlYlNlbGVjdERhdGEmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGhpZGUoKSA9IDA7CisKK1FfU0lHTkFMUzoKKyAgICB2b2lkIHNlbGVjdEl0ZW0oaW50
IGluZGV4LCBib29sIGFsbG93TXVsdGlwbHlTZWxlY3Rpb25zLCBib29sIHNoaWZ0KTsKKyAgICB2
b2lkIGRpZEhpZGUoKTsKK307CisKK2NsYXNzIFFXZWJLaXRQbGF0Zm9ybVBsdWdpbkludGVyZmFj
ZQoreworcHVibGljOgorICAgIH5RV2ViS2l0UGxhdGZvcm1QbHVnaW5JbnRlcmZhY2UoKSB7fQor
ICAgIHZpcnR1YWwgUVdlYlNlbGVjdElucHV0TWV0aG9kKiBjcmVhdGVTZWxlY3RJbnB1dE1ldGhv
ZCgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlc011bHRpcGxlU2VsZWN0aW9ucygpID0g
MDsKK307CisKK1FfREVDTEFSRV9JTlRFUkZBQ0UoUVdlYktpdFBsYXRmb3JtUGx1Z2luSW50ZXJm
YWNlLCAiY29tLm5va2lhLlF0LldlYktpdC5RV2ViS2l0UGxhdGZvcm1QbHVnaW5JbnRlcmZhY2Uv
MS4wIik7CisKKyNlbmRpZiAvLyBRV0VCS0lUUExBVEZPUk1QTFVHSU5JTlRFUkZBQ0VfSApkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
MjcyNGY0MC4uNzYzYjBlNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTAtMDUtMDIgIEx1aXogQWdv
c3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBTZWxlY3QgaW5wdXQgbWV0aG9kIHBs
dWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg0
MzgKKworICAgICAgICBTZWxlY3QgcG9wdXBzIGRlbGVnYXRlIHByaXZhdGUgQVBJLiBUbyBwcm92
aWRlIHNlbGVjdCBwb3B1cCBkZWxlZ2F0ZXMKKyAgICAgICAgYSBwbHVnaW4gdGhhdCBpbXBsZW1l
bnRzIFFXZWJLaXRQbGF0Zm9ybVBsdWdpbkludGVyZmFjZSBtdXN0IGJlIGZvdW5kCisgICAgICAg
IGluIFFDb3JlQXBwbGljYXRpb246OmxpYnJhcnlQYXRocy4KKworICAgICAgICAqIEFwaS9oZWFk
ZXJzLnByaToKKyAgICAgICAgKiBBcGkvcXdlYmtpdHBsYXRmb3JtcGx1Z2luaW50ZXJmYWNlLmg6
IEFkZGVkLgorICAgICAgICAoUVdlYlNlbGVjdERhdGE6Oik6CisgICAgICAgIChRV2ViS2l0UGxh
dGZvcm1QbHVnaW5JbnRlcmZhY2U6On5RV2ViS2l0UGxhdGZvcm1QbHVnaW5JbnRlcmZhY2UpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudFF0OjpjcmVhdGVTZWxlY3RQb3B1cCk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9R
dFBsYXRmb3JtUGx1Z2luLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3REYXRh
OjpTZWxlY3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdERhdGE6Oml0ZW1UZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdERhdGE6Oml0ZW1Ub29sVGlwKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdERhdGE6Oml0ZW1Jc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0RGF0YTo6aXRlbUNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdERhdGE6Oml0ZW1J
c1NlbGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdERhdGE6Om11bHRpcGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlbGVjdERhdGE6Oml0ZW1UeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6c2hvdyk6CisgICAgICAg
IChXZWJDb3JlOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OmhpZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpzZWxlY3RJdGVtKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6ZGlkSGlkZSk6CisgICAgICAgIChXZWJD
b3JlOjpnZXRQbHVnaW5PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UGx1Z2luSW50ZXJm
YWNlKToKKyAgICAgICAgKFdlYkNvcmU6OnBsdWdpbik6CisgICAgICAgIChXZWJDb3JlOjpRdFBs
YXRmb3JtUGx1Z2luOjpjcmVhdGVTZWxlY3RJbnB1dE1ldGhvZCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5oOiBBZGRlZC4KKwogMjAxMC0wNC0yOSAgTGFzemxv
IEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCBjZjEwMGY3Li42YTNmMjA1IDEwMDY0NAotLS0gYS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTU3MCw2ICs1NzAsMTAgQEAg
Ym9vbCBDaHJvbWVDbGllbnRRdDo6YWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0
CiAKIFF0QWJzdHJhY3RXZWJQb3B1cCogQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFBvcHVw
KCkKIHsKKyAgICBRdEFic3RyYWN0V2ViUG9wdXAqIHJlc3VsdCA9IG1fcGxhdGZvcm1QbHVnaW4u
Y3JlYXRlU2VsZWN0SW5wdXRNZXRob2QoKTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICByZXR1
cm4gcmVzdWx0OworCiAjaWYgZGVmaW5lZChRX1dTX01BRU1PXzUpCiAgICAgcmV0dXJuIG5ldyBR
dE1hZW1vV2ViUG9wdXA7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaAppbmRleCBhNDU3NWUyLi40OGE0YjBlIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlJlZkNvdW50
ZWQuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNp
bmNsdWRlICJRdFBsYXRmb3JtUGx1Z2luLmgiCiAKIFFUX0JFR0lOX05BTUVTUEFDRQogY2xhc3Mg
UUV2ZW50TG9vcDsKQEAgLTE4MSw2ICsxODIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGJvb2wgc3RhdHVzQmFyVmlzaWJsZTsKICAgICAgICAgYm9vbCBtZW51QmFyVmlzaWJsZTsK
ICAgICAgICAgUUV2ZW50TG9vcCogbV9ldmVudExvb3A7CisKKyAgICAgICAgUXRQbGF0Zm9ybVBs
dWdpbiBtX3BsYXRmb3JtUGx1Z2luOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmNwcCBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yODMwNzZhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1F0UGxhdGZvcm1QbHVnaW4uY3BwCkBAIC0wLDAgKzEsMTQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlF0UGxhdGZvcm1QbHVnaW4uaCIK
KworI2luY2x1ZGUgInF3ZWJraXRwbGF0Zm9ybXBsdWdpbmludGVyZmFjZS5oIgorCisjaW5jbHVk
ZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRRGlyPgorI2luY2x1ZGUgPFFQbHVnaW5M
b2FkZXI+CisjaW5jbHVkZSA8UVNjb3BlZFBvaW50ZXI+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU2VsZWN0RGF0YSA6IHB1YmxpYyBRV2ViU2VsZWN0RGF0YSB7CitwdWJsaWM6Cisg
ICAgU2VsZWN0RGF0YShRdEFic3RyYWN0V2ViUG9wdXAqIGRhdGEpIDogZChkYXRhKSB7fQorCisg
ICAgdmlydHVhbCBJdGVtVHlwZSBpdGVtVHlwZShpbnQpIGNvbnN0OworICAgIHZpcnR1YWwgUVN0
cmluZyBpdGVtVGV4dChpbnQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGQtPml0ZW1UZXh0KGluZGV4
KTsgfQorICAgIHZpcnR1YWwgUVN0cmluZyBpdGVtVG9vbFRpcChpbnQgaW5kZXgpIGNvbnN0IHsg
cmV0dXJuIGQtPml0ZW1Ub29sVGlwKGluZGV4KTsgfQorICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNF
bmFibGVkKGludCBpbmRleCkgY29uc3QgeyByZXR1cm4gZC0+aXRlbUlzRW5hYmxlZChpbmRleCk7
IH0KKyAgICB2aXJ0dWFsIGludCBpdGVtQ291bnQoKSBjb25zdCB7IHJldHVybiBkLT5pdGVtQ291
bnQoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNTZWxlY3RlZChpbnQgaW5kZXgpIGNvbnN0
IHsgcmV0dXJuIGQtPml0ZW1Jc1NlbGVjdGVkKGluZGV4KTsgfQorICAgIHZpcnR1YWwgYm9vbCBt
dWx0aXBsZSgpIGNvbnN0IHsgcmV0dXJuIGQtPm11bHRpcGxlKCk7IH0KKworcHJpdmF0ZToKKyAg
ICBRdEFic3RyYWN0V2ViUG9wdXAqIGQ7Cit9OworCitRV2ViU2VsZWN0RGF0YTo6SXRlbVR5cGUg
U2VsZWN0RGF0YTo6aXRlbVR5cGUoaW50IGluZGV4KSBjb25zdAoreworICAgIHN3aXRjaCAoZC0+
aXRlbVR5cGUoaW5kZXgpKSB7CisgICAgY2FzZSBRdEFic3RyYWN0V2ViUG9wdXA6OlNlcGFyYXRv
cjogcmV0dXJuIFNlcGFyYXRvcjsKKyAgICBjYXNlIFF0QWJzdHJhY3RXZWJQb3B1cDo6R3JvdXA6
IHJldHVybiBHcm91cDsKKyAgICBkZWZhdWx0OiByZXR1cm4gT3B0aW9uOworICAgIH0KK30KKwor
U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXIoUVdlYlNl
bGVjdElucHV0TWV0aG9kKiBwbHVnaW4pCisgICAgOiBtX3BsdWdpbihwbHVnaW4pCit7CisgICAg
bV9wbHVnaW4tPnNldFBhcmVudCh0aGlzKTsKKyAgICBjb25uZWN0KG1fcGx1Z2luLCBTSUdOQUwo
ZGlkSGlkZSgpKSwgdGhpcywgU0xPVChkaWRIaWRlKCkpKTsKKyAgICBjb25uZWN0KG1fcGx1Z2lu
LCBTSUdOQUwoc2VsZWN0SXRlbShpbnQsIGJvb2wsIGJvb2wpKSwgdGhpcywgU0xPVChzZWxlY3RJ
dGVtKGludCwgYm9vbCwgYm9vbCkpKTsKK30KKwordm9pZCBTZWxlY3RJbnB1dE1ldGhvZFdyYXBw
ZXI6OnNob3coKQoreworICAgIFNlbGVjdERhdGEgZGF0YSh0aGlzKTsKKyAgICBtX3BsdWdpbi0+
c2hvdyhkYXRhKTsKK30KKwordm9pZCBTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OmhpZGUoKQor
eworICAgIG1fcGx1Z2luLT5oaWRlKCk7Cit9CisKK3ZvaWQgU2VsZWN0SW5wdXRNZXRob2RXcmFw
cGVyOjpzZWxlY3RJdGVtKGludCBpbmRleCwgYm9vbCBhbGxvd011bHRpcGx5U2VsZWN0aW9ucywg
Ym9vbCBzaGlmdCkKK3sKKyAgICBRdEFic3RyYWN0V2ViUG9wdXA6OnNlbGVjdEl0ZW0oaW5kZXgs
IGFsbG93TXVsdGlwbHlTZWxlY3Rpb25zLCBzaGlmdCk7Cit9CisKK3ZvaWQgU2VsZWN0SW5wdXRN
ZXRob2RXcmFwcGVyOjpkaWRIaWRlKCkKK3sKKyAgICBRdEFic3RyYWN0V2ViUG9wdXA6OnBvcHVw
RGlkSGlkZSgpOworfQorCisvLyBRdFBsYXRmb3JtUGx1Z2luCisKK3N0YXRpYyBRT2JqZWN0KiBn
ZXRQbHVnaW5PYmplY3QoKQoreworICAgIGNvbnN0IFFMYXRpbjFTdHJpbmcgc3VmZml4KCIvd2Vi
a2l0LyIpOworICAgIGNvbnN0IFFTdHJpbmdMaXN0IHBhdGhzID0gUUNvcmVBcHBsaWNhdGlvbjo6
bGlicmFyeVBhdGhzKCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYXRocy5jb3VudCgpOyAr
K2kpIHsKKyAgICAgICAgY29uc3QgUURpciBkaXIocGF0aHNbaV0gKyBzdWZmaXgpOworICAgICAg
ICBpZiAoIWRpci5leGlzdHMoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjb25z
dCBRU3RyaW5nTGlzdCBmaWxlcyA9IGRpci5lbnRyeUxpc3QoUURpcjo6RmlsZXMpOworICAgICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVzLmNvdW50KCk7ICsraSkgeworICAgICAgICAgICAg
UVBsdWdpbkxvYWRlciBwbHVnaW5Mb2FkZXIoZGlyLmFic29sdXRlRmlsZVBhdGgoZmlsZXMuYXQo
aSkpKTsKKyAgICAgICAgICAgIGlmICghcGx1Z2luTG9hZGVyLmxvYWQoKSkKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIFFPYmplY3QqIHJlc3VsdCA9IHBsdWdpbkxvYWRl
ci5pbnN0YW5jZSgpOworICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgcGx1Z2luTG9hZGVyLnVubG9hZCgpOworICAgICAg
ICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgUVdlYktpdFBsYXRmb3JtUGx1
Z2luSW50ZXJmYWNlKiBnZXRQbHVnaW5JbnRlcmZhY2UoKQoreworICAgIFFPYmplY3QqIG9iaiA9
IGdldFBsdWdpbk9iamVjdCgpOworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIFFXZWJLaXRQbGF0Zm9ybVBsdWdpbkludGVyZmFjZSogcmVzdWx0ID0gcW9iamVjdF9jYXN0
PFFXZWJLaXRQbGF0Zm9ybVBsdWdpbkludGVyZmFjZSo+KG9iaik7CisgICAgaWYgKCFyZXN1bHQp
CisgICAgICAgIG9iai0+ZGVsZXRlTGF0ZXIoKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K3N0YXRpYyBRV2ViS2l0UGxhdGZvcm1QbHVnaW5JbnRlcmZhY2UqIHBsdWdpbigpCit7CisgICAg
c3RhdGljIFFXZWJLaXRQbGF0Zm9ybVBsdWdpbkludGVyZmFjZSogcmVzdWx0ID0gZ2V0UGx1Z2lu
SW50ZXJmYWNlKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworUXRBYnN0cmFjdFdlYlBvcHVw
KiBRdFBsYXRmb3JtUGx1Z2luOjpjcmVhdGVTZWxlY3RJbnB1dE1ldGhvZCgpCit7CisgICAgUVdl
YktpdFBsYXRmb3JtUGx1Z2luSW50ZXJmYWNlKiBwID0gcGx1Z2luKCk7CisgICAgaWYgKCFwKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIFFXZWJTZWxlY3RJbnB1dE1ldGhvZCogc2VsZWN0b3Ig
PSBwLT5jcmVhdGVTZWxlY3RJbnB1dE1ldGhvZCgpOworICAgIGlmICghc2VsZWN0b3IpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG5ldyBTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXIo
c2VsZWN0b3IpOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
UXRQbGF0Zm9ybVBsdWdpbi5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1Q
bHVnaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGMyYTM0Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4u
aApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBRdFBsYXRmb3Jt
UGx1Z2luX2gKKyNkZWZpbmUgUXRQbGF0Zm9ybVBsdWdpbl9oCisKKyNpbmNsdWRlICJRdEFic3Ry
YWN0V2ViUG9wdXAuaCIKKyNpbmNsdWRlIDxRT2JqZWN0PgorCitjbGFzcyBRV2ViU2VsZWN0SW5w
dXRNZXRob2Q7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VsZWN0SW5wdXRNZXRo
b2RXcmFwcGVyIDogcHVibGljIFFPYmplY3QsIHB1YmxpYyBRdEFic3RyYWN0V2ViUG9wdXAgewor
ICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAgU2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyKFFXZWJT
ZWxlY3RJbnB1dE1ldGhvZCogcGx1Z2luKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KCk7Cisg
ICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKworcHJpdmF0ZSBRX1NMT1RTOgorICAgIHZvaWQgc2Vs
ZWN0SXRlbShpbnQgaW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBseVNlbGVjdGlvbnMsIGJvb2wgc2hp
ZnQpOworICAgIHZvaWQgZGlkSGlkZSgpOworCitwcml2YXRlOgorICAgIFFXZWJTZWxlY3RJbnB1
dE1ldGhvZCogbV9wbHVnaW47Cit9OworCitjbGFzcyBRdFBsYXRmb3JtUGx1Z2luIHsKK3B1Ymxp
YzoKKyAgICBRdEFic3RyYWN0V2ViUG9wdXAqIGNyZWF0ZVNlbGVjdElucHV0TWV0aG9kKCk7Cit9
OworCit9CisKKyNlbmRpZiAvLyBRdFBsYXRmb3JtUGx1Z2luX2gKLS0gCjEuNi4zLjMKCg==
</data>
<flag name="review"
          id="38955"
          type_id="1"
          status="-"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="38956"
          type_id="3"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>54886</attachid>
            <date>2010-05-02 10:10:25 -0700</date>
            <delta_ts>2010-05-02 21:12:36 -0700</delta_ts>
            <desc>usage example</desc>
            <filename>webplugin.tar.gz</filename>
            <type>application/octet-stream</type>
            <size>3103</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">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
1rKWtaxlLWtZy1rWssbb/wFwvKT1AFAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54903</attachid>
            <date>2010-05-02 21:10:35 -0700</date>
            <delta_ts>2010-05-07 12:34:06 -0700</delta_ts>
            <desc>patch 2</desc>
            <filename>0001-Qt-Platform-plugin.patch</filename>
            <type>text/plain</type>
            <size>16727</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBlYzZhNDg4OGI1ODQ3OGM1MDM1OGJiMmNiOTg4MmI4NTBmMjRkNzA3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IE1vbiwgMyBNYXkgMjAxMCAwMTowNDozNSAtMDMwMApTdWJqZWN0OiBbUEFU
Q0hdIFtRdF0gUGxhdGZvcm0gcGx1Z2luCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Mzg0MzgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU2VsZWN0IHBvcHVw
cyBkZWxlZ2F0ZSBwcml2YXRlIEFQSS4gVG8gcHJvdmlkZSBzZWxlY3QgcG9wdXAgZGVsZWdhdGVz
CmEgcGx1Z2luIHRoYXQgaW1wbGVtZW50cyBRV2ViS2l0UGxhdGZvcm1QbHVnaW4gbXVzdCBiZSBm
b3VuZAppbiBRQ29yZUFwcGxpY2F0aW9uOjpsaWJyYXJ5UGF0aHMuCgpXZWJDb3JlOgoKKiBXZWJD
b3JlLnBybzoKCldlYktpdC9xdDoKCiogQXBpL2hlYWRlcnMucHJpOgoqIEFwaS9xd2Via2l0cGxh
dGZvcm1wbHVnaW4uaDogQWRkZWQuCihRV2ViU2VsZWN0RGF0YTo6flFXZWJTZWxlY3REYXRhKToK
KFFXZWJTZWxlY3REYXRhOjopOgooUVdlYlNlbGVjdE1ldGhvZDo6flFXZWJTZWxlY3RNZXRob2Qp
OgooUVdlYktpdFBsYXRmb3JtUGx1Z2luOjp+UVdlYktpdFBsYXRmb3JtUGx1Z2luKToKKFFXZWJL
aXRQbGF0Zm9ybVBsdWdpbjo6KToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6
CihXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2VsZWN0UG9wdXApOgoqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CiogV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdp
bi5jcHA6IEFkZGVkLgooV2ViQ29yZTo6U2VsZWN0RGF0YTo6U2VsZWN0RGF0YSk6CihXZWJDb3Jl
OjpTZWxlY3REYXRhOjppdGVtVGV4dCk6CihXZWJDb3JlOjpTZWxlY3REYXRhOjppdGVtVG9vbFRp
cCk6CihXZWJDb3JlOjpTZWxlY3REYXRhOjppdGVtSXNFbmFibGVkKToKKFdlYkNvcmU6OlNlbGVj
dERhdGE6Oml0ZW1Db3VudCk6CihXZWJDb3JlOjpTZWxlY3REYXRhOjppdGVtSXNTZWxlY3RlZCk6
CihXZWJDb3JlOjpTZWxlY3REYXRhOjptdWx0aXBsZSk6CihXZWJDb3JlOjpTZWxlY3REYXRhOjpp
dGVtVHlwZSk6CihXZWJDb3JlOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OlNlbGVjdElucHV0
TWV0aG9kV3JhcHBlcik6CihXZWJDb3JlOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OnNob3cp
OgooV2ViQ29yZTo6U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpoaWRlKToKKFdlYkNvcmU6OlNl
bGVjdElucHV0TWV0aG9kV3JhcHBlcjo6c2VsZWN0SXRlbSk6CihXZWJDb3JlOjpTZWxlY3RJbnB1
dE1ldGhvZFdyYXBwZXI6OmRpZEhpZGUpOgooV2ViQ29yZTo6Z2V0UGx1Z2luT2JqZWN0KToKKFdl
YkNvcmU6OlF0UGxhdGZvcm1QbHVnaW46On5RdFBsYXRmb3JtUGx1Z2luKToKKFdlYkNvcmU6OlF0
UGxhdGZvcm1QbHVnaW46OnBsdWdpbik6CihXZWJDb3JlOjpRdFBsYXRmb3JtUGx1Z2luOjpjcmVh
dGVTZWxlY3RJbnB1dE1ldGhvZCk6CiogV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5o
OiBBZGRlZC4KKFdlYkNvcmU6OlF0UGxhdGZvcm1QbHVnaW46OlF0UGxhdGZvcm1QbHVnaW4pOgot
LS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMg
KysrCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAy
ICsKIFdlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkgICAgICAgICAgICAgICAgICAgICB8ICAgIDEg
KwogV2ViS2l0L3F0L0FwaS9xd2Via2l0cGxhdGZvcm1wbHVnaW4uaCAgICAgICAgIHwgICA3NyAr
KysrKysrKysrKysrCiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDQyICsrKysrKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHAgICB8ICAgIDQgKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmggICAgIHwgICAgMyArCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdp
bi5jcHAgfCAgMTQ0ICsrKysrKysrKysrKysrKysrKysrKysrKysKIFdlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmggICB8ICAgNjQgKysrKysrKysrKysKIDkgZmlsZXMg
Y2hhbmdlZCwgMzUwIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx
MDA2NDQgV2ViS2l0L3F0L0FwaS9xd2Via2l0cGxhdGZvcm1wbHVnaW4uaAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmNwcAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2lu
LmgKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDc4MDJlN2QuLmM1ZDUwZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDUtMDIgIEx1aXogQWdv
c3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBQbGF0Zm9ybSBwbHVnaW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NDM4CisKKyAgICAg
ICAgU2VsZWN0IHBvcHVwcyBkZWxlZ2F0ZSBwcml2YXRlIEFQSS4gVG8gcHJvdmlkZSBzZWxlY3Qg
cG9wdXAgZGVsZWdhdGVzCisgICAgICAgIGEgcGx1Z2luIHRoYXQgaW1wbGVtZW50cyBRV2ViS2l0
UGxhdGZvcm1QbHVnaW4gbXVzdCBiZSBmb3VuZAorICAgICAgICBpbiBRQ29yZUFwcGxpY2F0aW9u
OjpsaWJyYXJ5UGF0aHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKwogMjAxMC0wNC0zMCAg
TGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dl
YkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZWY2MDIxZC4uYjZmZWFiYiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yMDQ0LDYgKzIw
NDQsNyBAQCBIRUFERVJTICs9IFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaCBcCiAgICAgJCRQV0QvLi4v
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5oIFwKKyAgICAkJFBXRC8uLi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5oIFwKICAgICAkJFBXRC9w
bGF0Zm9ybS9uZXR3b3JrL3F0L0Ruc1ByZWZldGNoSGVscGVyLmgKIAogU09VUkNFUyArPSBcCkBA
IC0yMTMyLDYgKzIxMzMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNwcCBcCisgICAgLi4vV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uY3BwIFwKICAgICAuLi9XZWJLaXQvcXQv
QXBpL3F3ZWJmcmFtZS5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmll
dy5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIFwKZGlmZiAtLWdpdCBh
L1dlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkgYi9XZWJLaXQvcXQvQXBpL2hlYWRlcnMucHJpCmlu
ZGV4IDFhNDI1OTcuLjI5YmIxMjUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvaGVhZGVycy5w
cmkKKysrIGIvV2ViS2l0L3F0L0FwaS9oZWFkZXJzLnByaQpAQCAtMSw2ICsxLDcgQEAKIFdFQktJ
VF9BUElfSEVBREVSUyA9ICQkUFdEL3F3ZWJmcmFtZS5oIFwKICAgICAgICAgICAgICAgICAgICAg
ICQkUFdEL3FncmFwaGljc3dlYnZpZXcuaCBcCiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC9x
d2Via2l0Z2xvYmFsLmggXAorICAgICAgICAgICAgICAgICAgICAgJCRQV0QvcXdlYmtpdHBsYXRm
b3JtcGx1Z2luLmggXAogICAgICAgICAgICAgICAgICAgICAgJCRQV0QvcXdlYnBhZ2UuaCBcCiAg
ICAgICAgICAgICAgICAgICAgICAkJFBXRC9xd2Vidmlldy5oIFwKICAgICAgICAgICAgICAgICAg
ICAgICQkUFdEL3F3ZWJzZXR0aW5ncy5oIFwKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdl
YmtpdHBsYXRmb3JtcGx1Z2luLmggYi9XZWJLaXQvcXQvQXBpL3F3ZWJraXRwbGF0Zm9ybXBsdWdp
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlYTRmMTAKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJraXRwbGF0Zm9ybXBsdWdpbi5oCkBAIC0wLDAg
KzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFFXRUJLSVRQTEFURk9STVBMVUdJ
Tl9ICisjZGVmaW5lIFFXRUJLSVRQTEFURk9STVBMVUdJTl9ICisKKy8qCisgKiAgV2FybmluZzog
VGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBpcyBub3QgIHBhcnQgb2YgdGhlIHB1YmxpYyBRdFdl
YktpdCBBUEkKKyAqICBhbmQgbWF5IGJlIGNoYW5nZWQgZnJvbSB2ZXJzaW9uIHRvIHZlcnNpb24g
b3IgZXZlbiBiZSBjb21wbGV0ZWx5IHJlbW92ZWQuCisqLworCisjaW5jbHVkZSA8UU9iamVjdD4K
KworY2xhc3MgUVdlYlNlbGVjdERhdGEKK3sKK3B1YmxpYzoKKyAgICB+UVdlYlNlbGVjdERhdGEo
KSB7fQorCisgICAgZW51bSBJdGVtVHlwZSB7IE9wdGlvbiwgR3JvdXAsIFNlcGFyYXRvciB9Owor
CisgICAgdmlydHVhbCBJdGVtVHlwZSBpdGVtVHlwZShpbnQpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIFFTdHJpbmcgaXRlbVRleHQoaW50IGluZGV4KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBR
U3RyaW5nIGl0ZW1Ub29sVGlwKGludCBpbmRleCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9v
bCBpdGVtSXNFbmFibGVkKGludCBpbmRleCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBp
dGVtSXNTZWxlY3RlZChpbnQgaW5kZXgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGludCBpdGVt
Q291bnQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIG11bHRpcGxlKCkgY29uc3QgPSAw
OworfTsKKworY2xhc3MgUVdlYlNlbGVjdE1ldGhvZCA6IHB1YmxpYyBRT2JqZWN0Cit7CisgICAg
UV9PQkpFQ1QKK3B1YmxpYzoKKyAgICB+UVdlYlNlbGVjdE1ldGhvZCgpIHt9CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2hvdyhjb25zdCBRV2ViU2VsZWN0RGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgaGlkZSgpID0gMDsKKworUV9TSUdOQUxTOgorICAgIHZvaWQgc2VsZWN0SXRlbShpbnQgaW5k
ZXgsIGJvb2wgYWxsb3dNdWx0aXBseVNlbGVjdGlvbnMsIGJvb2wgc2hpZnQpOworICAgIHZvaWQg
ZGlkSGlkZSgpOworfTsKKworY2xhc3MgUVdlYktpdFBsYXRmb3JtUGx1Z2luCit7CitwdWJsaWM6
CisgICAgflFXZWJLaXRQbGF0Zm9ybVBsdWdpbigpIHt9CisKKyAgICBlbnVtIEV4dGVuc2lvbiB7
CisgICAgICAgIE11bHRpcGxlU2VsZWN0aW9ucworICAgIH07CisKKyAgICB2aXJ0dWFsIFFXZWJT
ZWxlY3RNZXRob2QqIGNyZWF0ZVNlbGVjdElucHV0TWV0aG9kKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0V4dGVuc2lvbihFeHRlbnNpb24gZXh0ZW5zaW9uKSBjb25zdCA9
IDA7CisKK307CisKK1FfREVDTEFSRV9JTlRFUkZBQ0UoUVdlYktpdFBsYXRmb3JtUGx1Z2luLCAi
Y29tLm5va2lhLlF0LldlYktpdC5QbGF0Zm9ybVBsdWdpbi8xLjAiKTsKKworI2VuZGlmIC8vIFFX
RUJLSVRQTEFURk9STVBMVUdJTl9ICmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIv
V2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAyNzI0ZjQwLi4xMmE0OWEyIDEwMDY0NAotLS0gYS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
NSBAQAorMjAxMC0wNS0wMiAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3Nh
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
UXRdIFBsYXRmb3JtIHBsdWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzg0MzgKKworICAgICAgICBTZWxlY3QgcG9wdXBzIGRlbGVnYXRlIHByaXZh
dGUgQVBJLiBUbyBwcm92aWRlIHNlbGVjdCBwb3B1cCBkZWxlZ2F0ZXMKKyAgICAgICAgYSBwbHVn
aW4gdGhhdCBpbXBsZW1lbnRzIFFXZWJLaXRQbGF0Zm9ybVBsdWdpbiBtdXN0IGJlIGZvdW5kCisg
ICAgICAgIGluIFFDb3JlQXBwbGljYXRpb246OmxpYnJhcnlQYXRocy4KKworICAgICAgICAqIEFw
aS9oZWFkZXJzLnByaToKKyAgICAgICAgKiBBcGkvcXdlYmtpdHBsYXRmb3JtcGx1Z2luLmg6IEFk
ZGVkLgorICAgICAgICAoUVdlYlNlbGVjdERhdGE6On5RV2ViU2VsZWN0RGF0YSk6CisgICAgICAg
IChRV2ViU2VsZWN0RGF0YTo6KToKKyAgICAgICAgKFFXZWJTZWxlY3RNZXRob2Q6On5RV2ViU2Vs
ZWN0TWV0aG9kKToKKyAgICAgICAgKFFXZWJLaXRQbGF0Zm9ybVBsdWdpbjo6flFXZWJLaXRQbGF0
Zm9ybVBsdWdpbik6CisgICAgICAgIChRV2ViS2l0UGxhdGZvcm1QbHVnaW46Oik6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFBvcHVwKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1F0UGxhdGZv
cm1QbHVnaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdERhdGE6OlNlbGVj
dERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0RGF0YTo6aXRlbVRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VsZWN0RGF0YTo6aXRlbVRvb2xUaXApOgorICAgICAgICAoV2ViQ29yZTo6
U2VsZWN0RGF0YTo6aXRlbUlzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3REYXRh
OjppdGVtQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0RGF0YTo6aXRlbUlzU2VsZWN0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0RGF0YTo6bXVsdGlwbGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0RGF0YTo6aXRlbVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
SW5wdXRNZXRob2RXcmFwcGVyOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpzaG93KToKKyAgICAgICAgKFdlYkNv
cmU6OlNlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OnNlbGVjdEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpkaWRIaWRlKToKKyAgICAgICAgKFdlYkNvcmU6Omdl
dFBsdWdpbk9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpRdFBsYXRmb3JtUGx1Z2luOjp+UXRQ
bGF0Zm9ybVBsdWdpbik6CisgICAgICAgIChXZWJDb3JlOjpRdFBsYXRmb3JtUGx1Z2luOjpwbHVn
aW4pOgorICAgICAgICAoV2ViQ29yZTo6UXRQbGF0Zm9ybVBsdWdpbjo6Y3JlYXRlU2VsZWN0SW5w
dXRNZXRob2QpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpRdFBsYXRmb3JtUGx1Z2luOjpRdFBsYXRmb3JtUGx1
Z2luKToKKwogMjAxMC0wNC0yOSAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tp
YS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4u
CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3Bw
IGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCBjZjEw
MGY3Li42YTNmMjA1IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHAKQEAgLTU3MCw2ICs1NzAsMTAgQEAgYm9vbCBDaHJvbWVDbGllbnRRdDo6YWxsb3dzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0CiAKIFF0QWJzdHJhY3RXZWJQb3B1cCogQ2hyb21l
Q2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFBvcHVwKCkKIHsKKyAgICBRdEFic3RyYWN0V2ViUG9wdXAq
IHJlc3VsdCA9IG1fcGxhdGZvcm1QbHVnaW4uY3JlYXRlU2VsZWN0SW5wdXRNZXRob2QoKTsKKyAg
ICBpZiAocmVzdWx0KQorICAgICAgICByZXR1cm4gcmVzdWx0OworCiAjaWYgZGVmaW5lZChRX1dT
X01BRU1PXzUpCiAgICAgcmV0dXJuIG5ldyBRdE1hZW1vV2ViUG9wdXA7CiAjZWxzZQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggYi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCBhNDU3NWUyLi40OGE0YjBl
IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAor
KysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIlJlZkNvdW50ZWQuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJRdFBsYXRmb3JtUGx1Z2luLmgiCiAK
IFFUX0JFR0lOX05BTUVTUEFDRQogY2xhc3MgUUV2ZW50TG9vcDsKQEAgLTE4MSw2ICsxODIsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgc3RhdHVzQmFyVmlzaWJsZTsKICAg
ICAgICAgYm9vbCBtZW51QmFyVmlzaWJsZTsKICAgICAgICAgUUV2ZW50TG9vcCogbV9ldmVudExv
b3A7CisKKyAgICAgICAgUXRQbGF0Zm9ybVBsdWdpbiBtX3BsYXRmb3JtUGx1Z2luOwogICAgIH07
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1
Z2luLmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTkyMDJhCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uY3BwCkBAIC0w
LDAgKzEsMTQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlF0UGxhdGZvcm1QbHVnaW4uaCIKKworI2luY2x1ZGUgInF3ZWJraXRwbGF0Zm9ybXBs
dWdpbi5oIgorCisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRRGlyPgor
I2luY2x1ZGUgPFFQbHVnaW5Mb2FkZXI+CisjaW5jbHVkZSA8UVNjb3BlZFBvaW50ZXI+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VsZWN0RGF0YSA6IHB1YmxpYyBRV2ViU2VsZWN0
RGF0YSB7CitwdWJsaWM6CisgICAgU2VsZWN0RGF0YShRdEFic3RyYWN0V2ViUG9wdXAqIGRhdGEp
IDogZChkYXRhKSB7fQorCisgICAgdmlydHVhbCBJdGVtVHlwZSBpdGVtVHlwZShpbnQpIGNvbnN0
OworICAgIHZpcnR1YWwgUVN0cmluZyBpdGVtVGV4dChpbnQgaW5kZXgpIGNvbnN0IHsgcmV0dXJu
IGQtPml0ZW1UZXh0KGluZGV4KTsgfQorICAgIHZpcnR1YWwgUVN0cmluZyBpdGVtVG9vbFRpcChp
bnQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGQtPml0ZW1Ub29sVGlwKGluZGV4KTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKGludCBpbmRleCkgY29uc3QgeyByZXR1cm4gZC0+aXRl
bUlzRW5hYmxlZChpbmRleCk7IH0KKyAgICB2aXJ0dWFsIGludCBpdGVtQ291bnQoKSBjb25zdCB7
IHJldHVybiBkLT5pdGVtQ291bnQoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNTZWxlY3Rl
ZChpbnQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGQtPml0ZW1Jc1NlbGVjdGVkKGluZGV4KTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBtdWx0aXBsZSgpIGNvbnN0IHsgcmV0dXJuIGQtPm11bHRpcGxlKCk7
IH0KKworcHJpdmF0ZToKKyAgICBRdEFic3RyYWN0V2ViUG9wdXAqIGQ7Cit9OworCitRV2ViU2Vs
ZWN0RGF0YTo6SXRlbVR5cGUgU2VsZWN0RGF0YTo6aXRlbVR5cGUoaW50IGluZGV4KSBjb25zdAor
eworICAgIHN3aXRjaCAoZC0+aXRlbVR5cGUoaW5kZXgpKSB7CisgICAgY2FzZSBRdEFic3RyYWN0
V2ViUG9wdXA6OlNlcGFyYXRvcjogcmV0dXJuIFNlcGFyYXRvcjsKKyAgICBjYXNlIFF0QWJzdHJh
Y3RXZWJQb3B1cDo6R3JvdXA6IHJldHVybiBHcm91cDsKKyAgICBkZWZhdWx0OiByZXR1cm4gT3B0
aW9uOworICAgIH0KK30KKworU2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpTZWxlY3RJbnB1dE1l
dGhvZFdyYXBwZXIoUVdlYlNlbGVjdE1ldGhvZCogcGx1Z2luKQorICAgIDogbV9wbHVnaW4ocGx1
Z2luKQoreworICAgIG1fcGx1Z2luLT5zZXRQYXJlbnQodGhpcyk7CisgICAgY29ubmVjdChtX3Bs
dWdpbiwgU0lHTkFMKGRpZEhpZGUoKSksIHRoaXMsIFNMT1QoZGlkSGlkZSgpKSk7CisgICAgY29u
bmVjdChtX3BsdWdpbiwgU0lHTkFMKHNlbGVjdEl0ZW0oaW50LCBib29sLCBib29sKSksIHRoaXMs
IFNMT1Qoc2VsZWN0SXRlbShpbnQsIGJvb2wsIGJvb2wpKSk7Cit9CisKK3ZvaWQgU2VsZWN0SW5w
dXRNZXRob2RXcmFwcGVyOjpzaG93KCkKK3sKKyAgICBTZWxlY3REYXRhIGRhdGEodGhpcyk7Cisg
ICAgbV9wbHVnaW4tPnNob3coZGF0YSk7Cit9CisKK3ZvaWQgU2VsZWN0SW5wdXRNZXRob2RXcmFw
cGVyOjpoaWRlKCkKK3sKKyAgICBtX3BsdWdpbi0+aGlkZSgpOworfQorCit2b2lkIFNlbGVjdElu
cHV0TWV0aG9kV3JhcHBlcjo6c2VsZWN0SXRlbShpbnQgaW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBs
eVNlbGVjdGlvbnMsIGJvb2wgc2hpZnQpCit7CisgICAgUXRBYnN0cmFjdFdlYlBvcHVwOjpzZWxl
Y3RJdGVtKGluZGV4LCBhbGxvd011bHRpcGx5U2VsZWN0aW9ucywgc2hpZnQpOworfQorCit2b2lk
IFNlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6ZGlkSGlkZSgpCit7CisgICAgUXRBYnN0cmFjdFdl
YlBvcHVwOjpwb3B1cERpZEhpZGUoKTsKK30KKworLy8gUXRQbGF0Zm9ybVBsdWdpbgorCitzdGF0
aWMgUVdlYktpdFBsYXRmb3JtUGx1Z2luKiBnZXRQbHVnaW5PYmplY3QoKQoreworICAgIGNvbnN0
IFFMYXRpbjFTdHJpbmcgc3VmZml4KCIvd2Via2l0LyIpOworICAgIGNvbnN0IFFTdHJpbmdMaXN0
IHBhdGhzID0gUUNvcmVBcHBsaWNhdGlvbjo6bGlicmFyeVBhdGhzKCk7CisgICAgUU9iamVjdCog
b2JqID0gMDsKKyAgICBmb3IgKGludCBpID0gMDsgIW9iaiAmJiBpIDwgcGF0aHMuY291bnQoKTsg
KytpKSB7CisgICAgICAgIGNvbnN0IFFEaXIgZGlyKHBhdGhzW2ldICsgc3VmZml4KTsKKyAgICAg
ICAgaWYgKCFkaXIuZXhpc3RzKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY29u
c3QgUVN0cmluZ0xpc3QgZmlsZXMgPSBkaXIuZW50cnlMaXN0KFFEaXI6OkZpbGVzKTsKKyAgICAg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlcy5jb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAg
IFFQbHVnaW5Mb2FkZXIgcGx1Z2luTG9hZGVyKGRpci5hYnNvbHV0ZUZpbGVQYXRoKGZpbGVzLmF0
KGkpKSk7CisgICAgICAgICAgICBpZiAoIXBsdWdpbkxvYWRlci5sb2FkKCkpCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICBvYmogPSBwbHVnaW5Mb2FkZXIuaW5zdGFuY2Uo
KTsKKyAgICAgICAgICAgIGlmIChvYmopIHsKKyAgICAgICAgICAgICAgICBRV2ViS2l0UGxhdGZv
cm1QbHVnaW4qIHJlc3VsdCA9IHFvYmplY3RfY2FzdDxRV2ViS2l0UGxhdGZvcm1QbHVnaW4qPihv
YmopOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgZGVsZXRlIG9iajsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHBsdWdpbkxvYWRlci51bmxvYWQoKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICByZXR1cm4gMDsKK30KKworUXRQbGF0Zm9ybVBsdWdpbjo6flF0UGxhdGZvcm1QbHVnaW4oKQor
eworICAgIGRlbGV0ZSBtX3BsdWdpbjsKK30KKworUVdlYktpdFBsYXRmb3JtUGx1Z2luKiBRdFBs
YXRmb3JtUGx1Z2luOjpwbHVnaW4oKQoreworICAgIGlmIChtX2xvYWRlZCkKKyAgICAgICAgcmV0
dXJuIG1fcGx1Z2luOworCisgICAgbV9sb2FkZWQgPSB0cnVlOworICAgIG1fcGx1Z2luID0gZ2V0
UGx1Z2luT2JqZWN0KCk7CisgICAgcmV0dXJuIG1fcGx1Z2luOworfQorCitRdEFic3RyYWN0V2Vi
UG9wdXAqIFF0UGxhdGZvcm1QbHVnaW46OmNyZWF0ZVNlbGVjdElucHV0TWV0aG9kKCkKK3sKKyAg
ICBRV2ViS2l0UGxhdGZvcm1QbHVnaW4qIHAgPSBwbHVnaW4oKTsKKyAgICBpZiAoIXApCisgICAg
ICAgIHJldHVybiAwOworCisgICAgUVdlYlNlbGVjdE1ldGhvZCogc2VsZWN0b3IgPSBwLT5jcmVh
dGVTZWxlY3RJbnB1dE1ldGhvZCgpOworICAgIGlmICghc2VsZWN0b3IpCisgICAgICAgIHJldHVy
biAwOworCisgICAgcmV0dXJuIG5ldyBTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXIoc2VsZWN0b3Ip
OworfQorCit9CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9y
bVBsdWdpbi5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjczMDc5Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uaApAQCAtMCww
ICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBRdFBsYXRmb3JtUGx1Z2luX2gK
KyNkZWZpbmUgUXRQbGF0Zm9ybVBsdWdpbl9oCisKKyNpbmNsdWRlICJRdEFic3RyYWN0V2ViUG9w
dXAuaCIKKyNpbmNsdWRlIDxRT2JqZWN0PgorCitjbGFzcyBRV2ViU2VsZWN0TWV0aG9kOworY2xh
c3MgUVdlYktpdFBsYXRmb3JtUGx1Z2luOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNlbGVjdElucHV0TWV0aG9kV3JhcHBlciA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgUXRBYnN0
cmFjdFdlYlBvcHVwIHsKKyAgICBRX09CSkVDVAorcHVibGljOgorICAgIFNlbGVjdElucHV0TWV0
aG9kV3JhcHBlcihRV2ViU2VsZWN0TWV0aG9kKiBwbHVnaW4pOworCisgICAgdmlydHVhbCB2b2lk
IHNob3coKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOworCitwcml2YXRlIFFfU0xPVFM6Cisg
ICAgdm9pZCBzZWxlY3RJdGVtKGludCBpbmRleCwgYm9vbCBhbGxvd011bHRpcGx5U2VsZWN0aW9u
cywgYm9vbCBzaGlmdCk7CisgICAgdm9pZCBkaWRIaWRlKCk7CisKK3ByaXZhdGU6CisgICAgUVdl
YlNlbGVjdE1ldGhvZCogbV9wbHVnaW47Cit9OworCitjbGFzcyBRdFBsYXRmb3JtUGx1Z2luIHsK
K3B1YmxpYzoKKyAgICBRdFBsYXRmb3JtUGx1Z2luKCkgOiBtX2xvYWRlZChmYWxzZSksIG1fcGx1
Z2luKDApIHt9CisgICAgflF0UGxhdGZvcm1QbHVnaW4oKTsKKworICAgIFF0QWJzdHJhY3RXZWJQ
b3B1cCogY3JlYXRlU2VsZWN0SW5wdXRNZXRob2QoKTsKKworcHJpdmF0ZToKKyAgICBib29sIG1f
bG9hZGVkOworICAgIFFXZWJLaXRQbGF0Zm9ybVBsdWdpbiogbV9wbHVnaW47CisKKyAgICBRV2Vi
S2l0UGxhdGZvcm1QbHVnaW4qIHBsdWdpbigpOworfTsKKworfQorCisjZW5kaWYgLy8gUXRQbGF0
Zm9ybVBsdWdpbl9oCi0tIAoxLjYuMy4zCgo=
</data>
<flag name="review"
          id="38973"
          type_id="1"
          status="+"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="38974"
          type_id="3"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>54904</attachid>
            <date>2010-05-02 21:12:36 -0700</date>
            <delta_ts>2010-05-02 21:12:36 -0700</delta_ts>
            <desc>usage example</desc>
            <filename>webplugin.tar.gz</filename>
            <type>application/octet-stream</type>
            <size>3138</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">H4sICOlM3ksAA3dlYnBsdWdpbi50YXIA7Rr9c9o6sj/7r9BLbzp2Sggk5OPgtTeEkJR7JOHDaa5z
d8MYLEBXY/vZIoTrvPe33+rDtgyGJL20fXNnTSaAtNpd7Zd2JS3w0HfmE+Luv/pmrQTt5OhIfB6L
z9JBRXyK9qpcPjw+qVSODw/Lr0rlg6Pjg1fo6NuxlLR5SK0AoVfWxAspcckmOAAbj78HQ9+3LWL9
/wpfPxPqOxYde8FM9BanL0CDKfi4Utmk/8rBUaz/ytEx9JdPDk8qr1DpBWg/2v7P9b+/q6Fd1PD8
ZUAmU4r0hoEOSuUSuvY+EwsGAt8LLEo8F1muve8FiNAQhfNhSGxiBUt9j+DQABwMjTklIXLIMIAB
BF/HAcYo9MZ0YQW4hpbeHI0sFwXYJiENyHBOMaCTiBmCmWeT8ZL1zV0bB4hOMaI4mIXIG/Mfl9e3
qC0JXGIXB5aDOvOhQ0ZsepuMsBtiZIXIZ53hFNtouOQzLxgvfckLuvCAAF9WDWEC45z8PQ5CttKD
iJxEWECwbt2ibAUB8nw2zwC2lwicBdiU84obxJCs1kbE5Yinng8rmwJKWOuCOA4aYjQP8XjuFBgK
AEZ3LfPDza2J6tef0F2916tfm59qAEynHozieyxQEXBVAphhXYHl0iXwzjBcNXuNDzClftZqt8xP
bAUXLfO62e+ji5seqqNOvWe2Grfteg91bnudm36ziFAf40jOQqBZoo7lDHECVAbitDG1iBNGAvgE
ig6BS8dGU+seg8JHmNwDjxYagaU9rsyIAkNmOZ474cuGSYlgayiUvI6Jg1HjpvOpdX1ZbLfOYBmt
MXI9WkCLgICJUY/h2WYEBdRyR8UCOioDiOV+dkBNfQrAgOOCjIH0heN5AVfNGcQJNuOqjkoH5XJp
r3xYKhfQbb8ul7+vaa/JGOx3jLp3zbNfWmanXTdB6Fed9u1l63rwQXsNg8TFG8c14Zbozgpc4k6q
YFIYROdS7FLpC8y92MLhE5aKkG8FNBKsL4TYpXd4+AsYWL3T4ujA0dDMWjJbG00tdwIaGQfeLLZ7
6sVfQbPcwhioBxaGKXaWoMiZB3osamKR7siZ2xj93L0Z/guP6HtNGzlWGMKy8LCPHeg6t6ilfdEE
Q1UNQfs9Paob6MtvGh/B7nyGWhTPzCV4xxd04wvdXAbe3C+AbcIaLQqc/VYTE+5JQOdgNPEcIr/o
xKUGE1hI0TtUqqWgu6BZEKoAxg+UAYNf2vjhaVM8zzGJ/4RZQ4DkU1ph07WGDrafN0kI6UmzOARM
aoBJU3078tncoQQ0mgZjMl3V3hWGWGOjamxQQs+gUIa0O7g5+2uzYW7Srpit6Dfi4t4jNosPC13Q
TxvEG2Odbz5jSmzGMx/UuoN+6/K63u4LsgIlx8GMIZFYQazZchxvcSUWvhS0wLRCORpOwceNWoLJ
JvYHTm1VLuBNHZkgdXiClGXca0CrNt58AEfmbiYkyZpkDifM8aFVU18V7y4aBRg2IdHXcv15Ivdt
RhDOfdjYaRizoidM4ehbCgWXRHdw3mzAltEctK7NZu+i3mjqmUsuoB2IG0WXZRHFLi0KmGIaaL9c
LO2AjLXX2IWNH+3vb4yIPzpP+l9t6fxfeBCZFf3Aezkaj+T/pePSQZz/nxweQv5/dHJykOf/36O9
3ntu015rr1En8NhOIIMPT7K7tMF+wPbM6oe9UmXv4NQs/7laPqqWSmzS8ylpXVNGx7fvIBRByjaZ
E00z673LpglR6U9/+pXKBNK0ggmmumrEhmY2r1ggaQIoZI1a4+b6onXJcAmT17TzZt88b/U4qr93
TQhqfbPebg9E2On/c1/UxJrWv7ntNZp9NvcfPJhCPBMxrDjyfU370KyfN3uZ41PZs6G+/sGRLfH/
1IpelMZ2/y9XyseH0v+h7D8qMf8vn5Rz//8eLa//8/o/r/9fuP6PK+MdZRvYSVXMH868h7YF9gRV
s9LdBlO5IzZsZRu6WXWTGupYUOvgINVHBc003Dycns0psJ7q7tMl1KUM6zlsmxMw59TwR4VNDUIg
Bd2ImoBVWJMrC888xhxD0Cf/xrCTnkCtsAWyY9k2K6XfocPTjYBX1sNHEhIomRniEICPoErgpVnH
8+d+terDB3M+hlI3ooo0LaddsBXBmiiAmLmKypBXNPDxM5oNwAKsolI719Dbt8RQKjMoTHQFTJwv
QB36bqVwrVZvZGRI5rIWMQFEXbxYZTKFmp9GGLISjdpswDDsvQfB8QkRvhWwqHvvfYhpfHSgYFcP
FFQavyHsgDM/fZn8POYPtcqxBSvYBnnhWJNQ79Jq9dpjnfy3KgMt+Q/G6AJaXXBUQOKgQecmArHp
M9BbNTTDKPDgBMDtG1P3XO4PEXfr0OxcIW3Pj0zhhzuRmTNNEb6yMV+WgX4CJa2sLV4anhF5NiSZ
jyQdeAuORnLDQpXgJfqmCyRV0I3Pf5cYBynQ3xXYhDkJn/AgO/be25idJLbZrqkLsnz2LkpQyvMM
iBHKYYigkXlchJhhRdQDTOeByy0wEwOH3UZ37RjmKyhvwPEo7aeSktMDHAIh8DfuWcqp3l/Q1rVw
VKDVLYKWrKreIKjF3jCGVJmlV/ykNW39XNUNxwth1DC2o1Htch3T2qhEJmUtcCWulMhz8+FiSpCZ
tiqQy2M3OQpCVlWkiCe2bE7SyGJGnFsqJH96Ek0IhaMR9mk20pSQvwL3iiOm1yoPDHnkUI9C17hY
URAi9kPEDJ+snsjaD6DbYA7JdBStAV+W9VWrz3Z+EaYU5UgmxJzR1Aog/yPUYfnJjmBqpxbL7FdI
z0czX+cQBbQDNbE1oGRA8QOLlIOQs7NjJDKFHeWOuLa3MNkUXV4PVKvsNuWWjk8Fqshc2fa6aeqO
WAwP0PwolMEo2eEumoov0b6aDOnMUyQJCcT3uoa8J7qyAkgCQ71UQPLPiK2ArWt9p1YxphMsOTEm
A7t037dGsGh9LbVbZQl6JXpBN2N8G64X2pMjZzIUlDLnvE9STZ4DgmDiTXIkL1TeZ2emLNhmp6xV
tIIiCl0hpMk6/2cUF8SmUx0YXWNhNyO5Fi4jbyOi4M4GGVCUviu3Neu5PUrfVmzCocuLnl12q4i5
QEqJ8XNfy0CuC2ABmCSHkN9/BlP8DEi6LRC68BJzimdg/Quur3DAgGYAxEW2YxR98jCzfL1yWkCV
Uym66BaJhSCfVT16VPzsit84KEitCu5EOv6R4AVj840s3GOYKw+CYItdEr1J3a6t8J+xUgi/nH5M
NcIs0EgDi8KLGCyyUgejNxIfBDn2exBlfCnxRsuBMB1Yi46QhUQDtTSN7AbtxdLl/apFqeBLAH2L
UhimmB33QP8+OshAow4zP5LDiSb8gNwzSYh4JViMwcStWXb6Ua1+RYr1zeI75QGe507fPr6Hf6gA
H4WnuI4CTTCX0Lv1IQjMEvs28x6pshhq2w6xKaTsIjuKQe9SSfJa7MlmMRVoIlQvvS0J3XxUdHOf
1k0ypP/YbeQ+Y8X6GgN7qGxs2kmk48anQqAgz42Uo/Sr+ohdjIFuczB7QgdDe8DBFLdiv7k2+RHA
c7wqPXPnnCOWi4jHrqAmmc1ndzwElk9OM2QlNc6mbDOe0wxjkXqX2LYkMeXT1ayFkYtzlpHMV7bk
J2zuf58o8Hv++AASiqJnXPmni9p4lJ0GrT9U4NS6g+bfOjc9U96dHaSu4goJH0Z+lf9Haln3fy/x
5ldtj73/rRyX4/v/4zJ7/1s5PjzO7/++R8vv//L7v/z+78Xv/8Tz37vm2dqTX7VPuSjc8DokfWl4
TkAYk+SZbfrEo7beHb9d5KWTcjQgMKEtDzkfLcp4asq+yQPlL6z0gQLCcnR2zGfUWJkYkolrOaHy
SDPryLDG6kmP8kIYhY5H1QlPuhlRMShzM0uU7DWJtdRW7xF3Zf4tSlopzazzyUS44ucW0T73eDNF
O7t6fgb155ffKfrR4a9iTKvvhbcQT66LhKR/Vzue80gYKWfwGa+Ea/EJxZo9pU7Oa08wTOWgQ968
yJNyybHsfOIdTm19zvPtYQ3F1yo10SkPOGtPvQuqkrMeP6c0LX7EL4P72U+DjZRFfP3D5i/qnZti
R/Ia96ufO0tzVx4lqzH7Rydsectb3vKWt7zlLW95y1ve8pa3vOUtb3nLW97ylre8PaH9B9qvgw4A
UAAA
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>54977</attachid>
            <date>2010-05-03 17:09:49 -0700</date>
            <delta_ts>2010-05-03 17:09:49 -0700</delta_ts>
            <desc>orbit usage example</desc>
            <filename>orbitplugin.tar.gz</filename>
            <type>application/octet-stream</type>
            <size>2554</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">H4sICIxj30sAA29yYml0cGx1Z2luLnRhcgDtGmtv28jRn/kr5pJDQTmyHn4C0tWALMu2erKedN2g
LQxKXFl7oUiGXNrxBclv7+yDIqmH5eR8aYHuwIDI3ZnZee7OcO2HY8oCN76nXnnnT4IKwsnRkfw9
lr+V/UP5K2GnWj04Pjk+rh6dHO9Uqgf4tgNHf5ZAWYgjZocAO/a9HzHq0U14iDad/giBfiz4Gf/3
+HNfPJcmQfBqa3AHHx8ebvL/8UnlWPn/qHpwguPV42rlcAcqrybBM/B/7v/yrgG70PSDp5DezxiY
zQLsV6oV6PofqI0TYeCHNqO+B7bnlP0QKIsgiscRdagdPpl7lEQF5MHZWDMagUvHIU4APk5DQiDy
p+zRDkkdnvwYJrYHIXFoxEI6jhlBdooxZzD3HTp94mOx55AQ2IwAI+E8An8qXi67N9BRC1wSj4S2
C/147NIJJ+/QCfEiAnYEAR+MZsSB8ZOgvOCyjJQscOHjAkKtOhCK82L5BxJGXNP9ZDnFsAiot2kz
rkEIfsDpCij2E7g2ipfQlTaYIdXWAeoJxjM/QM1myBJ1faSuC2MCcUSmsVvkLBAZbtvWVe/Ggkb3
Pdw2hsNG13pfR2Q283GWPBDJis4DlyJn1Cu0PfaEsnMO161h8wpJGmftTtt6zzW4aFvd1mgEF70h
NKDfGFrt5k2nMYT+zbDfG7VKACNCEjtLg64z9cLOU2Q699GcDmE2daPEAO/R0RFK6Towsx8IOnxC
6APKaMMEI227M5MVODPb9b17oTYSpYatQ6RknVKXQLPXf9/uXpY67TNUoz0Fz2dFeAwphhjzOZ/n
gqAIbW9SKsJRFVFs74OLbhoxREYeF3SKS1+4vh8K15zhPsEprhtQ2a9WK3vVg0q1CDejhlK/bLyl
3sSNHQJvslvq7I2RzvwyuDrzP3VsjCh2mh1W2KdZ3KtxB0Poljr3hLUZmeNk3w/ioFYTP+bE9yIG
g1syHhGXTNi5zey/AKpmY2Yi1GB+x9/MdKiIQ5ggzKyk74/Uc/xHPvJZjEWEXfuO7ZosjEmhLsYS
LPgreOQRrsbXNvVuJSF3j0LLaLcLM/mgSDJTWQqFtHeKqzZ9jxGPRdd2iKaIzEoR1N8ysu040ixm
IpjCQC5SKosyl5hvpGEw28j8DaIoXbgFFpqkNjYVkwCtyzOcz5hLBhBr/52SR1OyUdMhiejvxEyx
xGsBZ78YxoNPHVCey/NWFl929C5w1vxJcucJZ1IP9UCpK3X8+UW5tsQ1a2JAc0Hh3TtagM9SS2EN
TJ/JDMwMrvUUEJMWOFqCNbExp/NRVKv1xG5XWyBxSIRaYzo+bF6Na7URw23dDh0+oGyzTC58bZFP
LCcXf6eF50hanj12iZOlakfJ4AqpdI9wlxAuYbWENg6J/aH+vC1GJLDxMPTD7zBHQrpm6e+T0CFT
O3ZZ7TmcL4snOoW8vaRe0mBrpeF5GIch5uEQc5sqYSRH3HA8pFahX4RR+7Lb6Jj2hNEHmzNdCeRC
oSi2b8Tt9CzT9/joQgY+O2C12iAmMXGakjs/ZFfSZplQJQ6ZU5ncTTw9PojYkFpMUhVUEsotWXJL
n810pwzEu9gFl9C/5vDlytKwgia1oxrYO3VQUMxxXiWYcnlBvQtZthN0GiPbt3K5oGKAGw16X4Wc
pBVY9ZyDJNbCQVMscHlRxPeQJY8IgZuuHz3vjmeYZ82/yn/N7AuWUAzkAgGevFfUIUK+xeKcuT2Z
kIBtkzskLA49RZlGVtYVS1ICdT7lQiwSThFZilOoIJ6MRZjabpQckAItlXT9MlgcPb7A1WtjS2qx
OMLELIZBNogygbCIRLHkBnFmQtTMoj+9aFXcsZTd17PNhdR3cF9Knry+lYy5HepkrJ1a9Jpgrewk
ySbqqiTbJELbC2KFZRZAOETJqWKFJ1c26cUCY9938zyjOMA2iUWtT1i38FbAXDwBnmd51oO7m+7N
qHVu8plcZIo4kjrctf7R7w2tu37n5rLd3Tc/ikZdhh+dF7PLFwzj+/u/Tf3/7PVazG39/8FJNe3/
Dysn2P8fHR3q/v+HgO7/df+v+/9X7/+nGL5T6A3P2pbcwe+ujLc4RD2yNJr5WPDxkYw/8N3YZmjZ
ebD2s8E5RYPcn+a+DqQ9+OmGrwanhjFx7SiCQb4ur68O1xNUceRhRRxIl6iVITnEemd/azUtQ87W
0tL0uboGeUf03sNjThKIkmFdzYWIQegzUeRD5PosS7DcA2SRM2jruvf1ssnGqL7Sgu+qZiiZSe28
u/gOgMc1rq9MlpYKGbstlSPPGTBfavCRr/khqR0NWYy5IrTcVkrWV0lmqlZCq4l2bcXAucKtvtVT
qy7N1r/JKpkQ2U3quHp27IVtkDR41t4iTzIG741/Q5Ji1gG/cjSZVhLdWPKCfGl3rdbwotFsjcy1
VIWctxKjrhacW2rMvE9EOfmyClIFm/GWeHhQQrm8tJl8+/mfrf8yzyVMqFerMbbUf5VjHFP1X+Wo
ss/vf/arFV3//QgYWKoFe4ctJD/K72NqGFZjeNmysMv6+eePTB3Rlh3yT6P5RqRgWK3rfqdhtRAZ
T2aj2etetC85NxlIxnlrZJ23h4LXPwcWptjIanQ6qrEZ/bssDz0M6na32bk5b/Ub1hWn/5dIknIc
hWXXn9hueTYuq7MNH4Wsz6M8ij082oIVMyxcDGPUuxli2qcLL12GGgZWFmJ6r5NnhVrDnns1xlKZ
3DlkHN+LV3mCRJmRG76SfDeMq1bjvDXcsN5MjW0oCP5Au7cC2fzfsNwfXmNL/h/uHyX3/5XDgwPe
/52cHOzr/P8RoPs/3f/p/u+V+79FAzi4bZ39yuuzhoVGv15pBTfNGzIt4dYOPerd1zCkCK8Axa2o
NB9PL644/qKqAIEdssSwSeHLZA0LjX5bsMNEg7n9xGNtMrO9e/TINPTni7hn/uIRPSsijKP6GGGE
EfcJHTn30Y8lQyq5aEplxZ02mbm6HUvtbNX8NT+LNfHnL7KvIV48h7a6m4TPIK8ei3AZ+nFQhMUV
GnxZaoQWNOnFppeUzOmn4kW5jp5Fo0J628hbGfTXp5eRYLlu0eAFVKKwX7qd/Bai9IpuK5XASG+A
n2U+j11G0aN5tLSpWmlYlzur5d5pg3cXPU/i3xf2rYVVuTNtq5w0BnfyUmiU6TqzlzOJxYpSZ9t1
/cdrqfiTXAtDK1Kz0QxzPNvoZi8UcnZZ10euqL+CtBzjaWuXXr4r4UgqnLxvXQr1b+41NwTBln5T
PuVYCEsM7s5bTTwyWmmrvL5TLsIb3DdKHq8iSgNWkjilPFK5WqqI/8ZI+9lNO+J/u07SoEGDBg0a
NGjQoEGDBg0aNGjQoEGDBg0aNGjQoEGDBg0aNGjQoEGDhv81+A+Mcjn7AFAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55407</attachid>
            <date>2010-05-07 12:34:06 -0700</date>
            <delta_ts>2010-05-08 11:51:59 -0700</delta_ts>
            <desc>patch 3</desc>
            <filename>0001-Qt-Platform-plugin.patch</filename>
            <type>text/plain</type>
            <size>16748</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSBmNWVjOThhYjI4M2YyMjU4ZjRkYjc5YmFkOGMyNGRmN2U4NWU3YzYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgNyBNYXkgMjAxMCAxNjozMjoyMyAtMDMwMApTdWJqZWN0OiBbUEFU
Q0hdIFtRdF0gUGxhdGZvcm0gcGx1Z2luCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Mzg0MzgKClJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgoKU2VsZWN0IHBvcHVw
cyBkZWxlZ2F0ZSBwcml2YXRlIEFQSS4gVG8gcHJvdmlkZSBzZWxlY3QgcG9wdXAgZGVsZWdhdGVz
CmEgcGx1Z2luIHRoYXQgaW1wbGVtZW50cyBRV2ViS2l0UGxhdGZvcm1QbHVnaW4gbXVzdCBiZSBm
b3VuZAppbiBRQ29yZUFwcGxpY2F0aW9uOjpsaWJyYXJ5UGF0aHMuCgpXZWJDb3JlOgoKKiBXZWJD
b3JlLnBybzoKCldlYktpdC9xdDoKCiogQXBpL2hlYWRlcnMucHJpOgoqIEFwaS9xd2Via2l0cGxh
dGZvcm1wbHVnaW4uaDogQWRkZWQuCihRV2ViU2VsZWN0RGF0YTo6flFXZWJTZWxlY3REYXRhKToK
KFFXZWJTZWxlY3REYXRhOjopOgooUVdlYlNlbGVjdE1ldGhvZDo6flFXZWJTZWxlY3RNZXRob2Qp
OgooUVdlYktpdFBsYXRmb3JtUGx1Z2luOjp+UVdlYktpdFBsYXRmb3JtUGx1Z2luKToKKFFXZWJL
aXRQbGF0Zm9ybVBsdWdpbjo6KToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6
CihXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2VsZWN0UG9wdXApOgoqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CiogV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdp
bi5jcHA6IEFkZGVkLgooV2ViQ29yZTo6U2VsZWN0RGF0YTo6U2VsZWN0RGF0YSk6CihXZWJDb3Jl
OjpTZWxlY3REYXRhOjppdGVtVGV4dCk6CihXZWJDb3JlOjpTZWxlY3REYXRhOjppdGVtVG9vbFRp
cCk6CihXZWJDb3JlOjpTZWxlY3REYXRhOjppdGVtSXNFbmFibGVkKToKKFdlYkNvcmU6OlNlbGVj
dERhdGE6Oml0ZW1Db3VudCk6CihXZWJDb3JlOjpTZWxlY3REYXRhOjppdGVtSXNTZWxlY3RlZCk6
CihXZWJDb3JlOjpTZWxlY3REYXRhOjptdWx0aXBsZSk6CihXZWJDb3JlOjpTZWxlY3REYXRhOjpp
dGVtVHlwZSk6CihXZWJDb3JlOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OlNlbGVjdElucHV0
TWV0aG9kV3JhcHBlcik6CihXZWJDb3JlOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OnNob3cp
OgooV2ViQ29yZTo6U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpoaWRlKToKKFdlYkNvcmU6OlNl
bGVjdElucHV0TWV0aG9kV3JhcHBlcjo6c2VsZWN0SXRlbSk6CihXZWJDb3JlOjpTZWxlY3RJbnB1
dE1ldGhvZFdyYXBwZXI6OmRpZEhpZGUpOgooV2ViQ29yZTo6Z2V0UGx1Z2luT2JqZWN0KToKKFdl
YkNvcmU6OlF0UGxhdGZvcm1QbHVnaW46On5RdFBsYXRmb3JtUGx1Z2luKToKKFdlYkNvcmU6OlF0
UGxhdGZvcm1QbHVnaW46OnBsdWdpbik6CihXZWJDb3JlOjpRdFBsYXRmb3JtUGx1Z2luOjpjcmVh
dGVTZWxlY3RJbnB1dE1ldGhvZCk6CiogV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5o
OiBBZGRlZC4KKFdlYkNvcmU6OlF0UGxhdGZvcm1QbHVnaW46OlF0UGxhdGZvcm1QbHVnaW4pOgot
LS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMg
KysrCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAy
ICsKIFdlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkgICAgICAgICAgICAgICAgICAgICB8ICAgIDEg
KwogV2ViS2l0L3F0L0FwaS9xd2Via2l0cGxhdGZvcm1wbHVnaW4uaCAgICAgICAgIHwgICA3NyAr
KysrKysrKysrKysrCiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDQyICsrKysrKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5jcHAgICB8ICAgIDQgKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmggICAgIHwgICAgMyArCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdp
bi5jcHAgfCAgMTQ0ICsrKysrKysrKysrKysrKysrKysrKysrKysKIFdlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmggICB8ICAgNjQgKysrKysrKysrKysKIDkgZmlsZXMg
Y2hhbmdlZCwgMzUwIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx
MDA2NDQgV2ViS2l0L3F0L0FwaS9xd2Via2l0cGxhdGZvcm1wbHVnaW4uaAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmNwcAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2lu
LmgKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDc4MDJlN2QuLmQ2MjIwY2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDUtMDIgIEx1aXogQWdv
c3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gSGF1c21hbm4uCisKKyAgICAgICAgW1F0XSBQbGF0Zm9ybSBwbHVnaW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NDM4CisKKyAgICAg
ICAgU2VsZWN0IHBvcHVwcyBkZWxlZ2F0ZSBwcml2YXRlIEFQSS4gVG8gcHJvdmlkZSBzZWxlY3Qg
cG9wdXAgZGVsZWdhdGVzCisgICAgICAgIGEgcGx1Z2luIHRoYXQgaW1wbGVtZW50cyBRV2ViS2l0
UGxhdGZvcm1QbHVnaW4gbXVzdCBiZSBmb3VuZAorICAgICAgICBpbiBRQ29yZUFwcGxpY2F0aW9u
OjpsaWJyYXJ5UGF0aHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKwogMjAxMC0wNC0zMCAg
TGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dl
YkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZWY2MDIxZC4uYjZmZWFiYiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yMDQ0LDYgKzIw
NDQsNyBAQCBIRUFERVJTICs9IFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaCBcCiAgICAgJCRQV0QvLi4v
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5oIFwKKyAgICAkJFBXRC8uLi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5oIFwKICAgICAkJFBXRC9w
bGF0Zm9ybS9uZXR3b3JrL3F0L0Ruc1ByZWZldGNoSGVscGVyLmgKIAogU09VUkNFUyArPSBcCkBA
IC0yMTMyLDYgKzIxMzMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuY3BwIFwKICAgICAuLi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNwcCBcCisgICAgLi4vV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uY3BwIFwKICAgICAuLi9XZWJLaXQvcXQv
QXBpL3F3ZWJmcmFtZS5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmll
dy5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIFwKZGlmZiAtLWdpdCBh
L1dlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkgYi9XZWJLaXQvcXQvQXBpL2hlYWRlcnMucHJpCmlu
ZGV4IDFhNDI1OTcuLjI5YmIxMjUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvaGVhZGVycy5w
cmkKKysrIGIvV2ViS2l0L3F0L0FwaS9oZWFkZXJzLnByaQpAQCAtMSw2ICsxLDcgQEAKIFdFQktJ
VF9BUElfSEVBREVSUyA9ICQkUFdEL3F3ZWJmcmFtZS5oIFwKICAgICAgICAgICAgICAgICAgICAg
ICQkUFdEL3FncmFwaGljc3dlYnZpZXcuaCBcCiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC9x
d2Via2l0Z2xvYmFsLmggXAorICAgICAgICAgICAgICAgICAgICAgJCRQV0QvcXdlYmtpdHBsYXRm
b3JtcGx1Z2luLmggXAogICAgICAgICAgICAgICAgICAgICAgJCRQV0QvcXdlYnBhZ2UuaCBcCiAg
ICAgICAgICAgICAgICAgICAgICAkJFBXRC9xd2Vidmlldy5oIFwKICAgICAgICAgICAgICAgICAg
ICAgICQkUFdEL3F3ZWJzZXR0aW5ncy5oIFwKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdl
YmtpdHBsYXRmb3JtcGx1Z2luLmggYi9XZWJLaXQvcXQvQXBpL3F3ZWJraXRwbGF0Zm9ybXBsdWdp
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMDI0YWUKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJraXRwbGF0Zm9ybXBsdWdpbi5oCkBAIC0wLDAg
KzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFFXRUJLSVRQTEFURk9STVBMVUdJ
Tl9ICisjZGVmaW5lIFFXRUJLSVRQTEFURk9STVBMVUdJTl9ICisKKy8qCisgKiAgV2FybmluZzog
VGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBpcyBub3QgIHBhcnQgb2YgdGhlIHB1YmxpYyBRdFdl
YktpdCBBUEkKKyAqICBhbmQgbWF5IGJlIGNoYW5nZWQgZnJvbSB2ZXJzaW9uIHRvIHZlcnNpb24g
b3IgZXZlbiBiZSBjb21wbGV0ZWx5IHJlbW92ZWQuCisqLworCisjaW5jbHVkZSA8UU9iamVjdD4K
KworY2xhc3MgUVdlYlNlbGVjdERhdGEKK3sKK3B1YmxpYzoKKyAgICBpbmxpbmUgflFXZWJTZWxl
Y3REYXRhKCkge30KKworICAgIGVudW0gSXRlbVR5cGUgeyBPcHRpb24sIEdyb3VwLCBTZXBhcmF0
b3IgfTsKKworICAgIHZpcnR1YWwgSXRlbVR5cGUgaXRlbVR5cGUoaW50KSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCBRU3RyaW5nIGl0ZW1UZXh0KGludCBpbmRleCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgUVN0cmluZyBpdGVtVG9vbFRpcChpbnQgaW5kZXgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIGJvb2wgaXRlbUlzRW5hYmxlZChpbnQgaW5kZXgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IGJvb2wgaXRlbUlzU2VsZWN0ZWQoaW50IGluZGV4KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBp
bnQgaXRlbUNvdW50KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBtdWx0aXBsZSgpIGNv
bnN0ID0gMDsKK307CisKK2NsYXNzIFFXZWJTZWxlY3RNZXRob2QgOiBwdWJsaWMgUU9iamVjdAor
eworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAgaW5saW5lIH5RV2ViU2VsZWN0TWV0aG9kKCkg
e30KKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IFFXZWJTZWxlY3REYXRhJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkgPSAwOworCitRX1NJR05BTFM6CisgICAgdm9pZCBzZWxl
Y3RJdGVtKGludCBpbmRleCwgYm9vbCBhbGxvd011bHRpcGx5U2VsZWN0aW9ucywgYm9vbCBzaGlm
dCk7CisgICAgdm9pZCBkaWRIaWRlKCk7Cit9OworCitjbGFzcyBRV2ViS2l0UGxhdGZvcm1QbHVn
aW4KK3sKK3B1YmxpYzoKKyAgICBpbmxpbmUgflFXZWJLaXRQbGF0Zm9ybVBsdWdpbigpIHt9CisK
KyAgICBlbnVtIEV4dGVuc2lvbiB7CisgICAgICAgIE11bHRpcGxlU2VsZWN0aW9ucworICAgIH07
CisKKyAgICB2aXJ0dWFsIFFXZWJTZWxlY3RNZXRob2QqIGNyZWF0ZVNlbGVjdElucHV0TWV0aG9k
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0V4dGVuc2lvbihFeHRlbnNp
b24gZXh0ZW5zaW9uKSBjb25zdCA9IDA7CisKK307CisKK1FfREVDTEFSRV9JTlRFUkZBQ0UoUVdl
YktpdFBsYXRmb3JtUGx1Z2luLCAiY29tLm5va2lhLlF0LldlYktpdC5QbGF0Zm9ybVBsdWdpbi8x
LjAiKTsKKworI2VuZGlmIC8vIFFXRUJLSVRQTEFURk9STVBMVUdJTl9ICmRpZmYgLS1naXQgYS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAyNzI0ZjQwLi4x
ODM5MjllIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMC0wNS0wMiAgTHVpeiBBZ29zdGluaSAgPGx1
aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBI
YXVzbWFubi4KKworICAgICAgICBbUXRdIFBsYXRmb3JtIHBsdWdpbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg0MzgKKworICAgICAgICBTZWxlY3Qg
cG9wdXBzIGRlbGVnYXRlIHByaXZhdGUgQVBJLiBUbyBwcm92aWRlIHNlbGVjdCBwb3B1cCBkZWxl
Z2F0ZXMKKyAgICAgICAgYSBwbHVnaW4gdGhhdCBpbXBsZW1lbnRzIFFXZWJLaXRQbGF0Zm9ybVBs
dWdpbiBtdXN0IGJlIGZvdW5kCisgICAgICAgIGluIFFDb3JlQXBwbGljYXRpb246OmxpYnJhcnlQ
YXRocy4KKworICAgICAgICAqIEFwaS9oZWFkZXJzLnByaToKKyAgICAgICAgKiBBcGkvcXdlYmtp
dHBsYXRmb3JtcGx1Z2luLmg6IEFkZGVkLgorICAgICAgICAoUVdlYlNlbGVjdERhdGE6On5RV2Vi
U2VsZWN0RGF0YSk6CisgICAgICAgIChRV2ViU2VsZWN0RGF0YTo6KToKKyAgICAgICAgKFFXZWJT
ZWxlY3RNZXRob2Q6On5RV2ViU2VsZWN0TWV0aG9kKToKKyAgICAgICAgKFFXZWJLaXRQbGF0Zm9y
bVBsdWdpbjo6flFXZWJLaXRQbGF0Zm9ybVBsdWdpbik6CisgICAgICAgIChRV2ViS2l0UGxhdGZv
cm1QbHVnaW46Oik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFBvcHVwKToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNlbGVjdERhdGE6OlNlbGVjdERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0RGF0
YTo6aXRlbVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0RGF0YTo6aXRlbVRvb2xUaXAp
OgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0RGF0YTo6aXRlbUlzRW5hYmxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTZWxlY3REYXRhOjppdGVtQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0RGF0YTo6aXRlbUlzU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0RGF0YTo6
bXVsdGlwbGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0RGF0YTo6aXRlbVR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpTZWxlY3RJbnB1dE1ldGhv
ZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpz
aG93KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6aGlkZSk6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OnNlbGVjdEl0ZW0p
OgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpkaWRIaWRlKToK
KyAgICAgICAgKFdlYkNvcmU6OmdldFBsdWdpbk9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpR
dFBsYXRmb3JtUGx1Z2luOjp+UXRQbGF0Zm9ybVBsdWdpbik6CisgICAgICAgIChXZWJDb3JlOjpR
dFBsYXRmb3JtUGx1Z2luOjpwbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6UXRQbGF0Zm9ybVBs
dWdpbjo6Y3JlYXRlU2VsZWN0SW5wdXRNZXRob2QpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1F0UGxhdGZvcm1QbHVnaW4uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpRdFBsYXRmb3Jt
UGx1Z2luOjpRdFBsYXRmb3JtUGx1Z2luKToKKwogMjAxMC0wNC0yOSAgTGFzemxvIEdvbWJvcyAg
PGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0
aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmNwcAppbmRleCBjZjEwMGY3Li42YTNmMjA1IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTU3MCw2ICs1NzAsMTAgQEAgYm9vbCBDaHJv
bWVDbGllbnRRdDo6YWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0CiAKIFF0QWJz
dHJhY3RXZWJQb3B1cCogQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFBvcHVwKCkKIHsKKyAg
ICBRdEFic3RyYWN0V2ViUG9wdXAqIHJlc3VsdCA9IG1fcGxhdGZvcm1QbHVnaW4uY3JlYXRlU2Vs
ZWN0SW5wdXRNZXRob2QoKTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICByZXR1cm4gcmVzdWx0
OworCiAjaWYgZGVmaW5lZChRX1dTX01BRU1PXzUpCiAgICAgcmV0dXJuIG5ldyBRdE1hZW1vV2Vi
UG9wdXA7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApp
bmRleCBhNDU3NWUyLi40OGE0YjBlIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlJlZkNvdW50ZWQuaCIKICNp
bmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJR
dFBsYXRmb3JtUGx1Z2luLmgiCiAKIFFUX0JFR0lOX05BTUVTUEFDRQogY2xhc3MgUUV2ZW50TG9v
cDsKQEAgLTE4MSw2ICsxODIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
c3RhdHVzQmFyVmlzaWJsZTsKICAgICAgICAgYm9vbCBtZW51QmFyVmlzaWJsZTsKICAgICAgICAg
UUV2ZW50TG9vcCogbV9ldmVudExvb3A7CisKKyAgICAgICAgUXRQbGF0Zm9ybVBsdWdpbiBtX3Bs
YXRmb3JtUGx1Z2luOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9R
dFBsYXRmb3JtUGx1Z2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40
YTkyMDJhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0UGxh
dGZvcm1QbHVnaW4uY3BwCkBAIC0wLDAgKzEsMTQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlF0UGxhdGZvcm1QbHVnaW4uaCIKKworI2luY2x1
ZGUgInF3ZWJraXRwbGF0Zm9ybXBsdWdpbi5oIgorCisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlv
bj4KKyNpbmNsdWRlIDxRRGlyPgorI2luY2x1ZGUgPFFQbHVnaW5Mb2FkZXI+CisjaW5jbHVkZSA8
UVNjb3BlZFBvaW50ZXI+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VsZWN0RGF0
YSA6IHB1YmxpYyBRV2ViU2VsZWN0RGF0YSB7CitwdWJsaWM6CisgICAgU2VsZWN0RGF0YShRdEFi
c3RyYWN0V2ViUG9wdXAqIGRhdGEpIDogZChkYXRhKSB7fQorCisgICAgdmlydHVhbCBJdGVtVHlw
ZSBpdGVtVHlwZShpbnQpIGNvbnN0OworICAgIHZpcnR1YWwgUVN0cmluZyBpdGVtVGV4dChpbnQg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIGQtPml0ZW1UZXh0KGluZGV4KTsgfQorICAgIHZpcnR1YWwg
UVN0cmluZyBpdGVtVG9vbFRpcChpbnQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGQtPml0ZW1Ub29s
VGlwKGluZGV4KTsgfQorICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKGludCBpbmRleCkg
Y29uc3QgeyByZXR1cm4gZC0+aXRlbUlzRW5hYmxlZChpbmRleCk7IH0KKyAgICB2aXJ0dWFsIGlu
dCBpdGVtQ291bnQoKSBjb25zdCB7IHJldHVybiBkLT5pdGVtQ291bnQoKTsgfQorICAgIHZpcnR1
YWwgYm9vbCBpdGVtSXNTZWxlY3RlZChpbnQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGQtPml0ZW1J
c1NlbGVjdGVkKGluZGV4KTsgfQorICAgIHZpcnR1YWwgYm9vbCBtdWx0aXBsZSgpIGNvbnN0IHsg
cmV0dXJuIGQtPm11bHRpcGxlKCk7IH0KKworcHJpdmF0ZToKKyAgICBRdEFic3RyYWN0V2ViUG9w
dXAqIGQ7Cit9OworCitRV2ViU2VsZWN0RGF0YTo6SXRlbVR5cGUgU2VsZWN0RGF0YTo6aXRlbVR5
cGUoaW50IGluZGV4KSBjb25zdAoreworICAgIHN3aXRjaCAoZC0+aXRlbVR5cGUoaW5kZXgpKSB7
CisgICAgY2FzZSBRdEFic3RyYWN0V2ViUG9wdXA6OlNlcGFyYXRvcjogcmV0dXJuIFNlcGFyYXRv
cjsKKyAgICBjYXNlIFF0QWJzdHJhY3RXZWJQb3B1cDo6R3JvdXA6IHJldHVybiBHcm91cDsKKyAg
ICBkZWZhdWx0OiByZXR1cm4gT3B0aW9uOworICAgIH0KK30KKworU2VsZWN0SW5wdXRNZXRob2RX
cmFwcGVyOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXIoUVdlYlNlbGVjdE1ldGhvZCogcGx1Z2lu
KQorICAgIDogbV9wbHVnaW4ocGx1Z2luKQoreworICAgIG1fcGx1Z2luLT5zZXRQYXJlbnQodGhp
cyk7CisgICAgY29ubmVjdChtX3BsdWdpbiwgU0lHTkFMKGRpZEhpZGUoKSksIHRoaXMsIFNMT1Qo
ZGlkSGlkZSgpKSk7CisgICAgY29ubmVjdChtX3BsdWdpbiwgU0lHTkFMKHNlbGVjdEl0ZW0oaW50
LCBib29sLCBib29sKSksIHRoaXMsIFNMT1Qoc2VsZWN0SXRlbShpbnQsIGJvb2wsIGJvb2wpKSk7
Cit9CisKK3ZvaWQgU2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpzaG93KCkKK3sKKyAgICBTZWxl
Y3REYXRhIGRhdGEodGhpcyk7CisgICAgbV9wbHVnaW4tPnNob3coZGF0YSk7Cit9CisKK3ZvaWQg
U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpoaWRlKCkKK3sKKyAgICBtX3BsdWdpbi0+aGlkZSgp
OworfQorCit2b2lkIFNlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6c2VsZWN0SXRlbShpbnQgaW5k
ZXgsIGJvb2wgYWxsb3dNdWx0aXBseVNlbGVjdGlvbnMsIGJvb2wgc2hpZnQpCit7CisgICAgUXRB
YnN0cmFjdFdlYlBvcHVwOjpzZWxlY3RJdGVtKGluZGV4LCBhbGxvd011bHRpcGx5U2VsZWN0aW9u
cywgc2hpZnQpOworfQorCit2b2lkIFNlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6ZGlkSGlkZSgp
Cit7CisgICAgUXRBYnN0cmFjdFdlYlBvcHVwOjpwb3B1cERpZEhpZGUoKTsKK30KKworLy8gUXRQ
bGF0Zm9ybVBsdWdpbgorCitzdGF0aWMgUVdlYktpdFBsYXRmb3JtUGx1Z2luKiBnZXRQbHVnaW5P
YmplY3QoKQoreworICAgIGNvbnN0IFFMYXRpbjFTdHJpbmcgc3VmZml4KCIvd2Via2l0LyIpOwor
ICAgIGNvbnN0IFFTdHJpbmdMaXN0IHBhdGhzID0gUUNvcmVBcHBsaWNhdGlvbjo6bGlicmFyeVBh
dGhzKCk7CisgICAgUU9iamVjdCogb2JqID0gMDsKKyAgICBmb3IgKGludCBpID0gMDsgIW9iaiAm
JiBpIDwgcGF0aHMuY291bnQoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IFFEaXIgZGlyKHBhdGhz
W2ldICsgc3VmZml4KTsKKyAgICAgICAgaWYgKCFkaXIuZXhpc3RzKCkpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgY29uc3QgUVN0cmluZ0xpc3QgZmlsZXMgPSBkaXIuZW50cnlMaXN0
KFFEaXI6OkZpbGVzKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlcy5jb3VudCgp
OyArK2kpIHsKKyAgICAgICAgICAgIFFQbHVnaW5Mb2FkZXIgcGx1Z2luTG9hZGVyKGRpci5hYnNv
bHV0ZUZpbGVQYXRoKGZpbGVzLmF0KGkpKSk7CisgICAgICAgICAgICBpZiAoIXBsdWdpbkxvYWRl
ci5sb2FkKCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBvYmogPSBw
bHVnaW5Mb2FkZXIuaW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGlmIChvYmopIHsKKyAgICAgICAg
ICAgICAgICBRV2ViS2l0UGxhdGZvcm1QbHVnaW4qIHJlc3VsdCA9IHFvYmplY3RfY2FzdDxRV2Vi
S2l0UGxhdGZvcm1QbHVnaW4qPihvYmopOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgZGVsZXRl
IG9iajsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBsdWdpbkxvYWRlci51bmxvYWQoKTsK
KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworUXRQbGF0Zm9ybVBsdWdpbjo6
flF0UGxhdGZvcm1QbHVnaW4oKQoreworICAgIGRlbGV0ZSBtX3BsdWdpbjsKK30KKworUVdlYktp
dFBsYXRmb3JtUGx1Z2luKiBRdFBsYXRmb3JtUGx1Z2luOjpwbHVnaW4oKQoreworICAgIGlmICht
X2xvYWRlZCkKKyAgICAgICAgcmV0dXJuIG1fcGx1Z2luOworCisgICAgbV9sb2FkZWQgPSB0cnVl
OworICAgIG1fcGx1Z2luID0gZ2V0UGx1Z2luT2JqZWN0KCk7CisgICAgcmV0dXJuIG1fcGx1Z2lu
OworfQorCitRdEFic3RyYWN0V2ViUG9wdXAqIFF0UGxhdGZvcm1QbHVnaW46OmNyZWF0ZVNlbGVj
dElucHV0TWV0aG9kKCkKK3sKKyAgICBRV2ViS2l0UGxhdGZvcm1QbHVnaW4qIHAgPSBwbHVnaW4o
KTsKKyAgICBpZiAoIXApCisgICAgICAgIHJldHVybiAwOworCisgICAgUVdlYlNlbGVjdE1ldGhv
ZCogc2VsZWN0b3IgPSBwLT5jcmVhdGVTZWxlY3RJbnB1dE1ldGhvZCgpOworICAgIGlmICghc2Vs
ZWN0b3IpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG5ldyBTZWxlY3RJbnB1dE1l
dGhvZFdyYXBwZXIoc2VsZWN0b3IpOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L1F0UGxhdGZvcm1QbHVnaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45
YjczMDc5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0UGxh
dGZvcm1QbHVnaW4uaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRl
ZiBRdFBsYXRmb3JtUGx1Z2luX2gKKyNkZWZpbmUgUXRQbGF0Zm9ybVBsdWdpbl9oCisKKyNpbmNs
dWRlICJRdEFic3RyYWN0V2ViUG9wdXAuaCIKKyNpbmNsdWRlIDxRT2JqZWN0PgorCitjbGFzcyBR
V2ViU2VsZWN0TWV0aG9kOworY2xhc3MgUVdlYktpdFBsYXRmb3JtUGx1Z2luOworCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlbGVjdElucHV0TWV0aG9kV3JhcHBlciA6IHB1YmxpYyBR
T2JqZWN0LCBwdWJsaWMgUXRBYnN0cmFjdFdlYlBvcHVwIHsKKyAgICBRX09CSkVDVAorcHVibGlj
OgorICAgIFNlbGVjdElucHV0TWV0aG9kV3JhcHBlcihRV2ViU2VsZWN0TWV0aG9kKiBwbHVnaW4p
OworCisgICAgdmlydHVhbCB2b2lkIHNob3coKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOwor
Citwcml2YXRlIFFfU0xPVFM6CisgICAgdm9pZCBzZWxlY3RJdGVtKGludCBpbmRleCwgYm9vbCBh
bGxvd011bHRpcGx5U2VsZWN0aW9ucywgYm9vbCBzaGlmdCk7CisgICAgdm9pZCBkaWRIaWRlKCk7
CisKK3ByaXZhdGU6CisgICAgUVdlYlNlbGVjdE1ldGhvZCogbV9wbHVnaW47Cit9OworCitjbGFz
cyBRdFBsYXRmb3JtUGx1Z2luIHsKK3B1YmxpYzoKKyAgICBRdFBsYXRmb3JtUGx1Z2luKCkgOiBt
X2xvYWRlZChmYWxzZSksIG1fcGx1Z2luKDApIHt9CisgICAgflF0UGxhdGZvcm1QbHVnaW4oKTsK
KworICAgIFF0QWJzdHJhY3RXZWJQb3B1cCogY3JlYXRlU2VsZWN0SW5wdXRNZXRob2QoKTsKKwor
cHJpdmF0ZToKKyAgICBib29sIG1fbG9hZGVkOworICAgIFFXZWJLaXRQbGF0Zm9ybVBsdWdpbiog
bV9wbHVnaW47CisKKyAgICBRV2ViS2l0UGxhdGZvcm1QbHVnaW4qIHBsdWdpbigpOworfTsKKwor
fQorCisjZW5kaWYgLy8gUXRQbGF0Zm9ybVBsdWdpbl9oCi0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>