<?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>109033</bug_id>
          
          <creation_ts>2013-02-06 02:47:27 -0800</creation_ts>
          <short_desc>[Qt][EFL] Coordinated Graphics: scroll animation makes fixed element shake.</short_desc>
          <delta_ts>2022-02-27 23:32:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>110847</dependson>
    
    <dependson>111829</dependson>
          <blocked>103105</blocked>
    
    <blocked>110066</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Dongseong Hwang">dongseong.hwang</assigned_to>
          <cc>abecsi</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dev</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>luiz</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>menard</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>noam</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826267</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-06 02:47:27 -0800</bug_when>
    <thetext>When panning using touch, we can see shaking fixed element in ManualTests/fixed-position.html

Strangely, if you early return in TextureMapperLayer::setScrollPositionDeltaIfNeeded, this shaking disappears.
void TextureMapperLayer::setScrollPositionDeltaIfNeeded(const FloatSize&amp; delta)
{
+    return;
    ...
}

But when you drag using touch, we can see shaking with &apos;early return&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826277</commentid>
    <comment_count>1</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-06 02:58:47 -0800</bug_when>
    <thetext>might be relevant to https://bugs.webkit.org/show_bug.cgi?id=106656</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826282</commentid>
    <comment_count>2</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-06 03:07:41 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; might be relevant to https://bugs.webkit.org/show_bug.cgi?id=106656

Yes, I think so.

I suspect it is the timing issue in PageViewportController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832874</commentid>
    <comment_count>3</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-14 02:14:26 -0800</bug_when>
    <thetext>If I test on real web pages, it doesn&apos;t as much shake as just lack behind. When panning down the fixed elements will be slightly to high moving to catch up. The fast the pan, the more the fixed elements will be behind. Similarly if you pan up the fixed elements will be too low on the page. This is most easy to see with fixed elements fixed to the top or bottom of the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837133</commentid>
    <comment_count>4</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-19 21:54:18 -0800</bug_when>
    <thetext>I think Bug 110080 is also related.
I suspect there is a bug in PageViewportController related to pending and commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841836</commentid>
    <comment_count>5</comment_count>
      <attachid>190252</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-26 03:05:54 -0800</bug_when>
    <thetext>Created attachment 190252
WIP: need more tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841952</commentid>
    <comment_count>6</comment_count>
      <attachid>190252</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-26 06:40:01 -0800</bug_when>
    <thetext>Comment on attachment 190252
WIP: need more tests

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

&gt; Source/WebKit2/UIProcess/qt/QtWebPageSGNode.cpp:65
&gt; -        coordinatedGraphicsScene()-&gt;paintToCurrentGLContext(renderMatrix, inheritedOpacity(), clipRect(), mirrored ? TextureMapper::PaintingMirrored : 0);
&gt; +        coordinatedGraphicsScene()-&gt;paintToCurrentGLContext(renderMatrix, inheritedOpacity(), clipRect(), pageNode()-&gt;scrollPosition(), mirrored ? TextureMapper::PaintingMirrored : 0);

isnt the scroll pos part of the renderMatrix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842412</commentid>
    <comment_count>7</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-26 15:04:02 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 190252 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190252&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtWebPageSGNode.cpp:65
&gt; &gt; -        coordinatedGraphicsScene()-&gt;paintToCurrentGLContext(renderMatrix, inheritedOpacity(), clipRect(), mirrored ? TextureMapper::PaintingMirrored : 0);
&gt; &gt; +        coordinatedGraphicsScene()-&gt;paintToCurrentGLContext(renderMatrix, inheritedOpacity(), clipRect(), pageNode()-&gt;scrollPosition(), mirrored ? TextureMapper::PaintingMirrored : 0);
&gt; 
&gt; isnt the scroll pos part of the renderMatrix?

good question! we make renderMatrix using scrollposition, native window position, page scale and device scale, so it is hard to extract css position from renderMatrix. And I think it is natural that the clients that call paintToCurrentGLContext() prepare css position because they already prepare renderMatrix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842957</commentid>
    <comment_count>8</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-27 05:21:42 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; good question! we make renderMatrix using scrollposition, native window position, page scale and device scale, so it is hard to extract css position from renderMatrix. And I think it is natural that the clients that call paintToCurrentGLContext() prepare css position because they already prepare renderMatrix.

The position is already in the matrix and I think it would be better if you use it instead of duplicating this information in a separate parameter.

That&apos;s how OpenGL represents a position: with a matrix, because it&apos;s unusual in this world to have all your objects on a single plane.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843772</commentid>
    <comment_count>9</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-27 23:18:52 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; The position is already in the matrix and I think it would be better if you use it instead of duplicating this information in a separate parameter.
&gt; 
&gt; That&apos;s how OpenGL represents a position: with a matrix, because it&apos;s unusual in this world to have all your objects on a single plane.

Ok, Jocelyn and kenneth. I&apos;ll survey more :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846132</commentid>
    <comment_count>10</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-03 18:12:06 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; The position is already in the matrix and I think it would be better if you use it instead of duplicating this information in a separate parameter.
&gt; &gt; 
&gt; &gt; That&apos;s how OpenGL represents a position: with a matrix, because it&apos;s unusual in this world to have all your objects on a single plane.
&gt; 
&gt; Ok, Jocelyn and kenneth. I&apos;ll survey more :)

I think it is very hard to extract scroll position from the matrix.

In Qt case, QSGRenderNode generates the matrix using scroll position, page scale, device scale and node position. Scene can not get node position.
In EFL case, WebView generates the matrix using scroll position, page scale, device scale and userViewportTransform. Scene can not get userViewportTransform.

I think this nasty situation (Scene should know scroll position) is originated from fixed element positioned in contents coordinates, not viewport coordinates.
I think we need to go with this not good code until we change WebCore to assign fixed element&apos;s position in viewport coordinates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846134</commentid>
    <comment_count>11</comment_count>
      <attachid>191158</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-03 18:26:12 -0800</bug_when>
    <thetext>Created attachment 191158
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846268</commentid>
    <comment_count>12</comment_count>
      <attachid>191158</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-03-04 02:46:46 -0800</bug_when>
    <thetext>Comment on attachment 191158
Patch

Patch doesn&apos;t apply in UIProcess/efl/WebView.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846274</commentid>
    <comment_count>13</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-04 02:51:38 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 191158 [details])
&gt; Patch doesn&apos;t apply in UIProcess/efl/WebView.cpp.

Yes, because this patch depends on Bug 110847. After resolving Bug 110847, I&apos;ll re-post. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846307</commentid>
    <comment_count>14</comment_count>
      <attachid>191158</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-04 03:32:07 -0800</bug_when>
    <thetext>Comment on attachment 191158
Patch

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

I agree that with the current situation, with fixed layers expecting a delta, it won&apos;t be pretty solving this only with matrices.

&gt; Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp:208
&gt;  void QRawWebViewPrivate::pageDidRequestScroll(const WebCore::IntPoint&amp; pos)
&gt;  {
&gt;      m_client-&gt;viewRequestedScroll(pos);
&gt; -
&gt; +    m_position = QPointF(pos.x(), pos.y());

I doubt that adding this line fixes everything. From my understanding there is poor support for fixed elements in QRawWebView, if so please just make sure it builds and avoid adding more complexity to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846890</commentid>
    <comment_count>15</comment_count>
      <attachid>191158</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-04 15:04:12 -0800</bug_when>
    <thetext>Comment on attachment 191158
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp:208
&gt;&gt; +    m_position = QPointF(pos.x(), pos.y());
&gt; 
&gt; I doubt that adding this line fixes everything. From my understanding there is poor support for fixed elements in QRawWebView, if so please just make sure it builds and avoid adding more complexity to it.

Thank you for review!
Do you mean that there is another point to change scroll position in QRawWebView? I introduced m_position to trace scroll position to make Scene know that.
In my understanding, QRawWebView does not have flickering or pinch event handling like QQuickWebView, so I think QRawWebViewPrivate::pageDidRequestScroll is only point changing scroll position.

On the other hands, IMO supporting for fixed element is the role of Coordinated Graphics, not QRawWebView or QQuickWebView. When it comes to fixed element, what is different between QRawWebView and QQuickWebView? What I need from QRawWebView or QQuickWebView is just to query scroll position.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847389</commentid>
    <comment_count>16</comment_count>
      <attachid>191424</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-05 00:40:17 -0800</bug_when>
    <thetext>Created attachment 191424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847403</commentid>
    <comment_count>17</comment_count>
      <attachid>191424</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-03-05 01:04:36 -0800</bug_when>
    <thetext>Comment on attachment 191424
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:87
&gt;  
&gt; -    adjustPositionForFixedLayers();
&gt; +    adjustPositionForFixedLayers(scrollPosition);

why not just call setScrollPosition before this? That would be a minimal change to the code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847446</commentid>
    <comment_count>18</comment_count>
      <attachid>191424</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-05 01:44:34 -0800</bug_when>
    <thetext>Comment on attachment 191424
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:87
&gt;&gt; +    adjustPositionForFixedLayers(scrollPosition);
&gt; 
&gt; why not just call setScrollPosition before this? That would be a minimal change to the code

That is a way! What we have to do is to decide to remove either one parameter or one member :)
do you think that it is better to remain setScrollPosition() and m_scrollPosition?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847575</commentid>
    <comment_count>19</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-05 05:16:15 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Do you mean that there is another point to change scroll position in QRawWebView? I introduced m_position to trace scroll position to make Scene know that.
&gt; In my understanding, QRawWebView does not have flickering or pinch event handling like QQuickWebView, so I think QRawWebViewPrivate::pageDidRequestScroll is only point changing scroll position.

QRawWebView is not completely implemented, we&apos;ll reuse it or get rid of it soon, so please just make sure that it compiles. In this case please just pass (0,0) for the new parameter in paintToCurrentGLContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848551</commentid>
    <comment_count>20</comment_count>
      <attachid>191671</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-06 00:23:08 -0800</bug_when>
    <thetext>Created attachment 191671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848552</commentid>
    <comment_count>21</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-06 00:23:37 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; QRawWebView is not completely implemented, we&apos;ll reuse it or get rid of it soon, so please just make sure that it compiles. In this case please just pass (0,0) for the new parameter in paintToCurrentGLContext.

aha, I see. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850940</commentid>
    <comment_count>22</comment_count>
      <attachid>192165</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-08 00:09:59 -0800</bug_when>
    <thetext>Created attachment 192165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850943</commentid>
    <comment_count>23</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-08 00:11:52 -0800</bug_when>
    <thetext>now ews can run this patch. could you review? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850958</commentid>
    <comment_count>24</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-08 00:35:23 -0800</bug_when>
    <thetext>Recently, regression related to scroll occurs. I filed Bug 111829.
Bug 111829 should be fixed before this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851005</commentid>
    <comment_count>25</comment_count>
      <attachid>192165</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-08 02:10:09 -0800</bug_when>
    <thetext>Comment on attachment 192165
Patch

After landing 111829, this bug will be valid again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909103</commentid>
    <comment_count>26</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-07-16 18:45:18 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 192165 [details])
&gt; After landing 111829, this bug will be valid again.

Dongseong, Bug 111829 was landed. Any update ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935674</commentid>
    <comment_count>27</comment_count>
      <attachid>192165</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-02 21:24:39 -0700</bug_when>
    <thetext>Comment on attachment 192165
Patch

Marking this patch r- for now since it touches Qt code and Qt has been removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1286507</commentid>
    <comment_count>28</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-03-11 10:42:31 -0800</bug_when>
    <thetext>Closing this bug because the EFL port has been removed from trunk.

If you feel this bug applies to a different upstream WebKit port and was closed in error, please either update the title and reopen the bug, or leave a comment to request this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190252</attachid>
            <date>2013-02-26 03:05:54 -0800</date>
            <delta_ts>2013-03-03 18:26:07 -0800</delta_ts>
            <desc>WIP: need more tests</desc>
            <filename>bug-109033-20130226200156.patch</filename>
            <type>text/plain</type>
            <size>13437</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTE4MTU3OGQ3MGU5YzY4
