<?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>107910</bug_id>
          
          <creation_ts>2013-01-24 21:30:12 -0800</creation_ts>
          <short_desc>Coordinated Graphics: Refactor code related to debug border and repaint count.</short_desc>
          <delta_ts>2013-01-28 23:46:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>105787</dependson>
          <blocked>107198</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Dongseong Hwang">dongseong.hwang</assigned_to>
          <cc>benjamin</cc>
    
    <cc>noam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>816182</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-24 21:30:12 -0800</bug_when>
    <thetext>Match drawing debug visuals of Coordinated Graphics to Bug 105787.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816193</commentid>
    <comment_count>1</comment_count>
      <attachid>184657</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-24 21:39:09 -0800</bug_when>
    <thetext>Created attachment 184657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816196</commentid>
    <comment_count>2</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-24 21:40:56 -0800</bug_when>
    <thetext>I did not change WK2 part.
See Bug 105787#c54 and Bug 105787#c55</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816392</commentid>
    <comment_count>3</comment_count>
      <attachid>184657</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-01-25 01:58:44 -0800</bug_when>
    <thetext>Comment on attachment 184657
Patch

Attachment 184657 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16111466</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816455</commentid>
    <comment_count>4</comment_count>
      <attachid>184657</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-25 03:35:52 -0800</bug_when>
    <thetext>Comment on attachment 184657
Patch

Attachment 184657 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16110642</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818081</commentid>
    <comment_count>5</comment_count>
      <attachid>185059</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-28 14:07:19 -0800</bug_when>
    <thetext>Created attachment 185059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818089</commentid>
    <comment_count>6</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-28 14:13:49 -0800</bug_when>
    <thetext>This patch was already reviewed by noam in Bug 105787.
I separated WK2 part in this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818111</commentid>
    <comment_count>7</comment_count>
      <attachid>185059</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-28 14:30:56 -0800</bug_when>
    <thetext>Comment on attachment 185059
Patch

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

I have nothing against this for WebKit2. Please have No&apos;am review it.

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:165
&gt; +    HashMap&lt;uint32_t, CoordinatedBackingStoreTile&gt;::iterator end = m_tiles.end();
&gt; +    for (HashMap&lt;uint32_t, CoordinatedBackingStoreTile&gt;::iterator it = m_tiles.begin(); it != end; ++it)

Looks like your hashmap is desperate to get a typedef :)

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h:74
&gt; +    WebCore::FloatRect rect() const { return WebCore::FloatRect(WebCore::FloatPoint::zero(), m_size); }

This name seems too generic. I have no idea what is a rect for a backing store.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818161</commentid>
    <comment_count>8</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-28 15:06:21 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 185059 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185059&amp;action=review
&gt; 
&gt; I have nothing against this for WebKit2. Please have No&apos;am review it.

Thank you for review! I ask noam :)

&gt; Looks like your hashmap is desperate to get a typedef :)

I&apos;ll use typedef!

&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h:74
&gt; &gt; +    WebCore::FloatRect rect() const { return WebCore::FloatRect(WebCore::FloatPoint::zero(), m_size); }
&gt; 
&gt; This name seems too generic. I have no idea what is a rect for a backing store.

This method matches to TextureMapperTiledBackingStore::rect(). rect is contents rect of a backing store.
noam, is it better to change name? something like contentsRect?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818236</commentid>
    <comment_count>9</comment_count>
      <attachid>185093</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-28 16:21:26 -0800</bug_when>
    <thetext>Created attachment 185093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818237</commentid>
    <comment_count>10</comment_count>
      <attachid>185094</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-28 16:22:24 -0800</bug_when>
    <thetext>Created attachment 185094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818263</commentid>
    <comment_count>11</comment_count>
      <attachid>185104</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-28 16:44:22 -0800</bug_when>
    <thetext>Created attachment 185104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818276</commentid>
    <comment_count>12</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-28 16:55:48 -0800</bug_when>
    <thetext>noam, benjaminp agreed on this patch.
could you review again? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818515</commentid>
    <comment_count>13</comment_count>
      <attachid>185104</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-01-28 22:03:42 -0800</bug_when>
    <thetext>Comment on attachment 185104
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:380
&gt; +

Line not necessary

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:390
&gt; +

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818540</commentid>
    <comment_count>14</comment_count>
      <attachid>185157</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-28 22:33:00 -0800</bug_when>
    <thetext>Created attachment 185157
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818545</commentid>
    <comment_count>15</comment_count>
      <attachid>185160</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-28 22:36:34 -0800</bug_when>
    <thetext>Created attachment 185160
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818552</commentid>
    <comment_count>16</comment_count>
      <attachid>185161</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-28 22:40:40 -0800</bug_when>
    <thetext>Created attachment 185161
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818620</commentid>
    <comment_count>17</comment_count>
      <attachid>185161</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-28 23:46:29 -0800</bug_when>
    <thetext>Comment on attachment 185161
Patch for landing

Clearing flags on attachment: 185161

Committed r141065: &lt;http://trac.webkit.org/changeset/141065&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818621</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-28 23:46:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184657</attachid>
            <date>2013-01-24 21:39:09 -0800</date>
            <delta_ts>2013-01-28 14:07:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107910-20130125143550.patch</filename>
            <type>text/plain</type>
            <size>22109</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTU2YmU0Yzk4MjYxMGQ5
YWFhMTFhZjQ0ZTA3MGY1ZWRiYWI3OGU4ZC4uNTliY2JlNjIxMjg5MWIwMzk4NzExMGRiYTkzN2M5
ZjA4MDBkMjc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTAxLTI0ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIHJlbGF0ZWQgdG8gZGVidWcgYm9yZGVyIGFuZCBy
ZXBhaW50IGNvdW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3OTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlcmUgYXJlIHR3byBiaWcgY2hhbmdlczoKKyAgICAgICAgMS4gQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyIHNlbmRzIGRlYnVnZ2luZyB2aXN1YWxzIHRvIFVJIFByb2Nlc3MuCisgICAg
ICAgIDIuIFdoZW4gdXBkYXRpbmcgYSBiYWNraW5nIHN0b3JlLCBpbmNyZW1lbnQgYSByZXBhaW50
IGNvdW50LgorCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllckluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllckluZm86OkNv
b3JkaW5hdGVkTGF5ZXJJbmZvKToKKyAgICAgICAgKENvb3JkaW5hdGVkTGF5ZXJJbmZvKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdT
dG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjp1cGRh
dGVUaWxlKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50
VGlsZXNUb1RleHR1cmVNYXBwZXIpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEJhY2tp
bmdTdG9yZTo6YWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KToKKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmRyYXdCb3JkZXIpOgorICAgICAgICAgICAg
T3ZlcnJpZGUgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI6OmRyYXdCb3JkZXIoKSB0byBkcmF3
IHRoZSBib3JkZXIKKyAgICAgICAgICAgIGZvciBlYWNoIHRpbGUuCisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd1JlcGFpbnRD
b3VudGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEJhY2tpbmdTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdT
dG9yZVRpbGU6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSk6CisgICAgICAgIChDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZVRpbGUpOgorICAgICAgICAoQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUp
OgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cmVjdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eTo6c2V0TGF5ZXJSZXBhaW50Q291bnQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eS5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dFByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVu
ZGVyZXI6OnNldExheWVyUmVwYWludENvdW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oOgorICAgICAg
ICAoTGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dEZWJ1Z0JvcmRlcik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXREZWJ1Z0JvcmRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xp
ZW50KToKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRM
YXllclJlcGFpbnRDb3VudCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5o
OgorCiAyMDEzLTAxLTIyICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0
PgogCiAgICAgICAgIFtUZXhNYXBdIEVuYWJsZSBkZWJ1ZyBib3JkZXJzIGFuZCByZXBhaW50IGNv
dW50ZXIgdmlhIFNldHRpbmdzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmgKaW5kZXgg
ZjlhMDAxZGZmNDM3ODM3MDM4YTRlZWFiNWZmNTZlM2I5NTMzMDU2ZC4uNDE1ZmJiNjZhODAyNTgx
YjQ4YzkwM2Q0OGI1ZTE4Mzk4NGMxM2U0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5m
by5oCkBAIC00Myw2ICs0Myw3IEBAIHN0cnVjdCBDb29yZGluYXRlZExheWVySW5mbyB7CiAgICAg
ICAgICwgbWFzayhJbnZhbGlkQ29vcmRpbmF0ZWRMYXllcklEKQogICAgICAgICAsIGltYWdlSUQo
SW52YWxpZENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpCiAgICAgICAgICwgb3BhY2l0eSgwKQor
ICAgICAgICAsIGRlYnVnQm9yZGVyV2lkdGgoMCkKICAgICAgICAgLCBmbGFncygwKSB7IH0KIAog
ICAgIENvb3JkaW5hdGVkTGF5ZXJJRCByZXBsaWNhOwpAQCAtNTcsNiArNTgsOCBAQCBzdHJ1Y3Qg
Q29vcmRpbmF0ZWRMYXllckluZm8gewogICAgIFdlYkNvcmU6OkludFJlY3QgY29udGVudHNSZWN0
OwogICAgIGZsb2F0IG9wYWNpdHk7CiAgICAgV2ViQ29yZTo6Q29sb3Igc29saWRDb2xvcjsKKyAg
ICBXZWJDb3JlOjpDb2xvciBkZWJ1Z0JvcmRlckNvbG9yOworICAgIGZsb2F0IGRlYnVnQm9yZGVy
V2lkdGg7CiAKICAgICB1bmlvbiB7CiAgICAgICAgIHN0cnVjdCB7CkBAIC02OCw2ICs3MSw4IEBA
IHN0cnVjdCBDb29yZGluYXRlZExheWVySW5mbyB7CiAgICAgICAgICAgICBib29sIHByZXNlcnZl
czNEIDogMTsKICAgICAgICAgICAgIGJvb2wgaXNSb290TGF5ZXI6IDE7CiAgICAgICAgICAgICBi
b29sIGZpeGVkVG9WaWV3cG9ydCA6IDE7CisgICAgICAgICAgICBib29sIHNob3dEZWJ1Z0JvcmRl
cnMgOiAxOworICAgICAgICAgICAgYm9vbCBzaG93UmVwYWludENvdW50ZXIgOiAxOwogICAgICAg
ICB9OwogICAgICAgICB1bnNpZ25lZCBmbGFnczsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDRhN2JiMTA4NmVlN2E4NjdiMmQzZmQ2
ODBjNWEzN2RiMDViOGI3ZDguLjA2MTc5ZmU0ODk4ZWI3OWQ2NzljMzdlNmY0MTIwNGZiZmQxMGNl
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKQEAg
LTg4LDcgKzg4LDYgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dXBkYXRlVGlsZSh1
aW50MzJfdCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwKIHsKICAgICBIYXNoTWFwPHVp
bnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRvciBpdCA9IG1fdGls
ZXMuZmluZChpZCk7CiAgICAgQVNTRVJUKGl0ICE9IG1fdGlsZXMuZW5kKCkpOwotICAgIGl0LT52
YWx1ZS5pbmNyZW1lbnRSZXBhaW50Q291bnQoKTsKICAgICBpdC0+dmFsdWUuc2V0QmFja0J1ZmZl
cih0aWxlUmVjdCwgc291cmNlUmVjdCwgYmFja0J1ZmZlciwgb2Zmc2V0KTsKIH0KIApAQCAtMTA5
LDI4ICsxMDgsMTUgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6c2V0U2l6ZShjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCiAgICAgbV9zaXplID0gc2l6ZTsKIH0KIAotc3Rh
dGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKQordm9pZCBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZTo6cGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8VGV4dHVyZU1hcHBl
clRpbGUqPiYgdGlsZXMsIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJpdG1hcFRleHR1cmUq
IG1hc2ssIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSNpZiBQTEFURk9STShRVCkKLSAgICBy
ZXR1cm4gKHFnZXRlbnYoIlFUX1dFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMi
KSA9PSAiMSIpOwotI2VsaWYgVVNFKENBSVJPKQotICAgIHJldHVybiAoU3RyaW5nKGdldGVudigi
V0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUyIpKSA9PSAiMSIpOwotI2VuZGlm
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGlsZXMuc2l6
ZSgpOyArK2kpCisgICAgICAgIHRpbGVzW2ldLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zv
cm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZXNb
aV0tPnJlY3QoKSkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRp
bGVzVG9UZXh0dXJlTWFwcGVyKFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+JiB0aWxlcywgVGV4
dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRy
YW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaywgY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQorVHJhbnNmb3JtYXRpb25NYXRyaXggQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6
OmFkanVzdGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QpCiB7
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0aWxlcy5zaXplKCk7ICsraSkgewotICAgICAg
ICBUZXh0dXJlTWFwcGVyVGlsZSogdGlsZSA9IHRpbGVzW2ldOwotICAgICAgICB0aWxlLT5wYWlu
dCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1bGF0ZUV4cG9z
ZWRUaWxlRWRnZXMocmVjdCwgdGlsZS0+cmVjdCgpKSk7Ci0gICAgICAgIHN0YXRpYyBib29sIHNo
b3VsZERlYnVnID0gc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKTsKLSAgICAgICAgaWYgKCFz
aG91bGREZWJ1ZykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHRleHR1cmVNYXBw
ZXItPmRyYXdCb3JkZXIoQ29sb3IoMHhGRiwgMCwgMCksIDIsIHRpbGUtPnJlY3QoKSwgdHJhbnNm
b3JtKTsKLSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd1JlcGFpbnRDb3VudGVyKHN0YXRpY19j
YXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSo+KHRpbGUpLT5yZXBhaW50Q291bnQoKSwg
OCwgdGlsZS0+cmVjdCgpLmxvY2F0aW9uKCksIHRyYW5zZm9ybSk7Ci0gICAgfQorICAgIHJldHVy
biBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdChyZWN0KCksIHRhcmdldFJlY3QpOwog
fQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihU
ZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3Qs
IGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJp
dG1hcFRleHR1cmUqIG1hc2spCkBAIC0xNjQsMTQgKzE1MCwyOCBAQCB2b2lkIENvb3JkaW5hdGVk
QmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJl
TWFwcGVyLAogICAgICAgICBwcmV2aW91c1RpbGVzVG9QYWludC5hcHBlbmQoJnRpbGUpOwogICAg
IH0KIAotICAgIEZsb2F0UmVjdCByZWN0T25Db250ZW50cyhGbG9hdFBvaW50Ojp6ZXJvKCksIG1f
c2l6ZSk7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFu
c2Zvcm07CiAgICAgLy8gdGFyZ2V0UmVjdCBpcyBvbiB0aGUgY29udGVudHMgY29vcmRpbmF0ZSBz
eXN0ZW0sIHNvIHdlIG11c3QgY29tcGFyZSB0d28gcmVjdHMgb24gdGhlIGNvbnRlbnRzIGNvb3Jk
aW5hdGUgc3lzdGVtLgogICAgIC8vIFNlZSBUaWxlZEJhY2tpbmdTdG9yZS4KLSAgICBhZGp1c3Rl
ZFRyYW5zZm9ybS5tdWx0aXBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdChyZWN0
T25Db250ZW50cywgdGFyZ2V0UmVjdCkpOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGFkanVz
dGVkVHJhbnNmb3JtID0gdHJhbnNmb3JtICogYWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KHRhcmdl
dFJlY3QpOworCisgICAgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihwcmV2aW91c1RpbGVzVG9Q
YWludCwgdGV4dHVyZU1hcHBlciwgYWRqdXN0ZWRUcmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIHJl
Y3QoKSk7CisgICAgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcih0aWxlc1RvUGFpbnQsIHRleHR1
cmVNYXBwZXIsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrLCByZWN0KCkpOworfQog
Ci0gICAgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihwcmV2aW91c1RpbGVzVG9QYWludCwgdGV4
dHVyZU1hcHBlciwgYWRqdXN0ZWRUcmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIHJlY3RPbkNvbnRl
bnRzKTsKLSAgICBwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKHRpbGVzVG9QYWludCwgdGV4dHVy
ZU1hcHBlciwgYWRqdXN0ZWRUcmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIHJlY3RPbkNvbnRlbnRz
KTsKK3ZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmRyYXdCb3JkZXIoVGV4dHVyZU1hcHBl
ciogdGV4dHVyZU1hcHBlciwgY29uc3QgQ29sb3ImIGJvcmRlckNvbG9yLCBmbG9hdCBib3JkZXJX
aWR0aCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdHJhbnNmb3JtKQoreworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGFkanVzdGVkVHJh
bnNmb3JtID0gdHJhbnNmb3JtICogYWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KHRhcmdldFJlY3Qp
OworICAgIEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0
ZXJhdG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChIYXNoTWFwPHVpbnQzMl90LCBD
b29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3Qm9yZGVyKGJv
cmRlckNvbG9yLCBib3JkZXJXaWR0aCwgaXQtPnZhbHVlLnJlY3QoKSwgYWRqdXN0ZWRUcmFuc2Zv
cm0pOworfQorCit2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpkcmF3UmVwYWludENvdW50
ZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgaW50IHJlcGFpbnRDb3VudCwgY29uc3Qg
Q29sb3ImIGJvcmRlckNvbG9yLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRy
aXggYWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJl
Y3QodGFyZ2V0UmVjdCk7CisgICAgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlPjo6aXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQoKTsKKyAgICBmb3IgKEhhc2hN
YXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0g
bV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgIHRleHR1cmVNYXBwZXIt
PmRyYXdSZXBhaW50Q291bnRlcihyZXBhaW50Q291bnQsIGJvcmRlckNvbG9yLCBpdC0+dmFsdWUu
cmVjdCgpLmxvY2F0aW9uKCksIGFkanVzdGVkVHJhbnNmb3JtKTsKIH0KIAogdm9pZCBDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZTo6Y29tbWl0VGlsZU9wZXJhdGlvbnMoVGV4dHVyZU1hcHBlciogdGV4
dHVyZU1hcHBlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmlu
ZGV4IGFlNWFmOGQ0ZmEyZmM5ZWJkMjExOTcyN2ZjYWRkODU5NjIzMzBmOTkuLmQyNjZmNjJlMThk
OTFjYTY2ZDM3ZjRjNjhmNzAyNmQ0MmQ5MGIzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmUuaApAQCAtMzYsMTMgKzM2LDEwIEBAIHB1YmxpYzoKICAgICBleHBs
aWNpdCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUoZmxvYXQgc2NhbGUgPSAxKQogICAgICAg
ICA6IFRleHR1cmVNYXBwZXJUaWxlKFdlYkNvcmU6OkZsb2F0UmVjdCgpKQogICAgICAgICAsIG1f
c2NhbGUoc2NhbGUpCi0gICAgICAgICwgbV9yZXBhaW50Q291bnQoMCkKICAgICB7CiAgICAgfQog
CiAgICAgaW5saW5lIGZsb2F0IHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZTsgfQotICAg
IGlubGluZSB2b2lkIGluY3JlbWVudFJlcGFpbnRDb3VudCgpIHsgKyttX3JlcGFpbnRDb3VudDsg
fQotICAgIGlubGluZSBpbnQgcmVwYWludENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50
Q291bnQ7IH0KICAgICB2b2lkIHN3YXBCdWZmZXJzKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqKTsK
ICAgICB2b2lkIHNldEJhY2tCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gYnVmZmVyLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCkBAIC01Miw3ICs0OSw2IEBAIHByaXZhdGU6CiAg
ICAgV2ViQ29yZTo6SW50UmVjdCBtX3RpbGVSZWN0OwogICAgIFdlYkNvcmU6OkludFBvaW50IG1f
c3VyZmFjZU9mZnNldDsKICAgICBmbG9hdCBtX3NjYWxlOwotICAgIGludCBtX3JlcGFpbnRDb3Vu
dDsKIH07CiAKIGNsYXNzIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIDogcHVibGljIFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUgewpAQCAtNjYsMTIgKzYyLDE2IEBAIHB1YmxpYzoK
ICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSBjb25zdDsK
ICAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdmlydHVh
bCB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYsIGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKik7CisgICAgdmlydHVhbCB2b2lkIGRy
YXdCb3JkZXIoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwg
ZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRy
YXdSZXBhaW50Q291bnRlcihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKiwgaW50IHJlcGFpbnRDb3Vu
dCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25z
dCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIE9WRVJSSURFOwogCiBwcml2YXRlOgog
ICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKCkKICAgICAgICAgOiBtX3NjYWxlKDEuKQogICAg
IHsgfQogICAgIHZvaWQgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8V2ViQ29yZTo6
VGV4dHVyZU1hcHBlclRpbGUqPiYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBXZWJD
b3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
KiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRp
b25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYpOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gV2ViQ29y
ZTo6RmxvYXRSZWN0KFdlYkNvcmU6OkZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsgfQogCiAg
ICAgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPiBtX3RpbGVz
OwogICAgIEhhc2hTZXQ8dWludDMyX3Q+IG1fdGlsZXNUb1JlbW92ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcAppbmRleCA4N2ZiMTcx
OTA0NDMxZTQ1YzcwZWM0NGYzNjRhNjUyNDYxN2NkYmU5Li5iZGQxMzk2MWM0MDZjNmYwYjc1NzEw
ZTZhMzYzZThhYjg0OTc5MThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDExIEBAIHZvaWQgQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklE
IGlkKQogfQogI2VuZGlmCiAKK3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNl
dExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgaW50IHZhbHVlKQorewor
ICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclJlcGFp
bnRDb3VudCwgbV9yZW5kZXJlci5nZXQoKSwgaWQsIHZhbHVlKSk7Cit9CisKIHZvaWQgQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnB1cmdlQmFja2luZ1N0b3JlcygpCiB7CiAgICAgbV9z
dXJmYWNlcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdFByb3h5LmgKaW5kZXggOTRmYTQ3NmYwOTJiNGRmZGM4ZjNhMzRhMThmMWRmMWMzMWRm
Mzk4Mi4uNGM1Y2U0YTdlN2I5OTlmMTQ4ODQ1ODY1MTNjMTkzODQ1NDAxY2UzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oCkBAIC04NSw2
ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bmNDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklE
LCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CiAgICAgdm9pZCBkZXN0cm95Q2FudmFzKENvb3JkaW5h
dGVkTGF5ZXJJRCk7CiAjZW5kaWYKKyAgICB2b2lkIHNldExheWVyUmVwYWludENvdW50KENvb3Jk
aW5hdGVkTGF5ZXJJRCwgaW50IHZhbHVlKTsKICAgICB2b2lkIHB1cmdlQmFja2luZ1N0b3Jlcygp
OwogICAgIExheWVyVHJlZVJlbmRlcmVyKiBsYXllclRyZWVSZW5kZXJlcigpIGNvbnN0IHsgcmV0
dXJuIG1fcmVuZGVyZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldExheWVyQW5pbWF0aW9ucyhDb29y
ZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGM1ZTUyZGM4YjgwYTQ1ODJmOGFhZWQ3YjBkZTI1MTQw
MTBjNzkwZDEuLmUzZTc4YjMwYjAxOTI1NTNiMDZjNjkyODkyOGIwYTZiMzNkNmQ2YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC01NSw2ICs1NSw4IEBAIG1lc3NhZ2VzIC0+IENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBEZXN0cm95Q2FudmFzKHVp
bnQzMl90IGlkKQogI2VuZGlmCiAKKyAgICBTZXRMYXllclJlcGFpbnRDb3VudCh1aW50MzJfdCBs
YXllcklELCBpbnQgdmFsdWUpCisKICAgICBTZXRCYWNrZ3JvdW5kQ29sb3IoV2ViQ29yZTo6Q29s
b3IgY29sb3IpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcApp
bmRleCBkZmE0MDZkMDRkYWViYjc2Yzc2MDljM2YwNzViZGIxZTljYzQ0YTkxLi44MDVhODczNmU5
NDJiY2YzZTQzZWI0OTM2NTVlMGVlMDMzOTNhOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuY3BwCkBAIC0yNTUsNiArMjU1LDEyIEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6
OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAKK3ZvaWQg
TGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJ
RCBpZCwgaW50IHZhbHVlKQoreworICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJCeUlE
KGlkKTsKKyAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGxheWVyKS0+c2V0UmVwYWlu
dENvdW50KHZhbHVlKTsKK30KKwogdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJDaGls
ZHJlbihDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxDb29yZGluYXRlZExheWVy
SUQ+JiBjaGlsZElEcykKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyQnlJRChp
ZCk7CkBAIC0zMzMsNiArMzM5LDkgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJT
dGF0ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaW5hdGVkTGEKICAgICBsYXll
ci0+c2V0RHJhd3NDb250ZW50KGxheWVySW5mby5kcmF3c0NvbnRlbnQpOwogICAgIGxheWVyLT5z
ZXRDb250ZW50c1Zpc2libGUobGF5ZXJJbmZvLmNvbnRlbnRzVmlzaWJsZSk7CiAgICAgdG9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlcihsYXllciktPnNldEZpeGVkVG9WaWV3cG9ydChsYXllcklu
Zm8uZml4ZWRUb1ZpZXdwb3J0KTsKKyAgICBsYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKGxheWVy
SW5mby5zaG93RGVidWdCb3JkZXJzKTsKKyAgICBsYXllci0+c2V0RGVidWdCb3JkZXIobGF5ZXJJ
bmZvLmRlYnVnQm9yZGVyQ29sb3IsIGxheWVySW5mby5kZWJ1Z0JvcmRlcldpZHRoKTsKKyAgICBs
YXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKGxheWVySW5mby5zaG93UmVwYWludENvdW50ZXIp
OwogCiAgICAgaWYgKGxheWVySW5mby5maXhlZFRvVmlld3BvcnQpCiAgICAgICAgIG1fZml4ZWRM
YXllcnMuYWRkKGlkLCBsYXllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRl
eCBjMWQ1OGY0OTlmZTkxYzE3NGIzNmYzNDIwOTZkOGE5M2RjY2QyNGU1Li5kYmZhNmE4OWVlN2Nk
OGQ1NDhkZTY3ZjBmYTkyOTRlNjQxOWVkN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRl
cmVyLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3luY0NhbnZhcyhDb29y
ZGluYXRlZExheWVySUQsIHVpbnQzMl90IGZyb250QnVmZmVyKTsKICAgICB2b2lkIGRlc3Ryb3lD
YW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKTsKICNlbmRpZgorICAgIHZvaWQgc2V0TGF5ZXJSZXBh
aW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQgdmFsdWUpOwogCiAgICAgdm9pZCBkZXRh
Y2goKTsKICAgICB2b2lkIGFwcGVuZFVwZGF0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcAppbmRleCA1ZjI2NjJlZjA5MThiM2FhOTIxNDBhNDg0NTJhNTU1ODJmNTdiZDM5Li41
ZDIzYjI1MTdkMmU1NDgyZDhmZjNhNzk0YzAwMmUyMDY0YzE0ZjdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAg
LTM3MSw2ICszNzEsMjYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRl
bnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBkaWRDaGFuZ2VMYXllclN0
YXRlKCk7CiB9CiAKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93RGVidWdC
b3JkZXIoYm9vbCBzaG93KQoreworICAgIGlmIChpc1Nob3dpbmdEZWJ1Z0JvcmRlcigpID09IHNo
b3cpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNldFNob3dEZWJ1Z0Jv
cmRlcihzaG93KTsKKworICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKK30KKwordm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRlcihib29sIHNob3cpCit7
CisgICAgaWYgKGlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkgPT0gc2hvdykKKyAgICAgICAgcmV0
dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKHNob3cpOwor
CisgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworfQorCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkKIHsKICAgICBOYXRpdmVJ
bWFnZVB0ciBuZXdOYXRpdmVJbWFnZVB0ciA9IGltYWdlID8gaW1hZ2UtPm5hdGl2ZUltYWdlRm9y
Q3VycmVudEZyYW1lKCkgOiAwOwpAQCAtNTUwLDkgKzU3MCwyMyBAQCB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUoKQogICAgIG1fbGF5ZXJJbmZvLnBvcyA9IG1f
YWRqdXN0ZWRQb3NpdGlvbjsKICAgICBtX2xheWVySW5mby5zaXplID0gbV9hZGp1c3RlZFNpemU7
CiAKKyAgICBtX2xheWVySW5mby5zaG93RGVidWdCb3JkZXJzID0gaXNTaG93aW5nRGVidWdCb3Jk
ZXIoKTsKKyAgICBpZiAobV9sYXllckluZm8uc2hvd0RlYnVnQm9yZGVycykgeworICAgICAgICBt
X3VzaW5nVGlsZWRMYXllciA9IHNob3VsZEhhdmVCYWNraW5nU3RvcmUoKTsKKyAgICAgICAgdXBk
YXRlRGVidWdJbmRpY2F0b3JzKCk7CisgICAgfQorICAgIG1fbGF5ZXJJbmZvLnNob3dSZXBhaW50
Q291bnRlciA9IGlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCk7CisKICAgICBtX2Nvb3JkaW5hdG9y
LT5zeW5jTGF5ZXJTdGF0ZShtX2lkLCBtX2xheWVySW5mbyk7CiB9CiAKK3ZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0
IHdpZHRoKQoreworICAgIEFTU0VSVChtX2xheWVySW5mby5zaG93RGVidWdCb3JkZXJzKTsKKyAg
ICBtX2xheWVySW5mby5kZWJ1Z0JvcmRlckNvbG9yID0gY29sb3I7CisgICAgbV9sYXllckluZm8u
ZGVidWdCb3JkZXJXaWR0aCA9IHdpZHRoOworfQorCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c3luY0FuaW1hdGlvbnMoKQogewogICAgIGlmICghbV9zaG91bGRTeW5jQW5pbWF0aW9u
cykKQEAgLTY5OCw4ICs3MzIsMTAgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRp
bGVkQmFja2luZ1N0b3JlUGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LAogICAgIHBhaW50
R3JhcGhpY3NMYXllckNvbnRlbnRzKCpjb250ZXh0LCByZWN0KTsKIH0KIAotdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQoY29uc3QgVmVjdG9y
PEludFJlY3Q+JiAvKiB1cGRhdGVkUmVjdHMgKi8pCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6dGlsZWRCYWNraW5nU3RvcmVQYWludEVuZChjb25zdCBWZWN0b3I8SW50UmVjdD4mIHVw
ZGF0ZWRSZWN0cykKIHsKKyAgICBpZiAoaXNTaG93aW5nUmVwYWludENvdW50ZXIoKSAmJiAhdXBk
YXRlZFJlY3RzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9jb29yZGluYXRvci0+c2V0TGF5ZXJSZXBh
aW50Q291bnQoaWQoKSwgaW5jcmVtZW50UmVwYWludENvdW50KCkpOwogfQogCiB2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5nU3RvcmVIYXNQZW5kaW5nVGlsZUNyZWF0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmgKaW5kZXggNmM0MzU4NWM3MGM4ZTAzMDY1ZTRkY2FhMjdlNGYwZGEyZmEzNjk0
Ni4uN2VhMzgxZjdjZjdjNzVhZDM0ZDQ1Mzg3OTBhMGUzMDBjNDVmM2E0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAg
LTcxLDYgKzcxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95Q2FudmFzKENv
b3JkaW5hdGVkTGF5ZXJJRCkgPSAwOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5
ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQpID0gMDsKKwogICAgIHZpcnR1
YWwgdm9pZCBzZXRMYXllckFuaW1hdGlvbnMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBk
ZXRhY2hMYXllcihXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqKSA9IDA7CkBAIC0x
MTIsNiArMTE0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1JlY3Qo
Y29uc3QgSW50UmVjdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1Rv
SW1hZ2UoSW1hZ2UqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1Nv
bGlkQ29sb3IoY29uc3QgQ29sb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
d0RlYnVnQm9yZGVyKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UmVw
YWludENvdW50ZXIoYm9vbCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZERpcmVj
dGx5Q29tcG9zaXRlSW1hZ2UoSW1hZ2UqKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHNldE1hc2tMYXllcihHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7CkBAIC0xNjYs
NiArMTcwLDggQEAgcHVibGljOgogICAgIGJvb2wgaGFzUGVuZGluZ1Zpc2libGVDaGFuZ2VzKCk7
CiAKIHByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9y
JiwgZmxvYXQgd2lkdGgpIE9WRVJSSURFOworCiAgICAgYm9vbCBmaXhlZFRvVmlld3BvcnQoKSBj
b25zdCB7IHJldHVybiBtX2ZpeGVkVG9WaWV3cG9ydDsgfQogCiAgICAgdm9pZCBkaWRDaGFuZ2VM
YXllclN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0LmNwcAppbmRleCAwZmMxYWYyZmQ0ZjQ3NDE4ZjU2MzczOGMyZjVj
NjY4ZDdkZDlmOGE5Li4yZWFmODY1YTQ0NDI3NDA5MmQ4YmZhYTk3M2UwNDcwMjcwNzQ4NjBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdC5jcHAKQEAgLTM5MSw2ICszOTEsMTEgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJl
ZUhvc3Q6OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAK
K3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRMYXllclJlcGFpbnRDb3VudChDb29y
ZGluYXRlZExheWVySUQgaWQsIGludCB2YWx1ZSkKK3sKKyAgICBtX3dlYlBhZ2UtPnNlbmQoTWVz
c2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpTZXRMYXllclJlcGFpbnRDb3Vu
dChpZCwgdmFsdWUpKTsKK30KKwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0OjpzeW5jTGF5ZXJGaWx0ZXJzKENvb3JkaW5hdGVkTGF5ZXJJRCBp
ZCwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKaW5kZXggMDEwMjJi
MmNjNGU5ODQ4OGE0ZGY3ODdlYTM2OTBiNzJhY2NmZjcyOS4uOWFhOWU2ZWNkZjNhNjllZjAwMzgy
OGUxNzhhOTg2MTA2NzRmZjc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHN5bmNDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCBXZWJDb3Jl
OjpQbGF0Zm9ybUxheWVyKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lDYW52
YXMoQ29vcmRpbmF0ZWRMYXllcklEKSBPVkVSUklERTsKICNlbmRpZgorICAgIHZpcnR1YWwgdm9p
ZCBzZXRMYXllclJlcGFpbnRDb3VudChDb29yZGluYXRlZExheWVySUQsIGludCkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaExheWVyKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jRml4ZWRMYXllcnMoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185059</attachid>
            <date>2013-01-28 14:07:19 -0800</date>
            <delta_ts>2013-01-28 16:21:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107910-20130129070345.patch</filename>
            <type>text/plain</type>
            <size>22109</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTU2YmU0Yzk4MjYxMGQ5
