<?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>125807</bug_id>
          
          <creation_ts>2013-12-16 15:12:56 -0800</creation_ts>
          <short_desc>Apply overhang shadow and linen to UI-side layers</short_desc>
          <delta_ts>2013-12-17 00:13:44 -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>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>960247</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-12-16 15:12:56 -0800</bug_when>
    <thetext>Apply overhand shadow and linen to UI-side layers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960248</commentid>
    <comment_count>1</comment_count>
      <attachid>219358</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-12-16 15:19:57 -0800</bug_when>
    <thetext>Created attachment 219358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960250</commentid>
    <comment_count>2</comment_count>
      <attachid>219359</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-12-16 15:21:07 -0800</bug_when>
    <thetext>Created attachment 219359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960256</commentid>
    <comment_count>3</comment_count>
      <attachid>219359</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-16 15:28:14 -0800</bug_when>
    <thetext>Comment on attachment 219359
Patch

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

&gt; Source/WebCore/platform/mac/ScrollbarThemeMac.mm:560
&gt; +    RetainPtr&lt;CGPathRef&gt; shadowPath = adoptCF(CGPathCreateWithRect(layer.bounds, NULL));
&gt; +    layer.shadowPath = shadowPath.get();

not sure this temporary is useful

&gt; Source/WebCore/platform/mac/ScrollbarThemeMac.mm:565
&gt; +    layer.shadowPath = nil;

I think you should drop shadow opacity too, otherwise CA will try to figure out the opaque region of the layer because it doesn&apos;t have a shadowPath.

&gt; Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm:652
&gt; +        if (layerProperties.changedProperties &amp; RemoteLayerTreeTransaction::CustomAppearanceChanged)
&gt; +            dumpProperty&lt;GraphicsLayer::CustomAppearance&gt;(ts, &quot;customAppearance&quot;, layerProperties.customAppearance);
&gt; +

Ideally this would print something useful but not necessary right now.

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:529
&gt; +void PlatformCALayerRemote::updateCustomAppearance(WebCore::GraphicsLayer::CustomAppearance customAppearance)

No WebCore:: here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960272</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-12-16 15:47:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/15662167&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960287</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-12-16 16:10:48 -0800</bug_when>
    <thetext>https://trac.webkit.org/r160672</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960430</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-17 00:13:44 -0800</bug_when>
    <thetext>This seems to have disappeared the shadow in traditional compositing. Not sure why, yet.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219358</attachid>
            <date>2013-12-16 15:19:57 -0800</date>
            <delta_ts>2013-12-16 15:21:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125807-20131216151957.patch</filename>
            <type>text/plain</type>
            <size>33183</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwNjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDJjNWI4ZDkwNzNhZWM1
