<?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>101701</bug_id>
          
          <creation_ts>2012-11-08 21:01:41 -0800</creation_ts>
          <short_desc>Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.</short_desc>
          <delta_ts>2013-10-02 12:28:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>103217</dependson>
          <blocked>101705</blocked>
    
    <blocked>101818</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Dongseong Hwang">dongseong.hwang</assigned_to>
          <cc>cdumez</cc>
    
    <cc>noam</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>762507</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-08 21:01:41 -0800</bug_when>
    <thetext>Currently, all subclasses of TextureMapperPlatformLayer implement
paintToTextureMapper to draw its own texture on the given targetRect. Subclasses
can scale the texture to fit the size of the targetRect. However, only
CoordinatedBackingStore::paintToTextureMapper draws its texture using its own
texture size. There is no bug yet, because TextureMapperLayer uses
CoordinatedBackingStore only as a backing store, not a content layer. So,
TextureMapperLayer always request CoordinatedBackingStore to draw using its own
texture size. However, we can use CoordinatedBackingStore as a content layer in
the future. So this patch fixes this potential bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762514</commentid>
    <comment_count>1</comment_count>
      <attachid>173193</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-08 21:07:03 -0800</bug_when>
    <thetext>Created attachment 173193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762520</commentid>
    <comment_count>2</comment_count>
      <attachid>173193</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-08 21:15:57 -0800</bug_when>
    <thetext>Comment on attachment 173193
Patch

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

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:384
&gt; +    backingStore-&gt;setSize(backingSize);

We can know backingSize via following code.

GraphicsLayer* layer = layerByID(layerID);
backingStore-&gt;setSize(layer-&gt;size());

However, I change the CreateTile message containing a backingSize.
There are two reasons.
1. It is not strange. Currently the CreateTile message plays two roles: createTile and createTiledBackingStore.
We piggyback creating backing on the CreateTile message. If a createTiledBackingStore message exists, it is not strange containing a backingSize.

2. Currently, layer-&gt;size() equals the backingSize logically, but it is fragile. Moreover, it heavily depends on CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() implementation detail.
 CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() calls syncLayerState() before updateContentBuffers(). If the order is reversed, we can not get the latest layer-&gt;size() at this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762521</commentid>
    <comment_count>3</comment_count>
      <attachid>173193</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-08 21:17:53 -0800</bug_when>
    <thetext>Comment on attachment 173193
Patch

Attachment 173193 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14777280</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762522</commentid>
    <comment_count>4</comment_count>
      <attachid>173193</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-08 21:18:43 -0800</bug_when>
    <thetext>Comment on attachment 173193
Patch

Attachment 173193 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14762978</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762529</commentid>
    <comment_count>5</comment_count>
      <attachid>173197</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-08 21:27:21 -0800</bug_when>
    <thetext>Created attachment 173197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762534</commentid>
    <comment_count>6</comment_count>
      <attachid>173199</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-08 21:31:56 -0800</bug_when>
    <thetext>Created attachment 173199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762539</commentid>
    <comment_count>7</comment_count>
      <attachid>173199</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-08 21:42:07 -0800</bug_when>
    <thetext>Comment on attachment 173199
Patch

In this patch, I fixes build fail. And one more thing.

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

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:170
&gt; +    adjustedTransform.multiply(TransformationMatrix::rectToRect(rectOnContents, targetRect));

This patch change here.

Currently, understanding CoordinatedBackingStore is not easy because of m_scale. Each tile has m_rect on the contents coordinate system, so its texture size is not m_rect.size().
In summary, everything is fine if we always use the contents coordinate system with arguments and return values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762635</commentid>
    <comment_count>8</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-08 23:54:13 -0800</bug_when>
    <thetext>I found a bug. I&apos;ll fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762651</commentid>
    <comment_count>9</comment_count>
      <attachid>173224</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-09 00:20:11 -0800</bug_when>
    <thetext>Created attachment 173224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762652</commentid>
    <comment_count>10</comment_count>
      <attachid>173224</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-09 00:21:55 -0800</bug_when>
    <thetext>Comment on attachment 173224
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.cpp:91
&gt; +        m_client-&gt;createTile(m_ID, updateInfo, m_rect, m_tiledBackingStore-&gt;rect().size());

The previous patch used tile&apos;s rect instead of tiledBackingStore&apos;s rect. I made a mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763003</commentid>
    <comment_count>11</comment_count>
      <attachid>173224</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-09 07:31:35 -0800</bug_when>
    <thetext>Comment on attachment 173224
Patch

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

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:130
&gt; +        tile-&gt;paint(textureMapper, transform, opacity, mask, edgesExposed);

Since we now have the entire surfaceRect, we should be able to antialias the edge-tiles. But we can do this at a different patch. Can you add a FIXME?

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:174
&gt; +    IntRect rectOnContents = mapToContents(IntRect(IntPoint::zero(), m_size), m_scale);

Shouldn&apos;t this be FloatRects?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763440</commentid>
    <comment_count>12</comment_count>
      <attachid>173394</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-09 16:25:18 -0800</bug_when>
    <thetext>Created attachment 173394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763446</commentid>
    <comment_count>13</comment_count>
      <attachid>173394</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-09 16:28:27 -0800</bug_when>
    <thetext>Comment on attachment 173394
Patch

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

Thank you for review!

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:167
&gt; +    // FIXME: When the TextureMapper makes a distinction between some edges exposed and no edges

Changed FIXME.
We can do it because we know the entire size of the backing now.
We will do it in another bug as you mentioned :)

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:174
&gt; +    FloatRect rectOnContents = mapToContents(IntRect(IntPoint::zero(), m_size), m_scale);

Changed FloatRect from IntRect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763479</commentid>
    <comment_count>14</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-09 17:12:21 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:167
&gt; &gt; +    // FIXME: When the TextureMapper makes a distinction between some edges exposed and no edges
&gt; 
&gt; Changed FIXME.
&gt; We can do it because we know the entire size of the backing now.
&gt; We will do it in another bug as you mentioned :)

I posted the patch to fix in Bug 101818.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763539</commentid>
    <comment_count>15</comment_count>
      <attachid>173394</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 18:32:52 -0800</bug_when>
    <thetext>Comment on attachment 173394
Patch

Clearing flags on attachment: 173394

Committed r134142: &lt;http://trac.webkit.org/changeset/134142&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763540</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 18:32:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764815</commentid>
    <comment_count>17</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-12 14:16:49 -0800</bug_when>
    <thetext>This is creating issues with pixel tests; I think it breaks tiling implicit behavior. We should attempt to fix or roll out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774840</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-24 08:54:55 -0800</bug_when>
    <thetext>If you open the following URL:
http://www.robohornet.org

8 times out of 10, you will hit an ASSERT introduced in this patch:
ASSERTION FAILED: !m_size.isZero()
/home/chris/unencrypted/WebKit/Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp(170) : virtual void WebKit::CoordinatedBackingStore::paintToTextureMapper(WebCore::TextureMapper*, const WebCore::FloatRect&amp;, const WebCore::TransformationMatrix&amp;, float, WebCore::BitmapTexture*)
1   0x7ff4b8d52473 WebKit::CoordinatedBackingStore::paintToTextureMapper(WebCore::TextureMapper*, WebCore::FloatRect const&amp;, WebCore::TransformationMatrix const&amp;, float, WebCore::BitmapTexture*)
2   0x7ff4b50accea WebCore::TextureMapperLayer::paintSelf(WebCore::TextureMapperPaintOptions const&amp;)
3   0x7ff4b50acddb WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&amp;)
4   0x7ff4b50ad71d WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&amp;)
5   0x7ff4b50ad84f WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&amp;)
6   0x7ff4b50acf47 WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&amp;)
7   0x7ff4b50ad71d WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&amp;)
8   0x7ff4b50ad84f WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&amp;)
9   0x7ff4b50acf47 WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&amp;)
10  0x7ff4b50ad71d WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&amp;)
11  0x7ff4b50ad84f WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&amp;)
12  0x7ff4b50acf47 WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&amp;)
13  0x7ff4b50ad71d WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&amp;)
14  0x7ff4b50ad84f WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&amp;)
15  0x7ff4b50acf47 WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&amp;)
16  0x7ff4b50ad71d WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&amp;)
17  0x7ff4b50ad84f WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&amp;)
18  0x7ff4b50acf47 WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&amp;)
19  0x7ff4b50ad71d WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&amp;)
20  0x7ff4b50ad84f WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&amp;)
21  0x7ff4b50ac8b9 WebCore::TextureMapperLayer::paint()
22  0x7ff4b8d60455 WebKit::LayerTreeRenderer::paintToCurrentGLContext(WebCore::TransformationMatrix const&amp;, float, WebCore::FloatRect const&amp;, unsigned int)
23  0x7ff4b8e8e572 EwkViewImpl::displayTimerFired(WebCore::Timer&lt;EwkViewImpl&gt;*)
24  0x7ff4b8e95ae8 WebCore::Timer&lt;EwkViewImpl&gt;::fired()
25  0x7ff4b5021fea WebCore::ThreadTimers::sharedTimerFiredInternal()
26  0x7ff4b5021f0b WebCore::ThreadTimers::sharedTimerFired()
27  0x7ff4b5a32175
28  0x7ff4b94fb46e _ecore_timer_expired_call
29  0x7ff4b94fb63b _ecore_timer_expired_timers_call
30  0x7ff4b94f8551
31  0x7ff4b94f8be7 ecore_main_loop_begin</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173193</attachid>
            <date>2012-11-08 21:07:03 -0800</date>
            <delta_ts>2012-11-08 21:27:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101701-20121109140458.patch</filename>
            <type>text/plain</type>
            <size>22701</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QxYThhM2I0ZjNhZGEx