YWFhMTFhZjQ0ZTA3MGY1ZWRiYWI3OGU4ZC4uNTliY2JlNjIxMjg5MWIwMzk4NzExMGRiYTkzN2M5
ZjA4MDBkMjc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTAxLTI0ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIHJlbGF0ZWQgdG8gZGVidWcgYm9yZGVyIGFuZCBy
ZXBhaW50IGNvdW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3OTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlcmUgYXJlIHR3byBiaWcgY2hhbmdlczoKKyAgICAgICAgMS4gQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyIHNlbmRzIGRlYnVnZ2luZyB2aXN1YWxzIHRvIFVJIFByb2Nlc3MuCisgICAg
ICAgIDIuIFdoZW4gdXBkYXRpbmcgYSBiYWNraW5nIHN0b3JlLCBpbmNyZW1lbnQgYSByZXBhaW50
IGNvdW50LgorCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllckluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllckluZm86OkNv
b3JkaW5hdGVkTGF5ZXJJbmZvKToKKyAgICAgICAgKENvb3JkaW5hdGVkTGF5ZXJJbmZvKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdT
dG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjp1cGRh
dGVUaWxlKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50
VGlsZXNUb1RleHR1cmVNYXBwZXIpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEJhY2tp
bmdTdG9yZTo6YWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KToKKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmRyYXdCb3JkZXIpOgorICAgICAgICAgICAg
T3ZlcnJpZGUgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI6OmRyYXdCb3JkZXIoKSB0byBkcmF3
IHRoZSBib3JkZXIKKyAgICAgICAgICAgIGZvciBlYWNoIHRpbGUuCisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd1JlcGFpbnRD
b3VudGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEJhY2tpbmdTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdT
dG9yZVRpbGU6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSk6CisgICAgICAgIChDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZVRpbGUpOgorICAgICAgICAoQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUp
OgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cmVjdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eTo6c2V0TGF5ZXJSZXBhaW50Q291bnQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eS5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dFByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVu
ZGVyZXI6OnNldExheWVyUmVwYWludENvdW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclN0YXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oOgorICAgICAg
ICAoTGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dEZWJ1Z0JvcmRlcik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXREZWJ1Z0JvcmRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xp
ZW50KToKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRM
YXllclJlcGFpbnRDb3VudCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5o
OgorCiAyMDEzLTAxLTIyICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0
PgogCiAgICAgICAgIFtUZXhNYXBdIEVuYWJsZSBkZWJ1ZyBib3JkZXJzIGFuZCByZXBhaW50IGNv
dW50ZXIgdmlhIFNldHRpbmdzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmgKaW5kZXgg
ZjlhMDAxZGZmNDM3ODM3MDM4YTRlZWFiNWZmNTZlM2I5NTMzMDU2ZC4uNDE1ZmJiNjZhODAyNTgx
YjQ4YzkwM2Q0OGI1ZTE4Mzk4NGMxM2U0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5m
by5oCkBAIC00Myw2ICs0Myw3IEBAIHN0cnVjdCBDb29yZGluYXRlZExheWVySW5mbyB7CiAgICAg
ICAgICwgbWFzayhJbnZhbGlkQ29vcmRpbmF0ZWRMYXllcklEKQogICAgICAgICAsIGltYWdlSUQo
SW52YWxpZENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpCiAgICAgICAgICwgb3BhY2l0eSgwKQor
ICAgICAgICAsIGRlYnVnQm9yZGVyV2lkdGgoMCkKICAgICAgICAgLCBmbGFncygwKSB7IH0KIAog
ICAgIENvb3JkaW5hdGVkTGF5ZXJJRCByZXBsaWNhOwpAQCAtNTcsNiArNTgsOCBAQCBzdHJ1Y3Qg
Q29vcmRpbmF0ZWRMYXllckluZm8gewogICAgIFdlYkNvcmU6OkludFJlY3QgY29udGVudHNSZWN0
OwogICAgIGZsb2F0IG9wYWNpdHk7CiAgICAgV2ViQ29yZTo6Q29sb3Igc29saWRDb2xvcjsKKyAg
ICBXZWJDb3JlOjpDb2xvciBkZWJ1Z0JvcmRlckNvbG9yOworICAgIGZsb2F0IGRlYnVnQm9yZGVy
V2lkdGg7CiAKICAgICB1bmlvbiB7CiAgICAgICAgIHN0cnVjdCB7CkBAIC02OCw2ICs3MSw4IEBA
IHN0cnVjdCBDb29yZGluYXRlZExheWVySW5mbyB7CiAgICAgICAgICAgICBib29sIHByZXNlcnZl
czNEIDogMTsKICAgICAgICAgICAgIGJvb2wgaXNSb290TGF5ZXI6IDE7CiAgICAgICAgICAgICBi
b29sIGZpeGVkVG9WaWV3cG9ydCA6IDE7CisgICAgICAgICAgICBib29sIHNob3dEZWJ1Z0JvcmRl
cnMgOiAxOworICAgICAgICAgICAgYm9vbCBzaG93UmVwYWludENvdW50ZXIgOiAxOwogICAgICAg
ICB9OwogICAgICAgICB1bnNpZ25lZCBmbGFnczsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDRhN2JiMTA4NmVlN2E4NjdiMmQzZmQ2
ODBjNWEzN2RiMDViOGI3ZDguLjA2MTc5ZmU0ODk4ZWI3OWQ2NzljMzdlNmY0MTIwNGZiZmQxMGNl
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKQEAg
LTg4LDcgKzg4LDYgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dXBkYXRlVGlsZSh1
aW50MzJfdCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwKIHsKICAgICBIYXNoTWFwPHVp
bnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRvciBpdCA9IG1fdGls
ZXMuZmluZChpZCk7CiAgICAgQVNTRVJUKGl0ICE9IG1fdGlsZXMuZW5kKCkpOwotICAgIGl0LT52
YWx1ZS5pbmNyZW1lbnRSZXBhaW50Q291bnQoKTsKICAgICBpdC0+dmFsdWUuc2V0QmFja0J1ZmZl
cih0aWxlUmVjdCwgc291cmNlUmVjdCwgYmFja0J1ZmZlciwgb2Zmc2V0KTsKIH0KIApAQCAtMTA5
LDI4ICsxMDgsMTUgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6c2V0U2l6ZShjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCiAgICAgbV9zaXplID0gc2l6ZTsKIH0KIAotc3Rh
dGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKQordm9pZCBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZTo6cGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8VGV4dHVyZU1hcHBl
clRpbGUqPiYgdGlsZXMsIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJpdG1hcFRleHR1cmUq
IG1hc2ssIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSNpZiBQTEFURk9STShRVCkKLSAgICBy
ZXR1cm4gKHFnZXRlbnYoIlFUX1dFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMi
KSA9PSAiMSIpOwotI2VsaWYgVVNFKENBSVJPKQotICAgIHJldHVybiAoU3RyaW5nKGdldGVudigi
V0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUyIpKSA9PSAiMSIpOwotI2VuZGlm
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGlsZXMuc2l6
ZSgpOyArK2kpCisgICAgICAgIHRpbGVzW2ldLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zv
cm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZXNb
aV0tPnJlY3QoKSkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRp
bGVzVG9UZXh0dXJlTWFwcGVyKFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+JiB0aWxlcywgVGV4
dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRy
YW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaywgY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQorVHJhbnNmb3JtYXRpb25NYXRyaXggQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6
OmFkanVzdGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QpCiB7
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0aWxlcy5zaXplKCk7ICsraSkgewotICAgICAg
ICBUZXh0dXJlTWFwcGVyVGlsZSogdGlsZSA9IHRpbGVzW2ldOwotICAgICAgICB0aWxlLT5wYWlu
dCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1bGF0ZUV4cG9z
ZWRUaWxlRWRnZXMocmVjdCwgdGlsZS0+cmVjdCgpKSk7Ci0gICAgICAgIHN0YXRpYyBib29sIHNo
b3VsZERlYnVnID0gc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKTsKLSAgICAgICAgaWYgKCFz
aG91bGREZWJ1ZykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHRleHR1cmVNYXBw
ZXItPmRyYXdCb3JkZXIoQ29sb3IoMHhGRiwgMCwgMCksIDIsIHRpbGUtPnJlY3QoKSwgdHJhbnNm
b3JtKTsKLSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd1JlcGFpbnRDb3VudGVyKHN0YXRpY19j
YXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSo+KHRpbGUpLT5yZXBhaW50Q291bnQoKSwg
OCwgdGlsZS0+cmVjdCgpLmxvY2F0aW9uKCksIHRyYW5zZm9ybSk7Ci0gICAgfQorICAgIHJldHVy
biBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdChyZWN0KCksIHRhcmdldFJlY3QpOwog
fQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihU
ZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3Qs
IGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJp
dG1hcFRleHR1cmUqIG1hc2spCkBAIC0xNjQsMTQgKzE1MCwyOCBAQCB2b2lkIENvb3JkaW5hdGVk
QmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJl
TWFwcGVyLAogICAgICAgICBwcmV2aW91c1RpbGVzVG9QYWludC5hcHBlbmQoJnRpbGUpOwogICAg
IH0KIAotICAgIEZsb2F0UmVjdCByZWN0T25Db250ZW50cyhGbG9hdFBvaW50Ojp6ZXJvKCksIG1f
c2l6ZSk7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFu
c2Zvcm07CiAgICAgLy8gdGFyZ2V0UmVjdCBpcyBvbiB0aGUgY29udGVudHMgY29vcmRpbmF0ZSBz
eXN0ZW0sIHNvIHdlIG11c3QgY29tcGFyZSB0d28gcmVjdHMgb24gdGhlIGNvbnRlbnRzIGNvb3Jk
aW5hdGUgc3lzdGVtLgogICAgIC8vIFNlZSBUaWxlZEJhY2tpbmdTdG9yZS4KLSAgICBhZGp1c3Rl
ZFRyYW5zZm9ybS5tdWx0aXBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdChyZWN0
T25Db250ZW50cywgdGFyZ2V0UmVjdCkpOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGFkanVz
dGVkVHJhbnNmb3JtID0gdHJhbnNmb3JtICogYWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KHRhcmdl
dFJlY3QpOworCisgICAgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihwcmV2aW91c1RpbGVzVG9Q
YWludCwgdGV4dHVyZU1hcHBlciwgYWRqdXN0ZWRUcmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIHJl
Y3QoKSk7CisgICAgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcih0aWxlc1RvUGFpbnQsIHRleHR1
cmVNYXBwZXIsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrLCByZWN0KCkpOworfQog
Ci0gICAgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihwcmV2aW91c1RpbGVzVG9QYWludCwgdGV4
dHVyZU1hcHBlciwgYWRqdXN0ZWRUcmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIHJlY3RPbkNvbnRl
bnRzKTsKLSAgICBwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKHRpbGVzVG9QYWludCwgdGV4dHVy
ZU1hcHBlciwgYWRqdXN0ZWRUcmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIHJlY3RPbkNvbnRlbnRz
KTsKK3ZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmRyYXdCb3JkZXIoVGV4dHVyZU1hcHBl
ciogdGV4dHVyZU1hcHBlciwgY29uc3QgQ29sb3ImIGJvcmRlckNvbG9yLCBmbG9hdCBib3JkZXJX
aWR0aCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdHJhbnNmb3JtKQoreworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGFkanVzdGVkVHJh
bnNmb3JtID0gdHJhbnNmb3JtICogYWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KHRhcmdldFJlY3Qp
OworICAgIEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0
ZXJhdG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChIYXNoTWFwPHVpbnQzMl90LCBD
b29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3Qm9yZGVyKGJv
cmRlckNvbG9yLCBib3JkZXJXaWR0aCwgaXQtPnZhbHVlLnJlY3QoKSwgYWRqdXN0ZWRUcmFuc2Zv
cm0pOworfQorCit2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpkcmF3UmVwYWludENvdW50
ZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgaW50IHJlcGFpbnRDb3VudCwgY29uc3Qg
Q29sb3ImIGJvcmRlckNvbG9yLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRy
aXggYWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJl
Y3QodGFyZ2V0UmVjdCk7CisgICAgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlPjo6aXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQoKTsKKyAgICBmb3IgKEhhc2hN
YXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0g
bV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgIHRleHR1cmVNYXBwZXIt
PmRyYXdSZXBhaW50Q291bnRlcihyZXBhaW50Q291bnQsIGJvcmRlckNvbG9yLCBpdC0+dmFsdWUu
cmVjdCgpLmxvY2F0aW9uKCksIGFkanVzdGVkVHJhbnNmb3JtKTsKIH0KIAogdm9pZCBDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZTo6Y29tbWl0VGlsZU9wZXJhdGlvbnMoVGV4dHVyZU1hcHBlciogdGV4
dHVyZU1hcHBlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmlu
ZGV4IGFlNWFmOGQ0ZmEyZmM5ZWJkMjExOTcyN2ZjYWRkODU5NjIzMzBmOTkuLmQyNjZmNjJlMThk
OTFjYTY2ZDM3ZjRjNjhmNzAyNmQ0MmQ5MGIzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmUuaApAQCAtMzYsMTMgKzM2LDEwIEBAIHB1YmxpYzoKICAgICBleHBs
aWNpdCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUoZmxvYXQgc2NhbGUgPSAxKQogICAgICAg
ICA6IFRleHR1cmVNYXBwZXJUaWxlKFdlYkNvcmU6OkZsb2F0UmVjdCgpKQogICAgICAgICAsIG1f
c2NhbGUoc2NhbGUpCi0gICAgICAgICwgbV9yZXBhaW50Q291bnQoMCkKICAgICB7CiAgICAgfQog
CiAgICAgaW5saW5lIGZsb2F0IHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZTsgfQotICAg
IGlubGluZSB2b2lkIGluY3JlbWVudFJlcGFpbnRDb3VudCgpIHsgKyttX3JlcGFpbnRDb3VudDsg
fQotICAgIGlubGluZSBpbnQgcmVwYWludENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50
Q291bnQ7IH0KICAgICB2b2lkIHN3YXBCdWZmZXJzKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqKTsK
ICAgICB2b2lkIHNldEJhY2tCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gYnVmZmVyLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCkBAIC01Miw3ICs0OSw2IEBAIHByaXZhdGU6CiAg
ICAgV2ViQ29yZTo6SW50UmVjdCBtX3RpbGVSZWN0OwogICAgIFdlYkNvcmU6OkludFBvaW50IG1f
c3VyZmFjZU9mZnNldDsKICAgICBmbG9hdCBtX3NjYWxlOwotICAgIGludCBtX3JlcGFpbnRDb3Vu
dDsKIH07CiAKIGNsYXNzIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIDogcHVibGljIFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUgewpAQCAtNjYsMTIgKzYyLDE2IEBAIHB1YmxpYzoK
ICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSBjb25zdDsK
ICAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdmlydHVh
bCB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYsIGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKik7CisgICAgdmlydHVhbCB2b2lkIGRy
YXdCb3JkZXIoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwg
ZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRy
YXdSZXBhaW50Q291bnRlcihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKiwgaW50IHJlcGFpbnRDb3Vu
dCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25z
dCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIE9WRVJSSURFOwogCiBwcml2YXRlOgog
ICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKCkKICAgICAgICAgOiBtX3NjYWxlKDEuKQogICAg
IHsgfQogICAgIHZvaWQgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8V2ViQ29yZTo6
VGV4dHVyZU1hcHBlclRpbGUqPiYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBXZWJD
b3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
KiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRp
b25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYpOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gV2ViQ29y
ZTo6RmxvYXRSZWN0KFdlYkNvcmU6OkZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsgfQogCiAg
ICAgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPiBtX3RpbGVz
OwogICAgIEhhc2hTZXQ8dWludDMyX3Q+IG1fdGlsZXNUb1JlbW92ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcAppbmRleCA4N2ZiMTcx
OTA0NDMxZTQ1YzcwZWM0NGYzNjRhNjUyNDYxN2NkYmU5Li5iZGQxMzk2MWM0MDZjNmYwYjc1NzEw
ZTZhMzYzZThhYjg0OTc5MThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDExIEBAIHZvaWQgQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklE
IGlkKQogfQogI2VuZGlmCiAKK3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNl
dExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgaW50IHZhbHVlKQorewor
ICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclJlcGFp
bnRDb3VudCwgbV9yZW5kZXJlci5nZXQoKSwgaWQsIHZhbHVlKSk7Cit9CisKIHZvaWQgQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnB1cmdlQmFja2luZ1N0b3JlcygpCiB7CiAgICAgbV9z
dXJmYWNlcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdFByb3h5LmgKaW5kZXggOTRmYTQ3NmYwOTJiNGRmZGM4ZjNhMzRhMThmMWRmMWMzMWRm
Mzk4Mi4uNGM1Y2U0YTdlN2I5OTlmMTQ4ODQ1ODY1MTNjMTkzODQ1NDAxY2UzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oCkBAIC04NSw2
ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bmNDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklE
LCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CiAgICAgdm9pZCBkZXN0cm95Q2FudmFzKENvb3JkaW5h
dGVkTGF5ZXJJRCk7CiAjZW5kaWYKKyAgICB2b2lkIHNldExheWVyUmVwYWludENvdW50KENvb3Jk
aW5hdGVkTGF5ZXJJRCwgaW50IHZhbHVlKTsKICAgICB2b2lkIHB1cmdlQmFja2luZ1N0b3Jlcygp
OwogICAgIExheWVyVHJlZVJlbmRlcmVyKiBsYXllclRyZWVSZW5kZXJlcigpIGNvbnN0IHsgcmV0
dXJuIG1fcmVuZGVyZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldExheWVyQW5pbWF0aW9ucyhDb29y
ZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGM1ZTUyZGM4YjgwYTQ1ODJmOGFhZWQ3YjBkZTI1MTQw
MTBjNzkwZDEuLmUzZTc4YjMwYjAxOTI1NTNiMDZjNjkyODkyOGIwYTZiMzNkNmQ2YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC01NSw2ICs1NSw4IEBAIG1lc3NhZ2VzIC0+IENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBEZXN0cm95Q2FudmFzKHVp
bnQzMl90IGlkKQogI2VuZGlmCiAKKyAgICBTZXRMYXllclJlcGFpbnRDb3VudCh1aW50MzJfdCBs
YXllcklELCBpbnQgdmFsdWUpCisKICAgICBTZXRCYWNrZ3JvdW5kQ29sb3IoV2ViQ29yZTo6Q29s
b3IgY29sb3IpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcApp
bmRleCBkZmE0MDZkMDRkYWViYjc2Yzc2MDljM2YwNzViZGIxZTljYzQ0YTkxLi44MDVhODczNmU5
NDJiY2YzZTQzZWI0OTM2NTVlMGVlMDMzOTNhOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuY3BwCkBAIC0yNTUsNiArMjU1LDEyIEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6
OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAKK3ZvaWQg
TGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJ
RCBpZCwgaW50IHZhbHVlKQoreworICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJCeUlE
KGlkKTsKKyAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGxheWVyKS0+c2V0UmVwYWlu
dENvdW50KHZhbHVlKTsKK30KKwogdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJDaGls
ZHJlbihDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxDb29yZGluYXRlZExheWVy
SUQ+JiBjaGlsZElEcykKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyQnlJRChp
ZCk7CkBAIC0zMzMsNiArMzM5LDkgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJT
dGF0ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaW5hdGVkTGEKICAgICBsYXll
ci0+c2V0RHJhd3NDb250ZW50KGxheWVySW5mby5kcmF3c0NvbnRlbnQpOwogICAgIGxheWVyLT5z
ZXRDb250ZW50c1Zpc2libGUobGF5ZXJJbmZvLmNvbnRlbnRzVmlzaWJsZSk7CiAgICAgdG9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlcihsYXllciktPnNldEZpeGVkVG9WaWV3cG9ydChsYXllcklu
Zm8uZml4ZWRUb1ZpZXdwb3J0KTsKKyAgICBsYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKGxheWVy
SW5mby5zaG93RGVidWdCb3JkZXJzKTsKKyAgICBsYXllci0+c2V0RGVidWdCb3JkZXIobGF5ZXJJ
bmZvLmRlYnVnQm9yZGVyQ29sb3IsIGxheWVySW5mby5kZWJ1Z0JvcmRlcldpZHRoKTsKKyAgICBs
YXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKGxheWVySW5mby5zaG93UmVwYWludENvdW50ZXIp
OwogCiAgICAgaWYgKGxheWVySW5mby5maXhlZFRvVmlld3BvcnQpCiAgICAgICAgIG1fZml4ZWRM
YXllcnMuYWRkKGlkLCBsYXllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRl
eCBjMWQ1OGY0OTlmZTkxYzE3NGIzNmYzNDIwOTZkOGE5M2RjY2QyNGU1Li5kYmZhNmE4OWVlN2Nk
OGQ1NDhkZTY3ZjBmYTkyOTRlNjQxOWVkN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRl
cmVyLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3luY0NhbnZhcyhDb29y
ZGluYXRlZExheWVySUQsIHVpbnQzMl90IGZyb250QnVmZmVyKTsKICAgICB2b2lkIGRlc3Ryb3lD
YW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKTsKICNlbmRpZgorICAgIHZvaWQgc2V0TGF5ZXJSZXBh
aW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQgdmFsdWUpOwogCiAgICAgdm9pZCBkZXRh
Y2goKTsKICAgICB2b2lkIGFwcGVuZFVwZGF0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcAppbmRleCA1ZjI2NjJlZjA5MThiM2FhOTIxNDBhNDg0NTJhNTU1ODJmNTdiZDM5Li41
ZDIzYjI1MTdkMmU1NDgyZDhmZjNhNzk0YzAwMmUyMDY0YzE0ZjdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAg
LTM3MSw2ICszNzEsMjYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRl
bnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBkaWRDaGFuZ2VMYXllclN0
YXRlKCk7CiB9CiAKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93RGVidWdC
b3JkZXIoYm9vbCBzaG93KQoreworICAgIGlmIChpc1Nob3dpbmdEZWJ1Z0JvcmRlcigpID09IHNo
b3cpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNldFNob3dEZWJ1Z0Jv
cmRlcihzaG93KTsKKworICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKK30KKwordm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRlcihib29sIHNob3cpCit7
CisgICAgaWYgKGlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkgPT0gc2hvdykKKyAgICAgICAgcmV0
dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKHNob3cpOwor
CisgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworfQorCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkKIHsKICAgICBOYXRpdmVJ
bWFnZVB0ciBuZXdOYXRpdmVJbWFnZVB0ciA9IGltYWdlID8gaW1hZ2UtPm5hdGl2ZUltYWdlRm9y
Q3VycmVudEZyYW1lKCkgOiAwOwpAQCAtNTUwLDkgKzU3MCwyMyBAQCB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUoKQogICAgIG1fbGF5ZXJJbmZvLnBvcyA9IG1f
YWRqdXN0ZWRQb3NpdGlvbjsKICAgICBtX2xheWVySW5mby5zaXplID0gbV9hZGp1c3RlZFNpemU7
CiAKKyAgICBtX2xheWVySW5mby5zaG93RGVidWdCb3JkZXJzID0gaXNTaG93aW5nRGVidWdCb3Jk
ZXIoKTsKKyAgICBpZiAobV9sYXllckluZm8uc2hvd0RlYnVnQm9yZGVycykgeworICAgICAgICBt
X3VzaW5nVGlsZWRMYXllciA9IHNob3VsZEhhdmVCYWNraW5nU3RvcmUoKTsKKyAgICAgICAgdXBk
YXRlRGVidWdJbmRpY2F0b3JzKCk7CisgICAgfQorICAgIG1fbGF5ZXJJbmZvLnNob3dSZXBhaW50
Q291bnRlciA9IGlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCk7CisKICAgICBtX2Nvb3JkaW5hdG9y
LT5zeW5jTGF5ZXJTdGF0ZShtX2lkLCBtX2xheWVySW5mbyk7CiB9CiAKK3ZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0
IHdpZHRoKQoreworICAgIEFTU0VSVChtX2xheWVySW5mby5zaG93RGVidWdCb3JkZXJzKTsKKyAg
ICBtX2xheWVySW5mby5kZWJ1Z0JvcmRlckNvbG9yID0gY29sb3I7CisgICAgbV9sYXllckluZm8u
ZGVidWdCb3JkZXJXaWR0aCA9IHdpZHRoOworfQorCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c3luY0FuaW1hdGlvbnMoKQogewogICAgIGlmICghbV9zaG91bGRTeW5jQW5pbWF0aW9u
cykKQEAgLTY5OCw4ICs3MzIsMTAgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRp
bGVkQmFja2luZ1N0b3JlUGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LAogICAgIHBhaW50
R3JhcGhpY3NMYXllckNvbnRlbnRzKCpjb250ZXh0LCByZWN0KTsKIH0KIAotdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQoY29uc3QgVmVjdG9y
PEludFJlY3Q+JiAvKiB1cGRhdGVkUmVjdHMgKi8pCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6dGlsZWRCYWNraW5nU3RvcmVQYWludEVuZChjb25zdCBWZWN0b3I8SW50UmVjdD4mIHVw
ZGF0ZWRSZWN0cykKIHsKKyAgICBpZiAoaXNTaG93aW5nUmVwYWludENvdW50ZXIoKSAmJiAhdXBk
YXRlZFJlY3RzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9jb29yZGluYXRvci0+c2V0TGF5ZXJSZXBh
aW50Q291bnQoaWQoKSwgaW5jcmVtZW50UmVwYWludENvdW50KCkpOwogfQogCiB2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5nU3RvcmVIYXNQZW5kaW5nVGlsZUNyZWF0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmgKaW5kZXggNmM0MzU4NWM3MGM4ZTAzMDY1ZTRkY2FhMjdlNGYwZGEyZmEzNjk0
Ni4uN2VhMzgxZjdjZjdjNzVhZDM0ZDQ1Mzg3OTBhMGUzMDBjNDVmM2E0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAg
LTcxLDYgKzcxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95Q2FudmFzKENv
b3JkaW5hdGVkTGF5ZXJJRCkgPSAwOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5
ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQpID0gMDsKKwogICAgIHZpcnR1
YWwgdm9pZCBzZXRMYXllckFuaW1hdGlvbnMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBk
ZXRhY2hMYXllcihXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqKSA9IDA7CkBAIC0x
MTIsNiArMTE0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1JlY3Qo
Y29uc3QgSW50UmVjdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1Rv
SW1hZ2UoSW1hZ2UqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1Nv
bGlkQ29sb3IoY29uc3QgQ29sb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
d0RlYnVnQm9yZGVyKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UmVw
YWludENvdW50ZXIoYm9vbCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZERpcmVj
dGx5Q29tcG9zaXRlSW1hZ2UoSW1hZ2UqKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHNldE1hc2tMYXllcihHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7CkBAIC0xNjYs
NiArMTcwLDggQEAgcHVibGljOgogICAgIGJvb2wgaGFzUGVuZGluZ1Zpc2libGVDaGFuZ2VzKCk7
CiAKIHByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9y
JiwgZmxvYXQgd2lkdGgpIE9WRVJSSURFOworCiAgICAgYm9vbCBmaXhlZFRvVmlld3BvcnQoKSBj
b25zdCB7IHJldHVybiBtX2ZpeGVkVG9WaWV3cG9ydDsgfQogCiAgICAgdm9pZCBkaWRDaGFuZ2VM
YXllclN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0LmNwcAppbmRleCAwZmMxYWYyZmQ0ZjQ3NDE4ZjU2MzczOGMyZjVj
NjY4ZDdkZDlmOGE5Li4yZWFmODY1YTQ0NDI3NDA5MmQ4YmZhYTk3M2UwNDcwMjcwNzQ4NjBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdC5jcHAKQEAgLTM5MSw2ICszOTEsMTEgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJl
ZUhvc3Q6OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAK
K3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRMYXllclJlcGFpbnRDb3VudChDb29y
ZGluYXRlZExheWVySUQgaWQsIGludCB2YWx1ZSkKK3sKKyAgICBtX3dlYlBhZ2UtPnNlbmQoTWVz
c2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpTZXRMYXllclJlcGFpbnRDb3Vu
dChpZCwgdmFsdWUpKTsKK30KKwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0OjpzeW5jTGF5ZXJGaWx0ZXJzKENvb3JkaW5hdGVkTGF5ZXJJRCBp
ZCwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKaW5kZXggMDEwMjJi
MmNjNGU5ODQ4OGE0ZGY3ODdlYTM2OTBiNzJhY2NmZjcyOS4uOWFhOWU2ZWNkZjNhNjllZjAwMzgy
OGUxNzhhOTg2MTA2NzRmZjc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHN5bmNDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCBXZWJDb3Jl
OjpQbGF0Zm9ybUxheWVyKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lDYW52
YXMoQ29vcmRpbmF0ZWRMYXllcklEKSBPVkVSUklERTsKICNlbmRpZgorICAgIHZpcnR1YWwgdm9p
ZCBzZXRMYXllclJlcGFpbnRDb3VudChDb29yZGluYXRlZExheWVySUQsIGludCkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaExheWVyKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jRml4ZWRMYXllcnMoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185093</attachid>
            <date>2013-01-28 16:21:26 -0800</date>
            <delta_ts>2013-01-28 16:22:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107910-20130129091752.patch</filename>
            <type>text/plain</type>
            <size>25344</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmZhZjA0YTY4ZGFhNzQ0
