<?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>119964</bug_id>
          
          <creation_ts>2013-08-17 16:36:33 -0700</creation_ts>
          <short_desc>WebCore: Let Page create the main Frame.</short_desc>
          <delta_ts>2013-08-28 05:20:38 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>120092</dependson>
          <blocked>120323</blocked>
    
    <blocked>120349</blocked>
    
    <blocked>120360</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>abecsi</cc>
    
    <cc>abrhm</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>andersca</cc>
    
    <cc>ararunprasad</cc>
    
    <cc>arurajku</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>d-r</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>fmalita</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>japhet</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kadam</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>mrobinson</cc>
    
    <cc>nick.diego</cc>
    
    <cc>ossy</cc>
    
    <cc>pdr</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zan</cc>
    
    <cc>zarvai</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>918372</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-17 16:36:33 -0700</bug_when>
    <thetext>Today, Frame::create() calls Page::setMainFrame() when creating the main Frame for a Page.
This means that there&apos;s a period between Page construction and Frame construction where Page::m_mainFrame is null.

My goal here is to make Page::mainFrame() guaranteed non-null to disambiguate the code and remove a myriad of null checks.

I will be needing some help from port maintainers to get main Frame construction right since it involves setting up the initial FrameLoaderClient in port-specific ways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918373</commentid>
    <comment_count>1</comment_count>
      <attachid>209015</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-17 16:42:35 -0700</bug_when>
    <thetext>Created attachment 209015
First stab for EWS

Here&apos;s an initial attempt at this.

- The Page ctor now takes a &quot;FrameLoaderClient* loaderClientForMainFrame&quot; argument.
- The Page ctor now creates the mainFrame().
- The WebKit layer is modified to create its WebFrame classes wrapping an already instantiated WebCore::Frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918374</commentid>
    <comment_count>2</comment_count>
      <attachid>209016</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-17 16:46:05 -0700</bug_when>
    <thetext>Created attachment 209016
First stab for EWS + SVGImage bugfix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918375</commentid>
    <comment_count>3</comment_count>
      <attachid>209016</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-17 16:56:59 -0700</bug_when>
    <thetext>Comment on attachment 209016
First stab for EWS + SVGImage bugfix

Attachment 209016 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/1493209</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918376</commentid>
    <comment_count>4</comment_count>
      <attachid>209016</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-17 16:59:33 -0700</bug_when>
    <thetext>Comment on attachment 209016
First stab for EWS + SVGImage bugfix

Attachment 209016 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1501200</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918377</commentid>
    <comment_count>5</comment_count>
      <attachid>209016</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-08-17 17:02:34 -0700</bug_when>
    <thetext>Comment on attachment 209016
First stab for EWS + SVGImage bugfix

Attachment 209016 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/1439221</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918378</commentid>
    <comment_count>6</comment_count>
      <attachid>209016</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-08-17 17:21:40 -0700</bug_when>
    <thetext>Comment on attachment 209016
First stab for EWS + SVGImage bugfix

Attachment 209016 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/1394258</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918413</commentid>
    <comment_count>7</comment_count>
      <attachid>209025</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-18 04:37:10 -0700</bug_when>
    <thetext>Created attachment 209025
Second stab for EWS

Removed the extra Page constructor argument and added a PageClients::loaderClientForMainFrame pointer instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918481</commentid>
    <comment_count>8</comment_count>
      <attachid>209043</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-18 15:35:51 -0700</bug_when>
    <thetext>Created attachment 209043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918534</commentid>
    <comment_count>9</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-18 23:02:46 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=209043) [details]
&gt; Patch

I can take it for Qt port, If nobody is involved :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918643</commentid>
    <comment_count>10</comment_count>
      <attachid>209043</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-19 08:39:59 -0700</bug_when>
    <thetext>Comment on attachment 209043
Patch

This patch is missing the changes needed to build under Windows.  Once you land the patch, I can commit a build correction that adds this for Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918657</commentid>
    <comment_count>11</comment_count>
      <attachid>209093</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-08-19 09:34:03 -0700</bug_when>
    <thetext>Created attachment 209093
GTK-WK1 changes

Here are the changes required for the GTK port.
Thanks for waiting for these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918663</commentid>
    <comment_count>12</comment_count>
      <attachid>209093</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-08-19 09:55:51 -0700</bug_when>
    <thetext>Comment on attachment 209093
GTK-WK1 changes

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

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:556
&gt; -    WebKit::FrameLoaderClient* client = new WebKit::FrameLoaderClient(frame);
&gt; -    priv-&gt;coreFrame = Frame::create(viewPriv-&gt;corePage, 0, client).get();
&gt; +    priv-&gt;coreFrame = viewPriv-&gt;corePage-&gt;mainFrame();
&gt; +    static_cast&lt;WebKit::FrameLoaderClient*&gt;(viewPriv-&gt;corePage-&gt;mainFrame()-&gt;loader().client())-&gt;setWebFrame(frame);

This looks wrong to me, I think you&apos;ll end up with all WebKitWebFrames referring to the main frame (and will change the WebKitWebFrame the main frame&apos;s LoaderClient uses whenever a new one is created).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918675</commentid>
    <comment_count>13</comment_count>
      <attachid>209093</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-08-19 10:20:58 -0700</bug_when>
    <thetext>Comment on attachment 209093
GTK-WK1 changes

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

&gt;&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:556
&gt;&gt; +    static_cast&lt;WebKit::FrameLoaderClient*&gt;(viewPriv-&gt;corePage-&gt;mainFrame()-&gt;loader().client())-&gt;setWebFrame(frame);
&gt; 
&gt; This looks wrong to me, I think you&apos;ll end up with all WebKitWebFrames referring to the main frame (and will change the WebKitWebFrame the main frame&apos;s LoaderClient uses whenever a new one is created).

OK, I discussed this with Zan on IRC, we will further refactor this in a separate bug to clear this confusion up, I&apos;m good with landing it as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918684</commentid>
    <comment_count>14</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-19 10:36:02 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Created an attachment (id=209043) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; I can take it for Qt port, If nobody is involved :)

Guys, Qt side patch lives in https://gist.github.com/ararunprasad/6271826.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919235</commentid>
    <comment_count>15</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-20 14:28:02 -0700</bug_when>
    <thetext>I&apos;m having some trouble getting this working under Windows, mainly because the Windows WebFrame is subclassed from WebFrameLoaderClient.

I think this might be easier to land if I could do an initial patch that separated the WebFrameLoaderClient logic from WebFrame (have WebFrame contain a WebFrameLoaderClient member).  Once that is done, then this change would become much easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919246</commentid>
    <comment_count>16</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-20 14:51:12 -0700</bug_when>
    <thetext>I added a blocking bug (Bug 120092) to refactor the Windows code to make these changes easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921089</commentid>
    <comment_count>17</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-26 10:53:44 -0700</bug_when>
    <thetext>Committed r154616: &lt;http://trac.webkit.org/changeset/154616&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921163</commentid>
    <comment_count>18</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-26 14:33:59 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; Created an attachment (id=209043) [details] [details] [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; I can take it for Qt port, If nobody is involved :)
&gt; 
&gt; Guys, Qt side patch lives in https://gist.github.com/ararunprasad/6271826.

Could you land that change? I&apos;m not sure I can do it since it hasn&apos;t been through the patch upload license agreement here on bugzilla.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921184</commentid>
    <comment_count>19</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-08-26 15:12:02 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; Created an attachment (id=209043) [details] [details] [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; I can take it for Qt port, If nobody is involved :)
&gt; 
&gt; Guys, Qt side patch lives in https://gist.github.com/ararunprasad/6271826.

Otherwise it doesn&apos;t build at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921185</commentid>
    <comment_count>20</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-08-26 15:12:28 -0700</bug_when>
    <thetext>I missed to attach the build log:

Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp:96:87: error: invalid static_cast from type &apos;WebCore::FrameLoaderClient&apos; to type &apos;WebCore::FrameLoaderClientQt*&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921188</commentid>
    <comment_count>21</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-26 15:13:51 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #14)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; &gt; Created an attachment (id=209043) [details] [details] [details] [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; I can take it for Qt port, If nobody is involved :)
&gt; &gt; 
&gt; &gt; Guys, Qt side patch lives in https://gist.github.com/ararunprasad/6271826.
&gt; 
&gt; Otherwise it doesn&apos;t build at all.

A Qt person needs to upload a patch through our interface (thereby asserting that we are allowed to use it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921193</commentid>
    <comment_count>22</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-08-26 15:25:06 -0700</bug_when>
    <thetext>cc Qt developers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921340</commentid>
    <comment_count>23</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-26 23:41:59 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #14)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; &gt; Created an attachment (id=209043) [details] [details] [details] [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; I can take it for Qt port, If nobody is involved :)
&gt; &gt; 
&gt; &gt; Guys, Qt side patch lives in https://gist.github.com/ararunprasad/6271826.
&gt; 
&gt; Could you land that change? I&apos;m not sure I can do it since it hasn&apos;t been through the patch upload license agreement here on bugzilla.

I thought of uploading after getting green flag from Qt guys :)

Sorry for the License, it has same license as QWebFrameAdapter.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921341</commentid>
    <comment_count>24</comment_count>
      <attachid>209717</attachid>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-26 23:43:50 -0700</bug_when>
    <thetext>Created attachment 209717
Qt-Patch-For-119964.patch

Qt Side Patch (ChangeLog is missing, will upload a proper one soon)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921386</commentid>
    <comment_count>25</comment_count>
    <who name="Zoltan Arvai">zarvai</who>
    <bug_when>2013-08-27 02:09:29 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Created an attachment (id=209717) [details]
&gt; Qt-Patch-For-119964.patch
&gt; 
&gt; Qt Side Patch (ChangeLog is missing, will upload a proper one soon)

I got an error with the latest patch:

WebKit/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp:95:39: error: no match for &apos;operator=&apos; in &apos;((QWebFrameData*)this)-&gt;QWebFrameData::frame = parentPage-&gt;WebCore::Page::mainFrame()&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921388</commentid>
    <comment_count>26</comment_count>
      <attachid>209717</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-08-27 02:12:08 -0700</bug_when>
    <thetext>Comment on attachment 209717
Qt-Patch-For-119964.patch

r-, because it doesn&apos;t build. Otherwise it would be great to have a new
bug report on this regression instead of fixing something in a closed bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921390</commentid>
    <comment_count>27</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-27 02:14:50 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; Created an attachment (id=209717) [details] [details]
&gt; &gt; Qt-Patch-For-119964.patch
&gt; &gt; 
&gt; &gt; Qt Side Patch (ChangeLog is missing, will upload a proper one soon)
&gt; 
&gt; I got an error with the latest patch:
&gt; 
&gt; WebKit/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp:95:39: error: no match for &apos;operator=&apos; in &apos;((QWebFrameData*)this)-&gt;QWebFrameData::frame = parentPage-&gt;WebCore::Page::mainFrame()&apos;

It was against some old revisions, now mainFrame() returns Frame&amp; it seems.

@ line #95 change to, frame = &amp;parentPage-&gt;mainFrame();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921926</commentid>
    <comment_count>28</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-08-28 04:54:04 -0700</bug_when>
    <thetext>EFL WK1 is still broken because of this change.

before: http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Release%20WK1/builds/1529
after: http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Release%20WK1/builds/1480

Qt already fixed in https://bugs.webkit.org/show_bug.cgi?id=120349</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921932</commentid>
    <comment_count>29</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2013-08-28 05:18:26 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; EFL WK1 is still broken because of this change.
&gt; 
&gt; before: http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Release%20WK1/builds/1529
&gt; after: http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Release%20WK1/builds/1480
&gt; 
&gt; Qt already fixed in https://bugs.webkit.org/show_bug.cgi?id=120349

I created bug for EFL WK1.
https://bugs.webkit.org/show_bug.cgi?id=120360</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209015</attachid>
            <date>2013-08-17 16:42:35 -0700</date>
            <delta_ts>2013-08-17 16:46:05 -0700</delta_ts>
            <desc>First stab for EWS</desc>
            <filename>initial-monkeying-119964.diff</filename>
            <type>text/plain</type>
            <size>15350</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZTM0MjE3OC4uYTA5YWEyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTkwMiw3ICs5MDIsNyBAQCBfX1pON1dlYkNvcmU0UGFnZTZnb0JhY2tFdgogX19a