MzM5YjM5MjJiMWNhYmExOWJjMzE1YmQ5NC4uMDBkNDY1MTM2ZTM5NWVhMzliZGNlNDkxZmNlM2Ux
MWM1NzA4MjgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAyLTI2ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtRdF0gQ29v
cmRpbmF0ZWQgR3JhcGhpY3M6IHNjcm9sbCBhbmltYXRpb24gbWFrZXMgZml4ZWQgZWxlbWVudCBz
aGFrZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTAzMworCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLgorICAgICAg
ICBOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cGFp
bnRUb0N1cnJlbnRHTENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5ZXJzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
Lmg6CisgICAgICAgIChDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUpOgorCiAyMDEzLTAyLTI1ICBD
aHJpcyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAgICAgICAgQXVkaW9EZXN0aW5h
dGlvbkNocm9taXVtIHNob3VsZCBwYXNzIGluIGlucHV0RGV2aWNlSWQgd2hlbiBjcmVhdGluZyBX
ZWJLaXQ6OldlYkF1ZGlvRGV2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2E0Y2Q5OTVhOTI0MzQ2NTZiNDdk
MGNiNzVjMjVlZTNkZDM3YTY0Yi4uZmViYTlhODNlOWY1OWUxZGRkMzUwYzc1NjkyOWY2M2U2NTAw
YTRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAyLTI2ICBIdWFuZyBEb25n
c3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtRdF0gQ29vcmRpbmF0
ZWQgR3JhcGhpY3M6IHNjcm9sbCBhbmltYXRpb24gbWFrZXMgZml4ZWQgZWxlbWVudCBzaGFrZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTAzMwor
CisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLgorICAgICAgICBOZWVk
IHRoZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwOgorICAg
ICAgICAoUVF1aWNrV2ViUGFnZTo6dXBkYXRlUGFpbnROb2RlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHA6CisgICAgICAgIChRUmF3V2ViVmlld1ByaXZh
dGU6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKToKKyAgICAgICAgKFFSYXdXZWJWaWV3OjpwYWludCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXdfcF9wLmg6CisgICAg
ICAgIChRUmF3V2ViVmlld1ByaXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNldFZpc2libGVDb250ZW50c1Jl
Y3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXc6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvcXQvUXRXZWJQYWdlU0dOb2RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29udGVudHNTR05v
ZGU6OnJlbmRlcik6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5oOgor
ICAgICAgICAoV2ViS2l0OjpRdFdlYlBhZ2VTR05vZGU6OnNjcm9sbFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UXRXZWJQYWdlU0dOb2RlOjpzZXRTY3JvbGxQb3NpdGlvbik6CisgICAgICAg
IChRdFdlYlBhZ2VTR05vZGUpOgorCiAyMDEzLTAyLTIxICBIdWFuZyBEb25nc3VuZyAgPGx1eHRl
bGxhQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIENvb3JkaW5hdGVkIEdyYXBoaWNzOiByZW1v
dmUgcmVkdW5kYW50IHVwZGF0ZSBvZiBub24gY29tcG9zaXRpbmcgbGF5ZXIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCmluZGV4
IDg2MjQ1MTMwNDkyZDliYjEwM2JlMGQ0MjMzMmIzZjYwMDUwY2ExNTguLmM3NTNmNmJkZGE1ZTZi
ODVhY2I1MzVkNzg5NDRmYTgyMGZkM2RkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIENv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6fkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgpCiB7CiB9
CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwYWludFRvQ3VycmVudEdMQ29udGV4
dChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25z
dCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIFBhaW50Rmxh
Z3MpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cGFpbnRUb0N1cnJlbnRHTENvbnRl
eHQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29u
c3QgRmxvYXRSZWN0JiBjbGlwUmVjdCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgUGFpbnRGbGFncykKIHsKICAgICBpZiAoIW1fdGV4
dHVyZU1hcHBlcikgewogICAgICAgICBtX3RleHR1cmVNYXBwZXIgPSBUZXh0dXJlTWFwcGVyOjpj
cmVhdGUoVGV4dHVyZU1hcHBlcjo6T3BlbkdMTW9kZSk7CkBAIC04NCw3ICs4NCw3IEBAIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwYWludFRvQ3VycmVudEdMQ29udGV4dChjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpCiAgICAgQVNTRVJUKG1fdGV4dHVyZU1hcHBlci0+YWNjZWxlcmF0
aW9uTW9kZSgpID09IFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUpOwogICAgIHN5bmNSZW1vdGVD
b250ZW50KCk7CiAKLSAgICBhZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5ZXJzKCk7CisgICAgYWRq
dXN0UG9zaXRpb25Gb3JGaXhlZExheWVycyhzY3JvbGxQb3NpdGlvbik7CiAgICAgR3JhcGhpY3NM
YXllciogY3VycmVudFJvb3RMYXllciA9IHJvb3RMYXllcigpOwogICAgIGlmICghY3VycmVudFJv
b3RMYXllcikKICAgICAgICAgcmV0dXJuOwpAQCAtMTY4LDExICsxNjgsNiBAQCB2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZTo6cGFpbnRUb0dyYXBoaWNzQ29udGV4dChQbGF0Zm9ybUdyYXBo
aWNzQ29udGV4dCogcAogICAgIG1fdGV4dHVyZU1hcHBlci0+c2V0R3JhcGhpY3NDb250ZXh0KDAp
OwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0U2Nyb2xsUG9zaXRpb24o
Y29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCi17Ci0gICAgbV9zY3JvbGxQb3NpdGlv
biA9IHNjcm9sbFBvc2l0aW9uOwotfQotCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6
dXBkYXRlVmlld3BvcnQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0xODAs
NyArMTc1LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVZpZXdwb3J0
KCkKICAgICAgICAgbV9jbGllbnQtPnVwZGF0ZVZpZXdwb3J0KCk7CiB9CiAKLXZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5ZXJzKCkKK3ZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5ZXJzKGNv
bnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQogewogICAgIGlmIChtX2ZpeGVkTGF5ZXJz
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTg4LDcgKzE4Myw3IEBAIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5ZXJzKCkKICAg
ICAvLyBGaXhlZCBsYXllciBwb3NpdGlvbnMgYXJlIHVwZGF0ZWQgYnkgdGhlIHdlYiBwcm9jZXNz
IHdoZW4gd2UgdXBkYXRlIHRoZSB2aXNpYmxlIGNvbnRlbnRzIHJlY3QgLyBzY3JvbGwgcG9zaXRp
b24uCiAgICAgLy8gSWYgd2Ugd2FudCB0aG9zZSBsYXllcnMgdG8gZm9sbG93IGFjY3VyYXRlbHkg
dGhlIHZpZXdwb3J0IHdoZW4gd2UgbW92ZSBiZXR3ZWVuIHRoZSB3ZWIgcHJvY2VzcyB1cGRhdGVz
LCB3ZSBoYXZlIHRvIG9mZnNldAogICAgIC8vIHRoZW0gYnkgdGhlIGRlbHRhIGJldHdlZW4gdGhl
IGN1cnJlbnQgcG9zaXRpb24gYW5kIHRoZSBwb3NpdGlvbiBvZiB0aGUgdmlld3BvcnQgdXNlZCBm
b3IgdGhlIGxhc3QgbGF5b3V0LgotICAgIEZsb2F0U2l6ZSBkZWx0YSA9IG1fc2Nyb2xsUG9zaXRp
b24gLSBtX3JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbjsKKyAgICBGbG9hdFNpemUgZGVs
dGEgPSBzY3JvbGxQb3NpdGlvbiAtIG1fcmVuZGVyZWRDb250ZW50c1Njcm9sbFBvc2l0aW9uOwog
CiAgICAgTGF5ZXJSYXdQdHJNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fZml4ZWRMYXllcnMuZW5kKCk7
CiAgICAgZm9yIChMYXllclJhd1B0ck1hcDo6aXRlcmF0b3IgaXQgPSBtX2ZpeGVkTGF5ZXJzLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAppbmRleCA5YzkyMWE3NGY2YzNmMGQ4MzcxYzBiOTI5
Zjc4MTJiNDg5Y2ZmNWQxLi5lZjkyZDIxZDc4MWE5NGVkOTdjNjQxMDMzNjdmMzBjYjY1MTQ0NGQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZS5oCkBAIC03OSw5ICs3OSw4IEBAIHB1YmxpYzoKICAgICB9OwogICAgIGV4cGxpY2l0IENv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZShDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGllbnQqKTsK
ICAgICB2aXJ0dWFsIH5Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKTsKLSAgICB2b2lkIHBhaW50
VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQsIGNv
bnN0IEZsb2F0UmVjdCYsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgPSAwKTsKKyAgICB2b2lk
IHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxv
YXQsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBU
ZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CiAgICAgdm9pZCBwYWludFRvR3JhcGhpY3ND
b250ZXh0KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0Kik7Ci0gICAgdm9pZCBzZXRTY3JvbGxQb3Np
dGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAg
dm9pZCBjcmVhdGVDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBJbnRTaXplJiwgUGFz
c1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+KTsKICAgICB2b2lkIHN5bmNDYW52YXMoQ29vcmRpbmF0
ZWRMYXllcklELCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CkBAIC0xNDEsNyArMTQwLDcgQEAgcHJp
dmF0ZToKICAgICBHcmFwaGljc0xheWVyKiByb290TGF5ZXIoKSB7IHJldHVybiBtX3Jvb3RMYXll
ci5nZXQoKTsgfQogCiAgICAgdm9pZCBzeW5jUmVtb3RlQ29udGVudCgpOwotICAgIHZvaWQgYWRq
dXN0UG9zaXRpb25Gb3JGaXhlZExheWVycygpOworICAgIHZvaWQgYWRqdXN0UG9zaXRpb25Gb3JG
aXhlZExheWVycyhjb25zdCBGbG9hdFBvaW50Jik7CiAKICAgICAvLyBSZWltcGxlbWVudGF0aW9u
cyBmcm9tIEdyYXBoaWNzTGF5ZXJDbGllbnQuCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1h
dGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSkgeyB9CkBAIC0yMDMsNyAr
MjAyLDYgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8Q29vcmRpbmF0ZWRMYXllcklE
LCBHcmFwaGljc0xheWVyKj4gTGF5ZXJSYXdQdHJNYXA7CiAgICAgTGF5ZXJSYXdQdHJNYXAgbV9m
aXhlZExheWVyczsKICAgICBDb29yZGluYXRlZExheWVySUQgbV9yb290TGF5ZXJJRDsKLSAgICBG
bG9hdFBvaW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAgRmxvYXRQb2ludCBtX3JlbmRlcmVkQ29u
dGVudHNTY3JvbGxQb3NpdGlvbjsKICAgICBib29sIG1fYW5pbWF0aW9uc0xvY2tlZDsKICNpZiBF
TkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcAppbmRleCA0ZjE5NmUxMzlhMjExMDJlNGQw
NTY5ZmZiMzgzMWFiYzhjZDhhYjkyLi4xY2YyZmM0ZWQ5MzNiZjkwZTljZjY5ZDc3OGE3YmE3MjBl
ZmYwYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2VicGFnZS5jcHAKQEAgLTEwNyw2ICsxMDcsOCBAQCBRU0dOb2RlKiBRUXVpY2tXZWJQYWdlOjp1
cGRhdGVQYWludE5vZGUoUVNHTm9kZSogb2xkTm9kZSwgVXBkYXRlUGFpbnROb2RlRGF0YSopCiAK
ICAgICBub2RlLT5zZXRDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoc2NlbmUpOwogCisgICAgUVBv
aW50RiBzY3JvbGxQb3NpdGlvbiA9IHRyYW5zZm9ybUZyb21JdGVtKCkubWFwKFFQb2ludEYoKSk7
CisgICAgbm9kZS0+c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOwogICAgIG5vZGUt
PnNldFNjYWxlKGQtPmNvbnRlbnRzU2NhbGUpOwogICAgIG5vZGUtPnNldERldmljZVBpeGVsUmF0
aW8od2luZG93LT5kZXZpY2VQaXhlbFJhdGlvKCkpOwogICAgIFFDb2xvciBiYWNrZ3JvdW5kQ29s
b3IgPSBkLT53ZWJQYWdlUHJveHktPmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCkgPyBRdDo6
dHJhbnNwYXJlbnQgOiBRdDo6d2hpdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAKaW5kZXggNGFhMzUzMzc3ZjE0MjdjNTE2ZTk1
ZTliYjdiYWJiNjY4NDVhOTJkNy4uYTZjYWQzMmFiNjEzMjc5NTBjZGQ4Njg3Yjk1MjY0YzZjOGIx
OGIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJh
d3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3Fy
YXd3ZWJ2aWV3LmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIFBhc3NSZWZQdHI8V2ViS2l0OjpXZWJD
b2xvckNob29zZXJQcm94eT4gUVJhd1dlYlZpZXdQcml2YXRlOjpjcmVhdGVDb2xvckNob29zZXJQ
CiB2b2lkIFFSYXdXZWJWaWV3UHJpdmF0ZTo6cGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHBvcykKIHsKICAgICBtX2NsaWVudC0+dmlld1JlcXVlc3RlZFNjcm9s
bChwb3MpOwotCisgICAgbV9wb3NpdGlvbiA9IFFQb2ludEYocG9zLngoKSwgcG9zLnkoKSk7CiB9
CiB2b2lkIFFSYXdXZWJWaWV3UHJpdmF0ZTo6cHJvY2Vzc0RpZENyYXNoKCkKIHsKQEAgLTM3OCw3
ICszNzgsNyBAQCB2b2lkIFFSYXdXZWJWaWV3OjpwYWludChjb25zdCBRTWF0cml4NHg0JiB0cmFu
c2Zvcm0sIGZsb2F0IG9wYWNpdHksIHVuc2lnbmVkIHBhaQogCiAgICAgV2ViQ29yZTo6RmxvYXRS
ZWN0IHJlY3QoMCwgMCwgZC0+bV9zaXplLndpZHRoKCksIGQtPm1fc2l6ZS5oZWlnaHQoKSk7CiAK
LSAgICBzY2VuZS0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQodHJhbnNmb3JtLCBvcGFjaXR5LCB0
cmFuc2Zvcm0ubWFwUmVjdChyZWN0KSwgcGFpbnRGbGFncyk7CisgICAgc2NlbmUtPnBhaW50VG9D
dXJyZW50R0xDb250ZXh0KHRyYW5zZm9ybSwgb3BhY2l0eSwgdHJhbnNmb3JtLm1hcFJlY3QocmVj
dCksIGQtPm1fcG9zaXRpb24sIHBhaW50RmxhZ3MpOwogfQogCiB2b2lkIFFSYXdXZWJWaWV3Ojpz
ZW5kS2V5RXZlbnQoUUtleUV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXdfcF9wLmgKaW5kZXggMDI5OTU2ZTc3ZjI2
MDBlMjIxMTZkY2Q3MDE2NjY2OTYwNzg4YTkwMy4uZWM3ZGViYjAxM2Q5MmJlNGZiNjZmMGU1M2Qy
NWQyNGU2MzA4ZmYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9yYXcvcXJhd3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9yYXcvcXJhd3dlYnZpZXdfcF9wLmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBtX3Zpc2libGU7CiAgICAgYm9vbCBtX2FjdGl2ZTsKICAgICBRU2l6ZSBtX3NpemU7
CisgICAgUVBvaW50RiBtX3Bvc2l0aW9uOwogCiAgICAgUVJhd1dlYlZpZXdDbGllbnQqIG1fY2xp
ZW50OwogICAgIFdURjo6UmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBtX3dlYlBhZ2VQcm94
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5
LmNwcAppbmRleCBjNWY3ZTg3NWE2ZDhiY2ZkYTRiNzAzNWU0MTkwYzJlNTUzZTczNmJhLi40YTU4
N2I3OTBjNjkzYjAwNTEzNTgzYjk0NjdlNzk2ZDkxOTczYmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJl
ZUhvc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCkBAIC0xNzUsOSArMTc1
LDYgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6c2V0QW5pbWF0aW9uc0xv
Y2tlZChib29sIGxvY2tlZCkKIAogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6
c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0
UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpCiB7Ci0gICAgLy8gSW5mb3JtIHRoZSByZW5kZXJlciB0
byBhZGp1c3Qgdmlld3BvcnQtZml4ZWQgbGF5ZXJzLgotICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQo
JkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0U2Nyb2xsUG9zaXRpb24sIG1fc2NlbmUuZ2V0
KCksIHJlY3QubG9jYXRpb24oKSkpOwotCiAgICAgaWYgKHJlY3QgPT0gbV9sYXN0U2VudFZpc2li
bGVSZWN0ICYmIHRyYWplY3RvcnlWZWN0b3IgPT0gbV9sYXN0U2VudFRyYWplY3RvcnlWZWN0b3Ip
CiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5j
cHAKaW5kZXggMmU1MzViNmU4ZTAzOGMzMWM4NzVmNWNjZDMwNGVmY2QzZWJhZWM3Yy4uNTQ2NWFi
ZWVhMjljZDc4MDc2MjEzNmNiZjgyNDM2NDBmMmZmNWNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYlZpZXcuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBXZWJWaWV3Ojpw
YWludFRvQ3VycmVudEdMQ29udGV4dCgpCiAgICAgc2NlbmUtPnNldERyYXdzQmFja2dyb3VuZCht
X3BhZ2UtPmRyYXdzQmFja2dyb3VuZCgpKTsKIAogICAgIEZsb2F0UmVjdCB2aWV3cG9ydCA9IG1f
dXNlclZpZXdwb3J0VHJhbnNmb3JtLm1hcFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBtX2V3a1Zp
ZXctPm5hdGl2ZVNpemUoKSkpOwotICAgIHNjZW5lLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0
cmFuc2Zvcm1Ub1NjZW5lKCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAvKiBvcGFjaXR5ICov
IDEsIHZpZXdwb3J0KTsKKyAgICBzY2VuZS0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQodHJhbnNm
b3JtVG9TY2VuZSgpLnRvVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgLyogb3BhY2l0eSAqLyAxLCB2
aWV3cG9ydCwgbV9ld2tWaWV3LT5wYWdlUG9zaXRpb24oKSk7CiB9CiAKIHZvaWQgV2ViVmlldzo6
cGFpbnRUb0NhaXJvU3VyZmFjZShjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlU0dOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VTR05vZGUuY3BwCmluZGV4IDAwMmQwMDUw
N2E0ZGE2MmJmNGM4ZDQ5ZTUzM2UzMTA0YzdhMTI2NzAuLjExYWRkOWI4YzJkODc4YzgzNTE0NWJj
N2U2ZTIyMmM2MzQ4Mjg5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFdlYlBhZ2VTR05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFdlYlBhZ2VTR05vZGUuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9v
bCBtaXJyb3JlZCA9IHByb2plY3Rpb24gJiYgKCpwcm9qZWN0aW9uKSgwLCAwKSAqICgqcHJvamVj
dGlvbikoMSwgMSkgLSAoKnByb2plY3Rpb24pKDAsIDEpICogKCpwcm9qZWN0aW9uKSgxLCAwKSA+
IDA7CiAKICAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbm9uLXJlY3Rhbmd1bGFyIGNsaXBwaW5n
cy4KLSAgICAgICAgY29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKCktPnBhaW50VG9DdXJyZW50R0xD
b250ZXh0KHJlbmRlck1hdHJpeCwgaW5oZXJpdGVkT3BhY2l0eSgpLCBjbGlwUmVjdCgpLCBtaXJy
b3JlZCA/IFRleHR1cmVNYXBwZXI6OlBhaW50aW5nTWlycm9yZWQgOiAwKTsKKyAgICAgICAgY29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lKCktPnBhaW50VG9DdXJyZW50R0xDb250ZXh0KHJlbmRlck1h
dHJpeCwgaW5oZXJpdGVkT3BhY2l0eSgpLCBjbGlwUmVjdCgpLCBwYWdlTm9kZSgpLT5zY3JvbGxQ
b3NpdGlvbigpLCBtaXJyb3JlZCA/IFRleHR1cmVNYXBwZXI6OlBhaW50aW5nTWlycm9yZWQgOiAw
KTsKICAgICB9CiAKICAgICB+Q29udGVudHNTR05vZGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5oCmluZGV4IDc3YWQ4MWI2ZmMyNWQ2Yzg2NzFhZDE5
NmRkMTFmNDhhODA5Y2ZjYmUuLmIxNGMzMjA4ZDk2OTA5NWMxMmU1MTkwZGIyOGUyYWZmZDg4MDFj
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VTR05v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlU0dOb2RlLmgK
QEAgLTQxLDYgKzQxLDggQEAgY2xhc3MgUXRXZWJQYWdlU0dOb2RlIDogcHVibGljIFFTR1RyYW5z
Zm9ybU5vZGUgewogICAgIHB1YmxpYzoKICAgICAgICAgUXRXZWJQYWdlU0dOb2RlKCk7CiAgICAg
ICAgIHZvaWQgc2V0QmFja2dyb3VuZChjb25zdCBRUmVjdEYmLCBjb25zdCBRQ29sb3ImKTsKKyAg
ICAgICAgY29uc3QgUVBvaW50RiYgc2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbFBvc2l0aW9uOyB9CisgICAgICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgUVBv
aW50RiYgc2Nyb2xsUG9zaXRpb24pIHsgbV9zY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9u
OyB9CiAgICAgICAgIHZvaWQgc2V0U2NhbGUoZmxvYXQpOwogICAgICAgICB2b2lkIHNldENvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZShQYXNzUmVmUHRyPFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZT4pOwogICAgICAgICBxcmVhbCBkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QgeyByZXR1
cm4gbV9kZXZpY2VQaXhlbFJhdGlvOyB9CkBAIC00OSw2ICs1MSw3IEBAIGNsYXNzIFF0V2ViUGFn
ZVNHTm9kZSA6IHB1YmxpYyBRU0dUcmFuc2Zvcm1Ob2RlIHsKICAgICBwcml2YXRlOgogICAgICAg
ICBDb250ZW50c1NHTm9kZSogbV9jb250ZW50c05vZGU7CiAgICAgICAgIFFTR1NpbXBsZVJlY3RO
b2RlKiBtX2JhY2tncm91bmROb2RlOworICAgICAgICBRUG9pbnRGIG1fc2Nyb2xsUG9zaXRpb247
CiAgICAgICAgIHFyZWFsIG1fZGV2aWNlUGl4ZWxSYXRpbzsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191158</attachid>
            <date>2013-03-03 18:26:12 -0800</date>
            <delta_ts>2013-03-05 00:40:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109033-20130304112151.patch</filename>
            <type>text/plain</type>
            <size>14019</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNlOTk3ZWVkYTZkZjI2