OTI4MzlkZTg1NTQyMjQ5ODk2NDM5NzQyMy4uZjM1MzYxZGNkYmZmNjAwYmY0N2ZkZjgyOWMxYmNj
YmI4YjkwZGI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY4IEBACiAyMDEzLTAxLTI4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIHJlbGF0ZWQgdG8gZGVidWcgYm9yZGVyIGFuZCBy
ZXBhaW50IGNvdW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3OTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlcmUgYXJlIHR3byBiaWcgY2hhbmdlczoKKyAgICAgICAgMS4gQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyIHNlbmRzIGRlYnVnZ2luZyB2aXN1YWxzIHRvIFVJIFByb2Nlc3MuCisgICAg
ICAgIDIuIFdoZW4gdXBkYXRpbmcgYSBiYWNraW5nIHN0b3JlLCBpbmNyZW1lbnQgYSByZXBhaW50
IGNvdW50LgorCisgICAgICAgIEluIGFkZGl0aW9uLCB3ZSBkb24ndCB1c2UgUVRfV0VCS0lUX1NI
T1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUworICAgICAgICBlbnZpcm9ubWVudC4gRUZMLCBH
VEsgYW5kIFFUIHdpbGwgdXNlIFdFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMK
KyAgICAgICAgYWZ0ZXIgaHR0cDovL3dlYmtpdC5vcmcvYi8xMDcxOTguCisKKyAgICAgICAgKiBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oOgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVySW5mbzo6Q29vcmRpbmF0ZWRMYXllckluZm8pOgor
ICAgICAgICAoQ29vcmRpbmF0ZWRMYXllckluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZUFsbFRpbGVzKToKKyAgICAgICAg
KFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUpOgorICAgICAgICAo
V2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSk6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKToK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmFkanVzdGVkVHJhbnNm
b3JtRm9yUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpw
YWludFRvVGV4dHVyZU1hcHBlcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRlcik6CisgICAgICAgICAgICBPdmVy
cmlkZSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcjo6ZHJhd0JvcmRlcigpIHRvIGRyYXcgdGhl
IGJvcmRlcgorICAgICAgICAgICAgZm9yIGVhY2ggdGlsZS4KKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU6OmRyYXdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpjb21taXRUaWxlT3BlcmF0aW9ucyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmUuaDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlOjpDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUpOgorICAgICAgICAoQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmVUaWxlKToKKyAgICAgICAgKENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlY3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNldExheWVy
UmVwYWludENvdW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAg
ICAgKENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXll
clJlcGFpbnRDb3VudCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAgKExheWVyVHJlZVJl
bmRlcmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93RGVidWdCb3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dS
ZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnN5bmNMYXllclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0RGVidWdCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5kKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAg
IChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0TGF5ZXJSZXBhaW50Q291
bnQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaDoKKworMjAxMy0wMS0y
OCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBb
VGV4TWFwXSBFbmFibGUgZGVidWcgYm9yZGVycyBhbmQgcmVwYWludCBjb3VudGVyIHZpYSBTZXR0
aW5ncy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
NzE5OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVySW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaAppbmRleCBmOWEwMDFkZmY0Mzc4
MzcwMzhhNGVlYWI1ZmY1NmUzYjk1MzMwNTZkLi40MTVmYmI2NmE4MDI1ODFiNDhjOTAzZDQ4YjVl
MTgzOTg0YzEzZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmgKQEAgLTQzLDYg
KzQzLDcgQEAgc3RydWN0IENvb3JkaW5hdGVkTGF5ZXJJbmZvIHsKICAgICAgICAgLCBtYXNrKElu
dmFsaWRDb29yZGluYXRlZExheWVySUQpCiAgICAgICAgICwgaW1hZ2VJRChJbnZhbGlkQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmdJRCkKICAgICAgICAgLCBvcGFjaXR5KDApCisgICAgICAgICwgZGVi
dWdCb3JkZXJXaWR0aCgwKQogICAgICAgICAsIGZsYWdzKDApIHsgfQogCiAgICAgQ29vcmRpbmF0
ZWRMYXllcklEIHJlcGxpY2E7CkBAIC01Nyw2ICs1OCw4IEBAIHN0cnVjdCBDb29yZGluYXRlZExh
eWVySW5mbyB7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBjb250ZW50c1JlY3Q7CiAgICAgZmxvYXQg
b3BhY2l0eTsKICAgICBXZWJDb3JlOjpDb2xvciBzb2xpZENvbG9yOworICAgIFdlYkNvcmU6OkNv
bG9yIGRlYnVnQm9yZGVyQ29sb3I7CisgICAgZmxvYXQgZGVidWdCb3JkZXJXaWR0aDsKIAogICAg
IHVuaW9uIHsKICAgICAgICAgc3RydWN0IHsKQEAgLTY4LDYgKzcxLDggQEAgc3RydWN0IENvb3Jk
aW5hdGVkTGF5ZXJJbmZvIHsKICAgICAgICAgICAgIGJvb2wgcHJlc2VydmVzM0QgOiAxOwogICAg
ICAgICAgICAgYm9vbCBpc1Jvb3RMYXllcjogMTsKICAgICAgICAgICAgIGJvb2wgZml4ZWRUb1Zp
ZXdwb3J0IDogMTsKKyAgICAgICAgICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycyA6IDE7CisgICAg
ICAgICAgICBib29sIHNob3dSZXBhaW50Q291bnRlciA6IDE7CiAgICAgICAgIH07CiAgICAgICAg
IHVuc2lnbmVkIGZsYWdzOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJh
Y2tpbmdTdG9yZS5jcHAKaW5kZXggNGE3YmIxMDg2ZWU3YTg2N2IyZDNmZDY4MGM1YTM3ZGIwNWI4
YjdkOC4uNzgzOGJiMGRiMjBkODc0MzRjOGE0MzFhNGYwNGY0ZmQ4NmE2NjBmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtNzksMjMgKzc5LDIy
IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZVRpbGUodWludDMyX3QgaWQp
CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZUFsbFRpbGVzKCkKIHsKLSAg
ICBIYXNoTWFwPHVpbnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRv
ciBlbmQgPSBtX3RpbGVzLmVuZCgpOwotICAgIGZvciAoSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0ZXJh
dG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZVRpbGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
CiAgICAgICAgIG1fdGlsZXNUb1JlbW92ZS5hZGQoaXQtPmtleSk7CiB9CiAKIHZvaWQgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUodWludDMyX3QgaWQsIGNvbnN0IEludFJlY3Qm
IHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LCBQYXNzUmVmUHRyPENvb3JkaW5h
dGVkU3VyZmFjZT4gYmFja0J1ZmZlciwgY29uc3QgSW50UG9pbnQmIG9mZnNldCkKIHsKLSAgICBI
YXNoTWFwPHVpbnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRvciBp
dCA9IG1fdGlsZXMuZmluZChpZCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFw
OjppdGVyYXRvciBpdCA9IG1fdGlsZXMuZmluZChpZCk7CiAgICAgQVNTRVJUKGl0ICE9IG1fdGls
ZXMuZW5kKCkpOwotICAgIGl0LT52YWx1ZS5pbmNyZW1lbnRSZXBhaW50Q291bnQoKTsKICAgICBp
dC0+dmFsdWUuc2V0QmFja0J1ZmZlcih0aWxlUmVjdCwgc291cmNlUmVjdCwgYmFja0J1ZmZlciwg
b2Zmc2V0KTsKIH0KIAogUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZTo6dGV4dHVyZSgpIGNvbnN0CiB7Ci0gICAgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQo
KTsKLSAgICBmb3IgKEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGls
ZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVN
YXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKICAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUgPSBpdC0+dmFsdWUudGV4
dHVyZSgpOwogICAgICAgICBpZiAodGV4dHVyZSkKICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJl
OwpAQCAtMTA5LDI4ICsxMDgsMTUgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6c2V0
U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCiAgICAgbV9zaXplID0gc2l6ZTsK
IH0KIAotc3RhdGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKQordm9pZCBDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8VGV4
dHVyZU1hcHBlclRpbGUqPiYgdGlsZXMsIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJpdG1h
cFRleHR1cmUqIG1hc2ssIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSNpZiBQTEFURk9STShR
VCkKLSAgICByZXR1cm4gKHFnZXRlbnYoIlFUX1dFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVH
X1ZJU1VBTFMiKSA9PSAiMSIpOwotI2VsaWYgVVNFKENBSVJPKQotICAgIHJldHVybiAoU3RyaW5n
KGdldGVudigiV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUyIpKSA9PSAiMSIp
OwotI2VuZGlmCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
dGlsZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIHRpbGVzW2ldLT5wYWludCh0ZXh0dXJlTWFwcGVy
LCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVj
dCwgdGlsZXNbaV0tPnJlY3QoKSkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
OjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+JiB0
aWxlcywgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaywgY29u
c3QgRmxvYXRSZWN0JiByZWN0KQorVHJhbnNmb3JtYXRpb25NYXRyaXggQ29vcmRpbmF0ZWRCYWNr
aW5nU3RvcmU6OmFkanVzdGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdl
dFJlY3QpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0aWxlcy5zaXplKCk7ICsraSkg
ewotICAgICAgICBUZXh0dXJlTWFwcGVyVGlsZSogdGlsZSA9IHRpbGVzW2ldOwotICAgICAgICB0
aWxlLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1
bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZS0+cmVjdCgpKSk7Ci0gICAgICAgIHN0YXRp
YyBib29sIHNob3VsZERlYnVnID0gc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKTsKLSAgICAg
ICAgaWYgKCFzaG91bGREZWJ1ZykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHRl
eHR1cmVNYXBwZXItPmRyYXdCb3JkZXIoQ29sb3IoMHhGRiwgMCwgMCksIDIsIHRpbGUtPnJlY3Qo
KSwgdHJhbnNmb3JtKTsKLSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd1JlcGFpbnRDb3VudGVy
KHN0YXRpY19jYXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSo+KHRpbGUpLT5yZXBhaW50
Q291bnQoKSwgOCwgdGlsZS0+cmVjdCgpLmxvY2F0aW9uKCksIHRyYW5zZm9ybSk7Ci0gICAgfQor
ICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdChyZWN0KCksIHRhcmdl
dFJlY3QpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVy
ZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9w
YWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spCkBAIC0xNDMsOSArMTI5LDkgQEAgdm9pZCBDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciog
dGV4dHVyZU1hcHBlciwKICAgICBWZWN0b3I8VGV4dHVyZU1hcHBlclRpbGUqPiBwcmV2aW91c1Rp
bGVzVG9QYWludDsKIAogICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBldmVyeSB0aW1lIHdlIHBh
aW50LCBpbiBjYXNlIHRoZSBvcGFjaXR5IGhhcyBjaGFuZ2VkLgotICAgIEhhc2hNYXA8dWludDMy
X3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGVuZCA9IG1fdGlsZXMu
ZW5kKCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQg
PSBtX3RpbGVzLmVuZCgpOwogICAgIEZsb2F0UmVjdCBjb3ZlcmVkUmVjdDsKLSAgICBmb3IgKEhh
c2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0
ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICBmb3IgKENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkgewogICAgICAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUmIHRp
bGUgPSBpdC0+dmFsdWU7CiAgICAgICAgIGlmICghdGlsZS50ZXh0dXJlKCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKQEAgLTE2NCwxNCArMTUwLDI4IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIs
CiAgICAgICAgIHByZXZpb3VzVGlsZXNUb1BhaW50LmFwcGVuZCgmdGlsZSk7CiAgICAgfQogCi0g
ICAgRmxvYXRSZWN0IHJlY3RPbkNvbnRlbnRzKEZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsK
LSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhZGp1c3RlZFRyYW5zZm9ybSA9IHRyYW5zZm9ybTsK
ICAgICAvLyB0YXJnZXRSZWN0IGlzIG9uIHRoZSBjb250ZW50cyBjb29yZGluYXRlIHN5c3RlbSwg
c28gd2UgbXVzdCBjb21wYXJlIHR3byByZWN0cyBvbiB0aGUgY29udGVudHMgY29vcmRpbmF0ZSBz
eXN0ZW0uCiAgICAgLy8gU2VlIFRpbGVkQmFja2luZ1N0b3JlLgotICAgIGFkanVzdGVkVHJhbnNm
b3JtLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0KHJlY3RPbkNvbnRl
bnRzLCB0YXJnZXRSZWN0KSk7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFu
c2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7
CiAKLSAgICBwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKHByZXZpb3VzVGlsZXNUb1BhaW50LCB0
ZXh0dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdE9uQ29u
dGVudHMpOwotICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIodGlsZXNUb1BhaW50LCB0ZXh0
dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdE9uQ29udGVu
dHMpOworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIocHJldmlvdXNUaWxlc1RvUGFpbnQs
IHRleHR1cmVNYXBwZXIsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrLCByZWN0KCkp
OworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIodGlsZXNUb1BhaW50LCB0ZXh0dXJlTWFw
cGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdCgpKTsKK30KKwordm9p
ZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRlcihUZXh0dXJlTWFwcGVyKiB0ZXh0
dXJlTWFwcGVyLCBjb25zdCBDb2xvciYgYm9yZGVyQ29sb3IsIGZsb2F0IGJvcmRlcldpZHRoLCBj
b25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0
cmFuc2Zvcm0pCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0g
PSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7CisgICAg
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVu
ZCgpOworICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBp
dCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJlTWFw
cGVyLT5kcmF3Qm9yZGVyKGJvcmRlckNvbG9yLCBib3JkZXJXaWR0aCwgaXQtPnZhbHVlLnJlY3Qo
KSwgYWRqdXN0ZWRUcmFuc2Zvcm0pOworfQorCit2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
OjpkcmF3UmVwYWludENvdW50ZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgaW50IHJl
cGFpbnRDb3VudCwgY29uc3QgQ29sb3ImIGJvcmRlckNvbG9yLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pCit7CisgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1
c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOworICAgIGZvciAoQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3UmVwYWludENv
dW50ZXIocmVwYWludENvdW50LCBib3JkZXJDb2xvciwgaXQtPnZhbHVlLnJlY3QoKS5sb2NhdGlv
bigpLCBhZGp1c3RlZFRyYW5zZm9ybSk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmU6OmNvbW1pdFRpbGVPcGVyYXRpb25zKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCkBA
IC0xODEsOCArMTgxLDggQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6Y29tbWl0VGls
ZU9wZXJhdGlvbnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcikKICAgICAgICAgbV90aWxl
cy5yZW1vdmUoKml0KTsKICAgICBtX3RpbGVzVG9SZW1vdmUuY2xlYXIoKTsKIAotICAgIEhhc2hN
YXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIHRpbGVz
RW5kID0gbV90aWxlcy5lbmQoKTsKLSAgICBmb3IgKEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAh
PSB0aWxlc0VuZDsgKytpdCkKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0
ZXJhdG9yIHRpbGVzRW5kID0gbV90aWxlcy5lbmQoKTsKKyAgICBmb3IgKENvb3JkaW5hdGVkQmFj
a2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9IHRp
bGVzRW5kOyArK2l0KQogICAgICAgICBpdC0+dmFsdWUuc3dhcEJ1ZmZlcnModGV4dHVyZU1hcHBl
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmluZGV4
IGFlNWFmOGQ0ZmEyZmM5ZWJkMjExOTcyN2ZjYWRkODU5NjIzMzBmOTkuLmE4MTIwZTllMzgyMjVm
NjQwOTU0NjA4MzY4ZjQ5MjQzNDdkODM0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuaApAQCAtMzYsMTMgKzM2LDEwIEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUoZmxvYXQgc2NhbGUgPSAxKQogICAgICAgICA6
IFRleHR1cmVNYXBwZXJUaWxlKFdlYkNvcmU6OkZsb2F0UmVjdCgpKQogICAgICAgICAsIG1fc2Nh
bGUoc2NhbGUpCi0gICAgICAgICwgbV9yZXBhaW50Q291bnQoMCkKICAgICB7CiAgICAgfQogCiAg
ICAgaW5saW5lIGZsb2F0IHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZTsgfQotICAgIGlu
bGluZSB2b2lkIGluY3JlbWVudFJlcGFpbnRDb3VudCgpIHsgKyttX3JlcGFpbnRDb3VudDsgfQot
ICAgIGlubGluZSBpbnQgcmVwYWludENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Q291
bnQ7IH0KICAgICB2b2lkIHN3YXBCdWZmZXJzKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqKTsKICAg
ICB2b2lkIHNldEJhY2tCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gYnVmZmVyLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCkBAIC01Miw3ICs0OSw2IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6SW50UmVjdCBtX3RpbGVSZWN0OwogICAgIFdlYkNvcmU6OkludFBvaW50IG1fc3Vy
ZmFjZU9mZnNldDsKICAgICBmbG9hdCBtX3NjYWxlOwotICAgIGludCBtX3JlcGFpbnRDb3VudDsK
IH07CiAKIGNsYXNzIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIDogcHVibGljIFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJCYWNraW5nU3RvcmUgewpAQCAtNjYsMTQgKzYyLDE5IEBAIHB1YmxpYzoKICAg
ICBQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSBjb25zdDsKICAg
ICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKik7CisgICAgdmlydHVhbCB2b2lkIGRyYXdC
b3JkZXIoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgZmxv
YXQgYm9yZGVyV2lkdGgsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyYXdS
ZXBhaW50Q291bnRlcihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKiwgaW50IHJlcGFpbnRDb3VudCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIE9WRVJSSURFOwogCiBwcml2YXRlOgogICAg
IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKCkKICAgICAgICAgOiBtX3NjYWxlKDEuKQogICAgIHsg
fQogICAgIHZvaWQgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8V2ViQ29yZTo6VGV4
dHVyZU1hcHBlclRpbGUqPiYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gV2ViQ29yZTo6
RmxvYXRSZWN0KFdlYkNvcmU6OkZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsgfQogCi0gICAg
SGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPiBtX3RpbGVzOwor
ICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxl
PiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlTWFwIG1fdGlsZXM7CiAgICAgSGFzaFNldDx1aW50MzJfdD4gbV90aWxlc1RvUmVt
b3ZlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3NpemU7CiAgICAgZmxvYXQgbV9zY2FsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNw
cAppbmRleCA4N2ZiMTcxOTA0NDMxZTQ1YzcwZWM0NGYzNjRhNjUyNDYxN2NkYmU5Li5iZGQxMzk2
MWM0MDZjNmYwYjc1NzEwZTZhMzYzZThhYjg0OTc5MThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDEx
IEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OmRlc3Ryb3lDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAKK3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0UHJveHk6OnNldExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwg
aW50IHZhbHVlKQoreworICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVy
OjpzZXRMYXllclJlcGFpbnRDb3VudCwgbV9yZW5kZXJlci5nZXQoKSwgaWQsIHZhbHVlKSk7Cit9
CisKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnB1cmdlQmFja2luZ1N0b3Jl
cygpCiB7CiAgICAgbV9zdXJmYWNlcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggOTRmYTQ3NmYwOTJiNGRmZGM4ZjNh
MzRhMThmMWRmMWMzMWRmMzk4Mi4uNGM1Y2U0YTdlN2I5OTlmMTQ4ODQ1ODY1MTNjMTkzODQ1NDAx
Y2UzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eS5oCkBAIC04NSw2ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bmNDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CiAgICAgdm9pZCBkZXN0cm95
Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCk7CiAjZW5kaWYKKyAgICB2b2lkIHNldExheWVyUmVw
YWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50IHZhbHVlKTsKICAgICB2b2lkIHB1cmdl
QmFja2luZ1N0b3JlcygpOwogICAgIExheWVyVHJlZVJlbmRlcmVyKiBsYXllclRyZWVSZW5kZXJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldExheWVy
QW5pbWF0aW9ucyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJBbmltYXRpb25zJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGM1ZTUyZGM4YjgwYTQ1ODJm
OGFhZWQ3YjBkZTI1MTQwMTBjNzkwZDEuLmUzZTc4YjMwYjAxOTI1NTNiMDZjNjkyODkyOGIwYTZi
MzNkNmQ2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCkBAIC01NSw2ICs1NSw4IEBAIG1lc3NhZ2Vz
IC0+IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBE
ZXN0cm95Q2FudmFzKHVpbnQzMl90IGlkKQogI2VuZGlmCiAKKyAgICBTZXRMYXllclJlcGFpbnRD
b3VudCh1aW50MzJfdCBsYXllcklELCBpbnQgdmFsdWUpCisKICAgICBTZXRCYWNrZ3JvdW5kQ29s
b3IoV2ViQ29yZTo6Q29sb3IgY29sb3IpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZVJlbmRlcmVyLmNwcAppbmRleCBkZmE0MDZkMDRkYWViYjc2Yzc2MDljM2YwNzViZGIxZTljYzQ0
YTkxLi44MDVhODczNmU5NDJiY2YzZTQzZWI0OTM2NTVlMGVlMDMzOTNhOGRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCkBAIC0yNTUsNiArMjU1LDEyIEBAIHZvaWQgTGF5
ZXJUcmVlUmVuZGVyZXI6OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogfQog
I2VuZGlmCiAKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyUmVwYWludENvdW50KENv
b3JkaW5hdGVkTGF5ZXJJRCBpZCwgaW50IHZhbHVlKQoreworICAgIEdyYXBoaWNzTGF5ZXIqIGxh
eWVyID0gbGF5ZXJCeUlEKGlkKTsKKyAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGxh
eWVyKS0+c2V0UmVwYWludENvdW50KHZhbHVlKTsKK30KKwogdm9pZCBMYXllclRyZWVSZW5kZXJl
cjo6c2V0TGF5ZXJDaGlsZHJlbihDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxD
b29yZGluYXRlZExheWVySUQ+JiBjaGlsZElEcykKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXll
ciA9IGxheWVyQnlJRChpZCk7CkBAIC0zMzMsNiArMzM5LDkgQEAgdm9pZCBMYXllclRyZWVSZW5k
ZXJlcjo6c2V0TGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaW5h
dGVkTGEKICAgICBsYXllci0+c2V0RHJhd3NDb250ZW50KGxheWVySW5mby5kcmF3c0NvbnRlbnQp
OwogICAgIGxheWVyLT5zZXRDb250ZW50c1Zpc2libGUobGF5ZXJJbmZvLmNvbnRlbnRzVmlzaWJs
ZSk7CiAgICAgdG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihsYXllciktPnNldEZpeGVkVG9W
aWV3cG9ydChsYXllckluZm8uZml4ZWRUb1ZpZXdwb3J0KTsKKyAgICBsYXllci0+c2V0U2hvd0Rl
YnVnQm9yZGVyKGxheWVySW5mby5zaG93RGVidWdCb3JkZXJzKTsKKyAgICBsYXllci0+c2V0RGVi
dWdCb3JkZXIobGF5ZXJJbmZvLmRlYnVnQm9yZGVyQ29sb3IsIGxheWVySW5mby5kZWJ1Z0JvcmRl
cldpZHRoKTsKKyAgICBsYXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKGxheWVySW5mby5zaG93
UmVwYWludENvdW50ZXIpOwogCiAgICAgaWYgKGxheWVySW5mby5maXhlZFRvVmlld3BvcnQpCiAg
ICAgICAgIG1fZml4ZWRMYXllcnMuYWRkKGlkLCBsYXllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuaAppbmRleCBjMWQ1OGY0OTlmZTkxYzE3NGIzNmYzNDIwOTZkOGE5M2RjY2QyNGU1
Li5kYmZhNmE4OWVlN2NkOGQ1NDhkZTY3ZjBmYTkyOTRlNjQxOWVkN2ZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5k
ZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IGZyb250QnVmZmVyKTsKICAg
ICB2b2lkIGRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKTsKICNlbmRpZgorICAgIHZv
aWQgc2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQgdmFsdWUpOwog
CiAgICAgdm9pZCBkZXRhY2goKTsKICAgICB2b2lkIGFwcGVuZFVwZGF0ZShjb25zdCBGdW5jdGlv
bjx2b2lkKCk+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA1ZjI2NjJlZjA5MThiM2FhOTIxNDBhNDg0NTJh
NTU1ODJmNTdiZDM5Li4wZTYyZjVkNjFjOWYyYTY0ZTkxODZjNTNmNzcyNTZjZmIwNGJkZTA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5jcHAKQEAgLTM3MSw2ICszNzEsMjYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBk
aWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CiAKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzZXRTaG93RGVidWdCb3JkZXIoYm9vbCBzaG93KQoreworICAgIGlmIChpc1Nob3dpbmdEZWJ1
Z0JvcmRlcigpID09IHNob3cpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6
OnNldFNob3dEZWJ1Z0JvcmRlcihzaG93KTsKKworICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsK
K30KKwordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRl
cihib29sIHNob3cpCit7CisgICAgaWYgKGlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkgPT0gc2hv
dykKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0U2hvd1JlcGFpbnRD
b3VudGVyKHNob3cpOworCisgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworfQorCiB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkK
IHsKICAgICBOYXRpdmVJbWFnZVB0ciBuZXdOYXRpdmVJbWFnZVB0ciA9IGltYWdlID8gaW1hZ2Ut
Pm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgOiAwOwpAQCAtNTUwLDkgKzU3MCwyNCBAQCB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUoKQogICAgIG1fbGF5
ZXJJbmZvLnBvcyA9IG1fYWRqdXN0ZWRQb3NpdGlvbjsKICAgICBtX2xheWVySW5mby5zaXplID0g
bV9hZGp1c3RlZFNpemU7CiAKKyAgICBtX2xheWVySW5mby5zaG93RGVidWdCb3JkZXJzID0gaXNT
aG93aW5nRGVidWdCb3JkZXIoKTsKKyAgICBpZiAobV9sYXllckluZm8uc2hvd0RlYnVnQm9yZGVy
cykgeworICAgICAgICAvLyBtX3VzaW5nVGlsZWRMYXllciBhZmZlY3RzIGxheW91dCB0ZXN0IHJl
c3VsdHMgYW5kIG9ubHkgTWFjIHBvcnQgdXNlcyB0aGlzIHZhcmlhYmxlLgorICAgICAgICBUZW1w
b3JhcnlDaGFuZ2U8Ym9vbD4gdXNpbmdUaWxlTGF5ZXJQcm90ZWN0b3IobV91c2luZ1RpbGVkTGF5
ZXIsIHNob3VsZEhhdmVCYWNraW5nU3RvcmUoKSk7CisgICAgICAgIHVwZGF0ZURlYnVnSW5kaWNh
dG9ycygpOworICAgIH0KKyAgICBtX2xheWVySW5mby5zaG93UmVwYWludENvdW50ZXIgPSBpc1No
b3dpbmdSZXBhaW50Q291bnRlcigpOworCiAgICAgbV9jb29yZGluYXRvci0+c3luY0xheWVyU3Rh
dGUobV9pZCwgbV9sYXllckluZm8pOwogfQogCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6c2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCB3aWR0aCkKK3sKKyAg
ICBBU1NFUlQobV9sYXllckluZm8uc2hvd0RlYnVnQm9yZGVycyk7CisgICAgbV9sYXllckluZm8u
ZGVidWdCb3JkZXJDb2xvciA9IGNvbG9yOworICAgIG1fbGF5ZXJJbmZvLmRlYnVnQm9yZGVyV2lk
dGggPSB3aWR0aDsKK30KKwogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNBbmlt
YXRpb25zKCkKIHsKICAgICBpZiAoIW1fc2hvdWxkU3luY0FuaW1hdGlvbnMpCkBAIC02OTgsOCAr
NzMzLDEwIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9y
ZVBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwKICAgICBwYWludEdyYXBoaWNzTGF5ZXJD
b250ZW50cygqY29udGV4dCwgcmVjdCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5kKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgLyog
dXBkYXRlZFJlY3RzICovKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFj
a2luZ1N0b3JlUGFpbnRFbmQoY29uc3QgVmVjdG9yPEludFJlY3Q+JiB1cGRhdGVkUmVjdHMpCiB7
CisgICAgaWYgKGlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkgJiYgIXVwZGF0ZWRSZWN0cy5pc0Vt
cHR5KCkpCisgICAgICAgIG1fY29vcmRpbmF0b3ItPnNldExheWVyUmVwYWludENvdW50KGlkKCks
IGluY3JlbWVudFJlcGFpbnRDb3VudCgpKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlSGFzUGVuZGluZ1RpbGVDcmVhdGlvbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmlu
ZGV4IDZjNDM1ODVjNzBjOGUwMzA2NWU0ZGNhYTI3ZTRmMGRhMmZhMzY5NDYuLjdlYTM4MWY3Y2Y3
Yzc1YWQzNGQ0NTM4NzkwYTBlMzAwYzQ1ZjNhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC03MSw2ICs3MSw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveUNhbnZhcyhDb29yZGluYXRlZExheWVy
SUQpID0gMDsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIHNldExheWVyUmVwYWludENvdW50
KENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50KSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5
ZXJBbmltYXRpb25zKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllckFuaW1hdGlvbnMmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwpAQCAtMTEyLDYgKzExNCw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNSZWN0KGNvbnN0IEludFJlY3Qm
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKEltYWdlKikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0
IENvbG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihi
b29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJv
b2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREaXJlY3RseUNvbXBvc2l0ZUlt
YWdlKEltYWdlKikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
VG9DYW52YXMoUGxhdGZvcm1MYXllciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRN
YXNrTGF5ZXIoR3JhcGhpY3NMYXllciopIE9WRVJSSURFOwpAQCAtMTY2LDYgKzE3MCw4IEBAIHB1
YmxpYzoKICAgICBib29sIGhhc1BlbmRpbmdWaXNpYmxlQ2hhbmdlcygpOwogCiBwcml2YXRlOgor
ICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IHdpZHRo
KSBPVkVSUklERTsKKwogICAgIGJvb2wgZml4ZWRUb1ZpZXdwb3J0KCkgY29uc3QgeyByZXR1cm4g
bV9maXhlZFRvVmlld3BvcnQ7IH0KIAogICAgIHZvaWQgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdC5jcHAKaW5kZXggMGZjMWFmMmZkNGY0NzQxOGY1NjM3MzhjMmY1YzY2OGQ3ZGQ5ZjhhOS4u
MmVhZjg2NWE0NDQyNzQwOTJkOGJmYWE5NzNlMDQ3MDI3MDc0ODYwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBA
IC0zOTEsNiArMzkxLDExIEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkZXN0cm95
Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCkKIH0KICNlbmRpZgogCit2b2lkIENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6c2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklE
IGlkLCBpbnQgdmFsdWUpCit7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpDb29yZGlu
YXRlZExheWVyVHJlZUhvc3RQcm94eTo6U2V0TGF5ZXJSZXBhaW50Q291bnQoaWQsIHZhbHVlKSk7
Cit9CisKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdDo6c3luY0xheWVyRmlsdGVycyhDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IEZpbHRl
ck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDAxMDIyYjJjYzRlOTg0ODhhNGRm
Nzg3ZWEzNjkwYjcyYWNjZmY3MjkuLjlhYTllNmVjZGYzYTY5ZWYwMDM4MjhlMTc4YTk4NjEwNjc0
ZmY3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdC5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzeW5jQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1MYXll
ciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVk
TGF5ZXJJRCkgT1ZFUlJJREU7CiAjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJSZXBh
aW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBkZXRhY2hMYXllcihXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc3luY0ZpeGVkTGF5ZXJzKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185094</attachid>
            <date>2013-01-28 16:22:24 -0800</date>
            <delta_ts>2013-01-28 16:30:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107910-20130129091849.patch</filename>
            <type>text/plain</type>
            <size>25556</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmZhZjA0YTY4ZGFhNzQ0