NTcxMGNlOTk0YjBlOTUwZTc5YWRhMTI0NC4uMGY4NGJlODNkN2JiZDYyZGJhYWFjNGIxODBjMDc2
YzZiMzE0NDQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDEyLTExLTA4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBBbWVuZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1
cmVNYXBwZXIgdG8gZml0IGl0cyBvd24gc2VtYW50aWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgVGlsZWRCYWNraW5nU3RvcmU6OnJlY3QoKSBi
ZWNhdXNlIENvb3JkaW5hdGVkVGlsZSBuZWVkcyB0byBrbm93CisgICAgICAgIG1fcmVjdCBvZiBU
aWxlZEJhY2tpbmdTdG9yZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFj
a2luZ1N0b3JlLmg6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZTo6cmVjdCk6
CisKKzIwMTItMTEtMDggIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+
CisKICAgICAgICAgW1RleE1hcF0gSW5pdGlhbGl6ZSBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0
ciBpbiBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci4KICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY3NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjBlN2MyMDNh
ZWVhZWU2YjI0MDliYTI0ZTIxYzUyMmZlMWJjZjgzNC4uYjQxNjAxZGEzYzQ2ODNkZTA4ZjhmZjIw
MDY5NmNjMzMwYjA4NjE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDEyLTExLTA4
ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENv
b3JkaW5hdGVkIEdyYXBoaWNzOiBBbWVuZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRU
b1RleHR1cmVNYXBwZXIgdG8gZml0IGl0cyBvd24gc2VtYW50aWMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIGFsbCBzdWJjbGFzc2Vz
IG9mIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyIGltcGxlbWVudAorICAgICAgICBwYWludFRv
VGV4dHVyZU1hcHBlciB0byBkcmF3IGl0cyBvd24gdGV4dHVyZSBvbiB0aGUgZ2l2ZW4gdGFyZ2V0
UmVjdC4gU3ViY2xhc3NlcworICAgICAgICBjYW4gc2NhbGUgdGhlIHRleHR1cmUgdG8gZml0IHRo
ZSBzaXplIG9mIHRoZSB0YXJnZXRSZWN0LiBIb3dldmVyLCBvbmx5CisgICAgICAgIENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlciBkcmF3cyBpdHMgdGV4dHVyZSB1
c2luZyBpdHMgb3duCisgICAgICAgIHRleHR1cmUgc2l6ZS4gVGhlcmUgaXMgbm8gYnVnIHlldCwg
YmVjYXVzZSBUZXh0dXJlTWFwcGVyTGF5ZXIgdXNlcworICAgICAgICBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZSBvbmx5IGFzIGEgYmFja2luZyBzdG9yZSwgbm90IGEgY29udGVudCBsYXllci4gU28s
CisgICAgICAgIFRleHR1cmVNYXBwZXJMYXllciBhbHdheXMgcmVxdWVzdCBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZSB0byBkcmF3IHVzaW5nIGl0cyBvd24KKyAgICAgICAgdGV4dHVyZSBzaXplLiBI
b3dldmVyLCB3ZSBjYW4gdXNlIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIGFzIGEgY29udGVudCBs
YXllciBpbgorICAgICAgICB0aGUgZnV0dXJlLiBTbyB0aGlzIHBhdGNoIGZpeGVzIHRoaXMgcG90
ZW50aWFsIGJ1Zy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRC
YWNraW5nU3RvcmU6OnNldFNpemUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktp
dDo6cGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcik6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5h
dGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcik6CisgICAgICAgICogVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaDoKKyAgICAg
ICAgKENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlVGlsZUZvckxheWVyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
clByb3h5Lmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvclByb3h5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6
OmNyZWF0ZVRpbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgIChMYXllclRyZWVSZW5kZXJlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6Y3JlYXRlVGlsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgIChDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJDbGllbnQpOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZFRpbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZFRpbGU6OkNvb3Jk
aW5hdGVkVGlsZSk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkVGlsZTo6dXBkYXRlQmFj
a0J1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRUaWxlLmg6CisgICAgICAgIChDb29yZGluYXRlZFRpbGVDbGllbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6
OmNyZWF0ZVRpbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGlu
YXRvcik6CisKKzIwMTItMTEtMDggIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEw
MC5uZXQ+CisKICAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IERvbid0IHNlbmQgdGhlIG1l
c3NhZ2VzIGZvciByZWxlYXNpbmcgcmVzb3VyY2VzIGR1cmluZyBwdXJnaW5nLgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjg1CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5oCmlu
ZGV4IGIzYzM2NWMzNTljZTI2MWQ5OWFlYTg0YWQ4Y2U1NjVjMWNhODdlNGQuLjY1MWYyY2Q3YmI3
MmMxYTYwMGY3NTY0MjI5ODA4M2Q3YmU5NGI0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaApAQCAtNzIsNiArNzIsNyBA
QCBwdWJsaWM6CiAgICAgVGlsZTo6Q29vcmRpbmF0ZSB0aWxlQ29vcmRpbmF0ZUZvclBvaW50KGNv
bnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgZG91YmxlIHRpbGVEaXN0YW5jZShjb25zdCBJbnRS
ZWN0JiB2aWV3cG9ydCwgY29uc3QgVGlsZTo6Q29vcmRpbmF0ZSYpIGNvbnN0OwogCisgICAgSW50
UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9CiAgICAgSW50UmVjdCBjb3ZlclJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX2NvdmVyUmVjdDsgfQogICAgIGJvb2wgdmlzaWJsZUFyZWFJ
c0NvdmVyZWQoKSBjb25zdDsKICAgICB2b2lkIHJlbW92ZUFsbE5vblZpc2libGVUaWxlcygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDdjYjk4
NDJjZjlkNDgzN2Y2NDIzYjkwNTNiNGI2NWY3MDA1ZjExMTAuLmYxZDlkMTUxYzkyZjFiZmViNmZm
MDRmMjc1ZGU2NWQwZGRiZmI4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJh
Y2tpbmdTdG9yZS5jcHAKQEAgLTEwMSw2ICsxMDEsMTEgQEAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0
dXJlPiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSgpIGNvbnN0CiAgICAgcmV0dXJu
IFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4oKTsKIH0KIAordm9pZCBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZTo6c2V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCit7CisgICAg
bV9zaXplID0gc2l6ZTsKK30KKwogc3RhdGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3Vh
bHMoKQogewogI2lmIFBMQVRGT1JNKFFUKQpAQCAtMTA5LDkgKzExNCwyNCBAQCBzdGF0aWMgYm9v
bCBzaG91bGRTaG93VGlsZURlYnVnVmlzdWFscygpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12
b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJl
TWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIC8qIHRhcmdldFJlY3QgKi8s
IGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJp
dG1hcFRleHR1cmUqIG1hc2spCitzdGF0aWMgdm9pZCBwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVy
KFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+JiB0aWxlcywgVGV4dHVyZU1hcHBlciogdGV4dHVy
ZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3Bh
Y2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaywgdW5zaWduZWQgZWRnZXNFeHBvc2VkKQoreworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGlsZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgVGV4
dHVyZU1hcHBlclRpbGUqIHRpbGUgPSB0aWxlc1tpXTsKKyAgICAgICAgdGlsZS0+cGFpbnQodGV4
dHVyZU1hcHBlciwgdHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrLCBlZGdlc0V4cG9zZWQpOworICAg
ICAgICBzdGF0aWMgYm9vbCBzaG91bGREZWJ1ZyA9IHNob3VsZFNob3dUaWxlRGVidWdWaXN1YWxz
KCk7CisgICAgICAgIGlmICghc2hvdWxkRGVidWcpCisgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3Qm9yZGVyKENvbG9yKDB4RkYsIDAsIDApLCAyLCB0
aWxlLT5yZWN0KCksIHRyYW5zZm9ybSk7CisgICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdSZXBh
aW50Q291bnRlcihzdGF0aWNfY2FzdDxDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUqPih0aWxl
KS0+cmVwYWludENvdW50KCksIDgsIHRpbGVzW2ldLT5yZWN0KCkubG9jYXRpb24oKSwgdHJhbnNm
b3JtKTsKKyAgICB9Cit9CisKK3ZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50VG9U
ZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgZmxv
YXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaykKIHsKICAgICBWZWN0b3I8VGV4dHVyZU1h
cHBlclRpbGUqPiB0aWxlc1RvUGFpbnQ7CisgICAgVmVjdG9yPFRleHR1cmVNYXBwZXJUaWxlKj4g
cHJldmlvdXNUaWxlc1RvUGFpbnQ7CiAKICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgZXZlcnkg
dGltZSB3ZSBwYWludCwgaW4gY2FzZSB0aGUgb3BhY2l0eSBoYXMgY2hhbmdlZC4KICAgICBIYXNo
TWFwPGludCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6aXRlcmF0b3IgZW5kID0gbV90
aWxlcy5lbmQoKTsKQEAgLTEzMiw3ICsxNTIsNyBAQCB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0
b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLAog
ICAgICAgICBpZiAob3BhY2l0eSA8IDAuOTUgJiYgY292ZXJlZFJlY3QuaW50ZXJzZWN0cyh0aWxl
LnJlY3QoKSkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICB0aWxlc1RvUGFpbnQu
cHJlcGVuZCgmdGlsZSk7CisgICAgICAgIHByZXZpb3VzVGlsZXNUb1BhaW50LmFwcGVuZCgmdGls
ZSk7CiAgICAgfQogCiAgICAgLy8gVE9ETzogV2hlbiB0aGUgVGV4dHVyZU1hcHBlciBtYWtlcyBh
IGRpc3RpbmN0aW9uIGJldHdlZW4gc29tZSBlZGdlcyBleHBvc2VkIGFuZCBubyBlZGdlcwpAQCAt
MTQwLDE2ICsxNjAsMTQgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1Rl
eHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwKICAgICAvLyBwYXNzaW5n
LiBGb3Igbm93IHdlIGp1c3QgImVzdGltYXRlIiBzaW5jZSBDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZSBkb2Vzbid0IGtlZXAgaW5mb3JtYXRpb24gYWJvdXQKICAgICAvLyB0aGUgdG90YWwgdGlsZWQg
c3VyZmFjZSByZWN0IGF0IHRoZSBtb21lbnQuCiAgICAgdW5zaWduZWQgZWRnZXNFeHBvc2VkID0g
bV90aWxlcy5zaXplKCkgPiAxID8gVGV4dHVyZU1hcHBlcjo6Tm9FZGdlcyA6IFRleHR1cmVNYXBw
ZXI6OkFsbEVkZ2VzOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGlsZXNUb1BhaW50LnNp
emUoKTsgKytpKSB7Ci0gICAgICAgIFRleHR1cmVNYXBwZXJUaWxlKiB0aWxlID0gdGlsZXNUb1Bh
aW50W2ldOwotICAgICAgICB0aWxlLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0sIG9w
YWNpdHksIG1hc2ssIGVkZ2VzRXhwb3NlZCk7Ci0gICAgICAgIHN0YXRpYyBib29sIHNob3VsZERl
YnVnID0gc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKTsKLSAgICAgICAgaWYgKCFzaG91bGRE
ZWJ1ZykKLSAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHRleHR1cmVNYXBwZXItPmRy
YXdCb3JkZXIoQ29sb3IoMHhGRiwgMCwgMCksIDIsIHRpbGUtPnJlY3QoKSwgdHJhbnNmb3JtKTsK
LSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd1JlcGFpbnRDb3VudGVyKHN0YXRpY19jYXN0PENv
b3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSo+KHRpbGUpLT5yZXBhaW50Q291bnQoKSwgOCwgdGls
ZXNUb1BhaW50W2ldLT5yZWN0KCkubG9jYXRpb24oKSwgdHJhbnNmb3JtKTsKLSAgICB9CisgICAg
QVNTRVJUKCFtX3NpemUuaXNaZXJvKCkpOworICAgIEZsb2F0UmVjdCByZWN0KEZsb2F0UG9pbnQ6
Onplcm8oKSwgbV9zaXplKTsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhZGp1c3RlZFRyYW5z
Zm9ybSA9IHRyYW5zZm9ybTsKKyAgICBhZGp1c3RlZFRyYW5zZm9ybS5tdWx0aXBseShUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdChyZWN0LCB0YXJnZXRSZWN0KSk7CisKKyAgICBwYWlu
dFRpbGVzVG9UZXh0dXJlTWFwcGVyKHByZXZpb3VzVGlsZXNUb1BhaW50LCB0ZXh0dXJlTWFwcGVy
LCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgZWRnZXNFeHBvc2VkKTsKKyAgICBw
YWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKHRpbGVzVG9QYWludCwgdGV4dHVyZU1hcHBlciwgYWRq
dXN0ZWRUcmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGVkZ2VzRXhwb3NlZCk7CiB9CiAKIHZvaWQg
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmNvbW1pdFRpbGVPcGVyYXRpb25zKFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmUuaAppbmRleCBmZTZlNGFhMTViYzZjMDZjMzhjMWIwNjkyMjUwMzJkY2I5ZDNlMjBiLi5kYzU0
ZmVkN2Y1MmRkZmE5OWJhNGUxZDkxMWI4Yjk4Y2NmYTYxMDFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUpOyB9CiAgICAgdm9pZCBj
b21taXRUaWxlT3BlcmF0aW9ucyhXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKik7CiAgICAgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlKCkgY29uc3Q7CisgICAgdm9pZCBz
ZXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dFRvVGV4dHVyZU1hcHBlcihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCwg
V2ViQ29yZTo6Qml0bWFwVGV4dHVyZSopOwogCiBwcml2YXRlOgpAQCAtNzIsNiArNzMsNyBAQCBw
cml2YXRlOgogICAgIHsgfQogICAgIEhhc2hNYXA8aW50LCBDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZVRpbGU+IG1fdGlsZXM7CiAgICAgSGFzaFNldDxpbnQ+IG1fdGlsZXNUb1JlbW92ZTsKKyAgICBX
ZWJDb3JlOjpGbG9hdFNpemUgbV9zaXplOwogICAgIGZsb2F0IG1fc2NhbGU7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDFkNmU1
YWVmZTRiMmYyYzMxMzc2ZDRmYjBlNzc0Y2IxZjUyNzcyODIuLjBlMjliN2RjZGQ3MWJiNmVhNWZm
NmM5YTE3NWRiZDdiZGVlNmQ4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHkuY3BwCkBAIC01Niw5ICs1Niw5IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eTo6ZGlzcGF0Y2hVcGRhdGUoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rp
b24pCiAgICAgbV9yZW5kZXJlci0+YXBwZW5kVXBkYXRlKGZ1bmN0aW9uKTsKIH0KIAotdm9pZCBM
YXllclRyZWVDb29yZGluYXRvclByb3h5OjpjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQs
IGludCB0aWxlSUQsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYktpdDo6U3Vy
ZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHk6OmNyZWF0ZVRpbGVGb3JMYXllcihpbnQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2lu
Z1NpemUsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiB7Ci0g
ICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUsIG1f
cmVuZGVyZXIuZ2V0KCksIGxheWVySUQsIHRpbGVJRCwgdXBkYXRlSW5mby5zY2FsZUZhY3Rvcikp
OworICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxl
LCBtX3JlbmRlcmVyLmdldCgpLCBsYXllcklELCB0aWxlSUQsIHVwZGF0ZUluZm8uc2NhbGVGYWN0
b3IsIGJhY2tpbmdTaXplKSk7CiAgICAgdXBkYXRlVGlsZUZvckxheWVyKGxheWVySUQsIHRpbGVJ
RCwgdGFyZ2V0UmVjdCwgdXBkYXRlSW5mbyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkuaAppbmRleCA2NDY4MDExNjhmMjRhNzg5YjdlYjgwNzFjZjRi
NmY4YTRjNGZiOTdhLi40ODdiNTdkNzQ4N2YzNTNlZDgwZDU1OTkzMmEyM2RiOTZiNjhmZmZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCkBAIC02Miw3
ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiwgZmxvYXQgc2NhbGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHRyYWplY3RvcnlWZWN0b3IpOwogICAgIHZvaWQgZGlkUmVuZGVyRnJhbWUoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb3ZlcmVk
UmVjdCk7Ci0gICAgdm9pZCBjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGludCB0aWxl
SUQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYpOwor
ICAgIHZvaWQgY3JlYXRlVGlsZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlELCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBi
YWNraW5nU2l6ZSwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mKTsKICAgICB2b2lkIHVwZGF0ZVRp
bGVGb3JMYXllcihpbnQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJik7CiAgICAgdm9pZCByZW1vdmVUaWxlRm9yTGF5
ZXIoaW50IGxheWVySUQsIGludCB0aWxlSUQpOwogICAgIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXMo
aW50IGF0bGFzSUQsIGNvbnN0IFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZSYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggYmE4OGRlNTNmZjMzZTQ1ZjFkMDg4YTNkMjA1NTcwYTQwZmQ0YjU2Ny4uOTJiYjdhNjdm
ODUwMzZlY2QwNThhM2VjMThiMmU3NzgzNjBjNGU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNiw3ICsy
Niw3IEBAIG1lc3NhZ2VzIC0+IExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkgewogI2VuZGlmCiAg
ICAgU2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIodWludDMyX3QgaWQpCiAgICAgRGVsZXRlQ29tcG9z
aXRpbmdMYXllcih1aW50MzJfdCBpZCkKLSAgICBDcmVhdGVUaWxlRm9yTGF5ZXIodWludDMyX3Qg
bGF5ZXJJRCwgaW50IHRpbGVJRCwgV2ViQ29yZTo6SW50UmVjdCB0YXJnZXRSZWN0LCBXZWJLaXQ6
OlN1cmZhY2VVcGRhdGVJbmZvIHVwZGF0ZUluZm8pCisgICAgQ3JlYXRlVGlsZUZvckxheWVyKHVp
bnQzMl90IGxheWVySUQsIGludCB0aWxlSUQsIFdlYkNvcmU6OkludFJlY3QgdGFyZ2V0UmVjdCwg
V2ViQ29yZTo6SW50U2l6ZSBiYWNraW5nU2l6ZSwgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyB1
cGRhdGVJbmZvKQogICAgIFVwZGF0ZVRpbGVGb3JMYXllcih1aW50MzJfdCBsYXllcklELCBpbnQg
dGlsZUlELCBXZWJDb3JlOjpJbnRSZWN0IHRhcmdldFJlY3QsIFdlYktpdDo6U3VyZmFjZVVwZGF0
ZUluZm8gdXBkYXRlSW5mbykKICAgICBSZW1vdmVUaWxlRm9yTGF5ZXIodWludDMyX3QgbGF5ZXJJ
RCwgaW50IHRpbGVJRCkKICAgICBDcmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgV2ViS2l0
OjpTaGFyZWFibGVTdXJmYWNlOjpIYW5kbGUgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuY3BwCmluZGV4IGE4MjhiNzdhMGZkN2JkNjVlYTg5ZjY0NmU2MGU4OTZjYWQ1MTZi
NjcuLjdjNTdkZTI0NTMzN2U4MmE0MGM1Mjg5ZDQ4YTk2MjZlMjUyMzIxYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJl
bmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKQEAgLTM3Nyw5ICszNzcsMTEgQEAgdm9pZCBMYXll
clRyZWVSZW5kZXJlcjo6cmVtb3ZlQmFja2luZ1N0b3JlSWZOZWVkZWQoV2ViTGF5ZXJJRCBsYXll
cklELCBpbnQgdGlsZUkKICAgICAgICAgbGF5ZXItPnNldEJhY2tpbmdTdG9yZSgwKTsKIH0KIAot
dm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGlu
dCB0aWxlSUQsIGZsb2F0IHNjYWxlKQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGls
ZShXZWJMYXllcklEIGxheWVySUQsIGludCB0aWxlSUQsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBiYWNraW5nU2l6ZSkKIHsKLSAgICBnZXRCYWNraW5nU3RvcmUobGF5ZXJJ
RCktPmNyZWF0ZVRpbGUodGlsZUlELCBzY2FsZSk7CisgICAgUmVmUHRyPENvb3JkaW5hdGVkQmFj
a2luZ1N0b3JlPiBiYWNraW5nU3RvcmUgPSBnZXRCYWNraW5nU3RvcmUobGF5ZXJJRCk7CisgICAg
YmFja2luZ1N0b3JlLT5jcmVhdGVUaWxlKHRpbGVJRCwgc2NhbGUpOworICAgIGJhY2tpbmdTdG9y
ZS0+c2V0U2l6ZShiYWNraW5nU2l6ZSk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJl
bW92ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVy
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZVJlbmRlcmVyLmgKaW5kZXggMWRjY2JiY2Y5M2RmZTA4NmE1ZTFmOGU2OWQ2NzBiMWQ2Yzg3
NmU2Mi4uMzhiOTgzNzEyYWE5NDExYTVhOGJmYjdlOTYzYmRlNWJkOTQ0Zjg5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVSZW5kZXJlci5oCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldExheWVyRmlsdGVycyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVy
YXRpb25zJik7CiAjZW5kaWYKIAotICAgIHZvaWQgY3JlYXRlVGlsZShXZWJMYXllcklELCBpbnQs
IGZsb2F0IHNjYWxlKTsKKyAgICB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50LCBmbG9h
dCBzY2FsZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgcmVtb3ZlVGlsZShX
ZWJMYXllcklELCBpbnQpOwogICAgIHZvaWQgdXBkYXRlVGlsZShXZWJMYXllcklELCBpbnQsIGNv
bnN0IFRpbGVVcGRhdGUmKTsKICAgICB2b2lkIGZsdXNoTGF5ZXJDaGFuZ2VzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cAppbmRleCBjNTZjMjg1ODYzOTlkM2EyYzM2OTdhNzY2MWViOTdkMWNjZTc4ZTg3Li5lMGE0MTI0
ZThlYjJlMzJhYWVhY2JjY2EwZDM0YmEwZWQ0NjBkMjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTY0MSw5
ICs2NDEsOSBAQCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpiZWdpbkNvbnRlbnRVcGRhdAogICAgIHJldHVybiBtX0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllckNsaWVudC0+YmVnaW5Db250ZW50VXBkYXRlKHNpemUsIGNvbnRlbnRz
T3BhcXVlKCkgPyAwIDogU2hhcmVhYmxlQml0bWFwOjpTdXBwb3J0c0FscGhhLCBhdGxhcywgb2Zm
c2V0KTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZVRpbGUoaW50
IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IEludFJl
Y3QmIHRhcmdldFJlY3QpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlVGls
ZShpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbywgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFj
a2luZ1NpemUpCiB7Ci0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmNyZWF0
ZVRpbGUoaWQoKSwgdGlsZUlELCB1cGRhdGVJbmZvLCB0YXJnZXRSZWN0KTsKKyAgICBtX0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+Y3JlYXRlVGlsZShpZCgpLCB0aWxlSUQsIHVwZGF0
ZUluZm8sIHRhcmdldFJlY3QsIGJhY2tpbmdTaXplKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnVwZGF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUlu
Zm8mIHVwZGF0ZUluZm8sIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IDEx
ODhhYTc1ZmI3NzgyOWJiMjFjOThlZGYwZDcwZmIyMjU1MDFlMmYuLjAyNjhmMjJkNTdjMjU1OTU5
NThiYmFjYTQwY2QxNDYzNDQ3NzM5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50IHsKIHB1
YmxpYzoKICAgICAvLyBDb29yZGluYXRlZFRpbGVDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRp
bGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBi
YWNraW5nU2l6ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKFdlYkxheWVySUQs
IGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShXZWJMYXllcklELCBpbnQg
dGlsZUlEKSA9IDA7CiAKQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBD
b2xvciB0aWxlZEJhY2tpbmdTdG9yZUJhY2tncm91bmRDb2xvcigpIGNvbnN0IE9WRVJSSURFOwog
CiAgICAgLy8gQ29vcmRpbmF0ZWRUaWxlQ2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRp
bGUoaW50IHRpbGVJRCwgY29uc3QgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IElu
dFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShpbnQgdGlsZUlE
LCBjb25zdCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgdGFyZ2V0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFdlYktp
dDo6U3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVRpbGUoaW50IHRpbGVJRCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQ
YXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IEludFNp
emUmLCBpbnQmIGF0bGFzSUQsIEludFBvaW50JikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZFRpbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmNwcAppbmRleCA1NDhkNDlkMzI3ZjAzNTUzMjc0
NmZkMmZiNTk1NWJkNjFkYThiYWM3Li43YmZhMjk3OGE5ZWVmOWViMjhlODVjODMzMmQ3ZmZlYzkx
ZTllNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5j
cHAKQEAgLTQxLDcgKzQxLDcgQEAgQ29vcmRpbmF0ZWRUaWxlOjpDb29yZGluYXRlZFRpbGUoQ29v
cmRpbmF0ZWRUaWxlQ2xpZW50KiBjbGllbnQsIFRpbGVkQmFja2luZ1N0b3IKICAgICA6IG1fY2xp
ZW50KGNsaWVudCkKICAgICAsIG1fdGlsZWRCYWNraW5nU3RvcmUodGlsZWRCYWNraW5nU3RvcmUp
CiAgICAgLCBtX2Nvb3JkaW5hdGUodGlsZUNvb3JkaW5hdGUpCi0gICAgLCBtX3JlY3QodGlsZWRC
YWNraW5nU3RvcmUtPnRpbGVSZWN0Rm9yQ29vcmRpbmF0ZSh0aWxlQ29vcmRpbmF0ZSkpCisgICAg
LCBtX3JlY3QodGlsZWRCYWNraW5nU3RvcmUtPnRhcmdldFJlY3RGb3JDb29yZGluYXRlKHRpbGVD
b29yZGluYXRlKSkKICAgICAsIG1fSUQoMCkKICAgICAsIG1fZGlydHlSZWN0KG1fcmVjdCkKIHsK
QEAgLTg4LDcgKzg4LDcgQEAgVmVjdG9yPEludFJlY3Q+IENvb3JkaW5hdGVkVGlsZTo6dXBkYXRl
QmFja0J1ZmZlcigpCiAgICAgc3RhdGljIGludCBpZCA9IDA7CiAgICAgaWYgKCFtX0lEKSB7CiAg
ICAgICAgIG1fSUQgPSArK2lkOwotICAgICAgICBtX2NsaWVudC0+Y3JlYXRlVGlsZShtX0lELCB1
cGRhdGVJbmZvLCBtX3JlY3QpOworICAgICAgICBtX2NsaWVudC0+Y3JlYXRlVGlsZShtX0lELCB1
cGRhdGVJbmZvLCBtX3JlY3QsIHJlY3QoKS5zaXplKCkpOwogICAgIH0gZWxzZQogICAgICAgICBt
X2NsaWVudC0+dXBkYXRlVGlsZShtX0lELCB1cGRhdGVJbmZvLCBtX3JlY3QpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZFRpbGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oCmluZGV4IDMyZmY0ZTdjNzkxZjJi
ZTM0YjUwMzgwMDg1NjU4Mzg2ZWUxZWM2MzguLjA2MzEzMzNkMDE3NmM2OTM0ZDI2NTYxNzdhNjJk
YmRjY2Y3ZDA4MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGls
ZS5oCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiBjbGFzcyBDb29yZGluYXRlZFRpbGVDbGll
bnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkNvb3JkaW5hdGVkVGlsZUNsaWVudCgpIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRh
dGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tp
bmdTaXplKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoaW50IHRpbGVJRCwgY29u
c3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKGludCB0aWxlSUQpID0gMDsKICAgICB2aXJ0dWFsIFBh
c3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBiZWdpbkNvbnRlbnRVcGRhdGUoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYsIGludCYgYXRsYXNJRCwgV2ViQ29yZTo6SW50UG9pbnQmKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5jcHAKaW5kZXggNGY4YzNhOTllYjY2NmYzMjA2MWRiOWNlODJkMGNjMmMyNjViNmRlYy4uZWVh
YWM5OGIzYWI3OTNlMTJiZDBlNjRlNGQwZDU3ODdkMjY1YzEwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApAQCAtNTk0LDEwICs1
OTQsMTAgQEAgYm9vbCBMYXllclRyZWVIb3N0OjpzdXBwb3J0c0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmcoKQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpj
cmVhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVw
ZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3Qp
Cit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJ
RCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJh
Y2tpbmdTaXplKQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKLSAgICBtX3dlYlBh
Z2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkNyZWF0ZVRpbGVG
b3JMYXllcihsYXllcklELCB0aWxlSUQsIHRhcmdldFJlY3QsIHVwZGF0ZUluZm8pKTsKKyAgICBt
X3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkNyZWF0
ZVRpbGVGb3JMYXllcihsYXllcklELCB0aWxlSUQsIHRhcmdldFJlY3QsIGJhY2tpbmdTaXplLCB1
cGRhdGVJbmZvKSk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnVwZGF0ZVRpbGUo
V2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYg
dXBkYXRlSW5mbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGFyZ2V0UmVjdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IDQwMTdl
MWZjNDAwNjAzMzRjODk1ZTg1YWM5NTg1Y2M4OTJkNWQ2N2QuLmFiMWU3M2ZlMDI4ZTFiMGVjYTQz
NjI4OGQ1N2U5NGQ0NjQzYzBkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBpbnQ2NF90IGFkb3B0SW1hZ2VCYWNraW5nU3RvcmUoV2ViQ29yZTo6SW1hZ2UqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUltYWdlQmFja2luZ1N0b3JlKGludDY0X3QpOwogCi0gICAg
dmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3Vy
ZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2
b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0
ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBiYWNraW5nU2l6ZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoV2Vi
TGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRpbGUoV2ViTGF5ZXJJRCwg
aW50IHRpbGVJRCk7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHZpc2libGVDb250ZW50
c1JlY3QoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173197</attachid>
            <date>2012-11-08 21:27:21 -0800</date>
            <delta_ts>2012-11-08 21:31:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101701-20121109142516.patch</filename>
            <type>text/plain</type>
            <size>22903</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QxYThhM2I0ZjNhZGEx
