<?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>40233</bug_id>
          
          <creation_ts>2010-06-07 07:39:38 -0700</creation_ts>
          <short_desc>[Qt] Initial WebKit2 implementation</short_desc>
          <delta_ts>2010-07-09 08:39:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P3</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>abecsi</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>hausmann</cc>
    
    <cc>kbalazs</cc>
    
    <cc>kenneth</cc>
    
    <cc>koivisto</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>ossy</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zalan</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>234844</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-06-07 07:39:38 -0700</bug_when>
    <thetext>Basic implementation of WebKit2 for Qt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234846</commentid>
    <comment_count>1</comment_count>
      <attachid>58029</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-06-07 07:42:24 -0700</bug_when>
    <thetext>Created attachment 58029
initial patch

Loads and renders pages. No real Qt API, requires hitting C API to use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234887</commentid>
    <comment_count>2</comment_count>
      <attachid>58037</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-06-07 09:36:37 -0700</bug_when>
    <thetext>Created attachment 58037
better mmap use, other fixes

Reuse mapped regions in UpdateChunk so we don&apos;t end up generating disk io all the time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245273</commentid>
    <comment_count>3</comment_count>
      <attachid>60226</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 05:32:48 -0700</bug_when>
    <thetext>Created attachment 60226
RunLoop

not build yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245282</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-01 05:47:30 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/62253 might have broken Qt Linux Release minimal, Qt Linux ARMv5 Release, and Qt Linux ARMv7 Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245284</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 05:52:16 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/62253
http://trac.webkit.org/changeset/62254 (for reverting some extra files)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245293</commentid>
    <comment_count>6</comment_count>
      <attachid>60231</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 06:05:04 -0700</bug_when>
    <thetext>Created attachment 60231
WorkQueue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245295</commentid>
    <comment_count>7</comment_count>
      <attachid>60233</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 06:06:35 -0700</bug_when>
    <thetext>Created attachment 60233
EventFactory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245296</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-01 06:07:33 -0700</bug_when>
    <thetext>Attachment 60231 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/Platform/qt/WorkQueueQt.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/Platform/qt/WorkQueueQt.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/Platform/qt/WorkQueueQt.cpp:35:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 3 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245297</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-01 06:08:08 -0700</bug_when>
    <thetext>Attachment 60233 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/Shared/qt/WebEventFactory.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/Shared/qt/WebEventFactory.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/Shared/qt/WebEventFactory.cpp:42:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
WebKit2/Shared/qt/WebEventFactory.cpp:54:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebKit2/Shared/qt/WebEventFactory.cpp:154:  Extra space between int and nativeVirtualKeyCode  [whitespace/declaration] [3]
Total errors found: 5 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245300</commentid>
    <comment_count>10</comment_count>
      <attachid>60233</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 06:13:52 -0700</bug_when>
    <thetext>Comment on attachment 60233
EventFactory

r=me for WebEventFactory

qt/WebEventFactoryQt.cpp might be a better name for platform specific file (even though naming for other platforms is inconsistent)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245304</commentid>
    <comment_count>11</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 06:19:19 -0700</bug_when>
    <thetext>WorkQueue: http://trac.webkit.org/changeset/62256</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245306</commentid>
    <comment_count>12</comment_count>
      <attachid>60234</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 06:30:31 -0700</bug_when>
    <thetext>Created attachment 60234
Patch (EventFactory) for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245308</commentid>
    <comment_count>13</comment_count>
      <attachid>60235</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 06:35:25 -0700</bug_when>
    <thetext>Created attachment 60235
Initial Qt API for WK2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245309</commentid>
    <comment_count>14</comment_count>
      <attachid>60235</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 06:36:01 -0700</bug_when>
    <thetext>Comment on attachment 60235
Initial Qt API for WK2

wrong file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245310</commentid>
    <comment_count>15</comment_count>
      <attachid>60236</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 06:36:26 -0700</bug_when>
    <thetext>Created attachment 60236
Initial Qt API for WK2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245312</commentid>
    <comment_count>16</comment_count>
      <attachid>60238</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 06:39:42 -0700</bug_when>
    <thetext>Created attachment 60238
Connection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245314</commentid>
    <comment_count>17</comment_count>
      <attachid>60239</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 06:45:01 -0700</bug_when>
    <thetext>Created attachment 60239
Initial Qt API for WK2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245317</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-01 06:46:17 -0700</bug_when>
    <thetext>Attachment 60239 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
Last 3072 characters of output:
e: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkgraphicswidget.cpp:24:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkgraphicswidget.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkgraphicswidget.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkgraphicswidget.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkgraphicswidget.cpp:33:  wtf includes should be &lt;wtf/file.h&gt; instead of &quot;wtf/file.h&quot;.  [build/include] [4]
WebKit2/UIProcess/API/qt/qwkgraphicswidget.cpp:48:  This { should be at the end of the previous line  [whitespace/braces] [4]
WebKit2/UIProcess/API/qt/qwkgraphicswidget.cpp:52:  _q_scaleChanged is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/UIProcess/API/qt/qwkgraphicswidget.cpp:271:  QWKGraphicsWidgetPrivate::_q_scaleChanged is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:21:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:24:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:27:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:28:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:137:  Declaration has space between type name and * in QAction *a  [whitespace/declaration] [3]
WebKit2/UIProcess/API/qt/qwkpage.cpp:178:  QWKPagePrivate::_q_webActionTriggered is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:180:  Declaration has space between type name and * in QAction *a  [whitespace/declaration] [3]
WebKit2/UIProcess/API/qt/qwkpage.cpp:338:  Declaration has space between type name and * in QAction *a  [whitespace/declaration] [3]
WebKit2/UIProcess/API/qt/qwkpage.h:1:  #ifndef header guard has wrong style, please use: qwkpage_h  [build/header_guard] [5]
WebKit2/UIProcess/API/qt/qwkpage_p.h:26:  wtf includes should be &lt;wtf/file.h&gt; instead of &quot;wtf/file.h&quot;.  [build/include] [4]
WebKit2/UIProcess/API/qt/qwkpage_p.h:26:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage_p.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage_p.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage_p.h:61:  _q_webActionTriggered is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 28 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245319</commentid>
    <comment_count>19</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 06:52:53 -0700</bug_when>
    <thetext>Connection: http://trac.webkit.org/changeset/62257</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245327</commentid>
    <comment_count>20</comment_count>
      <attachid>60243</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 07:14:48 -0700</bug_when>
    <thetext>Created attachment 60243
linux build fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245329</commentid>
    <comment_count>21</comment_count>
      <attachid>60244</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 07:18:07 -0700</bug_when>
    <thetext>Created attachment 60244
Initial Qt API for WK2

Renamed the class and sorted the files properly, it will still complain because of missing config.h etc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245332</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-01 07:20:02 -0700</bug_when>
    <thetext>Attachment 60244 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/qt/qwkpage.cpp:21:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:24:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:27:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:176:  QWKPagePrivate::_q_webActionTriggered is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/UIProcess/API/qt/qgraphicswkview.h:7:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qgraphicswkview.h:8:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qgraphicswkview.cpp:21:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qgraphicswkview.cpp:48:  _q_scaleChanged is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/UIProcess/API/qt/qgraphicswkview.cpp:267:  QGraphicsWKViewPrivate::_q_scaleChanged is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/UIProcess/API/qt/qwkpage_p.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage_p.h:30:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage_p.h:61:  _q_webActionTriggered is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 12 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245338</commentid>
    <comment_count>23</comment_count>
      <attachid>60246</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 07:35:34 -0700</bug_when>
    <thetext>Created attachment 60246
Initial Qt API for WK2 (w/o special stuff)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245341</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-01 07:37:39 -0700</bug_when>
    <thetext>Attachment 60246 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/qt/qwkpage.cpp:21:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:24:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:27:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:176:  QWKPagePrivate::_q_webActionTriggered is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/UIProcess/API/qt/qgraphicswkview.h:7:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qgraphicswkview.h:8:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qgraphicswkview.cpp:21:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage_p.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage_p.h:30:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage_p.h:61:  _q_webActionTriggered is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 10 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245342</commentid>
    <comment_count>25</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 07:38:38 -0700</bug_when>
    <thetext>linux build fixes: http://trac.webkit.org/changeset/62260</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245344</commentid>
    <comment_count>26</comment_count>
      <attachid>60248</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 07:48:41 -0700</bug_when>
    <thetext>Created attachment 60248
Export symbols on Linux with GCC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245345</commentid>
    <comment_count>27</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 07:53:02 -0700</bug_when>
    <thetext>r=me for the Qt API classed (QGraphicsWKView and QWKPage). Note that this is still work in progress and not meant to be the final state of the API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245350</commentid>
    <comment_count>28</comment_count>
      <attachid>60250</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 08:11:34 -0700</bug_when>
    <thetext>Created attachment 60250
(r62287 - p=kenneth, r=antti) Initial Qt API for WK2 for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245352</commentid>
    <comment_count>29</comment_count>
      <attachid>60251</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 08:18:39 -0700</bug_when>
    <thetext>Created attachment 60251
UpdateChunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245354</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-01 08:19:25 -0700</bug_when>
    <thetext>Attachment 60251 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/Shared/qt/UpdateChunk.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/Shared/qt/UpdateChunk.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/Shared/qt/UpdateChunk.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 3 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245357</commentid>
    <comment_count>31</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 08:27:40 -0700</bug_when>
    <thetext>UpdateChunk: http://trac.webkit.org/changeset/62261</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245358</commentid>
    <comment_count>32</comment_count>
      <attachid>60252</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 08:31:29 -0700</bug_when>
    <thetext>Created attachment 60252
Default client impl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245362</commentid>
    <comment_count>33</comment_count>
      <attachid>60252</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-01 08:46:30 -0700</bug_when>
    <thetext>Comment on attachment 60252
Default client impl.

r=me, with discussed changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245364</commentid>
    <comment_count>34</comment_count>
      <attachid>60255</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 08:50:58 -0700</bug_when>
    <thetext>Created attachment 60255
(r62295 - p=kenneth, r=antti) Default client impl. for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245371</commentid>
    <comment_count>35</comment_count>
      <attachid>60234</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-01 09:04:58 -0700</bug_when>
    <thetext>Comment on attachment 60234
Patch (EventFactory) for landing

Clearing flags on attachment: 60234

Committed r62263: &lt;http://trac.webkit.org/changeset/62263&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245377</commentid>
    <comment_count>36</comment_count>
      <attachid>60248</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-01 09:17:02 -0700</bug_when>
    <thetext>Comment on attachment 60248
Export symbols on Linux with GCC

Clearing flags on attachment: 60248

Committed r62267: &lt;http://trac.webkit.org/changeset/62267&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245378</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-01 09:17:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245427</commentid>
    <comment_count>38</comment_count>
      <attachid>60264</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 11:07:13 -0700</bug_when>
    <thetext>Created attachment 60264
Export symbols on Linux with GCC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245436</commentid>
    <comment_count>39</comment_count>
      <attachid>60266</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 11:17:04 -0700</bug_when>
    <thetext>Created attachment 60266
(r62297 - p=kenneth, rs=weinig) Patch &apos;Export symbols on Linux with GCC&apos; for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245448</commentid>
    <comment_count>40</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-01 11:36:40 -0700</bug_when>
    <thetext>We still have pending stuff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245496</commentid>
    <comment_count>41</comment_count>
      <attachid>60250</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-07-01 12:47:59 -0700</bug_when>
    <thetext>Comment on attachment 60250
(r62287 - p=kenneth, r=antti) Initial Qt API for WK2 for landing

Landed in http://trac.webkit.org/changeset/62287</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245523</commentid>
    <comment_count>42</comment_count>
      <attachid>60255</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-07-01 13:45:55 -0700</bug_when>
    <thetext>Comment on attachment 60255
(r62295 - p=kenneth, r=antti) Default client impl. for landing

Landed in http://trac.webkit.org/changeset/62295</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245532</commentid>
    <comment_count>43</comment_count>
      <attachid>60266</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-07-01 13:54:25 -0700</bug_when>
    <thetext>Comment on attachment 60266
(r62297 - p=kenneth, rs=weinig) Patch &apos;Export symbols on Linux with GCC&apos; for landing

Landed in http://trac.webkit.org/changeset/62297</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245851</commentid>
    <comment_count>44</comment_count>
      <attachid>60233</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-02 03:16:17 -0700</bug_when>
    <thetext>Comment on attachment 60233
EventFactory

Cleared Antti Koivisto&apos;s review+ from obsolete attachment 60233 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245852</commentid>
    <comment_count>45</comment_count>
      <attachid>60246</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-02 03:16:23 -0700</bug_when>
    <thetext>Comment on attachment 60246
Initial Qt API for WK2 (w/o special stuff)

Cleared Antti Koivisto&apos;s review+ from obsolete attachment 60246 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245853</commentid>
    <comment_count>46</comment_count>
      <attachid>60252</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-02 03:16:28 -0700</bug_when>
    <thetext>Comment on attachment 60252
Default client impl.

Cleared Antti Koivisto&apos;s review+ from obsolete attachment 60252 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246571</commentid>
    <comment_count>47</comment_count>
      <attachid>60512</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-05 04:30:16 -0700</bug_when>
    <thetext>Created attachment 60512
ChunkedUpdateDrawingArea + Proxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246572</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-05 04:32:26 -0700</bug_when>
    <thetext>Attachment 60512 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/UIProcess/qt/ChunkedUpdateDrawingAreaProxyQt.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/qt/ChunkedUpdateDrawingAreaProxyQt.cpp:64:  Missing space after ,  [whitespace/comma] [3]
WebKit2/WebProcess/WebPage/qt/ChunkedUpdateDrawingAreaQt.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/WebProcess/WebPage/qt/ChunkedUpdateDrawingAreaQt.cpp:39:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 4 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246584</commentid>
    <comment_count>49</comment_count>
      <attachid>60516</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-05 05:15:09 -0700</bug_when>
    <thetext>Created attachment 60516
ChunkedUpdateDrawingArea + Proxy (r62481 + 62483)

make the stylebot happier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246588</commentid>
    <comment_count>50</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-05 05:16:46 -0700</bug_when>
    <thetext>Attachment 60516 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/UIProcess/qt/ChunkedUpdateDrawingAreaProxyQt.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/WebProcess/WebPage/qt/ChunkedUpdateDrawingAreaQt.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246593</commentid>
    <comment_count>51</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-05 05:31:22 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/62481 might have broken Qt Linux Release minimal, Qt Linux ARMv5 Release, and Qt Linux ARMv7 Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246598</commentid>
    <comment_count>52</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-05 05:37:14 -0700</bug_when>
    <thetext>ChunkedUpdateDrawingArea + Proxy: 
http://trac.webkit.org/changeset/62481
http://trac.webkit.org/changeset/62483 (reverting project file change)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246604</commentid>
    <comment_count>53</comment_count>
      <attachid>60520</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-05 06:09:14 -0700</bug_when>
    <thetext>Created attachment 60520
Qt process launcher</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246606</commentid>
    <comment_count>54</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-05 06:12:51 -0700</bug_when>
    <thetext>Attachment 60520 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246607</commentid>
    <comment_count>55</comment_count>
      <attachid>60520</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-05 06:14:11 -0700</bug_when>
    <thetext>Comment on attachment 60520
Qt process launcher

r=me

&gt; +    WebProcess::shared().initialize(&quot;foo&quot;, RunLoop::current());

&quot;foo&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246608</commentid>
    <comment_count>56</comment_count>
      <attachid>60521</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-05 06:21:00 -0700</bug_when>
    <thetext>Created attachment 60521
Qt process launcher for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246610</commentid>
    <comment_count>57</comment_count>
      <attachid>60523</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-05 06:32:52 -0700</bug_when>
    <thetext>Created attachment 60523
Qt C API integration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246611</commentid>
    <comment_count>58</comment_count>
      <attachid>60524</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-05 06:35:01 -0700</bug_when>
    <thetext>Created attachment 60524
Qt C API integration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246612</commentid>
    <comment_count>59</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-05 06:35:44 -0700</bug_when>
    <thetext>Attachment 60524 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246613</commentid>
    <comment_count>60</comment_count>
      <attachid>60525</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-05 06:38:53 -0700</bug_when>
    <thetext>Created attachment 60525
Qt C API integration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246615</commentid>
    <comment_count>61</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-05 06:40:46 -0700</bug_when>
    <thetext>Attachment 60525 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/cpp/qt/WKStringQt.cpp:21:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/cpp/qt/WKStringQt.cpp:25:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/cpp/qt/WKStringQt.cpp:26:  wtf includes should be &lt;wtf/file.h&gt; instead of &quot;wtf/file.h&quot;.  [build/include] [4]
WebKit2/UIProcess/API/cpp/qt/WKURLQt.cpp:21:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/cpp/qt/WKURLQt.cpp:25:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/cpp/qt/WKURLQt.cpp:26:  wtf includes should be &lt;wtf/file.h&gt; instead of &quot;wtf/file.h&quot;.  [build/include] [4]
Total errors found: 6 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246616</commentid>
    <comment_count>62</comment_count>
      <attachid>60521</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-05 06:41:52 -0700</bug_when>
    <thetext>Comment on attachment 60521
Qt process launcher for landing

Clearing flags on attachment: 60521

Committed r62485: &lt;http://trac.webkit.org/changeset/62485&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246617</commentid>
    <comment_count>63</comment_count>
      <attachid>60525</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-05 06:42:58 -0700</bug_when>
    <thetext>Comment on attachment 60525
Qt C API integration

r=me

WKURLRef WKURLCreateWithQUrl(QUrl qURL);
WKStringRef WKStringCreateWithQString(QString qString);

these should probably use const QUrl&amp; and const QString&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246618</commentid>
    <comment_count>64</comment_count>
      <attachid>60526</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-05 06:52:35 -0700</bug_when>
    <thetext>Created attachment 60526
Qt C API integration - for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246620</commentid>
    <comment_count>65</comment_count>
      <attachid>60526</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-05 07:07:23 -0700</bug_when>
    <thetext>Comment on attachment 60526
Qt C API integration - for landing

Clearing flags on attachment: 60526

Committed r62486: &lt;http://trac.webkit.org/changeset/62486&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246621</commentid>
    <comment_count>66</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-05 07:07:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246625</commentid>
    <comment_count>67</comment_count>
      <attachid>60528</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-05 07:13:06 -0700</bug_when>
    <thetext>Created attachment 60528
WebErrors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246626</commentid>
    <comment_count>68</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-05 07:14:47 -0700</bug_when>
    <thetext>Attachment 60528 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246635</commentid>
    <comment_count>69</comment_count>
      <attachid>60528</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-05 07:27:54 -0700</bug_when>
    <thetext>Comment on attachment 60528
WebErrors

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246639</commentid>
    <comment_count>70</comment_count>
      <attachid>60531</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-05 07:35:51 -0700</bug_when>
    <thetext>Created attachment 60531
Add stubs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246644</commentid>
    <comment_count>71</comment_count>
      <attachid>60531</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-05 07:39:37 -0700</bug_when>
    <thetext>Comment on attachment 60531
Add stubs

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246645</commentid>
    <comment_count>72</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-05 07:40:35 -0700</bug_when>
    <thetext>Attachment 60531 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/WebProcess/InjectedBundle/qt/InjectedBundleQt.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/Plugins/qt/PluginInfoStoreQt.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246683</commentid>
    <comment_count>73</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-05 09:33:51 -0700</bug_when>
    <thetext>pending patches</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246695</commentid>
    <comment_count>74</comment_count>
      <attachid>60528</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-05 09:54:59 -0700</bug_when>
    <thetext>Comment on attachment 60528
WebErrors

Clearing flags on attachment: 60528

Committed r62491: &lt;http://trac.webkit.org/changeset/62491&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246711</commentid>
    <comment_count>75</comment_count>
      <attachid>60531</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-05 10:50:48 -0700</bug_when>
    <thetext>Comment on attachment 60531
Add stubs

Clearing flags on attachment: 60531

Committed r62494: &lt;http://trac.webkit.org/changeset/62494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246712</commentid>
    <comment_count>76</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-05 10:50:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246792</commentid>
    <comment_count>77</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-05 14:59:16 -0700</bug_when>
    <thetext>We are not quite done here yet, I believe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246986</commentid>
    <comment_count>78</comment_count>
      <attachid>60520</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-06 03:18:10 -0700</bug_when>
    <thetext>Comment on attachment 60520
Qt process launcher

Cleared Antti Koivisto&apos;s review+ from obsolete attachment 60520 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246987</commentid>
    <comment_count>79</comment_count>
      <attachid>60525</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-06 03:18:17 -0700</bug_when>
    <thetext>Comment on attachment 60525
Qt C API integration

Cleared Antti Koivisto&apos;s review+ from obsolete attachment 60525 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247013</commentid>
    <comment_count>80</comment_count>
      <attachid>60617</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-06 04:16:09 -0700</bug_when>
    <thetext>Created attachment 60617
WebPageQt (r62639)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247014</commentid>
    <comment_count>81</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-06 04:18:24 -0700</bug_when>
    <thetext>Attachment 60617 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/WebProcess/WebPage/qt/WebPageQt.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247031</commentid>
    <comment_count>82</comment_count>
      <attachid>60617</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-06 05:13:48 -0700</bug_when>
    <thetext>Comment on attachment 60617
WebPageQt (r62639)

#ifndef VK_UNKNOWN
 35 
 36 #define VK_UNKNOWN 0

why a newline between these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247393</commentid>
    <comment_count>83</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-07 01:47:05 -0700</bug_when>
    <thetext>WebPageQt: http://trac.webkit.org/changeset/62639
(with less newlines)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247439</commentid>
    <comment_count>84</comment_count>
      <attachid>60713</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-07 03:13:22 -0700</bug_when>
    <thetext>Created attachment 60713
Add Qt section to the prefix header</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247490</commentid>
    <comment_count>85</comment_count>
      <attachid>60719</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-07 05:11:37 -0700</bug_when>
    <thetext>Created attachment 60719
Export some event conversion functions needed for WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247497</commentid>
    <comment_count>86</comment_count>
      <attachid>60713</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-07 05:31:55 -0700</bug_when>
    <thetext>Comment on attachment 60713
Add Qt section to the prefix header

Jesus told me that because we don&apos;t include the Logging.h via config.h with --video is not compiling. We might want to include that here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247500</commentid>
    <comment_count>87</comment_count>
      <attachid>60722</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-07 05:37:24 -0700</bug_when>
    <thetext>Created attachment 60722
MiniBrowser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247502</commentid>
    <comment_count>88</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-07 05:39:46 -0700</bug_when>
    <thetext>Key event function exports: http://trac.webkit.org/changeset/62654</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247504</commentid>
    <comment_count>89</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-07 05:41:06 -0700</bug_when>
    <thetext>Attachment 60722 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKitTools/MiniBrowser/qt/BrowserWindow.cpp:29:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKitTools/MiniBrowser/qt/BrowserWindow.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
WebKitTools/MiniBrowser/qt/BrowserWindow.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
WebKitTools/MiniBrowser/qt/BrowserWindow.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
WebKitTools/MiniBrowser/qt/main.cpp:28:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKitTools/MiniBrowser/qt/main.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
WebKitTools/MiniBrowser/qt/main.cpp:31:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 7 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247507</commentid>
    <comment_count>90</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-07 05:44:31 -0700</bug_when>
    <thetext>WebKit2prefix: http://trac.webkit.org/changeset/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247508</commentid>
    <comment_count>91</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-07 05:46:37 -0700</bug_when>
    <thetext>i mean http://trac.webkit.org/changeset/62655</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247510</commentid>
    <comment_count>92</comment_count>
      <attachid>60722</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-07 05:49:27 -0700</bug_when>
    <thetext>Comment on attachment 60722
MiniBrowser

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248010</commentid>
    <comment_count>93</comment_count>
      <attachid>60722</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-07 22:33:44 -0700</bug_when>
    <thetext>Comment on attachment 60722
MiniBrowser

Rejecting patch 60722 from commit-queue.

Found no modified ChangeLogs, cannot create a commit message.
All changes require a ChangeLog.  See:
http://webkit.org/coding/contributing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248163</commentid>
    <comment_count>94</comment_count>
      <attachid>60870</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-08 06:23:12 -0700</bug_when>
    <thetext>Created attachment 60870
a bunch of minor build fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248165</commentid>
    <comment_count>95</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-08 06:25:38 -0700</bug_when>
    <thetext>Attachment 60870 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit2/Shared/qt/WebEventFactoryQt.cpp:27:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/qwkpage.cpp:24:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit2/UIProcess/API/qt/ClientImpl.cpp:20:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 3 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248170</commentid>
    <comment_count>96</comment_count>
      <attachid>60870</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-08 06:42:35 -0700</bug_when>
    <thetext>Comment on attachment 60870
a bunch of minor build fixes

wooh more upstreaming :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248191</commentid>
    <comment_count>97</comment_count>
      <attachid>60870</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-07-08 07:49:01 -0700</bug_when>
    <thetext>Comment on attachment 60870
a bunch of minor build fixes

some build fixes: http://trac.webkit.org/changeset/62788</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248272</commentid>
    <comment_count>98</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-08 09:35:59 -0700</bug_when>
    <thetext>Looks like that patch really is missing a ChangeLog...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248297</commentid>
    <comment_count>99</comment_count>
      <attachid>60870</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-08 10:10:31 -0700</bug_when>
    <thetext>Comment on attachment 60870
a bunch of minor build fixes

+     friend class QGraphicsWKViewtPrivate;

I found a bug here, you are suffixing tPrivate and not Private</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248515</commentid>
    <comment_count>100</comment_count>
      <attachid>60952</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-08 13:59:47 -0700</bug_when>
    <thetext>Created attachment 60952
MiniBrowser patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248889</commentid>
    <comment_count>101</comment_count>
      <attachid>60722</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-09 03:19:41 -0700</bug_when>
    <thetext>Comment on attachment 60722
MiniBrowser

Cleared Antti Koivisto&apos;s review+ from obsolete attachment 60722 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249026</commentid>
    <comment_count>102</comment_count>
      <attachid>60952</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-09 08:39:45 -0700</bug_when>
    <thetext>Comment on attachment 60952
MiniBrowser patch for landing

Clearing flags on attachment: 60952

Committed r62956: &lt;http://trac.webkit.org/changeset/62956&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249027</commentid>
    <comment_count>103</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-09 08:39:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58029</attachid>
            <date>2010-06-07 07:42:24 -0700</date>
            <delta_ts>2010-06-07 09:36:37 -0700</delta_ts>
            <desc>initial patch</desc>
            <filename>qtwebkit2-1.patch</filename>
            <type>text/plain</type>
            <size>80186</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0LnBybwkocmV2aXNpb24gNjAw
NzIpCisrKyBXZWJLaXQucHJvCSh3b3JraW5nIGNvcHkpCkBAIC05LDYgKzksNyBAQCBTVUJESVJT
ICs9IFwKIAogIyBJZiB0aGUgc291cmNlIGV4aXN0cywgYnVpbHQgaXQKIGV4aXN0cygkJFBXRC9X
ZWJLaXRUb29scy9RdFRlc3RCcm93c2VyKTogU1VCRElSUyArPSBXZWJLaXRUb29scy9RdFRlc3RC
cm93c2VyCitleGlzdHMoJCRQV0QvV2ViS2l0Mi9XZWJLaXQyLnBybyk6IFNVQkRJUlMgKz0gV2Vi
S2l0Mi9XZWJLaXQyLnBybwogZXhpc3RzKCQkUFdEL0phdmFTY3JpcHRDb3JlL2pzYy5wcm8pOiBT
VUJESVJTICs9IEphdmFTY3JpcHRDb3JlL2pzYy5wcm8KIGV4aXN0cygkJFBXRC9XZWJLaXQvcXQv
dGVzdHMpOiBTVUJESVJTICs9IFdlYktpdC9xdC90ZXN0cwogZXhpc3RzKCQkUFdEL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBybyk6IFNVQkRJUlMgKz0gV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWUucHJvCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlz
aW9uIDYwMDcyKQorKysgV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtNjIw
LDYgKzYyMCw2OCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIHhtbC9YUGF0aEV2YWx1YXRvci5p
ZGwgXAogICAgIHhtbC9YU0xUUHJvY2Vzc29yLmlkbAogCitXRUJDT1JFX0hFQURFUlNfRk9SX1dF
QktJVDIgKz0gXAorICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmggXAorICAgIHBsYXRmb3JtL25l
dHdvcmsvcXQvUmVzb3VyY2VFcnJvci5oIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlUmVxdWVzdC5oIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVzcG9uc2Uu
aCBcCisgICAgZG9tL0tleWJvYXJkRXZlbnQuaCBcCisgICAgZWRpdGluZy9FZGl0Q29tbWFuZC5o
IFwKKyAgICBoaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oIFwKKyAgICBodG1sL0hUTUxGb3JtRWxl
bWVudC5oIFwKKyAgICBodG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oIFwKKyAgICBpbnNwZWN0
b3IvSW5zcGVjdG9yQ2xpZW50LmggXAorICAgIGxvYWRlci9Eb2N1bWVudExvYWRlci5oIFwKKyAg
ICBsb2FkZXIvRm9ybVN0YXRlLmggXAorICAgIGxvYWRlci9GcmFtZUxvYWRlci5oIFwKKyAgICBs
b2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBcCisgICAgbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMu
aCBcCisgICAgbG9hZGVyL1BvbGljeUNoZWNrZXIuaCBcCisgICAgbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlci5oIFwKKyAgICBwYWdlL0Nocm9tZS5oIFwKKyAgICBwYWdlL0Nocm9tZUNsaWVudC5oIFwK
KyAgICBwYWdlL0NvbnRleHRNZW51Q2xpZW50LmggXAorICAgIHBhZ2UvRHJhZ0NsaWVudC5oIFwK
KyAgICBwYWdlL0VkaXRvckNsaWVudC5oIFwKKyAgICBwYWdlL0V2ZW50SGFuZGxlci5oIFwKKyAg
ICBwYWdlL0ZvY3VzQ29udHJvbGxlci5oIFwKKyAgICBwYWdlL0ZyYW1lLmggXAorICAgIHBhZ2Uv
RnJhbWVMb2FkUmVxdWVzdC5oIFwKKyAgICBwYWdlL0ZyYW1lVmlldy5oIFwKKyAgICBwYWdlL1Bh
Z2UuaCBcCisgICAgcGFnZS9TZXR0aW5ncy5oIFwKKyAgICBwYWdlL1dpbmRvd0ZlYXR1cmVzLmgg
XAorICAgIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIFwKKyAgICBwbGF0Zm9ybS9Q
bGF0Zm9ybU1vdXNlRXZlbnQuaCBcCisgICAgcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmgg
XAorICAgIHBsYXRmb3JtL1dpZGdldC5oIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJl
Y3QuaCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggXAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0ludFBvaW50LmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJl
Y3QuaCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5oIFwKKyAgICBwbGF0Zm9ybS90
ZXh0L1BsYXRmb3JtU3RyaW5nLmggXAorICAgIHBsYXRmb3JtL3RleHQvU3RyaW5nSW1wbC5oIFwK
KyAgICByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oIFwKKyAgICAKK1dFQktJVDJfQVBJX0hF
QURFUlMgKz0gXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIFwK
KyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaCBcCisgICAgLi4vV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tGcmFtZS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lUG9s
aWN5TGlzdGVuZXIuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0
aW9uRGF0YS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBcCisg
ICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmFtZXNwYWNlLmggXAorICAgIC4u
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBcCisgICAgLi4vV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1N0cmluZy5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1VSTC5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmggXAorICAg
IC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvV0tSZXRhaW5QdHIuaCBcCisgICAgLi4vV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBoaWNzd2lkZ2V0LmggXCAgICAKKwogY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX01BVEhNTD0xKSB7CiAgICAgbWF0aG1sbmFtZXMub3V0cHV0ID0g
JCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9NYXRoTUxOYW1lcy5jcHAKICAgICBtYXRobWxu
YW1lcy5pbnB1dCA9IE1BVEhNTF9OQU1FUwpAQCAtNzY4LDMgKzgzMCwyMCBAQCB3ZWJraXR2ZXJz
aW9uLmNsZWFuID0gJHtRTUFLRV9WQVJfV0NfR0VOCiB3ZWJraXR2ZXJzaW9uLndrQWRkT3V0cHV0
VG9Tb3VyY2VzID0gZmFsc2UKIGFkZEV4dHJhQ29tcGlsZXIod2Via2l0dmVyc2lvbikKIAorIyBH
RU5FUkFUT1IgMTI6IENvcHkgV2ViQ29yZSBoZWFkZXJzIGZvciBXZWJLaXQyCit3ZWJjb3JlaGVh
ZGVycy5vdXRwdXQgPSAuLi9pbmNsdWRlL1dlYkNvcmUvJHtRTUFLRV9GSUxFX0JBU0V9LmgKK3dl
YmNvcmVoZWFkZXJzLmlucHV0ID0gV0VCQ09SRV9IRUFERVJTX0ZPUl9XRUJLSVQyCit3ZWJjb3Jl
aGVhZGVycy5jb21tYW5kcyA9ICQkUU1BS0VfQ09QWSAke1FNQUtFX0ZJTEVfTkFNRX0gJHtRTUFL
RV9GSUxFX09VVH0KK3dlYmNvcmVoZWFkZXJzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0KK3dl
YmNvcmVoZWFkZXJzLndrQWRkT3V0cHV0VG9Tb3VyY2VzID0gZmFsc2UKK2FkZEV4dHJhQ29tcGls
ZXIod2ViY29yZWhlYWRlcnMpCisKK2luY2x1ZGUoJCRQV0QvLi4vV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L2hlYWRlcnMucHJpKQorCisjIEdFTkVSQVRPUiAxMzogQ29weSBXZWJLaXQyIGhlYWRl
cnMKK3dlYmtpdDJoZWFkZXJzLm91dHB1dCA9IC4uL2luY2x1ZGUvV2ViS2l0Mi8ke1FNQUtFX0ZJ
TEVfQkFTRX0uaAord2Via2l0MmhlYWRlcnMuaW5wdXQgPSBXRUJLSVQyX0FQSV9IRUFERVJTCit3
ZWJraXQyaGVhZGVycy5jb21tYW5kcyA9ICQkUU1BS0VfQ09QWSAke1FNQUtFX0ZJTEVfTkFNRX0g
JHtRTUFLRV9GSUxFX09VVH0KK3dlYmtpdDJoZWFkZXJzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09V
VH0KK3dlYmtpdDJoZWFkZXJzLndrQWRkT3V0cHV0VG9Tb3VyY2VzID0gZmFsc2UKK2FkZEV4dHJh
Q29tcGlsZXIod2Via2l0MmhlYWRlcnMpCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29y
ZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjk1MSw2ICsyOTUxLDcgQEAgY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX1NZTUJJQU5fRElBTE9HXwogfQogCiBpbmNsdWRlKCQkUFdELy4u
L1dlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkpCisKIEhFQURFUlMgKz0gJCRXRUJLSVRfQVBJX0hF
QURFUlMKIAogIUNPTkZJRyhRVERJUl9idWlsZCkgewpAQCAtMzA2MCw2ICszMDYxLDE1NCBAQCBT
T1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAogfQog
CitDT05GSUcgKz0gcHJlY29tcGlsZV9oZWFkZXIKK1BSRUNPTVBJTEVEX0hFQURFUiA9ICQkUFdE
Ly4uL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCisKK0lOQ0xVREVQQVRIID0gXAorICAgICQkUFdE
Ly4uL1dlYktpdDIvUGxhdGZvcm0gXAorICAgICQkUFdELy4uL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQyBcCisgICAgJCRQV0QvLi4vV2ViS2l0Mi9TaGFyZWQgXAorICAgICQkUFdELy4uL1dlYktp
dDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0IFwKKyAgICAkJFBXRC8uLi9XZWJLaXQyL1NoYXJlZC9x
dCBcCisgICAgJCRQV0QvLi4vV2ViS2l0Mi9VSVByb2Nlc3MgXAorICAgICQkUFdELy4uL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DIFwKKyAgICAkJFBXRC8uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Y3BwIFwKKyAgICAkJFBXRC8uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQgXCAgCisgICAgJCRQ
V0QvLi4vV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIgXAorICAgICQkUFdELy4uL1dlYktpdDIv
V2ViUHJvY2VzcyBcCisgICAgJCRQV0QvLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0IFwKKyAgICAkJFBXRC8uLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZSBcCisgICAgJCRJ
TkNMVURFUEFUSCBcCisgICAgJCRPVVRQVVRfRElSL2luY2x1ZGUgXAorCitIRUFERVJTICs9IFwK
KyAgICAuLi9XZWJLaXQyL1BsYXRmb3JtL1BsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCBcCisg
ICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmggXAorICAgIC4uL1dlYktpdDIvUGxhdGZv
cm0vV29ya0l0ZW0uaCBcCisgICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaCBcCisg
ICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5oIFwKKyAgICAu
Li9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRFbmNvZGVyLmggXAorICAgIC4uL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaCBcCisgICAgLi4vV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL0F0dGFjaG1lbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uaCBcCisgICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0NvcmVJ
UENNZXNzYWdlS2luZHMuaCBcCisgICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3Nh
Z2VJRC5oIFwKKyAgICAuLi9XZWJLaXQyL1NoYXJlZC9Ob3RJbXBsZW1lbnRlZC5oIFwKKyAgICAu
Li9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlVHlwZUFyZ3VtZW50TWFyc2hhbGxpbmcuaCBcCisgICAg
Li4vV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9TaGFyZWQvV2Vi
RXZlbnRDb252ZXJzaW9uLmggXAorICAgIC4uL1dlYktpdDIvU2hhcmVkL1dlYk5hdmlnYXRpb25E
YXRhU3RvcmUuaCBcCisgICAgLi4vV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
IFwKKyAgICAuLi9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9EcmF3aW5nQXJlYU1lc3Nh
Z2VLaW5kcy5oIFwKKyAgICAuLi9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9EcmF3aW5n
QXJlYVByb3h5TWVzc2FnZUtpbmRzLmggXAorICAgIC4uL1dlYktpdDIvU2hhcmVkL0NvcmVJUENT
dXBwb3J0L1dlYlBhZ2VNZXNzYWdlS2luZHMuaCBcCisgICAgLi4vV2ViS2l0Mi9TaGFyZWQvQ29y
ZUlQQ1N1cHBvcnQvV2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmggXAorICAgIC4uL1dlYktpdDIv
U2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYlByb2Nlc3NNZXNzYWdlS2luZHMuaCBcCisgICAgLi4v
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5VXBkYXRlQ2h1bmsuaCBcCisgICAgLi4vV2ViS2l0Mi9V
SVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmggXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc01vZGVsLmggXAor
ICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaCBcCisgICAgLi4v
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViRnJhbWVQcm94eS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJIaXN0b3J5
Q2xpZW50LmggXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIFwK
KyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uRGF0YS5oIFwKKyAgICAuLi9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlTmFtZXNwYWNlLmggXAorICAgIC4uL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQb2xp
Y3lDbGllbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaCBc
CisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuaCBcCisgICAgLi4v
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggXAorICAgIC4uL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmggXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaCBcCisg
ICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggXAorICAgIC4uL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBcCisgICAgLi4vV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tOYXZpZ2F0aW9uRGF0YS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmFtZXNwYWNl
LmggXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBcCisg
ICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIFwKKyAgICAuLi9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1N0cmluZy5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VSTC5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJL
aXQyLmggXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvV0tSZXRhaW5QdHIuaCBc
CisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvV2ViUHJvY2Vzc0xhdW5jaGVyLmgg
XAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggXAorICAgIC4uL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBcCisgICAgLi4v
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lmgg
XAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
LmggXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVy
cm9ycy5oIFwKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5oIFwKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oIFwKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYVVwZGF0ZUNodW5rLmggXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmggXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBoaWNzd2lkZ2V0
LmggXAorCitTT1VSQ0VTICs9IFwKKyAgICAuLi9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuY3Bw
IFwKKyAgICAuLi9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5jcHAgXAorICAgIC4uL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuY3BwIFwKKyAgICAuLi9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRFbmNvZGVyLmNwcCBcCisgICAgLi4vV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL0F0dGFjaG1lbnQuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5VXBkYXRlQ2h1bmsuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZl
bmVzc1RpbWVyLmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAg
XAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5j
cHAgXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwIFwKKyAgICAu
Li9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJIaXN0b3J5Q2xpZW50LmNwcCBcCisgICAgLi4vV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlTmFtZXNwYWNlLmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9saWN5Q2xpZW50LmNwcCBcCisg
ICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwIFwKKyAgICAuLi9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzTWFuYWdlci5jcHAgXAorICAgIC4uL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlVJQ2xpZW50LmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5jcHAgXAorICAg
IC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAgXAor
ICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEuY3BwIFwKKyAg
ICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIFwKKyAgICAuLi9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VOYW1lc3BhY2UuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tTdHJpbmcuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1VSTC5jcHAgXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBcCisg
ICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0
TWVudUNsaWVudC5jcHAgXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50LmNwcCBcCisgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgXAorICAgIC4uL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIFwKKyAgICAu
Li9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAgXAorICAgIC4uL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhVXBkYXRlQ2h1bmsuY3BwIFwKKyAg
ICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgXAorICAgIC4uL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1No
YXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIFwKKyAgICAuLi9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc1N0b3JlLmNwcCBcCisgICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29w
UXQuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1BsYXRmb3JtL3F0L1dvcmtRdWV1ZVF0LmNwcCBcCisg
ICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3F0L0Nvbm5lY3Rpb25RdC5jcHAgXAorICAg
IC4uL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcCBcCisgICAgLi4vV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvRHJhd2luZ0FyZWFQcm94eVVwZGF0ZUNodW5rUXQuY3BwIFwKKyAgICAuLi9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9XZWJQcm9jZXNzTGF1bmNoZXJRdC5jcHAgXAor
ICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0RyYXdpbmdBcmVhVXBkYXRlQ2h1
bmtRdC5jcHAgXCAKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdl
UXQuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2Vi
RXJyb3JzUXQuY3BwIFwgIAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tncmFw
aGljc3dpZGdldC5jcHAgXAorCiBzeW1iaWFuIHsKICAgICBzaGFyZWQgewogICAgICAgICBjb250
YWlucyhDT05GSUcsIGRlZl9maWxlcykgewpJbmRleDogV2ViQ29yZS9jb25maWcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2NvbmZpZy5oCShyZXZpc2lvbiA2MDA3MikKKysrIFdlYkNvcmUvY29u
ZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwMiw3ICsyMDIsOSBAQAogI2VuZGlmIC8qICFkZWZp
bmVkKFdURl9VU0VfVjgpICovCiAKIC8qIFVzaW5nIFY4IGltcGxpZXMgbm90IHVzaW5nIEpTQyBh
bmQgdmljZSB2ZXJzYSAqLworI2lmICFkZWZpbmVkKFdURl9VU0VfSlNDKQogI2RlZmluZSBXVEZf
VVNFX0pTQyAhV1RGX1VTRV9WOAorI2VuZGlmCiAKICNpZiBQTEFURk9STShDRykKICNpZm5kZWYg
Q0dGTE9BVF9ERUZJTkVECkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdv
cmtSZXBseUhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAJKHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDE4LDggKzQxOCwxMyBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFy
dCgpCiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gbV9yZXNvdXJjZUhhbmRsZS0+
Z2V0SW50ZXJuYWwoKTsKIAotICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IGQt
Pm1fZnJhbWUtPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKLQorICAgIFFOZXR3b3Jr
QWNjZXNzTWFuYWdlciogbWFuYWdlciA9IDA7CisgICAgaWYgKCFkLT5tX2ZyYW1lKSB7CisgICAg
ICAgIHN0YXRpYyBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIHN0YXRpY01hbmFnZXIgPSBuZXcgUU5l
dHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CisgICAgICAgIG1hbmFnZXIgPSBzdGF0aWNNYW5hZ2VyOwor
ICAgIH0gZWxzZQorICAgICAgICBtYW5hZ2VyID0gZC0+bV9mcmFtZS0+cGFnZSgpLT5uZXR3b3Jr
QWNjZXNzTWFuYWdlcigpOworICAgIAogICAgIGNvbnN0IFFVcmwgdXJsID0gbV9yZXF1ZXN0LnVy
bCgpOwogICAgIGNvbnN0IFFTdHJpbmcgc2NoZW1lID0gdXJsLnNjaGVtZSgpOwogICAgIC8vIFBv
c3QgcmVxdWVzdHMgb24gZmlsZXMgYW5kIGRhdGEgZG9uJ3QgcmVhbGx5IG1ha2Ugc2Vuc2UsIGJ1
dCBmb3IKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VI
YW5kbGVRdC5jcHAJKHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNyArMTM2LDgg
QEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICBkLT5t
X3JlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAgICAgfQogCi0gICAgZ2V0SW50
ZXJuYWwoKS0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50UXQqPihmcmFt
ZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKy8vIEZJWE1FOiB3ZWJraXQyCisv
LyAgICBnZXRJbnRlcm5hbCgpLT5tX2ZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGll
bnRRdCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOwogICAgIFJlc291
cmNlSGFuZGxlSW50ZXJuYWwgKmQgPSBnZXRJbnRlcm5hbCgpOwogICAgIGQtPm1fam9iID0gbmV3
IFFOZXR3b3JrUmVwbHlIYW5kbGVyKHRoaXMsIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkTW9k
ZShkLT5tX2RlZmVyc0xvYWRpbmcpKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIwMCw3ICsyMDEs
OCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvCiAgICAgICAgIHVy
bFdpdGhDcmVkZW50aWFscy5zZXRQYXNzKGQtPm1fcGFzcyk7CiAgICAgICAgIGQtPm1fcmVxdWVz
dC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9Ci0gICAgZC0+bV9mcmFtZSA9IHN0
YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
KS0+d2ViRnJhbWUoKTsKKy8vIEZJWE1FOiB3ZWJraXQyCisvLyAgICBkLT5tX2ZyYW1lID0gc3Rh
dGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRRdCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkp
LT53ZWJGcmFtZSgpOwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKCZo
YW5kbGUsIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkTm9ybWFsKTsKIAogICAgIHN5bmNMb2Fk
ZXIud2FpdEZvckNvbXBsZXRpb24oKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9SZXNvdXJjZVJlcXVlc3RRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdFF0LmNwcAkocmV2aXNpb24gNjAwNzIpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXF1ZXN0UXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw3ICs0Nyw4IEBAIFFOZXR3b3JrUmVxdWVzdCBSZXNvdXJjZVJlcXVlc3Q6OnRv
TmV0d28KIHsKICAgICBRTmV0d29ya1JlcXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0LnNldFVy
bCh1cmwoKSk7Ci0jaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDYsIDApCisv
LyBGSVhNRTogd2Via2l0MgorI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0LCA2
LCAwKSAmJiAwCiAgICAgcmVxdWVzdC5zZXRPcmlnaW5hdGluZ09iamVjdChvcmlnaW5hdGluZ0Zy
YW1lKTsKICNlbmRpZgogCkBAIC04MCw3ICs4MSw3IEBAIFFOZXR3b3JrUmVxdWVzdCBSZXNvdXJj
ZVJlcXVlc3Q6OnRvTmV0d28KICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0jaWYgUVRfVkVSU0lP
TiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDcsIDApCisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJT
SU9OX0NIRUNLKDQsIDcsIDApICYmIDAKICAgICBpZiAoIWFsbG93Q29va2llcygpKSB7CiAgICAg
ICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKFFOZXR3b3JrUmVxdWVzdDo6Q29va2llTG9hZENvbnRy
b2xBdHRyaWJ1dGUsIFFOZXR3b3JrUmVxdWVzdDo6TWFudWFsKTsKICAgICAgICAgcmVxdWVzdC5z
ZXRBdHRyaWJ1dGUoUU5ldHdvcmtSZXF1ZXN0OjpDb29raWVTYXZlQ29udHJvbEF0dHJpYnV0ZSwg
UU5ldHdvcmtSZXF1ZXN0OjpNYW51YWwpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db29r
aWVKYXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db29raWVKYXJR
dC5jcHAJKHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db29raWVKYXJR
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdGF0aWMgUU5ldHdvcmtDb29raWVKYXIgKmNvb2tpZUphcihjb25zdCBEb2N1bWVudCAq
ZG9jdW1lbnQpCiB7CisgICAgLy8gRklYTUUgd2Via2l0MgorICAgIHJldHVybiAwOwogICAgIGlm
ICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiAwOwogICAgIEZyYW1lICpmcmFtZSA9IGRvY3Vt
ZW50LT5mcmFtZSgpOwpJbmRleDogV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1dlYktpdDIucHJvCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9XZWJLaXQyLnBybwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAorVEVNUExBVEUgPSBhcHAKK1RBUkdFVCA9IFF0
V2ViUHJvY2VzcworCitTT1VSQ0VTICs9IFwKKyAgICBXZWJQcm9jZXNzL0xhdW5jaGluZy9xdC9X
ZWJQcm9jZXNzTWFpbi5jcHAKKworSEVBREVSUyArPSBcCisKK0NPTkZJRyArPSB1aXRvb2xzCisK
K2lzRW1wdHkoT1VUUFVUX0RJUik6IE9VVFBVVF9ESVIgPSAuLgoraW5jbHVkZSguLi9XZWJLaXQu
cHJpKQorCitERVNURElSID0gJCRPVVRQVVRfRElSL2JpbgorIUNPTkZJRyhzdGFuZGFsb25lX3Bh
Y2thZ2UpOiBDT05GSUcgLT0gYXBwX2J1bmRsZQorCitRVCArPSBuZXR3b3JrCittYWN4OlFUKz14
bWwKKworbGludXgtKiB7CisgICAgIyBGcm9tIENyZWF0b3IncyBzcmMvcnBhdGgucHJpOgorICAg
ICMgRG8gdGhlIHJwYXRoIGJ5IGhhbmQgc2luY2UgaXQncyBub3QgcG9zc2libGUgdG8gdXNlIE9S
SUdJTiBpbiBRTUFLRV9SUEFUSERJUgorICAgICMgdGhpcyBleHBhbmRzIHRvICRPUklHSU4gKGFm
dGVyIHFtYWtlIGFuZCBtYWtlKSwgaXQgZG9lcyBOT1QgcmVhZCBhIHFtYWtlIHZhci4KKyAgICBR
TUFLRV9SUEFUSERJUiA9IFwkXCRPUklHSU4vLi4vbGliICQkUU1BS0VfUlBBVEhESVIKKyAgICBN
WV9SUEFUSCA9ICQkam9pbihRTUFLRV9SUEFUSERJUiwgIjoiKQorCisgICAgUU1BS0VfTEZMQUdT
ICs9IC1XbCwteixvcmlnaW4gXCctV2wsLXJwYXRoLCQke01ZX1JQQVRIfVwnCisgICAgUU1BS0Vf
UlBBVEhESVIgPQorfSBlbHNlIHsKKyAgICBRTUFLRV9SUEFUSERJUiA9ICQkT1VUUFVUX0RJUi9s
aWIgJCRRTUFLRV9SUEFUSERJUgorfQorCitzeW1iaWFuIHsKKyAgICBUQVJHRVQuVUlEMyA9IDB4
QTAwMEU1NDMKKyAgICBUQVJHRVQuQ0FQQUJJTElUWSA9IFJlYWRVc2VyRGF0YSBXcml0ZVVzZXJE
YXRhIE5ldHdvcmtTZXJ2aWNlcworfQorCitjb250YWlucyhRVF9DT05GSUcsIG9wZW5nbCkgewor
ICAgIFFUICs9IG9wZW5nbAorICAgIERFRklORVMgKz0gUVRfQ09ORklHVVJFRF9XSVRIX09QRU5H
TAorfQorCkluZGV4OiBXZWJLaXQyL1dlYktpdDJQcmVmaXguaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1dlYktpdDJQcmVmaXguaAkocmV2aXNpb24gNjAwNzIpCisrKyBXZWJLaXQyL1dlYktpdDJQ
cmVmaXguaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHd0Zi9G
YXN0TWFsbG9jLmg+CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoX19BUFBMRV9fKQorI2lmIGRlZmlu
ZWQoX19BUFBMRV9fKSAmJiAwCiAKICNpbXBvcnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3Mu
aD4KIApAQCAtNzQsMyArNzQsOSBAQAogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhp
Y3MuaD4KIAogI2VuZGlmIC8qIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMyKSAqLwor
CisjaWYgZGVmaW5lZChCVUlMRElOR19RVF9fKQorI2RlZmluZSBXVEZfVVNFX0pTQyAxCisjZGVm
aW5lIFdURl9VU0VfVjggMAorI2VuZGlmCisKSW5kZXg6IFdlYktpdDIvUGxhdGZvcm0vUGxhdGZv
cm1Qcm9jZXNzSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvUGxhdGZvcm0vUGxh
dGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oCShyZXZpc2lvbiA2MDA3MikKKysrIFdlYktpdDIvUGxh
dGZvcm0vUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdHlwZWRlZiBwaWRfdCBQbGF0Zm9ybVByb2Nl
c3NJZGVudGlmaWVyOwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBIQU5ETEUgUGxhdGZv
cm1Qcm9jZXNzSWRlbnRpZmllcjsKKyNlbGlmIFBMQVRGT1JNKFFUKQordHlwZWRlZiBwaWRfdCBQ
bGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dCAKSW5kZXg6IFdlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvUGxhdGZvcm0vUnVuTG9vcC5oCShyZXZpc2lvbiA2MDA3MikKKysrIFdlYktpdDIvUGxhdGZv
cm0vUnVuTG9vcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcyLDYgKzczLDkgQEAgcHVibGlj
OgogI2VsaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENG
UnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7CiAgICAgICAgIENGUnVuTG9vcFRpbWVyUmVmIG1fdGlt
ZXI7CisjZWxpZiBQTEFURk9STShRVCkKKyAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChS
dW5Mb29wKiwgaW50IElEKTsKKyAgICAgICAgaW50IG1fSUQ7CiAjZW5kaWYgICAgCiAgICAgfTsK
IApAQCAtMTE4LDYgKzEyMiwxMSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1X
b3JrKHZvaWQqKTsKICAgICBDRlJ1bkxvb3BSZWYgbV9ydW5Mb29wOwogICAgIENGUnVuTG9vcFNv
dXJjZVJlZiBtX3J1bkxvb3BTb3VyY2U7CisjZWxpZiBQTEFURk9STShRVCkKKyAgICB0eXBlZGVm
IEhhc2hNYXA8aW50LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKKyAgICBUaW1lck1hcCBtX2FjdGl2
ZVRpbWVyczsKKyAgICBjbGFzcyBUaW1lck9iamVjdDsKKyAgICBUaW1lck9iamVjdCogbV90aW1l
ck9iamVjdDsKICNlbmRpZgogfTsKIApJbmRleDogV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCShyZXZpc2lvbiA2
MDA3MikKKysrIFdlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDExIEBACiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAorI2lmIFBMQVRGT1JNKFFUKQorY2xhc3MgUU9iamVjdDsKK2NsYXNzIFFU
aHJlYWQ7CisjZW5kaWYKKwogY2xhc3MgV29ya1F1ZXVlIHsKIHB1YmxpYzoKICAgICBleHBsaWNp
dCBXb3JrUXVldWUoY29uc3QgY2hhciogbmFtZSk7CkBAIC01OSw2ICs2NCw5IEBAIHB1YmxpYzoK
ICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkIHJlZ2lzdGVySGFuZGxlKEhBTkRMRSwgc3Rk
OjphdXRvX3B0cjxXb3JrSXRlbT4pOwogICAgIHZvaWQgdW5yZWdpc3RlckhhbmRsZShIQU5ETEUp
OworI2VsaWYgUExBVEZPUk0oUVQpCisgICAgdm9pZCBjb25uZWN0U2lnbmFsKFFPYmplY3QqIG8s
IGNvbnN0IGNoYXIqIHNpZ25hbCwgc3RkOjphdXRvX3B0cjxXb3JrSXRlbT4pOworICAgIHZvaWQg
ZGlzY29ubmVjdFNpZ25hbChRT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBzaWduYSk7CiAjZW5kaWYK
IAogcHJpdmF0ZToKQEAgLTkwLDYgKzk4LDExIEBAIHByaXZhdGU6CiAKICAgICBNdXRleCBtX2hh
bmRsZXNMb2NrOwogICAgIEhhc2hNYXA8SEFORExFLCBXb3JrSXRlbSo+IG1faGFuZGxlczsKKyNl
bGlmIFBMQVRGT1JNKFFUKQorICAgIGNsYXNzIFdvcmtJdGVtUXQ7CisgICAgSGFzaE1hcDxRT2Jq
ZWN0KiwgV29ya0l0ZW1RdCo+IG1fc2lnbmFsTGlzdGVuZXJzOworICAgIFFUaHJlYWQqIG1fd29y
a1RocmVhZDsKKyAgICBmcmllbmQgY2xhc3MgV29ya0l0ZW1RdDsKICNlbmRpZgogfTsKIApJbmRl
eDogV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCShyZXZpc2lvbiA2MDA3MikKKysr
IFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzQsMTIgKzM1LDE3IEBACiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQog
I2luY2x1ZGUgPG1hY2gvbWFjaF9wb3J0Lmg+CiAjZWxpZiBQTEFURk9STShXSU4pCiAjaW5jbHVk
ZSA8c3RyaW5nPgorI2VsaWYgUExBVEZPUk0oUVQpCisjaW5jbHVkZSA8UVN0cmluZz4KK2NsYXNz
IFFMb2NhbFNlcnZlcjsKK2NsYXNzIFFMb2NhbFNvY2tldDsKICNlbmRpZgogCiBjbGFzcyBSdW5M
b29wOwpAQCAtNjMsNiArNjksOCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBtYWNoX3BvcnRfdCBJ
ZGVudGlmaWVyOwogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgIHR5cGVkZWYgY29uc3Qgc3RkOjp3
c3RyaW5nJiBJZGVudGlmaWVyOworI2VsaWYgUExBVEZPUk0oUVQpCisgICAgdHlwZWRlZiBjb25z
dCBRU3RyaW5nIElkZW50aWZpZXI7CiAjZW5kaWYKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENv
bm5lY3Rpb24+IGNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgUnVu
TG9vcCogY2xpZW50UnVuTG9vcCk7CkBAIC0xNzYsOCArMTg0LDE4IEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPHVpbnQ4X3Q+IG1fcmVhZEJ1ZmZlcjsKICAgICBPVkVSTEFQUEVEIG1fcmVhZFN0YXRl
OwogICAgIEhBTkRMRSBtX2Nvbm5lY3Rpb25QaXBlOworI2VsaWYgUExBVEZPUk0oUVQpCisgICAg
Ly8gQ2FsbGVkIG9uIHRoZSBjb25uZWN0aW9uIHF1ZXVlLgorICAgIHZvaWQgb3BlbkNvbm5lY3Rp
b24oKTsKKyAgICB2b2lkIG5ld0Nvbm5lY3Rpb25IYW5kbGVyKCk7CisgICAgdm9pZCByZWFkeVJl
YWRIYW5kbGVyKCk7CisKKyAgICBWZWN0b3I8dWludDhfdD4gbV9yZWFkQnVmZmVyOworICAgIHNp
emVfdCBtX2N1cnJlbnRNZXNzYWdlU2l6ZTsKKyAgICBRTG9jYWxTb2NrZXQqIG1fc29ja2V0Owor
ICAgIFFMb2NhbFNlcnZlciogbV9zZXJ2ZXI7CisgICAgUVN0cmluZyBtX3NlcnZlck5hbWU7CiAj
ZW5kaWYKLSAgICAKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEUsIHR5cGVuYW1lIFQ+CkluZGV4
OiBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9xdC9Db25uZWN0aW9uUXQuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCisKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNp
bmNsdWRlICJXb3JrSXRlbS5oIgorCisjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgorI2luY2x1ZGUg
PFFMb2NhbFNlcnZlcj4KKyNpbmNsdWRlIDxRTG9jYWxTb2NrZXQ+CisKK3VzaW5nIG5hbWVzcGFj
ZSBzdGQ7CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKworLy8gRklYTUU6IFJlbmFtZSB0aGlzIG9y
IHVzZSBhIGRpZmZlcmVudCBjb25zdGFudCBvbiB3aW5kb3dzLgorc3RhdGljIGNvbnN0IHNpemVf
dCBpbmxpbmVNZXNzYWdlTWF4U2l6ZSA9IDQwOTY7CisKK3ZvaWQgQ29ubmVjdGlvbjo6cGxhdGZv
cm1Jbml0aWFsaXplKElkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3NlcnZlck5hbWUg
PSAiUXRXZWJLaXQiICsgaWRlbnRpZmllcjsKKyAgICBtX3NlcnZlciA9IDA7CisgICAgbV9zb2Nr
ZXQgPSAwOworICAgIG1fcmVhZEJ1ZmZlci5yZXNpemUoaW5saW5lTWVzc2FnZU1heFNpemUpOwor
ICAgIG1fY3VycmVudE1lc3NhZ2VTaXplID0gMDsKK30KKwordm9pZCBDb25uZWN0aW9uOjpwbGF0
Zm9ybUludmFsaWRhdGUoKQoreworICAgIGRlbGV0ZSBtX3NlcnZlcjsKKyAgICBkZWxldGUgbV9z
b2NrZXQ7Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6bmV3Q29ubmVjdGlvbkhhbmRsZXIoKQorewor
ICAgIG1fc29ja2V0ID0gbV9zZXJ2ZXItPm5leHRQZW5kaW5nQ29ubmVjdGlvbigpOworICAgIG1f
aXNDb25uZWN0ZWQgPSBtX3NvY2tldDsKKyAgICBpZiAobV9pc0Nvbm5lY3RlZCkKKyAgICAgICAg
bV9jb25uZWN0aW9uUXVldWUuY29ubmVjdFNpZ25hbChtX3NvY2tldCwgU0lHTkFMKHJlYWR5UmVh
ZCgpKSwgV29ya0l0ZW06OmNyZWF0ZSh0aGlzLCAmQ29ubmVjdGlvbjo6cmVhZHlSZWFkSGFuZGxl
cikpOworfQorCit2b2lkIENvbm5lY3Rpb246OnJlYWR5UmVhZEhhbmRsZXIoKQoreworICAgIHdo
aWxlKG1fc29ja2V0LT5ieXRlc0F2YWlsYWJsZSgpKSB7CisgICAgICAgIGlmICghbV9jdXJyZW50
TWVzc2FnZVNpemUpIHsKKyAgICAgICAgICAgIHNpemVfdCBudW1iZXJPZkJ5dGVzUmVhZCA9IG1f
c29ja2V0LT5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fcmVhZEJ1ZmZlci5kYXRhKCkp
LCBzaXplb2Yoc2l6ZV90KSk7CisgICAgICAgICAgICBBU1NFUlQobnVtYmVyT2ZCeXRlc1JlYWQp
OworICAgICAgICAgICAgbV9jdXJyZW50TWVzc2FnZVNpemUgPSAqcmVpbnRlcnByZXRfY2FzdDxz
aXplX3QqPihtX3JlYWRCdWZmZXIuZGF0YSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICht
X3NvY2tldC0+Ynl0ZXNBdmFpbGFibGUoKSA8IG1fY3VycmVudE1lc3NhZ2VTaXplKSB7CisgICAg
ICAgICAgICBwcmludGYoInJlY2VpdmVkIG1lc3NhZ2Ugc2l6ZT0lZCwgd2FpdGluZyBmb3IgbW9y
ZSBkYXRhXG4iLCAoaW50KW1fY3VycmVudE1lc3NhZ2VTaXplKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIHNpemVfdCBudW1iZXJPZkJ5dGVzUmVhZCA9IG1fc29j
a2V0LT5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fcmVhZEJ1ZmZlci5kYXRhKCkpLCBt
X2N1cnJlbnRNZXNzYWdlU2l6ZSk7CisgICAgICAgIEFTU0VSVChudW1iZXJPZkJ5dGVzUmVhZCk7
CisgICAgICAgIAorICAgICAgICAvLyBUaGUgbWVzc2FnZUlEIGlzIGVuY29kZWQgYXQgdGhlIGVu
ZCBvZiB0aGUgYnVmZmVyLgorICAgICAgICBzaXplX3QgcmVhbEJ1ZmZlclNpemUgPSBtX2N1cnJl
bnRNZXNzYWdlU2l6ZSAtIHNpemVvZihNZXNzYWdlSUQpOworICAgICAgICB1bnNpZ25lZCBtZXNz
YWdlSUQgPSAqcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG1fcmVhZEJ1ZmZlci5kYXRhKCkg
KyByZWFsQnVmZmVyU2l6ZSk7CisgICAgICAgIAorICAgICAgICBwcmludGYoInJlY2VpdmVkIG1l
c3NhZ2UgaWQ9JWQsIHNpemU9JWRcbiIsIG1lc3NhZ2VJRCwgKGludCltX2N1cnJlbnRNZXNzYWdl
U2l6ZSk7CisgICAgICAgIAorICAgICAgICBzdGQ6OmF1dG9fcHRyPEFyZ3VtZW50RGVjb2Rlcj4g
YXJndW1lbnRzKG5ldyBBcmd1bWVudERlY29kZXIobV9yZWFkQnVmZmVyLmRhdGEoKSwgcmVhbEJ1
ZmZlclNpemUpKTsKKyAgICAgICAgcHJvY2Vzc0luY29taW5nTWVzc2FnZShNZXNzYWdlSUQ6OmZy
b21JbnQobWVzc2FnZUlEKSwgYXJndW1lbnRzKTsKKyAgICAgICAgCisgICAgICAgIG1fY3VycmVu
dE1lc3NhZ2VTaXplID0gMDsKKyAgICB9Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6b3BlbkNvbm5l
Y3Rpb24oKQoreworICAgIEFTU0VSVCghbV9zZXJ2ZXIpOworICAgIEFTU0VSVCghbV9zb2NrZXQp
OworCisgICAgaWYgKG1faXNTZXJ2ZXIpIHsKKyAgICAgICAgbV9zZXJ2ZXIgPSBuZXcgUUxvY2Fs
U2VydmVyKCk7CisgICAgICAgIGlmICghbV9zZXJ2ZXItPmxpc3RlbihtX3NlcnZlck5hbWUpKSB7
CisgICAgICAgICAgICBxRGVidWcoKSA8PCAiZmFpbGVkIHRvIGNyZWF0ZSBzZXJ2ZXIgIiA8PCBt
X3NlcnZlck5hbWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9j
b25uZWN0aW9uUXVldWUuY29ubmVjdFNpZ25hbChtX3NlcnZlciwgU0lHTkFMKG5ld0Nvbm5lY3Rp
b24oKSksIFdvcmtJdGVtOjpjcmVhdGUodGhpcywgJkNvbm5lY3Rpb246Om5ld0Nvbm5lY3Rpb25I
YW5kbGVyKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9zb2NrZXQgPSBuZXcgUUxvY2FsU29j
a2V0KCk7CisgICAgICAgIG1fc29ja2V0LT5jb25uZWN0VG9TZXJ2ZXIobV9zZXJ2ZXJOYW1lKTsK
KyAgICAgICAgbV9jb25uZWN0aW9uUXVldWUuY29ubmVjdFNpZ25hbChtX3NvY2tldCwgU0lHTkFM
KHJlYWR5UmVhZCgpKSwgV29ya0l0ZW06OmNyZWF0ZSh0aGlzLCAmQ29ubmVjdGlvbjo6cmVhZHlS
ZWFkSGFuZGxlcikpOworICAgICAgICBtX2lzQ29ubmVjdGVkID0gbV9zb2NrZXQtPndhaXRGb3JD
b25uZWN0ZWQoKTsKKyAgICB9Cit9CisKK2Jvb2wgQ29ubmVjdGlvbjo6b3BlbigpCit7CisgICAg
bV9jb25uZWN0aW9uUXVldWUuc2NoZWR1bGVXb3JrKFdvcmtJdGVtOjpjcmVhdGUodGhpcywgJkNv
bm5lY3Rpb246Om9wZW5Db25uZWN0aW9uKSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lk
IENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgYXV0
b19wdHI8QXJndW1lbnRFbmNvZGVyPiBhcmd1bWVudHMpCit7CisgICAgaWYgKCFtX3NvY2tldCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2UgcHV0IHRoZSBtZXNzYWdlIElEIGxhc3QuCisg
ICAgYXJndW1lbnRzLT5lbmNvZGVVSW50MzIobWVzc2FnZUlELnRvSW50KCkpOworICAgIAorICAg
IHNpemVfdCBidWZmZXJTaXplID0gYXJndW1lbnRzLT5idWZmZXJTaXplKCk7CisgICAgCisgICAg
cHJpbnRmKCJzZW5kIG1lc3NhZ2UgaWQ9JWQsIHNpemU9JWRcbiIsIG1lc3NhZ2VJRC50b0ludCgp
LCAoaW50KWJ1ZmZlclNpemUpOworICAgIC8vIFdyaXRlIG1lc3NhZ2Ugc2l6ZSBmaXJzdAorICAg
IG1fc29ja2V0LT53cml0ZShyZWludGVycHJldF9jYXN0PGNoYXIqPigmYnVmZmVyU2l6ZSksIHNp
emVvZihidWZmZXJTaXplKSk7CisKKyAgICBxaW50NjQgYnl0ZXNXcml0dGVuID0gbV9zb2NrZXQt
PndyaXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGFyZ3VtZW50cy0+YnVmZmVyKCkpLCBhcmd1
bWVudHMtPmJ1ZmZlclNpemUoKSk7CisKKyAgICBBU1NFUlQoYnl0ZXNXcml0dGVuID09IGFyZ3Vt
ZW50cy0+YnVmZmVyU2l6ZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgQ29yZUlQQwpJbmRleDog
V2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
UGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvUGxhdGZv
cm0vcXQvUnVuTG9vcFF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSAiV29y
a0l0ZW0uaCIKKworI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRQWJzdHJhY3RF
dmVudERpc3BhdGNoZXI+CisjaW5jbHVkZSA8UU9iamVjdD4KKyNpbmNsdWRlIDxRTWV0YU1ldGhv
ZD4KKyNpbmNsdWRlIDxRTWV0YU9iamVjdD4KKyNpbmNsdWRlIDxRVGltZXJFdmVudD4KKworY2xh
c3MgUnVuTG9vcDo6VGltZXJPYmplY3QgOiBwdWJsaWMgUU9iamVjdAoreworICAgIFFfT0JKRUNU
CitwdWJsaWM6CisgICAgVGltZXJPYmplY3QoUnVuTG9vcCogcnVuTG9vcCkgOiBtX3J1bkxvb3Ao
cnVuTG9vcCkgeyB9CisKKyAgICBRX1NMT1Qgdm9pZCB3YWtlVXAoKQorICAgIHsKKyAgICAgICAg
bV9ydW5Mb29wLT5wZXJmb3JtV29yaygpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1
YWwgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBldmVudCkKKyAgICB7CisgICAgICAgIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChtX3J1bkxvb3AsIGV2ZW50LT50aW1lcklkKCkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBSdW5Mb29wKiBtX3J1bkxvb3A7Cit9OworCit2b2lk
IFJ1bkxvb3A6OnJ1bigpCit7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6ZXhlYygpOworfQorCit2
b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAgIC8vIGltcGxlbWVudAorfQorCisKK1J1bkxvb3A6
OlJ1bkxvb3AoKQorICAgIDogbV90aW1lck9iamVjdChuZXcgVGltZXJPYmplY3QodGhpcykpCit7
Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICBkZWxldGUgbV90aW1lck9iamVjdDsK
K30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAgIHN0YXRpYyBpbnQgd2FrZVVwTWV0
aG9kSW5kZXggPSBtX3RpbWVyT2JqZWN0LT5tZXRhT2JqZWN0KCktPmluZGV4T2ZNZXRob2QoIndh
a2VVcCgpIik7CisgICAgQVNTRVJUKHdha2VVcE1ldGhvZEluZGV4ID49IDApOworICAgIHN0YXRp
YyBRTWV0YU1ldGhvZCB3YWtlVXBNZXRob2QgPSBtX3RpbWVyT2JqZWN0LT5tZXRhT2JqZWN0KCkt
Pm1ldGhvZCh3YWtlVXBNZXRob2RJbmRleCk7CisgICAgd2FrZVVwTWV0aG9kLmludm9rZShtX3Rp
bWVyT2JqZWN0LCBRdDo6UXVldWVkQ29ubmVjdGlvbik7Cit9CisKKy8vIFJ1bkxvb3A6OlRpbWVy
CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3As
IGludCBJRCkKK3sKKyAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5maW5kKElEKTsKKyAgICBBU1NFUlQoaXQgIT0gcnVuTG9vcC0+bV9hY3RpdmVUaW1l
cnMuZW5kKCkpOworICAgIFRpbWVyQmFzZSogdGltZXIgPSBpdC0+c2Vjb25kOworCisgICAgdGlt
ZXItPmZpcmVkKCk7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3Aq
IHJ1bkxvb3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKK3sKK30KKworUnVuTG9vcDo6VGlt
ZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgZG91YmxlIC8qcmVwZWF0
SW50ZXJ2YWwqLykKK3sKKyAgICAvLyBGSU1YRTogU3VwcG9ydCByZXBlYXRpbmcgdGltZXJzLgor
ICAgIG1fSUQgPSBtX3J1bkxvb3AtPm1fdGltZXJPYmplY3QtPnN0YXJ0VGltZXIoc3RhdGljX2Nh
c3Q8aW50PihuZXh0RmlyZUludGVydmFsICogMTAwMCkpOworICAgIG1fcnVuTG9vcC0+bV9hY3Rp
dmVUaW1lcnMuc2V0KG1fSUQsIHRoaXMpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RvcCgpCit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5maW5kKG1fSUQpOworICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLnJlbW92ZShpdCk7CisgICAgbV9ydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5raWxsVGltZXIo
bV9JRCk7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7Cit9
CisKKyNpbmNsdWRlICJSdW5Mb29wUXQubW9jIgpJbmRleDogV2ViS2l0Mi9QbGF0Zm9ybS9xdC9X
b3JrUXVldWVRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9QbGF0Zm9ybS9xdC9Xb3JrUXVl
dWVRdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1BsYXRmb3JtL3F0L1dvcmtRdWV1ZVF0
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiV29ya1F1ZXVlLmgiCisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
CisKKyNpbmNsdWRlIDxRT2JqZWN0PgorI2luY2x1ZGUgPFFUaHJlYWQ+CisKK2NsYXNzIFdvcmtR
dWV1ZTo6V29ya0l0ZW1RdCA6IHB1YmxpYyBRT2JqZWN0Cit7CisgICAgUV9PQkpFQ1QKK3B1Ymxp
YzoKKyAgICBXb3JrSXRlbVF0KFdvcmtRdWV1ZSogd29ya1F1ZXVlLCBXb3JrSXRlbSogd29ya0l0
ZW0pCisgICAgICAgIDogbV9xdWV1ZSh3b3JrUXVldWUpCisgICAgICAgICwgbV9zb3VyY2UoMCkK
KyAgICAgICAgLCBtX3NpZ25hbCgwKQorICAgICAgICAsIG1fd29ya0l0ZW0od29ya0l0ZW0pCisg
ICAgeworICAgIH0KKworICAgIFdvcmtJdGVtUXQoV29ya1F1ZXVlKiB3b3JrUXVldWUsIFFPYmpl
Y3QqIHNvdXJjZSwgY29uc3QgY2hhciogc2lnbmFsLCBXb3JrSXRlbSogd29ya0l0ZW0pCisgICAg
ICAgIDogbV9xdWV1ZSh3b3JrUXVldWUpCisgICAgICAgICwgbV9zb3VyY2Uoc291cmNlKQorICAg
ICAgICAsIG1fc2lnbmFsKHNpZ25hbCkKKyAgICAgICAgLCBtX3dvcmtJdGVtKHdvcmtJdGVtKQor
ICAgIHsKKyAgICAgICAgY29ubmVjdChtX3NvdXJjZSwgbV9zaWduYWwsIFNMT1QoZXhlY3V0ZSgp
KSwgUXQ6OlF1ZXVlZENvbm5lY3Rpb24pOworICAgIH0KKworICAgIH5Xb3JrSXRlbVF0KCkKKyAg
ICB7CisgICAgICAgIGRlbGV0ZSBtX3dvcmtJdGVtOworICAgIH0KKworICAgIFFfU0xPVCB2b2lk
IGV4ZWN1dGUoKSAKKyAgICB7IAorICAgICAgICBpZiAobV9xdWV1ZS0+bV9pc1ZhbGlkKQorICAg
ICAgICAgICAgbV93b3JrSXRlbS0+ZXhlY3V0ZSgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9p
ZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50KikKKyAgICB7CisgICAgICAgIGV4ZWN1dGUoKTsgCisg
ICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIFdvcmtRdWV1ZSogbV9xdWV1ZTsKKyAg
ICBRT2JqZWN0KiBtX3NvdXJjZTsKKyAgICBjb25zdCBjaGFyKiBtX3NpZ25hbDsKKyAgICBXb3Jr
SXRlbSogbV93b3JrSXRlbTsKK307CisKK3ZvaWQgV29ya1F1ZXVlOjpjb25uZWN0U2lnbmFsKFFP
YmplY3QqIG8sIGNvbnN0IGNoYXIqIHNpZ25hbCwgc3RkOjphdXRvX3B0cjxXb3JrSXRlbT4gd29y
a0l0ZW0pCit7CisgICAgV29ya1F1ZXVlOjpXb3JrSXRlbVF0KiBpdGVtUXQgPSBuZXcgV29ya1F1
ZXVlOjpXb3JrSXRlbVF0KHRoaXMsIG8sIHNpZ25hbCwgd29ya0l0ZW0ucmVsZWFzZSgpKTsKKyAg
ICBpdGVtUXQtPm1vdmVUb1RocmVhZChtX3dvcmtUaHJlYWQpOworICAgIG1fc2lnbmFsTGlzdGVu
ZXJzLmFkZChvLCBpdGVtUXQpOworfQorCit2b2lkIFdvcmtRdWV1ZTo6ZGlzY29ubmVjdFNpZ25h
bChRT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBuYW1lKQoreworICAgIEhhc2hNYXA8UU9iamVjdCos
IFdvcmtJdGVtUXQqPjo6aXRlcmF0b3IgaXQgPSBtX3NpZ25hbExpc3RlbmVycy5maW5kKG8pOwor
ICAgIGZvciAoOyBpdCAhPSBtX3NpZ25hbExpc3RlbmVycy5lbmQoKTsgKytpdCkgeworICAgICAg
ICBpZiAoc3RyY21wKGl0LT5zZWNvbmQtPm1fc2lnbmFsLCBuYW1lKSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICBkZWxldGUgaXQtPnNlY29uZDsKKyAgICAgICAgbV9zaWduYWxMaXN0
ZW5lcnMucmVtb3ZlKGl0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwordm9pZCBXb3Jr
UXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKikKK3sKKyAgICBtX3dvcmtUaHJl
YWQgPSBuZXcgUVRocmVhZCgpOworICAgIG1fd29ya1RocmVhZC0+c3RhcnQoKTsKK30KKwordm9p
ZCBXb3JrUXVldWU6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCit7CisgICAgbV93b3JrVGhyZWFkLT5l
eGl0KCk7CisgICAgbV93b3JrVGhyZWFkLT53YWl0KCk7CisgICAgZGVsZXRlIG1fd29ya1RocmVh
ZDsKK30KKwordm9pZCBXb3JrUXVldWU6OnNjaGVkdWxlV29yayhzdGQ6OmF1dG9fcHRyPFdvcmtJ
dGVtPiBpdGVtKQoreworICAgIFdvcmtRdWV1ZTo6V29ya0l0ZW1RdCogaXRlbVF0ID0gbmV3IFdv
cmtRdWV1ZTo6V29ya0l0ZW1RdCh0aGlzLCBpdGVtLnJlbGVhc2UoKSk7CisgICAgaXRlbVF0LT5z
dGFydFRpbWVyKDApOworICAgIGl0ZW1RdC0+bW92ZVRvVGhyZWFkKG1fd29ya1RocmVhZCk7Cit9
CisKKyNpbmNsdWRlICJXb3JrUXVldWVRdC5tb2MiCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9xdC9V
cGRhdGVDaHVuay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1
bmsuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJVcGRhdGVDaHVuay5oIgorCisjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgi
CisjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiQXR0YWNobWVudC5oIgor
I2luY2x1ZGUgIldlYkNvcmVUeXBlQXJndW1lbnRNYXJzaGFsbGluZy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaW5jbHVkZSA8
UURlYnVnPgorI2luY2x1ZGUgPFFGaWxlPgorI2luY2x1ZGUgPFFJbWFnZT4KKyNpbmNsdWRlIDxR
U2hhcmVkTWVtb3J5PgorI2luY2x1ZGUgPFFUZW1wb3JhcnlGaWxlPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
ICAgIAorI2lmIFVTRV9NTUFQCisKK1VwZGF0ZUNodW5rOjpVcGRhdGVDaHVuaygpCisgICAgOiBt
X2RhdGEoMCkKKyAgICAsIG1fc2l6ZSgwKQorICAgICwgbV9tYXBGaWxlKDApCit7Cit9CisKK1Vw
ZGF0ZUNodW5rOjpVcGRhdGVDaHVuayhjb25zdCBJbnRSZWN0JiByZWN0KQorICAgIDogbV9yZWN0
KHJlY3QpCisgICAgLCBtX2RhdGEoMCkKKyAgICAsIG1fc2l6ZShzaXplKCkpCisgICAgLCBtX21h
cEZpbGUoMCkKK3sKKyAgICBRVGVtcG9yYXJ5RmlsZSogdGVtcEZpbGUgPSBuZXcgUVRlbXBvcmFy
eUZpbGUoIldlYktpdDJVcGRhdGVDaHVuayIpOworICAgIHRlbXBGaWxlLT5zZXRBdXRvUmVtb3Zl
KGZhbHNlKTsKKyAgICB0ZW1wRmlsZS0+b3BlbigpOworICAgIHRlbXBGaWxlLT5yZXNpemUobV9z
aXplKTsKKyAgICBtX2RhdGEgPSB0ZW1wRmlsZS0+bWFwKDAsIG1fc2l6ZSk7CisgICAgdGVtcEZp
bGUtPmNsb3NlKCk7CisgICAgbV9tYXBGaWxlID0gdGVtcEZpbGU7Cit9CisKK1VwZGF0ZUNodW5r
Ojp+VXBkYXRlQ2h1bmsoKQoreworICAgIGlmIChtX21hcEZpbGUpIHsKKyAgICAgICAgbV9tYXBG
aWxlLT5yZW1vdmUoKTsKKyAgICAgICAgZGVsZXRlIG1fbWFwRmlsZTsKKyAgICB9Cit9CisKK3Vp
bnQ4X3QqIFVwZGF0ZUNodW5rOjpkYXRhKCkKK3sKKyAgICBBU1NFUlQobV9kYXRhKTsKKyAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4obV9kYXRhKTsKK30KKwordm9pZCBVcGRh
dGVDaHVuazo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyLmVuY29kZShtX3JlY3QpOworICAgIGVuY29kZXIuZW5jb2RlKFN0cmlu
ZyhtX21hcEZpbGUtPmZpbGVOYW1lKCkpKTsKKyAgICBkZWxldGUgbV9tYXBGaWxlOworICAgIG1f
bWFwRmlsZSA9IDA7Cit9CisKK2Jvb2wgVXBkYXRlQ2h1bms6OmRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIFVwZGF0ZUNodW5rJiBjaHVuaykKK3sKKyAgICBJbnRSZWN0
IHJlY3Q7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZWN0KSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGNodW5rLm1fcmVjdCA9IHJlY3Q7CisgICAgY2h1bmsubV9zaXplID0gY2h1bmsu
c2l6ZSgpOworICAgIAorICAgIFN0cmluZyBmaWxlTmFtZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGZpbGVOYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGNodW5rLm1f
bWFwRmlsZSA9IG5ldyBRRmlsZShmaWxlTmFtZSk7CisgICAgaWYgKCFjaHVuay5tX21hcEZpbGUt
Pm9wZW4oUUlPRGV2aWNlOjpSZWFkV3JpdGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Y2h1bmsubV9kYXRhID0gY2h1bmsubV9tYXBGaWxlLT5tYXAoMCwgY2h1bmsubV9zaXplKTsKKyAg
ICBjaHVuay5tX21hcEZpbGUtPmNsb3NlKCk7CisKKyAgICByZXR1cm4gY2h1bmsubV9kYXRhOwor
fQorCitRSW1hZ2UgVXBkYXRlQ2h1bms6OmNyZWF0ZUltYWdlKCkKK3sKKyAgICByZXR1cm4gUUlt
YWdlKGRhdGEoKSwgbV9yZWN0LndpZHRoKCksIG1fcmVjdC5oZWlnaHQoKSwgUUltYWdlOjpGb3Jt
YXRfUkdCMzIpOworfQorCisjZWxzZQorCitzdGF0aWMgVmVjdG9yPFFTaGFyZWRNZW1vcnkqPiog
ZGVhZE1lbW9yeVBvb2w7CisgICAgCitzdGF0aWMgdm9pZCBjbGVhbnVwRGVhZE1lbW9yeVBvb2wo
KQoreworICAgIFZlY3RvcjxRU2hhcmVkTWVtb3J5Kj4gcmVtYWluaW5nOworICAgIGZvciAodW5z
aWduZWQgbiA9IDA7IG4gPCBkZWFkTWVtb3J5UG9vbC0+c2l6ZSgpOyArK24pIHsKKyAgICAgICAg
UVNoYXJlZE1lbW9yeSogY3VycmVudCA9IGRlYWRNZW1vcnlQb29sLT5hdChuKTsKKyAgICAgICAg
aWYgKCpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oY3VycmVudC0+ZGF0YSgpKSA9PSAweGRl
YWRiZWVmKQorICAgICAgICAgICAgZGVsZXRlIGN1cnJlbnQ7CisgICAgICAgIGVsc2UgCisgICAg
ICAgICAgICByZW1haW5pbmcuYXBwZW5kKGN1cnJlbnQpOworICAgIH0KKyAgICBkZWFkTWVtb3J5
UG9vbC0+c3dhcChyZW1haW5pbmcpOworfQorCitzdGF0aWMgUVN0cmluZyBrZXlTdHJpbmcoaW50
IGtleSkgeyByZXR1cm4gUVN0cmluZygiV2ViS2l0VXBkYXRlQ2h1bmsiKSArIFFTdHJpbmc6Om51
bWJlcihrZXkpOyB9CisKK1VwZGF0ZUNodW5rOjpVcGRhdGVDaHVuaygpCisgICAgOiBtX3NoYXJl
ZE1lbW9yeShuZXcgUVNoYXJlZE1lbW9yeSgpKQoreworfQorCitVcGRhdGVDaHVuazo6VXBkYXRl
Q2h1bmsoY29uc3QgSW50UmVjdCYgcmVjdCkKKyAgICA6IG1fcmVjdChyZWN0KQorICAgICwgbV9z
aGFyZWRNZW1vcnkobmV3IFFTaGFyZWRNZW1vcnkoKSkKK3sKKyAgICBpZiAoIWRlYWRNZW1vcnlQ
b29sKQorICAgICAgICBkZWFkTWVtb3J5UG9vbCA9IG5ldyBWZWN0b3I8UVNoYXJlZE1lbW9yeSo+
OworICAgIGNsZWFudXBEZWFkTWVtb3J5UG9vbCgpOworCisgICAgbV9rZXkgPSByYW5kb20oKTsK
KyAgICBtX3NoYXJlZE1lbW9yeS0+c2V0S2V5KGtleVN0cmluZyhtX2tleSkpOworICAgIGJvb2wg
Y3JlYXRlZCA9IG1fc2hhcmVkTWVtb3J5LT5jcmVhdGUoc2l6ZSgpKTsKKyAgICBpZiAoIWNyZWF0
ZWQpCisgICAgICAgIHFEZWJ1ZygpIDw8ICJlcnJvciBjcmVhdGluZyBzaGFyZWQgbWVtIGtleTog
IiA8PCBtX3NoYXJlZE1lbW9yeS0+a2V5KCkgPDwgIiBlcnJvcjogIiA8PCBtX3NoYXJlZE1lbW9y
eS0+ZXJyb3IoKTsKK30KKworVXBkYXRlQ2h1bms6On5VcGRhdGVDaHVuaygpCit7CisgICAgaWYg
KG1fc2hhcmVkTWVtb3J5KSB7CisgICAgICAgICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4o
bV9zaGFyZWRNZW1vcnktPmRhdGEoKSkgPSAweGRlYWRiZWVmOworICAgICAgICBkZWxldGUgbV9z
aGFyZWRNZW1vcnk7CisgICAgfQorfQorCit1aW50OF90KiBVcGRhdGVDaHVuazo6ZGF0YSgpCit7
CisgICAgQVNTRVJUKG1fc2hhcmVkTWVtb3J5LT5pc0F0dGFjaGVkKCkpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDx1aW50OF90Kj4obV9zaGFyZWRNZW1vcnktPmRhdGEoKSk7Cit9CisKK3ZvaWQg
VXBkYXRlQ2h1bms6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2Rlci5lbmNvZGUobV9yZWN0KTsKKyAgICBlbmNvZGVyLmVuY29kZSht
X2tleSk7CisKKyAgICBkZWFkTWVtb3J5UG9vbC0+YXBwZW5kKG1fc2hhcmVkTWVtb3J5KTsKKyAg
ICBtX3NoYXJlZE1lbW9yeSA9IDA7Cit9CisKK2Jvb2wgVXBkYXRlQ2h1bms6OmRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFVwZGF0ZUNodW5rJiBjaHVuaykKK3sKKyAg
ICBJbnRSZWN0IHJlY3Q7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZWN0KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGNodW5rLm1fcmVjdCA9IHJlY3Q7CisgICAgCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShjaHVuay5tX2tleSkpCisgICAgICAgIHJldHVybiBmYWxzZTsgICAgCisK
KyAgICBjaHVuay5tX3NoYXJlZE1lbW9yeS0+c2V0S2V5KGtleVN0cmluZyhjaHVuay5tX2tleSkp
OworICAgIGJvb2wgc3VjY2VzcyA9IGNodW5rLm1fc2hhcmVkTWVtb3J5LT5hdHRhY2goKTsKKyAg
ICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgIHFEZWJ1ZygpIDw8ICJlcnJvciBhdHRhY2hpbmcgdG8g
c2hhcmVkIG1lbSBrZXk6ICIgPDwgY2h1bmsubV9zaGFyZWRNZW1vcnktPmtleSgpIDw8ICIgZXJy
b3I6ICIgPDwgY2h1bmsubV9zaGFyZWRNZW1vcnktPmVycm9yKCk7CisgICAgcmV0dXJuIHN1Y2Nl
c3M7Cit9CisKK1FJbWFnZSBVcGRhdGVDaHVuazo6Y3JlYXRlSW1hZ2UoKQoreworICAgIHJldHVy
biBRSW1hZ2UoZGF0YSgpLCBtX3JlY3Qud2lkdGgoKSwgbV9yZWN0LmhlaWdodCgpLCBRSW1hZ2U6
OkZvcm1hdF9SR0IzMik7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4
OiBXZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
U2hhcmVkL3F0L1VwZGF0ZUNodW5rLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1NoYXJlZC9x
dC9VcGRhdGVDaHVuay5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBVcGRhdGVDaHVua19oCisjZGVmaW5lIFVwZGF0ZUNodW5r
X2gKKworI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KKworI2luY2x1ZGUgPFFJbWFnZT4KKworI2RlZmluZSBVU0VfTU1BUCAxCisKK25hbWVz
cGFjZSBDb3JlSVBDIHsKKyAgICBjbGFzcyBBcmd1bWVudEVuY29kZXI7CisgICAgY2xhc3MgQXJn
dW1lbnREZWNvZGVyOworfQorCitjbGFzcyBRRmlsZTsKK2NsYXNzIFFTaGFyZWRNZW1vcnk7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBVcGRhdGVDaHVuayB7CitwdWJsaWM6CisgICAg
VXBkYXRlQ2h1bmsoKTsKKyAgICBVcGRhdGVDaHVuayhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7
CisgICAgflVwZGF0ZUNodW5rKCk7CisKKyAgICB1aW50OF90KiBkYXRhKCk7CisgICAgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQorCisgICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFVwZGF0ZUNodW5rJik7Cisg
ICAgCisgICAgUUltYWdlIGNyZWF0ZUltYWdlKCk7CisgICAgCitwcml2YXRlOgorICAgIHNpemVf
dCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LndpZHRoKCkgKiA0ICogbV9yZWN0LmhlaWdo
dCgpOyB9CisKKyAgICBXZWJDb3JlOjpJbnRSZWN0IG1fcmVjdDsKKworI2lmIFVTRV9NTUFQCisg
ICAgdWNoYXIqIG1fZGF0YTsKKyAgICBzaXplX3QgbV9zaXplOworICAgIG11dGFibGUgUUZpbGUq
IG1fbWFwRmlsZTsKKyNlbHNlCisgICAgaW50IG1fa2V5OyAgICAKKyAgICBtdXRhYmxlIFFTaGFy
ZWRNZW1vcnkqIG1fc2hhcmVkTWVtb3J5OworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIFVwZGF0ZUNodW5rX2gKSW5kZXg6IFdlYktpdDIvU2hhcmVkL3F0
L1dlYkV2ZW50RmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL3F0L1dlYkV2
ZW50RmFjdG9yeS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRG
YWN0b3J5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYkV2ZW50RmFjdG9yeV9oCisjZGVmaW5lIFdlYkV2ZW50RmFjdG9yeV9oCisKKyNpbXBv
cnQgIldlYkV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBGSVhNRTogVGhpcyBp
cyBub3QgbmVlZGVkIGluIHRoZSBXZWJQcm9jZXNzIGFuZCBzaG91bGQgYmUgbW92ZWQgdG8gYmUg
YSBwZWVyCisvLyBvZiBXS1ZpZXcuCisKK2NsYXNzIFdlYkV2ZW50RmFjdG9yeSB7CitwdWJsaWM6
CisvLyAgICBzdGF0aWMgV2ViTW91c2VFdmVudCBjcmVhdGVXZWJNb3VzZUV2ZW50KE5TRXZlbnQg
KmV2ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpOworLy8gICAgc3RhdGljIFdlYldoZWVsRXZlbnQg
Y3JlYXRlV2ViV2hlZWxFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kb3dWaWV3KTsK
Ky8vICAgIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNF
dmVudCAqZXZlbnQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBX
ZWJFdmVudEZhY3RvcnlfaApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAko
cmV2aXNpb24gNjAwNzIpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM5LDEyICszOSwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgY2xhc3MgSW50UmVjdDsKIH0KIAorI2lmIFBMQVRGT1JNKFFUKQorY2xhc3MgUVBhaW50ZXI7
CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKICNpZiBQTEFURk9STShNQUMpCiB0eXBl
ZGVmIENHQ29udGV4dFJlZiBQbGF0Zm9ybURyYXdpbmdDb250ZXh0OwogI2VsaWYgUExBVEZPUk0o
V0lOKQogdHlwZWRlZiBIREMgUGxhdGZvcm1EcmF3aW5nQ29udGV4dDsKKyNlbGlmIFBMQVRGT1JN
KFFUKQordHlwZWRlZiBRUGFpbnRlciogUGxhdGZvcm1EcmF3aW5nQ29udGV4dDsKICNlbmRpZgog
CiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5IHsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHlVcGRhdGVDaHVuay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHlVcGRhdGVDaHVuay5oCShyZXZpc2lvbiA2MDA3MikKKysrIFdlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlVcGRhdGVDaHVuay5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNiw2ICszNiw5IEBACiAjZWxzZQogY2xhc3MgV0tWaWV3OwogI2VuZGlmCisjZWxpZiBQ
TEFURk9STShRVCkKK2NsYXNzIFFXS0dyYXBoaWNzV2lkZ2V0OworI2luY2x1ZGUgPFFJbWFnZT4K
ICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ4LDYgKzUxLDggQEAgdHlwZWRlZiBX
S1ZpZXcgUGxhdGZvcm1XZWJWaWV3OwogI2VsaWYgUExBVEZPUk0oV0lOKQogY2xhc3MgV2ViVmll
dzsKIHR5cGVkZWYgV2ViVmlldyBQbGF0Zm9ybVdlYlZpZXc7CisjZWxpZiBQTEFURk9STShRVCkK
K3R5cGVkZWYgUVdLR3JhcGhpY3NXaWRnZXQgUGxhdGZvcm1XZWJWaWV3OwogI2VuZGlmCiAKIGNs
YXNzIERyYXdpbmdBcmVhUHJveHlVcGRhdGVDaHVuayA6IHB1YmxpYyBEcmF3aW5nQXJlYVByb3h5
IHsKQEAgLTkwLDYgKzk1LDggQEAgcHJpdmF0ZToKICAgICAvLyBCYWNraW5nU3RvcmUKICAgICBP
d25QdHI8SERDPiBtX2JhY2tpbmdTdG9yZURDOwogICAgIE93blB0cjxIQklUTUFQPiBtX2JhY2tp
bmdTdG9yZUJpdG1hcDsKKyNlbGlmIFBMQVRGT1JNKFFUKQorICAgIFFJbWFnZSBtX2JhY2tpbmdT
dG9yZUltYWdlOwogI2VuZGlmCiAKICAgICBQbGF0Zm9ybVdlYlZpZXcqIG1fd2ViVmlldzsKSW5k
ZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tncmFwaGljc3dpZGdldC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBoaWNzd2lkZ2V0LmNwcAko
cmV2aXNpb24gMCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tncmFwaGljc3dpZGdl
dC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0g
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKwor
I2luY2x1ZGUgInF3a2dyYXBoaWNzd2lkZ2V0LmgiCisKKyNpbmNsdWRlICJJbnRTaXplLmgiCisj
aW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eVVwZGF0ZUNodW5rLmgiCisjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUGFnZU5hbWVzcGFjZS5oIgorI2luY2x1ZGUgInd0Zi9S
ZWZQdHIuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtU3RyaW5nLmg+CisKKyNpbmNsdWRlIDxRUGFpbnRlcj4KKyNpbmNsdWRlIDxRU3R5bGVPcHRp
b25HcmFwaGljc0l0ZW0+CisjaW5jbHVkZSA8UVVybD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdHJ1Y3QgUVdLR3JhcGhpY3NXaWRnZXRQ
cml2YXRlIAoreworICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IF9wYWdlOworfTsKKworUVdLR3Jh
cGhpY3NXaWRnZXQ6OlFXS0dyYXBoaWNzV2lkZ2V0KFdLUGFnZU5hbWVzcGFjZVJlZiBwYWdlTmFt
ZXNwYWNlUmVmLCBRR3JhcGhpY3NJdGVtKiBwYXJlbnQpCisgICAgOiBRR3JhcGhpY3NXaWRnZXQo
cGFyZW50KQorICAgICwgZChuZXcgUVdLR3JhcGhpY3NXaWRnZXRQcml2YXRlKQoreworICAgIGQt
Pl9wYWdlID0gdG9XSyhwYWdlTmFtZXNwYWNlUmVmKS0+Y3JlYXRlV2ViUGFnZSgpOworLy8gICAg
ZC0+X3BhZ2UtPnNldFBhZ2VDbGllbnQobmV3IFBhZ2VDbGllbnRJbXBsKHRoaXMpKTsKKyAgICBk
LT5fcGFnZS0+aW5pdGlhbGl6ZVdlYlBhZ2UoSW50U2l6ZShnZW9tZXRyeSgpLnNpemUoKS50b1Np
emUoKSksIG5ldyBEcmF3aW5nQXJlYVByb3h5VXBkYXRlQ2h1bmsodGhpcykpOworfQorCitRV0tH
cmFwaGljc1dpZGdldDo6flFXS0dyYXBoaWNzV2lkZ2V0KCkKK3sKKyAgICBkZWxldGUgZDsKK30K
KworV0tQYWdlUmVmIFFXS0dyYXBoaWNzV2lkZ2V0OjpwYWdlUmVmKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gdG9SZWYoZC0+X3BhZ2UuZ2V0KCkpOworfQorCit2b2lkIFFXS0dyYXBoaWNzV2lkZ2V0
OjpwYWludChRUGFpbnRlciogcGFpbnRlciwgY29uc3QgUVN0eWxlT3B0aW9uR3JhcGhpY3NJdGVt
KiBvcHRpb24sIFFXaWRnZXQqKQoreworICAgIHBhaW50ZXItPnNhdmUoKTsKKyAgICAKKyAgICBR
UmVjdCByZWN0ID0gb3B0aW9uLT5leHBvc2VkUmVjdC50b0FsaWduZWRSZWN0KCk7CisgICAgcGFp
bnRlci0+c2V0QnJ1c2goUXQ6OndoaXRlKTsKKyAgICBwYWludGVyLT5kcmF3UmVjdChyZWN0KTsK
KworICAgIGlmIChkLT5fcGFnZS0+aXNWYWxpZCgpICYmIGQtPl9wYWdlLT5kcmF3aW5nQXJlYSgp
KQorICAgICAgICBkLT5fcGFnZS0+ZHJhd2luZ0FyZWEoKS0+cGFpbnQoSW50UmVjdChyZWN0KSwg
cGFpbnRlcik7CisKKyAgICBwYWludGVyLT5yZXN0b3JlKCk7Cit9CisKK3ZvaWQgUVdLR3JhcGhp
Y3NXaWRnZXQ6OnNldEdlb21ldHJ5KGNvbnN0IFFSZWN0RiYgcmVjdCkKK3sKKyAgICBRR3JhcGhp
Y3NXaWRnZXQ6OnNldEdlb21ldHJ5KHJlY3QpOworICAgIAorICAgIC8vIE5PVEU6IGNhbGwgZ2Vv
bWV0cnkoKSBhcyBzZXRHZW9tZXRyeSBlbnN1cmVzIHRoYXQKKyAgICAvLyB0aGUgZ2VvbWV0cnkg
aXMgd2l0aGluIGxlZ2FsIGJvdW5kcyAobWluaW11bVNpemUsIG1heGltdW1TaXplKQorICAgIFFT
aXplIHNpemUgPSBnZW9tZXRyeSgpLnNpemUoKS50b1NpemUoKTsKKyAgICBkLT5fcGFnZS0+ZHJh
d2luZ0FyZWEoKS0+c2V0U2l6ZShJbnRTaXplKHNpemUpKTsKK30KKworV0tTdHJpbmdSZWYgV0tT
dHJpbmdDcmVhdGVXaXRoUVN0cmluZyhRU3RyaW5nIHFTdHJpbmcpCit7CisgICAgU3RyaW5nIHN0
cmluZyhxU3RyaW5nKTsKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gc3RyaW5nSW1wbCA9IHN0cmlu
Zy5pbXBsKCk7CisgICAgcmV0dXJuIHRvUmVmKHN0cmluZ0ltcGwucmVsZWFzZSgpLnJlbGVhc2VS
ZWYoKSk7Cit9CisKK1FTdHJpbmcgV0tTdHJpbmdDb3B5UVN0cmluZyhXS1N0cmluZ1JlZiBzdHJp
bmdSZWYpCit7CisgICAgcmV0dXJuIFFTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBRQ2hh
cio+KHRvV0soc3RyaW5nUmVmKS0+Y2hhcmFjdGVycygpKSwgdG9XSyhzdHJpbmdSZWYpLT5sZW5n
dGgoKSk7Cit9CisKK1dLVVJMUmVmIFdLVVJMQ3JlYXRlV2l0aFFVcmwoUVVybCBxVVJMKQorewor
ICAgIFN0cmluZyB1cmxTdHJpbmcocVVSTC50b1N0cmluZygpKTsKKyAgICBSZWZQdHI8U3RyaW5n
SW1wbD4gdXJsU3RyaW5nSW1wbCA9IHVybFN0cmluZy5pbXBsKCk7CisgICAgcmV0dXJuIHRvVVJM
UmVmKHVybFN0cmluZ0ltcGwucmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7Cit9CisKK1FVcmwgV0tV
UkxDb3B5UVVybChXS1VSTFJlZiBVUkxSZWYpCit7CisgICAgcmV0dXJuIFFVcmwoUVN0cmluZyhy
ZWludGVycHJldF9jYXN0PGNvbnN0IFFDaGFyKj4odG9XSyhVUkxSZWYpLT5jaGFyYWN0ZXJzKCkp
LCB0b1dLKFVSTFJlZiktPmxlbmd0aCgpKSk7Cit9CisKKyNpbmNsdWRlICJtb2NfcXdrZ3JhcGhp
Y3N3aWRnZXQuY3BwIgpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBoaWNz
d2lkZ2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBo
aWNzd2lkZ2V0LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdr
Z3JhcGhpY3N3aWRnZXQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorI2lmbmRlZiBR
V0tHcmFwaGljc1dpZGdldF9oCisjZGVmaW5lIFFXS0dyYXBoaWNzV2lkZ2V0X2gKKworI2luY2x1
ZGUgInF3ZWJraXRnbG9iYWwuaCIKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5j
bHVkZSA8UUdyYXBoaWNzV2lkZ2V0PgorCitjbGFzcyBRV0tHcmFwaGljc1dpZGdldFByaXZhdGU7
CisKK1dLU3RyaW5nUmVmIFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcoUVN0cmluZyBxU3RyaW5n
KTsKK1FTdHJpbmcgV0tTdHJpbmdDb3B5UVN0cmluZyhXS1N0cmluZ1JlZiBzdHJpbmdSZWYpOwor
CitXS1VSTFJlZiBXS1VSTENyZWF0ZVdpdGhRVXJsKFFVcmwgcVVSTCk7CitRVXJsIFdLVVJMQ29w
eVFVcmwoV0tVUkxSZWYgVVJMUmVmKTsKKworY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdLR3JhcGhp
Y3NXaWRnZXQgOiBwdWJsaWMgUUdyYXBoaWNzV2lkZ2V0Cit7CisgICAgUV9PQkpFQ1QKK3B1Ymxp
YzoKKyAgICBRV0tHcmFwaGljc1dpZGdldChXS1BhZ2VOYW1lc3BhY2VSZWYgbmFtZXNwYWNlUmVm
LCBRR3JhcGhpY3NJdGVtKiBwYXJlbnQgPSAwKTsKKyAgICB2aXJ0dWFsIH5RV0tHcmFwaGljc1dp
ZGdldCgpOworCisgICAgV0tQYWdlUmVmIHBhZ2VSZWYoKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0
dWFsIHZvaWQgcGFpbnQoUVBhaW50ZXIqLCBjb25zdCBRU3R5bGVPcHRpb25HcmFwaGljc0l0ZW0q
LCBRV2lkZ2V0Kik7CisgICAgdmlydHVhbCB2b2lkIHNldEdlb21ldHJ5KGNvbnN0IFFSZWN0RiYp
OworCitwcml2YXRlOgorICAgIFFXS0dyYXBoaWNzV2lkZ2V0UHJpdmF0ZSogZDsKK307CisKKyNl
bmRpZgpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvV2ViUHJvY2Vzc0xhdW5j
aGVyUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1dl
YlByb2Nlc3NMYXVuY2hlclF0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL3F0L1dlYlByb2Nlc3NMYXVuY2hlclF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c0xhdW5jaGVyLmgiCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUnVuTG9v
cC5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
U3RyaW5nLmg+CisjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5j
bHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgorCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8UUFwcGxpY2F0
aW9uPgorI2luY2x1ZGUgPFFQcm9jZXNzPgorCisjaW5jbHVkZSA8UXRDb3JlL3FnbG9iYWwuaD4K
KworI2lmICFkZWZpbmVkKFFXRUJLSVRfRVhQT1JUKQorIyAgaWYgZGVmaW5lZChRVF9TSEFSRUQp
CisjICAgIGRlZmluZSBRV0VCS0lUX0VYUE9SVCBRX0RFQ0xfRVhQT1JUCisjICBlbHNlCisjICAg
IGRlZmluZSBRV0VCS0lUX0VYUE9SVAorIyAgZW5kaWYKKyNlbmRpZgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB2b2lkKiB3ZWJUaHJl
YWRCb2R5KHZvaWQqKQoreworICAgIC8vIEluaXRpYWxpemF0aW9uCisgICAgSlNDOjppbml0aWFs
aXplVGhyZWFkaW5nKCk7CisgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOworCisgICAg
V2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5pdGlhbGl6ZSgiZm9vIiwgUnVuTG9vcDo6Y3VycmVudCgp
KTsKKyAgICBSdW5Mb29wOjpydW4oKTsKKworICAgIHJldHVybiAwOworfQorCitQcm9jZXNzSW5m
byBsYXVuY2hXZWJQcm9jZXNzKENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudCogY2xpZW50LCBQ
cm9jZXNzTW9kZWwgbW9kZWwpCit7CisgICAgUHJvY2Vzc0luZm8gaW5mbyA9IHsgMCwgMCB9Owor
CisgICAgc3JhbmRvbSh0aW1lKDApKTsKKyAgICBRU3RyaW5nIHNlcnZlcklkZW50aWZpZXIgPSBR
U3RyaW5nOjpudW1iZXIocmFuZG9tKCkpOworCisgICAgaW5mby5jb25uZWN0aW9uID0gQ29yZUlQ
Qzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihzZXJ2ZXJJZGVudGlmaWVyLCBj
bGllbnQsIFJ1bkxvb3A6Om1haW4oKSk7CisgICAgaW5mby5jb25uZWN0aW9uLT5vcGVuKCk7CisK
KyAgICBzd2l0Y2ggKG1vZGVsKSB7CisgICAgICAgIGNhc2UgUHJvY2Vzc01vZGVsU2Vjb25kYXJ5
VGhyZWFkOiB7CisgICAgICAgICAgICAvLyBGSVhNRTogUGFzcyB0aGUgaGFuZGxlLgorICAgICAg
ICAgICAgaWYgKGNyZWF0ZVRocmVhZCh3ZWJUaHJlYWRCb2R5LCAwLCAiV2ViS2l0MjogV2ViVGhy
ZWFkIikpIHsKKyAgICAgICAgICAgICAgICBpbmZvLnByb2Nlc3NJZGVudGlmaWVyID0gZ2V0cGlk
KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGluZm87CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFByb2Nlc3NNb2RlbFNlY29uZGFy
eVByb2Nlc3M6IHsKKyAgICAgICAgICAgIFFTdHJpbmcgcHJvZ3JhbSgiUXRXZWJQcm9jZXNzICIg
KyBzZXJ2ZXJJZGVudGlmaWVyKTsKKworICAgICAgICAgICAgUVByb2Nlc3MqIHdlYlByb2Nlc3Mg
PSBuZXcgUVByb2Nlc3M7CisgICAgICAgICAgICB3ZWJQcm9jZXNzLT5zdGFydChwcm9ncmFtKTsK
KyAgICAgICAgICAgIGlmICh3ZWJQcm9jZXNzLT53YWl0Rm9yU3RhcnRlZCgpKQorICAgICAgICAg
ICAgICAgIGluZm8ucHJvY2Vzc0lkZW50aWZpZXIgPSB3ZWJQcm9jZXNzLT5waWQoKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICByZXR1cm4gaW5mbzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKK1FXRUJLSVRfRVhQT1JUIGludCB3ZWJQcm9jZXNzTWFpbihpbnQgYXJnYywgY2hhcioqIGFy
Z3YpCit7ICAgIAorICAgIFFBcHBsaWNhdGlvbiogYXBwID0gbmV3IFFBcHBsaWNhdGlvbihhcmdj
LCBhcmd2LCBRQXBwbGljYXRpb246Okd1aVNlcnZlcik7CisgICAgc3JhbmRvbSh0aW1lKDApKTsK
KworICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOworICAgIFdURjo6aW5pdGlhbGl6ZU1h
aW5UaHJlYWQoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICAK
KyAgICAvLyBDcmVhdGUgdGhlIGNvbm5lY3Rpb24uCisgICAgUVN0cmluZyBpZGVudGlmaWVyKGFw
cC0+YXJndW1lbnRzKCkuc2l6ZSgpID4gMSA/IGFwcC0+YXJndW1lbnRzKCkuYXQoMSkgOiAiIik7
CisgICAgV2ViS2l0OjpXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbml0aWFsaXplKGlkZW50aWZpZXIs
IFJ1bkxvb3A6Om1haW4oKSk7CisgICAgCisgICAgUnVuTG9vcDo6cnVuKCk7CisgICAgCisgICAg
Ly8gRklYTUU6IERvIG1vcmUgY2xlYW51cCBoZXJlLgorICAgIAorICAgIHJldHVybiAwOworfQpJ
bmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvcXQvRHJhd2luZ0FyZWFQcm94eVVwZGF0ZUNodW5rUXQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL3F0L0RyYXdpbmdBcmVhUHJveHlV
cGRhdGVDaHVua1F0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL3F0L0Ry
YXdpbmdBcmVhUHJveHlVcGRhdGVDaHVua1F0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5
VXBkYXRlQ2h1bmsuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZUtpbmRzLmgiCisj
aW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VLaW5kcy5oIgorI2luY2x1ZGUgIlVwZGF0
ZUNodW5rLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5
LmgiCisKKyNpbmNsdWRlICJxd2tncmFwaGljc3dpZGdldC5oIgorCisjaW5jbHVkZSA8UVBhaW50
ZXI+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
V2ViUGFnZVByb3h5KiBEcmF3aW5nQXJlYVByb3h5VXBkYXRlQ2h1bms6OnBhZ2UoKQoreworICAg
IHJldHVybiB0b1dLKG1fd2ViVmlldy0+cGFnZVJlZigpKTsKK30KKwordm9pZCBEcmF3aW5nQXJl
YVByb3h5VXBkYXRlQ2h1bms6OmVuc3VyZUJhY2tpbmdTdG9yZSgpCit7CisgICAgaWYgKCFtX2Jh
Y2tpbmdTdG9yZUltYWdlLmlzTnVsbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2JhY2tp
bmdTdG9yZUltYWdlID0gUUltYWdlKG1fdmlld1NpemUud2lkdGgoKSwgbV92aWV3U2l6ZS5oZWln
aHQoKSwgUUltYWdlOjpGb3JtYXRfUkdCMzIpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlV
cGRhdGVDaHVuazo6aW52YWxpZGF0ZUJhY2tpbmdTdG9yZSgpCit7CisgICAgbV9iYWNraW5nU3Rv
cmVJbWFnZSA9IFFJbWFnZSgpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlVcGRhdGVDaHVu
azo6cGxhdGZvcm1QYWludChjb25zdCBJbnRSZWN0JiByZWN0LCBRUGFpbnRlciogcGFpbnRlcikK
K3sKKyAgICBpZiAobV9iYWNraW5nU3RvcmVJbWFnZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgcGFpbnRlci0+ZHJhd0ltYWdlKFFQb2ludCgwLDApLCBtX2JhY2tpbmdTdG9yZUlt
YWdlKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5VXBkYXRlQ2h1bms6OmRyYXdVcGRhdGVD
aHVua0ludG9CYWNraW5nU3RvcmUoVXBkYXRlQ2h1bmsqIHVwZGF0ZUNodW5rKQoreworICAgIGVu
c3VyZUJhY2tpbmdTdG9yZSgpOworCisgICAgUUltYWdlIGltYWdlKHVwZGF0ZUNodW5rLT5jcmVh
dGVJbWFnZSgpKTsKKyAgICBjb25zdCBJbnRSZWN0JiB1cGRhdGVDaHVua1JlY3QgPSB1cGRhdGVD
aHVuay0+cmVjdCgpOworCisgICAgUVBhaW50ZXIgcGFpbnRlcigmbV9iYWNraW5nU3RvcmVJbWFn
ZSk7CisgICAgcGFpbnRlci5kcmF3SW1hZ2UodXBkYXRlQ2h1bmtSZWN0LnRvcExlZnQoKSwgaW1h
Z2UpOworCisgICAgbV93ZWJWaWV3LT51cGRhdGUoUVJlY3QodXBkYXRlQ2h1bmtSZWN0KSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAkocmV2aXNpb24gNjAwNzIpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNl
c1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjZGVmaW5lIE5ERUJVRyAyCiAKICNpZm5kZWYgTkRFQlVHCiAj
aW5jbHVkZSA8V2ViQ29yZS9DYWNoZS5oPgpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL0xhdW5j
aGluZy9xdC9XZWJQcm9jZXNzTWFpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9j
ZXNzL0xhdW5jaGluZy9xdC9XZWJQcm9jZXNzTWFpbi5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJL
aXQyL1dlYlByb2Nlc3MvTGF1bmNoaW5nL3F0L1dlYlByb2Nlc3NNYWluLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2V4dGVybiBpbnQg
d2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKKworaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIqKiBhcmd2KQoreyAgICAKKyAgICB3ZWJQcm9jZXNzTWFpbihhcmdjLCBhcmd2KTsK
K30KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDYwMDcyKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgsNiAr
MTY4LDE0IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllclN5bmMoKTsKICNlbmRpZgogICAgIAorI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAg
IHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVz
ZW50ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9IAorI2VuZGlmCisgICAgCisjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKKyAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJvb2wpIHsgfQor
I2VuZGlmCisKICAgICBXZWJDb3JlOjpTdHJpbmcgbV9jYWNoZWRUb29sVGlwOwogICAgIFdlYlBh
Z2UqIG1fcGFnZTsKIH07CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
cXQvV2ViRXJyb3JzUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9xdC9XZWJFcnJvcnNRdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRXJyb3JzUXQuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldlYkVy
cm9ycy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKworI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRp
b24+CisjaW5jbHVkZSA8UU5ldHdvcmtSZXBseT4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBjb3BpZWQgZnJvbSBXZWJLaXQvTWlzYy9XZWJL
aXRFcnJvcnNbUHJpdmF0ZV0uaAorZW51bSB7CisgICAgV2ViS2l0RXJyb3JDYW5ub3RTaG93TUlN
RVR5cGUgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwLAorICAgIFdlYktpdEVycm9y
Q2Fubm90U2hvd1VSTCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMSwKKyAg
ICBXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgPSAgICAgICAg
ICAgICAxMDIsCisgICAgV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCA9IDEwMywK
KyAgICBXZWJLaXRFcnJvckNhbm5vdEZpbmRQbHVnSW4gPSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyMDAsCisgICAgV2ViS2l0RXJyb3JDYW5ub3RMb2FkUGx1Z0luID0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjAxLAorICAgIFdlYktpdEVycm9ySmF2YVVuYXZhaWxhYmxl
ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMiwKK307CisKK1Jlc291cmNlRXJy
b3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAg
IFJlc291cmNlRXJyb3IgZXJyb3IgPSBSZXNvdXJjZUVycm9yKCJRdE5ldHdvcmsiLCBRTmV0d29y
a1JlcGx5OjpPcGVyYXRpb25DYW5jZWxlZEVycm9yLCByZXF1ZXN0LnVybCgpLnByZXR0eVVSTCgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYkZyYW1lIiwgIlJlcXVlc3QgY2FuY2VsbGVkIiwgMCwgUUNvcmVB
cHBsaWNhdGlvbjo6VW5pY29kZVVURjgpKTsKKyAgICBlcnJvci5zZXRJc0NhbmNlbGxhdGlvbih0
cnVlKTsKKyAgICByZXR1cm4gZXJyb3I7ICAgIAorfQorCitSZXNvdXJjZUVycm9yIGJsb2NrZWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoIldlYktpdCIsIFdlYktpdEVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQsIHJl
cXVlc3QudXJsKCkucHJldHR5VVJMKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViRnJhbWUiLCAiUmVxdWVzdCBibG9ja2VkIiwgMCwg
UUNvcmVBcHBsaWNhdGlvbjo6VW5pY29kZVVURjgpKTsKK30KKworUmVzb3VyY2VFcnJvciBjYW5u
b3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKCJXZWJLaXQiLCBXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwsIHJl
cXVlc3QudXJsKCkuc3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgUUNvcmVBcHBs
aWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViRnJhbWUiLCAiQ2Fubm90IHNob3cgVVJMIiwgMCwgUUNv
cmVBcHBsaWNhdGlvbjo6VW5pY29kZVVURjgpKTsKK30KKworUmVzb3VyY2VFcnJvciBpbnRlcnJ1
cHRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7
CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoIldlYktpdCIsIFdlYktpdEVycm9yRnJhbWVMb2Fk
SW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJGcmFt
ZSIsICJGcmFtZSBsb2FkIGludGVycnVwdGVkIGJ5IHBvbGljeSBjaGFuZ2UiLCAwLCBRQ29yZUFw
cGxpY2F0aW9uOjpVbmljb2RlVVRGOCkpOworfQorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dN
SU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKCJXZWJLaXQiLCBXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlw
ZSwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViRnJhbWUiLCAiQ2Fubm90IHNob3cgbWltZXR5
cGUiLCAwLCBRQ29yZUFwcGxpY2F0aW9uOjpVbmljb2RlVVRGOCkpOworfQorCitSZXNvdXJjZUVy
cm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcigiUXROZXR3b3JrIiwgUU5ldHdvcmtSZXBs
eTo6Q29udGVudE5vdEZvdW5kRXJyb3IsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYkZyYW1l
IiwgIkZpbGUgZG9lcyBub3QgZXhpc3QiLCAwLCBRQ29yZUFwcGxpY2F0aW9uOjpVbmljb2RlVVRG
OCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL3F0L0RyYXdpbmdBcmVhVXBkYXRlQ2h1bmtRdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvRHJhd2luZ0FyZWFVcGRhdGVDaHVua1F0LmNw
cAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0RyYXdpbmdB
cmVhVXBkYXRlQ2h1bmtRdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFVcGRhdGVDaHVuay5oIgor
CisjaW5jbHVkZSAiVXBkYXRlQ2h1bmsuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisKKyNpbmNsdWRlIDxRSW1hZ2U+CisjaW5jbHVkZSA8UVBhaW50ZXI+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKKyAgICB2b2lkIERyYXdp
bmdBcmVhVXBkYXRlQ2h1bms6OnBhaW50SW50b1VwZGF0ZUNodW5rKFVwZGF0ZUNodW5rKiB1cGRh
dGVDaHVuaykKKyAgICB7CisgICAgICAgIFFJbWFnZSBpbWFnZSh1cGRhdGVDaHVuay0+Y3JlYXRl
SW1hZ2UoKSk7CisgICAgICAgIFFQYWludGVyIHBhaW50ZXIoJmltYWdlKTsKKyAgICAgICAgLy8g
Tm93IHBhaW50IGludG8gdGhlIGJhY2tpbmcgc3RvcmUuCisgICAgICAgIEdyYXBoaWNzQ29udGV4
dCBncmFwaGljc0NvbnRleHQoJnBhaW50ZXIpOworICAgICAgICBncmFwaGljc0NvbnRleHQudHJh
bnNsYXRlKC11cGRhdGVDaHVuay0+cmVjdCgpLngoKSwgLXVwZGF0ZUNodW5rLT5yZWN0KCkueSgp
KTsKKyAgICAgICAgCisgICAgICAgIG1fd2ViUGFnZS0+ZHJhd1JlY3QoZ3JhcGhpY3NDb250ZXh0
LCB1cGRhdGVDaHVuay0+cmVjdCgpKTsKKyAgICB9CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAko
cmV2aXNpb24gMCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVu
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZv
cm1LZXlib2FyZEV2ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCisjaWZu
ZGVmIFZLX1VOS05PV04KKworI2RlZmluZSBWS19VTktOT1dOIDAKKworLy8gTGVmdCBtb3VzZSBi
dXR0b24KKy8vIFJpZ2h0IG1vdXNlIGJ1dHRvbgorLy8gQ29udHJvbC1icmVhayBwcm9jZXNzaW5n
CisvLyBNaWRkbGUgbW91c2UgYnV0dG9uICh0aHJlZS1idXR0b24gbW91c2UpCisvLyBWS19YQlVU
VE9OMSAoMDUpCisvLyBWS19YQlVUVE9OMiAoMDYpCisKKyNkZWZpbmUgVktfQkFDSyAweDA4Cisj
ZGVmaW5lIFZLX1RBQiAweDA5CisjZGVmaW5lIFZLX0NMRUFSIDB4MEMKKyNkZWZpbmUgVktfUkVU
VVJOIDB4MEQKKyNkZWZpbmUgVktfU0hJRlQgMHgxMAorI2RlZmluZSBWS19DT05UUk9MIDB4MTEg
Ly8gQ1RSTCBrZXkKKyNkZWZpbmUgVktfTUVOVSAweDEyIC8vIEFMVCBrZXkKKyNkZWZpbmUgVktf
UEFVU0UgMHgxMyAvLyBQQVVTRSBrZXkKKyNkZWZpbmUgVktfQ0FQSVRBTCAweDE0IC8vIENBUFMg
TE9DSyBrZXkKKyNkZWZpbmUgVktfS0FOQSAweDE1IC8vIElucHV0IE1ldGhvZCBFZGl0b3IgKElN
RSkgS2FuYSBtb2RlCisjZGVmaW5lIFZLX0hBTkdVTCAweDE1IC8vIElNRSBIYW5ndWwgbW9kZQor
I2RlZmluZSBWS19KVU5KQSAweDE3IC8vIElNRSBKdW5qYSBtb2RlCisjZGVmaW5lIFZLX0ZJTkFM
IDB4MTggLy8gSU1FIGZpbmFsIG1vZGUKKyNkZWZpbmUgVktfSEFOSkEgMHgxOSAvLyBJTUUgSGFu
amEgbW9kZSAKKyNkZWZpbmUgVktfS0FOSkkgMHgxOSAvLyBJTUUgS2FuamkgbW9kZQorI2RlZmlu
ZSBWS19FU0NBUEUgMHgxQiAvLyBFU0Mga2V5CisjZGVmaW5lIFZLX0NPTlZFUlQgMHgxQyAvLyBJ
TUUgY29udmVydAorI2RlZmluZSBWS19OT05DT05WRVJUIDB4MUQgLy8gSU1FIG5vbmNvbnZlcnQK
KyNkZWZpbmUgVktfQUNDRVBUIDB4MUUgLy8gSU1FIGFjY2VwdAorI2RlZmluZSBWS19NT0RFQ0hB
TkdFIDB4MUYgLy8gSU1FIG1vZGUgY2hhbmdlIHJlcXVlc3QKKyNkZWZpbmUgVktfU1BBQ0UgMHgy
MCAvLyBTUEFDRSBrZXkKKyNkZWZpbmUgVktfUFJJT1IgMHgyMSAvLyBQQUdFIFVQIGtleQorI2Rl
ZmluZSBWS19ORVhUIDB4MjIgLy8gUEFHRSBET1dOIGtleQorI2RlZmluZSBWS19FTkQgMHgyMyAv
LyBFTkQga2V5CisjZGVmaW5lIFZLX0hPTUUgMHgyNCAvLyBIT01FIGtleQorI2RlZmluZSBWS19M
RUZUIDB4MjUgLy8gTEVGVCBBUlJPVyBrZXkKKyNkZWZpbmUgVktfVVAgMHgyNiAvLyBVUCBBUlJP
VyBrZXkKKyNkZWZpbmUgVktfUklHSFQgMHgyNyAvLyBSSUdIVCBBUlJPVyBrZXkKKyNkZWZpbmUg
VktfRE9XTiAweDI4IC8vIERPV04gQVJST1cga2V5CisjZGVmaW5lIFZLX1NFTEVDVCAweDI5IC8v
IFNFTEVDVCBrZXkKKyNkZWZpbmUgVktfUFJJTlQgMHgyQSAvLyBQUklOVCBrZXkKKyNkZWZpbmUg
VktfRVhFQ1VURSAweDJCIC8vIEVYRUNVVEUga2V5CisjZGVmaW5lIFZLX1NOQVBTSE9UIDB4MkMg
Ly8gUFJJTlQgU0NSRUVOIGtleQorI2RlZmluZSBWS19JTlNFUlQgMHgyRCAvLyBJTlMga2V5Cisj
ZGVmaW5lIFZLX0RFTEVURSAweDJFIC8vIERFTCBrZXkKKyNkZWZpbmUgVktfSEVMUCAweDJGIC8v
IEhFTFAga2V5CisvLyBXaW5kb3dzIDIwMDAvWFA6IEZvciBhbnkgY291bnRyeS9yZWdpb24sIHRo
ZSAnLicga2V5CisjZGVmaW5lIFZLX09FTV9QRVJJT0QgMHhCRQorI2VuZGlmCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKKyAgICB2b2lkIFdl
YlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCisgICAgeworLy8gICAgICAgIG1fcGFnZS0+c2V0
dGluZ3MoKS0+c2V0Rm9udFJlbmRlcmluZ01vZGUoQWx0ZXJuYXRlUmVuZGVyaW5nTW9kZSk7Cisg
ICAgfQorICAgIAorICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBDdHJsS2V5ID0gMSA8PCAwOwor
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbHRLZXkgPSAxIDw8IDE7CisgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFNoaWZ0S2V5ID0gMSA8PCAyOworICAgIAorICAgIHN0cnVjdCBLZXlEb3du
RW50cnkgeworICAgICAgICB1bnNpZ25lZCB2aXJ0dWFsS2V5OworICAgICAgICB1bnNpZ25lZCBt
b2RpZmllcnM7CisgICAgICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgfTsKKyAgICAKKyAgICBz
dHJ1Y3QgS2V5UHJlc3NFbnRyeSB7CisgICAgICAgIHVuc2lnbmVkIGNoYXJDb2RlOworICAgICAg
ICB1bnNpZ25lZCBtb2RpZmllcnM7CisgICAgICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgfTsK
KyAgICAKKyAgICBzdGF0aWMgY29uc3QgS2V5RG93bkVudHJ5IGtleURvd25FbnRyaWVzW10gPSB7
CisgICAgICAgIHsgVktfTEVGVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlTGVmdCIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZLX0xFRlQsICAg
U2hpZnRLZXksICAgICAgICAgICAiTW92ZUxlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgeyBWS19MRUZULCAgIEN0cmxLZXksICAgICAgICAgICAgIk1v
dmVXb3JkTGVmdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsg
VktfTEVGVCwgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlV29yZExlZnRBbmRNb2RpZnlTZWxl
Y3Rpb24iICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZLX1JJR0hULCAgMCwgICAgICAgICAg
ICAgICAgICAiTW92ZVJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgeyBWS19SSUdIVCwgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVSaWdodEFuZE1v
ZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgVktfUklHSFQsICBD
dHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZFJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICB7IFZLX1JJR0hULCAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92
ZVdvcmRSaWdodEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgfSwKKyAgICAgICAgeyBW
S19VUCwgICAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVVcCIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgVktfVVAsICAgICBTaGlmdEtleSwgICAg
ICAgICAgICJNb3ZlVXBBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICB9LAor
ICAgICAgICB7IFZLX1BSSU9SLCAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVBhZ2VVcEFuZE1v
ZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyBWS19ET1dOLCAgIDAs
ICAgICAgICAgICAgICAgICAgIk1vdmVEb3duIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgIHsgVktfRE9XTiwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3Zl
RG93bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZL
X05FWFQsICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0
aW9uIiAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyBWS19QUklPUiwgIDAsICAgICAgICAgICAg
ICAgICAgIk1vdmVQYWdlVXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgIHsgVktfTkVYVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUGFnZURvd24iICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZLX0hPTUUsICAgMCwg
ICAgICAgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lIiAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgeyBWS19IT01FLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVU
b0JlZ2lubmluZ09mTGluZUFuZE1vZGlmeVNlbGVjdGlvbiIgICAgIH0sCisgICAgICAgIHsgVktf
SE9NRSwgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50IiAg
ICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZLX0hPTUUsICAgQ3RybEtleSB8IFNoaWZ0
S2V5LCAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAg
ICAgICAgCisgICAgICAgIHsgVktfRU5ELCAgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlVG9F
bmRPZkxpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZLX0VO
RCwgICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0
aW9uIiAgICAgICAgICAgfSwKKyAgICAgICAgeyBWS19FTkQsICAgIEN0cmxLZXksICAgICAgICAg
ICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgIHsgVktfRU5ELCAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlVG9FbmRPZkRvY3VtZW50
QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICB9LAorICAgICAgICAKKyAgICAgICAgeyBWS19CQUNL
LCAgIDAsICAgICAgICAgICAgICAgICAgIkRlbGV0ZUJhY2t3YXJkIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgIHsgVktfQkFDSywgICBTaGlmdEtleSwgICAgICAgICAg
ICJEZWxldGVCYWNrd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAg
ICB7IFZLX0RFTEVURSwgMCwgICAgICAgICAgICAgICAgICAiRGVsZXRlRm9yd2FyZCIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyBWS19CQUNLLCAgIEN0cmxLZXks
ICAgICAgICAgICAgIkRlbGV0ZVdvcmRCYWNrd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgICAgIHsgVktfREVMRVRFLCBDdHJsS2V5LCAgICAgICAgICAgICJEZWxldGVXb3Jk
Rm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAKKyAgICAgICAg
eyAnQicsICAgICAgIEN0cmxLZXksICAgICAgICAgICAgIlRvZ2dsZUJvbGQiICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgJ0knLCAgICAgICBDdHJsS2V5LCAg
ICAgICAgICAgICJUb2dnbGVJdGFsaWMiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICAKKyAgICAgICAgeyBWS19FU0NBUEUsIDAsICAgICAgICAgICAgICAgICAgIkNh
bmNlbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsg
VktfT0VNX1BFUklPRCwgQ3RybEtleSwgICAgICAgICJDYW5jZWwiICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZLX1RBQiwgICAgMCwgICAgICAgICAg
ICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgeyBWS19UQUIsICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydEJhY2t0YWIi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgVktfUkVUVVJOLCAw
LCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICB7IFZLX1JFVFVSTiwgQ3RybEtleSwgICAgICAgICAgICAiSW5z
ZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyBW
S19SRVRVUk4sIEFsdEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgVktfUkVUVVJOLCBTaGlmdEtleSwgICAg
ICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgICAgICB7IFZLX1JFVFVSTiwgQWx0S2V5IHwgU2hpZnRLZXksICAiSW5zZXJ0TmV3bGluZSIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgCisgICAgICAgIC8vIEl0
J3Mgbm90IHF1aXRlIGNsZWFyIHdoZXRoZXIgY2xpcGJvYXJkIHNob3J0Y3V0cyBhbmQgVW5kby9S
ZWRvIHNob3VsZCBiZSBoYW5kbGVkCisgICAgICAgIC8vIGluIHRoZSBhcHBsaWNhdGlvbiBvciBp
biBXZWJLaXQuIFdlIGNob3NlIFdlYktpdC4KKyAgICAgICAgeyAnQycsICAgICAgIEN0cmxLZXks
ICAgICAgICAgICAgIkNvcHkiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgICAgIHsgJ1YnLCAgICAgICBDdHJsS2V5LCAgICAgICAgICAgICJQYXN0ZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7ICdYJywgICAg
ICAgQ3RybEtleSwgICAgICAgICAgICAiQ3V0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgeyAnQScsICAgICAgIEN0cmxLZXksICAgICAgICAgICAg
IlNlbGVjdEFsbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
IHsgVktfSU5TRVJULCBDdHJsS2V5LCAgICAgICAgICAgICJDb3B5IiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZLX0RFTEVURSwgU2hpZnRLZXks
ICAgICAgICAgICAiQ3V0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgeyBWS19JTlNFUlQsIFNoaWZ0S2V5LCAgICAgICAgICAgIlBhc3RlIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgJ1onLCAgICAg
ICBDdHJsS2V5LCAgICAgICAgICAgICJVbmRvIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgICAgICB7ICdaJywgICAgICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAi
UmVkbyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB9Owor
ICAgIAorICAgIHN0YXRpYyBjb25zdCBLZXlQcmVzc0VudHJ5IGtleVByZXNzRW50cmllc1tdID0g
eworICAgICAgICB7ICdcdCcsICAgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyAnXHQnLCAgIFNoaWZ0
S2V5LCAgICAgICAgICAgIkluc2VydEJhY2t0YWIiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgIHsgJ1xyJywgICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXds
aW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7ICdccicsICAg
Q3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgeyAnXHInLCAgIEFsdEtleSwgICAgICAgICAgICAgIkluc2Vy
dE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgJ1xy
JywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICB7ICdccicsICAgQWx0S2V5IHwgU2hpZnRLZXksICAi
SW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB9Owor
ICAgIAorICAgIGNvbnN0IGNoYXIqIFdlYlBhZ2U6OmludGVycHJldEtleUV2ZW50KGNvbnN0IEtl
eWJvYXJkRXZlbnQqIGV2dCkKKyAgICB7CisgICAgICAgIEFTU0VSVChldnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkua2V5ZG93bkV2ZW50IHx8IGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5r
ZXlwcmVzc0V2ZW50KTsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBIYXNoTWFwPGludCwgY29u
c3QgY2hhcio+KiBrZXlEb3duQ29tbWFuZHNNYXAgPSAwOworICAgICAgICBzdGF0aWMgSGFzaE1h
cDxpbnQsIGNvbnN0IGNoYXIqPioga2V5UHJlc3NDb21tYW5kc01hcCA9IDA7CisgICAgICAgIAor
ICAgICAgICBpZiAoIWtleURvd25Db21tYW5kc01hcCkgeworICAgICAgICAgICAga2V5RG93bkNv
bW1hbmRzTWFwID0gbmV3IEhhc2hNYXA8aW50LCBjb25zdCBjaGFyKj47CisgICAgICAgICAgICBr
ZXlQcmVzc0NvbW1hbmRzTWFwID0gbmV3IEhhc2hNYXA8aW50LCBjb25zdCBjaGFyKj47CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAoc2l6ZW9mKGtl
eURvd25FbnRyaWVzKSAvIHNpemVvZihrZXlEb3duRW50cmllc1swXSkpOyBpKyspCisgICAgICAg
ICAgICAgICAga2V5RG93bkNvbW1hbmRzTWFwLT5zZXQoa2V5RG93bkVudHJpZXNbaV0ubW9kaWZp
ZXJzIDw8IDE2IHwga2V5RG93bkVudHJpZXNbaV0udmlydHVhbEtleSwga2V5RG93bkVudHJpZXNb
aV0ubmFtZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCAoc2l6ZW9mKGtleVByZXNzRW50cmllcykgLyBzaXplb2Yoa2V5UHJlc3NFbnRyaWVzWzBd
KSk7IGkrKykKKyAgICAgICAgICAgICAgICBrZXlQcmVzc0NvbW1hbmRzTWFwLT5zZXQoa2V5UHJl
c3NFbnRyaWVzW2ldLm1vZGlmaWVycyA8PCAxNiB8IGtleVByZXNzRW50cmllc1tpXS5jaGFyQ29k
ZSwga2V5UHJlc3NFbnRyaWVzW2ldLm5hbWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOworICAgICAgICBpZiAoZXZ0LT5zaGlmdEtleSgpKQor
ICAgICAgICAgICAgbW9kaWZpZXJzIHw9IFNoaWZ0S2V5OworICAgICAgICBpZiAoZXZ0LT5hbHRL
ZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBBbHRLZXk7CisgICAgICAgIGlmIChldnQt
PmN0cmxLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBDdHJsS2V5OworICAgICAgICAK
KyAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpIHsK
KyAgICAgICAgICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldnQtPmtleUV2ZW50
KCktPndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpOworICAgICAgICAgICAgcmV0dXJuIG1hcEtleSA/
IGtleURvd25Db21tYW5kc01hcC0+Z2V0KG1hcEtleSkgOiAwOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwgZXZ0LT5jaGFyQ29kZSgp
OworICAgICAgICByZXR1cm4gbWFwS2V5ID8ga2V5UHJlc3NDb21tYW5kc01hcC0+Z2V0KG1hcEtl
eSkgOiAwOworICAgIH0KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58037</attachid>
            <date>2010-06-07 09:36:37 -0700</date>
            <delta_ts>2010-07-01 05:32:48 -0700</delta_ts>
            <desc>better mmap use, other fixes</desc>
            <filename>qtwebkit2-2.patch</filename>
            <type>text/plain</type>
            <size>81521</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0LnBybwkocmV2aXNpb24gNjAw
NzIpCisrKyBXZWJLaXQucHJvCSh3b3JraW5nIGNvcHkpCkBAIC05LDYgKzksNyBAQCBTVUJESVJT
ICs9IFwKIAogIyBJZiB0aGUgc291cmNlIGV4aXN0cywgYnVpbHQgaXQKIGV4aXN0cygkJFBXRC9X
ZWJLaXRUb29scy9RdFRlc3RCcm93c2VyKTogU1VCRElSUyArPSBXZWJLaXRUb29scy9RdFRlc3RC
cm93c2VyCitleGlzdHMoJCRQV0QvV2ViS2l0Mi9XZWJLaXQyLnBybyk6IFNVQkRJUlMgKz0gV2Vi
S2l0Mi9XZWJLaXQyLnBybwogZXhpc3RzKCQkUFdEL0phdmFTY3JpcHRDb3JlL2pzYy5wcm8pOiBT
VUJESVJTICs9IEphdmFTY3JpcHRDb3JlL2pzYy5wcm8KIGV4aXN0cygkJFBXRC9XZWJLaXQvcXQv
dGVzdHMpOiBTVUJESVJTICs9IFdlYktpdC9xdC90ZXN0cwogZXhpc3RzKCQkUFdEL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBybyk6IFNVQkRJUlMgKz0gV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWUucHJvCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlz
aW9uIDYwMDcyKQorKysgV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtNjIw
LDYgKzYyMCw2OCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIHhtbC9YUGF0aEV2YWx1YXRvci5p
ZGwgXAogICAgIHhtbC9YU0xUUHJvY2Vzc29yLmlkbAogCitXRUJDT1JFX0hFQURFUlNfRk9SX1dF
QktJVDIgKz0gXAorICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmggXAorICAgIHBsYXRmb3JtL25l
dHdvcmsvcXQvUmVzb3VyY2VFcnJvci5oIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlUmVxdWVzdC5oIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlUmVzcG9uc2Uu
aCBcCisgICAgZG9tL0tleWJvYXJkRXZlbnQuaCBcCisgICAgZWRpdGluZy9FZGl0Q29tbWFuZC5o
IFwKKyAgICBoaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oIFwKKyAgICBodG1sL0hUTUxGb3JtRWxl
bWVudC5oIFwKKyAgICBodG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oIFwKKyAgICBpbnNwZWN0
b3IvSW5zcGVjdG9yQ2xpZW50LmggXAorICAgIGxvYWRlci9Eb2N1bWVudExvYWRlci5oIFwKKyAg
ICBsb2FkZXIvRm9ybVN0YXRlLmggXAorICAgIGxvYWRlci9GcmFtZUxvYWRlci5oIFwKKyAgICBs
b2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBcCisgICAgbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMu
aCBcCisgICAgbG9hZGVyL1BvbGljeUNoZWNrZXIuaCBcCisgICAgbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlci5oIFwKKyAgICBwYWdlL0Nocm9tZS5oIFwKKyAgICBwYWdlL0Nocm9tZUNsaWVudC5oIFwK
KyAgICBwYWdlL0NvbnRleHRNZW51Q2xpZW50LmggXAorICAgIHBhZ2UvRHJhZ0NsaWVudC5oIFwK
KyAgICBwYWdlL0VkaXRvckNsaWVudC5oIFwKKyAgICBwYWdlL0V2ZW50SGFuZGxlci5oIFwKKyAg
ICBwYWdlL0ZvY3VzQ29udHJvbGxlci5oIFwKKyAgICBwYWdlL0ZyYW1lLmggXAorICAgIHBhZ2Uv
RnJhbWVMb2FkUmVxdWVzdC5oIFwKKyAgICBwYWdlL0ZyYW1lVmlldy5oIFwKKyAgICBwYWdlL1Bh
Z2UuaCBcCisgICAgcGFnZS9TZXR0aW5ncy5oIFwKKyAgICBwYWdlL1dpbmRvd0ZlYXR1cmVzLmgg
XAorICAgIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIFwKKyAgICBwbGF0Zm9ybS9Q
bGF0Zm9ybU1vdXNlRXZlbnQuaCBcCisgICAgcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmgg
XAorICAgIHBsYXRmb3JtL1dpZGdldC5oIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJl
Y3QuaCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggXAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0ludFBvaW50LmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJl
Y3QuaCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5oIFwKKyAgICBwbGF0Zm9ybS90
ZXh0L1BsYXRmb3JtU3RyaW5nLmggXAorICAgIHBsYXRmb3JtL3RleHQvU3RyaW5nSW1wbC5oIFwK
KyAgICByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oIFwKKyAgICAKK1dFQktJVDJfQVBJX0hF
QURFUlMgKz0gXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIFwK
KyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaCBcCisgICAgLi4vV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tGcmFtZS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lUG9s
aWN5TGlzdGVuZXIuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0
aW9uRGF0YS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBcCisg
ICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmFtZXNwYWNlLmggXAorICAgIC4u
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBcCisgICAgLi4vV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1N0cmluZy5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1VSTC5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmggXAorICAg
IC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvV0tSZXRhaW5QdHIuaCBcCisgICAgLi4vV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBoaWNzd2lkZ2V0LmggXCAgICAKKwogY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX01BVEhNTD0xKSB7CiAgICAgbWF0aG1sbmFtZXMub3V0cHV0ID0g
JCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9NYXRoTUxOYW1lcy5jcHAKICAgICBtYXRobWxu
YW1lcy5pbnB1dCA9IE1BVEhNTF9OQU1FUwpAQCAtNzY4LDMgKzgzMCwyMCBAQCB3ZWJraXR2ZXJz
aW9uLmNsZWFuID0gJHtRTUFLRV9WQVJfV0NfR0VOCiB3ZWJraXR2ZXJzaW9uLndrQWRkT3V0cHV0
VG9Tb3VyY2VzID0gZmFsc2UKIGFkZEV4dHJhQ29tcGlsZXIod2Via2l0dmVyc2lvbikKIAorIyBH
RU5FUkFUT1IgMTI6IENvcHkgV2ViQ29yZSBoZWFkZXJzIGZvciBXZWJLaXQyCit3ZWJjb3JlaGVh
ZGVycy5vdXRwdXQgPSAuLi9pbmNsdWRlL1dlYkNvcmUvJHtRTUFLRV9GSUxFX0JBU0V9LmgKK3dl
YmNvcmVoZWFkZXJzLmlucHV0ID0gV0VCQ09SRV9IRUFERVJTX0ZPUl9XRUJLSVQyCit3ZWJjb3Jl
aGVhZGVycy5jb21tYW5kcyA9ICQkUU1BS0VfQ09QWSAke1FNQUtFX0ZJTEVfTkFNRX0gJHtRTUFL
RV9GSUxFX09VVH0KK3dlYmNvcmVoZWFkZXJzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0KK3dl
YmNvcmVoZWFkZXJzLndrQWRkT3V0cHV0VG9Tb3VyY2VzID0gZmFsc2UKK2FkZEV4dHJhQ29tcGls
ZXIod2ViY29yZWhlYWRlcnMpCisKK2luY2x1ZGUoJCRQV0QvLi4vV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L2hlYWRlcnMucHJpKQorCisjIEdFTkVSQVRPUiAxMzogQ29weSBXZWJLaXQyIGhlYWRl
cnMKK3dlYmtpdDJoZWFkZXJzLm91dHB1dCA9IC4uL2luY2x1ZGUvV2ViS2l0Mi8ke1FNQUtFX0ZJ
TEVfQkFTRX0uaAord2Via2l0MmhlYWRlcnMuaW5wdXQgPSBXRUJLSVQyX0FQSV9IRUFERVJTCit3
ZWJraXQyaGVhZGVycy5jb21tYW5kcyA9ICQkUU1BS0VfQ09QWSAke1FNQUtFX0ZJTEVfTkFNRX0g
JHtRTUFLRV9GSUxFX09VVH0KK3dlYmtpdDJoZWFkZXJzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09V
VH0KK3dlYmtpdDJoZWFkZXJzLndrQWRkT3V0cHV0VG9Tb3VyY2VzID0gZmFsc2UKK2FkZEV4dHJh
Q29tcGlsZXIod2Via2l0MmhlYWRlcnMpCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29y
ZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjk1MSw2ICsyOTUxLDcgQEAgY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX1NZTUJJQU5fRElBTE9HXwogfQogCiBpbmNsdWRlKCQkUFdELy4u
L1dlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkpCisKIEhFQURFUlMgKz0gJCRXRUJLSVRfQVBJX0hF
QURFUlMKIAogIUNPTkZJRyhRVERJUl9idWlsZCkgewpAQCAtMzA2MCw2ICszMDYxLDE1NCBAQCBT
T1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAogfQog
CitDT05GSUcgKz0gcHJlY29tcGlsZV9oZWFkZXIKK1BSRUNPTVBJTEVEX0hFQURFUiA9ICQkUFdE
Ly4uL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCisKK0lOQ0xVREVQQVRIID0gXAorICAgICQkUFdE
Ly4uL1dlYktpdDIvUGxhdGZvcm0gXAorICAgICQkUFdELy4uL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQyBcCisgICAgJCRQV0QvLi4vV2ViS2l0Mi9TaGFyZWQgXAorICAgICQkUFdELy4uL1dlYktp
dDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0IFwKKyAgICAkJFBXRC8uLi9XZWJLaXQyL1NoYXJlZC9x
dCBcCisgICAgJCRQV0QvLi4vV2ViS2l0Mi9VSVByb2Nlc3MgXAorICAgICQkUFdELy4uL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DIFwKKyAgICAkJFBXRC8uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Y3BwIFwKKyAgICAkJFBXRC8uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQgXCAgCisgICAgJCRQ
V0QvLi4vV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIgXAorICAgICQkUFdELy4uL1dlYktpdDIv
V2ViUHJvY2VzcyBcCisgICAgJCRQV0QvLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0IFwKKyAgICAkJFBXRC8uLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZSBcCisgICAgJCRJ
TkNMVURFUEFUSCBcCisgICAgJCRPVVRQVVRfRElSL2luY2x1ZGUgXAorCitIRUFERVJTICs9IFwK
KyAgICAuLi9XZWJLaXQyL1BsYXRmb3JtL1BsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCBcCisg
ICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmggXAorICAgIC4uL1dlYktpdDIvUGxhdGZv
cm0vV29ya0l0ZW0uaCBcCisgICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaCBcCisg
ICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5oIFwKKyAgICAu
Li9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRFbmNvZGVyLmggXAorICAgIC4uL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaCBcCisgICAgLi4vV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL0F0dGFjaG1lbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uaCBcCisgICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0NvcmVJ
UENNZXNzYWdlS2luZHMuaCBcCisgICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3Nh
Z2VJRC5oIFwKKyAgICAuLi9XZWJLaXQyL1NoYXJlZC9Ob3RJbXBsZW1lbnRlZC5oIFwKKyAgICAu
Li9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlVHlwZUFyZ3VtZW50TWFyc2hhbGxpbmcuaCBcCisgICAg
Li4vV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9TaGFyZWQvV2Vi
RXZlbnRDb252ZXJzaW9uLmggXAorICAgIC4uL1dlYktpdDIvU2hhcmVkL1dlYk5hdmlnYXRpb25E
YXRhU3RvcmUuaCBcCisgICAgLi4vV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
IFwKKyAgICAuLi9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9EcmF3aW5nQXJlYU1lc3Nh
Z2VLaW5kcy5oIFwKKyAgICAuLi9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9EcmF3aW5n
QXJlYVByb3h5TWVzc2FnZUtpbmRzLmggXAorICAgIC4uL1dlYktpdDIvU2hhcmVkL0NvcmVJUENT
dXBwb3J0L1dlYlBhZ2VNZXNzYWdlS2luZHMuaCBcCisgICAgLi4vV2ViS2l0Mi9TaGFyZWQvQ29y
ZUlQQ1N1cHBvcnQvV2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmggXAorICAgIC4uL1dlYktpdDIv
U2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYlByb2Nlc3NNZXNzYWdlS2luZHMuaCBcCisgICAgLi4v
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5VXBkYXRlQ2h1bmsuaCBcCisgICAgLi4vV2ViS2l0Mi9V
SVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmggXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc01vZGVsLmggXAor
ICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaCBcCisgICAgLi4v
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViRnJhbWVQcm94eS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJIaXN0b3J5
Q2xpZW50LmggXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIFwK
KyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uRGF0YS5oIFwKKyAgICAuLi9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlTmFtZXNwYWNlLmggXAorICAgIC4uL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQb2xp
Y3lDbGllbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaCBc
CisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuaCBcCisgICAgLi4v
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggXAorICAgIC4uL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmggXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaCBcCisg
ICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggXAorICAgIC4uL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBcCisgICAgLi4vV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tOYXZpZ2F0aW9uRGF0YS5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmFtZXNwYWNl
LmggXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBcCisg
ICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIFwKKyAgICAuLi9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1N0cmluZy5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VSTC5oIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJL
aXQyLmggXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvV0tSZXRhaW5QdHIuaCBc
CisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvV2ViUHJvY2Vzc0xhdW5jaGVyLmgg
XAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggXAorICAgIC4uL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBcCisgICAgLi4v
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lmgg
XAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
LmggXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVy
cm9ycy5oIFwKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCBcCisgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5oIFwKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oIFwKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYVVwZGF0ZUNodW5rLmggXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmggXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBoaWNzd2lkZ2V0
LmggXAorCitTT1VSQ0VTICs9IFwKKyAgICAuLi9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuY3Bw
IFwKKyAgICAuLi9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5jcHAgXAorICAgIC4uL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuY3BwIFwKKyAgICAuLi9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRFbmNvZGVyLmNwcCBcCisgICAgLi4vV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL0F0dGFjaG1lbnQuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5VXBkYXRlQ2h1bmsuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZl
bmVzc1RpbWVyLmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAg
XAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5j
cHAgXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwIFwKKyAgICAu
Li9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJIaXN0b3J5Q2xpZW50LmNwcCBcCisgICAgLi4vV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlTmFtZXNwYWNlLmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9saWN5Q2xpZW50LmNwcCBcCisg
ICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwIFwKKyAgICAuLi9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzTWFuYWdlci5jcHAgXAorICAgIC4uL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgXAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlVJQ2xpZW50LmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5jcHAgXAorICAg
IC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAgXAor
ICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEuY3BwIFwKKyAg
ICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIFwKKyAgICAuLi9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VOYW1lc3BhY2UuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBcCisgICAgLi4vV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tTdHJpbmcuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1VSTC5jcHAgXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBcCisg
ICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0
TWVudUNsaWVudC5jcHAgXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50LmNwcCBcCisgICAgLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgXAorICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgXAorICAgIC4uL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIFwKKyAgICAu
Li9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAgXAorICAgIC4uL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhVXBkYXRlQ2h1bmsuY3BwIFwKKyAg
ICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgXAorICAgIC4uL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1No
YXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIFwKKyAgICAuLi9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc1N0b3JlLmNwcCBcCisgICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29w
UXQuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1BsYXRmb3JtL3F0L1dvcmtRdWV1ZVF0LmNwcCBcCisg
ICAgLi4vV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3F0L0Nvbm5lY3Rpb25RdC5jcHAgXAorICAg
IC4uL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcCBcCisgICAgLi4vV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvRHJhd2luZ0FyZWFQcm94eVVwZGF0ZUNodW5rUXQuY3BwIFwKKyAgICAuLi9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9XZWJQcm9jZXNzTGF1bmNoZXJRdC5jcHAgXAor
ICAgIC4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0RyYXdpbmdBcmVhVXBkYXRlQ2h1
bmtRdC5jcHAgXCAKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdl
UXQuY3BwIFwKKyAgICAuLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2Vi
RXJyb3JzUXQuY3BwIFwgIAorICAgIC4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tncmFw
aGljc3dpZGdldC5jcHAgXAorCiBzeW1iaWFuIHsKICAgICBzaGFyZWQgewogICAgICAgICBjb250
YWlucyhDT05GSUcsIGRlZl9maWxlcykgewpJbmRleDogV2ViQ29yZS9jb25maWcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2NvbmZpZy5oCShyZXZpc2lvbiA2MDA3MikKKysrIFdlYkNvcmUvY29u
ZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwMiw3ICsyMDIsOSBAQAogI2VuZGlmIC8qICFkZWZp
bmVkKFdURl9VU0VfVjgpICovCiAKIC8qIFVzaW5nIFY4IGltcGxpZXMgbm90IHVzaW5nIEpTQyBh
bmQgdmljZSB2ZXJzYSAqLworI2lmICFkZWZpbmVkKFdURl9VU0VfSlNDKQogI2RlZmluZSBXVEZf
VVNFX0pTQyAhV1RGX1VTRV9WOAorI2VuZGlmCiAKICNpZiBQTEFURk9STShDRykKICNpZm5kZWYg
Q0dGTE9BVF9ERUZJTkVECkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdv
cmtSZXBseUhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAJKHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDE4LDggKzQxOCwxMyBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFy
dCgpCiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gbV9yZXNvdXJjZUhhbmRsZS0+
Z2V0SW50ZXJuYWwoKTsKIAotICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlciogbWFuYWdlciA9IGQt
Pm1fZnJhbWUtPnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKLQorICAgIFFOZXR3b3Jr
QWNjZXNzTWFuYWdlciogbWFuYWdlciA9IDA7CisgICAgaWYgKCFkLT5tX2ZyYW1lKSB7CisgICAg
ICAgIHN0YXRpYyBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIHN0YXRpY01hbmFnZXIgPSBuZXcgUU5l
dHdvcmtBY2Nlc3NNYW5hZ2VyKCk7CisgICAgICAgIG1hbmFnZXIgPSBzdGF0aWNNYW5hZ2VyOwor
ICAgIH0gZWxzZQorICAgICAgICBtYW5hZ2VyID0gZC0+bV9mcmFtZS0+cGFnZSgpLT5uZXR3b3Jr
QWNjZXNzTWFuYWdlcigpOworICAgIAogICAgIGNvbnN0IFFVcmwgdXJsID0gbV9yZXF1ZXN0LnVy
bCgpOwogICAgIGNvbnN0IFFTdHJpbmcgc2NoZW1lID0gdXJsLnNjaGVtZSgpOwogICAgIC8vIFBv
c3QgcmVxdWVzdHMgb24gZmlsZXMgYW5kIGRhdGEgZG9uJ3QgcmVhbGx5IG1ha2Ugc2Vuc2UsIGJ1
dCBmb3IKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VI
YW5kbGVRdC5jcHAJKHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNyArMTM2LDgg
QEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICBkLT5t
X3JlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAgICAgfQogCi0gICAgZ2V0SW50
ZXJuYWwoKS0+bV9mcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50UXQqPihmcmFt
ZS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKy8vIEZJWE1FOiB3ZWJraXQyCisv
LyAgICBnZXRJbnRlcm5hbCgpLT5tX2ZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGll
bnRRdCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOwogICAgIFJlc291
cmNlSGFuZGxlSW50ZXJuYWwgKmQgPSBnZXRJbnRlcm5hbCgpOwogICAgIGQtPm1fam9iID0gbmV3
IFFOZXR3b3JrUmVwbHlIYW5kbGVyKHRoaXMsIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkTW9k
ZShkLT5tX2RlZmVyc0xvYWRpbmcpKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIwMCw3ICsyMDEs
OCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvCiAgICAgICAgIHVy
bFdpdGhDcmVkZW50aWFscy5zZXRQYXNzKGQtPm1fcGFzcyk7CiAgICAgICAgIGQtPm1fcmVxdWVz
dC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9Ci0gICAgZC0+bV9mcmFtZSA9IHN0
YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50UXQqPihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
KS0+d2ViRnJhbWUoKTsKKy8vIEZJWE1FOiB3ZWJraXQyCisvLyAgICBkLT5tX2ZyYW1lID0gc3Rh
dGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRRdCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkp
LT53ZWJGcmFtZSgpOwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKCZo
YW5kbGUsIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkTm9ybWFsKTsKIAogICAgIHN5bmNMb2Fk
ZXIud2FpdEZvckNvbXBsZXRpb24oKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9SZXNvdXJjZVJlcXVlc3RRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3F0L1Jlc291cmNlUmVxdWVzdFF0LmNwcAkocmV2aXNpb24gNjAwNzIpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VSZXF1ZXN0UXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw3ICs0Nyw4IEBAIFFOZXR3b3JrUmVxdWVzdCBSZXNvdXJjZVJlcXVlc3Q6OnRv
TmV0d28KIHsKICAgICBRTmV0d29ya1JlcXVlc3QgcmVxdWVzdDsKICAgICByZXF1ZXN0LnNldFVy
bCh1cmwoKSk7Ci0jaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDYsIDApCisv
LyBGSVhNRTogd2Via2l0MgorI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0LCA2
LCAwKSAmJiAwCiAgICAgcmVxdWVzdC5zZXRPcmlnaW5hdGluZ09iamVjdChvcmlnaW5hdGluZ0Zy
YW1lKTsKICNlbmRpZgogCkBAIC04MCw3ICs4MSw3IEBAIFFOZXR3b3JrUmVxdWVzdCBSZXNvdXJj
ZVJlcXVlc3Q6OnRvTmV0d28KICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0jaWYgUVRfVkVSU0lP
TiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDcsIDApCisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJT
SU9OX0NIRUNLKDQsIDcsIDApICYmIDAKICAgICBpZiAoIWFsbG93Q29va2llcygpKSB7CiAgICAg
ICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKFFOZXR3b3JrUmVxdWVzdDo6Q29va2llTG9hZENvbnRy
b2xBdHRyaWJ1dGUsIFFOZXR3b3JrUmVxdWVzdDo6TWFudWFsKTsKICAgICAgICAgcmVxdWVzdC5z
ZXRBdHRyaWJ1dGUoUU5ldHdvcmtSZXF1ZXN0OjpDb29raWVTYXZlQ29udHJvbEF0dHJpYnV0ZSwg
UU5ldHdvcmtSZXF1ZXN0OjpNYW51YWwpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db29r
aWVKYXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db29raWVKYXJR
dC5jcHAJKHJldmlzaW9uIDYwMDcyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db29raWVKYXJR
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdGF0aWMgUU5ldHdvcmtDb29raWVKYXIgKmNvb2tpZUphcihjb25zdCBEb2N1bWVudCAq
ZG9jdW1lbnQpCiB7CisgICAgLy8gRklYTUUgd2Via2l0MgorICAgIHJldHVybiAwOwogICAgIGlm
ICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiAwOwogICAgIEZyYW1lICpmcmFtZSA9IGRvY3Vt
ZW50LT5mcmFtZSgpOwpJbmRleDogV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1dlYktpdDIucHJvCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9XZWJLaXQyLnBybwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAorVEVNUExBVEUgPSBhcHAKK1RBUkdFVCA9IFF0
V2ViUHJvY2VzcworCitTT1VSQ0VTICs9IFwKKyAgICBXZWJQcm9jZXNzL0xhdW5jaGluZy9xdC9X
ZWJQcm9jZXNzTWFpbi5jcHAKKworSEVBREVSUyArPSBcCisKK0NPTkZJRyArPSB1aXRvb2xzCisK
K2lzRW1wdHkoT1VUUFVUX0RJUik6IE9VVFBVVF9ESVIgPSAuLgoraW5jbHVkZSguLi9XZWJLaXQu
cHJpKQorCitERVNURElSID0gJCRPVVRQVVRfRElSL2JpbgorIUNPTkZJRyhzdGFuZGFsb25lX3Bh
Y2thZ2UpOiBDT05GSUcgLT0gYXBwX2J1bmRsZQorCitRVCArPSBuZXR3b3JrCittYWN4OlFUKz14
bWwKKworbGludXgtKiB7CisgICAgIyBGcm9tIENyZWF0b3IncyBzcmMvcnBhdGgucHJpOgorICAg
ICMgRG8gdGhlIHJwYXRoIGJ5IGhhbmQgc2luY2UgaXQncyBub3QgcG9zc2libGUgdG8gdXNlIE9S
SUdJTiBpbiBRTUFLRV9SUEFUSERJUgorICAgICMgdGhpcyBleHBhbmRzIHRvICRPUklHSU4gKGFm
dGVyIHFtYWtlIGFuZCBtYWtlKSwgaXQgZG9lcyBOT1QgcmVhZCBhIHFtYWtlIHZhci4KKyAgICBR
TUFLRV9SUEFUSERJUiA9IFwkXCRPUklHSU4vLi4vbGliICQkUU1BS0VfUlBBVEhESVIKKyAgICBN
WV9SUEFUSCA9ICQkam9pbihRTUFLRV9SUEFUSERJUiwgIjoiKQorCisgICAgUU1BS0VfTEZMQUdT
ICs9IC1XbCwteixvcmlnaW4gXCctV2wsLXJwYXRoLCQke01ZX1JQQVRIfVwnCisgICAgUU1BS0Vf
UlBBVEhESVIgPQorfSBlbHNlIHsKKyAgICBRTUFLRV9SUEFUSERJUiA9ICQkT1VUUFVUX0RJUi9s
aWIgJCRRTUFLRV9SUEFUSERJUgorfQorCitzeW1iaWFuIHsKKyAgICBUQVJHRVQuVUlEMyA9IDB4
QTAwMEU1NDMKKyAgICBUQVJHRVQuQ0FQQUJJTElUWSA9IFJlYWRVc2VyRGF0YSBXcml0ZVVzZXJE
YXRhIE5ldHdvcmtTZXJ2aWNlcworfQorCitjb250YWlucyhRVF9DT05GSUcsIG9wZW5nbCkgewor
ICAgIFFUICs9IG9wZW5nbAorICAgIERFRklORVMgKz0gUVRfQ09ORklHVVJFRF9XSVRIX09QRU5H
TAorfQorCkluZGV4OiBXZWJLaXQyL1dlYktpdDJQcmVmaXguaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1dlYktpdDJQcmVmaXguaAkocmV2aXNpb24gNjAwNzIpCisrKyBXZWJLaXQyL1dlYktpdDJQ
cmVmaXguaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPHd0Zi9G
YXN0TWFsbG9jLmg+CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoX19BUFBMRV9fKQorI2lmIGRlZmlu
ZWQoX19BUFBMRV9fKSAmJiAwCiAKICNpbXBvcnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3Mu
aD4KIApAQCAtNzQsMyArNzQsOSBAQAogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhp
Y3MuaD4KIAogI2VuZGlmIC8qIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMyKSAqLwor
CisjaWYgZGVmaW5lZChCVUlMRElOR19RVF9fKQorI2RlZmluZSBXVEZfVVNFX0pTQyAxCisjZGVm
aW5lIFdURl9VU0VfVjggMAorI2VuZGlmCisKSW5kZXg6IFdlYktpdDIvUGxhdGZvcm0vUGxhdGZv
cm1Qcm9jZXNzSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvUGxhdGZvcm0vUGxh
dGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oCShyZXZpc2lvbiA2MDA3MikKKysrIFdlYktpdDIvUGxh
dGZvcm0vUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdHlwZWRlZiBwaWRfdCBQbGF0Zm9ybVByb2Nl
c3NJZGVudGlmaWVyOwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBIQU5ETEUgUGxhdGZv
cm1Qcm9jZXNzSWRlbnRpZmllcjsKKyNlbGlmIFBMQVRGT1JNKFFUKQordHlwZWRlZiBwaWRfdCBQ
bGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dCAKSW5kZXg6IFdlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvUGxhdGZvcm0vUnVuTG9vcC5oCShyZXZpc2lvbiA2MDA3MikKKysrIFdlYktpdDIvUGxhdGZv
cm0vUnVuTG9vcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcyLDYgKzczLDkgQEAgcHVibGlj
OgogI2VsaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENG
UnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7CiAgICAgICAgIENGUnVuTG9vcFRpbWVyUmVmIG1fdGlt
ZXI7CisjZWxpZiBQTEFURk9STShRVCkKKyAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChS
dW5Mb29wKiwgaW50IElEKTsKKyAgICAgICAgaW50IG1fSUQ7CiAjZW5kaWYgICAgCiAgICAgfTsK
IApAQCAtMTE4LDYgKzEyMiwxMSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1X
b3JrKHZvaWQqKTsKICAgICBDRlJ1bkxvb3BSZWYgbV9ydW5Mb29wOwogICAgIENGUnVuTG9vcFNv
dXJjZVJlZiBtX3J1bkxvb3BTb3VyY2U7CisjZWxpZiBQTEFURk9STShRVCkKKyAgICB0eXBlZGVm
IEhhc2hNYXA8aW50LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKKyAgICBUaW1lck1hcCBtX2FjdGl2
ZVRpbWVyczsKKyAgICBjbGFzcyBUaW1lck9iamVjdDsKKyAgICBUaW1lck9iamVjdCogbV90aW1l
ck9iamVjdDsKICNlbmRpZgogfTsKIApJbmRleDogV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCShyZXZpc2lvbiA2
MDA3MikKKysrIFdlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDExIEBACiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAorI2lmIFBMQVRGT1JNKFFUKQorY2xhc3MgUU9iamVjdDsKK2NsYXNzIFFU
aHJlYWQ7CisjZW5kaWYKKwogY2xhc3MgV29ya1F1ZXVlIHsKIHB1YmxpYzoKICAgICBleHBsaWNp
dCBXb3JrUXVldWUoY29uc3QgY2hhciogbmFtZSk7CkBAIC01OSw2ICs2NCw5IEBAIHB1YmxpYzoK
ICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkIHJlZ2lzdGVySGFuZGxlKEhBTkRMRSwgc3Rk
OjphdXRvX3B0cjxXb3JrSXRlbT4pOwogICAgIHZvaWQgdW5yZWdpc3RlckhhbmRsZShIQU5ETEUp
OworI2VsaWYgUExBVEZPUk0oUVQpCisgICAgdm9pZCBjb25uZWN0U2lnbmFsKFFPYmplY3QqIG8s
IGNvbnN0IGNoYXIqIHNpZ25hbCwgc3RkOjphdXRvX3B0cjxXb3JrSXRlbT4pOworICAgIHZvaWQg
ZGlzY29ubmVjdFNpZ25hbChRT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBzaWduYSk7CiAjZW5kaWYK
IAogcHJpdmF0ZToKQEAgLTkwLDYgKzk4LDExIEBAIHByaXZhdGU6CiAKICAgICBNdXRleCBtX2hh
bmRsZXNMb2NrOwogICAgIEhhc2hNYXA8SEFORExFLCBXb3JrSXRlbSo+IG1faGFuZGxlczsKKyNl
bGlmIFBMQVRGT1JNKFFUKQorICAgIGNsYXNzIFdvcmtJdGVtUXQ7CisgICAgSGFzaE1hcDxRT2Jq
ZWN0KiwgV29ya0l0ZW1RdCo+IG1fc2lnbmFsTGlzdGVuZXJzOworICAgIFFUaHJlYWQqIG1fd29y
a1RocmVhZDsKKyAgICBmcmllbmQgY2xhc3MgV29ya0l0ZW1RdDsKICNlbmRpZgogfTsKIApJbmRl
eDogV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCShyZXZpc2lvbiA2MDA3MikKKysr
IFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzQsMTIgKzM1LDE3IEBACiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQog
I2luY2x1ZGUgPG1hY2gvbWFjaF9wb3J0Lmg+CiAjZWxpZiBQTEFURk9STShXSU4pCiAjaW5jbHVk
ZSA8c3RyaW5nPgorI2VsaWYgUExBVEZPUk0oUVQpCisjaW5jbHVkZSA8UVN0cmluZz4KK2NsYXNz
IFFMb2NhbFNlcnZlcjsKK2NsYXNzIFFMb2NhbFNvY2tldDsKICNlbmRpZgogCiBjbGFzcyBSdW5M
b29wOwpAQCAtNjMsNiArNjksOCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBtYWNoX3BvcnRfdCBJ
ZGVudGlmaWVyOwogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgIHR5cGVkZWYgY29uc3Qgc3RkOjp3
c3RyaW5nJiBJZGVudGlmaWVyOworI2VsaWYgUExBVEZPUk0oUVQpCisgICAgdHlwZWRlZiBjb25z
dCBRU3RyaW5nIElkZW50aWZpZXI7CiAjZW5kaWYKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENv
bm5lY3Rpb24+IGNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgUnVu
TG9vcCogY2xpZW50UnVuTG9vcCk7CkBAIC0xNzYsOCArMTg0LDE4IEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPHVpbnQ4X3Q+IG1fcmVhZEJ1ZmZlcjsKICAgICBPVkVSTEFQUEVEIG1fcmVhZFN0YXRl
OwogICAgIEhBTkRMRSBtX2Nvbm5lY3Rpb25QaXBlOworI2VsaWYgUExBVEZPUk0oUVQpCisgICAg
Ly8gQ2FsbGVkIG9uIHRoZSBjb25uZWN0aW9uIHF1ZXVlLgorICAgIHZvaWQgb3BlbkNvbm5lY3Rp
b24oKTsKKyAgICB2b2lkIG5ld0Nvbm5lY3Rpb25IYW5kbGVyKCk7CisgICAgdm9pZCByZWFkeVJl
YWRIYW5kbGVyKCk7CisKKyAgICBWZWN0b3I8dWludDhfdD4gbV9yZWFkQnVmZmVyOworICAgIHNp
emVfdCBtX2N1cnJlbnRNZXNzYWdlU2l6ZTsKKyAgICBRTG9jYWxTb2NrZXQqIG1fc29ja2V0Owor
ICAgIFFMb2NhbFNlcnZlciogbV9zZXJ2ZXI7CisgICAgUVN0cmluZyBtX3NlcnZlck5hbWU7CiAj
ZW5kaWYKLSAgICAKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEUsIHR5cGVuYW1lIFQ+CkluZGV4
OiBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9xdC9Db25uZWN0aW9uUXQuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCisKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNp
bmNsdWRlICJXb3JrSXRlbS5oIgorCisjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgorI2luY2x1ZGUg
PFFMb2NhbFNlcnZlcj4KKyNpbmNsdWRlIDxRTG9jYWxTb2NrZXQ+CisKK3VzaW5nIG5hbWVzcGFj
ZSBzdGQ7CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKworLy8gRklYTUU6IFJlbmFtZSB0aGlzIG9y
IHVzZSBhIGRpZmZlcmVudCBjb25zdGFudCBvbiB3aW5kb3dzLgorc3RhdGljIGNvbnN0IHNpemVf
dCBpbmxpbmVNZXNzYWdlTWF4U2l6ZSA9IDQwOTY7CisKK3ZvaWQgQ29ubmVjdGlvbjo6cGxhdGZv
cm1Jbml0aWFsaXplKElkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3NlcnZlck5hbWUg
PSAiUXRXZWJLaXQiICsgaWRlbnRpZmllcjsKKyAgICBtX3NlcnZlciA9IDA7CisgICAgbV9zb2Nr
ZXQgPSAwOworICAgIG1fcmVhZEJ1ZmZlci5yZXNpemUoaW5saW5lTWVzc2FnZU1heFNpemUpOwor
ICAgIG1fY3VycmVudE1lc3NhZ2VTaXplID0gMDsKK30KKwordm9pZCBDb25uZWN0aW9uOjpwbGF0
Zm9ybUludmFsaWRhdGUoKQoreworICAgIGRlbGV0ZSBtX3NlcnZlcjsKKyAgICBkZWxldGUgbV9z
b2NrZXQ7Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6bmV3Q29ubmVjdGlvbkhhbmRsZXIoKQorewor
ICAgIG1fc29ja2V0ID0gbV9zZXJ2ZXItPm5leHRQZW5kaW5nQ29ubmVjdGlvbigpOworICAgIG1f
aXNDb25uZWN0ZWQgPSBtX3NvY2tldDsKKyAgICBpZiAobV9pc0Nvbm5lY3RlZCkKKyAgICAgICAg
bV9jb25uZWN0aW9uUXVldWUuY29ubmVjdFNpZ25hbChtX3NvY2tldCwgU0lHTkFMKHJlYWR5UmVh
ZCgpKSwgV29ya0l0ZW06OmNyZWF0ZSh0aGlzLCAmQ29ubmVjdGlvbjo6cmVhZHlSZWFkSGFuZGxl
cikpOworfQorCit2b2lkIENvbm5lY3Rpb246OnJlYWR5UmVhZEhhbmRsZXIoKQoreworICAgIHdo
aWxlKG1fc29ja2V0LT5ieXRlc0F2YWlsYWJsZSgpKSB7CisgICAgICAgIGlmICghbV9jdXJyZW50
TWVzc2FnZVNpemUpIHsKKyAgICAgICAgICAgIHNpemVfdCBudW1iZXJPZkJ5dGVzUmVhZCA9IG1f
c29ja2V0LT5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fcmVhZEJ1ZmZlci5kYXRhKCkp
LCBzaXplb2Yoc2l6ZV90KSk7CisgICAgICAgICAgICBBU1NFUlQobnVtYmVyT2ZCeXRlc1JlYWQp
OworICAgICAgICAgICAgbV9jdXJyZW50TWVzc2FnZVNpemUgPSAqcmVpbnRlcnByZXRfY2FzdDxz
aXplX3QqPihtX3JlYWRCdWZmZXIuZGF0YSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICht
X3NvY2tldC0+Ynl0ZXNBdmFpbGFibGUoKSA8IG1fY3VycmVudE1lc3NhZ2VTaXplKSB7CisgICAg
ICAgICAgICBwcmludGYoInJlY2VpdmVkIG1lc3NhZ2Ugc2l6ZT0lZCwgd2FpdGluZyBmb3IgbW9y
ZSBkYXRhXG4iLCAoaW50KW1fY3VycmVudE1lc3NhZ2VTaXplKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIHNpemVfdCBudW1iZXJPZkJ5dGVzUmVhZCA9IG1fc29j
a2V0LT5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fcmVhZEJ1ZmZlci5kYXRhKCkpLCBt
X2N1cnJlbnRNZXNzYWdlU2l6ZSk7CisgICAgICAgIEFTU0VSVChudW1iZXJPZkJ5dGVzUmVhZCk7
CisgICAgICAgIAorICAgICAgICAvLyBUaGUgbWVzc2FnZUlEIGlzIGVuY29kZWQgYXQgdGhlIGVu
ZCBvZiB0aGUgYnVmZmVyLgorICAgICAgICBzaXplX3QgcmVhbEJ1ZmZlclNpemUgPSBtX2N1cnJl
bnRNZXNzYWdlU2l6ZSAtIHNpemVvZihNZXNzYWdlSUQpOworICAgICAgICB1bnNpZ25lZCBtZXNz
YWdlSUQgPSAqcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG1fcmVhZEJ1ZmZlci5kYXRhKCkg
KyByZWFsQnVmZmVyU2l6ZSk7CisgICAgICAgIAorICAgICAgICBwcmludGYoInJlY2VpdmVkIG1l
c3NhZ2UgaWQ9JWQsIHNpemU9JWRcbiIsIG1lc3NhZ2VJRCwgKGludCltX2N1cnJlbnRNZXNzYWdl
U2l6ZSk7CisgICAgICAgIAorICAgICAgICBzdGQ6OmF1dG9fcHRyPEFyZ3VtZW50RGVjb2Rlcj4g
YXJndW1lbnRzKG5ldyBBcmd1bWVudERlY29kZXIobV9yZWFkQnVmZmVyLmRhdGEoKSwgcmVhbEJ1
ZmZlclNpemUpKTsKKyAgICAgICAgcHJvY2Vzc0luY29taW5nTWVzc2FnZShNZXNzYWdlSUQ6OmZy
b21JbnQobWVzc2FnZUlEKSwgYXJndW1lbnRzKTsKKyAgICAgICAgCisgICAgICAgIG1fY3VycmVu
dE1lc3NhZ2VTaXplID0gMDsKKyAgICB9Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6b3BlbkNvbm5l
Y3Rpb24oKQoreworICAgIEFTU0VSVCghbV9zZXJ2ZXIpOworICAgIEFTU0VSVCghbV9zb2NrZXQp
OworCisgICAgaWYgKG1faXNTZXJ2ZXIpIHsKKyAgICAgICAgbV9zZXJ2ZXIgPSBuZXcgUUxvY2Fs
U2VydmVyKCk7CisgICAgICAgIGlmICghbV9zZXJ2ZXItPmxpc3RlbihtX3NlcnZlck5hbWUpKSB7
CisgICAgICAgICAgICBxRGVidWcoKSA8PCAiZmFpbGVkIHRvIGNyZWF0ZSBzZXJ2ZXIgIiA8PCBt
X3NlcnZlck5hbWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9j
b25uZWN0aW9uUXVldWUuY29ubmVjdFNpZ25hbChtX3NlcnZlciwgU0lHTkFMKG5ld0Nvbm5lY3Rp
b24oKSksIFdvcmtJdGVtOjpjcmVhdGUodGhpcywgJkNvbm5lY3Rpb246Om5ld0Nvbm5lY3Rpb25I
YW5kbGVyKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9zb2NrZXQgPSBuZXcgUUxvY2FsU29j
a2V0KCk7CisgICAgICAgIG1fc29ja2V0LT5jb25uZWN0VG9TZXJ2ZXIobV9zZXJ2ZXJOYW1lKTsK
KyAgICAgICAgbV9jb25uZWN0aW9uUXVldWUuY29ubmVjdFNpZ25hbChtX3NvY2tldCwgU0lHTkFM
KHJlYWR5UmVhZCgpKSwgV29ya0l0ZW06OmNyZWF0ZSh0aGlzLCAmQ29ubmVjdGlvbjo6cmVhZHlS
ZWFkSGFuZGxlcikpOworICAgICAgICBtX2lzQ29ubmVjdGVkID0gbV9zb2NrZXQtPndhaXRGb3JD
b25uZWN0ZWQoKTsKKyAgICB9Cit9CisKK2Jvb2wgQ29ubmVjdGlvbjo6b3BlbigpCit7CisgICAg
bV9jb25uZWN0aW9uUXVldWUuc2NoZWR1bGVXb3JrKFdvcmtJdGVtOjpjcmVhdGUodGhpcywgJkNv
bm5lY3Rpb246Om9wZW5Db25uZWN0aW9uKSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lk
IENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgYXV0
b19wdHI8QXJndW1lbnRFbmNvZGVyPiBhcmd1bWVudHMpCit7CisgICAgaWYgKCFtX3NvY2tldCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2UgcHV0IHRoZSBtZXNzYWdlIElEIGxhc3QuCisg
ICAgYXJndW1lbnRzLT5lbmNvZGVVSW50MzIobWVzc2FnZUlELnRvSW50KCkpOworICAgIAorICAg
IHNpemVfdCBidWZmZXJTaXplID0gYXJndW1lbnRzLT5idWZmZXJTaXplKCk7CisgICAgCisgICAg
cHJpbnRmKCJzZW5kIG1lc3NhZ2UgaWQ9JWQsIHNpemU9JWRcbiIsIG1lc3NhZ2VJRC50b0ludCgp
LCAoaW50KWJ1ZmZlclNpemUpOworICAgIC8vIFdyaXRlIG1lc3NhZ2Ugc2l6ZSBmaXJzdAorICAg
IG1fc29ja2V0LT53cml0ZShyZWludGVycHJldF9jYXN0PGNoYXIqPigmYnVmZmVyU2l6ZSksIHNp
emVvZihidWZmZXJTaXplKSk7CisKKyAgICBxaW50NjQgYnl0ZXNXcml0dGVuID0gbV9zb2NrZXQt
PndyaXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGFyZ3VtZW50cy0+YnVmZmVyKCkpLCBhcmd1
bWVudHMtPmJ1ZmZlclNpemUoKSk7CisKKyAgICBBU1NFUlQoYnl0ZXNXcml0dGVuID09IGFyZ3Vt
ZW50cy0+YnVmZmVyU2l6ZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgQ29yZUlQQwpJbmRleDog
V2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
UGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvUGxhdGZv
cm0vcXQvUnVuTG9vcFF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSAiV29y
a0l0ZW0uaCIKKworI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRQWJzdHJhY3RF
dmVudERpc3BhdGNoZXI+CisjaW5jbHVkZSA8UU9iamVjdD4KKyNpbmNsdWRlIDxRTWV0YU1ldGhv
ZD4KKyNpbmNsdWRlIDxRTWV0YU9iamVjdD4KKyNpbmNsdWRlIDxRVGltZXJFdmVudD4KKworY2xh
c3MgUnVuTG9vcDo6VGltZXJPYmplY3QgOiBwdWJsaWMgUU9iamVjdAoreworICAgIFFfT0JKRUNU
CitwdWJsaWM6CisgICAgVGltZXJPYmplY3QoUnVuTG9vcCogcnVuTG9vcCkgOiBtX3J1bkxvb3Ao
cnVuTG9vcCkgeyB9CisKKyAgICBRX1NMT1Qgdm9pZCB3YWtlVXAoKQorICAgIHsKKyAgICAgICAg
bV9ydW5Mb29wLT5wZXJmb3JtV29yaygpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1
YWwgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBldmVudCkKKyAgICB7CisgICAgICAgIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChtX3J1bkxvb3AsIGV2ZW50LT50aW1lcklkKCkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBSdW5Mb29wKiBtX3J1bkxvb3A7Cit9OworCit2b2lk
IFJ1bkxvb3A6OnJ1bigpCit7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6ZXhlYygpOworfQorCit2
b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAgIC8vIGltcGxlbWVudAorfQorCisKK1J1bkxvb3A6
OlJ1bkxvb3AoKQorICAgIDogbV90aW1lck9iamVjdChuZXcgVGltZXJPYmplY3QodGhpcykpCit7
Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICBkZWxldGUgbV90aW1lck9iamVjdDsK
K30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAgIHN0YXRpYyBpbnQgd2FrZVVwTWV0
aG9kSW5kZXggPSBtX3RpbWVyT2JqZWN0LT5tZXRhT2JqZWN0KCktPmluZGV4T2ZNZXRob2QoIndh
a2VVcCgpIik7CisgICAgQVNTRVJUKHdha2VVcE1ldGhvZEluZGV4ID49IDApOworICAgIHN0YXRp
YyBRTWV0YU1ldGhvZCB3YWtlVXBNZXRob2QgPSBtX3RpbWVyT2JqZWN0LT5tZXRhT2JqZWN0KCkt
Pm1ldGhvZCh3YWtlVXBNZXRob2RJbmRleCk7CisgICAgd2FrZVVwTWV0aG9kLmludm9rZShtX3Rp
bWVyT2JqZWN0LCBRdDo6UXVldWVkQ29ubmVjdGlvbik7Cit9CisKKy8vIFJ1bkxvb3A6OlRpbWVy
CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3As
IGludCBJRCkKK3sKKyAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5maW5kKElEKTsKKyAgICBBU1NFUlQoaXQgIT0gcnVuTG9vcC0+bV9hY3RpdmVUaW1l
cnMuZW5kKCkpOworICAgIFRpbWVyQmFzZSogdGltZXIgPSBpdC0+c2Vjb25kOworCisgICAgdGlt
ZXItPmZpcmVkKCk7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3Aq
IHJ1bkxvb3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKK3sKK30KKworUnVuTG9vcDo6VGlt
ZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgZG91YmxlIC8qcmVwZWF0
SW50ZXJ2YWwqLykKK3sKKyAgICAvLyBGSU1YRTogU3VwcG9ydCByZXBlYXRpbmcgdGltZXJzLgor
ICAgIG1fSUQgPSBtX3J1bkxvb3AtPm1fdGltZXJPYmplY3QtPnN0YXJ0VGltZXIoc3RhdGljX2Nh
c3Q8aW50PihuZXh0RmlyZUludGVydmFsICogMTAwMCkpOworICAgIG1fcnVuTG9vcC0+bV9hY3Rp
dmVUaW1lcnMuc2V0KG1fSUQsIHRoaXMpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RvcCgpCit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5maW5kKG1fSUQpOworICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLnJlbW92ZShpdCk7CisgICAgbV9ydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5raWxsVGltZXIo
bV9JRCk7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7Cit9
CisKKyNpbmNsdWRlICJSdW5Mb29wUXQubW9jIgpJbmRleDogV2ViS2l0Mi9QbGF0Zm9ybS9xdC9X
b3JrUXVldWVRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9QbGF0Zm9ybS9xdC9Xb3JrUXVl
dWVRdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1BsYXRmb3JtL3F0L1dvcmtRdWV1ZVF0
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiV29ya1F1ZXVlLmgiCisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
CisKKyNpbmNsdWRlIDxRT2JqZWN0PgorI2luY2x1ZGUgPFFUaHJlYWQ+CisKK2NsYXNzIFdvcmtR
dWV1ZTo6V29ya0l0ZW1RdCA6IHB1YmxpYyBRT2JqZWN0Cit7CisgICAgUV9PQkpFQ1QKK3B1Ymxp
YzoKKyAgICBXb3JrSXRlbVF0KFdvcmtRdWV1ZSogd29ya1F1ZXVlLCBXb3JrSXRlbSogd29ya0l0
ZW0pCisgICAgICAgIDogbV9xdWV1ZSh3b3JrUXVldWUpCisgICAgICAgICwgbV9zb3VyY2UoMCkK
KyAgICAgICAgLCBtX3NpZ25hbCgwKQorICAgICAgICAsIG1fd29ya0l0ZW0od29ya0l0ZW0pCisg
ICAgeworICAgIH0KKworICAgIFdvcmtJdGVtUXQoV29ya1F1ZXVlKiB3b3JrUXVldWUsIFFPYmpl
Y3QqIHNvdXJjZSwgY29uc3QgY2hhciogc2lnbmFsLCBXb3JrSXRlbSogd29ya0l0ZW0pCisgICAg
ICAgIDogbV9xdWV1ZSh3b3JrUXVldWUpCisgICAgICAgICwgbV9zb3VyY2Uoc291cmNlKQorICAg
ICAgICAsIG1fc2lnbmFsKHNpZ25hbCkKKyAgICAgICAgLCBtX3dvcmtJdGVtKHdvcmtJdGVtKQor
ICAgIHsKKyAgICAgICAgY29ubmVjdChtX3NvdXJjZSwgbV9zaWduYWwsIFNMT1QoZXhlY3V0ZSgp
KSwgUXQ6OlF1ZXVlZENvbm5lY3Rpb24pOworICAgIH0KKworICAgIH5Xb3JrSXRlbVF0KCkKKyAg
ICB7CisgICAgICAgIGRlbGV0ZSBtX3dvcmtJdGVtOworICAgIH0KKworICAgIFFfU0xPVCB2b2lk
IGV4ZWN1dGUoKSAKKyAgICB7IAorICAgICAgICBpZiAobV9xdWV1ZS0+bV9pc1ZhbGlkKQorICAg
ICAgICAgICAgbV93b3JrSXRlbS0+ZXhlY3V0ZSgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9p
ZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50KikKKyAgICB7CisgICAgICAgIGV4ZWN1dGUoKTsgCisg
ICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIFdvcmtRdWV1ZSogbV9xdWV1ZTsKKyAg
ICBRT2JqZWN0KiBtX3NvdXJjZTsKKyAgICBjb25zdCBjaGFyKiBtX3NpZ25hbDsKKyAgICBXb3Jr
SXRlbSogbV93b3JrSXRlbTsKK307CisKK3ZvaWQgV29ya1F1ZXVlOjpjb25uZWN0U2lnbmFsKFFP
YmplY3QqIG8sIGNvbnN0IGNoYXIqIHNpZ25hbCwgc3RkOjphdXRvX3B0cjxXb3JrSXRlbT4gd29y
a0l0ZW0pCit7CisgICAgV29ya1F1ZXVlOjpXb3JrSXRlbVF0KiBpdGVtUXQgPSBuZXcgV29ya1F1
ZXVlOjpXb3JrSXRlbVF0KHRoaXMsIG8sIHNpZ25hbCwgd29ya0l0ZW0ucmVsZWFzZSgpKTsKKyAg
ICBpdGVtUXQtPm1vdmVUb1RocmVhZChtX3dvcmtUaHJlYWQpOworICAgIG1fc2lnbmFsTGlzdGVu
ZXJzLmFkZChvLCBpdGVtUXQpOworfQorCit2b2lkIFdvcmtRdWV1ZTo6ZGlzY29ubmVjdFNpZ25h
bChRT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBuYW1lKQoreworICAgIEhhc2hNYXA8UU9iamVjdCos
IFdvcmtJdGVtUXQqPjo6aXRlcmF0b3IgaXQgPSBtX3NpZ25hbExpc3RlbmVycy5maW5kKG8pOwor
ICAgIGZvciAoOyBpdCAhPSBtX3NpZ25hbExpc3RlbmVycy5lbmQoKTsgKytpdCkgeworICAgICAg
ICBpZiAoc3RyY21wKGl0LT5zZWNvbmQtPm1fc2lnbmFsLCBuYW1lKSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICBkZWxldGUgaXQtPnNlY29uZDsKKyAgICAgICAgbV9zaWduYWxMaXN0
ZW5lcnMucmVtb3ZlKGl0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwordm9pZCBXb3Jr
UXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKikKK3sKKyAgICBtX3dvcmtUaHJl
YWQgPSBuZXcgUVRocmVhZCgpOworICAgIG1fd29ya1RocmVhZC0+c3RhcnQoKTsKK30KKwordm9p
ZCBXb3JrUXVldWU6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCit7CisgICAgbV93b3JrVGhyZWFkLT5l
eGl0KCk7CisgICAgbV93b3JrVGhyZWFkLT53YWl0KCk7CisgICAgZGVsZXRlIG1fd29ya1RocmVh
ZDsKKyAgICBkZWxldGVBbGxWYWx1ZXMobV9zaWduYWxMaXN0ZW5lcnMpOworfQorCit2b2lkIFdv
cmtRdWV1ZTo6c2NoZWR1bGVXb3JrKHN0ZDo6YXV0b19wdHI8V29ya0l0ZW0+IGl0ZW0pCit7Cisg
ICAgV29ya1F1ZXVlOjpXb3JrSXRlbVF0KiBpdGVtUXQgPSBuZXcgV29ya1F1ZXVlOjpXb3JrSXRl
bVF0KHRoaXMsIGl0ZW0ucmVsZWFzZSgpKTsKKyAgICBpdGVtUXQtPnN0YXJ0VGltZXIoMCk7Cisg
ICAgaXRlbVF0LT5tb3ZlVG9UaHJlYWQobV93b3JrVGhyZWFkKTsKK30KKworI2luY2x1ZGUgIldv
cmtRdWV1ZVF0Lm1vYyIKSW5kZXg6IFdlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAJKHJldmlzaW9u
IDApCisrKyBXZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIlVwZGF0
ZUNodW5rLmgiCisKKyNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1
bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJBdHRhY2htZW50LmgiCisjaW5jbHVkZSAiV2ViQ29y
ZVR5cGVBcmd1bWVudE1hcnNoYWxsaW5nLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3Qu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKKyNpbmNsdWRlIDxRRGVidWc+CisjaW5jbHVk
ZSA8UUZpbGU+CisjaW5jbHVkZSA8UUltYWdlPgorI2luY2x1ZGUgPFFTaGFyZWRNZW1vcnk+Cisj
aW5jbHVkZSA8UVRlbXBvcmFyeUZpbGU+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNp
bmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgCisjaWYgVVNFX01N
QVAKKyAgICAKK3N0cnVjdCBNYXBwZWRNZW1vcnkgeworICAgIFFGaWxlKiBmaWxlOworICAgIHVj
aGFyKiBkYXRhOworICAgIHNpemVfdCBzaXplOworICAgIHZvaWQgbWFya1VzZWQoKSB7ICpyZWlu
dGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oZGF0YSkgPSAwOyB9CisgICAgdm9pZCBtYXJrRnJlZSgp
IHsgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkYXRhKSA9IDB4ZGVhZGJlZWY7IH0KKyAg
ICBib29sIGlzRnJlZSgpIHsgcmV0dXJuICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oZGF0
YSkgPT0gMHhkZWFkYmVlZjsgfQorfTsKKworc3RhdGljIFZlY3RvcjxNYXBwZWRNZW1vcnk+KiBt
bWFwUG9vbDsKKyAgICAKK3N0YXRpYyBNYXBwZWRNZW1vcnkqIG1hcE1lbW9yeShzaXplX3Qgc2l6
ZSkKK3sKKyAgICBpZiAoIW1tYXBQb29sKQorICAgICAgICBtbWFwUG9vbCA9IG5ldyBWZWN0b3I8
TWFwcGVkTWVtb3J5PjsKKyAgICAgICAgCisgICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IG1t
YXBQb29sLT5zaXplKCk7ICsrbikgeworICAgICAgICBNYXBwZWRNZW1vcnkmIGN1cnJlbnQgPSBt
bWFwUG9vbC0+YXQobik7CisgICAgICAgIGlmIChjdXJyZW50LnNpemUgPj0gc2l6ZSAmJiBjdXJy
ZW50LmlzRnJlZSgpKSB7CisgICAgICAgICAgICBjdXJyZW50Lm1hcmtVc2VkKCk7CisgICAgICAg
ICAgICByZXR1cm4gJmN1cnJlbnQ7CisgICAgICAgIH0KKyAgICB9CisgICAgTWFwcGVkTWVtb3J5
IG5ld01hcDsKKyAgICBuZXdNYXAuc2l6ZSA9IHNpemU7CisgICAgbmV3TWFwLmZpbGUgPSBuZXcg
UVRlbXBvcmFyeUZpbGUoIldlYktpdDJVcGRhdGVDaHVuayIpOworICAgIG5ld01hcC5maWxlLT5v
cGVuKFFJT0RldmljZTo6UmVhZFdyaXRlKTsKKyAgICBuZXdNYXAuZmlsZS0+cmVzaXplKG5ld01h
cC5zaXplKTsKKyAgICBuZXdNYXAuZGF0YSA9IG5ld01hcC5maWxlLT5tYXAoMCwgbmV3TWFwLnNp
emUpOworICAgIG5ld01hcC5maWxlLT5jbG9zZSgpOworICAgIG5ld01hcC5tYXJrVXNlZCgpOwor
ICAgIG1tYXBQb29sLT5hcHBlbmQobmV3TWFwKTsKKyAgICByZXR1cm4gJm1tYXBQb29sLT5sYXN0
KCk7Cit9CisgICAgCitzdGF0aWMgTWFwcGVkTWVtb3J5KiBtYXBGaWxlKFFTdHJpbmcgZmlsZU5h
bWUsIHNpemVfdCBzaXplKQoreworICAgIGlmICghbW1hcFBvb2wpCisgICAgICAgIG1tYXBQb29s
ID0gbmV3IFZlY3RvcjxNYXBwZWRNZW1vcnk+OworICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4g
PCBtbWFwUG9vbC0+c2l6ZSgpOyArK24pIHsKKyAgICAgICAgTWFwcGVkTWVtb3J5JiBjdXJyZW50
ID0gbW1hcFBvb2wtPmF0KG4pOworICAgICAgICBpZiAoY3VycmVudC5maWxlLT5maWxlTmFtZSgp
ID09IGZpbGVOYW1lKSB7CisgICAgICAgICAgICBBU1NFUlQoIWN1cnJlbnQuaXNGcmVlKCkpOwor
ICAgICAgICAgICAgcmV0dXJuICZjdXJyZW50OworICAgICAgICB9CisgICAgfQorICAgIE1hcHBl
ZE1lbW9yeSBuZXdNYXA7CisgICAgbmV3TWFwLmZpbGUgPSBuZXcgUUZpbGUoZmlsZU5hbWUpOwor
ICAgIGlmICghbmV3TWFwLmZpbGUtPm9wZW4oUUlPRGV2aWNlOjpSZWFkV3JpdGUpKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICBuZXdNYXAuZGF0YSA9IG5ld01hcC5maWxlLT5tYXAoMCwgc2l6ZSk7
CisgICAgQVNTRVJUKCFuZXdNYXAuaXNGcmVlKCkpOworICAgIG5ld01hcC5maWxlLT5jbG9zZSgp
OworICAgIG1tYXBQb29sLT5hcHBlbmQobmV3TWFwKTsKKyAgICByZXR1cm4gJm1tYXBQb29sLT5s
YXN0KCk7Cit9CisKK1VwZGF0ZUNodW5rOjpVcGRhdGVDaHVuaygpCisgICAgOiBtX21hcHBlZE1l
bW9yeSgwKQoreworfQorCitVcGRhdGVDaHVuazo6VXBkYXRlQ2h1bmsoY29uc3QgSW50UmVjdCYg
cmVjdCkKKyAgICA6IG1fcmVjdChyZWN0KQorICAgICwgbV9tYXBwZWRNZW1vcnkobWFwTWVtb3J5
KHNpemUoKSkpCit7Cit9CisKK1VwZGF0ZUNodW5rOjp+VXBkYXRlQ2h1bmsoKQoreworICAgIGlm
IChtX21hcHBlZE1lbW9yeSkKKyAgICAgICAgbV9tYXBwZWRNZW1vcnktPm1hcmtGcmVlKCk7Cit9
CisKK3VpbnQ4X3QqIFVwZGF0ZUNodW5rOjpkYXRhKCkKK3sKKyAgICBBU1NFUlQobV9tYXBwZWRN
ZW1vcnkpOworICAgIEFTU0VSVChtX21hcHBlZE1lbW9yeS0+ZGF0YSk7CisgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1fbWFwcGVkTWVtb3J5LT5kYXRhKTsKK30KKwordm9p
ZCBVcGRhdGVDaHVuazo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKK3sKKyAgICBlbmNvZGVyLmVuY29kZShtX3JlY3QpOworICAgIGVuY29kZXIuZW5jb2Rl
KFN0cmluZyhtX21hcHBlZE1lbW9yeS0+ZmlsZS0+ZmlsZU5hbWUoKSkpOworCisgICAgbV9tYXBw
ZWRNZW1vcnkgPSAwOworfQorCitib29sIFVwZGF0ZUNodW5rOjpkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBVcGRhdGVDaHVuayYgY2h1bmspCit7CisgICAgSW50UmVj
dCByZWN0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVjdCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBjaHVuay5tX3JlY3QgPSByZWN0OworICAgIAorICAgIFN0cmluZyBmaWxlTmFt
ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZpbGVOYW1lKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgY2h1bmsubV9tYXBwZWRNZW1vcnkgPSBtYXBGaWxlKGZpbGVOYW1lLCBjaHVu
ay5zaXplKCkpOworCisgICAgcmV0dXJuIGNodW5rLm1fbWFwcGVkTWVtb3J5LT5kYXRhOworfQor
CitRSW1hZ2UgVXBkYXRlQ2h1bms6OmNyZWF0ZUltYWdlKCkKK3sKKyAgICByZXR1cm4gUUltYWdl
KGRhdGEoKSwgbV9yZWN0LndpZHRoKCksIG1fcmVjdC5oZWlnaHQoKSwgUUltYWdlOjpGb3JtYXRf
UkdCMzIpOworfQorCisjZWxzZQorCitzdGF0aWMgVmVjdG9yPFFTaGFyZWRNZW1vcnkqPiogZGVh
ZE1lbW9yeVBvb2w7CisgICAgCitzdGF0aWMgdm9pZCBjbGVhbnVwRGVhZE1lbW9yeVBvb2woKQor
eworICAgIFZlY3RvcjxRU2hhcmVkTWVtb3J5Kj4gcmVtYWluaW5nOworICAgIGZvciAodW5zaWdu
ZWQgbiA9IDA7IG4gPCBkZWFkTWVtb3J5UG9vbC0+c2l6ZSgpOyArK24pIHsKKyAgICAgICAgUVNo
YXJlZE1lbW9yeSogY3VycmVudCA9IGRlYWRNZW1vcnlQb29sLT5hdChuKTsKKyAgICAgICAgaWYg
KCpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oY3VycmVudC0+ZGF0YSgpKSA9PSAweGRlYWRi
ZWVmKQorICAgICAgICAgICAgZGVsZXRlIGN1cnJlbnQ7CisgICAgICAgIGVsc2UgCisgICAgICAg
ICAgICByZW1haW5pbmcuYXBwZW5kKGN1cnJlbnQpOworICAgIH0KKyAgICBkZWFkTWVtb3J5UG9v
bC0+c3dhcChyZW1haW5pbmcpOworfQorCitzdGF0aWMgUVN0cmluZyBrZXlTdHJpbmcoaW50IGtl
eSkgeyByZXR1cm4gUVN0cmluZygiV2ViS2l0VXBkYXRlQ2h1bmsiKSArIFFTdHJpbmc6Om51bWJl
cihrZXkpOyB9CisKK1VwZGF0ZUNodW5rOjpVcGRhdGVDaHVuaygpCisgICAgOiBtX3NoYXJlZE1l
bW9yeShuZXcgUVNoYXJlZE1lbW9yeSgpKQoreworfQorCitVcGRhdGVDaHVuazo6VXBkYXRlQ2h1
bmsoY29uc3QgSW50UmVjdCYgcmVjdCkKKyAgICA6IG1fcmVjdChyZWN0KQorICAgICwgbV9zaGFy
ZWRNZW1vcnkobmV3IFFTaGFyZWRNZW1vcnkoKSkKK3sKKyAgICBpZiAoIWRlYWRNZW1vcnlQb29s
KQorICAgICAgICBkZWFkTWVtb3J5UG9vbCA9IG5ldyBWZWN0b3I8UVNoYXJlZE1lbW9yeSo+Owor
ICAgIGNsZWFudXBEZWFkTWVtb3J5UG9vbCgpOworCisgICAgbV9rZXkgPSByYW5kb20oKTsKKyAg
ICBtX3NoYXJlZE1lbW9yeS0+c2V0S2V5KGtleVN0cmluZyhtX2tleSkpOworICAgIGJvb2wgY3Jl
YXRlZCA9IG1fc2hhcmVkTWVtb3J5LT5jcmVhdGUoc2l6ZSgpKTsKKyAgICBpZiAoIWNyZWF0ZWQp
CisgICAgICAgIHFEZWJ1ZygpIDw8ICJlcnJvciBjcmVhdGluZyBzaGFyZWQgbWVtIGtleTogIiA8
PCBtX3NoYXJlZE1lbW9yeS0+a2V5KCkgPDwgIiBlcnJvcjogIiA8PCBtX3NoYXJlZE1lbW9yeS0+
ZXJyb3IoKTsKK30KKworVXBkYXRlQ2h1bms6On5VcGRhdGVDaHVuaygpCit7CisgICAgaWYgKG1f
c2hhcmVkTWVtb3J5KSB7CisgICAgICAgICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4obV9z
aGFyZWRNZW1vcnktPmRhdGEoKSkgPSAweGRlYWRiZWVmOworICAgICAgICBkZWxldGUgbV9zaGFy
ZWRNZW1vcnk7CisgICAgfQorfQorCit1aW50OF90KiBVcGRhdGVDaHVuazo6ZGF0YSgpCit7Cisg
ICAgQVNTRVJUKG1fc2hhcmVkTWVtb3J5LT5pc0F0dGFjaGVkKCkpOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1aW50OF90Kj4obV9zaGFyZWRNZW1vcnktPmRhdGEoKSk7Cit9CisKK3ZvaWQgVXBk
YXRlQ2h1bms6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2Rlci5lbmNvZGUobV9yZWN0KTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2tl
eSk7CisKKyAgICBkZWFkTWVtb3J5UG9vbC0+YXBwZW5kKG1fc2hhcmVkTWVtb3J5KTsKKyAgICBt
X3NoYXJlZE1lbW9yeSA9IDA7Cit9CisKK2Jvb2wgVXBkYXRlQ2h1bms6OmRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFVwZGF0ZUNodW5rJiBjaHVuaykKK3sKKyAgICBJ
bnRSZWN0IHJlY3Q7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZWN0KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGNodW5rLm1fcmVjdCA9IHJlY3Q7CisgICAgCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShjaHVuay5tX2tleSkpCisgICAgICAgIHJldHVybiBmYWxzZTsgICAgCisKKyAg
ICBjaHVuay5tX3NoYXJlZE1lbW9yeS0+c2V0S2V5KGtleVN0cmluZyhjaHVuay5tX2tleSkpOwor
ICAgIGJvb2wgc3VjY2VzcyA9IGNodW5rLm1fc2hhcmVkTWVtb3J5LT5hdHRhY2goKTsKKyAgICBp
ZiAoIXN1Y2Nlc3MpCisgICAgICAgIHFEZWJ1ZygpIDw8ICJlcnJvciBhdHRhY2hpbmcgdG8gc2hh
cmVkIG1lbSBrZXk6ICIgPDwgY2h1bmsubV9zaGFyZWRNZW1vcnktPmtleSgpIDw8ICIgZXJyb3I6
ICIgPDwgY2h1bmsubV9zaGFyZWRNZW1vcnktPmVycm9yKCk7CisgICAgcmV0dXJuIHN1Y2Nlc3M7
Cit9CisKK1FJbWFnZSBVcGRhdGVDaHVuazo6Y3JlYXRlSW1hZ2UoKQoreworICAgIHJldHVybiBR
SW1hZ2UoZGF0YSgpLCBtX3JlY3Qud2lkdGgoKSwgbV9yZWN0LmhlaWdodCgpLCBRSW1hZ2U6OkZv
cm1hdF9SR0IzMik7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBX
ZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hh
cmVkL3F0L1VwZGF0ZUNodW5rLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1NoYXJlZC9xdC9V
cGRhdGVDaHVuay5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBVcGRhdGVDaHVua19oCisjZGVmaW5lIFVwZGF0ZUNodW5rX2gK
KworI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KKworI2luY2x1ZGUgPFFJbWFnZT4KKworI2RlZmluZSBVU0VfTU1BUCAxCisKK25hbWVzcGFj
ZSBDb3JlSVBDIHsKKyAgICBjbGFzcyBBcmd1bWVudEVuY29kZXI7CisgICAgY2xhc3MgQXJndW1l
bnREZWNvZGVyOworfQorCitjbGFzcyBRRmlsZTsKK2NsYXNzIFFTaGFyZWRNZW1vcnk7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBNYXBwZWRNZW1vcnk7CisKK2NsYXNzIFVwZGF0ZUNo
dW5rIHsKK3B1YmxpYzoKKyAgICBVcGRhdGVDaHVuaygpOworICAgIFVwZGF0ZUNodW5rKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB+VXBkYXRlQ2h1bmsoKTsKKworICAgIHVpbnQ4X3Qq
IGRhdGEoKTsKKyAgICBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KCkgY29uc3QgeyByZXR1
cm4gbV9yZWN0OyB9CisKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIm
KSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
JiwgVXBkYXRlQ2h1bmsmKTsKKyAgICAKKyAgICBRSW1hZ2UgY3JlYXRlSW1hZ2UoKTsKKyAgICAK
K3ByaXZhdGU6CisgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3JlY3Qud2lkdGgo
KSAqIDQgKiBtX3JlY3QuaGVpZ2h0KCk7IH0KKworICAgIFdlYkNvcmU6OkludFJlY3QgbV9yZWN0
OworCisjaWYgVVNFX01NQVAKKyAgICBtdXRhYmxlIE1hcHBlZE1lbW9yeSogbV9tYXBwZWRNZW1v
cnk7CisjZWxzZQorICAgIGludCBtX2tleTsgICAgCisgICAgbXV0YWJsZSBRU2hhcmVkTWVtb3J5
KiBtX3NoYXJlZE1lbW9yeTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBVcGRhdGVDaHVua19oCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVu
dEZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVudEZhY3Rv
cnkuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvU2hhcmVkL3F0L1dlYkV2ZW50RmFjdG9yeS5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJF
dmVudEZhY3RvcnlfaAorI2RlZmluZSBXZWJFdmVudEZhY3RvcnlfaAorCisjaW1wb3J0ICJXZWJF
dmVudC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gRklYTUU6IFRoaXMgaXMgbm90IG5l
ZWRlZCBpbiB0aGUgV2ViUHJvY2VzcyBhbmQgc2hvdWxkIGJlIG1vdmVkIHRvIGJlIGEgcGVlcgor
Ly8gb2YgV0tWaWV3LgorCitjbGFzcyBXZWJFdmVudEZhY3RvcnkgeworcHVibGljOgorLy8gICAg
c3RhdGljIFdlYk1vdXNlRXZlbnQgY3JlYXRlV2ViTW91c2VFdmVudChOU0V2ZW50ICpldmVudCwg
TlNWaWV3ICp3aW5kb3dWaWV3KTsKKy8vICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNyZWF0ZVdl
YldoZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG93Vmlldyk7CisvLyAgICBz
dGF0aWMgV2ViS2V5Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2
ZW50KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRXZlbnRG
YWN0b3J5X2gKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgJKHJldmlzaW9u
IDYwMDcyKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOSwxMiArMzksMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNz
IEludFJlY3Q7CiB9CiAKKyNpZiBQTEFURk9STShRVCkKK2NsYXNzIFFQYWludGVyOworI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgUExBVEZPUk0oTUFDKQogdHlwZWRlZiBDR0Nv
bnRleHRSZWYgUGxhdGZvcm1EcmF3aW5nQ29udGV4dDsKICNlbGlmIFBMQVRGT1JNKFdJTikKIHR5
cGVkZWYgSERDIFBsYXRmb3JtRHJhd2luZ0NvbnRleHQ7CisjZWxpZiBQTEFURk9STShRVCkKK3R5
cGVkZWYgUVBhaW50ZXIqIFBsYXRmb3JtRHJhd2luZ0NvbnRleHQ7CiAjZW5kaWYKIAogY2xhc3Mg
RHJhd2luZ0FyZWFQcm94eSB7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5VXBkYXRlQ2h1bmsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5VXBkYXRlQ2h1bmsuaAkocmV2aXNpb24gNjAwNzIpCisrKyBXZWJLaXQyL1VJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5VXBkYXRlQ2h1bmsuaAkod29ya2luZyBjb3B5KQpAQCAtMzYs
NiArMzYsOSBAQAogI2Vsc2UKIGNsYXNzIFdLVmlldzsKICNlbmRpZgorI2VsaWYgUExBVEZPUk0o
UVQpCitjbGFzcyBRV0tHcmFwaGljc1dpZGdldDsKKyNpbmNsdWRlIDxRSW1hZ2U+CiAjZW5kaWYK
IAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00OCw2ICs1MSw4IEBAIHR5cGVkZWYgV0tWaWV3IFBs
YXRmb3JtV2ViVmlldzsKICNlbGlmIFBMQVRGT1JNKFdJTikKIGNsYXNzIFdlYlZpZXc7CiB0eXBl
ZGVmIFdlYlZpZXcgUGxhdGZvcm1XZWJWaWV3OworI2VsaWYgUExBVEZPUk0oUVQpCit0eXBlZGVm
IFFXS0dyYXBoaWNzV2lkZ2V0IFBsYXRmb3JtV2ViVmlldzsKICNlbmRpZgogCiBjbGFzcyBEcmF3
aW5nQXJlYVByb3h5VXBkYXRlQ2h1bmsgOiBwdWJsaWMgRHJhd2luZ0FyZWFQcm94eSB7CkBAIC05
MCw2ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgLy8gQmFja2luZ1N0b3JlCiAgICAgT3duUHRyPEhE
Qz4gbV9iYWNraW5nU3RvcmVEQzsKICAgICBPd25QdHI8SEJJVE1BUD4gbV9iYWNraW5nU3RvcmVC
aXRtYXA7CisjZWxpZiBQTEFURk9STShRVCkKKyAgICBRSW1hZ2UgbV9iYWNraW5nU3RvcmVJbWFn
ZTsKICNlbmRpZgogCiAgICAgUGxhdGZvcm1XZWJWaWV3KiBtX3dlYlZpZXc7CkluZGV4OiBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrZ3JhcGhpY3N3aWRnZXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tncmFwaGljc3dpZGdldC5jcHAJKHJldmlzaW9u
IDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrZ3JhcGhpY3N3aWRnZXQuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRl
ICJxd2tncmFwaGljc3dpZGdldC5oIgorCisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUg
IkRyYXdpbmdBcmVhUHJveHlVcGRhdGVDaHVuay5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5o
IgorI2luY2x1ZGUgIldlYlBhZ2VOYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJ3dGYvUmVmUHRyLmgi
CisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmlu
Zy5oPgorCisjaW5jbHVkZSA8UVBhaW50ZXI+CisjaW5jbHVkZSA8UVN0eWxlT3B0aW9uR3JhcGhp
Y3NJdGVtPgorI2luY2x1ZGUgPFFVcmw+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Cit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RydWN0IFFXS0dyYXBoaWNzV2lkZ2V0UHJpdmF0ZSAK
K3sKKyAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBfcGFnZTsKK307CisKK1FXS0dyYXBoaWNzV2lk
Z2V0OjpRV0tHcmFwaGljc1dpZGdldChXS1BhZ2VOYW1lc3BhY2VSZWYgcGFnZU5hbWVzcGFjZVJl
ZiwgUUdyYXBoaWNzSXRlbSogcGFyZW50KQorICAgIDogUUdyYXBoaWNzV2lkZ2V0KHBhcmVudCkK
KyAgICAsIGQobmV3IFFXS0dyYXBoaWNzV2lkZ2V0UHJpdmF0ZSkKK3sKKyAgICBkLT5fcGFnZSA9
IHRvV0socGFnZU5hbWVzcGFjZVJlZiktPmNyZWF0ZVdlYlBhZ2UoKTsKKy8vICAgIGQtPl9wYWdl
LT5zZXRQYWdlQ2xpZW50KG5ldyBQYWdlQ2xpZW50SW1wbCh0aGlzKSk7CisgICAgZC0+X3BhZ2Ut
PmluaXRpYWxpemVXZWJQYWdlKEludFNpemUoZ2VvbWV0cnkoKS5zaXplKCkudG9TaXplKCkpLCBu
ZXcgRHJhd2luZ0FyZWFQcm94eVVwZGF0ZUNodW5rKHRoaXMpKTsKK30KKworUVdLR3JhcGhpY3NX
aWRnZXQ6On5RV0tHcmFwaGljc1dpZGdldCgpCit7CisgICAgZGVsZXRlIGQ7Cit9CisKK1dLUGFn
ZVJlZiBRV0tHcmFwaGljc1dpZGdldDo6cGFnZVJlZigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRv
UmVmKGQtPl9wYWdlLmdldCgpKTsKK30KKwordm9pZCBRV0tHcmFwaGljc1dpZGdldDo6cGFpbnQo
UVBhaW50ZXIqIHBhaW50ZXIsIGNvbnN0IFFTdHlsZU9wdGlvbkdyYXBoaWNzSXRlbSogb3B0aW9u
LCBRV2lkZ2V0KikKK3sKKyAgICBwYWludGVyLT5zYXZlKCk7CisgICAgCisgICAgUVJlY3QgcmVj
dCA9IG9wdGlvbi0+ZXhwb3NlZFJlY3QudG9BbGlnbmVkUmVjdCgpOworICAgIHBhaW50ZXItPnNl
dEJydXNoKFF0Ojp3aGl0ZSk7CisgICAgcGFpbnRlci0+ZHJhd1JlY3QocmVjdCk7CisKKyAgICBp
ZiAoZC0+X3BhZ2UtPmlzVmFsaWQoKSAmJiBkLT5fcGFnZS0+ZHJhd2luZ0FyZWEoKSkKKyAgICAg
ICAgZC0+X3BhZ2UtPmRyYXdpbmdBcmVhKCktPnBhaW50KEludFJlY3QocmVjdCksIHBhaW50ZXIp
OworCisgICAgcGFpbnRlci0+cmVzdG9yZSgpOworfQorCit2b2lkIFFXS0dyYXBoaWNzV2lkZ2V0
OjpzZXRHZW9tZXRyeShjb25zdCBRUmVjdEYmIHJlY3QpCit7CisgICAgUUdyYXBoaWNzV2lkZ2V0
OjpzZXRHZW9tZXRyeShyZWN0KTsKKyAgICAKKyAgICAvLyBOT1RFOiBjYWxsIGdlb21ldHJ5KCkg
YXMgc2V0R2VvbWV0cnkgZW5zdXJlcyB0aGF0CisgICAgLy8gdGhlIGdlb21ldHJ5IGlzIHdpdGhp
biBsZWdhbCBib3VuZHMgKG1pbmltdW1TaXplLCBtYXhpbXVtU2l6ZSkKKyAgICBRU2l6ZSBzaXpl
ID0gZ2VvbWV0cnkoKS5zaXplKCkudG9TaXplKCk7CisgICAgZC0+X3BhZ2UtPmRyYXdpbmdBcmVh
KCktPnNldFNpemUoSW50U2l6ZShzaXplKSk7Cit9CisKK1dLU3RyaW5nUmVmIFdLU3RyaW5nQ3Jl
YXRlV2l0aFFTdHJpbmcoUVN0cmluZyBxU3RyaW5nKQoreworICAgIFN0cmluZyBzdHJpbmcocVN0
cmluZyk7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IHN0cmluZ0ltcGwgPSBzdHJpbmcuaW1wbCgp
OworICAgIHJldHVybiB0b1JlZihzdHJpbmdJbXBsLnJlbGVhc2UoKS5yZWxlYXNlUmVmKCkpOwor
fQorCitRU3RyaW5nIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nUmVmKQor
eworICAgIHJldHVybiBRU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgUUNoYXIqPih0b1dL
KHN0cmluZ1JlZiktPmNoYXJhY3RlcnMoKSksIHRvV0soc3RyaW5nUmVmKS0+bGVuZ3RoKCkpOwor
fQorCitXS1VSTFJlZiBXS1VSTENyZWF0ZVdpdGhRVXJsKFFVcmwgcVVSTCkKK3sKKyAgICBTdHJp
bmcgdXJsU3RyaW5nKHFVUkwudG9TdHJpbmcoKSk7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IHVy
bFN0cmluZ0ltcGwgPSB1cmxTdHJpbmcuaW1wbCgpOworICAgIHJldHVybiB0b1VSTFJlZih1cmxT
dHJpbmdJbXBsLnJlbGVhc2UoKS5yZWxlYXNlUmVmKCkpOworfQorCitRVXJsIFdLVVJMQ29weVFV
cmwoV0tVUkxSZWYgVVJMUmVmKQoreworICAgIHJldHVybiBRVXJsKFFTdHJpbmcocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBRQ2hhcio+KHRvV0soVVJMUmVmKS0+Y2hhcmFjdGVycygpKSwgdG9XSyhV
UkxSZWYpLT5sZW5ndGgoKSkpOworfQorCisjaW5jbHVkZSAibW9jX3F3a2dyYXBoaWNzd2lkZ2V0
LmNwcCIKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tncmFwaGljc3dpZGdldC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tncmFwaGljc3dpZGdl
dC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBoaWNz
d2lkZ2V0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKyNpZm5kZWYgUVdLR3JhcGhp
Y3NXaWRnZXRfaAorI2RlZmluZSBRV0tHcmFwaGljc1dpZGdldF9oCisKKyNpbmNsdWRlICJxd2Vi
a2l0Z2xvYmFsLmgiCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFFH
cmFwaGljc1dpZGdldD4KKworY2xhc3MgUVdLR3JhcGhpY3NXaWRnZXRQcml2YXRlOworCitXS1N0
cmluZ1JlZiBXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKFFTdHJpbmcgcVN0cmluZyk7CitRU3Ry
aW5nIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nUmVmKTsKKworV0tVUkxS
ZWYgV0tVUkxDcmVhdGVXaXRoUVVybChRVXJsIHFVUkwpOworUVVybCBXS1VSTENvcHlRVXJsKFdL
VVJMUmVmIFVSTFJlZik7CisKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFFXS0dyYXBoaWNzV2lkZ2V0
IDogcHVibGljIFFHcmFwaGljc1dpZGdldAoreworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAg
UVdLR3JhcGhpY3NXaWRnZXQoV0tQYWdlTmFtZXNwYWNlUmVmIG5hbWVzcGFjZVJlZiwgUUdyYXBo
aWNzSXRlbSogcGFyZW50ID0gMCk7CisgICAgdmlydHVhbCB+UVdLR3JhcGhpY3NXaWRnZXQoKTsK
KworICAgIFdLUGFnZVJlZiBwYWdlUmVmKCkgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCB2b2lk
IHBhaW50KFFQYWludGVyKiwgY29uc3QgUVN0eWxlT3B0aW9uR3JhcGhpY3NJdGVtKiwgUVdpZGdl
dCopOworICAgIHZpcnR1YWwgdm9pZCBzZXRHZW9tZXRyeShjb25zdCBRUmVjdEYmKTsKKworcHJp
dmF0ZToKKyAgICBRV0tHcmFwaGljc1dpZGdldFByaXZhdGUqIGQ7Cit9OworCisjZW5kaWYKSW5k
ZXg6IFdlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1dlYlByb2Nlc3NMYXVuY2hlclF0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9XZWJQcm9jZXNz
TGF1bmNoZXJRdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9xdC9XZWJQcm9jZXNzTGF1bmNoZXJRdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTE5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldlYlByb2Nlc3NMYXVuY2hl
ci5oIgorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5o
PgorI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2luY2x1ZGUgPHN0
cmluZz4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRp
bmcuaD4KKworI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNp
bmNsdWRlIDxRUHJvY2Vzcz4KKworI2luY2x1ZGUgPFF0Q29yZS9xZ2xvYmFsLmg+CisKKyNpZiAh
ZGVmaW5lZChRV0VCS0lUX0VYUE9SVCkKKyMgIGlmIGRlZmluZWQoUVRfU0hBUkVEKQorIyAgICBk
ZWZpbmUgUVdFQktJVF9FWFBPUlQgUV9ERUNMX0VYUE9SVAorIyAgZWxzZQorIyAgICBkZWZpbmUg
UVdFQktJVF9FWFBPUlQKKyMgIGVuZGlmCisjZW5kaWYKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdm9pZCogd2ViVGhyZWFkQm9keSh2
b2lkKikKK3sKKyAgICAvLyBJbml0aWFsaXphdGlvbgorICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVh
ZGluZygpOworICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKKworICAgIFdlYlByb2Nl
c3M6OnNoYXJlZCgpLmluaXRpYWxpemUoImZvbyIsIFJ1bkxvb3A6OmN1cnJlbnQoKSk7CisgICAg
UnVuTG9vcDo6cnVuKCk7CisKKyAgICByZXR1cm4gMDsKK30KKworUHJvY2Vzc0luZm8gbGF1bmNo
V2ViUHJvY2VzcyhDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQqIGNsaWVudCwgUHJvY2Vzc01v
ZGVsIG1vZGVsKQoreworICAgIFByb2Nlc3NJbmZvIGluZm8gPSB7IDAsIDAgfTsKKworICAgIHNy
YW5kb20odGltZSgwKSk7CisgICAgUVN0cmluZyBzZXJ2ZXJJZGVudGlmaWVyID0gUVN0cmluZzo6
bnVtYmVyKHJhbmRvbSgpKTsKKworICAgIGluZm8uY29ubmVjdGlvbiA9IENvcmVJUEM6OkNvbm5l
Y3Rpb246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oc2VydmVySWRlbnRpZmllciwgY2xpZW50LCBS
dW5Mb29wOjptYWluKCkpOworICAgIGluZm8uY29ubmVjdGlvbi0+b3BlbigpOworCisgICAgc3dp
dGNoIChtb2RlbCkgeworICAgICAgICBjYXNlIFByb2Nlc3NNb2RlbFNlY29uZGFyeVRocmVhZDog
eworICAgICAgICAgICAgLy8gRklYTUU6IFBhc3MgdGhlIGhhbmRsZS4KKyAgICAgICAgICAgIGlm
IChjcmVhdGVUaHJlYWQod2ViVGhyZWFkQm9keSwgMCwgIldlYktpdDI6IFdlYlRocmVhZCIpKSB7
CisgICAgICAgICAgICAgICAgaW5mby5wcm9jZXNzSWRlbnRpZmllciA9IGdldHBpZCgpOworICAg
ICAgICAgICAgICAgIHJldHVybiBpbmZvOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBQcm9jZXNzTW9kZWxTZWNvbmRhcnlQcm9jZXNz
OiB7CisgICAgICAgICAgICBRU3RyaW5nIHByb2dyYW0oIlF0V2ViUHJvY2VzcyAiICsgc2VydmVy
SWRlbnRpZmllcik7CisKKyAgICAgICAgICAgIFFQcm9jZXNzKiB3ZWJQcm9jZXNzID0gbmV3IFFQ
cm9jZXNzOworICAgICAgICAgICAgd2ViUHJvY2Vzcy0+c3RhcnQocHJvZ3JhbSk7CisgICAgICAg
ICAgICBpZiAod2ViUHJvY2Vzcy0+d2FpdEZvclN0YXJ0ZWQoKSkKKyAgICAgICAgICAgICAgICBp
bmZvLnByb2Nlc3NJZGVudGlmaWVyID0gd2ViUHJvY2Vzcy0+cGlkKCk7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIGluZm87Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCitRV0VC
S0lUX0VYUE9SVCBpbnQgd2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreyAg
ICAKKyAgICBRQXBwbGljYXRpb24qIGFwcCA9IG5ldyBRQXBwbGljYXRpb24oYXJnYywgYXJndik7
CisgICAgc3JhbmRvbSh0aW1lKDApKTsKKworICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygp
OworICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKKyAgICBSdW5Mb29wOjppbml0aWFs
aXplTWFpblJ1bkxvb3AoKTsKKyAgICAKKyAgICAvLyBDcmVhdGUgdGhlIGNvbm5lY3Rpb24uCisg
ICAgUVN0cmluZyBpZGVudGlmaWVyKGFwcC0+YXJndW1lbnRzKCkuc2l6ZSgpID4gMSA/IGFwcC0+
YXJndW1lbnRzKCkuYXQoMSkgOiAiIik7CisgICAgV2ViS2l0OjpXZWJQcm9jZXNzOjpzaGFyZWQo
KS5pbml0aWFsaXplKGlkZW50aWZpZXIsIFJ1bkxvb3A6Om1haW4oKSk7CisgICAgCisgICAgUnVu
TG9vcDo6cnVuKCk7CisgICAgCisgICAgLy8gRklYTUU6IERvIG1vcmUgY2xlYW51cCBoZXJlLgor
ICAgIAorICAgIHJldHVybiAwOworfQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvcXQvRHJhd2lu
Z0FyZWFQcm94eVVwZGF0ZUNodW5rUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9j
ZXNzL3F0L0RyYXdpbmdBcmVhUHJveHlVcGRhdGVDaHVua1F0LmNwcAkocmV2aXNpb24gMCkKKysr
IFdlYktpdDIvVUlQcm9jZXNzL3F0L0RyYXdpbmdBcmVhUHJveHlVcGRhdGVDaHVua1F0LmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJEcmF3aW5nQXJlYVByb3h5VXBkYXRlQ2h1bmsuaCIKKworI2luY2x1ZGUgIkRyYXdp
bmdBcmVhTWVzc2FnZUtpbmRzLmgiCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VL
aW5kcy5oIgorI2luY2x1ZGUgIlVwZGF0ZUNodW5rLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisKKyNpbmNsdWRlICJxd2tncmFwaGljc3dpZGdl
dC5oIgorCisjaW5jbHVkZSA8UVBhaW50ZXI+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViUGFnZVByb3h5KiBEcmF3aW5nQXJlYVByb3h5VXBk
YXRlQ2h1bms6OnBhZ2UoKQoreworICAgIHJldHVybiB0b1dLKG1fd2ViVmlldy0+cGFnZVJlZigp
KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5VXBkYXRlQ2h1bms6OmVuc3VyZUJhY2tpbmdT
dG9yZSgpCit7CisgICAgaWYgKCFtX2JhY2tpbmdTdG9yZUltYWdlLmlzTnVsbCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2JhY2tpbmdTdG9yZUltYWdlID0gUUltYWdlKG1fdmlld1NpemUu
d2lkdGgoKSwgbV92aWV3U2l6ZS5oZWlnaHQoKSwgUUltYWdlOjpGb3JtYXRfUkdCMzIpOworfQor
Cit2b2lkIERyYXdpbmdBcmVhUHJveHlVcGRhdGVDaHVuazo6aW52YWxpZGF0ZUJhY2tpbmdTdG9y
ZSgpCit7CisgICAgbV9iYWNraW5nU3RvcmVJbWFnZSA9IFFJbWFnZSgpOworfQorCit2b2lkIERy
YXdpbmdBcmVhUHJveHlVcGRhdGVDaHVuazo6cGxhdGZvcm1QYWludChjb25zdCBJbnRSZWN0JiBy
ZWN0LCBRUGFpbnRlciogcGFpbnRlcikKK3sKKyAgICBpZiAobV9iYWNraW5nU3RvcmVJbWFnZS5p
c051bGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFpbnRlci0+ZHJhd0ltYWdlKFFQb2lu
dCgwLDApLCBtX2JhY2tpbmdTdG9yZUltYWdlKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5
VXBkYXRlQ2h1bms6OmRyYXdVcGRhdGVDaHVua0ludG9CYWNraW5nU3RvcmUoVXBkYXRlQ2h1bmsq
IHVwZGF0ZUNodW5rKQoreworICAgIGVuc3VyZUJhY2tpbmdTdG9yZSgpOworCisgICAgUUltYWdl
IGltYWdlKHVwZGF0ZUNodW5rLT5jcmVhdGVJbWFnZSgpKTsKKyAgICBjb25zdCBJbnRSZWN0JiB1
cGRhdGVDaHVua1JlY3QgPSB1cGRhdGVDaHVuay0+cmVjdCgpOworCisgICAgUVBhaW50ZXIgcGFp
bnRlcigmbV9iYWNraW5nU3RvcmVJbWFnZSk7CisgICAgcGFpbnRlci5kcmF3SW1hZ2UodXBkYXRl
Q2h1bmtSZWN0LnRvcExlZnQoKSwgaW1hZ2UpOworCisgICAgbV93ZWJWaWV3LT51cGRhdGUoUVJl
Y3QodXBkYXRlQ2h1bmtSZWN0KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDog
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gNjAwNzIpCisrKyBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01l
c3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjZGVmaW5lIE5ERUJV
RyAyCiAKICNpZm5kZWYgTkRFQlVHCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZS5oPgpJbmRleDog
V2ViS2l0Mi9XZWJQcm9jZXNzL0xhdW5jaGluZy9xdC9XZWJQcm9jZXNzTWFpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0xhdW5jaGluZy9xdC9XZWJQcm9jZXNzTWFpbi5j
cHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvTGF1bmNoaW5nL3F0L1dlYlBy
b2Nlc3NNYWluLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK2V4dGVybiBpbnQgd2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBh
cmd2KTsKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreyAgICAKKyAgICB3ZWJQ
cm9jZXNzTWFpbihhcmdjLCBhcmd2KTsKK30KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDYwMDcyKQor
KysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjgsNiArMTY4LDE0IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMoKTsKICNlbmRpZgogICAgIAorI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQorICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJl
c2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9IAorI2Vu
ZGlmCisgICAgCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICB2aXJ0dWFsIHZvaWQgbmVl
ZFRvdWNoRXZlbnRzKGJvb2wpIHsgfQorI2VuZGlmCisKICAgICBXZWJDb3JlOjpTdHJpbmcgbV9j
YWNoZWRUb29sVGlwOwogICAgIFdlYlBhZ2UqIG1fcGFnZTsKIH07CkluZGV4OiBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRXJyb3JzUXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJFcnJvcnNRdC5jcHAJKHJl
dmlzaW9uIDApCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRXJy
b3JzUXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgIldlYkVycm9ycy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKwor
I2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UU5ldHdvcmtSZXBseT4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBjb3Bp
ZWQgZnJvbSBXZWJLaXQvTWlzYy9XZWJLaXRFcnJvcnNbUHJpdmF0ZV0uaAorZW51bSB7CisgICAg
V2ViS2l0RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUgPSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTAwLAorICAgIFdlYktpdEVycm9yQ2Fubm90U2hvd1VSTCA9ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDEwMSwKKyAgICBXZWJLaXRFcnJvckZyYW1lTG9hZEludGVycnVwdGVk
QnlQb2xpY3lDaGFuZ2UgPSAgICAgICAgICAgICAxMDIsCisgICAgV2ViS2l0RXJyb3JDYW5ub3RV
c2VSZXN0cmljdGVkUG9ydCA9IDEwMywKKyAgICBXZWJLaXRFcnJvckNhbm5vdEZpbmRQbHVnSW4g
PSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDAsCisgICAgV2ViS2l0RXJyb3JDYW5u
b3RMb2FkUGx1Z0luID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAxLAorICAgIFdl
YktpdEVycm9ySmF2YVVuYXZhaWxhYmxlID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIwMiwKK307CisKK1Jlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIFJlc291cmNlRXJyb3IgZXJyb3IgPSBSZXNvdXJjZUVy
cm9yKCJRdE5ldHdvcmsiLCBRTmV0d29ya1JlcGx5OjpPcGVyYXRpb25DYW5jZWxlZEVycm9yLCBy
ZXF1ZXN0LnVybCgpLnByZXR0eVVSTCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYkZyYW1lIiwgIlJlcXVl
c3QgY2FuY2VsbGVkIiwgMCwgUUNvcmVBcHBsaWNhdGlvbjo6VW5pY29kZVVURjgpKTsKKyAgICBl
cnJvci5zZXRJc0NhbmNlbGxhdGlvbih0cnVlKTsKKyAgICByZXR1cm4gZXJyb3I7ICAgIAorfQor
CitSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoIldlYktpdCIsIFdlYktpdEVycm9yQ2Fu
bm90VXNlUmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCkucHJldHR5VVJMKCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViRnJhbWUi
LCAiUmVxdWVzdCBibG9ja2VkIiwgMCwgUUNvcmVBcHBsaWNhdGlvbjo6VW5pY29kZVVURjgpKTsK
K30KKworUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKCJXZWJLaXQiLCBXZWJL
aXRFcnJvckNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViRnJhbWUiLCAi
Q2Fubm90IHNob3cgVVJMIiwgMCwgUUNvcmVBcHBsaWNhdGlvbjo6VW5pY29kZVVURjgpKTsKK30K
KworUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoIldlYktp
dCIsIFdlYktpdEVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSwgcmVxdWVz
dC51cmwoKS5zdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBRQ29yZUFwcGxpY2F0
aW9uOjp0cmFuc2xhdGUoIlFXZWJGcmFtZSIsICJGcmFtZSBsb2FkIGludGVycnVwdGVkIGJ5IHBv
bGljeSBjaGFuZ2UiLCAwLCBRQ29yZUFwcGxpY2F0aW9uOjpVbmljb2RlVVRGOCkpOworfQorCitS
ZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKCJXZWJLaXQiLCBXZWJL
aXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViRnJh
bWUiLCAiQ2Fubm90IHNob3cgbWltZXR5cGUiLCAwLCBRQ29yZUFwcGxpY2F0aW9uOjpVbmljb2Rl
VVRGOCkpOworfQorCitSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcigi
UXROZXR3b3JrIiwgUU5ldHdvcmtSZXBseTo6Q29udGVudE5vdEZvdW5kRXJyb3IsIHJlc3BvbnNl
LnVybCgpLnN0cmluZygpLAorICAgICAgICAgICAgICAgICAgICAgICAgIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYkZyYW1lIiwgIkZpbGUgZG9lcyBub3QgZXhpc3QiLCAwLCBRQ29y
ZUFwcGxpY2F0aW9uOjpVbmljb2RlVVRGOCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
SW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0RyYXdpbmdBcmVhVXBkYXRlQ2h1
bmtRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvRHJh
d2luZ0FyZWFVcGRhdGVDaHVua1F0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL3F0L0RyYXdpbmdBcmVhVXBkYXRlQ2h1bmtRdC5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiRHJh
d2luZ0FyZWFVcGRhdGVDaHVuay5oIgorCisjaW5jbHVkZSAiVXBkYXRlQ2h1bmsuaCIKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKKyNpbmNsdWRlIDxRSW1hZ2U+CisjaW5jbHVkZSA8
UVBhaW50ZXI+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKyAgICAKKyAgICB2b2lkIERyYXdpbmdBcmVhVXBkYXRlQ2h1bms6OnBhaW50SW50b1VwZGF0
ZUNodW5rKFVwZGF0ZUNodW5rKiB1cGRhdGVDaHVuaykKKyAgICB7CisgICAgICAgIFFJbWFnZSBp
bWFnZSh1cGRhdGVDaHVuay0+Y3JlYXRlSW1hZ2UoKSk7CisgICAgICAgIFFQYWludGVyIHBhaW50
ZXIoJmltYWdlKTsKKyAgICAgICAgLy8gTm93IHBhaW50IGludG8gdGhlIGJhY2tpbmcgc3RvcmUu
CisgICAgICAgIEdyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHQoJnBhaW50ZXIpOworICAg
ICAgICBncmFwaGljc0NvbnRleHQudHJhbnNsYXRlKC11cGRhdGVDaHVuay0+cmVjdCgpLngoKSwg
LXVwZGF0ZUNodW5rLT5yZWN0KCkueSgpKTsKKyAgICAgICAgCisgICAgICAgIG1fd2ViUGFnZS0+
ZHJhd1JlY3QoZ3JhcGhpY3NDb250ZXh0LCB1cGRhdGVDaHVuay0+cmVjdCgpKTsKKyAgICB9Cisg
ICAgCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL3F0L1dlYlBhZ2VRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjE0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKworI2luY2x1
ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZXR0aW5ncy5oPgorCisjaWZuZGVmIFZLX1VOS05PV04KKworI2RlZmluZSBWS19VTktO
T1dOIDAKKworLy8gTGVmdCBtb3VzZSBidXR0b24KKy8vIFJpZ2h0IG1vdXNlIGJ1dHRvbgorLy8g
Q29udHJvbC1icmVhayBwcm9jZXNzaW5nCisvLyBNaWRkbGUgbW91c2UgYnV0dG9uICh0aHJlZS1i
dXR0b24gbW91c2UpCisvLyBWS19YQlVUVE9OMSAoMDUpCisvLyBWS19YQlVUVE9OMiAoMDYpCisK
KyNkZWZpbmUgVktfQkFDSyAweDA4CisjZGVmaW5lIFZLX1RBQiAweDA5CisjZGVmaW5lIFZLX0NM
RUFSIDB4MEMKKyNkZWZpbmUgVktfUkVUVVJOIDB4MEQKKyNkZWZpbmUgVktfU0hJRlQgMHgxMAor
I2RlZmluZSBWS19DT05UUk9MIDB4MTEgLy8gQ1RSTCBrZXkKKyNkZWZpbmUgVktfTUVOVSAweDEy
IC8vIEFMVCBrZXkKKyNkZWZpbmUgVktfUEFVU0UgMHgxMyAvLyBQQVVTRSBrZXkKKyNkZWZpbmUg
VktfQ0FQSVRBTCAweDE0IC8vIENBUFMgTE9DSyBrZXkKKyNkZWZpbmUgVktfS0FOQSAweDE1IC8v
IElucHV0IE1ldGhvZCBFZGl0b3IgKElNRSkgS2FuYSBtb2RlCisjZGVmaW5lIFZLX0hBTkdVTCAw
eDE1IC8vIElNRSBIYW5ndWwgbW9kZQorI2RlZmluZSBWS19KVU5KQSAweDE3IC8vIElNRSBKdW5q
YSBtb2RlCisjZGVmaW5lIFZLX0ZJTkFMIDB4MTggLy8gSU1FIGZpbmFsIG1vZGUKKyNkZWZpbmUg
VktfSEFOSkEgMHgxOSAvLyBJTUUgSGFuamEgbW9kZSAKKyNkZWZpbmUgVktfS0FOSkkgMHgxOSAv
LyBJTUUgS2FuamkgbW9kZQorI2RlZmluZSBWS19FU0NBUEUgMHgxQiAvLyBFU0Mga2V5CisjZGVm
aW5lIFZLX0NPTlZFUlQgMHgxQyAvLyBJTUUgY29udmVydAorI2RlZmluZSBWS19OT05DT05WRVJU
IDB4MUQgLy8gSU1FIG5vbmNvbnZlcnQKKyNkZWZpbmUgVktfQUNDRVBUIDB4MUUgLy8gSU1FIGFj
Y2VwdAorI2RlZmluZSBWS19NT0RFQ0hBTkdFIDB4MUYgLy8gSU1FIG1vZGUgY2hhbmdlIHJlcXVl
c3QKKyNkZWZpbmUgVktfU1BBQ0UgMHgyMCAvLyBTUEFDRSBrZXkKKyNkZWZpbmUgVktfUFJJT1Ig
MHgyMSAvLyBQQUdFIFVQIGtleQorI2RlZmluZSBWS19ORVhUIDB4MjIgLy8gUEFHRSBET1dOIGtl
eQorI2RlZmluZSBWS19FTkQgMHgyMyAvLyBFTkQga2V5CisjZGVmaW5lIFZLX0hPTUUgMHgyNCAv
LyBIT01FIGtleQorI2RlZmluZSBWS19MRUZUIDB4MjUgLy8gTEVGVCBBUlJPVyBrZXkKKyNkZWZp
bmUgVktfVVAgMHgyNiAvLyBVUCBBUlJPVyBrZXkKKyNkZWZpbmUgVktfUklHSFQgMHgyNyAvLyBS
SUdIVCBBUlJPVyBrZXkKKyNkZWZpbmUgVktfRE9XTiAweDI4IC8vIERPV04gQVJST1cga2V5Cisj
ZGVmaW5lIFZLX1NFTEVDVCAweDI5IC8vIFNFTEVDVCBrZXkKKyNkZWZpbmUgVktfUFJJTlQgMHgy
QSAvLyBQUklOVCBrZXkKKyNkZWZpbmUgVktfRVhFQ1VURSAweDJCIC8vIEVYRUNVVEUga2V5Cisj
ZGVmaW5lIFZLX1NOQVBTSE9UIDB4MkMgLy8gUFJJTlQgU0NSRUVOIGtleQorI2RlZmluZSBWS19J
TlNFUlQgMHgyRCAvLyBJTlMga2V5CisjZGVmaW5lIFZLX0RFTEVURSAweDJFIC8vIERFTCBrZXkK
KyNkZWZpbmUgVktfSEVMUCAweDJGIC8vIEhFTFAga2V5CisvLyBXaW5kb3dzIDIwMDAvWFA6IEZv
ciBhbnkgY291bnRyeS9yZWdpb24sIHRoZSAnLicga2V5CisjZGVmaW5lIFZLX09FTV9QRVJJT0Qg
MHhCRQorI2VuZGlmCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2Vi
S2l0IHsKKyAgICAKKyAgICB2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCisgICAg
eworLy8gICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0Rm9udFJlbmRlcmluZ01vZGUoQWx0
ZXJuYXRlUmVuZGVyaW5nTW9kZSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBDdHJsS2V5ID0gMSA8PCAwOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbHRLZXkg
PSAxIDw8IDE7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFNoaWZ0S2V5ID0gMSA8PCAyOwor
ICAgIAorICAgIHN0cnVjdCBLZXlEb3duRW50cnkgeworICAgICAgICB1bnNpZ25lZCB2aXJ0dWFs
S2V5OworICAgICAgICB1bnNpZ25lZCBtb2RpZmllcnM7CisgICAgICAgIGNvbnN0IGNoYXIqIG5h
bWU7CisgICAgfTsKKyAgICAKKyAgICBzdHJ1Y3QgS2V5UHJlc3NFbnRyeSB7CisgICAgICAgIHVu
c2lnbmVkIGNoYXJDb2RlOworICAgICAgICB1bnNpZ25lZCBtb2RpZmllcnM7CisgICAgICAgIGNv
bnN0IGNoYXIqIG5hbWU7CisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgY29uc3QgS2V5RG93bkVu
dHJ5IGtleURvd25FbnRyaWVzW10gPSB7CisgICAgICAgIHsgVktfTEVGVCwgICAwLCAgICAgICAg
ICAgICAgICAgICJNb3ZlTGVmdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICB7IFZLX0xFRlQsICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZUxlZnRBbmRN
b2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyBWS19MRUZULCAg
IEN0cmxLZXksICAgICAgICAgICAgIk1vdmVXb3JkTGVmdCIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgIHsgVktfTEVGVCwgICBDdHJsS2V5IHwgU2hpZnRLZXksICJN
b3ZlV29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICB9LAorICAgICAgICB7
IFZLX1JJR0hULCAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVJpZ2h0IiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyBWS19SSUdIVCwgIFNoaWZ0S2V5LCAg
ICAgICAgICAgIk1vdmVSaWdodEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgIH0s
CisgICAgICAgIHsgVktfUklHSFQsICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZFJpZ2h0
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZLX1JJR0hULCAg
Q3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRSaWdodEFuZE1vZGlmeVNlbGVjdGlvbiIgICAg
ICAgICAgICAgfSwKKyAgICAgICAgeyBWS19VUCwgICAgIDAsICAgICAgICAgICAgICAgICAgIk1v
dmVVcCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsg
VktfVVAsICAgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVXBBbmRNb2RpZnlTZWxlY3Rpb24i
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZLX1BSSU9SLCAgU2hpZnRLZXksICAg
ICAgICAgICAiTW92ZVBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgeyBWS19ET1dOLCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVEb3duIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgVktfRE9XTiwgICBT
aGlmdEtleSwgICAgICAgICAgICJNb3ZlRG93bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICB7IFZLX05FWFQsICAgU2hpZnRLZXksICAgICAgICAgICAiTW92
ZVBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyBW
S19QUklPUiwgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVQYWdlVXAiICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgVktfTkVYVCwgICAwLCAgICAgICAgICAg
ICAgICAgICJNb3ZlUGFnZURvd24iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgICAgICB7IFZLX0hPTUUsICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5n
T2ZMaW5lIiAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyBWS19IT01FLCAgIFNo
aWZ0S2V5LCAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZUFuZE1vZGlmeVNlbGVjdGlv
biIgICAgIH0sCisgICAgICAgIHsgVktfSE9NRSwgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3Zl
VG9CZWdpbm5pbmdPZkRvY3VtZW50IiAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZL
X0hPTUUsICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudEFu
ZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICAgICAgCisgICAgICAgIHsgVktfRU5ELCAgICAwLCAg
ICAgICAgICAgICAgICAgICJNb3ZlVG9FbmRPZkxpbmUiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgICAgICB7IFZLX0VORCwgICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVRv
RW5kT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgfSwKKyAgICAgICAgeyBWS19F
TkQsICAgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgVktfRU5ELCAgICBDdHJsS2V5IHwgU2hpZnRL
ZXksICJNb3ZlVG9FbmRPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICB9LAorICAg
ICAgICAKKyAgICAgICAgeyBWS19CQUNLLCAgIDAsICAgICAgICAgICAgICAgICAgIkRlbGV0ZUJh
Y2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgVktfQkFD
SywgICBTaGlmdEtleSwgICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZLX0RFTEVURSwgMCwgICAgICAgICAgICAgICAg
ICAiRGVsZXRlRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgeyBWS19CQUNLLCAgIEN0cmxLZXksICAgICAgICAgICAgIkRlbGV0ZVdvcmRCYWNrd2FyZCIg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgVktfREVMRVRFLCBDdHJsS2V5
LCAgICAgICAgICAgICJEZWxldGVXb3JkRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAKKyAgICAgICAgeyAnQicsICAgICAgIEN0cmxLZXksICAgICAgICAgICAg
IlRvZ2dsZUJvbGQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
IHsgJ0knLCAgICAgICBDdHJsS2V5LCAgICAgICAgICAgICJUb2dnbGVJdGFsaWMiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAKKyAgICAgICAgeyBWS19FU0NBUEUs
IDAsICAgICAgICAgICAgICAgICAgIkNhbmNlbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgIHsgVktfT0VNX1BFUklPRCwgQ3RybEtleSwgICAgICAgICJD
YW5jZWwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7
IFZLX1RBQiwgICAgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyBWS19UQUIsICAgIFNoaWZ0S2V5LCAg
ICAgICAgICAgIkluc2VydEJhY2t0YWIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgICAgIHsgVktfUkVUVVJOLCAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5l
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZLX1JFVFVSTiwg
Q3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgeyBWS19SRVRVUk4sIEFsdEtleSwgICAgICAgICAgICAgIklu
c2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsg
VktfUkVUVVJOLCBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7IFZLX1JFVFVSTiwgQWx0S2V5IHwgU2hp
ZnRLZXksICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgCisgICAgICAgIC8vIEl0J3Mgbm90IHF1aXRlIGNsZWFyIHdoZXRoZXIgY2xpcGJv
YXJkIHNob3J0Y3V0cyBhbmQgVW5kby9SZWRvIHNob3VsZCBiZSBoYW5kbGVkCisgICAgICAgIC8v
IGluIHRoZSBhcHBsaWNhdGlvbiBvciBpbiBXZWJLaXQuIFdlIGNob3NlIFdlYktpdC4KKyAgICAg
ICAgeyAnQycsICAgICAgIEN0cmxLZXksICAgICAgICAgICAgIkNvcHkiICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgJ1YnLCAgICAgICBDdHJsS2V5
LCAgICAgICAgICAgICJQYXN0ZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgICAgICB7ICdYJywgICAgICAgQ3RybEtleSwgICAgICAgICAgICAiQ3V0IiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyAnQScsICAg
ICAgIEN0cmxLZXksICAgICAgICAgICAgIlNlbGVjdEFsbCIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgIHsgVktfSU5TRVJULCBDdHJsS2V5LCAgICAgICAgICAg
ICJDb3B5IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAg
ICB7IFZLX0RFTEVURSwgU2hpZnRLZXksICAgICAgICAgICAiQ3V0IiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyBWS19JTlNFUlQsIFNoaWZ0S2V5
LCAgICAgICAgICAgIlBhc3RlIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgICAgIHsgJ1onLCAgICAgICBDdHJsS2V5LCAgICAgICAgICAgICJVbmRvIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7ICdaJywgICAg
ICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiUmVkbyIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB9OworICAgIAorICAgIHN0YXRpYyBjb25zdCBLZXlQcmVzc0Vu
dHJ5IGtleVByZXNzRW50cmllc1tdID0geworICAgICAgICB7ICdcdCcsICAgMCwgICAgICAgICAg
ICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgeyAnXHQnLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydEJhY2t0YWIiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgJ1xyJywgICAwLCAgICAg
ICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgICAgICB7ICdccicsICAgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGlu
ZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgeyAnXHInLCAgIEFs
dEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgIHsgJ1xyJywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRO
ZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB7ICdccics
ICAgQWx0S2V5IHwgU2hpZnRLZXksICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB9OworICAgIAorICAgIGNvbnN0IGNoYXIqIFdlYlBhZ2U6Omlu
dGVycHJldEtleUV2ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQqIGV2dCkKKyAgICB7CisgICAgICAg
IEFTU0VSVChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50IHx8IGV2dC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KTsKKyAgICAgICAgCisgICAgICAg
IHN0YXRpYyBIYXNoTWFwPGludCwgY29uc3QgY2hhcio+KiBrZXlEb3duQ29tbWFuZHNNYXAgPSAw
OworICAgICAgICBzdGF0aWMgSGFzaE1hcDxpbnQsIGNvbnN0IGNoYXIqPioga2V5UHJlc3NDb21t
YW5kc01hcCA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAoIWtleURvd25Db21tYW5kc01hcCkg
eworICAgICAgICAgICAga2V5RG93bkNvbW1hbmRzTWFwID0gbmV3IEhhc2hNYXA8aW50LCBjb25z
dCBjaGFyKj47CisgICAgICAgICAgICBrZXlQcmVzc0NvbW1hbmRzTWFwID0gbmV3IEhhc2hNYXA8
aW50LCBjb25zdCBjaGFyKj47CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCAoc2l6ZW9mKGtleURvd25FbnRyaWVzKSAvIHNpemVvZihrZXlEb3duRW50
cmllc1swXSkpOyBpKyspCisgICAgICAgICAgICAgICAga2V5RG93bkNvbW1hbmRzTWFwLT5zZXQo
a2V5RG93bkVudHJpZXNbaV0ubW9kaWZpZXJzIDw8IDE2IHwga2V5RG93bkVudHJpZXNbaV0udmly
dHVhbEtleSwga2V5RG93bkVudHJpZXNbaV0ubmFtZSk7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAoc2l6ZW9mKGtleVByZXNzRW50cmllcykgLyBz
aXplb2Yoa2V5UHJlc3NFbnRyaWVzWzBdKSk7IGkrKykKKyAgICAgICAgICAgICAgICBrZXlQcmVz
c0NvbW1hbmRzTWFwLT5zZXQoa2V5UHJlc3NFbnRyaWVzW2ldLm1vZGlmaWVycyA8PCAxNiB8IGtl
eVByZXNzRW50cmllc1tpXS5jaGFyQ29kZSwga2V5UHJlc3NFbnRyaWVzW2ldLm5hbWUpOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOworICAgICAg
ICBpZiAoZXZ0LT5zaGlmdEtleSgpKQorICAgICAgICAgICAgbW9kaWZpZXJzIHw9IFNoaWZ0S2V5
OworICAgICAgICBpZiAoZXZ0LT5hbHRLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVycyB8PSBB
bHRLZXk7CisgICAgICAgIGlmIChldnQtPmN0cmxLZXkoKSkKKyAgICAgICAgICAgIG1vZGlmaWVy
cyB8PSBDdHJsS2V5OworICAgICAgICAKKyAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5rZXlkb3duRXZlbnQpIHsKKyAgICAgICAgICAgIGludCBtYXBLZXkgPSBtb2RpZmll
cnMgPDwgMTYgfCBldnQtPmtleUV2ZW50KCktPndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpOworICAg
ICAgICAgICAgcmV0dXJuIG1hcEtleSA/IGtleURvd25Db21tYW5kc01hcC0+Z2V0KG1hcEtleSkg
OiAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJz
IDw8IDE2IHwgZXZ0LT5jaGFyQ29kZSgpOworICAgICAgICByZXR1cm4gbWFwS2V5ID8ga2V5UHJl
c3NDb21tYW5kc01hcC0+Z2V0KG1hcEtleSkgOiAwOworICAgIH0KKyAgICAKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60226</attachid>
            <date>2010-07-01 05:32:48 -0700</date>
            <delta_ts>2010-07-01 05:52:42 -0700</delta_ts>
            <desc>RunLoop</desc>
            <filename>qtwebkit2-runloop-2.patch</filename>
            <type>text/plain</type>
            <size>6580</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjI1MikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTAtMDctMDEgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtp
LmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtR
dF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMworICAgICAgICAKKyAgICAgICAgSW1wbGVt
ZW50IFJ1bkxvb3AgZm9yIFF0LiBOb3QgYnVpbGQgeWV0LgorCisgICAgICAgICogUGxhdGZvcm0v
UnVuTG9vcC5oOgorICAgICAgICAqIFBsYXRmb3JtL3F0OiBBZGRlZC4KKyAgICAgICAgKiBQbGF0
Zm9ybS9xdC9SdW5Mb29wUXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyT2Jq
ZWN0OjpUaW1lck9iamVjdCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lck9iamVjdDo6cGVyZm9y
bVdvcmspOgorICAgICAgICAoUnVuTG9vcDo6VGltZXJPYmplY3Q6Ondha2VVcCk6CisgICAgICAg
IChSdW5Mb29wOjpUaW1lck9iamVjdDo6dGltZXJFdmVudCk6CisgICAgICAgIChSdW5Mb29wOjpy
dW4pOgorICAgICAgICAoUnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChSdW5Mb29wOjpSdW5Mb29w
KToKKyAgICAgICAgKFJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAgKFJ1bkxvb3A6Ondha2VV
cCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQpOgorICAgICAgICAo
UnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UpOgorICAgICAgICAoUnVuTG9vcDo6VGltZXJC
YXNlOjp+VGltZXJCYXNlKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQpOgor
ICAgICAgICAoUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKToKKyAgICAgICAgKFJ1bkxvb3A6OlRp
bWVyQmFzZTo6aXNBY3RpdmUpOgorCiAyMDEwLTA2LTMwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJLaXQy
L1BsYXRmb3JtL1J1bkxvb3AuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1BsYXRmb3JtL1J1bkxv
b3AuaAkocmV2aXNpb24gNjIxMjQpCisrKyBXZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00Myw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUnVu
TG9vcCogbWFpbigpOwogCiAgICAgdm9pZCBzY2hlZHVsZVdvcmsoc3RkOjphdXRvX3B0cjxXb3Jr
SXRlbT4pOwotICAgIAorCiAgICAgc3RhdGljIHZvaWQgcnVuKCk7CiAgICAgdm9pZCBzdG9wKCk7
CiAKQEAgLTcyLDcgKzczLDEwIEBAIHB1YmxpYzoKICNlbGlmIFBMQVRGT1JNKE1BQykKICAgICAg
ICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCopOwogICAg
ICAgICBDRlJ1bkxvb3BUaW1lclJlZiBtX3RpbWVyOwotI2VuZGlmICAgIAorI2VsaWYgUExBVEZP
Uk0oUVQpCisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIGludCBJRCk7
CisgICAgICAgIGludCBtX0lEOworI2VuZGlmCiAgICAgfTsKIAogICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBUaW1lckZpcmVkQ2xhc3M+CkBAIC05OSw3ICsxMDMsNyBAQCBwcml2YXRlOgogCiAgICAg
UnVuTG9vcCgpOwogICAgIH5SdW5Mb29wKCk7Ci0gICAgCisKICAgICB2b2lkIHBlcmZvcm1Xb3Jr
KCk7CiAgICAgdm9pZCB3YWtlVXAoKTsKIApAQCAtMTE4LDYgKzEyMiwxMSBAQCBwcml2YXRlOgog
ICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1Xb3JrKHZvaWQqKTsKICAgICBDRlJ1bkxvb3BSZWYgbV9y
dW5Mb29wOwogICAgIENGUnVuTG9vcFNvdXJjZVJlZiBtX3J1bkxvb3BTb3VyY2U7CisjZWxpZiBQ
TEFURk9STShRVCkKKyAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBUaW1lckJhc2UqPiBUaW1lck1h
cDsKKyAgICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsKKyAgICBjbGFzcyBUaW1lck9iamVjdDsK
KyAgICBUaW1lck9iamVjdCogbV90aW1lck9iamVjdDsKICNlbmRpZgogfTsKIApJbmRleDogV2Vi
S2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvUGxh
dGZvcm0vcXQvUnVuTG9vcFF0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvUGxhdGZvcm0v
cXQvUnVuTG9vcFF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSAiV29ya0l0
ZW0uaCIKKworI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRQWJzdHJhY3RFdmVu
dERpc3BhdGNoZXI+CisjaW5jbHVkZSA8UU9iamVjdD4KKyNpbmNsdWRlIDxRTWV0YU1ldGhvZD4K
KyNpbmNsdWRlIDxRTWV0YU9iamVjdD4KKyNpbmNsdWRlIDxRVGltZXJFdmVudD4KKworY2xhc3Mg
UnVuTG9vcDo6VGltZXJPYmplY3QgOiBwdWJsaWMgUU9iamVjdAoreworICAgIFFfT0JKRUNUCitw
dWJsaWM6CisgICAgVGltZXJPYmplY3QoUnVuTG9vcCogcnVuTG9vcCkgOiBtX3J1bkxvb3AocnVu
TG9vcCkKKyAgICB7CisgICAgICAgIGludCBtZXRob2RJbmRleCA9IG1ldGFPYmplY3QoKS0+aW5k
ZXhPZk1ldGhvZCgicGVyZm9ybVdvcmsoKSIpOworICAgICAgICBtX21ldGhvZCA9IG1ldGFPYmpl
Y3QoKS0+bWV0aG9kKG1ldGhvZEluZGV4KTsKKyAgICB9CisKKyAgICBRX1NMT1Qgdm9pZCBwZXJm
b3JtV29yaygpIHsgbV9ydW5Mb29wLT5wZXJmb3JtV29yaygpOyB9CisgICAgaW5saW5lIHZvaWQg
d2FrZVVwKCkgeyBtX21ldGhvZC5pbnZva2UodGhpcywgUXQ6OlF1ZXVlZENvbm5lY3Rpb24pOyB9
CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgdGltZXJFdmVudChRVGltZXJFdmVudCog
ZXZlbnQpCisgICAgeworICAgICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQobV9y
dW5Mb29wLCBldmVudC0+dGltZXJJZCgpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUnVuTG9v
cCogbV9ydW5Mb29wOworICAgIFFNZXRhTWV0aG9kIG1fbWV0aG9kOworfTsKKwordm9pZCBSdW5M
b29wOjpydW4oKQoreworICAgIFFDb3JlQXBwbGljYXRpb246OmV4ZWMoKTsKK30KKwordm9pZCBS
dW5Mb29wOjpzdG9wKCkKK3sKKyAgICAvLyBpbXBsZW1lbnQKK30KKworUnVuTG9vcDo6UnVuTG9v
cCgpCisgICAgOiBtX3RpbWVyT2JqZWN0KG5ldyBUaW1lck9iamVjdCh0aGlzKSkKK3sKK30KKwor
UnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIGRlbGV0ZSBtX3RpbWVyT2JqZWN0OworfQorCit2
b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgbV90aW1lck9iamVjdC0+d2FrZVVwKCk7Cit9
CisKKy8vIFJ1bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZp
cmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIGludCBJRCkKK3sKKyAgICBUaW1lck1hcDo6aXRlcmF0b3Ig
aXQgPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKKyAgICBBU1NFUlQoaXQgIT0g
cnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpOworICAgIFRpbWVyQmFzZSogdGltZXIgPSBp
dC0+c2Vjb25kOworCisgICAgLy8gRklNWEU6IFN1cHBvcnQgcmVwZWF0aW5nIHRpbWVycy4KKyAg
ICB0aW1lci0+c3RvcCgpOworICAgIHRpbWVyLT5maXJlZCgpOworfQorCitSdW5Mb29wOjpUaW1l
ckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxv
b3ApCisgICAgLCBtX0lEKDApCit7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFz
ZSgpCit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQo
ZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGRvdWJsZSAvKnJlcGVhdEludGVydmFsKi8pCit7Cisg
ICAgLy8gRklNWEU6IFN1cHBvcnQgcmVwZWF0aW5nIHRpbWVycy4KKyAgICBzdG9wKCk7CisgICAg
aW50IG1pbGxpcyA9IHN0YXRpY19jYXN0PGludD4obmV4dEZpcmVJbnRlcnZhbCAqIDEwMDApOwor
ICAgIG1fSUQgPSBtX3J1bkxvb3AtPm1fdGltZXJPYmplY3QtPnN0YXJ0VGltZXIobWlsbGlzKTsK
KyAgICBBU1NFUlQobV9JRCk7CisgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5zZXQobV9J
RCwgdGhpcyk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBp
ZiAoIW1fSUQpCisgICAgICAgIHJldHVybjsKKyAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBt
X3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7CisgICAgaWYgKGl0ID09IG1fcnVu
TG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcnVu
TG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICBtX3J1bkxvb3AtPm1fdGltZXJP
YmplY3QtPmtpbGxUaW1lcihtX0lEKTsKKyAgICBtX0lEID0gMDsKK30KKworYm9vbCBSdW5Mb29w
OjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9JRDsKK30KKwor
I2luY2x1ZGUgIlJ1bkxvb3BRdC5tb2MiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60231</attachid>
            <date>2010-07-01 06:05:04 -0700</date>
            <delta_ts>2010-07-01 06:19:37 -0700</delta_ts>
            <desc>WorkQueue</desc>
            <filename>qtwebkit2-workqueue-2.patch</filename>
            <type>text/plain</type>
            <size>5915</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjI1NCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDctMDEgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtp
LmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtR
dF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMworICAgICAgICAKKyAgICAgICAgSW1wbGVt
ZW50IFdvcmtRdWV1ZSBmb3IgUXQuIE5vdCBidWlsdCB5ZXQuCisKKyAgICAgICAgKiBQbGF0Zm9y
bS9Xb3JrUXVldWUuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9xdC9Xb3JrUXVldWVRdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV29ya1F1ZXVlOjpXb3JrSXRlbVF0OjpXb3JrSXRlbVF0KToKKyAgICAg
ICAgKFdvcmtRdWV1ZTo6V29ya0l0ZW1RdDo6fldvcmtJdGVtUXQpOgorICAgICAgICAoV29ya1F1
ZXVlOjpXb3JrSXRlbVF0OjpleGVjdXRlKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6V29ya0l0ZW1R
dDo6dGltZXJFdmVudCk6CisgICAgICAgIChXb3JrUXVldWU6OmNvbm5lY3RTaWduYWwpOgorICAg
ICAgICAoV29ya1F1ZXVlOjpkaXNjb25uZWN0U2lnbmFsKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6
cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6cGxhdGZvcm1JbnZhbGlk
YXRlKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6c2NoZWR1bGVXb3JrKToKKwogMjAxMC0wNy0wMSAg
QW50dGkgS29pdmlzdG8gIDxrb2l2aXN0b0Bpa2kuZmk+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCkluZGV4OiBXZWJLaXQyL1BsYXRmb3JtL1dvcmtR
dWV1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgJKHJldmlz
aW9uIDYyMjUyKQorKysgV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaAkod29ya2luZyBjb3B5
KQpAQCAtMzUsNiArMzUsMTEgQEAKICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogCisjaWYgUExBVEZPUk0oUVQpCitjbGFzcyBRT2JqZWN0OworY2xh
c3MgUVRocmVhZDsKKyNlbmRpZgorCiBjbGFzcyBXb3JrUXVldWUgewogcHVibGljOgogICAgIGV4
cGxpY2l0IFdvcmtRdWV1ZShjb25zdCBjaGFyKiBuYW1lKTsKQEAgLTU5LDYgKzY0LDkgQEAgcHVi
bGljOgogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQgcmVnaXN0ZXJIYW5kbGUoSEFORExF
LCBzdGQ6OmF1dG9fcHRyPFdvcmtJdGVtPik7CiAgICAgdm9pZCB1bnJlZ2lzdGVySGFuZGxlKEhB
TkRMRSk7CisjZWxpZiBQTEFURk9STShRVCkKKyAgICB2b2lkIGNvbm5lY3RTaWduYWwoUU9iamVj
dCogbywgY29uc3QgY2hhciogc2lnbmFsLCBzdGQ6OmF1dG9fcHRyPFdvcmtJdGVtPik7CisgICAg
dm9pZCBkaXNjb25uZWN0U2lnbmFsKFFPYmplY3QqIG8sIGNvbnN0IGNoYXIqIHNpZ25hKTsKICNl
bmRpZgogCiBwcml2YXRlOgpAQCAtOTAsNiArOTgsMTEgQEAgcHJpdmF0ZToKIAogICAgIE11dGV4
IG1faGFuZGxlc0xvY2s7CiAgICAgSGFzaE1hcDxIQU5ETEUsIFdvcmtJdGVtKj4gbV9oYW5kbGVz
OworI2VsaWYgUExBVEZPUk0oUVQpCisgICAgY2xhc3MgV29ya0l0ZW1RdDsKKyAgICBIYXNoTWFw
PFFPYmplY3QqLCBXb3JrSXRlbVF0Kj4gbV9zaWduYWxMaXN0ZW5lcnM7CisgICAgUVRocmVhZCog
bV93b3JrVGhyZWFkOworICAgIGZyaWVuZCBjbGFzcyBXb3JrSXRlbVF0OwogI2VuZGlmCiB9Owog
CkluZGV4OiBXZWJLaXQyL1BsYXRmb3JtL3F0L1dvcmtRdWV1ZVF0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1BsYXRmb3JtL3F0L1dvcmtRdWV1ZVF0LmNwcAkocmV2aXNpb24gMCkKKysrIFdl
YktpdDIvUGxhdGZvcm0vcXQvV29ya1F1ZXVlUXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDExOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXb3JrUXVldWUuaCIK
KworI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworI2luY2x1ZGUgPFFPYmplY3Q+CisjaW5j
bHVkZSA8UVRocmVhZD4KKworY2xhc3MgV29ya1F1ZXVlOjpXb3JrSXRlbVF0IDogcHVibGljIFFP
YmplY3QKK3sKKyAgICBRX09CSkVDVAorcHVibGljOgorICAgIFdvcmtJdGVtUXQoV29ya1F1ZXVl
KiB3b3JrUXVldWUsIFdvcmtJdGVtKiB3b3JrSXRlbSkKKyAgICAgICAgOiBtX3F1ZXVlKHdvcmtR
dWV1ZSkKKyAgICAgICAgLCBtX3NvdXJjZSgwKQorICAgICAgICAsIG1fc2lnbmFsKDApCisgICAg
ICAgICwgbV93b3JrSXRlbSh3b3JrSXRlbSkKKyAgICB7CisgICAgfQorCisgICAgV29ya0l0ZW1R
dChXb3JrUXVldWUqIHdvcmtRdWV1ZSwgUU9iamVjdCogc291cmNlLCBjb25zdCBjaGFyKiBzaWdu
YWwsIFdvcmtJdGVtKiB3b3JrSXRlbSkKKyAgICAgICAgOiBtX3F1ZXVlKHdvcmtRdWV1ZSkKKyAg
ICAgICAgLCBtX3NvdXJjZShzb3VyY2UpCisgICAgICAgICwgbV9zaWduYWwoc2lnbmFsKQorICAg
ICAgICAsIG1fd29ya0l0ZW0od29ya0l0ZW0pCisgICAgeworICAgICAgICBjb25uZWN0KG1fc291
cmNlLCBtX3NpZ25hbCwgU0xPVChleGVjdXRlKCkpLCBRdDo6UXVldWVkQ29ubmVjdGlvbik7Cisg
ICAgfQorCisgICAgfldvcmtJdGVtUXQoKQorICAgIHsKKyAgICAgICAgZGVsZXRlIG1fd29ya0l0
ZW07CisgICAgfQorCisgICAgUV9TTE9UIHZvaWQgZXhlY3V0ZSgpIAorICAgIHsgCisgICAgICAg
IGlmIChtX3F1ZXVlLT5tX2lzVmFsaWQpCisgICAgICAgICAgICBtX3dvcmtJdGVtLT5leGVjdXRl
KCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHRpbWVyRXZlbnQoUVRpbWVyRXZlbnQqKQor
ICAgIHsKKyAgICAgICAgZXhlY3V0ZSgpOyAKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQor
CisgICAgV29ya1F1ZXVlKiBtX3F1ZXVlOworICAgIFFPYmplY3QqIG1fc291cmNlOworICAgIGNv
bnN0IGNoYXIqIG1fc2lnbmFsOworICAgIFdvcmtJdGVtKiBtX3dvcmtJdGVtOworfTsKKwordm9p
ZCBXb3JrUXVldWU6OmNvbm5lY3RTaWduYWwoUU9iamVjdCogbywgY29uc3QgY2hhciogc2lnbmFs
LCBzdGQ6OmF1dG9fcHRyPFdvcmtJdGVtPiB3b3JrSXRlbSkKK3sKKyAgICBXb3JrUXVldWU6Oldv
cmtJdGVtUXQqIGl0ZW1RdCA9IG5ldyBXb3JrUXVldWU6OldvcmtJdGVtUXQodGhpcywgbywgc2ln
bmFsLCB3b3JrSXRlbS5yZWxlYXNlKCkpOworICAgIGl0ZW1RdC0+bW92ZVRvVGhyZWFkKG1fd29y
a1RocmVhZCk7CisgICAgbV9zaWduYWxMaXN0ZW5lcnMuYWRkKG8sIGl0ZW1RdCk7Cit9CisKK3Zv
aWQgV29ya1F1ZXVlOjpkaXNjb25uZWN0U2lnbmFsKFFPYmplY3QqIG8sIGNvbnN0IGNoYXIqIG5h
bWUpCit7CisgICAgSGFzaE1hcDxRT2JqZWN0KiwgV29ya0l0ZW1RdCo+OjppdGVyYXRvciBpdCA9
IG1fc2lnbmFsTGlzdGVuZXJzLmZpbmQobyk7CisgICAgZm9yICg7IGl0ICE9IG1fc2lnbmFsTGlz
dGVuZXJzLmVuZCgpOyArK2l0KSB7CisgICAgICAgIGlmIChzdHJjbXAoaXQtPnNlY29uZC0+bV9z
aWduYWwsIG5hbWUpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGRlbGV0ZSBpdC0+
c2Vjb25kOworICAgICAgICBtX3NpZ25hbExpc3RlbmVycy5yZW1vdmUoaXQpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorfQorCit2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNv
bnN0IGNoYXIqKQoreworICAgIG1fd29ya1RocmVhZCA9IG5ldyBRVGhyZWFkKCk7CisgICAgbV93
b3JrVGhyZWFkLT5zdGFydCgpOworfQorCit2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1JbnZhbGlk
YXRlKCkKK3sKKyAgICBtX3dvcmtUaHJlYWQtPmV4aXQoKTsKKyAgICBtX3dvcmtUaHJlYWQtPndh
aXQoKTsKKyAgICBkZWxldGUgbV93b3JrVGhyZWFkOworICAgIGRlbGV0ZUFsbFZhbHVlcyhtX3Np
Z25hbExpc3RlbmVycyk7Cit9CisKK3ZvaWQgV29ya1F1ZXVlOjpzY2hlZHVsZVdvcmsoc3RkOjph
dXRvX3B0cjxXb3JrSXRlbT4gaXRlbSkKK3sKKyAgICBXb3JrUXVldWU6OldvcmtJdGVtUXQqIGl0
ZW1RdCA9IG5ldyBXb3JrUXVldWU6OldvcmtJdGVtUXQodGhpcywgaXRlbS5yZWxlYXNlKCkpOwor
ICAgIGl0ZW1RdC0+c3RhcnRUaW1lcigwKTsKKyAgICBpdGVtUXQtPm1vdmVUb1RocmVhZChtX3dv
cmtUaHJlYWQpOworfQorCisjaW5jbHVkZSAiV29ya1F1ZXVlUXQubW9jIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60233</attachid>
            <date>2010-07-01 06:06:35 -0700</date>
            <delta_ts>2010-07-02 03:16:17 -0700</delta_ts>
            <desc>EventFactory</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>11714</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBjMDczMzA2ZjMyZmNiNmRiNjViNGVmY2MzNjBlN2IzZjg5YTY0ODNlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDEwOjA0OjI5
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgb3VyIGV2ZW50IGZhY3RvcnkgZm9yIGNvbnZlcnRp
bmcgUXQgZXZlbnRzIHRvIHNvbWV0aGluZyBXZWJLaXQyCnVuZGVyc3RhbmRzLgoKKiBTaGFyZWQv
cXQvV2ViRXZlbnRGYWN0b3J5LmNwcDogQWRkZWQuCihXZWJLaXQ6Om1vdXNlQnV0dG9uRm9yRXZl
bnQpOgooV2ViS2l0Ojp3ZWJFdmVudFR5cGVGb3JFdmVudCk6CihXZWJLaXQ6Om1vZGlmaWVyc0Zv
ckV2ZW50KToKKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KToK
KFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KToKKFdlYktpdDo6
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KToKKiBTaGFyZWQvcXQvV2Vi
RXZlbnRGYWN0b3J5Lmg6IEFkZGVkLgotLS0KIFdlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgfCAgIDE5ICsrKysKIFdlYktpdDIvU2hhcmVkL3F0L1dlYkV2ZW50RmFjdG9yeS5j
cHAgfCAgMTYxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogV2ViS2l0Mi9TaGFy
ZWQvcXQvV2ViRXZlbnRGYWN0b3J5LmggICB8ICAgNDcgKysrKysrKysrKwogMyBmaWxlcyBjaGFu
Z2VkLCAyMjcgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBXZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnkuY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5LmgKCmRpZmYgLS1naXQgYS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU0MGMyM2EuLjcyN2JkYmMg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDctMDEgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8
a2VubmV0aC5jaHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEluaXRpYWwgV2ViS2l0MiBpbXBsZW1l
bnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDAyMzMKKworICAgICAgICBBZGQgb3VyIGV2ZW50IGZhY3RvcnkgZm9yIGNvbnZlcnRpbmcgUXQg
ZXZlbnRzIHRvIHNvbWV0aGluZyBXZWJLaXQyCisgICAgICAgIHVuZGVyc3RhbmRzLgorCisgICAg
ICAgICogU2hhcmVkL3F0L1dlYkV2ZW50RmFjdG9yeS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0Ojptb3VzZUJ1dHRvbkZvckV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6d2ViRXZlbnRUeXBl
Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojptb2RpZmllcnNGb3JFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCk6CisgICAg
ICAgICogU2hhcmVkL3F0L1dlYkV2ZW50RmFjdG9yeS5oOiBBZGRlZC4KKwogMjAxMC0wNi0yOCAg
Sm9obiBHcmVnZyAgPGpvaG5ueWdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBi
dWlsZCBmaXggKHJlbW92aW5nIG1lcmdlIGNvbmZsaWN0IGZyb20gcHJldmlvdXMpLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5LmNwcCBiL1dlYktpdDIvU2hh
cmVkL3F0L1dlYkV2ZW50RmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMjc5ZjM5ZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvU2hhcmVkL3F0L1dlYkV2
ZW50RmFjdG9yeS5jcHAKQEAgLTAsMCArMSwxNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKKyNpbmNsdWRlIDxxZ3JhcGhpY3NzY2Vu
ZWV2ZW50Lmg+CisjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgorI2luY2x1ZGUgPFFLZXlFdmVudD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPHd0
Zi9BU0NJSUNUeXBlLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIFdlYk1vdXNl
RXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVu
dCAqZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT5idXR0b24oKSA9PSBRdDo6TGVmdEJ1dHRvbiB8
fCAoZXZlbnQtPmJ1dHRvbnMoKSAmIFF0OjpMZWZ0QnV0dG9uKSkKKyAgICAgICAgcmV0dXJuIFdl
Yk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247CisgICAgZWxzZSBpZiAoZXZlbnQtPmJ1dHRvbigpID09
IFF0OjpSaWdodEJ1dHRvbiB8fCAoZXZlbnQtPmJ1dHRvbnMoKSAmIFF0OjpSaWdodEJ1dHRvbikp
CisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjsKKyAgICBlbHNlIGlm
IChldmVudC0+YnV0dG9uKCkgPT0gUXQ6Ok1pZEJ1dHRvbiB8fCAoZXZlbnQtPmJ1dHRvbnMoKSAm
IFF0OjpNaWRCdXR0b24pKQorICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TWlkZGxlQnV0
dG9uOworICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsKK30KKworc3RhdGljIFdl
YkV2ZW50OjpUeXBlIHdlYkV2ZW50VHlwZUZvckV2ZW50KFFFdmVudCogZXZlbnQpCit7CisgICAg
c3dpdGNoIChldmVudC0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgUUV2ZW50OjpHcmFwaGljc1Nj
ZW5lTW91c2VEb3VibGVDbGljazoKKyAgICAgICAgY2FzZSBRRXZlbnQ6OkdyYXBoaWNzU2NlbmVN
b3VzZVByZXNzOgorICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZURvd247CisgICAg
ICAgIGNhc2UgUUV2ZW50OjpHcmFwaGljc1NjZW5lTW91c2VSZWxlYXNlOgorICAgICAgICAgICAg
cmV0dXJuIFdlYkV2ZW50OjpNb3VzZVVwOworICAgICAgICBjYXNlIFFFdmVudDo6R3JhcGhpY3NT
Y2VuZU1vdXNlTW92ZToKKyAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOwor
ICAgICAgICBjYXNlIFFFdmVudDo6V2hlZWw6CisgICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6
OldoZWVsOworICAgICAgICBjYXNlIFFFdmVudDo6S2V5UHJlc3M6CisgICAgICAgICAgICByZXR1
cm4gV2ViRXZlbnQ6OktleURvd247CisgICAgICAgIGNhc2UgUUV2ZW50OjpLZXlSZWxlYXNlOgor
ICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpLZXlVcDsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIC8vIGFzc2VydAorICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1v
dmU7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZp
ZXJzRm9yRXZlbnQoUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1vZGlmaWVycykKK3sKKyAgICB1bnNp
Z25lZCByZXN1bHQgPSAwOworICAgIGlmIChtb2RpZmllcnMgJiBRdDo6U2hpZnRNb2RpZmllcikK
KyAgICAgICAgcmVzdWx0IHw9IFdlYkV2ZW50OjpTaGlmdEtleTsKKyAgICBpZiAobW9kaWZpZXJz
ICYgUXQ6OkNvbnRyb2xNb2RpZmllcikKKyAgICAgICAgcmVzdWx0IHw9IFdlYkV2ZW50OjpDb250
cm9sS2V5OworICAgIGlmIChtb2RpZmllcnMgJiBRdDo6QWx0TW9kaWZpZXIpCisgICAgICAgIHJl
c3VsdCB8PSBXZWJFdmVudDo6QWx0S2V5OworICAgIGlmIChtb2RpZmllcnMgJiBRdDo6TWV0YU1v
ZGlmaWVyKQorICAgICAgICByZXN1bHQgfD0gV2ViRXZlbnQ6Ok1ldGFLZXk7CisgICAgcmV0dXJu
IChXZWJFdmVudDo6TW9kaWZpZXJzKXJlc3VsdDsKK30KKworV2ViTW91c2VFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBl
dmVudCwgaW50IGV2ZW50Q2xpY2tDb3VudCkKK3sKKyAgICBJbnRQb2ludCBwb3NpdGlvbihldmVu
dC0+cG9zKCkudG9Qb2ludCgpKTsKKyAgICBJbnRQb2ludCBnbG9iYWxQb3NpdGlvbihldmVudC0+
c2NyZWVuUG9zKCkpOworCisgICAgV2ViRXZlbnQ6OlR5cGUgdHlwZSAgICAgICAgICAgICA9IHdl
YkV2ZW50VHlwZUZvckV2ZW50KGV2ZW50KTsKKyAgICBXZWJNb3VzZUV2ZW50OjpCdXR0b24gYnV0
dG9uICAgID0gbW91c2VCdXR0b25Gb3JFdmVudChldmVudCk7CisgICAgaW50IHBvc2l0aW9uWCAg
ICAgICAgICAgICAgICAgICA9IHBvc2l0aW9uLngoKTsKKyAgICBpbnQgcG9zaXRpb25ZICAgICAg
ICAgICAgICAgICAgID0gcG9zaXRpb24ueSgpOworICAgIGludCBnbG9iYWxQb3NpdGlvblggICAg
ICAgICAgICAgPSBnbG9iYWxQb3NpdGlvbi54KCk7CisgICAgaW50IGdsb2JhbFBvc2l0aW9uWSAg
ICAgICAgICAgICA9IGdsb2JhbFBvc2l0aW9uLnkoKTsKKyAgICBpbnQgY2xpY2tDb3VudCAgICAg
ICAgICAgICAgICAgID0gZXZlbnRDbGlja0NvdW50OworICAgIFdlYkV2ZW50OjpNb2RpZmllcnMg
bW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudC0+bW9kaWZpZXJzKCkpOworICAg
IGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CisK
KyAgICByZXR1cm4gV2ViTW91c2VFdmVudCh0eXBlLCBidXR0b24sIHBvc2l0aW9uWCwgcG9zaXRp
b25ZLCBnbG9iYWxQb3NpdGlvblgsIGdsb2JhbFBvc2l0aW9uWSwgY2xpY2tDb3VudCwgbW9kaWZp
ZXJzLCB0aW1lc3RhbXApOworfQorCitXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViV2hlZWxFdmVudChRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQqIGUpCit7CisgICAgaW50
IHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZS0+cG9zKCkueCgpOworICAg
IGludCB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGUtPnBvcygpLnkoKTsK
KyAgICBpbnQgZ2xvYmFsWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBlLT5zY3JlZW5Q
b3MoKS54KCk7CisgICAgaW50IGdsb2JhbFkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
ZS0+c2NyZWVuUG9zKCkueSgpOworICAgIGZsb2F0IGRlbHRhWCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDA7CisgICAgZmxvYXQgZGVsdGFZICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMDsKKyAgICBmbG9hdCB3aGVlbFRpY2tzWCAgICAgICAgICAgICAgICAgICAgICAgPSAwOwor
ICAgIGZsb2F0IHdoZWVsVGlja3NZICAgICAgICAgICAgICAgICAgICAgICA9IDA7CisgICAgV2Vi
V2hlZWxFdmVudDo6R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgID0gV2ViV2hlZWxFdmVudDo6U2Ny
b2xsQnlQaXhlbFdoZWVsRXZlbnQ7CisgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMg
ICAgICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZS0+bW9kaWZpZXJzKCkpOworICAgIGRvdWJs
ZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICA9IFdURjo6Y3VycmVudFRpbWUoKTsK
KworICAgIC8vIEEgZGVsdGEgdGhhdCBpcyBub3QgbW9kIDEyMCBpbmRpY2F0ZXMgYSBkZXZpY2Ug
dGhhdCBpcyBzZW5kaW5nCisgICAgLy8gZmluZS1yZXNvbHV0aW9uIHNjcm9sbCBldmVudHMsIHNv
IHVzZSB0aGUgZGVsdGEgYXMgbnVtYmVyIG9mIHdoZWVsIHRpY2tzCisgICAgLy8gYW5kIG51bWJl
ciBvZiBwaXhlbHMgdG8gc2Nyb2xsLlNlZSBhbHNvIHdlYmtpdC5vcmcvYi8yOTYwMQorICAgIGJv
b2wgZnVsbFRpY2sgPSAhKGUtPmRlbHRhKCkgJSAxMjApOworCisgICAgaWYgKGUtPm9yaWVudGF0
aW9uKCkgPT0gUXQ6Okhvcml6b250YWwpIHsKKyAgICAgICAgZGVsdGFYID0gKGZ1bGxUaWNrKSA/
IGUtPmRlbHRhKCkgLyAxMjAuMGYgOiBlLT5kZWx0YSgpOworICAgICAgICB3aGVlbFRpY2tzWCA9
IGRlbHRhWDsKKyAgICB9IGVsc2UgeworICAgICAgICBkZWx0YVkgPSAoZnVsbFRpY2spID8gZS0+
ZGVsdGEoKSAvIDEyMC4wZiA6IGUtPmRlbHRhKCk7CisgICAgICAgIHdoZWVsVGlja3NZID0gZGVs
dGFZOworICAgIH0KKworICAgIC8vIFVzZSB0aGUgc2FtZSBzaW5nbGUgc2Nyb2xsIHN0ZXAgYXMg
UVRleHRFZGl0CisgICAgLy8gKGluIFFUZXh0RWRpdFByaXZhdGU6OmluaXQgW2gsdl1iYXItPnNl
dFNpbmdsZVN0ZXApCisgICAgc3RhdGljIGNvbnN0IGZsb2F0IGNEZWZhdWx0UXRTY3JvbGxTdGVw
ID0gMjAuZjsKKyNpZm5kZWYgUVRfTk9fV0hFRUxFVkVOVAorICAgIGRlbHRhWCAqPSAoZnVsbFRp
Y2spID8gUUFwcGxpY2F0aW9uOjp3aGVlbFNjcm9sbExpbmVzKCkgKiBjRGVmYXVsdFF0U2Nyb2xs
U3RlcCA6IDE7CisgICAgZGVsdGFZICo9IChmdWxsVGljaykgPyBRQXBwbGljYXRpb246OndoZWVs
U2Nyb2xsTGluZXMoKSAqIGNEZWZhdWx0UXRTY3JvbGxTdGVwIDogMTsKKyNlbmRpZgorCisgICAg
cmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCB4LCB5LCBnbG9iYWxYLCAgZ2xv
YmFsWSwgZGVsdGFYLCBkZWx0YVksIHdoZWVsVGlja3NYLCB3aGVlbFRpY2tzWSwgZ3JhbnVsYXJp
dHksIG1vZGlmaWVycywgdGltZXN0YW1wKTsKK30KKworV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoUUtleUV2ZW50KiBldmVudCkKK3sKKyAg
ICBjb25zdCBpbnQgc3RhdGUgICAgICAgICAgICAgICAgID0gZXZlbnQtPm1vZGlmaWVycygpOwor
ICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgICAgICAgICAgICAgPSB3ZWJFdmVudFR5cGVGb3JFdmVu
dChldmVudCk7CisgICAgY29uc3QgU3RyaW5nIHRleHQgICAgICAgICAgICAgICA9IGV2ZW50LT50
ZXh0KCk7CisgICAgY29uc3QgU3RyaW5nIHVubW9kaWZpZWRUZXh0ICAgICA9IGV2ZW50LT50ZXh0
KCk7CisgICAgYm9vbCBpc0F1dG9SZXBlYXQgICAgICAgICAgICAgICA9IGV2ZW50LT5pc0F1dG9S
ZXBlYXQoKTsKKyAgICBib29sIGlzU3lzdGVtS2V5ICAgICAgICAgICAgICAgID0gZmFsc2U7IC8v
IEZJWE1FOiBObyBpZGVhIHdoYXQgdGhhdCBpcy4KKyAgICBib29sIGlzS2V5cGFkICAgICAgICAg
ICAgICAgICAgID0gKHN0YXRlICYgUXQ6OktleXBhZE1vZGlmaWVyKTsKKyAgICBjb25zdCBTdHJp
bmcga2V5SWRlbnRpZmllciAgICAgID0ga2V5SWRlbnRpZmllckZvclF0S2V5Q29kZShldmVudC0+
a2V5KCkpOworICAgIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUgICAgICAgPSB3aW5kb3dzS2V5
Q29kZUZvcktleUV2ZW50KGV2ZW50LT5rZXkoKSwgaXNLZXlwYWQpOworICAgIGludCAgbmF0aXZl
VmlydHVhbEtleUNvZGUgICAgICAgPSBldmVudC0+bmF0aXZlVmlydHVhbEtleSgpOworICAgIFdl
YkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudC0+
bW9kaWZpZXJzKCkpOworICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgPSBXVEY6
OmN1cnJlbnRUaW1lKCk7CisKKyAgICByZXR1cm4gV2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0ZXh0
LCB1bm1vZGlmaWVkVGV4dCwga2V5SWRlbnRpZmllciwgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBu
YXRpdmVWaXJ0dWFsS2V5Q29kZSwgaXNBdXRvUmVwZWF0LCBpc0tleXBhZCwgaXNTeXN0ZW1LZXks
IG1vZGlmaWVycywgdGltZXN0YW1wKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9XZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnkuaCBiL1dlYktpdDIvU2hh
cmVkL3F0L1dlYkV2ZW50RmFjdG9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmJmOWMzOGIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVu
dEZhY3RvcnkuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXZWJFdmVudEZhY3RvcnlfaAorI2RlZmluZSBXZWJFdmVudEZhY3RvcnlfaAorCisjaW5j
bHVkZSAiV2ViRXZlbnQuaCIKKworY2xhc3MgUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50OworY2xh
c3MgUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50OworY2xhc3MgUUtleUV2ZW50OworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRXZlbnRGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgV2ViTW91c2VFdmVudCBjcmVhdGVXZWJNb3VzZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VF
dmVudCogZXZlbnQsIGludCBldmVudENsaWNrQ291bnQpOworICAgIHN0YXRpYyBXZWJXaGVlbEV2
ZW50IGNyZWF0ZVdlYldoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBldmVudCk7
CisgICAgc3RhdGljIFdlYktleWJvYXJkRXZlbnQgY3JlYXRlV2ViS2V5Ym9hcmRFdmVudChRS2V5
RXZlbnQqIGV2ZW50KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
V2ViRXZlbnRGYWN0b3J5X2gKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60234</attachid>
            <date>2010-07-01 06:30:31 -0700</date>
            <delta_ts>2010-07-01 09:04:58 -0700</delta_ts>
            <desc>Patch (EventFactory) for landing</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>11741</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA0YjBmOTQ0ODUzMTRhMmRmMjk4ZDE4M2MxZTVjN2E0NmRhZjU4YjgyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDEwOjA0OjI5
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpBZGQgb3VyIGV2ZW50IGZhY3RvcnkgZm9yIGNvbnZlcnRp
bmcgUXQgZXZlbnRzIHRvIHNvbWV0aGluZyBXZWJLaXQyCnVuZGVyc3RhbmRzLgoKKiBTaGFyZWQv
cXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwOiBBZGRlZC4KKFdlYktpdDo6bW91c2VCdXR0b25Gb3JF
dmVudCk6CihXZWJLaXQ6OndlYkV2ZW50VHlwZUZvckV2ZW50KToKKFdlYktpdDo6bW9kaWZpZXJz
Rm9yRXZlbnQpOgooV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQp
OgooV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQpOgooV2ViS2l0
OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgoqIFNoYXJlZC9xdC9X
ZWJFdmVudEZhY3RvcnlRdC5oOiBBZGRlZC4KLS0tCiBXZWJLaXQyL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE5ICsrKysKIFdlYktpdDIvU2hhcmVkL3F0L1dlYkV2ZW50RmFj
dG9yeVF0LmNwcCB8ICAxNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogV2ViS2l0
Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaCAgIHwgICA0NyArKysrKysrKysKIDMgZmls
ZXMgY2hhbmdlZCwgMjI3IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaAoKZGlmZiAt
LWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTQwYzIz
YS4uODE1NDNiOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNy0wMSAgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4gIDxrZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJL
aXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDIzMworCisgICAgICAgIEFkZCBvdXIgZXZlbnQgZmFjdG9yeSBmb3IgY29u
dmVydGluZyBRdCBldmVudHMgdG8gc29tZXRoaW5nIFdlYktpdDIKKyAgICAgICAgdW5kZXJzdGFu
ZHMuCisKKyAgICAgICAgKiBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OndlYkV2ZW50VHlwZUZvckV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6bW9kaWZpZXJzRm9yRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJk
RXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5oOiBBZGRlZC4K
KwogMjAxMC0wNi0yOCAgSm9obiBHcmVnZyAgPGpvaG5ueWdAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCBidWlsZCBmaXggKHJlbW92aW5nIG1lcmdlIGNvbmZsaWN0IGZyb20gcHJl
dmlvdXMpLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQu
Y3BwIGIvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OWYzOWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQyL1NoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5jcHAKQEAgLTAsMCArMSwxNjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKKyNp
bmNsdWRlIDxxZ3JhcGhpY3NzY2VuZWV2ZW50Lmg+CisjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgor
I2luY2x1ZGUgPFFLZXlFdmVudD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRF
dmVudC5oPgorI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KFFH
cmFwaGljc1NjZW5lTW91c2VFdmVudCAqZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT5idXR0b24o
KSA9PSBRdDo6TGVmdEJ1dHRvbiB8fCAoZXZlbnQtPmJ1dHRvbnMoKSAmIFF0OjpMZWZ0QnV0dG9u
KSkKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247CisgICAgZWxzZSBp
ZiAoZXZlbnQtPmJ1dHRvbigpID09IFF0OjpSaWdodEJ1dHRvbiB8fCAoZXZlbnQtPmJ1dHRvbnMo
KSAmIFF0OjpSaWdodEJ1dHRvbikpCisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpSaWdo
dEJ1dHRvbjsKKyAgICBlbHNlIGlmIChldmVudC0+YnV0dG9uKCkgPT0gUXQ6Ok1pZEJ1dHRvbiB8
fCAoZXZlbnQtPmJ1dHRvbnMoKSAmIFF0OjpNaWRCdXR0b24pKQorICAgICAgICByZXR1cm4gV2Vi
TW91c2VFdmVudDo6TWlkZGxlQnV0dG9uOworICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpOb0J1
dHRvbjsKK30KKworc3RhdGljIFdlYkV2ZW50OjpUeXBlIHdlYkV2ZW50VHlwZUZvckV2ZW50KFFF
dmVudCogZXZlbnQpCit7CisgICAgc3dpdGNoIChldmVudC0+dHlwZSgpKSB7CisgICAgICAgIGNh
c2UgUUV2ZW50OjpHcmFwaGljc1NjZW5lTW91c2VEb3VibGVDbGljazoKKyAgICAgICAgY2FzZSBR
RXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3VzZVByZXNzOgorICAgICAgICAgICAgcmV0dXJuIFdlYkV2
ZW50OjpNb3VzZURvd247CisgICAgICAgIGNhc2UgUUV2ZW50OjpHcmFwaGljc1NjZW5lTW91c2VS
ZWxlYXNlOgorICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZVVwOworICAgICAgICBj
YXNlIFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlTW92ZToKKyAgICAgICAgICAgIHJldHVybiBX
ZWJFdmVudDo6TW91c2VNb3ZlOworICAgICAgICBjYXNlIFFFdmVudDo6V2hlZWw6CisgICAgICAg
ICAgICByZXR1cm4gV2ViRXZlbnQ6OldoZWVsOworICAgICAgICBjYXNlIFFFdmVudDo6S2V5UHJl
c3M6CisgICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6OktleURvd247CisgICAgICAgIGNhc2Ug
UUV2ZW50OjpLZXlSZWxlYXNlOgorICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpLZXlVcDsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIGFzc2VydAorICAgICAgICAgICAgcmV0
dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIFdlYkV2
ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1v
ZGlmaWVycykKK3sKKyAgICB1bnNpZ25lZCByZXN1bHQgPSAwOworICAgIGlmIChtb2RpZmllcnMg
JiBRdDo6U2hpZnRNb2RpZmllcikKKyAgICAgICAgcmVzdWx0IHw9IFdlYkV2ZW50OjpTaGlmdEtl
eTsKKyAgICBpZiAobW9kaWZpZXJzICYgUXQ6OkNvbnRyb2xNb2RpZmllcikKKyAgICAgICAgcmVz
dWx0IHw9IFdlYkV2ZW50OjpDb250cm9sS2V5OworICAgIGlmIChtb2RpZmllcnMgJiBRdDo6QWx0
TW9kaWZpZXIpCisgICAgICAgIHJlc3VsdCB8PSBXZWJFdmVudDo6QWx0S2V5OworICAgIGlmICht
b2RpZmllcnMgJiBRdDo6TWV0YU1vZGlmaWVyKQorICAgICAgICByZXN1bHQgfD0gV2ViRXZlbnQ6
Ok1ldGFLZXk7CisgICAgcmV0dXJuIChXZWJFdmVudDo6TW9kaWZpZXJzKXJlc3VsdDsKK30KKwor
V2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoUUdyYXBo
aWNzU2NlbmVNb3VzZUV2ZW50KiBldmVudCwgaW50IGV2ZW50Q2xpY2tDb3VudCkKK3sKKyAgICBJ
bnRQb2ludCBwb3NpdGlvbihldmVudC0+cG9zKCkudG9Qb2ludCgpKTsKKyAgICBJbnRQb2ludCBn
bG9iYWxQb3NpdGlvbihldmVudC0+c2NyZWVuUG9zKCkpOworCisgICAgV2ViRXZlbnQ6OlR5cGUg
dHlwZSAgICAgICAgICAgICA9IHdlYkV2ZW50VHlwZUZvckV2ZW50KGV2ZW50KTsKKyAgICBXZWJN
b3VzZUV2ZW50OjpCdXR0b24gYnV0dG9uICAgID0gbW91c2VCdXR0b25Gb3JFdmVudChldmVudCk7
CisgICAgaW50IHBvc2l0aW9uWCAgICAgICAgICAgICAgICAgICA9IHBvc2l0aW9uLngoKTsKKyAg
ICBpbnQgcG9zaXRpb25ZICAgICAgICAgICAgICAgICAgID0gcG9zaXRpb24ueSgpOworICAgIGlu
dCBnbG9iYWxQb3NpdGlvblggICAgICAgICAgICAgPSBnbG9iYWxQb3NpdGlvbi54KCk7CisgICAg
aW50IGdsb2JhbFBvc2l0aW9uWSAgICAgICAgICAgICA9IGdsb2JhbFBvc2l0aW9uLnkoKTsKKyAg
ICBpbnQgY2xpY2tDb3VudCAgICAgICAgICAgICAgICAgID0gZXZlbnRDbGlja0NvdW50OworICAg
IFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVu
dC0+bW9kaWZpZXJzKCkpOworICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgPSBX
VEY6OmN1cnJlbnRUaW1lKCk7CisKKyAgICByZXR1cm4gV2ViTW91c2VFdmVudCh0eXBlLCBidXR0
b24sIHBvc2l0aW9uWCwgcG9zaXRpb25ZLCBnbG9iYWxQb3NpdGlvblgsIGdsb2JhbFBvc2l0aW9u
WSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lc3RhbXApOworfQorCitXZWJXaGVlbEV2ZW50
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChRR3JhcGhpY3NTY2VuZVdoZWVs
RXZlbnQqIGUpCit7CisgICAgaW50IHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gZS0+cG9zKCkueCgpOworICAgIGludCB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IGUtPnBvcygpLnkoKTsKKyAgICBpbnQgZ2xvYmFsWCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSBlLT5zY3JlZW5Qb3MoKS54KCk7CisgICAgaW50IGdsb2JhbFkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gZS0+c2NyZWVuUG9zKCkueSgpOworICAgIGZsb2F0IGRlbHRh
WCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDA7CisgICAgZmxvYXQgZGVsdGFZICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMDsKKyAgICBmbG9hdCB3aGVlbFRpY2tzWCAgICAgICAg
ICAgICAgICAgICAgICAgPSAwOworICAgIGZsb2F0IHdoZWVsVGlja3NZICAgICAgICAgICAgICAg
ICAgICAgICA9IDA7CisgICAgV2ViV2hlZWxFdmVudDo6R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkg
ID0gV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQ7CisgICAgV2ViRXZlbnQ6
Ok1vZGlmaWVycyBtb2RpZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZS0+bW9k
aWZpZXJzKCkpOworICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICA9
IFdURjo6Y3VycmVudFRpbWUoKTsKKworICAgIC8vIEEgZGVsdGEgdGhhdCBpcyBub3QgbW9kIDEy
MCBpbmRpY2F0ZXMgYSBkZXZpY2UgdGhhdCBpcyBzZW5kaW5nCisgICAgLy8gZmluZS1yZXNvbHV0
aW9uIHNjcm9sbCBldmVudHMsIHNvIHVzZSB0aGUgZGVsdGEgYXMgbnVtYmVyIG9mIHdoZWVsIHRp
Y2tzCisgICAgLy8gYW5kIG51bWJlciBvZiBwaXhlbHMgdG8gc2Nyb2xsLlNlZSBhbHNvIHdlYmtp
dC5vcmcvYi8yOTYwMQorICAgIGJvb2wgZnVsbFRpY2sgPSAhKGUtPmRlbHRhKCkgJSAxMjApOwor
CisgICAgaWYgKGUtPm9yaWVudGF0aW9uKCkgPT0gUXQ6Okhvcml6b250YWwpIHsKKyAgICAgICAg
ZGVsdGFYID0gKGZ1bGxUaWNrKSA/IGUtPmRlbHRhKCkgLyAxMjAuMGYgOiBlLT5kZWx0YSgpOwor
ICAgICAgICB3aGVlbFRpY2tzWCA9IGRlbHRhWDsKKyAgICB9IGVsc2UgeworICAgICAgICBkZWx0
YVkgPSAoZnVsbFRpY2spID8gZS0+ZGVsdGEoKSAvIDEyMC4wZiA6IGUtPmRlbHRhKCk7CisgICAg
ICAgIHdoZWVsVGlja3NZID0gZGVsdGFZOworICAgIH0KKworICAgIC8vIFVzZSB0aGUgc2FtZSBz
aW5nbGUgc2Nyb2xsIHN0ZXAgYXMgUVRleHRFZGl0CisgICAgLy8gKGluIFFUZXh0RWRpdFByaXZh
dGU6OmluaXQgW2gsdl1iYXItPnNldFNpbmdsZVN0ZXApCisgICAgc3RhdGljIGNvbnN0IGZsb2F0
IGNEZWZhdWx0UXRTY3JvbGxTdGVwID0gMjAuZjsKKyNpZm5kZWYgUVRfTk9fV0hFRUxFVkVOVAor
ICAgIGRlbHRhWCAqPSAoZnVsbFRpY2spID8gUUFwcGxpY2F0aW9uOjp3aGVlbFNjcm9sbExpbmVz
KCkgKiBjRGVmYXVsdFF0U2Nyb2xsU3RlcCA6IDE7CisgICAgZGVsdGFZICo9IChmdWxsVGljaykg
PyBRQXBwbGljYXRpb246OndoZWVsU2Nyb2xsTGluZXMoKSAqIGNEZWZhdWx0UXRTY3JvbGxTdGVw
IDogMTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVs
LCB4LCB5LCBnbG9iYWxYLCAgZ2xvYmFsWSwgZGVsdGFYLCBkZWx0YVksIHdoZWVsVGlja3NYLCB3
aGVlbFRpY2tzWSwgZ3JhbnVsYXJpdHksIG1vZGlmaWVycywgdGltZXN0YW1wKTsKK30KKworV2Vi
S2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoUUtl
eUV2ZW50KiBldmVudCkKK3sKKyAgICBjb25zdCBpbnQgc3RhdGUgICAgICAgICAgICAgICAgID0g
ZXZlbnQtPm1vZGlmaWVycygpOworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgICAgICAgICAgICAg
PSB3ZWJFdmVudFR5cGVGb3JFdmVudChldmVudCk7CisgICAgY29uc3QgU3RyaW5nIHRleHQgICAg
ICAgICAgICAgICA9IGV2ZW50LT50ZXh0KCk7CisgICAgY29uc3QgU3RyaW5nIHVubW9kaWZpZWRU
ZXh0ICAgICA9IGV2ZW50LT50ZXh0KCk7CisgICAgYm9vbCBpc0F1dG9SZXBlYXQgICAgICAgICAg
ICAgICA9IGV2ZW50LT5pc0F1dG9SZXBlYXQoKTsKKyAgICBib29sIGlzU3lzdGVtS2V5ICAgICAg
ICAgICAgICAgID0gZmFsc2U7IC8vIEZJWE1FOiBObyBpZGVhIHdoYXQgdGhhdCBpcy4KKyAgICBi
b29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gKHN0YXRlICYgUXQ6OktleXBhZE1vZGlm
aWVyKTsKKyAgICBjb25zdCBTdHJpbmcga2V5SWRlbnRpZmllciAgICAgID0ga2V5SWRlbnRpZmll
ckZvclF0S2V5Q29kZShldmVudC0+a2V5KCkpOworICAgIGludCB3aW5kb3dzVmlydHVhbEtleUNv
ZGUgICAgICAgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50LT5rZXkoKSwgaXNLZXlw
YWQpOworICAgIGludCAgbmF0aXZlVmlydHVhbEtleUNvZGUgICAgICAgPSBldmVudC0+bmF0aXZl
VmlydHVhbEtleSgpOworICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2Rp
ZmllcnNGb3JFdmVudChldmVudC0+bW9kaWZpZXJzKCkpOworICAgIGRvdWJsZSB0aW1lc3RhbXAg
ICAgICAgICAgICAgICAgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CisKKyAgICByZXR1cm4gV2ViS2V5
Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5SWRlbnRpZmllciwgd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlLCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaXNBdXRvUmVwZWF0LCBp
c0tleXBhZCwgaXNTeXN0ZW1LZXksIG1vZGlmaWVycywgdGltZXN0YW1wKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVudEZh
Y3RvcnlRdC5oIGIvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjljMzhiCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJFdmVudEZhY3RvcnlfaAorI2RlZmlu
ZSBXZWJFdmVudEZhY3RvcnlfaAorCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKworY2xhc3MgUUdy
YXBoaWNzU2NlbmVNb3VzZUV2ZW50OworY2xhc3MgUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50Owor
Y2xhc3MgUUtleUV2ZW50OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRXZlbnRG
YWN0b3J5IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViTW91c2VFdmVudCBjcmVhdGVXZWJNb3Vz
ZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXZlbnQsIGludCBldmVudENsaWNrQ291
bnQpOworICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNyZWF0ZVdlYldoZWVsRXZlbnQoUUdyYXBo
aWNzU2NlbmVXaGVlbEV2ZW50KiBldmVudCk7CisgICAgc3RhdGljIFdlYktleWJvYXJkRXZlbnQg
Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChRS2V5RXZlbnQqIGV2ZW50KTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRXZlbnRGYWN0b3J5X2gKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60235</attachid>
            <date>2010-07-01 06:35:25 -0700</date>
            <delta_ts>2010-07-01 06:36:01 -0700</delta_ts>
            <desc>Initial Qt API for WK2</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>11741</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA0YjBmOTQ0ODUzMTRhMmRmMjk4ZDE4M2MxZTVjN2E0NmRhZjU4YjgyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDEwOjA0OjI5
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpBZGQgb3VyIGV2ZW50IGZhY3RvcnkgZm9yIGNvbnZlcnRp
bmcgUXQgZXZlbnRzIHRvIHNvbWV0aGluZyBXZWJLaXQyCnVuZGVyc3RhbmRzLgoKKiBTaGFyZWQv
cXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwOiBBZGRlZC4KKFdlYktpdDo6bW91c2VCdXR0b25Gb3JF
dmVudCk6CihXZWJLaXQ6OndlYkV2ZW50VHlwZUZvckV2ZW50KToKKFdlYktpdDo6bW9kaWZpZXJz
Rm9yRXZlbnQpOgooV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQp
OgooV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQpOgooV2ViS2l0
OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgoqIFNoYXJlZC9xdC9X
ZWJFdmVudEZhY3RvcnlRdC5oOiBBZGRlZC4KLS0tCiBXZWJLaXQyL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE5ICsrKysKIFdlYktpdDIvU2hhcmVkL3F0L1dlYkV2ZW50RmFj
dG9yeVF0LmNwcCB8ICAxNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogV2ViS2l0
Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaCAgIHwgICA0NyArKysrKysrKysKIDMgZmls
ZXMgY2hhbmdlZCwgMjI3IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaAoKZGlmZiAt
LWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTQwYzIz
YS4uODE1NDNiOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNy0wMSAgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4gIDxrZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJL
aXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDIzMworCisgICAgICAgIEFkZCBvdXIgZXZlbnQgZmFjdG9yeSBmb3IgY29u
dmVydGluZyBRdCBldmVudHMgdG8gc29tZXRoaW5nIFdlYktpdDIKKyAgICAgICAgdW5kZXJzdGFu
ZHMuCisKKyAgICAgICAgKiBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OndlYkV2ZW50VHlwZUZvckV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6bW9kaWZpZXJzRm9yRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJk
RXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5oOiBBZGRlZC4K
KwogMjAxMC0wNi0yOCAgSm9obiBHcmVnZyAgPGpvaG5ueWdAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCBidWlsZCBmaXggKHJlbW92aW5nIG1lcmdlIGNvbmZsaWN0IGZyb20gcHJl
dmlvdXMpLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQu
Y3BwIGIvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OWYzOWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQyL1NoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5jcHAKQEAgLTAsMCArMSwxNjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKKyNp
bmNsdWRlIDxxZ3JhcGhpY3NzY2VuZWV2ZW50Lmg+CisjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgor
I2luY2x1ZGUgPFFLZXlFdmVudD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRF
dmVudC5oPgorI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KFFH
cmFwaGljc1NjZW5lTW91c2VFdmVudCAqZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT5idXR0b24o
KSA9PSBRdDo6TGVmdEJ1dHRvbiB8fCAoZXZlbnQtPmJ1dHRvbnMoKSAmIFF0OjpMZWZ0QnV0dG9u
KSkKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247CisgICAgZWxzZSBp
ZiAoZXZlbnQtPmJ1dHRvbigpID09IFF0OjpSaWdodEJ1dHRvbiB8fCAoZXZlbnQtPmJ1dHRvbnMo
KSAmIFF0OjpSaWdodEJ1dHRvbikpCisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpSaWdo
dEJ1dHRvbjsKKyAgICBlbHNlIGlmIChldmVudC0+YnV0dG9uKCkgPT0gUXQ6Ok1pZEJ1dHRvbiB8
fCAoZXZlbnQtPmJ1dHRvbnMoKSAmIFF0OjpNaWRCdXR0b24pKQorICAgICAgICByZXR1cm4gV2Vi
TW91c2VFdmVudDo6TWlkZGxlQnV0dG9uOworICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpOb0J1
dHRvbjsKK30KKworc3RhdGljIFdlYkV2ZW50OjpUeXBlIHdlYkV2ZW50VHlwZUZvckV2ZW50KFFF
dmVudCogZXZlbnQpCit7CisgICAgc3dpdGNoIChldmVudC0+dHlwZSgpKSB7CisgICAgICAgIGNh
c2UgUUV2ZW50OjpHcmFwaGljc1NjZW5lTW91c2VEb3VibGVDbGljazoKKyAgICAgICAgY2FzZSBR
RXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3VzZVByZXNzOgorICAgICAgICAgICAgcmV0dXJuIFdlYkV2
ZW50OjpNb3VzZURvd247CisgICAgICAgIGNhc2UgUUV2ZW50OjpHcmFwaGljc1NjZW5lTW91c2VS
ZWxlYXNlOgorICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZVVwOworICAgICAgICBj
YXNlIFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlTW92ZToKKyAgICAgICAgICAgIHJldHVybiBX
ZWJFdmVudDo6TW91c2VNb3ZlOworICAgICAgICBjYXNlIFFFdmVudDo6V2hlZWw6CisgICAgICAg
ICAgICByZXR1cm4gV2ViRXZlbnQ6OldoZWVsOworICAgICAgICBjYXNlIFFFdmVudDo6S2V5UHJl
c3M6CisgICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6OktleURvd247CisgICAgICAgIGNhc2Ug
UUV2ZW50OjpLZXlSZWxlYXNlOgorICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpLZXlVcDsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIGFzc2VydAorICAgICAgICAgICAgcmV0
dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIFdlYkV2
ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1v
ZGlmaWVycykKK3sKKyAgICB1bnNpZ25lZCByZXN1bHQgPSAwOworICAgIGlmIChtb2RpZmllcnMg
JiBRdDo6U2hpZnRNb2RpZmllcikKKyAgICAgICAgcmVzdWx0IHw9IFdlYkV2ZW50OjpTaGlmdEtl
eTsKKyAgICBpZiAobW9kaWZpZXJzICYgUXQ6OkNvbnRyb2xNb2RpZmllcikKKyAgICAgICAgcmVz
dWx0IHw9IFdlYkV2ZW50OjpDb250cm9sS2V5OworICAgIGlmIChtb2RpZmllcnMgJiBRdDo6QWx0
TW9kaWZpZXIpCisgICAgICAgIHJlc3VsdCB8PSBXZWJFdmVudDo6QWx0S2V5OworICAgIGlmICht
b2RpZmllcnMgJiBRdDo6TWV0YU1vZGlmaWVyKQorICAgICAgICByZXN1bHQgfD0gV2ViRXZlbnQ6
Ok1ldGFLZXk7CisgICAgcmV0dXJuIChXZWJFdmVudDo6TW9kaWZpZXJzKXJlc3VsdDsKK30KKwor
V2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoUUdyYXBo
aWNzU2NlbmVNb3VzZUV2ZW50KiBldmVudCwgaW50IGV2ZW50Q2xpY2tDb3VudCkKK3sKKyAgICBJ
bnRQb2ludCBwb3NpdGlvbihldmVudC0+cG9zKCkudG9Qb2ludCgpKTsKKyAgICBJbnRQb2ludCBn
bG9iYWxQb3NpdGlvbihldmVudC0+c2NyZWVuUG9zKCkpOworCisgICAgV2ViRXZlbnQ6OlR5cGUg
dHlwZSAgICAgICAgICAgICA9IHdlYkV2ZW50VHlwZUZvckV2ZW50KGV2ZW50KTsKKyAgICBXZWJN
b3VzZUV2ZW50OjpCdXR0b24gYnV0dG9uICAgID0gbW91c2VCdXR0b25Gb3JFdmVudChldmVudCk7
CisgICAgaW50IHBvc2l0aW9uWCAgICAgICAgICAgICAgICAgICA9IHBvc2l0aW9uLngoKTsKKyAg
ICBpbnQgcG9zaXRpb25ZICAgICAgICAgICAgICAgICAgID0gcG9zaXRpb24ueSgpOworICAgIGlu
dCBnbG9iYWxQb3NpdGlvblggICAgICAgICAgICAgPSBnbG9iYWxQb3NpdGlvbi54KCk7CisgICAg
aW50IGdsb2JhbFBvc2l0aW9uWSAgICAgICAgICAgICA9IGdsb2JhbFBvc2l0aW9uLnkoKTsKKyAg
ICBpbnQgY2xpY2tDb3VudCAgICAgICAgICAgICAgICAgID0gZXZlbnRDbGlja0NvdW50OworICAg
IFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVu
dC0+bW9kaWZpZXJzKCkpOworICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgPSBX
VEY6OmN1cnJlbnRUaW1lKCk7CisKKyAgICByZXR1cm4gV2ViTW91c2VFdmVudCh0eXBlLCBidXR0
b24sIHBvc2l0aW9uWCwgcG9zaXRpb25ZLCBnbG9iYWxQb3NpdGlvblgsIGdsb2JhbFBvc2l0aW9u
WSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lc3RhbXApOworfQorCitXZWJXaGVlbEV2ZW50
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChRR3JhcGhpY3NTY2VuZVdoZWVs
RXZlbnQqIGUpCit7CisgICAgaW50IHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gZS0+cG9zKCkueCgpOworICAgIGludCB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IGUtPnBvcygpLnkoKTsKKyAgICBpbnQgZ2xvYmFsWCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSBlLT5zY3JlZW5Qb3MoKS54KCk7CisgICAgaW50IGdsb2JhbFkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gZS0+c2NyZWVuUG9zKCkueSgpOworICAgIGZsb2F0IGRlbHRh
WCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDA7CisgICAgZmxvYXQgZGVsdGFZICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMDsKKyAgICBmbG9hdCB3aGVlbFRpY2tzWCAgICAgICAg
ICAgICAgICAgICAgICAgPSAwOworICAgIGZsb2F0IHdoZWVsVGlja3NZICAgICAgICAgICAgICAg
ICAgICAgICA9IDA7CisgICAgV2ViV2hlZWxFdmVudDo6R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkg
ID0gV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQ7CisgICAgV2ViRXZlbnQ6
Ok1vZGlmaWVycyBtb2RpZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZS0+bW9k
aWZpZXJzKCkpOworICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICA9
IFdURjo6Y3VycmVudFRpbWUoKTsKKworICAgIC8vIEEgZGVsdGEgdGhhdCBpcyBub3QgbW9kIDEy
MCBpbmRpY2F0ZXMgYSBkZXZpY2UgdGhhdCBpcyBzZW5kaW5nCisgICAgLy8gZmluZS1yZXNvbHV0
aW9uIHNjcm9sbCBldmVudHMsIHNvIHVzZSB0aGUgZGVsdGEgYXMgbnVtYmVyIG9mIHdoZWVsIHRp
Y2tzCisgICAgLy8gYW5kIG51bWJlciBvZiBwaXhlbHMgdG8gc2Nyb2xsLlNlZSBhbHNvIHdlYmtp
dC5vcmcvYi8yOTYwMQorICAgIGJvb2wgZnVsbFRpY2sgPSAhKGUtPmRlbHRhKCkgJSAxMjApOwor
CisgICAgaWYgKGUtPm9yaWVudGF0aW9uKCkgPT0gUXQ6Okhvcml6b250YWwpIHsKKyAgICAgICAg
ZGVsdGFYID0gKGZ1bGxUaWNrKSA/IGUtPmRlbHRhKCkgLyAxMjAuMGYgOiBlLT5kZWx0YSgpOwor
ICAgICAgICB3aGVlbFRpY2tzWCA9IGRlbHRhWDsKKyAgICB9IGVsc2UgeworICAgICAgICBkZWx0
YVkgPSAoZnVsbFRpY2spID8gZS0+ZGVsdGEoKSAvIDEyMC4wZiA6IGUtPmRlbHRhKCk7CisgICAg
ICAgIHdoZWVsVGlja3NZID0gZGVsdGFZOworICAgIH0KKworICAgIC8vIFVzZSB0aGUgc2FtZSBz
aW5nbGUgc2Nyb2xsIHN0ZXAgYXMgUVRleHRFZGl0CisgICAgLy8gKGluIFFUZXh0RWRpdFByaXZh
dGU6OmluaXQgW2gsdl1iYXItPnNldFNpbmdsZVN0ZXApCisgICAgc3RhdGljIGNvbnN0IGZsb2F0
IGNEZWZhdWx0UXRTY3JvbGxTdGVwID0gMjAuZjsKKyNpZm5kZWYgUVRfTk9fV0hFRUxFVkVOVAor
ICAgIGRlbHRhWCAqPSAoZnVsbFRpY2spID8gUUFwcGxpY2F0aW9uOjp3aGVlbFNjcm9sbExpbmVz
KCkgKiBjRGVmYXVsdFF0U2Nyb2xsU3RlcCA6IDE7CisgICAgZGVsdGFZICo9IChmdWxsVGljaykg
PyBRQXBwbGljYXRpb246OndoZWVsU2Nyb2xsTGluZXMoKSAqIGNEZWZhdWx0UXRTY3JvbGxTdGVw
IDogMTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVs
LCB4LCB5LCBnbG9iYWxYLCAgZ2xvYmFsWSwgZGVsdGFYLCBkZWx0YVksIHdoZWVsVGlja3NYLCB3
aGVlbFRpY2tzWSwgZ3JhbnVsYXJpdHksIG1vZGlmaWVycywgdGltZXN0YW1wKTsKK30KKworV2Vi
S2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoUUtl
eUV2ZW50KiBldmVudCkKK3sKKyAgICBjb25zdCBpbnQgc3RhdGUgICAgICAgICAgICAgICAgID0g
ZXZlbnQtPm1vZGlmaWVycygpOworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgICAgICAgICAgICAg
PSB3ZWJFdmVudFR5cGVGb3JFdmVudChldmVudCk7CisgICAgY29uc3QgU3RyaW5nIHRleHQgICAg
ICAgICAgICAgICA9IGV2ZW50LT50ZXh0KCk7CisgICAgY29uc3QgU3RyaW5nIHVubW9kaWZpZWRU
ZXh0ICAgICA9IGV2ZW50LT50ZXh0KCk7CisgICAgYm9vbCBpc0F1dG9SZXBlYXQgICAgICAgICAg
ICAgICA9IGV2ZW50LT5pc0F1dG9SZXBlYXQoKTsKKyAgICBib29sIGlzU3lzdGVtS2V5ICAgICAg
ICAgICAgICAgID0gZmFsc2U7IC8vIEZJWE1FOiBObyBpZGVhIHdoYXQgdGhhdCBpcy4KKyAgICBi
b29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gKHN0YXRlICYgUXQ6OktleXBhZE1vZGlm
aWVyKTsKKyAgICBjb25zdCBTdHJpbmcga2V5SWRlbnRpZmllciAgICAgID0ga2V5SWRlbnRpZmll
ckZvclF0S2V5Q29kZShldmVudC0+a2V5KCkpOworICAgIGludCB3aW5kb3dzVmlydHVhbEtleUNv
ZGUgICAgICAgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50LT5rZXkoKSwgaXNLZXlw
YWQpOworICAgIGludCAgbmF0aXZlVmlydHVhbEtleUNvZGUgICAgICAgPSBldmVudC0+bmF0aXZl
VmlydHVhbEtleSgpOworICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2Rp
ZmllcnNGb3JFdmVudChldmVudC0+bW9kaWZpZXJzKCkpOworICAgIGRvdWJsZSB0aW1lc3RhbXAg
ICAgICAgICAgICAgICAgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CisKKyAgICByZXR1cm4gV2ViS2V5
Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5SWRlbnRpZmllciwgd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlLCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaXNBdXRvUmVwZWF0LCBp
c0tleXBhZCwgaXNTeXN0ZW1LZXksIG1vZGlmaWVycywgdGltZXN0YW1wKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVudEZh
Y3RvcnlRdC5oIGIvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjljMzhiCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJFdmVudEZhY3RvcnlfaAorI2RlZmlu
ZSBXZWJFdmVudEZhY3RvcnlfaAorCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKworY2xhc3MgUUdy
YXBoaWNzU2NlbmVNb3VzZUV2ZW50OworY2xhc3MgUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50Owor
Y2xhc3MgUUtleUV2ZW50OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRXZlbnRG
YWN0b3J5IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViTW91c2VFdmVudCBjcmVhdGVXZWJNb3Vz
ZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXZlbnQsIGludCBldmVudENsaWNrQ291
bnQpOworICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNyZWF0ZVdlYldoZWVsRXZlbnQoUUdyYXBo
aWNzU2NlbmVXaGVlbEV2ZW50KiBldmVudCk7CisgICAgc3RhdGljIFdlYktleWJvYXJkRXZlbnQg
Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChRS2V5RXZlbnQqIGV2ZW50KTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRXZlbnRGYWN0b3J5X2gKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60236</attachid>
            <date>2010-07-01 06:36:26 -0700</date>
            <delta_ts>2010-07-01 06:37:19 -0700</delta_ts>
            <desc>Initial Qt API for WK2</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>11741</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA0YjBmOTQ0ODUzMTRhMmRmMjk4ZDE4M2MxZTVjN2E0NmRhZjU4YjgyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDEwOjA0OjI5
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpBZGQgb3VyIGV2ZW50IGZhY3RvcnkgZm9yIGNvbnZlcnRp
bmcgUXQgZXZlbnRzIHRvIHNvbWV0aGluZyBXZWJLaXQyCnVuZGVyc3RhbmRzLgoKKiBTaGFyZWQv
cXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwOiBBZGRlZC4KKFdlYktpdDo6bW91c2VCdXR0b25Gb3JF
dmVudCk6CihXZWJLaXQ6OndlYkV2ZW50VHlwZUZvckV2ZW50KToKKFdlYktpdDo6bW9kaWZpZXJz
Rm9yRXZlbnQpOgooV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQp
OgooV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQpOgooV2ViS2l0
OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgoqIFNoYXJlZC9xdC9X
ZWJFdmVudEZhY3RvcnlRdC5oOiBBZGRlZC4KLS0tCiBXZWJLaXQyL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE5ICsrKysKIFdlYktpdDIvU2hhcmVkL3F0L1dlYkV2ZW50RmFj
dG9yeVF0LmNwcCB8ICAxNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogV2ViS2l0
Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaCAgIHwgICA0NyArKysrKysrKysKIDMgZmls
ZXMgY2hhbmdlZCwgMjI3IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaAoKZGlmZiAt
LWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTQwYzIz
YS4uODE1NDNiOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNy0wMSAgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4gIDxrZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJL
aXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDIzMworCisgICAgICAgIEFkZCBvdXIgZXZlbnQgZmFjdG9yeSBmb3IgY29u
dmVydGluZyBRdCBldmVudHMgdG8gc29tZXRoaW5nIFdlYktpdDIKKyAgICAgICAgdW5kZXJzdGFu
ZHMuCisKKyAgICAgICAgKiBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OndlYkV2ZW50VHlwZUZvckV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6bW9kaWZpZXJzRm9yRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJk
RXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5oOiBBZGRlZC4K
KwogMjAxMC0wNi0yOCAgSm9obiBHcmVnZyAgPGpvaG5ueWdAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCBidWlsZCBmaXggKHJlbW92aW5nIG1lcmdlIGNvbmZsaWN0IGZyb20gcHJl
dmlvdXMpLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQu
Y3BwIGIvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OWYzOWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQyL1NoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlRdC5jcHAKQEAgLTAsMCArMSwxNjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKKyNp
bmNsdWRlIDxxZ3JhcGhpY3NzY2VuZWV2ZW50Lmg+CisjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgor
I2luY2x1ZGUgPFFLZXlFdmVudD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRF
dmVudC5oPgorI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KFFH
cmFwaGljc1NjZW5lTW91c2VFdmVudCAqZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT5idXR0b24o
KSA9PSBRdDo6TGVmdEJ1dHRvbiB8fCAoZXZlbnQtPmJ1dHRvbnMoKSAmIFF0OjpMZWZ0QnV0dG9u
KSkKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247CisgICAgZWxzZSBp
ZiAoZXZlbnQtPmJ1dHRvbigpID09IFF0OjpSaWdodEJ1dHRvbiB8fCAoZXZlbnQtPmJ1dHRvbnMo
KSAmIFF0OjpSaWdodEJ1dHRvbikpCisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpSaWdo
dEJ1dHRvbjsKKyAgICBlbHNlIGlmIChldmVudC0+YnV0dG9uKCkgPT0gUXQ6Ok1pZEJ1dHRvbiB8
fCAoZXZlbnQtPmJ1dHRvbnMoKSAmIFF0OjpNaWRCdXR0b24pKQorICAgICAgICByZXR1cm4gV2Vi
TW91c2VFdmVudDo6TWlkZGxlQnV0dG9uOworICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpOb0J1
dHRvbjsKK30KKworc3RhdGljIFdlYkV2ZW50OjpUeXBlIHdlYkV2ZW50VHlwZUZvckV2ZW50KFFF
dmVudCogZXZlbnQpCit7CisgICAgc3dpdGNoIChldmVudC0+dHlwZSgpKSB7CisgICAgICAgIGNh
c2UgUUV2ZW50OjpHcmFwaGljc1NjZW5lTW91c2VEb3VibGVDbGljazoKKyAgICAgICAgY2FzZSBR
RXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3VzZVByZXNzOgorICAgICAgICAgICAgcmV0dXJuIFdlYkV2
ZW50OjpNb3VzZURvd247CisgICAgICAgIGNhc2UgUUV2ZW50OjpHcmFwaGljc1NjZW5lTW91c2VS
ZWxlYXNlOgorICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZVVwOworICAgICAgICBj
YXNlIFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlTW92ZToKKyAgICAgICAgICAgIHJldHVybiBX
ZWJFdmVudDo6TW91c2VNb3ZlOworICAgICAgICBjYXNlIFFFdmVudDo6V2hlZWw6CisgICAgICAg
ICAgICByZXR1cm4gV2ViRXZlbnQ6OldoZWVsOworICAgICAgICBjYXNlIFFFdmVudDo6S2V5UHJl
c3M6CisgICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6OktleURvd247CisgICAgICAgIGNhc2Ug
UUV2ZW50OjpLZXlSZWxlYXNlOgorICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpLZXlVcDsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIGFzc2VydAorICAgICAgICAgICAgcmV0
dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIFdlYkV2
ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1v
ZGlmaWVycykKK3sKKyAgICB1bnNpZ25lZCByZXN1bHQgPSAwOworICAgIGlmIChtb2RpZmllcnMg
JiBRdDo6U2hpZnRNb2RpZmllcikKKyAgICAgICAgcmVzdWx0IHw9IFdlYkV2ZW50OjpTaGlmdEtl
eTsKKyAgICBpZiAobW9kaWZpZXJzICYgUXQ6OkNvbnRyb2xNb2RpZmllcikKKyAgICAgICAgcmVz
dWx0IHw9IFdlYkV2ZW50OjpDb250cm9sS2V5OworICAgIGlmIChtb2RpZmllcnMgJiBRdDo6QWx0
TW9kaWZpZXIpCisgICAgICAgIHJlc3VsdCB8PSBXZWJFdmVudDo6QWx0S2V5OworICAgIGlmICht
b2RpZmllcnMgJiBRdDo6TWV0YU1vZGlmaWVyKQorICAgICAgICByZXN1bHQgfD0gV2ViRXZlbnQ6
Ok1ldGFLZXk7CisgICAgcmV0dXJuIChXZWJFdmVudDo6TW9kaWZpZXJzKXJlc3VsdDsKK30KKwor
V2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoUUdyYXBo
aWNzU2NlbmVNb3VzZUV2ZW50KiBldmVudCwgaW50IGV2ZW50Q2xpY2tDb3VudCkKK3sKKyAgICBJ
bnRQb2ludCBwb3NpdGlvbihldmVudC0+cG9zKCkudG9Qb2ludCgpKTsKKyAgICBJbnRQb2ludCBn
bG9iYWxQb3NpdGlvbihldmVudC0+c2NyZWVuUG9zKCkpOworCisgICAgV2ViRXZlbnQ6OlR5cGUg
dHlwZSAgICAgICAgICAgICA9IHdlYkV2ZW50VHlwZUZvckV2ZW50KGV2ZW50KTsKKyAgICBXZWJN
b3VzZUV2ZW50OjpCdXR0b24gYnV0dG9uICAgID0gbW91c2VCdXR0b25Gb3JFdmVudChldmVudCk7
CisgICAgaW50IHBvc2l0aW9uWCAgICAgICAgICAgICAgICAgICA9IHBvc2l0aW9uLngoKTsKKyAg
ICBpbnQgcG9zaXRpb25ZICAgICAgICAgICAgICAgICAgID0gcG9zaXRpb24ueSgpOworICAgIGlu
dCBnbG9iYWxQb3NpdGlvblggICAgICAgICAgICAgPSBnbG9iYWxQb3NpdGlvbi54KCk7CisgICAg
aW50IGdsb2JhbFBvc2l0aW9uWSAgICAgICAgICAgICA9IGdsb2JhbFBvc2l0aW9uLnkoKTsKKyAg
ICBpbnQgY2xpY2tDb3VudCAgICAgICAgICAgICAgICAgID0gZXZlbnRDbGlja0NvdW50OworICAg
IFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVu
dC0+bW9kaWZpZXJzKCkpOworICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgPSBX
VEY6OmN1cnJlbnRUaW1lKCk7CisKKyAgICByZXR1cm4gV2ViTW91c2VFdmVudCh0eXBlLCBidXR0
b24sIHBvc2l0aW9uWCwgcG9zaXRpb25ZLCBnbG9iYWxQb3NpdGlvblgsIGdsb2JhbFBvc2l0aW9u
WSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lc3RhbXApOworfQorCitXZWJXaGVlbEV2ZW50
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChRR3JhcGhpY3NTY2VuZVdoZWVs
RXZlbnQqIGUpCit7CisgICAgaW50IHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gZS0+cG9zKCkueCgpOworICAgIGludCB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IGUtPnBvcygpLnkoKTsKKyAgICBpbnQgZ2xvYmFsWCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSBlLT5zY3JlZW5Qb3MoKS54KCk7CisgICAgaW50IGdsb2JhbFkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gZS0+c2NyZWVuUG9zKCkueSgpOworICAgIGZsb2F0IGRlbHRh
WCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDA7CisgICAgZmxvYXQgZGVsdGFZICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMDsKKyAgICBmbG9hdCB3aGVlbFRpY2tzWCAgICAgICAg
ICAgICAgICAgICAgICAgPSAwOworICAgIGZsb2F0IHdoZWVsVGlja3NZICAgICAgICAgICAgICAg
ICAgICAgICA9IDA7CisgICAgV2ViV2hlZWxFdmVudDo6R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkg
ID0gV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQ7CisgICAgV2ViRXZlbnQ6
Ok1vZGlmaWVycyBtb2RpZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZS0+bW9k
aWZpZXJzKCkpOworICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICA9
IFdURjo6Y3VycmVudFRpbWUoKTsKKworICAgIC8vIEEgZGVsdGEgdGhhdCBpcyBub3QgbW9kIDEy
MCBpbmRpY2F0ZXMgYSBkZXZpY2UgdGhhdCBpcyBzZW5kaW5nCisgICAgLy8gZmluZS1yZXNvbHV0
aW9uIHNjcm9sbCBldmVudHMsIHNvIHVzZSB0aGUgZGVsdGEgYXMgbnVtYmVyIG9mIHdoZWVsIHRp
Y2tzCisgICAgLy8gYW5kIG51bWJlciBvZiBwaXhlbHMgdG8gc2Nyb2xsLlNlZSBhbHNvIHdlYmtp
dC5vcmcvYi8yOTYwMQorICAgIGJvb2wgZnVsbFRpY2sgPSAhKGUtPmRlbHRhKCkgJSAxMjApOwor
CisgICAgaWYgKGUtPm9yaWVudGF0aW9uKCkgPT0gUXQ6Okhvcml6b250YWwpIHsKKyAgICAgICAg
ZGVsdGFYID0gKGZ1bGxUaWNrKSA/IGUtPmRlbHRhKCkgLyAxMjAuMGYgOiBlLT5kZWx0YSgpOwor
ICAgICAgICB3aGVlbFRpY2tzWCA9IGRlbHRhWDsKKyAgICB9IGVsc2UgeworICAgICAgICBkZWx0
YVkgPSAoZnVsbFRpY2spID8gZS0+ZGVsdGEoKSAvIDEyMC4wZiA6IGUtPmRlbHRhKCk7CisgICAg
ICAgIHdoZWVsVGlja3NZID0gZGVsdGFZOworICAgIH0KKworICAgIC8vIFVzZSB0aGUgc2FtZSBz
aW5nbGUgc2Nyb2xsIHN0ZXAgYXMgUVRleHRFZGl0CisgICAgLy8gKGluIFFUZXh0RWRpdFByaXZh
dGU6OmluaXQgW2gsdl1iYXItPnNldFNpbmdsZVN0ZXApCisgICAgc3RhdGljIGNvbnN0IGZsb2F0
IGNEZWZhdWx0UXRTY3JvbGxTdGVwID0gMjAuZjsKKyNpZm5kZWYgUVRfTk9fV0hFRUxFVkVOVAor
ICAgIGRlbHRhWCAqPSAoZnVsbFRpY2spID8gUUFwcGxpY2F0aW9uOjp3aGVlbFNjcm9sbExpbmVz
KCkgKiBjRGVmYXVsdFF0U2Nyb2xsU3RlcCA6IDE7CisgICAgZGVsdGFZICo9IChmdWxsVGljaykg
PyBRQXBwbGljYXRpb246OndoZWVsU2Nyb2xsTGluZXMoKSAqIGNEZWZhdWx0UXRTY3JvbGxTdGVw
IDogMTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVs
LCB4LCB5LCBnbG9iYWxYLCAgZ2xvYmFsWSwgZGVsdGFYLCBkZWx0YVksIHdoZWVsVGlja3NYLCB3
aGVlbFRpY2tzWSwgZ3JhbnVsYXJpdHksIG1vZGlmaWVycywgdGltZXN0YW1wKTsKK30KKworV2Vi
S2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoUUtl
eUV2ZW50KiBldmVudCkKK3sKKyAgICBjb25zdCBpbnQgc3RhdGUgICAgICAgICAgICAgICAgID0g
ZXZlbnQtPm1vZGlmaWVycygpOworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgICAgICAgICAgICAg
PSB3ZWJFdmVudFR5cGVGb3JFdmVudChldmVudCk7CisgICAgY29uc3QgU3RyaW5nIHRleHQgICAg
ICAgICAgICAgICA9IGV2ZW50LT50ZXh0KCk7CisgICAgY29uc3QgU3RyaW5nIHVubW9kaWZpZWRU
ZXh0ICAgICA9IGV2ZW50LT50ZXh0KCk7CisgICAgYm9vbCBpc0F1dG9SZXBlYXQgICAgICAgICAg
ICAgICA9IGV2ZW50LT5pc0F1dG9SZXBlYXQoKTsKKyAgICBib29sIGlzU3lzdGVtS2V5ICAgICAg
ICAgICAgICAgID0gZmFsc2U7IC8vIEZJWE1FOiBObyBpZGVhIHdoYXQgdGhhdCBpcy4KKyAgICBi
b29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gKHN0YXRlICYgUXQ6OktleXBhZE1vZGlm
aWVyKTsKKyAgICBjb25zdCBTdHJpbmcga2V5SWRlbnRpZmllciAgICAgID0ga2V5SWRlbnRpZmll
ckZvclF0S2V5Q29kZShldmVudC0+a2V5KCkpOworICAgIGludCB3aW5kb3dzVmlydHVhbEtleUNv
ZGUgICAgICAgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50LT5rZXkoKSwgaXNLZXlw
YWQpOworICAgIGludCAgbmF0aXZlVmlydHVhbEtleUNvZGUgICAgICAgPSBldmVudC0+bmF0aXZl
VmlydHVhbEtleSgpOworICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2Rp
ZmllcnNGb3JFdmVudChldmVudC0+bW9kaWZpZXJzKCkpOworICAgIGRvdWJsZSB0aW1lc3RhbXAg
ICAgICAgICAgICAgICAgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CisKKyAgICByZXR1cm4gV2ViS2V5
Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5SWRlbnRpZmllciwgd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlLCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaXNBdXRvUmVwZWF0LCBp
c0tleXBhZCwgaXNTeXN0ZW1LZXksIG1vZGlmaWVycywgdGltZXN0YW1wKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVudEZh
Y3RvcnlRdC5oIGIvV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjljMzhiCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuaApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJFdmVudEZhY3RvcnlfaAorI2RlZmlu
ZSBXZWJFdmVudEZhY3RvcnlfaAorCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKworY2xhc3MgUUdy
YXBoaWNzU2NlbmVNb3VzZUV2ZW50OworY2xhc3MgUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50Owor
Y2xhc3MgUUtleUV2ZW50OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRXZlbnRG
YWN0b3J5IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViTW91c2VFdmVudCBjcmVhdGVXZWJNb3Vz
ZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXZlbnQsIGludCBldmVudENsaWNrQ291
bnQpOworICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNyZWF0ZVdlYldoZWVsRXZlbnQoUUdyYXBo
aWNzU2NlbmVXaGVlbEV2ZW50KiBldmVudCk7CisgICAgc3RhdGljIFdlYktleWJvYXJkRXZlbnQg
Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChRS2V5RXZlbnQqIGV2ZW50KTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRXZlbnRGYWN0b3J5X2gKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60238</attachid>
            <date>2010-07-01 06:39:42 -0700</date>
            <delta_ts>2010-07-01 06:53:16 -0700</delta_ts>
            <desc>Connection</desc>
            <filename>qtwebkit2-connection-2.patch</filename>
            <type>text/plain</type>
            <size>8682</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjI1NikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDctMDEgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtp
LmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtR
dF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMworICAgICAgICAKKyAgICAgICAgSW1wbGVt
ZW50IENvcmVJUEM6OkNvbm5lY3Rpb24gZm9yIFF0LiBOb3QgYnVpbHQgeWV0LgorCisgICAgICAg
ICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29y
ZUlQQy9xdDogQWRkZWQuCisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9xdC9Db25uZWN0aW9u
UXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OnBsYXRmb3JtSW5p
dGlhbGl6ZSk6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpwbGF0Zm9ybUludmFsaWRh
dGUpOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6bmV3Q29ubmVjdGlvbkhhbmRsZXIp
OgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6cmVhZHlSZWFkSGFuZGxlcik6CisgICAg
ICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpvcGVuQ29ubmVjdGlvbik6CisgICAgICAgIChDb3Jl
SVBDOjpDb25uZWN0aW9uOjpvcGVuKToKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OnNl
bmRPdXRnb2luZ01lc3NhZ2UpOgorCiAyMDEwLTA3LTAxICBBbnR0aSBLb2l2aXN0byAgPGtvaXZp
c3RvQGlraS5maT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbi4KSW5kZXg6IFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAkocmV2aXNpb24g
NjIyNTIpCisrKyBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM0LDEyICszNSwxNyBAQAogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogI2lmIFBMQVRG
T1JNKE1BQykKICNpbmNsdWRlIDxtYWNoL21hY2hfcG9ydC5oPgogI2VsaWYgUExBVEZPUk0oV0lO
KQogI2luY2x1ZGUgPHN0cmluZz4KKyNlbGlmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgPFFTdHJp
bmc+CitjbGFzcyBRTG9jYWxTZXJ2ZXI7CitjbGFzcyBRTG9jYWxTb2NrZXQ7CiAjZW5kaWYKIAog
Y2xhc3MgUnVuTG9vcDsKQEAgLTYzLDYgKzY5LDggQEAgcHVibGljOgogICAgIHR5cGVkZWYgbWFj
aF9wb3J0X3QgSWRlbnRpZmllcjsKICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICB0eXBlZGVmIGNv
bnN0IHN0ZDo6d3N0cmluZyYgSWRlbnRpZmllcjsKKyNlbGlmIFBMQVRGT1JNKFFUKQorICAgIHR5
cGVkZWYgY29uc3QgUVN0cmluZyBJZGVudGlmaWVyOwogI2VuZGlmCiAKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKElkZW50aWZpZXIsIENs
aWVudCosIFJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwpAQCAtMTYwLDggKzE2OCwxOCBAQCBwcml2
YXRlOgogICAgIFZlY3Rvcjx1aW50OF90PiBtX3JlYWRCdWZmZXI7CiAgICAgT1ZFUkxBUFBFRCBt
X3JlYWRTdGF0ZTsKICAgICBIQU5ETEUgbV9jb25uZWN0aW9uUGlwZTsKKyNlbGlmIFBMQVRGT1JN
KFFUKQorICAgIC8vIENhbGxlZCBvbiB0aGUgY29ubmVjdGlvbiBxdWV1ZS4KKyAgICB2b2lkIG9w
ZW5Db25uZWN0aW9uKCk7CisgICAgdm9pZCBuZXdDb25uZWN0aW9uSGFuZGxlcigpOworICAgIHZv
aWQgcmVhZHlSZWFkSGFuZGxlcigpOworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IG1fcmVhZEJ1ZmZl
cjsKKyAgICBzaXplX3QgbV9jdXJyZW50TWVzc2FnZVNpemU7CisgICAgUUxvY2FsU29ja2V0KiBt
X3NvY2tldDsKKyAgICBRTG9jYWxTZXJ2ZXIqIG1fc2VydmVyOworICAgIFFTdHJpbmcgbV9zZXJ2
ZXJOYW1lOwogI2VuZGlmCi0gICAgCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBFLCB0eXBlbmFt
ZSBUPgpJbmRleDogV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3F0L0Nvbm5lY3Rpb25RdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3F0L0Nvbm5lY3Rpb25RdC5j
cHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVjdGlv
blF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRFbmNv
ZGVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZURlYnVnLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5
TWVzc2FnZUtpbmRzLmgiCisjaW5jbHVkZSAiV29ya0l0ZW0uaCIKKyNpbmNsdWRlIDxRQXBwbGlj
YXRpb24+CisjaW5jbHVkZSA8UUxvY2FsU2VydmVyPgorI2luY2x1ZGUgPFFMb2NhbFNvY2tldD4K
KwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIENvcmVJUEMgeworCisvLyBUaGlz
IGlzIHdoYXQgb3RoZXIgcG9ydHMgdXNlLi4uCitzdGF0aWMgY29uc3Qgc2l6ZV90IG1lc3NhZ2VN
YXhTaXplID0gNDA5NjsKKwordm9pZCBDb25uZWN0aW9uOjpwbGF0Zm9ybUluaXRpYWxpemUoSWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc2VydmVyTmFtZSA9ICJRdFdlYktpdCIgKyBp
ZGVudGlmaWVyOworICAgIG1fc2VydmVyID0gMDsKKyAgICBtX3NvY2tldCA9IDA7CisgICAgbV9y
ZWFkQnVmZmVyLnJlc2l6ZShtZXNzYWdlTWF4U2l6ZSk7CisgICAgbV9jdXJyZW50TWVzc2FnZVNp
emUgPSAwOworfQorCit2b2lkIENvbm5lY3Rpb246OnBsYXRmb3JtSW52YWxpZGF0ZSgpCit7Cisg
ICAgZGVsZXRlIG1fc2VydmVyOworICAgIGRlbGV0ZSBtX3NvY2tldDsKK30KKwordm9pZCBDb25u
ZWN0aW9uOjpuZXdDb25uZWN0aW9uSGFuZGxlcigpCit7CisgICAgbV9zb2NrZXQgPSBtX3NlcnZl
ci0+bmV4dFBlbmRpbmdDb25uZWN0aW9uKCk7CisgICAgbV9pc0Nvbm5lY3RlZCA9IG1fc29ja2V0
OworICAgIGlmIChtX2lzQ29ubmVjdGVkKQorICAgICAgICBtX2Nvbm5lY3Rpb25RdWV1ZS5jb25u
ZWN0U2lnbmFsKG1fc29ja2V0LCBTSUdOQUwocmVhZHlSZWFkKCkpLCBXb3JrSXRlbTo6Y3JlYXRl
KHRoaXMsICZDb25uZWN0aW9uOjpyZWFkeVJlYWRIYW5kbGVyKSk7Cit9CisKK3ZvaWQgQ29ubmVj
dGlvbjo6cmVhZHlSZWFkSGFuZGxlcigpCit7CisgICAgd2hpbGUgKG1fc29ja2V0LT5ieXRlc0F2
YWlsYWJsZSgpKSB7CisgICAgICAgIGlmICghbV9jdXJyZW50TWVzc2FnZVNpemUpIHsKKyAgICAg
ICAgICAgIHNpemVfdCBudW1iZXJPZkJ5dGVzUmVhZCA9IG1fc29ja2V0LT5yZWFkKHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KG1fcmVhZEJ1ZmZlci5kYXRhKCkpLCBzaXplb2Yoc2l6ZV90KSk7Cisg
ICAgICAgICAgICBBU1NFUlQobnVtYmVyT2ZCeXRlc1JlYWQpOworICAgICAgICAgICAgbV9jdXJy
ZW50TWVzc2FnZVNpemUgPSAqcmVpbnRlcnByZXRfY2FzdDxzaXplX3QqPihtX3JlYWRCdWZmZXIu
ZGF0YSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX3NvY2tldC0+Ynl0ZXNBdmFpbGFi
bGUoKSA8IG1fY3VycmVudE1lc3NhZ2VTaXplKSB7CisjaWYgMAorICAgICAgICAgICAgcHJpbnRm
KCJyZWNlaXZlZCBtZXNzYWdlIHNpemU9JWQsIHdhaXRpbmcgZm9yIG1vcmUgZGF0YVxuIiwgKGlu
dCltX2N1cnJlbnRNZXNzYWdlU2l6ZSk7CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIHNpemVfdCBudW1iZXJPZkJ5dGVzUmVhZCA9IG1fc29ja2V0LT5y
ZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fcmVhZEJ1ZmZlci5kYXRhKCkpLCBtX2N1cnJl
bnRNZXNzYWdlU2l6ZSk7CisgICAgICAgIEFTU0VSVChudW1iZXJPZkJ5dGVzUmVhZCk7CisKKyAg
ICAgICAgLy8gVGhlIG1lc3NhZ2VJRCBpcyBlbmNvZGVkIGF0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZl
ci4KKyAgICAgICAgc2l6ZV90IHJlYWxCdWZmZXJTaXplID0gbV9jdXJyZW50TWVzc2FnZVNpemUg
LSBzaXplb2YoTWVzc2FnZUlEKTsKKyAgICAgICAgdW5zaWduZWQgbWVzc2FnZUlEID0gKnJlaW50
ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihtX3JlYWRCdWZmZXIuZGF0YSgpICsgcmVhbEJ1ZmZlclNp
emUpOworCisjaWYgMAorICAgICAgICBNZXNzYWdlSUQgaWQgPSBNZXNzYWdlSUQ6OmZyb21JbnQo
bWVzc2FnZUlEKTsKKyAgICAgICAgaWYgKGlkLmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlBh
Z2VQcm94eT4oKSkKKyAgICAgICAgICAgIHByaW50ZigicmVjZWl2ZWQgV2ViUGFnZVByb3h5TWVz
c2FnZTo6JXNcbiIsIGdldFdlYlBhZ2VQcm94eU1lc3NhZ2UobWVzc2FnZUlEKSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHByaW50ZigicmVjZWl2ZWQgbWVzc2FnZSBpZD0lZCwgc2l6ZT0l
ZFxuIiwgbWVzc2FnZUlELCAoaW50KW1fY3VycmVudE1lc3NhZ2VTaXplKTsKKyNlbmRpZgorCisg
ICAgICAgIHN0ZDo6YXV0b19wdHI8QXJndW1lbnREZWNvZGVyPiBhcmd1bWVudHMobmV3IEFyZ3Vt
ZW50RGVjb2RlcihtX3JlYWRCdWZmZXIuZGF0YSgpLCByZWFsQnVmZmVyU2l6ZSkpOworICAgICAg
ICBwcm9jZXNzSW5jb21pbmdNZXNzYWdlKE1lc3NhZ2VJRDo6ZnJvbUludChtZXNzYWdlSUQpLCBh
cmd1bWVudHMpOworCisgICAgICAgIG1fY3VycmVudE1lc3NhZ2VTaXplID0gMDsKKyAgICB9Cit9
CisKK3ZvaWQgQ29ubmVjdGlvbjo6b3BlbkNvbm5lY3Rpb25IYW5kbGVyKCkKK3sKKyAgICBBU1NF
UlQoIW1fc2VydmVyKTsKKyAgICBBU1NFUlQoIW1fc29ja2V0KTsKKworICAgIGlmIChtX2lzU2Vy
dmVyKSB7CisgICAgICAgIG1fc2VydmVyID0gbmV3IFFMb2NhbFNlcnZlcigpOworICAgICAgICBp
ZiAoIW1fc2VydmVyLT5saXN0ZW4obV9zZXJ2ZXJOYW1lKSkgeworICAgICAgICAgICAgcURlYnVn
KCkgPDwgImZhaWxlZCB0byBjcmVhdGUgc2VydmVyICIgPDwgbV9zZXJ2ZXJOYW1lOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fY29ubmVjdGlvblF1ZXVlLmNvbm5l
Y3RTaWduYWwobV9zZXJ2ZXIsIFNJR05BTChuZXdDb25uZWN0aW9uKCkpLCBXb3JrSXRlbTo6Y3Jl
YXRlKHRoaXMsICZDb25uZWN0aW9uOjpuZXdDb25uZWN0aW9uSGFuZGxlcikpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIG1fc29ja2V0ID0gbmV3IFFMb2NhbFNvY2tldCgpOworICAgICAgICBtX3Nv
Y2tldC0+Y29ubmVjdFRvU2VydmVyKG1fc2VydmVyTmFtZSk7CisgICAgICAgIG1fY29ubmVjdGlv
blF1ZXVlLmNvbm5lY3RTaWduYWwobV9zb2NrZXQsIFNJR05BTChyZWFkeVJlYWQoKSksIFdvcmtJ
dGVtOjpjcmVhdGUodGhpcywgJkNvbm5lY3Rpb246OnJlYWR5UmVhZEhhbmRsZXIpKTsKKyAgICAg
ICAgbV9pc0Nvbm5lY3RlZCA9IG1fc29ja2V0LT53YWl0Rm9yQ29ubmVjdGVkKCk7CisgICAgfQor
fQorCitib29sIENvbm5lY3Rpb246Om9wZW4oKQoreworICAgIG1fY29ubmVjdGlvblF1ZXVlLnNj
aGVkdWxlV29yayhXb3JrSXRlbTo6Y3JlYXRlKHRoaXMsICZDb25uZWN0aW9uOjpvcGVuQ29ubmVj
dGlvbkhhbmRsZXIpKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ29ubmVjdGlvbjo6
c2VuZE91dGdvaW5nTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCBhdXRvX3B0cjxBcmd1bWVu
dEVuY29kZXI+IGFyZ3VtZW50cykKK3sKKyAgICBpZiAoIW1fc29ja2V0KQorICAgICAgICByZXR1
cm47CisKKyAgICAvLyBXZSBwdXQgdGhlIG1lc3NhZ2UgSUQgbGFzdC4KKyAgICBhcmd1bWVudHMt
PmVuY29kZVVJbnQzMihtZXNzYWdlSUQudG9JbnQoKSk7CisKKyAgICBzaXplX3QgYnVmZmVyU2l6
ZSA9IGFyZ3VtZW50cy0+YnVmZmVyU2l6ZSgpOworCisjaWYgMAorICAgIGlmIChtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUGFnZT4oKSkKKyAgICAgICAgcHJpbnRmKCJzZW50
IFdlYlBhZ2VNZXNzYWdlOjolc1xuIiwgZ2V0V2ViUGFnZU1lc3NhZ2UobWVzc2FnZUlELnRvSW50
KCkpKTsKKyAgICBlbHNlCisgICAgICAgIHByaW50Zigic2VuZCBtZXNzYWdlIGlkPSVkLCBzaXpl
PSVkXG4iLCBtZXNzYWdlSUQudG9JbnQoKSwgKGludClidWZmZXJTaXplKTsKKyNlbmRpZgorCisg
ICAgLy8gV3JpdGUgbWVzc2FnZSBzaXplIGZpcnN0CisgICAgLy8gRklYTUU6IFNob3VsZCAganVz
dCBkbyBhIHNpbmdsZSB3cml0ZS4KKyAgICBtX3NvY2tldC0+d3JpdGUocmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4oJmJ1ZmZlclNpemUpLCBzaXplb2YoYnVmZmVyU2l6ZSkpOworCisgICAgcWludDY0
IGJ5dGVzV3JpdHRlbiA9IG1fc29ja2V0LT53cml0ZShyZWludGVycHJldF9jYXN0PGNoYXIqPihh
cmd1bWVudHMtPmJ1ZmZlcigpKSwgYXJndW1lbnRzLT5idWZmZXJTaXplKCkpOworCisgICAgQVNT
RVJUKGJ5dGVzV3JpdHRlbiA9PSBhcmd1bWVudHMtPmJ1ZmZlclNpemUoKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIENvcmVJUEMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60239</attachid>
            <date>2010-07-01 06:45:01 -0700</date>
            <delta_ts>2010-07-01 07:18:07 -0700</delta_ts>
            <desc>Initial Qt API for WK2</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>32804</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA1YjFmMTA0ODUyNTJmZGQxMTYxOGY4YzFhMjE5NmQ1NDIxYmY1MjFmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDEwOjM5OjE1
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgaW5pdGlhbCBRdCBBUEkgZm9yIFdlYktpdDIKCiog
VUlQcm9jZXNzL0FQSS9xdC9XS1ZpZXcuaDogQWRkZWQuCiogVUlQcm9jZXNzL0FQSS9xdC9xd2tn
cmFwaGljc3dpZGdldC5jcHA6IEFkZGVkLgooUVdLR3JhcGhpY3NXaWRnZXRQcml2YXRlOjpwYWdl
UmVmKToKKFFXS0dyYXBoaWNzV2lkZ2V0OjpRV0tHcmFwaGljc1dpZGdldCk6CihRV0tHcmFwaGlj
c1dpZGdldDo6flFXS0dyYXBoaWNzV2lkZ2V0KToKKFFXS0dyYXBoaWNzV2lkZ2V0OjpwYWdlKToK
KFFXS0dyYXBoaWNzV2lkZ2V0OjpwYWludCk6CihRV0tHcmFwaGljc1dpZGdldDo6c2V0R2VvbWV0
cnkpOgooUVdLR3JhcGhpY3NXaWRnZXQ6OmxvYWQpOgooUVdLR3JhcGhpY3NXaWRnZXQ6OnNldFVy
bCk6CihRV0tHcmFwaGljc1dpZGdldDo6dXJsKToKKFFXS0dyYXBoaWNzV2lkZ2V0Ojp0aXRsZSk6
CihRV0tHcmFwaGljc1dpZGdldDo6dHJpZ2dlclBhZ2VBY3Rpb24pOgooUVdLR3JhcGhpY3NXaWRn
ZXQ6OmJhY2spOgooUVdLR3JhcGhpY3NXaWRnZXQ6OmZvcndhcmQpOgooUVdLR3JhcGhpY3NXaWRn
ZXQ6OnJlbG9hZCk6CihRV0tHcmFwaGljc1dpZGdldDo6c3RvcCk6CihRV0tHcmFwaGljc1dpZGdl
dDo6aXRlbUNoYW5nZSk6CihRV0tHcmFwaGljc1dpZGdldDo6ZXZlbnQpOgooUVdLR3JhcGhpY3NX
aWRnZXQ6OnNpemVIaW50KToKKFFXS0dyYXBoaWNzV2lkZ2V0OjppbnB1dE1ldGhvZFF1ZXJ5KToK
KFFXS0dyYXBoaWNzV2lkZ2V0OjprZXlQcmVzc0V2ZW50KToKKFFXS0dyYXBoaWNzV2lkZ2V0Ojpr
ZXlSZWxlYXNlRXZlbnQpOgooUVdLR3JhcGhpY3NXaWRnZXQ6OmhvdmVyTW92ZUV2ZW50KToKKFFX
S0dyYXBoaWNzV2lkZ2V0Ojptb3VzZU1vdmVFdmVudCk6CihRV0tHcmFwaGljc1dpZGdldDo6bW91
c2VQcmVzc0V2ZW50KToKKFFXS0dyYXBoaWNzV2lkZ2V0Ojptb3VzZVJlbGVhc2VFdmVudCk6CihR
V0tHcmFwaGljc1dpZGdldDo6bW91c2VEb3VibGVDbGlja0V2ZW50KToKKFFXS0dyYXBoaWNzV2lk
Z2V0Ojp3aGVlbEV2ZW50KToKKFFXS0dyYXBoaWNzV2lkZ2V0UHJpdmF0ZTo6UVdLR3JhcGhpY3NX
aWRnZXRQcml2YXRlKToKKFFXS0dyYXBoaWNzV2lkZ2V0Ojp2aXNpYmxlUmVjdCk6CihRV0tHcmFw
aGljc1dpZGdldFByaXZhdGU6Ol9xX3NjYWxlQ2hhbmdlZCk6CihRV0tHcmFwaGljc1dpZGdldFBy
aXZhdGU6OmNvbW1pdFNjYWxlKToKKiBVSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBoaWNzd2lkZ2V0
Lmg6IEFkZGVkLgoqIFVJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHA6IEFkZGVkLgooUVdLUGFn
ZVByaXZhdGU6OlFXS1BhZ2VQcml2YXRlKToKKFFXS1BhZ2VQcml2YXRlOjp+UVdLUGFnZVByaXZh
dGUpOgooUVdLUGFnZVByaXZhdGU6OmluaXQpOgooUVdLUGFnZVByaXZhdGU6OnRvb2xUaXBDaGFu
Z2VkKToKKFFXS1BhZ2VQcml2YXRlOjpwYWludCk6CihRV0tQYWdlUHJpdmF0ZTo6a2V5UHJlc3NF
dmVudCk6CihRV0tQYWdlUHJpdmF0ZTo6a2V5UmVsZWFzZUV2ZW50KToKKFFXS1BhZ2VQcml2YXRl
Ojptb3VzZU1vdmVFdmVudCk6CihRV0tQYWdlUHJpdmF0ZTo6bW91c2VQcmVzc0V2ZW50KToKKFFX
S1BhZ2VQcml2YXRlOjptb3VzZVJlbGVhc2VFdmVudCk6CihRV0tQYWdlUHJpdmF0ZTo6bW91c2VE
b3VibGVDbGlja0V2ZW50KToKKFFXS1BhZ2VQcml2YXRlOjp3aGVlbEV2ZW50KToKKFFXS1BhZ2VQ
cml2YXRlOjp1cGRhdGVBY3Rpb24pOgooUVdLUGFnZVByaXZhdGU6OnVwZGF0ZU5hdmlnYXRpb25B
Y3Rpb25zKToKKFFXS1BhZ2VQcml2YXRlOjpfcV93ZWJBY3Rpb25UcmlnZ2VyZWQpOgooUVdLUGFn
ZTo6UVdLUGFnZSk6CihRV0tQYWdlOjp+UVdLUGFnZSk6CihRV0tQYWdlOjpwYWdlUmVmKToKKFFX
S1BhZ2U6OnNldENyZWF0ZU5ld1BhZ2VGdW5jdGlvbik6CihRV0tQYWdlOjpsb2FkKToKKFFXS1Bh
Z2U6OnNldFVybCk6CihRV0tQYWdlOjp1cmwpOgooUVdLUGFnZTo6dGl0bGUpOgooUVdLUGFnZTo6
c2V0Vmlld3BvcnRTaXplKToKKFFXS1BhZ2U6OnJlcXVlc3Rab29tUmVjdCk6CihRV0tQYWdlOjp0
cmlnZ2VyQWN0aW9uKToKKFFXS1BhZ2U6OmFjdGlvbik6CiogVUlQcm9jZXNzL0FQSS9xdC9xd2tw
YWdlLmg6IEFkZGVkLgoqIFVJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmg6IEFkZGVkLgooUVdL
UGFnZVByaXZhdGU6OmdldCk6CihRV0tQYWdlUHJpdmF0ZTo6cHJvY2Vzc0RpZEV4aXQpOgooUVdL
UGFnZVByaXZhdGU6OnByb2Nlc3NEaWRSZXZpdmUpOgooUVdLUGFnZVByaXZhdGU6OnRha2VGb2N1
cyk6Ci0tLQogV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgNzggKysrKysrCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvV0tWaWV3LmggICAgICAgICAg
ICAgIHwgICAyMCArKwogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBoaWNzd2lkZ2V0
LmNwcCB8ICAyODYgKysrKysrKysrKysrKysrKysrKwogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3a2dyYXBoaWNzd2lkZ2V0LmggICB8ICAgNzkgKysrKysrCiBXZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdrcGFnZS5jcHAgICAgICAgICAgIHwgIDM1MCArKysrKysrKysrKysrKysrKysrKysr
KysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmggICAgICAgICAgICAgfCAgIDc0
ICsrKysrCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmggICAgICAgICAgIHwg
ICA3MiArKysrKwogNyBmaWxlcyBjaGFuZ2VkLCA5NTkgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlv
bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvV0tWaWV3
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrZ3JhcGhp
Y3N3aWRnZXQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3a2dyYXBoaWNzd2lkZ2V0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrcGFnZS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrcGFnZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2VfcC5oCgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCA4MTU0M2I5Li4wNTQ0ZjJkIDEwMDY0NAotLS0gYS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDgzIEBACiAyMDEw
LTA3LTAxICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGguY2hyaXN0aWFuc2Vu
QG9wZW5ib3NzYS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjMzCisKKyAgICAgICAgQWRk
IGluaXRpYWwgUXQgQVBJIGZvciBXZWJLaXQyCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L1dLVmlldy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBoaWNz
d2lkZ2V0LmNwcDogQWRkZWQuCisgICAgICAgIChRV0tHcmFwaGljc1dpZGdldFByaXZhdGU6OnBh
Z2VSZWYpOgorICAgICAgICAoUVdLR3JhcGhpY3NXaWRnZXQ6OlFXS0dyYXBoaWNzV2lkZ2V0KToK
KyAgICAgICAgKFFXS0dyYXBoaWNzV2lkZ2V0Ojp+UVdLR3JhcGhpY3NXaWRnZXQpOgorICAgICAg
ICAoUVdLR3JhcGhpY3NXaWRnZXQ6OnBhZ2UpOgorICAgICAgICAoUVdLR3JhcGhpY3NXaWRnZXQ6
OnBhaW50KToKKyAgICAgICAgKFFXS0dyYXBoaWNzV2lkZ2V0OjpzZXRHZW9tZXRyeSk6CisgICAg
ICAgIChRV0tHcmFwaGljc1dpZGdldDo6bG9hZCk6CisgICAgICAgIChRV0tHcmFwaGljc1dpZGdl
dDo6c2V0VXJsKToKKyAgICAgICAgKFFXS0dyYXBoaWNzV2lkZ2V0Ojp1cmwpOgorICAgICAgICAo
UVdLR3JhcGhpY3NXaWRnZXQ6OnRpdGxlKToKKyAgICAgICAgKFFXS0dyYXBoaWNzV2lkZ2V0Ojp0
cmlnZ2VyUGFnZUFjdGlvbik6CisgICAgICAgIChRV0tHcmFwaGljc1dpZGdldDo6YmFjayk6Cisg
ICAgICAgIChRV0tHcmFwaGljc1dpZGdldDo6Zm9yd2FyZCk6CisgICAgICAgIChRV0tHcmFwaGlj
c1dpZGdldDo6cmVsb2FkKToKKyAgICAgICAgKFFXS0dyYXBoaWNzV2lkZ2V0OjpzdG9wKToKKyAg
ICAgICAgKFFXS0dyYXBoaWNzV2lkZ2V0OjppdGVtQ2hhbmdlKToKKyAgICAgICAgKFFXS0dyYXBo
aWNzV2lkZ2V0OjpldmVudCk6CisgICAgICAgIChRV0tHcmFwaGljc1dpZGdldDo6c2l6ZUhpbnQp
OgorICAgICAgICAoUVdLR3JhcGhpY3NXaWRnZXQ6OmlucHV0TWV0aG9kUXVlcnkpOgorICAgICAg
ICAoUVdLR3JhcGhpY3NXaWRnZXQ6OmtleVByZXNzRXZlbnQpOgorICAgICAgICAoUVdLR3JhcGhp
Y3NXaWRnZXQ6OmtleVJlbGVhc2VFdmVudCk6CisgICAgICAgIChRV0tHcmFwaGljc1dpZGdldDo6
aG92ZXJNb3ZlRXZlbnQpOgorICAgICAgICAoUVdLR3JhcGhpY3NXaWRnZXQ6Om1vdXNlTW92ZUV2
ZW50KToKKyAgICAgICAgKFFXS0dyYXBoaWNzV2lkZ2V0Ojptb3VzZVByZXNzRXZlbnQpOgorICAg
ICAgICAoUVdLR3JhcGhpY3NXaWRnZXQ6Om1vdXNlUmVsZWFzZUV2ZW50KToKKyAgICAgICAgKFFX
S0dyYXBoaWNzV2lkZ2V0Ojptb3VzZURvdWJsZUNsaWNrRXZlbnQpOgorICAgICAgICAoUVdLR3Jh
cGhpY3NXaWRnZXQ6OndoZWVsRXZlbnQpOgorICAgICAgICAoUVdLR3JhcGhpY3NXaWRnZXRQcml2
YXRlOjpRV0tHcmFwaGljc1dpZGdldFByaXZhdGUpOgorICAgICAgICAoUVdLR3JhcGhpY3NXaWRn
ZXQ6OnZpc2libGVSZWN0KToKKyAgICAgICAgKFFXS0dyYXBoaWNzV2lkZ2V0UHJpdmF0ZTo6X3Ff
c2NhbGVDaGFuZ2VkKToKKyAgICAgICAgKFFXS0dyYXBoaWNzV2lkZ2V0UHJpdmF0ZTo6Y29tbWl0
U2NhbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdrZ3JhcGhpY3N3aWRnZXQuaDog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcDogQWRkZWQuCisg
ICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6UVdLUGFnZVByaXZhdGUpOgorICAgICAgICAoUVdLUGFn
ZVByaXZhdGU6On5RV0tQYWdlUHJpdmF0ZSk6CisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6aW5p
dCk6CisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6dG9vbFRpcENoYW5nZWQpOgorICAgICAgICAo
UVdLUGFnZVByaXZhdGU6OnBhaW50KToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjprZXlQcmVz
c0V2ZW50KToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjprZXlSZWxlYXNlRXZlbnQpOgorICAg
ICAgICAoUVdLUGFnZVByaXZhdGU6Om1vdXNlTW92ZUV2ZW50KToKKyAgICAgICAgKFFXS1BhZ2VQ
cml2YXRlOjptb3VzZVByZXNzRXZlbnQpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6Om1vdXNl
UmVsZWFzZUV2ZW50KToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjptb3VzZURvdWJsZUNsaWNr
RXZlbnQpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6OndoZWVsRXZlbnQpOgorICAgICAgICAo
UVdLUGFnZVByaXZhdGU6OnVwZGF0ZUFjdGlvbik6CisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6
dXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6Ol9xX3dl
YkFjdGlvblRyaWdnZXJlZCk6CisgICAgICAgIChRV0tQYWdlOjpRV0tQYWdlKToKKyAgICAgICAg
KFFXS1BhZ2U6On5RV0tQYWdlKToKKyAgICAgICAgKFFXS1BhZ2U6OnBhZ2VSZWYpOgorICAgICAg
ICAoUVdLUGFnZTo6c2V0Q3JlYXRlTmV3UGFnZUZ1bmN0aW9uKToKKyAgICAgICAgKFFXS1BhZ2U6
OmxvYWQpOgorICAgICAgICAoUVdLUGFnZTo6c2V0VXJsKToKKyAgICAgICAgKFFXS1BhZ2U6OnVy
bCk6CisgICAgICAgIChRV0tQYWdlOjp0aXRsZSk6CisgICAgICAgIChRV0tQYWdlOjpzZXRWaWV3
cG9ydFNpemUpOgorICAgICAgICAoUVdLUGFnZTo6cmVxdWVzdFpvb21SZWN0KToKKyAgICAgICAg
KFFXS1BhZ2U6OnRyaWdnZXJBY3Rpb24pOgorICAgICAgICAoUVdLUGFnZTo6YWN0aW9uKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaDogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaDogQWRkZWQuCisgICAgICAgIChRV0tQYWdlUHJpdmF0
ZTo6Z2V0KToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjpwcm9jZXNzRGlkRXhpdCk6CisgICAg
ICAgIChRV0tQYWdlUHJpdmF0ZTo6cHJvY2Vzc0RpZFJldml2ZSk6CisgICAgICAgIChRV0tQYWdl
UHJpdmF0ZTo6dGFrZUZvY3VzKToKKworMjAxMC0wNy0wMSAgS2VubmV0aCBSb2hkZSBDaHJpc3Rp
YW5zZW4gIDxrZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgogCiAgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJLaXQy
IGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvV0tW
aWV3LmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvV0tWaWV3LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNWExZDczMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9XS1ZpZXcuaApAQCAtMCwwICsxLDIwIEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaW5jbHVkZSA8V2ViS2l0Mi9xd2tncmFwaGljc3dpZGdldC5oPgpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBoaWNzd2lkZ2V0LmNwcCBiL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tncmFwaGljc3dpZGdldC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uODkwYmM2ZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2tncmFwaGljc3dpZGdldC5jcHAKQEAgLTAsMCArMSwyODYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAicXdrZ3JhcGhpY3N3aWRnZXQuaCIKKworI2lu
Y2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlUaWxlZC5oIgorI2luY2x1ZGUgIkNodW5rZWRVcGRhdGVE
cmF3aW5nQXJlYVByb3h5LmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgInF3a3Bh
Z2UuaCIKKyNpbmNsdWRlICJxd2twYWdlX3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
U3RyaW5nLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgIldl
YlBhZ2VOYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJSdW5M
b29wLmgiCisjaW5jbHVkZSAid3RmL1JlZlB0ci5oIgorCisjaW5jbHVkZSA8UUdyYXBoaWNzU2Nl
bmVNb3VzZUV2ZW50PgorI2luY2x1ZGUgPFFHcmFwaGljc1ZpZXc+CisjaW5jbHVkZSA8UVBhaW50
ZXI+CisjaW5jbHVkZSA8UVNjcm9sbEJhcj4KKyNpbmNsdWRlIDxRU3R5bGVPcHRpb25HcmFwaGlj
c0l0ZW0+CisjaW5jbHVkZSA8UVVybD4KKworI2luY2x1ZGUgPFF0RGVidWc+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RydWN0IFFXS0dy
YXBoaWNzV2lkZ2V0UHJpdmF0ZQoreworICAgIFFXS0dyYXBoaWNzV2lkZ2V0UHJpdmF0ZShRV0tH
cmFwaGljc1dpZGdldCogdmlldyk7CisgICAgV0tQYWdlUmVmIHBhZ2VSZWYoKSBjb25zdCB7IHJl
dHVybiBwYWdlLT5wYWdlUmVmKCk7IH0KKworICAgIHZvaWQgX3Ffc2NhbGVDaGFuZ2VkKCk7Cisg
ICAgdm9pZCBjb21taXRTY2FsZSgpOworCisgICAgUVdLR3JhcGhpY3NXaWRnZXQqIHE7CisgICAg
UVdLUGFnZSogcGFnZTsKKyAgICBSdW5Mb29wOjpUaW1lcjxRV0tHcmFwaGljc1dpZGdldFByaXZh
dGU+IG1fc2NhbGVDb21taXRUaW1lcjsKK307CisKK1FXS0dyYXBoaWNzV2lkZ2V0OjpRV0tHcmFw
aGljc1dpZGdldChXS1BhZ2VOYW1lc3BhY2VSZWYgcGFnZU5hbWVzcGFjZVJlZiwgQmFja2luZ1N0
b3JlVHlwZSBiYWNraW5nU3RvcmVUeXBlLCBRR3JhcGhpY3NJdGVtKiBwYXJlbnQpCisgICAgOiBR
R3JhcGhpY3NXaWRnZXQocGFyZW50KQorICAgICwgZChuZXcgUVdLR3JhcGhpY3NXaWRnZXRQcml2
YXRlKHRoaXMpKQoreworICAgIHNldEZvY3VzUG9saWN5KFF0OjpTdHJvbmdGb2N1cyk7CisgICAg
c2V0QWNjZXB0SG92ZXJFdmVudHModHJ1ZSk7CisgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2lu
Z0FyZWFQcm94eTsKKyNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICBpZiAoYmFj
a2luZ1N0b3JlVHlwZSA9PSBUaWxlZCkgeworICAgICAgICBkcmF3aW5nQXJlYVByb3h5ID0gbmV3
IERyYXdpbmdBcmVhUHJveHlUaWxlZCh0aGlzKTsKKyAgICAgICAgY29ubmVjdCh0aGlzLCBTSUdO
QUwoc2NhbGVDaGFuZ2VkKCkpLCB0aGlzLCBTTE9UKF9xX3NjYWxlQ2hhbmdlZCgpKSk7CisgICAg
fSBlbHNlCisjZW5kaWYKKyAgICAgICAgZHJhd2luZ0FyZWFQcm94eSA9IG5ldyBDaHVua2VkVXBk
YXRlRHJhd2luZ0FyZWFQcm94eSh0aGlzKTsKKworICAgIGQtPnBhZ2UgPSBuZXcgUVdLUGFnZShw
YWdlTmFtZXNwYWNlUmVmKTsKKyAgICBkLT5wYWdlLT5kLT5pbml0KHNpemUoKS50b1NpemUoKSwg
ZHJhd2luZ0FyZWFQcm94eSk7CisgICAgY29ubmVjdChkLT5wYWdlLCBTSUdOQUwodGl0bGVDaGFu
Z2VkKFFTdHJpbmcpKSwgdGhpcywgU0lHTkFMKHRpdGxlQ2hhbmdlZChRU3RyaW5nKSkpOworICAg
IGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFMKGxvYWRTdGFydGVkKCkpLCB0aGlzLCBTSUdOQUwobG9h
ZFN0YXJ0ZWQoKSkpOworICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFMKGxvYWRGaW5pc2hlZChi
b29sKSksIHRoaXMsIFNJR05BTChsb2FkRmluaXNoZWQoYm9vbCkpKTsKKyAgICBjb25uZWN0KGQt
PnBhZ2UsIFNJR05BTChsb2FkUHJvZ3Jlc3MoaW50KSksIHRoaXMsIFNJR05BTChsb2FkUHJvZ3Jl
c3MoaW50KSkpOworICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFMKGluaXRpYWxMYXlvdXRDb21w
bGV0ZWQoKSksIHRoaXMsIFNJR05BTChpbml0aWFsTGF5b3V0Q29tcGxldGVkKCkpKTsKKyAgICBj
b25uZWN0KGQtPnBhZ2UsIFNJR05BTCh1cmxDaGFuZ2VkKGNvbnN0IFFVcmwmKSksIHRoaXMsIFNJ
R05BTCh1cmxDaGFuZ2VkKGNvbnN0IFFVcmwmKSkpOworfQorCitRV0tHcmFwaGljc1dpZGdldDo6
flFXS0dyYXBoaWNzV2lkZ2V0KCkKK3sKKyAgICBkZWxldGUgZC0+cGFnZTsKKyAgICBkZWxldGUg
ZDsKK30KKworUVdLUGFnZSogUVdLR3JhcGhpY3NXaWRnZXQ6OnBhZ2UoKSBjb25zdAoreworICAg
IHJldHVybiBkLT5wYWdlOworfQorCit2b2lkIFFXS0dyYXBoaWNzV2lkZ2V0OjpwYWludChRUGFp
bnRlciogcGFpbnRlciwgY29uc3QgUVN0eWxlT3B0aW9uR3JhcGhpY3NJdGVtKiBvcHRpb24sIFFX
aWRnZXQqKQoreworICAgIHBhZ2UoKS0+ZC0+cGFpbnQocGFpbnRlciwgb3B0aW9uLT5leHBvc2Vk
UmVjdC50b0FsaWduZWRSZWN0KCkpOworfQorCit2b2lkIFFXS0dyYXBoaWNzV2lkZ2V0OjpzZXRH
ZW9tZXRyeShjb25zdCBRUmVjdEYmIHJlY3QpCit7CisgICAgUUdyYXBoaWNzV2lkZ2V0OjpzZXRH
ZW9tZXRyeShyZWN0KTsKKworICAgIC8vIE5PVEU6IGNhbGwgZ2VvbWV0cnkoKSBhcyBzZXRHZW9t
ZXRyeSBlbnN1cmVzIHRoYXQKKyAgICAvLyB0aGUgZ2VvbWV0cnkgaXMgd2l0aGluIGxlZ2FsIGJv
dW5kcyAobWluaW11bVNpemUsIG1heGltdW1TaXplKQorICAgIHBhZ2UoKS0+c2V0Vmlld3BvcnRT
aXplKGdlb21ldHJ5KCkuc2l6ZSgpLnRvU2l6ZSgpKTsKK30KKwordm9pZCBRV0tHcmFwaGljc1dp
ZGdldDo6bG9hZChjb25zdCBRVXJsJiB1cmwpCit7CisgICAgcGFnZSgpLT5sb2FkKHVybCk7Cit9
CisKK3ZvaWQgUVdLR3JhcGhpY3NXaWRnZXQ6OnNldFVybChjb25zdCBRVXJsJiB1cmwpCit7Cisg
ICAgcGFnZSgpLT5zZXRVcmwodXJsKTsKK30KKworUVVybCBRV0tHcmFwaGljc1dpZGdldDo6dXJs
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gcGFnZSgpLT51cmwoKTsKK30KKworUVN0cmluZyBRV0tH
cmFwaGljc1dpZGdldDo6dGl0bGUoKSBjb25zdAoreworICAgIHJldHVybiBwYWdlKCktPnRpdGxl
KCk7Cit9CisKK3ZvaWQgUVdLR3JhcGhpY3NXaWRnZXQ6OnRyaWdnZXJQYWdlQWN0aW9uKFFXS1Bh
Z2U6OldlYkFjdGlvbiBhY3Rpb24sIGJvb2wgY2hlY2tlZCkKK3sKKyAgICBwYWdlKCktPnRyaWdn
ZXJBY3Rpb24oYWN0aW9uLCBjaGVja2VkKTsKK30KKwordm9pZCBRV0tHcmFwaGljc1dpZGdldDo6
YmFjaygpCit7CisgICAgcGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXS1BhZ2U6OkJhY2spOworfQor
Cit2b2lkIFFXS0dyYXBoaWNzV2lkZ2V0Ojpmb3J3YXJkKCkKK3sKKyAgICBwYWdlKCktPnRyaWdn
ZXJBY3Rpb24oUVdLUGFnZTo6Rm9yd2FyZCk7Cit9CisKK3ZvaWQgUVdLR3JhcGhpY3NXaWRnZXQ6
OnJlbG9hZCgpCit7CisgICAgcGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXS1BhZ2U6OlJlbG9hZCk7
Cit9CisKK3ZvaWQgUVdLR3JhcGhpY3NXaWRnZXQ6OnN0b3AoKQoreworICAgIHBhZ2UoKS0+dHJp
Z2dlckFjdGlvbihRV0tQYWdlOjpTdG9wKTsKK30KKworLyohIFxyZWltcAorKi8KK1FWYXJpYW50
IFFXS0dyYXBoaWNzV2lkZ2V0OjppdGVtQ2hhbmdlKEdyYXBoaWNzSXRlbUNoYW5nZSBjaGFuZ2Us
IGNvbnN0IFFWYXJpYW50JiB2YWx1ZSkKK3sKKyAgICAvLyBIZXJlIHNvIHRoYXQgaXQgY2FuIGJl
IHJlaW1wbGVtZW50ZWQgd2l0aG91dCBicmVha2luZyBBQkkuCisgICAgcmV0dXJuIFFHcmFwaGlj
c1dpZGdldDo6aXRlbUNoYW5nZShjaGFuZ2UsIHZhbHVlKTsKK30KKworLyohIFxyZWltcAorKi8K
K2Jvb2wgUVdLR3JhcGhpY3NXaWRnZXQ6OmV2ZW50KFFFdmVudCogZXZlbnQpCit7CisgICAgLy8g
SGVyZSBzbyB0aGF0IGl0IGNhbiBiZSByZWltcGxlbWVudGVkIHdpdGhvdXQgYnJlYWtpbmcgQUJJ
LgorICAgIHJldHVybiBRR3JhcGhpY3NXaWRnZXQ6OmV2ZW50KGV2ZW50KTsKK30KKworLyohIFxy
ZWltcAorKi8KK1FTaXplRiBRV0tHcmFwaGljc1dpZGdldDo6c2l6ZUhpbnQoUXQ6OlNpemVIaW50
IHdoaWNoLCBjb25zdCBRU2l6ZUYmIGNvbnN0cmFpbnQpIGNvbnN0Cit7CisgICAgaWYgKHdoaWNo
ID09IFF0OjpQcmVmZXJyZWRTaXplKQorICAgICAgICByZXR1cm4gUVNpemVGKDgwMCwgNjAwKTsK
KyAgICByZXR1cm4gUUdyYXBoaWNzV2lkZ2V0OjpzaXplSGludCh3aGljaCwgY29uc3RyYWludCk7
Cit9CisKKy8qISBccmVpbXAKKyovCitRVmFyaWFudCBRV0tHcmFwaGljc1dpZGdldDo6aW5wdXRN
ZXRob2RRdWVyeShRdDo6SW5wdXRNZXRob2RRdWVyeSBxdWVyeSkgY29uc3QKK3sKKyAgICAvLyBp
bXBsZW1lbnQKKyAgICByZXR1cm4gUVZhcmlhbnQoKTsKK30KKworLyohIFxyZWltcAorKi8KK3Zv
aWQgUVdLR3JhcGhpY3NXaWRnZXQ6OmtleVByZXNzRXZlbnQoUUtleUV2ZW50KiBldikKK3sKKyAg
ICBwYWdlKCktPmQtPmtleVByZXNzRXZlbnQoZXYpOworfQorCisvKiEgXHJlaW1wCisqLwordm9p
ZCBRV0tHcmFwaGljc1dpZGdldDo6a2V5UmVsZWFzZUV2ZW50KFFLZXlFdmVudCogZXYpCit7Cisg
ICAgcGFnZSgpLT5kLT5rZXlSZWxlYXNlRXZlbnQoZXYpOworfQorCit2b2lkIFFXS0dyYXBoaWNz
V2lkZ2V0Ojpob3Zlck1vdmVFdmVudChRR3JhcGhpY3NTY2VuZUhvdmVyRXZlbnQqIGV2KQorewor
ICAgIFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCBtZShRRXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3Vz
ZU1vdmUpOworICAgIG1lLnNldFBvcyhldi0+cG9zKCkpOworICAgIG1lLnNldFNjcmVlblBvcyhl
di0+c2NyZWVuUG9zKCkpOworCisgICAgcGFnZSgpLT5kLT5tb3VzZU1vdmVFdmVudCgmbWUpOwor
CisgICAgaWYgKCFldi0+aXNBY2NlcHRlZCgpKQorICAgICAgICBRR3JhcGhpY3NJdGVtOjpob3Zl
ck1vdmVFdmVudChldik7Cit9CisKK3ZvaWQgUVdLR3JhcGhpY3NXaWRnZXQ6Om1vdXNlTW92ZUV2
ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXYpCit7CisgICAgcGFnZSgpLT5kLT5tb3Vz
ZU1vdmVFdmVudChldik7CisgICAgaWYgKCFldi0+aXNBY2NlcHRlZCgpKQorICAgICAgICBRR3Jh
cGhpY3NJdGVtOjptb3VzZU1vdmVFdmVudChldik7Cit9CisKK3ZvaWQgUVdLR3JhcGhpY3NXaWRn
ZXQ6Om1vdXNlUHJlc3NFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQoreworICAg
IHBhZ2UoKS0+ZC0+bW91c2VQcmVzc0V2ZW50KGV2KTsKKyAgICBpZiAoIWV2LT5pc0FjY2VwdGVk
KCkpCisgICAgICAgIFFHcmFwaGljc0l0ZW06Om1vdXNlUHJlc3NFdmVudChldik7Cit9CisKK3Zv
aWQgUVdLR3JhcGhpY3NXaWRnZXQ6Om1vdXNlUmVsZWFzZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91
c2VFdmVudCogZXYpCit7CisgICAgcGFnZSgpLT5kLT5tb3VzZVJlbGVhc2VFdmVudChldik7Cisg
ICAgaWYgKCFldi0+aXNBY2NlcHRlZCgpKQorICAgICAgICBRR3JhcGhpY3NJdGVtOjptb3VzZVJl
bGVhc2VFdmVudChldik7Cit9CisKK3ZvaWQgUVdLR3JhcGhpY3NXaWRnZXQ6Om1vdXNlRG91Ymxl
Q2xpY2tFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQoreworICAgIHBhZ2UoKS0+
ZC0+bW91c2VEb3VibGVDbGlja0V2ZW50KGV2KTsKKyAgICBpZiAoIWV2LT5pc0FjY2VwdGVkKCkp
CisgICAgICAgIFFHcmFwaGljc0l0ZW06Om1vdXNlUmVsZWFzZUV2ZW50KGV2KTsKK30KKwordm9p
ZCBRV0tHcmFwaGljc1dpZGdldDo6d2hlZWxFdmVudChRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQq
IGV2KQoreworICAgIHBhZ2UoKS0+ZC0+d2hlZWxFdmVudChldik7CisgICAgaWYgKCFldi0+aXNB
Y2NlcHRlZCgpKQorICAgICAgICBRR3JhcGhpY3NJdGVtOjp3aGVlbEV2ZW50KGV2KTsKK30KKwor
UVdLR3JhcGhpY3NXaWRnZXRQcml2YXRlOjpRV0tHcmFwaGljc1dpZGdldFByaXZhdGUoUVdLR3Jh
cGhpY3NXaWRnZXQqIHZpZXcpCisgICAgOiBxKHZpZXcpCisgICAgLCBtX3NjYWxlQ29tbWl0VGlt
ZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmUVdLR3JhcGhpY3NXaWRnZXRQcml2YXRlOjpj
b21taXRTY2FsZSkKK3sKK30KKworCitRUmVjdEYgUVdLR3JhcGhpY3NXaWRnZXQ6OnZpc2libGVS
ZWN0KCkgY29uc3QKK3sKKyAgICBpZiAoIXNjZW5lKCkpCisgICAgICAgIHJldHVybiBRUmVjdEYo
KTsKKworICAgIFFMaXN0PFFHcmFwaGljc1ZpZXcqPiB2aWV3cyA9IHNjZW5lKCktPnZpZXdzKCk7
CisgICAgaWYgKHZpZXdzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFFSZWN0RigpOworCisg
ICAgUUdyYXBoaWNzVmlldyogZ3JhcGhpY3NWaWV3ID0gdmlld3MuYXQoMCk7CisgICAgaW50IHhP
ZmZzZXQgPSBncmFwaGljc1ZpZXctPmhvcml6b250YWxTY3JvbGxCYXIoKS0+dmFsdWUoKTsKKyAg
ICBpbnQgeU9mZnNldCA9IGdyYXBoaWNzVmlldy0+dmVydGljYWxTY3JvbGxCYXIoKS0+dmFsdWUo
KTsKKyAgICByZXR1cm4gbWFwUmVjdEZyb21TY2VuZShRUmVjdEYoUVBvaW50Rih4T2Zmc2V0LCB5
T2Zmc2V0KSwgZ3JhcGhpY3NWaWV3LT52aWV3cG9ydCgpLT5zaXplKCkpKTsKK30KKwordm9pZCBR
V0tHcmFwaGljc1dpZGdldFByaXZhdGU6Ol9xX3NjYWxlQ2hhbmdlZCgpCit7CisjaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgbV9zY2FsZUNvbW1pdFRpbWVyLnN0YXJ0T25lU2hv
dCgwLjEpOworI2VuZGlmCit9Cit2b2lkIFFXS0dyYXBoaWNzV2lkZ2V0UHJpdmF0ZTo6Y29tbWl0
U2NhbGUoKQoreworI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgIERyYXdpbmdB
cmVhUHJveHkqIGRyYXdpbmdBcmVhID0gcGFnZS0+ZC0+cGFnZS0+ZHJhd2luZ0FyZWEoKTsKKyAg
ICBpZiAoZHJhd2luZ0FyZWEtPnR5cGUoKSA9PSBEcmF3aW5nQXJlYVByb3h5OjpEcmF3aW5nQXJl
YVRpbGVkVHlwZSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8RHJhd2luZ0FyZWFQcm94eVRpbGVkKj4o
ZHJhd2luZ0FyZWEpLT5zZXRDb250ZW50c1NjYWxlKHEtPnNjYWxlKCkpOworI2VuZGlmCit9CisK
KyNpbmNsdWRlICJtb2NfcXdrZ3JhcGhpY3N3aWRnZXQuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2dyYXBoaWNzd2lkZ2V0LmggYi9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrZ3JhcGhpY3N3aWRnZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4zZTAzNGY3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3a2dyYXBoaWNzd2lkZ2V0LmgKQEAgLTAsMCArMSw3OSBAQAorI2lmbmRlZiBRV0tHcmFw
aGljc1dpZGdldF9oCisjZGVmaW5lIFFXS0dyYXBoaWNzV2lkZ2V0X2gKKworI2luY2x1ZGUgInF3
ZWJraXRnbG9iYWwuaCIKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8
UUdyYXBoaWNzV2lkZ2V0PgorI2luY2x1ZGUgInF3a3BhZ2UuaCIKKworY2xhc3MgUVdLR3JhcGhp
Y3NXaWRnZXRQcml2YXRlOworCitXS1N0cmluZ1JlZiBXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5n
KFFTdHJpbmcgcVN0cmluZyk7CitRU3RyaW5nIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTdHJpbmdS
ZWYgc3RyaW5nUmVmKTsKKworY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdLR3JhcGhpY3NXaWRnZXQg
OiBwdWJsaWMgUUdyYXBoaWNzV2lkZ2V0IHsKKyAgICBRX09CSkVDVAorICAgIFFfUFJPUEVSVFko
UVN0cmluZyB0aXRsZSBSRUFEIHRpdGxlKQorICAgIFFfUFJPUEVSVFkoUVVybCB1cmwgUkVBRCB1
cmwgV1JJVEUgc2V0VXJsKQorCitwdWJsaWM6CisgICAgZW51bSBCYWNraW5nU3RvcmVUeXBlIHsg
U2ltcGxlLCBUaWxlZCB9OworICAgIFFXS0dyYXBoaWNzV2lkZ2V0KFdLUGFnZU5hbWVzcGFjZVJl
ZiBuYW1lc3BhY2VSZWYsIEJhY2tpbmdTdG9yZVR5cGUgYmFja2luZ1N0b3JlVHlwZSA9IFNpbXBs
ZSwgUUdyYXBoaWNzSXRlbSogcGFyZW50ID0gMCk7CisKKyAgICB2aXJ0dWFsIH5RV0tHcmFwaGlj
c1dpZGdldCgpOworCisgICAgUVdLUGFnZSogcGFnZSgpIGNvbnN0OworCisgICAgdmlydHVhbCB2
b2lkIHNldEdlb21ldHJ5KGNvbnN0IFFSZWN0RiYpOworCisgICAgdm9pZCBsb2FkKGNvbnN0IFFV
cmwmIHVybCk7CisgICAgdm9pZCBzZXRVcmwoY29uc3QgUVVybCYgdXJsKTsKKyAgICBRVXJsIHVy
bCgpIGNvbnN0OworCisgICAgUVN0cmluZyB0aXRsZSgpIGNvbnN0OworCisgICAgdm9pZCB0cmln
Z2VyUGFnZUFjdGlvbihRV0tQYWdlOjpXZWJBY3Rpb24gYWN0aW9uLCBib29sIGNoZWNrZWQgPSBm
YWxzZSk7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUVBhaW50ZXIqLCBjb25zdCBRU3R5bGVP
cHRpb25HcmFwaGljc0l0ZW0qLCBRV2lkZ2V0Kik7CisgICAgdmlydHVhbCBRVmFyaWFudCBpdGVt
Q2hhbmdlKEdyYXBoaWNzSXRlbUNoYW5nZSwgY29uc3QgUVZhcmlhbnQmKTsKKyAgICB2aXJ0dWFs
IGJvb2wgZXZlbnQoUUV2ZW50Kik7CisgICAgdmlydHVhbCBRU2l6ZUYgc2l6ZUhpbnQoUXQ6OlNp
emVIaW50LCBjb25zdCBRU2l6ZUYmKSBjb25zdDsKKyAgICB2aXJ0dWFsIFFWYXJpYW50IGlucHV0
TWV0aG9kUXVlcnkoUXQ6OklucHV0TWV0aG9kUXVlcnkpIGNvbnN0OworCisgICAgLy8gRklYTUU6
IHNob3VsZCBub3QgYmUgcHVibGljCisgICAgdmlydHVhbCBRUmVjdEYgdmlzaWJsZVJlY3QoKSBj
b25zdDsKKworcHVibGljOgorICAgIFFfU0lHTkFMIHZvaWQgdGl0bGVDaGFuZ2VkKGNvbnN0IFFT
dHJpbmcmIHRpdGxlKTsKKyAgICBRX1NJR05BTCB2b2lkIGxvYWRTdGFydGVkKCk7CisgICAgUV9T
SUdOQUwgdm9pZCBsb2FkRmluaXNoZWQoYm9vbCBvayk7CisgICAgUV9TSUdOQUwgdm9pZCBsb2Fk
UHJvZ3Jlc3MoaW50IHByb2dyZXNzKTsKKyAgICBRX1NJR05BTCB2b2lkIGluaXRpYWxMYXlvdXRD
b21wbGV0ZWQoKTsKKyAgICBRX1NJR05BTCB2b2lkIHVybENoYW5nZWQoY29uc3QgUVVybCYpOwor
CitwdWJsaWMgUV9TTE9UUzoKKyAgICB2b2lkIGJhY2soKTsKKyAgICB2b2lkIGZvcndhcmQoKTsK
KyAgICB2b2lkIHJlbG9hZCgpOworICAgIHZvaWQgc3RvcCgpOworCitwcm90ZWN0ZWQ6CisgICAg
dmlydHVhbCB2b2lkIGtleVByZXNzRXZlbnQoUUtleUV2ZW50Kik7CisgICAgdmlydHVhbCB2b2lk
IGtleVJlbGVhc2VFdmVudChRS2V5RXZlbnQqICk7CisgICAgdmlydHVhbCB2b2lkIG1vdXNlTW92
ZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCopOworICAgIHZpcnR1YWwgdm9pZCBtb3Vz
ZVByZXNzRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Kik7CisgICAgdmlydHVhbCB2b2lk
IG1vdXNlUmVsZWFzZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCopOworICAgIHZpcnR1
YWwgdm9pZCBtb3VzZURvdWJsZUNsaWNrRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Kik7
CisgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBl
dik7CisKKyAgICB2aXJ0dWFsIHZvaWQgaG92ZXJNb3ZlRXZlbnQoUUdyYXBoaWNzU2NlbmVIb3Zl
ckV2ZW50Kik7CisKK3ByaXZhdGU6CisgICAgUV9QUklWQVRFX1NMT1QoZCwgdm9pZCBfcV9zY2Fs
ZUNoYW5nZWQoKSk7CisKKyAgICBRV0tHcmFwaGljc1dpZGdldFByaXZhdGUqIGQ7CisgICAgZnJp
ZW5kIGNsYXNzIFFXS0dyYXBoaWNzV2lkZ2V0UHJpdmF0ZTsKK307CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwIGIvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjk4MDJiYjkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdrcGFnZS5jcHAKQEAgLTAsMCArMSwzNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh
bTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVk
ZSAicXdrcGFnZS5oIgorI2luY2x1ZGUgInF3a3BhZ2VfcC5oIgorCisjaW5jbHVkZSAiRGVmYXVs
dFBhZ2VMb2FkZXJDbGllbnRDYWxsYmFja3NRdC5oIgorI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9y
eS5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXZWJLaXQy
L1dLRnJhbWUuaD4KKyNpbmNsdWRlICJXS1N0cmluZ1F0LmgiCisjaW5jbHVkZSAiV0tVUkxRdC5o
IgorCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2luY2x1ZGUgPFFBY3Rpb24+Cisj
aW5jbHVkZSA8UUFwcGxpY2F0aW9uPgorI2luY2x1ZGUgPFFHcmFwaGljc1NjZW5lTW91c2VFdmVu
dD4KKyNpbmNsdWRlIDxRU3R5bGU+CisKKyNpbmNsdWRlIDxRdERlYnVnPgorCit1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKKworUVdLUGFnZVByaXZh
dGU6OlFXS1BhZ2VQcml2YXRlKFFXS1BhZ2UqIHFxLCBXS1BhZ2VOYW1lc3BhY2VSZWYgbmFtZXNw
YWNlUmVmKQorICAgIDogcShxcSkKKyAgICAsIGNyZWF0ZU5ld1BhZ2VGbigwKQoreworICAgIG1l
bXNldChhY3Rpb25zLCAwLCBzaXplb2YoYWN0aW9ucykpOworICAgIHBhZ2UgPSB0b1dLKG5hbWVz
cGFjZVJlZiktPmNyZWF0ZVdlYlBhZ2UoKTsKKyAgICBwYWdlLT5zZXRQYWdlQ2xpZW50KHRoaXMp
OworfQorCitRV0tQYWdlUHJpdmF0ZTo6flFXS1BhZ2VQcml2YXRlKCkKK3sKKyAgICBwYWdlLT5j
bG9zZSgpOworfQorCit2b2lkIFFXS1BhZ2VQcml2YXRlOjppbml0KGNvbnN0IFFTaXplJiB2aWV3
cG9ydFNpemUsIERyYXdpbmdBcmVhUHJveHkqIHByb3h5KQoreworICAgIHBhZ2UtPmluaXRpYWxp
emVXZWJQYWdlKEludFNpemUodmlld3BvcnRTaXplKSwgcHJveHkpOworfQorCit2b2lkIFFXS1Bh
Z2VQcml2YXRlOjp0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIG5l
d1Rvb2x0aXApCit7CisgICAgZW1pdCBxLT5zdGF0dXNCYXJNZXNzYWdlKFFTdHJpbmcobmV3VG9v
bHRpcCkpOworfQorCit2b2lkIFFXS1BhZ2VQcml2YXRlOjpwYWludChRUGFpbnRlciogcGFpbnRl
ciwgUVJlY3QgYXJlYSkKK3sKKyAgICBwYWludGVyLT5zYXZlKCk7CisKKyAgICBwYWludGVyLT5z
ZXRCcnVzaChRdDo6d2hpdGUpOworICAgIHBhaW50ZXItPmRyYXdSZWN0KGFyZWEpOworCisgICAg
aWYgKHBhZ2UtPmlzVmFsaWQoKSAmJiBwYWdlLT5kcmF3aW5nQXJlYSgpKQorICAgICAgICBwYWdl
LT5kcmF3aW5nQXJlYSgpLT5wYWludChJbnRSZWN0KGFyZWEpLCBwYWludGVyKTsKKworICAgIHBh
aW50ZXItPnJlc3RvcmUoKTsKK30KKwordm9pZCBRV0tQYWdlUHJpdmF0ZTo6a2V5UHJlc3NFdmVu
dChRS2V5RXZlbnQqIGV2KQoreworICAgIFdlYktleWJvYXJkRXZlbnQga2V5Ym9hcmRFdmVudCA9
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChldik7CisgICAgcGFnZS0+
a2V5RXZlbnQoa2V5Ym9hcmRFdmVudCk7Cit9CisKK3ZvaWQgUVdLUGFnZVByaXZhdGU6OmtleVJl
bGVhc2VFdmVudChRS2V5RXZlbnQqIGV2KQoreworICAgIFdlYktleWJvYXJkRXZlbnQga2V5Ym9h
cmRFdmVudCA9IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChldik7Cisg
ICAgcGFnZS0+a2V5RXZlbnQoa2V5Ym9hcmRFdmVudCk7Cit9CisKK3ZvaWQgUVdLUGFnZVByaXZh
dGU6Om1vdXNlTW92ZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXYpCit7CisgICAg
Ly8gRm9yIHNvbWUgcmVhc29uIG1vdXNlIHByZXNzIHJlc3VsdHMgaW4gbW91c2UgaG92ZXIgKHdo
aWNoIGlzCisgICAgLy8gY29udmVydGVkIHRvIG1vdXNlIG1vdmUgZm9yIFdlYktpdCkuIFdlIGln
bm9yZSB0aGVzZSBob3ZlcgorICAgIC8vIGV2ZW50cyBieSBjb21wYXJpbmcgbGFzdFBvcyB3aXRo
IG5ld1Bvcy4KKyAgICAvLyBOT1RFOiBsYXN0UG9zIGZyb20gdGhlIGV2ZW50IGFsd2F5cyBjb21l
cyBlbXB0eSwgc28gd2Ugd29yaworICAgIC8vIGFyb3VuZCB0aGF0IGhlcmUuCisgICAgc3RhdGlj
IFFQb2ludEYgbGFzdFBvcyA9IFFQb2ludEYoKTsKKyAgICBpZiAobGFzdFBvcyA9PSBldi0+cG9z
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBsYXN0UG9zID0gZXYtPnBvcygpOworCisgICAgV2Vi
TW91c2VFdmVudCBtb3VzZUV2ZW50ID0gV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2
ZW50KGV2LCAwKTsKKyAgICBwYWdlLT5tb3VzZUV2ZW50KG1vdXNlRXZlbnQpOworfQorCit2b2lk
IFFXS1BhZ2VQcml2YXRlOjptb3VzZVByZXNzRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50
KiBldikKK3sKKyAgICBXZWJNb3VzZUV2ZW50IG1vdXNlRXZlbnQgPSBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXYsIDEpOworICAgIHBhZ2UtPm1vdXNlRXZlbnQobW91c2VF
dmVudCk7Cit9CisKK3ZvaWQgUVdLUGFnZVByaXZhdGU6Om1vdXNlUmVsZWFzZUV2ZW50KFFHcmFw
aGljc1NjZW5lTW91c2VFdmVudCogZXYpCit7CisgICAgV2ViTW91c2VFdmVudCBtb3VzZUV2ZW50
ID0gV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2LCAwKTsKKyAgICBwYWdl
LT5tb3VzZUV2ZW50KG1vdXNlRXZlbnQpOworfQorCit2b2lkIFFXS1BhZ2VQcml2YXRlOjptb3Vz
ZURvdWJsZUNsaWNrRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldikKK3sKKyAgICBX
ZWJNb3VzZUV2ZW50IG1vdXNlRXZlbnQgPSBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQoZXYsIDIpOworICAgIHBhZ2UtPm1vdXNlRXZlbnQobW91c2VFdmVudCk7Cit9CisKK3Zv
aWQgUVdLUGFnZVByaXZhdGU6OndoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBl
dikKK3sKKyAgICBXZWJXaGVlbEV2ZW50IHdoZWVsRXZlbnQgPSBXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYldoZWVsRXZlbnQoZXYpOworICAgIHBhZ2UtPndoZWVsRXZlbnQod2hlZWxFdmVudCk7
Cit9CisKK3ZvaWQgUVdLUGFnZVByaXZhdGU6OnVwZGF0ZUFjdGlvbihRV0tQYWdlOjpXZWJBY3Rp
b24gYWN0aW9uKQoreworI2lmZGVmIFFUX05PX0FDVElPTgorICAgIFFfVU5VU0VEKGFjdGlvbikK
KyNlbHNlCisgICAgUUFjdGlvbiAqYSA9IGFjdGlvbnNbYWN0aW9uXTsKKyAgICBpZiAoIWEpCisg
ICAgICAgIHJldHVybjsKKworICAgIGJvb2wgZW5hYmxlZCA9IGEtPmlzRW5hYmxlZCgpOworICAg
IGJvb2wgY2hlY2tlZCA9IGEtPmlzQ2hlY2tlZCgpOworCisgICAgc3dpdGNoIChhY3Rpb24pIHsK
KyAgICBjYXNlIFFXS1BhZ2U6OkJhY2s6CisgICAgICAgIHBhZ2UtPmNhbkdvQmFjaygpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFFXS1BhZ2U6OkZvcndhcmQ6CisgICAgICAgIHBhZ2UtPmNh
bkdvRm9yd2FyZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFFXS1BhZ2U6OlN0b3A6Cisg
ICAgICAgIC8vIEZJWE1FCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUVdLUGFnZTo6UmVsb2Fk
OgorICAgICAgICAvLyBGSVhNRQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKKyAgICB9CisKKyAgICBhLT5zZXRFbmFibGVkKGVuYWJsZWQpOworCisgICAgaWYg
KGEtPmlzQ2hlY2thYmxlKCkpCisgICAgICAgIGEtPnNldENoZWNrZWQoY2hlY2tlZCk7CisjZW5k
aWYgLy8gUVRfTk9fQUNUSU9OCit9CisKKy8vIEZJWE1FOiBob29rIHVwCit2b2lkIFFXS1BhZ2VQ
cml2YXRlOjp1cGRhdGVOYXZpZ2F0aW9uQWN0aW9ucygpCit7CisgICAgdXBkYXRlQWN0aW9uKFFX
S1BhZ2U6OkJhY2spOworICAgIHVwZGF0ZUFjdGlvbihRV0tQYWdlOjpGb3J3YXJkKTsKKyAgICB1
cGRhdGVBY3Rpb24oUVdLUGFnZTo6U3RvcCk7CisgICAgdXBkYXRlQWN0aW9uKFFXS1BhZ2U6OlJl
bG9hZCk7Cit9CisKKyNpZm5kZWYgUVRfTk9fQUNUSU9OCit2b2lkIFFXS1BhZ2VQcml2YXRlOjpf
cV93ZWJBY3Rpb25UcmlnZ2VyZWQoYm9vbCBjaGVja2VkKQoreworICAgIFFBY3Rpb24gKmEgPSBx
b2JqZWN0X2Nhc3Q8UUFjdGlvbiAqPihxLT5zZW5kZXIoKSk7CisgICAgaWYgKCFhKQorICAgICAg
ICByZXR1cm47CisgICAgUVdLUGFnZTo6V2ViQWN0aW9uIGFjdGlvbiA9IHN0YXRpY19jYXN0PFFX
S1BhZ2U6OldlYkFjdGlvbj4oYS0+ZGF0YSgpLnRvSW50KCkpOworICAgIHEtPnRyaWdnZXJBY3Rp
b24oYWN0aW9uLCBjaGVja2VkKTsKK30KKyNlbmRpZiAvLyBRVF9OT19BQ1RJT04KKworCisKKwor
UVdLUGFnZTo6UVdLUGFnZShXS1BhZ2VOYW1lc3BhY2VSZWYgbmFtZXNwYWNlUmVmKQorICAgIDog
ZChuZXcgUVdLUGFnZVByaXZhdGUodGhpcywgbmFtZXNwYWNlUmVmKSkKK3sKKyAgICBXS1BhZ2VM
b2FkZXJDbGllbnQgbG9hZENsaWVudCA9IHsKKyAgICAgICAgMCwgICAgICAvKiB2ZXJzaW9uICov
CisgICAgICAgIHRoaXMsICAgLyogY2xpZW50SW5mbyAqLworICAgICAgICBxdF93a19kaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lLAorICAgICAgICBxdF93a19kaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSwKKyAgICAgICAgcXRfd2tfZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lLAorICAgICAgICBxdF93a19kaWRDb21t
aXRMb2FkRm9yRnJhbWUsCisgICAgICAgIHF0X3drX2RpZEZpbmlzaExvYWRGb3JGcmFtZSwKKyAg
ICAgICAgcXRfd2tfZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSwKKyAgICAgICAgcXRfd2tf
ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUsCisgICAgICAgIHF0X3drX2RpZEZpcnN0TGF5b3V0Rm9y
RnJhbWUsCisgICAgICAgIHF0X3drX2RpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZy
YW1lLAorICAgICAgICBxdF93a19kaWRTdGFydFByb2dyZXNzLAorICAgICAgICBxdF93a19kaWRD
aGFuZ2VQcm9ncmVzcywKKyAgICAgICAgcXRfd2tfZGlkRmluaXNoUHJvZ3Jlc3MsCisgICAgICAg
IHF0X3drX2RpZEJlY29tZVVucmVzcG9uc2l2ZSwKKyAgICAgICAgcXRfd2tfZGlkQmVjb21lUmVz
cG9uc2l2ZQorICAgIH07CisgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChwYWdlUmVmKCks
ICZsb2FkQ2xpZW50KTsKKworICAgIFdLUGFnZVVJQ2xpZW50IHVpQ2xpZW50ID0geworICAgICAg
ICAwLCAgICAgIC8qIHZlcnNpb24gKi8KKyAgICAgICAgdGhpcywgICAvKiBjbGllbnRJbmZvICov
CisgICAgICAgIHF0X3drX2NyZWF0ZU5ld1BhZ2UsCisgICAgICAgIHF0X3drX3Nob3dQYWdlLAor
ICAgICAgICBxdF93a19jbG9zZSwKKyAgICAgICAgcXRfd2tfcnVuSmF2YVNjcmlwdEFsZXJ0LAor
ICAgICAgICBxdF93a19jb250ZW50c1NpemVDaGFuZ2VkLAorICAgICAgICBxdF93a196b29tUmVj
dFJlY2VpdmVkCisgICAgfTsKKyAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQocGFnZVJlZigpLCAm
dWlDbGllbnQpOworfQorCitRV0tQYWdlOjp+UVdLUGFnZSgpCit7CisgICAgZGVsZXRlIGQ7Cit9
CisKK1dLUGFnZVJlZiBRV0tQYWdlOjpwYWdlUmVmKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9S
ZWYoZC0+cGFnZS5nZXQoKSk7Cit9CisKK3ZvaWQgUVdLUGFnZTo6c2V0Q3JlYXRlTmV3UGFnZUZ1
bmN0aW9uKENyZWF0ZU5ld1BhZ2VGbiBmdW5jdGlvbikKK3sKKyAgICBkLT5jcmVhdGVOZXdQYWdl
Rm4gPSBmdW5jdGlvbjsKK30KKwordm9pZCBRV0tQYWdlOjpsb2FkKGNvbnN0IFFVcmwmIHVybCkK
K3sKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gd2t1cmwoV0tVUkxDcmVhdGVXaXRoUVVybCh1
cmwpKTsKKyAgICBXS1BhZ2VMb2FkVVJMKHBhZ2VSZWYoKSwgd2t1cmwuZ2V0KCkpOworfQorCit2
b2lkIFFXS1BhZ2U6OnNldFVybChjb25zdCBRVXJsJiB1cmwpCit7CisgICAgbG9hZCh1cmwpOwor
fQorCitRVXJsIFFXS1BhZ2U6OnVybCgpIGNvbnN0Cit7CisgICAgV0tSZXRhaW5QdHI8V0tGcmFt
ZVJlZj4gZnJhbWUgPSBXS1BhZ2VHZXRNYWluRnJhbWUocGFnZVJlZigpKTsKKyAgICBpZiAoIWZy
YW1lKQorICAgICAgICByZXR1cm4gUVVybCgpOworICAgIHJldHVybiBXS1VSTENvcHlRVXJsKFdL
RnJhbWVHZXRVUkwoZnJhbWUuZ2V0KCkpKTsKK30KKworUVN0cmluZyBRV0tQYWdlOjp0aXRsZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tQYWdlR2V0VGl0bGUo
cGFnZVJlZigpKSk7Cit9CisKK3ZvaWQgUVdLUGFnZTo6c2V0Vmlld3BvcnRTaXplKGNvbnN0IFFT
aXplJiBzaXplKQoreworICAgIGlmIChkLT5wYWdlLT5kcmF3aW5nQXJlYSgpKQorICAgICAgICBk
LT5wYWdlLT5kcmF3aW5nQXJlYSgpLT5zZXRTaXplKEludFNpemUoc2l6ZSkpOworfQorCit2b2lk
IFFXS1BhZ2U6OnJlcXVlc3Rab29tUmVjdChjb25zdCBRUG9pbnQmIHZpZXdQb3MpCit7CisgICAg
ZC0+cGFnZS0+cmVxdWVzdFpvb21SZWN0KHZpZXdQb3MpOworfQorCisjaWZuZGVmIFFUX05PX0FD
VElPTgordm9pZCBRV0tQYWdlOjp0cmlnZ2VyQWN0aW9uKFdlYkFjdGlvbiBhY3Rpb24sIGJvb2wp
Cit7CisgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICBjYXNlIEJhY2s6CisgICAgICAgIGQtPnBh
Z2UtPmdvQmFjaygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvcndhcmQ6CisgICAgICAg
IGQtPnBhZ2UtPmdvRm9yd2FyZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3A6Cisg
ICAgICAgIGQtPnBhZ2UtPnN0b3BMb2FkaW5nKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UmVsb2FkOgorICAgICAgICBkLT5wYWdlLT5yZWxvYWQoLyogcmVsb2FkRnJvbU9yaWdpbiAqLyB0
cnVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAg
fQorfQorI2VuZGlmIC8vIFFUX05PX0FDVElPTgorCisjaWZuZGVmIFFUX05PX0FDVElPTgorUUFj
dGlvbiogUVdLUGFnZTo6YWN0aW9uKFdlYkFjdGlvbiBhY3Rpb24pIGNvbnN0Cit7CisgICAgaWYg
KGFjdGlvbiA9PSBRV0tQYWdlOjpOb1dlYkFjdGlvbiB8fCBhY3Rpb24gPj0gV2ViQWN0aW9uQ291
bnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKGQtPmFjdGlvbnNbYWN0aW9uXSkKKyAg
ICAgICAgcmV0dXJuIGQtPmFjdGlvbnNbYWN0aW9uXTsKKworICAgIFFTdHJpbmcgdGV4dDsKKyAg
ICBRSWNvbiBpY29uOworICAgIFFTdHlsZSogc3R5bGUgPSBxb2JqZWN0X2Nhc3Q8UUFwcGxpY2F0
aW9uKj4oUUNvcmVBcHBsaWNhdGlvbjo6aW5zdGFuY2UoKSktPnN0eWxlKCk7CisgICAgYm9vbCBj
aGVja2FibGUgPSBmYWxzZTsKKworICAgIHN3aXRjaCAoYWN0aW9uKSB7CisgICAgY2FzZSBCYWNr
OgorICAgICAgICB0ZXh0ID0gY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCk7CisgICAgICAgIGlj
b24gPSBzdHlsZS0+c3RhbmRhcmRJY29uKFFTdHlsZTo6U1BfQXJyb3dCYWNrKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBGb3J3YXJkOgorICAgICAgICB0ZXh0ID0gY29udGV4dE1lbnVJdGVt
VGFnR29Gb3J3YXJkKCk7CisgICAgICAgIGljb24gPSBzdHlsZS0+c3RhbmRhcmRJY29uKFFTdHls
ZTo6U1BfQXJyb3dGb3J3YXJkKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdG9wOgorICAg
ICAgICB0ZXh0ID0gY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpOworICAgICAgICBpY29uID0gc3R5
bGUtPnN0YW5kYXJkSWNvbihRU3R5bGU6OlNQX0Jyb3dzZXJTdG9wKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBSZWxvYWQ6CisgICAgICAgIHRleHQgPSBjb250ZXh0TWVudUl0ZW1UYWdSZWxv
YWQoKTsKKyAgICAgICAgaWNvbiA9IHN0eWxlLT5zdGFuZGFyZEljb24oUVN0eWxlOjpTUF9Ccm93
c2VyUmVsb2FkKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBRQWN0aW9uICphID0gbmV3IFFBY3Rpb24oZC0+cSk7Cisg
ICAgYS0+c2V0VGV4dCh0ZXh0KTsKKyAgICBhLT5zZXREYXRhKGFjdGlvbik7CisgICAgYS0+c2V0
Q2hlY2thYmxlKGNoZWNrYWJsZSk7CisgICAgYS0+c2V0SWNvbihpY29uKTsKKworICAgIGNvbm5l
Y3QoYSwgU0lHTkFMKHRyaWdnZXJlZChib29sKSksIHRoaXMsIFNMT1QoX3Ffd2ViQWN0aW9uVHJp
Z2dlcmVkKGJvb2wpKSk7CisKKyAgICBkLT5hY3Rpb25zW2FjdGlvbl0gPSBhOworICAgIGQtPnVw
ZGF0ZUFjdGlvbihhY3Rpb24pOworICAgIHJldHVybiBhOworfQorI2VuZGlmIC8vIFFUX05PX0FD
VElPTgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaCBiL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNzg2OTJjOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2twYWdlLmgKQEAgLTAsMCArMSw3NCBAQAorI2lmbmRlZiBRV0tQYWdlX2gKKyNk
ZWZpbmUgUVdLUGFnZV9oCisKKyNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCisKKyNpbmNsdWRl
IDxRQWN0aW9uPgorI2luY2x1ZGUgPFFPYmplY3Q+CisjaW5jbHVkZSA8UVBvaW50PgorI2luY2x1
ZGUgPFFSZWN0PgorI2luY2x1ZGUgPFFTaXplPgorI2luY2x1ZGUgPFFVcmw+CisjaW5jbHVkZSA8
V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZS5oPgorI2luY2x1ZGUg
PFdlYktpdDIvV0tQYWdlTmFtZXNwYWNlLmg+CisKK2NsYXNzIFFXS0dyYXBoaWNzV2lkZ2V0Owor
Y2xhc3MgUVdLUGFnZVByaXZhdGU7CisKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFFXS1BhZ2UgOiBw
dWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgdGl0
bGUgUkVBRCB0aXRsZSkKKyAgICBRX1BST1BFUlRZKFFVcmwgdXJsIFJFQUQgdXJsIFdSSVRFIHNl
dFVybCkKKworcHVibGljOgorICAgIGVudW0gV2ViQWN0aW9uIHsKKyAgICAgICAgTm9XZWJBY3Rp
b24gPSAtIDEsCisKKyAgICAgICAgQmFjaywKKyAgICAgICAgRm9yd2FyZCwKKyAgICAgICAgU3Rv
cCwKKyAgICAgICAgUmVsb2FkLAorCisgICAgICAgIFdlYkFjdGlvbkNvdW50CisgICAgfTsKKwor
ICAgIFFXS1BhZ2UoV0tQYWdlTmFtZXNwYWNlUmVmKTsKKyAgICB2aXJ0dWFsIH5RV0tQYWdlKCk7
CisKKyAgICBXS1BhZ2VSZWYgcGFnZVJlZigpIGNvbnN0OworCisgICAgdm9pZCBsb2FkKGNvbnN0
IFFVcmwmIHVybCk7CisgICAgdm9pZCBzZXRVcmwoY29uc3QgUVVybCYgdXJsKTsKKyAgICBRVXJs
IHVybCgpIGNvbnN0OworCisgICAgUVN0cmluZyB0aXRsZSgpIGNvbnN0OworCisgICAgdm9pZCBz
ZXRWaWV3cG9ydFNpemUoY29uc3QgUVNpemUmKTsKKyAgICB2b2lkIHJlcXVlc3Rab29tUmVjdChj
b25zdCBRUG9pbnQmKTsKKworICAgIFFBY3Rpb24qIGFjdGlvbihXZWJBY3Rpb24gYWN0aW9uKSBj
b25zdDsKKyAgICB2b2lkIHRyaWdnZXJBY3Rpb24oV2ViQWN0aW9uIGFjdGlvbiwgYm9vbCBjaGVj
a2VkID0gZmFsc2UpOworCisgICAgdHlwZWRlZiBRV0tQYWdlKiAoKkNyZWF0ZU5ld1BhZ2VGbiko
UVdLUGFnZSopOworICAgIHZvaWQgc2V0Q3JlYXRlTmV3UGFnZUZ1bmN0aW9uKENyZWF0ZU5ld1Bh
Z2VGbiBmdW5jdGlvbik7CisKK3B1YmxpYzoKKyAgICBRX1NJR05BTCB2b2lkIHN0YXR1c0Jhck1l
c3NhZ2UoY29uc3QgUVN0cmluZyYpOworICAgIFFfU0lHTkFMIHZvaWQgdGl0bGVDaGFuZ2VkKGNv
bnN0IFFTdHJpbmcmKTsKKyAgICBRX1NJR05BTCB2b2lkIGxvYWRTdGFydGVkKCk7CisgICAgUV9T
SUdOQUwgdm9pZCBsb2FkRmluaXNoZWQoYm9vbCBvayk7CisgICAgUV9TSUdOQUwgdm9pZCBsb2Fk
UHJvZ3Jlc3MoaW50IHByb2dyZXNzKTsKKyAgICBRX1NJR05BTCB2b2lkIGluaXRpYWxMYXlvdXRD
b21wbGV0ZWQoKTsKKyAgICBRX1NJR05BTCB2b2lkIHVybENoYW5nZWQoY29uc3QgUVVybCYpOwor
ICAgIFFfU0lHTkFMIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChjb25zdCBRU2l6ZSYpOworICAg
IFFfU0lHTkFMIHZvaWQgem9vbVJlY3RSZWNlaXZlZChjb25zdCBRUmVjdCYpOworCitwcml2YXRl
OgorICAgIGZyaWVuZCBjbGFzcyBRV0tHcmFwaGljc1dpZGdldDsKKyAgICBmcmllbmQgY2xhc3Mg
UVdLR3JhcGhpY3NXaWRnZXRQcml2YXRlOworICAgIGZyaWVuZCBjbGFzcyBRV0tQYWdlUHJpdmF0
ZTsKKyAgICBRV0tQYWdlUHJpdmF0ZSogZDsKK307CisKKyNlbmRpZiAvKiBRV0tQYWdlX2ggKi8K
ZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaCBiL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45MTM3YzU5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2VfcC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
cHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisj
aWZuZGVmIHF3a3BhZ2VfcF9oCisjZGVmaW5lIHF3a3BhZ2VfcF9oCisKKyNpbmNsdWRlIDxRR3Jh
cGhpY3NWaWV3PgorI2luY2x1ZGUgPFFLZXlFdmVudD4KKyNpbmNsdWRlICJ3dGYvUmVmUHRyLmgi
CisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5o
IgorI2luY2x1ZGUgIlBhZ2VDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJQYWdlTmFtZXNwYWNlLmgi
CisjaW5jbHVkZSAicXdrcGFnZS5oIgorCitjbGFzcyBRV0tQYWdlUHJpdmF0ZSA6IHB1YmxpYyBX
ZWJLaXQ6OlBhZ2VDbGllbnQgeworcHVibGljOgorICAgIFFXS1BhZ2VQcml2YXRlKFFXS1BhZ2Uq
LCBXS1BhZ2VOYW1lc3BhY2VSZWYpOworICAgIH5RV0tQYWdlUHJpdmF0ZSgpOworCisgICAgc3Rh
dGljIFFXS1BhZ2VQcml2YXRlKiBnZXQoUVdLUGFnZSogcGFnZSkgeyByZXR1cm4gcGFnZS0+ZDsg
fQorCisgICAgdm9pZCBpbml0KGNvbnN0IFFTaXplJiB2aWV3cG9ydFNpemUsIFdlYktpdDo6RHJh
d2luZ0FyZWFQcm94eSopOworCisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRFeGl0KCkge30K
KyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZFJldml2ZSgpIHt9CisgICAgdmlydHVhbCB2b2lk
IHRha2VGb2N1cyhib29sIGRpcmVjdGlvbikge30KKyAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENo
YW5nZWQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CisK
KyAgICB2b2lkIHBhaW50KFFQYWludGVyKiBwYWludGVyLCBRUmVjdCk7CisKKyAgICB2b2lkIGtl
eVByZXNzRXZlbnQoUUtleUV2ZW50Kik7CisgICAgdm9pZCBrZXlSZWxlYXNlRXZlbnQoUUtleUV2
ZW50Kik7CisgICAgdm9pZCBtb3VzZU1vdmVFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQq
KTsKKyAgICB2b2lkIG1vdXNlUHJlc3NFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqKTsK
KyAgICB2b2lkIG1vdXNlUmVsZWFzZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCopOwor
ICAgIHZvaWQgbW91c2VEb3VibGVDbGlja0V2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCop
OworICAgIHZvaWQgd2hlZWxFdmVudChRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQqIGV2KTsKKwor
ICAgIHZvaWQgdXBkYXRlQWN0aW9uKFFXS1BhZ2U6OldlYkFjdGlvbiBhY3Rpb24pOworICAgIHZv
aWQgdXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMoKTsKKyAgICB2b2lkIHVwZGF0ZUVkaXRvckFjdGlv
bnMoKTsKKworICAgIHZvaWQgX3Ffd2ViQWN0aW9uVHJpZ2dlcmVkKGJvb2wgY2hlY2tlZCk7CisK
KyAgICBRQWN0aW9uICphY3Rpb25zW1FXS1BhZ2U6OldlYkFjdGlvbkNvdW50XTsKKworICAgIFFX
S1BhZ2UqIHE7CisgICAgUmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBwYWdlOworCisgICAg
UVdLUGFnZTo6Q3JlYXRlTmV3UGFnZUZuIGNyZWF0ZU5ld1BhZ2VGbjsKK307CisKKworI2VuZGlm
IC8qIHFrcGFnZV9wX2ggKi8KLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60243</attachid>
            <date>2010-07-01 07:14:48 -0700</date>
            <delta_ts>2010-07-01 07:38:57 -0700</delta_ts>
            <desc>linux build fixes</desc>
            <filename>qtwebkit2-stdlib.patch</filename>
            <type>text/plain</type>
            <size>2615</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjI1NykKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDctMDEgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtp
LmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtR
dF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMworICAgICAgICAKKyAgICAgICAgSW5jbHVk
ZSBzb21lIHN0ZGxpYiBoZWFkZXJzIHRvIGZpeCBsaW51eCBidWlsZC4KKworICAgICAgICAqIFBs
YXRmb3JtL0NvcmVJUEMvQXJndW1lbnREZWNvZGVyLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9D
b3JlSVBDL0FyZ3VtZW50RW5jb2Rlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvYWRl
ckNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcDoKKwogMjAxMC0wNy0wMSAgQW50dGkgS29p
dmlzdG8gIDxrb2l2aXN0b0Bpa2kuZmk+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4uCkluZGV4OiBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1l
bnREZWNvZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJn
dW1lbnREZWNvZGVyLmNwcAkocmV2aXNpb24gNjIyNTIpCisrKyBXZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvQXJndW1lbnREZWNvZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsOCBA
QAogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAKKyNpbmNsdWRlIDxzdGRpby5oPgor
CiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKIEFyZ3VtZW50RGVjb2Rlcjo6QXJndW1lbnREZWNvZGVy
KGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUpCkluZGV4OiBXZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRFbmNvZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRFbmNvZGVyLmNwcAkocmV2aXNpb24gNjIyNTIp
CisrKyBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRFbmNvZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgog
CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPHN0ZGlvLmg+CiAKIG5hbWVzcGFjZSBD
b3JlSVBDIHsKIApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCShyZXZp
c2lvbiA2MjI1MikKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJXZWJMb2FkZXJDbGllbnQu
aCIKIAogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZp
c2lvbiA2MjI1MikKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIK
IAogI2luY2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgogCiAj
aWZuZGVmIE5ERUJVRwogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KSW5k
ZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAJKHJldmlzaW9uIDYyMjUyKQorKysgV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3
IEBACiAjaW5jbHVkZSAiV2ViVUlDbGllbnQuaCIKIAogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgor
I2luY2x1ZGUgPHN0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60244</attachid>
            <date>2010-07-01 07:18:07 -0700</date>
            <delta_ts>2010-07-01 07:35:34 -0700</delta_ts>
            <desc>Initial Qt API for WK2</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>32578</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBmMWY0ODFkNjU2MWFlZDNjYWU0ZGEwNTlhZDViZDk2YTM5NTRjOTYyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDEwOjM5OjE1
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgaW5pdGlhbCBRdCBBUEkgZm9yIFdlYktpdDIKCiog
VUlQcm9jZXNzL0FQSS9xdC9XS1ZpZXcuaDogQWRkZWQuCiogVUlQcm9jZXNzL0FQSS9xdC9xZ3Jh
cGhpY3N3a3ZpZXcuY3BwOiBBZGRlZC4KKFFHcmFwaGljc1dLVmlld1ByaXZhdGU6OnBhZ2VSZWYp
OgooUUdyYXBoaWNzV0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcpOgooUUdyYXBoaWNzV0tWaWV3Ojp+
UUdyYXBoaWNzV0tWaWV3KToKKFFHcmFwaGljc1dLVmlldzo6cGFnZSk6CihRR3JhcGhpY3NXS1Zp
ZXc6OnBhaW50KToKKFFHcmFwaGljc1dLVmlldzo6c2V0R2VvbWV0cnkpOgooUUdyYXBoaWNzV0tW
aWV3Ojpsb2FkKToKKFFHcmFwaGljc1dLVmlldzo6c2V0VXJsKToKKFFHcmFwaGljc1dLVmlldzo6
dXJsKToKKFFHcmFwaGljc1dLVmlldzo6dGl0bGUpOgooUUdyYXBoaWNzV0tWaWV3Ojp0cmlnZ2Vy
UGFnZUFjdGlvbik6CihRR3JhcGhpY3NXS1ZpZXc6OmJhY2spOgooUUdyYXBoaWNzV0tWaWV3Ojpm
b3J3YXJkKToKKFFHcmFwaGljc1dLVmlldzo6cmVsb2FkKToKKFFHcmFwaGljc1dLVmlldzo6c3Rv
cCk6CihRR3JhcGhpY3NXS1ZpZXc6Oml0ZW1DaGFuZ2UpOgooUUdyYXBoaWNzV0tWaWV3OjpldmVu
dCk6CihRR3JhcGhpY3NXS1ZpZXc6OnNpemVIaW50KToKKFFHcmFwaGljc1dLVmlldzo6aW5wdXRN
ZXRob2RRdWVyeSk6CihRR3JhcGhpY3NXS1ZpZXc6OmtleVByZXNzRXZlbnQpOgooUUdyYXBoaWNz
V0tWaWV3OjprZXlSZWxlYXNlRXZlbnQpOgooUUdyYXBoaWNzV0tWaWV3Ojpob3Zlck1vdmVFdmVu
dCk6CihRR3JhcGhpY3NXS1ZpZXc6Om1vdXNlTW92ZUV2ZW50KToKKFFHcmFwaGljc1dLVmlldzo6
bW91c2VQcmVzc0V2ZW50KToKKFFHcmFwaGljc1dLVmlldzo6bW91c2VSZWxlYXNlRXZlbnQpOgoo
UUdyYXBoaWNzV0tWaWV3Ojptb3VzZURvdWJsZUNsaWNrRXZlbnQpOgooUUdyYXBoaWNzV0tWaWV3
Ojp3aGVlbEV2ZW50KToKKFFHcmFwaGljc1dLVmlld1ByaXZhdGU6OlFHcmFwaGljc1dLVmlld1By
aXZhdGUpOgooUUdyYXBoaWNzV0tWaWV3Ojp2aXNpYmxlUmVjdCk6CihRR3JhcGhpY3NXS1ZpZXdQ
cml2YXRlOjpfcV9zY2FsZUNoYW5nZWQpOgooUUdyYXBoaWNzV0tWaWV3UHJpdmF0ZTo6Y29tbWl0
U2NhbGUpOgoqIFVJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3Lmg6IEFkZGVkLgoqIFVJ
UHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHA6IEFkZGVkLgooUVdLUGFnZVByaXZhdGU6OlFXS1Bh
Z2VQcml2YXRlKToKKFFXS1BhZ2VQcml2YXRlOjp+UVdLUGFnZVByaXZhdGUpOgooUVdLUGFnZVBy
aXZhdGU6OmluaXQpOgooUVdLUGFnZVByaXZhdGU6OnRvb2xUaXBDaGFuZ2VkKToKKFFXS1BhZ2VQ
cml2YXRlOjpwYWludCk6CihRV0tQYWdlUHJpdmF0ZTo6a2V5UHJlc3NFdmVudCk6CihRV0tQYWdl
UHJpdmF0ZTo6a2V5UmVsZWFzZUV2ZW50KToKKFFXS1BhZ2VQcml2YXRlOjptb3VzZU1vdmVFdmVu
dCk6CihRV0tQYWdlUHJpdmF0ZTo6bW91c2VQcmVzc0V2ZW50KToKKFFXS1BhZ2VQcml2YXRlOjpt
b3VzZVJlbGVhc2VFdmVudCk6CihRV0tQYWdlUHJpdmF0ZTo6bW91c2VEb3VibGVDbGlja0V2ZW50
KToKKFFXS1BhZ2VQcml2YXRlOjp3aGVlbEV2ZW50KToKKFFXS1BhZ2VQcml2YXRlOjp1cGRhdGVB
Y3Rpb24pOgooUVdLUGFnZVByaXZhdGU6OnVwZGF0ZU5hdmlnYXRpb25BY3Rpb25zKToKKFFXS1Bh
Z2VQcml2YXRlOjpfcV93ZWJBY3Rpb25UcmlnZ2VyZWQpOgooUVdLUGFnZTo6UVdLUGFnZSk6CihR
V0tQYWdlOjp+UVdLUGFnZSk6CihRV0tQYWdlOjpwYWdlUmVmKToKKFFXS1BhZ2U6OnNldENyZWF0
ZU5ld1BhZ2VGdW5jdGlvbik6CihRV0tQYWdlOjpsb2FkKToKKFFXS1BhZ2U6OnNldFVybCk6CihR
V0tQYWdlOjp1cmwpOgooUVdLUGFnZTo6dGl0bGUpOgooUVdLUGFnZTo6c2V0Vmlld3BvcnRTaXpl
KToKKFFXS1BhZ2U6OnJlcXVlc3Rab29tUmVjdCk6CihRV0tQYWdlOjp0cmlnZ2VyQWN0aW9uKToK
KFFXS1BhZ2U6OmFjdGlvbik6CiogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmg6IEFkZGVkLgoq
IFVJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmg6IEFkZGVkLgooUVdLUGFnZVByaXZhdGU6Omdl
dCk6CihRV0tQYWdlUHJpdmF0ZTo6cHJvY2Vzc0RpZEV4aXQpOgooUVdLUGFnZVByaXZhdGU6OnBy
b2Nlc3NEaWRSZXZpdmUpOgooUVdLUGFnZVByaXZhdGU6OnRha2VGb2N1cyk6Ci0tLQogV2ViS2l0
Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDc4ICsrKysrKwogV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L1dLVmlldy5oICAgICAgICAgICAgfCAgIDI1ICsrCiBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcCB8ICAyODIgKysrKysrKysr
KysrKysrKysrKysrCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3Lmgg
ICB8ICAgNzkgKysrKysrCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAgICAg
ICAgICB8ICAzNDggKysrKysrKysrKysrKysrKysrKysrKysrKysKIFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2twYWdlLmggICAgICAgICAgIHwgICA3MyArKysrKysKIFdlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2twYWdlX3AuaCAgICAgICAgIHwgICA3MiArKysrKysKIDcgZmlsZXMgY2hh
bmdlZCwgOTU3IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L1dLVmlldy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5jcHAKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmgKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCgpkaWZmIC0t
Z2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MTU0M2I5
Li5kY2ZjOGUyIDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDgzIEBACiAyMDEwLTA3LTAxICBLZW5uZXRoIFJvaGRlIENocmlz
dGlhbnNlbiAgPGtlbm5ldGguY2hyaXN0aWFuc2VuQG9wZW5ib3NzYS5vcmc+CiAKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBJbml0aWFsIFdlYktp
dDIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQwMjMzCisKKyAgICAgICAgQWRkIGluaXRpYWwgUXQgQVBJIGZvciBXZWJLaXQy
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L1dLVmlldy5oOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5jcHA6IEFkZGVkLgorICAgICAgICAo
UUdyYXBoaWNzV0tWaWV3UHJpdmF0ZTo6cGFnZVJlZik6CisgICAgICAgIChRR3JhcGhpY3NXS1Zp
ZXc6OlFHcmFwaGljc1dLVmlldyk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6On5RR3JhcGhp
Y3NXS1ZpZXcpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3OjpwYWdlKToKKyAgICAgICAgKFFH
cmFwaGljc1dLVmlldzo6cGFpbnQpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3OjpzZXRHZW9t
ZXRyeSk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OmxvYWQpOgorICAgICAgICAoUUdyYXBo
aWNzV0tWaWV3OjpzZXRVcmwpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3Ojp1cmwpOgorICAg
ICAgICAoUUdyYXBoaWNzV0tWaWV3Ojp0aXRsZSk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6
OnRyaWdnZXJQYWdlQWN0aW9uKToKKyAgICAgICAgKFFHcmFwaGljc1dLVmlldzo6YmFjayk6Cisg
ICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OmZvcndhcmQpOgorICAgICAgICAoUUdyYXBoaWNzV0tW
aWV3OjpyZWxvYWQpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3OjpzdG9wKToKKyAgICAgICAg
KFFHcmFwaGljc1dLVmlldzo6aXRlbUNoYW5nZSk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6
OmV2ZW50KToKKyAgICAgICAgKFFHcmFwaGljc1dLVmlldzo6c2l6ZUhpbnQpOgorICAgICAgICAo
UUdyYXBoaWNzV0tWaWV3OjppbnB1dE1ldGhvZFF1ZXJ5KToKKyAgICAgICAgKFFHcmFwaGljc1dL
Vmlldzo6a2V5UHJlc3NFdmVudCk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OmtleVJlbGVh
c2VFdmVudCk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OmhvdmVyTW92ZUV2ZW50KToKKyAg
ICAgICAgKFFHcmFwaGljc1dLVmlldzo6bW91c2VNb3ZlRXZlbnQpOgorICAgICAgICAoUUdyYXBo
aWNzV0tWaWV3Ojptb3VzZVByZXNzRXZlbnQpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3Ojpt
b3VzZVJlbGVhc2VFdmVudCk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6Om1vdXNlRG91Ymxl
Q2xpY2tFdmVudCk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OndoZWVsRXZlbnQpOgorICAg
ICAgICAoUUdyYXBoaWNzV0tWaWV3UHJpdmF0ZTo6UUdyYXBoaWNzV0tWaWV3UHJpdmF0ZSk6Cisg
ICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OnZpc2libGVSZWN0KToKKyAgICAgICAgKFFHcmFwaGlj
c1dLVmlld1ByaXZhdGU6Ol9xX3NjYWxlQ2hhbmdlZCk6CisgICAgICAgIChRR3JhcGhpY3NXS1Zp
ZXdQcml2YXRlOjpjb21taXRTY2FsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZ3Jh
cGhpY3N3a3ZpZXcuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdl
LmNwcDogQWRkZWQuCisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6UVdLUGFnZVByaXZhdGUpOgor
ICAgICAgICAoUVdLUGFnZVByaXZhdGU6On5RV0tQYWdlUHJpdmF0ZSk6CisgICAgICAgIChRV0tQ
YWdlUHJpdmF0ZTo6aW5pdCk6CisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6dG9vbFRpcENoYW5n
ZWQpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6OnBhaW50KToKKyAgICAgICAgKFFXS1BhZ2VQ
cml2YXRlOjprZXlQcmVzc0V2ZW50KToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjprZXlSZWxl
YXNlRXZlbnQpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6Om1vdXNlTW92ZUV2ZW50KToKKyAg
ICAgICAgKFFXS1BhZ2VQcml2YXRlOjptb3VzZVByZXNzRXZlbnQpOgorICAgICAgICAoUVdLUGFn
ZVByaXZhdGU6Om1vdXNlUmVsZWFzZUV2ZW50KToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjpt
b3VzZURvdWJsZUNsaWNrRXZlbnQpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6OndoZWVsRXZl
bnQpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6OnVwZGF0ZUFjdGlvbik6CisgICAgICAgIChR
V0tQYWdlUHJpdmF0ZTo6dXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMpOgorICAgICAgICAoUVdLUGFn
ZVByaXZhdGU6Ol9xX3dlYkFjdGlvblRyaWdnZXJlZCk6CisgICAgICAgIChRV0tQYWdlOjpRV0tQ
YWdlKToKKyAgICAgICAgKFFXS1BhZ2U6On5RV0tQYWdlKToKKyAgICAgICAgKFFXS1BhZ2U6OnBh
Z2VSZWYpOgorICAgICAgICAoUVdLUGFnZTo6c2V0Q3JlYXRlTmV3UGFnZUZ1bmN0aW9uKToKKyAg
ICAgICAgKFFXS1BhZ2U6OmxvYWQpOgorICAgICAgICAoUVdLUGFnZTo6c2V0VXJsKToKKyAgICAg
ICAgKFFXS1BhZ2U6OnVybCk6CisgICAgICAgIChRV0tQYWdlOjp0aXRsZSk6CisgICAgICAgIChR
V0tQYWdlOjpzZXRWaWV3cG9ydFNpemUpOgorICAgICAgICAoUVdLUGFnZTo6cmVxdWVzdFpvb21S
ZWN0KToKKyAgICAgICAgKFFXS1BhZ2U6OnRyaWdnZXJBY3Rpb24pOgorICAgICAgICAoUVdLUGFn
ZTo6YWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaDogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaDogQWRkZWQuCisgICAgICAg
IChRV0tQYWdlUHJpdmF0ZTo6Z2V0KToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjpwcm9jZXNz
RGlkRXhpdCk6CisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6cHJvY2Vzc0RpZFJldml2ZSk6Cisg
ICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6dGFrZUZvY3VzKToKKworMjAxMC0wNy0wMSAgS2VubmV0
aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3Jn
PgorCiAgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgogCiAgICAgICAgIFtRdF0g
SW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvV0tWaWV3LmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvV0tWaWV3LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDVlOWNmZQotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9XS1ZpZXcuaApAQCAtMCwwICsxLDI1IEBA
CisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIFdLVmlld19oCisjZGVmaW5lIFdLVmlld19o
CisKKyNpbmNsdWRlIDxXZWJLaXQyL3FncmFwaGljc3drdmlldy5oPgorCisjZW5kaWYgLyogV0tW
aWV3X2ggKi8KZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3
a3ZpZXcuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTZkZTMzZAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuY3BwCkBAIC0w
LDAgKzEsMjgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgInFncmFwaGljc3drdmll
dy5oIgorCisjaW5jbHVkZSAiQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHkuaCIKKyNpbmNs
dWRlICJEcmF3aW5nQXJlYVByb3h5VGlsZWQuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5j
bHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYlBh
Z2VOYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJxd2twYWdlLmgiCisjaW5jbHVkZSAicXdrcGFnZV9w
LmgiCisjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50PgorI2luY2x1ZGUgPFFHcmFw
aGljc1ZpZXc+CisjaW5jbHVkZSA8UVBhaW50ZXI+CisjaW5jbHVkZSA8UVNjcm9sbEJhcj4KKyNp
bmNsdWRlIDxRU3R5bGVPcHRpb25HcmFwaGljc0l0ZW0+CisjaW5jbHVkZSA8UXREZWJ1Zz4KKyNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1Jl
dGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdHJ1Y3QgUUdyYXBoaWNzV0tWaWV3
UHJpdmF0ZSB7CisgICAgUUdyYXBoaWNzV0tWaWV3UHJpdmF0ZShRR3JhcGhpY3NXS1ZpZXcqIHZp
ZXcpOworICAgIFdLUGFnZVJlZiBwYWdlUmVmKCkgY29uc3QgeyByZXR1cm4gcGFnZS0+cGFnZVJl
ZigpOyB9CisKKyAgICB2b2lkIF9xX3NjYWxlQ2hhbmdlZCgpOworICAgIHZvaWQgY29tbWl0U2Nh
bGUoKTsKKworICAgIFFHcmFwaGljc1dLVmlldyogcTsKKyAgICBRV0tQYWdlKiBwYWdlOworICAg
IFJ1bkxvb3A6OlRpbWVyPFFHcmFwaGljc1dLVmlld1ByaXZhdGU+IG1fc2NhbGVDb21taXRUaW1l
cjsKK307CisKK1FHcmFwaGljc1dLVmlldzo6UUdyYXBoaWNzV0tWaWV3KFdLUGFnZU5hbWVzcGFj
ZVJlZiBwYWdlTmFtZXNwYWNlUmVmLCBCYWNraW5nU3RvcmVUeXBlIGJhY2tpbmdTdG9yZVR5cGUs
IFFHcmFwaGljc0l0ZW0qIHBhcmVudCkKKyAgICA6IFFHcmFwaGljc1dpZGdldChwYXJlbnQpCisg
ICAgLCBkKG5ldyBRR3JhcGhpY3NXS1ZpZXdQcml2YXRlKHRoaXMpKQoreworICAgIHNldEZvY3Vz
UG9saWN5KFF0OjpTdHJvbmdGb2N1cyk7CisgICAgc2V0QWNjZXB0SG92ZXJFdmVudHModHJ1ZSk7
CisgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWFQcm94eTsKKyNpZiBFTkFCTEUoVElM
RURfQkFDS0lOR19TVE9SRSkKKyAgICBpZiAoYmFja2luZ1N0b3JlVHlwZSA9PSBUaWxlZCkgewor
ICAgICAgICBkcmF3aW5nQXJlYVByb3h5ID0gbmV3IERyYXdpbmdBcmVhUHJveHlUaWxlZCh0aGlz
KTsKKyAgICAgICAgY29ubmVjdCh0aGlzLCBTSUdOQUwoc2NhbGVDaGFuZ2VkKCkpLCB0aGlzLCBT
TE9UKF9xX3NjYWxlQ2hhbmdlZCgpKSk7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICAgICAgZHJh
d2luZ0FyZWFQcm94eSA9IG5ldyBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eSh0aGlzKTsK
KworICAgIGQtPnBhZ2UgPSBuZXcgUVdLUGFnZShwYWdlTmFtZXNwYWNlUmVmKTsKKyAgICBkLT5w
YWdlLT5kLT5pbml0KHNpemUoKS50b1NpemUoKSwgZHJhd2luZ0FyZWFQcm94eSk7CisgICAgY29u
bmVjdChkLT5wYWdlLCBTSUdOQUwodGl0bGVDaGFuZ2VkKFFTdHJpbmcpKSwgdGhpcywgU0lHTkFM
KHRpdGxlQ2hhbmdlZChRU3RyaW5nKSkpOworICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFMKGxv
YWRTdGFydGVkKCkpLCB0aGlzLCBTSUdOQUwobG9hZFN0YXJ0ZWQoKSkpOworICAgIGNvbm5lY3Qo
ZC0+cGFnZSwgU0lHTkFMKGxvYWRGaW5pc2hlZChib29sKSksIHRoaXMsIFNJR05BTChsb2FkRmlu
aXNoZWQoYm9vbCkpKTsKKyAgICBjb25uZWN0KGQtPnBhZ2UsIFNJR05BTChsb2FkUHJvZ3Jlc3Mo
aW50KSksIHRoaXMsIFNJR05BTChsb2FkUHJvZ3Jlc3MoaW50KSkpOworICAgIGNvbm5lY3QoZC0+
cGFnZSwgU0lHTkFMKGluaXRpYWxMYXlvdXRDb21wbGV0ZWQoKSksIHRoaXMsIFNJR05BTChpbml0
aWFsTGF5b3V0Q29tcGxldGVkKCkpKTsKKyAgICBjb25uZWN0KGQtPnBhZ2UsIFNJR05BTCh1cmxD
aGFuZ2VkKGNvbnN0IFFVcmwmKSksIHRoaXMsIFNJR05BTCh1cmxDaGFuZ2VkKGNvbnN0IFFVcmwm
KSkpOworfQorCitRR3JhcGhpY3NXS1ZpZXc6On5RR3JhcGhpY3NXS1ZpZXcoKQoreworICAgIGRl
bGV0ZSBkLT5wYWdlOworICAgIGRlbGV0ZSBkOworfQorCitRV0tQYWdlKiBRR3JhcGhpY3NXS1Zp
ZXc6OnBhZ2UoKSBjb25zdAoreworICAgIHJldHVybiBkLT5wYWdlOworfQorCit2b2lkIFFHcmFw
aGljc1dLVmlldzo6cGFpbnQoUVBhaW50ZXIqIHBhaW50ZXIsIGNvbnN0IFFTdHlsZU9wdGlvbkdy
YXBoaWNzSXRlbSogb3B0aW9uLCBRV2lkZ2V0KikKK3sKKyAgICBwYWdlKCktPmQtPnBhaW50KHBh
aW50ZXIsIG9wdGlvbi0+ZXhwb3NlZFJlY3QudG9BbGlnbmVkUmVjdCgpKTsKK30KKwordm9pZCBR
R3JhcGhpY3NXS1ZpZXc6OnNldEdlb21ldHJ5KGNvbnN0IFFSZWN0RiYgcmVjdCkKK3sKKyAgICBR
R3JhcGhpY3NXaWRnZXQ6OnNldEdlb21ldHJ5KHJlY3QpOworCisgICAgLy8gTk9URTogY2FsbCBn
ZW9tZXRyeSgpIGFzIHNldEdlb21ldHJ5IGVuc3VyZXMgdGhhdAorICAgIC8vIHRoZSBnZW9tZXRy
eSBpcyB3aXRoaW4gbGVnYWwgYm91bmRzIChtaW5pbXVtU2l6ZSwgbWF4aW11bVNpemUpCisgICAg
cGFnZSgpLT5zZXRWaWV3cG9ydFNpemUoZ2VvbWV0cnkoKS5zaXplKCkudG9TaXplKCkpOworfQor
Cit2b2lkIFFHcmFwaGljc1dLVmlldzo6bG9hZChjb25zdCBRVXJsJiB1cmwpCit7CisgICAgcGFn
ZSgpLT5sb2FkKHVybCk7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3OjpzZXRVcmwoY29uc3Qg
UVVybCYgdXJsKQoreworICAgIHBhZ2UoKS0+c2V0VXJsKHVybCk7Cit9CisKK1FVcmwgUUdyYXBo
aWNzV0tWaWV3Ojp1cmwoKSBjb25zdAoreworICAgIHJldHVybiBwYWdlKCktPnVybCgpOworfQor
CitRU3RyaW5nIFFHcmFwaGljc1dLVmlldzo6dGl0bGUoKSBjb25zdAoreworICAgIHJldHVybiBw
YWdlKCktPnRpdGxlKCk7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3Ojp0cmlnZ2VyUGFnZUFj
dGlvbihRV0tQYWdlOjpXZWJBY3Rpb24gYWN0aW9uLCBib29sIGNoZWNrZWQpCit7CisgICAgcGFn
ZSgpLT50cmlnZ2VyQWN0aW9uKGFjdGlvbiwgY2hlY2tlZCk7Cit9CisKK3ZvaWQgUUdyYXBoaWNz
V0tWaWV3OjpiYWNrKCkKK3sKKyAgICBwYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdLUGFnZTo6QmFj
ayk7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3Ojpmb3J3YXJkKCkKK3sKKyAgICBwYWdlKCkt
PnRyaWdnZXJBY3Rpb24oUVdLUGFnZTo6Rm9yd2FyZCk7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tW
aWV3OjpyZWxvYWQoKQoreworICAgIHBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV0tQYWdlOjpSZWxv
YWQpOworfQorCit2b2lkIFFHcmFwaGljc1dLVmlldzo6c3RvcCgpCit7CisgICAgcGFnZSgpLT50
cmlnZ2VyQWN0aW9uKFFXS1BhZ2U6OlN0b3ApOworfQorCisvKiEgXHJlaW1wCisqLworUVZhcmlh
bnQgUUdyYXBoaWNzV0tWaWV3OjppdGVtQ2hhbmdlKEdyYXBoaWNzSXRlbUNoYW5nZSBjaGFuZ2Us
IGNvbnN0IFFWYXJpYW50JiB2YWx1ZSkKK3sKKyAgICAvLyBIZXJlIHNvIHRoYXQgaXQgY2FuIGJl
IHJlaW1wbGVtZW50ZWQgd2l0aG91dCBicmVha2luZyBBQkkuCisgICAgcmV0dXJuIFFHcmFwaGlj
c1dpZGdldDo6aXRlbUNoYW5nZShjaGFuZ2UsIHZhbHVlKTsKK30KKworLyohIFxyZWltcAorKi8K
K2Jvb2wgUUdyYXBoaWNzV0tWaWV3OjpldmVudChRRXZlbnQqIGV2ZW50KQoreworICAgIC8vIEhl
cmUgc28gdGhhdCBpdCBjYW4gYmUgcmVpbXBsZW1lbnRlZCB3aXRob3V0IGJyZWFraW5nIEFCSS4K
KyAgICByZXR1cm4gUUdyYXBoaWNzV2lkZ2V0OjpldmVudChldmVudCk7Cit9CisKKy8qISBccmVp
bXAKKyovCitRU2l6ZUYgUUdyYXBoaWNzV0tWaWV3OjpzaXplSGludChRdDo6U2l6ZUhpbnQgd2hp
Y2gsIGNvbnN0IFFTaXplRiYgY29uc3RyYWludCkgY29uc3QKK3sKKyAgICBpZiAod2hpY2ggPT0g
UXQ6OlByZWZlcnJlZFNpemUpCisgICAgICAgIHJldHVybiBRU2l6ZUYoODAwLCA2MDApOworICAg
IHJldHVybiBRR3JhcGhpY3NXaWRnZXQ6OnNpemVIaW50KHdoaWNoLCBjb25zdHJhaW50KTsKK30K
KworLyohIFxyZWltcAorKi8KK1FWYXJpYW50IFFHcmFwaGljc1dLVmlldzo6aW5wdXRNZXRob2RR
dWVyeShRdDo6SW5wdXRNZXRob2RRdWVyeSBxdWVyeSkgY29uc3QKK3sKKyAgICAvLyBpbXBsZW1l
bnQKKyAgICByZXR1cm4gUVZhcmlhbnQoKTsKK30KKworLyohIFxyZWltcAorKi8KK3ZvaWQgUUdy
YXBoaWNzV0tWaWV3OjprZXlQcmVzc0V2ZW50KFFLZXlFdmVudCogZXYpCit7CisgICAgcGFnZSgp
LT5kLT5rZXlQcmVzc0V2ZW50KGV2KTsKK30KKworLyohIFxyZWltcAorKi8KK3ZvaWQgUUdyYXBo
aWNzV0tWaWV3OjprZXlSZWxlYXNlRXZlbnQoUUtleUV2ZW50KiBldikKK3sKKyAgICBwYWdlKCkt
PmQtPmtleVJlbGVhc2VFdmVudChldik7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3Ojpob3Zl
ck1vdmVFdmVudChRR3JhcGhpY3NTY2VuZUhvdmVyRXZlbnQqIGV2KQoreworICAgIFFHcmFwaGlj
c1NjZW5lTW91c2VFdmVudCBtZShRRXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3VzZU1vdmUpOworICAg
IG1lLnNldFBvcyhldi0+cG9zKCkpOworICAgIG1lLnNldFNjcmVlblBvcyhldi0+c2NyZWVuUG9z
KCkpOworCisgICAgcGFnZSgpLT5kLT5tb3VzZU1vdmVFdmVudCgmbWUpOworCisgICAgaWYgKCFl
di0+aXNBY2NlcHRlZCgpKQorICAgICAgICBRR3JhcGhpY3NJdGVtOjpob3Zlck1vdmVFdmVudChl
dik7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3Ojptb3VzZU1vdmVFdmVudChRR3JhcGhpY3NT
Y2VuZU1vdXNlRXZlbnQqIGV2KQoreworICAgIHBhZ2UoKS0+ZC0+bW91c2VNb3ZlRXZlbnQoZXYp
OworICAgIGlmICghZXYtPmlzQWNjZXB0ZWQoKSkKKyAgICAgICAgUUdyYXBoaWNzSXRlbTo6bW91
c2VNb3ZlRXZlbnQoZXYpOworfQorCit2b2lkIFFHcmFwaGljc1dLVmlldzo6bW91c2VQcmVzc0V2
ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXYpCit7CisgICAgcGFnZSgpLT5kLT5tb3Vz
ZVByZXNzRXZlbnQoZXYpOworICAgIGlmICghZXYtPmlzQWNjZXB0ZWQoKSkKKyAgICAgICAgUUdy
YXBoaWNzSXRlbTo6bW91c2VQcmVzc0V2ZW50KGV2KTsKK30KKwordm9pZCBRR3JhcGhpY3NXS1Zp
ZXc6Om1vdXNlUmVsZWFzZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXYpCit7Cisg
ICAgcGFnZSgpLT5kLT5tb3VzZVJlbGVhc2VFdmVudChldik7CisgICAgaWYgKCFldi0+aXNBY2Nl
cHRlZCgpKQorICAgICAgICBRR3JhcGhpY3NJdGVtOjptb3VzZVJlbGVhc2VFdmVudChldik7Cit9
CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3Ojptb3VzZURvdWJsZUNsaWNrRXZlbnQoUUdyYXBoaWNz
U2NlbmVNb3VzZUV2ZW50KiBldikKK3sKKyAgICBwYWdlKCktPmQtPm1vdXNlRG91YmxlQ2xpY2tF
dmVudChldik7CisgICAgaWYgKCFldi0+aXNBY2NlcHRlZCgpKQorICAgICAgICBRR3JhcGhpY3NJ
dGVtOjptb3VzZVJlbGVhc2VFdmVudChldik7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3Ojp3
aGVlbEV2ZW50KFFHcmFwaGljc1NjZW5lV2hlZWxFdmVudCogZXYpCit7CisgICAgcGFnZSgpLT5k
LT53aGVlbEV2ZW50KGV2KTsKKyAgICBpZiAoIWV2LT5pc0FjY2VwdGVkKCkpCisgICAgICAgIFFH
cmFwaGljc0l0ZW06OndoZWVsRXZlbnQoZXYpOworfQorCitRR3JhcGhpY3NXS1ZpZXdQcml2YXRl
OjpRR3JhcGhpY3NXS1ZpZXdQcml2YXRlKFFHcmFwaGljc1dLVmlldyogdmlldykKKyAgICA6IHEo
dmlldykKKyAgICAsIG1fc2NhbGVDb21taXRUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMs
ICZRR3JhcGhpY3NXS1ZpZXdQcml2YXRlOjpjb21taXRTY2FsZSkKK3sKK30KKworCitRUmVjdEYg
UUdyYXBoaWNzV0tWaWV3Ojp2aXNpYmxlUmVjdCgpIGNvbnN0Cit7CisgICAgaWYgKCFzY2VuZSgp
KQorICAgICAgICByZXR1cm4gUVJlY3RGKCk7CisKKyAgICBRTGlzdDxRR3JhcGhpY3NWaWV3Kj4g
dmlld3MgPSBzY2VuZSgpLT52aWV3cygpOworICAgIGlmICh2aWV3cy5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiBRUmVjdEYoKTsKKworICAgIFFHcmFwaGljc1ZpZXcqIGdyYXBoaWNzVmlldyA9
IHZpZXdzLmF0KDApOworICAgIGludCB4T2Zmc2V0ID0gZ3JhcGhpY3NWaWV3LT5ob3Jpem9udGFs
U2Nyb2xsQmFyKCktPnZhbHVlKCk7CisgICAgaW50IHlPZmZzZXQgPSBncmFwaGljc1ZpZXctPnZl
cnRpY2FsU2Nyb2xsQmFyKCktPnZhbHVlKCk7CisgICAgcmV0dXJuIG1hcFJlY3RGcm9tU2NlbmUo
UVJlY3RGKFFQb2ludEYoeE9mZnNldCwgeU9mZnNldCksIGdyYXBoaWNzVmlldy0+dmlld3BvcnQo
KS0+c2l6ZSgpKSk7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3UHJpdmF0ZTo6X3Ffc2NhbGVD
aGFuZ2VkKCkKK3sKKyNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICBtX3NjYWxl
Q29tbWl0VGltZXIuc3RhcnRPbmVTaG90KDAuMSk7CisjZW5kaWYKK30KK3ZvaWQgUUdyYXBoaWNz
V0tWaWV3UHJpdmF0ZTo6Y29tbWl0U2NhbGUoKQoreworI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQorICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhID0gcGFnZS0+ZC0+cGFn
ZS0+ZHJhd2luZ0FyZWEoKTsKKyAgICBpZiAoZHJhd2luZ0FyZWEtPnR5cGUoKSA9PSBEcmF3aW5n
QXJlYVByb3h5OjpEcmF3aW5nQXJlYVRpbGVkVHlwZSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8RHJh
d2luZ0FyZWFQcm94eVRpbGVkKj4oZHJhd2luZ0FyZWEpLT5zZXRDb250ZW50c1NjYWxlKHEtPnNj
YWxlKCkpOworI2VuZGlmCit9CisKKyNpbmNsdWRlICJtb2NfcWdyYXBoaWNzd2t2aWV3LmNwcCIK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuaCBi
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lM2Q4NWU2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5oCkBAIC0wLDAgKzEsNzkgQEAKKyNp
Zm5kZWYgcWdyYXBoaWNzd2t2aWV3X2gKKyNkZWZpbmUgcWdyYXBoaWNzd2t2aWV3X2gKKworI2lu
Y2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+Cisj
aW5jbHVkZSA8UUdyYXBoaWNzV2lkZ2V0PgorI2luY2x1ZGUgInF3a3BhZ2UuaCIKKworY2xhc3Mg
UUdyYXBoaWNzV0tWaWV3UHJpdmF0ZTsKKworV0tTdHJpbmdSZWYgV0tTdHJpbmdDcmVhdGVXaXRo
UVN0cmluZyhRU3RyaW5nIHFTdHJpbmcpOworUVN0cmluZyBXS1N0cmluZ0NvcHlRU3RyaW5nKFdL
U3RyaW5nUmVmIHN0cmluZ1JlZik7CisKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFFHcmFwaGljc1dL
VmlldyA6IHB1YmxpYyBRR3JhcGhpY3NXaWRnZXQgeworICAgIFFfT0JKRUNUCisgICAgUV9QUk9Q
RVJUWShRU3RyaW5nIHRpdGxlIFJFQUQgdGl0bGUpCisgICAgUV9QUk9QRVJUWShRVXJsIHVybCBS
RUFEIHVybCBXUklURSBzZXRVcmwpCisKK3B1YmxpYzoKKyAgICBlbnVtIEJhY2tpbmdTdG9yZVR5
cGUgeyBTaW1wbGUsIFRpbGVkIH07CisgICAgUUdyYXBoaWNzV0tWaWV3KFdLUGFnZU5hbWVzcGFj
ZVJlZiBuYW1lc3BhY2VSZWYsIEJhY2tpbmdTdG9yZVR5cGUgYmFja2luZ1N0b3JlVHlwZSA9IFNp
bXBsZSwgUUdyYXBoaWNzSXRlbSogcGFyZW50ID0gMCk7CisKKyAgICB2aXJ0dWFsIH5RR3JhcGhp
Y3NXS1ZpZXcoKTsKKworICAgIFFXS1BhZ2UqIHBhZ2UoKSBjb25zdDsKKworICAgIHZpcnR1YWwg
dm9pZCBzZXRHZW9tZXRyeShjb25zdCBRUmVjdEYmKTsKKworICAgIHZvaWQgbG9hZChjb25zdCBR
VXJsJik7CisgICAgdm9pZCBzZXRVcmwoY29uc3QgUVVybCYpOworICAgIFFVcmwgdXJsKCkgY29u
c3Q7CisKKyAgICBRU3RyaW5nIHRpdGxlKCkgY29uc3Q7CisKKyAgICB2b2lkIHRyaWdnZXJQYWdl
QWN0aW9uKFFXS1BhZ2U6OldlYkFjdGlvbiBhY3Rpb24sIGJvb2wgY2hlY2tlZCA9IGZhbHNlKTsK
KworICAgIHZpcnR1YWwgdm9pZCBwYWludChRUGFpbnRlciosIGNvbnN0IFFTdHlsZU9wdGlvbkdy
YXBoaWNzSXRlbSosIFFXaWRnZXQqKTsKKyAgICB2aXJ0dWFsIFFWYXJpYW50IGl0ZW1DaGFuZ2Uo
R3JhcGhpY3NJdGVtQ2hhbmdlLCBjb25zdCBRVmFyaWFudCYpOworICAgIHZpcnR1YWwgYm9vbCBl
dmVudChRRXZlbnQqKTsKKyAgICB2aXJ0dWFsIFFTaXplRiBzaXplSGludChRdDo6U2l6ZUhpbnQs
IGNvbnN0IFFTaXplRiYpIGNvbnN0OworICAgIHZpcnR1YWwgUVZhcmlhbnQgaW5wdXRNZXRob2RR
dWVyeShRdDo6SW5wdXRNZXRob2RRdWVyeSkgY29uc3Q7CisKKyAgICAvLyBGSVhNRTogc2hvdWxk
IG5vdCBiZSBwdWJsaWMKKyAgICB2aXJ0dWFsIFFSZWN0RiB2aXNpYmxlUmVjdCgpIGNvbnN0Owor
CitwdWJsaWM6CisgICAgUV9TSUdOQUwgdm9pZCB0aXRsZUNoYW5nZWQoY29uc3QgUVN0cmluZyYg
dGl0bGUpOworICAgIFFfU0lHTkFMIHZvaWQgbG9hZFN0YXJ0ZWQoKTsKKyAgICBRX1NJR05BTCB2
b2lkIGxvYWRGaW5pc2hlZChib29sIG9rKTsKKyAgICBRX1NJR05BTCB2b2lkIGxvYWRQcm9ncmVz
cyhpbnQgcHJvZ3Jlc3MpOworICAgIFFfU0lHTkFMIHZvaWQgaW5pdGlhbExheW91dENvbXBsZXRl
ZCgpOworICAgIFFfU0lHTkFMIHZvaWQgdXJsQ2hhbmdlZChjb25zdCBRVXJsJik7CisKK3B1Ymxp
YyBRX1NMT1RTOgorICAgIHZvaWQgYmFjaygpOworICAgIHZvaWQgZm9yd2FyZCgpOworICAgIHZv
aWQgcmVsb2FkKCk7CisgICAgdm9pZCBzdG9wKCk7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFs
IHZvaWQga2V5UHJlc3NFdmVudChRS2V5RXZlbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQga2V5UmVs
ZWFzZUV2ZW50KFFLZXlFdmVudCopOworICAgIHZpcnR1YWwgdm9pZCBtb3VzZU1vdmVFdmVudChR
R3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbW91c2VQcmVzc0V2
ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCopOworICAgIHZpcnR1YWwgdm9pZCBtb3VzZVJl
bGVhc2VFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
bW91c2VEb3VibGVDbGlja0V2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCopOworICAgIHZp
cnR1YWwgdm9pZCB3aGVlbEV2ZW50KFFHcmFwaGljc1NjZW5lV2hlZWxFdmVudCopOworCisgICAg
dmlydHVhbCB2b2lkIGhvdmVyTW92ZUV2ZW50KFFHcmFwaGljc1NjZW5lSG92ZXJFdmVudCopOwor
Citwcml2YXRlOgorICAgIFFfUFJJVkFURV9TTE9UKGQsIHZvaWQgX3Ffc2NhbGVDaGFuZ2VkKCkp
OworCisgICAgUUdyYXBoaWNzV0tWaWV3UHJpdmF0ZSogZDsKKyAgICBmcmllbmQgY2xhc3MgUUdy
YXBoaWNzV0tWaWV3UHJpdmF0ZTsKK307CisKKyNlbmRpZiAvKiBxZ3JhcGhpY3N3a3ZpZXdfaCAq
LwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwIGIvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmI5ODUzOGIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrcGFnZS5jcHAKQEAgLTAsMCArMSwzNDggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3Jh
bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLwor
CisjaW5jbHVkZSAicXdrcGFnZS5oIgorI2luY2x1ZGUgInF3a3BhZ2VfcC5oIgorCisjaW5jbHVk
ZSAiRGVmYXVsdFBhZ2VMb2FkZXJDbGllbnRDYWxsYmFja3NRdC5oIgorI2luY2x1ZGUgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKyNpbmNsdWRlICJX
S1N0cmluZ1F0LmgiCisjaW5jbHVkZSAiV0tVUkxRdC5oIgorI2luY2x1ZGUgPFFBY3Rpb24+Cisj
aW5jbHVkZSA8UUFwcGxpY2F0aW9uPgorI2luY2x1ZGUgPFFHcmFwaGljc1NjZW5lTW91c2VFdmVu
dD4KKyNpbmNsdWRlIDxRU3R5bGU+CisjaW5jbHVkZSA8UXREZWJ1Zz4KKyNpbmNsdWRlIDxXZWJL
aXQyL1dLRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworCitRV0tQYWdl
UHJpdmF0ZTo6UVdLUGFnZVByaXZhdGUoUVdLUGFnZSogcXEsIFdLUGFnZU5hbWVzcGFjZVJlZiBu
YW1lc3BhY2VSZWYpCisgICAgOiBxKHFxKQorICAgICwgY3JlYXRlTmV3UGFnZUZuKDApCit7Cisg
ICAgbWVtc2V0KGFjdGlvbnMsIDAsIHNpemVvZihhY3Rpb25zKSk7CisgICAgcGFnZSA9IHRvV0so
bmFtZXNwYWNlUmVmKS0+Y3JlYXRlV2ViUGFnZSgpOworICAgIHBhZ2UtPnNldFBhZ2VDbGllbnQo
dGhpcyk7Cit9CisKK1FXS1BhZ2VQcml2YXRlOjp+UVdLUGFnZVByaXZhdGUoKQoreworICAgIHBh
Z2UtPmNsb3NlKCk7Cit9CisKK3ZvaWQgUVdLUGFnZVByaXZhdGU6OmluaXQoY29uc3QgUVNpemUm
IHZpZXdwb3J0U2l6ZSwgRHJhd2luZ0FyZWFQcm94eSogcHJveHkpCit7CisgICAgcGFnZS0+aW5p
dGlhbGl6ZVdlYlBhZ2UoSW50U2l6ZSh2aWV3cG9ydFNpemUpLCBwcm94eSk7Cit9CisKK3ZvaWQg
UVdLUGFnZVByaXZhdGU6OnRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgbmV3VG9vbHRpcCkKK3sKKyAgICBlbWl0IHEtPnN0YXR1c0Jhck1lc3NhZ2UoUVN0cmluZyhu
ZXdUb29sdGlwKSk7Cit9CisKK3ZvaWQgUVdLUGFnZVByaXZhdGU6OnBhaW50KFFQYWludGVyKiBw
YWludGVyLCBRUmVjdCBhcmVhKQoreworICAgIHBhaW50ZXItPnNhdmUoKTsKKworICAgIHBhaW50
ZXItPnNldEJydXNoKFF0Ojp3aGl0ZSk7CisgICAgcGFpbnRlci0+ZHJhd1JlY3QoYXJlYSk7CisK
KyAgICBpZiAocGFnZS0+aXNWYWxpZCgpICYmIHBhZ2UtPmRyYXdpbmdBcmVhKCkpCisgICAgICAg
IHBhZ2UtPmRyYXdpbmdBcmVhKCktPnBhaW50KEludFJlY3QoYXJlYSksIHBhaW50ZXIpOworCisg
ICAgcGFpbnRlci0+cmVzdG9yZSgpOworfQorCit2b2lkIFFXS1BhZ2VQcml2YXRlOjprZXlQcmVz
c0V2ZW50KFFLZXlFdmVudCogZXYpCit7CisgICAgV2ViS2V5Ym9hcmRFdmVudCBrZXlib2FyZEV2
ZW50ID0gV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2KTsKKyAgICBw
YWdlLT5rZXlFdmVudChrZXlib2FyZEV2ZW50KTsKK30KKwordm9pZCBRV0tQYWdlUHJpdmF0ZTo6
a2V5UmVsZWFzZUV2ZW50KFFLZXlFdmVudCogZXYpCit7CisgICAgV2ViS2V5Ym9hcmRFdmVudCBr
ZXlib2FyZEV2ZW50ID0gV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2
KTsKKyAgICBwYWdlLT5rZXlFdmVudChrZXlib2FyZEV2ZW50KTsKK30KKwordm9pZCBRV0tQYWdl
UHJpdmF0ZTo6bW91c2VNb3ZlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldikKK3sK
KyAgICAvLyBGb3Igc29tZSByZWFzb24gbW91c2UgcHJlc3MgcmVzdWx0cyBpbiBtb3VzZSBob3Zl
ciAod2hpY2ggaXMKKyAgICAvLyBjb252ZXJ0ZWQgdG8gbW91c2UgbW92ZSBmb3IgV2ViS2l0KS4g
V2UgaWdub3JlIHRoZXNlIGhvdmVyCisgICAgLy8gZXZlbnRzIGJ5IGNvbXBhcmluZyBsYXN0UG9z
IHdpdGggbmV3UG9zLgorICAgIC8vIE5PVEU6IGxhc3RQb3MgZnJvbSB0aGUgZXZlbnQgYWx3YXlz
IGNvbWVzIGVtcHR5LCBzbyB3ZSB3b3JrCisgICAgLy8gYXJvdW5kIHRoYXQgaGVyZS4KKyAgICBz
dGF0aWMgUVBvaW50RiBsYXN0UG9zID0gUVBvaW50RigpOworICAgIGlmIChsYXN0UG9zID09IGV2
LT5wb3MoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGxhc3RQb3MgPSBldi0+cG9zKCk7CisKKyAg
ICBXZWJNb3VzZUV2ZW50IG1vdXNlRXZlbnQgPSBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1v
dXNlRXZlbnQoZXYsIDApOworICAgIHBhZ2UtPm1vdXNlRXZlbnQobW91c2VFdmVudCk7Cit9CisK
K3ZvaWQgUVdLUGFnZVByaXZhdGU6Om1vdXNlUHJlc3NFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNl
RXZlbnQqIGV2KQoreworICAgIFdlYk1vdXNlRXZlbnQgbW91c2VFdmVudCA9IFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChldiwgMSk7CisgICAgcGFnZS0+bW91c2VFdmVudCht
b3VzZUV2ZW50KTsKK30KKwordm9pZCBRV0tQYWdlUHJpdmF0ZTo6bW91c2VSZWxlYXNlRXZlbnQo
UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldikKK3sKKyAgICBXZWJNb3VzZUV2ZW50IG1vdXNl
RXZlbnQgPSBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXYsIDApOworICAg
IHBhZ2UtPm1vdXNlRXZlbnQobW91c2VFdmVudCk7Cit9CisKK3ZvaWQgUVdLUGFnZVByaXZhdGU6
Om1vdXNlRG91YmxlQ2xpY2tFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQorewor
ICAgIFdlYk1vdXNlRXZlbnQgbW91c2VFdmVudCA9IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2Vi
TW91c2VFdmVudChldiwgMik7CisgICAgcGFnZS0+bW91c2VFdmVudChtb3VzZUV2ZW50KTsKK30K
Kwordm9pZCBRV0tQYWdlUHJpdmF0ZTo6d2hlZWxFdmVudChRR3JhcGhpY3NTY2VuZVdoZWVsRXZl
bnQqIGV2KQoreworICAgIFdlYldoZWVsRXZlbnQgd2hlZWxFdmVudCA9IFdlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViV2hlZWxFdmVudChldik7CisgICAgcGFnZS0+d2hlZWxFdmVudCh3aGVlbEV2
ZW50KTsKK30KKwordm9pZCBRV0tQYWdlUHJpdmF0ZTo6dXBkYXRlQWN0aW9uKFFXS1BhZ2U6Oldl
YkFjdGlvbiBhY3Rpb24pCit7CisjaWZkZWYgUVRfTk9fQUNUSU9OCisgICAgUV9VTlVTRUQoYWN0
aW9uKQorI2Vsc2UKKyAgICBRQWN0aW9uKiBhID0gYWN0aW9uc1thY3Rpb25dOworICAgIGlmICgh
YSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBlbmFibGVkID0gYS0+aXNFbmFibGVkKCk7
CisgICAgYm9vbCBjaGVja2VkID0gYS0+aXNDaGVja2VkKCk7CisKKyAgICBzd2l0Y2ggKGFjdGlv
bikgeworICAgIGNhc2UgUVdLUGFnZTo6QmFjazoKKyAgICAgICAgcGFnZS0+Y2FuR29CYWNrKCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUVdLUGFnZTo6Rm9yd2FyZDoKKyAgICAgICAgcGFn
ZS0+Y2FuR29Gb3J3YXJkKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUVdLUGFnZTo6U3Rv
cDoKKyAgICAgICAgLy8gRklYTUUKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRV0tQYWdlOjpS
ZWxvYWQ6CisgICAgICAgIC8vIEZJWE1FCisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGEtPnNldEVuYWJsZWQoZW5hYmxlZCk7CisKKyAg
ICBpZiAoYS0+aXNDaGVja2FibGUoKSkKKyAgICAgICAgYS0+c2V0Q2hlY2tlZChjaGVja2VkKTsK
KyNlbmRpZiAvLyBRVF9OT19BQ1RJT04KK30KKworLy8gRklYTUU6IGhvb2sgdXAKK3ZvaWQgUVdL
UGFnZVByaXZhdGU6OnVwZGF0ZU5hdmlnYXRpb25BY3Rpb25zKCkKK3sKKyAgICB1cGRhdGVBY3Rp
b24oUVdLUGFnZTo6QmFjayk7CisgICAgdXBkYXRlQWN0aW9uKFFXS1BhZ2U6OkZvcndhcmQpOwor
ICAgIHVwZGF0ZUFjdGlvbihRV0tQYWdlOjpTdG9wKTsKKyAgICB1cGRhdGVBY3Rpb24oUVdLUGFn
ZTo6UmVsb2FkKTsKK30KKworI2lmbmRlZiBRVF9OT19BQ1RJT04KK3ZvaWQgUVdLUGFnZVByaXZh
dGU6Ol9xX3dlYkFjdGlvblRyaWdnZXJlZChib29sIGNoZWNrZWQpCit7CisgICAgUUFjdGlvbiog
YSA9IHFvYmplY3RfY2FzdDxRQWN0aW9uKj4ocS0+c2VuZGVyKCkpOworICAgIGlmICghYSkKKyAg
ICAgICAgcmV0dXJuOworICAgIFFXS1BhZ2U6OldlYkFjdGlvbiBhY3Rpb24gPSBzdGF0aWNfY2Fz
dDxRV0tQYWdlOjpXZWJBY3Rpb24+KGEtPmRhdGEoKS50b0ludCgpKTsKKyAgICBxLT50cmlnZ2Vy
QWN0aW9uKGFjdGlvbiwgY2hlY2tlZCk7Cit9CisjZW5kaWYgLy8gUVRfTk9fQUNUSU9OCisKKwor
CisKK1FXS1BhZ2U6OlFXS1BhZ2UoV0tQYWdlTmFtZXNwYWNlUmVmIG5hbWVzcGFjZVJlZikKKyAg
ICA6IGQobmV3IFFXS1BhZ2VQcml2YXRlKHRoaXMsIG5hbWVzcGFjZVJlZikpCit7CisgICAgV0tQ
YWdlTG9hZGVyQ2xpZW50IGxvYWRDbGllbnQgPSB7CisgICAgICAgIDAsICAgICAgLyogdmVyc2lv
biAqLworICAgICAgICB0aGlzLCAgIC8qIGNsaWVudEluZm8gKi8KKyAgICAgICAgcXRfd2tfZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSwKKyAgICAgICAgcXRfd2tfZGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUsCisgICAgICAgIHF0X3drX2Rp
ZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSwKKyAgICAgICAgcXRfd2tfZGlk
Q29tbWl0TG9hZEZvckZyYW1lLAorICAgICAgICBxdF93a19kaWRGaW5pc2hMb2FkRm9yRnJhbWUs
CisgICAgICAgIHF0X3drX2RpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUsCisgICAgICAgIHF0
X3drX2RpZFJlY2VpdmVUaXRsZUZvckZyYW1lLAorICAgICAgICBxdF93a19kaWRGaXJzdExheW91
dEZvckZyYW1lLAorICAgICAgICBxdF93a19kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
b3JGcmFtZSwKKyAgICAgICAgcXRfd2tfZGlkU3RhcnRQcm9ncmVzcywKKyAgICAgICAgcXRfd2tf
ZGlkQ2hhbmdlUHJvZ3Jlc3MsCisgICAgICAgIHF0X3drX2RpZEZpbmlzaFByb2dyZXNzLAorICAg
ICAgICBxdF93a19kaWRCZWNvbWVVbnJlc3BvbnNpdmUsCisgICAgICAgIHF0X3drX2RpZEJlY29t
ZVJlc3BvbnNpdmUKKyAgICB9OworICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQocGFnZVJl
ZigpLCAmbG9hZENsaWVudCk7CisKKyAgICBXS1BhZ2VVSUNsaWVudCB1aUNsaWVudCA9IHsKKyAg
ICAgICAgMCwgICAgICAvKiB2ZXJzaW9uICovCisgICAgICAgIHRoaXMsICAgLyogY2xpZW50SW5m
byAqLworICAgICAgICBxdF93a19jcmVhdGVOZXdQYWdlLAorICAgICAgICBxdF93a19zaG93UGFn
ZSwKKyAgICAgICAgcXRfd2tfY2xvc2UsCisgICAgICAgIHF0X3drX3J1bkphdmFTY3JpcHRBbGVy
dCwKKyAgICAgICAgcXRfd2tfY29udGVudHNTaXplQ2hhbmdlZCwKKyAgICAgICAgcXRfd2tfem9v
bVJlY3RSZWNlaXZlZAorICAgIH07CisgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2VSZWYo
KSwgJnVpQ2xpZW50KTsKK30KKworUVdLUGFnZTo6flFXS1BhZ2UoKQoreworICAgIGRlbGV0ZSBk
OworfQorCitXS1BhZ2VSZWYgUVdLUGFnZTo6cGFnZVJlZigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHRvUmVmKGQtPnBhZ2UuZ2V0KCkpOworfQorCit2b2lkIFFXS1BhZ2U6OnNldENyZWF0ZU5ld1Bh
Z2VGdW5jdGlvbihDcmVhdGVOZXdQYWdlRm4gZnVuY3Rpb24pCit7CisgICAgZC0+Y3JlYXRlTmV3
UGFnZUZuID0gZnVuY3Rpb247Cit9CisKK3ZvaWQgUVdLUGFnZTo6bG9hZChjb25zdCBRVXJsJiB1
cmwpCit7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHdrdXJsKFdLVVJMQ3JlYXRlV2l0aFFV
cmwodXJsKSk7CisgICAgV0tQYWdlTG9hZFVSTChwYWdlUmVmKCksIHdrdXJsLmdldCgpKTsKK30K
Kwordm9pZCBRV0tQYWdlOjpzZXRVcmwoY29uc3QgUVVybCYgdXJsKQoreworICAgIGxvYWQodXJs
KTsKK30KKworUVVybCBRV0tQYWdlOjp1cmwoKSBjb25zdAoreworICAgIFdLUmV0YWluUHRyPFdL
RnJhbWVSZWY+IGZyYW1lID0gV0tQYWdlR2V0TWFpbkZyYW1lKHBhZ2VSZWYoKSk7CisgICAgaWYg
KCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIFFVcmwoKTsKKyAgICByZXR1cm4gV0tVUkxDb3B5UVVy
bChXS0ZyYW1lR2V0VVJMKGZyYW1lLmdldCgpKSk7Cit9CisKK1FTdHJpbmcgUVdLUGFnZTo6dGl0
bGUoKSBjb25zdAoreworICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKFdLUGFnZUdldFRp
dGxlKHBhZ2VSZWYoKSkpOworfQorCit2b2lkIFFXS1BhZ2U6OnNldFZpZXdwb3J0U2l6ZShjb25z
dCBRU2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAoZC0+cGFnZS0+ZHJhd2luZ0FyZWEoKSkKKyAgICAg
ICAgZC0+cGFnZS0+ZHJhd2luZ0FyZWEoKS0+c2V0U2l6ZShJbnRTaXplKHNpemUpKTsKK30KKwor
dm9pZCBRV0tQYWdlOjpyZXF1ZXN0Wm9vbVJlY3QoY29uc3QgUVBvaW50JiB2aWV3UG9zKQorewor
ICAgIGQtPnBhZ2UtPnJlcXVlc3Rab29tUmVjdCh2aWV3UG9zKTsKK30KKworI2lmbmRlZiBRVF9O
T19BQ1RJT04KK3ZvaWQgUVdLUGFnZTo6dHJpZ2dlckFjdGlvbihXZWJBY3Rpb24gYWN0aW9uLCBi
b29sKQoreworICAgIHN3aXRjaCAoYWN0aW9uKSB7CisgICAgY2FzZSBCYWNrOgorICAgICAgICBk
LT5wYWdlLT5nb0JhY2soKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb3J3YXJkOgorICAg
ICAgICBkLT5wYWdlLT5nb0ZvcndhcmQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdG9w
OgorICAgICAgICBkLT5wYWdlLT5zdG9wTG9hZGluZygpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFJlbG9hZDoKKyAgICAgICAgZC0+cGFnZS0+cmVsb2FkKC8qIHJlbG9hZEZyb21PcmlnaW4g
Ki8gdHJ1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwor
ICAgIH0KK30KKyNlbmRpZiAvLyBRVF9OT19BQ1RJT04KKworI2lmbmRlZiBRVF9OT19BQ1RJT04K
K1FBY3Rpb24qIFFXS1BhZ2U6OmFjdGlvbihXZWJBY3Rpb24gYWN0aW9uKSBjb25zdAoreworICAg
IGlmIChhY3Rpb24gPT0gUVdLUGFnZTo6Tm9XZWJBY3Rpb24gfHwgYWN0aW9uID49IFdlYkFjdGlv
bkNvdW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChkLT5hY3Rpb25zW2FjdGlvbl0p
CisgICAgICAgIHJldHVybiBkLT5hY3Rpb25zW2FjdGlvbl07CisKKyAgICBRU3RyaW5nIHRleHQ7
CisgICAgUUljb24gaWNvbjsKKyAgICBRU3R5bGUqIHN0eWxlID0gcW9iamVjdF9jYXN0PFFBcHBs
aWNhdGlvbio+KFFDb3JlQXBwbGljYXRpb246Omluc3RhbmNlKCkpLT5zdHlsZSgpOworICAgIGJv
b2wgY2hlY2thYmxlID0gZmFsc2U7CisKKyAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgIGNhc2Ug
QmFjazoKKyAgICAgICAgdGV4dCA9IGNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpOworICAgICAg
ICBpY29uID0gc3R5bGUtPnN0YW5kYXJkSWNvbihRU3R5bGU6OlNQX0Fycm93QmFjayk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRm9yd2FyZDoKKyAgICAgICAgdGV4dCA9IGNvbnRleHRNZW51
SXRlbVRhZ0dvRm9yd2FyZCgpOworICAgICAgICBpY29uID0gc3R5bGUtPnN0YW5kYXJkSWNvbihR
U3R5bGU6OlNQX0Fycm93Rm9yd2FyZCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcDoK
KyAgICAgICAgdGV4dCA9IGNvbnRleHRNZW51SXRlbVRhZ1N0b3AoKTsKKyAgICAgICAgaWNvbiA9
IHN0eWxlLT5zdGFuZGFyZEljb24oUVN0eWxlOjpTUF9Ccm93c2VyU3RvcCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUmVsb2FkOgorICAgICAgICB0ZXh0ID0gY29udGV4dE1lbnVJdGVtVGFn
UmVsb2FkKCk7CisgICAgICAgIGljb24gPSBzdHlsZS0+c3RhbmRhcmRJY29uKFFTdHlsZTo6U1Bf
QnJvd3NlclJlbG9hZCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl
dHVybiAwOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAodGV4dC5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiAwOworCisgICAgUUFjdGlvbiogYSA9IG5ldyBRQWN0aW9uKGQtPnEp
OworICAgIGEtPnNldFRleHQodGV4dCk7CisgICAgYS0+c2V0RGF0YShhY3Rpb24pOworICAgIGEt
PnNldENoZWNrYWJsZShjaGVja2FibGUpOworICAgIGEtPnNldEljb24oaWNvbik7CisKKyAgICBj
b25uZWN0KGEsIFNJR05BTCh0cmlnZ2VyZWQoYm9vbCkpLCB0aGlzLCBTTE9UKF9xX3dlYkFjdGlv
blRyaWdnZXJlZChib29sKSkpOworCisgICAgZC0+YWN0aW9uc1thY3Rpb25dID0gYTsKKyAgICBk
LT51cGRhdGVBY3Rpb24oYWN0aW9uKTsKKyAgICByZXR1cm4gYTsKK30KKyNlbmRpZiAvLyBRVF9O
T19BQ1RJT04KZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmgg
Yi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjcyNWIwNzIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGFnZS5oCkBAIC0wLDAgKzEsNzMgQEAKKyNpZm5kZWYgcXdrcGFnZV9o
CisjZGVmaW5lIHF3a3BhZ2VfaAorCisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorI2luY2x1
ZGUgPFFBY3Rpb24+CisjaW5jbHVkZSA8UU9iamVjdD4KKyNpbmNsdWRlIDxRUG9pbnQ+CisjaW5j
bHVkZSA8UVJlY3Q+CisjaW5jbHVkZSA8UVNpemU+CisjaW5jbHVkZSA8UVVybD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlLmg+CisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS1BhZ2VOYW1lc3BhY2UuaD4KKworY2xhc3MgUVdLR3JhcGhpY3NXaWRnZXQ7
CitjbGFzcyBRV0tQYWdlUHJpdmF0ZTsKKworY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdLUGFnZSA6
IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorICAgIFFfUFJPUEVSVFkoUVN0cmluZyB0
aXRsZSBSRUFEIHRpdGxlKQorICAgIFFfUFJPUEVSVFkoUVVybCB1cmwgUkVBRCB1cmwgV1JJVEUg
c2V0VXJsKQorCitwdWJsaWM6CisgICAgZW51bSBXZWJBY3Rpb24geworICAgICAgICBOb1dlYkFj
dGlvbiA9IC0gMSwKKworICAgICAgICBCYWNrLAorICAgICAgICBGb3J3YXJkLAorICAgICAgICBT
dG9wLAorICAgICAgICBSZWxvYWQsCisKKyAgICAgICAgV2ViQWN0aW9uQ291bnQKKyAgICB9Owor
CisgICAgUVdLUGFnZShXS1BhZ2VOYW1lc3BhY2VSZWYpOworICAgIHZpcnR1YWwgflFXS1BhZ2Uo
KTsKKworICAgIFdLUGFnZVJlZiBwYWdlUmVmKCkgY29uc3Q7CisKKyAgICB2b2lkIGxvYWQoY29u
c3QgUVVybCYgdXJsKTsKKyAgICB2b2lkIHNldFVybChjb25zdCBRVXJsJiB1cmwpOworICAgIFFV
cmwgdXJsKCkgY29uc3Q7CisKKyAgICBRU3RyaW5nIHRpdGxlKCkgY29uc3Q7CisKKyAgICB2b2lk
IHNldFZpZXdwb3J0U2l6ZShjb25zdCBRU2l6ZSYpOworICAgIHZvaWQgcmVxdWVzdFpvb21SZWN0
KGNvbnN0IFFQb2ludCYpOworCisgICAgUUFjdGlvbiogYWN0aW9uKFdlYkFjdGlvbiBhY3Rpb24p
IGNvbnN0OworICAgIHZvaWQgdHJpZ2dlckFjdGlvbihXZWJBY3Rpb24gYWN0aW9uLCBib29sIGNo
ZWNrZWQgPSBmYWxzZSk7CisKKyAgICB0eXBlZGVmIFFXS1BhZ2UqICgqQ3JlYXRlTmV3UGFnZUZu
KShRV0tQYWdlKik7CisgICAgdm9pZCBzZXRDcmVhdGVOZXdQYWdlRnVuY3Rpb24oQ3JlYXRlTmV3
UGFnZUZuIGZ1bmN0aW9uKTsKKworcHVibGljOgorICAgIFFfU0lHTkFMIHZvaWQgc3RhdHVzQmFy
TWVzc2FnZShjb25zdCBRU3RyaW5nJik7CisgICAgUV9TSUdOQUwgdm9pZCB0aXRsZUNoYW5nZWQo
Y29uc3QgUVN0cmluZyYpOworICAgIFFfU0lHTkFMIHZvaWQgbG9hZFN0YXJ0ZWQoKTsKKyAgICBR
X1NJR05BTCB2b2lkIGxvYWRGaW5pc2hlZChib29sIG9rKTsKKyAgICBRX1NJR05BTCB2b2lkIGxv
YWRQcm9ncmVzcyhpbnQgcHJvZ3Jlc3MpOworICAgIFFfU0lHTkFMIHZvaWQgaW5pdGlhbExheW91
dENvbXBsZXRlZCgpOworICAgIFFfU0lHTkFMIHZvaWQgdXJsQ2hhbmdlZChjb25zdCBRVXJsJik7
CisgICAgUV9TSUdOQUwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKGNvbnN0IFFTaXplJik7Cisg
ICAgUV9TSUdOQUwgdm9pZCB6b29tUmVjdFJlY2VpdmVkKGNvbnN0IFFSZWN0Jik7CisKK3ByaXZh
dGU6CisgICAgZnJpZW5kIGNsYXNzIFFXS0dyYXBoaWNzV2lkZ2V0OworICAgIGZyaWVuZCBjbGFz
cyBRV0tHcmFwaGljc1dpZGdldFByaXZhdGU7CisgICAgZnJpZW5kIGNsYXNzIFFXS1BhZ2VQcml2
YXRlOworICAgIFFXS1BhZ2VQcml2YXRlKiBkOworfTsKKworI2VuZGlmIC8qIHF3a3BhZ2VfaCAq
LwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oIGIvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjQ4YmVmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrcGFnZV9wLmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFt
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisK
KyNpZm5kZWYgcXdrcGFnZV9wX2gKKyNkZWZpbmUgcXdrcGFnZV9wX2gKKworI2luY2x1ZGUgIkRy
YXdpbmdBcmVhUHJveHkuaCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50LmgiCisjaW5jbHVkZSAicXdr
cGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VOYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8UUdyYXBoaWNzVmll
dz4KKyNpbmNsdWRlIDxRS2V5RXZlbnQ+CisKK2NsYXNzIFFXS1BhZ2VQcml2YXRlIDogcHVibGlj
IFdlYktpdDo6UGFnZUNsaWVudCB7CitwdWJsaWM6CisgICAgUVdLUGFnZVByaXZhdGUoUVdLUGFn
ZSosIFdLUGFnZU5hbWVzcGFjZVJlZik7CisgICAgflFXS1BhZ2VQcml2YXRlKCk7CisKKyAgICBz
dGF0aWMgUVdLUGFnZVByaXZhdGUqIGdldChRV0tQYWdlKiBwYWdlKSB7IHJldHVybiBwYWdlLT5k
OyB9CisKKyAgICB2b2lkIGluaXQoY29uc3QgUVNpemUmIHZpZXdwb3J0U2l6ZSwgV2ViS2l0OjpE
cmF3aW5nQXJlYVByb3h5Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEV4aXQoKSB7
fQorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkUmV2aXZlKCkge30KKyAgICB2aXJ0dWFsIHZv
aWQgdGFrZUZvY3VzKGJvb2wgZGlyZWN0aW9uKSB7fQorICAgIHZpcnR1YWwgdm9pZCB0b29sVGlw
Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmKTsK
KworICAgIHZvaWQgcGFpbnQoUVBhaW50ZXIqIHBhaW50ZXIsIFFSZWN0KTsKKworICAgIHZvaWQg
a2V5UHJlc3NFdmVudChRS2V5RXZlbnQqKTsKKyAgICB2b2lkIGtleVJlbGVhc2VFdmVudChRS2V5
RXZlbnQqKTsKKyAgICB2b2lkIG1vdXNlTW92ZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVu
dCopOworICAgIHZvaWQgbW91c2VQcmVzc0V2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCop
OworICAgIHZvaWQgbW91c2VSZWxlYXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Kik7
CisgICAgdm9pZCBtb3VzZURvdWJsZUNsaWNrRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50
Kik7CisgICAgdm9pZCB3aGVlbEV2ZW50KFFHcmFwaGljc1NjZW5lV2hlZWxFdmVudCogZXYpOwor
CisgICAgdm9pZCB1cGRhdGVBY3Rpb24oUVdLUGFnZTo6V2ViQWN0aW9uIGFjdGlvbik7CisgICAg
dm9pZCB1cGRhdGVOYXZpZ2F0aW9uQWN0aW9ucygpOworICAgIHZvaWQgdXBkYXRlRWRpdG9yQWN0
aW9ucygpOworCisgICAgdm9pZCBfcV93ZWJBY3Rpb25UcmlnZ2VyZWQoYm9vbCBjaGVja2VkKTsK
KworICAgIFFBY3Rpb24gKmFjdGlvbnNbUVdLUGFnZTo6V2ViQWN0aW9uQ291bnRdOworCisgICAg
UVdLUGFnZSogcTsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IHBhZ2U7CisKKyAg
ICBRV0tQYWdlOjpDcmVhdGVOZXdQYWdlRm4gY3JlYXRlTmV3UGFnZUZuOworfTsKKworCisjZW5k
aWYgLyogcWtwYWdlX3BfaCAqLwotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60246</attachid>
            <date>2010-07-01 07:35:34 -0700</date>
            <delta_ts>2010-07-02 03:16:23 -0700</delta_ts>
            <desc>Initial Qt API for WK2 (w/o special stuff)</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>31349</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBhYjc4ZDE5MTc2YmEwZmE1OWY3NmE1MmUwOGIxZmJkYThjZDU0NzRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDEwOjM5OjE1
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgaW5pdGlhbCBRdCBBUEkgZm9yIFdlYktpdDIKCiog
VUlQcm9jZXNzL0FQSS9xdC9XS1ZpZXcuaDogQWRkZWQuCiogVUlQcm9jZXNzL0FQSS9xdC9xZ3Jh
cGhpY3N3a3ZpZXcuY3BwOiBBZGRlZC4KKFFHcmFwaGljc1dLVmlld1ByaXZhdGU6OnBhZ2VSZWYp
OgooUUdyYXBoaWNzV0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcpOgooUUdyYXBoaWNzV0tWaWV3Ojp+
UUdyYXBoaWNzV0tWaWV3KToKKFFHcmFwaGljc1dLVmlldzo6cGFnZSk6CihRR3JhcGhpY3NXS1Zp
ZXc6OnBhaW50KToKKFFHcmFwaGljc1dLVmlldzo6c2V0R2VvbWV0cnkpOgooUUdyYXBoaWNzV0tW
aWV3Ojpsb2FkKToKKFFHcmFwaGljc1dLVmlldzo6c2V0VXJsKToKKFFHcmFwaGljc1dLVmlldzo6
dXJsKToKKFFHcmFwaGljc1dLVmlldzo6dGl0bGUpOgooUUdyYXBoaWNzV0tWaWV3Ojp0cmlnZ2Vy
UGFnZUFjdGlvbik6CihRR3JhcGhpY3NXS1ZpZXc6OmJhY2spOgooUUdyYXBoaWNzV0tWaWV3Ojpm
b3J3YXJkKToKKFFHcmFwaGljc1dLVmlldzo6cmVsb2FkKToKKFFHcmFwaGljc1dLVmlldzo6c3Rv
cCk6CihRR3JhcGhpY3NXS1ZpZXc6Oml0ZW1DaGFuZ2UpOgooUUdyYXBoaWNzV0tWaWV3OjpldmVu
dCk6CihRR3JhcGhpY3NXS1ZpZXc6OnNpemVIaW50KToKKFFHcmFwaGljc1dLVmlldzo6aW5wdXRN
ZXRob2RRdWVyeSk6CihRR3JhcGhpY3NXS1ZpZXc6OmtleVByZXNzRXZlbnQpOgooUUdyYXBoaWNz
V0tWaWV3OjprZXlSZWxlYXNlRXZlbnQpOgooUUdyYXBoaWNzV0tWaWV3Ojpob3Zlck1vdmVFdmVu
dCk6CihRR3JhcGhpY3NXS1ZpZXc6Om1vdXNlTW92ZUV2ZW50KToKKFFHcmFwaGljc1dLVmlldzo6
bW91c2VQcmVzc0V2ZW50KToKKFFHcmFwaGljc1dLVmlldzo6bW91c2VSZWxlYXNlRXZlbnQpOgoo
UUdyYXBoaWNzV0tWaWV3Ojptb3VzZURvdWJsZUNsaWNrRXZlbnQpOgooUUdyYXBoaWNzV0tWaWV3
Ojp3aGVlbEV2ZW50KToKKFFHcmFwaGljc1dLVmlld1ByaXZhdGU6OlFHcmFwaGljc1dLVmlld1By
aXZhdGUpOgooUUdyYXBoaWNzV0tWaWV3Ojp2aXNpYmxlUmVjdCk6CiogVUlQcm9jZXNzL0FQSS9x
dC9xZ3JhcGhpY3N3a3ZpZXcuaDogQWRkZWQuCiogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNw
cDogQWRkZWQuCihRV0tQYWdlUHJpdmF0ZTo6UVdLUGFnZVByaXZhdGUpOgooUVdLUGFnZVByaXZh
dGU6On5RV0tQYWdlUHJpdmF0ZSk6CihRV0tQYWdlUHJpdmF0ZTo6aW5pdCk6CihRV0tQYWdlUHJp
dmF0ZTo6dG9vbFRpcENoYW5nZWQpOgooUVdLUGFnZVByaXZhdGU6OnBhaW50KToKKFFXS1BhZ2VQ
cml2YXRlOjprZXlQcmVzc0V2ZW50KToKKFFXS1BhZ2VQcml2YXRlOjprZXlSZWxlYXNlRXZlbnQp
OgooUVdLUGFnZVByaXZhdGU6Om1vdXNlTW92ZUV2ZW50KToKKFFXS1BhZ2VQcml2YXRlOjptb3Vz
ZVByZXNzRXZlbnQpOgooUVdLUGFnZVByaXZhdGU6Om1vdXNlUmVsZWFzZUV2ZW50KToKKFFXS1Bh
Z2VQcml2YXRlOjptb3VzZURvdWJsZUNsaWNrRXZlbnQpOgooUVdLUGFnZVByaXZhdGU6OndoZWVs
RXZlbnQpOgooUVdLUGFnZVByaXZhdGU6OnVwZGF0ZUFjdGlvbik6CihRV0tQYWdlUHJpdmF0ZTo6
dXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMpOgooUVdLUGFnZVByaXZhdGU6Ol9xX3dlYkFjdGlvblRy
aWdnZXJlZCk6CihRV0tQYWdlOjpRV0tQYWdlKToKKFFXS1BhZ2U6On5RV0tQYWdlKToKKFFXS1Bh
Z2U6OnBhZ2VSZWYpOgooUVdLUGFnZTo6c2V0Q3JlYXRlTmV3UGFnZUZ1bmN0aW9uKToKKFFXS1Bh
Z2U6OmxvYWQpOgooUVdLUGFnZTo6c2V0VXJsKToKKFFXS1BhZ2U6OnVybCk6CihRV0tQYWdlOjp0
aXRsZSk6CihRV0tQYWdlOjpzZXRWaWV3cG9ydFNpemUpOgooUVdLUGFnZTo6cmVxdWVzdFpvb21S
ZWN0KToKKFFXS1BhZ2U6OnRyaWdnZXJBY3Rpb24pOgooUVdLUGFnZTo6YWN0aW9uKToKKiBVSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaDogQWRkZWQuCiogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdl
X3AuaDogQWRkZWQuCihRV0tQYWdlUHJpdmF0ZTo6Z2V0KToKKFFXS1BhZ2VQcml2YXRlOjpwcm9j
ZXNzRGlkRXhpdCk6CihRV0tQYWdlUHJpdmF0ZTo6cHJvY2Vzc0RpZFJldml2ZSk6CihRV0tQYWdl
UHJpdmF0ZTo6dGFrZUZvY3VzKToKLS0tCiBXZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgNzYgKysrKysrCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvV0tW
aWV3LmggICAgICAgICAgICB8ICAgMjUgKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZ3Jh
cGhpY3N3a3ZpZXcuY3BwIHwgIDI1NSArKysrKysrKysrKysrKysrKysrCiBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmggICB8ICAgNzcgKysrKysrCiBXZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAgICAgICAgICB8ICAzNDYgKysrKysrKysrKysrKysr
KysrKysrKysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmggICAgICAgICAg
IHwgICA3MyArKysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaCAgICAg
ICAgIHwgICA3MiArKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgOTI0IGluc2VydGlvbnMoKyksIDAg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L1dLVmlldy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fn
cmFwaGljc3drdmlldy5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcWdyYXBoaWNzd2t2aWV3LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGFnZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3a3BhZ2VfcC5oCgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MTU0M2I5Li43OWQ2ZGQzIDEwMDY0NAotLS0gYS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDgxIEBACiAy
MDEwLTA3LTAxICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGguY2hyaXN0aWFu
c2VuQG9wZW5ib3NzYS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjMzCisKKyAgICAgICAg
QWRkIGluaXRpYWwgUXQgQVBJIGZvciBXZWJLaXQyCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L1dLVmlldy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FncmFwaGlj
c3drdmlldy5jcHA6IEFkZGVkLgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3UHJpdmF0ZTo6cGFn
ZVJlZik6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OlFHcmFwaGljc1dLVmlldyk6CisgICAg
ICAgIChRR3JhcGhpY3NXS1ZpZXc6On5RR3JhcGhpY3NXS1ZpZXcpOgorICAgICAgICAoUUdyYXBo
aWNzV0tWaWV3OjpwYWdlKToKKyAgICAgICAgKFFHcmFwaGljc1dLVmlldzo6cGFpbnQpOgorICAg
ICAgICAoUUdyYXBoaWNzV0tWaWV3OjpzZXRHZW9tZXRyeSk6CisgICAgICAgIChRR3JhcGhpY3NX
S1ZpZXc6OmxvYWQpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3OjpzZXRVcmwpOgorICAgICAg
ICAoUUdyYXBoaWNzV0tWaWV3Ojp1cmwpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3Ojp0aXRs
ZSk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OnRyaWdnZXJQYWdlQWN0aW9uKToKKyAgICAg
ICAgKFFHcmFwaGljc1dLVmlldzo6YmFjayk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OmZv
cndhcmQpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3OjpyZWxvYWQpOgorICAgICAgICAoUUdy
YXBoaWNzV0tWaWV3OjpzdG9wKToKKyAgICAgICAgKFFHcmFwaGljc1dLVmlldzo6aXRlbUNoYW5n
ZSk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OmV2ZW50KToKKyAgICAgICAgKFFHcmFwaGlj
c1dLVmlldzo6c2l6ZUhpbnQpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3OjppbnB1dE1ldGhv
ZFF1ZXJ5KToKKyAgICAgICAgKFFHcmFwaGljc1dLVmlldzo6a2V5UHJlc3NFdmVudCk6CisgICAg
ICAgIChRR3JhcGhpY3NXS1ZpZXc6OmtleVJlbGVhc2VFdmVudCk6CisgICAgICAgIChRR3JhcGhp
Y3NXS1ZpZXc6OmhvdmVyTW92ZUV2ZW50KToKKyAgICAgICAgKFFHcmFwaGljc1dLVmlldzo6bW91
c2VNb3ZlRXZlbnQpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3Ojptb3VzZVByZXNzRXZlbnQp
OgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3Ojptb3VzZVJlbGVhc2VFdmVudCk6CisgICAgICAg
IChRR3JhcGhpY3NXS1ZpZXc6Om1vdXNlRG91YmxlQ2xpY2tFdmVudCk6CisgICAgICAgIChRR3Jh
cGhpY3NXS1ZpZXc6OndoZWVsRXZlbnQpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3UHJpdmF0
ZTo6UUdyYXBoaWNzV0tWaWV3UHJpdmF0ZSk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OnZp
c2libGVSZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjpRV0tQYWdlUHJpdmF0ZSk6CisgICAgICAgIChRV0tQ
YWdlUHJpdmF0ZTo6flFXS1BhZ2VQcml2YXRlKToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjpp
bml0KToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjp0b29sVGlwQ2hhbmdlZCk6CisgICAgICAg
IChRV0tQYWdlUHJpdmF0ZTo6cGFpbnQpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6OmtleVBy
ZXNzRXZlbnQpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6OmtleVJlbGVhc2VFdmVudCk6Cisg
ICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6bW91c2VNb3ZlRXZlbnQpOgorICAgICAgICAoUVdLUGFn
ZVByaXZhdGU6Om1vdXNlUHJlc3NFdmVudCk6CisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6bW91
c2VSZWxlYXNlRXZlbnQpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6Om1vdXNlRG91YmxlQ2xp
Y2tFdmVudCk6CisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6d2hlZWxFdmVudCk6CisgICAgICAg
IChRV0tQYWdlUHJpdmF0ZTo6dXBkYXRlQWN0aW9uKToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRl
Ojp1cGRhdGVOYXZpZ2F0aW9uQWN0aW9ucyk6CisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6X3Ff
d2ViQWN0aW9uVHJpZ2dlcmVkKToKKyAgICAgICAgKFFXS1BhZ2U6OlFXS1BhZ2UpOgorICAgICAg
ICAoUVdLUGFnZTo6flFXS1BhZ2UpOgorICAgICAgICAoUVdLUGFnZTo6cGFnZVJlZik6CisgICAg
ICAgIChRV0tQYWdlOjpzZXRDcmVhdGVOZXdQYWdlRnVuY3Rpb24pOgorICAgICAgICAoUVdLUGFn
ZTo6bG9hZCk6CisgICAgICAgIChRV0tQYWdlOjpzZXRVcmwpOgorICAgICAgICAoUVdLUGFnZTo6
dXJsKToKKyAgICAgICAgKFFXS1BhZ2U6OnRpdGxlKToKKyAgICAgICAgKFFXS1BhZ2U6OnNldFZp
ZXdwb3J0U2l6ZSk6CisgICAgICAgIChRV0tQYWdlOjpyZXF1ZXN0Wm9vbVJlY3QpOgorICAgICAg
ICAoUVdLUGFnZTo6dHJpZ2dlckFjdGlvbik6CisgICAgICAgIChRV0tQYWdlOjphY3Rpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oOiBBZGRlZC4KKyAgICAgICAgKFFXS1BhZ2VQcml2
YXRlOjpnZXQpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6OnByb2Nlc3NEaWRFeGl0KToKKyAg
ICAgICAgKFFXS1BhZ2VQcml2YXRlOjpwcm9jZXNzRGlkUmV2aXZlKToKKyAgICAgICAgKFFXS1Bh
Z2VQcml2YXRlOjp0YWtlRm9jdXMpOgorCisyMDEwLTA3LTAxICBLZW5uZXRoIFJvaGRlIENocmlz
dGlhbnNlbiAgPGtlbm5ldGguY2hyaXN0aWFuc2VuQG9wZW5ib3NzYS5vcmc+CisKICAgICAgICAg
UmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCiAKICAgICAgICAgW1F0XSBJbml0aWFsIFdlYktp
dDIgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9X
S1ZpZXcuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9XS1ZpZXcuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWU5Y2ZlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L1dLVmlldy5oCkBAIC0wLDAgKzEsMjUgQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpZm5kZWYgV0tWaWV3X2gKKyNkZWZpbmUgV0tWaWV3X2gKKworI2luY2x1ZGUg
PFdlYktpdDIvcWdyYXBoaWNzd2t2aWV3Lmg+CisKKyNlbmRpZiAvKiBXS1ZpZXdfaCAqLwpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5jcHAgYi9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjFlY2U2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5jcHAKQEAgLTAsMCArMSwyNTUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAicWdyYXBoaWNzd2t2aWV3LmgiCisKKyNpbmNs
dWRlICJDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eS5oIgorI2luY2x1ZGUgIkRyYXdpbmdB
cmVhUHJveHlUaWxlZC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlICJSdW5Mb29w
LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZU5hbWVzcGFjZS5o
IgorI2luY2x1ZGUgInF3a3BhZ2UuaCIKKyNpbmNsdWRlICJxd2twYWdlX3AuaCIKKyNpbmNsdWRl
IDxRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQ+CisjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4KKyNp
bmNsdWRlIDxRUGFpbnRlcj4KKyNpbmNsdWRlIDxRU2Nyb2xsQmFyPgorI2luY2x1ZGUgPFFTdHls
ZU9wdGlvbkdyYXBoaWNzSXRlbT4KKyNpbmNsdWRlIDxRdERlYnVnPgorI2luY2x1ZGUgPFdlYkNv
cmUvUGxhdGZvcm1TdHJpbmcuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0cnVjdCBRR3JhcGhpY3NXS1ZpZXdQcml2YXRlIHsKKyAg
ICBRR3JhcGhpY3NXS1ZpZXdQcml2YXRlKFFHcmFwaGljc1dLVmlldyogdmlldyk7CisgICAgV0tQ
YWdlUmVmIHBhZ2VSZWYoKSBjb25zdCB7IHJldHVybiBwYWdlLT5wYWdlUmVmKCk7IH0KKworICAg
IFFHcmFwaGljc1dLVmlldyogcTsKKyAgICBRV0tQYWdlKiBwYWdlOworfTsKKworUUdyYXBoaWNz
V0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcoV0tQYWdlTmFtZXNwYWNlUmVmIHBhZ2VOYW1lc3BhY2VS
ZWYsIEJhY2tpbmdTdG9yZVR5cGUgYmFja2luZ1N0b3JlVHlwZSwgUUdyYXBoaWNzSXRlbSogcGFy
ZW50KQorICAgIDogUUdyYXBoaWNzV2lkZ2V0KHBhcmVudCkKKyAgICAsIGQobmV3IFFHcmFwaGlj
c1dLVmlld1ByaXZhdGUodGhpcykpCit7CisgICAgc2V0Rm9jdXNQb2xpY3koUXQ6OlN0cm9uZ0Zv
Y3VzKTsKKyAgICBzZXRBY2NlcHRIb3ZlckV2ZW50cyh0cnVlKTsKKyAgICBEcmF3aW5nQXJlYVBy
b3h5KiBkcmF3aW5nQXJlYVByb3h5ID0gbmV3IENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5
KHRoaXMpOworCisgICAgZC0+cGFnZSA9IG5ldyBRV0tQYWdlKHBhZ2VOYW1lc3BhY2VSZWYpOwor
ICAgIGQtPnBhZ2UtPmQtPmluaXQoc2l6ZSgpLnRvU2l6ZSgpLCBkcmF3aW5nQXJlYVByb3h5KTsK
KyAgICBjb25uZWN0KGQtPnBhZ2UsIFNJR05BTCh0aXRsZUNoYW5nZWQoUVN0cmluZykpLCB0aGlz
LCBTSUdOQUwodGl0bGVDaGFuZ2VkKFFTdHJpbmcpKSk7CisgICAgY29ubmVjdChkLT5wYWdlLCBT
SUdOQUwobG9hZFN0YXJ0ZWQoKSksIHRoaXMsIFNJR05BTChsb2FkU3RhcnRlZCgpKSk7CisgICAg
Y29ubmVjdChkLT5wYWdlLCBTSUdOQUwobG9hZEZpbmlzaGVkKGJvb2wpKSwgdGhpcywgU0lHTkFM
KGxvYWRGaW5pc2hlZChib29sKSkpOworICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFMKGxvYWRQ
cm9ncmVzcyhpbnQpKSwgdGhpcywgU0lHTkFMKGxvYWRQcm9ncmVzcyhpbnQpKSk7CisgICAgY29u
bmVjdChkLT5wYWdlLCBTSUdOQUwoaW5pdGlhbExheW91dENvbXBsZXRlZCgpKSwgdGhpcywgU0lH
TkFMKGluaXRpYWxMYXlvdXRDb21wbGV0ZWQoKSkpOworICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lH
TkFMKHVybENoYW5nZWQoY29uc3QgUVVybCYpKSwgdGhpcywgU0lHTkFMKHVybENoYW5nZWQoY29u
c3QgUVVybCYpKSk7Cit9CisKK1FHcmFwaGljc1dLVmlldzo6flFHcmFwaGljc1dLVmlldygpCit7
CisgICAgZGVsZXRlIGQtPnBhZ2U7CisgICAgZGVsZXRlIGQ7Cit9CisKK1FXS1BhZ2UqIFFHcmFw
aGljc1dLVmlldzo6cGFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPnBhZ2U7Cit9CisKK3Zv
aWQgUUdyYXBoaWNzV0tWaWV3OjpwYWludChRUGFpbnRlciogcGFpbnRlciwgY29uc3QgUVN0eWxl
T3B0aW9uR3JhcGhpY3NJdGVtKiBvcHRpb24sIFFXaWRnZXQqKQoreworICAgIHBhZ2UoKS0+ZC0+
cGFpbnQocGFpbnRlciwgb3B0aW9uLT5leHBvc2VkUmVjdC50b0FsaWduZWRSZWN0KCkpOworfQor
Cit2b2lkIFFHcmFwaGljc1dLVmlldzo6c2V0R2VvbWV0cnkoY29uc3QgUVJlY3RGJiByZWN0KQor
eworICAgIFFHcmFwaGljc1dpZGdldDo6c2V0R2VvbWV0cnkocmVjdCk7CisKKyAgICAvLyBOT1RF
OiBjYWxsIGdlb21ldHJ5KCkgYXMgc2V0R2VvbWV0cnkgZW5zdXJlcyB0aGF0CisgICAgLy8gdGhl
IGdlb21ldHJ5IGlzIHdpdGhpbiBsZWdhbCBib3VuZHMgKG1pbmltdW1TaXplLCBtYXhpbXVtU2l6
ZSkKKyAgICBwYWdlKCktPnNldFZpZXdwb3J0U2l6ZShnZW9tZXRyeSgpLnNpemUoKS50b1NpemUo
KSk7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3Ojpsb2FkKGNvbnN0IFFVcmwmIHVybCkKK3sK
KyAgICBwYWdlKCktPmxvYWQodXJsKTsKK30KKwordm9pZCBRR3JhcGhpY3NXS1ZpZXc6OnNldFVy
bChjb25zdCBRVXJsJiB1cmwpCit7CisgICAgcGFnZSgpLT5zZXRVcmwodXJsKTsKK30KKworUVVy
bCBRR3JhcGhpY3NXS1ZpZXc6OnVybCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBhZ2UoKS0+dXJs
KCk7Cit9CisKK1FTdHJpbmcgUUdyYXBoaWNzV0tWaWV3Ojp0aXRsZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHBhZ2UoKS0+dGl0bGUoKTsKK30KKwordm9pZCBRR3JhcGhpY3NXS1ZpZXc6OnRyaWdn
ZXJQYWdlQWN0aW9uKFFXS1BhZ2U6OldlYkFjdGlvbiBhY3Rpb24sIGJvb2wgY2hlY2tlZCkKK3sK
KyAgICBwYWdlKCktPnRyaWdnZXJBY3Rpb24oYWN0aW9uLCBjaGVja2VkKTsKK30KKwordm9pZCBR
R3JhcGhpY3NXS1ZpZXc6OmJhY2soKQoreworICAgIHBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV0tQ
YWdlOjpCYWNrKTsKK30KKwordm9pZCBRR3JhcGhpY3NXS1ZpZXc6OmZvcndhcmQoKQoreworICAg
IHBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV0tQYWdlOjpGb3J3YXJkKTsKK30KKwordm9pZCBRR3Jh
cGhpY3NXS1ZpZXc6OnJlbG9hZCgpCit7CisgICAgcGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXS1Bh
Z2U6OlJlbG9hZCk7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3OjpzdG9wKCkKK3sKKyAgICBw
YWdlKCktPnRyaWdnZXJBY3Rpb24oUVdLUGFnZTo6U3RvcCk7Cit9CisKKy8qISBccmVpbXAKKyov
CitRVmFyaWFudCBRR3JhcGhpY3NXS1ZpZXc6Oml0ZW1DaGFuZ2UoR3JhcGhpY3NJdGVtQ2hhbmdl
IGNoYW5nZSwgY29uc3QgUVZhcmlhbnQmIHZhbHVlKQoreworICAgIC8vIEhlcmUgc28gdGhhdCBp
dCBjYW4gYmUgcmVpbXBsZW1lbnRlZCB3aXRob3V0IGJyZWFraW5nIEFCSS4KKyAgICByZXR1cm4g
UUdyYXBoaWNzV2lkZ2V0OjppdGVtQ2hhbmdlKGNoYW5nZSwgdmFsdWUpOworfQorCisvKiEgXHJl
aW1wCisqLworYm9vbCBRR3JhcGhpY3NXS1ZpZXc6OmV2ZW50KFFFdmVudCogZXZlbnQpCit7Cisg
ICAgLy8gSGVyZSBzbyB0aGF0IGl0IGNhbiBiZSByZWltcGxlbWVudGVkIHdpdGhvdXQgYnJlYWtp
bmcgQUJJLgorICAgIHJldHVybiBRR3JhcGhpY3NXaWRnZXQ6OmV2ZW50KGV2ZW50KTsKK30KKwor
LyohIFxyZWltcAorKi8KK1FTaXplRiBRR3JhcGhpY3NXS1ZpZXc6OnNpemVIaW50KFF0OjpTaXpl
SGludCB3aGljaCwgY29uc3QgUVNpemVGJiBjb25zdHJhaW50KSBjb25zdAoreworICAgIGlmICh3
aGljaCA9PSBRdDo6UHJlZmVycmVkU2l6ZSkKKyAgICAgICAgcmV0dXJuIFFTaXplRig4MDAsIDYw
MCk7CisgICAgcmV0dXJuIFFHcmFwaGljc1dpZGdldDo6c2l6ZUhpbnQod2hpY2gsIGNvbnN0cmFp
bnQpOworfQorCisvKiEgXHJlaW1wCisqLworUVZhcmlhbnQgUUdyYXBoaWNzV0tWaWV3OjppbnB1
dE1ldGhvZFF1ZXJ5KFF0OjpJbnB1dE1ldGhvZFF1ZXJ5IHF1ZXJ5KSBjb25zdAoreworICAgIC8v
IGltcGxlbWVudAorICAgIHJldHVybiBRVmFyaWFudCgpOworfQorCisvKiEgXHJlaW1wCisqLwor
dm9pZCBRR3JhcGhpY3NXS1ZpZXc6OmtleVByZXNzRXZlbnQoUUtleUV2ZW50KiBldikKK3sKKyAg
ICBwYWdlKCktPmQtPmtleVByZXNzRXZlbnQoZXYpOworfQorCisvKiEgXHJlaW1wCisqLwordm9p
ZCBRR3JhcGhpY3NXS1ZpZXc6OmtleVJlbGVhc2VFdmVudChRS2V5RXZlbnQqIGV2KQoreworICAg
IHBhZ2UoKS0+ZC0+a2V5UmVsZWFzZUV2ZW50KGV2KTsKK30KKwordm9pZCBRR3JhcGhpY3NXS1Zp
ZXc6OmhvdmVyTW92ZUV2ZW50KFFHcmFwaGljc1NjZW5lSG92ZXJFdmVudCogZXYpCit7CisgICAg
UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50IG1lKFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlTW92
ZSk7CisgICAgbWUuc2V0UG9zKGV2LT5wb3MoKSk7CisgICAgbWUuc2V0U2NyZWVuUG9zKGV2LT5z
Y3JlZW5Qb3MoKSk7CisKKyAgICBwYWdlKCktPmQtPm1vdXNlTW92ZUV2ZW50KCZtZSk7CisKKyAg
ICBpZiAoIWV2LT5pc0FjY2VwdGVkKCkpCisgICAgICAgIFFHcmFwaGljc0l0ZW06OmhvdmVyTW92
ZUV2ZW50KGV2KTsKK30KKwordm9pZCBRR3JhcGhpY3NXS1ZpZXc6Om1vdXNlTW92ZUV2ZW50KFFH
cmFwaGljc1NjZW5lTW91c2VFdmVudCogZXYpCit7CisgICAgcGFnZSgpLT5kLT5tb3VzZU1vdmVF
dmVudChldik7CisgICAgaWYgKCFldi0+aXNBY2NlcHRlZCgpKQorICAgICAgICBRR3JhcGhpY3NJ
dGVtOjptb3VzZU1vdmVFdmVudChldik7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3Ojptb3Vz
ZVByZXNzRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldikKK3sKKyAgICBwYWdlKCkt
PmQtPm1vdXNlUHJlc3NFdmVudChldik7CisgICAgaWYgKCFldi0+aXNBY2NlcHRlZCgpKQorICAg
ICAgICBRR3JhcGhpY3NJdGVtOjptb3VzZVByZXNzRXZlbnQoZXYpOworfQorCit2b2lkIFFHcmFw
aGljc1dLVmlldzo6bW91c2VSZWxlYXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBl
dikKK3sKKyAgICBwYWdlKCktPmQtPm1vdXNlUmVsZWFzZUV2ZW50KGV2KTsKKyAgICBpZiAoIWV2
LT5pc0FjY2VwdGVkKCkpCisgICAgICAgIFFHcmFwaGljc0l0ZW06Om1vdXNlUmVsZWFzZUV2ZW50
KGV2KTsKK30KKwordm9pZCBRR3JhcGhpY3NXS1ZpZXc6Om1vdXNlRG91YmxlQ2xpY2tFdmVudChR
R3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQoreworICAgIHBhZ2UoKS0+ZC0+bW91c2VEb3Vi
bGVDbGlja0V2ZW50KGV2KTsKKyAgICBpZiAoIWV2LT5pc0FjY2VwdGVkKCkpCisgICAgICAgIFFH
cmFwaGljc0l0ZW06Om1vdXNlUmVsZWFzZUV2ZW50KGV2KTsKK30KKwordm9pZCBRR3JhcGhpY3NX
S1ZpZXc6OndoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBldikKK3sKKyAgICBw
YWdlKCktPmQtPndoZWVsRXZlbnQoZXYpOworICAgIGlmICghZXYtPmlzQWNjZXB0ZWQoKSkKKyAg
ICAgICAgUUdyYXBoaWNzSXRlbTo6d2hlZWxFdmVudChldik7Cit9CisKK1FHcmFwaGljc1dLVmll
d1ByaXZhdGU6OlFHcmFwaGljc1dLVmlld1ByaXZhdGUoUUdyYXBoaWNzV0tWaWV3KiB2aWV3KQor
ICAgIDogcSh2aWV3KQoreworfQorCisKK1FSZWN0RiBRR3JhcGhpY3NXS1ZpZXc6OnZpc2libGVS
ZWN0KCkgY29uc3QKK3sKKyAgICBpZiAoIXNjZW5lKCkpCisgICAgICAgIHJldHVybiBRUmVjdEYo
KTsKKworICAgIFFMaXN0PFFHcmFwaGljc1ZpZXcqPiB2aWV3cyA9IHNjZW5lKCktPnZpZXdzKCk7
CisgICAgaWYgKHZpZXdzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFFSZWN0RigpOworCisg
ICAgUUdyYXBoaWNzVmlldyogZ3JhcGhpY3NWaWV3ID0gdmlld3MuYXQoMCk7CisgICAgaW50IHhP
ZmZzZXQgPSBncmFwaGljc1ZpZXctPmhvcml6b250YWxTY3JvbGxCYXIoKS0+dmFsdWUoKTsKKyAg
ICBpbnQgeU9mZnNldCA9IGdyYXBoaWNzVmlldy0+dmVydGljYWxTY3JvbGxCYXIoKS0+dmFsdWUo
KTsKKyAgICByZXR1cm4gbWFwUmVjdEZyb21TY2VuZShRUmVjdEYoUVBvaW50Rih4T2Zmc2V0LCB5
T2Zmc2V0KSwgZ3JhcGhpY3NWaWV3LT52aWV3cG9ydCgpLT5zaXplKCkpKTsKK30KKworI2luY2x1
ZGUgIm1vY19xZ3JhcGhpY3N3a3ZpZXcuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fn
cmFwaGljc3drdmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlYzIy
MGIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNz
d2t2aWV3LmgKQEAgLTAsMCArMSw3NyBAQAorI2lmbmRlZiBxZ3JhcGhpY3N3a3ZpZXdfaAorI2Rl
ZmluZSBxZ3JhcGhpY3N3a3ZpZXdfaAorCisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorCisj
aW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxRR3JhcGhpY3NXaWRnZXQ+Cisj
aW5jbHVkZSAicXdrcGFnZS5oIgorCitjbGFzcyBRR3JhcGhpY3NXS1ZpZXdQcml2YXRlOworCitX
S1N0cmluZ1JlZiBXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKFFTdHJpbmcgcVN0cmluZyk7CitR
U3RyaW5nIFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nUmVmKTsKKworY2xh
c3MgUVdFQktJVF9FWFBPUlQgUUdyYXBoaWNzV0tWaWV3IDogcHVibGljIFFHcmFwaGljc1dpZGdl
dCB7CisgICAgUV9PQkpFQ1QKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgdGl0bGUgUkVBRCB0aXRs
ZSkKKyAgICBRX1BST1BFUlRZKFFVcmwgdXJsIFJFQUQgdXJsIFdSSVRFIHNldFVybCkKKworcHVi
bGljOgorICAgIGVudW0gQmFja2luZ1N0b3JlVHlwZSB7IFNpbXBsZSwgVGlsZWQgfTsKKyAgICBR
R3JhcGhpY3NXS1ZpZXcoV0tQYWdlTmFtZXNwYWNlUmVmIG5hbWVzcGFjZVJlZiwgQmFja2luZ1N0
b3JlVHlwZSBiYWNraW5nU3RvcmVUeXBlID0gU2ltcGxlLCBRR3JhcGhpY3NJdGVtKiBwYXJlbnQg
PSAwKTsKKworICAgIHZpcnR1YWwgflFHcmFwaGljc1dLVmlldygpOworCisgICAgUVdLUGFnZSog
cGFnZSgpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIHNldEdlb21ldHJ5KGNvbnN0IFFSZWN0
RiYpOworCisgICAgdm9pZCBsb2FkKGNvbnN0IFFVcmwmKTsKKyAgICB2b2lkIHNldFVybChjb25z
dCBRVXJsJik7CisgICAgUVVybCB1cmwoKSBjb25zdDsKKworICAgIFFTdHJpbmcgdGl0bGUoKSBj
b25zdDsKKworICAgIHZvaWQgdHJpZ2dlclBhZ2VBY3Rpb24oUVdLUGFnZTo6V2ViQWN0aW9uIGFj
dGlvbiwgYm9vbCBjaGVja2VkID0gZmFsc2UpOworCisgICAgdmlydHVhbCB2b2lkIHBhaW50KFFQ
YWludGVyKiwgY29uc3QgUVN0eWxlT3B0aW9uR3JhcGhpY3NJdGVtKiwgUVdpZGdldCopOworICAg
IHZpcnR1YWwgUVZhcmlhbnQgaXRlbUNoYW5nZShHcmFwaGljc0l0ZW1DaGFuZ2UsIGNvbnN0IFFW
YXJpYW50Jik7CisgICAgdmlydHVhbCBib29sIGV2ZW50KFFFdmVudCopOworICAgIHZpcnR1YWwg
UVNpemVGIHNpemVIaW50KFF0OjpTaXplSGludCwgY29uc3QgUVNpemVGJikgY29uc3Q7CisgICAg
dmlydHVhbCBRVmFyaWFudCBpbnB1dE1ldGhvZFF1ZXJ5KFF0OjpJbnB1dE1ldGhvZFF1ZXJ5KSBj
b25zdDsKKworICAgIC8vIEZJWE1FOiBzaG91bGQgbm90IGJlIHB1YmxpYworICAgIHZpcnR1YWwg
UVJlY3RGIHZpc2libGVSZWN0KCkgY29uc3Q7CisKK3B1YmxpYzoKKyAgICBRX1NJR05BTCB2b2lk
IHRpdGxlQ2hhbmdlZChjb25zdCBRU3RyaW5nJiB0aXRsZSk7CisgICAgUV9TSUdOQUwgdm9pZCBs
b2FkU3RhcnRlZCgpOworICAgIFFfU0lHTkFMIHZvaWQgbG9hZEZpbmlzaGVkKGJvb2wgb2spOwor
ICAgIFFfU0lHTkFMIHZvaWQgbG9hZFByb2dyZXNzKGludCBwcm9ncmVzcyk7CisgICAgUV9TSUdO
QUwgdm9pZCBpbml0aWFsTGF5b3V0Q29tcGxldGVkKCk7CisgICAgUV9TSUdOQUwgdm9pZCB1cmxD
aGFuZ2VkKGNvbnN0IFFVcmwmKTsKKworcHVibGljIFFfU0xPVFM6CisgICAgdm9pZCBiYWNrKCk7
CisgICAgdm9pZCBmb3J3YXJkKCk7CisgICAgdm9pZCByZWxvYWQoKTsKKyAgICB2b2lkIHN0b3Ao
KTsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBrZXlQcmVzc0V2ZW50KFFLZXlFdmVu
dCopOworICAgIHZpcnR1YWwgdm9pZCBrZXlSZWxlYXNlRXZlbnQoUUtleUV2ZW50Kik7CisgICAg
dmlydHVhbCB2b2lkIG1vdXNlTW92ZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCopOwor
ICAgIHZpcnR1YWwgdm9pZCBtb3VzZVByZXNzRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50
Kik7CisgICAgdmlydHVhbCB2b2lkIG1vdXNlUmVsZWFzZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91
c2VFdmVudCopOworICAgIHZpcnR1YWwgdm9pZCBtb3VzZURvdWJsZUNsaWNrRXZlbnQoUUdyYXBo
aWNzU2NlbmVNb3VzZUV2ZW50Kik7CisgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnQoUUdyYXBo
aWNzU2NlbmVXaGVlbEV2ZW50Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgaG92ZXJNb3ZlRXZlbnQo
UUdyYXBoaWNzU2NlbmVIb3ZlckV2ZW50Kik7CisKK3ByaXZhdGU6CisgICAgUUdyYXBoaWNzV0tW
aWV3UHJpdmF0ZSogZDsKKyAgICBmcmllbmQgY2xhc3MgUUdyYXBoaWNzV0tWaWV3UHJpdmF0ZTsK
K307CisKKyNlbmRpZiAvKiBxZ3JhcGhpY3N3a3ZpZXdfaCAqLwpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3a3BhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwYTA2M2UK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAK
QEAgLTAsMCArMSwzNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAicXdrcGFnZS5o
IgorI2luY2x1ZGUgInF3a3BhZ2VfcC5oIgorCisjaW5jbHVkZSAiRGVmYXVsdFBhZ2VMb2FkZXJD
bGllbnRDYWxsYmFja3NRdC5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbmNs
dWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKyNpbmNsdWRlICJXS1N0cmluZ1F0LmgiCisjaW5jbHVk
ZSAiV0tVUkxRdC5oIgorI2luY2x1ZGUgPFFBY3Rpb24+CisjaW5jbHVkZSA8UUFwcGxpY2F0aW9u
PgorI2luY2x1ZGUgPFFHcmFwaGljc1NjZW5lTW91c2VFdmVudD4KKyNpbmNsdWRlIDxRU3R5bGU+
CisjaW5jbHVkZSA8UXREZWJ1Zz4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLRnJhbWUuaD4KKyNpbmNs
dWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Cit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworCitRV0tQYWdlUHJpdmF0ZTo6UVdLUGFnZVByaXZh
dGUoUVdLUGFnZSogcXEsIFdLUGFnZU5hbWVzcGFjZVJlZiBuYW1lc3BhY2VSZWYpCisgICAgOiBx
KHFxKQorICAgICwgY3JlYXRlTmV3UGFnZUZuKDApCit7CisgICAgbWVtc2V0KGFjdGlvbnMsIDAs
IHNpemVvZihhY3Rpb25zKSk7CisgICAgcGFnZSA9IHRvV0sobmFtZXNwYWNlUmVmKS0+Y3JlYXRl
V2ViUGFnZSgpOworICAgIHBhZ2UtPnNldFBhZ2VDbGllbnQodGhpcyk7Cit9CisKK1FXS1BhZ2VQ
cml2YXRlOjp+UVdLUGFnZVByaXZhdGUoKQoreworICAgIHBhZ2UtPmNsb3NlKCk7Cit9CisKK3Zv
aWQgUVdLUGFnZVByaXZhdGU6OmluaXQoY29uc3QgUVNpemUmIHZpZXdwb3J0U2l6ZSwgRHJhd2lu
Z0FyZWFQcm94eSogcHJveHkpCit7CisgICAgcGFnZS0+aW5pdGlhbGl6ZVdlYlBhZ2UoSW50U2l6
ZSh2aWV3cG9ydFNpemUpLCBwcm94eSk7Cit9CisKK3ZvaWQgUVdLUGFnZVByaXZhdGU6OnRvb2xU
aXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgbmV3VG9vbHRpcCkKK3sKKyAg
ICBlbWl0IHEtPnN0YXR1c0Jhck1lc3NhZ2UoUVN0cmluZyhuZXdUb29sdGlwKSk7Cit9CisKK3Zv
aWQgUVdLUGFnZVByaXZhdGU6OnBhaW50KFFQYWludGVyKiBwYWludGVyLCBRUmVjdCBhcmVhKQor
eworICAgIHBhaW50ZXItPnNhdmUoKTsKKworICAgIHBhaW50ZXItPnNldEJydXNoKFF0Ojp3aGl0
ZSk7CisgICAgcGFpbnRlci0+ZHJhd1JlY3QoYXJlYSk7CisKKyAgICBpZiAocGFnZS0+aXNWYWxp
ZCgpICYmIHBhZ2UtPmRyYXdpbmdBcmVhKCkpCisgICAgICAgIHBhZ2UtPmRyYXdpbmdBcmVhKCkt
PnBhaW50KEludFJlY3QoYXJlYSksIHBhaW50ZXIpOworCisgICAgcGFpbnRlci0+cmVzdG9yZSgp
OworfQorCit2b2lkIFFXS1BhZ2VQcml2YXRlOjprZXlQcmVzc0V2ZW50KFFLZXlFdmVudCogZXYp
Cit7CisgICAgV2ViS2V5Ym9hcmRFdmVudCBrZXlib2FyZEV2ZW50ID0gV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2KTsKKyAgICBwYWdlLT5rZXlFdmVudChrZXlib2Fy
ZEV2ZW50KTsKK30KKwordm9pZCBRV0tQYWdlUHJpdmF0ZTo6a2V5UmVsZWFzZUV2ZW50KFFLZXlF
dmVudCogZXYpCit7CisgICAgV2ViS2V5Ym9hcmRFdmVudCBrZXlib2FyZEV2ZW50ID0gV2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2KTsKKyAgICBwYWdlLT5rZXlFdmVu
dChrZXlib2FyZEV2ZW50KTsKK30KKwordm9pZCBRV0tQYWdlUHJpdmF0ZTo6bW91c2VNb3ZlRXZl
bnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldikKK3sKKyAgICAvLyBGb3Igc29tZSByZWFz
b24gbW91c2UgcHJlc3MgcmVzdWx0cyBpbiBtb3VzZSBob3ZlciAod2hpY2ggaXMKKyAgICAvLyBj
b252ZXJ0ZWQgdG8gbW91c2UgbW92ZSBmb3IgV2ViS2l0KS4gV2UgaWdub3JlIHRoZXNlIGhvdmVy
CisgICAgLy8gZXZlbnRzIGJ5IGNvbXBhcmluZyBsYXN0UG9zIHdpdGggbmV3UG9zLgorICAgIC8v
IE5PVEU6IGxhc3RQb3MgZnJvbSB0aGUgZXZlbnQgYWx3YXlzIGNvbWVzIGVtcHR5LCBzbyB3ZSB3
b3JrCisgICAgLy8gYXJvdW5kIHRoYXQgaGVyZS4KKyAgICBzdGF0aWMgUVBvaW50RiBsYXN0UG9z
ID0gUVBvaW50RigpOworICAgIGlmIChsYXN0UG9zID09IGV2LT5wb3MoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIGxhc3RQb3MgPSBldi0+cG9zKCk7CisKKyAgICBXZWJNb3VzZUV2ZW50IG1vdXNl
RXZlbnQgPSBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXYsIDApOworICAg
IHBhZ2UtPm1vdXNlRXZlbnQobW91c2VFdmVudCk7Cit9CisKK3ZvaWQgUVdLUGFnZVByaXZhdGU6
Om1vdXNlUHJlc3NFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQoreworICAgIFdl
Yk1vdXNlRXZlbnQgbW91c2VFdmVudCA9IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VF
dmVudChldiwgMSk7CisgICAgcGFnZS0+bW91c2VFdmVudChtb3VzZUV2ZW50KTsKK30KKwordm9p
ZCBRV0tQYWdlUHJpdmF0ZTo6bW91c2VSZWxlYXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2
ZW50KiBldikKK3sKKyAgICBXZWJNb3VzZUV2ZW50IG1vdXNlRXZlbnQgPSBXZWJFdmVudEZhY3Rv
cnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXYsIDApOworICAgIHBhZ2UtPm1vdXNlRXZlbnQobW91
c2VFdmVudCk7Cit9CisKK3ZvaWQgUVdLUGFnZVByaXZhdGU6Om1vdXNlRG91YmxlQ2xpY2tFdmVu
dChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQoreworICAgIFdlYk1vdXNlRXZlbnQgbW91
c2VFdmVudCA9IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChldiwgMik7Cisg
ICAgcGFnZS0+bW91c2VFdmVudChtb3VzZUV2ZW50KTsKK30KKwordm9pZCBRV0tQYWdlUHJpdmF0
ZTo6d2hlZWxFdmVudChRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQqIGV2KQoreworICAgIFdlYldo
ZWVsRXZlbnQgd2hlZWxFdmVudCA9IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVu
dChldik7CisgICAgcGFnZS0+d2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKK30KKwordm9pZCBRV0tQ
YWdlUHJpdmF0ZTo6dXBkYXRlQWN0aW9uKFFXS1BhZ2U6OldlYkFjdGlvbiBhY3Rpb24pCit7Cisj
aWZkZWYgUVRfTk9fQUNUSU9OCisgICAgUV9VTlVTRUQoYWN0aW9uKQorI2Vsc2UKKyAgICBRQWN0
aW9uKiBhID0gYWN0aW9uc1thY3Rpb25dOworICAgIGlmICghYSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYm9vbCBlbmFibGVkID0gYS0+aXNFbmFibGVkKCk7CisgICAgYm9vbCBjaGVja2VkID0g
YS0+aXNDaGVja2VkKCk7CisKKyAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgIGNhc2UgUVdLUGFn
ZTo6QmFjazoKKyAgICAgICAgcGFnZS0+Y2FuR29CYWNrKCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUVdLUGFnZTo6Rm9yd2FyZDoKKyAgICAgICAgcGFnZS0+Y2FuR29Gb3J3YXJkKCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUVdLUGFnZTo6U3RvcDoKKyAgICAgICAgLy8gRklYTUUK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRV0tQYWdlOjpSZWxvYWQ6CisgICAgICAgIC8vIEZJ
WE1FCisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIGEtPnNldEVuYWJsZWQoZW5hYmxlZCk7CisKKyAgICBpZiAoYS0+aXNDaGVja2FibGUo
KSkKKyAgICAgICAgYS0+c2V0Q2hlY2tlZChjaGVja2VkKTsKKyNlbmRpZiAvLyBRVF9OT19BQ1RJ
T04KK30KKworLy8gRklYTUU6IGhvb2sgdXAKK3ZvaWQgUVdLUGFnZVByaXZhdGU6OnVwZGF0ZU5h
dmlnYXRpb25BY3Rpb25zKCkKK3sKKyAgICB1cGRhdGVBY3Rpb24oUVdLUGFnZTo6QmFjayk7Cisg
ICAgdXBkYXRlQWN0aW9uKFFXS1BhZ2U6OkZvcndhcmQpOworICAgIHVwZGF0ZUFjdGlvbihRV0tQ
YWdlOjpTdG9wKTsKKyAgICB1cGRhdGVBY3Rpb24oUVdLUGFnZTo6UmVsb2FkKTsKK30KKworI2lm
bmRlZiBRVF9OT19BQ1RJT04KK3ZvaWQgUVdLUGFnZVByaXZhdGU6Ol9xX3dlYkFjdGlvblRyaWdn
ZXJlZChib29sIGNoZWNrZWQpCit7CisgICAgUUFjdGlvbiogYSA9IHFvYmplY3RfY2FzdDxRQWN0
aW9uKj4ocS0+c2VuZGVyKCkpOworICAgIGlmICghYSkKKyAgICAgICAgcmV0dXJuOworICAgIFFX
S1BhZ2U6OldlYkFjdGlvbiBhY3Rpb24gPSBzdGF0aWNfY2FzdDxRV0tQYWdlOjpXZWJBY3Rpb24+
KGEtPmRhdGEoKS50b0ludCgpKTsKKyAgICBxLT50cmlnZ2VyQWN0aW9uKGFjdGlvbiwgY2hlY2tl
ZCk7Cit9CisjZW5kaWYgLy8gUVRfTk9fQUNUSU9OCisKKworCisKK1FXS1BhZ2U6OlFXS1BhZ2Uo
V0tQYWdlTmFtZXNwYWNlUmVmIG5hbWVzcGFjZVJlZikKKyAgICA6IGQobmV3IFFXS1BhZ2VQcml2
YXRlKHRoaXMsIG5hbWVzcGFjZVJlZikpCit7CisgICAgV0tQYWdlTG9hZGVyQ2xpZW50IGxvYWRD
bGllbnQgPSB7CisgICAgICAgIDAsICAgICAgLyogdmVyc2lvbiAqLworICAgICAgICB0aGlzLCAg
IC8qIGNsaWVudEluZm8gKi8KKyAgICAgICAgcXRfd2tfZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZSwKKyAgICAgICAgcXRfd2tfZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUsCisgICAgICAgIHF0X3drX2RpZEZhaWxQcm92aXNpb25hbExvYWRX
aXRoRXJyb3JGb3JGcmFtZSwKKyAgICAgICAgcXRfd2tfZGlkQ29tbWl0TG9hZEZvckZyYW1lLAor
ICAgICAgICBxdF93a19kaWRGaW5pc2hMb2FkRm9yRnJhbWUsCisgICAgICAgIHF0X3drX2RpZEZh
aWxMb2FkV2l0aEVycm9yRm9yRnJhbWUsCisgICAgICAgIHF0X3drX2RpZFJlY2VpdmVUaXRsZUZv
ckZyYW1lLAorICAgICAgICBxdF93a19kaWRGaXJzdExheW91dEZvckZyYW1lLAorICAgICAgICBx
dF93a19kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSwKKyAgICAgICAgcXRf
d2tfZGlkU3RhcnRQcm9ncmVzcywKKyAgICAgICAgcXRfd2tfZGlkQ2hhbmdlUHJvZ3Jlc3MsCisg
ICAgICAgIHF0X3drX2RpZEZpbmlzaFByb2dyZXNzLAorICAgICAgICBxdF93a19kaWRCZWNvbWVV
bnJlc3BvbnNpdmUsCisgICAgICAgIHF0X3drX2RpZEJlY29tZVJlc3BvbnNpdmUKKyAgICB9Owor
ICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQocGFnZVJlZigpLCAmbG9hZENsaWVudCk7CisK
KyAgICBXS1BhZ2VVSUNsaWVudCB1aUNsaWVudCA9IHsKKyAgICAgICAgMCwgICAgICAvKiB2ZXJz
aW9uICovCisgICAgICAgIHRoaXMsICAgLyogY2xpZW50SW5mbyAqLworICAgICAgICBxdF93a19j
cmVhdGVOZXdQYWdlLAorICAgICAgICBxdF93a19zaG93UGFnZSwKKyAgICAgICAgcXRfd2tfY2xv
c2UsCisgICAgICAgIHF0X3drX3J1bkphdmFTY3JpcHRBbGVydCwKKyAgICB9OworICAgIFdLUGFn
ZVNldFBhZ2VVSUNsaWVudChwYWdlUmVmKCksICZ1aUNsaWVudCk7Cit9CisKK1FXS1BhZ2U6On5R
V0tQYWdlKCkKK3sKKyAgICBkZWxldGUgZDsKK30KKworV0tQYWdlUmVmIFFXS1BhZ2U6OnBhZ2VS
ZWYoKSBjb25zdAoreworICAgIHJldHVybiB0b1JlZihkLT5wYWdlLmdldCgpKTsKK30KKwordm9p
ZCBRV0tQYWdlOjpzZXRDcmVhdGVOZXdQYWdlRnVuY3Rpb24oQ3JlYXRlTmV3UGFnZUZuIGZ1bmN0
aW9uKQoreworICAgIGQtPmNyZWF0ZU5ld1BhZ2VGbiA9IGZ1bmN0aW9uOworfQorCit2b2lkIFFX
S1BhZ2U6OmxvYWQoY29uc3QgUVVybCYgdXJsKQoreworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVm
PiB3a3VybChXS1VSTENyZWF0ZVdpdGhRVXJsKHVybCkpOworICAgIFdLUGFnZUxvYWRVUkwocGFn
ZVJlZigpLCB3a3VybC5nZXQoKSk7Cit9CisKK3ZvaWQgUVdLUGFnZTo6c2V0VXJsKGNvbnN0IFFV
cmwmIHVybCkKK3sKKyAgICBsb2FkKHVybCk7Cit9CisKK1FVcmwgUVdLUGFnZTo6dXJsKCkgY29u
c3QKK3sKKyAgICBXS1JldGFpblB0cjxXS0ZyYW1lUmVmPiBmcmFtZSA9IFdLUGFnZUdldE1haW5G
cmFtZShwYWdlUmVmKCkpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBRVXJsKCk7
CisgICAgcmV0dXJuIFdLVVJMQ29weVFVcmwoV0tGcmFtZUdldFVSTChmcmFtZS5nZXQoKSkpOwor
fQorCitRU3RyaW5nIFFXS1BhZ2U6OnRpdGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV0tTdHJp
bmdDb3B5UVN0cmluZyhXS1BhZ2VHZXRUaXRsZShwYWdlUmVmKCkpKTsKK30KKwordm9pZCBRV0tQ
YWdlOjpzZXRWaWV3cG9ydFNpemUoY29uc3QgUVNpemUmIHNpemUpCit7CisgICAgaWYgKGQtPnBh
Z2UtPmRyYXdpbmdBcmVhKCkpCisgICAgICAgIGQtPnBhZ2UtPmRyYXdpbmdBcmVhKCktPnNldFNp
emUoSW50U2l6ZShzaXplKSk7Cit9CisKK3ZvaWQgUVdLUGFnZTo6cmVxdWVzdFpvb21SZWN0KGNv
bnN0IFFQb2ludCYgdmlld1BvcykKK3sKKyAgICBkLT5wYWdlLT5yZXF1ZXN0Wm9vbVJlY3Qodmll
d1Bvcyk7Cit9CisKKyNpZm5kZWYgUVRfTk9fQUNUSU9OCit2b2lkIFFXS1BhZ2U6OnRyaWdnZXJB
Y3Rpb24oV2ViQWN0aW9uIGFjdGlvbiwgYm9vbCkKK3sKKyAgICBzd2l0Y2ggKGFjdGlvbikgewor
ICAgIGNhc2UgQmFjazoKKyAgICAgICAgZC0+cGFnZS0+Z29CYWNrKCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgRm9yd2FyZDoKKyAgICAgICAgZC0+cGFnZS0+Z29Gb3J3YXJkKCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgU3RvcDoKKyAgICAgICAgZC0+cGFnZS0+c3RvcExvYWRpbmco
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZWxvYWQ6CisgICAgICAgIGQtPnBhZ2UtPnJl
bG9hZCgvKiByZWxvYWRGcm9tT3JpZ2luICovIHRydWUpOworICAgICAgICBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9Cit9CisjZW5kaWYgLy8gUVRfTk9fQUNUSU9O
CisKKyNpZm5kZWYgUVRfTk9fQUNUSU9OCitRQWN0aW9uKiBRV0tQYWdlOjphY3Rpb24oV2ViQWN0
aW9uIGFjdGlvbikgY29uc3QKK3sKKyAgICBpZiAoYWN0aW9uID09IFFXS1BhZ2U6Ok5vV2ViQWN0
aW9uIHx8IGFjdGlvbiA+PSBXZWJBY3Rpb25Db3VudCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICBpZiAoZC0+YWN0aW9uc1thY3Rpb25dKQorICAgICAgICByZXR1cm4gZC0+YWN0aW9uc1thY3Rp
b25dOworCisgICAgUVN0cmluZyB0ZXh0OworICAgIFFJY29uIGljb247CisgICAgUVN0eWxlKiBz
dHlsZSA9IHFvYmplY3RfY2FzdDxRQXBwbGljYXRpb24qPihRQ29yZUFwcGxpY2F0aW9uOjppbnN0
YW5jZSgpKS0+c3R5bGUoKTsKKyAgICBib29sIGNoZWNrYWJsZSA9IGZhbHNlOworCisgICAgc3dp
dGNoIChhY3Rpb24pIHsKKyAgICBjYXNlIEJhY2s6CisgICAgICAgIHRleHQgPSBjb250ZXh0TWVu
dUl0ZW1UYWdHb0JhY2soKTsKKyAgICAgICAgaWNvbiA9IHN0eWxlLT5zdGFuZGFyZEljb24oUVN0
eWxlOjpTUF9BcnJvd0JhY2spOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvcndhcmQ6Cisg
ICAgICAgIHRleHQgPSBjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKTsKKyAgICAgICAgaWNv
biA9IHN0eWxlLT5zdGFuZGFyZEljb24oUVN0eWxlOjpTUF9BcnJvd0ZvcndhcmQpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFN0b3A6CisgICAgICAgIHRleHQgPSBjb250ZXh0TWVudUl0ZW1U
YWdTdG9wKCk7CisgICAgICAgIGljb24gPSBzdHlsZS0+c3RhbmRhcmRJY29uKFFTdHlsZTo6U1Bf
QnJvd3NlclN0b3ApOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbG9hZDoKKyAgICAgICAg
dGV4dCA9IGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpOworICAgICAgICBpY29uID0gc3R5bGUt
PnN0YW5kYXJkSWNvbihRU3R5bGU6OlNQX0Jyb3dzZXJSZWxvYWQpOworICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
CisgICAgaWYgKHRleHQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFFBY3Rp
b24qIGEgPSBuZXcgUUFjdGlvbihkLT5xKTsKKyAgICBhLT5zZXRUZXh0KHRleHQpOworICAgIGEt
PnNldERhdGEoYWN0aW9uKTsKKyAgICBhLT5zZXRDaGVja2FibGUoY2hlY2thYmxlKTsKKyAgICBh
LT5zZXRJY29uKGljb24pOworCisgICAgY29ubmVjdChhLCBTSUdOQUwodHJpZ2dlcmVkKGJvb2wp
KSwgdGhpcywgU0xPVChfcV93ZWJBY3Rpb25UcmlnZ2VyZWQoYm9vbCkpKTsKKworICAgIGQtPmFj
dGlvbnNbYWN0aW9uXSA9IGE7CisgICAgZC0+dXBkYXRlQWN0aW9uKGFjdGlvbik7CisgICAgcmV0
dXJuIGE7Cit9CisjZW5kaWYgLy8gUVRfTk9fQUNUSU9OCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjViMDcyCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaApAQCAtMCwwICsx
LDczIEBACisjaWZuZGVmIHF3a3BhZ2VfaAorI2RlZmluZSBxd2twYWdlX2gKKworI2luY2x1ZGUg
InF3ZWJraXRnbG9iYWwuaCIKKyNpbmNsdWRlIDxRQWN0aW9uPgorI2luY2x1ZGUgPFFPYmplY3Q+
CisjaW5jbHVkZSA8UVBvaW50PgorI2luY2x1ZGUgPFFSZWN0PgorI2luY2x1ZGUgPFFTaXplPgor
I2luY2x1ZGUgPFFVcmw+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQyL1dLUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlTmFtZXNwYWNlLmg+CisK
K2NsYXNzIFFXS0dyYXBoaWNzV2lkZ2V0OworY2xhc3MgUVdLUGFnZVByaXZhdGU7CisKK2NsYXNz
IFFXRUJLSVRfRVhQT1JUIFFXS1BhZ2UgOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QK
KyAgICBRX1BST1BFUlRZKFFTdHJpbmcgdGl0bGUgUkVBRCB0aXRsZSkKKyAgICBRX1BST1BFUlRZ
KFFVcmwgdXJsIFJFQUQgdXJsIFdSSVRFIHNldFVybCkKKworcHVibGljOgorICAgIGVudW0gV2Vi
QWN0aW9uIHsKKyAgICAgICAgTm9XZWJBY3Rpb24gPSAtIDEsCisKKyAgICAgICAgQmFjaywKKyAg
ICAgICAgRm9yd2FyZCwKKyAgICAgICAgU3RvcCwKKyAgICAgICAgUmVsb2FkLAorCisgICAgICAg
IFdlYkFjdGlvbkNvdW50CisgICAgfTsKKworICAgIFFXS1BhZ2UoV0tQYWdlTmFtZXNwYWNlUmVm
KTsKKyAgICB2aXJ0dWFsIH5RV0tQYWdlKCk7CisKKyAgICBXS1BhZ2VSZWYgcGFnZVJlZigpIGNv
bnN0OworCisgICAgdm9pZCBsb2FkKGNvbnN0IFFVcmwmIHVybCk7CisgICAgdm9pZCBzZXRVcmwo
Y29uc3QgUVVybCYgdXJsKTsKKyAgICBRVXJsIHVybCgpIGNvbnN0OworCisgICAgUVN0cmluZyB0
aXRsZSgpIGNvbnN0OworCisgICAgdm9pZCBzZXRWaWV3cG9ydFNpemUoY29uc3QgUVNpemUmKTsK
KyAgICB2b2lkIHJlcXVlc3Rab29tUmVjdChjb25zdCBRUG9pbnQmKTsKKworICAgIFFBY3Rpb24q
IGFjdGlvbihXZWJBY3Rpb24gYWN0aW9uKSBjb25zdDsKKyAgICB2b2lkIHRyaWdnZXJBY3Rpb24o
V2ViQWN0aW9uIGFjdGlvbiwgYm9vbCBjaGVja2VkID0gZmFsc2UpOworCisgICAgdHlwZWRlZiBR
V0tQYWdlKiAoKkNyZWF0ZU5ld1BhZ2VGbikoUVdLUGFnZSopOworICAgIHZvaWQgc2V0Q3JlYXRl
TmV3UGFnZUZ1bmN0aW9uKENyZWF0ZU5ld1BhZ2VGbiBmdW5jdGlvbik7CisKK3B1YmxpYzoKKyAg
ICBRX1NJR05BTCB2b2lkIHN0YXR1c0Jhck1lc3NhZ2UoY29uc3QgUVN0cmluZyYpOworICAgIFFf
U0lHTkFMIHZvaWQgdGl0bGVDaGFuZ2VkKGNvbnN0IFFTdHJpbmcmKTsKKyAgICBRX1NJR05BTCB2
b2lkIGxvYWRTdGFydGVkKCk7CisgICAgUV9TSUdOQUwgdm9pZCBsb2FkRmluaXNoZWQoYm9vbCBv
ayk7CisgICAgUV9TSUdOQUwgdm9pZCBsb2FkUHJvZ3Jlc3MoaW50IHByb2dyZXNzKTsKKyAgICBR
X1NJR05BTCB2b2lkIGluaXRpYWxMYXlvdXRDb21wbGV0ZWQoKTsKKyAgICBRX1NJR05BTCB2b2lk
IHVybENoYW5nZWQoY29uc3QgUVVybCYpOworICAgIFFfU0lHTkFMIHZvaWQgY29udGVudHNTaXpl
Q2hhbmdlZChjb25zdCBRU2l6ZSYpOworICAgIFFfU0lHTkFMIHZvaWQgem9vbVJlY3RSZWNlaXZl
ZChjb25zdCBRUmVjdCYpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBRV0tHcmFwaGlj
c1dpZGdldDsKKyAgICBmcmllbmQgY2xhc3MgUVdLR3JhcGhpY3NXaWRnZXRQcml2YXRlOworICAg
IGZyaWVuZCBjbGFzcyBRV0tQYWdlUHJpdmF0ZTsKKyAgICBRV0tQYWdlUHJpdmF0ZSogZDsKK307
CisKKyNlbmRpZiAvKiBxd2twYWdlX2ggKi8KZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2twYWdlX3AuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3Au
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGJlZjFiCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCkBAIC0wLDAgKzEs
NzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIHF3a3BhZ2VfcF9oCisjZGVmaW5lIHF3
a3BhZ2VfcF9oCisKKyNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCisjaW5jbHVkZSAiUGFn
ZUNsaWVudC5oIgorI2luY2x1ZGUgInF3a3BhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlTmFtZXNw
YWNlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorI2luY2x1ZGUgPFFHcmFwaGljc1ZpZXc+CisjaW5jbHVkZSA8UUtleUV2ZW50PgorCitjbGFz
cyBRV0tQYWdlUHJpdmF0ZSA6IHB1YmxpYyBXZWJLaXQ6OlBhZ2VDbGllbnQgeworcHVibGljOgor
ICAgIFFXS1BhZ2VQcml2YXRlKFFXS1BhZ2UqLCBXS1BhZ2VOYW1lc3BhY2VSZWYpOworICAgIH5R
V0tQYWdlUHJpdmF0ZSgpOworCisgICAgc3RhdGljIFFXS1BhZ2VQcml2YXRlKiBnZXQoUVdLUGFn
ZSogcGFnZSkgeyByZXR1cm4gcGFnZS0+ZDsgfQorCisgICAgdm9pZCBpbml0KGNvbnN0IFFTaXpl
JiB2aWV3cG9ydFNpemUsIFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eSopOworCisgICAgdmlydHVh
bCB2b2lkIHByb2Nlc3NEaWRFeGl0KCkge30KKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZFJl
dml2ZSgpIHt9CisgICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhib29sIGRpcmVjdGlvbikge30K
KyAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiwg
Y29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CisKKyAgICB2b2lkIHBhaW50KFFQYWludGVyKiBwYWlu
dGVyLCBRUmVjdCk7CisKKyAgICB2b2lkIGtleVByZXNzRXZlbnQoUUtleUV2ZW50Kik7CisgICAg
dm9pZCBrZXlSZWxlYXNlRXZlbnQoUUtleUV2ZW50Kik7CisgICAgdm9pZCBtb3VzZU1vdmVFdmVu
dChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqKTsKKyAgICB2b2lkIG1vdXNlUHJlc3NFdmVudChR
R3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqKTsKKyAgICB2b2lkIG1vdXNlUmVsZWFzZUV2ZW50KFFH
cmFwaGljc1NjZW5lTW91c2VFdmVudCopOworICAgIHZvaWQgbW91c2VEb3VibGVDbGlja0V2ZW50
KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCopOworICAgIHZvaWQgd2hlZWxFdmVudChRR3JhcGhp
Y3NTY2VuZVdoZWVsRXZlbnQqIGV2KTsKKworICAgIHZvaWQgdXBkYXRlQWN0aW9uKFFXS1BhZ2U6
OldlYkFjdGlvbiBhY3Rpb24pOworICAgIHZvaWQgdXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMoKTsK
KyAgICB2b2lkIHVwZGF0ZUVkaXRvckFjdGlvbnMoKTsKKworICAgIHZvaWQgX3Ffd2ViQWN0aW9u
VHJpZ2dlcmVkKGJvb2wgY2hlY2tlZCk7CisKKyAgICBRQWN0aW9uICphY3Rpb25zW1FXS1BhZ2U6
OldlYkFjdGlvbkNvdW50XTsKKworICAgIFFXS1BhZ2UqIHE7CisgICAgUmVmUHRyPFdlYktpdDo6
V2ViUGFnZVByb3h5PiBwYWdlOworCisgICAgUVdLUGFnZTo6Q3JlYXRlTmV3UGFnZUZuIGNyZWF0
ZU5ld1BhZ2VGbjsKK307CisKKworI2VuZGlmIC8qIHFrcGFnZV9wX2ggKi8KLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60248</attachid>
            <date>2010-07-01 07:48:41 -0700</date>
            <delta_ts>2010-07-01 11:07:13 -0700</delta_ts>
            <desc>Export symbols on Linux with GCC</desc>
            <filename>0001-Export-symbols-on-Linux-with-GCC.patch</filename>
            <type>text/plain</type>
            <size>2081</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBmMjBjMTk5ZjQ2NjhmOWMxNzQ3NTllNTEwN2FmZDdkM2JkYzQ3YWNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDExOjQ4OjAw
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gRXhwb3J0IHN5bWJvbHMgb24gTGludXggd2l0aCBHQ0MK
ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBVSVByb2Nlc3MvQVBJL0MvV0tCYXNlLmg6
CiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhc2UuaDoKLS0tCiBX
ZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkg
KysrKysrKysrCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaCAgICAgICAgICAgICAg
ICAgICB8ICAgIDIgKysKIC4uLi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlQmFzZS5oIHwgICAgMiArKwogMyBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAw
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggNzlkNmRkMy4uOGJmOThkYiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTIsNiArMiwxNSBAQAogCiAgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAgICAgIEV4cG9ydCBzeW1ib2xzIG9u
IExpbnV4IHdpdGggR0NDCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tCYXNlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhc2UuaDoK
KworMjAxMC0wNy0wMSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoLmNocmlz
dGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCiAgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwogCmRpZmYg
LS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaCBiL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQmFzZS5oCmluZGV4IGU2MmQyMjUuLjNkMjFmMmUgMTAwNjQ0Ci0tLSBhL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFzZS5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQmFzZS5oCkBAIC00Niw2ICs0Niw4IEBAIHR5cGVkZWYgc3RydWN0IE9wYXF1ZVdLVVJM
UmVmKiBXS1VSTFJlZjsKICNlbHNlCiAjZGVmaW5lIFdLX0VYUE9SVCBfX2RlY2xzcGVjKGRsbGlt
cG9ydCkKICNlbmRpZgorI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyNkZWZpbmUgV0tfRVhQT1JU
IF9fYXR0cmlidXRlX18gKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQogI2Vsc2UKICNkZWZpbmUg
V0tfRVhQT1JUCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhc2UuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhc2UuaAppbmRleCA2M2U4NWE1Li5lZmU5Yzg5IDEwMDY0
NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVC
YXNlLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlQmFzZS5oCkBAIC0zNiw2ICszNiw4IEBAIHR5cGVkZWYgc3RydWN0IE9wYXF1ZVdLQnVuZGxl
KiBXS0J1bmRsZVJlZjsKICNlbHNlCiAjZGVmaW5lIFdLX0VYUE9SVCBfX2RlY2xzcGVjKGRsbGlt
cG9ydCkKICNlbmRpZgorI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyNkZWZpbmUgV0tfRVhQT1JU
IF9fYXR0cmlidXRlX18gKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQogI2Vsc2UKICNkZWZpbmUg
V0tfRVhQT1JUCiAjZW5kaWYKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60250</attachid>
            <date>2010-07-01 08:11:34 -0700</date>
            <delta_ts>2010-07-01 12:47:59 -0700</delta_ts>
            <desc>(r62287 - p=kenneth, r=antti) Initial Qt API for WK2 for landing</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>31142</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBmNWY3NWIxZmIzNGI4NzY3NjFlMGNlYTdhM2Q2YzAzMDBmOWUxMmVkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDEwOjM5OjE1
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpBZGQgaW5pdGlhbCBRdCBBUEkgZm9yIFdlYktpdDIKCiog
VUlQcm9jZXNzL0FQSS9xdC9XS1ZpZXcuaDogQWRkZWQuCiogVUlQcm9jZXNzL0FQSS9xdC9xZ3Jh
cGhpY3N3a3ZpZXcuY3BwOiBBZGRlZC4KKFFHcmFwaGljc1dLVmlld1ByaXZhdGU6OnBhZ2VSZWYp
OgooUUdyYXBoaWNzV0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcpOgooUUdyYXBoaWNzV0tWaWV3Ojp+
UUdyYXBoaWNzV0tWaWV3KToKKFFHcmFwaGljc1dLVmlldzo6cGFnZSk6CihRR3JhcGhpY3NXS1Zp
ZXc6OnBhaW50KToKKFFHcmFwaGljc1dLVmlldzo6c2V0R2VvbWV0cnkpOgooUUdyYXBoaWNzV0tW
aWV3Ojpsb2FkKToKKFFHcmFwaGljc1dLVmlldzo6c2V0VXJsKToKKFFHcmFwaGljc1dLVmlldzo6
dXJsKToKKFFHcmFwaGljc1dLVmlldzo6dGl0bGUpOgooUUdyYXBoaWNzV0tWaWV3Ojp0cmlnZ2Vy
UGFnZUFjdGlvbik6CihRR3JhcGhpY3NXS1ZpZXc6OmJhY2spOgooUUdyYXBoaWNzV0tWaWV3Ojpm
b3J3YXJkKToKKFFHcmFwaGljc1dLVmlldzo6cmVsb2FkKToKKFFHcmFwaGljc1dLVmlldzo6c3Rv
cCk6CihRR3JhcGhpY3NXS1ZpZXc6Oml0ZW1DaGFuZ2UpOgooUUdyYXBoaWNzV0tWaWV3OjpldmVu
dCk6CihRR3JhcGhpY3NXS1ZpZXc6OnNpemVIaW50KToKKFFHcmFwaGljc1dLVmlldzo6aW5wdXRN
ZXRob2RRdWVyeSk6CihRR3JhcGhpY3NXS1ZpZXc6OmtleVByZXNzRXZlbnQpOgooUUdyYXBoaWNz
V0tWaWV3OjprZXlSZWxlYXNlRXZlbnQpOgooUUdyYXBoaWNzV0tWaWV3Ojpob3Zlck1vdmVFdmVu
dCk6CihRR3JhcGhpY3NXS1ZpZXc6Om1vdXNlTW92ZUV2ZW50KToKKFFHcmFwaGljc1dLVmlldzo6
bW91c2VQcmVzc0V2ZW50KToKKFFHcmFwaGljc1dLVmlldzo6bW91c2VSZWxlYXNlRXZlbnQpOgoo
UUdyYXBoaWNzV0tWaWV3Ojptb3VzZURvdWJsZUNsaWNrRXZlbnQpOgooUUdyYXBoaWNzV0tWaWV3
Ojp3aGVlbEV2ZW50KToKKFFHcmFwaGljc1dLVmlld1ByaXZhdGU6OlFHcmFwaGljc1dLVmlld1By
aXZhdGUpOgooUUdyYXBoaWNzV0tWaWV3Ojp2aXNpYmxlUmVjdCk6CiogVUlQcm9jZXNzL0FQSS9x
dC9xZ3JhcGhpY3N3a3ZpZXcuaDogQWRkZWQuCiogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNw
cDogQWRkZWQuCihRV0tQYWdlUHJpdmF0ZTo6UVdLUGFnZVByaXZhdGUpOgooUVdLUGFnZVByaXZh
dGU6On5RV0tQYWdlUHJpdmF0ZSk6CihRV0tQYWdlUHJpdmF0ZTo6aW5pdCk6CihRV0tQYWdlUHJp
dmF0ZTo6dG9vbFRpcENoYW5nZWQpOgooUVdLUGFnZVByaXZhdGU6OnBhaW50KToKKFFXS1BhZ2VQ
cml2YXRlOjprZXlQcmVzc0V2ZW50KToKKFFXS1BhZ2VQcml2YXRlOjprZXlSZWxlYXNlRXZlbnQp
OgooUVdLUGFnZVByaXZhdGU6Om1vdXNlTW92ZUV2ZW50KToKKFFXS1BhZ2VQcml2YXRlOjptb3Vz
ZVByZXNzRXZlbnQpOgooUVdLUGFnZVByaXZhdGU6Om1vdXNlUmVsZWFzZUV2ZW50KToKKFFXS1Bh
Z2VQcml2YXRlOjptb3VzZURvdWJsZUNsaWNrRXZlbnQpOgooUVdLUGFnZVByaXZhdGU6OndoZWVs
RXZlbnQpOgooUVdLUGFnZVByaXZhdGU6OnVwZGF0ZUFjdGlvbik6CihRV0tQYWdlUHJpdmF0ZTo6
dXBkYXRlTmF2aWdhdGlvbkFjdGlvbnMpOgooUVdLUGFnZVByaXZhdGU6Ol9xX3dlYkFjdGlvblRy
aWdnZXJlZCk6CihRV0tQYWdlOjpRV0tQYWdlKToKKFFXS1BhZ2U6On5RV0tQYWdlKToKKFFXS1Bh
Z2U6OnBhZ2VSZWYpOgooUVdLUGFnZTo6c2V0Q3JlYXRlTmV3UGFnZUZ1bmN0aW9uKToKKFFXS1Bh
Z2U6OmxvYWQpOgooUVdLUGFnZTo6c2V0VXJsKToKKFFXS1BhZ2U6OnVybCk6CihRV0tQYWdlOjp0
aXRsZSk6CihRV0tQYWdlOjpzZXRWaWV3cG9ydFNpemUpOgooUVdLUGFnZTo6cmVxdWVzdFpvb21S
ZWN0KToKKFFXS1BhZ2U6OnRyaWdnZXJBY3Rpb24pOgooUVdLUGFnZTo6YWN0aW9uKToKKiBVSVBy
b2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaDogQWRkZWQuCiogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdl
X3AuaDogQWRkZWQuCihRV0tQYWdlUHJpdmF0ZTo6Z2V0KToKKFFXS1BhZ2VQcml2YXRlOjpwcm9j
ZXNzRGlkRXhpdCk6CihRV0tQYWdlUHJpdmF0ZTo6cHJvY2Vzc0RpZFJldml2ZSk6CihRV0tQYWdl
UHJpdmF0ZTo6dGFrZUZvY3VzKToKLS0tCiBXZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgNzYgKysrKysrCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvV0tW
aWV3LmggICAgICAgICAgICB8ICAgMjUgKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZ3Jh
cGhpY3N3a3ZpZXcuY3BwIHwgIDI1MyArKysrKysrKysrKysrKysrKysrCiBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmggICB8ICAgNzcgKysrKysrCiBXZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAgICAgICAgICB8ICAzMzcgKysrKysrKysrKysrKysr
KysrKysrKysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmggICAgICAgICAg
IHwgICA3MSArKysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaCAgICAg
ICAgIHwgICA3MSArKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgOTEwIGluc2VydGlvbnMoKyksIDAg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L1dLVmlldy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fn
cmFwaGljc3drdmlldy5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcWdyYXBoaWNzd2t2aWV3LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGFnZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3a3BhZ2VfcC5oCgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MTU0M2I5Li5lMTA5NTgzIDEwMDY0NAotLS0gYS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtNSw2ICs1LDgyIEBACiAg
ICAgICAgIFtRdF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwogCisgICAgICAgIEFkZCBp
bml0aWFsIFF0IEFQSSBmb3IgV2ViS2l0MgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9X
S1ZpZXcuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3Zp
ZXcuY3BwOiBBZGRlZC4KKyAgICAgICAgKFFHcmFwaGljc1dLVmlld1ByaXZhdGU6OnBhZ2VSZWYp
OgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcpOgorICAgICAgICAo
UUdyYXBoaWNzV0tWaWV3Ojp+UUdyYXBoaWNzV0tWaWV3KToKKyAgICAgICAgKFFHcmFwaGljc1dL
Vmlldzo6cGFnZSk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OnBhaW50KToKKyAgICAgICAg
KFFHcmFwaGljc1dLVmlldzo6c2V0R2VvbWV0cnkpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3
Ojpsb2FkKToKKyAgICAgICAgKFFHcmFwaGljc1dLVmlldzo6c2V0VXJsKToKKyAgICAgICAgKFFH
cmFwaGljc1dLVmlldzo6dXJsKToKKyAgICAgICAgKFFHcmFwaGljc1dLVmlldzo6dGl0bGUpOgor
ICAgICAgICAoUUdyYXBoaWNzV0tWaWV3Ojp0cmlnZ2VyUGFnZUFjdGlvbik6CisgICAgICAgIChR
R3JhcGhpY3NXS1ZpZXc6OmJhY2spOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3Ojpmb3J3YXJk
KToKKyAgICAgICAgKFFHcmFwaGljc1dLVmlldzo6cmVsb2FkKToKKyAgICAgICAgKFFHcmFwaGlj
c1dLVmlldzo6c3RvcCk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6Oml0ZW1DaGFuZ2UpOgor
ICAgICAgICAoUUdyYXBoaWNzV0tWaWV3OjpldmVudCk6CisgICAgICAgIChRR3JhcGhpY3NXS1Zp
ZXc6OnNpemVIaW50KToKKyAgICAgICAgKFFHcmFwaGljc1dLVmlldzo6aW5wdXRNZXRob2RRdWVy
eSk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6OmtleVByZXNzRXZlbnQpOgorICAgICAgICAo
UUdyYXBoaWNzV0tWaWV3OjprZXlSZWxlYXNlRXZlbnQpOgorICAgICAgICAoUUdyYXBoaWNzV0tW
aWV3Ojpob3Zlck1vdmVFdmVudCk6CisgICAgICAgIChRR3JhcGhpY3NXS1ZpZXc6Om1vdXNlTW92
ZUV2ZW50KToKKyAgICAgICAgKFFHcmFwaGljc1dLVmlldzo6bW91c2VQcmVzc0V2ZW50KToKKyAg
ICAgICAgKFFHcmFwaGljc1dLVmlldzo6bW91c2VSZWxlYXNlRXZlbnQpOgorICAgICAgICAoUUdy
YXBoaWNzV0tWaWV3Ojptb3VzZURvdWJsZUNsaWNrRXZlbnQpOgorICAgICAgICAoUUdyYXBoaWNz
V0tWaWV3Ojp3aGVlbEV2ZW50KToKKyAgICAgICAgKFFHcmFwaGljc1dLVmlld1ByaXZhdGU6OlFH
cmFwaGljc1dLVmlld1ByaXZhdGUpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3Ojp2aXNpYmxl
UmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcDogQWRkZWQuCisgICAg
ICAgIChRV0tQYWdlUHJpdmF0ZTo6UVdLUGFnZVByaXZhdGUpOgorICAgICAgICAoUVdLUGFnZVBy
aXZhdGU6On5RV0tQYWdlUHJpdmF0ZSk6CisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6aW5pdCk6
CisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6dG9vbFRpcENoYW5nZWQpOgorICAgICAgICAoUVdL
UGFnZVByaXZhdGU6OnBhaW50KToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjprZXlQcmVzc0V2
ZW50KToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjprZXlSZWxlYXNlRXZlbnQpOgorICAgICAg
ICAoUVdLUGFnZVByaXZhdGU6Om1vdXNlTW92ZUV2ZW50KToKKyAgICAgICAgKFFXS1BhZ2VQcml2
YXRlOjptb3VzZVByZXNzRXZlbnQpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6Om1vdXNlUmVs
ZWFzZUV2ZW50KToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjptb3VzZURvdWJsZUNsaWNrRXZl
bnQpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6OndoZWVsRXZlbnQpOgorICAgICAgICAoUVdL
UGFnZVByaXZhdGU6OnVwZGF0ZUFjdGlvbik6CisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6dXBk
YXRlTmF2aWdhdGlvbkFjdGlvbnMpOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6Ol9xX3dlYkFj
dGlvblRyaWdnZXJlZCk6CisgICAgICAgIChRV0tQYWdlOjpRV0tQYWdlKToKKyAgICAgICAgKFFX
S1BhZ2U6On5RV0tQYWdlKToKKyAgICAgICAgKFFXS1BhZ2U6OnBhZ2VSZWYpOgorICAgICAgICAo
UVdLUGFnZTo6c2V0Q3JlYXRlTmV3UGFnZUZ1bmN0aW9uKToKKyAgICAgICAgKFFXS1BhZ2U6Omxv
YWQpOgorICAgICAgICAoUVdLUGFnZTo6c2V0VXJsKToKKyAgICAgICAgKFFXS1BhZ2U6OnVybCk6
CisgICAgICAgIChRV0tQYWdlOjp0aXRsZSk6CisgICAgICAgIChRV0tQYWdlOjpzZXRWaWV3cG9y
dFNpemUpOgorICAgICAgICAoUVdLUGFnZTo6cmVxdWVzdFpvb21SZWN0KToKKyAgICAgICAgKFFX
S1BhZ2U6OnRyaWdnZXJBY3Rpb24pOgorICAgICAgICAoUVdLUGFnZTo6YWN0aW9uKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9xdC9xd2twYWdlX3AuaDogQWRkZWQuCisgICAgICAgIChRV0tQYWdlUHJpdmF0ZTo6
Z2V0KToKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjpwcm9jZXNzRGlkRXhpdCk6CisgICAgICAg
IChRV0tQYWdlUHJpdmF0ZTo6cHJvY2Vzc0RpZFJldml2ZSk6CisgICAgICAgIChRV0tQYWdlUHJp
dmF0ZTo6dGFrZUZvY3VzKToKKworMjAxMC0wNy0wMSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4gIDxrZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJLaXQyIGlt
cGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDIzMworCiAgICAgICAgIEFkZCBvdXIgZXZlbnQgZmFjdG9yeSBmb3IgY29udmVydGlu
ZyBRdCBldmVudHMgdG8gc29tZXRoaW5nIFdlYktpdDIKICAgICAgICAgdW5kZXJzdGFuZHMuCiAK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9XS1ZpZXcuaCBiL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9XS1ZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5kNWU5Y2ZlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L1dLVmlldy5oCkBAIC0wLDAgKzEsMjUgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAg
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYg
V0tWaWV3X2gKKyNkZWZpbmUgV0tWaWV3X2gKKworI2luY2x1ZGUgPFdlYktpdDIvcWdyYXBoaWNz
d2t2aWV3Lmg+CisKKyNlbmRpZiAvKiBXS1ZpZXdfaCAqLwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5jcHAgYi9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5kZGU4NTcyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FncmFwaGljc3drdmlldy5jcHAKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3Jh
bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLwor
CisjaW5jbHVkZSAicWdyYXBoaWNzd2t2aWV3LmgiCisKKyNpbmNsdWRlICJDaHVua2VkVXBkYXRl
RHJhd2luZ0FyZWFQcm94eS5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlICJSdW5M
b29wLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZU5hbWVzcGFj
ZS5oIgorI2luY2x1ZGUgInF3a3BhZ2UuaCIKKyNpbmNsdWRlICJxd2twYWdlX3AuaCIKKyNpbmNs
dWRlIDxRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQ+CisjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4K
KyNpbmNsdWRlIDxRUGFpbnRlcj4KKyNpbmNsdWRlIDxRU2Nyb2xsQmFyPgorI2luY2x1ZGUgPFFT
dHlsZU9wdGlvbkdyYXBoaWNzSXRlbT4KKyNpbmNsdWRlIDxRdERlYnVnPgorI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0cnVjdCBRR3JhcGhpY3NXS1ZpZXdQcml2YXRlIHsK
KyAgICBRR3JhcGhpY3NXS1ZpZXdQcml2YXRlKFFHcmFwaGljc1dLVmlldyogdmlldyk7CisgICAg
V0tQYWdlUmVmIHBhZ2VSZWYoKSBjb25zdCB7IHJldHVybiBwYWdlLT5wYWdlUmVmKCk7IH0KKwor
ICAgIFFHcmFwaGljc1dLVmlldyogcTsKKyAgICBRV0tQYWdlKiBwYWdlOworfTsKKworUUdyYXBo
aWNzV0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcoV0tQYWdlTmFtZXNwYWNlUmVmIHBhZ2VOYW1lc3Bh
Y2VSZWYsIEJhY2tpbmdTdG9yZVR5cGUgYmFja2luZ1N0b3JlVHlwZSwgUUdyYXBoaWNzSXRlbSog
cGFyZW50KQorICAgIDogUUdyYXBoaWNzV2lkZ2V0KHBhcmVudCkKKyAgICAsIGQobmV3IFFHcmFw
aGljc1dLVmlld1ByaXZhdGUodGhpcykpCit7CisgICAgc2V0Rm9jdXNQb2xpY3koUXQ6OlN0cm9u
Z0ZvY3VzKTsKKyAgICBzZXRBY2NlcHRIb3ZlckV2ZW50cyh0cnVlKTsKKyAgICBEcmF3aW5nQXJl
YVByb3h5KiBkcmF3aW5nQXJlYVByb3h5ID0gbmV3IENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVBy
b3h5KHRoaXMpOworCisgICAgZC0+cGFnZSA9IG5ldyBRV0tQYWdlKHBhZ2VOYW1lc3BhY2VSZWYp
OworICAgIGQtPnBhZ2UtPmQtPmluaXQoc2l6ZSgpLnRvU2l6ZSgpLCBkcmF3aW5nQXJlYVByb3h5
KTsKKyAgICBjb25uZWN0KGQtPnBhZ2UsIFNJR05BTCh0aXRsZUNoYW5nZWQoUVN0cmluZykpLCB0
aGlzLCBTSUdOQUwodGl0bGVDaGFuZ2VkKFFTdHJpbmcpKSk7CisgICAgY29ubmVjdChkLT5wYWdl
LCBTSUdOQUwobG9hZFN0YXJ0ZWQoKSksIHRoaXMsIFNJR05BTChsb2FkU3RhcnRlZCgpKSk7Cisg
ICAgY29ubmVjdChkLT5wYWdlLCBTSUdOQUwobG9hZEZpbmlzaGVkKGJvb2wpKSwgdGhpcywgU0lH
TkFMKGxvYWRGaW5pc2hlZChib29sKSkpOworICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFMKGxv
YWRQcm9ncmVzcyhpbnQpKSwgdGhpcywgU0lHTkFMKGxvYWRQcm9ncmVzcyhpbnQpKSk7CisgICAg
Y29ubmVjdChkLT5wYWdlLCBTSUdOQUwoaW5pdGlhbExheW91dENvbXBsZXRlZCgpKSwgdGhpcywg
U0lHTkFMKGluaXRpYWxMYXlvdXRDb21wbGV0ZWQoKSkpOworICAgIGNvbm5lY3QoZC0+cGFnZSwg
U0lHTkFMKHVybENoYW5nZWQoY29uc3QgUVVybCYpKSwgdGhpcywgU0lHTkFMKHVybENoYW5nZWQo
Y29uc3QgUVVybCYpKSk7Cit9CisKK1FHcmFwaGljc1dLVmlldzo6flFHcmFwaGljc1dLVmlldygp
Cit7CisgICAgZGVsZXRlIGQtPnBhZ2U7CisgICAgZGVsZXRlIGQ7Cit9CisKK1FXS1BhZ2UqIFFH
cmFwaGljc1dLVmlldzo6cGFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPnBhZ2U7Cit9CisK
K3ZvaWQgUUdyYXBoaWNzV0tWaWV3OjpwYWludChRUGFpbnRlciogcGFpbnRlciwgY29uc3QgUVN0
eWxlT3B0aW9uR3JhcGhpY3NJdGVtKiBvcHRpb24sIFFXaWRnZXQqKQoreworICAgIHBhZ2UoKS0+
ZC0+cGFpbnQocGFpbnRlciwgb3B0aW9uLT5leHBvc2VkUmVjdC50b0FsaWduZWRSZWN0KCkpOwor
fQorCit2b2lkIFFHcmFwaGljc1dLVmlldzo6c2V0R2VvbWV0cnkoY29uc3QgUVJlY3RGJiByZWN0
KQoreworICAgIFFHcmFwaGljc1dpZGdldDo6c2V0R2VvbWV0cnkocmVjdCk7CisKKyAgICAvLyBO
T1RFOiBjYWxsIGdlb21ldHJ5KCkgYXMgc2V0R2VvbWV0cnkgZW5zdXJlcyB0aGF0CisgICAgLy8g
dGhlIGdlb21ldHJ5IGlzIHdpdGhpbiBsZWdhbCBib3VuZHMgKG1pbmltdW1TaXplLCBtYXhpbXVt
U2l6ZSkKKyAgICBwYWdlKCktPnNldFZpZXdwb3J0U2l6ZShnZW9tZXRyeSgpLnNpemUoKS50b1Np
emUoKSk7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3Ojpsb2FkKGNvbnN0IFFVcmwmIHVybCkK
K3sKKyAgICBwYWdlKCktPmxvYWQodXJsKTsKK30KKwordm9pZCBRR3JhcGhpY3NXS1ZpZXc6OnNl
dFVybChjb25zdCBRVXJsJiB1cmwpCit7CisgICAgcGFnZSgpLT5zZXRVcmwodXJsKTsKK30KKwor
UVVybCBRR3JhcGhpY3NXS1ZpZXc6OnVybCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBhZ2UoKS0+
dXJsKCk7Cit9CisKK1FTdHJpbmcgUUdyYXBoaWNzV0tWaWV3Ojp0aXRsZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHBhZ2UoKS0+dGl0bGUoKTsKK30KKwordm9pZCBRR3JhcGhpY3NXS1ZpZXc6OnRy
aWdnZXJQYWdlQWN0aW9uKFFXS1BhZ2U6OldlYkFjdGlvbiBhY3Rpb24sIGJvb2wgY2hlY2tlZCkK
K3sKKyAgICBwYWdlKCktPnRyaWdnZXJBY3Rpb24oYWN0aW9uLCBjaGVja2VkKTsKK30KKwordm9p
ZCBRR3JhcGhpY3NXS1ZpZXc6OmJhY2soKQoreworICAgIHBhZ2UoKS0+dHJpZ2dlckFjdGlvbihR
V0tQYWdlOjpCYWNrKTsKK30KKwordm9pZCBRR3JhcGhpY3NXS1ZpZXc6OmZvcndhcmQoKQorewor
ICAgIHBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV0tQYWdlOjpGb3J3YXJkKTsKK30KKwordm9pZCBR
R3JhcGhpY3NXS1ZpZXc6OnJlbG9hZCgpCit7CisgICAgcGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFX
S1BhZ2U6OlJlbG9hZCk7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3OjpzdG9wKCkKK3sKKyAg
ICBwYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdLUGFnZTo6U3RvcCk7Cit9CisKKy8qISBccmVpbXAK
KyovCitRVmFyaWFudCBRR3JhcGhpY3NXS1ZpZXc6Oml0ZW1DaGFuZ2UoR3JhcGhpY3NJdGVtQ2hh
bmdlIGNoYW5nZSwgY29uc3QgUVZhcmlhbnQmIHZhbHVlKQoreworICAgIC8vIEhlcmUgc28gdGhh
dCBpdCBjYW4gYmUgcmVpbXBsZW1lbnRlZCB3aXRob3V0IGJyZWFraW5nIEFCSS4KKyAgICByZXR1
cm4gUUdyYXBoaWNzV2lkZ2V0OjppdGVtQ2hhbmdlKGNoYW5nZSwgdmFsdWUpOworfQorCisvKiEg
XHJlaW1wCisqLworYm9vbCBRR3JhcGhpY3NXS1ZpZXc6OmV2ZW50KFFFdmVudCogZXZlbnQpCit7
CisgICAgLy8gSGVyZSBzbyB0aGF0IGl0IGNhbiBiZSByZWltcGxlbWVudGVkIHdpdGhvdXQgYnJl
YWtpbmcgQUJJLgorICAgIHJldHVybiBRR3JhcGhpY3NXaWRnZXQ6OmV2ZW50KGV2ZW50KTsKK30K
KworLyohIFxyZWltcAorKi8KK1FTaXplRiBRR3JhcGhpY3NXS1ZpZXc6OnNpemVIaW50KFF0OjpT
aXplSGludCB3aGljaCwgY29uc3QgUVNpemVGJiBjb25zdHJhaW50KSBjb25zdAoreworICAgIGlm
ICh3aGljaCA9PSBRdDo6UHJlZmVycmVkU2l6ZSkKKyAgICAgICAgcmV0dXJuIFFTaXplRig4MDAs
IDYwMCk7CisgICAgcmV0dXJuIFFHcmFwaGljc1dpZGdldDo6c2l6ZUhpbnQod2hpY2gsIGNvbnN0
cmFpbnQpOworfQorCisvKiEgXHJlaW1wCisqLworUVZhcmlhbnQgUUdyYXBoaWNzV0tWaWV3Ojpp
bnB1dE1ldGhvZFF1ZXJ5KFF0OjpJbnB1dE1ldGhvZFF1ZXJ5IHF1ZXJ5KSBjb25zdAoreworICAg
IC8vIGltcGxlbWVudAorICAgIHJldHVybiBRVmFyaWFudCgpOworfQorCisvKiEgXHJlaW1wCisq
Lwordm9pZCBRR3JhcGhpY3NXS1ZpZXc6OmtleVByZXNzRXZlbnQoUUtleUV2ZW50KiBldikKK3sK
KyAgICBwYWdlKCktPmQtPmtleVByZXNzRXZlbnQoZXYpOworfQorCisvKiEgXHJlaW1wCisqLwor
dm9pZCBRR3JhcGhpY3NXS1ZpZXc6OmtleVJlbGVhc2VFdmVudChRS2V5RXZlbnQqIGV2KQorewor
ICAgIHBhZ2UoKS0+ZC0+a2V5UmVsZWFzZUV2ZW50KGV2KTsKK30KKwordm9pZCBRR3JhcGhpY3NX
S1ZpZXc6OmhvdmVyTW92ZUV2ZW50KFFHcmFwaGljc1NjZW5lSG92ZXJFdmVudCogZXYpCit7Cisg
ICAgUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50IG1lKFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNl
TW92ZSk7CisgICAgbWUuc2V0UG9zKGV2LT5wb3MoKSk7CisgICAgbWUuc2V0U2NyZWVuUG9zKGV2
LT5zY3JlZW5Qb3MoKSk7CisKKyAgICBwYWdlKCktPmQtPm1vdXNlTW92ZUV2ZW50KCZtZSk7CisK
KyAgICBpZiAoIWV2LT5pc0FjY2VwdGVkKCkpCisgICAgICAgIFFHcmFwaGljc0l0ZW06OmhvdmVy
TW92ZUV2ZW50KGV2KTsKK30KKwordm9pZCBRR3JhcGhpY3NXS1ZpZXc6Om1vdXNlTW92ZUV2ZW50
KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXYpCit7CisgICAgcGFnZSgpLT5kLT5tb3VzZU1v
dmVFdmVudChldik7CisgICAgaWYgKCFldi0+aXNBY2NlcHRlZCgpKQorICAgICAgICBRR3JhcGhp
Y3NJdGVtOjptb3VzZU1vdmVFdmVudChldik7Cit9CisKK3ZvaWQgUUdyYXBoaWNzV0tWaWV3Ojpt
b3VzZVByZXNzRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldikKK3sKKyAgICBwYWdl
KCktPmQtPm1vdXNlUHJlc3NFdmVudChldik7CisgICAgaWYgKCFldi0+aXNBY2NlcHRlZCgpKQor
ICAgICAgICBRR3JhcGhpY3NJdGVtOjptb3VzZVByZXNzRXZlbnQoZXYpOworfQorCit2b2lkIFFH
cmFwaGljc1dLVmlldzo6bW91c2VSZWxlYXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50
KiBldikKK3sKKyAgICBwYWdlKCktPmQtPm1vdXNlUmVsZWFzZUV2ZW50KGV2KTsKKyAgICBpZiAo
IWV2LT5pc0FjY2VwdGVkKCkpCisgICAgICAgIFFHcmFwaGljc0l0ZW06Om1vdXNlUmVsZWFzZUV2
ZW50KGV2KTsKK30KKwordm9pZCBRR3JhcGhpY3NXS1ZpZXc6Om1vdXNlRG91YmxlQ2xpY2tFdmVu
dChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQoreworICAgIHBhZ2UoKS0+ZC0+bW91c2VE
b3VibGVDbGlja0V2ZW50KGV2KTsKKyAgICBpZiAoIWV2LT5pc0FjY2VwdGVkKCkpCisgICAgICAg
IFFHcmFwaGljc0l0ZW06Om1vdXNlUmVsZWFzZUV2ZW50KGV2KTsKK30KKwordm9pZCBRR3JhcGhp
Y3NXS1ZpZXc6OndoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBldikKK3sKKyAg
ICBwYWdlKCktPmQtPndoZWVsRXZlbnQoZXYpOworICAgIGlmICghZXYtPmlzQWNjZXB0ZWQoKSkK
KyAgICAgICAgUUdyYXBoaWNzSXRlbTo6d2hlZWxFdmVudChldik7Cit9CisKK1FHcmFwaGljc1dL
Vmlld1ByaXZhdGU6OlFHcmFwaGljc1dLVmlld1ByaXZhdGUoUUdyYXBoaWNzV0tWaWV3KiB2aWV3
KQorICAgIDogcSh2aWV3KQoreworfQorCitRUmVjdEYgUUdyYXBoaWNzV0tWaWV3Ojp2aXNpYmxl
UmVjdCgpIGNvbnN0Cit7CisgICAgaWYgKCFzY2VuZSgpKQorICAgICAgICByZXR1cm4gUVJlY3RG
KCk7CisKKyAgICBRTGlzdDxRR3JhcGhpY3NWaWV3Kj4gdmlld3MgPSBzY2VuZSgpLT52aWV3cygp
OworICAgIGlmICh2aWV3cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBRUmVjdEYoKTsKKwor
ICAgIFFHcmFwaGljc1ZpZXcqIGdyYXBoaWNzVmlldyA9IHZpZXdzLmF0KDApOworICAgIGludCB4
T2Zmc2V0ID0gZ3JhcGhpY3NWaWV3LT5ob3Jpem9udGFsU2Nyb2xsQmFyKCktPnZhbHVlKCk7Cisg
ICAgaW50IHlPZmZzZXQgPSBncmFwaGljc1ZpZXctPnZlcnRpY2FsU2Nyb2xsQmFyKCktPnZhbHVl
KCk7CisgICAgcmV0dXJuIG1hcFJlY3RGcm9tU2NlbmUoUVJlY3RGKFFQb2ludEYoeE9mZnNldCwg
eU9mZnNldCksIGdyYXBoaWNzVmlldy0+dmlld3BvcnQoKS0+c2l6ZSgpKSk7Cit9CisKKyNpbmNs
dWRlICJtb2NfcWdyYXBoaWNzd2t2aWV3LmNwcCIKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
Z3JhcGhpY3N3a3ZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWMy
MjBiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFwaGlj
c3drdmlldy5oCkBAIC0wLDAgKzEsNzcgQEAKKyNpZm5kZWYgcWdyYXBoaWNzd2t2aWV3X2gKKyNk
ZWZpbmUgcWdyYXBoaWNzd2t2aWV3X2gKKworI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKKwor
I2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8UUdyYXBoaWNzV2lkZ2V0Pgor
I2luY2x1ZGUgInF3a3BhZ2UuaCIKKworY2xhc3MgUUdyYXBoaWNzV0tWaWV3UHJpdmF0ZTsKKwor
V0tTdHJpbmdSZWYgV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhRU3RyaW5nIHFTdHJpbmcpOwor
UVN0cmluZyBXS1N0cmluZ0NvcHlRU3RyaW5nKFdLU3RyaW5nUmVmIHN0cmluZ1JlZik7CisKK2Ns
YXNzIFFXRUJLSVRfRVhQT1JUIFFHcmFwaGljc1dLVmlldyA6IHB1YmxpYyBRR3JhcGhpY3NXaWRn
ZXQgeworICAgIFFfT0JKRUNUCisgICAgUV9QUk9QRVJUWShRU3RyaW5nIHRpdGxlIFJFQUQgdGl0
bGUpCisgICAgUV9QUk9QRVJUWShRVXJsIHVybCBSRUFEIHVybCBXUklURSBzZXRVcmwpCisKK3B1
YmxpYzoKKyAgICBlbnVtIEJhY2tpbmdTdG9yZVR5cGUgeyBTaW1wbGUsIFRpbGVkIH07CisgICAg
UUdyYXBoaWNzV0tWaWV3KFdLUGFnZU5hbWVzcGFjZVJlZiBuYW1lc3BhY2VSZWYsIEJhY2tpbmdT
dG9yZVR5cGUgYmFja2luZ1N0b3JlVHlwZSA9IFNpbXBsZSwgUUdyYXBoaWNzSXRlbSogcGFyZW50
ID0gMCk7CisKKyAgICB2aXJ0dWFsIH5RR3JhcGhpY3NXS1ZpZXcoKTsKKworICAgIFFXS1BhZ2Uq
IHBhZ2UoKSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRHZW9tZXRyeShjb25zdCBRUmVj
dEYmKTsKKworICAgIHZvaWQgbG9hZChjb25zdCBRVXJsJik7CisgICAgdm9pZCBzZXRVcmwoY29u
c3QgUVVybCYpOworICAgIFFVcmwgdXJsKCkgY29uc3Q7CisKKyAgICBRU3RyaW5nIHRpdGxlKCkg
Y29uc3Q7CisKKyAgICB2b2lkIHRyaWdnZXJQYWdlQWN0aW9uKFFXS1BhZ2U6OldlYkFjdGlvbiBh
Y3Rpb24sIGJvb2wgY2hlY2tlZCA9IGZhbHNlKTsKKworICAgIHZpcnR1YWwgdm9pZCBwYWludChR
UGFpbnRlciosIGNvbnN0IFFTdHlsZU9wdGlvbkdyYXBoaWNzSXRlbSosIFFXaWRnZXQqKTsKKyAg
ICB2aXJ0dWFsIFFWYXJpYW50IGl0ZW1DaGFuZ2UoR3JhcGhpY3NJdGVtQ2hhbmdlLCBjb25zdCBR
VmFyaWFudCYpOworICAgIHZpcnR1YWwgYm9vbCBldmVudChRRXZlbnQqKTsKKyAgICB2aXJ0dWFs
IFFTaXplRiBzaXplSGludChRdDo6U2l6ZUhpbnQsIGNvbnN0IFFTaXplRiYpIGNvbnN0OworICAg
IHZpcnR1YWwgUVZhcmlhbnQgaW5wdXRNZXRob2RRdWVyeShRdDo6SW5wdXRNZXRob2RRdWVyeSkg
Y29uc3Q7CisKKyAgICAvLyBGSVhNRTogc2hvdWxkIG5vdCBiZSBwdWJsaWMKKyAgICB2aXJ0dWFs
IFFSZWN0RiB2aXNpYmxlUmVjdCgpIGNvbnN0OworCitwdWJsaWM6CisgICAgUV9TSUdOQUwgdm9p
ZCB0aXRsZUNoYW5nZWQoY29uc3QgUVN0cmluZyYgdGl0bGUpOworICAgIFFfU0lHTkFMIHZvaWQg
bG9hZFN0YXJ0ZWQoKTsKKyAgICBRX1NJR05BTCB2b2lkIGxvYWRGaW5pc2hlZChib29sIG9rKTsK
KyAgICBRX1NJR05BTCB2b2lkIGxvYWRQcm9ncmVzcyhpbnQgcHJvZ3Jlc3MpOworICAgIFFfU0lH
TkFMIHZvaWQgaW5pdGlhbExheW91dENvbXBsZXRlZCgpOworICAgIFFfU0lHTkFMIHZvaWQgdXJs
Q2hhbmdlZChjb25zdCBRVXJsJik7CisKK3B1YmxpYyBRX1NMT1RTOgorICAgIHZvaWQgYmFjaygp
OworICAgIHZvaWQgZm9yd2FyZCgpOworICAgIHZvaWQgcmVsb2FkKCk7CisgICAgdm9pZCBzdG9w
KCk7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQga2V5UHJlc3NFdmVudChRS2V5RXZl
bnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQga2V5UmVsZWFzZUV2ZW50KFFLZXlFdmVudCopOworICAg
IHZpcnR1YWwgdm9pZCBtb3VzZU1vdmVFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqKTsK
KyAgICB2aXJ0dWFsIHZvaWQgbW91c2VQcmVzc0V2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVu
dCopOworICAgIHZpcnR1YWwgdm9pZCBtb3VzZVJlbGVhc2VFdmVudChRR3JhcGhpY3NTY2VuZU1v
dXNlRXZlbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbW91c2VEb3VibGVDbGlja0V2ZW50KFFHcmFw
aGljc1NjZW5lTW91c2VFdmVudCopOworICAgIHZpcnR1YWwgdm9pZCB3aGVlbEV2ZW50KFFHcmFw
aGljc1NjZW5lV2hlZWxFdmVudCopOworCisgICAgdmlydHVhbCB2b2lkIGhvdmVyTW92ZUV2ZW50
KFFHcmFwaGljc1NjZW5lSG92ZXJFdmVudCopOworCitwcml2YXRlOgorICAgIFFHcmFwaGljc1dL
Vmlld1ByaXZhdGUqIGQ7CisgICAgZnJpZW5kIGNsYXNzIFFHcmFwaGljc1dLVmlld1ByaXZhdGU7
Cit9OworCisjZW5kaWYgLyogcWdyYXBoaWNzd2t2aWV3X2ggKi8KZGlmZiAtLWdpdCBhL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2twYWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2Y1NWFj
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3Bw
CkBAIC0wLDAgKzEsMzM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgInF3a3BhZ2Uu
aCIKKyNpbmNsdWRlICJxd2twYWdlX3AuaCIKKworI2luY2x1ZGUgIkRlZmF1bHRQYWdlTG9hZGVy
Q2xpZW50Q2FsbGJhY2tzUXQuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisjaW5j
bHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisjaW5jbHVkZSAiV0tTdHJpbmdRdC5oIgorI2luY2x1
ZGUgIldLVVJMUXQuaCIKKyNpbmNsdWRlIDxRQWN0aW9uPgorI2luY2x1ZGUgPFFBcHBsaWNhdGlv
bj4KKyNpbmNsdWRlIDxRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQ+CisjaW5jbHVkZSA8UVN0eWxl
PgorI2luY2x1ZGUgPFF0RGVidWc+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0ZyYW1lLmg+CisjaW5j
bHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1FXS1BhZ2VQcml2YXRlOjpRV0tQYWdlUHJpdmF0
ZShRV0tQYWdlKiBxcSwgV0tQYWdlTmFtZXNwYWNlUmVmIG5hbWVzcGFjZVJlZikKKyAgICA6IHEo
cXEpCisgICAgLCBjcmVhdGVOZXdQYWdlRm4oMCkKK3sKKyAgICBtZW1zZXQoYWN0aW9ucywgMCwg
c2l6ZW9mKGFjdGlvbnMpKTsKKyAgICBwYWdlID0gdG9XSyhuYW1lc3BhY2VSZWYpLT5jcmVhdGVX
ZWJQYWdlKCk7CisgICAgcGFnZS0+c2V0UGFnZUNsaWVudCh0aGlzKTsKK30KKworUVdLUGFnZVBy
aXZhdGU6On5RV0tQYWdlUHJpdmF0ZSgpCit7CisgICAgcGFnZS0+Y2xvc2UoKTsKK30KKwordm9p
ZCBRV0tQYWdlUHJpdmF0ZTo6aW5pdChjb25zdCBRU2l6ZSYgdmlld3BvcnRTaXplLCBEcmF3aW5n
QXJlYVByb3h5KiBwcm94eSkKK3sKKyAgICBwYWdlLT5pbml0aWFsaXplV2ViUGFnZShJbnRTaXpl
KHZpZXdwb3J0U2l6ZSksIHByb3h5KTsKK30KKwordm9pZCBRV0tQYWdlUHJpdmF0ZTo6dG9vbFRp
cENoYW5nZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBuZXdUb29sdGlwKQoreworICAg
IGVtaXQgcS0+c3RhdHVzQmFyTWVzc2FnZShRU3RyaW5nKG5ld1Rvb2x0aXApKTsKK30KKwordm9p
ZCBRV0tQYWdlUHJpdmF0ZTo6cGFpbnQoUVBhaW50ZXIqIHBhaW50ZXIsIFFSZWN0IGFyZWEpCit7
CisgICAgcGFpbnRlci0+c2F2ZSgpOworCisgICAgcGFpbnRlci0+c2V0QnJ1c2goUXQ6OndoaXRl
KTsKKyAgICBwYWludGVyLT5kcmF3UmVjdChhcmVhKTsKKworICAgIGlmIChwYWdlLT5pc1ZhbGlk
KCkgJiYgcGFnZS0+ZHJhd2luZ0FyZWEoKSkKKyAgICAgICAgcGFnZS0+ZHJhd2luZ0FyZWEoKS0+
cGFpbnQoSW50UmVjdChhcmVhKSwgcGFpbnRlcik7CisKKyAgICBwYWludGVyLT5yZXN0b3JlKCk7
Cit9CisKK3ZvaWQgUVdLUGFnZVByaXZhdGU6OmtleVByZXNzRXZlbnQoUUtleUV2ZW50KiBldikK
K3sKKyAgICBXZWJLZXlib2FyZEV2ZW50IGtleWJvYXJkRXZlbnQgPSBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoZXYpOworICAgIHBhZ2UtPmtleUV2ZW50KGtleWJvYXJk
RXZlbnQpOworfQorCit2b2lkIFFXS1BhZ2VQcml2YXRlOjprZXlSZWxlYXNlRXZlbnQoUUtleUV2
ZW50KiBldikKK3sKKyAgICBXZWJLZXlib2FyZEV2ZW50IGtleWJvYXJkRXZlbnQgPSBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoZXYpOworICAgIHBhZ2UtPmtleUV2ZW50
KGtleWJvYXJkRXZlbnQpOworfQorCit2b2lkIFFXS1BhZ2VQcml2YXRlOjptb3VzZU1vdmVFdmVu
dChRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQqIGV2KQoreworICAgIC8vIEZvciBzb21lIHJlYXNv
biBtb3VzZSBwcmVzcyByZXN1bHRzIGluIG1vdXNlIGhvdmVyICh3aGljaCBpcworICAgIC8vIGNv
bnZlcnRlZCB0byBtb3VzZSBtb3ZlIGZvciBXZWJLaXQpLiBXZSBpZ25vcmUgdGhlc2UgaG92ZXIK
KyAgICAvLyBldmVudHMgYnkgY29tcGFyaW5nIGxhc3RQb3Mgd2l0aCBuZXdQb3MuCisgICAgLy8g
Tk9URTogbGFzdFBvcyBmcm9tIHRoZSBldmVudCBhbHdheXMgY29tZXMgZW1wdHksIHNvIHdlIHdv
cmsKKyAgICAvLyBhcm91bmQgdGhhdCBoZXJlLgorICAgIHN0YXRpYyBRUG9pbnRGIGxhc3RQb3Mg
PSBRUG9pbnRGKCk7CisgICAgaWYgKGxhc3RQb3MgPT0gZXYtPnBvcygpKQorICAgICAgICByZXR1
cm47CisgICAgbGFzdFBvcyA9IGV2LT5wb3MoKTsKKworICAgIFdlYk1vdXNlRXZlbnQgbW91c2VF
dmVudCA9IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChldiwgMCk7CisgICAg
cGFnZS0+bW91c2VFdmVudChtb3VzZUV2ZW50KTsKK30KKwordm9pZCBRV0tQYWdlUHJpdmF0ZTo6
bW91c2VQcmVzc0V2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXYpCit7CisgICAgV2Vi
TW91c2VFdmVudCBtb3VzZUV2ZW50ID0gV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2
ZW50KGV2LCAxKTsKKyAgICBwYWdlLT5tb3VzZUV2ZW50KG1vdXNlRXZlbnQpOworfQorCit2b2lk
IFFXS1BhZ2VQcml2YXRlOjptb3VzZVJlbGVhc2VFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZl
bnQqIGV2KQoreworICAgIFdlYk1vdXNlRXZlbnQgbW91c2VFdmVudCA9IFdlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViTW91c2VFdmVudChldiwgMCk7CisgICAgcGFnZS0+bW91c2VFdmVudChtb3Vz
ZUV2ZW50KTsKK30KKwordm9pZCBRV0tQYWdlUHJpdmF0ZTo6bW91c2VEb3VibGVDbGlja0V2ZW50
KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXYpCit7CisgICAgV2ViTW91c2VFdmVudCBtb3Vz
ZUV2ZW50ID0gV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2LCAyKTsKKyAg
ICBwYWdlLT5tb3VzZUV2ZW50KG1vdXNlRXZlbnQpOworfQorCit2b2lkIFFXS1BhZ2VQcml2YXRl
Ojp3aGVlbEV2ZW50KFFHcmFwaGljc1NjZW5lV2hlZWxFdmVudCogZXYpCit7CisgICAgV2ViV2hl
ZWxFdmVudCB3aGVlbEV2ZW50ID0gV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50
KGV2KTsKKyAgICBwYWdlLT53aGVlbEV2ZW50KHdoZWVsRXZlbnQpOworfQorCit2b2lkIFFXS1Bh
Z2VQcml2YXRlOjp1cGRhdGVBY3Rpb24oUVdLUGFnZTo6V2ViQWN0aW9uIGFjdGlvbikKK3sKKyNp
ZmRlZiBRVF9OT19BQ1RJT04KKyAgICBRX1VOVVNFRChhY3Rpb24pCisjZWxzZQorICAgIFFBY3Rp
b24qIGEgPSBhY3Rpb25zW2FjdGlvbl07CisgICAgaWYgKCFhKQorICAgICAgICByZXR1cm47CisK
KyAgICBib29sIGVuYWJsZWQgPSBhLT5pc0VuYWJsZWQoKTsKKyAgICBib29sIGNoZWNrZWQgPSBh
LT5pc0NoZWNrZWQoKTsKKworICAgIHN3aXRjaCAoYWN0aW9uKSB7CisgICAgY2FzZSBRV0tQYWdl
OjpCYWNrOgorICAgICAgICBwYWdlLT5jYW5Hb0JhY2soKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRV0tQYWdlOjpGb3J3YXJkOgorICAgICAgICBwYWdlLT5jYW5Hb0ZvcndhcmQoKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBRV0tQYWdlOjpTdG9wOgorICAgICAgICAvLyBGSVhNRQor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFFXS1BhZ2U6OlJlbG9hZDoKKyAgICAgICAgLy8gRklY
TUUKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQor
CisgICAgYS0+c2V0RW5hYmxlZChlbmFibGVkKTsKKworICAgIGlmIChhLT5pc0NoZWNrYWJsZSgp
KQorICAgICAgICBhLT5zZXRDaGVja2VkKGNoZWNrZWQpOworI2VuZGlmIC8vIFFUX05PX0FDVElP
TgorfQorCisvLyBGSVhNRTogaG9vayB1cAordm9pZCBRV0tQYWdlUHJpdmF0ZTo6dXBkYXRlTmF2
aWdhdGlvbkFjdGlvbnMoKQoreworICAgIHVwZGF0ZUFjdGlvbihRV0tQYWdlOjpCYWNrKTsKKyAg
ICB1cGRhdGVBY3Rpb24oUVdLUGFnZTo6Rm9yd2FyZCk7CisgICAgdXBkYXRlQWN0aW9uKFFXS1Bh
Z2U6OlN0b3ApOworICAgIHVwZGF0ZUFjdGlvbihRV0tQYWdlOjpSZWxvYWQpOworfQorCisjaWZu
ZGVmIFFUX05PX0FDVElPTgordm9pZCBRV0tQYWdlUHJpdmF0ZTo6X3Ffd2ViQWN0aW9uVHJpZ2dl
cmVkKGJvb2wgY2hlY2tlZCkKK3sKKyAgICBRQWN0aW9uKiBhID0gcW9iamVjdF9jYXN0PFFBY3Rp
b24qPihxLT5zZW5kZXIoKSk7CisgICAgaWYgKCFhKQorICAgICAgICByZXR1cm47CisgICAgUVdL
UGFnZTo6V2ViQWN0aW9uIGFjdGlvbiA9IHN0YXRpY19jYXN0PFFXS1BhZ2U6OldlYkFjdGlvbj4o
YS0+ZGF0YSgpLnRvSW50KCkpOworICAgIHEtPnRyaWdnZXJBY3Rpb24oYWN0aW9uLCBjaGVja2Vk
KTsKK30KKyNlbmRpZiAvLyBRVF9OT19BQ1RJT04KKworUVdLUGFnZTo6UVdLUGFnZShXS1BhZ2VO
YW1lc3BhY2VSZWYgbmFtZXNwYWNlUmVmKQorICAgIDogZChuZXcgUVdLUGFnZVByaXZhdGUodGhp
cywgbmFtZXNwYWNlUmVmKSkKK3sKKyAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZENsaWVudCA9
IHsKKyAgICAgICAgMCwgICAgICAvKiB2ZXJzaW9uICovCisgICAgICAgIHRoaXMsICAgLyogY2xp
ZW50SW5mbyAqLworICAgICAgICBxdF93a19kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
LAorICAgICAgICBxdF93a19kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZSwKKyAgICAgICAgcXRfd2tfZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJv
ckZvckZyYW1lLAorICAgICAgICBxdF93a19kaWRDb21taXRMb2FkRm9yRnJhbWUsCisgICAgICAg
IHF0X3drX2RpZEZpbmlzaExvYWRGb3JGcmFtZSwKKyAgICAgICAgcXRfd2tfZGlkRmFpbExvYWRX
aXRoRXJyb3JGb3JGcmFtZSwKKyAgICAgICAgcXRfd2tfZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUs
CisgICAgICAgIHF0X3drX2RpZEZpcnN0TGF5b3V0Rm9yRnJhbWUsCisgICAgICAgIHF0X3drX2Rp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lLAorICAgICAgICBxdF93a19kaWRT
dGFydFByb2dyZXNzLAorICAgICAgICBxdF93a19kaWRDaGFuZ2VQcm9ncmVzcywKKyAgICAgICAg
cXRfd2tfZGlkRmluaXNoUHJvZ3Jlc3MsCisgICAgICAgIHF0X3drX2RpZEJlY29tZVVucmVzcG9u
c2l2ZSwKKyAgICAgICAgcXRfd2tfZGlkQmVjb21lUmVzcG9uc2l2ZQorICAgIH07CisgICAgV0tQ
YWdlU2V0UGFnZUxvYWRlckNsaWVudChwYWdlUmVmKCksICZsb2FkQ2xpZW50KTsKKworICAgIFdL
UGFnZVVJQ2xpZW50IHVpQ2xpZW50ID0geworICAgICAgICAwLCAgICAgIC8qIHZlcnNpb24gKi8K
KyAgICAgICAgdGhpcywgICAvKiBjbGllbnRJbmZvICovCisgICAgICAgIHF0X3drX2NyZWF0ZU5l
d1BhZ2UsCisgICAgICAgIHF0X3drX3Nob3dQYWdlLAorICAgICAgICBxdF93a19jbG9zZSwKKyAg
ICAgICAgcXRfd2tfcnVuSmF2YVNjcmlwdEFsZXJ0LAorICAgIH07CisgICAgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KHBhZ2VSZWYoKSwgJnVpQ2xpZW50KTsKK30KKworUVdLUGFnZTo6flFXS1BhZ2Uo
KQoreworICAgIGRlbGV0ZSBkOworfQorCitXS1BhZ2VSZWYgUVdLUGFnZTo6cGFnZVJlZigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHRvUmVmKGQtPnBhZ2UuZ2V0KCkpOworfQorCit2b2lkIFFXS1Bh
Z2U6OnNldENyZWF0ZU5ld1BhZ2VGdW5jdGlvbihDcmVhdGVOZXdQYWdlRm4gZnVuY3Rpb24pCit7
CisgICAgZC0+Y3JlYXRlTmV3UGFnZUZuID0gZnVuY3Rpb247Cit9CisKK3ZvaWQgUVdLUGFnZTo6
bG9hZChjb25zdCBRVXJsJiB1cmwpCit7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHdrdXJs
KFdLVVJMQ3JlYXRlV2l0aFFVcmwodXJsKSk7CisgICAgV0tQYWdlTG9hZFVSTChwYWdlUmVmKCks
IHdrdXJsLmdldCgpKTsKK30KKwordm9pZCBRV0tQYWdlOjpzZXRVcmwoY29uc3QgUVVybCYgdXJs
KQoreworICAgIGxvYWQodXJsKTsKK30KKworUVVybCBRV0tQYWdlOjp1cmwoKSBjb25zdAorewor
ICAgIFdLUmV0YWluUHRyPFdLRnJhbWVSZWY+IGZyYW1lID0gV0tQYWdlR2V0TWFpbkZyYW1lKHBh
Z2VSZWYoKSk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIFFVcmwoKTsKKyAgICBy
ZXR1cm4gV0tVUkxDb3B5UVVybChXS0ZyYW1lR2V0VVJMKGZyYW1lLmdldCgpKSk7Cit9CisKK1FT
dHJpbmcgUVdLUGFnZTo6dGl0bGUoKSBjb25zdAoreworICAgIHJldHVybiBXS1N0cmluZ0NvcHlR
U3RyaW5nKFdLUGFnZUdldFRpdGxlKHBhZ2VSZWYoKSkpOworfQorCit2b2lkIFFXS1BhZ2U6OnNl
dFZpZXdwb3J0U2l6ZShjb25zdCBRU2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAoZC0+cGFnZS0+ZHJh
d2luZ0FyZWEoKSkKKyAgICAgICAgZC0+cGFnZS0+ZHJhd2luZ0FyZWEoKS0+c2V0U2l6ZShJbnRT
aXplKHNpemUpKTsKK30KKworI2lmbmRlZiBRVF9OT19BQ1RJT04KK3ZvaWQgUVdLUGFnZTo6dHJp
Z2dlckFjdGlvbihXZWJBY3Rpb24gYWN0aW9uLCBib29sKQoreworICAgIHN3aXRjaCAoYWN0aW9u
KSB7CisgICAgY2FzZSBCYWNrOgorICAgICAgICBkLT5wYWdlLT5nb0JhY2soKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBGb3J3YXJkOgorICAgICAgICBkLT5wYWdlLT5nb0ZvcndhcmQoKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdG9wOgorICAgICAgICBkLT5wYWdlLT5zdG9wTG9h
ZGluZygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbG9hZDoKKyAgICAgICAgZC0+cGFn
ZS0+cmVsb2FkKC8qIHJlbG9hZEZyb21PcmlnaW4gKi8gdHJ1ZSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKyNlbmRpZiAvLyBRVF9OT19B
Q1RJT04KKworI2lmbmRlZiBRVF9OT19BQ1RJT04KK1FBY3Rpb24qIFFXS1BhZ2U6OmFjdGlvbihX
ZWJBY3Rpb24gYWN0aW9uKSBjb25zdAoreworICAgIGlmIChhY3Rpb24gPT0gUVdLUGFnZTo6Tm9X
ZWJBY3Rpb24gfHwgYWN0aW9uID49IFdlYkFjdGlvbkNvdW50KQorICAgICAgICByZXR1cm4gMDsK
KworICAgIGlmIChkLT5hY3Rpb25zW2FjdGlvbl0pCisgICAgICAgIHJldHVybiBkLT5hY3Rpb25z
W2FjdGlvbl07CisKKyAgICBRU3RyaW5nIHRleHQ7CisgICAgUUljb24gaWNvbjsKKyAgICBRU3R5
bGUqIHN0eWxlID0gcW9iamVjdF9jYXN0PFFBcHBsaWNhdGlvbio+KFFDb3JlQXBwbGljYXRpb246
Omluc3RhbmNlKCkpLT5zdHlsZSgpOworICAgIGJvb2wgY2hlY2thYmxlID0gZmFsc2U7CisKKyAg
ICBzd2l0Y2ggKGFjdGlvbikgeworICAgIGNhc2UgQmFjazoKKyAgICAgICAgdGV4dCA9IGNvbnRl
eHRNZW51SXRlbVRhZ0dvQmFjaygpOworICAgICAgICBpY29uID0gc3R5bGUtPnN0YW5kYXJkSWNv
bihRU3R5bGU6OlNQX0Fycm93QmFjayk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9yd2Fy
ZDoKKyAgICAgICAgdGV4dCA9IGNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpOworICAgICAg
ICBpY29uID0gc3R5bGUtPnN0YW5kYXJkSWNvbihRU3R5bGU6OlNQX0Fycm93Rm9yd2FyZCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcDoKKyAgICAgICAgdGV4dCA9IGNvbnRleHRNZW51
SXRlbVRhZ1N0b3AoKTsKKyAgICAgICAgaWNvbiA9IHN0eWxlLT5zdGFuZGFyZEljb24oUVN0eWxl
OjpTUF9Ccm93c2VyU3RvcCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVsb2FkOgorICAg
ICAgICB0ZXh0ID0gY29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCk7CisgICAgICAgIGljb24gPSBz
dHlsZS0+c3RhbmRhcmRJY29uKFFTdHlsZTo6U1BfQnJvd3NlclJlbG9hZCk7CisgICAgICAgIGJy
ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAg
UUFjdGlvbiogYSA9IG5ldyBRQWN0aW9uKGQtPnEpOworICAgIGEtPnNldFRleHQodGV4dCk7Cisg
ICAgYS0+c2V0RGF0YShhY3Rpb24pOworICAgIGEtPnNldENoZWNrYWJsZShjaGVja2FibGUpOwor
ICAgIGEtPnNldEljb24oaWNvbik7CisKKyAgICBjb25uZWN0KGEsIFNJR05BTCh0cmlnZ2VyZWQo
Ym9vbCkpLCB0aGlzLCBTTE9UKF9xX3dlYkFjdGlvblRyaWdnZXJlZChib29sKSkpOworCisgICAg
ZC0+YWN0aW9uc1thY3Rpb25dID0gYTsKKyAgICBkLT51cGRhdGVBY3Rpb24oYWN0aW9uKTsKKyAg
ICByZXR1cm4gYTsKK30KKyNlbmRpZiAvLyBRVF9OT19BQ1RJT04KZGlmZiAtLWdpdCBhL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdrcGFnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmMjU4YWMKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oCkBAIC0w
LDAgKzEsNzEgQEAKKyNpZm5kZWYgcXdrcGFnZV9oCisjZGVmaW5lIHF3a3BhZ2VfaAorCisjaW5j
bHVkZSAicXdlYmtpdGdsb2JhbC5oIgorI2luY2x1ZGUgPFFBY3Rpb24+CisjaW5jbHVkZSA8UU9i
amVjdD4KKyNpbmNsdWRlIDxRUG9pbnQ+CisjaW5jbHVkZSA8UVJlY3Q+CisjaW5jbHVkZSA8UVNp
emU+CisjaW5jbHVkZSA8UVVybD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1
ZGUgPFdlYktpdDIvV0tQYWdlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VOYW1lc3BhY2Uu
aD4KKworY2xhc3MgUVdLR3JhcGhpY3NXaWRnZXQ7CitjbGFzcyBRV0tQYWdlUHJpdmF0ZTsKKwor
Y2xhc3MgUVdFQktJVF9FWFBPUlQgUVdLUGFnZSA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09C
SkVDVAorICAgIFFfUFJPUEVSVFkoUVN0cmluZyB0aXRsZSBSRUFEIHRpdGxlKQorICAgIFFfUFJP
UEVSVFkoUVVybCB1cmwgUkVBRCB1cmwgV1JJVEUgc2V0VXJsKQorCitwdWJsaWM6CisgICAgZW51
bSBXZWJBY3Rpb24geworICAgICAgICBOb1dlYkFjdGlvbiA9IC0gMSwKKworICAgICAgICBCYWNr
LAorICAgICAgICBGb3J3YXJkLAorICAgICAgICBTdG9wLAorICAgICAgICBSZWxvYWQsCisKKyAg
ICAgICAgV2ViQWN0aW9uQ291bnQKKyAgICB9OworCisgICAgUVdLUGFnZShXS1BhZ2VOYW1lc3Bh
Y2VSZWYpOworICAgIHZpcnR1YWwgflFXS1BhZ2UoKTsKKworICAgIFdLUGFnZVJlZiBwYWdlUmVm
KCkgY29uc3Q7CisKKyAgICB2b2lkIGxvYWQoY29uc3QgUVVybCYgdXJsKTsKKyAgICB2b2lkIHNl
dFVybChjb25zdCBRVXJsJiB1cmwpOworICAgIFFVcmwgdXJsKCkgY29uc3Q7CisKKyAgICBRU3Ry
aW5nIHRpdGxlKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldFZpZXdwb3J0U2l6ZShjb25zdCBRU2l6
ZSYpOworCisgICAgUUFjdGlvbiogYWN0aW9uKFdlYkFjdGlvbiBhY3Rpb24pIGNvbnN0OworICAg
IHZvaWQgdHJpZ2dlckFjdGlvbihXZWJBY3Rpb24gYWN0aW9uLCBib29sIGNoZWNrZWQgPSBmYWxz
ZSk7CisKKyAgICB0eXBlZGVmIFFXS1BhZ2UqICgqQ3JlYXRlTmV3UGFnZUZuKShRV0tQYWdlKik7
CisgICAgdm9pZCBzZXRDcmVhdGVOZXdQYWdlRnVuY3Rpb24oQ3JlYXRlTmV3UGFnZUZuIGZ1bmN0
aW9uKTsKKworcHVibGljOgorICAgIFFfU0lHTkFMIHZvaWQgc3RhdHVzQmFyTWVzc2FnZShjb25z
dCBRU3RyaW5nJik7CisgICAgUV9TSUdOQUwgdm9pZCB0aXRsZUNoYW5nZWQoY29uc3QgUVN0cmlu
ZyYpOworICAgIFFfU0lHTkFMIHZvaWQgbG9hZFN0YXJ0ZWQoKTsKKyAgICBRX1NJR05BTCB2b2lk
IGxvYWRGaW5pc2hlZChib29sIG9rKTsKKyAgICBRX1NJR05BTCB2b2lkIGxvYWRQcm9ncmVzcyhp
bnQgcHJvZ3Jlc3MpOworICAgIFFfU0lHTkFMIHZvaWQgaW5pdGlhbExheW91dENvbXBsZXRlZCgp
OworICAgIFFfU0lHTkFMIHZvaWQgdXJsQ2hhbmdlZChjb25zdCBRVXJsJik7CisgICAgUV9TSUdO
QUwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKGNvbnN0IFFTaXplJik7CisKK3ByaXZhdGU6Cisg
ICAgZnJpZW5kIGNsYXNzIFFXS0dyYXBoaWNzV2lkZ2V0OworICAgIGZyaWVuZCBjbGFzcyBRV0tH
cmFwaGljc1dpZGdldFByaXZhdGU7CisgICAgZnJpZW5kIGNsYXNzIFFXS1BhZ2VQcml2YXRlOwor
ICAgIFFXS1BhZ2VQcml2YXRlKiBkOworfTsKKworI2VuZGlmIC8qIHF3a3BhZ2VfaCAqLwpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oIGIvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjMwN2ZjMWQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdrcGFnZV9wLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9n
cmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5k
ZWYgcXdrcGFnZV9wX2gKKyNkZWZpbmUgcXdrcGFnZV9wX2gKKworI2luY2x1ZGUgIkRyYXdpbmdB
cmVhUHJveHkuaCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50LmgiCisjaW5jbHVkZSAicXdrcGFnZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2VOYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHku
aCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8UUdyYXBoaWNzVmlldz4KKyNp
bmNsdWRlIDxRS2V5RXZlbnQ+CisKK2NsYXNzIFFXS1BhZ2VQcml2YXRlIDogcHVibGljIFdlYktp
dDo6UGFnZUNsaWVudCB7CitwdWJsaWM6CisgICAgUVdLUGFnZVByaXZhdGUoUVdLUGFnZSosIFdL
UGFnZU5hbWVzcGFjZVJlZik7CisgICAgflFXS1BhZ2VQcml2YXRlKCk7CisKKyAgICBzdGF0aWMg
UVdLUGFnZVByaXZhdGUqIGdldChRV0tQYWdlKiBwYWdlKSB7IHJldHVybiBwYWdlLT5kOyB9CisK
KyAgICB2b2lkIGluaXQoY29uc3QgUVNpemUmIHZpZXdwb3J0U2l6ZSwgV2ViS2l0OjpEcmF3aW5n
QXJlYVByb3h5Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEV4aXQoKSB7fQorICAg
IHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkUmV2aXZlKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgdGFr
ZUZvY3VzKGJvb2wgZGlyZWN0aW9uKSB7fQorICAgIHZpcnR1YWwgdm9pZCB0b29sVGlwQ2hhbmdl
ZChjb25zdCBXZWJDb3JlOjpTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmKTsKKworICAg
IHZvaWQgcGFpbnQoUVBhaW50ZXIqIHBhaW50ZXIsIFFSZWN0KTsKKworICAgIHZvaWQga2V5UHJl
c3NFdmVudChRS2V5RXZlbnQqKTsKKyAgICB2b2lkIGtleVJlbGVhc2VFdmVudChRS2V5RXZlbnQq
KTsKKyAgICB2b2lkIG1vdXNlTW92ZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCopOwor
ICAgIHZvaWQgbW91c2VQcmVzc0V2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCopOworICAg
IHZvaWQgbW91c2VSZWxlYXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Kik7CisgICAg
dm9pZCBtb3VzZURvdWJsZUNsaWNrRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Kik7Cisg
ICAgdm9pZCB3aGVlbEV2ZW50KFFHcmFwaGljc1NjZW5lV2hlZWxFdmVudCopOworCisgICAgdm9p
ZCB1cGRhdGVBY3Rpb24oUVdLUGFnZTo6V2ViQWN0aW9uIGFjdGlvbik7CisgICAgdm9pZCB1cGRh
dGVOYXZpZ2F0aW9uQWN0aW9ucygpOworICAgIHZvaWQgdXBkYXRlRWRpdG9yQWN0aW9ucygpOwor
CisgICAgdm9pZCBfcV93ZWJBY3Rpb25UcmlnZ2VyZWQoYm9vbCBjaGVja2VkKTsKKworICAgIFFB
Y3Rpb24qIGFjdGlvbnNbUVdLUGFnZTo6V2ViQWN0aW9uQ291bnRdOworCisgICAgUVdLUGFnZSog
cTsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IHBhZ2U7CisKKyAgICBRV0tQYWdl
OjpDcmVhdGVOZXdQYWdlRm4gY3JlYXRlTmV3UGFnZUZuOworfTsKKworI2VuZGlmIC8qIHFrcGFn
ZV9wX2ggKi8KLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60251</attachid>
            <date>2010-07-01 08:18:39 -0700</date>
            <delta_ts>2010-07-01 08:27:58 -0700</delta_ts>
            <desc>UpdateChunk</desc>
            <filename>qtwebkit2-updatechunk.patch</filename>
            <type>text/plain</type>
            <size>8749</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjI2MCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDctMDEgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtp
LmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtR
dF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMworICAgICAgICAKKyAgICAgICAgQWRkIFVw
ZGF0ZUNodW5rLiBUaGlzIG9uZSBpcyBtbWFwIGJhc2VkLCB1c2luZyBRdCBhYnN0cmFjdGlvbnMu
CisKKyAgICAgICAgKiBTaGFyZWQvcXQ6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9xdC9VcGRh
dGVDaHVuay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNYXBwZWRNZW1vcnk6Om1hcmtV
c2VkKToKKyAgICAgICAgKFdlYktpdDo6TWFwcGVkTWVtb3J5OjptYXJrRnJlZSk6CisgICAgICAg
IChXZWJLaXQ6Ok1hcHBlZE1lbW9yeTo6aXNGcmVlKToKKyAgICAgICAgKFdlYktpdDo6bWFwTWVt
b3J5KToKKyAgICAgICAgKFdlYktpdDo6bWFwRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OlVwZGF0
ZUNodW5rOjpVcGRhdGVDaHVuayk6CisgICAgICAgIChXZWJLaXQ6OlVwZGF0ZUNodW5rOjp+VXBk
YXRlQ2h1bmspOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVDaHVuazo6ZGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OlVwZGF0ZUNodW5rOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVD
aHVuazo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6VXBkYXRlQ2h1bms6OmNyZWF0ZUltYWdl
KToKKyAgICAgICAgKiBTaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlVwZGF0ZUNodW5rOjpyZWN0KToKKyAgICAgICAgKFdlYktpdDo6VXBkYXRlQ2h1bms6
OnNpemUpOgorCiAyMDEwLTA3LTAxICBBbnR0aSBLb2l2aXN0byAgPGtvaXZpc3RvQGlraS5maT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KSW5kZXg6
IFdlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQy
L1NoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1NoYXJl
ZC9xdC9VcGRhdGVDaHVuay5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTU3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIlVwZGF0ZUNodW5rLmgiCisKKyNpbmNsdWRl
ICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNs
dWRlICJBdHRhY2htZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisj
aW5jbHVkZSA8UURlYnVnPgorI2luY2x1ZGUgPFFGaWxlPgorI2luY2x1ZGUgPFFJbWFnZT4KKyNp
bmNsdWRlIDxRVGVtcG9yYXJ5RmlsZT4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitzdHJ1Y3QgTWFwcGVkTWVtb3J5IHsKKyAgICBRRmls
ZSogZmlsZTsKKyAgICB1Y2hhciogZGF0YTsKKyAgICBzaXplX3Qgc2l6ZTsKKyAgICB2b2lkIG1h
cmtVc2VkKCkgeyAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGRhdGEpID0gMDsgfQorICAg
IHZvaWQgbWFya0ZyZWUoKSB7ICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oZGF0YSkgPSAw
eGRlYWRiZWVmOyB9CisgICAgYm9vbCBpc0ZyZWUoKSB7IHJldHVybiAqcmVpbnRlcnByZXRfY2Fz
dDx1aW50NjRfdCo+KGRhdGEpID09IDB4ZGVhZGJlZWY7IH0KK307CisKK3N0YXRpYyBWZWN0b3I8
TWFwcGVkTWVtb3J5PiogbW1hcFBvb2w7CisgICAgCitzdGF0aWMgTWFwcGVkTWVtb3J5KiBtYXBN
ZW1vcnkoc2l6ZV90IHNpemUpCit7CisgICAgaWYgKCFtbWFwUG9vbCkKKyAgICAgICAgbW1hcFBv
b2wgPSBuZXcgVmVjdG9yPE1hcHBlZE1lbW9yeT47CisgICAgICAgIAorICAgIGZvciAodW5zaWdu
ZWQgbiA9IDA7IG4gPCBtbWFwUG9vbC0+c2l6ZSgpOyArK24pIHsKKyAgICAgICAgTWFwcGVkTWVt
b3J5JiBjdXJyZW50ID0gbW1hcFBvb2wtPmF0KG4pOworICAgICAgICBpZiAoY3VycmVudC5zaXpl
ID49IHNpemUgJiYgY3VycmVudC5pc0ZyZWUoKSkgeworICAgICAgICAgICAgY3VycmVudC5tYXJr
VXNlZCgpOworICAgICAgICAgICAgcmV0dXJuICZjdXJyZW50OworICAgICAgICB9CisgICAgfQor
ICAgIE1hcHBlZE1lbW9yeSBuZXdNYXA7CisgICAgbmV3TWFwLnNpemUgPSBzaXplOworICAgIC8v
IEZJWE1FOiBDbGVhbiB1cCBvciByZXVzZSBsZWZ0b3ZlciBtYXAgZmlsZXMgZnJvbSB0aGUgZGlz
ay4KKyAgICBuZXdNYXAuZmlsZSA9IG5ldyBRVGVtcG9yYXJ5RmlsZSgiV2ViS2l0MlVwZGF0ZUNo
dW5rIik7CisgICAgbmV3TWFwLmZpbGUtPm9wZW4oUUlPRGV2aWNlOjpSZWFkV3JpdGUpOworICAg
IG5ld01hcC5maWxlLT5yZXNpemUobmV3TWFwLnNpemUpOworICAgIG5ld01hcC5kYXRhID0gbmV3
TWFwLmZpbGUtPm1hcCgwLCBuZXdNYXAuc2l6ZSk7CisgICAgbmV3TWFwLmZpbGUtPmNsb3NlKCk7
CisgICAgbmV3TWFwLm1hcmtVc2VkKCk7CisgICAgbW1hcFBvb2wtPmFwcGVuZChuZXdNYXApOwor
ICAgIHJldHVybiAmbW1hcFBvb2wtPmxhc3QoKTsKK30KKyAgICAKK3N0YXRpYyBNYXBwZWRNZW1v
cnkqIG1hcEZpbGUoUVN0cmluZyBmaWxlTmFtZSwgc2l6ZV90IHNpemUpCit7CisgICAgaWYgKCFt
bWFwUG9vbCkKKyAgICAgICAgbW1hcFBvb2wgPSBuZXcgVmVjdG9yPE1hcHBlZE1lbW9yeT47Cisg
ICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IG1tYXBQb29sLT5zaXplKCk7ICsrbikgeworICAg
ICAgICBNYXBwZWRNZW1vcnkmIGN1cnJlbnQgPSBtbWFwUG9vbC0+YXQobik7CisgICAgICAgIGlm
IChjdXJyZW50LmZpbGUtPmZpbGVOYW1lKCkgPT0gZmlsZU5hbWUpIHsKKyAgICAgICAgICAgIEFT
U0VSVCghY3VycmVudC5pc0ZyZWUoKSk7CisgICAgICAgICAgICByZXR1cm4gJmN1cnJlbnQ7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgTWFwcGVkTWVtb3J5IG5ld01hcDsKKyAgICBuZXdNYXAuZmls
ZSA9IG5ldyBRRmlsZShmaWxlTmFtZSk7CisgICAgaWYgKCFuZXdNYXAuZmlsZS0+b3BlbihRSU9E
ZXZpY2U6OlJlYWRXcml0ZSkpCisgICAgICAgIHJldHVybiAwOworICAgIG5ld01hcC5kYXRhID0g
bmV3TWFwLmZpbGUtPm1hcCgwLCBzaXplKTsKKyAgICBBU1NFUlQoIW5ld01hcC5pc0ZyZWUoKSk7
CisgICAgbmV3TWFwLmZpbGUtPmNsb3NlKCk7CisgICAgbW1hcFBvb2wtPmFwcGVuZChuZXdNYXAp
OworICAgIHJldHVybiAmbW1hcFBvb2wtPmxhc3QoKTsKK30KKworVXBkYXRlQ2h1bms6OlVwZGF0
ZUNodW5rKCkKKyAgICA6IG1fbWFwcGVkTWVtb3J5KDApCit7Cit9CisKK1VwZGF0ZUNodW5rOjpV
cGRhdGVDaHVuayhjb25zdCBJbnRSZWN0JiByZWN0KQorICAgIDogbV9yZWN0KHJlY3QpCisgICAg
LCBtX21hcHBlZE1lbW9yeShtYXBNZW1vcnkoc2l6ZSgpKSkKK3sKK30KKworVXBkYXRlQ2h1bms6
On5VcGRhdGVDaHVuaygpCit7CisgICAgaWYgKG1fbWFwcGVkTWVtb3J5KQorICAgICAgICBtX21h
cHBlZE1lbW9yeS0+bWFya0ZyZWUoKTsKK30KKwordWludDhfdCogVXBkYXRlQ2h1bms6OmRhdGEo
KQoreworICAgIEFTU0VSVChtX21hcHBlZE1lbW9yeSk7CisgICAgQVNTRVJUKG1fbWFwcGVkTWVt
b3J5LT5kYXRhKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4obV9tYXBw
ZWRNZW1vcnktPmRhdGEpOworfQorCit2b2lkIFVwZGF0ZUNodW5rOjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIuZW5jb2RlKG1f
cmVjdCk7CisgICAgZW5jb2Rlci5lbmNvZGUoU3RyaW5nKG1fbWFwcGVkTWVtb3J5LT5maWxlLT5m
aWxlTmFtZSgpKSk7CisKKyAgICBtX21hcHBlZE1lbW9yeSA9IDA7Cit9CisKK2Jvb2wgVXBkYXRl
Q2h1bms6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFVwZGF0ZUNo
dW5rJiBjaHVuaykKK3sKKyAgICBJbnRSZWN0IHJlY3Q7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNodW5rLm1fcmVjdCA9IHJlY3Q7
CisgICAgCisgICAgU3RyaW5nIGZpbGVOYW1lOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZmls
ZU5hbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjaHVuay5tX21hcHBlZE1lbW9y
eSA9IG1hcEZpbGUoZmlsZU5hbWUsIGNodW5rLnNpemUoKSk7CisKKyAgICByZXR1cm4gY2h1bmsu
bV9tYXBwZWRNZW1vcnktPmRhdGE7Cit9CisKK1FJbWFnZSBVcGRhdGVDaHVuazo6Y3JlYXRlSW1h
Z2UoKQoreworICAgIHJldHVybiBRSW1hZ2UoZGF0YSgpLCBtX3JlY3Qud2lkdGgoKSwgbV9yZWN0
LmhlaWdodCgpLCBRSW1hZ2U6OkZvcm1hdF9SR0IzMik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApJbmRleDogV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0
Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVXBkYXRlQ2h1bmtfaAorI2RlZmluZSBV
cGRhdGVDaHVua19oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKworI2luY2x1ZGUg
PFFJbWFnZT4KKworbmFtZXNwYWNlIENvcmVJUEMgeworICAgIGNsYXNzIEFyZ3VtZW50RW5jb2Rl
cjsKKyAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBNYXBwZWRNZW1vcnk7CisKK2NsYXNzIFVwZGF0ZUNodW5rIHsKK3B1YmxpYzoKKyAg
ICBVcGRhdGVDaHVuaygpOworICAgIFVwZGF0ZUNodW5rKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KTsKKyAgICB+VXBkYXRlQ2h1bmsoKTsKKworICAgIHVpbnQ4X3QqIGRhdGEoKTsKKyAgICBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9CisKKyAg
ICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgVXBkYXRlQ2h1bmsmKTsK
KyAgICAKKyAgICBRSW1hZ2UgY3JlYXRlSW1hZ2UoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgc2l6
ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3JlY3Qud2lkdGgoKSAqIDQgKiBtX3JlY3QuaGVp
Z2h0KCk7IH0KKworICAgIFdlYkNvcmU6OkludFJlY3QgbV9yZWN0OworCisgICAgbXV0YWJsZSBN
YXBwZWRNZW1vcnkqIG1fbWFwcGVkTWVtb3J5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBVcGRhdGVDaHVua19oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60252</attachid>
            <date>2010-07-01 08:31:29 -0700</date>
            <delta_ts>2010-07-02 03:16:28 -0700</delta_ts>
            <desc>Default client impl.</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>11105</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA0MWJlZTEzOWZlNTk5YTZhMzU3ZWZjODEyMGJkZjI1Mzk5ZWY5NGJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDEyOjMwOjQ3
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgaW1wbGVtZW50YXRpb24gb2YgdGhlIFVJIGFuZCBs
b2FkZXIgY2xpZW50IGZvciBRdC4KCiogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcDoKKiBV
SVByb2Nlc3MvcXQvRGVmYXVsdENsaWVudENhbGxiYWNrc1F0LmNwcDogQWRkZWQuCih0b1FXS1Bh
Z2UpOgoocXRfd2tfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CihxdF93a19kaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CihxdF93a19k
aWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgoocXRfd2tfZGlkQ29tbWl0
TG9hZEZvckZyYW1lKToKKHF0X3drX2RpZEZpbmlzaExvYWRGb3JGcmFtZSk6CihxdF93a19kaWRG
YWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKHF0X3drX2RpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KToKKHF0X3drX2RpZEZpcnN0TGF5b3V0Rm9yRnJhbWUpOgoocXRfd2tfZGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUpOgoocXRfd2tfZGlkU3RhcnRQcm9ncmVzcyk6CihxdF93
a19kaWRDaGFuZ2VQcm9ncmVzcyk6CihxdF93a19kaWRGaW5pc2hQcm9ncmVzcyk6CihxdF93a19k
aWRCZWNvbWVVbnJlc3BvbnNpdmUpOgoocXRfd2tfZGlkQmVjb21lUmVzcG9uc2l2ZSk6CihxdF93
a19jcmVhdGVOZXdQYWdlKToKKHF0X3drX3Nob3dQYWdlKToKKHF0X3drX2Nsb3NlKToKKHF0X3dr
X3J1bkphdmFTY3JpcHRBbGVydCk6CiogVUlQcm9jZXNzL3F0L0RlZmF1bHRDbGllbnRDYWxsYmFj
a3NRdC5oOiBBZGRlZC4KLS0tCiBXZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAzMiArKysrKwogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2UuY3BwICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYktpdDIvVUlQcm9jZXNzL3F0L0RlZmF1
bHRDbGllbnRDYWxsYmFja3NRdC5jcHAgfCAgMTQ4ICsrKysrKysrKysrKysrKysrKysrKwogV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvRGVmYXVsdENsaWVudENhbGxiYWNrc1F0LmggICB8ICAgNTYgKysr
KysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMjM3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0p
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvcXQvRGVmYXVsdENsaWVudENh
bGxiYWNrc1F0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9jZXNzL3F0L0Rl
ZmF1bHRDbGllbnRDYWxsYmFja3NRdC5oCgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlMTA5NTgzLi42NWQ4Njk3IDEwMDY0NAotLS0gYS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBA
CiAyMDEwLTA3LTAxICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGguY2hyaXN0
aWFuc2VuQG9wZW5ib3NzYS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjMzCisKKyAgICAg
ICAgQWRkIGltcGxlbWVudGF0aW9uIG9mIHRoZSBVSSBhbmQgbG9hZGVyIGNsaWVudCBmb3IgUXQu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9xdC9EZWZhdWx0Q2xpZW50Q2FsbGJhY2tzUXQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KHRvUVdLUGFnZSk6CisgICAgICAgIChxdF93a19kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKHF0X3drX2RpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKHF0X3drX2RpZEZhaWxQcm92aXNpb25hbExvYWRX
aXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAgIChxdF93a19kaWRDb21taXRMb2FkRm9yRnJhbWUp
OgorICAgICAgICAocXRfd2tfZGlkRmluaXNoTG9hZEZvckZyYW1lKToKKyAgICAgICAgKHF0X3dr
X2RpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgorICAgICAgICAocXRfd2tfZGlkUmVjZWl2
ZVRpdGxlRm9yRnJhbWUpOgorICAgICAgICAocXRfd2tfZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSk6
CisgICAgICAgIChxdF93a19kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSk6
CisgICAgICAgIChxdF93a19kaWRTdGFydFByb2dyZXNzKToKKyAgICAgICAgKHF0X3drX2RpZENo
YW5nZVByb2dyZXNzKToKKyAgICAgICAgKHF0X3drX2RpZEZpbmlzaFByb2dyZXNzKToKKyAgICAg
ICAgKHF0X3drX2RpZEJlY29tZVVucmVzcG9uc2l2ZSk6CisgICAgICAgIChxdF93a19kaWRCZWNv
bWVSZXNwb25zaXZlKToKKyAgICAgICAgKHF0X3drX2NyZWF0ZU5ld1BhZ2UpOgorICAgICAgICAo
cXRfd2tfc2hvd1BhZ2UpOgorICAgICAgICAocXRfd2tfY2xvc2UpOgorICAgICAgICAocXRfd2tf
cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvRGVmYXVsdENsaWVu
dENhbGxiYWNrc1F0Lmg6IEFkZGVkLgorCisyMDEwLTA3LTAxICBLZW5uZXRoIFJvaGRlIENocmlz
dGlhbnNlbiAgPGtlbm5ldGguY2hyaXN0aWFuc2VuQG9wZW5ib3NzYS5vcmc+CisKICAgICAgICAg
UmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCiAKICAgICAgICAgW1F0XSBJbml0aWFsIFdlYktp
dDIgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2twYWdlLmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAppbmRleCA3
Y2Y1NWFjLi4yMjM5NTAyIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdr
cGFnZS5jcHAKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCkBAIC0y
MSw3ICsyMSw3IEBACiAjaW5jbHVkZSAicXdrcGFnZS5oIgogI2luY2x1ZGUgInF3a3BhZ2VfcC5o
IgogCi0jaW5jbHVkZSAiRGVmYXVsdFBhZ2VMb2FkZXJDbGllbnRDYWxsYmFja3NRdC5oIgorI2lu
Y2x1ZGUgIkRlZmF1bHRDbGllbnRDYWxsYmFja3NRdC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0
cmluZ3MuaCIKICNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKICNpbmNsdWRlICJXS1N0cmlu
Z1F0LmgiCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9EZWZhdWx0Q2xpZW50Q2Fs
bGJhY2tzUXQuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvRGVmYXVsdENsaWVudENhbGxiYWNr
c1F0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNmU0MTk3Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvRGVmYXVsdENsaWVudENhbGxiYWNr
c1F0LmNwcApAQCAtMCwwICsxLDE0OCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUg
IkRlZmF1bHRDbGllbnRDYWxsYmFja3NRdC5oIgorCisjaW5jbHVkZSAiV2ViRnJhbWVQcm94eS5o
IgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLU3RyaW5nUXQuaCIKKyNpbmNs
dWRlICJXS1VSTFF0LmgiCisjaW5jbHVkZSA8cXdrcGFnZS5oPgorI2luY2x1ZGUgPHF3a3BhZ2Vf
cC5oPgorI2luY2x1ZGUgPFdLRnJhbWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKwor
c3RhdGljIFFXS1BhZ2UqIHRvUVdLUGFnZShjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAg
IGlmIChjbGllbnRJbmZvKQorICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxRV0tQYWdl
Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHJldHVybiAwOworfQorCit2
b2lkIHF0X3drX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgaWYgKCFX
S0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICByZXR1cm47CisgICAgZW1pdCB0b1FX
S1BhZ2UoY2xpZW50SW5mbyktPmxvYWRTdGFydGVkKCk7Cit9CisKK3ZvaWQgcXRfd2tfZGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7Cit9CisKK3Zv
aWQgcXRfd2tfZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJl
ZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworfQor
Cit2b2lkIHF0X3drX2RpZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBpZiAoIVdLRnJhbWVJ
c01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIHJldHVybjsKKyAgICBXZWJGcmFtZVByb3h5KiB3
a2ZyYW1lID0gdG9XSyhmcmFtZSk7CisgICAgUVN0cmluZyB1cmxTdHIod2tmcmFtZS0+dXJsKCkp
OworICAgIFFVcmwgcVVybCA9IHVybFN0cjsKKyAgICBlbWl0IHRvUVdLUGFnZShjbGllbnRJbmZv
KS0+dXJsQ2hhbmdlZChxVXJsKTsKK30KKwordm9pZCBxdF93a19kaWRGaW5pc2hMb2FkRm9yRnJh
bWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCit7CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICByZXR1
cm47CisgICAgZW1pdCB0b1FXS1BhZ2UoY2xpZW50SW5mbyktPmxvYWRGaW5pc2hlZCh0cnVlKTsK
K30KKwordm9pZCBxdF93a19kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBw
YWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIGlm
ICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKKyAgICAgICAgcmV0dXJuOworICAgIGVtaXQg
dG9RV0tQYWdlKGNsaWVudEluZm8pLT5sb2FkRmluaXNoZWQoZmFsc2UpOworfQorCit2b2lkIHF0
X3drX2RpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0
aXRsZSwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBp
ZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIHJldHVybjsKKyAgICBRU3Ry
aW5nIHFUaXRsZSA9IFdLU3RyaW5nQ29weVFTdHJpbmcodGl0bGUpOworICAgIGVtaXQgdG9RV0tQ
YWdlKGNsaWVudEluZm8pLT50aXRsZUNoYW5nZWQocVRpdGxlKTsKK30KKwordm9pZCBxdF93a19k
aWRGaXJzdExheW91dEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZy
YW1lKSkKKyAgICAgICAgcmV0dXJuOworICAgIGVtaXQgdG9RV0tQYWdlKGNsaWVudEluZm8pLT5p
bml0aWFsTGF5b3V0Q29tcGxldGVkKCk7Cit9CisKK3ZvaWQgcXRfd2tfZGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUo
ZnJhbWUpKQorICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IGVtaXQgdG9XS1ZpZXcoY2xp
ZW50SW5mbyktPmluaXRpYWxMYXlvdXRDb21wbGV0ZWQoKTsKK30KKwordm9pZCBxdF93a19kaWRT
dGFydFByb2dyZXNzKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorewor
ICAgIGVtaXQgdG9RV0tQYWdlKGNsaWVudEluZm8pLT5sb2FkUHJvZ3Jlc3MoMCk7Cit9CisKK3Zv
aWQgcXRfd2tfZGlkQ2hhbmdlUHJvZ3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCit7CisgICAgZW1pdCB0b1FXS1BhZ2UoY2xpZW50SW5mbyktPmxvYWRQcm9ncmVz
cyhXS1BhZ2VHZXRFc3RpbWF0ZWRQcm9ncmVzcyhwYWdlKSAqIDEwMCk7Cit9CisKK3ZvaWQgcXRf
d2tfZGlkRmluaXNoUHJvZ3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCit7CisgICAgZW1pdCB0b1FXS1BhZ2UoY2xpZW50SW5mbyktPmxvYWRQcm9ncmVzcygxMDAp
OworfQorCit2b2lkIHF0X3drX2RpZEJlY29tZVVucmVzcG9uc2l2ZShXS1BhZ2VSZWYgcGFnZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKK30KKwordm9pZCBxdF93a19kaWRCZWNvbWVSZXNw
b25zaXZlKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworfQorCitX
S1BhZ2VSZWYgcXRfd2tfY3JlYXRlTmV3UGFnZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKK3sKKyAgICBRV0tQYWdlKiB3a1BhZ2UgPSB0b1FXS1BhZ2UoY2xpZW50SW5m
byk7CisgICAgUVdLUGFnZVByaXZhdGUqIGQgPSBRV0tQYWdlUHJpdmF0ZTo6Z2V0KHdrUGFnZSk7
CisgICAgUVdLUGFnZTo6Q3JlYXRlTmV3UGFnZUZuIGNyZWF0ZU5ld1BhZ2VGbiA9IGQtPmNyZWF0
ZU5ld1BhZ2VGbjsKKworICAgIGlmICghY3JlYXRlTmV3UGFnZUZuKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIGlmIChRV0tQYWdlKiBuZXdQYWdlID0gY3JlYXRlTmV3UGFnZUZuKHdrUGFnZSkp
CisgICAgICAgIHJldHVybiBuZXdQYWdlLT5wYWdlUmVmKCk7CisKKyAgICByZXR1cm4gMDsKK30K
Kwordm9pZCBxdF93a19zaG93UGFnZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK3sKK30KKwordm9pZCBxdF93a19jbG9zZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKK30KKwordm9pZCBxdF93a19ydW5KYXZhU2NyaXB0QWxlcnQoV0tQ
YWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZiBmcmFtZSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3sKK30KZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNz
L3F0L0RlZmF1bHRDbGllbnRDYWxsYmFja3NRdC5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvRGVm
YXVsdENsaWVudENhbGxiYWNrc1F0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNzE1ZTdiZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL3F0L0RlZmF1
bHRDbGllbnRDYWxsYmFja3NRdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgICAgQ29weXJpZ2h0
IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyov
CisKKyNpZm5kZWYgRGVmYXVsdENsaWVudENhbGxiYWNrc1F0X2gKKyNkZWZpbmUgRGVmYXVsdENs
aWVudENhbGxiYWNrc1F0X2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLy8gbG9hZGVyIGNsaWVudAor
dm9pZCBxdF93a19kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit2b2lkIHF0X3drX2RpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFt
ZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit2b2lkIHF0X3drX2RpZEZhaWxQcm92aXNp
b25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwordm9pZCBxdF93a19kaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQYWdl
UmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3ZvaWQgcXRfd2tfZGlk
RmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7Cit2b2lkIHF0X3drX2RpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdl
UmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3ZvaWQgcXRfd2tfZGlk
UmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tGcmFt
ZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit2b2lkIHF0X3drX2RpZEZpcnN0TGF5b3V0
Rm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
K3ZvaWQgcXRfd2tfZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV0tQYWdl
UmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3ZvaWQgcXRfd2tfZGlk
U3RhcnRQcm9ncmVzcyhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordm9pZCBx
dF93a19kaWRDaGFuZ2VQcm9ncmVzcyhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
Owordm9pZCBxdF93a19kaWRGaW5pc2hQcm9ncmVzcyhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwordm9pZCBxdF93a19kaWRCZWNvbWVVbnJlc3BvbnNpdmUoV0tQYWdlUmVmLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3ZvaWQgcXRfd2tfZGlkQmVjb21lUmVzcG9uc2l2ZShX
S1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCisvLyB1aSBjbGllbnQKK1dLUGFn
ZVJlZiBxdF93a19jcmVhdGVOZXdQYWdlKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKK3ZvaWQgcXRfd2tfc2hvd1BhZ2UoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwordm9pZCBxdF93a19jbG9zZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbyk7Cit2b2lkIHF0X3drX3J1bkphdmFTY3JpcHRBbGVydChXS1BhZ2VSZWYg
cGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlm
IC8qIERlZmF1bHRDbGllbnRDYWxsYmFja3NRdF9oICovCisKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60255</attachid>
            <date>2010-07-01 08:50:58 -0700</date>
            <delta_ts>2010-07-01 13:45:55 -0700</delta_ts>
            <desc>(r62295 - p=kenneth, r=antti) Default client impl. for landing</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>10986</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBkZGFjN2QzZjkwZDQyODljYzJiYzBmNzBmNzkzNjYxNjhmNTk1MWI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDEyOjMwOjQ3
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpBZGQgaW1wbGVtZW50YXRpb24gb2YgdGhlIFVJIGFuZCBs
b2FkZXIgY2xpZW50IGZvciBRdC4KCiogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcDoKKiBV
SVByb2Nlc3MvQVBJL3F0L0NsaWVudEltcGwuY3BwOiBBZGRlZC4KKHRvUVdLUGFnZSk6CihxdF93
a19kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKHF0X3drX2RpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKHF0X3drX2RpZEZhaWxQcm92
aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CihxdF93a19kaWRDb21taXRMb2FkRm9yRnJh
bWUpOgoocXRfd2tfZGlkRmluaXNoTG9hZEZvckZyYW1lKToKKHF0X3drX2RpZEZhaWxMb2FkV2l0
aEVycm9yRm9yRnJhbWUpOgoocXRfd2tfZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUpOgoocXRfd2tf
ZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSk6CihxdF93a19kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JGcmFtZSk6CihxdF93a19kaWRTdGFydFByb2dyZXNzKToKKHF0X3drX2RpZENoYW5n
ZVByb2dyZXNzKToKKHF0X3drX2RpZEZpbmlzaFByb2dyZXNzKToKKHF0X3drX2RpZEJlY29tZVVu
cmVzcG9uc2l2ZSk6CihxdF93a19kaWRCZWNvbWVSZXNwb25zaXZlKToKKHF0X3drX2NyZWF0ZU5l
d1BhZ2UpOgoocXRfd2tfc2hvd1BhZ2UpOgoocXRfd2tfY2xvc2UpOgoocXRfd2tfcnVuSmF2YVNj
cmlwdEFsZXJ0KToKKiBVSVByb2Nlc3MvQVBJL3F0L0NsaWVudEltcGwuaDogQWRkZWQuCi0tLQog
V2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgIHwgICAzMiArKysrKysrCiBX
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5jcHAgfCAgMTQ4ICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBs
LmggICB8ICAgNTYgKysrKysrKysrKysrCiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFn
ZS5jcHAgICAgfCAgICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDIzNyBpbnNlcnRpb25zKCspLCAx
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9DbGllbnRJbXBsLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9DbGllbnRJbXBsLmgKCmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IGUxMDk1ODMuLmEwMTMzN2EgMTAwNjQ0Ci0tLSBhL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC01LDYgKzUsMzggQEAKICAgICAg
ICAgW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRpb24KICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjMzCiAKKyAgICAgICAgQWRkIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBVSSBhbmQgbG9hZGVyIGNsaWVudCBmb3IgUXQuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvQ2xpZW50SW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAodG9RV0tQYWdlKToKKyAgICAgICAg
KHF0X3drX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAocXRfd2tf
ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAg
ICAgICAocXRfd2tfZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAg
ICAgICAgKHF0X3drX2RpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChxdF93a19kaWRG
aW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAocXRfd2tfZGlkRmFpbExvYWRXaXRoRXJyb3JG
b3JGcmFtZSk6CisgICAgICAgIChxdF93a19kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSk6CisgICAg
ICAgIChxdF93a19kaWRGaXJzdExheW91dEZvckZyYW1lKToKKyAgICAgICAgKHF0X3drX2RpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKHF0X3drX2RpZFN0
YXJ0UHJvZ3Jlc3MpOgorICAgICAgICAocXRfd2tfZGlkQ2hhbmdlUHJvZ3Jlc3MpOgorICAgICAg
ICAocXRfd2tfZGlkRmluaXNoUHJvZ3Jlc3MpOgorICAgICAgICAocXRfd2tfZGlkQmVjb21lVW5y
ZXNwb25zaXZlKToKKyAgICAgICAgKHF0X3drX2RpZEJlY29tZVJlc3BvbnNpdmUpOgorICAgICAg
ICAocXRfd2tfY3JlYXRlTmV3UGFnZSk6CisgICAgICAgIChxdF93a19zaG93UGFnZSk6CisgICAg
ICAgIChxdF93a19jbG9zZSk6CisgICAgICAgIChxdF93a19ydW5KYXZhU2NyaXB0QWxlcnQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5oOiBBZGRlZC4KKworMjAxMC0w
Ny0wMSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoLmNocmlzdGlhbnNlbkBv
cGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisg
ICAgICAgIFtRdF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMworCiAgICAgICAgIEFkZCBp
bml0aWFsIFF0IEFQSSBmb3IgV2ViS2l0MgogCiAgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9X
S1ZpZXcuaDogQWRkZWQuCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvQ2xp
ZW50SW1wbC5jcHAgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZlNDE5NwotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBsLmNwcApAQCAtMCwwICsxLDE0
OCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgIkRlZmF1bHRDbGllbnRDYWxsYmFj
a3NRdC5oIgorCisjaW5jbHVkZSAiV2ViRnJhbWVQcm94eS5oIgorI2luY2x1ZGUgIldLQVBJQ2Fz
dC5oIgorI2luY2x1ZGUgIldLU3RyaW5nUXQuaCIKKyNpbmNsdWRlICJXS1VSTFF0LmgiCisjaW5j
bHVkZSA8cXdrcGFnZS5oPgorI2luY2x1ZGUgPHF3a3BhZ2VfcC5oPgorI2luY2x1ZGUgPFdLRnJh
bWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworc3RhdGljIFFXS1BhZ2UqIHRvUVdL
UGFnZShjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIGlmIChjbGllbnRJbmZvKQorICAg
ICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxRV0tQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4o
Y2xpZW50SW5mbykpOworICAgIHJldHVybiAwOworfQorCit2b2lkIHF0X3drX2RpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJh
bWUpKQorICAgICAgICByZXR1cm47CisgICAgZW1pdCB0b1FXS1BhZ2UoY2xpZW50SW5mbyktPmxv
YWRTdGFydGVkKCk7Cit9CisKK3ZvaWQgcXRfd2tfZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7Cit9CisKK3ZvaWQgcXRfd2tfZGlkRmFpbFByb3Zp
c2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZy
YW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworfQorCit2b2lkIHF0X3drX2RpZENvbW1p
dExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKKyAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisg
ICAgICAgIHJldHVybjsKKyAgICBXZWJGcmFtZVByb3h5KiB3a2ZyYW1lID0gdG9XSyhmcmFtZSk7
CisgICAgUVN0cmluZyB1cmxTdHIod2tmcmFtZS0+dXJsKCkpOworICAgIFFVcmwgcVVybCA9IHVy
bFN0cjsKKyAgICBlbWl0IHRvUVdLUGFnZShjbGllbnRJbmZvKS0+dXJsQ2hhbmdlZChxVXJsKTsK
K30KKwordm9pZCBxdF93a19kaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdL
RnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgaWYgKCFXS0Zy
YW1lSXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICByZXR1cm47CisgICAgZW1pdCB0b1FXS1Bh
Z2UoY2xpZW50SW5mbyktPmxvYWRGaW5pc2hlZCh0cnVlKTsKK30KKwordm9pZCBxdF93a19kaWRG
YWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1l
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1l
KGZyYW1lKSkKKyAgICAgICAgcmV0dXJuOworICAgIGVtaXQgdG9RV0tQYWdlKGNsaWVudEluZm8p
LT5sb2FkRmluaXNoZWQoZmFsc2UpOworfQorCit2b2lkIHF0X3drX2RpZFJlY2VpdmVUaXRsZUZv
ckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tGcmFtZVJlZiBmcmFt
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFt
ZShmcmFtZSkpCisgICAgICAgIHJldHVybjsKKyAgICBRU3RyaW5nIHFUaXRsZSA9IFdLU3RyaW5n
Q29weVFTdHJpbmcodGl0bGUpOworICAgIGVtaXQgdG9RV0tQYWdlKGNsaWVudEluZm8pLT50aXRs
ZUNoYW5nZWQocVRpdGxlKTsKK30KKwordm9pZCBxdF93a19kaWRGaXJzdExheW91dEZvckZyYW1l
KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQoreworICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKKyAgICAgICAgcmV0dXJu
OworICAgIGVtaXQgdG9RV0tQYWdlKGNsaWVudEluZm8pLT5pbml0aWFsTGF5b3V0Q29tcGxldGVk
KCk7Cit9CisKK3ZvaWQgcXRfd2tfZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJh
bWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCit7CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICByZXR1
cm47CisgICAgLy8gRklYTUU6IGVtaXQgdG9XS1ZpZXcoY2xpZW50SW5mbyktPmluaXRpYWxMYXlv
dXRDb21wbGV0ZWQoKTsKK30KKwordm9pZCBxdF93a19kaWRTdGFydFByb2dyZXNzKFdLUGFnZVJl
ZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIGVtaXQgdG9RV0tQYWdlKGNs
aWVudEluZm8pLT5sb2FkUHJvZ3Jlc3MoMCk7Cit9CisKK3ZvaWQgcXRfd2tfZGlkQ2hhbmdlUHJv
Z3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgZW1p
dCB0b1FXS1BhZ2UoY2xpZW50SW5mbyktPmxvYWRQcm9ncmVzcyhXS1BhZ2VHZXRFc3RpbWF0ZWRQ
cm9ncmVzcyhwYWdlKSAqIDEwMCk7Cit9CisKK3ZvaWQgcXRfd2tfZGlkRmluaXNoUHJvZ3Jlc3Mo
V0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgZW1pdCB0b1FX
S1BhZ2UoY2xpZW50SW5mbyktPmxvYWRQcm9ncmVzcygxMDApOworfQorCit2b2lkIHF0X3drX2Rp
ZEJlY29tZVVucmVzcG9uc2l2ZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3sKK30KKwordm9pZCBxdF93a19kaWRCZWNvbWVSZXNwb25zaXZlKFdLUGFnZVJlZiBwYWdl
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworfQorCitXS1BhZ2VSZWYgcXRfd2tfY3JlYXRl
TmV3UGFnZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBR
V0tQYWdlKiB3a1BhZ2UgPSB0b1FXS1BhZ2UoY2xpZW50SW5mbyk7CisgICAgUVdLUGFnZVByaXZh
dGUqIGQgPSBRV0tQYWdlUHJpdmF0ZTo6Z2V0KHdrUGFnZSk7CisgICAgUVdLUGFnZTo6Q3JlYXRl
TmV3UGFnZUZuIGNyZWF0ZU5ld1BhZ2VGbiA9IGQtPmNyZWF0ZU5ld1BhZ2VGbjsKKworICAgIGlm
ICghY3JlYXRlTmV3UGFnZUZuKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChRV0tQYWdl
KiBuZXdQYWdlID0gY3JlYXRlTmV3UGFnZUZuKHdrUGFnZSkpCisgICAgICAgIHJldHVybiBuZXdQ
YWdlLT5wYWdlUmVmKCk7CisKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBxdF93a19zaG93UGFn
ZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKK30KKwordm9pZCBx
dF93a19jbG9zZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKK30K
Kwordm9pZCBxdF93a19ydW5KYXZhU2NyaXB0QWxlcnQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5n
UmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3sKK30KZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBsLmgg
Yi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjcxNWU3YmYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpZm5kZWYgRGVmYXVsdENsaWVudENhbGxiYWNrc1F0X2gKKyNkZWZpbmUgRGVm
YXVsdENsaWVudENhbGxiYWNrc1F0X2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLy8gbG9hZGVyIGNs
aWVudAordm9pZCBxdF93a19kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit2b2lkIHF0X3drX2RpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwg
V0tGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit2b2lkIHF0X3drX2RpZEZhaWxQ
cm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwordm9pZCBxdF93a19kaWRDb21taXRMb2FkRm9yRnJhbWUo
V0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3ZvaWQgcXRf
d2tfZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7Cit2b2lkIHF0X3drX2RpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUo
V0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3ZvaWQgcXRf
d2tfZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwg
V0tGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit2b2lkIHF0X3drX2RpZEZpcnN0
TGF5b3V0Rm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKK3ZvaWQgcXRfd2tfZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUo
V0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3ZvaWQgcXRf
d2tfZGlkU3RhcnRQcm9ncmVzcyhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwor
dm9pZCBxdF93a19kaWRDaGFuZ2VQcm9ncmVzcyhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOwordm9pZCBxdF93a19kaWRGaW5pc2hQcm9ncmVzcyhXS1BhZ2VSZWYsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwordm9pZCBxdF93a19kaWRCZWNvbWVVbnJlc3BvbnNpdmUoV0tQYWdl
UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3ZvaWQgcXRfd2tfZGlkQmVjb21lUmVzcG9u
c2l2ZShXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCisvLyB1aSBjbGllbnQK
K1dLUGFnZVJlZiBxdF93a19jcmVhdGVOZXdQYWdlKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKTsKK3ZvaWQgcXRfd2tfc2hvd1BhZ2UoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwordm9pZCBxdF93a19jbG9zZShXS1BhZ2VSZWYgcGFnZSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit2b2lkIHF0X3drX3J1bkphdmFTY3JpcHRBbGVydChXS1Bh
Z2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKwor
I2VuZGlmIC8qIERlZmF1bHRDbGllbnRDYWxsYmFja3NRdF9oICovCisKZGlmZiAtLWdpdCBhL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2twYWdlLmNwcAppbmRleCA3Y2Y1NWFjLi4yMjM5NTAyIDEwMDY0NAotLS0gYS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2UuY3BwCkBAIC0yMSw3ICsyMSw3IEBACiAjaW5jbHVkZSAicXdrcGFnZS5o
IgogI2luY2x1ZGUgInF3a3BhZ2VfcC5oIgogCi0jaW5jbHVkZSAiRGVmYXVsdFBhZ2VMb2FkZXJD
bGllbnRDYWxsYmFja3NRdC5oIgorI2luY2x1ZGUgIkRlZmF1bHRDbGllbnRDYWxsYmFja3NRdC5o
IgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJXZWJFdmVudEZhY3Rv
cnkuaCIKICNpbmNsdWRlICJXS1N0cmluZ1F0LmgiCi0tIAoxLjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60264</attachid>
            <date>2010-07-01 11:07:13 -0700</date>
            <delta_ts>2010-07-01 11:17:04 -0700</delta_ts>
            <desc>Export symbols on Linux with GCC</desc>
            <filename>0001-Export-symbols-on-Linux-with-GCC-like-JSC-does.patch</filename>
            <type>text/plain</type>
            <size>2746</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSAzOGZhMDRiOTEzN2ZhMWUzNjQ4N2M4OGQ3YWY3YWI0ZmRiMGM1YTg5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDE1OjA1OjI2
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gRXhwb3J0IHN5bWJvbHMgb24gTGludXggd2l0aCBHQ0Ms
IGxpa2UgSlNDIGRvZXMuCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogVUlQcm9jZXNz
L0FQSS9DL1dLQmFzZS5oOgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVCYXNlLmg6Ci0tLQogV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICA5ICsrKysrKysrKwogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXNl
LmggICAgICAgICAgICAgICAgICAgfCAgICA3ICsrKysrKy0KIC4uLi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFzZS5oIHwgICAgNyArKysrKystCiAzIGZpbGVzIGNo
YW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhMDEzMzdhLi5lOGMzYThm
IDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDE0IEBACiAyMDEwLTA3LTAxICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAg
PGtlbm5ldGguY2hyaXN0aWFuc2VuQG9wZW5ib3NzYS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3J0IHN5bWJvbHMgb24gTGludXggd2l0
aCBHQ0MsIGxpa2UgSlNDIGRvZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tCYXNl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJh
c2UuaDoKKworMjAxMC0wNy0wMSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRo
LmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEFudHRp
IEtvaXZpc3RvLgogCiAgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9u
CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaCBiL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQmFzZS5oCmluZGV4IGU2MmQyMjUuLjM1NmEwOGQgMTAwNjQ0Ci0t
LSBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFzZS5oCisrKyBiL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQmFzZS5oCkBAIC00MCw3ICs0MCwxMiBAQCB0eXBlZGVmIHN0cnVjdCBPcGFx
dWVXS1ByZWZlcmVuY2VzUmVmKiBXS1ByZWZlcmVuY2VzUmVmOwogdHlwZWRlZiBzdHJ1Y3QgT3Bh
cXVlV0tTdHJpbmdSZWYqIFdLU3RyaW5nUmVmOwogdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlV0tVUkxS
ZWYqIFdLVVJMUmVmOwogCi0jaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCisj
dW5kZWYgV0tfRVhQT1JUCisjaWYgZGVmaW5lZChXS19OT19FWFBPUlQpCisjZGVmaW5lIFdLX0VY
UE9SVAorI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19DQ19BUk0pICYmICFk
ZWZpbmVkKF9fQVJNQ0NfXykKKyNkZWZpbmUgV0tfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2li
aWxpdHkoImRlZmF1bHQiKSkpCisjZWxpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4z
MikgfHwgZGVmaW5lZChfV0lOMzJfV0NFKQogI2lmIEJVSUxESU5HX1dFQktJVDIKICNkZWZpbmUg
V0tfRVhQT1JUIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQogI2Vsc2UKZGlmZiAtLWdpdCBhL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhc2UuaCBiL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhc2UuaAppbmRleCA2
M2U4NWE1Li45MzU4N2U3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVCYXNlLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFzZS5oCkBAIC0zMCw3ICszMCwxMiBAQCB0eXBlZGVm
IHN0cnVjdCBPcGFxdWVXS0J1bmRsZVBhZ2UqIFdLQnVuZGxlUGFnZVJlZjsKIHR5cGVkZWYgc3Ry
dWN0IE9wYXF1ZVdLQnVuZGxlRnJhbWUqIFdLQnVuZGxlRnJhbWVSZWY7CiB0eXBlZGVmIHN0cnVj
dCBPcGFxdWVXS0J1bmRsZSogV0tCdW5kbGVSZWY7CiAKLSNpZiBkZWZpbmVkKFdJTjMyKSB8fCBk
ZWZpbmVkKF9XSU4zMikKKyN1bmRlZiBXS19FWFBPUlQKKyNpZiBkZWZpbmVkKFdLX05PX0VYUE9S
VCkKKyNkZWZpbmUgV0tfRVhQT1JUCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5l
ZChfX0NDX0FSTSkgJiYgIWRlZmluZWQoX19BUk1DQ19fKQorI2RlZmluZSBXS19FWFBPUlQgX19h
dHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyNlbGlmIGRlZmluZWQoV0lOMzIp
IHx8IGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMl9XQ0UpCiAjaWYgQlVJTERJTkdf
V0VCS0lUMgogI2RlZmluZSBXS19FWFBPUlQgX19kZWNsc3BlYyhkbGxleHBvcnQpCiAjZWxzZQot
LSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60266</attachid>
            <date>2010-07-01 11:17:04 -0700</date>
            <delta_ts>2010-07-01 13:54:25 -0700</delta_ts>
            <desc>(r62297 - p=kenneth, rs=weinig) Patch &apos;Export symbols on Linux with GCC&apos; for landing</desc>
            <filename>0001-Export-symbols-on-Linux-with-GCC-like-JSC-does.patch</filename>
            <type>text/plain</type>
            <size>2612</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA5MTI2MzNlMjBiMjc2NWU4OWZiMjI4YmE4NGY1YjgwMGIzMWNmNWFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDE1OjA1OjI2
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gRXhwb3J0IHN5bWJvbHMgb24gTGludXggd2l0aCBHQ0Ms
IGxpa2UgSlNDIGRvZXMuCgpSdWJiZXJzdGFtcGVkIGJ5IFNhbSBXZWluaWcuCgoqIFVJUHJvY2Vz
cy9BUEkvQy9XS0Jhc2UuaDoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlQmFzZS5oOgotLS0KIFdlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgOSArKysrKysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFz
ZS5oICAgICAgICAgICAgICAgICAgIHwgICAgNyArKysrKystCiAuLi4vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhc2UuaCB8ICAgIDcgKysrKysrLQogMyBmaWxlcyBj
aGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dl
YktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTAxMzM3YS4uZDBjZDNk
MiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwxNCBAQAogMjAxMC0wNy0wMSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4g
IDxrZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgogCisgICAgICAgIFJ1YmJlcnN0
YW1wZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBFeHBvcnQgc3ltYm9scyBvbiBMaW51eCB3
aXRoIEdDQywgbGlrZSBKU0MgZG9lcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0Jh
c2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
QmFzZS5oOgorCisyMDEwLTA3LTAxICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5l
dGguY2hyaXN0aWFuc2VuQG9wZW5ib3NzYS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50
dGkgS29pdmlzdG8uCiAKICAgICAgICAgW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFzZS5oIGIvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXNlLmgKaW5kZXggZTYyZDIyNS4uYjgxNjVlMiAxMDA2NDQK
LS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXNlLmgKKysrIGIvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tCYXNlLmgKQEAgLTQwLDcgKzQwLDEyIEBAIHR5cGVkZWYgc3RydWN0IE9w
YXF1ZVdLUHJlZmVyZW5jZXNSZWYqIFdLUHJlZmVyZW5jZXNSZWY7CiB0eXBlZGVmIHN0cnVjdCBP
cGFxdWVXS1N0cmluZ1JlZiogV0tTdHJpbmdSZWY7CiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVXS1VS
TFJlZiogV0tVUkxSZWY7CiAKLSNpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikK
KyN1bmRlZiBXS19FWFBPUlQKKyNpZiBkZWZpbmVkKFdLX05PX0VYUE9SVCkKKyNkZWZpbmUgV0tf
RVhQT1JUCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorI2RlZmluZSBXS19FWFBPUlQgX19hdHRy
aWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyNlbGlmIGRlZmluZWQoV0lOMzIpIHx8
IGRlZmluZWQoX1dJTjMyKQogI2lmIEJVSUxESU5HX1dFQktJVDIKICNkZWZpbmUgV0tfRVhQT1JU
IF9fZGVjbHNwZWMoZGxsZXhwb3J0KQogI2Vsc2UKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhc2UuaCBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhc2UuaAppbmRleCA2M2U4NWE1Li45
OTRiMzI1IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVCYXNlLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlQmFzZS5oCkBAIC0zMCw3ICszMCwxMiBAQCB0eXBlZGVmIHN0cnVjdCBP
cGFxdWVXS0J1bmRsZVBhZ2UqIFdLQnVuZGxlUGFnZVJlZjsKIHR5cGVkZWYgc3RydWN0IE9wYXF1
ZVdLQnVuZGxlRnJhbWUqIFdLQnVuZGxlRnJhbWVSZWY7CiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVX
S0J1bmRsZSogV0tCdW5kbGVSZWY7CiAKLSNpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9X
SU4zMikKKyN1bmRlZiBXS19FWFBPUlQKKyNpZiBkZWZpbmVkKFdLX05PX0VYUE9SVCkKKyNkZWZp
bmUgV0tfRVhQT1JUCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorI2RlZmluZSBXS19FWFBPUlQg
X19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyNlbGlmIGRlZmluZWQoV0lO
MzIpIHx8IGRlZmluZWQoX1dJTjMyKQogI2lmIEJVSUxESU5HX1dFQktJVDIKICNkZWZpbmUgV0tf
RVhQT1JUIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQogI2Vsc2UKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60512</attachid>
            <date>2010-07-05 04:30:16 -0700</date>
            <delta_ts>2010-07-05 05:15:09 -0700</delta_ts>
            <desc>ChunkedUpdateDrawingArea + Proxy </desc>
            <filename>qtwebkit2-chunkedupdatedrawingareaproxy-2.patch</filename>
            <type>text/plain</type>
            <size>7690</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjQ4MCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDctMDUgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtp
LmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtR
dF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMworICAgICAgICAKKyAgICAgICAgSW1wbGVt
ZW50IENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYSArIFByb3h5IGZvciBRdC4gTm90IGJ1aWx0IHll
dC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9xdDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL3F0
L0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5UXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnBhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6ZW5zdXJlQmFja2luZ1N0b3JlKToK
KyAgICAgICAgKFdlYktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OmludmFsaWRh
dGVCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0Fy
ZWFQcm94eTo6cGxhdGZvcm1QYWludCk6CisgICAgICAgIChXZWJLaXQ6OkNodW5rZWRVcGRhdGVE
cmF3aW5nQXJlYVByb3h5OjpkcmF3VXBkYXRlQ2h1bmtJbnRvQmFja2luZ1N0b3JlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvcXQ6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9xdC9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFRdC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OnBhaW50SW50b1VwZGF0ZUNodW5r
KToKKwogMjAxMC0wNy0wNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBXZWJLaXQyL1VJUHJv
Y2Vzcy9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmgJKHJldmlzaW9uIDYy
NDgwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHku
aAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOSBAQAogI2Vsc2UKIGNsYXNzIFdLVmlldzsK
ICNlbmRpZgorI2VsaWYgUExBVEZPUk0oUVQpCisjaW5jbHVkZSA8UUltYWdlPgorY2xhc3MgUUdy
YXBoaWNzV0tWaWV3OwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDgsNiArNTEs
OCBAQCB0eXBlZGVmIFdLVmlldyBQbGF0Zm9ybVdlYlZpZXc7CiAjZWxpZiBQTEFURk9STShXSU4p
CiBjbGFzcyBXZWJWaWV3OwogdHlwZWRlZiBXZWJWaWV3IFBsYXRmb3JtV2ViVmlldzsKKyNlbGlm
IFBMQVRGT1JNKFFUKQordHlwZWRlZiBRR3JhcGhpY3NXS1ZpZXcgUGxhdGZvcm1XZWJWaWV3Owog
I2VuZGlmCiAKIGNsYXNzIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5IDogcHVibGljIERy
YXdpbmdBcmVhUHJveHkgewpAQCAtOTUsNiArMTAwLDggQEAgcHJpdmF0ZToKICAgICAvLyBCYWNr
aW5nU3RvcmUKICAgICBPd25QdHI8SERDPiBtX2JhY2tpbmdTdG9yZURDOwogICAgIE93blB0cjxI
QklUTUFQPiBtX2JhY2tpbmdTdG9yZUJpdG1hcDsKKyNlbGlmIFBMQVRGT1JNKFFUKQorICAgIFFJ
bWFnZSBtX2JhY2tpbmdTdG9yZUltYWdlOwogI2VuZGlmCiAKICAgICBQbGF0Zm9ybVdlYlZpZXcq
IG1fd2ViVmlldzsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL3F0L0NodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYVByb3h5UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL3F0L0No
dW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5UXQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHlRdC5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHkuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdB
cmVhTWVzc2FnZUtpbmRzLmgiCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VLaW5k
cy5oIgorI2luY2x1ZGUgIlVwZGF0ZUNodW5rLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisj
aW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAicXdrZ3JhcGhpY3N3aWRnZXQuaCIK
KyNpbmNsdWRlIDxRUGFpbnRlcj4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitXZWJQYWdlUHJveHkqIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVBy
b3h5OjpwYWdlKCkKK3sKKyAgICByZXR1cm4gdG9XSyhtX3dlYlZpZXctPnBhZ2UoKS0+cGFnZVJl
ZigpKTsKK30KKwordm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6ZW5zdXJlQmFj
a2luZ1N0b3JlKCkKK3sKKyAgICBpZiAoIW1fYmFja2luZ1N0b3JlSW1hZ2UuaXNOdWxsKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fYmFja2luZ1N0b3JlSW1hZ2UgPSBRSW1hZ2UobV92aWV3
U2l6ZS53aWR0aCgpLCBtX3ZpZXdTaXplLmhlaWdodCgpLCBRSW1hZ2U6OkZvcm1hdF9SR0IzMik7
Cit9CisKK3ZvaWQgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OmludmFsaWRhdGVCYWNr
aW5nU3RvcmUoKQoreworICAgIG1fYmFja2luZ1N0b3JlSW1hZ2UgPSBRSW1hZ2UoKTsKK30KKwor
dm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6cGxhdGZvcm1QYWludChjb25zdCBJ
bnRSZWN0JiByZWN0LCBRUGFpbnRlciogcGFpbnRlcikKK3sKKyAgICBpZiAobV9iYWNraW5nU3Rv
cmVJbWFnZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFpbnRlci0+ZHJhd0lt
YWdlKFFQb2ludCgwLDApLCBtX2JhY2tpbmdTdG9yZUltYWdlKTsKK30KKwordm9pZCBDaHVua2Vk
VXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6ZHJhd1VwZGF0ZUNodW5rSW50b0JhY2tpbmdTdG9yZShV
cGRhdGVDaHVuayogdXBkYXRlQ2h1bmspCit7CisgICAgZW5zdXJlQmFja2luZ1N0b3JlKCk7CisK
KyAgICBRSW1hZ2UgaW1hZ2UodXBkYXRlQ2h1bmstPmNyZWF0ZUltYWdlKCkpOworICAgIGNvbnN0
IEludFJlY3QmIHVwZGF0ZUNodW5rUmVjdCA9IHVwZGF0ZUNodW5rLT5yZWN0KCk7CisKKyAgICBR
UGFpbnRlciBwYWludGVyKCZtX2JhY2tpbmdTdG9yZUltYWdlKTsKKyAgICBwYWludGVyLmRyYXdJ
bWFnZSh1cGRhdGVDaHVua1JlY3QudG9wTGVmdCgpLCBpbWFnZSk7CisKKyAgICBtX3dlYlZpZXct
PnVwZGF0ZShRUmVjdCh1cGRhdGVDaHVua1JlY3QpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9DaHVua2VkVXBkYXRlRHJh
d2luZ0FyZWFRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
cXQvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUXQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUXQuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgIkNodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5oIgorCisjaW5jbHVkZSAiVXBkYXRlQ2h1
bmsuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8UUltYWdlPgorI2luY2x1ZGUg
PFFQYWludGVyPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworICAgIHZvaWQgQ2h1
bmtlZFVwZGF0ZURyYXdpbmdBcmVhOjpwYWludEludG9VcGRhdGVDaHVuayhVcGRhdGVDaHVuayog
dXBkYXRlQ2h1bmspCisgICAgeworICAgICAgICBRSW1hZ2UgaW1hZ2UodXBkYXRlQ2h1bmstPmNy
ZWF0ZUltYWdlKCkpOworICAgICAgICBRUGFpbnRlciBwYWludGVyKCZpbWFnZSk7CisgICAgICAg
IC8vIE5vdyBwYWludCBpbnRvIHRoZSBiYWNraW5nIHN0b3JlLgorICAgICAgICBHcmFwaGljc0Nv
bnRleHQgZ3JhcGhpY3NDb250ZXh0KCZwYWludGVyKTsKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0
LnRyYW5zbGF0ZSgtdXBkYXRlQ2h1bmstPnJlY3QoKS54KCksIC11cGRhdGVDaHVuay0+cmVjdCgp
LnkoKSk7CisKKyAgICAgICAgbV93ZWJQYWdlLT5kcmF3UmVjdChncmFwaGljc0NvbnRleHQsIHVw
ZGF0ZUNodW5rLT5yZWN0KCkpOworICAgIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60516</attachid>
            <date>2010-07-05 05:15:09 -0700</date>
            <delta_ts>2010-07-05 06:11:07 -0700</delta_ts>
            <desc>ChunkedUpdateDrawingArea + Proxy (r62481 + 62483)</desc>
            <filename>qtwebkit2-chunkedupdatedrawingareaproxy-3.patch</filename>
            <type>text/plain</type>
            <size>7655</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjQ4MCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDctMDUgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtp
LmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtR
dF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMworICAgICAgICAKKyAgICAgICAgSW1wbGVt
ZW50IENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYSArIFByb3h5IGZvciBRdC4gTm90IGJ1aWx0IHll
dC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9xdDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL3F0
L0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5UXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnBhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6ZW5zdXJlQmFja2luZ1N0b3JlKToK
KyAgICAgICAgKFdlYktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OmludmFsaWRh
dGVCYWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0Fy
ZWFQcm94eTo6cGxhdGZvcm1QYWludCk6CisgICAgICAgIChXZWJLaXQ6OkNodW5rZWRVcGRhdGVE
cmF3aW5nQXJlYVByb3h5OjpkcmF3VXBkYXRlQ2h1bmtJbnRvQmFja2luZ1N0b3JlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvcXQ6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9xdC9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFRdC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OnBhaW50SW50b1VwZGF0ZUNodW5r
KToKKwogMjAxMC0wNy0wNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBXZWJLaXQyL1VJUHJv
Y2Vzcy9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmgJKHJldmlzaW9uIDYy
NDgwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHku
aAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOSBAQAogI2Vsc2UKIGNsYXNzIFdLVmlldzsK
ICNlbmRpZgorI2VsaWYgUExBVEZPUk0oUVQpCisjaW5jbHVkZSA8UUltYWdlPgorY2xhc3MgUUdy
YXBoaWNzV0tWaWV3OwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDgsNiArNTEs
OCBAQCB0eXBlZGVmIFdLVmlldyBQbGF0Zm9ybVdlYlZpZXc7CiAjZWxpZiBQTEFURk9STShXSU4p
CiBjbGFzcyBXZWJWaWV3OwogdHlwZWRlZiBXZWJWaWV3IFBsYXRmb3JtV2ViVmlldzsKKyNlbGlm
IFBMQVRGT1JNKFFUKQordHlwZWRlZiBRR3JhcGhpY3NXS1ZpZXcgUGxhdGZvcm1XZWJWaWV3Owog
I2VuZGlmCiAKIGNsYXNzIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5IDogcHVibGljIERy
YXdpbmdBcmVhUHJveHkgewpAQCAtOTUsNiArMTAwLDggQEAgcHJpdmF0ZToKICAgICAvLyBCYWNr
aW5nU3RvcmUKICAgICBPd25QdHI8SERDPiBtX2JhY2tpbmdTdG9yZURDOwogICAgIE93blB0cjxI
QklUTUFQPiBtX2JhY2tpbmdTdG9yZUJpdG1hcDsKKyNlbGlmIFBMQVRGT1JNKFFUKQorICAgIFFJ
bWFnZSBtX2JhY2tpbmdTdG9yZUltYWdlOwogI2VuZGlmCiAKICAgICBQbGF0Zm9ybVdlYlZpZXcq
IG1fd2ViVmlldzsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL3F0L0NodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYVByb3h5UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL3F0L0No
dW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5UXQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHlRdC5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHkuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdB
cmVhTWVzc2FnZUtpbmRzLmgiCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VLaW5k
cy5oIgorI2luY2x1ZGUgIlVwZGF0ZUNodW5rLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisj
aW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAicXdrZ3JhcGhpY3N3aWRnZXQuaCIK
KyNpbmNsdWRlIDxRUGFpbnRlcj4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitXZWJQYWdlUHJveHkqIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVBy
b3h5OjpwYWdlKCkKK3sKKyAgICByZXR1cm4gdG9XSyhtX3dlYlZpZXctPnBhZ2UoKS0+cGFnZVJl
ZigpKTsKK30KKwordm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6ZW5zdXJlQmFj
a2luZ1N0b3JlKCkKK3sKKyAgICBpZiAoIW1fYmFja2luZ1N0b3JlSW1hZ2UuaXNOdWxsKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fYmFja2luZ1N0b3JlSW1hZ2UgPSBRSW1hZ2UobV92aWV3
U2l6ZS53aWR0aCgpLCBtX3ZpZXdTaXplLmhlaWdodCgpLCBRSW1hZ2U6OkZvcm1hdF9SR0IzMik7
Cit9CisKK3ZvaWQgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OmludmFsaWRhdGVCYWNr
aW5nU3RvcmUoKQoreworICAgIG1fYmFja2luZ1N0b3JlSW1hZ2UgPSBRSW1hZ2UoKTsKK30KKwor
dm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6cGxhdGZvcm1QYWludChjb25zdCBJ
bnRSZWN0JiByZWN0LCBRUGFpbnRlciogcGFpbnRlcikKK3sKKyAgICBpZiAobV9iYWNraW5nU3Rv
cmVJbWFnZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFpbnRlci0+ZHJhd0lt
YWdlKFFQb2ludCgwLCAwKSwgbV9iYWNraW5nU3RvcmVJbWFnZSk7Cit9CisKK3ZvaWQgQ2h1bmtl
ZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OmRyYXdVcGRhdGVDaHVua0ludG9CYWNraW5nU3RvcmUo
VXBkYXRlQ2h1bmsqIHVwZGF0ZUNodW5rKQoreworICAgIGVuc3VyZUJhY2tpbmdTdG9yZSgpOwor
CisgICAgUUltYWdlIGltYWdlKHVwZGF0ZUNodW5rLT5jcmVhdGVJbWFnZSgpKTsKKyAgICBjb25z
dCBJbnRSZWN0JiB1cGRhdGVDaHVua1JlY3QgPSB1cGRhdGVDaHVuay0+cmVjdCgpOworCisgICAg
UVBhaW50ZXIgcGFpbnRlcigmbV9iYWNraW5nU3RvcmVJbWFnZSk7CisgICAgcGFpbnRlci5kcmF3
SW1hZ2UodXBkYXRlQ2h1bmtSZWN0LnRvcExlZnQoKSwgaW1hZ2UpOworCisgICAgbV93ZWJWaWV3
LT51cGRhdGUoUVJlY3QodXBkYXRlQ2h1bmtSZWN0KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvQ2h1bmtlZFVwZGF0ZURy
YXdpbmdBcmVhUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L3F0L0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVF0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVF0LmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuaCIKKworI2luY2x1ZGUgIlVwZGF0ZUNo
dW5rLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFFJbWFnZT4KKyNpbmNsdWRl
IDxRUGFpbnRlcj4KKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgQ2h1bmtl
ZFVwZGF0ZURyYXdpbmdBcmVhOjpwYWludEludG9VcGRhdGVDaHVuayhVcGRhdGVDaHVuayogdXBk
YXRlQ2h1bmspCit7CisgICAgUUltYWdlIGltYWdlKHVwZGF0ZUNodW5rLT5jcmVhdGVJbWFnZSgp
KTsKKyAgICBRUGFpbnRlciBwYWludGVyKCZpbWFnZSk7CisgICAgLy8gTm93IHBhaW50IGludG8g
dGhlIGJhY2tpbmcgc3RvcmUuCisgICAgR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dCgm
cGFpbnRlcik7CisgICAgZ3JhcGhpY3NDb250ZXh0LnRyYW5zbGF0ZSgtdXBkYXRlQ2h1bmstPnJl
Y3QoKS54KCksIC11cGRhdGVDaHVuay0+cmVjdCgpLnkoKSk7CisKKyAgICBtX3dlYlBhZ2UtPmRy
YXdSZWN0KGdyYXBoaWNzQ29udGV4dCwgdXBkYXRlQ2h1bmstPnJlY3QoKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60520</attachid>
            <date>2010-07-05 06:09:14 -0700</date>
            <delta_ts>2010-07-06 03:18:10 -0700</delta_ts>
            <desc>Qt process launcher</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>6378</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBlMzRiMmE1MWUwNmJiZGM4Njk3ZjIwNzkwN2I3YWE2YTZiOWNjNmFlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogTW9uLCA1IEp1bCAyMDEwIDEwOjA4OjQ2
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgdGhlIFF0IHByb2Nlc3MgbGF1bmNoZXIuCgoqIFVJ
UHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6IEFkZGVkLgooV2ViS2l0
OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgooV2ViS2l0OjpQcm9jZXNzTGF1bmNo
ZXI6OnRlcm1pbmF0ZVByb2Nlc3MpOgooV2ViS2l0Ojp3ZWJUaHJlYWRCb2R5KToKKFdlYktpdDo6
UHJvY2Vzc0xhdW5jaGVyOjpjcmVhdGVXZWJUaHJlYWQpOgood2ViUHJvY2Vzc01haW4pOgotLS0K
IFdlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NiArKwogLi4uL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAgICAg
fCAgMTUyICsrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE2OCBpbnNlcnRp
b25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAoKZGlmZiAtLWdpdCBhL1dlYktp
dDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzg5YTdjNC4uMGM0ZDIxMyAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAxMC0wNy0wNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxr
ZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDIzMworCisgICAgICAgIEFkZCB0aGUgUXQgcHJvY2VzcyBsYXVuY2hlci4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0Ojp3ZWJUaHJlYWRCb2R5KToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpj
cmVhdGVXZWJUaHJlYWQpOgorICAgICAgICAod2ViUHJvY2Vzc01haW4pOgorCiAyMDEwLTA3LTAx
ICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXZlbiBt
b3JlIFdpbmRvd3MgYnVpbGQgZml4aW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjQ4NjZhNjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAKQEAgLTAsMCArMSwxNTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisKKyNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CisjaW5jbHVkZSA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCisjaWYg
VVNFKE1FRUdPVE9VQ0gpCisjaW5jbHVkZSA8bWVlZ290b3VjaC9NQ29tcG9uZW50RGF0YT4KKyNl
bmRpZgorCisjaWZkZWYgUV9PU19VTklYCisjaW5jbHVkZSA8c2lnbmFsLmg+CisjZW5kaWYKKwor
I2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRRGVidWc+CisjaW5jbHVkZSA8UVBy
b2Nlc3M+CisKKyNpbmNsdWRlIDxRdENvcmUvcWdsb2JhbC5oPgorCisjaW5jbHVkZSA8c3lzL3Jl
c291cmNlLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpZiAhZGVmaW5lZChRV0VCS0lUX0VY
UE9SVCkKKyMgIGlmIGRlZmluZWQoUVRfU0hBUkVEKQorIyAgICBkZWZpbmUgUVdFQktJVF9FWFBP
UlQgUV9ERUNMX0VYUE9SVAorIyAgZWxzZQorIyAgICBkZWZpbmUgUVdFQktJVF9FWFBPUlQKKyMg
IGVuZGlmCisjZW5kaWYKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCit7CisgICAg
c3JhbmRvbSh0aW1lKDApKTsKKyAgICBRU3RyaW5nIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gUVN0
cmluZzo6bnVtYmVyKHJhbmRvbSgpKTsKKworICAgIFFTdHJpbmcgcHJvZ3JhbSgiUXRXZWJQcm9j
ZXNzICIgKyBjb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBRUHJvY2Vzcyogd2ViUHJvY2Vz
cyA9IG5ldyBRUHJvY2VzczsKKyAgICB3ZWJQcm9jZXNzLT5zdGFydChwcm9ncmFtKTsKKworICAg
IGlmICghd2ViUHJvY2Vzcy0+d2FpdEZvclN0YXJ0ZWQoKSkgeworICAgICAgICBxRGVidWcoKSA8
PCAiRmFpbGVkIHRvIHN0YXJ0IiA8PCBwcm9ncmFtOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9CisKKyAgICBQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVu
dGlmaWVyID0gd2ViUHJvY2Vzcy0+cGlkKCk7CisgICAgc2V0cHJpb3JpdHkoUFJJT19QUk9DRVNT
LCBwcm9jZXNzSWRlbnRpZmllciwgMTApOworCisgICAgcURlYnVnKCkgPDwgcHJvZ3JhbSA8PCAi
bmljZSIgPDwgZ2V0cHJpb3JpdHkoUFJJT19QUk9DRVNTLCBwcm9jZXNzSWRlbnRpZmllcik7CisK
KyAgICAvLyBXZSd2ZSBmaW5pc2hlZCBsYXVuY2hpbmcgdGhlIHByb2Nlc3MsIG1lc3NhZ2UgYmFj
ayB0byB0aGUgcnVuIGxvb3AuCisgICAgUnVuTG9vcDo6bWFpbigpLT5zY2hlZHVsZVdvcmsoV29y
a0l0ZW06OmNyZWF0ZSh0aGlzLCAmUHJvY2Vzc0xhdW5jaGVyOjpkaWRGaW5pc2hMYXVuY2hpbmdQ
cm9jZXNzLCBwcm9jZXNzSWRlbnRpZmllciwgY29ubmVjdGlvbklkZW50aWZpZXIpKTsKK30KKwor
dm9pZCBQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVByb2Nlc3MoKQoreworICAgIGlmICghbV9w
cm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisjaWZkZWYgUV9PU19VTklYCisg
ICAga2lsbChtX3Byb2Nlc3NJZGVudGlmaWVyLCBTSUdLSUxMKTsKKyNlbmRpZgorfQorCitzdGF0
aWMgdm9pZCogd2ViVGhyZWFkQm9keSh2b2lkKiAvKiBjb250ZXh0ICovKQoreworICAgIC8vIElu
aXRpYWxpemF0aW9uCisgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisgICAgV1RGOjpp
bml0aWFsaXplTWFpblRocmVhZCgpOworCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5pdGlh
bGl6ZSgiZm9vIiwgUnVuTG9vcDo6Y3VycmVudCgpKTsKKyAgICBSdW5Mb29wOjpydW4oKTsKKwor
ICAgIHJldHVybiAwOworfQorCitDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIFByb2Nl
c3NMYXVuY2hlcjo6Y3JlYXRlV2ViVGhyZWFkKCkKK3sKKyAgICBzcmFuZG9tKHRpbWUoMCkpOwor
ICAgIGludCBjb25uZWN0aW9uSWRlbnRpZmllciA9IHJhbmRvbSgpOworCisgICAgaWYgKCFjcmVh
dGVUaHJlYWQod2ViVGhyZWFkQm9keSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29ubmVjdGlv
bklkZW50aWZpZXIpLCAiV2ViS2l0MjogV2ViVGhyZWFkIikpIHsKKyAgICAgICAgcVdhcm5pbmco
KSA8PCAiZmFpbGVkIHN0YXJ0aW5nIHRocmVhZCI7CisgICAgICAgIHJldHVybiAwOworICAgIH0K
KworICAgIFFTdHJpbmcgc2VydmVySWRlbnRpZmllciA9IFFTdHJpbmc6Om51bWJlcihjb25uZWN0
aW9uSWRlbnRpZmllcik7CisgICAgcmV0dXJuIHNlcnZlcklkZW50aWZpZXI7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCitRV0VCS0lUX0VYUE9SVCBpbnQgd2ViUHJvY2Vzc01haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIFFBcHBsaWNhdGlvbiogYXBwID0gbmV3IFFBcHBs
aWNhdGlvbihhcmdjLCBhcmd2KTsKKworI2lmIFVTRShNRUVHT1RPVUNIKQorICAgIG5ldyBNQ29t
cG9uZW50RGF0YShhcmdjLCBhcmd2KTsKKyNlbmRpZgorCisgICAgc3JhbmRvbSh0aW1lKDApKTsK
KworICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOworICAgIFdURjo6aW5pdGlhbGl6ZU1h
aW5UaHJlYWQoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKworICAg
IC8vIENyZWF0ZSB0aGUgY29ubmVjdGlvbi4KKyAgICBRU3RyaW5nIGlkZW50aWZpZXIoYXBwLT5h
cmd1bWVudHMoKS5zaXplKCkgPiAxID8gYXBwLT5hcmd1bWVudHMoKS5hdCgxKSA6ICIiKTsKKyAg
ICBXZWJLaXQ6OldlYlByb2Nlc3M6OnNoYXJlZCgpLmluaXRpYWxpemUoaWRlbnRpZmllciwgUnVu
TG9vcDo6bWFpbigpKTsKKworICAgIFJ1bkxvb3A6OnJ1bigpOworCisgICAgLy8gRklYTUU6IERv
IG1vcmUgY2xlYW51cCBoZXJlLgorCisgICAgcmV0dXJuIDA7Cit9Ci0tIAoxLjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60521</attachid>
            <date>2010-07-05 06:21:00 -0700</date>
            <delta_ts>2010-07-05 06:41:52 -0700</delta_ts>
            <desc>Qt process launcher for landing</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>6436</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBkM2IxMTk4ZjI5ZjNmODEyMzJjN2U3NzY1NDgyZWJhYmFlODIwNzhkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogTW9uLCA1IEp1bCAyMDEwIDEwOjA4OjQ2
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpBZGQgdGhlIFF0IHByb2Nlc3MgbGF1bmNoZXIuCgoqIFVJ
UHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6IEFkZGVkLgooV2ViS2l0
OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgooV2ViS2l0OjpQcm9jZXNzTGF1bmNo
ZXI6OnRlcm1pbmF0ZVByb2Nlc3MpOgooV2ViS2l0Ojp3ZWJUaHJlYWRCb2R5KToKKFdlYktpdDo6
UHJvY2Vzc0xhdW5jaGVyOjpjcmVhdGVXZWJUaHJlYWQpOgood2ViUHJvY2Vzc01haW4pOgotLS0K
IFdlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NiArKwogLi4uL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAgICAg
fCAgMTU0ICsrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE3MCBpbnNlcnRp
b25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAoKZGlmZiAtLWdpdCBhL1dlYktp
dDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzg5YTdjNC4uOGQ5MTMwZSAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAxMC0wNy0wNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxr
ZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDIzMworCisgICAgICAgIEFkZCB0aGUgUXQgcHJvY2VzcyBsYXVuY2hlci4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0Ojp3ZWJUaHJlYWRCb2R5KToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpj
cmVhdGVXZWJUaHJlYWQpOgorICAgICAgICAod2ViUHJvY2Vzc01haW4pOgorCiAyMDEwLTA3LTAx
ICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXZlbiBt
b3JlIFdpbmRvd3MgYnVpbGQgZml4aW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjIzYWYxZjAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAKQEAgLTAsMCArMSwxNTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisKKyNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CisjaW5jbHVkZSA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCisjaWYg
VVNFKE1FRUdPVE9VQ0gpCisjaW5jbHVkZSA8bWVlZ290b3VjaC9NQ29tcG9uZW50RGF0YT4KKyNl
bmRpZgorCisjaWZkZWYgUV9PU19VTklYCisjaW5jbHVkZSA8c2lnbmFsLmg+CisjZW5kaWYKKwor
I2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRRGVidWc+CisjaW5jbHVkZSA8UVBy
b2Nlc3M+CisKKyNpbmNsdWRlIDxRdENvcmUvcWdsb2JhbC5oPgorCisjaW5jbHVkZSA8c3lzL3Jl
c291cmNlLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpZiAhZGVmaW5lZChRV0VCS0lUX0VY
UE9SVCkKKyMgIGlmIGRlZmluZWQoUVRfU0hBUkVEKQorIyAgICBkZWZpbmUgUVdFQktJVF9FWFBP
UlQgUV9ERUNMX0VYUE9SVAorIyAgZWxzZQorIyAgICBkZWZpbmUgUVdFQktJVF9FWFBPUlQKKyMg
IGVuZGlmCisjZW5kaWYKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCit7CisgICAg
c3JhbmRvbSh0aW1lKDApKTsKKyAgICBRU3RyaW5nIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gUVN0
cmluZzo6bnVtYmVyKHJhbmRvbSgpKTsKKworICAgIFFTdHJpbmcgcHJvZ3JhbSgiUXRXZWJQcm9j
ZXNzICIgKyBjb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBRUHJvY2Vzcyogd2ViUHJvY2Vz
cyA9IG5ldyBRUHJvY2VzczsKKyAgICB3ZWJQcm9jZXNzLT5zdGFydChwcm9ncmFtKTsKKworICAg
IGlmICghd2ViUHJvY2Vzcy0+d2FpdEZvclN0YXJ0ZWQoKSkgeworICAgICAgICBxRGVidWcoKSA8
PCAiRmFpbGVkIHRvIHN0YXJ0IiA8PCBwcm9ncmFtOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9CisKKyAgICBQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVu
dGlmaWVyID0gd2ViUHJvY2Vzcy0+cGlkKCk7CisgICAgc2V0cHJpb3JpdHkoUFJJT19QUk9DRVNT
LCBwcm9jZXNzSWRlbnRpZmllciwgMTApOworCisgICAgcURlYnVnKCkgPDwgcHJvZ3JhbSA8PCAi
bmljZSIgPDwgZ2V0cHJpb3JpdHkoUFJJT19QUk9DRVNTLCBwcm9jZXNzSWRlbnRpZmllcik7CisK
KyAgICAvLyBXZSd2ZSBmaW5pc2hlZCBsYXVuY2hpbmcgdGhlIHByb2Nlc3MsIG1lc3NhZ2UgYmFj
ayB0byB0aGUgcnVuIGxvb3AuCisgICAgUnVuTG9vcDo6bWFpbigpLT5zY2hlZHVsZVdvcmsoV29y
a0l0ZW06OmNyZWF0ZSh0aGlzLCAmUHJvY2Vzc0xhdW5jaGVyOjpkaWRGaW5pc2hMYXVuY2hpbmdQ
cm9jZXNzLCBwcm9jZXNzSWRlbnRpZmllciwgY29ubmVjdGlvbklkZW50aWZpZXIpKTsKK30KKwor
dm9pZCBQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVByb2Nlc3MoKQoreworICAgIGlmICghbV9w
cm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisjaWZkZWYgUV9PU19VTklYCisg
ICAga2lsbChtX3Byb2Nlc3NJZGVudGlmaWVyLCBTSUdLSUxMKTsKKyNlbmRpZgorfQorCitzdGF0
aWMgdm9pZCogd2ViVGhyZWFkQm9keSh2b2lkKiAvKiBjb250ZXh0ICovKQoreworICAgIC8vIElu
aXRpYWxpemF0aW9uCisgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisgICAgV1RGOjpp
bml0aWFsaXplTWFpblRocmVhZCgpOworCisgICAgLy8gRklYTUU6IFdlIGRvIG5vdCBzdXBwb3J0
IHRocmVhZGVkIG1vZGUgZm9yIG5vdy4KKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluaXRp
YWxpemUoImZvbyIsIFJ1bkxvb3A6OmN1cnJlbnQoKSk7CisgICAgUnVuTG9vcDo6cnVuKCk7CisK
KyAgICByZXR1cm4gMDsKK30KKworQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBQcm9j
ZXNzTGF1bmNoZXI6OmNyZWF0ZVdlYlRocmVhZCgpCit7CisgICAgc3JhbmRvbSh0aW1lKDApKTsK
KyAgICBpbnQgY29ubmVjdGlvbklkZW50aWZpZXIgPSByYW5kb20oKTsKKworICAgIGlmICghY3Jl
YXRlVGhyZWFkKHdlYlRocmVhZEJvZHksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbm5lY3Rp
b25JZGVudGlmaWVyKSwgIldlYktpdDI6IFdlYlRocmVhZCIpKSB7CisgICAgICAgIHFXYXJuaW5n
KCkgPDwgImZhaWxlZCBzdGFydGluZyB0aHJlYWQiOworICAgICAgICByZXR1cm4gMDsKKyAgICB9
CisKKyAgICBRU3RyaW5nIHNlcnZlcklkZW50aWZpZXIgPSBRU3RyaW5nOjpudW1iZXIoY29ubmVj
dGlvbklkZW50aWZpZXIpOworICAgIHJldHVybiBzZXJ2ZXJJZGVudGlmaWVyOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworUVdFQktJVF9FWFBPUlQgaW50IHdlYlByb2Nlc3NNYWluKGlu
dCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBRQXBwbGljYXRpb24qIGFwcCA9IG5ldyBRQXBw
bGljYXRpb24oYXJnYywgYXJndik7CisKKyNpZiBVU0UoTUVFR09UT1VDSCkKKyAgICBuZXcgTUNv
bXBvbmVudERhdGEoYXJnYywgYXJndik7CisjZW5kaWYKKworICAgIHNyYW5kb20odGltZSgwKSk7
CisKKyAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKKyAgICBXVEY6OmluaXRpYWxpemVN
YWluVGhyZWFkKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisKKyAg
ICAvLyBDcmVhdGUgdGhlIGNvbm5lY3Rpb24uCisgICAgUVN0cmluZyBpZGVudGlmaWVyKGFwcC0+
YXJndW1lbnRzKCkuc2l6ZSgpID4gMSA/IGFwcC0+YXJndW1lbnRzKCkuYXQoMSkgOiAiIik7Cisg
ICAgV2ViS2l0OjpXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbml0aWFsaXplKGlkZW50aWZpZXIsIFJ1
bkxvb3A6Om1haW4oKSk7CisKKyAgICBSdW5Mb29wOjpydW4oKTsKKworICAgIC8vIEZJWE1FOiBE
byBtb3JlIGNsZWFudXAgaGVyZS4KKworICAgIHJldHVybiAwOworfQotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60523</attachid>
            <date>2010-07-05 06:32:52 -0700</date>
            <delta_ts>2010-07-05 06:35:01 -0700</delta_ts>
            <desc>Qt C API integration</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>6436</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBkM2IxMTk4ZjI5ZjNmODEyMzJjN2U3NzY1NDgyZWJhYmFlODIwNzhkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogTW9uLCA1IEp1bCAyMDEwIDEwOjA4OjQ2
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpBZGQgdGhlIFF0IHByb2Nlc3MgbGF1bmNoZXIuCgoqIFVJ
UHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6IEFkZGVkLgooV2ViS2l0
OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgooV2ViS2l0OjpQcm9jZXNzTGF1bmNo
ZXI6OnRlcm1pbmF0ZVByb2Nlc3MpOgooV2ViS2l0Ojp3ZWJUaHJlYWRCb2R5KToKKFdlYktpdDo6
UHJvY2Vzc0xhdW5jaGVyOjpjcmVhdGVXZWJUaHJlYWQpOgood2ViUHJvY2Vzc01haW4pOgotLS0K
IFdlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NiArKwogLi4uL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAgICAg
fCAgMTU0ICsrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE3MCBpbnNlcnRp
b25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAoKZGlmZiAtLWdpdCBhL1dlYktp
dDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzg5YTdjNC4uOGQ5MTMwZSAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAxMC0wNy0wNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxr
ZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDIzMworCisgICAgICAgIEFkZCB0aGUgUXQgcHJvY2VzcyBsYXVuY2hlci4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0Ojp3ZWJUaHJlYWRCb2R5KToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpj
cmVhdGVXZWJUaHJlYWQpOgorICAgICAgICAod2ViUHJvY2Vzc01haW4pOgorCiAyMDEwLTA3LTAx
ICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXZlbiBt
b3JlIFdpbmRvd3MgYnVpbGQgZml4aW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjIzYWYxZjAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAKQEAgLTAsMCArMSwxNTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisKKyNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CisjaW5jbHVkZSA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCisjaWYg
VVNFKE1FRUdPVE9VQ0gpCisjaW5jbHVkZSA8bWVlZ290b3VjaC9NQ29tcG9uZW50RGF0YT4KKyNl
bmRpZgorCisjaWZkZWYgUV9PU19VTklYCisjaW5jbHVkZSA8c2lnbmFsLmg+CisjZW5kaWYKKwor
I2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRRGVidWc+CisjaW5jbHVkZSA8UVBy
b2Nlc3M+CisKKyNpbmNsdWRlIDxRdENvcmUvcWdsb2JhbC5oPgorCisjaW5jbHVkZSA8c3lzL3Jl
c291cmNlLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpZiAhZGVmaW5lZChRV0VCS0lUX0VY
UE9SVCkKKyMgIGlmIGRlZmluZWQoUVRfU0hBUkVEKQorIyAgICBkZWZpbmUgUVdFQktJVF9FWFBP
UlQgUV9ERUNMX0VYUE9SVAorIyAgZWxzZQorIyAgICBkZWZpbmUgUVdFQktJVF9FWFBPUlQKKyMg
IGVuZGlmCisjZW5kaWYKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCit7CisgICAg
c3JhbmRvbSh0aW1lKDApKTsKKyAgICBRU3RyaW5nIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gUVN0
cmluZzo6bnVtYmVyKHJhbmRvbSgpKTsKKworICAgIFFTdHJpbmcgcHJvZ3JhbSgiUXRXZWJQcm9j
ZXNzICIgKyBjb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBRUHJvY2Vzcyogd2ViUHJvY2Vz
cyA9IG5ldyBRUHJvY2VzczsKKyAgICB3ZWJQcm9jZXNzLT5zdGFydChwcm9ncmFtKTsKKworICAg
IGlmICghd2ViUHJvY2Vzcy0+d2FpdEZvclN0YXJ0ZWQoKSkgeworICAgICAgICBxRGVidWcoKSA8
PCAiRmFpbGVkIHRvIHN0YXJ0IiA8PCBwcm9ncmFtOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9CisKKyAgICBQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVu
dGlmaWVyID0gd2ViUHJvY2Vzcy0+cGlkKCk7CisgICAgc2V0cHJpb3JpdHkoUFJJT19QUk9DRVNT
LCBwcm9jZXNzSWRlbnRpZmllciwgMTApOworCisgICAgcURlYnVnKCkgPDwgcHJvZ3JhbSA8PCAi
bmljZSIgPDwgZ2V0cHJpb3JpdHkoUFJJT19QUk9DRVNTLCBwcm9jZXNzSWRlbnRpZmllcik7CisK
KyAgICAvLyBXZSd2ZSBmaW5pc2hlZCBsYXVuY2hpbmcgdGhlIHByb2Nlc3MsIG1lc3NhZ2UgYmFj
ayB0byB0aGUgcnVuIGxvb3AuCisgICAgUnVuTG9vcDo6bWFpbigpLT5zY2hlZHVsZVdvcmsoV29y
a0l0ZW06OmNyZWF0ZSh0aGlzLCAmUHJvY2Vzc0xhdW5jaGVyOjpkaWRGaW5pc2hMYXVuY2hpbmdQ
cm9jZXNzLCBwcm9jZXNzSWRlbnRpZmllciwgY29ubmVjdGlvbklkZW50aWZpZXIpKTsKK30KKwor
dm9pZCBQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVByb2Nlc3MoKQoreworICAgIGlmICghbV9w
cm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisjaWZkZWYgUV9PU19VTklYCisg
ICAga2lsbChtX3Byb2Nlc3NJZGVudGlmaWVyLCBTSUdLSUxMKTsKKyNlbmRpZgorfQorCitzdGF0
aWMgdm9pZCogd2ViVGhyZWFkQm9keSh2b2lkKiAvKiBjb250ZXh0ICovKQoreworICAgIC8vIElu
aXRpYWxpemF0aW9uCisgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisgICAgV1RGOjpp
bml0aWFsaXplTWFpblRocmVhZCgpOworCisgICAgLy8gRklYTUU6IFdlIGRvIG5vdCBzdXBwb3J0
IHRocmVhZGVkIG1vZGUgZm9yIG5vdy4KKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluaXRp
YWxpemUoImZvbyIsIFJ1bkxvb3A6OmN1cnJlbnQoKSk7CisgICAgUnVuTG9vcDo6cnVuKCk7CisK
KyAgICByZXR1cm4gMDsKK30KKworQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBQcm9j
ZXNzTGF1bmNoZXI6OmNyZWF0ZVdlYlRocmVhZCgpCit7CisgICAgc3JhbmRvbSh0aW1lKDApKTsK
KyAgICBpbnQgY29ubmVjdGlvbklkZW50aWZpZXIgPSByYW5kb20oKTsKKworICAgIGlmICghY3Jl
YXRlVGhyZWFkKHdlYlRocmVhZEJvZHksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbm5lY3Rp
b25JZGVudGlmaWVyKSwgIldlYktpdDI6IFdlYlRocmVhZCIpKSB7CisgICAgICAgIHFXYXJuaW5n
KCkgPDwgImZhaWxlZCBzdGFydGluZyB0aHJlYWQiOworICAgICAgICByZXR1cm4gMDsKKyAgICB9
CisKKyAgICBRU3RyaW5nIHNlcnZlcklkZW50aWZpZXIgPSBRU3RyaW5nOjpudW1iZXIoY29ubmVj
dGlvbklkZW50aWZpZXIpOworICAgIHJldHVybiBzZXJ2ZXJJZGVudGlmaWVyOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworUVdFQktJVF9FWFBPUlQgaW50IHdlYlByb2Nlc3NNYWluKGlu
dCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBRQXBwbGljYXRpb24qIGFwcCA9IG5ldyBRQXBw
bGljYXRpb24oYXJnYywgYXJndik7CisKKyNpZiBVU0UoTUVFR09UT1VDSCkKKyAgICBuZXcgTUNv
bXBvbmVudERhdGEoYXJnYywgYXJndik7CisjZW5kaWYKKworICAgIHNyYW5kb20odGltZSgwKSk7
CisKKyAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKKyAgICBXVEY6OmluaXRpYWxpemVN
YWluVGhyZWFkKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisKKyAg
ICAvLyBDcmVhdGUgdGhlIGNvbm5lY3Rpb24uCisgICAgUVN0cmluZyBpZGVudGlmaWVyKGFwcC0+
YXJndW1lbnRzKCkuc2l6ZSgpID4gMSA/IGFwcC0+YXJndW1lbnRzKCkuYXQoMSkgOiAiIik7Cisg
ICAgV2ViS2l0OjpXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbml0aWFsaXplKGlkZW50aWZpZXIsIFJ1
bkxvb3A6Om1haW4oKSk7CisKKyAgICBSdW5Mb29wOjpydW4oKTsKKworICAgIC8vIEZJWE1FOiBE
byBtb3JlIGNsZWFudXAgaGVyZS4KKworICAgIHJldHVybiAwOworfQotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60524</attachid>
            <date>2010-07-05 06:35:01 -0700</date>
            <delta_ts>2010-07-05 06:38:53 -0700</delta_ts>
            <desc>Qt C API integration</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>6436</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBkM2IxMTk4ZjI5ZjNmODEyMzJjN2U3NzY1NDgyZWJhYmFlODIwNzhkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogTW9uLCA1IEp1bCAyMDEwIDEwOjA4OjQ2
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpBZGQgdGhlIFF0IHByb2Nlc3MgbGF1bmNoZXIuCgoqIFVJ
UHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6IEFkZGVkLgooV2ViS2l0
OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgooV2ViS2l0OjpQcm9jZXNzTGF1bmNo
ZXI6OnRlcm1pbmF0ZVByb2Nlc3MpOgooV2ViS2l0Ojp3ZWJUaHJlYWRCb2R5KToKKFdlYktpdDo6
UHJvY2Vzc0xhdW5jaGVyOjpjcmVhdGVXZWJUaHJlYWQpOgood2ViUHJvY2Vzc01haW4pOgotLS0K
IFdlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NiArKwogLi4uL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAgICAg
fCAgMTU0ICsrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE3MCBpbnNlcnRp
b25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAoKZGlmZiAtLWdpdCBhL1dlYktp
dDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzg5YTdjNC4uOGQ5MTMwZSAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAxMC0wNy0wNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxr
ZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDIzMworCisgICAgICAgIEFkZCB0aGUgUXQgcHJvY2VzcyBsYXVuY2hlci4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0Ojp3ZWJUaHJlYWRCb2R5KToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpj
cmVhdGVXZWJUaHJlYWQpOgorICAgICAgICAod2ViUHJvY2Vzc01haW4pOgorCiAyMDEwLTA3LTAx
ICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXZlbiBt
b3JlIFdpbmRvd3MgYnVpbGQgZml4aW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjIzYWYxZjAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAKQEAgLTAsMCArMSwxNTQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisKKyNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CisjaW5jbHVkZSA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCisjaWYg
VVNFKE1FRUdPVE9VQ0gpCisjaW5jbHVkZSA8bWVlZ290b3VjaC9NQ29tcG9uZW50RGF0YT4KKyNl
bmRpZgorCisjaWZkZWYgUV9PU19VTklYCisjaW5jbHVkZSA8c2lnbmFsLmg+CisjZW5kaWYKKwor
I2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRRGVidWc+CisjaW5jbHVkZSA8UVBy
b2Nlc3M+CisKKyNpbmNsdWRlIDxRdENvcmUvcWdsb2JhbC5oPgorCisjaW5jbHVkZSA8c3lzL3Jl
c291cmNlLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpZiAhZGVmaW5lZChRV0VCS0lUX0VY
UE9SVCkKKyMgIGlmIGRlZmluZWQoUVRfU0hBUkVEKQorIyAgICBkZWZpbmUgUVdFQktJVF9FWFBP
UlQgUV9ERUNMX0VYUE9SVAorIyAgZWxzZQorIyAgICBkZWZpbmUgUVdFQktJVF9FWFBPUlQKKyMg
IGVuZGlmCisjZW5kaWYKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCit7CisgICAg
c3JhbmRvbSh0aW1lKDApKTsKKyAgICBRU3RyaW5nIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gUVN0
cmluZzo6bnVtYmVyKHJhbmRvbSgpKTsKKworICAgIFFTdHJpbmcgcHJvZ3JhbSgiUXRXZWJQcm9j
ZXNzICIgKyBjb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBRUHJvY2Vzcyogd2ViUHJvY2Vz
cyA9IG5ldyBRUHJvY2VzczsKKyAgICB3ZWJQcm9jZXNzLT5zdGFydChwcm9ncmFtKTsKKworICAg
IGlmICghd2ViUHJvY2Vzcy0+d2FpdEZvclN0YXJ0ZWQoKSkgeworICAgICAgICBxRGVidWcoKSA8
PCAiRmFpbGVkIHRvIHN0YXJ0IiA8PCBwcm9ncmFtOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9CisKKyAgICBQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVu
dGlmaWVyID0gd2ViUHJvY2Vzcy0+cGlkKCk7CisgICAgc2V0cHJpb3JpdHkoUFJJT19QUk9DRVNT
LCBwcm9jZXNzSWRlbnRpZmllciwgMTApOworCisgICAgcURlYnVnKCkgPDwgcHJvZ3JhbSA8PCAi
bmljZSIgPDwgZ2V0cHJpb3JpdHkoUFJJT19QUk9DRVNTLCBwcm9jZXNzSWRlbnRpZmllcik7CisK
KyAgICAvLyBXZSd2ZSBmaW5pc2hlZCBsYXVuY2hpbmcgdGhlIHByb2Nlc3MsIG1lc3NhZ2UgYmFj
ayB0byB0aGUgcnVuIGxvb3AuCisgICAgUnVuTG9vcDo6bWFpbigpLT5zY2hlZHVsZVdvcmsoV29y
a0l0ZW06OmNyZWF0ZSh0aGlzLCAmUHJvY2Vzc0xhdW5jaGVyOjpkaWRGaW5pc2hMYXVuY2hpbmdQ
cm9jZXNzLCBwcm9jZXNzSWRlbnRpZmllciwgY29ubmVjdGlvbklkZW50aWZpZXIpKTsKK30KKwor
dm9pZCBQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVByb2Nlc3MoKQoreworICAgIGlmICghbV9w
cm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisjaWZkZWYgUV9PU19VTklYCisg
ICAga2lsbChtX3Byb2Nlc3NJZGVudGlmaWVyLCBTSUdLSUxMKTsKKyNlbmRpZgorfQorCitzdGF0
aWMgdm9pZCogd2ViVGhyZWFkQm9keSh2b2lkKiAvKiBjb250ZXh0ICovKQoreworICAgIC8vIElu
aXRpYWxpemF0aW9uCisgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisgICAgV1RGOjpp
bml0aWFsaXplTWFpblRocmVhZCgpOworCisgICAgLy8gRklYTUU6IFdlIGRvIG5vdCBzdXBwb3J0
IHRocmVhZGVkIG1vZGUgZm9yIG5vdy4KKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluaXRp
YWxpemUoImZvbyIsIFJ1bkxvb3A6OmN1cnJlbnQoKSk7CisgICAgUnVuTG9vcDo6cnVuKCk7CisK
KyAgICByZXR1cm4gMDsKK30KKworQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBQcm9j
ZXNzTGF1bmNoZXI6OmNyZWF0ZVdlYlRocmVhZCgpCit7CisgICAgc3JhbmRvbSh0aW1lKDApKTsK
KyAgICBpbnQgY29ubmVjdGlvbklkZW50aWZpZXIgPSByYW5kb20oKTsKKworICAgIGlmICghY3Jl
YXRlVGhyZWFkKHdlYlRocmVhZEJvZHksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbm5lY3Rp
b25JZGVudGlmaWVyKSwgIldlYktpdDI6IFdlYlRocmVhZCIpKSB7CisgICAgICAgIHFXYXJuaW5n
KCkgPDwgImZhaWxlZCBzdGFydGluZyB0aHJlYWQiOworICAgICAgICByZXR1cm4gMDsKKyAgICB9
CisKKyAgICBRU3RyaW5nIHNlcnZlcklkZW50aWZpZXIgPSBRU3RyaW5nOjpudW1iZXIoY29ubmVj
dGlvbklkZW50aWZpZXIpOworICAgIHJldHVybiBzZXJ2ZXJJZGVudGlmaWVyOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworUVdFQktJVF9FWFBPUlQgaW50IHdlYlByb2Nlc3NNYWluKGlu
dCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBRQXBwbGljYXRpb24qIGFwcCA9IG5ldyBRQXBw
bGljYXRpb24oYXJnYywgYXJndik7CisKKyNpZiBVU0UoTUVFR09UT1VDSCkKKyAgICBuZXcgTUNv
bXBvbmVudERhdGEoYXJnYywgYXJndik7CisjZW5kaWYKKworICAgIHNyYW5kb20odGltZSgwKSk7
CisKKyAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKKyAgICBXVEY6OmluaXRpYWxpemVN
YWluVGhyZWFkKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisKKyAg
ICAvLyBDcmVhdGUgdGhlIGNvbm5lY3Rpb24uCisgICAgUVN0cmluZyBpZGVudGlmaWVyKGFwcC0+
YXJndW1lbnRzKCkuc2l6ZSgpID4gMSA/IGFwcC0+YXJndW1lbnRzKCkuYXQoMSkgOiAiIik7Cisg
ICAgV2ViS2l0OjpXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbml0aWFsaXplKGlkZW50aWZpZXIsIFJ1
bkxvb3A6Om1haW4oKSk7CisKKyAgICBSdW5Mb29wOjpydW4oKTsKKworICAgIC8vIEZJWE1FOiBE
byBtb3JlIGNsZWFudXAgaGVyZS4KKworICAgIHJldHVybiAwOworfQotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60525</attachid>
            <date>2010-07-05 06:38:53 -0700</date>
            <delta_ts>2010-07-06 03:18:17 -0700</delta_ts>
            <desc>Qt C API integration</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>8347</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA1YmJlYTM0MmE2MjJlZTI4NTBkYTM4NWUwZDI5MjJkOWY3YWI3N2ZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogTW9uLCA1IEp1bCAyMDEwIDEwOjM3OjUy
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgUXQgQyBBUEkgaW50ZWdyYXRpb24uCgoqIFVJUHJv
Y2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3BwOiBBZGRlZC4KKFdLU3RyaW5nQ3JlYXRlV2l0
aFFTdHJpbmcpOgooV0tTdHJpbmdDb3B5UVN0cmluZyk6CiogVUlQcm9jZXNzL0FQSS9jcHAvcXQv
V0tTdHJpbmdRdC5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcDog
QWRkZWQuCihXS1VSTENyZWF0ZVdpdGhRVXJsKToKKFdLVVJMQ29weVFVcmwpOgoqIFVJUHJvY2Vz
cy9BUEkvY3BwL3F0L1dLVVJMUXQuaDogQWRkZWQuCi0tLQogV2ViS2l0Mi9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTggKysrKysrKysrKysrCiBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3BwIHwgICA0MCArKysrKysrKysrKysrKysrKysr
KysrKysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdRdC5oICAgfCAg
IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAv
cXQvV0tVUkxRdC5jcHAgICAgfCAgIDQwICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmggICAgICB8ICAgMzkgKysrKysrKysr
KysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKyksIDAg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Nw
cC9xdC9XS1N0cmluZ1F0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9jcHAvcXQvV0tTdHJpbmdRdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIv
VUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tVUkxRdC5oCgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4ZDkxMzBlLi5jYzVmYjcyIDEwMDY0NAot
LS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDIzIEBACiAyMDEwLTA3LTA1ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGgu
Y2hyaXN0aWFuc2VuQG9wZW5ib3NzYS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjMzCisK
KyAgICAgICAgQWRkIFF0IEMgQVBJIGludGVncmF0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9jcHAvcXQvV0tTdHJpbmdRdC5jcHA6IEFkZGVkLgorICAgICAgICAoV0tTdHJpbmdDcmVh
dGVXaXRoUVN0cmluZyk6CisgICAgICAgIChXS1N0cmluZ0NvcHlRU3RyaW5nKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0cmluZ1F0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvY3BwL3F0L1dLVVJMUXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLVVJMQ3Jl
YXRlV2l0aFFVcmwpOgorICAgICAgICAoV0tVUkxDb3B5UVVybCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9jcHAvcXQvV0tVUkxRdC5oOiBBZGRlZC4KKworMjAxMC0wNy0wNSAgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgor
CiAgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgogCiAgICAgICAgIFtRdF0gSW5p
dGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9x
dC9XS1N0cmluZ1F0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjc2
MjNmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0
cmluZ1F0LmNwcApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUg
IldLU3RyaW5nUXQuaCIKKworI2luY2x1ZGUgPFFTdHJpbmc+CisjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybVN0cmluZy5oPgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgInd0Zi9S
ZWZQdHIuaCIKKworV0tTdHJpbmdSZWYgV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhRU3RyaW5n
IHFTdHJpbmcpCit7CisgICAgV2ViQ29yZTo6U3RyaW5nIHN0cmluZyhxU3RyaW5nKTsKKyAgICBS
ZWZQdHI8V2ViQ29yZTo6U3RyaW5nSW1wbD4gc3RyaW5nSW1wbCA9IHN0cmluZy5pbXBsKCk7Cisg
ICAgcmV0dXJuIHRvUmVmKHN0cmluZ0ltcGwucmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7Cit9CisK
K1FTdHJpbmcgV0tTdHJpbmdDb3B5UVN0cmluZyhXS1N0cmluZ1JlZiBzdHJpbmdSZWYpCit7Cisg
ICAgaWYgKCFzdHJpbmdSZWYpCisgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CisgICAgcmV0dXJu
IFFTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBRQ2hhcio+KHRvV0soc3RyaW5nUmVmKS0+
Y2hhcmFjdGVycygpKSwgdG9XSyhzdHJpbmdSZWYpLT5sZW5ndGgoKSk7Cit9CmRpZmYgLS1naXQg
YS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuaCBiL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmQwYjk3YjUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvY3BwL3F0L1dLU3RyaW5nUXQuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dy
YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8K
KworI2lmbmRlZiBXS1N0cmluZ1F0X2gKKyNkZWZpbmUgV0tTdHJpbmdRdF9oCisKKyNpbmNsdWRl
IDxRU3RyaW5nPgorI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVz
cGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLU3Ry
aW5nQ3JlYXRlV2l0aFFTdHJpbmcoUVN0cmluZyBxU3RyaW5nKTsKK1dLX0VYUE9SVCBRU3RyaW5n
IFdLU3RyaW5nQ29weVFTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nUmVmKTsKKworI2lmZGVmIF9f
Y3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLU3RyaW5nUXRfaCAqLwpkaWZmIC0t
Z2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBiL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tVUkxRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNGQ3YzQ1OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9jcHAvcXQvV0tVUkxRdC5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9n
cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICov
CisKKyNpbmNsdWRlICJXS1VSTFF0LmgiCisKKyNpbmNsdWRlIDxRU3RyaW5nPgorI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNs
dWRlICJ3dGYvUmVmUHRyLmgiCisKK1dLVVJMUmVmIFdLVVJMQ3JlYXRlV2l0aFFVcmwoUVVybCBx
VVJMKQoreworICAgIFdlYkNvcmU6OlN0cmluZyB1cmxTdHJpbmcocVVSTC50b1N0cmluZygpKTsK
KyAgICBSZWZQdHI8V2ViQ29yZTo6U3RyaW5nSW1wbD4gdXJsU3RyaW5nSW1wbCA9IHVybFN0cmlu
Zy5pbXBsKCk7CisgICAgcmV0dXJuIHRvVVJMUmVmKHVybFN0cmluZ0ltcGwucmVsZWFzZSgpLnJl
bGVhc2VSZWYoKSk7Cit9CisKK1FVcmwgV0tVUkxDb3B5UVVybChXS1VSTFJlZiB1cmxSZWYpCit7
CisgICAgaWYgKCF1cmxSZWYpCisgICAgICAgIHJldHVybiBRVXJsKCk7CisgICAgcmV0dXJuIFFV
cmwoUVN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IFFDaGFyKj4odG9XSyh1cmxSZWYpLT5j
aGFyYWN0ZXJzKCkpLCB0b1dLKHVybFJlZiktPmxlbmd0aCgpKSk7Cit9CmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLVVJMUXQuaCBiL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9jcHAvcXQvV0tVUkxRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjQ5M2Q2MDYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvY3BwL3F0
L1dLVVJMUXQuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBX
S1VSTFF0X2gKKyNkZWZpbmUgV0tVUkxRdF9oCisKKyNpbmNsdWRlIDxRVXJsPgorI2luY2x1ZGUg
PFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1VSTC5oPgorCisjaWZkZWYg
X19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1VSTFJlZiBX
S1VSTENyZWF0ZVdpdGhRVXJsKFFVcmwgcVVSTCk7CitRVXJsIFdLVVJMQ29weVFVcmwoV0tVUkxS
ZWYgVVJMUmVmKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8q
IFdLVVJMQ0ZfaCAqLwotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60526</attachid>
            <date>2010-07-05 06:52:35 -0700</date>
            <delta_ts>2010-07-05 07:07:23 -0700</delta_ts>
            <desc>Qt C API integration - for landing</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>8408</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSAzZmM4OGEzMzdhYzFmZjU2OTIwYjE5Mjc4YTBlYjliYWU1ZmUyNWNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogTW9uLCA1IEp1bCAyMDEwIDEwOjM3OjUy
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpBZGQgUXQgQyBBUEkgaW50ZWdyYXRpb24uCgoqIFVJUHJv
Y2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3BwOiBBZGRlZC4KKFdLU3RyaW5nQ3JlYXRlV2l0
aFFTdHJpbmcpOgooV0tTdHJpbmdDb3B5UVN0cmluZyk6CiogVUlQcm9jZXNzL0FQSS9jcHAvcXQv
V0tTdHJpbmdRdC5oOiBBZGRlZC4KKiBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcDog
QWRkZWQuCihXS1VSTENyZWF0ZVdpdGhRVXJsKToKKFdLVVJMQ29weVFVcmwpOgoqIFVJUHJvY2Vz
cy9BUEkvY3BwL3F0L1dLVVJMUXQuaDogQWRkZWQuCi0tLQogV2ViS2l0Mi9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTggKysrKysrKysrKysrCiBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3BwIHwgICA0MCArKysrKysrKysrKysrKysrKysr
KysrKysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdRdC5oICAgfCAg
IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysKIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAv
cXQvV0tVUkxRdC5jcHAgICAgfCAgIDQwICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmggICAgICB8ICAgMzkgKysrKysrKysr
KysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKyksIDAg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Nw
cC9xdC9XS1N0cmluZ1F0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9jcHAvcXQvV0tTdHJpbmdRdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIv
VUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tVUkxRdC5oCgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4ZDkxMzBlLi40ZDZiNzNlIDEwMDY0NAot
LS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtNSw2ICs1
LDI0IEBACiAgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwogCisgICAg
ICAgIEFkZCBRdCBDIEFQSSBpbnRlZ3JhdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Y3BwL3F0L1dLU3RyaW5nUXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLU3RyaW5nQ3JlYXRlV2l0
aFFTdHJpbmcpOgorICAgICAgICAoV0tTdHJpbmdDb3B5UVN0cmluZyk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdRdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcDogQWRkZWQuCisgICAgICAgIChXS1VSTENyZWF0ZVdp
dGhRVXJsKToKKyAgICAgICAgKFdLVVJMQ29weVFVcmwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvY3BwL3F0L1dLVVJMUXQuaDogQWRkZWQuCisKKzIwMTAtMDctMDUgIEtlbm5ldGggUm9oZGUg
Q2hyaXN0aWFuc2VuICA8a2VubmV0aC5jaHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBbUXRdIEluaXRpYWwg
V2ViS2l0MiBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAyMzMKKwogICAgICAgICBBZGQgdGhlIFF0IHByb2Nlc3MgbGF1bmNo
ZXIuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQu
Y3BwOiBBZGRlZC4KZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tT
dHJpbmdRdC5jcHAgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2ZjAwNWEKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuY3BwCkBAIC0w
LDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiV0tTdHJpbmdRdC5oIgor
CisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSA8UVN0cmluZz4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitXS1N0
cmluZ1JlZiBXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKGNvbnN0IFFTdHJpbmcmIHFTdHJpbmcp
Cit7CisgICAgV2ViQ29yZTo6U3RyaW5nIHN0cmluZyhxU3RyaW5nKTsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6U3RyaW5nSW1wbD4gc3RyaW5nSW1wbCA9IHN0cmluZy5pbXBsKCk7CisgICAgcmV0dXJu
IHRvUmVmKHN0cmluZ0ltcGwucmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7Cit9CisKK1FTdHJpbmcg
V0tTdHJpbmdDb3B5UVN0cmluZyhXS1N0cmluZ1JlZiBzdHJpbmdSZWYpCit7CisgICAgaWYgKCFz
dHJpbmdSZWYpCisgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CisgICAgcmV0dXJuIFFTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBRQ2hhcio+KHRvV0soc3RyaW5nUmVmKS0+Y2hhcmFjdGVy
cygpKSwgdG9XSyhzdHJpbmdSZWYpLT5sZW5ndGgoKSk7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3RyaW5nUXQuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9jcHAvcXQvV0tTdHJpbmdRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjAzOTdjYjQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvY3BwL3F0
L1dLU3RyaW5nUXQuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dy
YW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRl
ZiBXS1N0cmluZ1F0X2gKKyNkZWZpbmUgV0tTdHJpbmdRdF9oCisKKyNpbmNsdWRlIDxRU3RyaW5n
PgorI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0
ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLU3RyaW5nQ3JlYXRl
V2l0aFFTdHJpbmcoY29uc3QgUVN0cmluZyYgc3RyaW5nKTsKK1dLX0VYUE9SVCBRU3RyaW5nIFdL
U3RyaW5nQ29weVFTdHJpbmcoV0tTdHJpbmdSZWYgc3RyaW5nKTsKKworI2lmZGVmIF9fY3BsdXNw
bHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLU3RyaW5nUXRfaCAqLwpkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBiL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9jcHAvcXQvV0tVUkxRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uOGZiZWEyOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9j
cHAvcXQvV0tVUkxRdC5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBw
cm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNp
bmNsdWRlICJXS1VSTFF0LmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlIDxR
U3RyaW5nPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisKK1dLVVJMUmVmIFdLVVJMQ3JlYXRlV2l0aFFVcmwoY29uc3QgUVVybCYg
cVVSTCkKK3sKKyAgICBXZWJDb3JlOjpTdHJpbmcgdXJsU3RyaW5nKHFVUkwudG9TdHJpbmcoKSk7
CisgICAgUmVmUHRyPFdlYkNvcmU6OlN0cmluZ0ltcGw+IHVybFN0cmluZ0ltcGwgPSB1cmxTdHJp
bmcuaW1wbCgpOworICAgIHJldHVybiB0b1VSTFJlZih1cmxTdHJpbmdJbXBsLnJlbGVhc2UoKS5y
ZWxlYXNlUmVmKCkpOworfQorCitRVXJsIFdLVVJMQ29weVFVcmwoV0tVUkxSZWYgdXJsUmVmKQor
eworICAgIGlmICghdXJsUmVmKQorICAgICAgICByZXR1cm4gUVVybCgpOworICAgIHJldHVybiBR
VXJsKFFTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBRQ2hhcio+KHRvV0sodXJsUmVmKS0+
Y2hhcmFjdGVycygpKSwgdG9XSyh1cmxSZWYpLT5sZW5ndGgoKSkpOworfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmggYi9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvY3BwL3F0L1dLVVJMUXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yODZmYzk4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9x
dC9XS1VSTFF0LmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYg
V0tVUkxRdF9oCisjZGVmaW5lIFdLVVJMUXRfaAorCisjaW5jbHVkZSA8UVVybD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tVUkwuaD4KKworI2lmZGVm
IF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tVUkxSZWYg
V0tVUkxDcmVhdGVXaXRoUVVybChjb25zdCBRVXJsJiB1cmwpOworUVVybCBXS1VSTENvcHlRVXJs
KFdLVVJMUmVmIHVybCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRp
ZiAvKiBXS1VSTENGX2ggKi8KLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60528</attachid>
            <date>2010-07-05 07:13:06 -0700</date>
            <delta_ts>2010-07-05 09:54:59 -0700</delta_ts>
            <desc>WebErrors</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>6130</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA2MzhmNzBkZWViNDgzYmI3MDBlZDI5Y2QxMWE2NmRjM2Y0OWIzNDEyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogTW9uLCA1IEp1bCAyMDEwIDExOjEyOjA2
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgV2ViRXJyb3JzUXQKCiogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9xdC9XZWJFcnJvcnNRdC5jcHA6IEFkZGVkLgooV2ViS2l0OjopOgooV2ViS2l0
OjpjYW5jZWxsZWRFcnJvcik6CihXZWJLaXQ6OmJsb2NrZWRFcnJvcik6CihXZWJLaXQ6OmNhbm5v
dFNob3dVUkxFcnJvcik6CihXZWJLaXQ6OmludGVycnVwdEZvclBvbGljeUNoYW5nZUVycm9yKToK
KFdlYktpdDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IpOgooV2ViS2l0OjpmaWxlRG9lc05vdEV4
aXN0RXJyb3IpOgotLS0KIFdlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAxOCArKysrCiAuLi4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9X
ZWJFcnJvcnNRdC5jcHAgICB8ICAgODggKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hh
bmdlZCwgMTA2IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkVycm9yc1F0LmNwcAoK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
NGQ2YjczZS4uYjVhN2I0OCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBAQAogMjAxMC0wNy0wNSAgS2VubmV0aCBSb2hk
ZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgogCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW5pdGlh
bCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MDIzMworCisgICAgICAgIEFkZCBXZWJFcnJvcnNRdAorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJFcnJvcnNRdC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjopOgorICAgICAgICAoV2ViS2l0OjpjYW5jZWxsZWRFcnJvcik6
CisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OmNhbm5v
dFNob3dVUkxFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OmludGVycnVwdEZvclBvbGljeUNoYW5n
ZUVycm9yKToKKyAgICAgICAgKFdlYktpdDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IpOgorICAg
ICAgICAoV2ViS2l0OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOgorCisyMDEwLTA3LTA1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGguY2hyaXN0aWFuc2VuQG9wZW5ib3NzYS5v
cmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCiAKICAgICAgICAgW1F0
XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJFcnJvcnNRdC5jcHAgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRXJyb3JzUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmM2N2M0NzIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRXJyb3JzUXQuY3BwCkBAIC0wLDAgKzEsODgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCisKKyNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VSZXNwb25zZS5oPgorCisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRl
IDxRTmV0d29ya1JlcGx5PgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKKy8vIGNvcGllZCBmcm9tIFdlYktpdC9NaXNjL1dlYktpdEVycm9yc1tQcml2
YXRlXS5oCitlbnVtIHsKKyAgICBXZWJLaXRFcnJvckNhbm5vdFNob3dNSU1FVHlwZSA9ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMDAsCisgICAgV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJM
ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAxLAorICAgIFdlYktpdEVycm9y
RnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSA9ICAgICAgICAgICAgIDEwMiwKKyAg
ICBXZWJLaXRFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0ID0gMTAzLAorICAgIFdlYktpdEVy
cm9yQ2Fubm90RmluZFBsdWdJbiA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMCwK
KyAgICBXZWJLaXRFcnJvckNhbm5vdExvYWRQbHVnSW4gPSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyMDEsCisgICAgV2ViS2l0RXJyb3JKYXZhVW5hdmFpbGFibGUgPSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjAyLAorfTsKKworUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgUmVzb3VyY2VFcnJv
ciBlcnJvciA9IFJlc291cmNlRXJyb3IoIlF0TmV0d29yayIsIFFOZXR3b3JrUmVwbHk6Ok9wZXJh
dGlvbkNhbmNlbGVkRXJyb3IsIHJlcXVlc3QudXJsKCkucHJldHR5VVJMKCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRl
KCJRV2ViRnJhbWUiLCAiUmVxdWVzdCBjYW5jZWxsZWQiLCAwLCBRQ29yZUFwcGxpY2F0aW9uOjpV
bmljb2RlVVRGOCkpOworICAgIGVycm9yLnNldElzQ2FuY2VsbGF0aW9uKHRydWUpOworICAgIHJl
dHVybiBlcnJvcjsgICAgCit9CisKK1Jlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcigiV2Vi
S2l0IiwgV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCwgcmVxdWVzdC51cmwoKS5w
cmV0dHlVUkwoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJGcmFtZSIsICJSZXF1ZXN0IGJsb2NrZWQiLCAwLCBRQ29yZUFwcGxpY2F0
aW9uOjpVbmljb2RlVVRGOCkpOworfQorCitSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoIldlYktpdCIsIFdlYktpdEVycm9yQ2Fubm90U2hvd1VSTCwgcmVxdWVzdC51cmwoKS5z
dHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJGcmFtZSIsICJDYW5ub3Qgc2hvdyBVUkwiLCAwLCBRQ29yZUFwcGxpY2F0aW9u
OjpVbmljb2RlVVRGOCkpOworfQorCitSZXNvdXJjZUVycm9yIGludGVycnVwdEZvclBvbGljeUNo
YW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4g
UmVzb3VyY2VFcnJvcigiV2ViS2l0IiwgV2ViS2l0RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5
UG9saWN5Q2hhbmdlLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYkZyYW1lIiwgIkZyYW1lIGxv
YWQgaW50ZXJydXB0ZWQgYnkgcG9saWN5IGNoYW5nZSIsIDAsIFFDb3JlQXBwbGljYXRpb246OlVu
aWNvZGVVVEY4KSk7Cit9CisKK1Jlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIFJlc291cmNl
RXJyb3IoIldlYktpdCIsIFdlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlLCByZXNwb25zZS51
cmwoKS5zdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJGcmFtZSIsICJDYW5ub3Qgc2hvdyBtaW1ldHlwZSIsIDAsIFFDb3Jl
QXBwbGljYXRpb246OlVuaWNvZGVVVEY4KSk7Cit9CisKK1Jlc291cmNlRXJyb3IgZmlsZURvZXNO
b3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJl
dHVybiBSZXNvdXJjZUVycm9yKCJRdE5ldHdvcmsiLCBRTmV0d29ya1JlcGx5OjpDb250ZW50Tm90
Rm91bmRFcnJvciwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViRnJhbWUiLCAiRmlsZSBkb2Vz
IG5vdCBleGlzdCIsIDAsIFFDb3JlQXBwbGljYXRpb246OlVuaWNvZGVVVEY4KSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60531</attachid>
            <date>2010-07-05 07:35:51 -0700</date>
            <delta_ts>2010-07-05 10:50:48 -0700</delta_ts>
            <desc>Add stubs</desc>
            <filename>0001-Qt-Initial-WebKit2-implementation.patch</filename>
            <type>text/plain</type>
            <size>7040</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSBjNDE4Y2U1ZGZmZGI5ODEwZjQyMmMwMjc2MDQ2ODdlN2ZiNjBiZTk0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogTW9uLCA1IEp1bCAyMDEwIDExOjM0OjU5
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRp
b24KIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgc3R1YnMKCiogVUlQcm9jZXNzL1BsdWdpbnMvcXQv
UGx1Z2luSW5mb1N0b3JlUXQuY3BwOiBDb3BpZWQgZnJvbSBXZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL3dpbi9QbHVnaW5JbmZvU3RvcmVXaW4uY3BwLgooV2ViS2l0OjpQbHVnaW5JbmZvU3RvcmU6
OnBsdWdpbkRpcmVjdG9yaWVzKToKKFdlYktpdDo6UGx1Z2luSW5mb1N0b3JlOjpwbHVnaW5QYXRo
c0luRGlyZWN0b3J5KToKKFdlYktpdDo6UGx1Z2luSW5mb1N0b3JlOjpnZXRQbHVnaW5JbmZvKToK
KFdlYktpdDo6UGx1Z2luSW5mb1N0b3JlOjpzaG91bGRVc2VQbHVnaW4pOgoqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL3F0L0luamVjdGVkQnVuZGxlUXQuY3BwOiBBZGRlZC4KKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGU6OmxvYWQpOgotLS0KIFdlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAxOCArKysrKysKIFdlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvcXQvUGx1
Z2luSW5mb1N0b3JlUXQuY3BwIHwgICA1OCArKysrKysrKysrKysrKysrKysrKwogV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggfCAgICAyICsKIC4uLi9J
bmplY3RlZEJ1bmRsZS9xdC9JbmplY3RlZEJ1bmRsZVF0LmNwcCAgICAgICAgIHwgICA0MiArKysr
KysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlv
bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3F0L1Bs
dWdpbkluZm9TdG9yZVF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9xdC9JbmplY3RlZEJ1bmRsZVF0LmNwcAoKZGlmZiAtLWdpdCBhL1dl
YktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjVhN2I0OC4uYzAyMTYy
YSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTUsNiArNSwyNCBAQAogICAgICAgICBbUXRdIEluaXRpYWwgV2ViS2l0MiBpbXBsZW1lbnRh
dGlvbgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAy
MzMKIAorICAgICAgICBBZGQgc3R1YnMKKworICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL3F0
L1BsdWdpbkluZm9TdG9yZVF0LmNwcDogQ29waWVkIGZyb20gV2ViS2l0Mi9VSVByb2Nlc3MvUGx1
Z2lucy93aW4vUGx1Z2luSW5mb1N0b3JlV2luLmNwcC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
SW5mb1N0b3JlOjpwbHVnaW5EaXJlY3Rvcmllcyk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbklu
Zm9TdG9yZTo6cGx1Z2luUGF0aHNJbkRpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
bkluZm9TdG9yZTo6Z2V0UGx1Z2luSW5mbyk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkluZm9T
dG9yZTo6c2hvdWxkVXNlUGx1Z2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9xdC9JbmplY3RlZEJ1bmRsZVF0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkluamVj
dGVkQnVuZGxlOjpsb2FkKToKKworMjAxMC0wNy0wNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4gIDxrZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW5pdGlhbCBXZWJLaXQyIGlt
cGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDIzMworCiAgICAgICAgIEFkZCBXZWJFcnJvcnNRdAogCiAgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJFcnJvcnNRdC5jcHA6IEFkZGVkLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9xdC9QbHVnaW5JbmZvU3RvcmVRdC5jcHAgYi9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3F0L1BsdWdpbkluZm9TdG9yZVF0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmQ1ZTc4Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9xdC9QbHVnaW5JbmZvU3RvcmVRdC5jcHAKQEAgLTAs
MCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJQbHVnaW5JbmZvU3RvcmUuaCIKKwor
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworVmVjdG9yPFN0cmluZz4gUGx1Z2luSW5mb1N0b3JlOjpw
bHVnaW5EaXJlY3RvcmllcygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
VmVjdG9yPFN0cmluZz4oKTsKK30KKworVmVjdG9yPFN0cmluZz4gUGx1Z2luSW5mb1N0b3JlOjpw
bHVnaW5QYXRoc0luRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Cit9CisKK2Jvb2wg
UGx1Z2luSW5mb1N0b3JlOjpnZXRQbHVnaW5JbmZvKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwg
UGx1Z2luJiBwbHVnaW4pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgUGx1Z2luSW5mb1N0b3JlOjpzaG91bGRVc2VQbHVnaW4oY29uc3QgUGx1
Z2luJiBwbHVnaW4sIGNvbnN0IFZlY3RvcjxQbHVnaW4+JiBsb2FkZWRQbHVnaW5zKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmgKaW5kZXggZTk1M2UyNy4uNmQyM2Y0YiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKQEAgLTM3LDYgKzM3LDgg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiB0eXBlZGVmIENGQnVuZGxlUmVmIFBsYXRmb3JtQnVuZGxl
OwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBITU9EVUxFIFBsYXRmb3JtQnVuZGxlOwor
I2VsaWYgUExBVEZPUk0oUVQpCit0eXBlZGVmIHZvaWQqIFBsYXRmb3JtQnVuZGxlOwogI2VuZGlm
CiAKIGNsYXNzIFdlYlBhZ2U7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvcXQvSW5qZWN0ZWRCdW5kbGVRdC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRCdW5kbGVRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZTQ0NDFjMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9xdC9JbmplY3RlZEJ1bmRsZVF0LmNwcApAQCAtMCwwICsxLDQy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlLmgiCisKKyNpbmNsdWRl
ICJXS0J1bmRsZUFQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUluaXRpYWxpemUuaCIKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBGSVhN
RTogVGhpcyBzaG91bGQgdHJ5IGFuZCB1c2UgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPi4KKworYm9v
bCBJbmplY3RlZEJ1bmRsZTo6bG9hZCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60617</attachid>
            <date>2010-07-06 04:16:09 -0700</date>
            <delta_ts>2010-07-07 01:47:33 -0700</delta_ts>
            <desc>WebPageQt (r62639)</desc>
            <filename>qtwebkit2-webpageqt.patch</filename>
            <type>text/plain</type>
            <size>11290</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjU0MykKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMDYgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtp
LmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtR
dF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMworICAgICAgICAKKyAgICAgICAgSW1wbGVt
ZW50IFdlYlBhZ2UgZm9yIFF0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dl
YlBhZ2VRdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjopOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjppbnRlcnByZXRLZXlFdmVudCk6CisKIDIwMTAtMDctMDUgIEx1aXogQWdvc3RpbmkgIDxsdWl6
LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4uCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9X
ZWJQYWdlUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0
L1dlYlBhZ2VRdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9xdC9XZWJQYWdlUXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIxMyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKKyNpbmNsdWRlIDxXZWJD
b3JlL0tleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0
dGluZ3MuaD4KKworI2lmbmRlZiBWS19VTktOT1dOCisKKyNkZWZpbmUgVktfVU5LTk9XTiAwCisK
Ky8vIExlZnQgbW91c2UgYnV0dG9uCisvLyBSaWdodCBtb3VzZSBidXR0b24KKy8vIENvbnRyb2wt
YnJlYWsgcHJvY2Vzc2luZworLy8gTWlkZGxlIG1vdXNlIGJ1dHRvbiAodGhyZWUtYnV0dG9uIG1v
dXNlKQorLy8gVktfWEJVVFRPTjEgKDA1KQorLy8gVktfWEJVVFRPTjIgKDA2KQorCisjZGVmaW5l
IFZLX0JBQ0sgMHgwOAorI2RlZmluZSBWS19UQUIgMHgwOQorI2RlZmluZSBWS19DTEVBUiAweDBD
CisjZGVmaW5lIFZLX1JFVFVSTiAweDBECisjZGVmaW5lIFZLX1NISUZUIDB4MTAKKyNkZWZpbmUg
VktfQ09OVFJPTCAweDExIC8vIENUUkwga2V5CisjZGVmaW5lIFZLX01FTlUgMHgxMiAvLyBBTFQg
a2V5CisjZGVmaW5lIFZLX1BBVVNFIDB4MTMgLy8gUEFVU0Uga2V5CisjZGVmaW5lIFZLX0NBUElU
QUwgMHgxNCAvLyBDQVBTIExPQ0sga2V5CisjZGVmaW5lIFZLX0tBTkEgMHgxNSAvLyBJbnB1dCBN
ZXRob2QgRWRpdG9yIChJTUUpIEthbmEgbW9kZQorI2RlZmluZSBWS19IQU5HVUwgMHgxNSAvLyBJ
TUUgSGFuZ3VsIG1vZGUKKyNkZWZpbmUgVktfSlVOSkEgMHgxNyAvLyBJTUUgSnVuamEgbW9kZQor
I2RlZmluZSBWS19GSU5BTCAweDE4IC8vIElNRSBmaW5hbCBtb2RlCisjZGVmaW5lIFZLX0hBTkpB
IDB4MTkgLy8gSU1FIEhhbmphIG1vZGUgCisjZGVmaW5lIFZLX0tBTkpJIDB4MTkgLy8gSU1FIEth
bmppIG1vZGUKKyNkZWZpbmUgVktfRVNDQVBFIDB4MUIgLy8gRVNDIGtleQorI2RlZmluZSBWS19D
T05WRVJUIDB4MUMgLy8gSU1FIGNvbnZlcnQKKyNkZWZpbmUgVktfTk9OQ09OVkVSVCAweDFEIC8v
IElNRSBub25jb252ZXJ0CisjZGVmaW5lIFZLX0FDQ0VQVCAweDFFIC8vIElNRSBhY2NlcHQKKyNk
ZWZpbmUgVktfTU9ERUNIQU5HRSAweDFGIC8vIElNRSBtb2RlIGNoYW5nZSByZXF1ZXN0CisjZGVm
aW5lIFZLX1NQQUNFIDB4MjAgLy8gU1BBQ0Uga2V5CisjZGVmaW5lIFZLX1BSSU9SIDB4MjEgLy8g
UEFHRSBVUCBrZXkKKyNkZWZpbmUgVktfTkVYVCAweDIyIC8vIFBBR0UgRE9XTiBrZXkKKyNkZWZp
bmUgVktfRU5EIDB4MjMgLy8gRU5EIGtleQorI2RlZmluZSBWS19IT01FIDB4MjQgLy8gSE9NRSBr
ZXkKKyNkZWZpbmUgVktfTEVGVCAweDI1IC8vIExFRlQgQVJST1cga2V5CisjZGVmaW5lIFZLX1VQ
IDB4MjYgLy8gVVAgQVJST1cga2V5CisjZGVmaW5lIFZLX1JJR0hUIDB4MjcgLy8gUklHSFQgQVJS
T1cga2V5CisjZGVmaW5lIFZLX0RPV04gMHgyOCAvLyBET1dOIEFSUk9XIGtleQorI2RlZmluZSBW
S19TRUxFQ1QgMHgyOSAvLyBTRUxFQ1Qga2V5CisjZGVmaW5lIFZLX1BSSU5UIDB4MkEgLy8gUFJJ
TlQga2V5CisjZGVmaW5lIFZLX0VYRUNVVEUgMHgyQiAvLyBFWEVDVVRFIGtleQorI2RlZmluZSBW
S19TTkFQU0hPVCAweDJDIC8vIFBSSU5UIFNDUkVFTiBrZXkKKyNkZWZpbmUgVktfSU5TRVJUIDB4
MkQgLy8gSU5TIGtleQorI2RlZmluZSBWS19ERUxFVEUgMHgyRSAvLyBERUwga2V5CisjZGVmaW5l
IFZLX0hFTFAgMHgyRiAvLyBIRUxQIGtleQorLy8gV2luZG93cyAyMDAwL1hQOiBGb3IgYW55IGNv
dW50cnkvcmVnaW9uLCB0aGUgJy4nIGtleQorI2RlZmluZSBWS19PRU1fUEVSSU9EIDB4QkUKKyNl
bmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7Cisg
ICAgCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK3N0YXRpYyBj
b25zdCB1bnNpZ25lZCBDdHJsS2V5ID0gMSA8PCAwOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFs
dEtleSA9IDEgPDwgMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEgPDwgMjsK
Kworc3RydWN0IEtleURvd25FbnRyeSB7CisgICAgdW5zaWduZWQgdmlydHVhbEtleTsKKyAgICB1
bnNpZ25lZCBtb2RpZmllcnM7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0cnVjdCBL
ZXlQcmVzc0VudHJ5IHsKKyAgICB1bnNpZ25lZCBjaGFyQ29kZTsKKyAgICB1bnNpZ25lZCBtb2Rp
ZmllcnM7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0YXRpYyBjb25zdCBLZXlEb3du
RW50cnkga2V5RG93bkVudHJpZXNbXSA9IHsKKyAgICB7IFZLX0xFRlQsICAgMCwgICAgICAgICAg
ICAgICAgICAiTW92ZUxlZnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX0xFRlQsICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZUxlZnRBbmRNb2RpZnlT
ZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQsICAgQ3RybEtleSwg
ICAgICAgICAgICAiTW92ZVdvcmRMZWZ0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX0xFRlQsICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRMZWZ0QW5k
TW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgMCwgICAg
ICAgICAgICAgICAgICAiTW92ZVJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICB7IFZLX1JJR0hULCAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVJpZ2h0QW5k
TW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgQ3Ry
bEtleSwgICAgICAgICAgICAiTW92ZVdvcmRSaWdodCIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRS
aWdodEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAg
MCwgICAgICAgICAgICAgICAgICAiTW92ZVVwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVVw
QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1BSSU9S
LCAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RPV04sICAgMCwgICAgICAgICAgICAgICAgICAiTW92
ZURvd24iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RP
V04sICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZURvd25BbmRNb2RpZnlTZWxlY3Rpb24iICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQsICAgU2hpZnRLZXksICAgICAgICAgICAi
TW92ZVBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X1BSSU9SLCAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VVcCIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQsICAgMCwgICAgICAgICAgICAgICAg
ICAiTW92ZVBhZ2VEb3duIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX0hPTUUsICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lIiAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgU2hpZnRLZXksICAgICAg
ICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgfSwKKyAg
ICB7IFZLX0hPTUUsICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1
bWVudCIgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSB8IFNo
aWZ0S2V5LCAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgfSwK
KyAgICAKKyAgICB7IFZLX0VORCwgICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVRvRW5kT2ZM
aW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgU2hp
ZnRLZXksICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAg
ICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVRvRW5k
T2ZEb2N1bWVudCIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAg
Q3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVRvRW5kT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlv
biIgICAgICAgfSwKKyAgICAKKyAgICB7IFZLX0JBQ0ssICAgMCwgICAgICAgICAgICAgICAgICAi
RGVsZXRlQmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X0JBQ0ssICAgU2hpZnRLZXksICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgMCwgICAgICAgICAgICAgICAg
ICAiRGVsZXRlRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX0JBQ0ssICAgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRlV29yZEJhY2t3YXJkIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgQ3RybEtleSwgICAgICAg
ICAgICAiRGVsZXRlV29yZEZvcndhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICAKKyAgICB7ICdCJywgICAgICAgQ3RybEtleSwgICAgICAgICAgICAiVG9nZ2xlQm9sZCIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdJJywgICAgICAgQ3RybEtl
eSwgICAgICAgICAgICAiVG9nZ2xlSXRhbGljIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICAKKyAgICB7IFZLX0VTQ0FQRSwgMCwgICAgICAgICAgICAgICAgICAiQ2FuY2Vs
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX09FTV9Q
RVJJT0QsIEN0cmxLZXksICAgICAgICAiQ2FuY2VsIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RBQiwgICAgMCwgICAgICAgICAgICAgICAgICAiSW5z
ZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RB
QiwgICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0QmFja3RhYiIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgMCwgICAgICAgICAgICAgICAgICAi
SW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X1JFVFVSTiwgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQWx0S2V5LCAgICAgICAgICAg
ICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX1JFVFVSTiwgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQWx0S2V5IHwgU2hpZnRL
ZXksICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICAKKyAgICAvLyBJdCdzIG5vdCBxdWl0ZSBjbGVhciB3aGV0aGVyIGNsaXBib2FyZCBzaG9ydGN1
dHMgYW5kIFVuZG8vUmVkbyBzaG91bGQgYmUgaGFuZGxlZAorICAgIC8vIGluIHRoZSBhcHBsaWNh
dGlvbiBvciBpbiBXZWJLaXQuIFdlIGNob3NlIFdlYktpdC4KKyAgICB7ICdDJywgICAgICAgQ3Ry
bEtleSwgICAgICAgICAgICAiQ29weSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7ICdWJywgICAgICAgQ3RybEtleSwgICAgICAgICAgICAiUGFzdGUiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdYJywgICAgICAg
Q3RybEtleSwgICAgICAgICAgICAiQ3V0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7ICdBJywgICAgICAgQ3RybEtleSwgICAgICAgICAgICAiU2VsZWN0
QWxsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VS
VCwgQ3RybEtleSwgICAgICAgICAgICAiQ29weSIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgU2hpZnRLZXksICAgICAgICAgICAiQ3V0
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lO
U0VSVCwgU2hpZnRLZXksICAgICAgICAgICAiUGFzdGUiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7ICdaJywgICAgICAgQ3RybEtleSwgICAgICAgICAgICAi
VW5kbyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICda
JywgICAgICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiUmVkbyIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKK307CisKK3N0YXRpYyBjb25zdCBLZXlQcmVzc0VudHJ5IGtl
eVByZXNzRW50cmllc1tdID0geworICAgIHsgJ1x0JywgICAwLCAgICAgICAgICAgICAgICAgICJJ
bnNlcnRUYWIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1x0
JywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRCYWNrdGFiIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICAwLCAgICAgICAgICAgICAgICAgICJJbnNl
cnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywg
ICBDdHJsS2V5LCAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXksICAgICAgICAgICAgICJJbnNlcnRO
ZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBT
aGlmdEtleSwgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXkgfCBTaGlmdEtleSwgICJJbnNlcnROZXds
aW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsKKworY29uc3QgY2hhciog
V2ViUGFnZTo6aW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgS2V5Ym9hcmRFdmVudCogZXZ0KQorewor
ICAgIEFTU0VSVChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50IHx8IGV2
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KTsKKyAgICAKKyAgICBzdGF0
aWMgSGFzaE1hcDxpbnQsIGNvbnN0IGNoYXIqPioga2V5RG93bkNvbW1hbmRzTWFwID0gMDsKKyAg
ICBzdGF0aWMgSGFzaE1hcDxpbnQsIGNvbnN0IGNoYXIqPioga2V5UHJlc3NDb21tYW5kc01hcCA9
IDA7CisgICAgCisgICAgaWYgKCFrZXlEb3duQ29tbWFuZHNNYXApIHsKKyAgICAgICAga2V5RG93
bkNvbW1hbmRzTWFwID0gbmV3IEhhc2hNYXA8aW50LCBjb25zdCBjaGFyKj47CisgICAgICAgIGtl
eVByZXNzQ29tbWFuZHNNYXAgPSBuZXcgSGFzaE1hcDxpbnQsIGNvbnN0IGNoYXIqPjsKKyAgICAg
ICAgCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAoc2l6ZW9mKGtleURvd25FbnRy
aWVzKSAvIHNpemVvZihrZXlEb3duRW50cmllc1swXSkpOyBpKyspCisgICAgICAgICAgICBrZXlE
b3duQ29tbWFuZHNNYXAtPnNldChrZXlEb3duRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYgfCBr
ZXlEb3duRW50cmllc1tpXS52aXJ0dWFsS2V5LCBrZXlEb3duRW50cmllc1tpXS5uYW1lKTsKKyAg
ICAgICAgCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAoc2l6ZW9mKGtleVByZXNz
RW50cmllcykgLyBzaXplb2Yoa2V5UHJlc3NFbnRyaWVzWzBdKSk7IGkrKykKKyAgICAgICAgICAg
IGtleVByZXNzQ29tbWFuZHNNYXAtPnNldChrZXlQcmVzc0VudHJpZXNbaV0ubW9kaWZpZXJzIDw8
IDE2IHwga2V5UHJlc3NFbnRyaWVzW2ldLmNoYXJDb2RlLCBrZXlQcmVzc0VudHJpZXNbaV0ubmFt
ZSk7CisgICAgfQorICAgIAorICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2
dC0+c2hpZnRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFNoaWZ0S2V5OworICAgIGlmIChl
dnQtPmFsdEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQWx0S2V5OworICAgIGlmIChldnQt
PmN0cmxLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisgICAgCisgICAgaWYg
KGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpIHsKKyAgICAgICAgaW50
IG1hcEtleSA9IG1vZGlmaWVycyA8PCAxNiB8IGV2dC0+a2V5RXZlbnQoKS0+d2luZG93c1ZpcnR1
YWxLZXlDb2RlKCk7CisgICAgICAgIHJldHVybiBtYXBLZXkgPyBrZXlEb3duQ29tbWFuZHNNYXAt
PmdldChtYXBLZXkpIDogMDsKKyAgICB9CisgICAgCisgICAgaW50IG1hcEtleSA9IG1vZGlmaWVy
cyA8PCAxNiB8IGV2dC0+Y2hhckNvZGUoKTsKKyAgICByZXR1cm4gbWFwS2V5ID8ga2V5UHJlc3ND
b21tYW5kc01hcC0+Z2V0KG1hcEtleSkgOiAwOworfQorICAgIAorfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60713</attachid>
            <date>2010-07-07 03:13:22 -0700</date>
            <delta_ts>2010-07-07 05:47:44 -0700</delta_ts>
            <desc>Add Qt section to the prefix header</desc>
            <filename>qtwebkit2-prefix.patch</filename>
            <type>text/plain</type>
            <size>1039</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjY0NikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsMTYgQEAKIDIwMTAtMDctMDcgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtp
LmZpPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtR
dF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMworICAgICAgICAKKyAgICAgICAgQWRkIFF0
IHNlY3Rpb24gdG8gdGhlIHByZWZpeCBoZWFkZXIuCisKKyAgICAgICAgKiBXZWJLaXQyUHJlZml4
Lmg6CisKKzIwMTAtMDctMDcgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtpLmZpPgorCiAg
ICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgogCiAgICAgICAg
IFtRdF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCkluZGV4OiBXZWJLaXQyL1dlYktp
dDJQcmVmaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYktpdDJQcmVmaXguaAkocmV2aXNp
b24gNjI1MzUpCisrKyBXZWJLaXQyL1dlYktpdDJQcmVmaXguaAkod29ya2luZyBjb3B5KQpAQCAt
MjksOCArMjksMTMgQEAKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2VuZGlmCiAKLSNp
ZiBkZWZpbmVkKF9fQVBQTEVfXykKKyNpZiBkZWZpbmVkKEJVSUxESU5HX1FUX18pCiAKKyNkZWZp
bmUgV1RGX1VTRV9KU0MgMQorI2RlZmluZSBXVEZfVVNFX1Y4IDAKKworI2VsaWYgZGVmaW5lZChf
X0FQUExFX18pCisKICNpbXBvcnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KIAogI2lm
ZGVmIF9fT0JKQ19fCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60719</attachid>
            <date>2010-07-07 05:11:37 -0700</date>
            <delta_ts>2010-07-07 05:48:08 -0700</delta_ts>
            <desc>Export some event conversion functions needed for WebKit2</desc>
            <filename>qtwebkit2-platformevent.patch</filename>
            <type>text/plain</type>
            <size>2027</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjY1MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMDcgIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtp
LmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAg
ICAgICAgW1F0XSBJbml0aWFsIFdlYktpdDIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjMzCisKKyAgICAgICAgRXhwb3J0
IHNvbWUgZXZlbnQgY29udmVyc2lvbiBmdW5jdGlvbnMgbmVlZGVkIGZvciBXZWJLaXQyLgorCisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vcXQvUGxhdGZvcm1LZXlib2FyZEV2ZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
a2V5SWRlbnRpZmllckZvclF0S2V5Q29kZSk6CisgICAgICAgIChXZWJDb3JlOjp3aW5kb3dzS2V5
Q29kZUZvcktleUV2ZW50KToKKwogMjAxMC0wNy0wNiAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2Nr
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAkocmV2aXNpb24gNjI1MzUpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMjksNiArMjI5LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUUtleUV2
ZW50KiBtX3F0RXZlbnQ7CiAjZW5kaWYKICAgICB9OworICAgIAorI2lmIFBMQVRGT1JNKFFUKQor
Ly8gVXNlZCBieSBXZWJLaXQyLgorU3RyaW5nIGtleUlkZW50aWZpZXJGb3JRdEtleUNvZGUoaW50
IGtleUNvZGUpOworaW50IHdpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQodW5zaWduZWQgaW50IGtl
eWNvZGUsIGJvb2wgaXNLZXlwYWQgPSBmYWxzZSk7ICAgIAorI2VuZGlmCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybUtleWJvYXJk
RXZlbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybUtl
eWJvYXJkRXZlbnRRdC5jcHAJKHJldmlzaW9uIDYyNTM1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9x
dC9QbGF0Zm9ybUtleWJvYXJkRXZlbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgU3RyaW5nIGtleUlkZW50aWZp
ZXJGb3JRdEtleUNvZGUoaW50IGtleUNvZGUpCitTdHJpbmcga2V5SWRlbnRpZmllckZvclF0S2V5
Q29kZShpbnQga2V5Q29kZSkKIHsKICAgICBzd2l0Y2ggKGtleUNvZGUpIHsKICAgICBjYXNlIFF0
OjpLZXlfTWVudToKQEAgLTEzNyw3ICsxMzcsNyBAQCBzdGF0aWMgU3RyaW5nIGtleUlkZW50aWZp
ZXJGb3JRdEtleUNvZGUoCiAgICAgfQogfQogCi1zdGF0aWMgaW50IHdpbmRvd3NLZXlDb2RlRm9y
S2V5RXZlbnQodW5zaWduZWQgaW50IGtleWNvZGUsIGJvb2wgaXNLZXlwYWQgPSBmYWxzZSkKK2lu
dCB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KHVuc2lnbmVkIGludCBrZXljb2RlLCBib29sIGlz
S2V5cGFkKQogewogICAgIC8vIERldGVybWluZSB3aGV0ZXIgdGhlIGV2ZW50IGNvbWVzIGZyb20g
dGhlIGtleXBhZAogICAgIGlmIChpc0tleXBhZCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60722</attachid>
            <date>2010-07-07 05:37:24 -0700</date>
            <delta_ts>2010-07-09 03:19:41 -0700</delta_ts>
            <desc>MiniBrowser</desc>
            <filename>0001-2010-07-07-Kenneth-Rohde-Christiansen-kenneth.christ.patch</filename>
            <type>text/plain</type>
            <size>11137</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA3NjMyNWQ1OTU4N2YyMWZjMjJmMWVjNmQ1Mjc4YTgyZTViMWYyMzhlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogV2VkLCA3IEp1bCAyMDEwIDA5OjM3OjE0
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMC0wNy0wNyAgS2VubmV0aCBSb2hkZSBDaHJpc3Rp
YW5zZW4gIDxrZW5uZXRoLmNocmlzdGlhbnNlbkBvcGVuYm9zc2Eub3JnPgoKICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9u
IGFuZCBidWcgVVJMIChPT1BTISkKCiAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2lu
ZG93LmNwcDogQWRkZWQuCiAgICAgICAgKGNyZWF0ZU5ld1BhZ2UpOgogICAgICAgIChCcm93c2Vy
Vmlldzo6QnJvd3NlclZpZXcpOgogICAgICAgIChCcm93c2VyVmlldzo6cmVzaXplRXZlbnQpOgog
ICAgICAgIChCcm93c2VyVmlldzo6bG9hZCk6CiAgICAgICAgKEJyb3dzZXJWaWV3Ojp2aWV3KToK
ICAgICAgICAoQnJvd3NlcldpbmRvdzo6QnJvd3NlcldpbmRvdyk6CiAgICAgICAgKEJyb3dzZXJX
aW5kb3c6OmxvYWQpOgogICAgICAgIChCcm93c2VyV2luZG93OjpjaGFuZ2VMb2NhdGlvbik6CiAg
ICAgICAgKEJyb3dzZXJXaW5kb3c6On5Ccm93c2VyV2luZG93KToKICAgICAgICAqIE1pbmlCcm93
c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaDogQWRkZWQuCiAgICAgICAgKEJyb3dzZXJWaWV3Ojp+QnJv
d3NlclZpZXcpOgogICAgICAgICogTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucHJvOiBBZGRl
ZC4KICAgICAgICAqIE1pbmlCcm93c2VyL3F0L21haW4uY3BwOiBBZGRlZC4KICAgICAgICAobWFp
bik6Ci0tLQogV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAgfCAg
MTE0ICsrKysrKysrKysrKysrKysrKysrKysrKysrCiBXZWJLaXRUb29scy9NaW5pQnJvd3Nlci9x
dC9Ccm93c2VyV2luZG93LmggICB8ICAgNzIgKysrKysrKysrKysrKysrKwogV2ViS2l0VG9vbHMv
TWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucHJvICAgfCAgIDQ1ICsrKysrKysrKysKIFdlYktp
dFRvb2xzL01pbmlCcm93c2VyL3F0L21haW4uY3BwICAgICAgICAgIHwgICA0MiArKysrKysrKysr
CiA0IGZpbGVzIGNoYW5nZWQsIDI3MyBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYktpdFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cu
Y3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3Nl
cldpbmRvdy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQv
TWluaUJyb3dzZXIucHJvCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0VG9vbHMvTWluaUJyb3dz
ZXIvcXQvbWFpbi5jcHAKCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9C
cm93c2VyV2luZG93LmNwcCBiL1dlYktpdFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5k
b3cuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliOGEyYzcKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNw
cApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgIkJyb3dzZXJXaW5kb3cuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZU5h
bWVzcGFjZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvcXdrcGFnZS5oPgorCitzdGF0aWMgUVdLUGFn
ZSogY3JlYXRlTmV3UGFnZShRV0tQYWdlKiBwYWdlKQoreworICAgIHJldHVybiBwYWdlOworfQor
CitCcm93c2VyVmlldzo6QnJvd3NlclZpZXcoUVdpZGdldCogcGFyZW50KQorICAgIDogUUdyYXBo
aWNzVmlldyhwYXJlbnQpCisgICAgLCBtX2l0ZW0oMCkKK3sKKyAgICBtX2NvbnRleHQuYWRvcHQo
V0tDb250ZXh0R2V0U2hhcmVkUHJvY2Vzc0NvbnRleHQoKSk7CisKKyAgICBXS1JldGFpblB0cjxX
S1BhZ2VOYW1lc3BhY2VSZWY+IHBhZ2VOYW1lc3BhY2UoQWRvcHRXSywgV0tQYWdlTmFtZXNwYWNl
Q3JlYXRlKG1fY29udGV4dC5nZXQoKSkpOworCisgICAgbV9pdGVtID0gbmV3IFFHcmFwaGljc1dL
VmlldyhwYWdlTmFtZXNwYWNlLmdldCgpLCBRR3JhcGhpY3NXS1ZpZXc6OlNpbXBsZSwgMCk7Cisg
ICAgc2V0U2NlbmUobmV3IFFHcmFwaGljc1NjZW5lKHRoaXMpKTsKKyAgICBzY2VuZSgpLT5hZGRJ
dGVtKG1faXRlbSk7CisKKyAgICBzZXRGcmFtZVNoYXBlKFFGcmFtZTo6Tm9GcmFtZSk7CisgICAg
c2V0SG9yaXpvbnRhbFNjcm9sbEJhclBvbGljeShRdDo6U2Nyb2xsQmFyQWx3YXlzT2ZmKTsKKyAg
ICBzZXRWZXJ0aWNhbFNjcm9sbEJhclBvbGljeShRdDo6U2Nyb2xsQmFyQWx3YXlzT2ZmKTsKKwor
ICAgIGNvbm5lY3QobV9pdGVtLCBTSUdOQUwodGl0bGVDaGFuZ2VkKFFTdHJpbmcpKSwgdGhpcywg
U0xPVChzZXRXaW5kb3dUaXRsZShRU3RyaW5nKSkpOworICAgIG1faXRlbS0+cGFnZSgpLT5zZXRD
cmVhdGVOZXdQYWdlRnVuY3Rpb24oY3JlYXRlTmV3UGFnZSk7Cit9CisKK3ZvaWQgQnJvd3NlclZp
ZXc6OnJlc2l6ZUV2ZW50KFFSZXNpemVFdmVudCogZXZlbnQpCit7CisgICAgUUdyYXBoaWNzVmll
dzo6cmVzaXplRXZlbnQoZXZlbnQpOworICAgIFFSZWN0RiByZWN0KFFQb2ludCgwLCAwKSwgZXZl
bnQtPnNpemUoKSk7CisgICAgbV9pdGVtLT5zZXRHZW9tZXRyeShyZWN0KTsKKyAgICBzY2VuZSgp
LT5zZXRTY2VuZVJlY3QocmVjdCk7Cit9CisKK3ZvaWQgQnJvd3NlclZpZXc6OmxvYWQoY29uc3Qg
UVVybCYgdXJsKQoreworICAgIG1faXRlbS0+bG9hZCh1cmwpOworfQorCitRR3JhcGhpY3NXS1Zp
ZXcqIEJyb3dzZXJWaWV3Ojp2aWV3KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pdGVtOworfQor
CitCcm93c2VyV2luZG93OjpCcm93c2VyV2luZG93KCkKK3sKKyAgICBtX21lbnUgPSBuZXcgUU1l
bnVCYXIoKTsKKyAgICBtX2Jyb3dzZXIgPSBuZXcgQnJvd3NlclZpZXcoKTsKKyAgICBtX2FkZHJl
c3NCYXIgPSBuZXcgUUxpbmVFZGl0KCk7CisKKyAgICBtX21lbnUtPmFkZEFjdGlvbigiUXVpdCIs
IHRoaXMsIFNMT1QoY2xvc2UoKSkpOworCisgICAgbV9icm93c2VyLT5zZXRGb2N1cyhRdDo6T3Ro
ZXJGb2N1c1JlYXNvbik7CisKKyAgICBjb25uZWN0KG1fYWRkcmVzc0JhciwgU0lHTkFMKHJldHVy
blByZXNzZWQoKSksIFNMT1QoY2hhbmdlTG9jYXRpb24oKSkpOworCisgICAgUVRvb2xCYXIqIGJh
ciA9IGFkZFRvb2xCYXIoIk5hdmlnYXRpb24iKTsKKyAgICBiYXItPmFkZFdpZGdldChtX2FkZHJl
c3NCYXIpOworCisgICAgdGhpcy0+c2V0TWVudUJhcihtX21lbnUpOworICAgIHRoaXMtPnNldENl
bnRyYWxXaWRnZXQobV9icm93c2VyKTsKKworICAgIG1fYnJvd3Nlci0+c2V0Rm9jdXMoUXQ6Ok90
aGVyRm9jdXNSZWFzb24pOworfQorCit2b2lkIEJyb3dzZXJXaW5kb3c6OmxvYWQoY29uc3QgUVN0
cmluZyYgdXJsKQoreworICAgIG1fYWRkcmVzc0Jhci0+c2V0VGV4dCh1cmwpOworICAgIG1fYnJv
d3Nlci0+bG9hZChRVXJsKHVybCkpOworfQorCit2b2lkIEJyb3dzZXJXaW5kb3c6OmNoYW5nZUxv
Y2F0aW9uKCkKK3sKKyAgICBRU3RyaW5nIHN0cmluZyA9IG1fYWRkcmVzc0Jhci0+dGV4dCgpOwor
ICAgIG1fYnJvd3Nlci0+bG9hZChzdHJpbmcpOworfQorCitCcm93c2VyV2luZG93Ojp+QnJvd3Nl
cldpbmRvdygpCit7CisgICAgZGVsZXRlIG1fYWRkcmVzc0JhcjsKKyAgICBkZWxldGUgbV9icm93
c2VyOworICAgIGRlbGV0ZSBtX21lbnU7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9NaW5p
QnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmggYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9C
cm93c2VyV2luZG93LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBjNTEy
MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJX
aW5kb3cuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChD
KSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjZGVmaW5lIFBMQVRGT1JNKHgpIDAKKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2lu
Y2x1ZGUgPFF0R3VpPgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLQ29udGV4dC5oPgorI2luY2x1ZGUgPFFHcmFwaGljc1NjZW5lPgorI2luY2x1
ZGUgPFFHcmFwaGljc1ZpZXc+CisjaW5jbHVkZSA8V2ViS2l0Mi9xZ3JhcGhpY3N3a3ZpZXcuaD4K
KworY2xhc3MgQnJvd3NlclZpZXcgOiBwdWJsaWMgUUdyYXBoaWNzVmlldyB7CisgICAgUV9PQkpF
Q1QKKworcHVibGljOgorICAgIEJyb3dzZXJWaWV3KFFXaWRnZXQqIHBhcmVudCA9IDApOworICAg
IHZpcnR1YWwgfkJyb3dzZXJWaWV3KCkgeyBkZWxldGUgbV9pdGVtOyB9CisKKyAgICB2b2lkIGxv
YWQoY29uc3QgUVVybCYpOworICAgIFFHcmFwaGljc1dLVmlldyogdmlldygpIGNvbnN0OworCitw
cm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIHJlc2l6ZUV2ZW50KFFSZXNpemVFdmVudCopOwor
Citwcml2YXRlOgorICAgIFFHcmFwaGljc1dLVmlldyogbV9pdGVtOworICAgIFdLUmV0YWluUHRy
PFdLQ29udGV4dFJlZj4gbV9jb250ZXh0OworfTsKKworY2xhc3MgQnJvd3NlcldpbmRvdyA6IHB1
YmxpYyBRTWFpbldpbmRvdyB7CisgICAgUV9PQkpFQ1QKKworcHVibGljOgorICAgIEJyb3dzZXJX
aW5kb3coKTsKKyAgICB+QnJvd3NlcldpbmRvdygpOworICAgIHZvaWQgbG9hZChjb25zdCBRU3Ry
aW5nJiB1cmwpOworCitwcm90ZWN0ZWQgc2xvdHM6CisgICAgdm9pZCBjaGFuZ2VMb2NhdGlvbigp
OworCitwcml2YXRlOgorICAgIEJyb3dzZXJWaWV3KiBtX2Jyb3dzZXI7CisgICAgUU1lbnVCYXIq
IG1fbWVudTsKKyAgICBRTGluZUVkaXQqIG1fYWRkcmVzc0JhcjsKK307CmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5wcm8gYi9XZWJLaXRUb29scy9N
aW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5wcm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOWE1N2QxYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL01pbmlCcm93
c2VyL3F0L01pbmlCcm93c2VyLnBybwpAQCAtMCwwICsxLDQ1IEBACitURU1QTEFURSA9IGFwcAor
VEFSR0VUID0gTWluaUJyb3dzZXIKKworU09VUkNFUyArPSBcCisgICAgbWFpbi5jcHAgXAorICAg
IEJyb3dzZXJXaW5kb3cuY3BwIFwKKworSEVBREVSUyArPSBcCisgICAgQnJvd3NlcldpbmRvdy5o
IFwKKworQ09ORklHICs9IHVpdG9vbHMKKworaXNFbXB0eShPVVRQVVRfRElSKTogT1VUUFVUX0RJ
UiA9IC4uLy4uLy4uCitpbmNsdWRlKC4uLy4uLy4uL1dlYktpdC5wcmkpCisKK0lOQ0xVREVQQVRI
ICs9ICQkT1VUUFVUX0RJUi9pbmNsdWRlCisKK0RFU1RESVIgPSAkJE9VVFBVVF9ESVIvYmluCish
Q09ORklHKHN0YW5kYWxvbmVfcGFja2FnZSk6IENPTkZJRyAtPSBhcHBfYnVuZGxlCisKK1FUICs9
IG5ldHdvcmsKK21hY3g6UVQrPXhtbAorCitsaW51eC0qIHsKKyAgICAjIEZyb20gQ3JlYXRvcidz
IHNyYy9ycGF0aC5wcmk6CisgICAgIyBEbyB0aGUgcnBhdGggYnkgaGFuZCBzaW5jZSBpdCdzIG5v
dCBwb3NzaWJsZSB0byB1c2UgT1JJR0lOIGluIFFNQUtFX1JQQVRIRElSCisgICAgIyB0aGlzIGV4
cGFuZHMgdG8gJE9SSUdJTiAoYWZ0ZXIgcW1ha2UgYW5kIG1ha2UpLCBpdCBkb2VzIE5PVCByZWFk
IGEgcW1ha2UgdmFyLgorICAgIFFNQUtFX1JQQVRIRElSID0gXCRcJE9SSUdJTi8uLi9saWIgJCRR
TUFLRV9SUEFUSERJUgorICAgIE1ZX1JQQVRIID0gJCRqb2luKFFNQUtFX1JQQVRIRElSLCAiOiIp
CisKKyAgICBRTUFLRV9MRkxBR1MgKz0gLVdsLC16LG9yaWdpbiBcJy1XbCwtcnBhdGgsJCR7TVlf
UlBBVEh9XCcKKyAgICBRTUFLRV9SUEFUSERJUiA9Cit9IGVsc2UgeworICAgIFFNQUtFX1JQQVRI
RElSID0gJCRPVVRQVVRfRElSL2xpYiAkJFFNQUtFX1JQQVRIRElSCit9CisKK3N5bWJpYW4gewor
ICAgIFRBUkdFVC5VSUQzID0gMHhBMDAwRTU0MworICAgIFRBUkdFVC5DQVBBQklMSVRZID0gUmVh
ZFVzZXJEYXRhIFdyaXRlVXNlckRhdGEgTmV0d29ya1NlcnZpY2VzCit9CisKK2NvbnRhaW5zKFFU
X0NPTkZJRywgb3BlbmdsKSB7CisgICAgUVQgKz0gb3BlbmdsCisgICAgREVGSU5FUyArPSBRVF9D
T05GSUdVUkVEX1dJVEhfT1BFTkdMCit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9NaW5pQnJv
d3Nlci9xdC9tYWluLmNwcCBiL1dlYktpdFRvb2xzL01pbmlCcm93c2VyL3F0L21haW4uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyNjEzOTcKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9tYWluLmNwcApAQCAtMCwwICsxLDQyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgPFF0R3VpPgorI2luY2x1ZGUgIkJyb3dzZXJXaW5kb3cuaCIKKworaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgUUFwcGxpY2F0aW9uIGFwcChhcmdjLCBhcmd2KTsK
KworICAgIEJyb3dzZXJXaW5kb3cgd2luZG93OworICAgIHdpbmRvdy5yZXNpemUoOTYwLCA2NDAp
OworICAgIHdpbmRvdy5zaG93KCk7CisgICAgd2luZG93LmxvYWQoYXJnYyA+IDEgPyBhcmd2WzFd
IDogImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSIpOworCisgICAgYXBwLmV4ZWMoKTsKKworICAgIHJl
dHVybiAwOworfQotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60870</attachid>
            <date>2010-07-08 06:23:12 -0700</date>
            <delta_ts>2010-07-08 10:10:31 -0700</delta_ts>
            <desc>a bunch of minor build fixes</desc>
            <filename>qtwebkit2-random.patch</filename>
            <type>text/plain</type>
            <size>4195</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Mjc4NCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMDctMDggIEFudHRpIEtvaXZpc3RvICA8a29pdmlzdG9AaWtp
LmZpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtR
dF0gSW5pdGlhbCBXZWJLaXQyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMworICAgIAorICAgICAgICBSYW5kb20gYnVp
bGQgZml4ZXMuCisKKyAgICAgICAgKiBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3
a3BhZ2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9xdC9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eVF0LmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorCiAyMDEwLTA3LTA3ICBab2x0YW4g
SG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5l
dGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpJbmRleDogV2ViS2l0Mi9TaGFyZWQvcXQvV2ViRXZlbnRG
YWN0b3J5UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL3F0L1dlYkV2ZW50RmFj
dG9yeVF0LmNwcAkocmV2aXNpb24gNjI1MzUpCisrKyBXZWJLaXQyL1NoYXJlZC9xdC9XZWJFdmVu
dEZhY3RvcnlRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5jbHVkZSAiV2ViRXZlbnRGYWN0
b3J5LmgiCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5UXQuaCIKIAogI2luY2x1ZGUgPHFncmFw
aGljc3NjZW5lZXZlbnQuaD4KICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CkluZGV4OiBXZWJLaXQy
L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVBy
b2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCShyZXZpc2lvbiA2MjUzNSkKKysrIFdlYktpdDIvVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsMTAg
QEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgogCisjaWYgUExBVEZPUk0oUVQpCitj
bGFzcyBRUGFpbnRlcjsKKyNlbmRpZgorCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAgICAgY2xhc3Mg
QXJndW1lbnREZWNvZGVyOwogICAgIGNsYXNzIENvbm5lY3Rpb247CkBAIC00NSw2ICs0OSw4IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogdHlwZWRlZiBDR0NvbnRleHRSZWYgUGxhdGZvcm1EcmF3aW5n
Q29udGV4dDsKICNlbGlmIFBMQVRGT1JNKFdJTikKIHR5cGVkZWYgSERDIFBsYXRmb3JtRHJhd2lu
Z0NvbnRleHQ7CisjZWxpZiBQTEFURk9STShRVCkKK3R5cGVkZWYgUVBhaW50ZXIqIFBsYXRmb3Jt
RHJhd2luZ0NvbnRleHQ7CiAjZW5kaWYKIAogY2xhc3MgRHJhd2luZ0FyZWFQcm94eSB7CkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L0NsaWVudEltcGwuY3BwCShyZXZpc2lvbiA2MjUzNSkK
KysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTcsNyArMTcsNyBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogKi8K
IAotI2luY2x1ZGUgIkRlZmF1bHRDbGllbnRDYWxsYmFja3NRdC5oIgorI2luY2x1ZGUgIkNsaWVu
dEltcGwuaCIKIAogI2luY2x1ZGUgIldlYkZyYW1lUHJveHkuaCIKICNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAJKHJldmlzaW9uIDYy
NTM1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMSw5ICsyMSw5IEBACiAjaW5jbHVkZSAicXdrcGFnZS5oIgogI2luY2x1ZGUgInF3
a3BhZ2VfcC5oIgogCi0jaW5jbHVkZSAiRGVmYXVsdENsaWVudENhbGxiYWNrc1F0LmgiCisjaW5j
bHVkZSAiQ2xpZW50SW1wbC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNs
dWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnlRdC5oIgog
I2luY2x1ZGUgIldLU3RyaW5nUXQuaCIKICNpbmNsdWRlICJXS1VSTFF0LmgiCiAjaW5jbHVkZSA8
UUFjdGlvbj4KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaAkocmV2aXNpb24gNjI1
MzUpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC02NSw4ICs2NSw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHRpbWVyRXZlbnQoUVRpbWVy
RXZlbnQqKTsKIAogcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgUVdLR3JhcGhpY3NXaWRnZXQ7
Ci0gICAgZnJpZW5kIGNsYXNzIFFXS0dyYXBoaWNzV2lkZ2V0UHJpdmF0ZTsKKyAgICBmcmllbmQg
Y2xhc3MgUUdyYXBoaWNzV0tWaWV3OworICAgIGZyaWVuZCBjbGFzcyBRR3JhcGhpY3NXS1ZpZXd0
UHJpdmF0ZTsKICAgICBmcmllbmQgY2xhc3MgUVdLUGFnZVByaXZhdGU7CiAgICAgUVdLUGFnZVBy
aXZhdGUqIGQ7CiB9OwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2h1bmtlZFVwZGF0ZURy
YXdpbmdBcmVhUHJveHlRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHlRdC5jcHAJKHJldmlzaW9uIDYyNTM1KQorKysg
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHlRdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJVcGRhdGVDaHVuay5o
IgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgotI2lu
Y2x1ZGUgInF3a2dyYXBoaWNzd2lkZ2V0LmgiCisjaW5jbHVkZSAicWdyYXBoaWNzd2t2aWV3Lmgi
CiAjaW5jbHVkZSA8UVBhaW50ZXI+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpJbmRleDog
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gNjI1MzUpCisrKyBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAK
ICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgot
I2lmICFQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0
LmgiCiAjZW5kaWYKICNpbmNsdWRlICJSdW5Mb29wLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60952</attachid>
            <date>2010-07-08 13:59:47 -0700</date>
            <delta_ts>2010-07-09 08:39:45 -0700</delta_ts>
            <desc>MiniBrowser patch for landing</desc>
            <filename>0001-Implement-MiniBrowser-for-Qt.patch</filename>
            <type>text/plain</type>
            <size>12065</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA0YjExOTFmYjkzYmFiNjQyZjM1MzBhMzQ2MTZhZjExZGVlNjNlZjFlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aC5j
aHJpc3RpYW5zZW5Ab3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCA4IEp1bCAyMDEwIDE3OjU4OjE0
IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gSW1wbGVtZW50IE1pbmlCcm93c2VyIGZvciBRdC4KIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIzMwoKUmV2aWV3ZWQgYnkg
QW50dGkgS29pdmlzdG8uCgoqIE1pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuY3BwOiBBZGRl
ZC4KKGNyZWF0ZU5ld1BhZ2UpOgooQnJvd3NlclZpZXc6OkJyb3dzZXJWaWV3KToKKEJyb3dzZXJW
aWV3OjpyZXNpemVFdmVudCk6CihCcm93c2VyVmlldzo6bG9hZCk6CihCcm93c2VyVmlldzo6dmll
dyk6CihCcm93c2VyV2luZG93OjpCcm93c2VyV2luZG93KToKKEJyb3dzZXJXaW5kb3c6OmxvYWQp
OgooQnJvd3NlcldpbmRvdzo6Y2hhbmdlTG9jYXRpb24pOgooQnJvd3NlcldpbmRvdzo6fkJyb3dz
ZXJXaW5kb3cpOgoqIE1pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaDogQWRkZWQuCihCcm93
c2VyVmlldzo6fkJyb3dzZXJWaWV3KToKKiBNaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5wcm86
IEFkZGVkLgoqIE1pbmlCcm93c2VyL3F0L21haW4uY3BwOiBBZGRlZC4KKG1haW4pOgotLS0KIFdl
YktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMyArKysrKwog
V2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAgfCAgMTE0ICsrKysr
KysrKysrKysrKysrKysrKysrKysrCiBXZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2Vy
V2luZG93LmggICB8ICAgNzIgKysrKysrKysrKysrKysrKwogV2ViS2l0VG9vbHMvTWluaUJyb3dz
ZXIvcXQvTWluaUJyb3dzZXIucHJvICAgfCAgIDQ1ICsrKysrKysrKysKIFdlYktpdFRvb2xzL01p
bmlCcm93c2VyL3F0L21haW4uY3BwICAgICAgICAgIHwgICA0MiArKysrKysrKysrCiA1IGZpbGVz
IGNoYW5nZWQsIDI5NiBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYktpdFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5o
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dz
ZXIucHJvCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvbWFp
bi5jcHAKCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9D
aGFuZ2VMb2cKaW5kZXggNjYzZjg5MC4uN2Q1MDEyNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisy
MDEwLTA3LTA4ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGguY2hyaXN0aWFu
c2VuQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8u
CisKKyAgICAgICAgSW1wbGVtZW50IE1pbmlCcm93c2VyIGZvciBRdC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjMzCisKKyAgICAgICAgKiBNaW5p
QnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcDogQWRkZWQuCisgICAgICAgIChjcmVhdGVOZXdQ
YWdlKToKKyAgICAgICAgKEJyb3dzZXJWaWV3OjpCcm93c2VyVmlldyk6CisgICAgICAgIChCcm93
c2VyVmlldzo6cmVzaXplRXZlbnQpOgorICAgICAgICAoQnJvd3NlclZpZXc6OmxvYWQpOgorICAg
ICAgICAoQnJvd3NlclZpZXc6OnZpZXcpOgorICAgICAgICAoQnJvd3NlcldpbmRvdzo6QnJvd3Nl
cldpbmRvdyk6CisgICAgICAgIChCcm93c2VyV2luZG93Ojpsb2FkKToKKyAgICAgICAgKEJyb3dz
ZXJXaW5kb3c6OmNoYW5nZUxvY2F0aW9uKToKKyAgICAgICAgKEJyb3dzZXJXaW5kb3c6On5Ccm93
c2VyV2luZG93KToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93Lmg6IEFk
ZGVkLgorICAgICAgICAoQnJvd3NlclZpZXc6On5Ccm93c2VyVmlldyk6CisgICAgICAgICogTWlu
aUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucHJvOiBBZGRlZC4KKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9xdC9tYWluLmNwcDogQWRkZWQuCisgICAgICAgIChtYWluKToKKwogMjAxMC0wNy0wOCAgQWRh
bSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBXaW5kb3dzIHN0b3Ag
cnVubmluZyB0ZXN0cyBmcm9tIHBsYXRmb3JtL21hYwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
TWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAgYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nl
ci9xdC9Ccm93c2VyV2luZG93LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li45YjhhMmM3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQv
QnJvd3NlcldpbmRvdy5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqCisgKiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJCcm93c2VyV2luZG93LmgiCisjaW5jbHVkZSA8
V2ViS2l0Mi9XS1BhZ2VOYW1lc3BhY2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL3F3a3BhZ2UuaD4K
Kworc3RhdGljIFFXS1BhZ2UqIGNyZWF0ZU5ld1BhZ2UoUVdLUGFnZSogcGFnZSkKK3sKKyAgICBy
ZXR1cm4gcGFnZTsKK30KKworQnJvd3NlclZpZXc6OkJyb3dzZXJWaWV3KFFXaWRnZXQqIHBhcmVu
dCkKKyAgICA6IFFHcmFwaGljc1ZpZXcocGFyZW50KQorICAgICwgbV9pdGVtKDApCit7CisgICAg
bV9jb250ZXh0LmFkb3B0KFdLQ29udGV4dEdldFNoYXJlZFByb2Nlc3NDb250ZXh0KCkpOworCisg
ICAgV0tSZXRhaW5QdHI8V0tQYWdlTmFtZXNwYWNlUmVmPiBwYWdlTmFtZXNwYWNlKEFkb3B0V0ss
IFdLUGFnZU5hbWVzcGFjZUNyZWF0ZShtX2NvbnRleHQuZ2V0KCkpKTsKKworICAgIG1faXRlbSA9
IG5ldyBRR3JhcGhpY3NXS1ZpZXcocGFnZU5hbWVzcGFjZS5nZXQoKSwgUUdyYXBoaWNzV0tWaWV3
OjpTaW1wbGUsIDApOworICAgIHNldFNjZW5lKG5ldyBRR3JhcGhpY3NTY2VuZSh0aGlzKSk7Cisg
ICAgc2NlbmUoKS0+YWRkSXRlbShtX2l0ZW0pOworCisgICAgc2V0RnJhbWVTaGFwZShRRnJhbWU6
Ok5vRnJhbWUpOworICAgIHNldEhvcml6b250YWxTY3JvbGxCYXJQb2xpY3koUXQ6OlNjcm9sbEJh
ckFsd2F5c09mZik7CisgICAgc2V0VmVydGljYWxTY3JvbGxCYXJQb2xpY3koUXQ6OlNjcm9sbEJh
ckFsd2F5c09mZik7CisKKyAgICBjb25uZWN0KG1faXRlbSwgU0lHTkFMKHRpdGxlQ2hhbmdlZChR
U3RyaW5nKSksIHRoaXMsIFNMT1Qoc2V0V2luZG93VGl0bGUoUVN0cmluZykpKTsKKyAgICBtX2l0
ZW0tPnBhZ2UoKS0+c2V0Q3JlYXRlTmV3UGFnZUZ1bmN0aW9uKGNyZWF0ZU5ld1BhZ2UpOworfQor
Cit2b2lkIEJyb3dzZXJWaWV3OjpyZXNpemVFdmVudChRUmVzaXplRXZlbnQqIGV2ZW50KQorewor
ICAgIFFHcmFwaGljc1ZpZXc6OnJlc2l6ZUV2ZW50KGV2ZW50KTsKKyAgICBRUmVjdEYgcmVjdChR
UG9pbnQoMCwgMCksIGV2ZW50LT5zaXplKCkpOworICAgIG1faXRlbS0+c2V0R2VvbWV0cnkocmVj
dCk7CisgICAgc2NlbmUoKS0+c2V0U2NlbmVSZWN0KHJlY3QpOworfQorCit2b2lkIEJyb3dzZXJW
aWV3Ojpsb2FkKGNvbnN0IFFVcmwmIHVybCkKK3sKKyAgICBtX2l0ZW0tPmxvYWQodXJsKTsKK30K
KworUUdyYXBoaWNzV0tWaWV3KiBCcm93c2VyVmlldzo6dmlldygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1faXRlbTsKK30KKworQnJvd3NlcldpbmRvdzo6QnJvd3NlcldpbmRvdygpCit7CisgICAg
bV9tZW51ID0gbmV3IFFNZW51QmFyKCk7CisgICAgbV9icm93c2VyID0gbmV3IEJyb3dzZXJWaWV3
KCk7CisgICAgbV9hZGRyZXNzQmFyID0gbmV3IFFMaW5lRWRpdCgpOworCisgICAgbV9tZW51LT5h
ZGRBY3Rpb24oIlF1aXQiLCB0aGlzLCBTTE9UKGNsb3NlKCkpKTsKKworICAgIG1fYnJvd3Nlci0+
c2V0Rm9jdXMoUXQ6Ok90aGVyRm9jdXNSZWFzb24pOworCisgICAgY29ubmVjdChtX2FkZHJlc3NC
YXIsIFNJR05BTChyZXR1cm5QcmVzc2VkKCkpLCBTTE9UKGNoYW5nZUxvY2F0aW9uKCkpKTsKKwor
ICAgIFFUb29sQmFyKiBiYXIgPSBhZGRUb29sQmFyKCJOYXZpZ2F0aW9uIik7CisgICAgYmFyLT5h
ZGRXaWRnZXQobV9hZGRyZXNzQmFyKTsKKworICAgIHRoaXMtPnNldE1lbnVCYXIobV9tZW51KTsK
KyAgICB0aGlzLT5zZXRDZW50cmFsV2lkZ2V0KG1fYnJvd3Nlcik7CisKKyAgICBtX2Jyb3dzZXIt
PnNldEZvY3VzKFF0OjpPdGhlckZvY3VzUmVhc29uKTsKK30KKwordm9pZCBCcm93c2VyV2luZG93
Ojpsb2FkKGNvbnN0IFFTdHJpbmcmIHVybCkKK3sKKyAgICBtX2FkZHJlc3NCYXItPnNldFRleHQo
dXJsKTsKKyAgICBtX2Jyb3dzZXItPmxvYWQoUVVybCh1cmwpKTsKK30KKwordm9pZCBCcm93c2Vy
V2luZG93OjpjaGFuZ2VMb2NhdGlvbigpCit7CisgICAgUVN0cmluZyBzdHJpbmcgPSBtX2FkZHJl
c3NCYXItPnRleHQoKTsKKyAgICBtX2Jyb3dzZXItPmxvYWQoc3RyaW5nKTsKK30KKworQnJvd3Nl
cldpbmRvdzo6fkJyb3dzZXJXaW5kb3coKQoreworICAgIGRlbGV0ZSBtX2FkZHJlc3NCYXI7Cisg
ICAgZGVsZXRlIG1fYnJvd3NlcjsKKyAgICBkZWxldGUgbV9tZW51OworfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5oIGIvV2ViS2l0VG9vbHMv
TWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjMwYzUxMjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9NaW5pQnJv
d3Nlci9xdC9Ccm93c2VyV2luZG93LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICoKKyAqIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2RlZmluZSBQTEFURk9STSh4KSAwCisKKyNpbmNsdWRl
IDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxRdEd1aT4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWlu
UHRyLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0NvbnRleHQuaD4KKyNpbmNsdWRlIDxRR3JhcGhp
Y3NTY2VuZT4KKyNpbmNsdWRlIDxRR3JhcGhpY3NWaWV3PgorI2luY2x1ZGUgPFdlYktpdDIvcWdy
YXBoaWNzd2t2aWV3Lmg+CisKK2NsYXNzIEJyb3dzZXJWaWV3IDogcHVibGljIFFHcmFwaGljc1Zp
ZXcgeworICAgIFFfT0JKRUNUCisKK3B1YmxpYzoKKyAgICBCcm93c2VyVmlldyhRV2lkZ2V0KiBw
YXJlbnQgPSAwKTsKKyAgICB2aXJ0dWFsIH5Ccm93c2VyVmlldygpIHsgZGVsZXRlIG1faXRlbTsg
fQorCisgICAgdm9pZCBsb2FkKGNvbnN0IFFVcmwmKTsKKyAgICBRR3JhcGhpY3NXS1ZpZXcqIHZp
ZXcoKSBjb25zdDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCByZXNpemVFdmVudChR
UmVzaXplRXZlbnQqKTsKKworcHJpdmF0ZToKKyAgICBRR3JhcGhpY3NXS1ZpZXcqIG1faXRlbTsK
KyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IG1fY29udGV4dDsKK307CisKK2NsYXNzIEJy
b3dzZXJXaW5kb3cgOiBwdWJsaWMgUU1haW5XaW5kb3cgeworICAgIFFfT0JKRUNUCisKK3B1Ymxp
YzoKKyAgICBCcm93c2VyV2luZG93KCk7CisgICAgfkJyb3dzZXJXaW5kb3coKTsKKyAgICB2b2lk
IGxvYWQoY29uc3QgUVN0cmluZyYgdXJsKTsKKworcHJvdGVjdGVkIHNsb3RzOgorICAgIHZvaWQg
Y2hhbmdlTG9jYXRpb24oKTsKKworcHJpdmF0ZToKKyAgICBCcm93c2VyVmlldyogbV9icm93c2Vy
OworICAgIFFNZW51QmFyKiBtX21lbnU7CisgICAgUUxpbmVFZGl0KiBtX2FkZHJlc3NCYXI7Cit9
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucHJv
IGIvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucHJvCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhNTdkMWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXRUb29scy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5wcm8KQEAgLTAsMCArMSw0NSBAQAor
VEVNUExBVEUgPSBhcHAKK1RBUkdFVCA9IE1pbmlCcm93c2VyCisKK1NPVVJDRVMgKz0gXAorICAg
IG1haW4uY3BwIFwKKyAgICBCcm93c2VyV2luZG93LmNwcCBcCisKK0hFQURFUlMgKz0gXAorICAg
IEJyb3dzZXJXaW5kb3cuaCBcCisKK0NPTkZJRyArPSB1aXRvb2xzCisKK2lzRW1wdHkoT1VUUFVU
X0RJUik6IE9VVFBVVF9ESVIgPSAuLi8uLi8uLgoraW5jbHVkZSguLi8uLi8uLi9XZWJLaXQucHJp
KQorCitJTkNMVURFUEFUSCArPSAkJE9VVFBVVF9ESVIvaW5jbHVkZQorCitERVNURElSID0gJCRP
VVRQVVRfRElSL2JpbgorIUNPTkZJRyhzdGFuZGFsb25lX3BhY2thZ2UpOiBDT05GSUcgLT0gYXBw
X2J1bmRsZQorCitRVCArPSBuZXR3b3JrCittYWN4OlFUKz14bWwKKworbGludXgtKiB7CisgICAg
IyBGcm9tIENyZWF0b3IncyBzcmMvcnBhdGgucHJpOgorICAgICMgRG8gdGhlIHJwYXRoIGJ5IGhh
bmQgc2luY2UgaXQncyBub3QgcG9zc2libGUgdG8gdXNlIE9SSUdJTiBpbiBRTUFLRV9SUEFUSERJ
UgorICAgICMgdGhpcyBleHBhbmRzIHRvICRPUklHSU4gKGFmdGVyIHFtYWtlIGFuZCBtYWtlKSwg
aXQgZG9lcyBOT1QgcmVhZCBhIHFtYWtlIHZhci4KKyAgICBRTUFLRV9SUEFUSERJUiA9IFwkXCRP
UklHSU4vLi4vbGliICQkUU1BS0VfUlBBVEhESVIKKyAgICBNWV9SUEFUSCA9ICQkam9pbihRTUFL
RV9SUEFUSERJUiwgIjoiKQorCisgICAgUU1BS0VfTEZMQUdTICs9IC1XbCwteixvcmlnaW4gXCct
V2wsLXJwYXRoLCQke01ZX1JQQVRIfVwnCisgICAgUU1BS0VfUlBBVEhESVIgPQorfSBlbHNlIHsK
KyAgICBRTUFLRV9SUEFUSERJUiA9ICQkT1VUUFVUX0RJUi9saWIgJCRRTUFLRV9SUEFUSERJUgor
fQorCitzeW1iaWFuIHsKKyAgICBUQVJHRVQuVUlEMyA9IDB4QTAwMEU1NDMKKyAgICBUQVJHRVQu
Q0FQQUJJTElUWSA9IFJlYWRVc2VyRGF0YSBXcml0ZVVzZXJEYXRhIE5ldHdvcmtTZXJ2aWNlcwor
fQorCitjb250YWlucyhRVF9DT05GSUcsIG9wZW5nbCkgeworICAgIFFUICs9IG9wZW5nbAorICAg
IERFRklORVMgKz0gUVRfQ09ORklHVVJFRF9XSVRIX09QRU5HTAorfQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvbWFpbi5jcHAgYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nl
ci9xdC9tYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjYxMzk3
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvbWFpbi5jcHAK
QEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlIDxRdEd1aT4KKyNpbmNsdWRlICJCcm93c2VyV2luZG93Lmgi
CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICAgIFFBcHBsaWNhdGlvbiBh
cHAoYXJnYywgYXJndik7CisKKyAgICBCcm93c2VyV2luZG93IHdpbmRvdzsKKyAgICB3aW5kb3cu
cmVzaXplKDk2MCwgNjQwKTsKKyAgICB3aW5kb3cuc2hvdygpOworICAgIHdpbmRvdy5sb2FkKGFy
Z2MgPiAxID8gYXJndlsxXSA6ICJodHRwOi8vd3d3Lmdvb2dsZS5jb20iKTsKKworICAgIGFwcC5l
eGVjKCk7CisKKyAgICByZXR1cm4gMDsKK30KLS0gCjEuNy4xCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>