OTI4MzlkZTg1NTQyMjQ5ODk2NDM5NzQyMy4uZjM1MzYxZGNkYmZmNjAwYmY0N2ZkZjgyOWMxYmNj
YmI4YjkwZGI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY4IEBACiAyMDEzLTAxLTI4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIHJlbGF0ZWQgdG8gZGVidWcgYm9yZGVyIGFuZCBy
ZXBhaW50IGNvdW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3OTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlcmUgYXJlIHR3byBiaWcgY2hhbmdlczoKKyAgICAgICAgMS4gQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyIHNlbmRzIGRlYnVnZ2luZyB2aXN1YWxzIHRvIFVJIFByb2Nlc3MuCisgICAg
ICAgIDIuIFdoZW4gdXBkYXRpbmcgYSBiYWNraW5nIHN0b3JlLCBpbmNyZW1lbnQgYSByZXBhaW50
IGNvdW50LgorCisgICAgICAgIEluIGFkZGl0aW9uLCB3ZSBkb24ndCB1c2UgUVRfV0VCS0lUX1NI
T1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUworICAgICAgICBlbnZpcm9ubWVudC4gRUZMLCBH
VEsgYW5kIFFUIHdpbGwgdXNlIFdFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMK
KyAgICAgICAgYWZ0ZXIgaHR0cDovL3dlYmtpdC5vcmcvYi8xMDcxOTguCisKKyAgICAgICAgKiBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oOgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVySW5mbzo6Q29vcmRpbmF0ZWRMYXllckluZm8pOgor
ICAgICAgICAoQ29vcmRpbmF0ZWRMYXllckluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZUFsbFRpbGVzKToKKyAgICAgICAg
KFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUpOgorICAgICAgICAo
V2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSk6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKToK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmFkanVzdGVkVHJhbnNm
b3JtRm9yUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpw
YWludFRvVGV4dHVyZU1hcHBlcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRlcik6CisgICAgICAgICAgICBPdmVy
cmlkZSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcjo6ZHJhd0JvcmRlcigpIHRvIGRyYXcgdGhl
IGJvcmRlcgorICAgICAgICAgICAgZm9yIGVhY2ggdGlsZS4KKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU6OmRyYXdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpjb21taXRUaWxlT3BlcmF0aW9ucyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmUuaDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlOjpDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUpOgorICAgICAgICAoQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmVUaWxlKToKKyAgICAgICAgKENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlY3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNldExheWVy
UmVwYWludENvdW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAg
ICAgKENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXll
clJlcGFpbnRDb3VudCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAgKExheWVyVHJlZVJl
bmRlcmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93RGVidWdCb3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dS
ZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnN5bmNMYXllclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0RGVidWdCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5kKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAg
IChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0TGF5ZXJSZXBhaW50Q291
bnQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaDoKKworMjAxMy0wMS0y
OCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBb
VGV4TWFwXSBFbmFibGUgZGVidWcgYm9yZGVycyBhbmQgcmVwYWludCBjb3VudGVyIHZpYSBTZXR0
aW5ncy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
NzE5OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVySW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaAppbmRleCBmOWEwMDFkZmY0Mzc4
MzcwMzhhNGVlYWI1ZmY1NmUzYjk1MzMwNTZkLi40MTVmYmI2NmE4MDI1ODFiNDhjOTAzZDQ4YjVl
MTgzOTg0YzEzZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmgKQEAgLTQzLDYg
KzQzLDcgQEAgc3RydWN0IENvb3JkaW5hdGVkTGF5ZXJJbmZvIHsKICAgICAgICAgLCBtYXNrKElu
dmFsaWRDb29yZGluYXRlZExheWVySUQpCiAgICAgICAgICwgaW1hZ2VJRChJbnZhbGlkQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmdJRCkKICAgICAgICAgLCBvcGFjaXR5KDApCisgICAgICAgICwgZGVi
dWdCb3JkZXJXaWR0aCgwKQogICAgICAgICAsIGZsYWdzKDApIHsgfQogCiAgICAgQ29vcmRpbmF0
ZWRMYXllcklEIHJlcGxpY2E7CkBAIC01Nyw2ICs1OCw4IEBAIHN0cnVjdCBDb29yZGluYXRlZExh
eWVySW5mbyB7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBjb250ZW50c1JlY3Q7CiAgICAgZmxvYXQg
b3BhY2l0eTsKICAgICBXZWJDb3JlOjpDb2xvciBzb2xpZENvbG9yOworICAgIFdlYkNvcmU6OkNv
bG9yIGRlYnVnQm9yZGVyQ29sb3I7CisgICAgZmxvYXQgZGVidWdCb3JkZXJXaWR0aDsKIAogICAg
IHVuaW9uIHsKICAgICAgICAgc3RydWN0IHsKQEAgLTY4LDYgKzcxLDggQEAgc3RydWN0IENvb3Jk
aW5hdGVkTGF5ZXJJbmZvIHsKICAgICAgICAgICAgIGJvb2wgcHJlc2VydmVzM0QgOiAxOwogICAg
ICAgICAgICAgYm9vbCBpc1Jvb3RMYXllcjogMTsKICAgICAgICAgICAgIGJvb2wgZml4ZWRUb1Zp
ZXdwb3J0IDogMTsKKyAgICAgICAgICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycyA6IDE7CisgICAg
ICAgICAgICBib29sIHNob3dSZXBhaW50Q291bnRlciA6IDE7CiAgICAgICAgIH07CiAgICAgICAg
IHVuc2lnbmVkIGZsYWdzOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJh
Y2tpbmdTdG9yZS5jcHAKaW5kZXggNGE3YmIxMDg2ZWU3YTg2N2IyZDNmZDY4MGM1YTM3ZGIwNWI4
YjdkOC4uNzgzOGJiMGRiMjBkODc0MzRjOGE0MzFhNGYwNGY0ZmQ4NmE2NjBmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtNzksMjMgKzc5LDIy
IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZVRpbGUodWludDMyX3QgaWQp
CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZUFsbFRpbGVzKCkKIHsKLSAg
ICBIYXNoTWFwPHVpbnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRv
ciBlbmQgPSBtX3RpbGVzLmVuZCgpOwotICAgIGZvciAoSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0ZXJh
dG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZVRpbGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
CiAgICAgICAgIG1fdGlsZXNUb1JlbW92ZS5hZGQoaXQtPmtleSk7CiB9CiAKIHZvaWQgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUodWludDMyX3QgaWQsIGNvbnN0IEludFJlY3Qm
IHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LCBQYXNzUmVmUHRyPENvb3JkaW5h
dGVkU3VyZmFjZT4gYmFja0J1ZmZlciwgY29uc3QgSW50UG9pbnQmIG9mZnNldCkKIHsKLSAgICBI
YXNoTWFwPHVpbnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRvciBp
dCA9IG1fdGlsZXMuZmluZChpZCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFw
OjppdGVyYXRvciBpdCA9IG1fdGlsZXMuZmluZChpZCk7CiAgICAgQVNTRVJUKGl0ICE9IG1fdGls
ZXMuZW5kKCkpOwotICAgIGl0LT52YWx1ZS5pbmNyZW1lbnRSZXBhaW50Q291bnQoKTsKICAgICBp
dC0+dmFsdWUuc2V0QmFja0J1ZmZlcih0aWxlUmVjdCwgc291cmNlUmVjdCwgYmFja0J1ZmZlciwg
b2Zmc2V0KTsKIH0KIAogUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZTo6dGV4dHVyZSgpIGNvbnN0CiB7Ci0gICAgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQo
KTsKLSAgICBmb3IgKEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGls
ZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVN
YXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKICAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUgPSBpdC0+dmFsdWUudGV4
dHVyZSgpOwogICAgICAgICBpZiAodGV4dHVyZSkKICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJl
OwpAQCAtMTA5LDI4ICsxMDgsMTUgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6c2V0
U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCiAgICAgbV9zaXplID0gc2l6ZTsK
IH0KIAotc3RhdGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKQordm9pZCBDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8VGV4
dHVyZU1hcHBlclRpbGUqPiYgdGlsZXMsIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJpdG1h
cFRleHR1cmUqIG1hc2ssIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSNpZiBQTEFURk9STShR
VCkKLSAgICByZXR1cm4gKHFnZXRlbnYoIlFUX1dFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVH
X1ZJU1VBTFMiKSA9PSAiMSIpOwotI2VsaWYgVVNFKENBSVJPKQotICAgIHJldHVybiAoU3RyaW5n
KGdldGVudigiV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUyIpKSA9PSAiMSIp
OwotI2VuZGlmCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
dGlsZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIHRpbGVzW2ldLT5wYWludCh0ZXh0dXJlTWFwcGVy
LCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVj
dCwgdGlsZXNbaV0tPnJlY3QoKSkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
OjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+JiB0
aWxlcywgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaywgY29u
c3QgRmxvYXRSZWN0JiByZWN0KQorVHJhbnNmb3JtYXRpb25NYXRyaXggQ29vcmRpbmF0ZWRCYWNr
aW5nU3RvcmU6OmFkanVzdGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdl
dFJlY3QpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0aWxlcy5zaXplKCk7ICsraSkg
ewotICAgICAgICBUZXh0dXJlTWFwcGVyVGlsZSogdGlsZSA9IHRpbGVzW2ldOwotICAgICAgICB0
aWxlLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1
bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZS0+cmVjdCgpKSk7Ci0gICAgICAgIHN0YXRp
YyBib29sIHNob3VsZERlYnVnID0gc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKTsKLSAgICAg
ICAgaWYgKCFzaG91bGREZWJ1ZykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHRl
eHR1cmVNYXBwZXItPmRyYXdCb3JkZXIoQ29sb3IoMHhGRiwgMCwgMCksIDIsIHRpbGUtPnJlY3Qo
KSwgdHJhbnNmb3JtKTsKLSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd1JlcGFpbnRDb3VudGVy
KHN0YXRpY19jYXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSo+KHRpbGUpLT5yZXBhaW50
Q291bnQoKSwgOCwgdGlsZS0+cmVjdCgpLmxvY2F0aW9uKCksIHRyYW5zZm9ybSk7Ci0gICAgfQor
ICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdChyZWN0KCksIHRhcmdl
dFJlY3QpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVy
ZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9w
YWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spCkBAIC0xNDMsOSArMTI5LDkgQEAgdm9pZCBDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciog
dGV4dHVyZU1hcHBlciwKICAgICBWZWN0b3I8VGV4dHVyZU1hcHBlclRpbGUqPiBwcmV2aW91c1Rp
bGVzVG9QYWludDsKIAogICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBldmVyeSB0aW1lIHdlIHBh
aW50LCBpbiBjYXNlIHRoZSBvcGFjaXR5IGhhcyBjaGFuZ2VkLgotICAgIEhhc2hNYXA8dWludDMy
X3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGVuZCA9IG1fdGlsZXMu
ZW5kKCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQg
PSBtX3RpbGVzLmVuZCgpOwogICAgIEZsb2F0UmVjdCBjb3ZlcmVkUmVjdDsKLSAgICBmb3IgKEhh
c2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0
ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICBmb3IgKENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkgewogICAgICAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUmIHRp
bGUgPSBpdC0+dmFsdWU7CiAgICAgICAgIGlmICghdGlsZS50ZXh0dXJlKCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKQEAgLTE2NCwxNCArMTUwLDI4IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIs
CiAgICAgICAgIHByZXZpb3VzVGlsZXNUb1BhaW50LmFwcGVuZCgmdGlsZSk7CiAgICAgfQogCi0g
ICAgRmxvYXRSZWN0IHJlY3RPbkNvbnRlbnRzKEZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsK
LSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhZGp1c3RlZFRyYW5zZm9ybSA9IHRyYW5zZm9ybTsK
ICAgICAvLyB0YXJnZXRSZWN0IGlzIG9uIHRoZSBjb250ZW50cyBjb29yZGluYXRlIHN5c3RlbSwg
c28gd2UgbXVzdCBjb21wYXJlIHR3byByZWN0cyBvbiB0aGUgY29udGVudHMgY29vcmRpbmF0ZSBz
eXN0ZW0uCiAgICAgLy8gU2VlIFRpbGVkQmFja2luZ1N0b3JlLgotICAgIGFkanVzdGVkVHJhbnNm
b3JtLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0KHJlY3RPbkNvbnRl
bnRzLCB0YXJnZXRSZWN0KSk7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFu
c2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7
CiAKLSAgICBwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKHByZXZpb3VzVGlsZXNUb1BhaW50LCB0
ZXh0dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdE9uQ29u
dGVudHMpOwotICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIodGlsZXNUb1BhaW50LCB0ZXh0
dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdE9uQ29udGVu
dHMpOworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIocHJldmlvdXNUaWxlc1RvUGFpbnQs
IHRleHR1cmVNYXBwZXIsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrLCByZWN0KCkp
OworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIodGlsZXNUb1BhaW50LCB0ZXh0dXJlTWFw
cGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdCgpKTsKK30KKwordm9p
ZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRlcihUZXh0dXJlTWFwcGVyKiB0ZXh0
dXJlTWFwcGVyLCBjb25zdCBDb2xvciYgYm9yZGVyQ29sb3IsIGZsb2F0IGJvcmRlcldpZHRoLCBj
b25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0
cmFuc2Zvcm0pCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0g
PSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7CisgICAg
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVu
ZCgpOworICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBp
dCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJlTWFw
cGVyLT5kcmF3Qm9yZGVyKGJvcmRlckNvbG9yLCBib3JkZXJXaWR0aCwgaXQtPnZhbHVlLnJlY3Qo
KSwgYWRqdXN0ZWRUcmFuc2Zvcm0pOworfQorCit2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
OjpkcmF3UmVwYWludENvdW50ZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgaW50IHJl
cGFpbnRDb3VudCwgY29uc3QgQ29sb3ImIGJvcmRlckNvbG9yLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pCit7CisgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1
c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOworICAgIGZvciAoQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3UmVwYWludENv
dW50ZXIocmVwYWludENvdW50LCBib3JkZXJDb2xvciwgaXQtPnZhbHVlLnJlY3QoKS5sb2NhdGlv
bigpLCBhZGp1c3RlZFRyYW5zZm9ybSk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmU6OmNvbW1pdFRpbGVPcGVyYXRpb25zKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCkBA
IC0xODEsOCArMTgxLDggQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6Y29tbWl0VGls
ZU9wZXJhdGlvbnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcikKICAgICAgICAgbV90aWxl
cy5yZW1vdmUoKml0KTsKICAgICBtX3RpbGVzVG9SZW1vdmUuY2xlYXIoKTsKIAotICAgIEhhc2hN
YXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIHRpbGVz
RW5kID0gbV90aWxlcy5lbmQoKTsKLSAgICBmb3IgKEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAh
PSB0aWxlc0VuZDsgKytpdCkKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0
ZXJhdG9yIHRpbGVzRW5kID0gbV90aWxlcy5lbmQoKTsKKyAgICBmb3IgKENvb3JkaW5hdGVkQmFj
a2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9IHRp
bGVzRW5kOyArK2l0KQogICAgICAgICBpdC0+dmFsdWUuc3dhcEJ1ZmZlcnModGV4dHVyZU1hcHBl
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmluZGV4
IGFlNWFmOGQ0ZmEyZmM5ZWJkMjExOTcyN2ZjYWRkODU5NjIzMzBmOTkuLmE4MTIwZTllMzgyMjVm
NjQwOTU0NjA4MzY4ZjQ5MjQzNDdkODM0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuaApAQCAtMzYsMTMgKzM2LDEwIEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUoZmxvYXQgc2NhbGUgPSAxKQogICAgICAgICA6
IFRleHR1cmVNYXBwZXJUaWxlKFdlYkNvcmU6OkZsb2F0UmVjdCgpKQogICAgICAgICAsIG1fc2Nh
bGUoc2NhbGUpCi0gICAgICAgICwgbV9yZXBhaW50Q291bnQoMCkKICAgICB7CiAgICAgfQogCiAg
ICAgaW5saW5lIGZsb2F0IHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZTsgfQotICAgIGlu
bGluZSB2b2lkIGluY3JlbWVudFJlcGFpbnRDb3VudCgpIHsgKyttX3JlcGFpbnRDb3VudDsgfQot
ICAgIGlubGluZSBpbnQgcmVwYWludENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Q291
bnQ7IH0KICAgICB2b2lkIHN3YXBCdWZmZXJzKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqKTsKICAg
ICB2b2lkIHNldEJhY2tCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gYnVmZmVyLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCkBAIC01Miw3ICs0OSw2IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6SW50UmVjdCBtX3RpbGVSZWN0OwogICAgIFdlYkNvcmU6OkludFBvaW50IG1fc3Vy
ZmFjZU9mZnNldDsKICAgICBmbG9hdCBtX3NjYWxlOwotICAgIGludCBtX3JlcGFpbnRDb3VudDsK
IH07CiAKIGNsYXNzIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIDogcHVibGljIFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJCYWNraW5nU3RvcmUgewpAQCAtNjYsMTQgKzYyLDE5IEBAIHB1YmxpYzoKICAg
ICBQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSBjb25zdDsKICAg
ICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKik7CisgICAgdmlydHVhbCB2b2lkIGRyYXdC
b3JkZXIoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgZmxv
YXQgYm9yZGVyV2lkdGgsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyYXdS
ZXBhaW50Q291bnRlcihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKiwgaW50IHJlcGFpbnRDb3VudCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIE9WRVJSSURFOwogCiBwcml2YXRlOgogICAg
IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKCkKICAgICAgICAgOiBtX3NjYWxlKDEuKQogICAgIHsg
fQogICAgIHZvaWQgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8V2ViQ29yZTo6VGV4
dHVyZU1hcHBlclRpbGUqPiYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gV2ViQ29yZTo6
RmxvYXRSZWN0KFdlYkNvcmU6OkZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsgfQogCi0gICAg
SGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPiBtX3RpbGVzOwor
ICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxl
PiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlTWFwIG1fdGlsZXM7CiAgICAgSGFzaFNldDx1aW50MzJfdD4gbV90aWxlc1RvUmVt
b3ZlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3NpemU7CiAgICAgZmxvYXQgbV9zY2FsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNw
cAppbmRleCA4N2ZiMTcxOTA0NDMxZTQ1YzcwZWM0NGYzNjRhNjUyNDYxN2NkYmU5Li5iZGQxMzk2
MWM0MDZjNmYwYjc1NzEwZTZhMzYzZThhYjg0OTc5MThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDEx
IEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OmRlc3Ryb3lDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAKK3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0UHJveHk6OnNldExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwg
aW50IHZhbHVlKQoreworICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVy
OjpzZXRMYXllclJlcGFpbnRDb3VudCwgbV9yZW5kZXJlci5nZXQoKSwgaWQsIHZhbHVlKSk7Cit9
CisKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnB1cmdlQmFja2luZ1N0b3Jl
cygpCiB7CiAgICAgbV9zdXJmYWNlcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggOTRmYTQ3NmYwOTJiNGRmZGM4ZjNh
MzRhMThmMWRmMWMzMWRmMzk4Mi4uNGM1Y2U0YTdlN2I5OTlmMTQ4ODQ1ODY1MTNjMTkzODQ1NDAx
Y2UzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eS5oCkBAIC04NSw2ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bmNDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CiAgICAgdm9pZCBkZXN0cm95
Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCk7CiAjZW5kaWYKKyAgICB2b2lkIHNldExheWVyUmVw
YWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50IHZhbHVlKTsKICAgICB2b2lkIHB1cmdl
QmFja2luZ1N0b3JlcygpOwogICAgIExheWVyVHJlZVJlbmRlcmVyKiBsYXllclRyZWVSZW5kZXJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldExheWVy
QW5pbWF0aW9ucyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJBbmltYXRpb25zJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGM1ZTUyZGM4YjgwYTQ1ODJm
OGFhZWQ3YjBkZTI1MTQwMTBjNzkwZDEuLmUzZTc4YjMwYjAxOTI1NTNiMDZjNjkyODkyOGIwYTZi
MzNkNmQ2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCkBAIC01NSw2ICs1NSw4IEBAIG1lc3NhZ2Vz
IC0+IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBE
ZXN0cm95Q2FudmFzKHVpbnQzMl90IGlkKQogI2VuZGlmCiAKKyAgICBTZXRMYXllclJlcGFpbnRD
b3VudCh1aW50MzJfdCBsYXllcklELCBpbnQgdmFsdWUpCisKICAgICBTZXRCYWNrZ3JvdW5kQ29s
b3IoV2ViQ29yZTo6Q29sb3IgY29sb3IpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZVJlbmRlcmVyLmNwcAppbmRleCBkZmE0MDZkMDRkYWViYjc2Yzc2MDljM2YwNzViZGIxZTljYzQ0
YTkxLi44MDVhODczNmU5NDJiY2YzZTQzZWI0OTM2NTVlMGVlMDMzOTNhOGRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCkBAIC0yNTUsNiArMjU1LDEyIEBAIHZvaWQgTGF5
ZXJUcmVlUmVuZGVyZXI6OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogfQog
I2VuZGlmCiAKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyUmVwYWludENvdW50KENv
b3JkaW5hdGVkTGF5ZXJJRCBpZCwgaW50IHZhbHVlKQoreworICAgIEdyYXBoaWNzTGF5ZXIqIGxh
eWVyID0gbGF5ZXJCeUlEKGlkKTsKKyAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGxh
eWVyKS0+c2V0UmVwYWludENvdW50KHZhbHVlKTsKK30KKwogdm9pZCBMYXllclRyZWVSZW5kZXJl
cjo6c2V0TGF5ZXJDaGlsZHJlbihDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxD
b29yZGluYXRlZExheWVySUQ+JiBjaGlsZElEcykKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXll
ciA9IGxheWVyQnlJRChpZCk7CkBAIC0zMzMsNiArMzM5LDkgQEAgdm9pZCBMYXllclRyZWVSZW5k
ZXJlcjo6c2V0TGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaW5h
dGVkTGEKICAgICBsYXllci0+c2V0RHJhd3NDb250ZW50KGxheWVySW5mby5kcmF3c0NvbnRlbnQp
OwogICAgIGxheWVyLT5zZXRDb250ZW50c1Zpc2libGUobGF5ZXJJbmZvLmNvbnRlbnRzVmlzaWJs
ZSk7CiAgICAgdG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihsYXllciktPnNldEZpeGVkVG9W
aWV3cG9ydChsYXllckluZm8uZml4ZWRUb1ZpZXdwb3J0KTsKKyAgICBsYXllci0+c2V0U2hvd0Rl
YnVnQm9yZGVyKGxheWVySW5mby5zaG93RGVidWdCb3JkZXJzKTsKKyAgICBsYXllci0+c2V0RGVi
dWdCb3JkZXIobGF5ZXJJbmZvLmRlYnVnQm9yZGVyQ29sb3IsIGxheWVySW5mby5kZWJ1Z0JvcmRl
cldpZHRoKTsKKyAgICBsYXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKGxheWVySW5mby5zaG93
UmVwYWludENvdW50ZXIpOwogCiAgICAgaWYgKGxheWVySW5mby5maXhlZFRvVmlld3BvcnQpCiAg
ICAgICAgIG1fZml4ZWRMYXllcnMuYWRkKGlkLCBsYXllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuaAppbmRleCBjMWQ1OGY0OTlmZTkxYzE3NGIzNmYzNDIwOTZkOGE5M2RjY2QyNGU1
Li5kYmZhNmE4OWVlN2NkOGQ1NDhkZTY3ZjBmYTkyOTRlNjQxOWVkN2ZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5k
ZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IGZyb250QnVmZmVyKTsKICAg
ICB2b2lkIGRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKTsKICNlbmRpZgorICAgIHZv
aWQgc2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQgdmFsdWUpOwog
CiAgICAgdm9pZCBkZXRhY2goKTsKICAgICB2b2lkIGFwcGVuZFVwZGF0ZShjb25zdCBGdW5jdGlv
bjx2b2lkKCk+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA1ZjI2NjJlZjA5MThiM2FhOTIxNDBhNDg0NTJh
NTU1ODJmNTdiZDM5Li5kNjg3OTI0YzAwODllZGYxODM0YmEwODBjMTA1ODVlNGQ5OWIwMDQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5jcHAKQEAgLTM4LDkgKzM4LDcgQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpZm5k
ZWYgTkRFQlVHCiAjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgotI2VuZGlmCiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAt
MzcxLDYgKzM2OSwyNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVu
dHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIGRpZENoYW5nZUxheWVyU3Rh
dGUoKTsKIH0KIAordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dEZWJ1Z0Jv
cmRlcihib29sIHNob3cpCit7CisgICAgaWYgKGlzU2hvd2luZ0RlYnVnQm9yZGVyKCkgPT0gc2hv
dykKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0U2hvd0RlYnVnQm9y
ZGVyKHNob3cpOworCisgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworfQorCit2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wgc2hvdykKK3sK
KyAgICBpZiAoaXNTaG93aW5nUmVwYWludENvdW50ZXIoKSA9PSBzaG93KQorICAgICAgICByZXR1
cm47CisKKyAgICBHcmFwaGljc0xheWVyOjpzZXRTaG93UmVwYWludENvdW50ZXIoc2hvdyk7CisK
KyAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7Cit9CisKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQogewogICAgIE5hdGl2ZUlt
YWdlUHRyIG5ld05hdGl2ZUltYWdlUHRyID0gaW1hZ2UgPyBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JD
dXJyZW50RnJhbWUoKSA6IDA7CkBAIC01NTAsOSArNTY4LDI0IEBAIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAgbV9sYXllckluZm8ucG9zID0gbV9h
ZGp1c3RlZFBvc2l0aW9uOwogICAgIG1fbGF5ZXJJbmZvLnNpemUgPSBtX2FkanVzdGVkU2l6ZTsK
IAorICAgIG1fbGF5ZXJJbmZvLnNob3dEZWJ1Z0JvcmRlcnMgPSBpc1Nob3dpbmdEZWJ1Z0JvcmRl
cigpOworICAgIGlmIChtX2xheWVySW5mby5zaG93RGVidWdCb3JkZXJzKSB7CisgICAgICAgIC8v
IG1fdXNpbmdUaWxlZExheWVyIGFmZmVjdHMgbGF5b3V0IHRlc3QgcmVzdWx0cyBhbmQgb25seSBN
YWMgcG9ydCB1c2VzIHRoaXMgdmFyaWFibGUuCisgICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29s
PiB1c2luZ1RpbGVMYXllclByb3RlY3RvcihtX3VzaW5nVGlsZWRMYXllciwgc2hvdWxkSGF2ZUJh
Y2tpbmdTdG9yZSgpKTsKKyAgICAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CisgICAgfQor
ICAgIG1fbGF5ZXJJbmZvLnNob3dSZXBhaW50Q291bnRlciA9IGlzU2hvd2luZ1JlcGFpbnRDb3Vu
dGVyKCk7CisKICAgICBtX2Nvb3JkaW5hdG9yLT5zeW5jTGF5ZXJTdGF0ZShtX2lkLCBtX2xheWVy
SW5mbyk7CiB9CiAKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXREZWJ1Z0JvcmRl
cihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IHdpZHRoKQoreworICAgIEFTU0VSVChtX2xheWVy
SW5mby5zaG93RGVidWdCb3JkZXJzKTsKKyAgICBtX2xheWVySW5mby5kZWJ1Z0JvcmRlckNvbG9y
ID0gY29sb3I7CisgICAgbV9sYXllckluZm8uZGVidWdCb3JkZXJXaWR0aCA9IHdpZHRoOworfQor
CiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0FuaW1hdGlvbnMoKQogewogICAg
IGlmICghbV9zaG91bGRTeW5jQW5pbWF0aW9ucykKQEAgLTY5OCw4ICs3MzEsMTAgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnQoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LAogICAgIHBhaW50R3JhcGhpY3NMYXllckNvbnRlbnRzKCpjb250ZXh0
LCByZWN0KTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2lu
Z1N0b3JlUGFpbnRFbmQoY29uc3QgVmVjdG9yPEludFJlY3Q+JiAvKiB1cGRhdGVkUmVjdHMgKi8p
Cit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5nU3RvcmVQYWludEVu
ZChjb25zdCBWZWN0b3I8SW50UmVjdD4mIHVwZGF0ZWRSZWN0cykKIHsKKyAgICBpZiAoaXNTaG93
aW5nUmVwYWludENvdW50ZXIoKSAmJiAhdXBkYXRlZFJlY3RzLmlzRW1wdHkoKSkKKyAgICAgICAg
bV9jb29yZGluYXRvci0+c2V0TGF5ZXJSZXBhaW50Q291bnQoaWQoKSwgaW5jcmVtZW50UmVwYWlu
dENvdW50KCkpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNr
aW5nU3RvcmVIYXNQZW5kaW5nVGlsZUNyZWF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggNmM0MzU4NWM3MGM4
ZTAzMDY1ZTRkY2FhMjdlNGYwZGEyZmEzNjk0Ni4uN2VhMzgxZjdjZjdjNzVhZDM0ZDQ1Mzg3OTBh
MGUzMDBjNDVmM2E0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTcxLDYgKzcxLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCkgPSAwOwogI2VuZGlm
CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRMYXll
cklELCBpbnQpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckFuaW1hdGlvbnMoQ29v
cmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXllcihXZWJDb3JlOjpDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIqKSA9IDA7CkBAIC0xMTIsNiArMTE0LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRDb250ZW50c1JlY3QoY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWludENvdW50ZXIoYm9vbCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZERpcmVjdGx5Q29tcG9zaXRlSW1hZ2UoSW1hZ2UqKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9y
bUxheWVyKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldE1hc2tMYXllcihHcmFwaGlj
c0xheWVyKikgT1ZFUlJJREU7CkBAIC0xNjYsNiArMTcwLDggQEAgcHVibGljOgogICAgIGJvb2wg
aGFzUGVuZGluZ1Zpc2libGVDaGFuZ2VzKCk7CiAKIHByaXZhdGU6CisgICAgdmlydHVhbCB2b2lk
IHNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgd2lkdGgpIE9WRVJSSURFOworCiAg
ICAgYm9vbCBmaXhlZFRvVmlld3BvcnQoKSBjb25zdCB7IHJldHVybiBtX2ZpeGVkVG9WaWV3cG9y
dDsgfQogCiAgICAgdm9pZCBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZExheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAppbmRleCAw
ZmMxYWYyZmQ0ZjQ3NDE4ZjU2MzczOGMyZjVjNjY4ZDdkZDlmOGE5Li4yZWFmODY1YTQ0NDI3NDA5
MmQ4YmZhYTk3M2UwNDcwMjcwNzQ4NjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTM5MSw2ICszOTEsMTEg
QEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0
ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAKK3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
OjpzZXRMYXllclJlcGFpbnRDb3VudChDb29yZGluYXRlZExheWVySUQgaWQsIGludCB2YWx1ZSkK
K3sKKyAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dFByb3h5OjpTZXRMYXllclJlcGFpbnRDb3VudChpZCwgdmFsdWUpKTsKK30KKwogI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzeW5jTGF5ZXJG
aWx0ZXJzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmls
dGVycykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0LmgKaW5kZXggMDEwMjJiMmNjNGU5ODQ4OGE0ZGY3ODdlYTM2OTBiNzJhY2Nm
ZjcyOS4uOWFhOWU2ZWNkZjNhNjllZjAwMzgyOGUxNzhhOTg2MTA2NzRmZjc2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgK
QEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN5bmNDYW52YXMo
Q29vcmRpbmF0ZWRMYXllcklELCBXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKSBPVkVSUklE
RTsKICNlbmRpZgorICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclJlcGFpbnRDb3VudChDb29yZGlu
YXRlZExheWVySUQsIGludCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaExheWVy
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBz
eW5jRml4ZWRMYXllcnMoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185104</attachid>
            <date>2013-01-28 16:44:22 -0800</date>
            <delta_ts>2013-01-28 22:32:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107910-20130129094048.patch</filename>
            <type>text/plain</type>
            <size>25334</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmZhZjA0YTY4ZGFhNzQ0