NzQ5Mjg1YTQ3OThmOTAzZGM1NjRkM2I0Zi4uYjE0MjNmM2NjZjRkMGY2YjZkMDkzOGRiYWI0Yzc2
MmFiNTU4Y2EzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTI2ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtFRkxdW1F0
XSBDb29yZGluYXRlZCBHcmFwaGljczogc2Nyb2xsIGFuaW1hdGlvbiBtYWtlcyBmaXhlZCBlbGVt
ZW50IHNoYWtlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA5MDMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwYWludFRvQ3VycmVudEdMQ29udGV4dCgpIG5l
ZWRzIGEgc2Nyb2xsIHBvc2l0aW9uCisgICAgICAgIHRvIGFkanVzdCB0aGUgcG9zaXRpb24gb2Yg
Zml4ZWQgZWxlbWVudC4gQ3VycmVudGx5LAorICAgICAgICBDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUgc29tZXRpbWVzIHVzZXMgYSBzdGFsZSBzY3JvbGwgcG9zaXRpb24uIENsaWVudHMKKyAgICAg
ICAgdGhhdCBjYWxsIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KCkgYWxyZWFkeSBrbm93IGEgc2Ny
b2xsIHBvc2l0aW9uCisgICAgICAgIGJlY2F1c2UgdGhleSBjYW4gZ2VuZXJhdGUgYSBtYXRyaXgs
IHNvIHRoaXMgcGF0Y2ggbWFrZSBjbGllbnRzIGNhbGwKKyAgICAgICAgcGFpbnRUb0N1cnJlbnRH
TENvbnRleHQoKSB3aXRoIGEgc2Nyb2xsIHBvc2l0aW9uLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2FuIG9ubHkgYmUgdGVzdGVkIG1hbnVhbGx5IHNpbmNlIHRoZXJlIGlzIG5vIGF1dG9tYXRlZAor
ICAgICAgICB0ZXN0aW5nIGZhY2lsaXRpZXMgZm9yIGluLW1vdGlvbiB0b3VjaC4KKyAgICAgICAg
VGVzdDogTWFudWFsVGVzdHMvZml4ZWQtcG9zaXRpb24uaHRtbAorICAgICAgICAgICAgICBNYW51
YWxUZXN0cy9uZXN0ZWQtZml4ZWQtcG9zaXRpb24uaHRtbAorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnBhaW50VG9DdXJy
ZW50R0xDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZTo6YWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oOgorICAg
ICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKToKKwogMjAxMy0wMy0wMyAgRGFuIEJlcm5z
dGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBhZnRlciByMTQ0NTY1
LiBSZXZlcnRlZCByMTQ0NTMzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGNmMmU3ODhkMTllYTQ4MzM4MDY1Zjhl
YmMwNzViMGRiZWYyODJjODUuLmRmYzY5ZTU0Y2U1ODRmNWY3ZTU4NjVmZTkxMzE5ZWMyNTZhMmE3
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMy0wMi0yNiAgSHVhbmcgRG9uZ3N1
bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBbRUZMXVtRdF0gQ29vcmRp
bmF0ZWQgR3JhcGhpY3M6IHNjcm9sbCBhbmltYXRpb24gbWFrZXMgZml4ZWQgZWxlbWVudCBzaGFr
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTAz
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFtZW5k
IEVGTCBhbmQgUXQgcGxhdGZvcm0gY29kZSB0byBjYWxsIENvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZTo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQoKQorICAgICAgICB3aXRoIGEgc2Nyb2xsIHBvc2l0
aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcDoKKyAg
ICAgICAgKFFRdWlja1dlYlBhZ2U6OnVwZGF0ZVBhaW50Tm9kZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwOgorICAgICAgICAoUVJhd1dlYlZpZXdQcml2
YXRlOjpwYWdlRGlkUmVxdWVzdFNjcm9sbCk6CisgICAgICAgIChRUmF3V2ViVmlldzo6cGFpbnQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3X3BfcC5oOgorICAg
ICAgICAoUVJhd1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpzZXRWaXNpYmxlQ29udGVudHNS
ZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3OjpwYWludFRvQ3VycmVudEdMQ29udGV4dCk6CisgICAgICAgICogVUlQcm9j
ZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbnRlbnRzU0dO
b2RlOjpyZW5kZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VTR05vZGUuaDoK
KyAgICAgICAgKFdlYktpdDo6UXRXZWJQYWdlU0dOb2RlOjpzY3JvbGxQb3NpdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OlF0V2ViUGFnZVNHTm9kZTo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAg
ICAoUXRXZWJQYWdlU0dOb2RlKToKKwogMjAxMy0wMi0yNSAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0
ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBbRUZMXSBFd2tWaWV3IHNob3VsZCBrZWVw
IGNzcyBwb3NpdGlvbiBpbnN0ZWFkIG9mIHNjcm9sbCBwb3NpdGlvbiBpbiBkZXZpY2UgcGl4ZWwu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuY3BwCmluZGV4IDg2MjQ1MTMwNDkyZDliYjEwM2JlMGQ0MjMzMmIzZjYwMDUwY2ExNTguLmM3
NTNmNmJkZGE1ZTZiODVhY2I1MzVkNzg5NDRmYTgyMGZkM2RkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBAIC03NCw3
ICs3NCw3IEBAIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6fkNvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZSgpCiB7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwYWludFRvQ3Vy
cmVudEdMQ29udGV4dChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBmbG9hdCBv
cGFjaXR5LCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBUZXh0dXJlTWFwcGVyOjpQYWludEZs
YWdzIFBhaW50RmxhZ3MpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cGFpbnRUb0N1
cnJlbnRHTENvbnRleHQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgZmxvYXQg
b3BhY2l0eSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwUmVjdCwgY29uc3QgRmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgUGFpbnRGbGFncykKIHsKICAg
ICBpZiAoIW1fdGV4dHVyZU1hcHBlcikgewogICAgICAgICBtX3RleHR1cmVNYXBwZXIgPSBUZXh0
dXJlTWFwcGVyOjpjcmVhdGUoVGV4dHVyZU1hcHBlcjo6T3BlbkdMTW9kZSk7CkBAIC04NCw3ICs4
NCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwYWludFRvQ3VycmVudEdMQ29u
dGV4dChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpCiAgICAgQVNTRVJUKG1fdGV4dHVyZU1hcHBl
ci0+YWNjZWxlcmF0aW9uTW9kZSgpID09IFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUpOwogICAg
IHN5bmNSZW1vdGVDb250ZW50KCk7CiAKLSAgICBhZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5ZXJz
KCk7CisgICAgYWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycyhzY3JvbGxQb3NpdGlvbik7CiAg
ICAgR3JhcGhpY3NMYXllciogY3VycmVudFJvb3RMYXllciA9IHJvb3RMYXllcigpOwogICAgIGlm
ICghY3VycmVudFJvb3RMYXllcikKICAgICAgICAgcmV0dXJuOwpAQCAtMTY4LDExICsxNjgsNiBA
QCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cGFpbnRUb0dyYXBoaWNzQ29udGV4dChQ
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogcAogICAgIG1fdGV4dHVyZU1hcHBlci0+c2V0R3JhcGhp
Y3NDb250ZXh0KDApOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0U2Ny
b2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCi17Ci0gICAgbV9z
Y3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwotfQotCiB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6dXBkYXRlVmlld3BvcnQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CkBAIC0xODAsNyArMTc1LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVw
ZGF0ZVZpZXdwb3J0KCkKICAgICAgICAgbV9jbGllbnQtPnVwZGF0ZVZpZXdwb3J0KCk7CiB9CiAK
LXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5
ZXJzKCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZp
eGVkTGF5ZXJzKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQogewogICAgIGlmICht
X2ZpeGVkTGF5ZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTg4LDcgKzE4Myw3
IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVk
TGF5ZXJzKCkKICAgICAvLyBGaXhlZCBsYXllciBwb3NpdGlvbnMgYXJlIHVwZGF0ZWQgYnkgdGhl
IHdlYiBwcm9jZXNzIHdoZW4gd2UgdXBkYXRlIHRoZSB2aXNpYmxlIGNvbnRlbnRzIHJlY3QgLyBz
Y3JvbGwgcG9zaXRpb24uCiAgICAgLy8gSWYgd2Ugd2FudCB0aG9zZSBsYXllcnMgdG8gZm9sbG93
IGFjY3VyYXRlbHkgdGhlIHZpZXdwb3J0IHdoZW4gd2UgbW92ZSBiZXR3ZWVuIHRoZSB3ZWIgcHJv
Y2VzcyB1cGRhdGVzLCB3ZSBoYXZlIHRvIG9mZnNldAogICAgIC8vIHRoZW0gYnkgdGhlIGRlbHRh
IGJldHdlZW4gdGhlIGN1cnJlbnQgcG9zaXRpb24gYW5kIHRoZSBwb3NpdGlvbiBvZiB0aGUgdmll
d3BvcnQgdXNlZCBmb3IgdGhlIGxhc3QgbGF5b3V0LgotICAgIEZsb2F0U2l6ZSBkZWx0YSA9IG1f
c2Nyb2xsUG9zaXRpb24gLSBtX3JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbjsKKyAgICBG
bG9hdFNpemUgZGVsdGEgPSBzY3JvbGxQb3NpdGlvbiAtIG1fcmVuZGVyZWRDb250ZW50c1Njcm9s
bFBvc2l0aW9uOwogCiAgICAgTGF5ZXJSYXdQdHJNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fZml4ZWRM
YXllcnMuZW5kKCk7CiAgICAgZm9yIChMYXllclJhd1B0ck1hcDo6aXRlcmF0b3IgaXQgPSBtX2Zp
eGVkTGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzU2NlbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAppbmRleCA5YzkyMWE3NGY2YzNm
MGQ4MzcxYzBiOTI5Zjc4MTJiNDg5Y2ZmNWQxLi5lZjkyZDIxZDc4MWE5NGVkOTdjNjQxMDMzNjdm
MzBjYjY1MTQ0NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZS5oCkBAIC03OSw5ICs3OSw4IEBAIHB1YmxpYzoKICAgICB9OwogICAg
IGV4cGxpY2l0IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZShDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmVDbGllbnQqKTsKICAgICB2aXJ0dWFsIH5Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKTsKLSAg
ICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiwgZmxvYXQsIGNvbnN0IEZsb2F0UmVjdCYsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgPSAw
KTsKKyAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgZmxvYXQsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9s
bFBvc2l0aW9uLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CiAgICAgdm9pZCBwYWlu
dFRvR3JhcGhpY3NDb250ZXh0KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0Kik7Ci0gICAgdm9pZCBz
ZXRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAjaWYgVVNFKEdSQVBISUNTX1NV
UkZBQ0UpCiAgICAgdm9pZCBjcmVhdGVDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBJ
bnRTaXplJiwgUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+KTsKICAgICB2b2lkIHN5bmNDYW52
YXMoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CkBAIC0xNDEsNyAr
MTQwLDcgQEAgcHJpdmF0ZToKICAgICBHcmFwaGljc0xheWVyKiByb290TGF5ZXIoKSB7IHJldHVy
biBtX3Jvb3RMYXllci5nZXQoKTsgfQogCiAgICAgdm9pZCBzeW5jUmVtb3RlQ29udGVudCgpOwot
ICAgIHZvaWQgYWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycygpOworICAgIHZvaWQgYWRqdXN0
UG9zaXRpb25Gb3JGaXhlZExheWVycyhjb25zdCBGbG9hdFBvaW50Jik7CiAKICAgICAvLyBSZWlt
cGxlbWVudGF0aW9ucyBmcm9tIEdyYXBoaWNzTGF5ZXJDbGllbnQuCiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSkgeyB9
CkBAIC0yMDMsNyArMjAyLDYgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8Q29vcmRp
bmF0ZWRMYXllcklELCBHcmFwaGljc0xheWVyKj4gTGF5ZXJSYXdQdHJNYXA7CiAgICAgTGF5ZXJS
YXdQdHJNYXAgbV9maXhlZExheWVyczsKICAgICBDb29yZGluYXRlZExheWVySUQgbV9yb290TGF5
ZXJJRDsKLSAgICBGbG9hdFBvaW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAgRmxvYXRQb2ludCBt
X3JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbjsKICAgICBib29sIG1fYW5pbWF0aW9uc0xv
Y2tlZDsKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcAppbmRleCA0ZjE5NmUx
MzlhMjExMDJlNGQwNTY5ZmZiMzgzMWFiYzhjZDhhYjkyLi4xY2YyZmM0ZWQ5MzNiZjkwZTljZjY5
ZDc3OGE3YmE3MjBlZmYwYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2VicGFnZS5jcHAKQEAgLTEwNyw2ICsxMDcsOCBAQCBRU0dOb2RlKiBRUXVp
Y2tXZWJQYWdlOjp1cGRhdGVQYWludE5vZGUoUVNHTm9kZSogb2xkTm9kZSwgVXBkYXRlUGFpbnRO
b2RlRGF0YSopCiAKICAgICBub2RlLT5zZXRDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoc2NlbmUp
OwogCisgICAgUVBvaW50RiBzY3JvbGxQb3NpdGlvbiA9IHRyYW5zZm9ybUZyb21JdGVtKCkubWFw
KFFQb2ludEYoKSk7CisgICAgbm9kZS0+c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24p
OwogICAgIG5vZGUtPnNldFNjYWxlKGQtPmNvbnRlbnRzU2NhbGUpOwogICAgIG5vZGUtPnNldERl
dmljZVBpeGVsUmF0aW8od2luZG93LT5kZXZpY2VQaXhlbFJhdGlvKCkpOwogICAgIFFDb2xvciBi
YWNrZ3JvdW5kQ29sb3IgPSBkLT53ZWJQYWdlUHJveHktPmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3Jv
dW5kKCkgPyBRdDo6dHJhbnNwYXJlbnQgOiBRdDo6d2hpdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAKaW5kZXggNGFhMzUzMzc3
ZjE0MjdjNTE2ZTk1ZTliYjdiYWJiNjY4NDVhOTJkNy4uYTZjYWQzMmFiNjEzMjc5NTBjZGQ4Njg3
Yjk1MjY0YzZjOGIxOGIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIFBhc3NSZWZQdHI8
V2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eT4gUVJhd1dlYlZpZXdQcml2YXRlOjpjcmVhdGVD
b2xvckNob29zZXJQCiB2b2lkIFFSYXdXZWJWaWV3UHJpdmF0ZTo6cGFnZURpZFJlcXVlc3RTY3Jv
bGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvcykKIHsKICAgICBtX2NsaWVudC0+dmlld1Jl
cXVlc3RlZFNjcm9sbChwb3MpOwotCisgICAgbV9wb3NpdGlvbiA9IFFQb2ludEYocG9zLngoKSwg
cG9zLnkoKSk7CiB9CiB2b2lkIFFSYXdXZWJWaWV3UHJpdmF0ZTo6cHJvY2Vzc0RpZENyYXNoKCkK
IHsKQEAgLTM3OCw3ICszNzgsNyBAQCB2b2lkIFFSYXdXZWJWaWV3OjpwYWludChjb25zdCBRTWF0
cml4NHg0JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIHVuc2lnbmVkIHBhaQogCiAgICAgV2Vi
Q29yZTo6RmxvYXRSZWN0IHJlY3QoMCwgMCwgZC0+bV9zaXplLndpZHRoKCksIGQtPm1fc2l6ZS5o
ZWlnaHQoKSk7CiAKLSAgICBzY2VuZS0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQodHJhbnNmb3Jt
LCBvcGFjaXR5LCB0cmFuc2Zvcm0ubWFwUmVjdChyZWN0KSwgcGFpbnRGbGFncyk7CisgICAgc2Nl
bmUtPnBhaW50VG9DdXJyZW50R0xDb250ZXh0KHRyYW5zZm9ybSwgb3BhY2l0eSwgdHJhbnNmb3Jt
Lm1hcFJlY3QocmVjdCksIGQtPm1fcG9zaXRpb24sIHBhaW50RmxhZ3MpOwogfQogCiB2b2lkIFFS
YXdXZWJWaWV3OjpzZW5kS2V5RXZlbnQoUUtleUV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3X3BfcC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXdfcF9wLmgKaW5kZXgg
MDI5OTU2ZTc3ZjI2MDBlMjIxMTZkY2Q3MDE2NjY2OTYwNzg4YTkwMy4uZWM3ZGViYjAxM2Q5MmJl
NGZiNjZmMGU1M2QyNWQyNGU2MzA4ZmYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXdfcF9wLmgKQEAgLTEyNSw2ICsxMjUsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBtX3Zpc2libGU7CiAgICAgYm9vbCBtX2FjdGl2ZTsKICAgICBR
U2l6ZSBtX3NpemU7CisgICAgUVBvaW50RiBtX3Bvc2l0aW9uOwogCiAgICAgUVJhd1dlYlZpZXdD
bGllbnQqIG1fY2xpZW50OwogICAgIFdURjo6UmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBt
X3dlYlBhZ2VQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdFByb3h5LmNwcAppbmRleCBjNWY3ZTg3NWE2ZDhiY2ZkYTRiNzAzNWU0MTkwYzJlNTUz
ZTczNmJhLi40YTU4N2I3OTBjNjkzYjAwNTEzNTgzYjk0NjdlNzk2ZDkxOTczYmQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCkBA
IC0xNzUsOSArMTc1LDYgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6c2V0
QW5pbWF0aW9uc0xvY2tlZChib29sIGxvY2tlZCkKIAogdm9pZCBDb29yZGluYXRlZExheWVyVHJl
ZUhvc3RQcm94eTo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3Qs
IGNvbnN0IEZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpCiB7Ci0gICAgLy8gSW5mb3JtIHRo
ZSByZW5kZXJlciB0byBhZGp1c3Qgdmlld3BvcnQtZml4ZWQgbGF5ZXJzLgotICAgIGRpc3BhdGNo
VXBkYXRlKGJpbmQoJkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0U2Nyb2xsUG9zaXRpb24s
IG1fc2NlbmUuZ2V0KCksIHJlY3QubG9jYXRpb24oKSkpOwotCiAgICAgaWYgKHJlY3QgPT0gbV9s
YXN0U2VudFZpc2libGVSZWN0ICYmIHRyYWplY3RvcnlWZWN0b3IgPT0gbV9sYXN0U2VudFRyYWpl
Y3RvcnlWZWN0b3IpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvV2ViVmlldy5jcHAKaW5kZXggMmU1MzViNmU4ZTAzOGMzMWM4NzVmNWNjZDMwNGVmY2QzZWJh
ZWM3Yy4uNTQ2NWFiZWVhMjljZDc4MDc2MjEzNmNiZjgyNDM2NDBmMmZmNWNiNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9p
ZCBXZWJWaWV3OjpwYWludFRvQ3VycmVudEdMQ29udGV4dCgpCiAgICAgc2NlbmUtPnNldERyYXdz
QmFja2dyb3VuZChtX3BhZ2UtPmRyYXdzQmFja2dyb3VuZCgpKTsKIAogICAgIEZsb2F0UmVjdCB2
aWV3cG9ydCA9IG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtLm1hcFJlY3QoSW50UmVjdChJbnRQb2lu
dCgpLCBtX2V3a1ZpZXctPm5hdGl2ZVNpemUoKSkpOwotICAgIHNjZW5lLT5wYWludFRvQ3VycmVu
dEdMQ29udGV4dCh0cmFuc2Zvcm1Ub1NjZW5lKCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAv
KiBvcGFjaXR5ICovIDEsIHZpZXdwb3J0KTsKKyAgICBzY2VuZS0+cGFpbnRUb0N1cnJlbnRHTENv
bnRleHQodHJhbnNmb3JtVG9TY2VuZSgpLnRvVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgLyogb3Bh
Y2l0eSAqLyAxLCB2aWV3cG9ydCwgbV9ld2tWaWV3LT5wYWdlUG9zaXRpb24oKSk7CiB9CiAKIHZv
aWQgV2ViVmlldzo6cGFpbnRUb0NhaXJvU3VyZmFjZShjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlU0dOb2Rl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VTR05vZGUuY3BwCmlu
ZGV4IDAwMmQwMDUwN2E0ZGE2MmJmNGM4ZDQ5ZTUzM2UzMTA0YzdhMTI2NzAuLjExYWRkOWI4YzJk
ODc4YzgzNTE0NWJjN2U2ZTIyMmM2MzQ4Mjg5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VTR05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYlBhZ2VTR05vZGUuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoK
ICAgICAgICAgYm9vbCBtaXJyb3JlZCA9IHByb2plY3Rpb24gJiYgKCpwcm9qZWN0aW9uKSgwLCAw
KSAqICgqcHJvamVjdGlvbikoMSwgMSkgLSAoKnByb2plY3Rpb24pKDAsIDEpICogKCpwcm9qZWN0
aW9uKSgxLCAwKSA+IDA7CiAKICAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbm9uLXJlY3Rhbmd1
bGFyIGNsaXBwaW5ncy4KLSAgICAgICAgY29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKCktPnBhaW50
VG9DdXJyZW50R0xDb250ZXh0KHJlbmRlck1hdHJpeCwgaW5oZXJpdGVkT3BhY2l0eSgpLCBjbGlw
UmVjdCgpLCBtaXJyb3JlZCA/IFRleHR1cmVNYXBwZXI6OlBhaW50aW5nTWlycm9yZWQgOiAwKTsK
KyAgICAgICAgY29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKCktPnBhaW50VG9DdXJyZW50R0xDb250
ZXh0KHJlbmRlck1hdHJpeCwgaW5oZXJpdGVkT3BhY2l0eSgpLCBjbGlwUmVjdCgpLCBwYWdlTm9k
ZSgpLT5zY3JvbGxQb3NpdGlvbigpLCBtaXJyb3JlZCA/IFRleHR1cmVNYXBwZXI6OlBhaW50aW5n
TWlycm9yZWQgOiAwKTsKICAgICB9CiAKICAgICB+Q29udGVudHNTR05vZGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5oCmluZGV4IDc3YWQ4MWI2ZmMy
NWQ2Yzg2NzFhZDE5NmRkMTFmNDhhODA5Y2ZjYmUuLmIxNGMzMjA4ZDk2OTA5NWMxMmU1MTkwZGIy
OGUyYWZmZDg4MDFjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFdlYlBhZ2VTR05vZGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQ
YWdlU0dOb2RlLmgKQEAgLTQxLDYgKzQxLDggQEAgY2xhc3MgUXRXZWJQYWdlU0dOb2RlIDogcHVi
bGljIFFTR1RyYW5zZm9ybU5vZGUgewogICAgIHB1YmxpYzoKICAgICAgICAgUXRXZWJQYWdlU0dO
b2RlKCk7CiAgICAgICAgIHZvaWQgc2V0QmFja2dyb3VuZChjb25zdCBRUmVjdEYmLCBjb25zdCBR
Q29sb3ImKTsKKyAgICAgICAgY29uc3QgUVBvaW50RiYgc2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBtX3Njcm9sbFBvc2l0aW9uOyB9CisgICAgICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRp
b24oY29uc3QgUVBvaW50RiYgc2Nyb2xsUG9zaXRpb24pIHsgbV9zY3JvbGxQb3NpdGlvbiA9IHNj
cm9sbFBvc2l0aW9uOyB9CiAgICAgICAgIHZvaWQgc2V0U2NhbGUoZmxvYXQpOwogICAgICAgICB2
b2lkIHNldENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZShQYXNzUmVmUHRyPFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZT4pOwogICAgICAgICBxcmVhbCBkZXZpY2VQaXhlbFJhdGlvKCkg
Y29uc3QgeyByZXR1cm4gbV9kZXZpY2VQaXhlbFJhdGlvOyB9CkBAIC00OSw2ICs1MSw3IEBAIGNs
YXNzIFF0V2ViUGFnZVNHTm9kZSA6IHB1YmxpYyBRU0dUcmFuc2Zvcm1Ob2RlIHsKICAgICBwcml2
YXRlOgogICAgICAgICBDb250ZW50c1NHTm9kZSogbV9jb250ZW50c05vZGU7CiAgICAgICAgIFFT
R1NpbXBsZVJlY3ROb2RlKiBtX2JhY2tncm91bmROb2RlOworICAgICAgICBRUG9pbnRGIG1fc2Ny
b2xsUG9zaXRpb247CiAgICAgICAgIHFyZWFsIG1fZGV2aWNlUGl4ZWxSYXRpbzsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191424</attachid>
            <date>2013-03-05 00:40:17 -0800</date>
            <delta_ts>2013-03-06 00:23:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109033-20130305173551.patch</filename>
            <type>text/plain</type>
            <size>14153</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDNiNWJmNGZhMDYzNTE5
MjFlODhlNWM2NmNhZTlhOTMzZDk0ZDhiMy4uNThlMDM0YjA2YzEzM2RhNjY5MzBiNTRkNzdlMzhj
YzQ3ZDhjZjliNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTI2ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtFRkxdW1F0
XSBDb29yZGluYXRlZCBHcmFwaGljczogc2Nyb2xsIGFuaW1hdGlvbiBtYWtlcyBmaXhlZCBlbGVt
ZW50IHNoYWtlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA5MDMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwYWludFRvQ3VycmVudEdMQ29udGV4dCgpIG5l
ZWRzIGEgc2Nyb2xsIHBvc2l0aW9uCisgICAgICAgIHRvIGFkanVzdCB0aGUgcG9zaXRpb24gb2Yg
Zml4ZWQgZWxlbWVudC4gQ3VycmVudGx5LAorICAgICAgICBDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUgc29tZXRpbWVzIHVzZXMgYSBzdGFsZSBzY3JvbGwgcG9zaXRpb24uIENsaWVudHMKKyAgICAg
ICAgdGhhdCBjYWxsIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KCkgYWxyZWFkeSBrbm93IGEgc2Ny
b2xsIHBvc2l0aW9uCisgICAgICAgIGJlY2F1c2UgdGhleSBjYW4gZ2VuZXJhdGUgYSBtYXRyaXgs
IHNvIHRoaXMgcGF0Y2ggbWFrZSBjbGllbnRzIGNhbGwKKyAgICAgICAgcGFpbnRUb0N1cnJlbnRH
TENvbnRleHQoKSB3aXRoIGEgc2Nyb2xsIHBvc2l0aW9uLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2FuIG9ubHkgYmUgdGVzdGVkIG1hbnVhbGx5IHNpbmNlIHRoZXJlIGlzIG5vIGF1dG9tYXRlZAor
ICAgICAgICB0ZXN0aW5nIGZhY2lsaXRpZXMgZm9yIGluLW1vdGlvbiB0b3VjaC4KKyAgICAgICAg
VGVzdDogTWFudWFsVGVzdHMvZml4ZWQtcG9zaXRpb24uaHRtbAorICAgICAgICAgICAgICBNYW51
YWxUZXN0cy9uZXN0ZWQtZml4ZWQtcG9zaXRpb24uaHRtbAorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnBhaW50VG9DdXJy
ZW50R0xDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZTo6YWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oOgorICAg
ICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKToKKwogMjAxMy0wMy0wNCAgTWluIFFpbiAg
PHFpbm1pbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4IHNvbWUgc3R5bGUgaXNzdWVzIGlu
IFJlbmRlckxheWVyQ29tcG9zaXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDlhYTZiNDBmZGI1MTcwODY2ZTM4
OWJjNmFmMTUwZjllYmZhZTU2NjYuLjJiZTE2OTIzMzM3NGQ3ODcyOTk3MWFkNWQ3Zjc4Njg5YWJj
Yzg5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMy0wMi0yNiAgSHVhbmcgRG9u
Z3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBbRUZMXVtRdF0gQ29v
cmRpbmF0ZWQgR3JhcGhpY3M6IHNjcm9sbCBhbmltYXRpb24gbWFrZXMgZml4ZWQgZWxlbWVudCBz
aGFrZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTAzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFt
ZW5kIEVGTCBhbmQgUXQgcGxhdGZvcm0gY29kZSB0byBjYWxsIENvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZTo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQoKQorICAgICAgICB3aXRoIGEgc2Nyb2xsIHBv
c2l0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcDoK
KyAgICAgICAgKFFRdWlja1dlYlBhZ2U6OnVwZGF0ZVBhaW50Tm9kZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwOgorICAgICAgICAoUVJhd1dlYlZpZXdQ
cml2YXRlOjpwYWdlRGlkUmVxdWVzdFNjcm9sbCk6CisgICAgICAgIChRUmF3V2ViVmlldzo6cGFp
bnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3X3BfcC5oOgor
ICAgICAgICAoUVJhd1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpzZXRWaXNpYmxlQ29udGVu
dHNSZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3OjpwYWludFRvQ3VycmVudEdMQ29udGV4dCk6CisgICAgICAgICogVUlQ
cm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbnRlbnRz
U0dOb2RlOjpyZW5kZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VTR05vZGUu
aDoKKyAgICAgICAgKFdlYktpdDo6UXRXZWJQYWdlU0dOb2RlOjpzY3JvbGxQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlF0V2ViUGFnZVNHTm9kZTo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAg
ICAgICAoUXRXZWJQYWdlU0dOb2RlKToKKwogMjAxMy0wMy0wNCAgSHVhbmcgRG9uZ3N1bmcgIDxs
dXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBbRUZMXSBFd2tWaWV3IHNob3VsZCBr
ZWVwIGNzcyBwb3NpdGlvbiBpbnN0ZWFkIG9mIHNjcm9sbCBwb3NpdGlvbiBpbiBkZXZpY2UgcGl4
ZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
U2NlbmUuY3BwCmluZGV4IDg2MjQ1MTMwNDkyZDliYjEwM2JlMGQ0MjMzMmIzZjYwMDUwY2ExNTgu
LmM3NTNmNmJkZGE1ZTZiODVhY2I1MzVkNzg5NDRmYTgyMGZkM2RkOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZEdyYXBoaWNzU2NlbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBAIC03
NCw3ICs3NCw3IEBAIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6fkNvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZSgpCiB7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwYWludFRv
Q3VycmVudEdMQ29udGV4dChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBmbG9h
dCBvcGFjaXR5LCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0LCBUZXh0dXJlTWFwcGVyOjpQYWlu
dEZsYWdzIFBhaW50RmxhZ3MpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cGFpbnRU
b0N1cnJlbnRHTENvbnRleHQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgZmxv
YXQgb3BhY2l0eSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwUmVjdCwgY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgUGFpbnRGbGFncykKIHsK
ICAgICBpZiAoIW1fdGV4dHVyZU1hcHBlcikgewogICAgICAgICBtX3RleHR1cmVNYXBwZXIgPSBU
ZXh0dXJlTWFwcGVyOjpjcmVhdGUoVGV4dHVyZU1hcHBlcjo6T3BlbkdMTW9kZSk7CkBAIC04NCw3
ICs4NCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwYWludFRvQ3VycmVudEdM
Q29udGV4dChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpCiAgICAgQVNTRVJUKG1fdGV4dHVyZU1h
cHBlci0+YWNjZWxlcmF0aW9uTW9kZSgpID09IFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUpOwog
ICAgIHN5bmNSZW1vdGVDb250ZW50KCk7CiAKLSAgICBhZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5
ZXJzKCk7CisgICAgYWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycyhzY3JvbGxQb3NpdGlvbik7
CiAgICAgR3JhcGhpY3NMYXllciogY3VycmVudFJvb3RMYXllciA9IHJvb3RMYXllcigpOwogICAg
IGlmICghY3VycmVudFJvb3RMYXllcikKICAgICAgICAgcmV0dXJuOwpAQCAtMTY4LDExICsxNjgs
NiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cGFpbnRUb0dyYXBoaWNzQ29udGV4
dChQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogcAogICAgIG1fdGV4dHVyZU1hcHBlci0+c2V0R3Jh
cGhpY3NDb250ZXh0KDApOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0
U2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCi17Ci0gICAg
bV9zY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwotfQotCiB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZTo6dXBkYXRlVmlld3BvcnQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CkBAIC0xODAsNyArMTc1LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6
OnVwZGF0ZVZpZXdwb3J0KCkKICAgICAgICAgbV9jbGllbnQtPnVwZGF0ZVZpZXdwb3J0KCk7CiB9
CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVk
TGF5ZXJzKCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZv
ckZpeGVkTGF5ZXJzKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQogewogICAgIGlm
IChtX2ZpeGVkTGF5ZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTg4LDcgKzE4
Myw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZp
eGVkTGF5ZXJzKCkKICAgICAvLyBGaXhlZCBsYXllciBwb3NpdGlvbnMgYXJlIHVwZGF0ZWQgYnkg
dGhlIHdlYiBwcm9jZXNzIHdoZW4gd2UgdXBkYXRlIHRoZSB2aXNpYmxlIGNvbnRlbnRzIHJlY3Qg
LyBzY3JvbGwgcG9zaXRpb24uCiAgICAgLy8gSWYgd2Ugd2FudCB0aG9zZSBsYXllcnMgdG8gZm9s
bG93IGFjY3VyYXRlbHkgdGhlIHZpZXdwb3J0IHdoZW4gd2UgbW92ZSBiZXR3ZWVuIHRoZSB3ZWIg
cHJvY2VzcyB1cGRhdGVzLCB3ZSBoYXZlIHRvIG9mZnNldAogICAgIC8vIHRoZW0gYnkgdGhlIGRl
bHRhIGJldHdlZW4gdGhlIGN1cnJlbnQgcG9zaXRpb24gYW5kIHRoZSBwb3NpdGlvbiBvZiB0aGUg
dmlld3BvcnQgdXNlZCBmb3IgdGhlIGxhc3QgbGF5b3V0LgotICAgIEZsb2F0U2l6ZSBkZWx0YSA9
IG1fc2Nyb2xsUG9zaXRpb24gLSBtX3JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbjsKKyAg
ICBGbG9hdFNpemUgZGVsdGEgPSBzY3JvbGxQb3NpdGlvbiAtIG1fcmVuZGVyZWRDb250ZW50c1Nj
cm9sbFBvc2l0aW9uOwogCiAgICAgTGF5ZXJSYXdQdHJNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fZml4
ZWRMYXllcnMuZW5kKCk7CiAgICAgZm9yIChMYXllclJhd1B0ck1hcDo6aXRlcmF0b3IgaXQgPSBt
X2ZpeGVkTGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAppbmRleCA5YzkyMWE3NGY2
YzNmMGQ4MzcxYzBiOTI5Zjc4MTJiNDg5Y2ZmNWQxLi5lZjkyZDIxZDc4MWE5NGVkOTdjNjQxMDMz
NjdmMzBjYjY1MTQ0NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZS5oCkBAIC03OSw5ICs3OSw4IEBAIHB1YmxpYzoKICAgICB9Owog
ICAgIGV4cGxpY2l0IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZShDb29yZGluYXRlZEdyYXBoaWNz
U2NlbmVDbGllbnQqKTsKICAgICB2aXJ0dWFsIH5Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKTsK
LSAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiwgZmxvYXQsIGNvbnN0IEZsb2F0UmVjdCYsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3Mg
PSAwKTsKKyAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiwgZmxvYXQsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CiAgICAgdm9pZCBw
YWludFRvR3JhcGhpY3NDb250ZXh0KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0Kik7Ci0gICAgdm9p
ZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAjaWYgVVNFKEdSQVBISUNT
X1NVUkZBQ0UpCiAgICAgdm9pZCBjcmVhdGVDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25z
dCBJbnRTaXplJiwgUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+KTsKICAgICB2b2lkIHN5bmND
YW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CkBAIC0xNDEs
NyArMTQwLDcgQEAgcHJpdmF0ZToKICAgICBHcmFwaGljc0xheWVyKiByb290TGF5ZXIoKSB7IHJl
dHVybiBtX3Jvb3RMYXllci5nZXQoKTsgfQogCiAgICAgdm9pZCBzeW5jUmVtb3RlQ29udGVudCgp
OwotICAgIHZvaWQgYWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycygpOworICAgIHZvaWQgYWRq
dXN0UG9zaXRpb25Gb3JGaXhlZExheWVycyhjb25zdCBGbG9hdFBvaW50Jik7CiAKICAgICAvLyBS
ZWltcGxlbWVudGF0aW9ucyBmcm9tIEdyYXBoaWNzTGF5ZXJDbGllbnQuCiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSkg
eyB9CkBAIC0yMDMsNyArMjAyLDYgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8Q29v
cmRpbmF0ZWRMYXllcklELCBHcmFwaGljc0xheWVyKj4gTGF5ZXJSYXdQdHJNYXA7CiAgICAgTGF5
ZXJSYXdQdHJNYXAgbV9maXhlZExheWVyczsKICAgICBDb29yZGluYXRlZExheWVySUQgbV9yb290
TGF5ZXJJRDsKLSAgICBGbG9hdFBvaW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAgRmxvYXRQb2lu
dCBtX3JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbjsKICAgICBib29sIG1fYW5pbWF0aW9u
c0xvY2tlZDsKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcAppbmRleCA0ZjE5
NmUxMzlhMjExMDJlNGQwNTY5ZmZiMzgzMWFiYzhjZDhhYjkyLi4xY2YyZmM0ZWQ5MzNiZjkwZTlj
ZjY5ZDc3OGE3YmE3MjBlZmYwYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAKQEAgLTEwNyw2ICsxMDcsOCBAQCBRU0dOb2RlKiBR
UXVpY2tXZWJQYWdlOjp1cGRhdGVQYWludE5vZGUoUVNHTm9kZSogb2xkTm9kZSwgVXBkYXRlUGFp
bnROb2RlRGF0YSopCiAKICAgICBub2RlLT5zZXRDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoc2Nl
bmUpOwogCisgICAgUVBvaW50RiBzY3JvbGxQb3NpdGlvbiA9IHRyYW5zZm9ybUZyb21JdGVtKCku
bWFwKFFQb2ludEYoKSk7CisgICAgbm9kZS0+c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRp
b24pOwogICAgIG5vZGUtPnNldFNjYWxlKGQtPmNvbnRlbnRzU2NhbGUpOwogICAgIG5vZGUtPnNl
dERldmljZVBpeGVsUmF0aW8od2luZG93LT5kZXZpY2VQaXhlbFJhdGlvKCkpOwogICAgIFFDb2xv
ciBiYWNrZ3JvdW5kQ29sb3IgPSBkLT53ZWJQYWdlUHJveHktPmRyYXdzVHJhbnNwYXJlbnRCYWNr
Z3JvdW5kKCkgPyBRdDo6dHJhbnNwYXJlbnQgOiBRdDo6d2hpdGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAKaW5kZXggNGFhMzUz
Mzc3ZjE0MjdjNTE2ZTk1ZTliYjdiYWJiNjY4NDVhOTJkNy4uYTZjYWQzMmFiNjEzMjc5NTBjZGQ4
Njg3Yjk1MjY0YzZjOGIxOGIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIFBhc3NSZWZQ
dHI8V2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eT4gUVJhd1dlYlZpZXdQcml2YXRlOjpjcmVh
dGVDb2xvckNob29zZXJQCiB2b2lkIFFSYXdXZWJWaWV3UHJpdmF0ZTo6cGFnZURpZFJlcXVlc3RT
Y3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvcykKIHsKICAgICBtX2NsaWVudC0+dmll
d1JlcXVlc3RlZFNjcm9sbChwb3MpOwotCisgICAgbV9wb3NpdGlvbiA9IFFQb2ludEYocG9zLngo
KSwgcG9zLnkoKSk7CiB9CiB2b2lkIFFSYXdXZWJWaWV3UHJpdmF0ZTo6cHJvY2Vzc0RpZENyYXNo
KCkKIHsKQEAgLTM3OCw3ICszNzgsNyBAQCB2b2lkIFFSYXdXZWJWaWV3OjpwYWludChjb25zdCBR
TWF0cml4NHg0JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIHVuc2lnbmVkIHBhaQogCiAgICAg
V2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QoMCwgMCwgZC0+bV9zaXplLndpZHRoKCksIGQtPm1fc2l6
ZS5oZWlnaHQoKSk7CiAKLSAgICBzY2VuZS0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQodHJhbnNm
b3JtLCBvcGFjaXR5LCB0cmFuc2Zvcm0ubWFwUmVjdChyZWN0KSwgcGFpbnRGbGFncyk7CisgICAg
c2NlbmUtPnBhaW50VG9DdXJyZW50R0xDb250ZXh0KHRyYW5zZm9ybSwgb3BhY2l0eSwgdHJhbnNm
b3JtLm1hcFJlY3QocmVjdCksIGQtPm1fcG9zaXRpb24sIHBhaW50RmxhZ3MpOwogfQogCiB2b2lk
IFFSYXdXZWJWaWV3OjpzZW5kS2V5RXZlbnQoUUtleUV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3X3BfcC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXdfcF9wLmgKaW5k
ZXggMDI5OTU2ZTc3ZjI2MDBlMjIxMTZkY2Q3MDE2NjY2OTYwNzg4YTkwMy4uZWM3ZGViYjAxM2Q5
MmJlNGZiNjZmMGU1M2QyNWQyNGU2MzA4ZmYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXdfcF9wLmgKQEAgLTEyNSw2ICsxMjUs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBtX3Zpc2libGU7CiAgICAgYm9vbCBtX2FjdGl2ZTsKICAg
ICBRU2l6ZSBtX3NpemU7CisgICAgUVBvaW50RiBtX3Bvc2l0aW9uOwogCiAgICAgUVJhd1dlYlZp
ZXdDbGllbnQqIG1fY2xpZW50OwogICAgIFdURjo6UmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5
PiBtX3dlYlBhZ2VQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdFByb3h5LmNwcAppbmRleCBjNWY3ZTg3NWE2ZDhiY2ZkYTRiNzAzNWU0MTkwYzJl
NTUzZTczNmJhLi40YTU4N2I3OTBjNjkzYjAwNTEzNTgzYjk0NjdlNzk2ZDkxOTczYmQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3Bw
CkBAIC0xNzUsOSArMTc1LDYgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6
c2V0QW5pbWF0aW9uc0xvY2tlZChib29sIGxvY2tlZCkKIAogdm9pZCBDb29yZGluYXRlZExheWVy
VHJlZUhvc3RQcm94eTo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHJl
Y3QsIGNvbnN0IEZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpCiB7Ci0gICAgLy8gSW5mb3Jt
IHRoZSByZW5kZXJlciB0byBhZGp1c3Qgdmlld3BvcnQtZml4ZWQgbGF5ZXJzLgotICAgIGRpc3Bh
dGNoVXBkYXRlKGJpbmQoJkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0U2Nyb2xsUG9zaXRp
b24sIG1fc2NlbmUuZ2V0KCksIHJlY3QubG9jYXRpb24oKSkpOwotCiAgICAgaWYgKHJlY3QgPT0g
bV9sYXN0U2VudFZpc2libGVSZWN0ICYmIHRyYWplY3RvcnlWZWN0b3IgPT0gbV9sYXN0U2VudFRy
YWplY3RvcnlWZWN0b3IpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvV2ViVmlldy5jcHAKaW5kZXggYWNmNjJkOTFjMjc0ZmE1OWZjZjJkNWNhYzI4NjFhZGQ4
YWQ1ZWVmNS4uYjVkOTEyYTA3YWQ1MDkyYzhjNzY1YTZlZjgxYTVjODNkNDhmYWJmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCkBAIC0xMDMsNyArMTAzLDkgQEAg
dm9pZCBXZWJWaWV3OjpwYWludFRvQ3VycmVudEdMQ29udGV4dCgpCiAgICAgc2NlbmUtPnNldERy
YXdzQmFja2dyb3VuZChtX3BhZ2UtPmRyYXdzQmFja2dyb3VuZCgpKTsKIAogICAgIEZsb2F0UmVj
dCB2aWV3cG9ydCA9IG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtLm1hcFJlY3QoSW50UmVjdChJbnRQ
b2ludCgpLCBtX2V3a1ZpZXctPm5hdGl2ZVNpemUoKSkpOwotICAgIHNjZW5lLT5wYWludFRvQ3Vy
cmVudEdMQ29udGV4dCh0cmFuc2Zvcm1Ub1NjZW5lKCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgp
LCAvKiBvcGFjaXR5ICovIDEsIHZpZXdwb3J0KTsKKyAgICBGbG9hdFBvaW50IHVpUG9zaXRpb24o
bV9ld2tWaWV3LT5wYWdlUG9zaXRpb24oKSk7CisgICAgdWlQb3NpdGlvbi5zY2FsZSgxIC8gbV9l
d2tWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSwgMSAvIG1fZXdrVmlldy0+cGFnZVNjYWxlRmFjdG9y
KCkpOworICAgIHNjZW5lLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zvcm1Ub1NjZW5l
KCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAvKiBvcGFjaXR5ICovIDEsIHZpZXdwb3J0LCB1
aVBvc2l0aW9uKTsKIH0KIAogdm9pZCBXZWJWaWV3OjpwYWludFRvQ2Fpcm9TdXJmYWNlKGNhaXJv
X3N1cmZhY2VfdCogc3VyZmFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdFdlYlBhZ2VTR05vZGUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
V2ViUGFnZVNHTm9kZS5jcHAKaW5kZXggMDAyZDAwNTA3YTRkYTYyYmY0YzhkNDllNTMzZTMxMDRj
N2ExMjY3MC4uMTFhZGQ5YjhjMmQ4NzhjODM1MTQ1YmM3ZTZlMjIyYzYzNDgyODlhMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5jcHAKQEAgLTYy
LDcgKzYyLDcgQEAgcHVibGljOgogICAgICAgICBib29sIG1pcnJvcmVkID0gcHJvamVjdGlvbiAm
JiAoKnByb2plY3Rpb24pKDAsIDApICogKCpwcm9qZWN0aW9uKSgxLCAxKSAtICgqcHJvamVjdGlv
bikoMCwgMSkgKiAoKnByb2plY3Rpb24pKDEsIDApID4gMDsKIAogICAgICAgICAvLyBGSVhNRTog
U3VwcG9ydCBub24tcmVjdGFuZ3VsYXIgY2xpcHBpbmdzLgotICAgICAgICBjb29yZGluYXRlZEdy
YXBoaWNzU2NlbmUoKS0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQocmVuZGVyTWF0cml4LCBpbmhl
cml0ZWRPcGFjaXR5KCksIGNsaXBSZWN0KCksIG1pcnJvcmVkID8gVGV4dHVyZU1hcHBlcjo6UGFp
bnRpbmdNaXJyb3JlZCA6IDApOworICAgICAgICBjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKS0+
cGFpbnRUb0N1cnJlbnRHTENvbnRleHQocmVuZGVyTWF0cml4LCBpbmhlcml0ZWRPcGFjaXR5KCks
IGNsaXBSZWN0KCksIHBhZ2VOb2RlKCktPnNjcm9sbFBvc2l0aW9uKCksIG1pcnJvcmVkID8gVGV4
dHVyZU1hcHBlcjo6UGFpbnRpbmdNaXJyb3JlZCA6IDApOwogICAgIH0KIAogICAgIH5Db250ZW50
c1NHTm9kZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQ
YWdlU0dOb2RlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlU0dOb2Rl
LmgKaW5kZXggNzdhZDgxYjZmYzI1ZDZjODY3MWFkMTk2ZGQxMWY0OGE4MDljZmNiZS4uYjE0YzMy
MDhkOTY5MDk1YzEyZTUxOTBkYjI4ZTJhZmZkODgwMWNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VTR05vZGUuaApAQCAtNDEsNiArNDEsOCBAQCBjbGFzcyBR
dFdlYlBhZ2VTR05vZGUgOiBwdWJsaWMgUVNHVHJhbnNmb3JtTm9kZSB7CiAgICAgcHVibGljOgog
ICAgICAgICBRdFdlYlBhZ2VTR05vZGUoKTsKICAgICAgICAgdm9pZCBzZXRCYWNrZ3JvdW5kKGNv
bnN0IFFSZWN0RiYsIGNvbnN0IFFDb2xvciYpOworICAgICAgICBjb25zdCBRUG9pbnRGJiBzY3Jv
bGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsUG9zaXRpb247IH0KKyAgICAgICAg
dm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBRUG9pbnRGJiBzY3JvbGxQb3NpdGlvbikgeyBt
X3Njcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247IH0KICAgICAgICAgdm9pZCBzZXRTY2Fs
ZShmbG9hdCk7CiAgICAgICAgIHZvaWQgc2V0Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKFBhc3NS
ZWZQdHI8V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lPik7CiAgICAgICAgIHFyZWFs
IGRldmljZVBpeGVsUmF0aW8oKSBjb25zdCB7IHJldHVybiBtX2RldmljZVBpeGVsUmF0aW87IH0K
QEAgLTQ5LDYgKzUxLDcgQEAgY2xhc3MgUXRXZWJQYWdlU0dOb2RlIDogcHVibGljIFFTR1RyYW5z
Zm9ybU5vZGUgewogICAgIHByaXZhdGU6CiAgICAgICAgIENvbnRlbnRzU0dOb2RlKiBtX2NvbnRl
bnRzTm9kZTsKICAgICAgICAgUVNHU2ltcGxlUmVjdE5vZGUqIG1fYmFja2dyb3VuZE5vZGU7Cisg
ICAgICAgIFFQb2ludEYgbV9zY3JvbGxQb3NpdGlvbjsKICAgICAgICAgcXJlYWwgbV9kZXZpY2VQ
aXhlbFJhdGlvOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191671</attachid>
            <date>2013-03-06 00:23:08 -0800</date>
            <delta_ts>2013-03-08 00:09:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109033-20130306171838.patch</filename>
            <type>text/plain</type>
            <size>13121</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlhN2MwODliYWNlZTRm