TjdXZWJDb3JlNFBhZ2U4Z29Ub0l0ZW1FUE5TXzExSGlzdG9yeUl0ZW1FTlNfMTNGcmFtZUxvYWRU
eXBlRQogX19aTjdXZWJDb3JlNFBhZ2U5Z29Gb3J3YXJkRXYKIF9fWk43V2ViQ29yZTRQYWdlOWlu
aXRHcm91cEV2Ci1fX1pON1dlYkNvcmU0UGFnZUMxRVJOUzBfMTFQYWdlQ2xpZW50c0UKK19fWk43
V2ViQ29yZTRQYWdlQzFFUk5TMF8xMVBhZ2VDbGllbnRzRVBOU18xN0ZyYW1lTG9hZGVyQ2xpZW50
RQogX19aTjdXZWJDb3JlNFBhZ2VEMUV2CiBfX1pON1dlYkNvcmU0UGF0aDE0YWRkUm91bmRlZFJl
Y3RFUktOU185RmxvYXRSZWN0RVJLTlNfOUZsb2F0U2l6ZUVOUzBfMTlSb3VuZGVkUmVjdFN0cmF0
ZWd5RQogX19aTjdXZWJDb3JlNFBhdGhDMUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yT3ZlcmxheS5jcHAKaW5kZXggYzM1NDFmOC4uYzBkOGZmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcApAQCAtNDM0LDcgKzQzNCw3
IEBAIFBhZ2UqIEluc3BlY3Rvck92ZXJsYXk6Om92ZXJsYXlQYWdlKCkKICAgICBzdGF0aWMgRnJh
bWVMb2FkZXJDbGllbnQqIGR1bW15RnJhbWVMb2FkZXJDbGllbnQgPSAgbmV3IEVtcHR5RnJhbWVM
b2FkZXJDbGllbnQ7CiAgICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7CiAgICAgZmls
bFdpdGhFbXB0eUNsaWVudHMocGFnZUNsaWVudHMpOwotICAgIG1fb3ZlcmxheVBhZ2UgPSBhZG9w
dFB0cihuZXcgUGFnZShwYWdlQ2xpZW50cykpOworICAgIG1fb3ZlcmxheVBhZ2UgPSBhZG9wdFB0
cihuZXcgUGFnZShwYWdlQ2xpZW50cywgZHVtbXlGcmFtZUxvYWRlckNsaWVudCkpOwogCiAgICAg
U2V0dGluZ3MmIHNldHRpbmdzID0gbV9wYWdlLT5zZXR0aW5ncygpOwogICAgIFNldHRpbmdzJiBv
dmVybGF5U2V0dGluZ3MgPSBtX292ZXJsYXlQYWdlLT5zZXR0aW5ncygpOwpAQCAtNDUxLDcgKzQ1
MSw3IEBAIFBhZ2UqIEluc3BlY3Rvck92ZXJsYXk6Om92ZXJsYXlQYWdlKCkKICAgICBvdmVybGF5
U2V0dGluZ3Muc2V0U2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICBvdmVybGF5U2V0dGluZ3Muc2V0
UGx1Z2luc0VuYWJsZWQoZmFsc2UpOwogCi0gICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IEZyYW1l
OjpjcmVhdGUobV9vdmVybGF5UGFnZS5nZXQoKSwgMCwgZHVtbXlGcmFtZUxvYWRlckNsaWVudCk7
CisgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fb3ZlcmxheVBhZ2UtPm1haW5GcmFtZSgpOwog
ICAgIGZyYW1lLT5zZXRWaWV3KEZyYW1lVmlldzo6Y3JlYXRlKGZyYW1lLmdldCgpKSk7CiAgICAg
ZnJhbWUtPmluaXQoKTsKICAgICBGcmFtZUxvYWRlciYgbG9hZGVyID0gZnJhbWUtPmxvYWRlcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBlZTcyNTJmLi41Mzc1ZDdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcApAQCAtMjAzLDEwICsyMDMsNyBAQCBpbmxpbmUgRnJhbWU6OkZyYW1lKFBhZ2UqIHBh
Z2UsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LCBGcmFtZUxvYWRlcgogCiBQ
YXNzUmVmUHRyPEZyYW1lPiBGcmFtZTo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIEhUTUxGcmFtZU93bmVy
RWxlbWVudCogb3duZXJFbGVtZW50LCBGcmFtZUxvYWRlckNsaWVudCogY2xpZW50KQogewotICAg
IFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBhZG9wdFJlZihuZXcgRnJhbWUocGFnZSwgb3duZXJFbGVt
ZW50LCBjbGllbnQpKTsKLSAgICBpZiAoIW93bmVyRWxlbWVudCkKLSAgICAgICAgcGFnZS0+c2V0
TWFpbkZyYW1lKGZyYW1lKTsKLSAgICByZXR1cm4gZnJhbWUucmVsZWFzZSgpOworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRnJhbWUocGFnZSwgb3duZXJFbGVtZW50LCBjbGllbnQpKTsKIH0KIAog
RnJhbWU6On5GcmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA1NmJlMjIzLi4zYWUxNmQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCBmbG9hdCBkZXZpY2VTY2FsZUZh
Y3RvcihGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIHBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCk7
CiB9CiAKLVBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQorUGFnZTo6UGFnZShQ
YWdlQ2xpZW50cyYgcGFnZUNsaWVudHMsIEZyYW1lTG9hZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUpCiAgICAgOiBtX2Nocm9tZShDaHJvbWU6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xp
ZW50cy5jaHJvbWVDbGllbnQpKQogICAgICwgbV9kcmFnQ2FyZXRDb250cm9sbGVyKERyYWdDYXJl
dENvbnRyb2xsZXI6OmNyZWF0ZSgpKQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0xNDIs
NiArMTQyLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAgICAgLCBt
X3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3Byb2dyZXNzKFByb2dy
ZXNzVHJhY2tlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihCYWNr
Rm9yd2FyZENvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5iYWNrRm9yd2FyZENs
aWVudCkpCisgICAgLCBtX21haW5GcmFtZShGcmFtZTo6Y3JlYXRlKHRoaXMsIDAsIGxvYWRlckNs
aWVudEZvck1haW5GcmFtZSkpCiAgICAgLCBtX3RoZW1lKFJlbmRlclRoZW1lOjp0aGVtZUZvclBh
Z2UodGhpcykpCiAgICAgLCBtX2VkaXRvckNsaWVudChwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQp
CiAgICAgLCBtX3BsdWdJbkNsaWVudChwYWdlQ2xpZW50cy5wbHVnSW5DbGllbnQpCkBAIC0zNDQs
MTIgKzM0NSw2IEBAIHZvaWQgUGFnZTo6c2V0Vmlld01vZGUoVmlld01vZGUgdmlld01vZGUpCiB9
CiAjZW5kaWYgLy8gRU5BQkxFKFZJRVdfTU9ERV9DU1NfTUVESUEpCiAKLXZvaWQgUGFnZTo6c2V0
TWFpbkZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+IG1haW5GcmFtZSkKLXsKLSAgICBBU1NFUlQoIW1f
bWFpbkZyYW1lKTsgLy8gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIGR1cmluZyBpbml0aWFsaXphdGlv
bgotICAgIG1fbWFpbkZyYW1lID0gbWFpbkZyYW1lOwotfQotCiBib29sIFBhZ2U6Om9wZW5lZEJ5
RE9NKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9vcGVuZWRCeURPTTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggZDIxNzI1NS4uYzg1ZWEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xh
c3MgRHJhZ0NvbnRyb2xsZXI7CiBjbGFzcyBFZGl0b3JDbGllbnQ7CiBjbGFzcyBGb2N1c0NvbnRy
b2xsZXI7CiBjbGFzcyBGcmFtZTsKK2NsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OwogY2xhc3MgRnJh
bWVTZWxlY3Rpb247CiBjbGFzcyBIYWx0YWJsZVBsdWdpbjsKIGNsYXNzIEhpc3RvcnlJdGVtOwpA
QCAtMTM4LDcgKzEzOSw3IEBAIHB1YmxpYzoKICAgICAgICAgVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogICAgIH07CiAKLSAgICBleHBsaWNpdCBQYWdl
KFBhZ2VDbGllbnRzJik7CisgICAgUGFnZShQYWdlQ2xpZW50cyYsIEZyYW1lTG9hZGVyQ2xpZW50
KiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUpOwogICAgIH5QYWdlKCk7CiAKICAgICBBcmVuYVNp
emUgcmVuZGVyVHJlZVNpemUoKSBjb25zdDsKQEAgLTE1OCw3ICsxNTksNiBAQCBwdWJsaWM6CiAg
ICAgRWRpdG9yQ2xpZW50KiBlZGl0b3JDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvckNs
aWVudDsgfQogICAgIFBsdWdJbkNsaWVudCogcGx1Z0luQ2xpZW50KCkgY29uc3QgeyByZXR1cm4g
bV9wbHVnSW5DbGllbnQ7IH0KIAotICAgIHZvaWQgc2V0TWFpbkZyYW1lKFBhc3NSZWZQdHI8RnJh
bWU+KTsKICAgICBGcmFtZSogbWFpbkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWUu
Z2V0KCk7IH0KIAogICAgIGJvb2wgb3BlbmVkQnlET00oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IDBiZjZlZmMuLjU1M2NiMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtMzYyLDcgKzM2Miw3IEBAIGJv
b2wgU1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgICAgICAv
LyBUaGlzIHdpbGwgYmVjb21lIGFuIGlzc3VlIHdoZW4gU1ZHSW1hZ2Ugd2lsbCBiZSBhYmxlIHRv
IGxvYWQgb3RoZXIKICAgICAgICAgLy8gU1ZHSW1hZ2Ugb2JqZWN0cywgYnV0IHdlJ3JlIHNhZmUg
bm93LCBiZWNhdXNlIFNWR0ltYWdlIGNhbiBvbmx5IGJlCiAgICAgICAgIC8vIGxvYWRlZCBieSBh
IHRvcC1sZXZlbCBkb2N1bWVudC4KLSAgICAgICAgbV9wYWdlID0gYWRvcHRQdHIobmV3IFBhZ2Uo
cGFnZUNsaWVudHMpKTsKKyAgICAgICAgbV9wYWdlID0gYWRvcHRQdHIobmV3IFBhZ2UocGFnZUNs
aWVudHMsIGR1bW15RnJhbWVMb2FkZXJDbGllbnQpKTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5n
cygpLnNldE1lZGlhRW5hYmxlZChmYWxzZSk7CiAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5z
ZXRTY3JpcHRFbmFibGVkKGZhbHNlKTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldFBs
dWdpbnNFbmFibGVkKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDQ3MGExMGEuLmFmZmYzMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtNTEsOCArNTEsOSBAQCB0eXBlZGVmIEhhc2hNYXA8UmVmUHRy
PFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPiwgUmV0YWluUHRyPFdlYlJlc291cmNlPiA+IFJlc291
cgogCiBjbGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgV2ViRnJhbWVMb2FkZXJDbGllbnQoV2ViRnJhbWUq
KTsKKyAgICBXZWJGcmFtZUxvYWRlckNsaWVudChXZWJGcmFtZSogPSAwKTsKIAorICAgIHZvaWQg
c2V0V2ViRnJhbWUoV2ViRnJhbWUqIHdlYkZyYW1lKSB7IG1fd2ViRnJhbWUgPSB3ZWJGcmFtZTsg
fQogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViRnJhbWUuZ2V0
KCk7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4
IDlmM2Y3NWIuLjJmNWVmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpA
QCAtMjg0LDcgKzI4NCwxNyBAQCBXZWJWaWV3ICpnZXRXZWJWaWV3KFdlYkZyYW1lICp3ZWJGcmFt
ZSkKIAogKyAodm9pZClfY3JlYXRlTWFpbkZyYW1lV2l0aFBhZ2U6KFBhZ2UqKXBhZ2UgZnJhbWVO
YW1lOihjb25zdCBTdHJpbmcmKW5hbWUgZnJhbWVWaWV3OihXZWJGcmFtZVZpZXcgKilmcmFtZVZp
ZXcKIHsKLSAgICBbc2VsZiBfY3JlYXRlRnJhbWVXaXRoUGFnZTpwYWdlIGZyYW1lTmFtZTpuYW1l
IGZyYW1lVmlldzpmcmFtZVZpZXcgb3duZXJFbGVtZW50OjBdOworICAgIFdlYlZpZXcgKndlYlZp
ZXcgPSBraXQocGFnZSk7CisKKyAgICBXZWJGcmFtZSAqZnJhbWUgPSBbW3NlbGYgYWxsb2NdIF9p
bml0V2l0aFdlYkZyYW1lVmlldzpmcmFtZVZpZXcgd2ViVmlldzp3ZWJWaWV3XTsKKyAgICBmcmFt
ZS0+X3ByaXZhdGUtPmNvcmVGcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOworICAgIHN0YXRpY19j
YXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4ocGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLmNs
aWVudCgpKS0+c2V0V2ViRnJhbWUoZnJhbWUpOworICAgIFtmcmFtZSByZWxlYXNlXTsKKworICAg
IHBhZ2UtPm1haW5GcmFtZSgpLT50cmVlKCktPnNldE5hbWUobmFtZSk7CisgICAgcGFnZS0+bWFp
bkZyYW1lKCktPmluaXQoKTsKKworICAgIFt3ZWJWaWV3IF9zZXRab29tTXVsdGlwbGllcjpbd2Vi
VmlldyBfcmVhbFpvb21NdWx0aXBsaWVyXSBpc1RleHRPbmx5Olt3ZWJWaWV3IF9yZWFsWm9vbU11
bHRpcGxpZXJJc1RleHRPbmx5XV07CiB9CiAKICsgKFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+
KV9jcmVhdGVTdWJmcmFtZVdpdGhPd25lckVsZW1lbnQ6KEhUTUxGcmFtZU93bmVyRWxlbWVudCop
b3duZXJFbGVtZW50IGZyYW1lTmFtZTooY29uc3QgU3RyaW5nJiluYW1lIGZyYW1lVmlldzooV2Vi
RnJhbWVWaWV3ICopZnJhbWVWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5k
ZXggMWZjNmM4NC4uZjU4MjI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpA
QCAtNjEsNiArNjEsNyBAQAogI2ltcG9ydCAiV2ViRWRpdG9yQ2xpZW50LmgiCiAjaW1wb3J0ICJX
ZWJGb3JtRGVsZWdhdGVQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJGcmFtZUludGVybmFsLmgiCisj
aW1wb3J0ICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgogI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIgogI2ltcG9ydCAiV2ViRnJhbWVWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQg
IldlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmgiCkBAIC03NjAsNyArNzYxLDcgQEAgc3RhdGljIGJv
b2wgc2hvdWxkVXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcigpCiAjZW5k
aWYKICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xp
ZW50KHNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmFsdGVybmF0aXZlVGV4dENsaWVudCA9IG5ldyBX
ZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQoc2VsZik7Ci0gICAgX3ByaXZhdGUtPnBhZ2UgPSBuZXcg
UGFnZShwYWdlQ2xpZW50cyk7CisgICAgX3ByaXZhdGUtPnBhZ2UgPSBuZXcgUGFnZShwYWdlQ2xp
ZW50cywgbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50KTsKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04p
CiAgICAgV2ViQ29yZTo6cHJvdmlkZUdlb2xvY2F0aW9uVG8oX3ByaXZhdGUtPnBhZ2UsIG5ldyBX
ZWJHZW9sb2NhdGlvbkNsaWVudChzZWxmKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKaW5kZXggZDI3NzhjZS4uMWY1NDE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTgxLDggKzgxLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJGcmFtZUxvYWRlckNsaWVudDo6V2ViRnJhbWVM
b2FkZXJDbGllbnQoV2ViRnJhbWUqIGZyYW1lKQotICAgIDogbV9mcmFtZShmcmFtZSkKK1dlYkZy
YW1lTG9hZGVyQ2xpZW50OjpXZWJGcmFtZUxvYWRlckNsaWVudCgpCisgICAgOiBtX2ZyYW1lKDAp
CiAgICAgLCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luVmlldyhmYWxzZSkKICAgICAsIG1fZGlk
Q29tcGxldGVQYWdlVHJhbnNpdGlvbkFscmVhZHkoZmFsc2UpCiAgICAgLCBtX2ZyYW1lQ2FtZUZy
b21QYWdlQ2FjaGUoZmFsc2UpCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkKIHsKICAgICBtX2ZyYW1lLT5pbnZhbGlkYXRl
KCk7CiAKLSAgICAvLyBCYWxhbmNlcyBleHBsaWNpdCByZWYoKSBpbiBXZWJGcmFtZTo6Y3JlYXRl
TWFpbkZyYW1lIGFuZCBXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUuCisgICAgLy8gQmFsYW5jZXMg
ZXhwbGljaXQgcmVmKCkgaW4gV2ViRnJhbWU6OmNyZWF0ZSgpLgogICAgIG1fZnJhbWUtPmRlcmVm
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBlMDBkM2ZmLi43NDBj
MDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zNSw5ICszNSwxMCBAQCBj
bGFzcyBXZWJGcmFtZTsKICAgICAKIGNsYXNzIFdlYkZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGlj
IFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBXZWJGcmFtZUxvYWRl
ckNsaWVudChXZWJGcmFtZSopOworICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KCk7CiAgICAgfldl
YkZyYW1lTG9hZGVyQ2xpZW50KCk7CiAKKyAgICB2b2lkIHNldFdlYkZyYW1lKFdlYkZyYW1lKiB3
ZWJGcmFtZSkgeyBtX2ZyYW1lID0gd2ViRnJhbWU7IH0KICAgICBXZWJGcmFtZSogd2ViRnJhbWUo
KSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCBiY2VjNzFkLi4xMjU3YWI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAK
QEAgLTEwMiwyMCArMTAyLDE5IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxpc3RlbmVySUQo
KQogICAgIHJldHVybiB1bmlxdWVMaXN0ZW5lcklEKys7CiB9CiAKLVBhc3NSZWZQdHI8V2ViRnJh
bWU+IFdlYkZyYW1lOjpjcmVhdGVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSkKK1Bhc3NSZWZQdHI8
V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29yZU1haW5GcmFtZShXZWJQYWdlKiBwYWdl
LCBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKQogewotICAgIFJlZlB0cjxXZWJGcmFtZT4gZnJh
bWUgPSBjcmVhdGUoKTsKLQorICAgIFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBjcmVhdGUoYWRv
cHRQdHIoc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGllbnQqPihjb3JlRnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpKSkpOwogICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkQ3JlYXRlTWFpbkZyYW1lKGZyYW1lLT5mcmFtZUlEKCkpKTsKLQotICAgIGZyYW1lLT5pbml0
KHBhZ2UsIFN0cmluZygpLCAwKTsKLQorICAgIGZyYW1lLT5tX2NvcmVGcmFtZSA9IGNvcmVGcmFt
ZTsKKyAgICBmcmFtZS0+bV9jb3JlRnJhbWUtPnRyZWUoKS0+c2V0TmFtZShTdHJpbmcoKSk7Cisg
ICAgZnJhbWUtPm1fY29yZUZyYW1lLT5pbml0KCk7CiAgICAgcmV0dXJuIGZyYW1lLnJlbGVhc2Uo
KTsKIH0KIAogUGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdl
YlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25lckVsZW1l
bnQqIG93bmVyRWxlbWVudCkKIHsKLSAgICBSZWZQdHI8V2ViRnJhbWU+IGZyYW1lID0gY3JlYXRl
KCk7CisgICAgUmVmUHRyPFdlYkZyYW1lPiBmcmFtZSA9IGNyZWF0ZShhZG9wdFB0cihuZXcgV2Vi
RnJhbWVMb2FkZXJDbGllbnQpKTsKIAogICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGlkQ3JlYXRlU3ViZnJhbWUoZnJhbWUtPmZyYW1lSUQoKSkpOwogCkBAIC0xMjQsOSAr
MTIzLDkgQEAgUGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdl
YlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJhbWUKICAgICByZXR1cm4gZnJhbWUucmVsZWFz
ZSgpOwogfQogCi1QYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlKCkKK1Bhc3NS
ZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGUoUGFzc093blB0cjxXZWJGcmFtZUxvYWRl
ckNsaWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCiB7Ci0gICAgUmVmUHRyPFdlYkZyYW1lPiBmcmFt
ZSA9IGFkb3B0UmVmKG5ldyBXZWJGcmFtZSk7CisgICAgUmVmUHRyPFdlYkZyYW1lPiBmcmFtZSA9
IGFkb3B0UmVmKG5ldyBXZWJGcmFtZShmcmFtZUxvYWRlckNsaWVudCkpOwogCiAgICAgLy8gQWRk
IGV4cGxpY3QgcmVmKCkgdGhhdCB3aWxsIGJlIGJhbGFuY2VkIGluIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpmcmFtZUxvYWRlckRlc3Ryb3llZCgpLgogICAgIGZyYW1lLT5yZWYoKTsKQEAgLTEzNCwx
NSArMTMzLDE2IEBAIFBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGUoKQogICAg
IHJldHVybiBmcmFtZS5yZWxlYXNlKCk7CiB9CiAKLVdlYkZyYW1lOjpXZWJGcmFtZSgpCitXZWJG
cmFtZTo6V2ViRnJhbWUoUGFzc093blB0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2Fk
ZXJDbGllbnQpCiAgICAgOiBtX2NvcmVGcmFtZSgwKQogICAgICwgbV9wb2xpY3lMaXN0ZW5lcklE
KDApCiAgICAgLCBtX3BvbGljeUZ1bmN0aW9uKDApCiAgICAgLCBtX3BvbGljeURvd25sb2FkSUQo
MCkKLSAgICAsIG1fZnJhbWVMb2FkZXJDbGllbnQodGhpcykKKyAgICAsIG1fZnJhbWVMb2FkZXJD
bGllbnQoZnJhbWVMb2FkZXJDbGllbnQpCiAgICAgLCBtX2xvYWRMaXN0ZW5lcigwKQogICAgICwg
bV9mcmFtZUlEKGdlbmVyYXRlRnJhbWVJRCgpKQogeworICAgIG1fZnJhbWVMb2FkZXJDbGllbnQt
PnNldFdlYkZyYW1lKHRoaXMpOwogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmFkZFdlYkZyYW1l
KG1fZnJhbWVJRCwgdGhpcyk7CiAKICNpZm5kZWYgTkRFQlVHCkBAIC0xNjEsNyArMTYxLDcgQEAg
V2ViRnJhbWU6On5XZWJGcmFtZSgpCiAKIHZvaWQgV2ViRnJhbWU6OmluaXQoV2ViUGFnZSogcGFn
ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJF
bGVtZW50KQogewotICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2Ut
PmNvcmVQYWdlKCksIG93bmVyRWxlbWVudCwgJm1fZnJhbWVMb2FkZXJDbGllbnQpOworICAgIFJl
ZlB0cjxGcmFtZT4gZnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UtPmNvcmVQYWdlKCksIG93bmVy
RWxlbWVudCwgbV9mcmFtZUxvYWRlckNsaWVudC5nZXQoKSk7CiAgICAgbV9jb3JlRnJhbWUgPSBm
cmFtZS5nZXQoKTsKIAogICAgIGZyYW1lLT50cmVlKCktPnNldE5hbWUoZnJhbWVOYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggYmY2OWJh
MS4uN2EzMWIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmgKQEAgLTU3LDcgKzU3LDcgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3MgV2ViRnJhbWUg
OiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlQnVuZGxlRnJhbWU+IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRlTWFpbkZyYW1lKFdl
YlBhZ2UqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRlV2l0aENvcmVN
YWluRnJhbWUoV2ViUGFnZSosIFdlYkNvcmU6OkZyYW1lKik7CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViRnJhbWU+IGNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIGZyYW1l
TmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CiAgICAgfldlYkZyYW1lKCk7
CiAKQEAgLTE0MSw4ICsxNDEsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRlKCk7Ci0gICAgV2ViRnJhbWUoKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViRnJhbWVM
b2FkZXJDbGllbnQ+KTsKKyAgICBXZWJGcmFtZShQYXNzT3duUHRyPFdlYkZyYW1lTG9hZGVyQ2xp
ZW50Pik7CiAKICAgICB2b2lkIGluaXQoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1l
LCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsKIApAQCAtMTUyLDcgKzE1Miw3IEBA
IHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiBtX3BvbGljeUZ1bmN0
aW9uOwogICAgIHVpbnQ2NF90IG1fcG9saWN5RG93bmxvYWRJRDsKIAotICAgIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50IG1fZnJhbWVMb2FkZXJDbGllbnQ7CisgICAgT3duUHRyPFdlYkZyYW1lTG9hZGVy
Q2xpZW50PiBtX2ZyYW1lTG9hZGVyQ2xpZW50OwogICAgIExvYWRMaXN0ZW5lciogbV9sb2FkTGlz
dGVuZXI7CiAgICAgCiAgICAgdWludDY0X3QgbV9mcmFtZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDc5ZmZhY2UuLjBlMzQzYjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYz
LDYgKzYzLDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkV2ZW50Q29u
dmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgogI2luY2x1ZGUg
IldlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlv
bkNsaWVudC5oIgpAQCAtMzE2LDcgKzMxNywxMiBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90
IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICNl
bmRpZgogICAgIHBhZ2VDbGllbnRzLnBsdWdJbkNsaWVudCA9IG5ldyBXZWJQbHVnSW5DbGllbnQo
dGhpcyk7CiAKLSAgICBtX3BhZ2UgPSBhZG9wdFB0cihuZXcgUGFnZShwYWdlQ2xpZW50cykpOwor
ICAgIG1fcGFnZSA9IGFkb3B0UHRyKG5ldyBQYWdlKHBhZ2VDbGllbnRzLCBuZXcgV2ViRnJhbWVM
b2FkZXJDbGllbnQpKTsKKworICAgIG1fZHJhd2luZ0FyZWEgPSBEcmF3aW5nQXJlYTo6Y3JlYXRl
KHRoaXMsIHBhcmFtZXRlcnMpOworICAgIG1fZHJhd2luZ0FyZWEtPnNldFBhaW50aW5nRW5hYmxl
ZChmYWxzZSk7CisKKyAgICBtX21haW5GcmFtZSA9IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29yZU1h
aW5GcmFtZSh0aGlzLCBtX3BhZ2UtPm1haW5GcmFtZSgpKTsKIAogI2lmIEVOQUJMRShCQVRURVJZ
X1NUQVRVUykKICAgICBXZWJDb3JlOjpwcm92aWRlQmF0dGVyeVRvKG1fcGFnZS5nZXQoKSwgbmV3
IFdlYkJhdHRlcnlDbGllbnQodGhpcykpOwpAQCAtMzQ4LDE0ICszNTQsOSBAQCBXZWJQYWdlOjpX
ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYg
cGFyYW1ldGVycykKICAgICBtX3BhZ2UtPnNldEdyb3VwTmFtZShtX3BhZ2VHcm91cC0+aWRlbnRp
ZmllcigpKTsKICAgICBtX3BhZ2UtPnNldERldmljZVNjYWxlRmFjdG9yKHBhcmFtZXRlcnMuZGV2
aWNlU2NhbGVGYWN0b3IpOwogCi0gICAgbV9kcmF3aW5nQXJlYSA9IERyYXdpbmdBcmVhOjpjcmVh
dGUodGhpcywgcGFyYW1ldGVycyk7Ci0gICAgbV9kcmF3aW5nQXJlYS0+c2V0UGFpbnRpbmdFbmFi
bGVkKGZhbHNlKTsKLQogICAgIHVwZGF0ZVByZWZlcmVuY2VzKHBhcmFtZXRlcnMuc3RvcmUpOwog
ICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCi0gICAgbV9tYWluRnJhbWUgPSBXZWJGcmFtZTo6
Y3JlYXRlTWFpbkZyYW1lKHRoaXMpOwotCiAgICAgc2V0VXNlRml4ZWRMYXlvdXQocGFyYW1ldGVy
cy51c2VGaXhlZExheW91dCk7CiAKICAgICBzZXREcmF3c0JhY2tncm91bmQocGFyYW1ldGVycy5k
cmF3c0JhY2tncm91bmQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209016</attachid>
            <date>2013-08-17 16:46:05 -0700</date>
            <delta_ts>2013-08-18 04:37:10 -0700</delta_ts>
            <desc>First stab for EWS + SVGImage bugfix</desc>
            <filename>initial-monkeying-119964-v2.diff</filename>
            <type>text/plain</type>
            <size>15622</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZTM0MjE3OC4uYTA5YWEyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTkwMiw3ICs5MDIsNyBAQCBfX1pON1dlYkNvcmU0UGFnZTZnb0JhY2tFdgogX19a