OTI4MzlkZTg1NTQyMjQ5ODk2NDM5NzQyMy4uZjM1MzYxZGNkYmZmNjAwYmY0N2ZkZjgyOWMxYmNj
YmI4YjkwZGI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY4IEBACiAyMDEzLTAxLTI4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIHJlbGF0ZWQgdG8gZGVidWcgYm9yZGVyIGFuZCBy
ZXBhaW50IGNvdW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3OTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlcmUgYXJlIHR3byBiaWcgY2hhbmdlczoKKyAgICAgICAgMS4gQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyIHNlbmRzIGRlYnVnZ2luZyB2aXN1YWxzIHRvIFVJIFByb2Nlc3MuCisgICAg
ICAgIDIuIFdoZW4gdXBkYXRpbmcgYSBiYWNraW5nIHN0b3JlLCBpbmNyZW1lbnQgYSByZXBhaW50
IGNvdW50LgorCisgICAgICAgIEluIGFkZGl0aW9uLCB3ZSBkb24ndCB1c2UgUVRfV0VCS0lUX1NI
T1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUworICAgICAgICBlbnZpcm9ubWVudC4gRUZMLCBH
VEsgYW5kIFFUIHdpbGwgdXNlIFdFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMK
KyAgICAgICAgYWZ0ZXIgaHR0cDovL3dlYmtpdC5vcmcvYi8xMDcxOTguCisKKyAgICAgICAgKiBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oOgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVySW5mbzo6Q29vcmRpbmF0ZWRMYXllckluZm8pOgor
ICAgICAgICAoQ29vcmRpbmF0ZWRMYXllckluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZUFsbFRpbGVzKToKKyAgICAgICAg
KFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUpOgorICAgICAgICAo
V2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSk6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKToK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmFkanVzdGVkVHJhbnNm
b3JtRm9yUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpw
YWludFRvVGV4dHVyZU1hcHBlcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRlcik6CisgICAgICAgICAgICBPdmVy
cmlkZSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcjo6ZHJhd0JvcmRlcigpIHRvIGRyYXcgdGhl
IGJvcmRlcgorICAgICAgICAgICAgZm9yIGVhY2ggdGlsZS4KKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU6OmRyYXdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpjb21taXRUaWxlT3BlcmF0aW9ucyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmUuaDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlOjpDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUpOgorICAgICAgICAoQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmVUaWxlKToKKyAgICAgICAgKENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlY3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNldExheWVy
UmVwYWludENvdW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAg
ICAgKENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXll
clJlcGFpbnRDb3VudCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAgKExheWVyVHJlZVJl
bmRlcmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93RGVidWdCb3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dS
ZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnN5bmNMYXllclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0RGVidWdCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5kKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAg
IChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0TGF5ZXJSZXBhaW50Q291
bnQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaDoKKworMjAxMy0wMS0y
OCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBb
VGV4TWFwXSBFbmFibGUgZGVidWcgYm9yZGVycyBhbmQgcmVwYWludCBjb3VudGVyIHZpYSBTZXR0
aW5ncy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
NzE5OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVySW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaAppbmRleCBmOWEwMDFkZmY0Mzc4
MzcwMzhhNGVlYWI1ZmY1NmUzYjk1MzMwNTZkLi40MTVmYmI2NmE4MDI1ODFiNDhjOTAzZDQ4YjVl
MTgzOTg0YzEzZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmgKQEAgLTQzLDYg
KzQzLDcgQEAgc3RydWN0IENvb3JkaW5hdGVkTGF5ZXJJbmZvIHsKICAgICAgICAgLCBtYXNrKElu
dmFsaWRDb29yZGluYXRlZExheWVySUQpCiAgICAgICAgICwgaW1hZ2VJRChJbnZhbGlkQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmdJRCkKICAgICAgICAgLCBvcGFjaXR5KDApCisgICAgICAgICwgZGVi
dWdCb3JkZXJXaWR0aCgwKQogICAgICAgICAsIGZsYWdzKDApIHsgfQogCiAgICAgQ29vcmRpbmF0
ZWRMYXllcklEIHJlcGxpY2E7CkBAIC01Nyw2ICs1OCw4IEBAIHN0cnVjdCBDb29yZGluYXRlZExh
eWVySW5mbyB7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBjb250ZW50c1JlY3Q7CiAgICAgZmxvYXQg
b3BhY2l0eTsKICAgICBXZWJDb3JlOjpDb2xvciBzb2xpZENvbG9yOworICAgIFdlYkNvcmU6OkNv
bG9yIGRlYnVnQm9yZGVyQ29sb3I7CisgICAgZmxvYXQgZGVidWdCb3JkZXJXaWR0aDsKIAogICAg
IHVuaW9uIHsKICAgICAgICAgc3RydWN0IHsKQEAgLTY4LDYgKzcxLDggQEAgc3RydWN0IENvb3Jk
aW5hdGVkTGF5ZXJJbmZvIHsKICAgICAgICAgICAgIGJvb2wgcHJlc2VydmVzM0QgOiAxOwogICAg
ICAgICAgICAgYm9vbCBpc1Jvb3RMYXllcjogMTsKICAgICAgICAgICAgIGJvb2wgZml4ZWRUb1Zp
ZXdwb3J0IDogMTsKKyAgICAgICAgICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycyA6IDE7CisgICAg
ICAgICAgICBib29sIHNob3dSZXBhaW50Q291bnRlciA6IDE7CiAgICAgICAgIH07CiAgICAgICAg
IHVuc2lnbmVkIGZsYWdzOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJh
Y2tpbmdTdG9yZS5jcHAKaW5kZXggNGE3YmIxMDg2ZWU3YTg2N2IyZDNmZDY4MGM1YTM3ZGIwNWI4
YjdkOC4uNzgzOGJiMGRiMjBkODc0MzRjOGE0MzFhNGYwNGY0ZmQ4NmE2NjBmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtNzksMjMgKzc5LDIy
IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZVRpbGUodWludDMyX3QgaWQp
CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZUFsbFRpbGVzKCkKIHsKLSAg
ICBIYXNoTWFwPHVpbnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRv
ciBlbmQgPSBtX3RpbGVzLmVuZCgpOwotICAgIGZvciAoSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0ZXJh
dG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZVRpbGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
CiAgICAgICAgIG1fdGlsZXNUb1JlbW92ZS5hZGQoaXQtPmtleSk7CiB9CiAKIHZvaWQgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUodWludDMyX3QgaWQsIGNvbnN0IEludFJlY3Qm
IHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LCBQYXNzUmVmUHRyPENvb3JkaW5h
dGVkU3VyZmFjZT4gYmFja0J1ZmZlciwgY29uc3QgSW50UG9pbnQmIG9mZnNldCkKIHsKLSAgICBI
YXNoTWFwPHVpbnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRvciBp
dCA9IG1fdGlsZXMuZmluZChpZCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFw
OjppdGVyYXRvciBpdCA9IG1fdGlsZXMuZmluZChpZCk7CiAgICAgQVNTRVJUKGl0ICE9IG1fdGls
ZXMuZW5kKCkpOwotICAgIGl0LT52YWx1ZS5pbmNyZW1lbnRSZXBhaW50Q291bnQoKTsKICAgICBp
dC0+dmFsdWUuc2V0QmFja0J1ZmZlcih0aWxlUmVjdCwgc291cmNlUmVjdCwgYmFja0J1ZmZlciwg
b2Zmc2V0KTsKIH0KIAogUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZTo6dGV4dHVyZSgpIGNvbnN0CiB7Ci0gICAgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQo
KTsKLSAgICBmb3IgKEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGls
ZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVN
YXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKICAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUgPSBpdC0+dmFsdWUudGV4
dHVyZSgpOwogICAgICAgICBpZiAodGV4dHVyZSkKICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJl
OwpAQCAtMTA5LDI4ICsxMDgsMTUgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6c2V0
U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCiAgICAgbV9zaXplID0gc2l6ZTsK
IH0KIAotc3RhdGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKQordm9pZCBDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8VGV4
dHVyZU1hcHBlclRpbGUqPiYgdGlsZXMsIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJpdG1h
cFRleHR1cmUqIG1hc2ssIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSNpZiBQTEFURk9STShR
VCkKLSAgICByZXR1cm4gKHFnZXRlbnYoIlFUX1dFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVH
X1ZJU1VBTFMiKSA9PSAiMSIpOwotI2VsaWYgVVNFKENBSVJPKQotICAgIHJldHVybiAoU3RyaW5n
KGdldGVudigiV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUyIpKSA9PSAiMSIp
OwotI2VuZGlmCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
dGlsZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIHRpbGVzW2ldLT5wYWludCh0ZXh0dXJlTWFwcGVy
LCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVj
dCwgdGlsZXNbaV0tPnJlY3QoKSkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
OjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+JiB0
aWxlcywgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaywgY29u
c3QgRmxvYXRSZWN0JiByZWN0KQorVHJhbnNmb3JtYXRpb25NYXRyaXggQ29vcmRpbmF0ZWRCYWNr
aW5nU3RvcmU6OmFkanVzdGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdl
dFJlY3QpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0aWxlcy5zaXplKCk7ICsraSkg
ewotICAgICAgICBUZXh0dXJlTWFwcGVyVGlsZSogdGlsZSA9IHRpbGVzW2ldOwotICAgICAgICB0
aWxlLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1
bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZS0+cmVjdCgpKSk7Ci0gICAgICAgIHN0YXRp
YyBib29sIHNob3VsZERlYnVnID0gc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKTsKLSAgICAg
ICAgaWYgKCFzaG91bGREZWJ1ZykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHRl
eHR1cmVNYXBwZXItPmRyYXdCb3JkZXIoQ29sb3IoMHhGRiwgMCwgMCksIDIsIHRpbGUtPnJlY3Qo
KSwgdHJhbnNmb3JtKTsKLSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd1JlcGFpbnRDb3VudGVy
KHN0YXRpY19jYXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSo+KHRpbGUpLT5yZXBhaW50
Q291bnQoKSwgOCwgdGlsZS0+cmVjdCgpLmxvY2F0aW9uKCksIHRyYW5zZm9ybSk7Ci0gICAgfQor
ICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdChyZWN0KCksIHRhcmdl
dFJlY3QpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVy
ZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9w
YWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spCkBAIC0xNDMsOSArMTI5LDkgQEAgdm9pZCBDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciog
dGV4dHVyZU1hcHBlciwKICAgICBWZWN0b3I8VGV4dHVyZU1hcHBlclRpbGUqPiBwcmV2aW91c1Rp
bGVzVG9QYWludDsKIAogICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBldmVyeSB0aW1lIHdlIHBh
aW50LCBpbiBjYXNlIHRoZSBvcGFjaXR5IGhhcyBjaGFuZ2VkLgotICAgIEhhc2hNYXA8dWludDMy
X3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGVuZCA9IG1fdGlsZXMu
ZW5kKCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQg
PSBtX3RpbGVzLmVuZCgpOwogICAgIEZsb2F0UmVjdCBjb3ZlcmVkUmVjdDsKLSAgICBmb3IgKEhh
c2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0
ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICBmb3IgKENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkgewogICAgICAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUmIHRp
bGUgPSBpdC0+dmFsdWU7CiAgICAgICAgIGlmICghdGlsZS50ZXh0dXJlKCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKQEAgLTE2NCwxNCArMTUwLDI4IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIs
CiAgICAgICAgIHByZXZpb3VzVGlsZXNUb1BhaW50LmFwcGVuZCgmdGlsZSk7CiAgICAgfQogCi0g
ICAgRmxvYXRSZWN0IHJlY3RPbkNvbnRlbnRzKEZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsK
LSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhZGp1c3RlZFRyYW5zZm9ybSA9IHRyYW5zZm9ybTsK
ICAgICAvLyB0YXJnZXRSZWN0IGlzIG9uIHRoZSBjb250ZW50cyBjb29yZGluYXRlIHN5c3RlbSwg
c28gd2UgbXVzdCBjb21wYXJlIHR3byByZWN0cyBvbiB0aGUgY29udGVudHMgY29vcmRpbmF0ZSBz
eXN0ZW0uCiAgICAgLy8gU2VlIFRpbGVkQmFja2luZ1N0b3JlLgotICAgIGFkanVzdGVkVHJhbnNm
b3JtLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0KHJlY3RPbkNvbnRl
bnRzLCB0YXJnZXRSZWN0KSk7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFu
c2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7
CiAKLSAgICBwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKHByZXZpb3VzVGlsZXNUb1BhaW50LCB0
ZXh0dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdE9uQ29u
dGVudHMpOwotICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIodGlsZXNUb1BhaW50LCB0ZXh0
dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdE9uQ29udGVu
dHMpOworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIocHJldmlvdXNUaWxlc1RvUGFpbnQs
IHRleHR1cmVNYXBwZXIsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrLCByZWN0KCkp
OworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIodGlsZXNUb1BhaW50LCB0ZXh0dXJlTWFw
cGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdCgpKTsKK30KKwordm9p
ZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRlcihUZXh0dXJlTWFwcGVyKiB0ZXh0
dXJlTWFwcGVyLCBjb25zdCBDb2xvciYgYm9yZGVyQ29sb3IsIGZsb2F0IGJvcmRlcldpZHRoLCBj
b25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0
cmFuc2Zvcm0pCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0g
PSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7CisgICAg
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVu
ZCgpOworICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBp
dCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJlTWFw
cGVyLT5kcmF3Qm9yZGVyKGJvcmRlckNvbG9yLCBib3JkZXJXaWR0aCwgaXQtPnZhbHVlLnJlY3Qo
KSwgYWRqdXN0ZWRUcmFuc2Zvcm0pOworfQorCit2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
OjpkcmF3UmVwYWludENvdW50ZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgaW50IHJl
cGFpbnRDb3VudCwgY29uc3QgQ29sb3ImIGJvcmRlckNvbG9yLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pCit7CisgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1
c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOworICAgIGZvciAoQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3UmVwYWludENv
dW50ZXIocmVwYWludENvdW50LCBib3JkZXJDb2xvciwgaXQtPnZhbHVlLnJlY3QoKS5sb2NhdGlv
bigpLCBhZGp1c3RlZFRyYW5zZm9ybSk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmU6OmNvbW1pdFRpbGVPcGVyYXRpb25zKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCkBA
IC0xODEsOCArMTgxLDggQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6Y29tbWl0VGls
ZU9wZXJhdGlvbnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcikKICAgICAgICAgbV90aWxl
cy5yZW1vdmUoKml0KTsKICAgICBtX3RpbGVzVG9SZW1vdmUuY2xlYXIoKTsKIAotICAgIEhhc2hN
YXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIHRpbGVz
RW5kID0gbV90aWxlcy5lbmQoKTsKLSAgICBmb3IgKEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAh
PSB0aWxlc0VuZDsgKytpdCkKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0
ZXJhdG9yIHRpbGVzRW5kID0gbV90aWxlcy5lbmQoKTsKKyAgICBmb3IgKENvb3JkaW5hdGVkQmFj
a2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9IHRp
bGVzRW5kOyArK2l0KQogICAgICAgICBpdC0+dmFsdWUuc3dhcEJ1ZmZlcnModGV4dHVyZU1hcHBl
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmluZGV4
IGFlNWFmOGQ0ZmEyZmM5ZWJkMjExOTcyN2ZjYWRkODU5NjIzMzBmOTkuLmE4MTIwZTllMzgyMjVm
NjQwOTU0NjA4MzY4ZjQ5MjQzNDdkODM0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuaApAQCAtMzYsMTMgKzM2LDEwIEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUoZmxvYXQgc2NhbGUgPSAxKQogICAgICAgICA6
IFRleHR1cmVNYXBwZXJUaWxlKFdlYkNvcmU6OkZsb2F0UmVjdCgpKQogICAgICAgICAsIG1fc2Nh
bGUoc2NhbGUpCi0gICAgICAgICwgbV9yZXBhaW50Q291bnQoMCkKICAgICB7CiAgICAgfQogCiAg
ICAgaW5saW5lIGZsb2F0IHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZTsgfQotICAgIGlu
bGluZSB2b2lkIGluY3JlbWVudFJlcGFpbnRDb3VudCgpIHsgKyttX3JlcGFpbnRDb3VudDsgfQot
ICAgIGlubGluZSBpbnQgcmVwYWludENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Q291
bnQ7IH0KICAgICB2b2lkIHN3YXBCdWZmZXJzKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqKTsKICAg
ICB2b2lkIHNldEJhY2tCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gYnVmZmVyLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCkBAIC01Miw3ICs0OSw2IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6SW50UmVjdCBtX3RpbGVSZWN0OwogICAgIFdlYkNvcmU6OkludFBvaW50IG1fc3Vy
ZmFjZU9mZnNldDsKICAgICBmbG9hdCBtX3NjYWxlOwotICAgIGludCBtX3JlcGFpbnRDb3VudDsK
IH07CiAKIGNsYXNzIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIDogcHVibGljIFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJCYWNraW5nU3RvcmUgewpAQCAtNjYsMTQgKzYyLDE5IEBAIHB1YmxpYzoKICAg
ICBQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSBjb25zdDsKICAg
ICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKik7CisgICAgdmlydHVhbCB2b2lkIGRyYXdC
b3JkZXIoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgZmxv
YXQgYm9yZGVyV2lkdGgsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyYXdS
ZXBhaW50Q291bnRlcihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKiwgaW50IHJlcGFpbnRDb3VudCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIE9WRVJSSURFOwogCiBwcml2YXRlOgogICAg
IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKCkKICAgICAgICAgOiBtX3NjYWxlKDEuKQogICAgIHsg
fQogICAgIHZvaWQgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8V2ViQ29yZTo6VGV4
dHVyZU1hcHBlclRpbGUqPiYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gV2ViQ29yZTo6
RmxvYXRSZWN0KFdlYkNvcmU6OkZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsgfQogCi0gICAg
SGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPiBtX3RpbGVzOwor
ICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxl
PiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlTWFwIG1fdGlsZXM7CiAgICAgSGFzaFNldDx1aW50MzJfdD4gbV90aWxlc1RvUmVt
b3ZlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3NpemU7CiAgICAgZmxvYXQgbV9zY2FsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNw
cAppbmRleCA4N2ZiMTcxOTA0NDMxZTQ1YzcwZWM0NGYzNjRhNjUyNDYxN2NkYmU5Li5iZGQxMzk2
MWM0MDZjNmYwYjc1NzEwZTZhMzYzZThhYjg0OTc5MThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDEx
IEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OmRlc3Ryb3lDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAKK3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0UHJveHk6OnNldExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwg
aW50IHZhbHVlKQoreworICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVy
OjpzZXRMYXllclJlcGFpbnRDb3VudCwgbV9yZW5kZXJlci5nZXQoKSwgaWQsIHZhbHVlKSk7Cit9
CisKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnB1cmdlQmFja2luZ1N0b3Jl
cygpCiB7CiAgICAgbV9zdXJmYWNlcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggOTRmYTQ3NmYwOTJiNGRmZGM4ZjNh
MzRhMThmMWRmMWMzMWRmMzk4Mi4uNGM1Y2U0YTdlN2I5OTlmMTQ4ODQ1ODY1MTNjMTkzODQ1NDAx
Y2UzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eS5oCkBAIC04NSw2ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bmNDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CiAgICAgdm9pZCBkZXN0cm95
Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCk7CiAjZW5kaWYKKyAgICB2b2lkIHNldExheWVyUmVw
YWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50IHZhbHVlKTsKICAgICB2b2lkIHB1cmdl
QmFja2luZ1N0b3JlcygpOwogICAgIExheWVyVHJlZVJlbmRlcmVyKiBsYXllclRyZWVSZW5kZXJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldExheWVy
QW5pbWF0aW9ucyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJBbmltYXRpb25zJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGM1ZTUyZGM4YjgwYTQ1ODJm
OGFhZWQ3YjBkZTI1MTQwMTBjNzkwZDEuLmUzZTc4YjMwYjAxOTI1NTNiMDZjNjkyODkyOGIwYTZi
MzNkNmQ2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCkBAIC01NSw2ICs1NSw4IEBAIG1lc3NhZ2Vz
IC0+IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBE
ZXN0cm95Q2FudmFzKHVpbnQzMl90IGlkKQogI2VuZGlmCiAKKyAgICBTZXRMYXllclJlcGFpbnRD
b3VudCh1aW50MzJfdCBsYXllcklELCBpbnQgdmFsdWUpCisKICAgICBTZXRCYWNrZ3JvdW5kQ29s
b3IoV2ViQ29yZTo6Q29sb3IgY29sb3IpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZVJlbmRlcmVyLmNwcAppbmRleCBkZmE0MDZkMDRkYWViYjc2Yzc2MDljM2YwNzViZGIxZTljYzQ0
YTkxLi44MDVhODczNmU5NDJiY2YzZTQzZWI0OTM2NTVlMGVlMDMzOTNhOGRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCkBAIC0yNTUsNiArMjU1LDEyIEBAIHZvaWQgTGF5
ZXJUcmVlUmVuZGVyZXI6OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogfQog
I2VuZGlmCiAKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyUmVwYWludENvdW50KENv
b3JkaW5hdGVkTGF5ZXJJRCBpZCwgaW50IHZhbHVlKQoreworICAgIEdyYXBoaWNzTGF5ZXIqIGxh
eWVyID0gbGF5ZXJCeUlEKGlkKTsKKyAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGxh
eWVyKS0+c2V0UmVwYWludENvdW50KHZhbHVlKTsKK30KKwogdm9pZCBMYXllclRyZWVSZW5kZXJl
cjo6c2V0TGF5ZXJDaGlsZHJlbihDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxD
b29yZGluYXRlZExheWVySUQ+JiBjaGlsZElEcykKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXll
ciA9IGxheWVyQnlJRChpZCk7CkBAIC0zMzMsNiArMzM5LDkgQEAgdm9pZCBMYXllclRyZWVSZW5k
ZXJlcjo6c2V0TGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaW5h
dGVkTGEKICAgICBsYXllci0+c2V0RHJhd3NDb250ZW50KGxheWVySW5mby5kcmF3c0NvbnRlbnQp
OwogICAgIGxheWVyLT5zZXRDb250ZW50c1Zpc2libGUobGF5ZXJJbmZvLmNvbnRlbnRzVmlzaWJs
ZSk7CiAgICAgdG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihsYXllciktPnNldEZpeGVkVG9W
aWV3cG9ydChsYXllckluZm8uZml4ZWRUb1ZpZXdwb3J0KTsKKyAgICBsYXllci0+c2V0U2hvd0Rl
YnVnQm9yZGVyKGxheWVySW5mby5zaG93RGVidWdCb3JkZXJzKTsKKyAgICBsYXllci0+c2V0RGVi
dWdCb3JkZXIobGF5ZXJJbmZvLmRlYnVnQm9yZGVyQ29sb3IsIGxheWVySW5mby5kZWJ1Z0JvcmRl
cldpZHRoKTsKKyAgICBsYXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKGxheWVySW5mby5zaG93
UmVwYWludENvdW50ZXIpOwogCiAgICAgaWYgKGxheWVySW5mby5maXhlZFRvVmlld3BvcnQpCiAg
ICAgICAgIG1fZml4ZWRMYXllcnMuYWRkKGlkLCBsYXllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuaAppbmRleCBjMWQ1OGY0OTlmZTkxYzE3NGIzNmYzNDIwOTZkOGE5M2RjY2QyNGU1
Li5kYmZhNmE4OWVlN2NkOGQ1NDhkZTY3ZjBmYTkyOTRlNjQxOWVkN2ZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5k
ZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IGZyb250QnVmZmVyKTsKICAg
ICB2b2lkIGRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKTsKICNlbmRpZgorICAgIHZv
aWQgc2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQgdmFsdWUpOwog
CiAgICAgdm9pZCBkZXRhY2goKTsKICAgICB2b2lkIGFwcGVuZFVwZGF0ZShjb25zdCBGdW5jdGlv
bjx2b2lkKCk+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA1ZjI2NjJlZjA5MThiM2FhOTIxNDBhNDg0NTJh
NTU1ODJmNTdiZDM5Li4xYzQ2MTFhNTcyMWU4NTg3ZDEwNzZiNzk4NzliNjBjMTAyZDk0YjkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5jcHAKQEAgLTM3MSw2ICszNzEsMjYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBk
aWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CiAKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzZXRTaG93RGVidWdCb3JkZXIoYm9vbCBzaG93KQoreworICAgIGlmIChpc1Nob3dpbmdEZWJ1
Z0JvcmRlcigpID09IHNob3cpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6
OnNldFNob3dEZWJ1Z0JvcmRlcihzaG93KTsKKworICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsK
K30KKwordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRl
cihib29sIHNob3cpCit7CisgICAgaWYgKGlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkgPT0gc2hv
dykKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0U2hvd1JlcGFpbnRD
b3VudGVyKHNob3cpOworCisgICAgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOworfQorCiB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkK
IHsKICAgICBOYXRpdmVJbWFnZVB0ciBuZXdOYXRpdmVJbWFnZVB0ciA9IGltYWdlID8gaW1hZ2Ut
Pm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgOiAwOwpAQCAtNTUwLDkgKzU3MCwyNSBAQCB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0xheWVyU3RhdGUoKQogICAgIG1fbGF5
ZXJJbmZvLnBvcyA9IG1fYWRqdXN0ZWRQb3NpdGlvbjsKICAgICBtX2xheWVySW5mby5zaXplID0g
bV9hZGp1c3RlZFNpemU7CiAKKyAgICBtX2xheWVySW5mby5zaG93RGVidWdCb3JkZXJzID0gaXNT
aG93aW5nRGVidWdCb3JkZXIoKTsKKyAgICBpZiAobV9sYXllckluZm8uc2hvd0RlYnVnQm9yZGVy
cykgeworICAgICAgICAvLyBtX3VzaW5nVGlsZWRMYXllciBhZmZlY3RzIGxheW91dCB0ZXN0IHJl
c3VsdHMgYW5kIG9ubHkgTWFjIHBvcnQgdXNlcyB0aGlzIHZhcmlhYmxlLgorICAgICAgICBtX3Vz
aW5nVGlsZWRMYXllciA9IHNob3VsZEhhdmVCYWNraW5nU3RvcmUoKTsKKyAgICAgICAgdXBkYXRl
RGVidWdJbmRpY2F0b3JzKCk7CisgICAgICAgIG1fdXNpbmdUaWxlZExheWVyID0gZmFsc2U7Cisg
ICAgfQorICAgIG1fbGF5ZXJJbmZvLnNob3dSZXBhaW50Q291bnRlciA9IGlzU2hvd2luZ1JlcGFp
bnRDb3VudGVyKCk7CisKICAgICBtX2Nvb3JkaW5hdG9yLT5zeW5jTGF5ZXJTdGF0ZShtX2lkLCBt
X2xheWVySW5mbyk7CiB9CiAKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXREZWJ1
Z0JvcmRlcihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IHdpZHRoKQoreworICAgIEFTU0VSVCht
X2xheWVySW5mby5zaG93RGVidWdCb3JkZXJzKTsKKyAgICBtX2xheWVySW5mby5kZWJ1Z0JvcmRl
ckNvbG9yID0gY29sb3I7CisgICAgbV9sYXllckluZm8uZGVidWdCb3JkZXJXaWR0aCA9IHdpZHRo
OworfQorCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0FuaW1hdGlvbnMoKQog
ewogICAgIGlmICghbV9zaG91bGRTeW5jQW5pbWF0aW9ucykKQEAgLTY5OCw4ICs3MzQsMTAgQEAg
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnQoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LAogICAgIHBhaW50R3JhcGhpY3NMYXllckNvbnRlbnRzKCpj
b250ZXh0LCByZWN0KTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVk
QmFja2luZ1N0b3JlUGFpbnRFbmQoY29uc3QgVmVjdG9yPEludFJlY3Q+JiAvKiB1cGRhdGVkUmVj
dHMgKi8pCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5nU3RvcmVQ
YWludEVuZChjb25zdCBWZWN0b3I8SW50UmVjdD4mIHVwZGF0ZWRSZWN0cykKIHsKKyAgICBpZiAo
aXNTaG93aW5nUmVwYWludENvdW50ZXIoKSAmJiAhdXBkYXRlZFJlY3RzLmlzRW1wdHkoKSkKKyAg
ICAgICAgbV9jb29yZGluYXRvci0+c2V0TGF5ZXJSZXBhaW50Q291bnQoaWQoKSwgaW5jcmVtZW50
UmVwYWludENvdW50KCkpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGls
ZWRCYWNraW5nU3RvcmVIYXNQZW5kaW5nVGlsZUNyZWF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggNmM0MzU4
NWM3MGM4ZTAzMDY1ZTRkY2FhMjdlNGYwZGEyZmEzNjk0Ni4uN2VhMzgxZjdjZjdjNzVhZDM0ZDQ1
Mzg3OTBhMGUzMDBjNDVmM2E0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTcxLDYgKzcxLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCkgPSAwOwog
I2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0
ZWRMYXllcklELCBpbnQpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckFuaW1hdGlv
bnMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyQW5pbWF0
aW9ucyYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXllcihXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqKSA9IDA7CkBAIC0xMTIsNiArMTE0LDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1JlY3QoY29uc3QgSW50UmVjdCYpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWludENvdW50ZXIoYm9vbCkgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZERpcmVjdGx5Q29tcG9zaXRlSW1hZ2UoSW1hZ2Uq
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQ
bGF0Zm9ybUxheWVyKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldE1hc2tMYXllcihH
cmFwaGljc0xheWVyKikgT1ZFUlJJREU7CkBAIC0xNjYsNiArMTcwLDggQEAgcHVibGljOgogICAg
IGJvb2wgaGFzUGVuZGluZ1Zpc2libGVDaGFuZ2VzKCk7CiAKIHByaXZhdGU6CisgICAgdmlydHVh
bCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgd2lkdGgpIE9WRVJSSURF
OworCiAgICAgYm9vbCBmaXhlZFRvVmlld3BvcnQoKSBjb25zdCB7IHJldHVybiBtX2ZpeGVkVG9W
aWV3cG9ydDsgfQogCiAgICAgdm9pZCBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApp
bmRleCAwZmMxYWYyZmQ0ZjQ3NDE4ZjU2MzczOGMyZjVjNjY4ZDdkZDlmOGE5Li4yZWFmODY1YTQ0
NDI3NDA5MmQ4YmZhYTk3M2UwNDcwMjcwNzQ4NjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVy
VHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTM5MSw2ICsz
OTEsMTEgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRlc3Ryb3lDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAKK3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0OjpzZXRMYXllclJlcGFpbnRDb3VudChDb29yZGluYXRlZExheWVySUQgaWQsIGludCB2
YWx1ZSkKK3sKKyAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdFByb3h5OjpTZXRMYXllclJlcGFpbnRDb3VudChpZCwgdmFsdWUpKTsKK30KKwogI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzeW5j
TGF5ZXJGaWx0ZXJzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgRmlsdGVyT3BlcmF0aW9u
cyYgZmlsdGVycykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0LmgKaW5kZXggMDEwMjJiMmNjNGU5ODQ4OGE0ZGY3ODdlYTM2OTBi
NzJhY2NmZjcyOS4uOWFhOWU2ZWNkZjNhNjllZjAwMzgyOGUxNzhhOTg2MTA2NzRmZjc2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0LmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN5bmND
YW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCBXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKSBP
VkVSUklERTsKICNlbmRpZgorICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclJlcGFpbnRDb3VudChD
b29yZGluYXRlZExheWVySUQsIGludCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRldGFj
aExheWVyKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwg
dm9pZCBzeW5jRml4ZWRMYXllcnMoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185157</attachid>
            <date>2013-01-28 22:33:00 -0800</date>
            <delta_ts>2013-01-28 22:36:29 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-107910-20130129152925.patch</filename>
            <type>text/plain</type>
            <size>25134</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmZhZjA0YTY4ZGFhNzQ0