ZDFlZDg4NWFlNjdmZGQ3MTM3ZDI3OTkwNS4uNmU2NjFlYzgwODQ3YWZmODYyOTVhODY2MDI5NWUy
NDU2ZDBjODFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAzLTA2ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtFRkxdW1F0
XSBDb29yZGluYXRlZCBHcmFwaGljczogc2Nyb2xsIGFuaW1hdGlvbiBtYWtlcyBmaXhlZCBlbGVt
ZW50IHNoYWtlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA5MDMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwYWludFRvQ3VycmVudEdMQ29udGV4dCgpIG5l
ZWRzIGEgc2Nyb2xsIHBvc2l0aW9uCisgICAgICAgIHRvIGFkanVzdCB0aGUgcG9zaXRpb24gb2Yg
Zml4ZWQgZWxlbWVudC4gQ3VycmVudGx5LAorICAgICAgICBDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUgc29tZXRpbWVzIHVzZXMgYSBzdGFsZSBzY3JvbGwgcG9zaXRpb24uIENsaWVudHMKKyAgICAg
ICAgdGhhdCBjYWxsIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KCkgYWxyZWFkeSBrbm93IGEgc2Ny
b2xsIHBvc2l0aW9uCisgICAgICAgIGJlY2F1c2UgdGhleSBjYW4gZ2VuZXJhdGUgYSBtYXRyaXgs
IHNvIHRoaXMgcGF0Y2ggbWFrZSBjbGllbnRzIGNhbGwKKyAgICAgICAgcGFpbnRUb0N1cnJlbnRH
TENvbnRleHQoKSB3aXRoIGEgc2Nyb2xsIHBvc2l0aW9uLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2FuIG9ubHkgYmUgdGVzdGVkIG1hbnVhbGx5IHNpbmNlIHRoZXJlIGlzIG5vIGF1dG9tYXRlZAor
ICAgICAgICB0ZXN0aW5nIGZhY2lsaXRpZXMgZm9yIGluLW1vdGlvbiB0b3VjaC4KKyAgICAgICAg
VGVzdDogTWFudWFsVGVzdHMvZml4ZWQtcG9zaXRpb24uaHRtbAorICAgICAgICAgICAgICBNYW51
YWxUZXN0cy9uZXN0ZWQtZml4ZWQtcG9zaXRpb24uaHRtbAorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnBhaW50VG9DdXJy
ZW50R0xDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZTo6YWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oOgorICAg
ICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKToKKwogMjAxMy0wMy0wNSAgU2hhd24gU2lu
Z2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggZGVmYXVsdCBiYWNr
Z3JvdW5kIG9mIGEgZHJhZ2dlZCBpbWFnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0MzA5ZGI5M2ZjOWQ5MmEz
NDRjZTQ3YTk1NTU4MzQ3MjE4YzM1NmE4Li45NjY4ZmIxMTgwMTc0MzZkNDkxYmE2OTE4YzJmODc2
MTJhNWM3MTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTMtMDMtMDYgIEh1YW5n
IERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW0VGTF1bUXRd
IENvb3JkaW5hdGVkIEdyYXBoaWNzOiBzY3JvbGwgYW5pbWF0aW9uIG1ha2VzIGZpeGVkIGVsZW1l
bnQgc2hha2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDkwMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBbWVuZCBFRkwgYW5kIFF0IHBsYXRmb3JtIGNvZGUgdG8gY2FsbCBDb29yZGluYXRlZEdyYXBo
aWNzU2NlbmU6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KCkKKyAgICAgICAgd2l0aCBhIHNjcm9s
bCBwb3NpdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5j
cHA6CisgICAgICAgIChRUXVpY2tXZWJQYWdlOjp1cGRhdGVQYWludE5vZGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFSYXdXZWJW
aWV3OjpwYWludCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29yZGlu
YXRlZExheWVyVHJlZUhvc3RQcm94eTo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6
cGFpbnRUb0N1cnJlbnRHTENvbnRleHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBh
Z2VTR05vZGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZW50c1NHTm9kZTo6cmVuZGVyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlU0dOb2RlLmg6CisgICAgICAgIChXZWJL
aXQ6OlF0V2ViUGFnZVNHTm9kZTo6c2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpR
dFdlYlBhZ2VTR05vZGU6OnNldFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFF0V2ViUGFnZVNH
Tm9kZSk6CisKIDIwMTMtMDMtMDQgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEw
MC5uZXQ+CiAKICAgICAgICAgW0VGTF0gRXdrVmlldyBzaG91bGQga2VlcCBjc3MgcG9zaXRpb24g
aW5zdGVhZCBvZiBzY3JvbGwgcG9zaXRpb24gaW4gZGV2aWNlIHBpeGVsLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAppbmRleCA5
ZjA4MDUzM2M2NmJhYmRiMmJmYjhlM2YxNjA0ZTlhZGEzYTM4YTU2Li45M2I4MzE2MGJkMzRkMTgx
ODJhNWQ4ZjY4OWI2MzI4MGExNjQzM2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcApAQCAtNzQsNyArNzQsNyBAQCBDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6On5Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKQogewogfQog
Ci12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQo
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3Qg
RmxvYXRSZWN0JiBjbGlwUmVjdCwgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBQYWludEZsYWdz
KQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0
KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0
IEZsb2F0UmVjdCYgY2xpcFJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBU
ZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIFBhaW50RmxhZ3MpCiB7CiAgICAgaWYgKCFtX3RleHR1
cmVNYXBwZXIpIHsKICAgICAgICAgbV90ZXh0dXJlTWFwcGVyID0gVGV4dHVyZU1hcHBlcjo6Y3Jl
YXRlKFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUpOwpAQCAtODQsNyArODQsNyBAQCB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQoY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaQogICAgIEFTU0VSVChtX3RleHR1cmVNYXBwZXItPmFjY2VsZXJhdGlv
bk1vZGUoKSA9PSBUZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKTsKICAgICBzeW5jUmVtb3RlQ29u
dGVudCgpOwogCi0gICAgYWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycygpOworICAgIGFkanVz
dFBvc2l0aW9uRm9yRml4ZWRMYXllcnMoc2Nyb2xsUG9zaXRpb24pOwogICAgIEdyYXBoaWNzTGF5
ZXIqIGN1cnJlbnRSb290TGF5ZXIgPSByb290TGF5ZXIoKTsKICAgICBpZiAoIWN1cnJlbnRSb290
TGF5ZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTE2OCwxMSArMTY4LDYgQEAgdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmU6OnBhaW50VG9HcmFwaGljc0NvbnRleHQoUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQqIHAKICAgICBtX3RleHR1cmVNYXBwZXItPnNldEdyYXBoaWNzQ29udGV4dCgwKTsK
IH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldFNjcm9sbFBvc2l0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQotewotICAgIG1fc2Nyb2xsUG9zaXRpb24g
PSBzY3JvbGxQb3NpdGlvbjsKLX0KLQogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVw
ZGF0ZVZpZXdwb3J0KCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMTgwLDcg
KzE3NSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjp1cGRhdGVWaWV3cG9ydCgp
CiAgICAgICAgIG1fY2xpZW50LT51cGRhdGVWaWV3cG9ydCgpOwogfQogCi12b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZTo6YWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycygpCit2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycyhjb25z
dCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsKICAgICBpZiAobV9maXhlZExheWVycy5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE4OCw3ICsxODMsNyBAQCB2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZTo6YWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycygpCiAgICAg
Ly8gRml4ZWQgbGF5ZXIgcG9zaXRpb25zIGFyZSB1cGRhdGVkIGJ5IHRoZSB3ZWIgcHJvY2VzcyB3
aGVuIHdlIHVwZGF0ZSB0aGUgdmlzaWJsZSBjb250ZW50cyByZWN0IC8gc2Nyb2xsIHBvc2l0aW9u
LgogICAgIC8vIElmIHdlIHdhbnQgdGhvc2UgbGF5ZXJzIHRvIGZvbGxvdyBhY2N1cmF0ZWx5IHRo
ZSB2aWV3cG9ydCB3aGVuIHdlIG1vdmUgYmV0d2VlbiB0aGUgd2ViIHByb2Nlc3MgdXBkYXRlcywg
d2UgaGF2ZSB0byBvZmZzZXQKICAgICAvLyB0aGVtIGJ5IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSBj
dXJyZW50IHBvc2l0aW9uIGFuZCB0aGUgcG9zaXRpb24gb2YgdGhlIHZpZXdwb3J0IHVzZWQgZm9y
IHRoZSBsYXN0IGxheW91dC4KLSAgICBGbG9hdFNpemUgZGVsdGEgPSBtX3Njcm9sbFBvc2l0aW9u
IC0gbV9yZW5kZXJlZENvbnRlbnRzU2Nyb2xsUG9zaXRpb247CisgICAgRmxvYXRTaXplIGRlbHRh
ID0gc2Nyb2xsUG9zaXRpb24gLSBtX3JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbjsKIAog
ICAgIExheWVyUmF3UHRyTWFwOjppdGVyYXRvciBlbmQgPSBtX2ZpeGVkTGF5ZXJzLmVuZCgpOwog
ICAgIGZvciAoTGF5ZXJSYXdQdHJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9maXhlZExheWVycy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKaW5kZXggZWQ1ZGJlMDFlZmI3YTM5M2E0MmU5Zjk5NTli
OGIxYjhlMWIzM2I3ZC4uY2EzMTZmY2M0YTJkZDdlOTg5NTVjNjYwOTQzM2NlNTg4ZTMyMWUxNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuaApAQCAtNjUsOSArNjUsOCBAQCBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29vcmRpbmF0ZWRHcmFwaGljcwogcHVibGljOgog
ICAgIGV4cGxpY2l0IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZShDb29yZGluYXRlZEdyYXBoaWNz
U2NlbmVDbGllbnQqKTsKICAgICB2aXJ0dWFsIH5Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKTsK
LSAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiwgZmxvYXQsIGNvbnN0IEZsb2F0UmVjdCYsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3Mg
PSAwKTsKKyAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiwgZmxvYXQsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CiAgICAgdm9pZCBw
YWludFRvR3JhcGhpY3NDb250ZXh0KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0Kik7Ci0gICAgdm9p
ZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgdm9pZCBkZXRhY2go
KTsKICAgICB2b2lkIGFwcGVuZFVwZGF0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CiAKQEAg
LTEyOSw3ICsxMjgsNyBAQCBwcml2YXRlOgogICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcigp
IHsgcmV0dXJuIG1fcm9vdExheWVyLmdldCgpOyB9CiAKICAgICB2b2lkIHN5bmNSZW1vdGVDb250
ZW50KCk7Ci0gICAgdm9pZCBhZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5ZXJzKCk7CisgICAgdm9p
ZCBhZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5ZXJzKGNvbnN0IEZsb2F0UG9pbnQmKTsKIAogICAg
IC8vIFJlaW1wbGVtZW50YXRpb25zIGZyb20gR3JhcGhpY3NMYXllckNsaWVudC4KICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91
YmxlKSB7IH0KQEAgLTE5MSw3ICsxOTAsNiBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1h
cDxDb29yZGluYXRlZExheWVySUQsIEdyYXBoaWNzTGF5ZXIqPiBMYXllclJhd1B0ck1hcDsKICAg
ICBMYXllclJhd1B0ck1hcCBtX2ZpeGVkTGF5ZXJzOwogICAgIENvb3JkaW5hdGVkTGF5ZXJJRCBt
X3Jvb3RMYXllcklEOwotICAgIEZsb2F0UG9pbnQgbV9zY3JvbGxQb3NpdGlvbjsKICAgICBGbG9h
dFBvaW50IG1fcmVuZGVyZWRDb250ZW50c1Njcm9sbFBvc2l0aW9uOwogICAgIGJvb2wgbV9hbmlt
YXRpb25zTG9ja2VkOwogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCmluZGV4
IDRmMTk2ZTEzOWEyMTEwMmU0ZDA1NjlmZmIzODMxYWJjOGNkOGFiOTIuLjFjZjJmYzRlZDkzM2Jm
OTBlOWNmNjlkNzc4YTdiYTcyMGVmZjBhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcApAQCAtMTA3LDYgKzEwNyw4IEBAIFFTR05v
ZGUqIFFRdWlja1dlYlBhZ2U6OnVwZGF0ZVBhaW50Tm9kZShRU0dOb2RlKiBvbGROb2RlLCBVcGRh
dGVQYWludE5vZGVEYXRhKikKIAogICAgIG5vZGUtPnNldENvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZShzY2VuZSk7CiAKKyAgICBRUG9pbnRGIHNjcm9sbFBvc2l0aW9uID0gdHJhbnNmb3JtRnJvbUl0
ZW0oKS5tYXAoUVBvaW50RigpKTsKKyAgICBub2RlLT5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQ
b3NpdGlvbik7CiAgICAgbm9kZS0+c2V0U2NhbGUoZC0+Y29udGVudHNTY2FsZSk7CiAgICAgbm9k
ZS0+c2V0RGV2aWNlUGl4ZWxSYXRpbyh3aW5kb3ctPmRldmljZVBpeGVsUmF0aW8oKSk7CiAgICAg
UUNvbG9yIGJhY2tncm91bmRDb2xvciA9IGQtPndlYlBhZ2VQcm94eS0+ZHJhd3NUcmFuc3BhcmVu
dEJhY2tncm91bmQoKSA/IFF0Ojp0cmFuc3BhcmVudCA6IFF0Ojp3aGl0ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcAppbmRleCA0
YWEzNTMzNzdmMTQyN2M1MTZlOTVlOWJiN2JhYmI2Njg0NWE5MmQ3Li42OWUxM2IwNDg4NDk4ODVj
YTkwMWY1OGE2ZDZkOWFmNzIzYjE4NDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwCkBAIC0zNzgsNyArMzc4LDcgQEAgdm9p
ZCBRUmF3V2ViVmlldzo6cGFpbnQoY29uc3QgUU1hdHJpeDR4NCYgdHJhbnNmb3JtLCBmbG9hdCBv
cGFjaXR5LCB1bnNpZ25lZCBwYWkKIAogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KDAsIDAs
IGQtPm1fc2l6ZS53aWR0aCgpLCBkLT5tX3NpemUuaGVpZ2h0KCkpOwogCi0gICAgc2NlbmUtPnBh
aW50VG9DdXJyZW50R0xDb250ZXh0KHRyYW5zZm9ybSwgb3BhY2l0eSwgdHJhbnNmb3JtLm1hcFJl
Y3QocmVjdCksIHBhaW50RmxhZ3MpOworICAgIHNjZW5lLT5wYWludFRvQ3VycmVudEdMQ29udGV4
dCh0cmFuc2Zvcm0sIG9wYWNpdHksIHRyYW5zZm9ybS5tYXBSZWN0KHJlY3QpLCBRUG9pbnRGKCks
IHBhaW50RmxhZ3MpOwogfQogCiB2b2lkIFFSYXdXZWJWaWV3OjpzZW5kS2V5RXZlbnQoUUtleUV2
ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdFByb3h5LmNwcAppbmRleCAwMThiZDE3YzViNDI5MWQxYjQ3NDdiOGQ2NTBhNDBhNTQ5Njc1
ZWYyLi41ZGNhY2UxN2VkY2JjN2E3M2IwYmYxNGJlYTY4NTg5NWZlYzI0NDYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZExheWVyVHJlZUhvc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCkBAIC0x
MjksOSArMTI5LDYgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6c2V0QW5p
bWF0aW9uc0xvY2tlZChib29sIGxvY2tlZCkKIAogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhv
c3RQcm94eTo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNv
bnN0IEZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpCiB7Ci0gICAgLy8gSW5mb3JtIHRoZSBy
ZW5kZXJlciB0byBhZGp1c3Qgdmlld3BvcnQtZml4ZWQgbGF5ZXJzLgotICAgIGRpc3BhdGNoVXBk
YXRlKGJpbmQoJkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0U2Nyb2xsUG9zaXRpb24sIG1f
c2NlbmUuZ2V0KCksIHJlY3QubG9jYXRpb24oKSkpOwotCiAgICAgaWYgKHJlY3QgPT0gbV9sYXN0
U2VudFZpc2libGVSZWN0ICYmIHRyYWplY3RvcnlWZWN0b3IgPT0gbV9sYXN0U2VudFRyYWplY3Rv
cnlWZWN0b3IpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViVmlldy5jcHAKaW5kZXggMjMxMGQzZWVhOGMwZDk4MWFjMjRiMzBjNjdjNTViMzZiN2JhMjYw
MS4uNWIwZjcxM2NjNGQ5NzA4NGQ5NzBkMTgxMWNhMjFmMmFjZGJlNWFjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCkBAIC0xMDMsNyArMTAzLDkgQEAgdm9pZCBX
ZWJWaWV3OjpwYWludFRvQ3VycmVudEdMQ29udGV4dCgpCiAgICAgc2NlbmUtPnNldERyYXdzQmFj
a2dyb3VuZChtX3BhZ2UtPmRyYXdzQmFja2dyb3VuZCgpKTsKIAogICAgIEZsb2F0UmVjdCB2aWV3
cG9ydCA9IG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtLm1hcFJlY3QoSW50UmVjdChJbnRQb2ludCgp
LCBtX2V3a1ZpZXctPmRldmljZVNpemUoKSkpOwotICAgIHNjZW5lLT5wYWludFRvQ3VycmVudEdM
Q29udGV4dCh0cmFuc2Zvcm1Ub1NjZW5lKCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAvKiBv
cGFjaXR5ICovIDEsIHZpZXdwb3J0KTsKKyAgICBGbG9hdFBvaW50IHVpUG9zaXRpb24obV9ld2tW
aWV3LT5wYWdlUG9zaXRpb24oKSk7CisgICAgdWlQb3NpdGlvbi5zY2FsZSgxIC8gbV9ld2tWaWV3
LT5wYWdlU2NhbGVGYWN0b3IoKSwgMSAvIG1fZXdrVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkpOwor
ICAgIHNjZW5lLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zvcm1Ub1NjZW5lKCkudG9U
cmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAvKiBvcGFjaXR5ICovIDEsIHZpZXdwb3J0LCB1aVBvc2l0
aW9uKTsKIH0KIAogdm9pZCBXZWJWaWV3OjpwYWludFRvQ2Fpcm9TdXJmYWNlKGNhaXJvX3N1cmZh
Y2VfdCogc3VyZmFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFdlYlBhZ2VTR05vZGUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFn
ZVNHTm9kZS5jcHAKaW5kZXggMDAyZDAwNTA3YTRkYTYyYmY0YzhkNDllNTMzZTMxMDRjN2ExMjY3
MC4uMTFhZGQ5YjhjMmQ4NzhjODM1MTQ1YmM3ZTZlMjIyYzYzNDgyODlhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5jcHAKQEAgLTYyLDcgKzYy
LDcgQEAgcHVibGljOgogICAgICAgICBib29sIG1pcnJvcmVkID0gcHJvamVjdGlvbiAmJiAoKnBy
b2plY3Rpb24pKDAsIDApICogKCpwcm9qZWN0aW9uKSgxLCAxKSAtICgqcHJvamVjdGlvbikoMCwg
MSkgKiAoKnByb2plY3Rpb24pKDEsIDApID4gMDsKIAogICAgICAgICAvLyBGSVhNRTogU3VwcG9y
dCBub24tcmVjdGFuZ3VsYXIgY2xpcHBpbmdzLgotICAgICAgICBjb29yZGluYXRlZEdyYXBoaWNz
U2NlbmUoKS0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQocmVuZGVyTWF0cml4LCBpbmhlcml0ZWRP
cGFjaXR5KCksIGNsaXBSZWN0KCksIG1pcnJvcmVkID8gVGV4dHVyZU1hcHBlcjo6UGFpbnRpbmdN
aXJyb3JlZCA6IDApOworICAgICAgICBjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKS0+cGFpbnRU
b0N1cnJlbnRHTENvbnRleHQocmVuZGVyTWF0cml4LCBpbmhlcml0ZWRPcGFjaXR5KCksIGNsaXBS
ZWN0KCksIHBhZ2VOb2RlKCktPnNjcm9sbFBvc2l0aW9uKCksIG1pcnJvcmVkID8gVGV4dHVyZU1h
cHBlcjo6UGFpbnRpbmdNaXJyb3JlZCA6IDApOwogICAgIH0KIAogICAgIH5Db250ZW50c1NHTm9k
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlU0dO
b2RlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlU0dOb2RlLmgKaW5k
ZXggNzdhZDgxYjZmYzI1ZDZjODY3MWFkMTk2ZGQxMWY0OGE4MDljZmNiZS4uYjE0YzMyMDhkOTY5
MDk1YzEyZTUxOTBkYjI4ZTJhZmZkODgwMWNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFdlYlBhZ2VTR05vZGUuaApAQCAtNDEsNiArNDEsOCBAQCBjbGFzcyBRdFdlYlBh
Z2VTR05vZGUgOiBwdWJsaWMgUVNHVHJhbnNmb3JtTm9kZSB7CiAgICAgcHVibGljOgogICAgICAg
ICBRdFdlYlBhZ2VTR05vZGUoKTsKICAgICAgICAgdm9pZCBzZXRCYWNrZ3JvdW5kKGNvbnN0IFFS
ZWN0RiYsIGNvbnN0IFFDb2xvciYpOworICAgICAgICBjb25zdCBRUG9pbnRGJiBzY3JvbGxQb3Np
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsUG9zaXRpb247IH0KKyAgICAgICAgdm9pZCBz
ZXRTY3JvbGxQb3NpdGlvbihjb25zdCBRUG9pbnRGJiBzY3JvbGxQb3NpdGlvbikgeyBtX3Njcm9s
bFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247IH0KICAgICAgICAgdm9pZCBzZXRTY2FsZShmbG9h
dCk7CiAgICAgICAgIHZvaWQgc2V0Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKFBhc3NSZWZQdHI8
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lPik7CiAgICAgICAgIHFyZWFsIGRldmlj
ZVBpeGVsUmF0aW8oKSBjb25zdCB7IHJldHVybiBtX2RldmljZVBpeGVsUmF0aW87IH0KQEAgLTQ5
LDYgKzUxLDcgQEAgY2xhc3MgUXRXZWJQYWdlU0dOb2RlIDogcHVibGljIFFTR1RyYW5zZm9ybU5v
ZGUgewogICAgIHByaXZhdGU6CiAgICAgICAgIENvbnRlbnRzU0dOb2RlKiBtX2NvbnRlbnRzTm9k
ZTsKICAgICAgICAgUVNHU2ltcGxlUmVjdE5vZGUqIG1fYmFja2dyb3VuZE5vZGU7CisgICAgICAg
IFFQb2ludEYgbV9zY3JvbGxQb3NpdGlvbjsKICAgICAgICAgcXJlYWwgbV9kZXZpY2VQaXhlbFJh
dGlvOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192165</attachid>
            <date>2013-03-08 00:09:59 -0800</date>
            <delta_ts>2022-02-27 23:32:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109033-20130308170520.patch</filename>
            <type>text/plain</type>
            <size>13211</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFlNWRlMzBjZTAxZmUy
MjU4ZThhMjU3YTVjMGNmNDJhYjU5NzBkMC4uYjNmY2Y3ODFlZGM2YTJmZWYzZGU4NDE5ZDdiYTJj
MjQzODQ5NTViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAzLTA3ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtFRkxdW1F0
XSBDb29yZGluYXRlZCBHcmFwaGljczogc2Nyb2xsIGFuaW1hdGlvbiBtYWtlcyBmaXhlZCBlbGVt
ZW50IHNoYWtlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA5MDMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwYWludFRvQ3VycmVudEdMQ29udGV4dCgpIG5l
ZWRzIGEgc2Nyb2xsIHBvc2l0aW9uCisgICAgICAgIHRvIGFkanVzdCB0aGUgcG9zaXRpb24gb2Yg
Zml4ZWQgZWxlbWVudC4gQ3VycmVudGx5LAorICAgICAgICBDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUgc29tZXRpbWVzIHVzZXMgYSBzdGFsZSBzY3JvbGwgcG9zaXRpb24uIENsaWVudHMKKyAgICAg
ICAgdGhhdCBjYWxsIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KCkgYWxyZWFkeSBrbm93IGEgc2Ny
b2xsIHBvc2l0aW9uCisgICAgICAgIGJlY2F1c2UgdGhleSBjYW4gZ2VuZXJhdGUgYSBtYXRyaXgs
IHNvIHRoaXMgcGF0Y2ggbWFrZSBjbGllbnRzIGNhbGwKKyAgICAgICAgcGFpbnRUb0N1cnJlbnRH
TENvbnRleHQoKSB3aXRoIGEgc2Nyb2xsIHBvc2l0aW9uLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2FuIG9ubHkgYmUgdGVzdGVkIG1hbnVhbGx5IHNpbmNlIHRoZXJlIGlzIG5vIGF1dG9tYXRlZAor
ICAgICAgICB0ZXN0aW5nIGZhY2lsaXRpZXMgZm9yIGluLW1vdGlvbiB0b3VjaC4KKyAgICAgICAg
VGVzdDogTWFudWFsVGVzdHMvZml4ZWQtcG9zaXRpb24uaHRtbAorICAgICAgICAgICAgICBNYW51
YWxUZXN0cy9uZXN0ZWQtZml4ZWQtcG9zaXRpb24uaHRtbAorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnBhaW50VG9DdXJy
ZW50R0xDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZTo6YWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oOgorICAg
ICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKToKKwogMjAxMy0wMy0wNyAgSGFqaW1lIE1v
cnJpdGEgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgQ3VzdG9tIEVsZW1lbnRzOiBD
dXN0b21FbGVtZW50IGNvbnN0cnVjdG9yIHNob3VsZG4ndCBzaGFyZSBmdW5jdGlvbiBpbnN0YW5j
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IGVhMmI4ZmMyN2E5M2U4MDY2MTc2MGMxYzA3ZjhlN2UyNmQzMmY2YzUu
LjFlYjA5NzA3NzRkZWQ2YTEzZjQ4Y2FhNTJjZTA4NDhkNjA0MjBjNGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwzMCBAQAogMjAxMy0wMy0wNyAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21w
YW55MTAwLm5ldD4KIAorICAgICAgICBbRUZMXVtRdF0gQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IHNj
cm9sbCBhbmltYXRpb24gbWFrZXMgZml4ZWQgZWxlbWVudCBzaGFrZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTAzMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFtZW5kIEVGTCBhbmQgUXQgcGxhdGZv
cm0gY29kZSB0byBjYWxsIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cGFpbnRUb0N1cnJlbnRH
TENvbnRleHQoKQorICAgICAgICB3aXRoIGEgc2Nyb2xsIHBvc2l0aW9uLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlBh
Z2U6OnVwZGF0ZVBhaW50Tm9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJh
d3dlYnZpZXcuY3BwOgorICAgICAgICAoUVJhd1dlYlZpZXc6OnBhaW50KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Ojpz
ZXRWaXNpYmxlQ29udGVudHNSZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpwYWludFRvQ3VycmVudEdMQ29udGV4dCk6
CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNvbnRlbnRzU0dOb2RlOjpyZW5kZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9R
dFdlYlBhZ2VTR05vZGUuaDoKKyAgICAgICAgKFdlYktpdDo6UXRXZWJQYWdlU0dOb2RlOjpzY3Jv
bGxQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlF0V2ViUGFnZVNHTm9kZTo6c2V0U2Nyb2xs
UG9zaXRpb24pOgorICAgICAgICAoUXRXZWJQYWdlU0dOb2RlKToKKworMjAxMy0wMy0wNyAgSHVh
bmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBbRUZMXSBF
d2tWaWV3IHNob3VsZCBrZWVwIGNzcyBwb3NpdGlvbiBpbnN0ZWFkIG9mIHNjcm9sbCBwb3NpdGlv
biBpbiBkZXZpY2UgcGl4ZWwuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTA4NDcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAppbmRleCBiODJlNGRlZTViYzI1OGFlNWIyZWU3MzZl
NTgxN2NiZTUxNjVhZTE3Li5hZmMxMWQ5YTdjZTAzNDEwZGFiZDE3ZjQyYmVlZDk2MjMzYjgyNjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lLmNwcApAQCAtNzQsNyArNzQsNyBAQCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6On5D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKQogewogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZTo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwUmVjdCwgVGV4
dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBQYWludEZsYWdzKQordm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzU2NlbmU6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiBtYXRyaXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEZsb2F0UmVjdCYgY2xpcFJlY3QsIGNv
bnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdz
IFBhaW50RmxhZ3MpCiB7CiAgICAgaWYgKCFtX3RleHR1cmVNYXBwZXIpIHsKICAgICAgICAgbV90
ZXh0dXJlTWFwcGVyID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKFRleHR1cmVNYXBwZXI6Ok9wZW5H
TE1vZGUpOwpAQCAtODQsNyArODQsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6
cGFpbnRUb0N1cnJlbnRHTENvbnRleHQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaQogICAgIEFT
U0VSVChtX3RleHR1cmVNYXBwZXItPmFjY2VsZXJhdGlvbk1vZGUoKSA9PSBUZXh0dXJlTWFwcGVy
OjpPcGVuR0xNb2RlKTsKICAgICBzeW5jUmVtb3RlQ29udGVudCgpOwogCi0gICAgYWRqdXN0UG9z
aXRpb25Gb3JGaXhlZExheWVycygpOworICAgIGFkanVzdFBvc2l0aW9uRm9yRml4ZWRMYXllcnMo
c2Nyb2xsUG9zaXRpb24pOwogICAgIEdyYXBoaWNzTGF5ZXIqIGN1cnJlbnRSb290TGF5ZXIgPSBy
b290TGF5ZXIoKTsKICAgICBpZiAoIWN1cnJlbnRSb290TGF5ZXIpCiAgICAgICAgIHJldHVybjsK
QEAgLTE2OCwxMSArMTY4LDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnBhaW50
VG9HcmFwaGljc0NvbnRleHQoUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIHAKICAgICBtX3RleHR1
cmVNYXBwZXItPnNldEdyYXBoaWNzQ29udGV4dCgwKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzU2NlbmU6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBv
c2l0aW9uKQotewotICAgIG1fc2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKLX0KLQog
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVZpZXdwb3J0KCkKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMTgwLDcgKzE3NSw3IEBAIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lOjp1cGRhdGVWaWV3cG9ydCgpCiAgICAgICAgIG1fY2xpZW50LT51cGRh
dGVWaWV3cG9ydCgpOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YWRqdXN0
UG9zaXRpb25Gb3JGaXhlZExheWVycygpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6
YWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycyhjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3Np
dGlvbikKIHsKICAgICBpZiAobV9maXhlZExheWVycy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTE4OCw3ICsxODMsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YWRq
dXN0UG9zaXRpb25Gb3JGaXhlZExheWVycygpCiAgICAgLy8gRml4ZWQgbGF5ZXIgcG9zaXRpb25z
IGFyZSB1cGRhdGVkIGJ5IHRoZSB3ZWIgcHJvY2VzcyB3aGVuIHdlIHVwZGF0ZSB0aGUgdmlzaWJs
ZSBjb250ZW50cyByZWN0IC8gc2Nyb2xsIHBvc2l0aW9uLgogICAgIC8vIElmIHdlIHdhbnQgdGhv
c2UgbGF5ZXJzIHRvIGZvbGxvdyBhY2N1cmF0ZWx5IHRoZSB2aWV3cG9ydCB3aGVuIHdlIG1vdmUg
YmV0d2VlbiB0aGUgd2ViIHByb2Nlc3MgdXBkYXRlcywgd2UgaGF2ZSB0byBvZmZzZXQKICAgICAv
LyB0aGVtIGJ5IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFuZCB0aGUg
cG9zaXRpb24gb2YgdGhlIHZpZXdwb3J0IHVzZWQgZm9yIHRoZSBsYXN0IGxheW91dC4KLSAgICBG
bG9hdFNpemUgZGVsdGEgPSBtX3Njcm9sbFBvc2l0aW9uIC0gbV9yZW5kZXJlZENvbnRlbnRzU2Ny
b2xsUG9zaXRpb247CisgICAgRmxvYXRTaXplIGRlbHRhID0gc2Nyb2xsUG9zaXRpb24gLSBtX3Jl
bmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbjsKIAogICAgIExheWVyUmF3UHRyTWFwOjppdGVy
YXRvciBlbmQgPSBtX2ZpeGVkTGF5ZXJzLmVuZCgpOwogICAgIGZvciAoTGF5ZXJSYXdQdHJNYXA6
Oml0ZXJhdG9yIGl0ID0gbV9maXhlZExheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgK
aW5kZXggNjhmYzYxOWYxNDgxYThlM2U5NGFjZThkMzQ4MDU4ZGQ1Mjg0YzQ4Yi4uMDZiOWQzYjU0
ODg5ZGI4NzBkZmFiMWQ4YzM5YjQ4NGRlMGExZTYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaApAQCAtNjYsOSArNjYsOCBAQCBj
bGFzcyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8Q29vcmRpbmF0ZWRHcmFwaGljcwogcHVibGljOgogICAgIGV4cGxpY2l0IENvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZShDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGllbnQqKTsKICAgICB2aXJ0
dWFsIH5Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKTsKLSAgICB2b2lkIHBhaW50VG9DdXJyZW50
R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQsIGNvbnN0IEZsb2F0
UmVjdCYsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgPSAwKTsKKyAgICB2b2lkIHBhaW50VG9D
dXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBUZXh0dXJlTWFw
cGVyOjpQYWludEZsYWdzID0gMCk7CiAgICAgdm9pZCBwYWludFRvR3JhcGhpY3NDb250ZXh0KFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0Kik7Ci0gICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25z
dCBGbG9hdFBvaW50Jik7CiAgICAgdm9pZCBkZXRhY2goKTsKICAgICB2b2lkIGFwcGVuZFVwZGF0
ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CiAKQEAgLTEzNCw3ICsxMzMsNyBAQCBwcml2YXRl
OgogICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcigpIHsgcmV0dXJuIG1fcm9vdExheWVyLmdl
dCgpOyB9CiAKICAgICB2b2lkIHN5bmNSZW1vdGVDb250ZW50KCk7Ci0gICAgdm9pZCBhZGp1c3RQ
b3NpdGlvbkZvckZpeGVkTGF5ZXJzKCk7CisgICAgdm9pZCBhZGp1c3RQb3NpdGlvbkZvckZpeGVk
TGF5ZXJzKGNvbnN0IEZsb2F0UG9pbnQmKTsKIAogICAgIC8vIFJlaW1wbGVtZW50YXRpb25zIGZy
b20gR3JhcGhpY3NMYXllckNsaWVudC4KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9u
U3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlKSB7IH0KQEAgLTE5OCw3ICsxOTcs
NiBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxDb29yZGluYXRlZExheWVySUQsIEdy
YXBoaWNzTGF5ZXIqPiBMYXllclJhd1B0ck1hcDsKICAgICBMYXllclJhd1B0ck1hcCBtX2ZpeGVk
TGF5ZXJzOwogICAgIENvb3JkaW5hdGVkTGF5ZXJJRCBtX3Jvb3RMYXllcklEOwotICAgIEZsb2F0
UG9pbnQgbV9zY3JvbGxQb3NpdGlvbjsKICAgICBGbG9hdFBvaW50IG1fcmVuZGVyZWRDb250ZW50
c1Njcm9sbFBvc2l0aW9uOwogICAgIGJvb2wgbV9hbmltYXRpb25zTG9ja2VkOwogI2lmIEVOQUJM
RShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCmluZGV4IDRmMTk2ZTEzOWEyMTEwMmU0ZDA1Njlm
ZmIzODMxYWJjOGNkOGFiOTIuLjFjZjJmYzRlZDkzM2JmOTBlOWNmNjlkNzc4YTdiYTcyMGVmZjBh
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
cGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJw
YWdlLmNwcApAQCAtMTA3LDYgKzEwNyw4IEBAIFFTR05vZGUqIFFRdWlja1dlYlBhZ2U6OnVwZGF0
ZVBhaW50Tm9kZShRU0dOb2RlKiBvbGROb2RlLCBVcGRhdGVQYWludE5vZGVEYXRhKikKIAogICAg
IG5vZGUtPnNldENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZShzY2VuZSk7CiAKKyAgICBRUG9pbnRG
IHNjcm9sbFBvc2l0aW9uID0gdHJhbnNmb3JtRnJvbUl0ZW0oKS5tYXAoUVBvaW50RigpKTsKKyAg
ICBub2RlLT5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CiAgICAgbm9kZS0+c2V0
U2NhbGUoZC0+Y29udGVudHNTY2FsZSk7CiAgICAgbm9kZS0+c2V0RGV2aWNlUGl4ZWxSYXRpbyh3
aW5kb3ctPmRldmljZVBpeGVsUmF0aW8oKSk7CiAgICAgUUNvbG9yIGJhY2tncm91bmRDb2xvciA9
IGQtPndlYlBhZ2VQcm94eS0+ZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKSA/IFF0Ojp0cmFu
c3BhcmVudCA6IFF0Ojp3aGl0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcAppbmRleCA0YWEzNTMzNzdmMTQyN2M1MTZlOTVlOWJi
N2JhYmI2Njg0NWE5MmQ3Li42OWUxM2IwNDg4NDk4ODVjYTkwMWY1OGE2ZDZkOWFmNzIzYjE4NDI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vi
dmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dl
YnZpZXcuY3BwCkBAIC0zNzgsNyArMzc4LDcgQEAgdm9pZCBRUmF3V2ViVmlldzo6cGFpbnQoY29u
c3QgUU1hdHJpeDR4NCYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCB1bnNpZ25lZCBwYWkKIAog
ICAgIFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KDAsIDAsIGQtPm1fc2l6ZS53aWR0aCgpLCBkLT5t
X3NpemUuaGVpZ2h0KCkpOwogCi0gICAgc2NlbmUtPnBhaW50VG9DdXJyZW50R0xDb250ZXh0KHRy
YW5zZm9ybSwgb3BhY2l0eSwgdHJhbnNmb3JtLm1hcFJlY3QocmVjdCksIHBhaW50RmxhZ3MpOwor
ICAgIHNjZW5lLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zvcm0sIG9wYWNpdHksIHRy
YW5zZm9ybS5tYXBSZWN0KHJlY3QpLCBRUG9pbnRGKCksIHBhaW50RmxhZ3MpOwogfQogCiB2b2lk
IFFSYXdXZWJWaWV3OjpzZW5kS2V5RXZlbnQoUUtleUV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcAppbmRleCBmN2Uz
MWQzODQwZTdhZmYyODc3ZjQ0ZDhkMDIwMmMzYzQzODY3ODQzLi5kNDc0MGViZjhlMmY3NDg0YmMy
ZGU3M2MwYjk0MDkwNjhhMzUyNGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCkBAIC0xMjksOSArMTI5LDYgQEAgdm9pZCBDb29y
ZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6c2V0QW5pbWF0aW9uc0xvY2tlZChib29sIGxvY2tl
ZCkKIAogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6c2V0VmlzaWJsZUNvbnRl
bnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHRyYWplY3Rv
cnlWZWN0b3IpCiB7Ci0gICAgLy8gSW5mb3JtIHRoZSByZW5kZXJlciB0byBhZGp1c3Qgdmlld3Bv
cnQtZml4ZWQgbGF5ZXJzLgotICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkNvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6c2V0U2Nyb2xsUG9zaXRpb24sIG1fc2NlbmUuZ2V0KCksIHJlY3QubG9jYXRp
b24oKSkpOwotCiAgICAgaWYgKHJlY3QgPT0gbV9sYXN0U2VudFZpc2libGVSZWN0ICYmIHRyYWpl
Y3RvcnlWZWN0b3IgPT0gbV9sYXN0U2VudFRyYWplY3RvcnlWZWN0b3IpCiAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAKaW5kZXggNWMyYjNi
YTQzZmE1ZjUyOGI3MTFjMTUyYzVhZGVjOTc5ZDIxZDQxZS4uNzI3Yjg2OTg4YmRlM2Y5ODVhZjFh
NGVmZTM3M2Y2ODg0OTc3ZWZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZp
ZXcuY3BwCkBAIC0xMDMsNyArMTAzLDkgQEAgdm9pZCBXZWJWaWV3OjpwYWludFRvQ3VycmVudEdM
Q29udGV4dCgpCiAgICAgc2NlbmUtPnNldERyYXdzQmFja2dyb3VuZChtX3BhZ2UtPmRyYXdzQmFj
a2dyb3VuZCgpKTsKIAogICAgIEZsb2F0UmVjdCB2aWV3cG9ydCA9IG1fdXNlclZpZXdwb3J0VHJh
bnNmb3JtLm1hcFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBtX2V3a1ZpZXctPmRldmljZVNpemUo
KSkpOwotICAgIHNjZW5lLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zvcm1Ub1NjZW5l
KCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAvKiBvcGFjaXR5ICovIDEsIHZpZXdwb3J0KTsK
KyAgICBGbG9hdFBvaW50IHVpUG9zaXRpb24obV9ld2tWaWV3LT5wYWdlUG9zaXRpb24oKSk7Cisg
ICAgdWlQb3NpdGlvbi5zY2FsZSgxIC8gbV9ld2tWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSwgMSAv
IG1fZXdrVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkpOworICAgIHNjZW5lLT5wYWludFRvQ3VycmVu
dEdMQ29udGV4dCh0cmFuc2Zvcm1Ub1NjZW5lKCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAv
KiBvcGFjaXR5ICovIDEsIHZpZXdwb3J0LCB1aVBvc2l0aW9uKTsKIH0KIAogdm9pZCBXZWJWaWV3
OjpwYWludFRvQ2Fpcm9TdXJmYWNlKGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VTR05vZGUuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNHTm9kZS5jcHAKaW5kZXggMDAyZDAw
NTA3YTRkYTYyYmY0YzhkNDllNTMzZTMxMDRjN2ExMjY3MC4uMTFhZGQ5YjhjMmQ4NzhjODM1MTQ1
YmM3ZTZlMjIyYzYzNDgyODlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0V2ViUGFnZVNHTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0V2ViUGFnZVNHTm9kZS5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgICAgICBi
b29sIG1pcnJvcmVkID0gcHJvamVjdGlvbiAmJiAoKnByb2plY3Rpb24pKDAsIDApICogKCpwcm9q
ZWN0aW9uKSgxLCAxKSAtICgqcHJvamVjdGlvbikoMCwgMSkgKiAoKnByb2plY3Rpb24pKDEsIDAp
ID4gMDsKIAogICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBub24tcmVjdGFuZ3VsYXIgY2xpcHBp
bmdzLgotICAgICAgICBjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKS0+cGFpbnRUb0N1cnJlbnRH
TENvbnRleHQocmVuZGVyTWF0cml4LCBpbmhlcml0ZWRPcGFjaXR5KCksIGNsaXBSZWN0KCksIG1p
cnJvcmVkID8gVGV4dHVyZU1hcHBlcjo6UGFpbnRpbmdNaXJyb3JlZCA6IDApOworICAgICAgICBj
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKS0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQocmVuZGVy
TWF0cml4LCBpbmhlcml0ZWRPcGFjaXR5KCksIGNsaXBSZWN0KCksIHBhZ2VOb2RlKCktPnNjcm9s
bFBvc2l0aW9uKCksIG1pcnJvcmVkID8gVGV4dHVyZU1hcHBlcjo6UGFpbnRpbmdNaXJyb3JlZCA6
IDApOwogICAgIH0KIAogICAgIH5Db250ZW50c1NHTm9kZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlU0dOb2RlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRXZWJQYWdlU0dOb2RlLmgKaW5kZXggNzdhZDgxYjZmYzI1ZDZjODY3MWFk
MTk2ZGQxMWY0OGE4MDljZmNiZS4uYjE0YzMyMDhkOTY5MDk1YzEyZTUxOTBkYjI4ZTJhZmZkODgw
MWNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVNH
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VTR05vZGUu
aApAQCAtNDEsNiArNDEsOCBAQCBjbGFzcyBRdFdlYlBhZ2VTR05vZGUgOiBwdWJsaWMgUVNHVHJh
bnNmb3JtTm9kZSB7CiAgICAgcHVibGljOgogICAgICAgICBRdFdlYlBhZ2VTR05vZGUoKTsKICAg
ICAgICAgdm9pZCBzZXRCYWNrZ3JvdW5kKGNvbnN0IFFSZWN0RiYsIGNvbnN0IFFDb2xvciYpOwor
ICAgICAgICBjb25zdCBRUG9pbnRGJiBzY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
c2Nyb2xsUG9zaXRpb247IH0KKyAgICAgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBR
UG9pbnRGJiBzY3JvbGxQb3NpdGlvbikgeyBtX3Njcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRp
b247IH0KICAgICAgICAgdm9pZCBzZXRTY2FsZShmbG9hdCk7CiAgICAgICAgIHZvaWQgc2V0Q29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lKFBhc3NSZWZQdHI8V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lPik7CiAgICAgICAgIHFyZWFsIGRldmljZVBpeGVsUmF0aW8oKSBjb25zdCB7IHJl
dHVybiBtX2RldmljZVBpeGVsUmF0aW87IH0KQEAgLTQ5LDYgKzUxLDcgQEAgY2xhc3MgUXRXZWJQ
YWdlU0dOb2RlIDogcHVibGljIFFTR1RyYW5zZm9ybU5vZGUgewogICAgIHByaXZhdGU6CiAgICAg
ICAgIENvbnRlbnRzU0dOb2RlKiBtX2NvbnRlbnRzTm9kZTsKICAgICAgICAgUVNHU2ltcGxlUmVj
dE5vZGUqIG1fYmFja2dyb3VuZE5vZGU7CisgICAgICAgIFFQb2ludEYgbV9zY3JvbGxQb3NpdGlv
bjsKICAgICAgICAgcXJlYWwgbV9kZXZpY2VQaXhlbFJhdGlvOwogfTsKIAo=
</data>
<flag name="review"
          id="213362"
          type_id="1"
          status="-"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>