NTcxMGNlOTk0YjBlOTUwZTc5YWRhMTI0NC4uMGY4NGJlODNkN2JiZDYyZGJhYWFjNGIxODBjMDc2
YzZiMzE0NDQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDEyLTExLTA4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBBbWVuZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1
cmVNYXBwZXIgdG8gZml0IGl0cyBvd24gc2VtYW50aWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgVGlsZWRCYWNraW5nU3RvcmU6OnJlY3QoKSBi
ZWNhdXNlIENvb3JkaW5hdGVkVGlsZSBuZWVkcyB0byBrbm93CisgICAgICAgIG1fcmVjdCBvZiBU
aWxlZEJhY2tpbmdTdG9yZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFj
a2luZ1N0b3JlLmg6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZTo6cmVjdCk6
CisKKzIwMTItMTEtMDggIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+
CisKICAgICAgICAgW1RleE1hcF0gSW5pdGlhbGl6ZSBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0
ciBpbiBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci4KICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY3NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjBlN2MyMDNh
ZWVhZWU2YjI0MDliYTI0ZTIxYzUyMmZlMWJjZjgzNC4uYjQxNjAxZGEzYzQ2ODNkZTA4ZjhmZjIw
MDY5NmNjMzMwYjA4NjE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDEyLTExLTA4
ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENv
b3JkaW5hdGVkIEdyYXBoaWNzOiBBbWVuZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRU
b1RleHR1cmVNYXBwZXIgdG8gZml0IGl0cyBvd24gc2VtYW50aWMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIGFsbCBzdWJjbGFzc2Vz
IG9mIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyIGltcGxlbWVudAorICAgICAgICBwYWludFRv
VGV4dHVyZU1hcHBlciB0byBkcmF3IGl0cyBvd24gdGV4dHVyZSBvbiB0aGUgZ2l2ZW4gdGFyZ2V0
UmVjdC4gU3ViY2xhc3NlcworICAgICAgICBjYW4gc2NhbGUgdGhlIHRleHR1cmUgdG8gZml0IHRo
ZSBzaXplIG9mIHRoZSB0YXJnZXRSZWN0LiBIb3dldmVyLCBvbmx5CisgICAgICAgIENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlciBkcmF3cyBpdHMgdGV4dHVyZSB1
c2luZyBpdHMgb3duCisgICAgICAgIHRleHR1cmUgc2l6ZS4gVGhlcmUgaXMgbm8gYnVnIHlldCwg
YmVjYXVzZSBUZXh0dXJlTWFwcGVyTGF5ZXIgdXNlcworICAgICAgICBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZSBvbmx5IGFzIGEgYmFja2luZyBzdG9yZSwgbm90IGEgY29udGVudCBsYXllci4gU28s
CisgICAgICAgIFRleHR1cmVNYXBwZXJMYXllciBhbHdheXMgcmVxdWVzdCBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZSB0byBkcmF3IHVzaW5nIGl0cyBvd24KKyAgICAgICAgdGV4dHVyZSBzaXplLiBI
b3dldmVyLCB3ZSBjYW4gdXNlIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIGFzIGEgY29udGVudCBs
YXllciBpbgorICAgICAgICB0aGUgZnV0dXJlLiBTbyB0aGlzIHBhdGNoIGZpeGVzIHRoaXMgcG90
ZW50aWFsIGJ1Zy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRC
YWNraW5nU3RvcmU6OnNldFNpemUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktp
dDo6cGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcik6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5h
dGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcik6CisgICAgICAgICogVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaDoKKyAgICAg
ICAgKENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlVGlsZUZvckxheWVyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
clByb3h5Lmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvclByb3h5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6
OmNyZWF0ZVRpbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgIChMYXllclRyZWVSZW5kZXJlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6Y3JlYXRlVGlsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgIChDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJDbGllbnQpOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZFRpbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZFRpbGU6OkNvb3Jk
aW5hdGVkVGlsZSk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkVGlsZTo6dXBkYXRlQmFj
a0J1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRUaWxlLmg6CisgICAgICAgIChDb29yZGluYXRlZFRpbGVDbGllbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6
OmNyZWF0ZVRpbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGlu
YXRvcik6CisKKzIwMTItMTEtMDggIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEw
MC5uZXQ+CisKICAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IERvbid0IHNlbmQgdGhlIG1l
c3NhZ2VzIGZvciByZWxlYXNpbmcgcmVzb3VyY2VzIGR1cmluZyBwdXJnaW5nLgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjg1CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5oCmlu
ZGV4IGIzYzM2NWMzNTljZTI2MWQ5OWFlYTg0YWQ4Y2U1NjVjMWNhODdlNGQuLjY1MWYyY2Q3YmI3
MmMxYTYwMGY3NTY0MjI5ODA4M2Q3YmU5NGI0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaApAQCAtNzIsNiArNzIsNyBA
QCBwdWJsaWM6CiAgICAgVGlsZTo6Q29vcmRpbmF0ZSB0aWxlQ29vcmRpbmF0ZUZvclBvaW50KGNv
bnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgZG91YmxlIHRpbGVEaXN0YW5jZShjb25zdCBJbnRS
ZWN0JiB2aWV3cG9ydCwgY29uc3QgVGlsZTo6Q29vcmRpbmF0ZSYpIGNvbnN0OwogCisgICAgSW50
UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9CiAgICAgSW50UmVjdCBjb3ZlclJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX2NvdmVyUmVjdDsgfQogICAgIGJvb2wgdmlzaWJsZUFyZWFJ
c0NvdmVyZWQoKSBjb25zdDsKICAgICB2b2lkIHJlbW92ZUFsbE5vblZpc2libGVUaWxlcygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDdjYjk4
NDJjZjlkNDgzN2Y2NDIzYjkwNTNiNGI2NWY3MDA1ZjExMTAuLjFiZGQxMDMzOWMxNGExZmYwMjY3
Y2VjYzcyNWY4NGUyOTljZDNiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJh
Y2tpbmdTdG9yZS5jcHAKQEAgLTEwMSw2ICsxMDEsMTEgQEAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0
dXJlPiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSgpIGNvbnN0CiAgICAgcmV0dXJu
IFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4oKTsKIH0KIAordm9pZCBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZTo6c2V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCit7CisgICAg
bV9zaXplID0gc2l6ZTsKK30KKwogc3RhdGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3Vh
bHMoKQogewogI2lmIFBMQVRGT1JNKFFUKQpAQCAtMTA5LDkgKzExNCwyNCBAQCBzdGF0aWMgYm9v
bCBzaG91bGRTaG93VGlsZURlYnVnVmlzdWFscygpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12
b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJl
TWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIC8qIHRhcmdldFJlY3QgKi8s
IGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJp
dG1hcFRleHR1cmUqIG1hc2spCitzdGF0aWMgdm9pZCBwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVy
KFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+JiB0aWxlcywgVGV4dHVyZU1hcHBlciogdGV4dHVy
ZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3Bh
Y2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaywgdW5zaWduZWQgZWRnZXNFeHBvc2VkKQoreworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGlsZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgVGV4
dHVyZU1hcHBlclRpbGUqIHRpbGUgPSB0aWxlc1tpXTsKKyAgICAgICAgdGlsZS0+cGFpbnQodGV4
dHVyZU1hcHBlciwgdHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrLCBlZGdlc0V4cG9zZWQpOworICAg
ICAgICBzdGF0aWMgYm9vbCBzaG91bGREZWJ1ZyA9IHNob3VsZFNob3dUaWxlRGVidWdWaXN1YWxz
KCk7CisgICAgICAgIGlmICghc2hvdWxkRGVidWcpCisgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3Qm9yZGVyKENvbG9yKDB4RkYsIDAsIDApLCAyLCB0
aWxlLT5yZWN0KCksIHRyYW5zZm9ybSk7CisgICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdSZXBh
aW50Q291bnRlcihzdGF0aWNfY2FzdDxDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUqPih0aWxl
KS0+cmVwYWludENvdW50KCksIDgsIHRpbGVzW2ldLT5yZWN0KCkubG9jYXRpb24oKSwgdHJhbnNm
b3JtKTsKKyAgICB9Cit9CisKK3ZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50VG9U
ZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgZmxv
YXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaykKIHsKICAgICBWZWN0b3I8VGV4dHVyZU1h
cHBlclRpbGUqPiB0aWxlc1RvUGFpbnQ7CisgICAgVmVjdG9yPFRleHR1cmVNYXBwZXJUaWxlKj4g
cHJldmlvdXNUaWxlc1RvUGFpbnQ7CiAKICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgZXZlcnkg
dGltZSB3ZSBwYWludCwgaW4gY2FzZSB0aGUgb3BhY2l0eSBoYXMgY2hhbmdlZC4KICAgICBIYXNo
TWFwPGludCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6aXRlcmF0b3IgZW5kID0gbV90
aWxlcy5lbmQoKTsKQEAgLTEzMiw3ICsxNTIsNyBAQCB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0
b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLAog
ICAgICAgICBpZiAob3BhY2l0eSA8IDAuOTUgJiYgY292ZXJlZFJlY3QuaW50ZXJzZWN0cyh0aWxl
LnJlY3QoKSkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICB0aWxlc1RvUGFpbnQu
cHJlcGVuZCgmdGlsZSk7CisgICAgICAgIHByZXZpb3VzVGlsZXNUb1BhaW50LmFwcGVuZCgmdGls
ZSk7CiAgICAgfQogCiAgICAgLy8gVE9ETzogV2hlbiB0aGUgVGV4dHVyZU1hcHBlciBtYWtlcyBh
IGRpc3RpbmN0aW9uIGJldHdlZW4gc29tZSBlZGdlcyBleHBvc2VkIGFuZCBubyBlZGdlcwpAQCAt
MTQwLDE2ICsxNjAsMTcgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1Rl
eHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwKICAgICAvLyBwYXNzaW5n
LiBGb3Igbm93IHdlIGp1c3QgImVzdGltYXRlIiBzaW5jZSBDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZSBkb2Vzbid0IGtlZXAgaW5mb3JtYXRpb24gYWJvdXQKICAgICAvLyB0aGUgdG90YWwgdGlsZWQg
c3VyZmFjZSByZWN0IGF0IHRoZSBtb21lbnQuCiAgICAgdW5zaWduZWQgZWRnZXNFeHBvc2VkID0g
bV90aWxlcy5zaXplKCkgPiAxID8gVGV4dHVyZU1hcHBlcjo6Tm9FZGdlcyA6IFRleHR1cmVNYXBw
ZXI6OkFsbEVkZ2VzOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGlsZXNUb1BhaW50LnNp
emUoKTsgKytpKSB7Ci0gICAgICAgIFRleHR1cmVNYXBwZXJUaWxlKiB0aWxlID0gdGlsZXNUb1Bh
aW50W2ldOwotICAgICAgICB0aWxlLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0sIG9w
YWNpdHksIG1hc2ssIGVkZ2VzRXhwb3NlZCk7Ci0gICAgICAgIHN0YXRpYyBib29sIHNob3VsZERl
YnVnID0gc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKTsKLSAgICAgICAgaWYgKCFzaG91bGRE
ZWJ1ZykKLSAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHRleHR1cmVNYXBwZXItPmRy
YXdCb3JkZXIoQ29sb3IoMHhGRiwgMCwgMCksIDIsIHRpbGUtPnJlY3QoKSwgdHJhbnNmb3JtKTsK
LSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd1JlcGFpbnRDb3VudGVyKHN0YXRpY19jYXN0PENv
b3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSo+KHRpbGUpLT5yZXBhaW50Q291bnQoKSwgOCwgdGls
ZXNUb1BhaW50W2ldLT5yZWN0KCkubG9jYXRpb24oKSwgdHJhbnNmb3JtKTsKLSAgICB9CisgICAg
QVNTRVJUKCFtX3NpemUuaXNaZXJvKCkpOworICAgIEZsb2F0UmVjdCByZWN0T25Db250ZW50cyhG
bG9hdFBvaW50Ojp6ZXJvKCksIG1fc2l6ZSk7CisgICAgcmVjdE9uQ29udGVudHMuc2NhbGUoMSAv
IG1fc2NhbGUpOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGFkanVzdGVkVHJhbnNmb3JtID0g
dHJhbnNmb3JtOworICAgIC8vIHRhcmdldFJlY3QgaXMgb24gdGhlIGNvbnRlbnRzIGNvb3JkaW5h
dGUgc3lzdGVtLCBzbyB3ZSBtdXN0IGNvbXBhcmUgdHdvIHJlY3RzIG9uIHRoZSBjb250ZW50cyBj
b29yZGluYXRlIHN5c3RlbS4KKyAgICAvLyBTZWUgVGlsZWRCYWNraW5nU3RvcmUuCisgICAgYWRq
dXN0ZWRUcmFuc2Zvcm0ubXVsdGlwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXg6OnJlY3RUb1JlY3Qo
cmVjdCwgdGFyZ2V0UmVjdCkpOworCisgICAgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihwcmV2
aW91c1RpbGVzVG9QYWludCwgdGV4dHVyZU1hcHBlciwgYWRqdXN0ZWRUcmFuc2Zvcm0sIG9wYWNp
dHksIG1hc2ssIGVkZ2VzRXhwb3NlZCk7CisgICAgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcih0
aWxlc1RvUGFpbnQsIHRleHR1cmVNYXBwZXIsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBt
YXNrLCBlZGdlc0V4cG9zZWQpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpj
b21taXRUaWxlT3BlcmF0aW9ucyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKaW5kZXggZmU2ZTRhYTE1YmM2YzA2
YzM4YzFiMDY5MjI1MDMyZGNiOWQzZTIwYi4uZGM1NGZlZDdmNTJkZGZhOTliYTRlMWQ5MTFiOGI5
OGNjZmE2MTAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5o
CkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlKTsgfQogICAgIHZvaWQgY29tbWl0VGlsZU9wZXJhdGlvbnMoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlciopOwogICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6Qml0bWFwVGV4dHVy
ZT4gdGV4dHVyZSgpIGNvbnN0OworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoV2ViQ29yZTo6
VGV4dHVyZU1hcHBlciosIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQsIFdlYkNvcmU6OkJpdG1hcFRleHR1cmUqKTsK
IAogcHJpdmF0ZToKQEAgLTcyLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICB7IH0KICAgICBIYXNo
TWFwPGludCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPiBtX3RpbGVzOwogICAgIEhhc2hT
ZXQ8aW50PiBtX3RpbGVzVG9SZW1vdmU7CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fc2l6ZTsK
ICAgICBmbG9hdCBtX3NjYWxlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvclByb3h5LmNwcAppbmRleCAxZDZlNWFlZmU0YjJmMmMzMTM3NmQ0ZmIwZTc3NGNi
MWY1Mjc3MjgyLi4wZTI5YjdkY2RkNzFiYjZlYTVmZjZjOWExNzVkYmQ3YmRlZTZkODAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcApAQCAtNTYs
OSArNTYsOSBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmRpc3BhdGNoVXBkYXRl
KGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQogICAgIG1fcmVuZGVyZXItPmFwcGVu
ZFVwZGF0ZShmdW5jdGlvbik7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6
Y3JlYXRlVGlsZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBJbnRSZWN0
JiB0YXJnZXRSZWN0LCBjb25zdCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZv
KQordm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpjcmVhdGVUaWxlRm9yTGF5ZXIoaW50
IGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tpbmdTaXplLCBjb25zdCBXZWJLaXQ6OlN1cmZh
Y2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQogewotICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxh
eWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxlLCBtX3JlbmRlcmVyLmdldCgpLCBsYXllcklELCB0
aWxlSUQsIHVwZGF0ZUluZm8uc2NhbGVGYWN0b3IpKTsKKyAgICBkaXNwYXRjaFVwZGF0ZShiaW5k
KCZMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZSwgbV9yZW5kZXJlci5nZXQoKSwgbGF5ZXJJ
RCwgdGlsZUlELCB1cGRhdGVJbmZvLnNjYWxlRmFjdG9yLCBiYWNraW5nU2l6ZSkpOwogICAgIHVw
ZGF0ZVRpbGVGb3JMYXllcihsYXllcklELCB0aWxlSUQsIHRhcmdldFJlY3QsIHVwZGF0ZUluZm8p
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKaW5k
ZXggNjQ2ODAxMTY4ZjI0YTc4OWI3ZWI4MDcxY2Y0YjZmOGE0YzRmYjk3YS4uNDg3YjU3ZDc0ODdm
MzUzZWQ4MGQ1NTk5MzJhMjNkYjk2YjY4ZmZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkuaApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBz
ZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0IHNj
YWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKTsKICAgICB2
b2lkIGRpZFJlbmRlckZyYW1lKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY292ZXJlZFJlY3QpOwotICAgIHZvaWQgY3JlYXRlVGls
ZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mKTsKKyAgICB2b2lkIGNyZWF0ZVRpbGVGb3JMYXll
cihpbnQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGFyZ2V0
UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUsIGNvbnN0IFN1cmZhY2VV
cGRhdGVJbmZvJik7CiAgICAgdm9pZCB1cGRhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGlu
dCB0aWxlSUQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5m
byYpOwogICAgIHZvaWQgcmVtb3ZlVGlsZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlE
KTsKICAgICB2b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBjb25zdCBTaGFyZWFi
bGVTdXJmYWNlOjpIYW5kbGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJhODhkZTUzZmYzM2U0NWYxZDA4
OGEzZDIwNTU3MGE0MGZkNGI1NjcuLjkyYmI3YTY3Zjg1MDM2ZWNkMDU4YTNlYzE4YjJlNzc4MzYw
YzRlODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBAQCBtZXNzYWdlcyAtPiBMYXllclRy
ZWVDb29yZGluYXRvclByb3h5IHsKICNlbmRpZgogICAgIFNldFJvb3RDb21wb3NpdGluZ0xheWVy
KHVpbnQzMl90IGlkKQogICAgIERlbGV0ZUNvbXBvc2l0aW5nTGF5ZXIodWludDMyX3QgaWQpCi0g
ICAgQ3JlYXRlVGlsZUZvckxheWVyKHVpbnQzMl90IGxheWVySUQsIGludCB0aWxlSUQsIFdlYkNv
cmU6OkludFJlY3QgdGFyZ2V0UmVjdCwgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyB1cGRhdGVJ
bmZvKQorICAgIENyZWF0ZVRpbGVGb3JMYXllcih1aW50MzJfdCBsYXllcklELCBpbnQgdGlsZUlE
LCBXZWJDb3JlOjpJbnRSZWN0IHRhcmdldFJlY3QsIFdlYkNvcmU6OkludFNpemUgYmFja2luZ1Np
emUsIFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8gdXBkYXRlSW5mbykKICAgICBVcGRhdGVUaWxl
Rm9yTGF5ZXIodWludDMyX3QgbGF5ZXJJRCwgaW50IHRpbGVJRCwgV2ViQ29yZTo6SW50UmVjdCB0
YXJnZXRSZWN0LCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAgICAgUmVt
b3ZlVGlsZUZvckxheWVyKHVpbnQzMl90IGxheWVySUQsIGludCB0aWxlSUQpCiAgICAgQ3JlYXRl
VXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIFdlYktpdDo6U2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxl
IGhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAppbmRleCBhODI4Yjc3
YTBmZDdiZDY1ZWE4OWY2NDZlNjBlODk2Y2FkNTE2YjY3Li43YzU3ZGUyNDUzMzdlODJhNDBjNTI4
OWQ0OGE5NjI2ZTI1MjMyMWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3Bw
CkBAIC0zNzcsOSArMzc3LDExIEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZUJhY2tp
bmdTdG9yZUlmTmVlZGVkKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJCiAgICAgICAgIGxh
eWVyLT5zZXRCYWNraW5nU3RvcmUoMCk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNy
ZWF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBmbG9hdCBzY2FsZSkKK3Zv
aWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQg
dGlsZUlELCBmbG9hdCBzY2FsZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUp
CiB7Ci0gICAgZ2V0QmFja2luZ1N0b3JlKGxheWVySUQpLT5jcmVhdGVUaWxlKHRpbGVJRCwgc2Nh
bGUpOworICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlID0g
Z2V0QmFja2luZ1N0b3JlKGxheWVySUQpOworICAgIGJhY2tpbmdTdG9yZS0+Y3JlYXRlVGlsZSh0
aWxlSUQsIHNjYWxlKTsKKyAgICBiYWNraW5nU3RvcmUtPnNldFNpemUoYmFja2luZ1NpemUpOwog
fQogCiB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVUaWxlKFdlYkxheWVySUQgbGF5ZXJJ
RCwgaW50IHRpbGVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCmluZGV4IDFkY2Ni
YmNmOTNkZmUwODZhNWUxZjhlNjlkNjcwYjFkNmM4NzZlNjIuLjM4Yjk4MzcxMmFhOTQxMWE1YThi
ZmI3ZTk2M2JkZTViZDk0NGY4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaApA
QCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMYXllckZpbHRlcnMoV2ViTGF5
ZXJJRCwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwogI2VuZGlmCiAKLSAgICB2
b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50LCBmbG9hdCBzY2FsZSk7CisgICAgdm9pZCBj
cmVhdGVUaWxlKFdlYkxheWVySUQsIGludCwgZmxvYXQgc2NhbGUsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmKTsKICAgICB2b2lkIHJlbW92ZVRpbGUoV2ViTGF5ZXJJRCwgaW50KTsKICAgICB2b2lk
IHVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50LCBjb25zdCBUaWxlVXBkYXRlJik7CiAgICAgdm9p
ZCBmbHVzaExheWVyQ2hhbmdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggYzU2YzI4NTg2Mzk5ZDNhMmMz
Njk3YTc2NjFlYjk3ZDFjY2U3OGU4Ny4uZTBhNDEyNGU4ZWIyZTMyYWFlYWNiY2NhMGQzNGJhMGVk
NDYwZDIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC02NDEsOSArNjQxLDkgQEAgUGFzc093blB0cjxXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ+IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YmVnaW5Db250
ZW50VXBkYXQKICAgICByZXR1cm4gbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmJl
Z2luQ29udGVudFVwZGF0ZShzaXplLCBjb250ZW50c09wYXF1ZSgpID8gMCA6IFNoYXJlYWJsZUJp
dG1hcDo6U3VwcG9ydHNBbHBoYSwgYXRsYXMsIG9mZnNldCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRh
dGVJbmZvJiB1cGRhdGVJbmZvLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0KQordm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3VyZmFj
ZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRhcmdldFJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tpbmdTaXplKQogewotICAgIG1fQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5jcmVhdGVUaWxlKGlkKCksIHRpbGVJRCwgdXBkYXRl
SW5mbywgdGFyZ2V0UmVjdCk7CisgICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQt
PmNyZWF0ZVRpbGUoaWQoKSwgdGlsZUlELCB1cGRhdGVJbmZvLCB0YXJnZXRSZWN0LCBiYWNraW5n
U2l6ZSk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp1cGRhdGVUaWxlKGlu
dCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBjb25zdCBJbnRS
ZWN0JiB0YXJnZXRSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAppbmRleCAxMTg4YWE3NWZiNzc4MjliYjIxYzk4ZWRmMGQ3
MGZiMjI1NTAxZTJmLi4wMjY4ZjIyZDU3YzI1NTk1OTU4YmJhY2E0MGNkMTQ2MzQ0NzczOTVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuaApAQCAtNTAsNyArNTAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCB7CiBwdWJsaWM6CiAgICAgLy8gQ29vcmRpbmF0ZWRU
aWxlQ2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRp
bGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQs
IGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGFyZ2V0
UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNl
VXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCkgPSAwOwogCkBAIC0xNDUsNyAr
MTQ1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQ29sb3IgdGlsZWRCYWNraW5nU3RvcmVCYWNr
Z3JvdW5kQ29sb3IoKSBjb25zdCBPVkVSUklERTsKIAogICAgIC8vIENvb3JkaW5hdGVkVGlsZUNs
aWVudAotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFdlYktp
dDo6U3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGNyZWF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgV2ViS2l0OjpTdXJmYWNlVXBk
YXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIGJhY2tpbmdTaXplKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvJiwgY29u
c3QgSW50UmVjdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKGludCB0
aWxlSUQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+
IGJlZ2luQ29udGVudFVwZGF0ZShjb25zdCBJbnRTaXplJiwgaW50JiBhdGxhc0lELCBJbnRQb2lu
dCYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGls
ZS5jcHAKaW5kZXggNTQ4ZDQ5ZDMyN2YwMzU1MzI3NDZmZDJmYjU5NTViZDYxZGE4YmFjNy4uN2Jm
YTI5NzhhOWVlZjllYjI4ZTg1YzgzMzJkN2ZmZWM5MWU5ZTY2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRUaWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFRpbGUuY3BwCkBAIC00MSw3ICs0MSw3IEBAIENvb3Jk
aW5hdGVkVGlsZTo6Q29vcmRpbmF0ZWRUaWxlKENvb3JkaW5hdGVkVGlsZUNsaWVudCogY2xpZW50
LCBUaWxlZEJhY2tpbmdTdG9yCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3RpbGVk
QmFja2luZ1N0b3JlKHRpbGVkQmFja2luZ1N0b3JlKQogICAgICwgbV9jb29yZGluYXRlKHRpbGVD
b29yZGluYXRlKQotICAgICwgbV9yZWN0KHRpbGVkQmFja2luZ1N0b3JlLT50aWxlUmVjdEZvckNv
b3JkaW5hdGUodGlsZUNvb3JkaW5hdGUpKQorICAgICwgbV9yZWN0KHRpbGVkQmFja2luZ1N0b3Jl
LT50YXJnZXRSZWN0Rm9yQ29vcmRpbmF0ZSh0aWxlQ29vcmRpbmF0ZSkpCiAgICAgLCBtX0lEKDAp
CiAgICAgLCBtX2RpcnR5UmVjdChtX3JlY3QpCiB7CkBAIC04OCw3ICs4OCw3IEBAIFZlY3RvcjxJ
bnRSZWN0PiBDb29yZGluYXRlZFRpbGU6OnVwZGF0ZUJhY2tCdWZmZXIoKQogICAgIHN0YXRpYyBp
bnQgaWQgPSAwOwogICAgIGlmICghbV9JRCkgewogICAgICAgICBtX0lEID0gKytpZDsKLSAgICAg
ICAgbV9jbGllbnQtPmNyZWF0ZVRpbGUobV9JRCwgdXBkYXRlSW5mbywgbV9yZWN0KTsKKyAgICAg
ICAgbV9jbGllbnQtPmNyZWF0ZVRpbGUobV9JRCwgdXBkYXRlSW5mbywgbV9yZWN0LCByZWN0KCku
c2l6ZSgpKTsKICAgICB9IGVsc2UKICAgICAgICAgbV9jbGllbnQtPnVwZGF0ZVRpbGUobV9JRCwg
dXBkYXRlSW5mbywgbV9yZWN0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZFRpbGUuaAppbmRleCAzMmZmNGU3Yzc5MWYyYmUzNGI1MDM4MDA4NTY1ODM4NmVlMWVjNjM4
Li4wNjMxMzMzZDAxNzZjNjkzNGQyNjU2MTc3YTYyZGJkY2NmN2QwODAyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZFRpbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFRpbGUuaApAQCAtNzUsNyArNzUsNyBAQCBwcml2
YXRlOgogY2xhc3MgQ29vcmRpbmF0ZWRUaWxlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5Db29yZGluYXRlZFRpbGVDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGls
ZShpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUoaW50IHRpbGVJRCwgY29u
c3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0YXJnZXRSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNraW5nU2l6ZSkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShp
bnQgdGlsZUlEKSA9IDA7CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBpbnQm
IGF0bGFzSUQsIFdlYkNvcmU6OkludFBvaW50JikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29v
cmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDRmOGMzYTk5ZWI2NjZm
MzIwNjFkYjljZTgyZDBjYzJjMjY1YjZkZWMuLmVlYWFjOThiM2FiNzkzZTEyYmQwZTY0ZTRkMGQ1
Nzg3ZDI2NWMxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvci5jcHAKQEAgLTU5NCwxMCArNTk0LDEwIEBAIGJvb2wgTGF5ZXJUcmVlSG9z
dDo6c3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlVGlsZShXZWJMYXllcklEIGxheWVy
SUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiB0YXJnZXRSZWN0KQordm9pZCBMYXllclRyZWVDb29yZGluYXRv
cjo6Y3JlYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZh
Y2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0YXJnZXRS
ZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNraW5nU2l6ZSkKIHsKICAgICBtX3Nob3Vs
ZFN5bmNGcmFtZSA9IHRydWU7Ci0gICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRy
ZWVDb29yZGluYXRvclByb3h5OjpDcmVhdGVUaWxlRm9yTGF5ZXIobGF5ZXJJRCwgdGlsZUlELCB0
YXJnZXRSZWN0LCB1cGRhdGVJbmZvKSk7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpM
YXllclRyZWVDb29yZGluYXRvclByb3h5OjpDcmVhdGVUaWxlRm9yTGF5ZXIobGF5ZXJJRCwgdGls
ZUlELCB0YXJnZXRSZWN0LCBiYWNraW5nU2l6ZSwgdXBkYXRlSW5mbykpOwogfQogCiB2b2lkIExh
eWVyVHJlZUNvb3JkaW5hdG9yOjp1cGRhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRp
bGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3IuaAppbmRleCA0MDE3ZTFmYzQwMDYwMzM0Yzg5NWU4NWFjOTU4NWNj
ODkyZDVkNjdkLi5hYjFlNzNmZTAyOGUxYjBlY2E0MzYyODhkNTdlOTRkNDY0M2MwZDhkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKQEAg
LTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50NjRfdCBhZG9wdEltYWdlQmFj
a2luZ1N0b3JlKFdlYkNvcmU6OkltYWdlKik7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VJbWFn
ZUJhY2tpbmdTdG9yZShpbnQ2NF90KTsKIAotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKFdl
YkxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKFdlYkxheWVySUQs
IGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpOwog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0
IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVUaWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQpOwogICAgIHZpcnR1YWwg
V2ViQ29yZTo6SW50UmVjdCB2aXNpYmxlQ29udGVudHNSZWN0KCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173199</attachid>
            <date>2012-11-08 21:31:56 -0800</date>
            <delta_ts>2012-11-09 00:20:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101701-20121109142951.patch</filename>
            <type>text/plain</type>
            <size>22464</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QxYThhM2I0ZjNhZGEx