OTI4MzlkZTg1NTQyMjQ5ODk2NDM5NzQyMy4uZjM1MzYxZGNkYmZmNjAwYmY0N2ZkZjgyOWMxYmNj
YmI4YjkwZGI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY4IEBACiAyMDEzLTAxLTI4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIHJlbGF0ZWQgdG8gZGVidWcgYm9yZGVyIGFuZCBy
ZXBhaW50IGNvdW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3OTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlcmUgYXJlIHR3byBiaWcgY2hhbmdlczoKKyAgICAgICAgMS4gQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyIHNlbmRzIGRlYnVnZ2luZyB2aXN1YWxzIHRvIFVJIFByb2Nlc3MuCisgICAg
ICAgIDIuIFdoZW4gdXBkYXRpbmcgYSBiYWNraW5nIHN0b3JlLCBpbmNyZW1lbnQgYSByZXBhaW50
IGNvdW50LgorCisgICAgICAgIEluIGFkZGl0aW9uLCB3ZSBkb24ndCB1c2UgUVRfV0VCS0lUX1NI
T1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUworICAgICAgICBlbnZpcm9ubWVudC4gRUZMLCBH
VEsgYW5kIFFUIHdpbGwgdXNlIFdFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMK
KyAgICAgICAgYWZ0ZXIgaHR0cDovL3dlYmtpdC5vcmcvYi8xMDcxOTguCisKKyAgICAgICAgKiBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oOgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVySW5mbzo6Q29vcmRpbmF0ZWRMYXllckluZm8pOgor
ICAgICAgICAoQ29vcmRpbmF0ZWRMYXllckluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZUFsbFRpbGVzKToKKyAgICAgICAg
KFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUpOgorICAgICAgICAo
V2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSk6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKToK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmFkanVzdGVkVHJhbnNm
b3JtRm9yUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpw
YWludFRvVGV4dHVyZU1hcHBlcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRlcik6CisgICAgICAgICAgICBPdmVy
cmlkZSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcjo6ZHJhd0JvcmRlcigpIHRvIGRyYXcgdGhl
IGJvcmRlcgorICAgICAgICAgICAgZm9yIGVhY2ggdGlsZS4KKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU6OmRyYXdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpjb21taXRUaWxlT3BlcmF0aW9ucyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmUuaDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlOjpDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUpOgorICAgICAgICAoQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmVUaWxlKToKKyAgICAgICAgKENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlY3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNldExheWVy
UmVwYWludENvdW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAg
ICAgKENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXll
clJlcGFpbnRDb3VudCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAgKExheWVyVHJlZVJl
bmRlcmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93RGVidWdCb3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dS
ZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnN5bmNMYXllclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0RGVidWdCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5kKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAg
IChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0TGF5ZXJSZXBhaW50Q291
bnQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaDoKKworMjAxMy0wMS0y
OCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBb
VGV4TWFwXSBFbmFibGUgZGVidWcgYm9yZGVycyBhbmQgcmVwYWludCBjb3VudGVyIHZpYSBTZXR0
aW5ncy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
NzE5OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVySW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaAppbmRleCBmOWEwMDFkZmY0Mzc4
MzcwMzhhNGVlYWI1ZmY1NmUzYjk1MzMwNTZkLi40MTVmYmI2NmE4MDI1ODFiNDhjOTAzZDQ4YjVl
MTgzOTg0YzEzZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmgKQEAgLTQzLDYg
KzQzLDcgQEAgc3RydWN0IENvb3JkaW5hdGVkTGF5ZXJJbmZvIHsKICAgICAgICAgLCBtYXNrKElu
dmFsaWRDb29yZGluYXRlZExheWVySUQpCiAgICAgICAgICwgaW1hZ2VJRChJbnZhbGlkQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmdJRCkKICAgICAgICAgLCBvcGFjaXR5KDApCisgICAgICAgICwgZGVi
dWdCb3JkZXJXaWR0aCgwKQogICAgICAgICAsIGZsYWdzKDApIHsgfQogCiAgICAgQ29vcmRpbmF0
ZWRMYXllcklEIHJlcGxpY2E7CkBAIC01Nyw2ICs1OCw4IEBAIHN0cnVjdCBDb29yZGluYXRlZExh
eWVySW5mbyB7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBjb250ZW50c1JlY3Q7CiAgICAgZmxvYXQg
b3BhY2l0eTsKICAgICBXZWJDb3JlOjpDb2xvciBzb2xpZENvbG9yOworICAgIFdlYkNvcmU6OkNv
bG9yIGRlYnVnQm9yZGVyQ29sb3I7CisgICAgZmxvYXQgZGVidWdCb3JkZXJXaWR0aDsKIAogICAg
IHVuaW9uIHsKICAgICAgICAgc3RydWN0IHsKQEAgLTY4LDYgKzcxLDggQEAgc3RydWN0IENvb3Jk
aW5hdGVkTGF5ZXJJbmZvIHsKICAgICAgICAgICAgIGJvb2wgcHJlc2VydmVzM0QgOiAxOwogICAg
ICAgICAgICAgYm9vbCBpc1Jvb3RMYXllcjogMTsKICAgICAgICAgICAgIGJvb2wgZml4ZWRUb1Zp
ZXdwb3J0IDogMTsKKyAgICAgICAgICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycyA6IDE7CisgICAg
ICAgICAgICBib29sIHNob3dSZXBhaW50Q291bnRlciA6IDE7CiAgICAgICAgIH07CiAgICAgICAg
IHVuc2lnbmVkIGZsYWdzOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJh
Y2tpbmdTdG9yZS5jcHAKaW5kZXggNGE3YmIxMDg2ZWU3YTg2N2IyZDNmZDY4MGM1YTM3ZGIwNWI4
YjdkOC4uNzgzOGJiMGRiMjBkODc0MzRjOGE0MzFhNGYwNGY0ZmQ4NmE2NjBmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtNzksMjMgKzc5LDIy
IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZVRpbGUodWludDMyX3QgaWQp
CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZUFsbFRpbGVzKCkKIHsKLSAg
ICBIYXNoTWFwPHVpbnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRv
ciBlbmQgPSBtX3RpbGVzLmVuZCgpOwotICAgIGZvciAoSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0ZXJh
dG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZVRpbGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
CiAgICAgICAgIG1fdGlsZXNUb1JlbW92ZS5hZGQoaXQtPmtleSk7CiB9CiAKIHZvaWQgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUodWludDMyX3QgaWQsIGNvbnN0IEludFJlY3Qm
IHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LCBQYXNzUmVmUHRyPENvb3JkaW5h
dGVkU3VyZmFjZT4gYmFja0J1ZmZlciwgY29uc3QgSW50UG9pbnQmIG9mZnNldCkKIHsKLSAgICBI
YXNoTWFwPHVpbnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRvciBp
dCA9IG1fdGlsZXMuZmluZChpZCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFw
OjppdGVyYXRvciBpdCA9IG1fdGlsZXMuZmluZChpZCk7CiAgICAgQVNTRVJUKGl0ICE9IG1fdGls
ZXMuZW5kKCkpOwotICAgIGl0LT52YWx1ZS5pbmNyZW1lbnRSZXBhaW50Q291bnQoKTsKICAgICBp
dC0+dmFsdWUuc2V0QmFja0J1ZmZlcih0aWxlUmVjdCwgc291cmNlUmVjdCwgYmFja0J1ZmZlciwg
b2Zmc2V0KTsKIH0KIAogUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZTo6dGV4dHVyZSgpIGNvbnN0CiB7Ci0gICAgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQo
KTsKLSAgICBmb3IgKEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGls
ZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVN
YXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKICAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUgPSBpdC0+dmFsdWUudGV4
dHVyZSgpOwogICAgICAgICBpZiAodGV4dHVyZSkKICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJl
OwpAQCAtMTA5LDI4ICsxMDgsMTUgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6c2V0
U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCiAgICAgbV9zaXplID0gc2l6ZTsK
IH0KIAotc3RhdGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKQordm9pZCBDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8VGV4
dHVyZU1hcHBlclRpbGUqPiYgdGlsZXMsIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJpdG1h
cFRleHR1cmUqIG1hc2ssIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSNpZiBQTEFURk9STShR
VCkKLSAgICByZXR1cm4gKHFnZXRlbnYoIlFUX1dFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVH
X1ZJU1VBTFMiKSA9PSAiMSIpOwotI2VsaWYgVVNFKENBSVJPKQotICAgIHJldHVybiAoU3RyaW5n
KGdldGVudigiV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUyIpKSA9PSAiMSIp
OwotI2VuZGlmCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
dGlsZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIHRpbGVzW2ldLT5wYWludCh0ZXh0dXJlTWFwcGVy
LCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVj
dCwgdGlsZXNbaV0tPnJlY3QoKSkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
OjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+JiB0
aWxlcywgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaywgY29u
c3QgRmxvYXRSZWN0JiByZWN0KQorVHJhbnNmb3JtYXRpb25NYXRyaXggQ29vcmRpbmF0ZWRCYWNr
aW5nU3RvcmU6OmFkanVzdGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdl
dFJlY3QpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0aWxlcy5zaXplKCk7ICsraSkg
ewotICAgICAgICBUZXh0dXJlTWFwcGVyVGlsZSogdGlsZSA9IHRpbGVzW2ldOwotICAgICAgICB0
aWxlLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1
bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZS0+cmVjdCgpKSk7Ci0gICAgICAgIHN0YXRp
YyBib29sIHNob3VsZERlYnVnID0gc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKTsKLSAgICAg
ICAgaWYgKCFzaG91bGREZWJ1ZykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHRl
eHR1cmVNYXBwZXItPmRyYXdCb3JkZXIoQ29sb3IoMHhGRiwgMCwgMCksIDIsIHRpbGUtPnJlY3Qo
KSwgdHJhbnNmb3JtKTsKLSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd1JlcGFpbnRDb3VudGVy
KHN0YXRpY19jYXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSo+KHRpbGUpLT5yZXBhaW50
Q291bnQoKSwgOCwgdGlsZS0+cmVjdCgpLmxvY2F0aW9uKCksIHRyYW5zZm9ybSk7Ci0gICAgfQor
ICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdChyZWN0KCksIHRhcmdl
dFJlY3QpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVy
ZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9w
YWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spCkBAIC0xNDMsOSArMTI5LDkgQEAgdm9pZCBDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciog
dGV4dHVyZU1hcHBlciwKICAgICBWZWN0b3I8VGV4dHVyZU1hcHBlclRpbGUqPiBwcmV2aW91c1Rp
bGVzVG9QYWludDsKIAogICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBldmVyeSB0aW1lIHdlIHBh
aW50LCBpbiBjYXNlIHRoZSBvcGFjaXR5IGhhcyBjaGFuZ2VkLgotICAgIEhhc2hNYXA8dWludDMy
X3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGVuZCA9IG1fdGlsZXMu
ZW5kKCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQg
PSBtX3RpbGVzLmVuZCgpOwogICAgIEZsb2F0UmVjdCBjb3ZlcmVkUmVjdDsKLSAgICBmb3IgKEhh
c2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0
ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICBmb3IgKENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkgewogICAgICAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUmIHRp
bGUgPSBpdC0+dmFsdWU7CiAgICAgICAgIGlmICghdGlsZS50ZXh0dXJlKCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKQEAgLTE2NCwxNCArMTUwLDI4IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIs
CiAgICAgICAgIHByZXZpb3VzVGlsZXNUb1BhaW50LmFwcGVuZCgmdGlsZSk7CiAgICAgfQogCi0g
ICAgRmxvYXRSZWN0IHJlY3RPbkNvbnRlbnRzKEZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsK
LSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhZGp1c3RlZFRyYW5zZm9ybSA9IHRyYW5zZm9ybTsK
ICAgICAvLyB0YXJnZXRSZWN0IGlzIG9uIHRoZSBjb250ZW50cyBjb29yZGluYXRlIHN5c3RlbSwg
c28gd2UgbXVzdCBjb21wYXJlIHR3byByZWN0cyBvbiB0aGUgY29udGVudHMgY29vcmRpbmF0ZSBz
eXN0ZW0uCiAgICAgLy8gU2VlIFRpbGVkQmFja2luZ1N0b3JlLgotICAgIGFkanVzdGVkVHJhbnNm
b3JtLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0KHJlY3RPbkNvbnRl
bnRzLCB0YXJnZXRSZWN0KSk7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFu
c2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7
CiAKLSAgICBwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKHByZXZpb3VzVGlsZXNUb1BhaW50LCB0
ZXh0dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdE9uQ29u
dGVudHMpOwotICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIodGlsZXNUb1BhaW50LCB0ZXh0
dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdE9uQ29udGVu
dHMpOworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIocHJldmlvdXNUaWxlc1RvUGFpbnQs
IHRleHR1cmVNYXBwZXIsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrLCByZWN0KCkp
OworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIodGlsZXNUb1BhaW50LCB0ZXh0dXJlTWFw
cGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdCgpKTsKK30KKwordm9p
ZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRlcihUZXh0dXJlTWFwcGVyKiB0ZXh0
dXJlTWFwcGVyLCBjb25zdCBDb2xvciYgYm9yZGVyQ29sb3IsIGZsb2F0IGJvcmRlcldpZHRoLCBj
b25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0
cmFuc2Zvcm0pCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0g
PSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7CisgICAg
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVu
ZCgpOworICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBp
dCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJlTWFw
cGVyLT5kcmF3Qm9yZGVyKGJvcmRlckNvbG9yLCBib3JkZXJXaWR0aCwgaXQtPnZhbHVlLnJlY3Qo
KSwgYWRqdXN0ZWRUcmFuc2Zvcm0pOworfQorCit2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
OjpkcmF3UmVwYWludENvdW50ZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgaW50IHJl
cGFpbnRDb3VudCwgY29uc3QgQ29sb3ImIGJvcmRlckNvbG9yLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pCit7CisgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1
c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOworICAgIGZvciAoQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3UmVwYWludENv
dW50ZXIocmVwYWludENvdW50LCBib3JkZXJDb2xvciwgaXQtPnZhbHVlLnJlY3QoKS5sb2NhdGlv
bigpLCBhZGp1c3RlZFRyYW5zZm9ybSk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmU6OmNvbW1pdFRpbGVPcGVyYXRpb25zKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCkBA
IC0xODEsOCArMTgxLDggQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6Y29tbWl0VGls
ZU9wZXJhdGlvbnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcikKICAgICAgICAgbV90aWxl
cy5yZW1vdmUoKml0KTsKICAgICBtX3RpbGVzVG9SZW1vdmUuY2xlYXIoKTsKIAotICAgIEhhc2hN
YXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIHRpbGVz
RW5kID0gbV90aWxlcy5lbmQoKTsKLSAgICBmb3IgKEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAh
PSB0aWxlc0VuZDsgKytpdCkKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0
ZXJhdG9yIHRpbGVzRW5kID0gbV90aWxlcy5lbmQoKTsKKyAgICBmb3IgKENvb3JkaW5hdGVkQmFj
a2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9IHRp
bGVzRW5kOyArK2l0KQogICAgICAgICBpdC0+dmFsdWUuc3dhcEJ1ZmZlcnModGV4dHVyZU1hcHBl
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmluZGV4
IGFlNWFmOGQ0ZmEyZmM5ZWJkMjExOTcyN2ZjYWRkODU5NjIzMzBmOTkuLmE4MTIwZTllMzgyMjVm
NjQwOTU0NjA4MzY4ZjQ5MjQzNDdkODM0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuaApAQCAtMzYsMTMgKzM2LDEwIEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUoZmxvYXQgc2NhbGUgPSAxKQogICAgICAgICA6
IFRleHR1cmVNYXBwZXJUaWxlKFdlYkNvcmU6OkZsb2F0UmVjdCgpKQogICAgICAgICAsIG1fc2Nh
bGUoc2NhbGUpCi0gICAgICAgICwgbV9yZXBhaW50Q291bnQoMCkKICAgICB7CiAgICAgfQogCiAg
ICAgaW5saW5lIGZsb2F0IHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZTsgfQotICAgIGlu
bGluZSB2b2lkIGluY3JlbWVudFJlcGFpbnRDb3VudCgpIHsgKyttX3JlcGFpbnRDb3VudDsgfQot
ICAgIGlubGluZSBpbnQgcmVwYWludENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Q291
bnQ7IH0KICAgICB2b2lkIHN3YXBCdWZmZXJzKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqKTsKICAg
ICB2b2lkIHNldEJhY2tCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gYnVmZmVyLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCkBAIC01Miw3ICs0OSw2IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6SW50UmVjdCBtX3RpbGVSZWN0OwogICAgIFdlYkNvcmU6OkludFBvaW50IG1fc3Vy
ZmFjZU9mZnNldDsKICAgICBmbG9hdCBtX3NjYWxlOwotICAgIGludCBtX3JlcGFpbnRDb3VudDsK
IH07CiAKIGNsYXNzIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIDogcHVibGljIFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJCYWNraW5nU3RvcmUgewpAQCAtNjYsMTQgKzYyLDE5IEBAIHB1YmxpYzoKICAg
ICBQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSBjb25zdDsKICAg
ICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKik7CisgICAgdmlydHVhbCB2b2lkIGRyYXdC
b3JkZXIoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgZmxv
YXQgYm9yZGVyV2lkdGgsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyYXdS
ZXBhaW50Q291bnRlcihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKiwgaW50IHJlcGFpbnRDb3VudCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIE9WRVJSSURFOwogCiBwcml2YXRlOgogICAg
IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKCkKICAgICAgICAgOiBtX3NjYWxlKDEuKQogICAgIHsg
fQogICAgIHZvaWQgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8V2ViQ29yZTo6VGV4
dHVyZU1hcHBlclRpbGUqPiYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gV2ViQ29yZTo6
RmxvYXRSZWN0KFdlYkNvcmU6OkZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsgfQogCi0gICAg
SGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPiBtX3RpbGVzOwor
ICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxl
PiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlTWFwIG1fdGlsZXM7CiAgICAgSGFzaFNldDx1aW50MzJfdD4gbV90aWxlc1RvUmVt
b3ZlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3NpemU7CiAgICAgZmxvYXQgbV9zY2FsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNw
cAppbmRleCA4N2ZiMTcxOTA0NDMxZTQ1YzcwZWM0NGYzNjRhNjUyNDYxN2NkYmU5Li5iZGQxMzk2
MWM0MDZjNmYwYjc1NzEwZTZhMzYzZThhYjg0OTc5MThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDEx
IEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OmRlc3Ryb3lDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAKK3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0UHJveHk6OnNldExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwg
aW50IHZhbHVlKQoreworICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVy
OjpzZXRMYXllclJlcGFpbnRDb3VudCwgbV9yZW5kZXJlci5nZXQoKSwgaWQsIHZhbHVlKSk7Cit9
CisKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnB1cmdlQmFja2luZ1N0b3Jl
cygpCiB7CiAgICAgbV9zdXJmYWNlcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggOTRmYTQ3NmYwOTJiNGRmZGM4ZjNh
MzRhMThmMWRmMWMzMWRmMzk4Mi4uNGM1Y2U0YTdlN2I5OTlmMTQ4ODQ1ODY1MTNjMTkzODQ1NDAx
Y2UzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eS5oCkBAIC04NSw2ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bmNDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CiAgICAgdm9pZCBkZXN0cm95
Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCk7CiAjZW5kaWYKKyAgICB2b2lkIHNldExheWVyUmVw
YWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50IHZhbHVlKTsKICAgICB2b2lkIHB1cmdl
QmFja2luZ1N0b3JlcygpOwogICAgIExheWVyVHJlZVJlbmRlcmVyKiBsYXllclRyZWVSZW5kZXJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldExheWVy
QW5pbWF0aW9ucyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJBbmltYXRpb25zJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGM1ZTUyZGM4YjgwYTQ1ODJm
OGFhZWQ3YjBkZTI1MTQwMTBjNzkwZDEuLmUzZTc4YjMwYjAxOTI1NTNiMDZjNjkyODkyOGIwYTZi
MzNkNmQ2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCkBAIC01NSw2ICs1NSw4IEBAIG1lc3NhZ2Vz
IC0+IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBE
ZXN0cm95Q2FudmFzKHVpbnQzMl90IGlkKQogI2VuZGlmCiAKKyAgICBTZXRMYXllclJlcGFpbnRD
b3VudCh1aW50MzJfdCBsYXllcklELCBpbnQgdmFsdWUpCisKICAgICBTZXRCYWNrZ3JvdW5kQ29s
b3IoV2ViQ29yZTo6Q29sb3IgY29sb3IpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZVJlbmRlcmVyLmNwcAppbmRleCBkZmE0MDZkMDRkYWViYjc2Yzc2MDljM2YwNzViZGIxZTljYzQ0
YTkxLi44MDVhODczNmU5NDJiY2YzZTQzZWI0OTM2NTVlMGVlMDMzOTNhOGRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCkBAIC0yNTUsNiArMjU1LDEyIEBAIHZvaWQgTGF5
ZXJUcmVlUmVuZGVyZXI6OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogfQog
I2VuZGlmCiAKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyUmVwYWludENvdW50KENv
b3JkaW5hdGVkTGF5ZXJJRCBpZCwgaW50IHZhbHVlKQoreworICAgIEdyYXBoaWNzTGF5ZXIqIGxh
eWVyID0gbGF5ZXJCeUlEKGlkKTsKKyAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGxh
eWVyKS0+c2V0UmVwYWludENvdW50KHZhbHVlKTsKK30KKwogdm9pZCBMYXllclRyZWVSZW5kZXJl
cjo6c2V0TGF5ZXJDaGlsZHJlbihDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxD
b29yZGluYXRlZExheWVySUQ+JiBjaGlsZElEcykKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXll
ciA9IGxheWVyQnlJRChpZCk7CkBAIC0zMzMsNiArMzM5LDkgQEAgdm9pZCBMYXllclRyZWVSZW5k
ZXJlcjo6c2V0TGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaW5h
dGVkTGEKICAgICBsYXllci0+c2V0RHJhd3NDb250ZW50KGxheWVySW5mby5kcmF3c0NvbnRlbnQp
OwogICAgIGxheWVyLT5zZXRDb250ZW50c1Zpc2libGUobGF5ZXJJbmZvLmNvbnRlbnRzVmlzaWJs
ZSk7CiAgICAgdG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihsYXllciktPnNldEZpeGVkVG9W
aWV3cG9ydChsYXllckluZm8uZml4ZWRUb1ZpZXdwb3J0KTsKKyAgICBsYXllci0+c2V0U2hvd0Rl
YnVnQm9yZGVyKGxheWVySW5mby5zaG93RGVidWdCb3JkZXJzKTsKKyAgICBsYXllci0+c2V0RGVi
dWdCb3JkZXIobGF5ZXJJbmZvLmRlYnVnQm9yZGVyQ29sb3IsIGxheWVySW5mby5kZWJ1Z0JvcmRl
cldpZHRoKTsKKyAgICBsYXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKGxheWVySW5mby5zaG93
UmVwYWludENvdW50ZXIpOwogCiAgICAgaWYgKGxheWVySW5mby5maXhlZFRvVmlld3BvcnQpCiAg
ICAgICAgIG1fZml4ZWRMYXllcnMuYWRkKGlkLCBsYXllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuaAppbmRleCBjMWQ1OGY0OTlmZTkxYzE3NGIzNmYzNDIwOTZkOGE5M2RjY2QyNGU1
Li5kYmZhNmE4OWVlN2NkOGQ1NDhkZTY3ZjBmYTkyOTRlNjQxOWVkN2ZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5k
ZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IGZyb250QnVmZmVyKTsKICAg
ICB2b2lkIGRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKTsKICNlbmRpZgorICAgIHZv
aWQgc2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQgdmFsdWUpOwog
CiAgICAgdm9pZCBkZXRhY2goKTsKICAgICB2b2lkIGFwcGVuZFVwZGF0ZShjb25zdCBGdW5jdGlv
bjx2b2lkKCk+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA1ZjI2NjJlZjA5MThiM2FhOTIxNDBhNDg0NTJh
NTU1ODJmNTdiZDM5Li4wZmZkOTIzNGMxZTg4Mzk3OWNiZTFhMzI0ZWE5N2Y1NjE4YTAwMjVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5jcHAKQEAgLTM3MSw2ICszNzEsMjQgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBk
aWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CiAKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzZXRTaG93RGVidWdCb3JkZXIoYm9vbCBzaG93KQoreworICAgIGlmIChpc1Nob3dpbmdEZWJ1
Z0JvcmRlcigpID09IHNob3cpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6
OnNldFNob3dEZWJ1Z0JvcmRlcihzaG93KTsKKyAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7Cit9
CisKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93UmVwYWludENvdW50ZXIo
Ym9vbCBzaG93KQoreworICAgIGlmIChpc1Nob3dpbmdSZXBhaW50Q291bnRlcigpID09IHNob3cp
CisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291
bnRlcihzaG93KTsKKyAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7Cit9CisKIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQogewog
ICAgIE5hdGl2ZUltYWdlUHRyIG5ld05hdGl2ZUltYWdlUHRyID0gaW1hZ2UgPyBpbWFnZS0+bmF0
aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSA6IDA7CkBAIC01NTAsOSArNTY4LDIxIEBAIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAgbV9sYXllcklu
Zm8ucG9zID0gbV9hZGp1c3RlZFBvc2l0aW9uOwogICAgIG1fbGF5ZXJJbmZvLnNpemUgPSBtX2Fk
anVzdGVkU2l6ZTsKIAorICAgIG1fbGF5ZXJJbmZvLnNob3dEZWJ1Z0JvcmRlcnMgPSBpc1Nob3dp
bmdEZWJ1Z0JvcmRlcigpOworICAgIGlmIChtX2xheWVySW5mby5zaG93RGVidWdCb3JkZXJzKQor
ICAgICAgICB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKKyAgICBtX2xheWVySW5mby5zaG93UmVw
YWludENvdW50ZXIgPSBpc1Nob3dpbmdSZXBhaW50Q291bnRlcigpOworCiAgICAgbV9jb29yZGlu
YXRvci0+c3luY0xheWVyU3RhdGUobV9pZCwgbV9sYXllckluZm8pOwogfQogCit2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBm
bG9hdCB3aWR0aCkKK3sKKyAgICBBU1NFUlQobV9sYXllckluZm8uc2hvd0RlYnVnQm9yZGVycyk7
CisgICAgbV9sYXllckluZm8uZGVidWdCb3JkZXJDb2xvciA9IGNvbG9yOworICAgIG1fbGF5ZXJJ
bmZvLmRlYnVnQm9yZGVyV2lkdGggPSB3aWR0aDsKK30KKwogdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnN5bmNBbmltYXRpb25zKCkKIHsKICAgICBpZiAoIW1fc2hvdWxkU3luY0FuaW1h
dGlvbnMpCkBAIC02OTgsOCArNzI4LDEwIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Ojp0aWxlZEJhY2tpbmdTdG9yZVBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwKICAgICBw
YWludEdyYXBoaWNzTGF5ZXJDb250ZW50cygqY29udGV4dCwgcmVjdCk7CiB9CiAKLXZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5kKGNvbnN0IFZl
Y3RvcjxJbnRSZWN0PiYgLyogdXBkYXRlZFJlY3RzICovKQordm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQoY29uc3QgVmVjdG9yPEludFJlY3Q+
JiB1cGRhdGVkUmVjdHMpCiB7CisgICAgaWYgKGlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkgJiYg
IXVwZGF0ZWRSZWN0cy5pc0VtcHR5KCkpCisgICAgICAgIG1fY29vcmRpbmF0b3ItPnNldExheWVy
UmVwYWludENvdW50KGlkKCksIGluY3JlbWVudFJlcGFpbnRDb3VudCgpKTsKIH0KIAogdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlSGFzUGVuZGluZ1RpbGVD
cmVhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5oCmluZGV4IDZjNDM1ODVjNzBjOGUwMzA2NWU0ZGNhYTI3ZTRmMGRhMmZh
MzY5NDYuLjdlYTM4MWY3Y2Y3Yzc1YWQzNGQ0NTM4NzkwYTBlMzAwYzQ1ZjNhNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5o
CkBAIC03MSw2ICs3MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveUNhbnZh
cyhDb29yZGluYXRlZExheWVySUQpID0gMDsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIHNl
dExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50KSA9IDA7CisKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25zKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllckFuaW1hdGlvbnMmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGV0YWNoTGF5ZXIoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwpA
QCAtMTEyLDYgKzExNCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNS
ZWN0KGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNUb0ltYWdlKEltYWdlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
VG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNl
dFNob3dEZWJ1Z0JvcmRlcihib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
d1JlcGFpbnRDb3VudGVyKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
aXJlY3RseUNvbXBvc2l0ZUltYWdlKEltYWdlKikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciopIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRNYXNrTGF5ZXIoR3JhcGhpY3NMYXllciopIE9WRVJSSURFOwpAQCAt
MTY2LDYgKzE3MCw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1BlbmRpbmdWaXNpYmxlQ2hhbmdl
cygpOwogCiBwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBD
b2xvciYsIGZsb2F0IHdpZHRoKSBPVkVSUklERTsKKwogICAgIGJvb2wgZml4ZWRUb1ZpZXdwb3J0
KCkgY29uc3QgeyByZXR1cm4gbV9maXhlZFRvVmlld3BvcnQ7IH0KIAogICAgIHZvaWQgZGlkQ2hh
bmdlTGF5ZXJTdGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMGZjMWFmMmZkNGY0NzQxOGY1NjM3Mzhj
MmY1YzY2OGQ3ZGQ5ZjhhOS4uMmVhZjg2NWE0NDQyNzQwOTJkOGJmYWE5NzNlMDQ3MDI3MDc0ODYw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExh
eWVyVHJlZUhvc3QuY3BwCkBAIC0zOTEsNiArMzkxLDExIEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0OjpkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCkKIH0KICNlbmRp
ZgogCit2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0TGF5ZXJSZXBhaW50Q291bnQo
Q29vcmRpbmF0ZWRMYXllcklEIGlkLCBpbnQgdmFsdWUpCit7CisgICAgbV93ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6U2V0TGF5ZXJSZXBhaW50
Q291bnQoaWQsIHZhbHVlKSk7Cit9CisKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c3luY0xheWVyRmlsdGVycyhDb29yZGluYXRlZExheWVy
SUQgaWQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDAx
MDIyYjJjYzRlOTg0ODhhNGRmNzg3ZWEzNjkwYjcyYWNjZmY3MjkuLjlhYTllNmVjZGYzYTY5ZWYw
MDM4MjhlMTc4YTk4NjEwNjc0ZmY3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCwgV2Vi
Q29yZTo6UGxhdGZvcm1MYXllciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95
Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCkgT1ZFUlJJREU7CiAjZW5kaWYKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXllcihXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3luY0ZpeGVkTGF5ZXJzKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185160</attachid>
            <date>2013-01-28 22:36:34 -0800</date>
            <delta_ts>2013-01-28 22:39:13 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-107910-20130129153258.patch</filename>
            <type>text/plain</type>
            <size>25383</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmZhZjA0YTY4ZGFhNzQ0