MTdhZDJjMjhmMzJhY2FmZGYyZTk0NjIxNi4uZjcwZDRhNjI0ZjgzZGJlMTRiYmIwZWQ3MDFlMTg2
YjYwOTlkNjIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU3IEBACiAyMDEzLTEyLTE2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEFwcGx5IG92ZXJo
YW5kIHNoYWRvdyBhbmQgbGluZW4gdG8gVUktc2lkZSBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTgwNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV2l0aCBVSS1zaWRlIGNvbXBv
c2l0aW5nLCB3ZSBuZWVkIHRvIGFwcGx5IHRoZSBvdmVyaGFuZyBzaGFkb3cgYW5kIGxpbmVuCisg
ICAgICAgIGJhY2tncm91bmQgdG8gbGF5ZXJzIGluIHRoZSBVSSBwcm9jZXNzLiBBY2hpZXZlIHRo
aXMgYnkgc2V0dGluZyBhICJjdXN0b20KKyAgICAgICAgYXBwZWFyYW5jZSIgZmxhZyBvbiBsYXll
cnMgdGhhdCBuZWVkIGEgc2hhZG93IG9yIGxpbmVuIGJhY2tncm91bmQsIGFuZAorICAgICAgICBt
aWdyYXRpbmcgdGhpcyBmbGFnIHRvIHRoZSBVSSBwcm9jZXNzLiBTdGF0aWMgZnVuY3Rpb25zIG9u
IFNjcm9sbGJhclRoZW1lTWFjCisgICAgICAgIGFyZSBleHBvc2VkIHRvIGRvIHRoZSBhY3R1YWwg
c2V0dGluZy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvcnQgU2Nyb2xsYmFyVGhl
bWVNYWMgYW5kIEdyYXBoaWNzTGF5ZXJDQSBmdW5jdGlvbnMuCisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBTY3JvbGxiYXJUaGVtZU1hYy5oIGFuZCBTY3JvbGxi
YXJUaGVtZUNvbXBvc2l0ZS5oCisgICAgICAgIG5lZWQgdG8gYmUgUHJpdmF0ZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDogSW5pdGlhbGl6ZSBtX2N1c3Rv
bUFwcGVhcmFuY2UuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpHcmFwaGljc0xh
eWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6IEdldHRl
ci9zZXR0ZXIgZm9yIEN1c3RvbUFwcGVhcmFuY2UuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyOjpzZXRDdXN0b21BcHBlYXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXI6OmN1c3RvbUFwcGVhcmFuY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5jcHA6IFVwZGF0ZSBDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCBhcwor
ICAgICAgICB3ZSBkbyBvdGhlciBwcm9wZXJ0aWVzLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJsYXllcnMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVDdXN0b21BcHBlYXJhbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q3VzdG9tQXBwZWFyYW5jZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06IFdoZW4gd2UgaGF2ZSBh
IGN1c3RvbQorICAgICAgICBhcHBlYXJhbmNlLCB1c2UgU2Nyb2xsYmFyVGhlbWVNYWMgZnVuY3Rp
b25zIHRvIHVwZGF0ZSB0aGUgbGF5ZXIuIEVuc3VyZQorICAgICAgICB0aGF0IGlmIHRoZSBib3Vu
ZHMgY2hhbmdlLCB3ZSB1cGRhdGUgdGhlIHNoYWRvdyAod2hvc2UgcGF0aCBkZXBlbmRzIG9uIHRo
ZSBib3VuZHMpLgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyTWFjOjpQbGF0Zm9ybUNBTGF5ZXJN
YWMpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyTWFjOjpjbG9uZSk6CisgICAgICAgIChQbGF0
Zm9ybUNBTGF5ZXJNYWM6OnNldEJvdW5kcyk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJNYWM6
OnJlcXVpcmVzQ3VzdG9tQXBwZWFyYW5jZVVwZGF0ZU9uQm91bmRzQ2hhbmdlKToKKyAgICAgICAg
KFBsYXRmb3JtQ0FMYXllck1hYzo6dXBkYXRlQ3VzdG9tQXBwZWFyYW5jZSk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmg6IEV4cG9ydCBzb21lIHN0YXRpYyBmdW5j
dGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOiBDaGFu
Z2UgY29kZSB0byB1c2Ugc3RhdGljIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGJhclRoZW1lTWFjOjpzZXRVcE92ZXJoYW5nQXJlYUJhY2tncm91bmQpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OnJlbW92ZU92ZXJoYW5nQXJlYUJhY2tncm91bmQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVwT3ZlcmhhbmdBcmVhU2hh
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjOjpyZW1vdmVPdmVyaGFu
Z0FyZWFTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVw
T3ZlcmhhbmdBcmVhc0xheWVyQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFy
VGhlbWVNYWM6OnNldFVwQ29udGVudFNoYWRvd0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlUm9vdExheWVyUG9zaXRpb24pOiBObyBuZWVkIHRvIGNhbGwKKyAg
ICAgICAgc2V0VXBDb250ZW50U2hhZG93TGF5ZXIoKSBub3cgd2hlbiBzaXplIGNoYW5nZXM7IFBs
YXRmb3JtQ0FMYXllciB0YWtlcworICAgICAgICBjYXJlIG9mIHRoYXQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMp
OiBOb3cgc2V0CisgICAgICAgIGN1c3RvbSBhcHBlYXJhbmNlIHZpYSBHcmFwaGljc0xheWVyLgor
CisyMDEzLTEyLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAg
ICAgICAgIFBhY2thZ2UgdXAgc29tZSBkYXRhIGFib3V0IHNjcm9sbGFiaWxpdHkgaW50byBhIHN0
cnVjdCBmb3IgdXNlIGluIHRoZSBzY3JvbGxpbmcgdHJlZQogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NzkyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5MjEwNTE4
ZjZkM2VjYTNlOTk5MjBlOWQ5MGZiYWU2ZDhlMjFjNDhiLi4yZjQ3ZWJlMTE4OGNlYjljODIyMTg3
ZmNjMGYwYjBlMTEzZmVkY2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTMtMTIt
MTYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQXBw
bHkgb3ZlcmhhbmQgc2hhZG93IGFuZCBsaW5lbiB0byBVSS1zaWRlIGxheWVycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1ODA3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90
ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbToKKyAgICAgICAgKFdlYktpdDo6dXBkYXRlQ3Vz
dG9tQXBwZWFyYW5jZSk6IFVzZSBTY3JvbGxiYXJUaGVtZU1hYyB0byB1cGRhdGUgdGhlCisgICAg
ICAgIGFwcGVhcmFuY2UuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVByb3BlcnR5
QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzVG9MYXllcik6CisgICAgICAgICogU2hhcmVkL21hYy9S
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmRlY29kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OmR1bXBDaGFuZ2VkTGF5ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGU6OnNldEJvdW5kcyk6IElmIHRoZSBib3VuZHMgY2hhbmdlLCBhbHNvIHNl
dCB0aGUKKyAgICAgICAgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQgYml0IHNvIHRoYXQgdGhlIFVJ
IHNpZGUgdXBkYXRlcyB0aGUgc2hhZG93IGJvdW5kcworICAgICAgICAoZG9uZSBoZXJlIGJlY2F1
c2UgdGhlIFVJIHNpZGUgaXMgbm90IHN0YXRlZnVsKS4KKyAgICAgICAgKFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6cmVxdWlyZXNDdXN0b21BcHBlYXJhbmNlVXBkYXRlT25Cb3VuZHNDaGFuZ2UpOgor
ICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjdXN0b21BcHBlYXJhbmNlKToKKyAgICAg
ICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6dXBkYXRlQ3VzdG9tQXBwZWFyYW5jZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaDoKKwog
MjAxMy0xMi0xNiAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIEZpeCBidWlsZCB3YXJuaW5nIGluIGZpbGVzIGluY2x1ZGluZyBEcmF3
aW5nQXJlYVByb3h5LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggODRiZDIwNjAzM2NkODY1NWU5
MTRjMzgyOTFkMTRhZTA2NmNkOWExNS4uOWExZTA3ZWY5N2U1Y2M0ZjA1NGM1MmZhYTZhZTk3YjQ0
NGZjMzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTQwMyw2ICs0MDMsMTAgQEAgX19aTjdX
ZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTZzY3JvbGxFTlNfMTVTY3JvbGxEaXJlY3Rpb25FTlNfMTdT
Y3JvbGxHcmFudWxhcml0eUUKIF9fWk43V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWFDMkV2CiBfX1pO
N1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhRDJFdgogX19aTjdXZWJDb3JlMTRTY3JvbGxiYXJUaGVt
ZTV0aGVtZUV2CitfX1pON1dlYkNvcmUxN1Njcm9sbGJhclRoZW1lTWFjMjhyZW1vdmVPdmVyaGFu
Z0FyZWFCYWNrZ3JvdW5kRVA3Q0FMYXllcgorX19aTjdXZWJDb3JlMTdTY3JvbGxiYXJUaGVtZU1h
YzI0cmVtb3ZlT3ZlcmhhbmdBcmVhU2hhZG93RVA3Q0FMYXllcgorX19aTjdXZWJDb3JlMTdTY3Jv
bGxiYXJUaGVtZU1hYzI3c2V0VXBPdmVyaGFuZ0FyZWFCYWNrZ3JvdW5kRVA3Q0FMYXllclJLTlNf
NUNvbG9yRQorX19aTjdXZWJDb3JlMTdTY3JvbGxiYXJUaGVtZU1hYzIzc2V0VXBPdmVyaGFuZ0Fy
ZWFTaGFkb3dFUDdDQUxheWVyCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTZjcmVhdGVG
cm9tU3RyaW5nRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjI4
Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllckVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29y
ZTE0U2VjdXJpdHlPcmlnaW42Y3JlYXRlRVJLTjNXVEY2U3RyaW5nRVM0X2kKQEAgLTU2Niw2ICs1
NzAsNyBAQCBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTdzZXRTaXplRVJLTlNfOUZsb2F0
U2l6ZUUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBOGFkZENoaWxkRVBOU18xM0dyYXBo
aWNzTGF5ZXJFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQUMyRVBOU18xOUdyYXBoaWNz
TGF5ZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQUQyRXYKK19fWk43V2Vi
Q29yZTE1R3JhcGhpY3NMYXllckNBMTlzZXRDdXN0b21BcHBlYXJhbmNlRU5TXzEzR3JhcGhpY3NM
YXllcjE2Q3VzdG9tQXBwZWFyYW5jZUUKIF9fWk43V2ViQ29yZTE1SGl0VGVzdExvY2F0aW9uMTJy
ZWN0Rm9yUG9pbnRFUktOU18xMUxheW91dFBvaW50RWpqamoKIF9fWk43V2ViQ29yZTE1SlNET01X
aW5kb3dCYXNlOGNvbW1vblZNRXYKIF9fWk43V2ViQ29yZTE1UGFzdGVib2FyZEltYWdlQzFFdgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGMzZjc2MTQ4MzE1ZDg0OGU3YjdkZDliZTIwMTBhOGZkYzQ0NjBiNDkuLmJjMWJlNTEzY2Jk
N2NiODNhY2Q5ZWE5ZWZlZWMxY2UzZTkwZmVhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3NTQsNyArNDc1NCw3IEBACiAJ
CUJDMTI4QTczMTM3Qzg2N0MwMENBQzg0NSAvKiBSZW5kZXJHcmlkLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEyOEE3MjEzN0M4NjdDMDBDQUM4NDUg
LyogUmVuZGVyR3JpZC5oICovOyB9OwogCQlCQzEyOEIwMTEzN0M4RDQ2MDBDQUM4NDUgLyogUmVu
ZGVyR3JpZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzEyOEIwMDEzN0M4RDQ2MDBDQUM4NDUgLyogUmVuZGVyR3JpZC5jcHAgKi87IH07CiAJCUJD
MTQwMjhBMEU4MzY4MDgwMDMxOTcxNyAvKiBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE0MDI4ODBFODM2
ODA4MDAzMTk3MTcgLyogU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUuY3BwICovOyB9OwotCQlCQzE0
MDI4QjBFODM2ODA4MDAzMTk3MTcgLyogU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTQwMjg5MEU4MzY4MDgw
MDMxOTcxNyAvKiBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oICovOyB9OworCQlCQzE0MDI4QjBF
ODM2ODA4MDAzMTk3MTcgLyogU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTQwMjg5MEU4MzY4MDgwMDMxOTcx
NyAvKiBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMTdGOTY2MEI2NEVCQjgwMDRBNjVDQiAvKiBKU0hU
TUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMTdGOTY1MEI2NEVCQjgwMDRBNjVDQiAvKiBKU0hUTUxTZWxlY3RF
bGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkMxQTM3QUQwOTdDNzE1RjAwMTlGM0Q4IC8qIERP
TS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQTM3
OTcwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJDMUEzN0FFMDk3QzcxNUYwMDE5RjNEOCAvKiBET00ubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFBMzc5ODA5
N0M3MTVGMDAxOUYzRDggLyogRE9NLm1tICovOyB9OwpAQCAtNDk3Niw3ICs0OTc2LDcgQEAKIAkJ
QkM4NUYyM0QxNTE5MTVFMDAwQkMxN0JFIC8qIFJlbmRlck5hbWVkRmxvd1RocmVhZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4NUYyM0MxNTE5MTVF
MDAwQkMxN0JFIC8qIFJlbmRlck5hbWVkRmxvd1RocmVhZC5oICovOyB9OwogCQlCQzhBRTM0RTEy
RUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4QUUzNEMxMkVBMDk2QTAwRUIzQUU2IC8qIFNj
cm9sbGFibGVBcmVhLmNwcCAqLzsgfTsKIAkJQkM4QUUzNEYxMkVBMDk2QTAwRUIzQUU2IC8qIFNj
cm9sbGFibGVBcmVhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzhBRTM0RDEyRUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzhCODUzRTBFN0M3
RjExMDBBQjY5ODQgLyogU2Nyb2xsYmFyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOEI4NTNDMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3Jv
bGxiYXJUaGVtZU1hYy5oICovOyB9OworCQlCQzhCODUzRTBFN0M3RjExMDBBQjY5ODQgLyogU2Ny
b2xsYmFyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDOEI4NTNDMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3JvbGxiYXJUaGVtZU1hYy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDOEI4NTRC
MEU3QzdGNTYwMEFCNjk4NCAvKiBTY3JvbGxiYXJUaGVtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4Qjg1NEEwRTdDN0Y1NjAwQUI2OTg0IC8qIFNj
cm9sbGJhclRoZW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkM4QkYxNTExMDU4MTNCRjAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzhCRjE1MDEwNTgx
M0JGMDBBNDBBMDcgLyogVXNlclN0eWxlU2hlZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzhCRjE1QTEwNTgxNDE4MDBBNDBBMDcgLyogVXNl
clN0eWxlU2hlZXRUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM4QkYxNTkxMDU4MTQxODAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0VHlwZXMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRl
eCAwODY3NDcwNzBiMWUwNWM0ZDU2YzdjMTg0MmY0YzEzOTFmMmVmYmUzLi4yZjdkZTVlYWNjYTE0
ODMwYjc3ZTlmOTBlYWY3MDgxYzhjZjk4ZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtOTcsNiArOTcsNyBAQCBHcmFw
aGljc0xheWVyOjpHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKICAg
ICAsIG1fcmVwbGljYUxheWVyKDApCiAgICAgLCBtX3JlcGxpY2F0ZWRMYXllcigwKQogICAgICwg
bV9yZXBhaW50Q291bnQoMCkKKyAgICAsIG1fY3VzdG9tQXBwZWFyYW5jZShOb0N1c3RvbUFwcGVh
cmFuY2UpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIGlmIChtX2NsaWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA3OWMwZDc4
NDQxODcyZGQ1ZmE4MDRiOTAyZTM4ZjAwOWJhYmQ2ZDhkLi42YjY4MTQ1ZTEyYzlmZjM1YjQzMmY1
ZmI2ZjNhNmM2ODI2ZjAyMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC00MjEsNiArNDIxLDEwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0RGVidWdCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCAvKmJvcmRl
cldpZHRoKi8pIHsgfQogCisgICAgZW51bSBDdXN0b21BcHBlYXJhbmNlIHsgTm9DdXN0b21BcHBl
YXJhbmNlLCBTY3JvbGxpbmdPdmVyaGFuZywgU2Nyb2xsaW5nU2hhZG93IH07CisgICAgdmlydHVh
bCB2b2lkIHNldEN1c3RvbUFwcGVhcmFuY2UoQ3VzdG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJh
bmNlKSB7IG1fY3VzdG9tQXBwZWFyYW5jZSA9IGN1c3RvbUFwcGVhcmFuY2U7IH0KKyAgICBDdXN0
b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFuY2UoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUFw
cGVhcmFuY2U7IH0KKwogICAgIC8vIHotcG9zaXRpb24gaXMgdGhlIHotZXF1aXZhbGVudCBvZiBw
b3NpdGlvbigpLiBJdCdzIG9ubHkgdXNlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLgogICAgIHZp
cnR1YWwgZmxvYXQgelBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV96UG9zaXRpb247IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0WlBvc2l0aW9uKGZsb2F0KTsKQEAgLTU3Nyw2ICs1ODEsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgSW50U2l6ZSBtX2NvbnRlbnRzVGlsZVNpemU7CiAKICAgICBpbnQgbV9y
ZXBhaW50Q291bnQ7CisgICAgQ3VzdG9tQXBwZWFyYW5jZSBtX2N1c3RvbUFwcGVhcmFuY2U7CiB9
OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDBlYjgyNDkyZTFmNDE0ZTI5MmY4NjhhZGU0OTMxYzc4
ZjAzMjdmNTEuLmM3YTg3NDMxZWYzNjIxNmNhODdhYzFkZWNlNmNmZGY3YjlmNzNkZjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcApAQCAtMTM2NSw2ICsxMzY1LDkgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmNv
bW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhDb21taXRTdGF0ZSYgY29tbWl0U3RhdGUK
ICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkKQog
ICAgICAgICB1cGRhdGVEZWJ1Z0JvcmRlcigpOwogCisgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFu
Z2VzICYgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQpCisgICAgICAgIHVwZGF0ZUN1c3RvbUFwcGVh
cmFuY2UoKTsKKwogICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENoaWxkcmVuQ2hhbmdl
ZCkgewogICAgICAgICB1cGRhdGVTdWJsYXllckxpc3QoKTsKICAgICAgICAgLy8gU3VibGF5ZXJz
IG1heSBzZXQgdGhpcyBmbGFnIGFnYWluLCBzbyBjbGVhciBpdCB0byBhdm9pZCBhbHdheXMgdXBk
YXRpbmcgc3VibGF5ZXJzIGluIGNvbW1pdExheWVyQ2hhbmdlc0FmdGVyU3VibGF5ZXJzKCkuCkBA
IC0yODQzLDYgKzI4NDYsMTEgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRz
U2NhbGUoZmxvYXQgcGFnZVNjYWxlRmFjdG9yKQogICAgICAgICBtX2xheWVyLT5zZXROZWVkc0Rp
c3BsYXkoKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUN1c3RvbUFwcGVhcmFu
Y2UoKQoreworICAgIG1fbGF5ZXItPnVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UobV9jdXN0b21BcHBl
YXJhbmNlKTsKK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldFNob3dEZWJ1Z0JvcmRlcihi
b29sIHNob3dCb3JkZXIpCiB7CiAgICAgaWYgKHNob3dCb3JkZXIgPT0gbV9zaG93RGVidWdCb3Jk
ZXIpCkBAIC0yOTM1LDYgKzI5NDMsMTUgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldERlYnVn
Qm9yZGVyKGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgYm9yZGVyV2lkdGgpCiAgICAgfQogfQog
Cit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q3VzdG9tQXBwZWFyYW5jZShDdXN0b21BcHBlYXJh
bmNlIGN1c3RvbUFwcGVhcmFuY2UpCit7CisgICAgaWYgKGN1c3RvbUFwcGVhcmFuY2UgPT0gbV9j
dXN0b21BcHBlYXJhbmNlKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0xheWVyOjpz
ZXRDdXN0b21BcHBlYXJhbmNlKGN1c3RvbUFwcGVhcmFuY2UpOworICAgIG5vdGVMYXllclByb3Bl
cnR5Q2hhbmdlZChDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCk7Cit9CisKIGJvb2wgR3JhcGhpY3NM
YXllckNBOjpyZXF1aXJlc1RpbGVkTGF5ZXIoZmxvYXQgcGFnZVNjYWxlRmFjdG9yKSBjb25zdAog
ewogICAgIGlmICghbV9kcmF3c0NvbnRlbnQgfHwgIW1fYWxsb3dUaWxlZExheWVyIHx8IG1faXNQ
YWdlVGlsZWRCYWNraW5nTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IDE1ZjA1YzQxM2RiMzA2NDBjMzM4
YmI5OTlkOGRjNDdlNTA3NTU3YmIuLmFjOTMyNmE3ZTIxNDQ0YWM2YTA0YTNlZmY0NWJlMmEwNWQ4
ZGJiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0xMzAsNiArMTMwLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBzZXREZWJ1Z0JhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IGJvcmRlcldpZHRoKTsK
IAorICAgIHZpcnR1YWwgdm9pZCBzZXRDdXN0b21BcHBlYXJhbmNlKEN1c3RvbUFwcGVhcmFuY2Up
OworCiAgICAgdmlydHVhbCB2b2lkIGxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUxheWVyKik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFpbnRhaW5zUGl4ZWxBbGlnbm1lbnQoYm9vbCk7CkBAIC0z
NjYsNiArMzY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVZpc2libGVSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgb2xkVmlzaWJsZVJlY3QpOwogICAgIHZvaWQgdXBkYXRlVGlsZXMoKTsKICAg
ICB2b2lkIHVwZGF0ZUNvbnRlbnRzU2NhbGUoZmxvYXQgcGFnZVNjYWxlRmFjdG9yKTsKKyAgICB2
b2lkIHVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoKTsKICAgICAKICAgICBlbnVtIFN0cnVjdHVyYWxM
YXllclB1cnBvc2UgewogICAgICAgICBOb1N0cnVjdHVyYWxMYXllciA9IDAsCkBAIC00MjIsNyAr
NDI1LDggQEAgcHJpdmF0ZToKICAgICAgICAgRmlsdGVyc0NoYW5nZWQgPSAxIDw8IDI3LAogICAg
ICAgICBUaWxpbmdBcmVhQ2hhbmdlZCA9IDEgPDwgMjgsCiAgICAgICAgIFRpbGVzQWRkZWQgPSAx
IDwgMjksCi0gICAgICAgIERlYnVnSW5kaWNhdG9yc0NoYW5nZWQgPSAxIDw8IDMwCisgICAgICAg
IERlYnVnSW5kaWNhdG9yc0NoYW5nZWQgPSAxIDw8IDMwLAorICAgICAgICBDdXN0b21BcHBlYXJh
bmNlQ2hhbmdlZCA9IDEgPDwgMzEKICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgTGF5ZXJD
aGFuZ2VGbGFnczsKICAgICBlbnVtIFNjaGVkdWxlRmx1c2hPck5vdCB7IFNjaGVkdWxlRmx1c2gs
IERvbnRTY2hlZHVsZUZsdXNoIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IDdiYmQzOWIzOWZkOTVjMGRlOGZh
NDUxOWYzYjc0ZWFhN2Q1Y2QyMzguLjM3NTE2MTA2YzYyZmJkY2Y4ZjU4YmYxZGViMzgwY2VkZGNj
MzJkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L1BsYXRmb3JtQ0FMYXllci5oCkBAIC0xODYsNiArMTg2LDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRDb250ZW50c1NjYWxlKGZsb2F0KSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RWRnZUFudGlhbGlhc2luZ01hc2sodW5zaWduZWQpID0gMDsKKyAgICAKKyAgICB2aXJ0dWFs
IEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZSgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShHcmFwaGljc0xh
eWVyOjpDdXN0b21BcHBlYXJhbmNlKSA9IDA7CiAKICAgICB2aXJ0dWFsIFRpbGVkQmFja2luZyog
dGlsZWRCYWNraW5nKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKaW5kZXggNjA3ZmJl
M2E5YjM1YmMwZTgwZWVjMWY4YWQ4Y2M0MTNjNzIyY2Y3YS4uNzg0OTRlZGM0NGViZWQwZjFhZTY1
OGU3MGUzMjk1ODNlM2M3ZjNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaApAQCAtMTM1LDYg
KzEzNSw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRFZGdlQW50aWFsaWFzaW5n
TWFzayh1bnNpZ25lZCkgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXI6OkN1
c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IG1fY3VzdG9tQXBwZWFyYW5jZTsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDdXN0b21BcHBl
YXJhbmNlKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UpIE9WRVJSSURFOworCiAgICAg
dmlydHVhbCBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIE9WRVJSSURFOwogCiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gY2xvbmUoUGxhdGZvcm1DQUxheWVyQ2xp
ZW50KiBvd25lcikgY29uc3QgT1ZFUlJJREU7CkBAIC0xNDYsOCArMTQ5LDExIEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgUGxhdGZvcm1DQUxheWVyTWFjKExheWVyVHlwZSwgUGxhdGZvcm1MYXll
ciosIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpOwogCisgICAgYm9vbCByZXF1aXJlc0N1
c3RvbUFwcGVhcmFuY2VVcGRhdGVPbkJvdW5kc0NoYW5nZSgpIGNvbnN0OworCiAgICAgUmV0YWlu
UHRyPE5TT2JqZWN0PiBtX2RlbGVnYXRlOwogICAgIE93blB0cjxQbGF0Zm9ybUNBTGF5ZXJMaXN0
PiBtX2N1c3RvbVN1YmxheWVyczsKKyAgICBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNl
IG1fY3VzdG9tQXBwZWFyYW5jZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
TGF5ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxh
dGZvcm1DQUxheWVyTWFjLm1tCmluZGV4IDlhYmI4N2E1ZTJkYTZkZTRhYjY4Mzk4ZjVmMWZjNGY5
NWVhN2RhNzYuLjNlMTNjMzM5ZDI2OGM0ZGQxMmM4ODFkNzFkMTg4Yjk2OWQ1NmU2ZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
TGF5ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FMYXllck1hYy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiR3JhcGhp
Y3NMYXllckNBLmgiCiAjaW1wb3J0ICJMZW5ndGhGdW5jdGlvbnMuaCIKICNpbXBvcnQgIlBsYXRm
b3JtQ0FGaWx0ZXJzLmgiCisjaW1wb3J0ICJTY3JvbGxiYXJUaGVtZU1hYy5oIgogI2ltcG9ydCAi
U29mdExpbmtpbmcuaCIKICNpbXBvcnQgIlRpbGVkQmFja2luZy5oIgogI2ltcG9ydCAiVGlsZUNv
bnRyb2xsZXIuaCIKQEAgLTE3OCw2ICsxNzksNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnRvQ0FGaWx0
ZXJUeXBlKFBsYXRmb3JtQ0FMYXllcjo6RmlsdGVyVHlwZSB0eXBlKQogCiBQbGF0Zm9ybUNBTGF5
ZXJNYWM6OlBsYXRmb3JtQ0FMYXllck1hYyhMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUxh
eWVyKiBsYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKICAgICA6IFBsYXRmb3Jt
Q0FMYXllcihsYXllciA/IExheWVyVHlwZUN1c3RvbSA6IGxheWVyVHlwZSwgb3duZXIpCisgICAg
LCBtX2N1c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6Tm9DdXN0b21BcHBlYXJhbmNlKQog
ewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIGlmIChsYXllcikgewpAQCAt
MjcyLDYgKzI3NCw3IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBQbGF0Zm9ybUNBTGF5
ZXJNYWM6OmNsb25lKFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duCiAjaWYgRU5BQkxFKENTU19G
SUxURVJTKQogICAgIG5ld0xheWVyLT5jb3B5RmlsdGVyc0Zyb20odGhpcyk7CiAjZW5kaWYKKyAg
ICBuZXdMYXllci0+dXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShjdXN0b21BcHBlYXJhbmNlKCkpOwog
CiAgICAgaWYgKHR5cGUgPT0gTGF5ZXJUeXBlQVZQbGF5ZXJMYXllcikgewogICAgICAgICBBU1NF
UlQoW25ld0xheWVyLT5wbGF0Zm9ybUxheWVyKCkgaXNLaW5kT2ZDbGFzczpnZXRBVlBsYXllckxh
eWVyQ2xhc3MoKV0pOwpAQCAtNDUwLDYgKzQ1MywxMCBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1h
Yzo6c2V0Qm91bmRzKGNvbnN0IEZsb2F0UmVjdCYgdmFsdWUpCiB7CiAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0Qm91bmRzOnZhbHVlXTsKKyAg
ICAKKyAgICBpZiAocmVxdWlyZXNDdXN0b21BcHBlYXJhbmNlVXBkYXRlT25Cb3VuZHNDaGFuZ2Uo
KSkKKyAgICAgICAgdXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShtX2N1c3RvbUFwcGVhcmFuY2UpOwor
CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCkBAIC03MjIsNiArNzI5LDI5IEBA
IHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRFZGdlQW50aWFsaWFzaW5nTWFzayh1bnNpZ25l
ZCBtYXNrKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAorYm9vbCBQbGF0Zm9y
bUNBTGF5ZXJNYWM6OnJlcXVpcmVzQ3VzdG9tQXBwZWFyYW5jZVVwZGF0ZU9uQm91bmRzQ2hhbmdl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jdXN0b21BcHBlYXJhbmNlID09IEdyYXBoaWNzTGF5
ZXI6OlNjcm9sbGluZ1NoYWRvdzsKK30KKwordm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnVwZGF0
ZUN1c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSBhcHBlYXJh
bmNlKQoreworICAgIG1fY3VzdG9tQXBwZWFyYW5jZSA9IGFwcGVhcmFuY2U7CisKKyAgICBzd2l0
Y2ggKGFwcGVhcmFuY2UpIHsKKyAgICBjYXNlIEdyYXBoaWNzTGF5ZXI6Ok5vQ3VzdG9tQXBwZWFy
YW5jZToKKyAgICAgICAgU2Nyb2xsYmFyVGhlbWVNYWM6OnJlbW92ZU92ZXJoYW5nQXJlYUJhY2tn
cm91bmQocGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAgU2Nyb2xsYmFyVGhlbWVNYWM6OnJlbW92
ZU92ZXJoYW5nQXJlYVNoYWRvdyhwbGF0Zm9ybUxheWVyKCkpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEdyYXBoaWNzTGF5ZXI6OlNjcm9sbGluZ092ZXJoYW5nOgorICAgICAgICBTY3JvbGxi
YXJUaGVtZU1hYzo6c2V0VXBPdmVyaGFuZ0FyZWFCYWNrZ3JvdW5kKHBsYXRmb3JtTGF5ZXIoKSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgR3JhcGhpY3NMYXllcjo6U2Nyb2xsaW5nU2hhZG93
OgorICAgICAgICBTY3JvbGxiYXJUaGVtZU1hYzo6c2V0VXBPdmVyaGFuZ0FyZWFTaGFkb3cocGxh
dGZvcm1MYXllcigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiBUaWxlZEJhY2tpbmcq
IFBsYXRmb3JtQ0FMYXllck1hYzo6dGlsZWRCYWNraW5nKCkKIHsKICAgICBpZiAoIXVzZXNUaWxl
ZEJhY2tpbmdMYXllcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbGJhclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
YmFyVGhlbWVNYWMuaAppbmRleCAxZTMzYmQ0NDlmOGVmODI2ODQyY2QwODVjMWRkMzA3MGE4N2Q5
NDljLi41M2Q2Y2ZmOWUxNjZhZWRlOTU3ZjJiNjNjZmU0ZTZiYjY0NjBmMjA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaApAQCAtNjQsNiAr
NjQsMTQgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzQ3VycmVudGx5RHJhd2luZ0ludG9M
YXllcigpOwogICAgIHN0YXRpYyB2b2lkIHNldElzQ3VycmVudGx5RHJhd2luZ0ludG9MYXllcihi
b29sKTsKIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgRU5BQkxFKFJVQkJF
Ul9CQU5ESU5HKQorICAgIHN0YXRpYyB2b2lkIHNldFVwT3ZlcmhhbmdBcmVhQmFja2dyb3VuZChD
QUxheWVyICosIGNvbnN0IENvbG9yJiBjdXN0b21CYWNrZ3JvdW5kQ29sb3IgPSBDb2xvcigpKTsK
KyAgICBzdGF0aWMgdm9pZCByZW1vdmVPdmVyaGFuZ0FyZWFCYWNrZ3JvdW5kKENBTGF5ZXIgKik7
CisKKyAgICBzdGF0aWMgdm9pZCBzZXRVcE92ZXJoYW5nQXJlYVNoYWRvdyhDQUxheWVyICopOwor
ICAgIHN0YXRpYyB2b2lkIHJlbW92ZU92ZXJoYW5nQXJlYVNoYWRvdyhDQUxheWVyICopOworI2Vu
ZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgaGFzQnV0dG9ucyhTY3JvbGxiYXJU
aGVtZUNsaWVudCopOwogICAgIHZpcnR1YWwgYm9vbCBoYXNUaHVtYihTY3JvbGxiYXJUaGVtZUNs
aWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJh
clRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1l
TWFjLm1tCmluZGV4IDZiY2QwYmRiNWFmNjZkY2NkNjBjMWNkNjRmZGM3YjU5OTU2MTUwZDIuLjAx
NWRjZDcxMTM4OWFiZWVhZDQzMWIyZmNlOGIwYzYzOTJjODdlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTUzMCwzMyArNTMw
LDUxIEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0dDb2xvclJlZj4gbGluZW5CYWNrZ3JvdW5kQ29sb3Io
KQogICAgIHJldHVybiBhZG9wdENGKENHQ29sb3JDcmVhdGVXaXRoUGF0dGVybihjb2xvclNwYWNl
LmdldCgpLCBwYXR0ZXJuLmdldCgpLCAmYWxwaGEpKTsKIH0KIAotdm9pZCBTY3JvbGxiYXJUaGVt
ZU1hYzo6c2V0VXBPdmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKQordm9pZCBTY3JvbGxiYXJU
aGVtZU1hYzo6c2V0VXBPdmVyaGFuZ0FyZWFCYWNrZ3JvdW5kKENBTGF5ZXIgKmxheWVyLCBjb25z
dCBDb2xvciYgY3VzdG9tQmFja2dyb3VuZENvbG9yKQogewogICAgIHN0YXRpYyBDR0NvbG9yUmVm
IGNhY2hlZExpbmVuQmFja2dyb3VuZENvbG9yID0gbGluZW5CYWNrZ3JvdW5kQ29sb3IoKS5sZWFr
UmVmKCk7CiAgICAgLy8gV2Ugb3BlcmF0ZSBvbiB0aGUgQ0FMYXllciBkaXJlY3RseSBoZXJlLCBz
aW5jZSBHcmFwaGljc0xheWVyIGRvZXNuJ3QgaGF2ZSB0aGUgY29uY2VwdAogICAgIC8vIG9mIHBh
dHRlcm4gaW1hZ2VzLCBhbmQgd2Uga25vdyB0aGF0IFdlYkNvcmUgd29uJ3QgdG91Y2ggdGhpcyBs
YXllci4KLSAgICBncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCkuYmFja2dyb3VuZENvbG9y
ID0gYmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSA/IGNhY2hlZENHQ29sb3IoYmFja2dyb3VuZENv
bG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKSA6IGNhY2hlZExpbmVuQmFja2dyb3VuZENvbG9yOwor
ICAgIGxheWVyLmJhY2tncm91bmRDb2xvciA9IGN1c3RvbUJhY2tncm91bmRDb2xvci5pc1ZhbGlk
KCkgPyBjYWNoZWRDR0NvbG9yKGN1c3RvbUJhY2tncm91bmRDb2xvciwgQ29sb3JTcGFjZURldmlj
ZVJHQikgOiBjYWNoZWRMaW5lbkJhY2tncm91bmRDb2xvcjsKIH0KIAotdm9pZCBTY3JvbGxiYXJU
aGVtZU1hYzo6c2V0VXBDb250ZW50U2hhZG93TGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllcikKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnJlbW92ZU92ZXJoYW5nQXJlYUJhY2tncm91
bmQoQ0FMYXllciAqbGF5ZXIpCiB7Ci0gICAgLy8gV2Ugb3BlcmF0ZSBvbiB0aGUgQ0FMYXllciBk
aXJlY3RseSBoZXJlLCBzaW5jZSBHcmFwaGljc0xheWVyIGRvZXNuJ3QgaGF2ZSB0aGUgY29uY2Vw
dAotICAgIC8vIG9mIHNoYWRvd3MsIGFuZCB3ZSBrbm93IHRoYXQgV2ViQ29yZSB3b24ndCB0b3Vj
aCB0aGlzIGxheWVyLgotICAgIENBTGF5ZXIgKmNvbnRlbnRTaGFkb3dMYXllciA9IGdyYXBoaWNz
TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKTsKKyAgICBsYXllci5iYWNrZ3JvdW5kQ29sb3IgPSBuaWw7
Cit9CiAKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVwT3ZlcmhhbmdBcmVhU2hhZG93KENB
TGF5ZXIgKmxheWVyKQorewogICAgIHN0YXRpYyBjb25zdCBDR0Zsb2F0IHNoYWRvd09wYWNpdHkg
PSAwLjY2OwogICAgIHN0YXRpYyBjb25zdCBDR0Zsb2F0IHNoYWRvd1JhZGl1cyA9IDM7CiAKICAg
ICAvLyBXZSBvbmx5IG5lZWQgdG8gc2V0IHRoZXNlIHNoYWRvdyBwcm9wZXJ0aWVzIG9uY2UuCi0g
ICAgaWYgKCFjb250ZW50U2hhZG93TGF5ZXIuc2hhZG93T3BhY2l0eSkgewotICAgICAgICBjb250
ZW50U2hhZG93TGF5ZXIuc2hhZG93Q29sb3IgPSBDR0NvbG9yR2V0Q29uc3RhbnRDb2xvcihrQ0dD
b2xvckJsYWNrKTsKLSAgICAgICAgY29udGVudFNoYWRvd0xheWVyLnNoYWRvd09mZnNldCA9IENH
U2l6ZVplcm87Ci0gICAgICAgIGNvbnRlbnRTaGFkb3dMYXllci5zaGFkb3dPcGFjaXR5ID0gc2hh
ZG93T3BhY2l0eTsKLSAgICAgICAgY29udGVudFNoYWRvd0xheWVyLnNoYWRvd1JhZGl1cyA9IHNo
YWRvd1JhZGl1czsKKyAgICBpZiAoIWxheWVyLnNoYWRvd09wYWNpdHkpIHsKKyAgICAgICAgbGF5
ZXIuc2hhZG93Q29sb3IgPSBDR0NvbG9yR2V0Q29uc3RhbnRDb2xvcihrQ0dDb2xvckJsYWNrKTsK
KyAgICAgICAgbGF5ZXIuc2hhZG93T2Zmc2V0ID0gQ0dTaXplWmVybzsKKyAgICAgICAgbGF5ZXIu
c2hhZG93T3BhY2l0eSA9IHNoYWRvd09wYWNpdHk7CisgICAgICAgIGxheWVyLnNoYWRvd1JhZGl1
cyA9IHNoYWRvd1JhZGl1czsKICAgICB9CiAKLSAgICBSZXRhaW5QdHI8Q0dQYXRoUmVmPiBzaGFk
b3dQYXRoID0gYWRvcHRDRihDR1BhdGhDcmVhdGVXaXRoUmVjdChDR1JlY3RNYWtlKDAsIDAsIGdy
YXBoaWNzTGF5ZXItPnNpemUoKS53aWR0aCgpLCBncmFwaGljc0xheWVyLT5zaXplKCkuaGVpZ2h0
KCkpLCBOVUxMKSk7Ci0gICAgY29udGVudFNoYWRvd0xheWVyLnNoYWRvd1BhdGggPSBzaGFkb3dQ
YXRoLmdldCgpOworICAgIFJldGFpblB0cjxDR1BhdGhSZWY+IHNoYWRvd1BhdGggPSBhZG9wdENG
KENHUGF0aENyZWF0ZVdpdGhSZWN0KGxheWVyLmJvdW5kcywgTlVMTCkpOworICAgIGxheWVyLnNo
YWRvd1BhdGggPSBzaGFkb3dQYXRoLmdldCgpOworfQorCit2b2lkIFNjcm9sbGJhclRoZW1lTWFj
OjpyZW1vdmVPdmVyaGFuZ0FyZWFTaGFkb3coQ0FMYXllciAqbGF5ZXIpCit7CisgICAgbGF5ZXIu
c2hhZG93UGF0aCA9IG5pbDsKK30KKwordm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6c2V0VXBPdmVy
aGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBjb25z
dCBDb2xvciYgY3VzdG9tQmFja2dyb3VuZENvbG9yKQoreworICAgIFNjcm9sbGJhclRoZW1lTWFj
OjpzZXRVcE92ZXJoYW5nQXJlYUJhY2tncm91bmQoZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXll
cigpLCBjdXN0b21CYWNrZ3JvdW5kQ29sb3IpOworfQorCit2b2lkIFNjcm9sbGJhclRoZW1lTWFj
OjpzZXRVcENvbnRlbnRTaGFkb3dMYXllcihHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQor
eworICAgIC8vIFdlIG9wZXJhdGUgb24gdGhlIENBTGF5ZXIgZGlyZWN0bHkgaGVyZSwgc2luY2Ug
R3JhcGhpY3NMYXllciBkb2Vzbid0IGhhdmUgdGhlIGNvbmNlcHQKKyAgICAvLyBvZiBzaGFkb3dz
LCBhbmQgd2Uga25vdyB0aGF0IFdlYkNvcmUgd29uJ3QgdG91Y2ggdGhpcyBsYXllci4KKyAgICBz
ZXRVcE92ZXJoYW5nQXJlYVNoYWRvdyhncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCkpOwog
fQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAKaW5kZXggMmNiNjcxOTM2MzU2YWQ1NzEyZDg2MmIyMWEzZTU0YzlmYjE4
OTRhMC4uNjFlNDlkYTZiZGEzYjllYjg2MDBiZjRiZmVmZDMyNmIxYzg3MzdiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAg
LTU1LDcgKzU1LDYgQEAKICNpbmNsdWRlICJSZW5kZXJSZXBsaWNhLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVmlkZW8uaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAiU2Nyb2xsYmFy
VGhlbWUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb25zdHJhaW50cy5oIgogI2luY2x1ZGUgIlNj
cm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTE4NDIsMTIg
KzE4NDEsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlUm9vdExheWVyUG9z
aXRpb24oKQogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAobV9jb250ZW50U2hh
ZG93TGF5ZXIpIHsKICAgICAgICAgbV9jb250ZW50U2hhZG93TGF5ZXItPnNldFBvc2l0aW9uKG1f
cm9vdENvbnRlbnRMYXllci0+cG9zaXRpb24oKSk7Ci0KLSAgICAgICAgRmxvYXRTaXplIHJvb3RD
b250ZW50TGF5ZXJTaXplID0gbV9yb290Q29udGVudExheWVyLT5zaXplKCk7Ci0gICAgICAgIGlm
IChtX2NvbnRlbnRTaGFkb3dMYXllci0+c2l6ZSgpICE9IHJvb3RDb250ZW50TGF5ZXJTaXplKSB7
Ci0gICAgICAgICAgICBtX2NvbnRlbnRTaGFkb3dMYXllci0+c2V0U2l6ZShyb290Q29udGVudExh
eWVyU2l6ZSk7Ci0gICAgICAgICAgICBTY3JvbGxiYXJUaGVtZTo6dGhlbWUoKS0+c2V0VXBDb250
ZW50U2hhZG93TGF5ZXIobV9jb250ZW50U2hhZG93TGF5ZXIuZ2V0KCkpOwotICAgICAgICB9Cisg
ICAgICAgIG1fY29udGVudFNoYWRvd0xheWVyLT5zZXRTaXplKG1fcm9vdENvbnRlbnRMYXllci0+
c2l6ZSgpKTsKICAgICB9CiAKICAgICB1cGRhdGVMYXllckZvclRvcE92ZXJoYW5nQXJlYShtX2xh
eWVyRm9yVG9wT3ZlcmhhbmdBcmVhICE9IG51bGxwdHIpOwpAQCAtMjkzMyw4ICsyOTI3LDcgQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMo
KQogI2VuZGlmCiAgICAgICAgICAgICBtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0RHJhd3ND
b250ZW50KGZhbHNlKTsKICAgICAgICAgICAgIG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLT5zZXRT
aXplKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5mcmFtZVJlY3QoKS5zaXplKCkpOwotCi0gICAg
ICAgICAgICBTY3JvbGxiYXJUaGVtZTo6dGhlbWUoKS0+c2V0VXBPdmVyaGFuZ0FyZWFzTGF5ZXJD
b250ZW50cyhtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcy5nZXQoKSwgdGhpcy0+cGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS51bmRlcmxheUNvbG9yKCkpOworICAgICAgICAgICAgbV9sYXllckZvck92
ZXJoYW5nQXJlYXMtPnNldEN1c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6U2Nyb2xsaW5n
T3ZlcmhhbmcpOwogCiAgICAgICAgICAgICAvLyBXZSB3YW50IHRoZSBvdmVyaGFuZyBhcmVhcyBs
YXllciB0byBiZSBwb3NpdGlvbmVkIGJlbG93IHRoZSBmcmFtZSBjb250ZW50cywKICAgICAgICAg
ICAgIC8vIHNvIGluc2VydCBpdCBiZWxvdyB0aGUgY2xpcCBsYXllci4KQEAgLTI5NTMsNyArMjk0
Niw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVPdmVyZmxvd0NvbnRyb2xz
TGF5ZXJzKCkKICNlbmRpZgogICAgICAgICAgICAgbV9jb250ZW50U2hhZG93TGF5ZXItPnNldFNp
emUobV9yb290Q29udGVudExheWVyLT5zaXplKCkpOwogICAgICAgICAgICAgbV9jb250ZW50U2hh
ZG93TGF5ZXItPnNldFBvc2l0aW9uKG1fcm9vdENvbnRlbnRMYXllci0+cG9zaXRpb24oKSk7Ci0g
ICAgICAgICAgICBTY3JvbGxiYXJUaGVtZTo6dGhlbWUoKS0+c2V0VXBDb250ZW50U2hhZG93TGF5
ZXIobV9jb250ZW50U2hhZG93TGF5ZXIuZ2V0KCkpOworICAgICAgICAgICAgbV9jb250ZW50U2hh
ZG93TGF5ZXItPnNldEN1c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6U2Nyb2xsaW5nU2hh
ZG93KTsKIAogICAgICAgICAgICAgbV9zY3JvbGxMYXllci0+YWRkQ2hpbGRCZWxvdyhtX2NvbnRl
bnRTaGFkb3dMYXllci5nZXQoKSwgbV9yb290Q29udGVudExheWVyLmdldCgpKTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQ
cm9wZXJ0eUFwcGxpZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVy
VHJlZVByb3BlcnR5QXBwbGllci5tbQppbmRleCBlYWNkNjM0NThhYzc3YTQ5ZTNlOWY4ZGRjMzg4
NmE1Yjc2NDY0MTU4Li41ZDYzN2U1M2NkMTBiM2FjZjY5ZDRhMjM2NDA2MzdkOWJhMTk4MjhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3Bl
cnR5QXBwbGllci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVy
VHJlZVByb3BlcnR5QXBwbGllci5tbQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL0NBTGF5ZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUGxhdGZvcm1DQUZpbHRlcnMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2Nyb2xs
YmFyVGhlbWVNYWMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU4LDYgKzU5
LDIyIEBAIHN0YXRpYyBOU1N0cmluZyAqdG9DQUZpbHRlclR5cGUoUGxhdGZvcm1DQUxheWVyOjpG
aWx0ZXJUeXBlIHR5cGUpCiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIHVwZGF0ZUN1
c3RvbUFwcGVhcmFuY2UoQ0FMYXllciAqbGF5ZXIsIEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVh
cmFuY2UgY3VzdG9tQXBwZWFyYW5jZSkKK3sKKyAgICBzd2l0Y2ggKGN1c3RvbUFwcGVhcmFuY2Up
IHsKKyAgICBjYXNlIEdyYXBoaWNzTGF5ZXI6Ok5vQ3VzdG9tQXBwZWFyYW5jZToKKyAgICAgICAg
U2Nyb2xsYmFyVGhlbWVNYWM6OnJlbW92ZU92ZXJoYW5nQXJlYUJhY2tncm91bmQobGF5ZXIpOwor
ICAgICAgICBTY3JvbGxiYXJUaGVtZU1hYzo6cmVtb3ZlT3ZlcmhhbmdBcmVhU2hhZG93KGxheWVy
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0xheWVyOjpTY3JvbGxpbmdPdmVy
aGFuZzoKKyAgICAgICAgU2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVwT3ZlcmhhbmdBcmVhQmFja2dy
b3VuZChsYXllcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgR3JhcGhpY3NMYXllcjo6U2Ny
b2xsaW5nU2hhZG93OgorICAgICAgICBTY3JvbGxiYXJUaGVtZU1hYzo6c2V0VXBPdmVyaGFuZ0Fy
ZWFTaGFkb3cobGF5ZXIpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXNUb0xheWVyKENBTGF5ZXIg
KmxheWVyLCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzIHByb3Bl
cnRpZXMsIFJlbGF0ZWRMYXllck1hcCByZWxhdGVkTGF5ZXJzKQogewogICAgIGlmIChwcm9wZXJ0
aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Ok5hbWVD
aGFuZ2VkKQpAQCAtMTYxLDYgKzE3OCw5IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlB
cHBsaWVyOjphcHBseVByb3BlcnRpZXNUb0xheWVyKENBTGF5ZXIgKmxheWVyLCBSZW1vCiAKICAg
ICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpFZGdlQW50aWFsaWFzaW5nTWFza0NoYW5nZWQpCiAgICAgICAgIGxheWVyLmVkZ2VB
bnRpYWxpYXNpbmdNYXNrID0gcHJvcGVydGllcy5lZGdlQW50aWFsaWFzaW5nTWFzazsKKworICAg
IGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb246OkN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkKQorICAgICAgICB1cGRhdGVDdXN0b21BcHBl
YXJhbmNlKGxheWVyLCBwcm9wZXJ0aWVzLmN1c3RvbUFwcGVhcmFuY2UpOwogfQogCiB2b2lkIFJl
bW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6ZGlzYWJsZUFjdGlvbnNGb3JMYXllcihDQUxh
eWVyICpsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAppbmRleCA2OTk1NGUxZTNmZThiOTI2NGU1M2QxMTBkNDZh
OTg4Y2JmYjk1ZWE5Li4wZDM2MGY3OTIzODQ2NzgwM2UyNDMzMzZhNmU3MmU4NmEyY2I3N2YwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5oCkBAIC03Niw3ICs3Niw4IEBAIHB1YmxpYzoKICAgICAgICAgVGltZU9mZnNl
dENoYW5nZWQgPSAxIDw8IDIzLAogICAgICAgICBCYWNraW5nU3RvcmVDaGFuZ2VkID0gMSA8PCAy
NCwKICAgICAgICAgRmlsdGVyc0NoYW5nZWQgPSAxIDw8IDI1LAotICAgICAgICBFZGdlQW50aWFs
aWFzaW5nTWFza0NoYW5nZWQgPSAxIDw8IDI2CisgICAgICAgIEVkZ2VBbnRpYWxpYXNpbmdNYXNr
Q2hhbmdlZCA9IDEgPDwgMjYsCisgICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gMSA8
PCAyNwogICAgIH07CiAKICAgICBzdHJ1Y3QgTGF5ZXJDcmVhdGlvblByb3BlcnRpZXMgewpAQCAt
MTMyLDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUg
YmFja2luZ1N0b3JlOwogICAgICAgICBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zIGZpbHRlcnM7
CiAgICAgICAgIHVuc2lnbmVkIGVkZ2VBbnRpYWxpYXNpbmdNYXNrOworICAgICAgICBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFuY2U7CiAgICAg
fTsKIAogICAgIGV4cGxpY2l0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bi5tbQppbmRleCA3ZTkzOTM1MWYwMDdiODhjMGFiYTdjNTYwNjg0MjE1MWY0MDdmZGQwLi5kZWQ3
MmQ4ZDI0Zjg1M2JhNzg0NTcyMjBmYmVjMjE3MWZhOThjOGYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KQEAg
LTE1NSw2ICsxNTUsOSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclBy
b3BlcnRpZXM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZQogCiAgICAgaWYgKGNoYW5n
ZWRQcm9wZXJ0aWVzICYgRWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkKQogICAgICAgICBlbmNv
ZGVyIDw8IGVkZ2VBbnRpYWxpYXNpbmdNYXNrOworCisgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVz
ICYgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQpCisgICAgICAgIGVuY29kZXIuZW5jb2RlRW51bShj
dXN0b21BcHBlYXJhbmNlKTsKIH0KIAogYm9vbCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6
TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBMYXllclByb3BlcnRpZXMmIHJlc3VsdCkKQEAgLTI5Nyw2ICszMDAsMTEgQEAgYm9vbCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGUKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBp
ZiAocmVzdWx0LmNoYW5nZWRQcm9wZXJ0aWVzICYgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQpIHsK
KyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LmN1c3RvbUFwcGVhcmFuY2Up
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC02MzksNiArNjQ3LDkgQEAgc3RhdGljIHZvaWQgZHVtcENoYW5nZWRMYXllcnMoUmVt
b3RlTGF5ZXJUcmVlVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEhhc2hNYXA8UmVtb3QKICAgICAgICAg
aWYgKGxheWVyUHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpFZGdlQW50aWFsaWFzaW5nTWFza0NoYW5nZWQpCiAgICAgICAgICAgICBkdW1w
UHJvcGVydHk8dW5zaWduZWQ+KHRzLCAiZWRnZUFudGlhbGlhc2luZ01hc2siLCBsYXllclByb3Bl
cnRpZXMuZWRnZUFudGlhbGlhc2luZ01hc2spOwogCisgICAgICAgIGlmIChsYXllclByb3BlcnRp
ZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q3VzdG9t
QXBwZWFyYW5jZUNoYW5nZWQpCisgICAgICAgICAgICBkdW1wUHJvcGVydHk8R3JhcGhpY3NMYXll
cjo6Q3VzdG9tQXBwZWFyYW5jZT4odHMsICJjdXN0b21BcHBlYXJhbmNlIiwgbGF5ZXJQcm9wZXJ0
aWVzLmN1c3RvbUFwcGVhcmFuY2UpOworCiAgICAgICAgIHRzIDw8ICIpIjsKIAogICAgICAgICB0
cy5kZWNyZWFzZUluZGVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IDAy
OTVjNDE1NTc4MTBiNThlMTBkMTJmZmIxMzMwNzc3ZTE4MTA2YWYuLmU3MmRiYmU0YmNlNzM5MTI4
NjAwZGI0YzNjZGI0Y2QwY2U1MGJjZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAK
QEAgLTMwNCw2ICszMDQsOSBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0Qm91bmRz
KGNvbnN0IEZsb2F0UmVjdCYgdmFsdWUpCiB7CiAgICAgbV9wcm9wZXJ0aWVzLnNpemUgPSB2YWx1
ZS5zaXplKCk7CiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6U2l6ZUNoYW5nZWQpOworICAgIAorICAgIGlmIChyZXF1aXJl
c0N1c3RvbUFwcGVhcmFuY2VVcGRhdGVPbkJvdW5kc0NoYW5nZSgpKQorICAgICAgICBtX3Byb3Bl
cnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpD
dXN0b21BcHBlYXJhbmNlQ2hhbmdlZCk7CiAKICAgICBlbnN1cmVCYWNraW5nU3RvcmUoKTsKIH0K
QEAgLTUxMyw2ICs1MTYsMjIgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldEVkZ2VB
bnRpYWxpYXNpbmdNYXNrKHVuc2lnbmVkIHZhbHVlKQogICAgIG1fcHJvcGVydGllcy5ub3RlUHJv
cGVydGllc0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkVkZ2VBbnRpYWxpYXNp
bmdNYXNrQ2hhbmdlZCk7CiB9CiAKK2Jvb2wgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZXF1aXJl
c0N1c3RvbUFwcGVhcmFuY2VVcGRhdGVPbkJvdW5kc0NoYW5nZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJvcGVydGllcy5jdXN0b21BcHBlYXJhbmNlID09IEdyYXBoaWNzTGF5ZXI6OlNjcm9s
bGluZ1NoYWRvdzsKK30KKworV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5j
ZSBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmN1c3RvbUFwcGVhcmFuY2UoKSBjb25zdAoreworICAg
IHJldHVybiBtX3Byb3BlcnRpZXMuY3VzdG9tQXBwZWFyYW5jZTsKK30KKwordm9pZCBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGU6OnVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6Q3VzdG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJhbmNlKQoreworICAgIG1fcHJvcGVy
dGllcy5jdXN0b21BcHBlYXJhbmNlID0gY3VzdG9tQXBwZWFyYW5jZTsKKyAgICBtX3Byb3BlcnRp
ZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDdXN0
b21BcHBlYXJhbmNlQ2hhbmdlZCk7Cit9CisKIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNyZWF0ZUNvbXBhdGlibGVMYXllcihQbGF0Zm9ybUNBTGF5
ZXI6OkxheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogY2xpZW50KSBj
b25zdAogewogICAgIHJldHVybiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNyZWF0ZShsYXllclR5
cGUsIGNsaWVudCwgbV9jb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCmluZGV4IDhj
YjA0NzBhZWMzN2Y1YWRiZTJlMmZmODM2YjZhMDJhODU1OGEwNTYuLmFmMzkzYmUzYmY4NGIxNDc0
OWFhNDA3M2U3YTUwOTBmOGYyOWJlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaApAQCAt
MTQwLDYgKzE0MCw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRFZGdlQW50aWFs
aWFzaW5nTWFzayh1bnNpZ25lZCkgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZSgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDdXN0b21BcHBlYXJhbmNlKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UpIE9WRVJSSURFOworCiAgICAgdmlydHVh
bCBXZWJDb3JlOjpUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIE9WRVJSSURFIHsgcmV0dXJu
IG51bGxwdHI7IH0KIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXI+IGNsb25lKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpIGNvbnN0
IE9WRVJSSURFOwpAQCAtMTU3LDYgKzE2MCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbnN1cmVC
YWNraW5nU3RvcmUoKTsKICAgICB2b2lkIHJlbW92ZVN1YmxheWVyKFBsYXRmb3JtQ0FMYXllclJl
bW90ZSopOwogCisgICAgYm9vbCByZXF1aXJlc0N1c3RvbUFwcGVhcmFuY2VVcGRhdGVPbkJvdW5k
c0NoYW5nZSgpIGNvbnN0OworCiAgICAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVy
SUQgbV9sYXllcklEOwogICAgIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3Bl
cnRpZXMgbV9wcm9wZXJ0aWVzOwogICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxpc3QgbV9j
aGlsZHJlbjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219359</attachid>
            <date>2013-12-16 15:21:07 -0800</date>
            <delta_ts>2013-12-16 15:28:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125807-20131216152108.patch</filename>
            <type>text/plain</type>
            <size>33563</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwNjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDJjNWI4ZDkwNzNhZWM1