NTcxMGNlOTk0YjBlOTUwZTc5YWRhMTI0NC4uMGY4NGJlODNkN2JiZDYyZGJhYWFjNGIxODBjMDc2
YzZiMzE0NDQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDEyLTExLTA4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBBbWVuZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1
cmVNYXBwZXIgdG8gZml0IGl0cyBvd24gc2VtYW50aWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgVGlsZWRCYWNraW5nU3RvcmU6OnJlY3QoKSBi
ZWNhdXNlIENvb3JkaW5hdGVkVGlsZSBuZWVkcyB0byBrbm93CisgICAgICAgIG1fcmVjdCBvZiBU
aWxlZEJhY2tpbmdTdG9yZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFj
a2luZ1N0b3JlLmg6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZTo6cmVjdCk6
CisKKzIwMTItMTEtMDggIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+
CisKICAgICAgICAgW1RleE1hcF0gSW5pdGlhbGl6ZSBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0
ciBpbiBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci4KICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY3NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjBlN2MyMDNh
ZWVhZWU2YjI0MDliYTI0ZTIxYzUyMmZlMWJjZjgzNC4uOTAwYzhkNjcyN2FjZmQ5OGEyYTFjNzA1
NGI0NmFiNzY3YzBiNzFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUyIEBACiAyMDEyLTExLTA4
ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENv
b3JkaW5hdGVkIEdyYXBoaWNzOiBBbWVuZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRU
b1RleHR1cmVNYXBwZXIgdG8gZml0IGl0cyBvd24gc2VtYW50aWMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIGFsbCBzdWJjbGFzc2Vz
IG9mIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyIGltcGxlbWVudAorICAgICAgICBwYWludFRv
VGV4dHVyZU1hcHBlciB0byBkcmF3IGl0cyBvd24gdGV4dHVyZSBvbiB0aGUgZ2l2ZW4gdGFyZ2V0
UmVjdC4gU3ViY2xhc3NlcworICAgICAgICBjYW4gc2NhbGUgdGhlIHRleHR1cmUgdG8gZml0IHRo
ZSBzaXplIG9mIHRoZSB0YXJnZXRSZWN0LiBIb3dldmVyLCBvbmx5CisgICAgICAgIENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlciBkcmF3cyBpdHMgdGV4dHVyZSB1
c2luZyBpdHMgb3duCisgICAgICAgIHRleHR1cmUgc2l6ZS4gVGhlcmUgaXMgbm8gYnVnIHlldCwg
YmVjYXVzZSBUZXh0dXJlTWFwcGVyTGF5ZXIgdXNlcworICAgICAgICBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZSBvbmx5IGFzIGEgYmFja2luZyBzdG9yZSwgbm90IGEgY29udGVudCBsYXllci4gU28s
CisgICAgICAgIFRleHR1cmVNYXBwZXJMYXllciBhbHdheXMgcmVxdWVzdCBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZSB0byBkcmF3IHVzaW5nIGl0cyBvd24KKyAgICAgICAgdGV4dHVyZSBzaXplLiBI
b3dldmVyLCB3ZSBjYW4gdXNlIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIGFzIGEgY29udGVudCBs
YXllciBpbgorICAgICAgICB0aGUgZnV0dXJlLiBTbyB0aGlzIHBhdGNoIGZpeGVzIHRoaXMgcG90
ZW50aWFsIGJ1Zy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRC
YWNraW5nU3RvcmU6OnNldFNpemUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktp
dDo6cGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcik6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5h
dGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcik6CisgICAgICAgICogVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaDoKKyAgICAg
ICAgKENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlVGlsZUZvckxheWVyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
clByb3h5Lmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvclByb3h5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6
OmNyZWF0ZVRpbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgIChMYXllclRyZWVSZW5kZXJlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6Y3JlYXRlVGlsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgIChDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJDbGllbnQpOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZFRpbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZFRpbGU6OnVwZGF0
ZUJhY2tCdWZmZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRUaWxlQ2xpZW50
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5h
dG9yOjpjcmVhdGVUaWxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oOgorICAgICAgICAoTGF5ZXJUcmVlQ29v
cmRpbmF0b3IpOgorCisyMDEyLTExLTA4ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBh
bnkxMDAubmV0PgorCiAgICAgICAgIENvb3JkaW5hdGVkIEdyYXBoaWNzOiBEb24ndCBzZW5kIHRo
ZSBtZXNzYWdlcyBmb3IgcmVsZWFzaW5nIHJlc291cmNlcyBkdXJpbmcgcHVyZ2luZy4KICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY4NQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9y
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUu
aAppbmRleCBiM2MzNjVjMzU5Y2UyNjFkOTlhZWE4NGFkOGNlNTY1YzFjYTg3ZTRkLi42NTFmMmNk
N2JiNzJjMWE2MDBmNzU2NDIyOTgwODNkN2JlOTRiNDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgKQEAgLTcyLDYgKzcy
LDcgQEAgcHVibGljOgogICAgIFRpbGU6OkNvb3JkaW5hdGUgdGlsZUNvb3JkaW5hdGVGb3JQb2lu
dChjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogICAgIGRvdWJsZSB0aWxlRGlzdGFuY2UoY29uc3Qg
SW50UmVjdCYgdmlld3BvcnQsIGNvbnN0IFRpbGU6OkNvb3JkaW5hdGUmKSBjb25zdDsKIAorICAg
IEludFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQogICAgIEludFJlY3QgY292
ZXJSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9jb3ZlclJlY3Q7IH0KICAgICBib29sIHZpc2libGVB
cmVhSXNDb3ZlcmVkKCkgY29uc3Q7CiAgICAgdm9pZCByZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAppbmRleCA3
Y2I5ODQyY2Y5ZDQ4MzdmNjQyM2I5MDUzYjRiNjVmNzAwNWYxMTEwLi4yZjY1ODkwYWM1Yjc5YjIw
ZWQyMTUwNDgwZDQ0OTlkM2U5MzE1YWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuY3BwCkBAIC0xMDEsNiArMTAxLDExIEBAIFBhc3NSZWZQdHI8Qml0bWFw
VGV4dHVyZT4gQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnRleHR1cmUoKSBjb25zdAogICAgIHJl
dHVybiBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+KCk7CiB9CiAKK3ZvaWQgQ29vcmRpbmF0ZWRC
YWNraW5nU3RvcmU6OnNldFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplKQorewor
ICAgIG1fc2l6ZSA9IHNpemU7Cit9CisKIHN0YXRpYyBib29sIHNob3VsZFNob3dUaWxlRGVidWdW
aXN1YWxzKCkKIHsKICNpZiBQTEFURk9STShRVCkKQEAgLTEwOSw5ICsxMTQsMjQgQEAgc3RhdGlj
IGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4
dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgRmxvYXRSZWN0JiAvKiB0YXJnZXRSZWN0
ICovLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5
LCBCaXRtYXBUZXh0dXJlKiBtYXNrKQorc3RhdGljIHZvaWQgcGFpbnRUaWxlc1RvVGV4dHVyZU1h
cHBlcihWZWN0b3I8VGV4dHVyZU1hcHBlclRpbGUqPiYgdGlsZXMsIFRleHR1cmVNYXBwZXIqIHRl
eHR1cmVNYXBwZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0
IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2ssIHVuc2lnbmVkIGVkZ2VzRXhwb3NlZCkKK3sK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRpbGVzLnNpemUoKTsgKytpKSB7CisgICAgICAg
IFRleHR1cmVNYXBwZXJUaWxlKiB0aWxlID0gdGlsZXNbaV07CisgICAgICAgIHRpbGUtPnBhaW50
KHRleHR1cmVNYXBwZXIsIHRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgZWRnZXNFeHBvc2VkKTsK
KyAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkRGVidWcgPSBzaG91bGRTaG93VGlsZURlYnVnVmlz
dWFscygpOworICAgICAgICBpZiAoIXNob3VsZERlYnVnKQorICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd0JvcmRlcihDb2xvcigweEZGLCAwLCAwKSwg
MiwgdGlsZS0+cmVjdCgpLCB0cmFuc2Zvcm0pOworICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3
UmVwYWludENvdW50ZXIoc3RhdGljX2Nhc3Q8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlKj4o
dGlsZSktPnJlcGFpbnRDb3VudCgpLCA4LCB0aWxlc1tpXS0+cmVjdCgpLmxvY2F0aW9uKCksIHRy
YW5zZm9ybSk7CisgICAgfQorfQorCit2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWlu
dFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9h
dFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0s
IGZsb2F0IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spCiB7CiAgICAgVmVjdG9yPFRleHR1
cmVNYXBwZXJUaWxlKj4gdGlsZXNUb1BhaW50OworICAgIFZlY3RvcjxUZXh0dXJlTWFwcGVyVGls
ZSo+IHByZXZpb3VzVGlsZXNUb1BhaW50OwogCiAgICAgLy8gV2UgaGF2ZSB0byBkbyB0aGlzIGV2
ZXJ5IHRpbWUgd2UgcGFpbnQsIGluIGNhc2UgdGhlIG9wYWNpdHkgaGFzIGNoYW5nZWQuCiAgICAg
SGFzaE1hcDxpbnQsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGVuZCA9
IG1fdGlsZXMuZW5kKCk7CkBAIC0xMzIsNyArMTUyLDcgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBl
ciwKICAgICAgICAgaWYgKG9wYWNpdHkgPCAwLjk1ICYmIGNvdmVyZWRSZWN0LmludGVyc2VjdHMo
dGlsZS5yZWN0KCkpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgdGlsZXNUb1Bh
aW50LnByZXBlbmQoJnRpbGUpOworICAgICAgICBwcmV2aW91c1RpbGVzVG9QYWludC5hcHBlbmQo
JnRpbGUpOwogICAgIH0KIAogICAgIC8vIFRPRE86IFdoZW4gdGhlIFRleHR1cmVNYXBwZXIgbWFr
ZXMgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHNvbWUgZWRnZXMgZXhwb3NlZCBhbmQgbm8gZWRnZXMK
QEAgLTE0MCwxNiArMTYwLDE3IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50
VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsCiAgICAgLy8gcGFz
c2luZy4gRm9yIG5vdyB3ZSBqdXN0ICJlc3RpbWF0ZSIgc2luY2UgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmUgZG9lc24ndCBrZWVwIGluZm9ybWF0aW9uIGFib3V0CiAgICAgLy8gdGhlIHRvdGFsIHRp
bGVkIHN1cmZhY2UgcmVjdCBhdCB0aGUgbW9tZW50LgogICAgIHVuc2lnbmVkIGVkZ2VzRXhwb3Nl
ZCA9IG1fdGlsZXMuc2l6ZSgpID4gMSA/IFRleHR1cmVNYXBwZXI6Ok5vRWRnZXMgOiBUZXh0dXJl
TWFwcGVyOjpBbGxFZGdlczsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRpbGVzVG9QYWlu
dC5zaXplKCk7ICsraSkgewotICAgICAgICBUZXh0dXJlTWFwcGVyVGlsZSogdGlsZSA9IHRpbGVz
VG9QYWludFtpXTsKLSAgICAgICAgdGlsZS0+cGFpbnQodGV4dHVyZU1hcHBlciwgdHJhbnNmb3Jt
LCBvcGFjaXR5LCBtYXNrLCBlZGdlc0V4cG9zZWQpOwotICAgICAgICBzdGF0aWMgYm9vbCBzaG91
bGREZWJ1ZyA9IHNob3VsZFNob3dUaWxlRGVidWdWaXN1YWxzKCk7Ci0gICAgICAgIGlmICghc2hv
dWxkRGVidWcpCi0gICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICB0ZXh0dXJlTWFwcGVy
LT5kcmF3Qm9yZGVyKENvbG9yKDB4RkYsIDAsIDApLCAyLCB0aWxlLT5yZWN0KCksIHRyYW5zZm9y
bSk7Ci0gICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdSZXBhaW50Q291bnRlcihzdGF0aWNfY2Fz
dDxDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUqPih0aWxlKS0+cmVwYWludENvdW50KCksIDgs
IHRpbGVzVG9QYWludFtpXS0+cmVjdCgpLmxvY2F0aW9uKCksIHRyYW5zZm9ybSk7Ci0gICAgfQor
ICAgIEFTU0VSVCghbV9zaXplLmlzWmVybygpKTsKKyAgICBGbG9hdFJlY3QgcmVjdE9uQ29udGVu
dHMoRmxvYXRQb2ludDo6emVybygpLCBtX3NpemUpOworICAgIHJlY3RPbkNvbnRlbnRzLnNjYWxl
KDEgLyBtX3NjYWxlKTsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhZGp1c3RlZFRyYW5zZm9y
bSA9IHRyYW5zZm9ybTsKKyAgICAvLyB0YXJnZXRSZWN0IGlzIG9uIHRoZSBjb250ZW50cyBjb29y
ZGluYXRlIHN5c3RlbSwgc28gd2UgbXVzdCBjb21wYXJlIHR3byByZWN0cyBvbiB0aGUgY29udGVu
dHMgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8gU2VlIFRpbGVkQmFja2luZ1N0b3JlLgorICAg
IGFkanVzdGVkVHJhbnNmb3JtLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4OjpyZWN0VG9S
ZWN0KHJlY3RPbkNvbnRlbnRzLCB0YXJnZXRSZWN0KSk7CisKKyAgICBwYWludFRpbGVzVG9UZXh0
dXJlTWFwcGVyKHByZXZpb3VzVGlsZXNUb1BhaW50LCB0ZXh0dXJlTWFwcGVyLCBhZGp1c3RlZFRy
YW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgZWRnZXNFeHBvc2VkKTsKKyAgICBwYWludFRpbGVzVG9U
ZXh0dXJlTWFwcGVyKHRpbGVzVG9QYWludCwgdGV4dHVyZU1hcHBlciwgYWRqdXN0ZWRUcmFuc2Zv
cm0sIG9wYWNpdHksIG1hc2ssIGVkZ2VzRXhwb3NlZCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRC
YWNraW5nU3RvcmU6OmNvbW1pdFRpbGVPcGVyYXRpb25zKFRleHR1cmVNYXBwZXIqIHRleHR1cmVN
YXBwZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaAppbmRleCBm
ZTZlNGFhMTViYzZjMDZjMzhjMWIwNjkyMjUwMzJkY2I5ZDNlMjBiLi5kYzU0ZmVkN2Y1MmRkZmE5
OWJhNGUxZDkxMWI4Yjk4Y2NmYTYxMDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
QmFja2luZ1N0b3JlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUpOyB9CiAgICAgdm9pZCBjb21taXRUaWxlT3Bl
cmF0aW9ucyhXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKik7CiAgICAgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTaXplKGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludFRvVGV4dHVyZU1h
cHBlcihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jiwg
Y29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCwgV2ViQ29yZTo6Qml0
bWFwVGV4dHVyZSopOwogCiBwcml2YXRlOgpAQCAtNzIsNiArNzMsNyBAQCBwcml2YXRlOgogICAg
IHsgfQogICAgIEhhc2hNYXA8aW50LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+IG1fdGls
ZXM7CiAgICAgSGFzaFNldDxpbnQ+IG1fdGlsZXNUb1JlbW92ZTsKKyAgICBXZWJDb3JlOjpGbG9h
dFNpemUgbV9zaXplOwogICAgIGZsb2F0IG1fc2NhbGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDFkNmU1YWVmZTRiMmYyYzMx
Mzc2ZDRmYjBlNzc0Y2IxZjUyNzcyODIuLjBlMjliN2RjZGQ3MWJiNmVhNWZmNmM5YTE3NWRiZDdi
ZGVlNmQ4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkuY3BwCkBAIC01Niw5ICs1Niw5IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6
ZGlzcGF0Y2hVcGRhdGUoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCiAgICAgbV9y
ZW5kZXJlci0+YXBwZW5kVXBkYXRlKGZ1bmN0aW9uKTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29y
ZGluYXRvclByb3h5OjpjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGludCB0aWxlSUQs
IGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVwZGF0ZUlu
Zm8mIHVwZGF0ZUluZm8pCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZVRp
bGVGb3JMYXllcihpbnQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgdGFyZ2V0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUsIGNvbnN0
IFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiB7Ci0gICAgZGlzcGF0Y2hV
cGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUsIG1fcmVuZGVyZXIuZ2V0
KCksIGxheWVySUQsIHRpbGVJRCwgdXBkYXRlSW5mby5zY2FsZUZhY3RvcikpOworICAgIGRpc3Bh
dGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxlLCBtX3JlbmRlcmVy
LmdldCgpLCBsYXllcklELCB0aWxlSUQsIHVwZGF0ZUluZm8uc2NhbGVGYWN0b3IsIGJhY2tpbmdT
aXplKSk7CiAgICAgdXBkYXRlVGlsZUZvckxheWVyKGxheWVySUQsIHRpbGVJRCwgdGFyZ2V0UmVj
dCwgdXBkYXRlSW5mbyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkuaAppbmRleCA2NDY4MDExNjhmMjRhNzg5YjdlYjgwNzFjZjRiNmY4YTRjNGZiOTdh
Li40ODdiNTdkNzQ4N2YzNTNlZDgwZDU1OTkzMmEyM2RiOTZiNjhmZmZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29y
ZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCkBAIC02Miw3ICs2Miw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
KTsKICAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiwgZmxvYXQgc2NhbGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHRyYWplY3RvcnlW
ZWN0b3IpOwogICAgIHZvaWQgZGlkUmVuZGVyRnJhbWUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
Y29udGVudHNTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb3ZlcmVkUmVjdCk7Ci0gICAg
dm9pZCBjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYpOworICAgIHZvaWQgY3Jl
YXRlVGlsZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNraW5nU2l6ZSwg
Y29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mKTsKICAgICB2b2lkIHVwZGF0ZVRpbGVGb3JMYXllcihp
bnQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN1
cmZhY2VVcGRhdGVJbmZvJik7CiAgICAgdm9pZCByZW1vdmVUaWxlRm9yTGF5ZXIoaW50IGxheWVy
SUQsIGludCB0aWxlSUQpOwogICAgIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQs
IGNvbnN0IFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYmE4OGRl
NTNmZjMzZTQ1ZjFkMDg4YTNkMjA1NTcwYTQwZmQ0YjU2Ny4uOTJiYjdhNjdmODUwMzZlY2QwNThh
M2VjMThiMmU3NzgzNjBjNGU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNiw3ICsyNiw3IEBAIG1lc3Nh
Z2VzIC0+IExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkgewogI2VuZGlmCiAgICAgU2V0Um9vdENv
bXBvc2l0aW5nTGF5ZXIodWludDMyX3QgaWQpCiAgICAgRGVsZXRlQ29tcG9zaXRpbmdMYXllcih1
aW50MzJfdCBpZCkKLSAgICBDcmVhdGVUaWxlRm9yTGF5ZXIodWludDMyX3QgbGF5ZXJJRCwgaW50
IHRpbGVJRCwgV2ViQ29yZTo6SW50UmVjdCB0YXJnZXRSZWN0LCBXZWJLaXQ6OlN1cmZhY2VVcGRh
dGVJbmZvIHVwZGF0ZUluZm8pCisgICAgQ3JlYXRlVGlsZUZvckxheWVyKHVpbnQzMl90IGxheWVy
SUQsIGludCB0aWxlSUQsIFdlYkNvcmU6OkludFJlY3QgdGFyZ2V0UmVjdCwgV2ViQ29yZTo6SW50
U2l6ZSBiYWNraW5nU2l6ZSwgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyB1cGRhdGVJbmZvKQog
ICAgIFVwZGF0ZVRpbGVGb3JMYXllcih1aW50MzJfdCBsYXllcklELCBpbnQgdGlsZUlELCBXZWJD
b3JlOjpJbnRSZWN0IHRhcmdldFJlY3QsIFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8gdXBkYXRl
SW5mbykKICAgICBSZW1vdmVUaWxlRm9yTGF5ZXIodWludDMyX3QgbGF5ZXJJRCwgaW50IHRpbGVJ
RCkKICAgICBDcmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgV2ViS2l0OjpTaGFyZWFibGVT
dXJmYWNlOjpIYW5kbGUgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3Bw
CmluZGV4IGE4MjhiNzdhMGZkN2JkNjVlYTg5ZjY0NmU2MGU4OTZjYWQ1MTZiNjcuLjdjNTdkZTI0
NTMzN2U4MmE0MGM1Mjg5ZDQ4YTk2MjZlMjUyMzIxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVSZW5kZXJlci5jcHAKQEAgLTM3Nyw5ICszNzcsMTEgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJl
cjo6cmVtb3ZlQmFja2luZ1N0b3JlSWZOZWVkZWQoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGls
ZUkKICAgICAgICAgbGF5ZXItPnNldEJhY2tpbmdTdG9yZSgwKTsKIH0KIAotdm9pZCBMYXllclRy
ZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGludCB0aWxlSUQsIGZs
b2F0IHNjYWxlKQordm9pZCBMYXllclRyZWVSZW5kZXJlcjo6Y3JlYXRlVGlsZShXZWJMYXllcklE
IGxheWVySUQsIGludCB0aWxlSUQsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBiYWNraW5nU2l6ZSkKIHsKLSAgICBnZXRCYWNraW5nU3RvcmUobGF5ZXJJRCktPmNyZWF0ZVRp
bGUodGlsZUlELCBzY2FsZSk7CisgICAgUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiBi
YWNraW5nU3RvcmUgPSBnZXRCYWNraW5nU3RvcmUobGF5ZXJJRCk7CisgICAgYmFja2luZ1N0b3Jl
LT5jcmVhdGVUaWxlKHRpbGVJRCwgc2NhbGUpOworICAgIGJhY2tpbmdTdG9yZS0+c2V0U2l6ZShi
YWNraW5nU2l6ZSk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZVRpbGUoV2Vi
TGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVy
LmgKaW5kZXggMWRjY2JiY2Y5M2RmZTA4NmE1ZTFmOGU2OWQ2NzBiMWQ2Yzg3NmU2Mi4uMzhiOTgz
NzEyYWE5NDExYTVhOGJmYjdlOTYzYmRlNWJkOTQ0Zjg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVSZW5kZXJlci5oCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExheWVy
RmlsdGVycyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CiAj
ZW5kaWYKIAotICAgIHZvaWQgY3JlYXRlVGlsZShXZWJMYXllcklELCBpbnQsIGZsb2F0IHNjYWxl
KTsKKyAgICB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50LCBmbG9hdCBzY2FsZSwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgcmVtb3ZlVGlsZShXZWJMYXllcklELCBp
bnQpOwogICAgIHZvaWQgdXBkYXRlVGlsZShXZWJMYXllcklELCBpbnQsIGNvbnN0IFRpbGVVcGRh
dGUmKTsKICAgICB2b2lkIGZsdXNoTGF5ZXJDaGFuZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCBjNTZj
Mjg1ODYzOTlkM2EyYzM2OTdhNzY2MWViOTdkMWNjZTc4ZTg3Li5lMGE0MTI0ZThlYjJlMzJhYWVh
Y2JjY2EwZDM0YmEwZWQ0NjBkMjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTY0MSw5ICs2NDEsOSBAQCBQ
YXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpiZWdpbkNvbnRlbnRVcGRhdAogICAgIHJldHVybiBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllckNsaWVudC0+YmVnaW5Db250ZW50VXBkYXRlKHNpemUsIGNvbnRlbnRzT3BhcXVlKCkgPyAw
IDogU2hhcmVhYmxlQml0bWFwOjpTdXBwb3J0c0FscGhhLCBhdGxhcywgb2Zmc2V0KTsKIH0KIAot
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZVRpbGUoaW50IHRpbGVJRCwgY29u
c3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IEludFJlY3QmIHRhcmdldFJl
Y3QpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlVGlsZShpbnQgdGlsZUlE
LCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbywgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpCiB7
Ci0gICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmNyZWF0ZVRpbGUoaWQoKSwg
dGlsZUlELCB1cGRhdGVJbmZvLCB0YXJnZXRSZWN0KTsKKyAgICBtX0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllckNsaWVudC0+Y3JlYXRlVGlsZShpZCgpLCB0aWxlSUQsIHVwZGF0ZUluZm8sIHRhcmdl
dFJlY3QsIGJhY2tpbmdTaXplKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OnVwZGF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUlu
Zm8sIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IDExODhhYTc1ZmI3Nzgy
OWJiMjFjOThlZGYwZDcwZmIyMjU1MDFlMmYuLjAyNjhmMjJkNTdjMjU1OTU5NThiYmFjYTQwY2Qx
NDYzNDQ3NzM5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICAv
LyBDb29yZGluYXRlZFRpbGVDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShXZWJM
YXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJ
RCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNraW5nU2l6ZSkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQs
IGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlEKSA9IDA7
CiAKQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBDb2xvciB0aWxlZEJh
Y2tpbmdTdG9yZUJhY2tncm91bmRDb2xvcigpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgLy8gQ29v
cmRpbmF0ZWRUaWxlQ2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUoaW50IHRpbGVJ
RCwgY29uc3QgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBXZWJL
aXQ6OlN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGFyZ2V0UmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVw
ZGF0ZUluZm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJl
bW92ZVRpbGUoaW50IHRpbGVJRCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPEdy
YXBoaWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IEludFNpemUmLCBpbnQmIGF0
bGFzSUQsIEludFBvaW50JikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFRpbGUuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRUaWxlLmNwcAppbmRleCA1NDhkNDlkMzI3ZjAzNTUzMjc0NmZkMmZiNTk1NWJk
NjFkYThiYWM3Li4xYTkwNmRmYTI2NGE2NGMxNjBlNDU1NGE2MWY4NTllNWQzY2EwOWE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZFRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5jcHAKQEAgLTg4LDcg
Kzg4LDcgQEAgVmVjdG9yPEludFJlY3Q+IENvb3JkaW5hdGVkVGlsZTo6dXBkYXRlQmFja0J1ZmZl
cigpCiAgICAgc3RhdGljIGludCBpZCA9IDA7CiAgICAgaWYgKCFtX0lEKSB7CiAgICAgICAgIG1f
SUQgPSArK2lkOwotICAgICAgICBtX2NsaWVudC0+Y3JlYXRlVGlsZShtX0lELCB1cGRhdGVJbmZv
LCBtX3JlY3QpOworICAgICAgICBtX2NsaWVudC0+Y3JlYXRlVGlsZShtX0lELCB1cGRhdGVJbmZv
LCBtX3JlY3QsIHJlY3QoKS5zaXplKCkpOwogICAgIH0gZWxzZQogICAgICAgICBtX2NsaWVudC0+
dXBkYXRlVGlsZShtX0lELCB1cGRhdGVJbmZvLCBtX3JlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZFRpbGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oCmluZGV4IDMyZmY0ZTdjNzkxZjJiZTM0YjUwMzgw
MDg1NjU4Mzg2ZWUxZWM2MzguLjA2MzEzMzNkMDE3NmM2OTM0ZDI2NTYxNzdhNjJkYmRjY2Y3ZDA4
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oCkBAIC03
NSw3ICs3NSw3IEBAIHByaXZhdGU6CiBjbGFzcyBDb29yZGluYXRlZFRpbGVDbGllbnQgewogcHVi
bGljOgogICAgIHZpcnR1YWwgfkNvb3JkaW5hdGVkVGlsZUNsaWVudCgpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBjcmVhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGls
ZShpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tpbmdTaXplKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3VyZmFj
ZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVUaWxlKGludCB0aWxlSUQpID0gMDsKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBiZWdpbkNvbnRlbnRVcGRhdGUoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIGludCYgYXRsYXNJRCwgV2ViQ29yZTo6SW50UG9pbnQmKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKaW5k
ZXggNGY4YzNhOTllYjY2NmYzMjA2MWRiOWNlODJkMGNjMmMyNjViNmRlYy4uZWVhYWM5OGIzYWI3
OTNlMTJiZDBlNjRlNGQwZDU3ODdkMjY1YzEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApAQCAtNTk0LDEwICs1OTQsMTAgQEAg
Ym9vbCBMYXllclRyZWVIb3N0OjpzdXBwb3J0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKQogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVUaWxl
KFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8m
IHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3QpCit2b2lkIExh
eWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRp
bGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tpbmdTaXpl
KQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKLSAgICBtX3dlYlBhZ2UtPnNlbmQo
TWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkNyZWF0ZVRpbGVGb3JMYXllcihs
YXllcklELCB0aWxlSUQsIHRhcmdldFJlY3QsIHVwZGF0ZUluZm8pKTsKKyAgICBtX3dlYlBhZ2Ut
PnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkNyZWF0ZVRpbGVGb3JM
YXllcihsYXllcklELCB0aWxlSUQsIHRhcmdldFJlY3QsIGJhY2tpbmdTaXplLCB1cGRhdGVJbmZv
KSk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnVwZGF0ZVRpbGUoV2ViTGF5ZXJJ
RCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5m
bywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGFyZ2V0UmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IDQwMTdlMWZjNDAwNjAz
MzRjODk1ZTg1YWM5NTg1Y2M4OTJkNWQ2N2QuLmFiMWU3M2ZlMDI4ZTFiMGVjYTQzNjI4OGQ1N2U5
NGQ0NjQzYzBkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQ2
NF90IGFkb3B0SW1hZ2VCYWNraW5nU3RvcmUoV2ViQ29yZTo6SW1hZ2UqKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVsZWFzZUltYWdlQmFja2luZ1N0b3JlKGludDY0X3QpOwogCi0gICAgdmlydHVhbCB2
b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0
ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0
ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBiYWNraW5nU2l6ZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoV2ViTGF5ZXJJRCwg
aW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJ
RCk7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHZpc2libGVDb250ZW50c1JlY3QoKSBj
b25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173224</attachid>
            <date>2012-11-09 00:20:11 -0800</date>
            <delta_ts>2012-11-09 16:25:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101701-20121109171806.patch</filename>
            <type>text/plain</type>
            <size>22793</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWE0ZWNiNGY4NzBlMTUw