TjdXZWJDb3JlNFBhZ2U4Z29Ub0l0ZW1FUE5TXzExSGlzdG9yeUl0ZW1FTlNfMTNGcmFtZUxvYWRU
eXBlRQogX19aTjdXZWJDb3JlNFBhZ2U5Z29Gb3J3YXJkRXYKIF9fWk43V2ViQ29yZTRQYWdlOWlu
aXRHcm91cEV2Ci1fX1pON1dlYkNvcmU0UGFnZUMxRVJOUzBfMTFQYWdlQ2xpZW50c0UKK19fWk43
V2ViQ29yZTRQYWdlQzFFUk5TMF8xMVBhZ2VDbGllbnRzRVBOU18xN0ZyYW1lTG9hZGVyQ2xpZW50
RQogX19aTjdXZWJDb3JlNFBhZ2VEMUV2CiBfX1pON1dlYkNvcmU0UGF0aDE0YWRkUm91bmRlZFJl
Y3RFUktOU185RmxvYXRSZWN0RVJLTlNfOUZsb2F0U2l6ZUVOUzBfMTlSb3VuZGVkUmVjdFN0cmF0
ZWd5RQogX19aTjdXZWJDb3JlNFBhdGhDMUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yT3ZlcmxheS5jcHAKaW5kZXggYzM1NDFmOC4uYzBkOGZmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcApAQCAtNDM0LDcgKzQzNCw3
IEBAIFBhZ2UqIEluc3BlY3Rvck92ZXJsYXk6Om92ZXJsYXlQYWdlKCkKICAgICBzdGF0aWMgRnJh
bWVMb2FkZXJDbGllbnQqIGR1bW15RnJhbWVMb2FkZXJDbGllbnQgPSAgbmV3IEVtcHR5RnJhbWVM
b2FkZXJDbGllbnQ7CiAgICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7CiAgICAgZmls
bFdpdGhFbXB0eUNsaWVudHMocGFnZUNsaWVudHMpOwotICAgIG1fb3ZlcmxheVBhZ2UgPSBhZG9w
dFB0cihuZXcgUGFnZShwYWdlQ2xpZW50cykpOworICAgIG1fb3ZlcmxheVBhZ2UgPSBhZG9wdFB0
cihuZXcgUGFnZShwYWdlQ2xpZW50cywgZHVtbXlGcmFtZUxvYWRlckNsaWVudCkpOwogCiAgICAg
U2V0dGluZ3MmIHNldHRpbmdzID0gbV9wYWdlLT5zZXR0aW5ncygpOwogICAgIFNldHRpbmdzJiBv
dmVybGF5U2V0dGluZ3MgPSBtX292ZXJsYXlQYWdlLT5zZXR0aW5ncygpOwpAQCAtNDUxLDcgKzQ1
MSw3IEBAIFBhZ2UqIEluc3BlY3Rvck92ZXJsYXk6Om92ZXJsYXlQYWdlKCkKICAgICBvdmVybGF5
U2V0dGluZ3Muc2V0U2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICBvdmVybGF5U2V0dGluZ3Muc2V0
UGx1Z2luc0VuYWJsZWQoZmFsc2UpOwogCi0gICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IEZyYW1l
OjpjcmVhdGUobV9vdmVybGF5UGFnZS5nZXQoKSwgMCwgZHVtbXlGcmFtZUxvYWRlckNsaWVudCk7
CisgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fb3ZlcmxheVBhZ2UtPm1haW5GcmFtZSgpOwog
ICAgIGZyYW1lLT5zZXRWaWV3KEZyYW1lVmlldzo6Y3JlYXRlKGZyYW1lLmdldCgpKSk7CiAgICAg
ZnJhbWUtPmluaXQoKTsKICAgICBGcmFtZUxvYWRlciYgbG9hZGVyID0gZnJhbWUtPmxvYWRlcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBlZTcyNTJmLi41Mzc1ZDdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcApAQCAtMjAzLDEwICsyMDMsNyBAQCBpbmxpbmUgRnJhbWU6OkZyYW1lKFBhZ2UqIHBh
Z2UsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LCBGcmFtZUxvYWRlcgogCiBQ
YXNzUmVmUHRyPEZyYW1lPiBGcmFtZTo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIEhUTUxGcmFtZU93bmVy
RWxlbWVudCogb3duZXJFbGVtZW50LCBGcmFtZUxvYWRlckNsaWVudCogY2xpZW50KQogewotICAg
IFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBhZG9wdFJlZihuZXcgRnJhbWUocGFnZSwgb3duZXJFbGVt
ZW50LCBjbGllbnQpKTsKLSAgICBpZiAoIW93bmVyRWxlbWVudCkKLSAgICAgICAgcGFnZS0+c2V0
TWFpbkZyYW1lKGZyYW1lKTsKLSAgICByZXR1cm4gZnJhbWUucmVsZWFzZSgpOworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRnJhbWUocGFnZSwgb3duZXJFbGVtZW50LCBjbGllbnQpKTsKIH0KIAog
RnJhbWU6On5GcmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA1NmJlMjIzLi4zYWUxNmQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCBmbG9hdCBkZXZpY2VTY2FsZUZh
Y3RvcihGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIHBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCk7
CiB9CiAKLVBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQorUGFnZTo6UGFnZShQ
YWdlQ2xpZW50cyYgcGFnZUNsaWVudHMsIEZyYW1lTG9hZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUpCiAgICAgOiBtX2Nocm9tZShDaHJvbWU6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xp
ZW50cy5jaHJvbWVDbGllbnQpKQogICAgICwgbV9kcmFnQ2FyZXRDb250cm9sbGVyKERyYWdDYXJl
dENvbnRyb2xsZXI6OmNyZWF0ZSgpKQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0xNDIs
NiArMTQyLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAgICAgLCBt
X3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3Byb2dyZXNzKFByb2dy
ZXNzVHJhY2tlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihCYWNr
Rm9yd2FyZENvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5iYWNrRm9yd2FyZENs
aWVudCkpCisgICAgLCBtX21haW5GcmFtZShGcmFtZTo6Y3JlYXRlKHRoaXMsIDAsIGxvYWRlckNs
aWVudEZvck1haW5GcmFtZSkpCiAgICAgLCBtX3RoZW1lKFJlbmRlclRoZW1lOjp0aGVtZUZvclBh
Z2UodGhpcykpCiAgICAgLCBtX2VkaXRvckNsaWVudChwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQp
CiAgICAgLCBtX3BsdWdJbkNsaWVudChwYWdlQ2xpZW50cy5wbHVnSW5DbGllbnQpCkBAIC0zNDQs
MTIgKzM0NSw2IEBAIHZvaWQgUGFnZTo6c2V0Vmlld01vZGUoVmlld01vZGUgdmlld01vZGUpCiB9
CiAjZW5kaWYgLy8gRU5BQkxFKFZJRVdfTU9ERV9DU1NfTUVESUEpCiAKLXZvaWQgUGFnZTo6c2V0
TWFpbkZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+IG1haW5GcmFtZSkKLXsKLSAgICBBU1NFUlQoIW1f
bWFpbkZyYW1lKTsgLy8gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIGR1cmluZyBpbml0aWFsaXphdGlv
bgotICAgIG1fbWFpbkZyYW1lID0gbWFpbkZyYW1lOwotfQotCiBib29sIFBhZ2U6Om9wZW5lZEJ5
RE9NKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9vcGVuZWRCeURPTTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggZDIxNzI1NS4uYzg1ZWEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xh
c3MgRHJhZ0NvbnRyb2xsZXI7CiBjbGFzcyBFZGl0b3JDbGllbnQ7CiBjbGFzcyBGb2N1c0NvbnRy
b2xsZXI7CiBjbGFzcyBGcmFtZTsKK2NsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OwogY2xhc3MgRnJh
bWVTZWxlY3Rpb247CiBjbGFzcyBIYWx0YWJsZVBsdWdpbjsKIGNsYXNzIEhpc3RvcnlJdGVtOwpA
QCAtMTM4LDcgKzEzOSw3IEBAIHB1YmxpYzoKICAgICAgICAgVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogICAgIH07CiAKLSAgICBleHBsaWNpdCBQYWdl
KFBhZ2VDbGllbnRzJik7CisgICAgUGFnZShQYWdlQ2xpZW50cyYsIEZyYW1lTG9hZGVyQ2xpZW50
KiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUpOwogICAgIH5QYWdlKCk7CiAKICAgICBBcmVuYVNp
emUgcmVuZGVyVHJlZVNpemUoKSBjb25zdDsKQEAgLTE1OCw3ICsxNTksNiBAQCBwdWJsaWM6CiAg
ICAgRWRpdG9yQ2xpZW50KiBlZGl0b3JDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvckNs
aWVudDsgfQogICAgIFBsdWdJbkNsaWVudCogcGx1Z0luQ2xpZW50KCkgY29uc3QgeyByZXR1cm4g
bV9wbHVnSW5DbGllbnQ7IH0KIAotICAgIHZvaWQgc2V0TWFpbkZyYW1lKFBhc3NSZWZQdHI8RnJh
bWU+KTsKICAgICBGcmFtZSogbWFpbkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWUu
Z2V0KCk7IH0KIAogICAgIGJvb2wgb3BlbmVkQnlET00oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IDBiZjZlZmMuLjcwZWI1NjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtMzYyLDEyICszNjIsMTIgQEAg
Ym9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAgICAgICAg
IC8vIFRoaXMgd2lsbCBiZWNvbWUgYW4gaXNzdWUgd2hlbiBTVkdJbWFnZSB3aWxsIGJlIGFibGUg
dG8gbG9hZCBvdGhlcgogICAgICAgICAvLyBTVkdJbWFnZSBvYmplY3RzLCBidXQgd2UncmUgc2Fm
ZSBub3csIGJlY2F1c2UgU1ZHSW1hZ2UgY2FuIG9ubHkgYmUKICAgICAgICAgLy8gbG9hZGVkIGJ5
IGEgdG9wLWxldmVsIGRvY3VtZW50LgotICAgICAgICBtX3BhZ2UgPSBhZG9wdFB0cihuZXcgUGFn
ZShwYWdlQ2xpZW50cykpOworICAgICAgICBtX3BhZ2UgPSBhZG9wdFB0cihuZXcgUGFnZShwYWdl
Q2xpZW50cywgZHVtbXlGcmFtZUxvYWRlckNsaWVudCkpOwogICAgICAgICBtX3BhZ2UtPnNldHRp
bmdzKCkuc2V0TWVkaWFFbmFibGVkKGZhbHNlKTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygp
LnNldFNjcmlwdEVuYWJsZWQoZmFsc2UpOwogICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCkuc2V0
UGx1Z2luc0VuYWJsZWQoZmFsc2UpOwogCi0gICAgICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBG
cmFtZTo6Y3JlYXRlKG1fcGFnZS5nZXQoKSwgMCwgZHVtbXlGcmFtZUxvYWRlckNsaWVudCk7Cisg
ICAgICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOwogICAgICAg
ICBmcmFtZS0+c2V0VmlldyhGcmFtZVZpZXc6OmNyZWF0ZShmcmFtZS5nZXQoKSkpOwogICAgICAg
ICBmcmFtZS0+aW5pdCgpOwogICAgICAgICBGcmFtZUxvYWRlciYgbG9hZGVyID0gZnJhbWUtPmxv
YWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNDcwYTEwYS4uYWZmZjMwNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCkBAIC01MSw4ICs1MSw5IEBAIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6UmVz
b3VyY2VMb2FkZXI+LCBSZXRhaW5QdHI8V2ViUmVzb3VyY2U+ID4gUmVzb3VyCiAKIGNsYXNzIFdl
YkZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBXZWJGcmFtZUxvYWRlckNsaWVudChXZWJGcmFtZSopOworICAgIFdlYkZy
YW1lTG9hZGVyQ2xpZW50KFdlYkZyYW1lKiA9IDApOwogCisgICAgdm9pZCBzZXRXZWJGcmFtZShX
ZWJGcmFtZSogd2ViRnJhbWUpIHsgbV93ZWJGcmFtZSA9IHdlYkZyYW1lOyB9CiAgICAgV2ViRnJh
bWUqIHdlYkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV93ZWJGcmFtZS5nZXQoKTsgfQogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggOWYzZjc1Yi4uMmY1
ZWY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0yODQsNyArMjg0
LDE3IEBAIFdlYlZpZXcgKmdldFdlYlZpZXcoV2ViRnJhbWUgKndlYkZyYW1lKQogCiArICh2b2lk
KV9jcmVhdGVNYWluRnJhbWVXaXRoUGFnZTooUGFnZSopcGFnZSBmcmFtZU5hbWU6KGNvbnN0IFN0
cmluZyYpbmFtZSBmcmFtZVZpZXc6KFdlYkZyYW1lVmlldyAqKWZyYW1lVmlldwogewotICAgIFtz
ZWxmIF9jcmVhdGVGcmFtZVdpdGhQYWdlOnBhZ2UgZnJhbWVOYW1lOm5hbWUgZnJhbWVWaWV3OmZy
YW1lVmlldyBvd25lckVsZW1lbnQ6MF07CisgICAgV2ViVmlldyAqd2ViVmlldyA9IGtpdChwYWdl
KTsKKworICAgIFdlYkZyYW1lICpmcmFtZSA9IFtbc2VsZiBhbGxvY10gX2luaXRXaXRoV2ViRnJh
bWVWaWV3OmZyYW1lVmlldyB3ZWJWaWV3OndlYlZpZXddOworICAgIGZyYW1lLT5fcHJpdmF0ZS0+
Y29yZUZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7CisgICAgc3RhdGljX2Nhc3Q8V2ViRnJhbWVM
b2FkZXJDbGllbnQqPihwYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkpLT5zZXRX
ZWJGcmFtZShmcmFtZSk7CisgICAgW2ZyYW1lIHJlbGVhc2VdOworCisgICAgcGFnZS0+bWFpbkZy
YW1lKCktPnRyZWUoKS0+c2V0TmFtZShuYW1lKTsKKyAgICBwYWdlLT5tYWluRnJhbWUoKS0+aW5p
dCgpOworCisgICAgW3dlYlZpZXcgX3NldFpvb21NdWx0aXBsaWVyOlt3ZWJWaWV3IF9yZWFsWm9v
bU11bHRpcGxpZXJdIGlzVGV4dE9ubHk6W3dlYlZpZXcgX3JlYWxab29tTXVsdGlwbGllcklzVGV4
dE9ubHldXTsKIH0KIAogKyAoUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4pX2NyZWF0ZVN1YmZy
YW1lV2l0aE93bmVyRWxlbWVudDooSFRNTEZyYW1lT3duZXJFbGVtZW50Kilvd25lckVsZW1lbnQg
ZnJhbWVOYW1lOihjb25zdCBTdHJpbmcmKW5hbWUgZnJhbWVWaWV3OihXZWJGcmFtZVZpZXcgKilm
cmFtZVZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAxZmM2Yzg0Li5m
NTgyMjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC02MSw2ICs2MSw3
IEBACiAjaW1wb3J0ICJXZWJFZGl0b3JDbGllbnQuaCIKICNpbXBvcnQgIldlYkZvcm1EZWxlZ2F0
ZVByaXZhdGUuaCIKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldlYkZy
YW1lTG9hZGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgi
CiAjaW1wb3J0ICJXZWJGcmFtZVZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViRnVsbFNjcmVl
bkNvbnRyb2xsZXIuaCIKQEAgLTc2MCw3ICs3NjEsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRVc2VM
ZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yKCkKICNlbmRpZgogICAgIHBhZ2VD
bGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7CiAg
ICAgcGFnZUNsaWVudHMuYWx0ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdlYkFsdGVybmF0aXZl
VGV4dENsaWVudChzZWxmKTsKLSAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGll
bnRzKTsKKyAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzLCBuZXcgV2Vi
RnJhbWVMb2FkZXJDbGllbnQpOwogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBXZWJDb3Jl
Ojpwcm92aWRlR2VvbG9jYXRpb25UbyhfcHJpdmF0ZS0+cGFnZSwgbmV3IFdlYkdlb2xvY2F0aW9u
Q2xpZW50KHNlbGYpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCBkMjc3OGNlLi4xZjU0MTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cApAQCAtODEsOCArODEsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLVdlYkZyYW1lTG9hZGVyQ2xpZW50OjpXZWJGcmFtZUxvYWRlckNsaWVudChX
ZWJGcmFtZSogZnJhbWUpCi0gICAgOiBtX2ZyYW1lKGZyYW1lKQorV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50KCkKKyAgICA6IG1fZnJhbWUoMCkKICAgICAsIG1faGFz
U2VudFJlc3BvbnNlVG9QbHVnaW5WaWV3KGZhbHNlKQogICAgICwgbV9kaWRDb21wbGV0ZVBhZ2VU
cmFuc2l0aW9uQWxyZWFkeShmYWxzZSkKICAgICAsIG1fZnJhbWVDYW1lRnJvbVBhZ2VDYWNoZShm
YWxzZSkKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVM
b2FkZXJEZXN0cm95ZWQoKQogewogICAgIG1fZnJhbWUtPmludmFsaWRhdGUoKTsKIAotICAgIC8v
IEJhbGFuY2VzIGV4cGxpY2l0IHJlZigpIGluIFdlYkZyYW1lOjpjcmVhdGVNYWluRnJhbWUgYW5k
IFdlYkZyYW1lOjpjcmVhdGVTdWJmcmFtZS4KKyAgICAvLyBCYWxhbmNlcyBleHBsaWNpdCByZWYo
KSBpbiBXZWJGcmFtZTo6Y3JlYXRlKCkuCiAgICAgbV9mcmFtZS0+ZGVyZWYoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGUwMGQzZmYuLjc0MGMwOTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTM1LDkgKzM1LDEwIEBAIGNsYXNzIFdlYkZyYW1l
OwogICAgIAogY2xhc3MgV2ViRnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KFdlYkZy
YW1lKik7CisgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQoKTsKICAgICB+V2ViRnJhbWVMb2FkZXJD
bGllbnQoKTsKIAorICAgIHZvaWQgc2V0V2ViRnJhbWUoV2ViRnJhbWUqIHdlYkZyYW1lKSB7IG1f
ZnJhbWUgPSB3ZWJGcmFtZTsgfQogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZnJhbWU7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IGJjZWM3MWQuLjEyNTdhYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMTAyLDIwICsx
MDIsMTkgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlTGlzdGVuZXJJRCgpCiAgICAgcmV0dXJu
IHVuaXF1ZUxpc3RlbmVySUQrKzsKIH0KIAotUGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6
OmNyZWF0ZU1haW5GcmFtZShXZWJQYWdlKiBwYWdlKQorUGFzc1JlZlB0cjxXZWJGcmFtZT4gV2Vi
RnJhbWU6OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkNvcmU6OkZy
YW1lKiBjb3JlRnJhbWUpCiB7Ci0gICAgUmVmUHRyPFdlYkZyYW1lPiBmcmFtZSA9IGNyZWF0ZSgp
OwotCisgICAgUmVmUHRyPFdlYkZyYW1lPiBmcmFtZSA9IGNyZWF0ZShhZG9wdFB0cihzdGF0aWNf
Y2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KGNvcmVGcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkp
KSk7CiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVNYWlu
RnJhbWUoZnJhbWUtPmZyYW1lSUQoKSkpOwotCi0gICAgZnJhbWUtPmluaXQocGFnZSwgU3RyaW5n
KCksIDApOwotCisgICAgZnJhbWUtPm1fY29yZUZyYW1lID0gY29yZUZyYW1lOworICAgIGZyYW1l
LT5tX2NvcmVGcmFtZS0+dHJlZSgpLT5zZXROYW1lKFN0cmluZygpKTsKKyAgICBmcmFtZS0+bV9j
b3JlRnJhbWUtPmluaXQoKTsKICAgICByZXR1cm4gZnJhbWUucmVsZWFzZSgpOwogfQogCiBQYXNz
UmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSogcGFnZSwg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVt
ZW50KQogewotICAgIFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBjcmVhdGUoKTsKKyAgICBSZWZQ
dHI8V2ViRnJhbWU+IGZyYW1lID0gY3JlYXRlKGFkb3B0UHRyKG5ldyBXZWJGcmFtZUxvYWRlckNs
aWVudCkpOwogCiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVh
dGVTdWJmcmFtZShmcmFtZS0+ZnJhbWVJRCgpKSk7CiAKQEAgLTEyNCw5ICsxMjMsOSBAQCBQYXNz
UmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSogcGFnZSwg
Y29uc3QgU3RyaW5nJiBmcmFtZQogICAgIHJldHVybiBmcmFtZS5yZWxlYXNlKCk7CiB9CiAKLVBh
c3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGUoKQorUGFzc1JlZlB0cjxXZWJGcmFt
ZT4gV2ViRnJhbWU6OmNyZWF0ZShQYXNzT3duUHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFt
ZUxvYWRlckNsaWVudCkKIHsKLSAgICBSZWZQdHI8V2ViRnJhbWU+IGZyYW1lID0gYWRvcHRSZWYo
bmV3IFdlYkZyYW1lKTsKKyAgICBSZWZQdHI8V2ViRnJhbWU+IGZyYW1lID0gYWRvcHRSZWYobmV3
IFdlYkZyYW1lKGZyYW1lTG9hZGVyQ2xpZW50KSk7CiAKICAgICAvLyBBZGQgZXhwbGljdCByZWYo
KSB0aGF0IHdpbGwgYmUgYmFsYW5jZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9h
ZGVyRGVzdHJveWVkKCkuCiAgICAgZnJhbWUtPnJlZigpOwpAQCAtMTM0LDE1ICsxMzMsMTYgQEAg
UGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZSgpCiAgICAgcmV0dXJuIGZyYW1l
LnJlbGVhc2UoKTsKIH0KIAotV2ViRnJhbWU6OldlYkZyYW1lKCkKK1dlYkZyYW1lOjpXZWJGcmFt
ZShQYXNzT3duUHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNsaWVudCkKICAg
ICA6IG1fY29yZUZyYW1lKDApCiAgICAgLCBtX3BvbGljeUxpc3RlbmVySUQoMCkKICAgICAsIG1f
cG9saWN5RnVuY3Rpb24oMCkKICAgICAsIG1fcG9saWN5RG93bmxvYWRJRCgwKQotICAgICwgbV9m
cmFtZUxvYWRlckNsaWVudCh0aGlzKQorICAgICwgbV9mcmFtZUxvYWRlckNsaWVudChmcmFtZUxv
YWRlckNsaWVudCkKICAgICAsIG1fbG9hZExpc3RlbmVyKDApCiAgICAgLCBtX2ZyYW1lSUQoZ2Vu
ZXJhdGVGcmFtZUlEKCkpCiB7CisgICAgbV9mcmFtZUxvYWRlckNsaWVudC0+c2V0V2ViRnJhbWUo
dGhpcyk7CiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuYWRkV2ViRnJhbWUobV9mcmFtZUlELCB0
aGlzKTsKIAogI2lmbmRlZiBOREVCVUcKQEAgLTE2MSw3ICsxNjEsNyBAQCBXZWJGcmFtZTo6fldl
YkZyYW1lKCkKIAogdm9pZCBXZWJGcmFtZTo6aW5pdChXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQpCiB7Ci0g
ICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwg
b3duZXJFbGVtZW50LCAmbV9mcmFtZUxvYWRlckNsaWVudCk7CisgICAgUmVmUHRyPEZyYW1lPiBm
cmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50LCBtX2Zy
YW1lTG9hZGVyQ2xpZW50LmdldCgpKTsKICAgICBtX2NvcmVGcmFtZSA9IGZyYW1lLmdldCgpOwog
CiAgICAgZnJhbWUtPnRyZWUoKS0+c2V0TmFtZShmcmFtZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAppbmRleCBiZjY5YmExLi43YTMxYjI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtNTcs
NyArNTcsNyBAQCBjbGFzcyBXZWJQYWdlOwogCiBjbGFzcyBXZWJGcmFtZSA6IHB1YmxpYyBUeXBl
ZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVCdW5kbGVGcmFtZT4gewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lPiBjcmVhdGVNYWluRnJhbWUoV2ViUGFnZSopOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lPiBjcmVhdGVXaXRoQ29yZU1haW5GcmFtZShXZWJQ
YWdlKiwgV2ViQ29yZTo6RnJhbWUqKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4g
Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3Jl
OjpIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsKICAgICB+V2ViRnJhbWUoKTsKIApAQCAtMTQxLDgg
KzE0MSw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFdlYkZyYW1lPiBjcmVhdGUoKTsKLSAgICBXZWJGcmFtZSgpOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdlYkZyYW1lPiBjcmVhdGUoUGFzc093blB0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4p
OworICAgIFdlYkZyYW1lKFBhc3NPd25QdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKIAogICAg
IHZvaWQgaW5pdChXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OkhU
TUxGcmFtZU93bmVyRWxlbWVudCopOwogCkBAIC0xNTIsNyArMTUyLDcgQEAgcHJpdmF0ZToKICAg
ICBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uIG1fcG9saWN5RnVuY3Rpb247CiAgICAgdWlu
dDY0X3QgbV9wb2xpY3lEb3dubG9hZElEOwogCi0gICAgV2ViRnJhbWVMb2FkZXJDbGllbnQgbV9m
cmFtZUxvYWRlckNsaWVudDsKKyAgICBPd25QdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IG1fZnJh
bWVMb2FkZXJDbGllbnQ7CiAgICAgTG9hZExpc3RlbmVyKiBtX2xvYWRMaXN0ZW5lcjsKICAgICAK
ICAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNzlmZmFjZS4uMGUzNDNiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNjMsNiArNjMsNyBAQAog
I2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAj
aW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgog
I2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVl
bk1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50LmgiCkBA
IC0zMTYsNyArMzE3LDEyIEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25z
dCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2VuZGlmCiAgICAgcGFn
ZUNsaWVudHMucGx1Z0luQ2xpZW50ID0gbmV3IFdlYlBsdWdJbkNsaWVudCh0aGlzKTsKIAotICAg
IG1fcGFnZSA9IGFkb3B0UHRyKG5ldyBQYWdlKHBhZ2VDbGllbnRzKSk7CisgICAgbV9wYWdlID0g
YWRvcHRQdHIobmV3IFBhZ2UocGFnZUNsaWVudHMsIG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudCkp
OworCisgICAgbV9kcmF3aW5nQXJlYSA9IERyYXdpbmdBcmVhOjpjcmVhdGUodGhpcywgcGFyYW1l
dGVycyk7CisgICAgbV9kcmF3aW5nQXJlYS0+c2V0UGFpbnRpbmdFbmFibGVkKGZhbHNlKTsKKwor
ICAgIG1fbWFpbkZyYW1lID0gV2ViRnJhbWU6OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKHRoaXMs
IG1fcGFnZS0+bWFpbkZyYW1lKCkpOwogCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQogICAg
IFdlYkNvcmU6OnByb3ZpZGVCYXR0ZXJ5VG8obV9wYWdlLmdldCgpLCBuZXcgV2ViQmF0dGVyeUNs
aWVudCh0aGlzKSk7CkBAIC0zNDgsMTQgKzM1NCw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0
X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQog
ICAgIG1fcGFnZS0+c2V0R3JvdXBOYW1lKG1fcGFnZUdyb3VwLT5pZGVudGlmaWVyKCkpOwogICAg
IG1fcGFnZS0+c2V0RGV2aWNlU2NhbGVGYWN0b3IocGFyYW1ldGVycy5kZXZpY2VTY2FsZUZhY3Rv
cik7CiAKLSAgICBtX2RyYXdpbmdBcmVhID0gRHJhd2luZ0FyZWE6OmNyZWF0ZSh0aGlzLCBwYXJh
bWV0ZXJzKTsKLSAgICBtX2RyYXdpbmdBcmVhLT5zZXRQYWludGluZ0VuYWJsZWQoZmFsc2UpOwot
CiAgICAgdXBkYXRlUHJlZmVyZW5jZXMocGFyYW1ldGVycy5zdG9yZSk7CiAgICAgcGxhdGZvcm1J
bml0aWFsaXplKCk7CiAKLSAgICBtX21haW5GcmFtZSA9IFdlYkZyYW1lOjpjcmVhdGVNYWluRnJh
bWUodGhpcyk7Ci0KICAgICBzZXRVc2VGaXhlZExheW91dChwYXJhbWV0ZXJzLnVzZUZpeGVkTGF5
b3V0KTsKIAogICAgIHNldERyYXdzQmFja2dyb3VuZChwYXJhbWV0ZXJzLmRyYXdzQmFja2dyb3Vu
ZCk7Cg==
</data>
<flag name="commit-queue"
          id="231007"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209025</attachid>
            <date>2013-08-18 04:37:10 -0700</date>
            <delta_ts>2013-08-18 15:35:51 -0700</delta_ts>
            <desc>Second stab for EWS</desc>
            <filename>mac-119964.diff</filename>
            <type>text/plain</type>
            <size>15985</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCBj
MzU0MWY4Li42MDY5ZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck92ZXJsYXkuY3BwCkBAIC00MzEsNyArNDMxLDYgQEAgUGFnZSogSW5zcGVjdG9yT3ZlcmxheTo6
b3ZlcmxheVBhZ2UoKQogICAgIGlmIChtX292ZXJsYXlQYWdlKQogICAgICAgICByZXR1cm4gbV9v
dmVybGF5UGFnZS5nZXQoKTsKIAotICAgIHN0YXRpYyBGcmFtZUxvYWRlckNsaWVudCogZHVtbXlG
cmFtZUxvYWRlckNsaWVudCA9ICBuZXcgRW1wdHlGcmFtZUxvYWRlckNsaWVudDsKICAgICBQYWdl
OjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKICAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdl
Q2xpZW50cyk7CiAgICAgbV9vdmVybGF5UGFnZSA9IGFkb3B0UHRyKG5ldyBQYWdlKHBhZ2VDbGll
bnRzKSk7CkBAIC00NTEsNyArNDUwLDcgQEAgUGFnZSogSW5zcGVjdG9yT3ZlcmxheTo6b3Zlcmxh
eVBhZ2UoKQogICAgIG92ZXJsYXlTZXR0aW5ncy5zZXRTY3JpcHRFbmFibGVkKHRydWUpOwogICAg
IG92ZXJsYXlTZXR0aW5ncy5zZXRQbHVnaW5zRW5hYmxlZChmYWxzZSk7CiAKLSAgICBSZWZQdHI8
RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX292ZXJsYXlQYWdlLmdldCgpLCAwLCBkdW1t
eUZyYW1lTG9hZGVyQ2xpZW50KTsKKyAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gbV9vdmVybGF5
UGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgZnJhbWUtPnNldFZpZXcoRnJhbWVWaWV3OjpjcmVhdGUo
ZnJhbWUuZ2V0KCkpKTsKICAgICBmcmFtZS0+aW5pdCgpOwogICAgIEZyYW1lTG9hZGVyJiBsb2Fk
ZXIgPSBmcmFtZS0+bG9hZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CmluZGV4IGYzOWVmYTEuLjBmODhlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuY3BwCkBAIC02Miw2ICs2Miw5IEBAIHZvaWQgZmlsbFdpdGhFbXB0eUNsaWVudHMoUGFnZTo6
UGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogCiAgICAgc3RhdGljIEluc3BlY3RvckNsaWVudCog
ZHVtbXlJbnNwZWN0b3JDbGllbnQgPSBhZG9wdFB0cihuZXcgRW1wdHlJbnNwZWN0b3JDbGllbnQp
LmxlYWtQdHIoKTsKICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBkdW1teUluc3Bl
Y3RvckNsaWVudDsKKworICAgIHN0YXRpYyBGcmFtZUxvYWRlckNsaWVudCogZHVtbXlGcmFtZUxv
YWRlckNsaWVudCA9IG5ldyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OworICAgIHBhZ2VDbGllbnRz
LmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IGR1bW15RnJhbWVMb2FkZXJDbGllbnQ7CiB9CiAK
IGNsYXNzIEVtcHR5UG9wdXBNZW51IDogcHVibGljIFBvcHVwTWVudSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCmluZGV4IGM1NmU3OTcuLmViZTQ4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0yMDQs
MTAgKzIwNCw3IEBAIGlubGluZSBGcmFtZTo6RnJhbWUoUGFnZSogcGFnZSwgSFRNTEZyYW1lT3du
ZXJFbGVtZW50KiBvd25lckVsZW1lbnQsIEZyYW1lTG9hZGVyCiAKIFBhc3NSZWZQdHI8RnJhbWU+
IEZyYW1lOjpjcmVhdGUoUGFnZSogcGFnZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVs
ZW1lbnQsIEZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAgUmVmUHRyPEZyYW1lPiBm
cmFtZSA9IGFkb3B0UmVmKG5ldyBGcmFtZShwYWdlLCBvd25lckVsZW1lbnQsIGNsaWVudCkpOwot
ICAgIGlmICghb3duZXJFbGVtZW50KQotICAgICAgICBwYWdlLT5zZXRNYWluRnJhbWUoZnJhbWUp
OwotICAgIHJldHVybiBmcmFtZS5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBG
cmFtZShwYWdlLCBvd25lckVsZW1lbnQsIGNsaWVudCkpOwogfQogCiBGcmFtZTo6fkZyYW1lKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDU2YmUyMjMuLmIxNDZjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtMTQyLDYgKzE0Miw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRz
KQogICAgICwgbV9zZXR0aW5ncyhTZXR0aW5nczo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9wcm9n
cmVzcyhQcm9ncmVzc1RyYWNrZXI6OmNyZWF0ZSgpKQogICAgICwgbV9iYWNrRm9yd2FyZENvbnRy
b2xsZXIoQmFja0ZvcndhcmRDb250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMuYmFj
a0ZvcndhcmRDbGllbnQpKQorICAgICwgbV9tYWluRnJhbWUoRnJhbWU6OmNyZWF0ZSh0aGlzLCAw
LCBwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUpKQogICAgICwgbV90aGVtZShS
ZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKHRoaXMpKQogICAgICwgbV9lZGl0b3JDbGllbnQocGFn
ZUNsaWVudHMuZWRpdG9yQ2xpZW50KQogICAgICwgbV9wbHVnSW5DbGllbnQocGFnZUNsaWVudHMu
cGx1Z0luQ2xpZW50KQpAQCAtMzQ0LDEyICszNDUsNiBAQCB2b2lkIFBhZ2U6OnNldFZpZXdNb2Rl
KFZpZXdNb2RlIHZpZXdNb2RlKQogfQogI2VuZGlmIC8vIEVOQUJMRShWSUVXX01PREVfQ1NTX01F
RElBKQogCi12b2lkIFBhZ2U6OnNldE1haW5GcmFtZShQYXNzUmVmUHRyPEZyYW1lPiBtYWluRnJh
bWUpCi17Ci0gICAgQVNTRVJUKCFtX21haW5GcmFtZSk7IC8vIFNob3VsZCBvbmx5IGJlIGNhbGxl
ZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24KLSAgICBtX21haW5GcmFtZSA9IG1haW5GcmFtZTsKLX0K
LQogYm9vbCBQYWdlOjpvcGVuZWRCeURPTSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fb3BlbmVk
QnlET007CkBAIC00ODUsOCArNDgwLDEwIEBAIHZvaWQgUGFnZTo6dXBkYXRlU3R5bGVGb3JBbGxQ
YWdlc0FmdGVyR2xvYmFsQ2hhbmdlSW5FbnZpcm9ubWVudCgpCiAKIHZvaWQgUGFnZTo6c2V0TmVl
ZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCkKIHsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1h
aW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkK
LSAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKERlZmVyUmVj
YWxjU3R5bGUpOworICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBm
cmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGRvY3VtZW50
LT5zdHlsZVJlc29sdmVyQ2hhbmdlZChEZWZlclJlY2FsY1N0eWxlKTsKKyAgICB9CiB9CiAKIHZv
aWQgUGFnZTo6cmVmcmVzaFBsdWdpbnMoYm9vbCByZWxvYWQpCkBAIC0xNTk3LDYgKzE1OTQsNyBA
QCBQYWdlOjpQYWdlQ2xpZW50czo6UGFnZUNsaWVudHMoKQogICAgICwgaW5zcGVjdG9yQ2xpZW50
KDApCiAgICAgLCBwbHVnSW5DbGllbnQoMCkKICAgICAsIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
KDApCisgICAgLCBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUoMCkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAppbmRleCBkMjE3MjU1Li5kNGQ5N2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNjgsNiArNjgsNyBA
QCBjbGFzcyBEcmFnQ29udHJvbGxlcjsKIGNsYXNzIEVkaXRvckNsaWVudDsKIGNsYXNzIEZvY3Vz
Q29udHJvbGxlcjsKIGNsYXNzIEZyYW1lOworY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CiBjbGFz
cyBGcmFtZVNlbGVjdGlvbjsKIGNsYXNzIEhhbHRhYmxlUGx1Z2luOwogY2xhc3MgSGlzdG9yeUl0
ZW07CkBAIC0xMzYsNiArMTM3LDcgQEAgcHVibGljOgogICAgICAgICBQbHVnSW5DbGllbnQqIHBs
dWdJbkNsaWVudDsKICAgICAgICAgUmVmUHRyPEJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRD
bGllbnQ7CiAgICAgICAgIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KiB2YWxpZGF0aW9uTWVzc2Fn
ZUNsaWVudDsKKyAgICAgICAgRnJhbWVMb2FkZXJDbGllbnQqIGxvYWRlckNsaWVudEZvck1haW5G
cmFtZTsKICAgICB9OwogCiAgICAgZXhwbGljaXQgUGFnZShQYWdlQ2xpZW50cyYpOwpAQCAtMTU4
LDcgKzE2MCw2IEBAIHB1YmxpYzoKICAgICBFZGl0b3JDbGllbnQqIGVkaXRvckNsaWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fZWRpdG9yQ2xpZW50OyB9CiAgICAgUGx1Z0luQ2xpZW50KiBwbHVnSW5D
bGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BsdWdJbkNsaWVudDsgfQogCi0gICAgdm9pZCBzZXRN
YWluRnJhbWUoUGFzc1JlZlB0cjxGcmFtZT4pOwogICAgIEZyYW1lKiBtYWluRnJhbWUoKSBjb25z
dCB7IHJldHVybiBtX21haW5GcmFtZS5nZXQoKTsgfQogCiAgICAgYm9vbCBvcGVuZWRCeURPTSgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5kZXggMGJm
NmVmYy4uMWUxYWJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3Bw
CkBAIC0zNDksOCArMzQ5LDYgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxE
YXRhUmVjZWl2ZWQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKGFsbERhdGFSZWNl
aXZlZCkgewotICAgICAgICBzdGF0aWMgRnJhbWVMb2FkZXJDbGllbnQqIGR1bW15RnJhbWVMb2Fk
ZXJDbGllbnQgPSAgbmV3IEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ7Ci0KICAgICAgICAgUGFnZTo6
UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7CiAgICAgICAgIGZpbGxXaXRoRW1wdHlDbGllbnRzKHBh
Z2VDbGllbnRzKTsKICAgICAgICAgbV9jaHJvbWVDbGllbnQgPSBhZG9wdFB0cihuZXcgU1ZHSW1h
Z2VDaHJvbWVDbGllbnQodGhpcykpOwpAQCAtMzY3LDcgKzM2NSw3IEBAIGJvb2wgU1ZHSW1hZ2U6
OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgICAgICBtX3BhZ2UtPnNldHRp
bmdzKCkuc2V0U2NyaXB0RW5hYmxlZChmYWxzZSk7CiAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3Mo
KS5zZXRQbHVnaW5zRW5hYmxlZChmYWxzZSk7CiAKLSAgICAgICAgUmVmUHRyPEZyYW1lPiBmcmFt
ZSA9IEZyYW1lOjpjcmVhdGUobV9wYWdlLmdldCgpLCAwLCBkdW1teUZyYW1lTG9hZGVyQ2xpZW50
KTsKKyAgICAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7CiAg
ICAgICAgIGZyYW1lLT5zZXRWaWV3KEZyYW1lVmlldzo6Y3JlYXRlKGZyYW1lLmdldCgpKSk7CiAg
ICAgICAgIGZyYW1lLT5pbml0KCk7CiAgICAgICAgIEZyYW1lTG9hZGVyJiBsb2FkZXIgPSBmcmFt
ZS0+bG9hZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA0NzBhMTBhLi5hZmZmMzA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKQEAgLTUxLDggKzUxLDkgQEAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRlcj4sIFJldGFpblB0cjxXZWJSZXNvdXJjZT4gPiBSZXNvdXIKIAogY2xh
c3MgV2ViRnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnQgewogcHVibGljOgotICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50KFdlYkZyYW1lKik7CisgICAg
V2ViRnJhbWVMb2FkZXJDbGllbnQoV2ViRnJhbWUqID0gMCk7CiAKKyAgICB2b2lkIHNldFdlYkZy
YW1lKFdlYkZyYW1lKiB3ZWJGcmFtZSkgeyBtX3dlYkZyYW1lID0gd2ViRnJhbWU7IH0KICAgICBX
ZWJGcmFtZSogd2ViRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3dlYkZyYW1lLmdldCgpOyB9CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCA5ZjNmNzVi
Li4yZjVlZjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTI4NCw3
ICsyODQsMTcgQEAgV2ViVmlldyAqZ2V0V2ViVmlldyhXZWJGcmFtZSAqd2ViRnJhbWUpCiAKICsg
KHZvaWQpX2NyZWF0ZU1haW5GcmFtZVdpdGhQYWdlOihQYWdlKilwYWdlIGZyYW1lTmFtZTooY29u
c3QgU3RyaW5nJiluYW1lIGZyYW1lVmlldzooV2ViRnJhbWVWaWV3ICopZnJhbWVWaWV3CiB7Ci0g
ICAgW3NlbGYgX2NyZWF0ZUZyYW1lV2l0aFBhZ2U6cGFnZSBmcmFtZU5hbWU6bmFtZSBmcmFtZVZp
ZXc6ZnJhbWVWaWV3IG93bmVyRWxlbWVudDowXTsKKyAgICBXZWJWaWV3ICp3ZWJWaWV3ID0ga2l0
KHBhZ2UpOworCisgICAgV2ViRnJhbWUgKmZyYW1lID0gW1tzZWxmIGFsbG9jXSBfaW5pdFdpdGhX
ZWJGcmFtZVZpZXc6ZnJhbWVWaWV3IHdlYlZpZXc6d2ViVmlld107CisgICAgZnJhbWUtPl9wcml2
YXRlLT5jb3JlRnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsKKyAgICBzdGF0aWNfY2FzdDxXZWJG
cmFtZUxvYWRlckNsaWVudCo+KHBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKSkt
PnNldFdlYkZyYW1lKGZyYW1lKTsKKyAgICBbZnJhbWUgcmVsZWFzZV07CisKKyAgICBwYWdlLT5t
YWluRnJhbWUoKS0+dHJlZSgpLT5zZXROYW1lKG5hbWUpOworICAgIHBhZ2UtPm1haW5GcmFtZSgp
LT5pbml0KCk7CisKKyAgICBbd2ViVmlldyBfc2V0Wm9vbU11bHRpcGxpZXI6W3dlYlZpZXcgX3Jl
YWxab29tTXVsdGlwbGllcl0gaXNUZXh0T25seTpbd2ViVmlldyBfcmVhbFpvb21NdWx0aXBsaWVy
SXNUZXh0T25seV1dOwogfQogCiArIChQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lPilfY3JlYXRl
U3ViZnJhbWVXaXRoT3duZXJFbGVtZW50OihIVE1MRnJhbWVPd25lckVsZW1lbnQqKW93bmVyRWxl
bWVudCBmcmFtZU5hbWU6KGNvbnN0IFN0cmluZyYpbmFtZSBmcmFtZVZpZXc6KFdlYkZyYW1lVmll
dyAqKWZyYW1lVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDFmYzZj
ODQuLjU3ZTMwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTYxLDYg
KzYxLDcgQEAKICNpbXBvcnQgIldlYkVkaXRvckNsaWVudC5oIgogI2ltcG9ydCAiV2ViRm9ybURl
bGVnYXRlUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgorI2ltcG9ydCAi
V2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbXBvcnQgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaCIKICNpbXBvcnQgIldlYkZyYW1lVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJGdWxs
U2NyZWVuQ29udHJvbGxlci5oIgpAQCAtNzYwLDYgKzc2MSw3IEBAIHN0YXRpYyBib29sIHNob3Vs
ZFVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IoKQogI2VuZGlmCiAgICAg
cGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxm
KTsKICAgICBwYWdlQ2xpZW50cy5hbHRlcm5hdGl2ZVRleHRDbGllbnQgPSBuZXcgV2ViQWx0ZXJu
YXRpdmVUZXh0Q2xpZW50KHNlbGYpOworICAgIHBhZ2VDbGllbnRzLmxvYWRlckNsaWVudEZvck1h
aW5GcmFtZSA9IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKICAgICBfcHJpdmF0ZS0+cGFnZSA9
IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgV2Vi
Q29yZTo6cHJvdmlkZUdlb2xvY2F0aW9uVG8oX3ByaXZhdGUtPnBhZ2UsIG5ldyBXZWJHZW9sb2Nh
dGlvbkNsaWVudChzZWxmKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4
IGQyNzc4Y2UuLjFmNTQxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBA
IC04MSw4ICs4MSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotV2ViRnJhbWVMb2FkZXJDbGllbnQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50KFdlYkZy
YW1lKiBmcmFtZSkKLSAgICA6IG1fZnJhbWUoZnJhbWUpCitXZWJGcmFtZUxvYWRlckNsaWVudDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQoKQorICAgIDogbV9mcmFtZSgwKQogICAgICwgbV9oYXNTZW50
UmVzcG9uc2VUb1BsdWdpblZpZXcoZmFsc2UpCiAgICAgLCBtX2RpZENvbXBsZXRlUGFnZVRyYW5z
aXRpb25BbHJlYWR5KGZhbHNlKQogICAgICwgbV9mcmFtZUNhbWVGcm9tUGFnZUNhY2hlKGZhbHNl
KQpAQCAtOTcsNyArOTcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRl
ckRlc3Ryb3llZCgpCiB7CiAgICAgbV9mcmFtZS0+aW52YWxpZGF0ZSgpOwogCi0gICAgLy8gQmFs
YW5jZXMgZXhwbGljaXQgcmVmKCkgaW4gV2ViRnJhbWU6OmNyZWF0ZU1haW5GcmFtZSBhbmQgV2Vi
RnJhbWU6OmNyZWF0ZVN1YmZyYW1lLgorICAgIC8vIEJhbGFuY2VzIGV4cGxpY2l0IHJlZigpIGlu
IFdlYkZyYW1lOjpjcmVhdGUoKS4KICAgICBtX2ZyYW1lLT5kZXJlZigpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZTAwZDNmZi4uNzQwYzA5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzUsOSArMzUsMTAgQEAgY2xhc3MgV2ViRnJhbWU7CiAg
ICAgCiBjbGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgV2ViRnJhbWVMb2FkZXJDbGllbnQoV2ViRnJhbWUq
KTsKKyAgICBXZWJGcmFtZUxvYWRlckNsaWVudCgpOwogICAgIH5XZWJGcmFtZUxvYWRlckNsaWVu
dCgpOwogCisgICAgdm9pZCBzZXRXZWJGcmFtZShXZWJGcmFtZSogd2ViRnJhbWUpIHsgbV9mcmFt
ZSA9IHdlYkZyYW1lOyB9CiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFtZTsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggYmNlYzcxZC4uMTI1N2FiNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0xMDIsMjAgKzEwMiwx
OSBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0ZW5lcklEKCkKICAgICByZXR1cm4gdW5p
cXVlTGlzdGVuZXJJRCsrOwogfQogCi1QYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3Jl
YXRlTWFpbkZyYW1lKFdlYlBhZ2UqIHBhZ2UpCitQYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFt
ZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RnJhbWUq
IGNvcmVGcmFtZSkKIHsKLSAgICBSZWZQdHI8V2ViRnJhbWU+IGZyYW1lID0gY3JlYXRlKCk7Ci0K
KyAgICBSZWZQdHI8V2ViRnJhbWU+IGZyYW1lID0gY3JlYXRlKGFkb3B0UHRyKHN0YXRpY19jYXN0
PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4oY29yZUZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSkpKTsK
ICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZU1haW5GcmFt
ZShmcmFtZS0+ZnJhbWVJRCgpKSk7Ci0KLSAgICBmcmFtZS0+aW5pdChwYWdlLCBTdHJpbmcoKSwg
MCk7Ci0KKyAgICBmcmFtZS0+bV9jb3JlRnJhbWUgPSBjb3JlRnJhbWU7CisgICAgZnJhbWUtPm1f
Y29yZUZyYW1lLT50cmVlKCktPnNldE5hbWUoU3RyaW5nKCkpOworICAgIGZyYW1lLT5tX2NvcmVG
cmFtZS0+aW5pdCgpOwogICAgIHJldHVybiBmcmFtZS5yZWxlYXNlKCk7CiB9CiAKIFBhc3NSZWZQ
dHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVTdWJmcmFtZShXZWJQYWdlKiBwYWdlLCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQp
CiB7Ci0gICAgUmVmUHRyPFdlYkZyYW1lPiBmcmFtZSA9IGNyZWF0ZSgpOworICAgIFJlZlB0cjxX
ZWJGcmFtZT4gZnJhbWUgPSBjcmVhdGUoYWRvcHRQdHIobmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50
KSk7CiAKICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZVN1
YmZyYW1lKGZyYW1lLT5mcmFtZUlEKCkpKTsKIApAQCAtMTI0LDkgKzEyMyw5IEBAIFBhc3NSZWZQ
dHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVTdWJmcmFtZShXZWJQYWdlKiBwYWdlLCBjb25z
dCBTdHJpbmcmIGZyYW1lCiAgICAgcmV0dXJuIGZyYW1lLnJlbGVhc2UoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZSgpCitQYXNzUmVmUHRyPFdlYkZyYW1lPiBX
ZWJGcmFtZTo6Y3JlYXRlKFBhc3NPd25QdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9h
ZGVyQ2xpZW50KQogewotICAgIFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBhZG9wdFJlZihuZXcg
V2ViRnJhbWUpOworICAgIFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBhZG9wdFJlZihuZXcgV2Vi
RnJhbWUoZnJhbWVMb2FkZXJDbGllbnQpKTsKIAogICAgIC8vIEFkZCBleHBsaWN0IHJlZigpIHRo
YXQgd2lsbCBiZSBiYWxhbmNlZCBpbiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVMb2FkZXJE
ZXN0cm95ZWQoKS4KICAgICBmcmFtZS0+cmVmKCk7CkBAIC0xMzQsMTUgKzEzMywxNiBAQCBQYXNz
UmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlKCkKICAgICByZXR1cm4gZnJhbWUucmVs
ZWFzZSgpOwogfQogCi1XZWJGcmFtZTo6V2ViRnJhbWUoKQorV2ViRnJhbWU6OldlYkZyYW1lKFBh
c3NPd25QdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQogICAgIDog
bV9jb3JlRnJhbWUoMCkKICAgICAsIG1fcG9saWN5TGlzdGVuZXJJRCgwKQogICAgICwgbV9wb2xp
Y3lGdW5jdGlvbigwKQogICAgICwgbV9wb2xpY3lEb3dubG9hZElEKDApCi0gICAgLCBtX2ZyYW1l
TG9hZGVyQ2xpZW50KHRoaXMpCisgICAgLCBtX2ZyYW1lTG9hZGVyQ2xpZW50KGZyYW1lTG9hZGVy
Q2xpZW50KQogICAgICwgbV9sb2FkTGlzdGVuZXIoMCkKICAgICAsIG1fZnJhbWVJRChnZW5lcmF0
ZUZyYW1lSUQoKSkKIHsKKyAgICBtX2ZyYW1lTG9hZGVyQ2xpZW50LT5zZXRXZWJGcmFtZSh0aGlz
KTsKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5hZGRXZWJGcmFtZShtX2ZyYW1lSUQsIHRoaXMp
OwogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMTYxLDcgKzE2MSw3IEBAIFdlYkZyYW1lOjp+V2ViRnJh
bWUoKQogCiB2b2lkIFdlYkZyYW1lOjppbml0KFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYg
ZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCkKIHsKLSAgICBS
ZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShwYWdlLT5jb3JlUGFnZSgpLCBvd25l
ckVsZW1lbnQsICZtX2ZyYW1lTG9hZGVyQ2xpZW50KTsKKyAgICBSZWZQdHI8RnJhbWU+IGZyYW1l
ID0gRnJhbWU6OmNyZWF0ZShwYWdlLT5jb3JlUGFnZSgpLCBvd25lckVsZW1lbnQsIG1fZnJhbWVM
b2FkZXJDbGllbnQuZ2V0KCkpOwogICAgIG1fY29yZUZyYW1lID0gZnJhbWUuZ2V0KCk7CiAKICAg
ICBmcmFtZS0+dHJlZSgpLT5zZXROYW1lKGZyYW1lTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCmluZGV4IGJmNjliYTEuLjdhMzFiMjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC01Nyw3ICs1
Nyw3IEBAIGNsYXNzIFdlYlBhZ2U7CiAKIGNsYXNzIFdlYkZyYW1lIDogcHVibGljIFR5cGVkQVBJ
T2JqZWN0PEFQSU9iamVjdDo6VHlwZUJ1bmRsZUZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZU1haW5GcmFtZShXZWJQYWdlKik7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2Uq
LCBXZWJDb3JlOjpGcmFtZSopOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lPiBjcmVh
dGVTdWJmcmFtZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OkhU
TUxGcmFtZU93bmVyRWxlbWVudCopOwogICAgIH5XZWJGcmFtZSgpOwogCkBAIC0xNDEsOCArMTQx
LDggQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
V2ViRnJhbWU+IGNyZWF0ZSgpOwotICAgIFdlYkZyYW1lKCk7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViRnJhbWU+IGNyZWF0ZShQYXNzT3duUHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50Pik7Cisg
ICAgV2ViRnJhbWUoUGFzc093blB0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4pOwogCiAgICAgdm9p
ZCBpbml0KFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6SFRNTEZy
YW1lT3duZXJFbGVtZW50Kik7CiAKQEAgLTE1Miw3ICsxNTIsNyBAQCBwcml2YXRlOgogICAgIFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24gbV9wb2xpY3lGdW5jdGlvbjsKICAgICB1aW50NjRf
dCBtX3BvbGljeURvd25sb2FkSUQ7CiAKLSAgICBXZWJGcmFtZUxvYWRlckNsaWVudCBtX2ZyYW1l
TG9hZGVyQ2xpZW50OworICAgIE93blB0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gbV9mcmFtZUxv
YWRlckNsaWVudDsKICAgICBMb2FkTGlzdGVuZXIqIG1fbG9hZExpc3RlbmVyOwogICAgIAogICAg
IHVpbnQ2NF90IG1fZnJhbWVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCA3OWZmYWNlLi4yMTZhMTFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02Myw2ICs2Myw3IEBACiAjaW5j
bHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKICNpbmNs
dWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFu
YWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25DbGllbnQuaCIKQEAgLTMx
NSw5ICszMTYsMTUgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgcGFnZUNsaWVudHMuYWx0
ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudCh0aGlzKTsK
ICNlbmRpZgogICAgIHBhZ2VDbGllbnRzLnBsdWdJbkNsaWVudCA9IG5ldyBXZWJQbHVnSW5DbGll
bnQodGhpcyk7CisgICAgcGFnZUNsaWVudHMubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OwogCiAgICAgbV9wYWdlID0gYWRvcHRQdHIobmV3IFBhZ2Uo
cGFnZUNsaWVudHMpKTsKIAorICAgIG1fZHJhd2luZ0FyZWEgPSBEcmF3aW5nQXJlYTo6Y3JlYXRl
KHRoaXMsIHBhcmFtZXRlcnMpOworICAgIG1fZHJhd2luZ0FyZWEtPnNldFBhaW50aW5nRW5hYmxl
ZChmYWxzZSk7CisKKyAgICBtX21haW5GcmFtZSA9IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29yZU1h
aW5GcmFtZSh0aGlzLCBtX3BhZ2UtPm1haW5GcmFtZSgpKTsKKwogI2lmIEVOQUJMRShCQVRURVJZ
X1NUQVRVUykKICAgICBXZWJDb3JlOjpwcm92aWRlQmF0dGVyeVRvKG1fcGFnZS5nZXQoKSwgbmV3
IFdlYkJhdHRlcnlDbGllbnQodGhpcykpOwogI2VuZGlmCkBAIC0zNDgsMTQgKzM1NSw5IEBAIFdl
YlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIG1fcGFnZS0+c2V0R3JvdXBOYW1lKG1fcGFnZUdyb3Vw
LT5pZGVudGlmaWVyKCkpOwogICAgIG1fcGFnZS0+c2V0RGV2aWNlU2NhbGVGYWN0b3IocGFyYW1l
dGVycy5kZXZpY2VTY2FsZUZhY3Rvcik7CiAKLSAgICBtX2RyYXdpbmdBcmVhID0gRHJhd2luZ0Fy
ZWE6OmNyZWF0ZSh0aGlzLCBwYXJhbWV0ZXJzKTsKLSAgICBtX2RyYXdpbmdBcmVhLT5zZXRQYWlu
dGluZ0VuYWJsZWQoZmFsc2UpOwotCiAgICAgdXBkYXRlUHJlZmVyZW5jZXMocGFyYW1ldGVycy5z
dG9yZSk7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKLSAgICBtX21haW5GcmFtZSA9IFdl
YkZyYW1lOjpjcmVhdGVNYWluRnJhbWUodGhpcyk7Ci0KICAgICBzZXRVc2VGaXhlZExheW91dChw
YXJhbWV0ZXJzLnVzZUZpeGVkTGF5b3V0KTsKIAogICAgIHNldERyYXdzQmFja2dyb3VuZChwYXJh
bWV0ZXJzLmRyYXdzQmFja2dyb3VuZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209043</attachid>
            <date>2013-08-18 15:35:51 -0700</date>
            <delta_ts>2013-08-19 08:39:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119964.diff</filename>
            <type>text/plain</type>
            <size>21993</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNGJmZmRhLi4xOWJkYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYg
QEAKKzIwMTMtMDgtMTggIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMTk5NjQ+IFdlYkNvcmU6IExldCBQYWdlIGNyZWF0
ZSB0aGUgbWFpbiBGcmFtZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcmV2aW91c2x5LCBGcmFtZTo6Y3JlYXRlKCkgd291bGQgY2FsbCBQYWdlOjpz
ZXRNYWluRnJhbWUoKSB3aGVuIGNvbnN0cnVjdGluZyB0aGUKKyAgICAgICAgbWFpbiBGcmFtZSBm
b3IgYSBQYWdlLiBVcCB1bnRpbCB0aGF0IHBvaW50LCBQYWdlIGhhZCBhIG51bGwgbWFpbkZyYW1l
KCkuCisKKyAgICAgICAgVG8gZ3VhcmFudGVlIHRoYXQgUGFnZTo6bWFpbkZyYW1lKCkgaXMgbmV2
ZXIgbnVsbCwgd2UgcmUtb3JkZXIgdGhpbmdzIHNvIHRoYXQKKyAgICAgICAgUGFnZSBpcyByZXNw
b25zaWJsZSBmb3IgY3JlYXRpbmcgaXRzIG93biBtYWluIEZyYW1lLiBXZSBkbyB0aGlzIGF0IHRo
ZSBlYXJsaWVzdAorICAgICAgICBwb3NzaWJsZSBwb2ludDsgaW4gdGhlIFBhZ2UgY29uc3RydWN0
b3IgaW5pdGlhbGl6ZXIgbGlzdC4KKworICAgICAgICBDb25zdHJ1Y3RpbmcgYSBGcmFtZSByZXF1
aXJlcyBhIEZyYW1lTG9hZGVyQ2xpZW50Kiwgc28gSSd2ZSBhZGRlZCBzdWNoIGEgZmllbGQgdG8K
KyAgICAgICAgdGhlIFBhZ2VDbGllbnRzIHN0cnVjdC4KKworICAgICAgICBXaGVuIGNyZWF0aW5n
IGEgV2ViS2l0LWxheWVyIGZyYW1lLCB3ZSBub3cgd3JhcCB0aGUgYWxyZWFkeS1pbnN0YW50aWF0
ZWQKKyAgICAgICAgUGFnZTo6bWFpbkZyYW1lKCkgaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBG
cmFtZS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZmlsbFdpdGhFbXB0eUNsaWVudHMpOgorCisgICAgICAgICAgICBBZGQgYW4gRW1wdHlG
cmFtZUxvYWRlckNsaWVudCB0byB0aGUgUGFnZUNsaWVudHMgY29uc3RydWN0ZWQgaGVyZS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvck92ZXJsYXk6Om92ZXJsYXlQYWdlKToKKyAgICAgICAgKiBzdmcvZ3JhcGhp
Y3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2Vk
KToKKworICAgICAgICAgICAgVXBkYXRlZCB0byB3cmFwIFBhZ2U6Om1haW5GcmFtZSgpIGluIGEg
RnJhbWVWaWV3IGluc3RlYWQgb2YgY3JlYXRpbmcgdGhlaXIKKyAgICAgICAgICAgIG93biBGcmFt
ZSBtYW51YWxseS4KKworICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWU6OmNyZWF0ZSk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisKKyAgICAgICAgICAg
IFJlbW92ZSBQYWdlOjpzZXRNYWluRnJhbWUoKSBhbmQgdGhlIG9ubHkgY2FsbCBzaXRlLgorCisg
ICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgor
CisgICAgICAgICAgICBDb25zdHJ1Y3QgUGFnZTo6bV9tYWluRnJhbWUgaW4gdGhlIGluaXRpYWxp
emVyIGxpc3QuCisKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xp
ZW50cyk6CisKKyAgICAgICAgICAgIEFkZCAiRnJhbWVMb2FkZXJDbGllbnQqIGxvYWRlckNsaWVu
dEZvck1haW5GcmFtZSIgdG8gUGFnZUNsaWVudHMuCisKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcyk6CisKKyAgICAgICAgICAgIE51bGwtY2hl
Y2sgdGhlIEZyYW1lOjpkb2N1bWVudCgpIGJlZm9yZSBjYWxsaW5nIHRocm91Z2ggb24gaXQuIFRo
aXMgd291bGQKKyAgICAgICAgICAgIG90aGVyd2lzZSBjcmFzaCB3aGVuIGNoYW5naW5nIGZvbnQt
cmVsYXRlZCBTZXR0aW5ncyBiZWZvcmUgY2FsbGluZyBpbml0KCkgb24KKyAgICAgICAgICAgIHRo
ZSBGcmFtZSAobGlrZSBJbnNwZWN0b3JPdmVybGF5IGRvZXMuKQorCiAyMDEzLTA4LTE4ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTE5OTgyPiBNYWtlIEVsZW1lbnQ6OmF0dGFjaCBub24tdmlydHVhbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCmluZGV4IGMzNTQxZjguLjYw
NjllMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVy
bGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5j
cHAKQEAgLTQzMSw3ICs0MzEsNiBAQCBQYWdlKiBJbnNwZWN0b3JPdmVybGF5OjpvdmVybGF5UGFn
ZSgpCiAgICAgaWYgKG1fb3ZlcmxheVBhZ2UpCiAgICAgICAgIHJldHVybiBtX292ZXJsYXlQYWdl
LmdldCgpOwogCi0gICAgc3RhdGljIEZyYW1lTG9hZGVyQ2xpZW50KiBkdW1teUZyYW1lTG9hZGVy
Q2xpZW50ID0gIG5ldyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OwogICAgIFBhZ2U6OlBhZ2VDbGll
bnRzIHBhZ2VDbGllbnRzOwogICAgIGZpbGxXaXRoRW1wdHlDbGllbnRzKHBhZ2VDbGllbnRzKTsK
ICAgICBtX292ZXJsYXlQYWdlID0gYWRvcHRQdHIobmV3IFBhZ2UocGFnZUNsaWVudHMpKTsKQEAg
LTQ1MSw3ICs0NTAsNyBAQCBQYWdlKiBJbnNwZWN0b3JPdmVybGF5OjpvdmVybGF5UGFnZSgpCiAg
ICAgb3ZlcmxheVNldHRpbmdzLnNldFNjcmlwdEVuYWJsZWQodHJ1ZSk7CiAgICAgb3ZlcmxheVNl
dHRpbmdzLnNldFBsdWdpbnNFbmFibGVkKGZhbHNlKTsKIAotICAgIFJlZlB0cjxGcmFtZT4gZnJh
bWUgPSBGcmFtZTo6Y3JlYXRlKG1fb3ZlcmxheVBhZ2UuZ2V0KCksIDAsIGR1bW15RnJhbWVMb2Fk
ZXJDbGllbnQpOworICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBtX292ZXJsYXlQYWdlLT5tYWlu
RnJhbWUoKTsKICAgICBmcmFtZS0+c2V0VmlldyhGcmFtZVZpZXc6OmNyZWF0ZShmcmFtZS5nZXQo
KSkpOwogICAgIGZyYW1lLT5pbml0KCk7CiAgICAgRnJhbWVMb2FkZXImIGxvYWRlciA9IGZyYW1l
LT5sb2FkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggZjM5
ZWZhMS4uMGY4OGVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAg
LTYyLDYgKzYyLDkgQEAgdm9pZCBmaWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdlOjpQYWdlQ2xpZW50
cyYgcGFnZUNsaWVudHMpCiAKICAgICBzdGF0aWMgSW5zcGVjdG9yQ2xpZW50KiBkdW1teUluc3Bl
Y3RvckNsaWVudCA9IGFkb3B0UHRyKG5ldyBFbXB0eUluc3BlY3RvckNsaWVudCkubGVha1B0cigp
OwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IGR1bW15SW5zcGVjdG9yQ2xpZW50
OworCisgICAgc3RhdGljIEZyYW1lTG9hZGVyQ2xpZW50KiBkdW1teUZyYW1lTG9hZGVyQ2xpZW50
ID0gbmV3IEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ7CisgICAgcGFnZUNsaWVudHMubG9hZGVyQ2xp
ZW50Rm9yTWFpbkZyYW1lID0gZHVtbXlGcmFtZUxvYWRlckNsaWVudDsKIH0KIAogY2xhc3MgRW1w
dHlQb3B1cE1lbnUgOiBwdWJsaWMgUG9wdXBNZW51IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXgg
YzU2ZTc5Ny4uZWJlNDgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTIwNCwxMCArMjA0LDcg
QEAgaW5saW5lIEZyYW1lOjpGcmFtZShQYWdlKiBwYWdlLCBIVE1MRnJhbWVPd25lckVsZW1lbnQq
IG93bmVyRWxlbWVudCwgRnJhbWVMb2FkZXIKIAogUGFzc1JlZlB0cjxGcmFtZT4gRnJhbWU6OmNy
ZWF0ZShQYWdlKiBwYWdlLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgRnJh
bWVMb2FkZXJDbGllbnQqIGNsaWVudCkKIHsKLSAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gYWRv
cHRSZWYobmV3IEZyYW1lKHBhZ2UsIG93bmVyRWxlbWVudCwgY2xpZW50KSk7Ci0gICAgaWYgKCFv
d25lckVsZW1lbnQpCi0gICAgICAgIHBhZ2UtPnNldE1haW5GcmFtZShmcmFtZSk7Ci0gICAgcmV0
dXJuIGZyYW1lLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1lKHBhZ2Us
IG93bmVyRWxlbWVudCwgY2xpZW50KSk7CiB9CiAKIEZyYW1lOjp+RnJhbWUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKaW5kZXggNTZiZTIyMy4uYjE0NmM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNDIs
NiArMTQyLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAgICAgLCBt
X3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3Byb2dyZXNzKFByb2dy
ZXNzVHJhY2tlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihCYWNr
Rm9yd2FyZENvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5iYWNrRm9yd2FyZENs
aWVudCkpCisgICAgLCBtX21haW5GcmFtZShGcmFtZTo6Y3JlYXRlKHRoaXMsIDAsIHBhZ2VDbGll
bnRzLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSkpCiAgICAgLCBtX3RoZW1lKFJlbmRlclRoZW1l
Ojp0aGVtZUZvclBhZ2UodGhpcykpCiAgICAgLCBtX2VkaXRvckNsaWVudChwYWdlQ2xpZW50cy5l
ZGl0b3JDbGllbnQpCiAgICAgLCBtX3BsdWdJbkNsaWVudChwYWdlQ2xpZW50cy5wbHVnSW5DbGll
bnQpCkBAIC0zNDQsMTIgKzM0NSw2IEBAIHZvaWQgUGFnZTo6c2V0Vmlld01vZGUoVmlld01vZGUg
dmlld01vZGUpCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFZJRVdfTU9ERV9DU1NfTUVESUEpCiAKLXZv
aWQgUGFnZTo6c2V0TWFpbkZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+IG1haW5GcmFtZSkKLXsKLSAg
ICBBU1NFUlQoIW1fbWFpbkZyYW1lKTsgLy8gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIGR1cmluZyBp
bml0aWFsaXphdGlvbgotICAgIG1fbWFpbkZyYW1lID0gbWFpbkZyYW1lOwotfQotCiBib29sIFBh
Z2U6Om9wZW5lZEJ5RE9NKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9vcGVuZWRCeURPTTsKQEAg
LTQ4NSw4ICs0ODAsMTAgQEAgdm9pZCBQYWdlOjp1cGRhdGVTdHlsZUZvckFsbFBhZ2VzQWZ0ZXJH
bG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCkKIAogdm9pZCBQYWdlOjpzZXROZWVkc1JlY2FsY1N0
eWxlSW5BbGxGcmFtZXMoKQogewotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7
IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKQotICAgICAgICBm
cmFtZS0+ZG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlckNoYW5nZWQoRGVmZXJSZWNhbGNTdHlsZSk7
CisgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJh
bWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKKyAgICAgICAgaWYgKERvY3VtZW50KiBkb2N1
bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnN0eWxlUmVz
b2x2ZXJDaGFuZ2VkKERlZmVyUmVjYWxjU3R5bGUpOworICAgIH0KIH0KIAogdm9pZCBQYWdlOjpy
ZWZyZXNoUGx1Z2lucyhib29sIHJlbG9hZCkKQEAgLTE1OTcsNiArMTU5NCw3IEBAIFBhZ2U6OlBh
Z2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgLCBpbnNwZWN0b3JDbGllbnQoMCkKICAgICAs
IHBsdWdJbkNsaWVudCgwKQogICAgICwgdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQoMCkKKyAgICAs
IGxvYWRlckNsaWVudEZvck1haW5GcmFtZSgwKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGQy
MTcyNTUuLmQ0ZDk3ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC02OCw2ICs2OCw3IEBAIGNsYXNzIERy
YWdDb250cm9sbGVyOwogY2xhc3MgRWRpdG9yQ2xpZW50OwogY2xhc3MgRm9jdXNDb250cm9sbGVy
OwogY2xhc3MgRnJhbWU7CitjbGFzcyBGcmFtZUxvYWRlckNsaWVudDsKIGNsYXNzIEZyYW1lU2Vs
ZWN0aW9uOwogY2xhc3MgSGFsdGFibGVQbHVnaW47CiBjbGFzcyBIaXN0b3J5SXRlbTsKQEAgLTEz
Niw2ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgICAgIFBsdWdJbkNsaWVudCogcGx1Z0luQ2xpZW50
OwogICAgICAgICBSZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBiYWNrRm9yd2FyZENsaWVudDsKICAg
ICAgICAgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Owor
ICAgICAgICBGcmFtZUxvYWRlckNsaWVudCogbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lOwogICAg
IH07CiAKICAgICBleHBsaWNpdCBQYWdlKFBhZ2VDbGllbnRzJik7CkBAIC0xNTgsNyArMTYwLDYg
QEAgcHVibGljOgogICAgIEVkaXRvckNsaWVudCogZWRpdG9yQ2xpZW50KCkgY29uc3QgeyByZXR1
cm4gbV9lZGl0b3JDbGllbnQ7IH0KICAgICBQbHVnSW5DbGllbnQqIHBsdWdJbkNsaWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcGx1Z0luQ2xpZW50OyB9CiAKLSAgICB2b2lkIHNldE1haW5GcmFtZShQ
YXNzUmVmUHRyPEZyYW1lPik7CiAgICAgRnJhbWUqIG1haW5GcmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbWFpbkZyYW1lLmdldCgpOyB9CiAKICAgICBib29sIG9wZW5lZEJ5RE9NKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCAwYmY2ZWZjLi4xZTFh
YmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTM0OSw4
ICszNDksNiBAQCBib29sIFNWR0ltYWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNlaXZl
ZCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAoYWxsRGF0YVJlY2VpdmVkKSB7Ci0g
ICAgICAgIHN0YXRpYyBGcmFtZUxvYWRlckNsaWVudCogZHVtbXlGcmFtZUxvYWRlckNsaWVudCA9
ICBuZXcgRW1wdHlGcmFtZUxvYWRlckNsaWVudDsKLQogICAgICAgICBQYWdlOjpQYWdlQ2xpZW50
cyBwYWdlQ2xpZW50czsKICAgICAgICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNsaWVudHMp
OwogICAgICAgICBtX2Nocm9tZUNsaWVudCA9IGFkb3B0UHRyKG5ldyBTVkdJbWFnZUNocm9tZUNs
aWVudCh0aGlzKSk7CkBAIC0zNjcsNyArMzY1LDcgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5n
ZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRT
Y3JpcHRFbmFibGVkKGZhbHNlKTsKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldFBsdWdp
bnNFbmFibGVkKGZhbHNlKTsKIAotICAgICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6
OmNyZWF0ZShtX3BhZ2UuZ2V0KCksIDAsIGR1bW15RnJhbWVMb2FkZXJDbGllbnQpOworICAgICAg
ICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKICAgICAgICAgZnJh
bWUtPnNldFZpZXcoRnJhbWVWaWV3OjpjcmVhdGUoZnJhbWUuZ2V0KCkpKTsKICAgICAgICAgZnJh
bWUtPmluaXQoKTsKICAgICAgICAgRnJhbWVMb2FkZXImIGxvYWRlciA9IGZyYW1lLT5sb2FkZXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBmYzgzYTBmLi42MmU2NjA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDgtMTggIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBw
bGUuY29tPgorCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMTk5NjQ+IFdlYkNvcmU6
IExldCBQYWdlIGNyZWF0ZSB0aGUgbWFpbiBGcmFtZS4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6c2V0V2ViRnJhbWUpOgor
CisgICAgICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNvbnN0cnVjdCBhIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50IHdpdGggYSBudWxsIFdlYkZyYW1lKi4KKyAgICAgICAgICAgIEEgV2ViRnJhbWUq
IGlzIGxhdGVyIGhvb2tlZCB1cCB3aXRoIGEgY2FsbCB0byBzZXRXZWJGcmFtZSgpLgorCisgICAg
ICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKCtbV2ViRnJhbWUgX2NyZWF0ZU1h
aW5GcmFtZVdpdGhQYWdlOmZyYW1lTmFtZTpmcmFtZVZpZXc6XSk6CisKKyAgICAgICAgICAgIEN1
c3RvbWl6ZWQgdGhpcyBtZXRob2QgdG8gd3JhcCB0aGUgUGFnZTo6bWFpbkZyYW1lKCkgaW5zdGVh
ZCBvZiBjcmVhdGluZyBhCisgICAgICAgICAgICBuZXcgRnJhbWUuCisKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9u
V2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisKKyAgICAgICAgICAgIEFkZCBhIFdlYkZyYW1l
TG9hZGVyQ2xpZW50IHRvIHRoZSBQYWdlQ2xpZW50cyBwYXNzZWQgdG8gUGFnZSgpLgorCiAyMDEz
LTA4LTE3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTE5OTQxPiBNYWtlIFBhZ2U6OmRyYWdDb250cm9sbGVyIHJldHVybiBh
IHJlZmVyZW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNDcwYTEwYS4uYWZmZjMwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCkBAIC01MSw4ICs1MSw5IEBAIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXI+LCBSZXRhaW5QdHI8V2ViUmVzb3VyY2U+ID4gUmVzb3VyCiAKIGNsYXNz
IFdlYkZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
IHsKIHB1YmxpYzoKLSAgICBXZWJGcmFtZUxvYWRlckNsaWVudChXZWJGcmFtZSopOworICAgIFdl
YkZyYW1lTG9hZGVyQ2xpZW50KFdlYkZyYW1lKiA9IDApOwogCisgICAgdm9pZCBzZXRXZWJGcmFt
ZShXZWJGcmFtZSogd2ViRnJhbWUpIHsgbV93ZWJGcmFtZSA9IHdlYkZyYW1lOyB9CiAgICAgV2Vi
RnJhbWUqIHdlYkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV93ZWJGcmFtZS5nZXQoKTsgfQogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggOWYzZjc1Yi4u
MmY1ZWY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0yODQsNyAr
Mjg0LDE3IEBAIFdlYlZpZXcgKmdldFdlYlZpZXcoV2ViRnJhbWUgKndlYkZyYW1lKQogCiArICh2
b2lkKV9jcmVhdGVNYWluRnJhbWVXaXRoUGFnZTooUGFnZSopcGFnZSBmcmFtZU5hbWU6KGNvbnN0
IFN0cmluZyYpbmFtZSBmcmFtZVZpZXc6KFdlYkZyYW1lVmlldyAqKWZyYW1lVmlldwogewotICAg
IFtzZWxmIF9jcmVhdGVGcmFtZVdpdGhQYWdlOnBhZ2UgZnJhbWVOYW1lOm5hbWUgZnJhbWVWaWV3
OmZyYW1lVmlldyBvd25lckVsZW1lbnQ6MF07CisgICAgV2ViVmlldyAqd2ViVmlldyA9IGtpdChw
YWdlKTsKKworICAgIFdlYkZyYW1lICpmcmFtZSA9IFtbc2VsZiBhbGxvY10gX2luaXRXaXRoV2Vi
RnJhbWVWaWV3OmZyYW1lVmlldyB3ZWJWaWV3OndlYlZpZXddOworICAgIGZyYW1lLT5fcHJpdmF0
ZS0+Y29yZUZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7CisgICAgc3RhdGljX2Nhc3Q8V2ViRnJh
bWVMb2FkZXJDbGllbnQqPihwYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkpLT5z
ZXRXZWJGcmFtZShmcmFtZSk7CisgICAgW2ZyYW1lIHJlbGVhc2VdOworCisgICAgcGFnZS0+bWFp
bkZyYW1lKCktPnRyZWUoKS0+c2V0TmFtZShuYW1lKTsKKyAgICBwYWdlLT5tYWluRnJhbWUoKS0+
aW5pdCgpOworCisgICAgW3dlYlZpZXcgX3NldFpvb21NdWx0aXBsaWVyOlt3ZWJWaWV3IF9yZWFs
Wm9vbU11bHRpcGxpZXJdIGlzVGV4dE9ubHk6W3dlYlZpZXcgX3JlYWxab29tTXVsdGlwbGllcklz
VGV4dE9ubHldXTsKIH0KIAogKyAoUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4pX2NyZWF0ZVN1
YmZyYW1lV2l0aE93bmVyRWxlbWVudDooSFRNTEZyYW1lT3duZXJFbGVtZW50Kilvd25lckVsZW1l
bnQgZnJhbWVOYW1lOihjb25zdCBTdHJpbmcmKW5hbWUgZnJhbWVWaWV3OihXZWJGcmFtZVZpZXcg
KilmcmFtZVZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAxZmM2Yzg0
Li41N2UzMGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC02MSw2ICs2
MSw3IEBACiAjaW1wb3J0ICJXZWJFZGl0b3JDbGllbnQuaCIKICNpbXBvcnQgIldlYkZvcm1EZWxl
Z2F0ZVByaXZhdGUuaCIKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldl
YkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmgiCiAjaW1wb3J0ICJXZWJGcmFtZVZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViRnVsbFNj
cmVlbkNvbnRyb2xsZXIuaCIKQEAgLTc2MCw2ICs3NjEsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRV
c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yKCkKICNlbmRpZgogICAgIHBh
Z2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7
CiAgICAgcGFnZUNsaWVudHMuYWx0ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbmV3IFdlYkFsdGVybmF0
aXZlVGV4dENsaWVudChzZWxmKTsKKyAgICBwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRGb3JNYWlu
RnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CiAgICAgX3ByaXZhdGUtPnBhZ2UgPSBu
ZXcgUGFnZShwYWdlQ2xpZW50cyk7CiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIFdlYkNv
cmU6OnByb3ZpZGVHZW9sb2NhdGlvblRvKF9wcml2YXRlLT5wYWdlLCBuZXcgV2ViR2VvbG9jYXRp
b25DbGllbnQoc2VsZikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGMyMDBhYzYuLjIyNjdmZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1MSBAQAorMjAxMy0wOC0xOCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzExOTk2ND4gV2ViQ29y
ZTogTGV0IFBhZ2UgY3JlYXRlIHRoZSBtYWluIEZyYW1lLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxv
YWRlckNsaWVudDo6V2ViRnJhbWVMb2FkZXJDbGllbnQpOgorCisgICAgICAgICAgICBUaGlzIHN0
YXJ0cyBvdXQgd2l0aCBhIG51bGwgV2ViRnJhbWUqIHBvaW50ZXIgbm93LgorCisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpzZXRXZWJGcmFtZSk6CisKKyAgICAgICAgICAg
IFdlYkZyYW1lIGhvb2tzIGl0c2VsZiB1cCB0aHJvdWdoIHRoaXMgYXMgc29vbiBhcyBpdCdzIGNv
bnN0cnVjdGVkLgorCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFt
ZUxvYWRlckRlc3Ryb3llZCk6CisKKyAgICAgICAgICAgIFR3ZWFrIGFuIG91dC1vZi1kYXRlIGNv
bW1lbnQuIFRoZSByZWYoKSB3ZSdyZSBiYWxhbmNpbmcgb3V0IGNvbWVzIGZyb20KKyAgICAgICAg
ICAgIFdlYkZyYW1lOjpjcmVhdGUoKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjcmVhdGVXaXRoQ29yZU1h
aW5GcmFtZSk6CisKKyAgICAgICAgICAgIFJld3JvdGUgY3JlYXRlTWFpbkZyYW1lKCkgYXMgY3Jl
YXRlV2l0aENvcmVNYWluRnJhbWUoKS4gVGhlIG5ldyBtZXRob2Qgd3JhcHMKKyAgICAgICAgICAg
IGFuIGV4aXN0aW5nIFdlYkNvcmU6OkZyYW1lIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25l
LgorCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjcmVhdGVTdWJmcmFtZSk6CisKKyAgICAg
ICAgICAgIE1lcmdlZCBXZWJGcmFtZTo6aW5pdCgpIGludG8gaGVyZSBzaW5jZSB0aGUgbG9naWMg
aXNuJ3Qgc2hhcmVkIHdpdGggbWFpbgorICAgICAgICAgICAgRnJhbWUgY3JlYXRpb24gYW55bW9y
ZS4KKworICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWU6OldlYkZyYW1lKToKKworICAgICAgICAgICAgQ2FsbCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6c2V0V2ViRnJhbWUodGhpcykuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaDoKKworICAgICAgICAgICAgV2ViRnJhbWU6Om1fZnJhbWVMb2FkZXJDbGll
bnQgaXMgbm93IGFuIE93blB0ciByYXRoZXIgdGhhbiBhbiBpbmxpbmUgbWVtYmVyLgorICAgICAg
ICAgICAgVGhpcyB3YXkgaXQgY2FuIGJlIGNyZWF0ZWQgYmVmb3JlIHRoZSBXZWJGcmFtZS4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6V2ViUGFnZSk6CisKKyAgICAgICAgICAgIFNldCB1cCBhIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50IGFuZCBwYXNzIGl0IHRvIHRoZSBQYWdlIGNvbnN0cnVjdG9yIGFsb25nIHdpdGgK
KyAgICAgICAgICAgIHRoZSBvdGhlciBQYWdlQ2xpZW50cy4KKwogMjAxMy0wOC0xOCAgR2F2aW4g
QmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTk3MgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAppbmRleCBkMjc3OGNlLi4xZjU0MTlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtODEsOCArODEsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYkZyYW1lTG9hZGVyQ2xpZW50OjpXZWJGcmFt
ZUxvYWRlckNsaWVudChXZWJGcmFtZSogZnJhbWUpCi0gICAgOiBtX2ZyYW1lKGZyYW1lKQorV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50KCkKKyAgICA6IG1fZnJhbWUo
MCkKICAgICAsIG1faGFzU2VudFJlc3BvbnNlVG9QbHVnaW5WaWV3KGZhbHNlKQogICAgICwgbV9k
aWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uQWxyZWFkeShmYWxzZSkKICAgICAsIG1fZnJhbWVDYW1l
RnJvbVBhZ2VDYWNoZShmYWxzZSkKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZnJhbWVMb2FkZXJEZXN0cm95ZWQoKQogewogICAgIG1fZnJhbWUtPmludmFsaWRh
dGUoKTsKIAotICAgIC8vIEJhbGFuY2VzIGV4cGxpY2l0IHJlZigpIGluIFdlYkZyYW1lOjpjcmVh
dGVNYWluRnJhbWUgYW5kIFdlYkZyYW1lOjpjcmVhdGVTdWJmcmFtZS4KKyAgICAvLyBCYWxhbmNl
cyBleHBsaWNpdCByZWYoKSBpbiBXZWJGcmFtZTo6Y3JlYXRlKCkuCiAgICAgbV9mcmFtZS0+ZGVy
ZWYoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGUwMGQzZmYuLjc0
MGMwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTM1LDkgKzM1LDEwIEBA
IGNsYXNzIFdlYkZyYW1lOwogICAgIAogY2xhc3MgV2ViRnJhbWVMb2FkZXJDbGllbnQgOiBwdWJs
aWMgV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50KFdlYkZyYW1lKik7CisgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQoKTsKICAgICB+
V2ViRnJhbWVMb2FkZXJDbGllbnQoKTsKIAorICAgIHZvaWQgc2V0V2ViRnJhbWUoV2ViRnJhbWUq
IHdlYkZyYW1lKSB7IG1fZnJhbWUgPSB3ZWJGcmFtZTsgfQogICAgIFdlYkZyYW1lKiB3ZWJGcmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IGJjZWM3MWQuLjJiOWJk
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNw
cApAQCAtMTAyLDMxICsxMDIsMzYgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlTGlzdGVuZXJJ
RCgpCiAgICAgcmV0dXJuIHVuaXF1ZUxpc3RlbmVySUQrKzsKIH0KIAotUGFzc1JlZlB0cjxXZWJG
cmFtZT4gV2ViRnJhbWU6OmNyZWF0ZU1haW5GcmFtZShXZWJQYWdlKiBwYWdlKQorUGFzc1JlZlB0
cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqIHBh
Z2UsIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUpCiB7Ci0gICAgUmVmUHRyPFdlYkZyYW1lPiBm
cmFtZSA9IGNyZWF0ZSgpOwotCisgICAgUmVmUHRyPFdlYkZyYW1lPiBmcmFtZSA9IGNyZWF0ZShh
ZG9wdFB0cihzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KGNvcmVGcmFtZS0+bG9h
ZGVyKCkuY2xpZW50KCkpKSk7CiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRDcmVhdGVNYWluRnJhbWUoZnJhbWUtPmZyYW1lSUQoKSkpOwogCi0gICAgZnJhbWUtPmlu
aXQocGFnZSwgU3RyaW5nKCksIDApOwotCisgICAgZnJhbWUtPm1fY29yZUZyYW1lID0gY29yZUZy
YW1lOworICAgIGZyYW1lLT5tX2NvcmVGcmFtZS0+dHJlZSgpLT5zZXROYW1lKFN0cmluZygpKTsK
KyAgICBmcmFtZS0+bV9jb3JlRnJhbWUtPmluaXQoKTsKICAgICByZXR1cm4gZnJhbWUucmVsZWFz
ZSgpOwogfQogCiBQYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUo
V2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIEhUTUxGcmFtZU93bmVyRWxl
bWVudCogb3duZXJFbGVtZW50KQogewotICAgIFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBjcmVh
dGUoKTsKLQorICAgIFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBjcmVhdGUoYWRvcHRQdHIobmV3
IFdlYkZyYW1lTG9hZGVyQ2xpZW50KSk7CiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEaWRDcmVhdGVTdWJmcmFtZShmcmFtZS0+ZnJhbWVJRCgpKSk7CiAKLSAgICBmcmFt
ZS0+aW5pdChwYWdlLCBmcmFtZU5hbWUsIG93bmVyRWxlbWVudCk7Ci0KKyAgICBSZWZQdHI8RnJh
bWU+IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVt
ZW50LCBmcmFtZS0+bV9mcmFtZUxvYWRlckNsaWVudC5nZXQoKSk7CisgICAgZnJhbWUtPm1fY29y
ZUZyYW1lID0gY29yZUZyYW1lLmdldCgpOworICAgIGZyYW1lLT5tX2NvcmVGcmFtZS0+dHJlZSgp
LT5zZXROYW1lKGZyYW1lTmFtZSk7CisgICAgaWYgKG93bmVyRWxlbWVudCkgeworICAgICAgICBB
U1NFUlQob3duZXJFbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpKTsKKyAgICAgICAgb3duZXJF
bGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpLT50cmVlKCktPmFwcGVuZENoaWxkKGNvcmVGcmFt
ZS5yZWxlYXNlKCkpOworICAgIH0KKyAgICBmcmFtZS0+bV9jb3JlRnJhbWUtPmluaXQoKTsKICAg
ICByZXR1cm4gZnJhbWUucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJG
cmFtZTo6Y3JlYXRlKCkKK1Bhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGUoUGFz
c093blB0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCiB7Ci0gICAg
UmVmUHRyPFdlYkZyYW1lPiBmcmFtZSA9IGFkb3B0UmVmKG5ldyBXZWJGcmFtZSk7CisgICAgUmVm
UHRyPFdlYkZyYW1lPiBmcmFtZSA9IGFkb3B0UmVmKG5ldyBXZWJGcmFtZShmcmFtZUxvYWRlckNs
aWVudCkpOwogCiAgICAgLy8gQWRkIGV4cGxpY3QgcmVmKCkgdGhhdCB3aWxsIGJlIGJhbGFuY2Vk
IGluIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRlckRlc3Ryb3llZCgpLgogICAgIGZy
YW1lLT5yZWYoKTsKQEAgLTEzNCwxNSArMTM5LDE2IEBAIFBhc3NSZWZQdHI8V2ViRnJhbWU+IFdl
YkZyYW1lOjpjcmVhdGUoKQogICAgIHJldHVybiBmcmFtZS5yZWxlYXNlKCk7CiB9CiAKLVdlYkZy
YW1lOjpXZWJGcmFtZSgpCitXZWJGcmFtZTo6V2ViRnJhbWUoUGFzc093blB0cjxXZWJGcmFtZUxv
YWRlckNsaWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCiAgICAgOiBtX2NvcmVGcmFtZSgwKQogICAg
ICwgbV9wb2xpY3lMaXN0ZW5lcklEKDApCiAgICAgLCBtX3BvbGljeUZ1bmN0aW9uKDApCiAgICAg
LCBtX3BvbGljeURvd25sb2FkSUQoMCkKLSAgICAsIG1fZnJhbWVMb2FkZXJDbGllbnQodGhpcykK
KyAgICAsIG1fZnJhbWVMb2FkZXJDbGllbnQoZnJhbWVMb2FkZXJDbGllbnQpCiAgICAgLCBtX2xv
YWRMaXN0ZW5lcigwKQogICAgICwgbV9mcmFtZUlEKGdlbmVyYXRlRnJhbWVJRCgpKQogeworICAg
IG1fZnJhbWVMb2FkZXJDbGllbnQtPnNldFdlYkZyYW1lKHRoaXMpOwogICAgIFdlYlByb2Nlc3M6
OnNoYXJlZCgpLmFkZFdlYkZyYW1lKG1fZnJhbWVJRCwgdGhpcyk7CiAKICNpZm5kZWYgTkRFQlVH
CkBAIC0xNTksMjEgKzE2NSw2IEBAIFdlYkZyYW1lOjp+V2ViRnJhbWUoKQogI2VuZGlmCiB9CiAK
LXZvaWQgV2ViRnJhbWU6OmluaXQoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5h
bWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50KQotewotICAgIFJlZlB0cjxG
cmFtZT4gZnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UtPmNvcmVQYWdlKCksIG93bmVyRWxlbWVu
dCwgJm1fZnJhbWVMb2FkZXJDbGllbnQpOwotICAgIG1fY29yZUZyYW1lID0gZnJhbWUuZ2V0KCk7
Ci0KLSAgICBmcmFtZS0+dHJlZSgpLT5zZXROYW1lKGZyYW1lTmFtZSk7Ci0KLSAgICBpZiAob3du
ZXJFbGVtZW50KSB7Ci0gICAgICAgIEFTU0VSVChvd25lckVsZW1lbnQtPmRvY3VtZW50KCktPmZy
YW1lKCkpOwotICAgICAgICBvd25lckVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCktPnRyZWUo
KS0+YXBwZW5kQ2hpbGQoZnJhbWUpOwotICAgIH0KLQotICAgIGZyYW1lLT5pbml0KCk7Ci19Ci0K
IFdlYlBhZ2UqIFdlYkZyYW1lOjpwYWdlKCkgY29uc3QKIHsgCiAgICAgaWYgKCFtX2NvcmVGcmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXgg
YmY2OWJhMS4uN2EzMWIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmgKQEAgLTU3LDcgKzU3LDcgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3MgV2Vi
RnJhbWUgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlQnVuZGxlRnJhbWU+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRlTWFpbkZy
YW1lKFdlYlBhZ2UqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRlV2l0
aENvcmVNYWluRnJhbWUoV2ViUGFnZSosIFdlYkNvcmU6OkZyYW1lKik7CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcm
IGZyYW1lTmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CiAgICAgfldlYkZy
YW1lKCk7CiAKQEAgLTE0MSw4ICsxNDEsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRlKCk7Ci0gICAgV2ViRnJhbWUo
KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRlKFBhc3NPd25QdHI8V2Vi
RnJhbWVMb2FkZXJDbGllbnQ+KTsKKyAgICBXZWJGcmFtZShQYXNzT3duUHRyPFdlYkZyYW1lTG9h
ZGVyQ2xpZW50Pik7CiAKICAgICB2b2lkIGluaXQoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgZnJh
bWVOYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsKIApAQCAtMTUyLDcgKzE1
Miw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiBtX3BvbGlj
eUZ1bmN0aW9uOwogICAgIHVpbnQ2NF90IG1fcG9saWN5RG93bmxvYWRJRDsKIAotICAgIFdlYkZy
YW1lTG9hZGVyQ2xpZW50IG1fZnJhbWVMb2FkZXJDbGllbnQ7CisgICAgT3duUHRyPFdlYkZyYW1l
TG9hZGVyQ2xpZW50PiBtX2ZyYW1lTG9hZGVyQ2xpZW50OwogICAgIExvYWRMaXN0ZW5lciogbV9s
b2FkTGlzdGVuZXI7CiAgICAgCiAgICAgdWludDY0X3QgbV9mcmFtZUlEOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDc5ZmZhY2UuLjIxNmEx
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkV2
ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJHZW9s
b2NhdGlvbkNsaWVudC5oIgpAQCAtMzE1LDkgKzMxNiwxNSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVp
bnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKICAgICBwYWdlQ2xpZW50cy5hbHRlcm5hdGl2ZVRleHRDbGllbnQgPSBuZXcgV2ViQWx0ZXJu
YXRpdmVUZXh0Q2xpZW50KHRoaXMpOwogI2VuZGlmCiAgICAgcGFnZUNsaWVudHMucGx1Z0luQ2xp
ZW50ID0gbmV3IFdlYlBsdWdJbkNsaWVudCh0aGlzKTsKKyAgICBwYWdlQ2xpZW50cy5sb2FkZXJD
bGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CiAKICAgICBtX3Bh
Z2UgPSBhZG9wdFB0cihuZXcgUGFnZShwYWdlQ2xpZW50cykpOwogCisgICAgbV9kcmF3aW5nQXJl
YSA9IERyYXdpbmdBcmVhOjpjcmVhdGUodGhpcywgcGFyYW1ldGVycyk7CisgICAgbV9kcmF3aW5n
QXJlYS0+c2V0UGFpbnRpbmdFbmFibGVkKGZhbHNlKTsKKworICAgIG1fbWFpbkZyYW1lID0gV2Vi
RnJhbWU6OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKHRoaXMsIG1fcGFnZS0+bWFpbkZyYW1lKCkp
OworCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQogICAgIFdlYkNvcmU6OnByb3ZpZGVCYXR0
ZXJ5VG8obV9wYWdlLmdldCgpLCBuZXcgV2ViQmF0dGVyeUNsaWVudCh0aGlzKSk7CiAjZW5kaWYK
QEAgLTM0OCwxNCArMzU1LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNv
bnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgbV9wYWdlLT5z
ZXRHcm91cE5hbWUobV9wYWdlR3JvdXAtPmlkZW50aWZpZXIoKSk7CiAgICAgbV9wYWdlLT5zZXRE
ZXZpY2VTY2FsZUZhY3RvcihwYXJhbWV0ZXJzLmRldmljZVNjYWxlRmFjdG9yKTsKIAotICAgIG1f
ZHJhd2luZ0FyZWEgPSBEcmF3aW5nQXJlYTo6Y3JlYXRlKHRoaXMsIHBhcmFtZXRlcnMpOwotICAg
IG1fZHJhd2luZ0FyZWEtPnNldFBhaW50aW5nRW5hYmxlZChmYWxzZSk7Ci0KICAgICB1cGRhdGVQ
cmVmZXJlbmNlcyhwYXJhbWV0ZXJzLnN0b3JlKTsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsK
IAotICAgIG1fbWFpbkZyYW1lID0gV2ViRnJhbWU6OmNyZWF0ZU1haW5GcmFtZSh0aGlzKTsKLQog
ICAgIHNldFVzZUZpeGVkTGF5b3V0KHBhcmFtZXRlcnMudXNlRml4ZWRMYXlvdXQpOwogCiAgICAg
c2V0RHJhd3NCYWNrZ3JvdW5kKHBhcmFtZXRlcnMuZHJhd3NCYWNrZ3JvdW5kKTsK
</data>
<flag name="review"
          id="231029"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209093</attachid>
            <date>2013-08-19 09:34:03 -0700</date>
            <delta_ts>2013-08-19 10:20:58 -0700</delta_ts>
            <desc>GTK-WK1 changes</desc>
            <filename>wk1frame</filename>
            <type>text/plain</type>
            <size>3295</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcAppbmRleCBjOGRkZWRjLi5kNTRmMTM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