MTdhZDJjMjhmMzJhY2FmZGYyZTk0NjIxNi4uMTc5MWE5ZTg4MmJiMWE5Mjc2ZWRlY2Q4YWUyYzFh
Yjg2MmU1YmZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU3IEBACiAyMDEzLTEyLTE2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEFwcGx5IG92ZXJo
YW5nIHNoYWRvdyBhbmQgbGluZW4gdG8gVUktc2lkZSBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTgwNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV2l0aCBVSS1zaWRlIGNvbXBv
c2l0aW5nLCB3ZSBuZWVkIHRvIGFwcGx5IHRoZSBvdmVyaGFuZyBzaGFkb3cgYW5kIGxpbmVuCisg
ICAgICAgIGJhY2tncm91bmQgdG8gbGF5ZXJzIGluIHRoZSBVSSBwcm9jZXNzLiBBY2hpZXZlIHRo
aXMgYnkgc2V0dGluZyBhICJjdXN0b20KKyAgICAgICAgYXBwZWFyYW5jZSIgZmxhZyBvbiBsYXll
cnMgdGhhdCBuZWVkIGEgc2hhZG93IG9yIGxpbmVuIGJhY2tncm91bmQsIGFuZAorICAgICAgICBt
aWdyYXRpbmcgdGhpcyBmbGFnIHRvIHRoZSBVSSBwcm9jZXNzLiBTdGF0aWMgZnVuY3Rpb25zIG9u
IFNjcm9sbGJhclRoZW1lTWFjCisgICAgICAgIGFyZSBleHBvc2VkIHRvIGRvIHRoZSBhY3R1YWwg
c2V0dGluZy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvcnQgU2Nyb2xsYmFyVGhl
bWVNYWMgYW5kIEdyYXBoaWNzTGF5ZXJDQSBmdW5jdGlvbnMuCisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBTY3JvbGxiYXJUaGVtZU1hYy5oIGFuZCBTY3JvbGxi
YXJUaGVtZUNvbXBvc2l0ZS5oCisgICAgICAgIG5lZWQgdG8gYmUgUHJpdmF0ZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDogSW5pdGlhbGl6ZSBtX2N1c3Rv
bUFwcGVhcmFuY2UuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpHcmFwaGljc0xh
eWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6IEdldHRl
ci9zZXR0ZXIgZm9yIEN1c3RvbUFwcGVhcmFuY2UuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyOjpzZXRDdXN0b21BcHBlYXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXI6OmN1c3RvbUFwcGVhcmFuY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5jcHA6IFVwZGF0ZSBDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCBhcwor
ICAgICAgICB3ZSBkbyBvdGhlciBwcm9wZXJ0aWVzLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJsYXllcnMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVDdXN0b21BcHBlYXJhbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q3VzdG9tQXBwZWFyYW5jZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06IFdoZW4gd2UgaGF2ZSBh
IGN1c3RvbQorICAgICAgICBhcHBlYXJhbmNlLCB1c2UgU2Nyb2xsYmFyVGhlbWVNYWMgZnVuY3Rp
b25zIHRvIHVwZGF0ZSB0aGUgbGF5ZXIuIEVuc3VyZQorICAgICAgICB0aGF0IGlmIHRoZSBib3Vu
ZHMgY2hhbmdlLCB3ZSB1cGRhdGUgdGhlIHNoYWRvdyAod2hvc2UgcGF0aCBkZXBlbmRzIG9uIHRo
ZSBib3VuZHMpLgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyTWFjOjpQbGF0Zm9ybUNBTGF5ZXJN
YWMpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyTWFjOjpjbG9uZSk6CisgICAgICAgIChQbGF0
Zm9ybUNBTGF5ZXJNYWM6OnNldEJvdW5kcyk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJNYWM6
OnJlcXVpcmVzQ3VzdG9tQXBwZWFyYW5jZVVwZGF0ZU9uQm91bmRzQ2hhbmdlKToKKyAgICAgICAg
KFBsYXRmb3JtQ0FMYXllck1hYzo6dXBkYXRlQ3VzdG9tQXBwZWFyYW5jZSk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmg6IEV4cG9ydCBzb21lIHN0YXRpYyBmdW5j
dGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOiBDaGFu
Z2UgY29kZSB0byB1c2Ugc3RhdGljIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGJhclRoZW1lTWFjOjpzZXRVcE92ZXJoYW5nQXJlYUJhY2tncm91bmQpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OnJlbW92ZU92ZXJoYW5nQXJlYUJhY2tncm91bmQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVwT3ZlcmhhbmdBcmVhU2hh
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjOjpyZW1vdmVPdmVyaGFu
Z0FyZWFTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVw
T3ZlcmhhbmdBcmVhc0xheWVyQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFy
VGhlbWVNYWM6OnNldFVwQ29udGVudFNoYWRvd0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlUm9vdExheWVyUG9zaXRpb24pOiBObyBuZWVkIHRvIGNhbGwKKyAg
ICAgICAgc2V0VXBDb250ZW50U2hhZG93TGF5ZXIoKSBub3cgd2hlbiBzaXplIGNoYW5nZXM7IFBs
YXRmb3JtQ0FMYXllciB0YWtlcworICAgICAgICBjYXJlIG9mIHRoYXQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMp
OiBOb3cgc2V0CisgICAgICAgIGN1c3RvbSBhcHBlYXJhbmNlIHZpYSBHcmFwaGljc0xheWVyLgor
CisyMDEzLTEyLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAg
ICAgICAgIFBhY2thZ2UgdXAgc29tZSBkYXRhIGFib3V0IHNjcm9sbGFiaWxpdHkgaW50byBhIHN0
cnVjdCBmb3IgdXNlIGluIHRoZSBzY3JvbGxpbmcgdHJlZQogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NzkyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5MjEwNTE4
ZjZkM2VjYTNlOTk5MjBlOWQ5MGZiYWU2ZDhlMjFjNDhiLi44OTkwZDVlZDBhY2ZlOTAyNjliOWVi
M2QxNTUyZDNjNGVhYWI5MDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTMtMTIt
MTYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQXBw
bHkgb3Zlcmhhbmcgc2hhZG93IGFuZCBsaW5lbiB0byBVSS1zaWRlIGxheWVycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1ODA3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2l0aCBVSS1zaWRlIGNvbXBv
c2l0aW5nLCB3ZSBuZWVkIHRvIGFwcGx5IHRoZSBvdmVyaGFuZyBzaGFkb3cgYW5kIGxpbmVuCisg
ICAgICAgIGJhY2tncm91bmQgdG8gbGF5ZXJzIGluIHRoZSBVSSBwcm9jZXNzLiBBY2hpZXZlIHRo
aXMgYnkgc2V0dGluZyBhICJjdXN0b20KKyAgICAgICAgYXBwZWFyYW5jZSIgZmxhZyBvbiBsYXll
cnMgdGhhdCBuZWVkIGEgc2hhZG93IG9yIGxpbmVuIGJhY2tncm91bmQsIGFuZAorICAgICAgICBt
aWdyYXRpbmcgdGhpcyBmbGFnIHRvIHRoZSBVSSBwcm9jZXNzLiBTdGF0aWMgZnVuY3Rpb25zIG9u
IFNjcm9sbGJhclRoZW1lTWFjCisgICAgICAgIGFyZSBleHBvc2VkIHRvIGRvIHRoZSBhY3R1YWwg
c2V0dGluZy4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlB
cHBsaWVyLm1tOgorICAgICAgICAoV2ViS2l0Ojp1cGRhdGVDdXN0b21BcHBlYXJhbmNlKTogVXNl
IFNjcm9sbGJhclRoZW1lTWFjIHRvIHVwZGF0ZSB0aGUKKyAgICAgICAgYXBwZWFyYW5jZS4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3Bl
cnRpZXNUb0xheWVyKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVy
UHJvcGVydGllczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVt
cENoYW5nZWRMYXllcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0
Qm91bmRzKTogSWYgdGhlIGJvdW5kcyBjaGFuZ2UsIGFsc28gc2V0IHRoZQorICAgICAgICBDdXN0
b21BcHBlYXJhbmNlQ2hhbmdlZCBiaXQgc28gdGhhdCB0aGUgVUkgc2lkZSB1cGRhdGVzIHRoZSBz
aGFkb3cgYm91bmRzCisgICAgICAgIChkb25lIGhlcmUgYmVjYXVzZSB0aGUgVUkgc2lkZSBpcyBu
b3Qgc3RhdGVmdWwpLgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZXF1aXJlc0N1
c3RvbUFwcGVhcmFuY2VVcGRhdGVPbkJvdW5kc0NoYW5nZSk6CisgICAgICAgIChQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGU6OmN1c3RvbUFwcGVhcmFuY2UpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVy
UmVtb3RlOjp1cGRhdGVDdXN0b21BcHBlYXJhbmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oOgorCiAyMDEzLTEyLTE2ICBNaWNoYcWC
IFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgRml4
IGJ1aWxkIHdhcm5pbmcgaW4gZmlsZXMgaW5jbHVkaW5nIERyYXdpbmdBcmVhUHJveHkuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgppbmRleCA4NGJkMjA2MDMzY2Q4NjU1ZTkxNGMzODI5MWQxNGFlMDY2Y2Q5
YTE1Li45YTFlMDdlZjk3ZTVjYzRmMDU0YzUyZmFhNmFlOTdiNDQ0ZmMzODA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgpAQCAtNDAzLDYgKzQwMywxMCBAQCBfX1pON1dlYkNvcmUxNFNjcm9sbGFibGVB
cmVhNnNjcm9sbEVOU18xNVNjcm9sbERpcmVjdGlvbkVOU18xN1Njcm9sbEdyYW51bGFyaXR5RQog
X19aTjdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYUMyRXYKIF9fWk43V2ViQ29yZTE0U2Nyb2xsYWJs
ZUFyZWFEMkV2CiBfX1pON1dlYkNvcmUxNFNjcm9sbGJhclRoZW1lNXRoZW1lRXYKK19fWk43V2Vi
Q29yZTE3U2Nyb2xsYmFyVGhlbWVNYWMyOHJlbW92ZU92ZXJoYW5nQXJlYUJhY2tncm91bmRFUDdD
QUxheWVyCitfX1pON1dlYkNvcmUxN1Njcm9sbGJhclRoZW1lTWFjMjRyZW1vdmVPdmVyaGFuZ0Fy
ZWFTaGFkb3dFUDdDQUxheWVyCitfX1pON1dlYkNvcmUxN1Njcm9sbGJhclRoZW1lTWFjMjdzZXRV
cE92ZXJoYW5nQXJlYUJhY2tncm91bmRFUDdDQUxheWVyUktOU181Q29sb3JFCitfX1pON1dlYkNv
cmUxN1Njcm9sbGJhclRoZW1lTWFjMjNzZXRVcE92ZXJoYW5nQXJlYVNoYWRvd0VQN0NBTGF5ZXIK
IF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4xNmNyZWF0ZUZyb21TdHJpbmdFUktOM1dURjZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjhjcmVhdGVGcm9tRGF0YWJhc2VJ
ZGVudGlmaWVyRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjZj
cmVhdGVFUktOM1dURjZTdHJpbmdFUzRfaQpAQCAtNTY2LDYgKzU3MCw3IEBAIF9fWk43V2ViQ29y
ZTE1R3JhcGhpY3NMYXllckNBN3NldFNpemVFUktOU185RmxvYXRTaXplRQogX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0xheWVyQ0E4YWRkQ2hpbGRFUE5TXzEzR3JhcGhpY3NMYXllckUKIF9fWk43V2Vi
Q29yZTE1R3JhcGhpY3NMYXllckNBQzJFUE5TXzE5R3JhcGhpY3NMYXllckNsaWVudEUKIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBRDJFdgorX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVy
Q0ExOXNldEN1c3RvbUFwcGVhcmFuY2VFTlNfMTNHcmFwaGljc0xheWVyMTZDdXN0b21BcHBlYXJh
bmNlRQogX19aTjdXZWJDb3JlMTVIaXRUZXN0TG9jYXRpb24xMnJlY3RGb3JQb2ludEVSS05TXzEx
TGF5b3V0UG9pbnRFampqagogX19aTjdXZWJDb3JlMTVKU0RPTVdpbmRvd0Jhc2U4Y29tbW9uVk1F
dgogX19aTjdXZWJDb3JlMTVQYXN0ZWJvYXJkSW1hZ2VDMUV2CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzNmNzYxNDgzMTVkODQ4
ZTdiN2RkOWJlMjAxMGE4ZmRjNDQ2MGI0OS4uYmMxYmU1MTNjYmQ3Y2I4M2FjZDllYTllZmVlYzFj
ZTNlOTBmZWExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNDc1NCw3ICs0NzU0LDcgQEAKIAkJQkMxMjhBNzMxMzdDODY3QzAw
Q0FDODQ1IC8qIFJlbmRlckdyaWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMTI4QTcyMTM3Qzg2N0MwMENBQzg0NSAvKiBSZW5kZXJHcmlkLmggKi87
IH07CiAJCUJDMTI4QjAxMTM3QzhENDYwMENBQzg0NSAvKiBSZW5kZXJHcmlkLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTI4QjAwMTM3QzhENDYw
MENBQzg0NSAvKiBSZW5kZXJHcmlkLmNwcCAqLzsgfTsKIAkJQkMxNDAyOEEwRTgzNjgwODAwMzE5
NzE3IC8qIFNjcm9sbGJhclRoZW1lQ29tcG9zaXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTQwMjg4MEU4MzY4MDgwMDMxOTcxNyAvKiBTY3Jv
bGxiYXJUaGVtZUNvbXBvc2l0ZS5jcHAgKi87IH07Ci0JCUJDMTQwMjhCMEU4MzY4MDgwMDMxOTcx
NyAvKiBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNDAyODkwRTgzNjgwODAwMzE5NzE3IC8qIFNjcm9sbGJh
clRoZW1lQ29tcG9zaXRlLmggKi87IH07CisJCUJDMTQwMjhCMEU4MzY4MDgwMDMxOTcxNyAvKiBT
Y3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMxNDAyODkwRTgzNjgwODAwMzE5NzE3IC8qIFNjcm9sbGJhclRoZW1l
Q29tcG9zaXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQkMxN0Y5NjYwQjY0RUJCODAwNEE2NUNCIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMx
N0Y5NjUwQjY0RUJCODAwNEE2NUNCIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwICov
OyB9OwogCQlCQzFBMzdBRDA5N0M3MTVGMDAxOUYzRDggLyogRE9NLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFBMzc5NzA5N0M3MTVGMDAxOUYzRDgg
LyogRE9NLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkMxQTM3QUUwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUEzNzk4MDk3QzcxNUYwMDE5RjNEOCAvKiBE
T00ubW0gKi87IH07CkBAIC00OTc2LDcgKzQ5NzYsNyBAQAogCQlCQzg1RjIzRDE1MTkxNUUwMDBC
QzE3QkUgLyogUmVuZGVyTmFtZWRGbG93VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzg1RjIzQzE1MTkxNUUwMDBCQzE3QkUgLyogUmVuZGVy
TmFtZWRGbG93VGhyZWFkLmggKi87IH07CiAJCUJDOEFFMzRFMTJFQTA5NkEwMEVCM0FFNiAvKiBT
Y3JvbGxhYmxlQXJlYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzhBRTM0QzEyRUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuY3BwICov
OyB9OwogCQlCQzhBRTM0RjEyRUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOEFFMzREMTJFQTA5
NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDOEI4NTNFMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3Jv
bGxiYXJUaGVtZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM4Qjg1M0MwRTdDN0YxMTAwQUI2OTg0IC8qIFNjcm9sbGJhclRoZW1lTWFjLmggKi87
IH07CisJCUJDOEI4NTNFMEU3QzdGMTEwMEFCNjk4NCAvKiBTY3JvbGxiYXJUaGVtZU1hYy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4Qjg1M0MwRTdD
N0YxMTAwQUI2OTg0IC8qIFNjcm9sbGJhclRoZW1lTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM4Qjg1NEIwRTdDN0Y1NjAwQUI2OTg0IC8q
IFNjcm9sbGJhclRoZW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzhCODU0QTBFN0M3RjU2MDBBQjY5ODQgLyogU2Nyb2xsYmFyVGhlbWUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzhCRjE1MTEw
NTgxM0JGMDBBNDBBMDcgLyogVXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOEJGMTUwMTA1ODEzQkYwMEE0MEEwNyAvKiBVc2Vy
U3R5bGVTaGVldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUJDOEJGMTVBMTA1ODE0MTgwMEE0MEEwNyAvKiBVc2VyU3R5bGVTaGVldFR5cGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzhCRjE1OTEw
NTgxNDE4MDBBNDBBMDcgLyogVXNlclN0eWxlU2hlZXRUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDA4Njc0NzA3MGIxZTA1YzRk
NTZjN2MxODQyZjRjMTM5MWYyZWZiZTMuLjJmN2RlNWVhY2NhMTQ4MzBiNzdlOWY5MGVhZjcwODFj
OGNmOThkMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwCkBAIC05Nyw2ICs5Nyw3IEBAIEdyYXBoaWNzTGF5ZXI6OkdyYXBoaWNz
TGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogICAgICwgbV9yZXBsaWNhTGF5ZXIo
MCkKICAgICAsIG1fcmVwbGljYXRlZExheWVyKDApCiAgICAgLCBtX3JlcGFpbnRDb3VudCgwKQor
ICAgICwgbV9jdXN0b21BcHBlYXJhbmNlKE5vQ3VzdG9tQXBwZWFyYW5jZSkKIHsKICNpZm5kZWYg
TkRFQlVHCiAgICAgaWYgKG1fY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDc5YzBkNzg0NDE4NzJkZDVmYTgwNGI5MDJl
MzhmMDA5YmFiZDZkOGQuLjZiNjgxNDVlMTJjOWZmMzViNDMyZjVmYjZmM2E2YzY4MjZmMDIwMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmgKQEAgLTQyMSw2ICs0MjEsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1
Z0JhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRE
ZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IC8qYm9yZGVyV2lkdGgqLykgeyB9CiAKKyAg
ICBlbnVtIEN1c3RvbUFwcGVhcmFuY2UgeyBOb0N1c3RvbUFwcGVhcmFuY2UsIFNjcm9sbGluZ092
ZXJoYW5nLCBTY3JvbGxpbmdTaGFkb3cgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VzdG9tQXBw
ZWFyYW5jZShDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFuY2UpIHsgbV9jdXN0b21BcHBl
YXJhbmNlID0gY3VzdG9tQXBwZWFyYW5jZTsgfQorICAgIEN1c3RvbUFwcGVhcmFuY2UgY3VzdG9t
QXBwZWFyYW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tQXBwZWFyYW5jZTsgfQorCiAgICAg
Ly8gei1wb3NpdGlvbiBpcyB0aGUgei1lcXVpdmFsZW50IG9mIHBvc2l0aW9uKCkuIEl0J3Mgb25s
eSB1c2VkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCiAgICAgdmlydHVhbCBmbG9hdCB6UG9zaXRp
b24oKSBjb25zdCB7IHJldHVybiBtX3pQb3NpdGlvbjsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRa
UG9zaXRpb24oZmxvYXQpOwpAQCAtNTc3LDYgKzU4MSw3IEBAIHByb3RlY3RlZDoKICAgICBJbnRT
aXplIG1fY29udGVudHNUaWxlU2l6ZTsKIAogICAgIGludCBtX3JlcGFpbnRDb3VudDsKKyAgICBD
dXN0b21BcHBlYXJhbmNlIG1fY3VzdG9tQXBwZWFyYW5jZTsKIH07CiAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAK
aW5kZXggMGViODI0OTJlMWY0MTRlMjkyZjg2OGFkZTQ5MzFjNzhmMDMyN2Y1MS4uYzdhODc0MzFl
ZjM2MjE2Y2E4N2FjMWRlY2U2Y2ZkZjdiOWY3M2RmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0xMzY1
LDYgKzEzNjUsOSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2VzQmVm
b3JlU3VibGF5ZXJzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZQogICAgIGlmIChtX3VuY29tbWl0
dGVkQ2hhbmdlcyAmIERlYnVnSW5kaWNhdG9yc0NoYW5nZWQpCiAgICAgICAgIHVwZGF0ZURlYnVn
Qm9yZGVyKCk7CiAKKyAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDdXN0b21BcHBlYXJh
bmNlQ2hhbmdlZCkKKyAgICAgICAgdXBkYXRlQ3VzdG9tQXBwZWFyYW5jZSgpOworCiAgICAgaWYg
KG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ2hpbGRyZW5DaGFuZ2VkKSB7CiAgICAgICAgIHVwZGF0
ZVN1YmxheWVyTGlzdCgpOwogICAgICAgICAvLyBTdWJsYXllcnMgbWF5IHNldCB0aGlzIGZsYWcg
YWdhaW4sIHNvIGNsZWFyIGl0IHRvIGF2b2lkIGFsd2F5cyB1cGRhdGluZyBzdWJsYXllcnMgaW4g
Y29tbWl0TGF5ZXJDaGFuZ2VzQWZ0ZXJTdWJsYXllcnMoKS4KQEAgLTI4NDMsNiArMjg0NiwxMSBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNTY2FsZShmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IpCiAgICAgICAgIG1fbGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogfQogCit2b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ3VzdG9tQXBwZWFyYW5jZSgpCit7CisgICAgbV9sYXll
ci0+dXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShtX2N1c3RvbUFwcGVhcmFuY2UpOworfQorCiB2b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wgc2hvd0JvcmRlcikKIHsK
ICAgICBpZiAoc2hvd0JvcmRlciA9PSBtX3Nob3dEZWJ1Z0JvcmRlcikKQEAgLTI5MzUsNiArMjk0
MywxNSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3Im
IGNvbG9yLCBmbG9hdCBib3JkZXJXaWR0aCkKICAgICB9CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXll
ckNBOjpzZXRDdXN0b21BcHBlYXJhbmNlKEN1c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5j
ZSkKK3sKKyAgICBpZiAoY3VzdG9tQXBwZWFyYW5jZSA9PSBtX2N1c3RvbUFwcGVhcmFuY2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNldEN1c3RvbUFwcGVhcmFuY2Uo
Y3VzdG9tQXBwZWFyYW5jZSk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKEN1c3RvbUFw
cGVhcmFuY2VDaGFuZ2VkKTsKK30KKwogYm9vbCBHcmFwaGljc0xheWVyQ0E6OnJlcXVpcmVzVGls
ZWRMYXllcihmbG9hdCBwYWdlU2NhbGVGYWN0b3IpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2RyYXdz
Q29udGVudCB8fCAhbV9hbGxvd1RpbGVkTGF5ZXIgfHwgbV9pc1BhZ2VUaWxlZEJhY2tpbmdMYXll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmgKaW5kZXggMTVmMDVjNDEzZGIzMDY0MGMzMzhiYjk5OWQ4ZGM0N2U1MDc1NTdi
Yi4uYWM5MzI2YTdlMjE0NDRhYzZhMDRhM2VmZjQ1YmUyYTA1ZDhkYmJlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgK
QEAgLTEzMCw2ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQmFj
a2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQm9y
ZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgpOwogCisgICAgdmlydHVhbCB2b2lk
IHNldEN1c3RvbUFwcGVhcmFuY2UoQ3VzdG9tQXBwZWFyYW5jZSk7CisKICAgICB2aXJ0dWFsIHZv
aWQgbGF5ZXJEaWREaXNwbGF5KFBsYXRmb3JtTGF5ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXRNYWludGFpbnNQaXhlbEFsaWdubWVudChib29sKTsKQEAgLTM2Niw2ICszNjgsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgdXBkYXRlVmlzaWJsZVJlY3QoY29uc3QgRmxvYXRSZWN0JiBvbGRWaXNp
YmxlUmVjdCk7CiAgICAgdm9pZCB1cGRhdGVUaWxlcygpOwogICAgIHZvaWQgdXBkYXRlQ29udGVu
dHNTY2FsZShmbG9hdCBwYWdlU2NhbGVGYWN0b3IpOworICAgIHZvaWQgdXBkYXRlQ3VzdG9tQXBw
ZWFyYW5jZSgpOwogICAgIAogICAgIGVudW0gU3RydWN0dXJhbExheWVyUHVycG9zZSB7CiAgICAg
ICAgIE5vU3RydWN0dXJhbExheWVyID0gMCwKQEAgLTQyMiw3ICs0MjUsOCBAQCBwcml2YXRlOgog
ICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDEgPDwgMjcsCiAgICAgICAgIFRpbGluZ0FyZWFDaGFu
Z2VkID0gMSA8PCAyOCwKICAgICAgICAgVGlsZXNBZGRlZCA9IDEgPCAyOSwKLSAgICAgICAgRGVi
dWdJbmRpY2F0b3JzQ2hhbmdlZCA9IDEgPDwgMzAKKyAgICAgICAgRGVidWdJbmRpY2F0b3JzQ2hh
bmdlZCA9IDEgPDwgMzAsCisgICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gMSA8PCAz
MQogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBMYXllckNoYW5nZUZsYWdzOwogICAgIGVu
dW0gU2NoZWR1bGVGbHVzaE9yTm90IHsgU2NoZWR1bGVGbHVzaCwgRG9udFNjaGVkdWxlRmx1c2gg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRm
b3JtQ0FMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZv
cm1DQUxheWVyLmgKaW5kZXggN2JiZDM5YjM5ZmQ5NWMwZGU4ZmE0NTE5ZjNiNzRlYWE3ZDVjZDIz
OC4uMzc1MTYxMDZjNjJmYmRjZjhmNThiZjFkZWIzODBjZWRkY2MzMmRkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgK
QEAgLTE4Niw2ICsxODYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
U2NhbGUoZmxvYXQpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRFZGdlQW50aWFsaWFzaW5n
TWFzayh1bnNpZ25lZCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllcjo6Q3Vz
dG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJhbmNlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVDdXN0b21BcHBlYXJhbmNlKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFu
Y2UpID0gMDsKIAogICAgIHZpcnR1YWwgVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcoKSA9IDA7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaAppbmRleCA2MDdmYmUzYTliMzViYzBlODBlZWMxZjhh
ZDhjYzQxM2M3MjJjZjdhLi43ODQ5NGVkYzQ0ZWJlZDBmMWFlNjU4ZTcwZTMyOTU4M2UzYzdmM2Iz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxh
dGZvcm1DQUxheWVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCkBAIC0xMzUsNiArMTM1LDkgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIHNldEVkZ2VBbnRpYWxpYXNpbmdNYXNrKHVuc2lnbmVkKSBPVkVS
UklERTsKIAorICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSBjdXN0
b21BcHBlYXJhbmNlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9jdXN0b21BcHBlYXJhbmNl
OyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXll
cjo6Q3VzdG9tQXBwZWFyYW5jZSkgT1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIFRpbGVkQmFja2lu
ZyogdGlsZWRCYWNraW5nKCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxh
dGZvcm1DQUxheWVyPiBjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKSBjb25zdCBP
VkVSUklERTsKQEAgLTE0Niw4ICsxNDksMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBQbGF0
Zm9ybUNBTGF5ZXJNYWMoTGF5ZXJUeXBlLCBQbGF0Zm9ybUxheWVyKiwgUGxhdGZvcm1DQUxheWVy
Q2xpZW50KiBvd25lcik7CiAKKyAgICBib29sIHJlcXVpcmVzQ3VzdG9tQXBwZWFyYW5jZVVwZGF0
ZU9uQm91bmRzQ2hhbmdlKCkgY29uc3Q7CisKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fZGVs
ZWdhdGU7CiAgICAgT3duUHRyPFBsYXRmb3JtQ0FMYXllckxpc3Q+IG1fY3VzdG9tU3VibGF5ZXJz
OworICAgIEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgbV9jdXN0b21BcHBlYXJhbmNl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0K
aW5kZXggOWFiYjg3YTVlMmRhNmRlNGFiNjgzOThmNWYxZmM0Zjk1ZWE3ZGE3Ni4uM2UxM2MzMzlk
MjY4YzRkZDEyYzg4MWQ3MWQxODhiOTY5ZDU2ZTZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFj
Lm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJHcmFwaGljc0xheWVyQ0EuaCIKICNpbXBv
cnQgIkxlbmd0aEZ1bmN0aW9ucy5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUZpbHRlcnMuaCIKKyNp
bXBvcnQgIlNjcm9sbGJhclRoZW1lTWFjLmgiCiAjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgogI2lt
cG9ydCAiVGlsZWRCYWNraW5nLmgiCiAjaW1wb3J0ICJUaWxlQ29udHJvbGxlci5oIgpAQCAtMTc4
LDYgKzE3OSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqdG9DQUZpbHRlclR5cGUoUGxhdGZvcm1DQUxh
eWVyOjpGaWx0ZXJUeXBlIHR5cGUpCiAKIFBsYXRmb3JtQ0FMYXllck1hYzo6UGxhdGZvcm1DQUxh
eWVyTWFjKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtTGF5ZXIqIGxheWVyLCBQbGF0Zm9y
bUNBTGF5ZXJDbGllbnQqIG93bmVyKQogICAgIDogUGxhdGZvcm1DQUxheWVyKGxheWVyID8gTGF5
ZXJUeXBlQ3VzdG9tIDogbGF5ZXJUeXBlLCBvd25lcikKKyAgICAsIG1fY3VzdG9tQXBwZWFyYW5j
ZShHcmFwaGljc0xheWVyOjpOb0N1c3RvbUFwcGVhcmFuY2UpCiB7CiAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiAgICAgaWYgKGxheWVyKSB7CkBAIC0yNzIsNiArMjc0LDcgQEAgUGFz
c1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllck1hYzo6Y2xvbmUoUGxhdGZv
cm1DQUxheWVyQ2xpZW50KiBvd24KICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgbmV3TGF5
ZXItPmNvcHlGaWx0ZXJzRnJvbSh0aGlzKTsKICNlbmRpZgorICAgIG5ld0xheWVyLT51cGRhdGVD
dXN0b21BcHBlYXJhbmNlKGN1c3RvbUFwcGVhcmFuY2UoKSk7CiAKICAgICBpZiAodHlwZSA9PSBM
YXllclR5cGVBVlBsYXllckxheWVyKSB7CiAgICAgICAgIEFTU0VSVChbbmV3TGF5ZXItPnBsYXRm
b3JtTGF5ZXIoKSBpc0tpbmRPZkNsYXNzOmdldEFWUGxheWVyTGF5ZXJDbGFzcygpXSk7CkBAIC00
NTAsNiArNDUzLDEwIEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXRCb3VuZHMoY29uc3Qg
RmxvYXRSZWN0JiB2YWx1ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAg
ICBbbV9sYXllci5nZXQoKSBzZXRCb3VuZHM6dmFsdWVdOworICAgIAorICAgIGlmIChyZXF1aXJl
c0N1c3RvbUFwcGVhcmFuY2VVcGRhdGVPbkJvdW5kc0NoYW5nZSgpKQorICAgICAgICB1cGRhdGVD
dXN0b21BcHBlYXJhbmNlKG1fY3VzdG9tQXBwZWFyYW5jZSk7CisKICAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiB9CiAKQEAgLTcyMiw2ICs3MjksMjkgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5
ZXJNYWM6OnNldEVkZ2VBbnRpYWxpYXNpbmdNYXNrKHVuc2lnbmVkIG1hc2spCiAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogfQogCitib29sIFBsYXRmb3JtQ0FMYXllck1hYzo6cmVxdWly
ZXNDdXN0b21BcHBlYXJhbmNlVXBkYXRlT25Cb3VuZHNDaGFuZ2UoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2N1c3RvbUFwcGVhcmFuY2UgPT0gR3JhcGhpY3NMYXllcjo6U2Nyb2xsaW5nU2hhZG93
OworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6dXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShH
cmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGFwcGVhcmFuY2UpCit7CisgICAgbV9jdXN0
b21BcHBlYXJhbmNlID0gYXBwZWFyYW5jZTsKKworICAgIHN3aXRjaCAoYXBwZWFyYW5jZSkgewor
ICAgIGNhc2UgR3JhcGhpY3NMYXllcjo6Tm9DdXN0b21BcHBlYXJhbmNlOgorICAgICAgICBTY3Jv
bGxiYXJUaGVtZU1hYzo6cmVtb3ZlT3ZlcmhhbmdBcmVhQmFja2dyb3VuZChwbGF0Zm9ybUxheWVy
KCkpOworICAgICAgICBTY3JvbGxiYXJUaGVtZU1hYzo6cmVtb3ZlT3ZlcmhhbmdBcmVhU2hhZG93
KHBsYXRmb3JtTGF5ZXIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgR3JhcGhpY3NMYXll
cjo6U2Nyb2xsaW5nT3Zlcmhhbmc6CisgICAgICAgIFNjcm9sbGJhclRoZW1lTWFjOjpzZXRVcE92
ZXJoYW5nQXJlYUJhY2tncm91bmQocGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBHcmFwaGljc0xheWVyOjpTY3JvbGxpbmdTaGFkb3c6CisgICAgICAgIFNjcm9sbGJh
clRoZW1lTWFjOjpzZXRVcE92ZXJoYW5nQXJlYVNoYWRvdyhwbGF0Zm9ybUxheWVyKCkpOworICAg
ICAgICBicmVhazsKKyAgICB9Cit9CisKIFRpbGVkQmFja2luZyogUGxhdGZvcm1DQUxheWVyTWFj
Ojp0aWxlZEJhY2tpbmcoKQogewogICAgIGlmICghdXNlc1RpbGVkQmFja2luZ0xheWVyKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oCmluZGV4
IDFlMzNiZDQ0OWY4ZWY4MjY4NDJjZDA4NWMxZGQzMDcwYTg3ZDk0OWMuLjUzZDZjZmY5ZTE2NmFl
ZGU5NTdmMmI2M2NmZTRlNmJiNjQ2MGYyMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oCkBAIC02NCw2ICs2NCwxNCBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGJvb2wgaXNDdXJyZW50bHlEcmF3aW5nSW50b0xheWVyKCk7CiAgICAgc3RhdGlj
IHZvaWQgc2V0SXNDdXJyZW50bHlEcmF3aW5nSW50b0xheWVyKGJvb2wpOwogCisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCisgICAgc3Rh
dGljIHZvaWQgc2V0VXBPdmVyaGFuZ0FyZWFCYWNrZ3JvdW5kKENBTGF5ZXIgKiwgY29uc3QgQ29s
b3ImIGN1c3RvbUJhY2tncm91bmRDb2xvciA9IENvbG9yKCkpOworICAgIHN0YXRpYyB2b2lkIHJl
bW92ZU92ZXJoYW5nQXJlYUJhY2tncm91bmQoQ0FMYXllciAqKTsKKworICAgIHN0YXRpYyB2b2lk
IHNldFVwT3ZlcmhhbmdBcmVhU2hhZG93KENBTGF5ZXIgKik7CisgICAgc3RhdGljIHZvaWQgcmVt
b3ZlT3ZlcmhhbmdBcmVhU2hhZG93KENBTGF5ZXIgKik7CisjZW5kaWYKKwogcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgYm9vbCBoYXNCdXR0b25zKFNjcm9sbGJhclRoZW1lQ2xpZW50Kik7CiAgICAg
dmlydHVhbCBib29sIGhhc1RodW1iKFNjcm9sbGJhclRoZW1lQ2xpZW50Kik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KaW5kZXggNmJjZDBi
ZGI1YWY2NmRjY2Q2MGMxY2Q2NGZkYzdiNTk5NTYxNTBkMi4uMDE1ZGNkNzExMzg5YWJlZWFkNDMx
YjJmY2U4YjBjNjM5MmM4N2VkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtNTMwLDMzICs1MzAsNTEgQEAgc3RhdGljIFJldGFp
blB0cjxDR0NvbG9yUmVmPiBsaW5lbkJhY2tncm91bmRDb2xvcigpCiAgICAgcmV0dXJuIGFkb3B0
Q0YoQ0dDb2xvckNyZWF0ZVdpdGhQYXR0ZXJuKGNvbG9yU3BhY2UuZ2V0KCksIHBhdHRlcm4uZ2V0
KCksICZhbHBoYSkpOwogfQogCi12b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpzZXRVcE92ZXJoYW5n
QXJlYXNMYXllckNvbnRlbnRzKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIGNvbnN0IENv
bG9yJiBiYWNrZ3JvdW5kQ29sb3IpCit2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpzZXRVcE92ZXJo
YW5nQXJlYUJhY2tncm91bmQoQ0FMYXllciAqbGF5ZXIsIGNvbnN0IENvbG9yJiBjdXN0b21CYWNr
Z3JvdW5kQ29sb3IpCiB7CiAgICAgc3RhdGljIENHQ29sb3JSZWYgY2FjaGVkTGluZW5CYWNrZ3Jv
dW5kQ29sb3IgPSBsaW5lbkJhY2tncm91bmRDb2xvcigpLmxlYWtSZWYoKTsKICAgICAvLyBXZSBv
cGVyYXRlIG9uIHRoZSBDQUxheWVyIGRpcmVjdGx5IGhlcmUsIHNpbmNlIEdyYXBoaWNzTGF5ZXIg
ZG9lc24ndCBoYXZlIHRoZSBjb25jZXB0CiAgICAgLy8gb2YgcGF0dGVybiBpbWFnZXMsIGFuZCB3
ZSBrbm93IHRoYXQgV2ViQ29yZSB3b24ndCB0b3VjaCB0aGlzIGxheWVyLgotICAgIGdyYXBoaWNz
TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS5iYWNrZ3JvdW5kQ29sb3IgPSBiYWNrZ3JvdW5kQ29sb3Iu
aXNWYWxpZCgpID8gY2FjaGVkQ0dDb2xvcihiYWNrZ3JvdW5kQ29sb3IsIENvbG9yU3BhY2VEZXZp
Y2VSR0IpIDogY2FjaGVkTGluZW5CYWNrZ3JvdW5kQ29sb3I7CisgICAgbGF5ZXIuYmFja2dyb3Vu
ZENvbG9yID0gY3VzdG9tQmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSA/IGNhY2hlZENHQ29sb3Io
Y3VzdG9tQmFja2dyb3VuZENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKSA6IGNhY2hlZExpbmVu
QmFja2dyb3VuZENvbG9yOwogfQogCi12b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpzZXRVcENvbnRl
bnRTaGFkb3dMYXllcihHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQordm9pZCBTY3JvbGxi
YXJUaGVtZU1hYzo6cmVtb3ZlT3ZlcmhhbmdBcmVhQmFja2dyb3VuZChDQUxheWVyICpsYXllcikK
IHsKLSAgICAvLyBXZSBvcGVyYXRlIG9uIHRoZSBDQUxheWVyIGRpcmVjdGx5IGhlcmUsIHNpbmNl
IEdyYXBoaWNzTGF5ZXIgZG9lc24ndCBoYXZlIHRoZSBjb25jZXB0Ci0gICAgLy8gb2Ygc2hhZG93
cywgYW5kIHdlIGtub3cgdGhhdCBXZWJDb3JlIHdvbid0IHRvdWNoIHRoaXMgbGF5ZXIuCi0gICAg
Q0FMYXllciAqY29udGVudFNoYWRvd0xheWVyID0gZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXll
cigpOworICAgIGxheWVyLmJhY2tncm91bmRDb2xvciA9IG5pbDsKK30KIAordm9pZCBTY3JvbGxi
YXJUaGVtZU1hYzo6c2V0VXBPdmVyaGFuZ0FyZWFTaGFkb3coQ0FMYXllciAqbGF5ZXIpCit7CiAg
ICAgc3RhdGljIGNvbnN0IENHRmxvYXQgc2hhZG93T3BhY2l0eSA9IDAuNjY7CiAgICAgc3RhdGlj
IGNvbnN0IENHRmxvYXQgc2hhZG93UmFkaXVzID0gMzsKIAogICAgIC8vIFdlIG9ubHkgbmVlZCB0
byBzZXQgdGhlc2Ugc2hhZG93IHByb3BlcnRpZXMgb25jZS4KLSAgICBpZiAoIWNvbnRlbnRTaGFk
b3dMYXllci5zaGFkb3dPcGFjaXR5KSB7Ci0gICAgICAgIGNvbnRlbnRTaGFkb3dMYXllci5zaGFk
b3dDb2xvciA9IENHQ29sb3JHZXRDb25zdGFudENvbG9yKGtDR0NvbG9yQmxhY2spOwotICAgICAg
ICBjb250ZW50U2hhZG93TGF5ZXIuc2hhZG93T2Zmc2V0ID0gQ0dTaXplWmVybzsKLSAgICAgICAg
Y29udGVudFNoYWRvd0xheWVyLnNoYWRvd09wYWNpdHkgPSBzaGFkb3dPcGFjaXR5OwotICAgICAg
ICBjb250ZW50U2hhZG93TGF5ZXIuc2hhZG93UmFkaXVzID0gc2hhZG93UmFkaXVzOworICAgIGlm
ICghbGF5ZXIuc2hhZG93T3BhY2l0eSkgeworICAgICAgICBsYXllci5zaGFkb3dDb2xvciA9IENH
Q29sb3JHZXRDb25zdGFudENvbG9yKGtDR0NvbG9yQmxhY2spOworICAgICAgICBsYXllci5zaGFk
b3dPZmZzZXQgPSBDR1NpemVaZXJvOworICAgICAgICBsYXllci5zaGFkb3dPcGFjaXR5ID0gc2hh
ZG93T3BhY2l0eTsKKyAgICAgICAgbGF5ZXIuc2hhZG93UmFkaXVzID0gc2hhZG93UmFkaXVzOwog
ICAgIH0KIAotICAgIFJldGFpblB0cjxDR1BhdGhSZWY+IHNoYWRvd1BhdGggPSBhZG9wdENGKENH
UGF0aENyZWF0ZVdpdGhSZWN0KENHUmVjdE1ha2UoMCwgMCwgZ3JhcGhpY3NMYXllci0+c2l6ZSgp
LndpZHRoKCksIGdyYXBoaWNzTGF5ZXItPnNpemUoKS5oZWlnaHQoKSksIE5VTEwpKTsKLSAgICBj
b250ZW50U2hhZG93TGF5ZXIuc2hhZG93UGF0aCA9IHNoYWRvd1BhdGguZ2V0KCk7CisgICAgUmV0
YWluUHRyPENHUGF0aFJlZj4gc2hhZG93UGF0aCA9IGFkb3B0Q0YoQ0dQYXRoQ3JlYXRlV2l0aFJl
Y3QobGF5ZXIuYm91bmRzLCBOVUxMKSk7CisgICAgbGF5ZXIuc2hhZG93UGF0aCA9IHNoYWRvd1Bh
dGguZ2V0KCk7Cit9CisKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnJlbW92ZU92ZXJoYW5nQXJl
YVNoYWRvdyhDQUxheWVyICpsYXllcikKK3sKKyAgICBsYXllci5zaGFkb3dQYXRoID0gbmlsOwor
fQorCit2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpzZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRl
bnRzKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIGNvbnN0IENvbG9yJiBjdXN0b21CYWNr
Z3JvdW5kQ29sb3IpCit7CisgICAgU2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVwT3ZlcmhhbmdBcmVh
QmFja2dyb3VuZChncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCksIGN1c3RvbUJhY2tncm91
bmRDb2xvcik7Cit9CisKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVwQ29udGVudFNoYWRv
d0xheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAgLy8gV2Ugb3BlcmF0
ZSBvbiB0aGUgQ0FMYXllciBkaXJlY3RseSBoZXJlLCBzaW5jZSBHcmFwaGljc0xheWVyIGRvZXNu
J3QgaGF2ZSB0aGUgY29uY2VwdAorICAgIC8vIG9mIHNoYWRvd3MsIGFuZCB3ZSBrbm93IHRoYXQg
V2ViQ29yZSB3b24ndCB0b3VjaCB0aGlzIGxheWVyLgorICAgIHNldFVwT3ZlcmhhbmdBcmVhU2hh
ZG93KGdyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSk7CiB9CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRl
eCAyY2I2NzE5MzYzNTZhZDU3MTJkODYyYjIxYTNlNTRjOWZiMTg5NGEwLi42MWU0OWRhNmJkYTNi
OWViODYwMGJmNGJmZWZkMzI2YjFjODczN2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNTUsNyArNTUsNiBAQAogI2lu
Y2x1ZGUgIlJlbmRlclJlcGxpY2EuaCIKICNpbmNsdWRlICJSZW5kZXJWaWRlby5oIgogI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKLSNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUg
IlNjcm9sbGluZ0NvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMTg0MiwxMiArMTg0MSw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVSb290TGF5ZXJQb3NpdGlvbigpCiAjaWYgRU5BQkxF
KFJVQkJFUl9CQU5ESU5HKQogICAgIGlmIChtX2NvbnRlbnRTaGFkb3dMYXllcikgewogICAgICAg
ICBtX2NvbnRlbnRTaGFkb3dMYXllci0+c2V0UG9zaXRpb24obV9yb290Q29udGVudExheWVyLT5w
b3NpdGlvbigpKTsKLQotICAgICAgICBGbG9hdFNpemUgcm9vdENvbnRlbnRMYXllclNpemUgPSBt
X3Jvb3RDb250ZW50TGF5ZXItPnNpemUoKTsKLSAgICAgICAgaWYgKG1fY29udGVudFNoYWRvd0xh
eWVyLT5zaXplKCkgIT0gcm9vdENvbnRlbnRMYXllclNpemUpIHsKLSAgICAgICAgICAgIG1fY29u
dGVudFNoYWRvd0xheWVyLT5zZXRTaXplKHJvb3RDb250ZW50TGF5ZXJTaXplKTsKLSAgICAgICAg
ICAgIFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpLT5zZXRVcENvbnRlbnRTaGFkb3dMYXllcihtX2Nv
bnRlbnRTaGFkb3dMYXllci5nZXQoKSk7Ci0gICAgICAgIH0KKyAgICAgICAgbV9jb250ZW50U2hh
ZG93TGF5ZXItPnNldFNpemUobV9yb290Q29udGVudExheWVyLT5zaXplKCkpOwogICAgIH0KIAog
ICAgIHVwZGF0ZUxheWVyRm9yVG9wT3ZlcmhhbmdBcmVhKG1fbGF5ZXJGb3JUb3BPdmVyaGFuZ0Fy
ZWEgIT0gbnVsbHB0cik7CkBAIC0yOTMzLDggKzI5MjcsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpCiAjZW5kaWYKICAgICAgICAg
ICAgIG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLT5zZXREcmF3c0NvbnRlbnQoZmFsc2UpOwogICAg
ICAgICAgICAgbV9sYXllckZvck92ZXJoYW5nQXJlYXMtPnNldFNpemUobV9yZW5kZXJWaWV3LmZy
YW1lVmlldygpLmZyYW1lUmVjdCgpLnNpemUoKSk7Ci0KLSAgICAgICAgICAgIFNjcm9sbGJhclRo
ZW1lOjp0aGVtZSgpLT5zZXRVcE92ZXJoYW5nQXJlYXNMYXllckNvbnRlbnRzKG1fbGF5ZXJGb3JP
dmVyaGFuZ0FyZWFzLmdldCgpLCB0aGlzLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnVuZGVy
bGF5Q29sb3IoKSk7CisgICAgICAgICAgICBtX2xheWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0Q3Vz
dG9tQXBwZWFyYW5jZShHcmFwaGljc0xheWVyOjpTY3JvbGxpbmdPdmVyaGFuZyk7CiAKICAgICAg
ICAgICAgIC8vIFdlIHdhbnQgdGhlIG92ZXJoYW5nIGFyZWFzIGxheWVyIHRvIGJlIHBvc2l0aW9u
ZWQgYmVsb3cgdGhlIGZyYW1lIGNvbnRlbnRzLAogICAgICAgICAgICAgLy8gc28gaW5zZXJ0IGl0
IGJlbG93IHRoZSBjbGlwIGxheWVyLgpAQCAtMjk1Myw3ICsyOTQ2LDcgQEAgdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnVwZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKQogI2VuZGlmCiAg
ICAgICAgICAgICBtX2NvbnRlbnRTaGFkb3dMYXllci0+c2V0U2l6ZShtX3Jvb3RDb250ZW50TGF5
ZXItPnNpemUoKSk7CiAgICAgICAgICAgICBtX2NvbnRlbnRTaGFkb3dMYXllci0+c2V0UG9zaXRp
b24obV9yb290Q29udGVudExheWVyLT5wb3NpdGlvbigpKTsKLSAgICAgICAgICAgIFNjcm9sbGJh
clRoZW1lOjp0aGVtZSgpLT5zZXRVcENvbnRlbnRTaGFkb3dMYXllcihtX2NvbnRlbnRTaGFkb3dM
YXllci5nZXQoKSk7CisgICAgICAgICAgICBtX2NvbnRlbnRTaGFkb3dMYXllci0+c2V0Q3VzdG9t
QXBwZWFyYW5jZShHcmFwaGljc0xheWVyOjpTY3JvbGxpbmdTaGFkb3cpOwogCiAgICAgICAgICAg
ICBtX3Njcm9sbExheWVyLT5hZGRDaGlsZEJlbG93KG1fY29udGVudFNoYWRvd0xheWVyLmdldCgp
LCBtX3Jvb3RDb250ZW50TGF5ZXIuZ2V0KCkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbSBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVy
Lm1tCmluZGV4IGVhY2Q2MzQ1OGFjNzdhNDllM2U5ZjhkZGMzODg2YTViNzY0NjQxNTguLjVkNjM3
ZTUzY2QxMGIzYWNmNjlkNGEyMzY0MDYzN2Q5YmExOTgyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVy
Lm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCIK
ICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FMYXllci5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9y
bUNBRmlsdGVycy5oPgorI2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxiYXJUaGVtZU1hYy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNTgsNiArNTksMjIgQEAgc3RhdGljIE5TU3Ry
aW5nICp0b0NBRmlsdGVyVHlwZShQbGF0Zm9ybUNBTGF5ZXI6OkZpbHRlclR5cGUgdHlwZSkKICAg
ICByZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgdXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShDQUxh
eWVyICpsYXllciwgR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJh
bmNlKQoreworICAgIHN3aXRjaCAoY3VzdG9tQXBwZWFyYW5jZSkgeworICAgIGNhc2UgR3JhcGhp
Y3NMYXllcjo6Tm9DdXN0b21BcHBlYXJhbmNlOgorICAgICAgICBTY3JvbGxiYXJUaGVtZU1hYzo6
cmVtb3ZlT3ZlcmhhbmdBcmVhQmFja2dyb3VuZChsYXllcik7CisgICAgICAgIFNjcm9sbGJhclRo
ZW1lTWFjOjpyZW1vdmVPdmVyaGFuZ0FyZWFTaGFkb3cobGF5ZXIpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEdyYXBoaWNzTGF5ZXI6OlNjcm9sbGluZ092ZXJoYW5nOgorICAgICAgICBTY3Jv
bGxiYXJUaGVtZU1hYzo6c2V0VXBPdmVyaGFuZ0FyZWFCYWNrZ3JvdW5kKGxheWVyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0xheWVyOjpTY3JvbGxpbmdTaGFkb3c6CisgICAg
ICAgIFNjcm9sbGJhclRoZW1lTWFjOjpzZXRVcE92ZXJoYW5nQXJlYVNoYWRvdyhsYXllcik7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KK30KKwogdm9pZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFw
cGxpZXI6OmFwcGx5UHJvcGVydGllc1RvTGF5ZXIoQ0FMYXllciAqbGF5ZXIsIFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMgcHJvcGVydGllcywgUmVsYXRlZExheWVy
TWFwIHJlbGF0ZWRMYXllcnMpCiB7CiAgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRp
ZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TmFtZUNoYW5nZWQpCkBAIC0xNjEsNiAr
MTc4LDkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVy
dGllc1RvTGF5ZXIoQ0FMYXllciAqbGF5ZXIsIFJlbW8KIAogICAgIGlmIChwcm9wZXJ0aWVzLmNo
YW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkVkZ2VBbnRpYWxp
YXNpbmdNYXNrQ2hhbmdlZCkKICAgICAgICAgbGF5ZXIuZWRnZUFudGlhbGlhc2luZ01hc2sgPSBw
cm9wZXJ0aWVzLmVkZ2VBbnRpYWxpYXNpbmdNYXNrOworCisgICAgaWYgKHByb3BlcnRpZXMuY2hh
bmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q3VzdG9tQXBwZWFy
YW5jZUNoYW5nZWQpCisgICAgICAgIHVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UobGF5ZXIsIHByb3Bl
cnRpZXMuY3VzdG9tQXBwZWFyYW5jZSk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlUHJvcGVy
dHlBcHBsaWVyOjpkaXNhYmxlQWN0aW9uc0ZvckxheWVyKENBTGF5ZXIgKmxheWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bi5oCmluZGV4IDY5OTU0ZTFlM2ZlOGI5MjY0ZTUzZDExMGQ0NmE5ODhjYmZiOTVlYTkuLjBkMzYw
Zjc5MjM4NDY3ODAzZTI0MzMzNmE2ZTcyZTg2YTJjYjc3ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKQEAgLTc2
LDcgKzc2LDggQEAgcHVibGljOgogICAgICAgICBUaW1lT2Zmc2V0Q2hhbmdlZCA9IDEgPDwgMjMs
CiAgICAgICAgIEJhY2tpbmdTdG9yZUNoYW5nZWQgPSAxIDw8IDI0LAogICAgICAgICBGaWx0ZXJz
Q2hhbmdlZCA9IDEgPDwgMjUsCi0gICAgICAgIEVkZ2VBbnRpYWxpYXNpbmdNYXNrQ2hhbmdlZCA9
IDEgPDwgMjYKKyAgICAgICAgRWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkID0gMSA8PCAyNiwK
KyAgICAgICAgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQgPSAxIDw8IDI3CiAgICAgfTsKIAogICAg
IHN0cnVjdCBMYXllckNyZWF0aW9uUHJvcGVydGllcyB7CkBAIC0xMzIsNiArMTMzLDcgQEAgcHVi
bGljOgogICAgICAgICBSZW1vdGVMYXllckJhY2tpbmdTdG9yZSBiYWNraW5nU3RvcmU7CiAgICAg
ICAgIFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMgZmlsdGVyczsKICAgICAgICAgdW5zaWduZWQg
ZWRnZUFudGlhbGlhc2luZ01hc2s7CisgICAgICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkN1
c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZTsKICAgICB9OwogCiAgICAgZXhwbGljaXQg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCmluZGV4IDdlOTM5MzUx
ZjAwN2I4OGMwYWJhN2M1NjA2ODQyMTUxZjQwN2ZkZDAuLmRlZDcyZDhkMjRmODUzYmE3ODQ1NzIy
MGZiZWMyMTcxZmE5OGM4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQpAQCAtMTU1LDYgKzE1NSw5IEBAIHZv
aWQgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlCiAKICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBFZGdl
QW50aWFsaWFzaW5nTWFza0NoYW5nZWQpCiAgICAgICAgIGVuY29kZXIgPDwgZWRnZUFudGlhbGlh
c2luZ01hc2s7CisKKyAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBDdXN0b21BcHBlYXJhbmNl
Q2hhbmdlZCkKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGN1c3RvbUFwcGVhcmFuY2UpOwog
fQogCiBib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIExheWVyUHJvcGVydGllcyYg
cmVzdWx0KQpAQCAtMjk3LDYgKzMwMCwxMSBAQCBib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOjpMYXllclByb3BlcnRpZXM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIGlmIChyZXN1bHQuY2hhbmdlZFBy
b3BlcnRpZXMgJiBDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCkgeworICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlRW51bShyZXN1bHQuY3VzdG9tQXBwZWFyYW5jZSkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTYzOSw2ICs2NDcs
OSBAQCBzdGF0aWMgdm9pZCBkdW1wQ2hhbmdlZExheWVycyhSZW1vdGVMYXllclRyZWVUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgSGFzaE1hcDxSZW1vdAogICAgICAgICBpZiAobGF5ZXJQcm9wZXJ0aWVz
LmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkVkZ2VBbnRp
YWxpYXNpbmdNYXNrQ2hhbmdlZCkKICAgICAgICAgICAgIGR1bXBQcm9wZXJ0eTx1bnNpZ25lZD4o
dHMsICJlZGdlQW50aWFsaWFzaW5nTWFzayIsIGxheWVyUHJvcGVydGllcy5lZGdlQW50aWFsaWFz
aW5nTWFzayk7CiAKKyAgICAgICAgaWYgKGxheWVyUHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGll
cyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCkK
KyAgICAgICAgICAgIGR1bXBQcm9wZXJ0eTxHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNl
Pih0cywgImN1c3RvbUFwcGVhcmFuY2UiLCBsYXllclByb3BlcnRpZXMuY3VzdG9tQXBwZWFyYW5j
ZSk7CisKICAgICAgICAgdHMgPDwgIikiOwogCiAgICAgICAgIHRzLmRlY3JlYXNlSW5kZW50KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRm
b3JtQ0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5kZXggMDI5NWM0MTU1NzgxMGI1OGUxMGQx
MmZmYjEzMzA3NzdlMTgxMDZhZi4uZTcyZGJiZTRiY2U3MzkxMjg2MDBkYjRjM2NkYjRjZDBjZTUw
YmNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcApAQCAtMzA0LDYgKzMwNCw5IEBA
IHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRCb3VuZHMoY29uc3QgRmxvYXRSZWN0JiB2
YWx1ZSkKIHsKICAgICBtX3Byb3BlcnRpZXMuc2l6ZSA9IHZhbHVlLnNpemUoKTsKICAgICBtX3By
b3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpTaXplQ2hhbmdlZCk7CisgICAgCisgICAgaWYgKHJlcXVpcmVzQ3VzdG9tQXBwZWFyYW5jZVVw
ZGF0ZU9uQm91bmRzQ2hhbmdlKCkpCisgICAgICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGll
c0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkN1c3RvbUFwcGVhcmFuY2VDaGFu
Z2VkKTsKIAogICAgIGVuc3VyZUJhY2tpbmdTdG9yZSgpOwogfQpAQCAtNTEzLDYgKzUxNiwyMiBA
QCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0RWRnZUFudGlhbGlhc2luZ01hc2sodW5z
aWduZWQgdmFsdWUpCiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6RWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkKTsKIH0K
IAorYm9vbCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlcXVpcmVzQ3VzdG9tQXBwZWFyYW5jZVVw
ZGF0ZU9uQm91bmRzQ2hhbmdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmN1
c3RvbUFwcGVhcmFuY2UgPT0gR3JhcGhpY3NMYXllcjo6U2Nyb2xsaW5nU2hhZG93OworfQorCitX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIFBsYXRmb3JtQ0FMYXllclJl
bW90ZTo6Y3VzdG9tQXBwZWFyYW5jZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvcGVydGll
cy5jdXN0b21BcHBlYXJhbmNlOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6dXBk
YXRlQ3VzdG9tQXBwZWFyYW5jZShXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJh
bmNlIGN1c3RvbUFwcGVhcmFuY2UpCit7CisgICAgbV9wcm9wZXJ0aWVzLmN1c3RvbUFwcGVhcmFu
Y2UgPSBjdXN0b21BcHBlYXJhbmNlOworICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0No
YW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkN1c3RvbUFwcGVhcmFuY2VDaGFuZ2Vk
KTsKK30KKwogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6Y3JlYXRlQ29tcGF0aWJsZUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIGxheWVy
VHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlKGxheWVyVHlwZSwgY2xpZW50LCBtX2NvbnRl
eHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKaW5kZXggOGNiMDQ3MGFlYzM3ZjVhZGJlMmUy
ZmY4MzZiNmEwMmE4NTU4YTA1Ni4uYWYzOTNiZTNiZjg0YjE0NzQ5YWE0MDczZTdhNTA5MGY4ZjI5
YmU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCkBAIC0xNDAsNiArMTQwLDkgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldEVkZ2VBbnRpYWxpYXNpbmdNYXNrKHVuc2lnbmVk
KSBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Q3VzdG9t
QXBwZWFyYW5jZSBjdXN0b21BcHBlYXJhbmNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Q3Vz
dG9tQXBwZWFyYW5jZSkgT1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlRpbGVkQmFj
a2luZyogdGlsZWRCYWNraW5nKCkgT1ZFUlJJREUgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcj4gY2xvbmUoV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikgY29uc3QgT1ZFUlJJREU7CkBAIC0xNTcs
NiArMTYwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuc3VyZUJhY2tpbmdTdG9yZSgpOwogICAg
IHZvaWQgcmVtb3ZlU3VibGF5ZXIoUGxhdGZvcm1DQUxheWVyUmVtb3RlKik7CiAKKyAgICBib29s
IHJlcXVpcmVzQ3VzdG9tQXBwZWFyYW5jZVVwZGF0ZU9uQm91bmRzQ2hhbmdlKCkgY29uc3Q7CisK
ICAgICBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJJRCBtX2xheWVySUQ7CiAgICAg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyBtX3Byb3BlcnRpZXM7
CiAgICAgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyTGlzdCBtX2NoaWxkcmVuOwo=
</data>
<flag name="review"
          id="242974"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>