MmVhMDViNWFlNDQ0NTc3ZDVkZmUzNTk4NS4uNDJiZGM4OGQ2OTZiMjc4N2M4N2ZlYjEzMjUxZjQ0
ZTM5ZDkyZTlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDEyLTExLTA4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBBbWVuZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1
cmVNYXBwZXIgdG8gZml0IGl0cyBvd24gc2VtYW50aWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgVGlsZWRCYWNraW5nU3RvcmU6OnJlY3QoKSBi
ZWNhdXNlIENvb3JkaW5hdGVkVGlsZSBuZWVkcyB0byBrbm93CisgICAgICAgIG1fcmVjdCBvZiBU
aWxlZEJhY2tpbmdTdG9yZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFj
a2luZ1N0b3JlLmg6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZTo6cmVjdCk6
CisKKzIwMTItMTEtMDggIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+
CisKICAgICAgICAgW1RleE1hcF0gSW5pdGlhbGl6ZSBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0
ciBpbiBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci4KICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY3NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmJlNzUzMTg2
OWJhNTY3YmU1ODBiZTRkZDdjMGU1ZGViMWMzODViZS4uZTY1MDY3YTIxZmE0MmEwYjFlOWJhNGFl
NjgyMzIzZWY0OTRiODIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDEyLTExLTA4
ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENv
b3JkaW5hdGVkIEdyYXBoaWNzOiBBbWVuZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRU
b1RleHR1cmVNYXBwZXIgdG8gZml0IGl0cyBvd24gc2VtYW50aWMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIGFsbCBzdWJjbGFzc2Vz
IG9mIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyIGltcGxlbWVudAorICAgICAgICBwYWludFRv
VGV4dHVyZU1hcHBlciB0byBkcmF3IGl0cyBvd24gdGV4dHVyZSBvbiB0aGUgZ2l2ZW4gdGFyZ2V0
UmVjdC4gU3ViY2xhc3NlcworICAgICAgICBjYW4gc2NhbGUgdGhlIHRleHR1cmUgdG8gZml0IHRo
ZSBzaXplIG9mIHRoZSB0YXJnZXRSZWN0LiBIb3dldmVyLCBvbmx5CisgICAgICAgIENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlciBkcmF3cyBpdHMgdGV4dHVyZSB1
c2luZyBpdHMgb3duCisgICAgICAgIHRleHR1cmUgc2l6ZS4gVGhlcmUgaXMgbm8gYnVnIHlldCwg
YmVjYXVzZSBUZXh0dXJlTWFwcGVyTGF5ZXIgdXNlcworICAgICAgICBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZSBvbmx5IGFzIGEgYmFja2luZyBzdG9yZSwgbm90IGEgY29udGVudCBsYXllci4gU28s
CisgICAgICAgIFRleHR1cmVNYXBwZXJMYXllciBhbHdheXMgcmVxdWVzdCBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZSB0byBkcmF3IHVzaW5nIGl0cyBvd24KKyAgICAgICAgdGV4dHVyZSBzaXplLiBI
b3dldmVyLCB3ZSBjYW4gdXNlIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIGFzIGEgY29udGVudCBs
YXllciBpbgorICAgICAgICB0aGUgZnV0dXJlLiBTbyB0aGlzIHBhdGNoIGZpeGVzIHRoaXMgcG90
ZW50aWFsIGJ1Zy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRC
YWNraW5nU3RvcmU6OnNldFNpemUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktp
dDo6bWFwVG9Db250ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OnBhaW50VGlsZXNUb1RleHR1cmVN
YXBwZXIpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRU
b1RleHR1cmVNYXBwZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChDb29yZGluYXRlZEJhY2tpbmdT
dG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHk6OmNyZWF0ZVRpbGVGb3JMYXllcik6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAoTGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oOgorICAg
ICAgICAoTGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZVRpbGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KToK
KyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRUaWxlOjp1cGRhdGVCYWNrQnVmZmVyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFRpbGUu
aDoKKyAgICAgICAgKENvb3JkaW5hdGVkVGlsZUNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlVGlsZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29v
cmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yKToKKworMjAxMi0xMS0w
OCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBD
b29yZGluYXRlZCBHcmFwaGljczogRG9uJ3Qgc2VuZCB0aGUgbWVzc2FnZXMgZm9yIHJlbGVhc2lu
ZyByZXNvdXJjZXMgZHVyaW5nIHB1cmdpbmcuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE2ODUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgKaW5kZXggYjNjMzY1YzM1OWNlMjYx
ZDk5YWVhODRhZDhjZTU2NWMxY2E4N2U0ZC4uNjUxZjJjZDdiYjcyYzFhNjAwZjc1NjQyMjk4MDgz
ZDdiZTk0YjQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VGlsZWRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UaWxlZEJhY2tpbmdTdG9yZS5oCkBAIC03Miw2ICs3Miw3IEBAIHB1YmxpYzoKICAgICBUaWxl
OjpDb29yZGluYXRlIHRpbGVDb29yZGluYXRlRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25z
dDsKICAgICBkb3VibGUgdGlsZURpc3RhbmNlKGNvbnN0IEludFJlY3QmIHZpZXdwb3J0LCBjb25z
dCBUaWxlOjpDb29yZGluYXRlJikgY29uc3Q7CiAKKyAgICBJbnRSZWN0IHJlY3QoKSBjb25zdCB7
IHJldHVybiBtX3JlY3Q7IH0KICAgICBJbnRSZWN0IGNvdmVyUmVjdCgpIGNvbnN0IHsgcmV0dXJu
IG1fY292ZXJSZWN0OyB9CiAgICAgYm9vbCB2aXNpYmxlQXJlYUlzQ292ZXJlZCgpIGNvbnN0Owog
ICAgIHZvaWQgcmVtb3ZlQWxsTm9uVmlzaWJsZVRpbGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggN2NiOTg0MmNmOWQ0ODM3ZjY0MjNiOTA1
M2I0YjY1ZjcwMDVmMTExMC4uZDQzNzdjZjM5ZDUyNDE2NDE1MDI2YTY4MGFjOGI3Yjc3ZDhmMWM4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAt
MTAxLDYgKzEwMSwxMSBAQCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IENvb3JkaW5hdGVkQmFj
a2luZ1N0b3JlOjp0ZXh0dXJlKCkgY29uc3QKICAgICByZXR1cm4gUGFzc1JlZlB0cjxCaXRtYXBU
ZXh0dXJlPigpOwogfQogCit2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpzZXRTaXplKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCit7CisgICAgbV9zaXplID0gc2l6ZTsKK30KKwog
c3RhdGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKQogewogI2lmIFBMQVRGT1JN
KFFUKQpAQCAtMTA5LDkgKzExNCwzMyBAQCBzdGF0aWMgYm9vbCBzaG91bGRTaG93VGlsZURlYnVn
VmlzdWFscygpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIENvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVy
LCBjb25zdCBGbG9hdFJlY3QmIC8qIHRhcmdldFJlY3QgKi8sIGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spCisv
LyBUaGlzIGZ1bmN0aW9uIGlzIGNvcGllZCBmcm9tIFRpbGVkQmFja2luZ1N0b3JlOjptYXBUb0Nv
bnRlbnRzKCkuCitzdGF0aWMgSW50UmVjdCBtYXBUb0NvbnRlbnRzKGNvbnN0IEludFJlY3QmIHJl
Y3QsIGZsb2F0IHNjYWxlKQoreworICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KEZsb2F0UmVj
dChyZWN0LngoKSAvIHNjYWxlLAorICAgICAgICByZWN0LnkoKSAvIHNjYWxlLAorICAgICAgICBy
ZWN0LndpZHRoKCkgLyBzY2FsZSwKKyAgICAgICAgcmVjdC5oZWlnaHQoKSAvIHNjYWxlKSk7Cit9
CisKK3N0YXRpYyB2b2lkIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIoVmVjdG9yPFRleHR1cmVN
YXBwZXJUaWxlKj4mIHRpbGVzLCBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCBCaXRtYXBUZXh0
dXJlKiBtYXNrLCB1bnNpZ25lZCBlZGdlc0V4cG9zZWQpCit7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB0aWxlcy5zaXplKCk7ICsraSkgeworICAgICAgICBUZXh0dXJlTWFwcGVyVGlsZSog
dGlsZSA9IHRpbGVzW2ldOworICAgICAgICB0aWxlLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFu
c2Zvcm0sIG9wYWNpdHksIG1hc2ssIGVkZ2VzRXhwb3NlZCk7CisgICAgICAgIHN0YXRpYyBib29s
IHNob3VsZERlYnVnID0gc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKTsKKyAgICAgICAgaWYg
KCFzaG91bGREZWJ1ZykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHRleHR1cmVN
YXBwZXItPmRyYXdCb3JkZXIoQ29sb3IoMHhGRiwgMCwgMCksIDIsIHRpbGUtPnJlY3QoKSwgdHJh
bnNmb3JtKTsKKyAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd1JlcGFpbnRDb3VudGVyKHN0YXRp
Y19jYXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSo+KHRpbGUpLT5yZXBhaW50Q291bnQo
KSwgOCwgdGlsZXNbaV0tPnJlY3QoKS5sb2NhdGlvbigpLCB0cmFuc2Zvcm0pOworICAgIH0KK30K
Kwordm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4
dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCBCaXRt
YXBUZXh0dXJlKiBtYXNrKQogewogICAgIFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+IHRpbGVz
VG9QYWludDsKKyAgICBWZWN0b3I8VGV4dHVyZU1hcHBlclRpbGUqPiBwcmV2aW91c1RpbGVzVG9Q
YWludDsKIAogICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBldmVyeSB0aW1lIHdlIHBhaW50LCBp
biBjYXNlIHRoZSBvcGFjaXR5IGhhcyBjaGFuZ2VkLgogICAgIEhhc2hNYXA8aW50LCBDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOwpAQCAt
MTMyLDcgKzE2MSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0
dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsCiAgICAgICAgIGlmIChvcGFj
aXR5IDwgMC45NSAmJiBjb3ZlcmVkUmVjdC5pbnRlcnNlY3RzKHRpbGUucmVjdCgpKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHRpbGVzVG9QYWludC5wcmVwZW5kKCZ0aWxlKTsK
KyAgICAgICAgcHJldmlvdXNUaWxlc1RvUGFpbnQuYXBwZW5kKCZ0aWxlKTsKICAgICB9CiAKICAg
ICAvLyBUT0RPOiBXaGVuIHRoZSBUZXh0dXJlTWFwcGVyIG1ha2VzIGEgZGlzdGluY3Rpb24gYmV0
d2VlbiBzb21lIGVkZ2VzIGV4cG9zZWQgYW5kIG5vIGVkZ2VzCkBAIC0xNDAsMTYgKzE2OSwxNiBA
QCB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0
dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLAogICAgIC8vIHBhc3NpbmcuIEZvciBub3cgd2UganVz
dCAiZXN0aW1hdGUiIHNpbmNlIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIGRvZXNuJ3Qga2VlcCBp
bmZvcm1hdGlvbiBhYm91dAogICAgIC8vIHRoZSB0b3RhbCB0aWxlZCBzdXJmYWNlIHJlY3QgYXQg
dGhlIG1vbWVudC4KICAgICB1bnNpZ25lZCBlZGdlc0V4cG9zZWQgPSBtX3RpbGVzLnNpemUoKSA+
IDEgPyBUZXh0dXJlTWFwcGVyOjpOb0VkZ2VzIDogVGV4dHVyZU1hcHBlcjo6QWxsRWRnZXM7Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0aWxlc1RvUGFpbnQuc2l6ZSgpOyArK2kpIHsKLSAg
ICAgICAgVGV4dHVyZU1hcHBlclRpbGUqIHRpbGUgPSB0aWxlc1RvUGFpbnRbaV07Ci0gICAgICAg
IHRpbGUtPnBhaW50KHRleHR1cmVNYXBwZXIsIHRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgZWRn
ZXNFeHBvc2VkKTsKLSAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkRGVidWcgPSBzaG91bGRTaG93
VGlsZURlYnVnVmlzdWFscygpOwotICAgICAgICBpZiAoIXNob3VsZERlYnVnKQotICAgICAgICAg
ICAgY29udGludWU7CiAKLSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd0JvcmRlcihDb2xvcigw
eEZGLCAwLCAwKSwgMiwgdGlsZS0+cmVjdCgpLCB0cmFuc2Zvcm0pOwotICAgICAgICB0ZXh0dXJl
TWFwcGVyLT5kcmF3UmVwYWludENvdW50ZXIoc3RhdGljX2Nhc3Q8Q29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlKj4odGlsZSktPnJlcGFpbnRDb3VudCgpLCA4LCB0aWxlc1RvUGFpbnRbaV0tPnJl
Y3QoKS5sb2NhdGlvbigpLCB0cmFuc2Zvcm0pOwotICAgIH0KKyAgICBBU1NFUlQoIW1fc2l6ZS5p
c1plcm8oKSk7CisgICAgSW50UmVjdCByZWN0T25Db250ZW50cyA9IG1hcFRvQ29udGVudHMoSW50
UmVjdChJbnRQb2ludDo6emVybygpLCBtX3NpemUpLCBtX3NjYWxlKTsKKyAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBhZGp1c3RlZFRyYW5zZm9ybSA9IHRyYW5zZm9ybTsKKyAgICAvLyB0YXJnZXRS
ZWN0IGlzIG9uIHRoZSBjb250ZW50cyBjb29yZGluYXRlIHN5c3RlbSwgc28gd2UgbXVzdCBjb21w
YXJlIHR3byByZWN0cyBvbiB0aGUgY29udGVudHMgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8g
U2VlIFRpbGVkQmFja2luZ1N0b3JlLgorICAgIGFkanVzdGVkVHJhbnNmb3JtLm11bHRpcGx5KFRy
YW5zZm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0KHJlY3RPbkNvbnRlbnRzLCB0YXJnZXRSZWN0
KSk7CisKKyAgICBwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKHByZXZpb3VzVGlsZXNUb1BhaW50
LCB0ZXh0dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgZWRnZXNF
eHBvc2VkKTsKKyAgICBwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKHRpbGVzVG9QYWludCwgdGV4
dHVyZU1hcHBlciwgYWRqdXN0ZWRUcmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGVkZ2VzRXhwb3Nl
ZCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmNvbW1pdFRpbGVPcGVyYXRp
b25zKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9y
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmUuaAppbmRleCBmZTZlNGFhMTViYzZjMDZjMzhjMWIwNjkyMjUwMzJk
Y2I5ZDNlMjBiLi43YTdhYTBiODI0ZDAxNjAwNDJmNTc3YjZiM2QxODUzMmMyMmNiODQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKQEAgLTY0LDYgKzY0LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUp
OyB9CiAgICAgdm9pZCBjb21taXRUaWxlT3BlcmF0aW9ucyhXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
Kik7CiAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlKCkgY29u
c3Q7CisgICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciosIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4JiwgZmxvYXQsIFdlYkNvcmU6OkJpdG1hcFRleHR1cmUqKTsKIAogcHJpdmF0ZToKQEAgLTcy
LDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICB7IH0KICAgICBIYXNoTWFwPGludCwgQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmVUaWxlPiBtX3RpbGVzOwogICAgIEhhc2hTZXQ8aW50PiBtX3RpbGVzVG9S
ZW1vdmU7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7CiAgICAgZmxvYXQgbV9zY2FsZTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAK
aW5kZXggMWQ2ZTVhZWZlNGIyZjJjMzEzNzZkNGZiMGU3NzRjYjFmNTI3NzI4Mi4uMGUyOWI3ZGNk
ZDcxYmI2ZWE1ZmY2YzlhMTc1ZGJkN2JkZWU2ZDgwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTU2LDkgKzU2LDkgQEAgdm9pZCBMYXll
clRyZWVDb29yZGluYXRvclByb3h5OjpkaXNwYXRjaFVwZGF0ZShjb25zdCBGdW5jdGlvbjx2b2lk
KCk+JiBmdW5jdGlvbikKICAgICBtX3JlbmRlcmVyLT5hcHBlbmRVcGRhdGUoZnVuY3Rpb24pOwog
fQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZVRpbGVGb3JMYXllcihp
bnQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3Qg
V2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykKK3ZvaWQgTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eTo6Y3JlYXRlVGlsZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlE
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBiYWNraW5nU2l6ZSwgY29uc3QgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRl
SW5mbykKIHsKLSAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6Y3Jl
YXRlVGlsZSwgbV9yZW5kZXJlci5nZXQoKSwgbGF5ZXJJRCwgdGlsZUlELCB1cGRhdGVJbmZvLnNj
YWxlRmFjdG9yKSk7CisgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6
OmNyZWF0ZVRpbGUsIG1fcmVuZGVyZXIuZ2V0KCksIGxheWVySUQsIHRpbGVJRCwgdXBkYXRlSW5m
by5zY2FsZUZhY3RvciwgYmFja2luZ1NpemUpKTsKICAgICB1cGRhdGVUaWxlRm9yTGF5ZXIobGF5
ZXJJRCwgdGlsZUlELCB0YXJnZXRSZWN0LCB1cGRhdGVJbmZvKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDY0NjgwMTE2OGYyNGE3ODli
N2ViODA3MWNmNGI2ZjhhNGM0ZmI5N2EuLjQ4N2I1N2Q3NDg3ZjM1M2VkODBkNTU5OTMyYTIzZGI5
NmI2OGZmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5
LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29udGVudHNTaXplKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVj
dChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBmbG9hdCBzY2FsZSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYgdHJhamVjdG9yeVZlY3Rvcik7CiAgICAgdm9pZCBkaWRSZW5kZXJGcmFtZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGNvdmVyZWRSZWN0KTsKLSAgICB2b2lkIGNyZWF0ZVRpbGVGb3JMYXllcihpbnQgbGF5ZXJJ
RCwgaW50IHRpbGVJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN1cmZhY2VVcGRh
dGVJbmZvJik7CisgICAgdm9pZCBjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGludCB0
aWxlSUQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIGJhY2tpbmdTaXplLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYpOwogICAgIHZv
aWQgdXBkYXRlVGlsZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mKTsKICAgICB2b2lkIHJlbW92
ZVRpbGVGb3JMYXllcihpbnQgbGF5ZXJJRCwgaW50IHRpbGVJRCk7CiAgICAgdm9pZCBjcmVhdGVV
cGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgY29uc3QgU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCBiYTg4ZGU1M2ZmMzNlNDVmMWQwODhhM2QyMDU1NzBhNDBmZDRiNTY3
Li45MmJiN2E2N2Y4NTAzNmVjZDA1OGEzZWMxOGIyZTc3ODM2MGM0ZTgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29y
ZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4K
QEAgLTI2LDcgKzI2LDcgQEAgbWVzc2FnZXMgLT4gTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSB7
CiAjZW5kaWYKICAgICBTZXRSb290Q29tcG9zaXRpbmdMYXllcih1aW50MzJfdCBpZCkKICAgICBE
ZWxldGVDb21wb3NpdGluZ0xheWVyKHVpbnQzMl90IGlkKQotICAgIENyZWF0ZVRpbGVGb3JMYXll
cih1aW50MzJfdCBsYXllcklELCBpbnQgdGlsZUlELCBXZWJDb3JlOjpJbnRSZWN0IHRhcmdldFJl
Y3QsIFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8gdXBkYXRlSW5mbykKKyAgICBDcmVhdGVUaWxl
Rm9yTGF5ZXIodWludDMyX3QgbGF5ZXJJRCwgaW50IHRpbGVJRCwgV2ViQ29yZTo6SW50UmVjdCB0
YXJnZXRSZWN0LCBXZWJDb3JlOjpJbnRTaXplIGJhY2tpbmdTaXplLCBXZWJLaXQ6OlN1cmZhY2VV
cGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAgICAgVXBkYXRlVGlsZUZvckxheWVyKHVpbnQzMl90IGxh
eWVySUQsIGludCB0aWxlSUQsIFdlYkNvcmU6OkludFJlY3QgdGFyZ2V0UmVjdCwgV2ViS2l0OjpT
dXJmYWNlVXBkYXRlSW5mbyB1cGRhdGVJbmZvKQogICAgIFJlbW92ZVRpbGVGb3JMYXllcih1aW50
MzJfdCBsYXllcklELCBpbnQgdGlsZUlEKQogICAgIENyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxh
c0lELCBXZWJLaXQ6OlNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZSBoYW5kbGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVSZW5kZXJlci5jcHAKaW5kZXggNjQzNmQ1NWVlYWQ5YzkyMjRkZTQxOWQwZDNh
ZDM2ZWZhZTJlNWRhZi4uOGVjMzI0MWU0Yjg0MzIzNWUwZDg0ODdhYzIxN2M1NGNmM2Y3MTIxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlUmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcApAQCAtMzc3LDkgKzM3NywxMSBA
QCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVCYWNraW5nU3RvcmVJZk5lZWRlZChXZWJM
YXllcklEIGxheWVySUQsIGludCAvKnRpbAogICAgICAgICBsYXllci0+c2V0QmFja2luZ1N0b3Jl
KDApOwogfQogCi12b2lkIExheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxlKFdlYkxheWVySUQg
bGF5ZXJJRCwgaW50IHRpbGVJRCwgZmxvYXQgc2NhbGUpCit2b2lkIExheWVyVHJlZVJlbmRlcmVy
OjpjcmVhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgZmxvYXQgc2NhbGUs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tpbmdTaXplKQogewotICAgIGdldEJhY2tpbmdT
dG9yZShsYXllcklEKS0+Y3JlYXRlVGlsZSh0aWxlSUQsIHNjYWxlKTsKKyAgICBSZWZQdHI8Q29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IGdldEJhY2tpbmdTdG9yZShsYXll
cklEKTsKKyAgICBiYWNraW5nU3RvcmUtPmNyZWF0ZVRpbGUodGlsZUlELCBzY2FsZSk7CisgICAg
YmFja2luZ1N0b3JlLT5zZXRTaXplKGJhY2tpbmdTaXplKTsKIH0KIAogdm9pZCBMYXllclRyZWVS
ZW5kZXJlcjo6cmVtb3ZlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGludCB0aWxlSUQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRleCAxZGNjYmJjZjkzZGZlMDg2YTVlMWY4ZTY5
ZDY3MGIxZDZjODc2ZTYyLi4zOGI5ODM3MTJhYTk0MTFhNWE4YmZiN2U5NjNiZGU1YmQ5NDRmODlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0TGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQsIGNvbnN0IFdlYkNvcmU6
OkZpbHRlck9wZXJhdGlvbnMmKTsKICNlbmRpZgogCi0gICAgdm9pZCBjcmVhdGVUaWxlKFdlYkxh
eWVySUQsIGludCwgZmxvYXQgc2NhbGUpOworICAgIHZvaWQgY3JlYXRlVGlsZShXZWJMYXllcklE
LCBpbnQsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdm9pZCBy
ZW1vdmVUaWxlKFdlYkxheWVySUQsIGludCk7CiAgICAgdm9pZCB1cGRhdGVUaWxlKFdlYkxheWVy
SUQsIGludCwgY29uc3QgVGlsZVVwZGF0ZSYpOwogICAgIHZvaWQgZmx1c2hMYXllckNoYW5nZXMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwCmluZGV4IGM1NmMyODU4NjM5OWQzYTJjMzY5N2E3NjYxZWI5N2QxY2NlNzhl
ODcuLmUwYTQxMjRlOGViMmUzMmFhZWFjYmNjYTBkMzRiYTBlZDQ2MGQyMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cApAQCAtNjQxLDkgKzY0MSw5IEBAIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
PiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmJlZ2luQ29udGVudFVwZGF0CiAgICAgcmV0dXJu
IG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5iZWdpbkNvbnRlbnRVcGRhdGUoc2l6
ZSwgY29udGVudHNPcGFxdWUoKSA/IDAgOiBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzQWxwaGEs
IGF0bGFzLCBvZmZzZXQpOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y3Jl
YXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbywg
Y29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpjcmVhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJ
bmZvLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBiYWNraW5nU2l6ZSkKIHsKLSAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNs
aWVudC0+Y3JlYXRlVGlsZShpZCgpLCB0aWxlSUQsIHVwZGF0ZUluZm8sIHRhcmdldFJlY3QpOwor
ICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5jcmVhdGVUaWxlKGlkKCksIHRp
bGVJRCwgdXBkYXRlSW5mbywgdGFyZ2V0UmVjdCwgYmFja2luZ1NpemUpOwogfQogCiB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBTdXJm
YWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbywgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmgKaW5kZXggMTE4OGFhNzVmYjc3ODI5YmIyMWM5OGVkZjBkNzBmYjIyNTUwMWUyZi4uMDI2OGYy
MmQ1N2MyNTU5NTk1OGJiYWNhNDBjZDE0NjM0NDc3Mzk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTUwLDcgKzUw
LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJD
bGllbnQgewogcHVibGljOgogICAgIC8vIENvb3JkaW5hdGVkVGlsZUNsaWVudAotICAgIHZpcnR1
YWwgdm9pZCBjcmVhdGVUaWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VV
cGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY3JlYXRlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRl
SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIGJhY2tpbmdTaXplKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUo
V2ViTGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKFdlYkxh
eWVySUQsIGludCB0aWxlSUQpID0gMDsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIENvbG9yIHRpbGVkQmFja2luZ1N0b3JlQmFja2dyb3VuZENvbG9yKCkgY29uc3Qg
T1ZFUlJJREU7CiAKICAgICAvLyBDb29yZGluYXRlZFRpbGVDbGllbnQKLSAgICB2aXJ0dWFsIHZv
aWQgY3JlYXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZv
JiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxl
KGludCB0aWxlSUQsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNraW5n
U2l6ZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUoaW50IHRpbGVJRCwg
Y29uc3QgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShpbnQgdGlsZUlEKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBiZWdpbkNvbnRlbnRVcGRhdGUo
Y29uc3QgSW50U2l6ZSYsIGludCYgYXRsYXNJRCwgSW50UG9pbnQmKSBPVkVSUklERTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkVGlsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFRpbGUuY3BwCmluZGV4IDU0OGQ0OWQz
MjdmMDM1NTMyNzQ2ZmQyZmI1OTU1YmQ2MWRhOGJhYzcuLjdlODZkMWYyYTcwY2E1MTc4NDE5ZGNl
NzE4ZTg0M2QxMjk4N2ZhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRUaWxlLmNwcApAQCAtODgsNyArODgsNyBAQCBWZWN0b3I8SW50UmVjdD4gQ29vcmRpbmF0
ZWRUaWxlOjp1cGRhdGVCYWNrQnVmZmVyKCkKICAgICBzdGF0aWMgaW50IGlkID0gMDsKICAgICBp
ZiAoIW1fSUQpIHsKICAgICAgICAgbV9JRCA9ICsraWQ7Ci0gICAgICAgIG1fY2xpZW50LT5jcmVh
dGVUaWxlKG1fSUQsIHVwZGF0ZUluZm8sIG1fcmVjdCk7CisgICAgICAgIG1fY2xpZW50LT5jcmVh
dGVUaWxlKG1fSUQsIHVwZGF0ZUluZm8sIG1fcmVjdCwgbV90aWxlZEJhY2tpbmdTdG9yZS0+cmVj
dCgpLnNpemUoKSk7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fY2xpZW50LT51cGRhdGVUaWxlKG1f
SUQsIHVwZGF0ZUluZm8sIG1fcmVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRUaWxlLmgKaW5kZXggMzJmZjRlN2M3OTFmMmJlMzRiNTAzODAwODU2NTgzODZlZTFl
YzYzOC4uMDYzMTMzM2QwMTc2YzY5MzRkMjY1NjE3N2E2MmRiZGNjZjdkMDgwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRUaWxlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmgKQEAgLTc1LDcgKzc1LDcgQEAg
cHJpdmF0ZToKIGNsYXNzIENvb3JkaW5hdGVkVGlsZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+Q29vcmRpbmF0ZWRUaWxlQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0
ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKGludCB0aWxlSUQs
IGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGFyZ2V0
UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRp
bGUoaW50IHRpbGVJRCkgPSAwOwogICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ+IGJlZ2luQ29udGVudFVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
aW50JiBhdGxhc0lELCBXZWJDb3JlOjpJbnRQb2ludCYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAppbmRleCA0ZjhjM2E5OWVi
NjY2ZjMyMDYxZGI5Y2U4MmQwY2MyYzI2NWI2ZGVjLi5lZWFhYzk4YjNhYjc5M2UxMmJkMGU2NGU0
ZDBkNTc4N2QyNjVjMTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBAIC01OTQsMTAgKzU5NCwxMCBAQCBib29sIExheWVyVHJl
ZUhvc3Q6OnN1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCBs
YXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbywg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGFyZ2V0UmVjdCkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3I6OmNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBT
dXJmYWNlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGFy
Z2V0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpCiB7CiAgICAgbV9z
aG91bGRTeW5jRnJhbWUgPSB0cnVlOwotICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Q3JlYXRlVGlsZUZvckxheWVyKGxheWVySUQsIHRpbGVJ
RCwgdGFyZ2V0UmVjdCwgdXBkYXRlSW5mbykpOworICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdl
czo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Q3JlYXRlVGlsZUZvckxheWVyKGxheWVySUQs
IHRpbGVJRCwgdGFyZ2V0UmVjdCwgYmFja2luZ1NpemUsIHVwZGF0ZUluZm8pKTsKIH0KIAogdm9p
ZCBMYXllclRyZWVDb29yZGluYXRvcjo6dXBkYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGlu
dCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiB0YXJnZXRSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKaW5kZXggNDAxN2UxZmM0MDA2MDMzNGM4OTVlODVhYzk1
ODVjYzg5MmQ1ZDY3ZC4uYWIxZTczZmUwMjhlMWIwZWNhNDM2Mjg4ZDU3ZTk0ZDQ2NDNjMGQ4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5o
CkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludDY0X3QgYWRvcHRJbWFn
ZUJhY2tpbmdTdG9yZShXZWJDb3JlOjpJbWFnZSopOwogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNl
SW1hZ2VCYWNraW5nU3RvcmUoaW50NjRfdCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGls
ZShXZWJMYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZShXZWJMYXll
cklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tpbmdTaXpl
KTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlELCBj
b25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlEKTsKICAgICB2aXJ0
dWFsIFdlYkNvcmU6OkludFJlY3QgdmlzaWJsZUNvbnRlbnRzUmVjdCgpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173394</attachid>
            <date>2012-11-09 16:25:18 -0800</date>
            <delta_ts>2012-11-09 18:32:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101701-20121110092310.patch</filename>
            <type>text/plain</type>
            <size>22795</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZiOWNlMTI3ZjcyZTkz