Y3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJQbHVn
aW5WaWV3LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
UGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTExMCw3ICsxMTEsNiBAQCBGcmFt
ZUxvYWRlckNsaWVudDo6RnJhbWVMb2FkZXJDbGllbnQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQog
ICAgICwgbV9wbHVnaW5WaWV3KDApCiAgICAgLCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luKGZh
bHNlKQogewotICAgIEFTU0VSVChtX2ZyYW1lKTsKIH0KIAogRnJhbWVMb2FkZXJDbGllbnQ6On5G
cmFtZUxvYWRlckNsaWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaAppbmRleCA2NTU1MTFkLi5jNzgyOTJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmgKQEAgLTMyLDE5ICszMiwyMyBAQAogCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0jaW5jbHVkZSAiUGx1
Z2luVmlldy5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmgiCiAKIHR5cGVk
ZWYgc3RydWN0IF9XZWJLaXRXZWJGcmFtZSBXZWJLaXRXZWJGcmFtZTsKIAorbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgUGx1Z2luVmlldzsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKICAg
ICBjbGFzcyBGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudCB7CiAgICAgcHVibGljOgotICAgICAgICBGcmFtZUxvYWRlckNsaWVudChXZWJLaXRXZWJG
cmFtZSopOworICAgICAgICBGcmFtZUxvYWRlckNsaWVudChXZWJLaXRXZWJGcmFtZSogPSAwKTsK
ICAgICAgICAgdmlydHVhbCB+RnJhbWVMb2FkZXJDbGllbnQoKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIGZyYW1lTG9hZGVyRGVzdHJveWVkKCk7CiAKKyAgICAgICAgdm9pZCBzZXRXZWJGcmFtZShX
ZWJLaXRXZWJGcmFtZSogZnJhbWUpIHsgbV9mcmFtZSA9IGZyYW1lOyB9CiAgICAgICAgIFdlYktp
dFdlYkZyYW1lKiAgd2ViRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9CiAKICAgICAg
ICAgdmlydHVhbCBib29sIGhhc1dlYlZpZXcoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4IDA2YjJlYTguLmZkYTAzYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAtNTUyLDggKzU1Miw4
IEBAIFdlYktpdFdlYkZyYW1lKiB3ZWJraXRfd2ViX2ZyYW1lX25ldyhXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQogICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiB2aWV3UHJpdiA9IHdlYlZpZXctPnBy
aXY7CiAKICAgICBwcml2LT53ZWJWaWV3ID0gd2ViVmlldzsKLSAgICBXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50KiBjbGllbnQgPSBuZXcgV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudChmcmFtZSk7
Ci0gICAgcHJpdi0+Y29yZUZyYW1lID0gRnJhbWU6OmNyZWF0ZSh2aWV3UHJpdi0+Y29yZVBhZ2Us
IDAsIGNsaWVudCkuZ2V0KCk7CisgICAgcHJpdi0+Y29yZUZyYW1lID0gdmlld1ByaXYtPmNvcmVQ
YWdlLT5tYWluRnJhbWUoKTsKKyAgICBzdGF0aWNfY2FzdDxXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50Kj4odmlld1ByaXYtPmNvcmVQYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkp
LT5zZXRXZWJGcmFtZShmcmFtZSk7CiAgICAgcHJpdi0+Y29yZUZyYW1lLT5pbml0KCk7CiAKICAg
ICBwcml2LT5vcmlnaW4gPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwCmluZGV4IDdjNDEzN2MuLmVkZTRmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTU3LDcgKzU3LDcgQEAKICNpbmNsdWRlICJGbG9hdFF1
YWQuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR093blB0ckd0ay5oIgpAQCAtMzc2Myw2ICszNzYzLDcg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2luaXQoV2ViS2l0V2ViVmlldyogd2ViVmll
dykKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdlYktpdDo6RHJhZ0NsaWVudCh3
ZWJWaWV3KTsKICNlbmRpZgogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBX
ZWJLaXQ6Okluc3BlY3RvckNsaWVudCh3ZWJWaWV3KTsKKyAgICBwYWdlQ2xpZW50cy5sb2FkZXJD
bGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudCgpOwogCiAg
ICAgcHJpdi0+Y29yZVBhZ2UgPSBuZXcgUGFnZShwYWdlQ2xpZW50cyk7CiAKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209717</attachid>
            <date>2013-08-26 23:43:50 -0700</date>
            <delta_ts>2013-08-27 02:12:07 -0700</delta_ts>
            <desc>Qt-Patch-For-119964.patch</desc>
            <filename>Qt-Patch-For-119964.patch</filename>
            <type>text/plain</type>
            <size>1699</size>
            <attacher name="Arunprasad Rajkumar">arurajku</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRh
cHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0
ZXIuY3BwCmluZGV4IDJhZjE5ZWQuLmJkMjFhZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9RV2ViRnJhbWVBZGFwdGVyLmNwcApAQCAtOTAsOCArOTAsMTQg
QEAgUVdlYkZyYW1lRGF0YTo6UVdlYkZyYW1lRGF0YShXZWJDb3JlOjpQYWdlKiBwYXJlbnRQYWdl
LCBXZWJDb3JlOjpGcmFtZSogcGFyZW50RnIKICAgICAsIG1hcmdpbldpZHRoKDApCiAgICAgLCBt
YXJnaW5IZWlnaHQoMCkKIHsKLSAgICBmcmFtZUxvYWRlckNsaWVudCA9IG5ldyBGcmFtZUxvYWRl
ckNsaWVudFF0KCk7Ci0gICAgZnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UsIG93bmVyRWxlbWVu
dCwgZnJhbWVMb2FkZXJDbGllbnQpOworICAgIC8vIG1haW5mcmFtZSBpcyBhbHJlYWR5IGNyZWF0
ZWQgaW4gV2ViQ29yZTo6UGFnZSwganVzdCB1c2UgaXQuCisgICAgaWYgKCFwYXJlbnRGcmFtZSB8
fCAhb3duZXJFbGVtZW50KSB7CisgICAgICAgIGZyYW1lID0gcGFyZW50UGFnZS0+bWFpbkZyYW1l
KCk7CisgICAgICAgIGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJD
bGllbnRRdCo+KCZmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpOworICAgIH0gZWxzZSB7CisgICAg
ICAgIGZyYW1lTG9hZGVyQ2xpZW50ID0gbmV3IEZyYW1lTG9hZGVyQ2xpZW50UXQoKTsKKyAgICAg
ICAgZnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UsIG93bmVyRWxlbWVudCwgZnJhbWVMb2FkZXJD
bGllbnQpOworICAgIH0KIAogICAgIC8vIEZJWE1FOiBBbGwgb2YgdGhlIGJlbG93IHNob3VsZCBw
cm9iYWJseSBiZSBtb3ZlZCBvdmVyIGludG8gV2ViQ29yZQogICAgIGZyYW1lLT50cmVlKCktPnNl
dE5hbWUobmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L1FXZWJQYWdlQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FX
ZWJQYWdlQWRhcHRlci5jcHAKaW5kZXggY2Y2YTFkOC4uYTEwZGExMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RV2ViUGFnZUFkYXB0ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYlBhZ2VBZGFwdGVyLmNwcApAQCAtMjI4
LDYgKzIyOCw3IEBAIHZvaWQgUVdlYlBhZ2VBZGFwdGVyOjppbml0aWFsaXplV2ViQ29yZVBhZ2Uo
KQogICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBFZGl0b3JDbGllbnRRdCh0aGlz
KTsKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IERyYWdDbGllbnRRdChwYWdlQ2xp
ZW50cy5jaHJvbWVDbGllbnQpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5l
dyBJbnNwZWN0b3JDbGllbnRRdCh0aGlzKTsKKyAgICBwYWdlQ2xpZW50cy5sb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUgPSBuZXcgRnJhbWVMb2FkZXJDbGllbnRRdCgpOwogICAgIHBhZ2UgPSBuZXcg
UGFnZShwYWdlQ2xpZW50cyk7CiAKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCg==
</data>
<flag name="review"
          id="231780"
          type_id="1"
          status="-"
          setter="ossy"
    />
          </attachment>
      

    </bug>

</bugzilla>