OTI4MzlkZTg1NTQyMjQ5ODk2NDM5NzQyMy4uMWNjYWY3NzkzYWZmMWI3MGNmZDBmYTgzZDgwYjgz
NGFhNmVhMzEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw5ICsxLDcyIEBACiAyMDEzLTAxLTI4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIHJlbGF0ZWQgdG8gZGVidWcgYm9yZGVyIGFuZCBy
ZXBhaW50IGNvdW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3OTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTm9hbSBSb3NlbnRoYWwuCisKKyAg
ICAgICAgVGhlcmUgYXJlIHR3byBiaWcgY2hhbmdlczoKKyAgICAgICAgMS4gQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyIHNlbmRzIGRlYnVnZ2luZyB2aXN1YWxzIHRvIFVJIFByb2Nlc3MuCisgICAg
ICAgIDIuIFdoZW4gdXBkYXRpbmcgYSBiYWNraW5nIHN0b3JlLCBpbmNyZW1lbnQgYSByZXBhaW50
IGNvdW50LgorCisgICAgICAgIEluIGFkZGl0aW9uLCB3ZSBkb24ndCB1c2UgUVRfV0VCS0lUX1NI
T1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUworICAgICAgICBlbnZpcm9ubWVudC4gRUZMLCBH
VEsgYW5kIFFUIHdpbGwgdXNlIFdFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMK
KyAgICAgICAgYWZ0ZXIgaHR0cDovL3dlYmtpdC5vcmcvYi8xMDcxOTguCisKKyAgICAgICAgKiBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oOgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVySW5mbzo6Q29vcmRpbmF0ZWRMYXllckluZm8pOgor
ICAgICAgICAoQ29vcmRpbmF0ZWRMYXllckluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZUFsbFRpbGVzKToKKyAgICAgICAg
KFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUpOgorICAgICAgICAo
V2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSk6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKToK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmFkanVzdGVkVHJhbnNm
b3JtRm9yUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpw
YWludFRvVGV4dHVyZU1hcHBlcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRlcik6CisgICAgICAgICAgICBPdmVy
cmlkZSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcjo6ZHJhd0JvcmRlcigpIHRvIGRyYXcgdGhl
IGJvcmRlcgorICAgICAgICAgICAgZm9yIGVhY2ggdGlsZS4KKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU6OmRyYXdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpjb21taXRUaWxlT3BlcmF0aW9ucyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmUuaDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlOjpDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUpOgorICAgICAgICAoQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmVUaWxlKToKKyAgICAgICAgKENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlY3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNldExheWVy
UmVwYWludENvdW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAg
ICAgKENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXll
clJlcGFpbnRDb3VudCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAgKExheWVyVHJlZVJl
bmRlcmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93RGVidWdCb3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dS
ZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnN5bmNMYXllclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0RGVidWdCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5kKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAg
IChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0TGF5ZXJSZXBhaW50Q291
bnQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaDoKKworMjAxMy0wMS0y
OCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBb
VGV4TWFwXSBFbmFibGUgZGVidWcgYm9yZGVycyBhbmQgcmVwYWludCBjb3VudGVyIHZpYSBTZXR0
aW5ncy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
NzE5OAogCi0gICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBSZXZp
ZXdlZCBieSBOb2FtIFJvc2VudGhhbC4KIAogICAgICAgICBDdXJyZW50bHksIGlmIHRoZSBlbnZp
cm9ubWVudCB2YXJpYWJsZSBXRUJLSVRfU0hPV19DT01QT1NJVElOR19ERUJVR19WSVNVQUxTCiAg
ICAgICAgIGlzIHNldCB0byAxLCBvbmx5IENvb3JkaW5hdGVkQmFja2luZyBzaG93cyBkZWJ1ZyBi
b3JkZXJzIGFuZCByZXBhaW50IGNvdW50ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8u
aAppbmRleCBmOWEwMDFkZmY0Mzc4MzcwMzhhNGVlYWI1ZmY1NmUzYjk1MzMwNTZkLi40MTVmYmI2
NmE4MDI1ODFiNDhjOTAzZDQ4YjVlMTgzOTg0YzEzZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJJbmZvLmgKQEAgLTQzLDYgKzQzLDcgQEAgc3RydWN0IENvb3JkaW5hdGVkTGF5ZXJJbmZv
IHsKICAgICAgICAgLCBtYXNrKEludmFsaWRDb29yZGluYXRlZExheWVySUQpCiAgICAgICAgICwg
aW1hZ2VJRChJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkKICAgICAgICAgLCBvcGFj
aXR5KDApCisgICAgICAgICwgZGVidWdCb3JkZXJXaWR0aCgwKQogICAgICAgICAsIGZsYWdzKDAp
IHsgfQogCiAgICAgQ29vcmRpbmF0ZWRMYXllcklEIHJlcGxpY2E7CkBAIC01Nyw2ICs1OCw4IEBA
IHN0cnVjdCBDb29yZGluYXRlZExheWVySW5mbyB7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBjb250
ZW50c1JlY3Q7CiAgICAgZmxvYXQgb3BhY2l0eTsKICAgICBXZWJDb3JlOjpDb2xvciBzb2xpZENv
bG9yOworICAgIFdlYkNvcmU6OkNvbG9yIGRlYnVnQm9yZGVyQ29sb3I7CisgICAgZmxvYXQgZGVi
dWdCb3JkZXJXaWR0aDsKIAogICAgIHVuaW9uIHsKICAgICAgICAgc3RydWN0IHsKQEAgLTY4LDYg
KzcxLDggQEAgc3RydWN0IENvb3JkaW5hdGVkTGF5ZXJJbmZvIHsKICAgICAgICAgICAgIGJvb2wg
cHJlc2VydmVzM0QgOiAxOwogICAgICAgICAgICAgYm9vbCBpc1Jvb3RMYXllcjogMTsKICAgICAg
ICAgICAgIGJvb2wgZml4ZWRUb1ZpZXdwb3J0IDogMTsKKyAgICAgICAgICAgIGJvb2wgc2hvd0Rl
YnVnQm9yZGVycyA6IDE7CisgICAgICAgICAgICBib29sIHNob3dSZXBhaW50Q291bnRlciA6IDE7
CiAgICAgICAgIH07CiAgICAgICAgIHVuc2lnbmVkIGZsYWdzOwogICAgIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggNGE3YmIxMDg2ZWU3YTg2
N2IyZDNmZDY4MGM1YTM3ZGIwNWI4YjdkOC4uNzgzOGJiMGRiMjBkODc0MzRjOGE0MzFhNGYwNGY0
ZmQ4NmE2NjBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
LmNwcApAQCAtNzksMjMgKzc5LDIyIEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJl
bW92ZVRpbGUodWludDMyX3QgaWQpCiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJl
bW92ZUFsbFRpbGVzKCkKIHsKLSAgICBIYXNoTWFwPHVpbnQzMl90LCBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZVRpbGU+OjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOwotICAgIGZvciAoSGFz
aE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6aXRlcmF0b3IgaXQg
PSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZVRpbGVNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChD
b29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgIG1fdGlsZXNUb1JlbW92ZS5hZGQoaXQtPmtl
eSk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUodWludDMy
X3QgaWQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRpbGVSZWN0
LCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gYmFja0J1ZmZlciwgY29uc3QgSW50UG9p
bnQmIG9mZnNldCkKIHsKLSAgICBIYXNoTWFwPHVpbnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdT
dG9yZVRpbGU+OjppdGVyYXRvciBpdCA9IG1fdGlsZXMuZmluZChpZCk7CisgICAgQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuZmluZChpZCk7CiAg
ICAgQVNTRVJUKGl0ICE9IG1fdGlsZXMuZW5kKCkpOwotICAgIGl0LT52YWx1ZS5pbmNyZW1lbnRS
ZXBhaW50Q291bnQoKTsKICAgICBpdC0+dmFsdWUuc2V0QmFja0J1ZmZlcih0aWxlUmVjdCwgc291
cmNlUmVjdCwgYmFja0J1ZmZlciwgb2Zmc2V0KTsKIH0KIAogUGFzc1JlZlB0cjxCaXRtYXBUZXh0
dXJlPiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSgpIGNvbnN0CiB7Ci0gICAgSGFz
aE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6Y29uc3RfaXRlcmF0
b3IgZW5kID0gbV90aWxlcy5lbmQoKTsKLSAgICBmb3IgKEhhc2hNYXA8dWludDMyX3QsIENvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlVGlsZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVN
YXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRl
eHR1cmUgPSBpdC0+dmFsdWUudGV4dHVyZSgpOwogICAgICAgICBpZiAodGV4dHVyZSkKICAgICAg
ICAgICAgIHJldHVybiB0ZXh0dXJlOwpAQCAtMTA5LDI4ICsxMDgsMTUgQEAgdm9pZCBDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZTo6c2V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUp
CiAgICAgbV9zaXplID0gc2l6ZTsKIH0KIAotc3RhdGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1
Z1Zpc3VhbHMoKQordm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUaWxlc1RvVGV4
dHVyZU1hcHBlcihWZWN0b3I8VGV4dHVyZU1hcHBlclRpbGUqPiYgdGlsZXMsIFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0s
IGZsb2F0IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2ssIGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKIHsKLSNpZiBQTEFURk9STShRVCkKLSAgICByZXR1cm4gKHFnZXRlbnYoIlFUX1dFQktJVF9T
SE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMiKSA9PSAiMSIpOwotI2VsaWYgVVNFKENBSVJP
KQotICAgIHJldHVybiAoU3RyaW5nKGdldGVudigiV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVC
VUdfVklTVUFMUyIpKSA9PSAiMSIpOwotI2VuZGlmCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgdGlsZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIHRpbGVzW2ld
LT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1bGF0
ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZXNbaV0tPnJlY3QoKSkpOwogfQogCi12b2lkIENv
b3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKFZlY3RvcjxU
ZXh0dXJlTWFwcGVyVGlsZSo+JiB0aWxlcywgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgQml0
bWFwVGV4dHVyZSogbWFzaywgY29uc3QgRmxvYXRSZWN0JiByZWN0KQorVHJhbnNmb3JtYXRpb25N
YXRyaXggQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmFkanVzdGVkVHJhbnNmb3JtRm9yUmVjdChj
b25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCB0aWxlcy5zaXplKCk7ICsraSkgewotICAgICAgICBUZXh0dXJlTWFwcGVyVGlsZSogdGlsZSA9
IHRpbGVzW2ldOwotICAgICAgICB0aWxlLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0s
IG9wYWNpdHksIG1hc2ssIGNhbGN1bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZS0+cmVj
dCgpKSk7Ci0gICAgICAgIHN0YXRpYyBib29sIHNob3VsZERlYnVnID0gc2hvdWxkU2hvd1RpbGVE
ZWJ1Z1Zpc3VhbHMoKTsKLSAgICAgICAgaWYgKCFzaG91bGREZWJ1ZykKLSAgICAgICAgICAgIGNv
bnRpbnVlOwotCi0gICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdCb3JkZXIoQ29sb3IoMHhGRiwg
MCwgMCksIDIsIHRpbGUtPnJlY3QoKSwgdHJhbnNmb3JtKTsKLSAgICAgICAgdGV4dHVyZU1hcHBl
ci0+ZHJhd1JlcGFpbnRDb3VudGVyKHN0YXRpY19jYXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
VGlsZSo+KHRpbGUpLT5yZXBhaW50Q291bnQoKSwgOCwgdGlsZS0+cmVjdCgpLmxvY2F0aW9uKCks
IHRyYW5zZm9ybSk7Ci0gICAgfQorICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVj
dFRvUmVjdChyZWN0KCksIHRhcmdldFJlY3QpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVy
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spCkBAIC0xNDMs
OSArMTI5LDkgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVN
YXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwKICAgICBWZWN0b3I8VGV4dHVyZU1h
cHBlclRpbGUqPiBwcmV2aW91c1RpbGVzVG9QYWludDsKIAogICAgIC8vIFdlIGhhdmUgdG8gZG8g
dGhpcyBldmVyeSB0aW1lIHdlIHBhaW50LCBpbiBjYXNlIHRoZSBvcGFjaXR5IGhhcyBjaGFuZ2Vk
LgotICAgIEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0
ZXJhdG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVU
aWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOwogICAgIEZsb2F0UmVjdCBjb3Zl
cmVkUmVjdDsKLSAgICBmb3IgKEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0
b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKKyAgICBmb3IgKENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQg
PSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBDb29yZGluYXRl
ZEJhY2tpbmdTdG9yZVRpbGUmIHRpbGUgPSBpdC0+dmFsdWU7CiAgICAgICAgIGlmICghdGlsZS50
ZXh0dXJlKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTE2NCwxNCArMTUwLDI4IEBAIHZv
aWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVN
YXBwZXIqIHRleHR1cmVNYXBwZXIsCiAgICAgICAgIHByZXZpb3VzVGlsZXNUb1BhaW50LmFwcGVu
ZCgmdGlsZSk7CiAgICAgfQogCi0gICAgRmxvYXRSZWN0IHJlY3RPbkNvbnRlbnRzKEZsb2F0UG9p
bnQ6Onplcm8oKSwgbV9zaXplKTsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhZGp1c3RlZFRy
YW5zZm9ybSA9IHRyYW5zZm9ybTsKICAgICAvLyB0YXJnZXRSZWN0IGlzIG9uIHRoZSBjb250ZW50
cyBjb29yZGluYXRlIHN5c3RlbSwgc28gd2UgbXVzdCBjb21wYXJlIHR3byByZWN0cyBvbiB0aGUg
Y29udGVudHMgY29vcmRpbmF0ZSBzeXN0ZW0uCiAgICAgLy8gU2VlIFRpbGVkQmFja2luZ1N0b3Jl
LgotICAgIGFkanVzdGVkVHJhbnNmb3JtLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4Ojpy
ZWN0VG9SZWN0KHJlY3RPbkNvbnRlbnRzLCB0YXJnZXRSZWN0KSk7CisgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9y
bUZvclJlY3QodGFyZ2V0UmVjdCk7CiAKLSAgICBwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKHBy
ZXZpb3VzVGlsZXNUb1BhaW50LCB0ZXh0dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3Bh
Y2l0eSwgbWFzaywgcmVjdE9uQ29udGVudHMpOwotICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBw
ZXIodGlsZXNUb1BhaW50LCB0ZXh0dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0
eSwgbWFzaywgcmVjdE9uQ29udGVudHMpOworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIo
cHJldmlvdXNUaWxlc1RvUGFpbnQsIHRleHR1cmVNYXBwZXIsIGFkanVzdGVkVHJhbnNmb3JtLCBv
cGFjaXR5LCBtYXNrLCByZWN0KCkpOworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIodGls
ZXNUb1BhaW50LCB0ZXh0dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFz
aywgcmVjdCgpKTsKK30KKwordm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRl
cihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBDb2xvciYgYm9yZGVyQ29sb3Is
IGZsb2F0IGJvcmRlcldpZHRoLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRy
aXggYWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJl
Y3QodGFyZ2V0UmVjdCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVy
YXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOworICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmVUaWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KQorICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3Qm9yZGVyKGJvcmRlckNvbG9yLCBib3JkZXJX
aWR0aCwgaXQtPnZhbHVlLnJlY3QoKSwgYWRqdXN0ZWRUcmFuc2Zvcm0pOworfQorCit2b2lkIENv
b3JkaW5hdGVkQmFja2luZ1N0b3JlOjpkcmF3UmVwYWludENvdW50ZXIoVGV4dHVyZU1hcHBlciog
dGV4dHVyZU1hcHBlciwgaW50IHJlcGFpbnRDb3VudCwgY29uc3QgQ29sb3ImIGJvcmRlckNvbG9y
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB0cmFuc2Zvcm0pCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zv
cm0gPSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7Cisg
ICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVz
LmVuZCgpOworICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRv
ciBpdCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJl
TWFwcGVyLT5kcmF3UmVwYWludENvdW50ZXIocmVwYWludENvdW50LCBib3JkZXJDb2xvciwgaXQt
PnZhbHVlLnJlY3QoKS5sb2NhdGlvbigpLCBhZGp1c3RlZFRyYW5zZm9ybSk7CiB9CiAKIHZvaWQg
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmNvbW1pdFRpbGVPcGVyYXRpb25zKFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIpCkBAIC0xODEsOCArMTgxLDggQEAgdm9pZCBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZTo6Y29tbWl0VGlsZU9wZXJhdGlvbnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1h
cHBlcikKICAgICAgICAgbV90aWxlcy5yZW1vdmUoKml0KTsKICAgICBtX3RpbGVzVG9SZW1vdmUu
Y2xlYXIoKTsKIAotICAgIEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
VGlsZT46Oml0ZXJhdG9yIHRpbGVzRW5kID0gbV90aWxlcy5lbmQoKTsKLSAgICBmb3IgKEhhc2hN
YXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0g
bV90aWxlcy5iZWdpbigpOyBpdCAhPSB0aWxlc0VuZDsgKytpdCkKKyAgICBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZVRpbGVNYXA6Oml0ZXJhdG9yIHRpbGVzRW5kID0gbV90aWxlcy5lbmQoKTsKKyAg
ICBmb3IgKENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3Rp
bGVzLmJlZ2luKCk7IGl0ICE9IHRpbGVzRW5kOyArK2l0KQogICAgICAgICBpdC0+dmFsdWUuc3dh
cEJ1ZmZlcnModGV4dHVyZU1hcHBlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEJhY2tpbmdTdG9yZS5oCmluZGV4IGFlNWFmOGQ0ZmEyZmM5ZWJkMjExOTcyN2ZjYWRkODU5NjIz
MzBmOTkuLmE4MTIwZTllMzgyMjVmNjQwOTU0NjA4MzY4ZjQ5MjQzNDdkODM0ZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaApAQCAtMzYsMTMgKzM2LDEwIEBA
IHB1YmxpYzoKICAgICBleHBsaWNpdCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUoZmxvYXQg
c2NhbGUgPSAxKQogICAgICAgICA6IFRleHR1cmVNYXBwZXJUaWxlKFdlYkNvcmU6OkZsb2F0UmVj
dCgpKQogICAgICAgICAsIG1fc2NhbGUoc2NhbGUpCi0gICAgICAgICwgbV9yZXBhaW50Q291bnQo
MCkKICAgICB7CiAgICAgfQogCiAgICAgaW5saW5lIGZsb2F0IHNjYWxlKCkgY29uc3QgeyByZXR1
cm4gbV9zY2FsZTsgfQotICAgIGlubGluZSB2b2lkIGluY3JlbWVudFJlcGFpbnRDb3VudCgpIHsg
KyttX3JlcGFpbnRDb3VudDsgfQotICAgIGlubGluZSBpbnQgcmVwYWludENvdW50KCkgY29uc3Qg
eyByZXR1cm4gbV9yZXBhaW50Q291bnQ7IH0KICAgICB2b2lkIHN3YXBCdWZmZXJzKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXIqKTsKICAgICB2b2lkIHNldEJhY2tCdWZmZXIoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBQYXNzUmVmUHRyPENvb3JkaW5hdGVk
U3VyZmFjZT4gYnVmZmVyLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCkBAIC01Miw3ICs0
OSw2IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50UmVjdCBtX3RpbGVSZWN0OwogICAgIFdl
YkNvcmU6OkludFBvaW50IG1fc3VyZmFjZU9mZnNldDsKICAgICBmbG9hdCBtX3NjYWxlOwotICAg
IGludCBtX3JlcGFpbnRDb3VudDsKIH07CiAKIGNsYXNzIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
IDogcHVibGljIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUgewpAQCAtNjYsMTQg
KzYyLDE5IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+
IHRleHR1cmUoKSBjb25zdDsKICAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXIqLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKik7Cisg
ICAgdmlydHVhbCB2b2lkIGRyYXdCb3JkZXIoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciosIGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGRyYXdSZXBhaW50Q291bnRlcihXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
KiwgaW50IHJlcGFpbnRDb3VudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIE9WRVJS
SURFOwogCiBwcml2YXRlOgogICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKCkKICAgICAgICAg
OiBtX3NjYWxlKDEuKQogICAgIHsgfQogICAgIHZvaWQgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBl
cihWZWN0b3I8V2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGUqPiYsIFdlYkNvcmU6OlRleHR1cmVN
YXBwZXIqLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBXZWJD
b3JlOjpCaXRtYXBUZXh0dXJlKiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAgV2Vi
Q29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYpOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KCkgY29u
c3QgeyByZXR1cm4gV2ViQ29yZTo6RmxvYXRSZWN0KFdlYkNvcmU6OkZsb2F0UG9pbnQ6Onplcm8o
KSwgbV9zaXplKTsgfQogCi0gICAgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlPiBtX3RpbGVzOworICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmVUaWxlPiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA7Cisg
ICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwIG1fdGlsZXM7CiAgICAgSGFzaFNldDx1
aW50MzJfdD4gbV90aWxlc1RvUmVtb3ZlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3NpemU7
CiAgICAgZmxvYXQgbV9zY2FsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5LmNwcAppbmRleCA4N2ZiMTcxOTA0NDMxZTQ1YzcwZWM0NGYzNjRh
NjUyNDYxN2NkYmU5Li5iZGQxMzk2MWM0MDZjNmYwYjc1NzEwZTZhMzYzZThhYjg0OTc5MThhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHku
Y3BwCkBAIC0yNDIsNiArMjQyLDExIEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJv
eHk6OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAKK3Zv
aWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNldExheWVyUmVwYWludENvdW50KENv
b3JkaW5hdGVkTGF5ZXJJRCBpZCwgaW50IHZhbHVlKQoreworICAgIGRpc3BhdGNoVXBkYXRlKGJp
bmQoJkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXllclJlcGFpbnRDb3VudCwgbV9yZW5kZXJlci5n
ZXQoKSwgaWQsIHZhbHVlKSk7Cit9CisKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJv
eHk6OnB1cmdlQmFja2luZ1N0b3JlcygpCiB7CiAgICAgbV9zdXJmYWNlcy5jbGVhcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXgg
OTRmYTQ3NmYwOTJiNGRmZGM4ZjNhMzRhMThmMWRmMWMzMWRmMzk4Mi4uNGM1Y2U0YTdlN2I5OTlm
MTQ4ODQ1ODY1MTNjMTkzODQ1NDAxY2UzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oCkBAIC04NSw2ICs4NSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHN5bmNDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCBmcm9udEJ1ZmZl
cik7CiAgICAgdm9pZCBkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCk7CiAjZW5kaWYK
KyAgICB2b2lkIHNldExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50IHZh
bHVlKTsKICAgICB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpOwogICAgIExheWVyVHJlZVJlbmRl
cmVyKiBsYXllclRyZWVSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXIuZ2V0KCk7
IH0KICAgICB2b2lkIHNldExheWVyQW5pbWF0aW9ucyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJl
ZUhvc3RQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IGM1ZTUyZGM4YjgwYTQ1ODJmOGFhZWQ3YjBkZTI1MTQwMTBjNzkwZDEuLmUzZTc4YjMwYjAx
OTI1NTNiMDZjNjkyODkyOGIwYTZiMzNkNmQ2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCkBAIC01
NSw2ICs1NSw4IEBAIG1lc3NhZ2VzIC0+IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5IExl
Z2FjeVJlY2VpdmVyIHsKICAgICBEZXN0cm95Q2FudmFzKHVpbnQzMl90IGlkKQogI2VuZGlmCiAK
KyAgICBTZXRMYXllclJlcGFpbnRDb3VudCh1aW50MzJfdCBsYXllcklELCBpbnQgdmFsdWUpCisK
ICAgICBTZXRCYWNrZ3JvdW5kQ29sb3IoV2ViQ29yZTo6Q29sb3IgY29sb3IpCiB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZVJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAppbmRleCBkZmE0MDZkMDRkYWViYjc2
Yzc2MDljM2YwNzViZGIxZTljYzQ0YTkxLi44MDVhODczNmU5NDJiY2YzZTQzZWI0OTM2NTVlMGVl
MDMzOTNhOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCkBAIC0yNTUs
NiArMjU1LDEyIEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmRlc3Ryb3lDYW52YXMoQ29vcmRp
bmF0ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNl
dExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgaW50IHZhbHVlKQorewor
ICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJCeUlEKGlkKTsKKyAgICB0b0dyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyKGxheWVyKS0+c2V0UmVwYWludENvdW50KHZhbHVlKTsKK30KKwog
dm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJDaGlsZHJlbihDb29yZGluYXRlZExheWVy
SUQgaWQsIGNvbnN0IFZlY3RvcjxDb29yZGluYXRlZExheWVySUQ+JiBjaGlsZElEcykKIHsKICAg
ICBHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyQnlJRChpZCk7CkBAIC0zMzMsNiArMzM5LDkg
QEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVy
SUQgaWQsIGNvbnN0IENvb3JkaW5hdGVkTGEKICAgICBsYXllci0+c2V0RHJhd3NDb250ZW50KGxh
eWVySW5mby5kcmF3c0NvbnRlbnQpOwogICAgIGxheWVyLT5zZXRDb250ZW50c1Zpc2libGUobGF5
ZXJJbmZvLmNvbnRlbnRzVmlzaWJsZSk7CiAgICAgdG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
cihsYXllciktPnNldEZpeGVkVG9WaWV3cG9ydChsYXllckluZm8uZml4ZWRUb1ZpZXdwb3J0KTsK
KyAgICBsYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKGxheWVySW5mby5zaG93RGVidWdCb3JkZXJz
KTsKKyAgICBsYXllci0+c2V0RGVidWdCb3JkZXIobGF5ZXJJbmZvLmRlYnVnQm9yZGVyQ29sb3Is
IGxheWVySW5mby5kZWJ1Z0JvcmRlcldpZHRoKTsKKyAgICBsYXllci0+c2V0U2hvd1JlcGFpbnRD
b3VudGVyKGxheWVySW5mby5zaG93UmVwYWludENvdW50ZXIpOwogCiAgICAgaWYgKGxheWVySW5m
by5maXhlZFRvVmlld3BvcnQpCiAgICAgICAgIG1fZml4ZWRMYXllcnMuYWRkKGlkLCBsYXllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRleCBjMWQ1OGY0OTlmZTkxYzE3NGIz
NmYzNDIwOTZkOGE5M2RjY2QyNGU1Li5kYmZhNmE4OWVlN2NkOGQ1NDhkZTY3ZjBmYTkyOTRlNjQx
OWVkN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTc4LDYgKzc4LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQsIHVpbnQz
Ml90IGZyb250QnVmZmVyKTsKICAgICB2b2lkIGRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXll
cklEKTsKICNlbmRpZgorICAgIHZvaWQgc2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRM
YXllcklELCBpbnQgdmFsdWUpOwogCiAgICAgdm9pZCBkZXRhY2goKTsKICAgICB2b2lkIGFwcGVu
ZFVwZGF0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA1ZjI2NjJl
ZjA5MThiM2FhOTIxNDBhNDg0NTJhNTU1ODJmNTdiZDM5Li4wZmZkOTIzNGMxZTg4Mzk3OWNiZTFh
MzI0ZWE5N2Y1NjE4YTAwMjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTM3MSw2ICszNzEsMjQgQEAgdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0
IENvbG9yJiBjb2xvcikKICAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CiAKK3ZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93RGVidWdCb3JkZXIoYm9vbCBzaG93KQorewor
ICAgIGlmIChpc1Nob3dpbmdEZWJ1Z0JvcmRlcigpID09IHNob3cpCisgICAgICAgIHJldHVybjsK
KworICAgIEdyYXBoaWNzTGF5ZXI6OnNldFNob3dEZWJ1Z0JvcmRlcihzaG93KTsKKyAgICBkaWRD
aGFuZ2VMYXllclN0YXRlKCk7Cit9CisKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
ZXRTaG93UmVwYWludENvdW50ZXIoYm9vbCBzaG93KQoreworICAgIGlmIChpc1Nob3dpbmdSZXBh
aW50Q291bnRlcigpID09IHNob3cpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5
ZXI6OnNldFNob3dSZXBhaW50Q291bnRlcihzaG93KTsKKyAgICBkaWRDaGFuZ2VMYXllclN0YXRl
KCk7Cit9CisKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvSW1h
Z2UoSW1hZ2UqIGltYWdlKQogewogICAgIE5hdGl2ZUltYWdlUHRyIG5ld05hdGl2ZUltYWdlUHRy
ID0gaW1hZ2UgPyBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSA6IDA7CkBAIC01
NTAsOSArNTY4LDIxIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jTGF5ZXJT
dGF0ZSgpCiAgICAgbV9sYXllckluZm8ucG9zID0gbV9hZGp1c3RlZFBvc2l0aW9uOwogICAgIG1f
bGF5ZXJJbmZvLnNpemUgPSBtX2FkanVzdGVkU2l6ZTsKIAorICAgIG1fbGF5ZXJJbmZvLnNob3dE
ZWJ1Z0JvcmRlcnMgPSBpc1Nob3dpbmdEZWJ1Z0JvcmRlcigpOworICAgIGlmIChtX2xheWVySW5m
by5zaG93RGVidWdCb3JkZXJzKQorICAgICAgICB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKKyAg
ICBtX2xheWVySW5mby5zaG93UmVwYWludENvdW50ZXIgPSBpc1Nob3dpbmdSZXBhaW50Q291bnRl
cigpOworCiAgICAgbV9jb29yZGluYXRvci0+c3luY0xheWVyU3RhdGUobV9pZCwgbV9sYXllcklu
Zm8pOwogfQogCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0RGVidWdCb3JkZXIo
Y29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCB3aWR0aCkKK3sKKyAgICBBU1NFUlQobV9sYXllcklu
Zm8uc2hvd0RlYnVnQm9yZGVycyk7CisgICAgbV9sYXllckluZm8uZGVidWdCb3JkZXJDb2xvciA9
IGNvbG9yOworICAgIG1fbGF5ZXJJbmZvLmRlYnVnQm9yZGVyV2lkdGggPSB3aWR0aDsKK30KKwog
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNBbmltYXRpb25zKCkKIHsKICAgICBp
ZiAoIW1fc2hvdWxkU3luY0FuaW1hdGlvbnMpCkBAIC02OTgsOCArNzI4LDEwIEBAIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwKICAgICBwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cygqY29udGV4dCwg
cmVjdCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdT
dG9yZVBhaW50RW5kKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgLyogdXBkYXRlZFJlY3RzICovKQor
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQo
Y29uc3QgVmVjdG9yPEludFJlY3Q+JiB1cGRhdGVkUmVjdHMpCiB7CisgICAgaWYgKGlzU2hvd2lu
Z1JlcGFpbnRDb3VudGVyKCkgJiYgIXVwZGF0ZWRSZWN0cy5pc0VtcHR5KCkpCisgICAgICAgIG1f
Y29vcmRpbmF0b3ItPnNldExheWVyUmVwYWludENvdW50KGlkKCksIGluY3JlbWVudFJlcGFpbnRD
b3VudCgpKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2lu
Z1N0b3JlSGFzUGVuZGluZ1RpbGVDcmVhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IDZjNDM1ODVjNzBjOGUw
MzA2NWU0ZGNhYTI3ZTRmMGRhMmZhMzY5NDYuLjdlYTM4MWY3Y2Y3Yzc1YWQzNGQ0NTM4NzkwYTBl
MzAwYzQ1ZjNhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC03MSw2ICs3MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGVzdHJveUNhbnZhcyhDb29yZGluYXRlZExheWVySUQpID0gMDsKICNlbmRpZgog
CisgICAgdmlydHVhbCB2b2lkIHNldExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJ
RCwgaW50KSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25zKENvb3Jk
aW5hdGVkTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllckFuaW1hdGlvbnMmKSA9
IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyKikgPSAwOwpAQCAtMTEyLDYgKzExNCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29udGVudHNSZWN0KGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKEltYWdlKikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihib29sKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGREaXJlY3RseUNvbXBvc2l0ZUltYWdlKEltYWdlKikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1M
YXllciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRNYXNrTGF5ZXIoR3JhcGhpY3NM
YXllciopIE9WRVJSSURFOwpAQCAtMTY2LDYgKzE3MCw4IEBAIHB1YmxpYzoKICAgICBib29sIGhh
c1BlbmRpbmdWaXNpYmxlQ2hhbmdlcygpOwogCiBwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBz
ZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IHdpZHRoKSBPVkVSUklERTsKKwogICAg
IGJvb2wgZml4ZWRUb1ZpZXdwb3J0KCkgY29uc3QgeyByZXR1cm4gbV9maXhlZFRvVmlld3BvcnQ7
IH0KIAogICAgIHZvaWQgZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMGZj
MWFmMmZkNGY0NzQxOGY1NjM3MzhjMmY1YzY2OGQ3ZGQ5ZjhhOS4uMmVhZjg2NWE0NDQyNzQwOTJk
OGJmYWE5NzNlMDQ3MDI3MDc0ODYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC0zOTEsNiArMzkxLDExIEBA
IHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVk
TGF5ZXJJRCBpZCkKIH0KICNlbmRpZgogCit2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6
c2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBpbnQgdmFsdWUpCit7
CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpDb29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eTo6U2V0TGF5ZXJSZXBhaW50Q291bnQoaWQsIHZhbHVlKSk7Cit9CisKICNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c3luY0xheWVyRmls
dGVycyhDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRl
cnMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdC5oCmluZGV4IDAxMDIyYjJjYzRlOTg0ODhhNGRmNzg3ZWEzNjkwYjcyYWNjZmY3
MjkuLjlhYTllNmVjZGYzYTY5ZWYwMDM4MjhlMTc4YTk4NjEwNjc0ZmY3NjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCkBA
IC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jQ2FudmFzKENv
b3JkaW5hdGVkTGF5ZXJJRCwgV2ViQ29yZTo6UGxhdGZvcm1MYXllciopIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCkgT1ZFUlJJREU7
CiAjZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0
ZWRMYXllcklELCBpbnQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXllcihX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3lu
Y0ZpeGVkTGF5ZXJzKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185161</attachid>
            <date>2013-01-28 22:40:40 -0800</date>
            <delta_ts>2013-01-28 23:46:29 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-107910-20130129153705.patch</filename>
            <type>text/plain</type>
            <size>25134</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmZhZjA0YTY4ZGFhNzQ0