MGIwNTI3NzAzMjJiYTY2YjZmNzA0NmM3Zi4uOGI3MWFlMTcwMGQ3YzYyNWY1N2VkYTJjNGNkYzJl
YTcxNTY0M2Q2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDEyLTExLTA4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBBbWVuZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1
cmVNYXBwZXIgdG8gZml0IGl0cyBvd24gc2VtYW50aWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgVGlsZWRCYWNraW5nU3RvcmU6OnJlY3QoKSBi
ZWNhdXNlIENvb3JkaW5hdGVkVGlsZSBuZWVkcyB0byBrbm93CisgICAgICAgIG1fcmVjdCBvZiBU
aWxlZEJhY2tpbmdTdG9yZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFj
a2luZ1N0b3JlLmg6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZTo6cmVjdCk6
CisKKzIwMTItMTEtMDggIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+
CisKICAgICAgICAgW1RleE1hcF0gSW5pdGlhbGl6ZSBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0
ciBpbiBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci4KICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY3NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjA1MTQ3OWUw
YzJkNWU5NWJmNWZjNzhlZDhhMzExMjM1ODg5MDNkMi4uMzMwODUyNmY2N2RkMmM3ZWI3Zjc3YzY0
YjZmZTJkNWJmZWY3OTVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTExLTA4
ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENv
b3JkaW5hdGVkIEdyYXBoaWNzOiBBbWVuZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRU
b1RleHR1cmVNYXBwZXIgdG8gZml0IGl0cyBvd24gc2VtYW50aWMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIGFsbCBzdWJjbGFzc2Vz
IG9mIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyIGltcGxlbWVudAorICAgICAgICBwYWludFRv
VGV4dHVyZU1hcHBlciB0byBkcmF3IGl0cyBvd24gdGV4dHVyZSBvbiB0aGUgZ2l2ZW4gdGFyZ2V0
UmVjdC4gU3ViY2xhc3NlcworICAgICAgICBjYW4gc2NhbGUgdGhlIHRleHR1cmUgdG8gZml0IHRo
ZSBzaXplIG9mIHRoZSB0YXJnZXRSZWN0LiBIb3dldmVyLCBvbmx5CisgICAgICAgIENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlciBkcmF3cyBpdHMgdGV4dHVyZSB1
c2luZyBpdHMgb3duCisgICAgICAgIHRleHR1cmUgc2l6ZS4gVGhlcmUgaXMgbm8gYnVnIHlldCwg
YmVjYXVzZSBUZXh0dXJlTWFwcGVyTGF5ZXIgdXNlcworICAgICAgICBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZSBvbmx5IGFzIGEgYmFja2luZyBzdG9yZSwgbm90IGEgY29udGVudCBsYXllci4gU28s
CisgICAgICAgIFRleHR1cmVNYXBwZXJMYXllciBhbHdheXMgcmVxdWVzdCBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZSB0byBkcmF3IHVzaW5nIGl0cyBvd24KKyAgICAgICAgdGV4dHVyZSBzaXplLiBI
b3dldmVyLCB3ZSBjYW4gdXNlIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIGFzIGEgY29udGVudCBs
YXllciBpbgorICAgICAgICB0aGUgZnV0dXJlLiBTbyB0aGlzIHBhdGNoIGZpeGVzIHRoaXMgcG90
ZW50aWFsIGJ1Zy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRC
YWNraW5nU3RvcmU6OnNldFNpemUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktp
dDo6bWFwVG9Db250ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OnBhaW50VGlsZXNUb1RleHR1cmVN
YXBwZXIpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRU
b1RleHR1cmVNYXBwZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChDb29yZGluYXRlZEJhY2tpbmdT
dG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHk6OmNyZWF0ZVRpbGVGb3JMYXllcik6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAoTGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpjcmVhdGVUaWxlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oOgorICAg
ICAgICAoTGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZVRpbGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KToK
KyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRUaWxlOjp1cGRhdGVCYWNrQnVmZmVyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFRpbGUu
aDoKKyAgICAgICAgKENvb3JkaW5hdGVkVGlsZUNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlVGlsZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29v
cmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yKToKKwogMjAxMi0xMS0w
OSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBQREZQ
bHVnaW4gc2hvdWxkIHN1cHBvcnQgY2xpY2tpbmcgb24gZXh0ZXJuYWwgbGlua3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5oCmlu
ZGV4IDA4MmJlNzBjOGViMjc1MTc5MGI3YWI4Nzc1Njk0OWJhYzgxYTZkMjguLjI3ODM0MTNlMGVm
MWU1YWJkNTZhNjg3YjI3ZmEwZTNkMzg5NTU5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaApAQCAtNzIsNiArNzIsNyBA
QCBwdWJsaWM6CiAgICAgVGlsZTo6Q29vcmRpbmF0ZSB0aWxlQ29vcmRpbmF0ZUZvclBvaW50KGNv
bnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgZG91YmxlIHRpbGVEaXN0YW5jZShjb25zdCBJbnRS
ZWN0JiB2aWV3cG9ydCwgY29uc3QgVGlsZTo6Q29vcmRpbmF0ZSYpIGNvbnN0OwogCisgICAgSW50
UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9CiAgICAgSW50UmVjdCBjb3ZlclJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX2NvdmVyUmVjdDsgfQogICAgIGJvb2wgdmlzaWJsZUFyZWFJ
c0NvdmVyZWQoKSBjb25zdDsKICAgICB2b2lkIHJlbW92ZUFsbE5vblZpc2libGVUaWxlcygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDdjYjk4
NDJjZjlkNDgzN2Y2NDIzYjkwNTNiNGI2NWY3MDA1ZjExMTAuLmEwMDE1MGRmYzExMmUwYjFmM2Vm
OTZhMTQ5MDlkMTRlYTBhYjRhNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJh
Y2tpbmdTdG9yZS5jcHAKQEAgLTEwMSw2ICsxMDEsMTEgQEAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0
dXJlPiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSgpIGNvbnN0CiAgICAgcmV0dXJu
IFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4oKTsKIH0KIAordm9pZCBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZTo6c2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIG1f
c2l6ZSA9IHNpemU7Cit9CisKIHN0YXRpYyBib29sIHNob3VsZFNob3dUaWxlRGVidWdWaXN1YWxz
KCkKIHsKICNpZiBQTEFURk9STShRVCkKQEAgLTEwOSw5ICsxMTQsMzMgQEAgc3RhdGljIGJvb2wg
c2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1h
cHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgRmxvYXRSZWN0JiAvKiB0YXJnZXRSZWN0ICovLCBj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCBCaXRt
YXBUZXh0dXJlKiBtYXNrKQorLy8gVGhpcyBmdW5jdGlvbiBpcyBjb3BpZWQgZnJvbSBUaWxlZEJh
Y2tpbmdTdG9yZTo6bWFwVG9Db250ZW50cygpLgorc3RhdGljIEludFJlY3QgbWFwVG9Db250ZW50
cyhjb25zdCBJbnRSZWN0JiByZWN0LCBmbG9hdCBzY2FsZSkKK3sKKyAgICByZXR1cm4gZW5jbG9z
aW5nSW50UmVjdChGbG9hdFJlY3QocmVjdC54KCkgLyBzY2FsZSwKKyAgICAgICAgcmVjdC55KCkg
LyBzY2FsZSwKKyAgICAgICAgcmVjdC53aWR0aCgpIC8gc2NhbGUsCisgICAgICAgIHJlY3QuaGVp
Z2h0KCkgLyBzY2FsZSkpOworfQorCitzdGF0aWMgdm9pZCBwYWludFRpbGVzVG9UZXh0dXJlTWFw
cGVyKFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+JiB0aWxlcywgVGV4dHVyZU1hcHBlciogdGV4
dHVyZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQg
b3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaywgdW5zaWduZWQgZWRnZXNFeHBvc2VkKQorewor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGlsZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
VGV4dHVyZU1hcHBlclRpbGUqIHRpbGUgPSB0aWxlc1tpXTsKKyAgICAgICAgdGlsZS0+cGFpbnQo
dGV4dHVyZU1hcHBlciwgdHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrLCBlZGdlc0V4cG9zZWQpOwor
ICAgICAgICBzdGF0aWMgYm9vbCBzaG91bGREZWJ1ZyA9IHNob3VsZFNob3dUaWxlRGVidWdWaXN1
YWxzKCk7CisgICAgICAgIGlmICghc2hvdWxkRGVidWcpCisgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3Qm9yZGVyKENvbG9yKDB4RkYsIDAsIDApLCAy
LCB0aWxlLT5yZWN0KCksIHRyYW5zZm9ybSk7CisgICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdS
ZXBhaW50Q291bnRlcihzdGF0aWNfY2FzdDxDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUqPih0
aWxlKS0+cmVwYWludENvdW50KCksIDgsIHRpbGVzW2ldLT5yZWN0KCkubG9jYXRpb24oKSwgdHJh
bnNmb3JtKTsKKyAgICB9Cit9CisKK3ZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50
VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IEZsb2F0
UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwg
ZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaykKIHsKICAgICBWZWN0b3I8VGV4dHVy
ZU1hcHBlclRpbGUqPiB0aWxlc1RvUGFpbnQ7CisgICAgVmVjdG9yPFRleHR1cmVNYXBwZXJUaWxl
Kj4gcHJldmlvdXNUaWxlc1RvUGFpbnQ7CiAKICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgZXZl
cnkgdGltZSB3ZSBwYWludCwgaW4gY2FzZSB0aGUgb3BhY2l0eSBoYXMgY2hhbmdlZC4KICAgICBI
YXNoTWFwPGludCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6aXRlcmF0b3IgZW5kID0g
bV90aWxlcy5lbmQoKTsKQEAgLTEzMiwyNCArMTYxLDI0IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNr
aW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBw
ZXIsCiAgICAgICAgIGlmIChvcGFjaXR5IDwgMC45NSAmJiBjb3ZlcmVkUmVjdC5pbnRlcnNlY3Rz
KHRpbGUucmVjdCgpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHRpbGVzVG9Q
YWludC5wcmVwZW5kKCZ0aWxlKTsKKyAgICAgICAgcHJldmlvdXNUaWxlc1RvUGFpbnQuYXBwZW5k
KCZ0aWxlKTsKICAgICB9CiAKLSAgICAvLyBUT0RPOiBXaGVuIHRoZSBUZXh0dXJlTWFwcGVyIG1h
a2VzIGEgZGlzdGluY3Rpb24gYmV0d2VlbiBzb21lIGVkZ2VzIGV4cG9zZWQgYW5kIG5vIGVkZ2Vz
CisgICAgLy8gRklYTUU6IFdoZW4gdGhlIFRleHR1cmVNYXBwZXIgbWFrZXMgYSBkaXN0aW5jdGlv
biBiZXR3ZWVuIHNvbWUgZWRnZXMgZXhwb3NlZCBhbmQgbm8gZWRnZXMKICAgICAvLyBleHBvc2Vk
LCB0aGUgdmFsdWUgcGFzc2VkIHNob3VsZCBiZSBhbiBhY2N1cmF0ZSByZWZsZWN0aW9uIG9mIHRo
ZSB0aWxlIHN1YnNldCB0aGF0IHdlIGFyZQogICAgIC8vIHBhc3NpbmcuIEZvciBub3cgd2UganVz
dCAiZXN0aW1hdGUiIHNpbmNlIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIGRvZXNuJ3Qga2VlcCBp
bmZvcm1hdGlvbiBhYm91dAogICAgIC8vIHRoZSB0b3RhbCB0aWxlZCBzdXJmYWNlIHJlY3QgYXQg
dGhlIG1vbWVudC4KICAgICB1bnNpZ25lZCBlZGdlc0V4cG9zZWQgPSBtX3RpbGVzLnNpemUoKSA+
IDEgPyBUZXh0dXJlTWFwcGVyOjpOb0VkZ2VzIDogVGV4dHVyZU1hcHBlcjo6QWxsRWRnZXM7Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0aWxlc1RvUGFpbnQuc2l6ZSgpOyArK2kpIHsKLSAg
ICAgICAgVGV4dHVyZU1hcHBlclRpbGUqIHRpbGUgPSB0aWxlc1RvUGFpbnRbaV07Ci0gICAgICAg
IHRpbGUtPnBhaW50KHRleHR1cmVNYXBwZXIsIHRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgZWRn
ZXNFeHBvc2VkKTsKLSAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkRGVidWcgPSBzaG91bGRTaG93
VGlsZURlYnVnVmlzdWFscygpOwotICAgICAgICBpZiAoIXNob3VsZERlYnVnKQotICAgICAgICAg
ICAgY29udGludWU7CiAKLSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd0JvcmRlcihDb2xvcigw
eEZGLCAwLCAwKSwgMiwgdGlsZS0+cmVjdCgpLCB0cmFuc2Zvcm0pOwotICAgICAgICB0ZXh0dXJl
TWFwcGVyLT5kcmF3UmVwYWludENvdW50ZXIoc3RhdGljX2Nhc3Q8Q29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlKj4odGlsZSktPnJlcGFpbnRDb3VudCgpLCA4LCB0aWxlc1RvUGFpbnRbaV0tPnJl
Y3QoKS5sb2NhdGlvbigpLCB0cmFuc2Zvcm0pOwotICAgIH0KKyAgICBBU1NFUlQoIW1fc2l6ZS5p
c1plcm8oKSk7CisgICAgRmxvYXRSZWN0IHJlY3RPbkNvbnRlbnRzID0gbWFwVG9Db250ZW50cyhJ
bnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIG1fc2l6ZSksIG1fc2NhbGUpOworICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IGFkanVzdGVkVHJhbnNmb3JtID0gdHJhbnNmb3JtOworICAgIC8vIHRhcmdl
dFJlY3QgaXMgb24gdGhlIGNvbnRlbnRzIGNvb3JkaW5hdGUgc3lzdGVtLCBzbyB3ZSBtdXN0IGNv
bXBhcmUgdHdvIHJlY3RzIG9uIHRoZSBjb250ZW50cyBjb29yZGluYXRlIHN5c3RlbS4KKyAgICAv
LyBTZWUgVGlsZWRCYWNraW5nU3RvcmUuCisgICAgYWRqdXN0ZWRUcmFuc2Zvcm0ubXVsdGlwbHko
VHJhbnNmb3JtYXRpb25NYXRyaXg6OnJlY3RUb1JlY3QocmVjdE9uQ29udGVudHMsIHRhcmdldFJl
Y3QpKTsKKworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIocHJldmlvdXNUaWxlc1RvUGFp
bnQsIHRleHR1cmVNYXBwZXIsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrLCBlZGdl
c0V4cG9zZWQpOworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIodGlsZXNUb1BhaW50LCB0
ZXh0dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgZWRnZXNFeHBv
c2VkKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6Y29tbWl0VGlsZU9wZXJh
dGlvbnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0
b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEJhY2tpbmdTdG9yZS5oCmluZGV4IGZlNmU0YWExNWJjNmMwNmMzOGMxYjA2OTIyNTAz
MmRjYjlkM2UyMGIuLjdhN2FhMGI4MjRkMDE2MDA0MmY1NzdiNmIzZDE4NTMyYzIyY2I4NDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaApAQCAtNjQsNiArNjQs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZSk7IH0KICAgICB2b2lkIGNvbW1pdFRpbGVPcGVyYXRpb25zKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXIqKTsKICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSBj
b25zdDsKKyAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXgmLCBmbG9hdCwgV2ViQ29yZTo6Qml0bWFwVGV4dHVyZSopOwogCiBwcml2YXRlOgpAQCAt
NzIsNiArNzMsNyBAQCBwcml2YXRlOgogICAgIHsgfQogICAgIEhhc2hNYXA8aW50LCBDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZVRpbGU+IG1fdGlsZXM7CiAgICAgSGFzaFNldDxpbnQ+IG1fdGlsZXNU
b1JlbW92ZTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIG1fc2l6ZTsKICAgICBmbG9hdCBtX3NjYWxl
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNw
cAppbmRleCAxZDZlNWFlZmU0YjJmMmMzMTM3NmQ0ZmIwZTc3NGNiMWY1Mjc3MjgyLi4wZTI5Yjdk
Y2RkNzFiYjZlYTVmZjZjOWExNzVkYmQ3YmRlZTZkODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcApAQCAtNTYsOSArNTYsOSBAQCB2b2lkIExh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmRpc3BhdGNoVXBkYXRlKGNvbnN0IEZ1bmN0aW9uPHZv
aWQoKT4mIGZ1bmN0aW9uKQogICAgIG1fcmVuZGVyZXItPmFwcGVuZFVwZGF0ZShmdW5jdGlvbik7
CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlVGlsZUZvckxheWVy
KGludCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25z
dCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQordm9pZCBMYXllclRyZWVD
b29yZGluYXRvclByb3h5OjpjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGludCB0aWxl
SUQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIGJhY2tpbmdTaXplLCBjb25zdCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvJiB1cGRh
dGVJbmZvKQogewotICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpj
cmVhdGVUaWxlLCBtX3JlbmRlcmVyLmdldCgpLCBsYXllcklELCB0aWxlSUQsIHVwZGF0ZUluZm8u
c2NhbGVGYWN0b3IpKTsKKyAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJl
cjo6Y3JlYXRlVGlsZSwgbV9yZW5kZXJlci5nZXQoKSwgbGF5ZXJJRCwgdGlsZUlELCB1cGRhdGVJ
bmZvLnNjYWxlRmFjdG9yLCBiYWNraW5nU2l6ZSkpOwogICAgIHVwZGF0ZVRpbGVGb3JMYXllcihs
YXllcklELCB0aWxlSUQsIHRhcmdldFJlY3QsIHVwZGF0ZUluZm8pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKaW5kZXggNjQ2ODAxMTY4ZjI0YTc4
OWI3ZWI4MDcxY2Y0YjZmOGE0YzRmYjk3YS4uNDg3YjU3ZDc0ODdmMzUzZWQ4MGQ1NTk5MzJhMjNk
Yjk2YjY4ZmZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkuaApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb250ZW50c1NpemUo
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNS
ZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKTsKICAgICB2b2lkIGRpZFJlbmRlckZyYW1l
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgY292ZXJlZFJlY3QpOwotICAgIHZvaWQgY3JlYXRlVGlsZUZvckxheWVyKGludCBsYXll
cklELCBpbnQgdGlsZUlELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3VyZmFjZVVw
ZGF0ZUluZm8mKTsKKyAgICB2b2lkIGNyZWF0ZVRpbGVGb3JMYXllcihpbnQgbGF5ZXJJRCwgaW50
IHRpbGVJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgYmFja2luZ1NpemUsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJik7CiAgICAg
dm9pZCB1cGRhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYpOwogICAgIHZvaWQgcmVt
b3ZlVGlsZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlEKTsKICAgICB2b2lkIGNyZWF0
ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBjb25zdCBTaGFyZWFibGVTdXJmYWNlOjpIYW5kbGUm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IGJhODhkZTUzZmYzM2U0NWYxZDA4OGEzZDIwNTU3MGE0MGZkNGI1
NjcuLjkyYmI3YTY3Zjg1MDM2ZWNkMDU4YTNlYzE4YjJlNzc4MzYwYzRlODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjYsNyArMjYsNyBAQCBtZXNzYWdlcyAtPiBMYXllclRyZWVDb29yZGluYXRvclByb3h5
IHsKICNlbmRpZgogICAgIFNldFJvb3RDb21wb3NpdGluZ0xheWVyKHVpbnQzMl90IGlkKQogICAg
IERlbGV0ZUNvbXBvc2l0aW5nTGF5ZXIodWludDMyX3QgaWQpCi0gICAgQ3JlYXRlVGlsZUZvckxh
eWVyKHVpbnQzMl90IGxheWVySUQsIGludCB0aWxlSUQsIFdlYkNvcmU6OkludFJlY3QgdGFyZ2V0
UmVjdCwgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyB1cGRhdGVJbmZvKQorICAgIENyZWF0ZVRp
bGVGb3JMYXllcih1aW50MzJfdCBsYXllcklELCBpbnQgdGlsZUlELCBXZWJDb3JlOjpJbnRSZWN0
IHRhcmdldFJlY3QsIFdlYkNvcmU6OkludFNpemUgYmFja2luZ1NpemUsIFdlYktpdDo6U3VyZmFj
ZVVwZGF0ZUluZm8gdXBkYXRlSW5mbykKICAgICBVcGRhdGVUaWxlRm9yTGF5ZXIodWludDMyX3Qg
bGF5ZXJJRCwgaW50IHRpbGVJRCwgV2ViQ29yZTo6SW50UmVjdCB0YXJnZXRSZWN0LCBXZWJLaXQ6
OlN1cmZhY2VVcGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAgICAgUmVtb3ZlVGlsZUZvckxheWVyKHVp
bnQzMl90IGxheWVySUQsIGludCB0aWxlSUQpCiAgICAgQ3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0
bGFzSUQsIFdlYktpdDo6U2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlIGhhbmRsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZVJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAppbmRleCA2NDM2ZDU1ZWVhZDljOTIyNGRlNDE5ZDBk
M2FkMzZlZmFlMmU1ZGFmLi44ZWMzMjQxZTRiODQzMjM1ZTBkODQ4N2FjMjE3YzU0Y2YzZjcxMjFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCkBAIC0zNzcsOSArMzc3LDEx
IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKFdl
YkxheWVySUQgbGF5ZXJJRCwgaW50IC8qdGlsCiAgICAgICAgIGxheWVyLT5zZXRCYWNraW5nU3Rv
cmUoMCk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZVRpbGUoV2ViTGF5ZXJJ
RCBsYXllcklELCBpbnQgdGlsZUlELCBmbG9hdCBzY2FsZSkKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVy
ZXI6OmNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBmbG9hdCBzY2Fs
ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpCiB7Ci0gICAgZ2V0QmFja2lu
Z1N0b3JlKGxheWVySUQpLT5jcmVhdGVUaWxlKHRpbGVJRCwgc2NhbGUpOworICAgIFJlZlB0cjxD
b29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlID0gZ2V0QmFja2luZ1N0b3JlKGxh
eWVySUQpOworICAgIGJhY2tpbmdTdG9yZS0+Y3JlYXRlVGlsZSh0aWxlSUQsIHNjYWxlKTsKKyAg
ICBiYWNraW5nU3RvcmUtPnNldFNpemUoYmFja2luZ1NpemUpOwogfQogCiB2b2lkIExheWVyVHJl
ZVJlbmRlcmVyOjpyZW1vdmVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZVJlbmRlcmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCmluZGV4IDFkY2NiYmNmOTNkZmUwODZhNWUxZjhl
NjlkNjcwYjFkNmM4NzZlNjIuLjM4Yjk4MzcxMmFhOTQxMWE1YThiZmI3ZTk2M2JkZTViZDk0NGY4
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaApAQCAtODUsNyArODUsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRMYXllckZpbHRlcnMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29y
ZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwogI2VuZGlmCiAKLSAgICB2b2lkIGNyZWF0ZVRpbGUoV2Vi
TGF5ZXJJRCwgaW50LCBmbG9hdCBzY2FsZSk7CisgICAgdm9pZCBjcmVhdGVUaWxlKFdlYkxheWVy
SUQsIGludCwgZmxvYXQgc2NhbGUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAgICB2b2lk
IHJlbW92ZVRpbGUoV2ViTGF5ZXJJRCwgaW50KTsKICAgICB2b2lkIHVwZGF0ZVRpbGUoV2ViTGF5
ZXJJRCwgaW50LCBjb25zdCBUaWxlVXBkYXRlJik7CiAgICAgdm9pZCBmbHVzaExheWVyQ2hhbmdl
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5jcHAKaW5kZXggYzU2YzI4NTg2Mzk5ZDNhMmMzNjk3YTc2NjFlYjk3ZDFjY2U3
OGU4Ny4uZTBhNDEyNGU4ZWIyZTMyYWFlYWNiY2NhMGQzNGJhMGVkNDYwZDIzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
Y3BwCkBAIC02NDEsOSArNjQxLDkgQEAgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ+IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YmVnaW5Db250ZW50VXBkYXQKICAgICByZXR1
cm4gbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmJlZ2luQ29udGVudFVwZGF0ZShz
aXplLCBjb250ZW50c09wYXF1ZSgpID8gMCA6IFNoYXJlYWJsZUJpdG1hcDo6U3VwcG9ydHNBbHBo
YSwgYXRsYXMsIG9mZnNldCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpj
cmVhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZv
LCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0KQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmNyZWF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0
ZUluZm8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIGJhY2tpbmdTaXplKQogewotICAgIG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Q2xpZW50LT5jcmVhdGVUaWxlKGlkKCksIHRpbGVJRCwgdXBkYXRlSW5mbywgdGFyZ2V0UmVjdCk7
CisgICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPmNyZWF0ZVRpbGUoaWQoKSwg
dGlsZUlELCB1cGRhdGVJbmZvLCB0YXJnZXRSZWN0LCBiYWNraW5nU2l6ZSk7CiB9CiAKIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp1cGRhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFN1
cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuaAppbmRleCAxMTg4YWE3NWZiNzc4MjliYjIxYzk4ZWRmMGQ3MGZiMjI1NTAxZTJmLi4wMjY4
ZjIyZDU3YzI1NTk1OTU4YmJhY2E0MGNkMTQ2MzQ0NzczOTVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtNTAsNyAr
NTAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ckNsaWVudCB7CiBwdWJsaWM6CiAgICAgLy8gQ29vcmRpbmF0ZWRUaWxlQ2xpZW50Ci0gICAgdmly
dHVhbCB2b2lkIGNyZWF0ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgU3VyZmFj
ZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBjcmVhdGVUaWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRh
dGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgYmFja2luZ1NpemUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGls
ZShXZWJMYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRpbGUoV2Vi
TGF5ZXJJRCwgaW50IHRpbGVJRCkgPSAwOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgQ29sb3IgdGlsZWRCYWNraW5nU3RvcmVCYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dCBPVkVSUklERTsKIAogICAgIC8vIENvb3JkaW5hdGVkVGlsZUNsaWVudAotICAgIHZpcnR1YWwg
dm9pZCBjcmVhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVwZGF0ZUlu
Zm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRp
bGUoaW50IHRpbGVJRCwgY29uc3QgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tp
bmdTaXplKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGlsZShpbnQgdGlsZUlE
LCBjb25zdCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgSW50UmVjdCYpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKGludCB0aWxlSUQpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+IGJlZ2luQ29udGVudFVwZGF0
ZShjb25zdCBJbnRTaXplJiwgaW50JiBhdGxhc0lELCBJbnRQb2ludCYpIE9WRVJSSURFOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5jcHAKaW5kZXggNTQ4ZDQ5
ZDMyN2YwMzU1MzI3NDZmZDJmYjU5NTViZDYxZGE4YmFjNy4uN2U4NmQxZjJhNzBjYTUxNzg0MTlk
Y2U3MThlODQzZDEyOTg3ZmEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZFRpbGUuY3BwCkBAIC04OCw3ICs4OCw3IEBAIFZlY3RvcjxJbnRSZWN0PiBDb29yZGlu
YXRlZFRpbGU6OnVwZGF0ZUJhY2tCdWZmZXIoKQogICAgIHN0YXRpYyBpbnQgaWQgPSAwOwogICAg
IGlmICghbV9JRCkgewogICAgICAgICBtX0lEID0gKytpZDsKLSAgICAgICAgbV9jbGllbnQtPmNy
ZWF0ZVRpbGUobV9JRCwgdXBkYXRlSW5mbywgbV9yZWN0KTsKKyAgICAgICAgbV9jbGllbnQtPmNy
ZWF0ZVRpbGUobV9JRCwgdXBkYXRlSW5mbywgbV9yZWN0LCBtX3RpbGVkQmFja2luZ1N0b3JlLT5y
ZWN0KCkuc2l6ZSgpKTsKICAgICB9IGVsc2UKICAgICAgICAgbV9jbGllbnQtPnVwZGF0ZVRpbGUo
bV9JRCwgdXBkYXRlSW5mbywgbV9yZWN0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZFRpbGUuaAppbmRleCAzMmZmNGU3Yzc5MWYyYmUzNGI1MDM4MDA4NTY1ODM4NmVl
MWVjNjM4Li4wNjMxMzMzZDAxNzZjNjkzNGQyNjU2MTc3YTYyZGJkY2NmN2QwODAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZFRpbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFRpbGUuaApAQCAtNzUsNyArNzUsNyBA
QCBwcml2YXRlOgogY2xhc3MgQ29vcmRpbmF0ZWRUaWxlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5Db29yZGluYXRlZFRpbGVDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlVGlsZShpbnQgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUoaW50IHRpbGVJ
RCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0YXJn
ZXRSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNraW5nU2l6ZSkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZv
JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
VGlsZShpbnQgdGlsZUlEKSA9IDA7CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
LCBpbnQmIGF0bGFzSUQsIFdlYkNvcmU6OkludFBvaW50JikgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDRmOGMzYTk5
ZWI2NjZmMzIwNjFkYjljZTgyZDBjYzJjMjY1YjZkZWMuLmVlYWFjOThiM2FiNzkzZTEyYmQwZTY0
ZTRkMGQ1Nzg3ZDI2NWMxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvci5jcHAKQEAgLTU5NCwxMCArNTk0LDEwIEBAIGJvb2wgTGF5ZXJU
cmVlSG9zdDo6c3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlVGlsZShXZWJMYXllcklE
IGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZv
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0YXJnZXRSZWN0KQordm9pZCBMYXllclRyZWVDb29y
ZGluYXRvcjo6Y3JlYXRlVGlsZShXZWJMYXllcklEIGxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0
IFN1cmZhY2VVcGRhdGVJbmZvJiB1cGRhdGVJbmZvLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0
YXJnZXRSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNraW5nU2l6ZSkKIHsKICAgICBt
X3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7Ci0gICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpM
YXllclRyZWVDb29yZGluYXRvclByb3h5OjpDcmVhdGVUaWxlRm9yTGF5ZXIobGF5ZXJJRCwgdGls
ZUlELCB0YXJnZXRSZWN0LCB1cGRhdGVJbmZvKSk7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpDcmVhdGVUaWxlRm9yTGF5ZXIobGF5ZXJJ
RCwgdGlsZUlELCB0YXJnZXRSZWN0LCBiYWNraW5nU2l6ZSwgdXBkYXRlSW5mbykpOwogfQogCiB2
b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjp1cGRhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwg
aW50IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8sIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAppbmRleCA0MDE3ZTFmYzQwMDYwMzM0Yzg5NWU4NWFj
OTU4NWNjODkyZDVkNjdkLi5hYjFlNzNmZTAyOGUxYjBlY2E0MzYyODhkNTdlOTRkNDY0M2MwZDhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
LmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50NjRfdCBhZG9wdElt
YWdlQmFja2luZ1N0b3JlKFdlYkNvcmU6OkltYWdlKik7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVh
c2VJbWFnZUJhY2tpbmdTdG9yZShpbnQ2NF90KTsKIAotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVU
aWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKFdlYkxh
eWVySUQsIGludCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2luZ1Np
emUpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQs
IGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKFdlYkxheWVySUQsIGludCB0aWxlSUQpOwogICAgIHZp
cnR1YWwgV2ViQ29yZTo6SW50UmVjdCB2aXNpYmxlQ29udGVudHNSZWN0KCkgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>