OTI4MzlkZTg1NTQyMjQ5ODk2NDM5NzQyMy4uZTkzOWYzNjY3ZjkxOWQ5ZmNhNDEzNWFjOGM5MWUx
YTc3MjNlM2U2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY4IEBACiAyMDEzLTAxLTI4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIHJlbGF0ZWQgdG8gZGVidWcgYm9yZGVyIGFuZCBy
ZXBhaW50IGNvdW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3OTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTm9hbSBSb3NlbnRoYWwuCisKKyAg
ICAgICAgVGhlcmUgYXJlIHR3byBiaWcgY2hhbmdlczoKKyAgICAgICAgMS4gQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyIHNlbmRzIGRlYnVnZ2luZyB2aXN1YWxzIHRvIFVJIFByb2Nlc3MuCisgICAg
ICAgIDIuIFdoZW4gdXBkYXRpbmcgYSBiYWNraW5nIHN0b3JlLCBpbmNyZW1lbnQgYSByZXBhaW50
IGNvdW50LgorCisgICAgICAgIEluIGFkZGl0aW9uLCB3ZSBkb24ndCB1c2UgUVRfV0VCS0lUX1NI
T1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUworICAgICAgICBlbnZpcm9ubWVudC4gRUZMLCBH
VEsgYW5kIFFUIHdpbGwgdXNlIFdFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMK
KyAgICAgICAgYWZ0ZXIgaHR0cDovL3dlYmtpdC5vcmcvYi8xMDcxOTguCisKKyAgICAgICAgKiBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oOgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVySW5mbzo6Q29vcmRpbmF0ZWRMYXllckluZm8pOgor
ICAgICAgICAoQ29vcmRpbmF0ZWRMYXllckluZm8pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZUFsbFRpbGVzKToKKyAgICAgICAg
KFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUpOgorICAgICAgICAo
V2ViS2l0OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSk6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKToK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmFkanVzdGVkVHJhbnNm
b3JtRm9yUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpw
YWludFRvVGV4dHVyZU1hcHBlcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRlcik6CisgICAgICAgICAgICBPdmVy
cmlkZSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcjo6ZHJhd0JvcmRlcigpIHRvIGRyYXcgdGhl
IGJvcmRlcgorICAgICAgICAgICAgZm9yIGVhY2ggdGlsZS4KKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU6OmRyYXdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJL
aXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpjb21taXRUaWxlT3BlcmF0aW9ucyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmUuaDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlOjpDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUpOgorICAgICAgICAoQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmVUaWxlKToKKyAgICAgICAgKENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdl
YktpdDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlY3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNldExheWVy
UmVwYWludENvdW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAg
ICAgKENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZVJlbmRlcmVyOjpzZXRMYXll
clJlcGFpbnRDb3VudCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVSZW5kZXJlcjo6c2V0TGF5ZXJTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAgKExheWVyVHJlZVJl
bmRlcmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93RGVidWdCb3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3dS
ZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnN5bmNMYXllclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0RGVidWdCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5kKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAgICAg
IChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0TGF5ZXJSZXBhaW50Q291
bnQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaDoKKworMjAxMy0wMS0y
OCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBb
VGV4TWFwXSBFbmFibGUgZGVidWcgYm9yZGVycyBhbmQgcmVwYWludCBjb3VudGVyIHZpYSBTZXR0
aW5ncy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
NzE5OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVySW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllckluZm8uaAppbmRleCBmOWEwMDFkZmY0Mzc4
MzcwMzhhNGVlYWI1ZmY1NmUzYjk1MzMwNTZkLi40MTVmYmI2NmE4MDI1ODFiNDhjOTAzZDQ4YjVl
MTgzOTg0YzEzZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVySW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJJbmZvLmgKQEAgLTQzLDYg
KzQzLDcgQEAgc3RydWN0IENvb3JkaW5hdGVkTGF5ZXJJbmZvIHsKICAgICAgICAgLCBtYXNrKElu
dmFsaWRDb29yZGluYXRlZExheWVySUQpCiAgICAgICAgICwgaW1hZ2VJRChJbnZhbGlkQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmdJRCkKICAgICAgICAgLCBvcGFjaXR5KDApCisgICAgICAgICwgZGVi
dWdCb3JkZXJXaWR0aCgwKQogICAgICAgICAsIGZsYWdzKDApIHsgfQogCiAgICAgQ29vcmRpbmF0
ZWRMYXllcklEIHJlcGxpY2E7CkBAIC01Nyw2ICs1OCw4IEBAIHN0cnVjdCBDb29yZGluYXRlZExh
eWVySW5mbyB7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBjb250ZW50c1JlY3Q7CiAgICAgZmxvYXQg
b3BhY2l0eTsKICAgICBXZWJDb3JlOjpDb2xvciBzb2xpZENvbG9yOworICAgIFdlYkNvcmU6OkNv
bG9yIGRlYnVnQm9yZGVyQ29sb3I7CisgICAgZmxvYXQgZGVidWdCb3JkZXJXaWR0aDsKIAogICAg
IHVuaW9uIHsKICAgICAgICAgc3RydWN0IHsKQEAgLTY4LDYgKzcxLDggQEAgc3RydWN0IENvb3Jk
aW5hdGVkTGF5ZXJJbmZvIHsKICAgICAgICAgICAgIGJvb2wgcHJlc2VydmVzM0QgOiAxOwogICAg
ICAgICAgICAgYm9vbCBpc1Jvb3RMYXllcjogMTsKICAgICAgICAgICAgIGJvb2wgZml4ZWRUb1Zp
ZXdwb3J0IDogMTsKKyAgICAgICAgICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycyA6IDE7CisgICAg
ICAgICAgICBib29sIHNob3dSZXBhaW50Q291bnRlciA6IDE7CiAgICAgICAgIH07CiAgICAgICAg
IHVuc2lnbmVkIGZsYWdzOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJh
Y2tpbmdTdG9yZS5jcHAKaW5kZXggNGE3YmIxMDg2ZWU3YTg2N2IyZDNmZDY4MGM1YTM3ZGIwNWI4
YjdkOC4uNzgzOGJiMGRiMjBkODc0MzRjOGE0MzFhNGYwNGY0ZmQ4NmE2NjBmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtNzksMjMgKzc5LDIy
IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZVRpbGUodWludDMyX3QgaWQp
CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZUFsbFRpbGVzKCkKIHsKLSAg
ICBIYXNoTWFwPHVpbnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRv
ciBlbmQgPSBtX3RpbGVzLmVuZCgpOwotICAgIGZvciAoSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0ZXJh
dG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZVRpbGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
CiAgICAgICAgIG1fdGlsZXNUb1JlbW92ZS5hZGQoaXQtPmtleSk7CiB9CiAKIHZvaWQgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUodWludDMyX3QgaWQsIGNvbnN0IEludFJlY3Qm
IHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LCBQYXNzUmVmUHRyPENvb3JkaW5h
dGVkU3VyZmFjZT4gYmFja0J1ZmZlciwgY29uc3QgSW50UG9pbnQmIG9mZnNldCkKIHsKLSAgICBI
YXNoTWFwPHVpbnQzMl90LCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRvciBp
dCA9IG1fdGlsZXMuZmluZChpZCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFw
OjppdGVyYXRvciBpdCA9IG1fdGlsZXMuZmluZChpZCk7CiAgICAgQVNTRVJUKGl0ICE9IG1fdGls
ZXMuZW5kKCkpOwotICAgIGl0LT52YWx1ZS5pbmNyZW1lbnRSZXBhaW50Q291bnQoKTsKICAgICBp
dC0+dmFsdWUuc2V0QmFja0J1ZmZlcih0aWxlUmVjdCwgc291cmNlUmVjdCwgYmFja0J1ZmZlciwg
b2Zmc2V0KTsKIH0KIAogUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZTo6dGV4dHVyZSgpIGNvbnN0CiB7Ci0gICAgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQo
KTsKLSAgICBmb3IgKEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGls
ZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9yIChDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVN
YXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKICAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUgPSBpdC0+dmFsdWUudGV4
dHVyZSgpOwogICAgICAgICBpZiAodGV4dHVyZSkKICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJl
OwpAQCAtMTA5LDI4ICsxMDgsMTUgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6c2V0
U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCiAgICAgbV9zaXplID0gc2l6ZTsK
IH0KIAotc3RhdGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKQordm9pZCBDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8VGV4
dHVyZU1hcHBlclRpbGUqPiYgdGlsZXMsIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIEJpdG1h
cFRleHR1cmUqIG1hc2ssIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSNpZiBQTEFURk9STShR
VCkKLSAgICByZXR1cm4gKHFnZXRlbnYoIlFUX1dFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVH
X1ZJU1VBTFMiKSA9PSAiMSIpOwotI2VsaWYgVVNFKENBSVJPKQotICAgIHJldHVybiAoU3RyaW5n
KGdldGVudigiV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUyIpKSA9PSAiMSIp
OwotI2VuZGlmCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
dGlsZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIHRpbGVzW2ldLT5wYWludCh0ZXh0dXJlTWFwcGVy
LCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVj
dCwgdGlsZXNbaV0tPnJlY3QoKSkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
OjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+JiB0
aWxlcywgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaywgY29u
c3QgRmxvYXRSZWN0JiByZWN0KQorVHJhbnNmb3JtYXRpb25NYXRyaXggQ29vcmRpbmF0ZWRCYWNr
aW5nU3RvcmU6OmFkanVzdGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdl
dFJlY3QpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0aWxlcy5zaXplKCk7ICsraSkg
ewotICAgICAgICBUZXh0dXJlTWFwcGVyVGlsZSogdGlsZSA9IHRpbGVzW2ldOwotICAgICAgICB0
aWxlLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGNhbGN1
bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZS0+cmVjdCgpKSk7Ci0gICAgICAgIHN0YXRp
YyBib29sIHNob3VsZERlYnVnID0gc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKTsKLSAgICAg
ICAgaWYgKCFzaG91bGREZWJ1ZykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHRl
eHR1cmVNYXBwZXItPmRyYXdCb3JkZXIoQ29sb3IoMHhGRiwgMCwgMCksIDIsIHRpbGUtPnJlY3Qo
KSwgdHJhbnNmb3JtKTsKLSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd1JlcGFpbnRDb3VudGVy
KHN0YXRpY19jYXN0PENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSo+KHRpbGUpLT5yZXBhaW50
Q291bnQoKSwgOCwgdGlsZS0+cmVjdCgpLmxvY2F0aW9uKCksIHRyYW5zZm9ybSk7Ci0gICAgfQor
ICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdChyZWN0KCksIHRhcmdl
dFJlY3QpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVy
ZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGZsb2F0IG9w
YWNpdHksIEJpdG1hcFRleHR1cmUqIG1hc2spCkBAIC0xNDMsOSArMTI5LDkgQEAgdm9pZCBDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciog
dGV4dHVyZU1hcHBlciwKICAgICBWZWN0b3I8VGV4dHVyZU1hcHBlclRpbGUqPiBwcmV2aW91c1Rp
bGVzVG9QYWludDsKIAogICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBldmVyeSB0aW1lIHdlIHBh
aW50LCBpbiBjYXNlIHRoZSBvcGFjaXR5IGhhcyBjaGFuZ2VkLgotICAgIEhhc2hNYXA8dWludDMy
X3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGVuZCA9IG1fdGlsZXMu
ZW5kKCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQg
PSBtX3RpbGVzLmVuZCgpOwogICAgIEZsb2F0UmVjdCBjb3ZlcmVkUmVjdDsKLSAgICBmb3IgKEhh
c2hNYXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0
ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICBmb3IgKENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkgewogICAgICAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUmIHRp
bGUgPSBpdC0+dmFsdWU7CiAgICAgICAgIGlmICghdGlsZS50ZXh0dXJlKCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKQEAgLTE2NCwxNCArMTUwLDI4IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIs
CiAgICAgICAgIHByZXZpb3VzVGlsZXNUb1BhaW50LmFwcGVuZCgmdGlsZSk7CiAgICAgfQogCi0g
ICAgRmxvYXRSZWN0IHJlY3RPbkNvbnRlbnRzKEZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsK
LSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhZGp1c3RlZFRyYW5zZm9ybSA9IHRyYW5zZm9ybTsK
ICAgICAvLyB0YXJnZXRSZWN0IGlzIG9uIHRoZSBjb250ZW50cyBjb29yZGluYXRlIHN5c3RlbSwg
c28gd2UgbXVzdCBjb21wYXJlIHR3byByZWN0cyBvbiB0aGUgY29udGVudHMgY29vcmRpbmF0ZSBz
eXN0ZW0uCiAgICAgLy8gU2VlIFRpbGVkQmFja2luZ1N0b3JlLgotICAgIGFkanVzdGVkVHJhbnNm
b3JtLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4OjpyZWN0VG9SZWN0KHJlY3RPbkNvbnRl
bnRzLCB0YXJnZXRSZWN0KSk7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFu
c2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7
CiAKLSAgICBwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKHByZXZpb3VzVGlsZXNUb1BhaW50LCB0
ZXh0dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdE9uQ29u
dGVudHMpOwotICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIodGlsZXNUb1BhaW50LCB0ZXh0
dXJlTWFwcGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdE9uQ29udGVu
dHMpOworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIocHJldmlvdXNUaWxlc1RvUGFpbnQs
IHRleHR1cmVNYXBwZXIsIGFkanVzdGVkVHJhbnNmb3JtLCBvcGFjaXR5LCBtYXNrLCByZWN0KCkp
OworICAgIHBhaW50VGlsZXNUb1RleHR1cmVNYXBwZXIodGlsZXNUb1BhaW50LCB0ZXh0dXJlTWFw
cGVyLCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgcmVjdCgpKTsKK30KKwordm9p
ZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRlcihUZXh0dXJlTWFwcGVyKiB0ZXh0
dXJlTWFwcGVyLCBjb25zdCBDb2xvciYgYm9yZGVyQ29sb3IsIGZsb2F0IGJvcmRlcldpZHRoLCBj
b25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0
cmFuc2Zvcm0pCit7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0g
PSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7CisgICAg
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVu
ZCgpOworICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBp
dCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJlTWFw
cGVyLT5kcmF3Qm9yZGVyKGJvcmRlckNvbG9yLCBib3JkZXJXaWR0aCwgaXQtPnZhbHVlLnJlY3Qo
KSwgYWRqdXN0ZWRUcmFuc2Zvcm0pOworfQorCit2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
OjpkcmF3UmVwYWludENvdW50ZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgaW50IHJl
cGFpbnRDb3VudCwgY29uc3QgQ29sb3ImIGJvcmRlckNvbG9yLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pCit7CisgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1
c3RlZFRyYW5zZm9ybUZvclJlY3QodGFyZ2V0UmVjdCk7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOworICAgIGZvciAoQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3UmVwYWludENv
dW50ZXIocmVwYWludENvdW50LCBib3JkZXJDb2xvciwgaXQtPnZhbHVlLnJlY3QoKS5sb2NhdGlv
bigpLCBhZGp1c3RlZFRyYW5zZm9ybSk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmU6OmNvbW1pdFRpbGVPcGVyYXRpb25zKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCkBA
IC0xODEsOCArMTgxLDggQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6Y29tbWl0VGls
ZU9wZXJhdGlvbnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcikKICAgICAgICAgbV90aWxl
cy5yZW1vdmUoKml0KTsKICAgICBtX3RpbGVzVG9SZW1vdmUuY2xlYXIoKTsKIAotICAgIEhhc2hN
YXA8dWludDMyX3QsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIHRpbGVz
RW5kID0gbV90aWxlcy5lbmQoKTsKLSAgICBmb3IgKEhhc2hNYXA8dWludDMyX3QsIENvb3JkaW5h
dGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAh
PSB0aWxlc0VuZDsgKytpdCkKKyAgICBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0
ZXJhdG9yIHRpbGVzRW5kID0gbV90aWxlcy5lbmQoKTsKKyAgICBmb3IgKENvb3JkaW5hdGVkQmFj
a2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9IHRp
bGVzRW5kOyArK2l0KQogICAgICAgICBpdC0+dmFsdWUuc3dhcEJ1ZmZlcnModGV4dHVyZU1hcHBl
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmluZGV4
IGFlNWFmOGQ0ZmEyZmM5ZWJkMjExOTcyN2ZjYWRkODU5NjIzMzBmOTkuLmE4MTIwZTllMzgyMjVm
NjQwOTU0NjA4MzY4ZjQ5MjQzNDdkODM0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuaApAQCAtMzYsMTMgKzM2LDEwIEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGUoZmxvYXQgc2NhbGUgPSAxKQogICAgICAgICA6
IFRleHR1cmVNYXBwZXJUaWxlKFdlYkNvcmU6OkZsb2F0UmVjdCgpKQogICAgICAgICAsIG1fc2Nh
bGUoc2NhbGUpCi0gICAgICAgICwgbV9yZXBhaW50Q291bnQoMCkKICAgICB7CiAgICAgfQogCiAg
ICAgaW5saW5lIGZsb2F0IHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZTsgfQotICAgIGlu
bGluZSB2b2lkIGluY3JlbWVudFJlcGFpbnRDb3VudCgpIHsgKyttX3JlcGFpbnRDb3VudDsgfQot
ICAgIGlubGluZSBpbnQgcmVwYWludENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Q291
bnQ7IH0KICAgICB2b2lkIHN3YXBCdWZmZXJzKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqKTsKICAg
ICB2b2lkIHNldEJhY2tCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gYnVmZmVyLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCkBAIC01Miw3ICs0OSw2IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6SW50UmVjdCBtX3RpbGVSZWN0OwogICAgIFdlYkNvcmU6OkludFBvaW50IG1fc3Vy
ZmFjZU9mZnNldDsKICAgICBmbG9hdCBtX3NjYWxlOwotICAgIGludCBtX3JlcGFpbnRDb3VudDsK
IH07CiAKIGNsYXNzIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlIDogcHVibGljIFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJCYWNraW5nU3RvcmUgewpAQCAtNjYsMTQgKzYyLDE5IEBAIHB1YmxpYzoKICAg
ICBQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSBjb25zdDsKICAg
ICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKik7CisgICAgdmlydHVhbCB2b2lkIGRyYXdC
b3JkZXIoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgZmxv
YXQgYm9yZGVyV2lkdGgsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OlRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyYXdS
ZXBhaW50Q291bnRlcihXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKiwgaW50IHJlcGFpbnRDb3VudCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIE9WRVJSSURFOwogCiBwcml2YXRlOgogICAg
IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKCkKICAgICAgICAgOiBtX3NjYWxlKDEuKQogICAgIHsg
fQogICAgIHZvaWQgcGFpbnRUaWxlc1RvVGV4dHVyZU1hcHBlcihWZWN0b3I8V2ViQ29yZTo6VGV4
dHVyZU1hcHBlclRpbGUqPiYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqLCBjb25zdCBXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBXZWJDb3JlOjpCaXRtYXBUZXh0dXJlKiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXggYWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gV2ViQ29yZTo6
RmxvYXRSZWN0KFdlYkNvcmU6OkZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsgfQogCi0gICAg
SGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPiBtX3RpbGVzOwor
ICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50MzJfdCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxl
PiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA7CisgICAgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlTWFwIG1fdGlsZXM7CiAgICAgSGFzaFNldDx1aW50MzJfdD4gbV90aWxlc1RvUmVt
b3ZlOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3NpemU7CiAgICAgZmxvYXQgbV9zY2FsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNw
cAppbmRleCA4N2ZiMTcxOTA0NDMxZTQ1YzcwZWM0NGYzNjRhNjUyNDYxN2NkYmU5Li5iZGQxMzk2
MWM0MDZjNmYwYjc1NzEwZTZhMzYzZThhYjg0OTc5MThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDEx
IEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OmRlc3Ryb3lDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklEIGlkKQogfQogI2VuZGlmCiAKK3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0UHJveHk6OnNldExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwg
aW50IHZhbHVlKQoreworICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVy
OjpzZXRMYXllclJlcGFpbnRDb3VudCwgbV9yZW5kZXJlci5nZXQoKSwgaWQsIHZhbHVlKSk7Cit9
CisKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnB1cmdlQmFja2luZ1N0b3Jl
cygpCiB7CiAgICAgbV9zdXJmYWNlcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggOTRmYTQ3NmYwOTJiNGRmZGM4ZjNh
MzRhMThmMWRmMWMzMWRmMzk4Mi4uNGM1Y2U0YTdlN2I5OTlmMTQ4ODQ1ODY1MTNjMTkzODQ1NDAx
Y2UzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eS5oCkBAIC04NSw2ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bmNDYW52YXMoQ29v
cmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CiAgICAgdm9pZCBkZXN0cm95
Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCk7CiAjZW5kaWYKKyAgICB2b2lkIHNldExheWVyUmVw
YWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50IHZhbHVlKTsKICAgICB2b2lkIHB1cmdl
QmFja2luZ1N0b3JlcygpOwogICAgIExheWVyVHJlZVJlbmRlcmVyKiBsYXllclRyZWVSZW5kZXJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldExheWVy
QW5pbWF0aW9ucyhDb29yZGluYXRlZExheWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJBbmltYXRpb25zJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGM1ZTUyZGM4YjgwYTQ1ODJm
OGFhZWQ3YjBkZTI1MTQwMTBjNzkwZDEuLmUzZTc4YjMwYjAxOTI1NTNiMDZjNjkyODkyOGIwYTZi
MzNkNmQ2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCkBAIC01NSw2ICs1NSw4IEBAIG1lc3NhZ2Vz
IC0+IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBE
ZXN0cm95Q2FudmFzKHVpbnQzMl90IGlkKQogI2VuZGlmCiAKKyAgICBTZXRMYXllclJlcGFpbnRD
b3VudCh1aW50MzJfdCBsYXllcklELCBpbnQgdmFsdWUpCisKICAgICBTZXRCYWNrZ3JvdW5kQ29s
b3IoV2ViQ29yZTo6Q29sb3IgY29sb3IpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZVJlbmRlcmVyLmNwcAppbmRleCBkZmE0MDZkMDRkYWViYjc2Yzc2MDljM2YwNzViZGIxZTljYzQ0
YTkxLi44MDVhODczNmU5NDJiY2YzZTQzZWI0OTM2NTVlMGVlMDMzOTNhOGRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCkBAIC0yNTUsNiArMjU1LDEyIEBAIHZvaWQgTGF5
ZXJUcmVlUmVuZGVyZXI6OmRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQogfQog
I2VuZGlmCiAKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnNldExheWVyUmVwYWludENvdW50KENv
b3JkaW5hdGVkTGF5ZXJJRCBpZCwgaW50IHZhbHVlKQoreworICAgIEdyYXBoaWNzTGF5ZXIqIGxh
eWVyID0gbGF5ZXJCeUlEKGlkKTsKKyAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGxh
eWVyKS0+c2V0UmVwYWludENvdW50KHZhbHVlKTsKK30KKwogdm9pZCBMYXllclRyZWVSZW5kZXJl
cjo6c2V0TGF5ZXJDaGlsZHJlbihDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IFZlY3RvcjxD
b29yZGluYXRlZExheWVySUQ+JiBjaGlsZElEcykKIHsKICAgICBHcmFwaGljc0xheWVyKiBsYXll
ciA9IGxheWVyQnlJRChpZCk7CkBAIC0zMzMsNiArMzM5LDkgQEAgdm9pZCBMYXllclRyZWVSZW5k
ZXJlcjo6c2V0TGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaW5h
dGVkTGEKICAgICBsYXllci0+c2V0RHJhd3NDb250ZW50KGxheWVySW5mby5kcmF3c0NvbnRlbnQp
OwogICAgIGxheWVyLT5zZXRDb250ZW50c1Zpc2libGUobGF5ZXJJbmZvLmNvbnRlbnRzVmlzaWJs
ZSk7CiAgICAgdG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihsYXllciktPnNldEZpeGVkVG9W
aWV3cG9ydChsYXllckluZm8uZml4ZWRUb1ZpZXdwb3J0KTsKKyAgICBsYXllci0+c2V0U2hvd0Rl
YnVnQm9yZGVyKGxheWVySW5mby5zaG93RGVidWdCb3JkZXJzKTsKKyAgICBsYXllci0+c2V0RGVi
dWdCb3JkZXIobGF5ZXJJbmZvLmRlYnVnQm9yZGVyQ29sb3IsIGxheWVySW5mby5kZWJ1Z0JvcmRl
cldpZHRoKTsKKyAgICBsYXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKGxheWVySW5mby5zaG93
UmVwYWludENvdW50ZXIpOwogCiAgICAgaWYgKGxheWVySW5mby5maXhlZFRvVmlld3BvcnQpCiAg
ICAgICAgIG1fZml4ZWRMYXllcnMuYWRkKGlkLCBsYXllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuaAppbmRleCBjMWQ1OGY0OTlmZTkxYzE3NGIzNmYzNDIwOTZkOGE5M2RjY2QyNGU1
Li5kYmZhNmE4OWVlN2NkOGQ1NDhkZTY3ZjBmYTkyOTRlNjQxOWVkN2ZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5k
ZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IGZyb250QnVmZmVyKTsKICAg
ICB2b2lkIGRlc3Ryb3lDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklEKTsKICNlbmRpZgorICAgIHZv
aWQgc2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQgdmFsdWUpOwog
CiAgICAgdm9pZCBkZXRhY2goKTsKICAgICB2b2lkIGFwcGVuZFVwZGF0ZShjb25zdCBGdW5jdGlv
bjx2b2lkKCk+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA1ZjI2NjJlZjA5MThiM2FhOTIxNDBhNDg0NTJh
NTU1ODJmNTdiZDM5Li4wZmZkOTIzNGMxZTg4Mzk3OWNiZTFhMzI0ZWE5N2Y1NjE4YTAwMjVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5jcHAKQEAgLTM3MSw2ICszNzEsMjQgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBk
aWRDaGFuZ2VMYXllclN0YXRlKCk7CiB9CiAKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzZXRTaG93RGVidWdCb3JkZXIoYm9vbCBzaG93KQoreworICAgIGlmIChpc1Nob3dpbmdEZWJ1
Z0JvcmRlcigpID09IHNob3cpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6
OnNldFNob3dEZWJ1Z0JvcmRlcihzaG93KTsKKyAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7Cit9
CisKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG93UmVwYWludENvdW50ZXIo
Ym9vbCBzaG93KQoreworICAgIGlmIChpc1Nob3dpbmdSZXBhaW50Q291bnRlcigpID09IHNob3cp
CisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291
bnRlcihzaG93KTsKKyAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7Cit9CisKIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQogewog
ICAgIE5hdGl2ZUltYWdlUHRyIG5ld05hdGl2ZUltYWdlUHRyID0gaW1hZ2UgPyBpbWFnZS0+bmF0
aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSA6IDA7CkBAIC01NTAsOSArNTY4LDIxIEBAIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jTGF5ZXJTdGF0ZSgpCiAgICAgbV9sYXllcklu
Zm8ucG9zID0gbV9hZGp1c3RlZFBvc2l0aW9uOwogICAgIG1fbGF5ZXJJbmZvLnNpemUgPSBtX2Fk
anVzdGVkU2l6ZTsKIAorICAgIG1fbGF5ZXJJbmZvLnNob3dEZWJ1Z0JvcmRlcnMgPSBpc1Nob3dp
bmdEZWJ1Z0JvcmRlcigpOworICAgIGlmIChtX2xheWVySW5mby5zaG93RGVidWdCb3JkZXJzKQor
ICAgICAgICB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKKyAgICBtX2xheWVySW5mby5zaG93UmVw
YWludENvdW50ZXIgPSBpc1Nob3dpbmdSZXBhaW50Q291bnRlcigpOworCiAgICAgbV9jb29yZGlu
YXRvci0+c3luY0xheWVyU3RhdGUobV9pZCwgbV9sYXllckluZm8pOwogfQogCit2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBm
bG9hdCB3aWR0aCkKK3sKKyAgICBBU1NFUlQobV9sYXllckluZm8uc2hvd0RlYnVnQm9yZGVycyk7
CisgICAgbV9sYXllckluZm8uZGVidWdCb3JkZXJDb2xvciA9IGNvbG9yOworICAgIG1fbGF5ZXJJ
bmZvLmRlYnVnQm9yZGVyV2lkdGggPSB3aWR0aDsKK30KKwogdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnN5bmNBbmltYXRpb25zKCkKIHsKICAgICBpZiAoIW1fc2hvdWxkU3luY0FuaW1h
dGlvbnMpCkBAIC02OTgsOCArNzI4LDEwIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Ojp0aWxlZEJhY2tpbmdTdG9yZVBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwKICAgICBw
YWludEdyYXBoaWNzTGF5ZXJDb250ZW50cygqY29udGV4dCwgcmVjdCk7CiB9CiAKLXZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5kKGNvbnN0IFZl
Y3RvcjxJbnRSZWN0PiYgLyogdXBkYXRlZFJlY3RzICovKQordm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQoY29uc3QgVmVjdG9yPEludFJlY3Q+
JiB1cGRhdGVkUmVjdHMpCiB7CisgICAgaWYgKGlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkgJiYg
IXVwZGF0ZWRSZWN0cy5pc0VtcHR5KCkpCisgICAgICAgIG1fY29vcmRpbmF0b3ItPnNldExheWVy
UmVwYWludENvdW50KGlkKCksIGluY3JlbWVudFJlcGFpbnRDb3VudCgpKTsKIH0KIAogdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlSGFzUGVuZGluZ1RpbGVD
cmVhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5oCmluZGV4IDZjNDM1ODVjNzBjOGUwMzA2NWU0ZGNhYTI3ZTRmMGRhMmZh
MzY5NDYuLjdlYTM4MWY3Y2Y3Yzc1YWQzNGQ0NTM4NzkwYTBlMzAwYzQ1ZjNhNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5o
CkBAIC03MSw2ICs3MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveUNhbnZh
cyhDb29yZGluYXRlZExheWVySUQpID0gMDsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIHNl
dExheWVyUmVwYWludENvdW50KENvb3JkaW5hdGVkTGF5ZXJJRCwgaW50KSA9IDA7CisKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25zKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllckFuaW1hdGlvbnMmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGV0YWNoTGF5ZXIoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwpA
QCAtMTEyLDYgKzExNCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNS
ZWN0KGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNUb0ltYWdlKEltYWdlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
VG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNl
dFNob3dEZWJ1Z0JvcmRlcihib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
d1JlcGFpbnRDb3VudGVyKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
aXJlY3RseUNvbXBvc2l0ZUltYWdlKEltYWdlKikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciopIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRNYXNrTGF5ZXIoR3JhcGhpY3NMYXllciopIE9WRVJSSURFOwpAQCAt
MTY2LDYgKzE3MCw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1BlbmRpbmdWaXNpYmxlQ2hhbmdl
cygpOwogCiBwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBD
b2xvciYsIGZsb2F0IHdpZHRoKSBPVkVSUklERTsKKwogICAgIGJvb2wgZml4ZWRUb1ZpZXdwb3J0
KCkgY29uc3QgeyByZXR1cm4gbV9maXhlZFRvVmlld3BvcnQ7IH0KIAogICAgIHZvaWQgZGlkQ2hh
bmdlTGF5ZXJTdGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMGZjMWFmMmZkNGY0NzQxOGY1NjM3Mzhj
MmY1YzY2OGQ3ZGQ5ZjhhOS4uMmVhZjg2NWE0NDQyNzQwOTJkOGJmYWE5NzNlMDQ3MDI3MDc0ODYw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExh
eWVyVHJlZUhvc3QuY3BwCkBAIC0zOTEsNiArMzkxLDExIEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0OjpkZXN0cm95Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCkKIH0KICNlbmRp
ZgogCit2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0TGF5ZXJSZXBhaW50Q291bnQo
Q29vcmRpbmF0ZWRMYXllcklEIGlkLCBpbnQgdmFsdWUpCit7CisgICAgbV93ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6U2V0TGF5ZXJSZXBhaW50
Q291bnQoaWQsIHZhbHVlKSk7Cit9CisKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c3luY0xheWVyRmlsdGVycyhDb29yZGluYXRlZExheWVy
SUQgaWQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDAx
MDIyYjJjYzRlOTg0ODhhNGRmNzg3ZWEzNjkwYjcyYWNjZmY3MjkuLjlhYTllNmVjZGYzYTY5ZWYw
MDM4MjhlMTc4YTk4NjEwNjc0ZmY3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCwgV2Vi
Q29yZTo6UGxhdGZvcm1MYXllciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95
Q2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCkgT1ZFUlJJREU7CiAjZW5kaWYKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0TGF5ZXJSZXBhaW50Q291bnQoQ29vcmRpbmF0ZWRMYXllcklELCBpbnQpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXllcihXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3luY0ZpeGVkTGF5ZXJzKCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>