<?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>80977</bug_id>
          
          <creation_ts>2012-03-13 02:20:56 -0700</creation_ts>
          <short_desc>[chromium] Introduce WebWidgetRenderSurface and WebWidgetScheduler and route input-related throttling through them</short_desc>
          <delta_ts>2013-04-08 11:23:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>82265</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nat Duca">nduca</reporter>
          <assigned_to name="Nat Duca">nduca</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>577177</commentid>
    <comment_count>0</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-13 02:20:56 -0700</bug_when>
    <thetext>[chromium] Introduce WebWidgetRenderSurface and WebWidgetScheduler and route input-related throttling through them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577178</commentid>
    <comment_count>1</comment_count>
      <attachid>131573</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-13 02:21:54 -0700</bug_when>
    <thetext>Created attachment 131573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577181</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-13 02:25:01 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.

Please wait for approval from fishd@chromium.org, abarth@webkit.org or jamesr@chromium.org before submitting because this patch contains changes to the Chromium platform API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577182</commentid>
    <comment_count>3</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-13 02:26:31 -0700</bug_when>
    <thetext>Here is RenderWidget inversion phase 0.

This cleans up some hack-plumbing for fullscreen damage done to turn on scissoring.

It then builds up new plumbing for input throttling, which fixes a bug in the threaded compositor where RenderWdiget doesn&apos;t properly throttle damaging input acks [because the RenderWidget&apos;s paint aggregatoor is empty].

This patch can land as-is. Follow-on patches will start moving more functionality into the scheduler and surface objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577189</commentid>
    <comment_count>4</comment_count>
      <attachid>131573</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-13 02:39:35 -0700</bug_when>
    <thetext>Comment on attachment 131573
Patch

Attachment 131573 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11942429</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577201</commentid>
    <comment_count>5</comment_count>
      <attachid>131578</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-13 02:59:36 -0700</bug_when>
    <thetext>Created attachment 131578
should build now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582177</commentid>
    <comment_count>6</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-19 13:45:29 -0700</bug_when>
    <thetext>@fishd, ping?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131573</attachid>
            <date>2012-03-13 02:21:54 -0700</date>
            <delta_ts>2012-03-13 02:59:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80977-20120313022153.patch</filename>
            <type>text/plain</type>
            <size>33384</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA4ZWI3MTFhYWY2MTM3
MzQzOGRkNWU4ZTA4ZDU2ZjZiNjk1NWFjODIyLi5jNTY3NmRlMGQ5N2I1NWE0NGY4YWY2MzJkYzA4
ZDNmNzNmNjI1ZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0xMyAg
TmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBJbnRy
b2R1Y2UgV2ViV2lkZ2V0UmVuZGVyU3VyZmFjZSBhbmQgV2ViV2lkZ2V0U2NoZWR1bGVyIGFuZCBy
b3V0ZSBpbnB1dC1yZWxhdGVkIHRocm90dGxpbmcgdGhyb3VnaCB0aGVtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDk3NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYkxh
eWVyVHJlZVZpZXcuaDoKKyAgICAgICAgKFdlYkxheWVyVHJlZVZpZXcpOgorICAgICAgICAqIGNo
cm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbW1pdEZyYW1lKToKKwogMjAxMi0wMy0wOCAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVzZSBhbiBl
eHBsaWNpdCBhdHRyaWJ1dGUgdG8gc2lnbmFsIHRoYXQgYSBjb250ZXh0IHByZWZlcnMgdG8gdXNl
IGEgZGlzY3JldGUgR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY2ZmIxNmJlYTMzMTIyODUyOTkyODRjZTg4
YmNjYmZmYWNiNTc2MS4uMWRhNWZlZjA4Njc5ZWU0ZmNlMmI3NjU0ZDJhZWI2MzA4ZjU5ODA0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAzLTEzICBOYXQgRHVjYSAgPG5kdWNh
QGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEludHJvZHVjZSBXZWJXaWRnZXRS
ZW5kZXJTdXJmYWNlIGFuZCBXZWJXaWRnZXRTY2hlZHVsZXIgYW5kIHJvdXRlIGlucHV0LXJlbGF0
ZWQgdGhyb3R0bGluZyB0aHJvdWdoIHRoZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwOTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojpjb21taXRD
b21wbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNob3VsZEhvbGRB
ZGRpdGlvbmFsSW5wdXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChDQ0xheWVy
VHJlZUhvc3RDbGllbnQpOgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Byb3h5Lmg6CisgICAgICAgIChDQ1Byb3h5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVh
ZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFkUHJveHk6OnNob3Vs
ZEhvbGRBZGRpdGlvbmFsSW5wdXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oOgorICAgICAg
ICAoQ0NTaW5nbGVUaHJlYWRQcm94eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFBy
b3h5OjpzaG91bGRIb2xkQWRkaXRpb25hbElucHV0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaDoKKyAg
ICAgICAgKENDVGhyZWFkUHJveHkpOgorCiAyMDEyLTAzLTEyICBHZW9yZ2UgU3RhaWtvcyAgPHN0
YWlrb3NAd2Via2l0Lm9yZz4KIAogICAgICAgICBJdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gcmV0
dXJuIGNvbnN0IHVuc2lnbmVkLCBhbmQgR0NDIHdhcm5zIGFib3V0IGl0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCAyMDRmYzExOWZjOWRmYjlkZGZiZjEyOGE2MGQ2NDE0NmRhZjU3OWE1
Li45OWEzNmQzZDNmYzhlMzdkMDNkMmEwNTY5M2Y5MmNjYjUzNmE3OWRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTAzLTEzICBOYXQgRHVjYSAgPG5k
dWNhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEludHJvZHVjZSBXZWJXaWRn
ZXRSZW5kZXJTdXJmYWNlIGFuZCBXZWJXaWRnZXRTY2hlZHVsZXIgYW5kIHJvdXRlIGlucHV0LXJl
bGF0ZWQgdGhyb3R0bGluZyB0aHJvdWdoIHRoZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgwOTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJX
aWRnZXQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJXaWRnZXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJXaWRnZXQ6OnNjaGVkdWxlcik6CisgICAgICAgICogcHVibGljL1dlYldp
ZGdldENsaWVudC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYldpZGdldENsaWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudDo6cmVuZGVyU3VyZmFjZSk6Cisg
ICAgICAgICogcHVibGljL1dlYldpZGdldFJlbmRlclN1cmZhY2UuaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViV2lkZ2V0UmVuZGVyU3VyZmFjZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYldpZGdldFJlbmRlclN1cmZhY2U6On5XZWJXaWRnZXRSZW5kZXJTdXJmYWNlKToK
KyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0U2NoZWR1bGVyLmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYldpZGdldFNjaGVkdWxlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYldpZGdldFNjaGVkdWxlcjo6fldlYldpZGdldFNjaGVkdWxlcik6CisgICAgICAgICogc3Jj
L1dlYkxheWVyVHJlZVZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3
OjpzaG91bGRIb2xkQWRkaXRpb25hbElucHV0KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5
ZXJUcmVlVmlld0ltcGw6OmRpZENvbW1pdEZyYW1lKToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmg6CisgICAgICAgIChXZWJMYXllclRyZWVW
aWV3SW1wbCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnNjaGVkdWxlcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6ZGlkQ29tbWl0RnJhbWUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgor
ICAgICAgICAoV2ViVmlld0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJXaWRnZXRJbXBsLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYldpZGdldEltcGwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJXaWRnZXRJbXBsOjp+V2ViV2lkZ2V0SW1wbCk6CisgICAgICAgICogc3Jj
L1dlYldpZGdldFNjaGVkdWxlckltcGwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldpZGdldFNjaGVkdWxlckltcGw6OldlYldpZGdldFNjaGVkdWxl
ckltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRTY2hlZHVsZXJJbXBsOjpzZXROZWVk
c1JlZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldFNjaGVkdWxlckltcGw6OnNob3Vs
ZEhvbGRBZGRpdGlvbmFsSW5wdXQpOgorICAgICAgICAqIHNyYy9XZWJXaWRnZXRTY2hlZHVsZXJJ
bXBsLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYldpZGdldFNjaGVk
dWxlckltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRTY2hlZHVsZXJJbXBsOjp+V2Vi
V2lkZ2V0U2NoZWR1bGVySW1wbCk6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVz
dC5jcHA6CisgICAgICAgIChXVEY6Ok1vY2tMYXllclRyZWVIb3N0Q2xpZW50OjpkaWRDb21taXRG
cmFtZSk6CisgICAgICAgIChNb2NrTGF5ZXJUcmVlSG9zdENsaWVudCk6CisgICAgICAgICogdGVz
dHMvRmFrZUNDTGF5ZXJUcmVlSG9zdENsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RmFrZUND
TGF5ZXJUcmVlSG9zdENsaWVudDo6ZGlkQ29tbWl0RnJhbWUpOgorCiAyMDEyLTAzLTEyICBOYXQg
RHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEZvcmNlIGNv
bXBvc2l0ZUFuZFJlYWRiYWNrIHRocm91Z2ggcmVndWxhciBzY2hlZHVsaW5nIGZsb3cKZGlmZiAt
LWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5o
IGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKaW5k
ZXggM2VmMjk1ZDk0NTU5ODMxOTczY2NhYjVlYzI1MGMyNzAxODhkNDA0ZS4uZTYxNDAyMGNiNzhj
NTExNWY4NjNiZGExMDFjYjUxM2FlZWU2NWE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKKysrIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKQEAgLTEyMyw2ICsxMjMsOSBAQCBw
dWJsaWM6CiAKICAgICAvLyBGbG93IGNvbnRyb2wgYW5kIHNjaGVkdWxpbmcgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKKyAgICAvLyBXaGV0aGVyIGFkZGl0aW9uYWwg
aW5wdXQgc2hvdWxkIGJlIHdpdGhlbGQgdW50aWwgdGhlIG5leHQgZnJhbWUuCisgICAgV0VCS0lU
X0VYUE9SVCBib29sIHNob3VsZEhvbGRBZGRpdGlvbmFsSW5wdXQoKSBjb25zdDsKKwogICAgIC8v
IFJlcXVlc3RzIGFuIHVwZGF0ZUFuaW1hdGlvbnMoKSBjYWxsLgogICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBzZXROZWVkc0FuaW1hdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmggYi9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAppbmRleCA1YzBiOWVmOWEy
YTJjNjEzYjExOTAwYzEzZjg5OGYyMjgzOWI0NjViLi5hNzNiZTBiYzdmMGI0M2E2OTRkY2EwYWNj
MTY2ZWRlOWFiYTk1Mjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaApAQCAtNTIsNiArNTIsNyBAQCBwdWJs
aWM6CiAgICAgLy8gY29udGV4dCBldmVudCkuCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlYmluZEdy
YXBoaWNzQ29udGV4dChib29sIHN1Y2Nlc3MpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBkaWRD
b21taXRGcmFtZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKSA9IDA7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDM0YmNlMTE4MTAwZmE1ZmEzOGQ5
MzUyODIwZDU3MDhlOWZlZGRjYTIuLjQyODNjZjQzY2MxOWNlODdkM2VjZmQyOWEyMTVhMTM3MjVi
YTFmZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtMjI1LDYgKzIyNSw3
IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojpjb21taXRDb21wbGV0ZSgpCiAgICAgbV9kZWxldGVU
ZXh0dXJlQWZ0ZXJDb21taXRMaXN0LmNsZWFyKCk7CiAgICAgY2xlYXJQZW5kaW5nVXBkYXRlKCk7
CiAgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT51bnByb3RlY3RBbGxUZXh0dXJlcygpOwor
ICAgIG1fY2xpZW50LT5kaWRDb21taXRBbmREcmF3RnJhbWUoKTsKIH0KIAogUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGVDb250ZXh0KCkKQEAgLTI4
Nyw2ICsyODgsMTEgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNldE5lZWRzQW5pbWF0ZSgpCiAg
ICAgbV9wcm94eS0+c2V0TmVlZHNBbmltYXRlKCk7CiB9CiAKK2Jvb2wgQ0NMYXllclRyZWVIb3N0
OjpzaG91bGRIb2xkQWRkaXRpb25hbElucHV0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm94
eS0+c2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1dCgpOworfQorCiB2b2lkIENDTGF5ZXJUcmVlSG9z
dDo6c2V0TmVlZHNDb21taXQoKQogewogICAgIGlmIChDQ1RocmVhZFByb3h5OjppbXBsVGhyZWFk
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IGQ1MjYyMjYyZDRmMmNjYTU0NDk2
Y2ZiYmE3YTU1MGRiOTMyYmE0YWUuLjk3YWZlYTVjZDMyYWEyMWYxNzY2Y2M4YjgzMTZmMTAwZjU0
MTBkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWxlKSA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVDb250ZXh0KCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNyZWF0ZUNvbnRleHQoYm9vbCBzdWNjZXNzKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRpZENvbW1pdEZyYW1lKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmRE
cmF3RnJhbWUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMo
KSA9IDA7CiAKQEAgLTE3Miw2ICsxNzMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb3NlQ29udGV4
dChpbnQgbnVtVGltZXMpOwogCiAgICAgdm9pZCBzZXROZWVkc0FuaW1hdGUoKTsKKworICAgIGJv
b2wgc2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1dCgpIGNvbnN0OworCiAgICAgLy8gdmlydHVhbCBm
b3IgdGVzdGluZwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0NvbW1pdCgpOwogICAgIHZvaWQg
c2V0TmVlZHNSZWRyYXcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDUHJveHkuaAppbmRleCAwMTYyMjZjYTUxMjAxMzFmY2ZlM2Zj
MTMzMTlhYzcxNjA4NzY3NTliLi5mOTQ1MjE2MzYwY2Q4ZTg5NzI0OWEyMGNhMDkwOGY4ZDIwOWQz
OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NQcm94eS5oCkBAIC04MSw2ICs4MSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgY29uc3QgTGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcyYgbGF5ZXJSZW5kZXJlckNhcGFiaWxp
dGllcygpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRIb2xkQWRkaXRpb25h
bElucHV0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0FuaW1hdGUoKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzQ29tbWl0KCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXROZWVkc1JlZHJhdygpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQ
cm94eS5jcHAKaW5kZXggYjZmYzc2YjUyZThiZGY0ZmVhOTc1NTBhMjE2ZWYxMzJmZjdiNWJmNS4u
MzRhOWIxZTJkNjA2ZjkxMjlkZTYwNzNiYWM0NDY4YzFjOTQ4NWU3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKQEAgLTE4NSw2ICsxODUsMTMgQEAgdm9pZCBDQ1Np
bmdsZVRocmVhZFByb3h5Ojpsb3NlQ29udGV4dCgpCiAgICAgbV9jb250ZXh0TG9zdCA9IHRydWU7
CiB9CiAKK2Jvb2wgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1
dCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdoaWxlIHRoZSBjbGllbnQgaGFuZGxlcyBpbnZh
bGlkYXRpb24gaW4gdGhlIENDU2luZ2xlVGhyZWFkUHJveHksIHdlIGNhbm5vdAorICAgIC8vIHJl
dHVybiBhbnl0aGluZyBtZWFuaW5nZnVsIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2
b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OnNldE5lZWRzQW5pbWF0ZSgpCiB7CiAgICAgLy8gQ0NU
aHJlYWQtb25seSBmZWF0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgKaW5k
ZXggZWJiZDk2ZTJjMzg4MjIxODlkMmI5MGIyMWU2ZDk3NmEzNjdjMGU5Yy4uMTE5MzM1ODBmMDZi
YzI2OTRlNTY0NWQyMTA0ZDAzYjJhMTlmNGE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhy
ZWFkUHJveHkuaApAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgY29t
cG9zaXRvcklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbXBvc2l0b3JJZGVudGlmaWVy
OyB9CiAgICAgdmlydHVhbCBjb25zdCBMYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzJiBsYXllclJl
bmRlcmVyQ2FwYWJpbGl0aWVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGxvc2VDb250ZXh0
KCk7CisgICAgdmlydHVhbCBib29sIHNob3VsZEhvbGRBZGRpdGlvbmFsSW5wdXQoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNBbmltYXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dE5lZWRzQ29tbWl0KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGUyY2U2NzVlNTA1YTc0YTFiODQ1MDQxZmE2NTMz
Mzg5YTVhNzQwZTIuLjU4OGQyMjkyNWU4NjI0NjE1MjUxY2ViOGQ2ZWE0YmRlMDg5MTQ3NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0yNDUsNiArMjQ1LDExIEBAIHZvaWQgQ0NU
aHJlYWRQcm94eTo6bG9zZUNvbnRleHQoKQogICAgIENDUHJveHk6OmltcGxUaHJlYWQoKS0+cG9z
dFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpkaWRMb3NlQ29u
dGV4dE9uSW1wbFRocmVhZCkpOwogfQogCitib29sIENDVGhyZWFkUHJveHk6OnNob3VsZEhvbGRB
ZGRpdGlvbmFsSW5wdXQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbW1pdFJlcXVlc3RlZDsK
K30KKwogdm9pZCBDQ1RocmVhZFByb3h5OjpzZXROZWVkc0FuaW1hdGUoKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggOWU1MjRhNzYz
ZTI4NTBmZDIwOWMxM2UzNTI2MTJlYzVjYTMwNDllMS4uODFkMGQ3MzYwNmI4MDg0NWI3ZWEwMDAy
NmJmNWY5ZTQ2YmU3ZmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtNjIsNiArNjIs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgY29tcG9zaXRvcklkZW50aWZpZXIoKSBjb25z
dDsKICAgICB2aXJ0dWFsIGNvbnN0IExheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMmIGxheWVyUmVu
ZGVyZXJDYXBhYmlsaXRpZXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbG9zZUNvbnRleHQo
KTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1dCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0FuaW1hdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
TmVlZHNDb21taXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXcoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCBlY2I4N2E3MzlmZDJhY2NlMmRhMmRmNTI2OTc1MTQw
OTliNWZiYTkxLi4zYTc2Zjc3ZTY4ZGJmZDczOTc3NmViNjNkODcwZmU4MTY4NDM2N2YzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yNzQsNiArMjc0LDggQEAKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYlZpZXdDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJXaWRnZXQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJXaWRnZXRDbGllbnQuaCcs
CisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJXaWRnZXRSZW5kZXJTdXJmYWNlLmgnLAorICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViV2lkZ2V0U2NoZWR1bGVySW5mby5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYldvcmtlckluZm8uaCcsCiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJXb3JrZXJSdW5Mb29wLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvYW5kcm9pZC9X
ZWJJbnB1dEV2ZW50RmFjdG9yeS5oJywKQEAgLTY3Niw2ICs2NzgsOSBAQAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViVXNlck1lZGlhUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
V2ViVmlld0ltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlZpZXdJbXBsLmgnLAor
ICAgICAgICAgICAgICAgICdzcmMvV2ViV2lkZ2V0SW1wbC5oJywKKyAgICAgICAgICAgICAgICAn
c3JjL1dlYldpZGdldFNjaGVkdWxlckltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dl
YldpZGdldFNjaGVkdWxlckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJXb3JrZXJC
YXNlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJXb3JrZXJCYXNlLmgnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAppbmRleCBlOTcxMmQ3NDNjM2UyNDBkZDU1ODUxMDhm
YzNhNTRkZDA1YzQwNTg3Li5jNTEzNDc3YjAwMDM2ZGEwYjFhNTQ4ZmU2YzY5MTI2ZTQxNzg4ZThm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaApAQCAtNDcsNiAr
NDcsNyBAQCBjbGFzcyBXZWJJbnB1dEV2ZW50OwogY2xhc3MgV2ViTW91c2VFdmVudDsKIGNsYXNz
IFdlYlN0cmluZzsKIHN0cnVjdCBXZWJQb2ludDsKK2NsYXNzIFdlYldpZGdldFNjaGVkdWxlcjsK
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBXZWJWZWN0b3I7CiAKIGNsYXNzIFdlYldpZGdl
dCB7CkBAIC0xMDcsMTEgKzEwOCwxNCBAQCBwdWJsaWM6CiAgICAgLy8gYW5pbWF0ZSBvciBsYXlv
dXQgaW4gdGhpcyBjYXNlLgogICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gp
ID0gMDsKIAotICAgIC8vIFRlbXBvcmFyeSBtZXRob2QgZm9yIHRoZSBlbWJlZGRlciB0byBub3Rp
ZnkgdGhlIFdlYldpZGdldCB0aGF0IHRoZSB3aWRnZXQKLSAgICAvLyBoYXMgdGFrZW4gZGFtYWdl
LCBlLmcuIGR1ZSB0byBhIHdpbmRvdyBleHBvc2UuIFRoaXMgbWV0aG9kIHdpbGwgYmUKLSAgICAv
LyByZW1vdmVkIHdoZW4gdGhlIFdlYldpZGdldCBpbnZlcnNpb24gcGF0Y2ggbGFuZHMgLS0tIGh0
dHA6Ly9jcmJ1Zy5jb20vMTEyODM3CisgICAgLy8gRGVwcmVjYXRlZCBtZXRob2QgZm9yIHRoZSBl
bWJlZGRlciB0byBub3RpZnkgdGhlIFdlYldpZGdldCB0aGF0IHRoZSB3aWRnZXQKKyAgICAvLyBo
YXMgdGFrZW4gZGFtYWdlLCBlLmcuIGR1ZSB0byBhIHdpbmRvdyBleHBvc2UuIENhbGxlcnMgb2Yg
dGhpcyBtZXRob2Qgc2hvdWxkIGluc3RlYWQKKyAgICAvLyBiZSBjYWxsaW5nIHNjaGVkdWxlcigp
LT5zZXROZWVkc1JlZHJhdygpLgogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1JlZHJhdygpIHsg
fQogCisgICAgLy8gUmV0dXJucyB0aGUgV2ViV2lkZ2V0J3Mgc2NoZWR1bGVyLgorICAgIHZpcnR1
YWwgV2ViV2lkZ2V0U2NoZWR1bGVyKiBzY2hlZHVsZXIoKSB7IHJldHVybiAwOyB9CisKICAgICAv
LyBDYWxsZWQgdG8gaW5mb3JtIHRoZSBXZWJXaWRnZXQgb2YgYSBjaGFuZ2UgaW4gdGhlbWUuCiAg
ICAgLy8gSW1wbGVtZW50b3JzIHRoYXQgY2FjaGUgcmVuZGVyZWQgY29waWVzIG9mIHdpZGdldHMg
bmVlZCB0byByZS1yZW5kZXIKICAgICAvLyBvbiByZWNlaXZpbmcgdGhpcyBtZXNzYWdlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCmluZGV4IDI0
Y2Q5YzZhY2Y5YmQxZjgzZGFkZTEzODZiMjNlZWU3Y2FmN2FkMzQuLjZmYTljYWRmYjkyNzRhM2Uw
NTU5NWVkN2ZjZjI1NjY0NjUzYmI4Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYldpZGdldENsaWVudC5oCkBAIC00MCwxMSArNDAsMTYgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFdlYlN0cmluZzsKIGNsYXNzIFdlYldpZGdldDsKK2NsYXNzIFdlYldp
ZGdldFJlbmRlclN1cmZhY2U7CiBzdHJ1Y3QgV2ViQ3Vyc29ySW5mbzsKIHN0cnVjdCBXZWJTaXpl
OwogCiBjbGFzcyBXZWJXaWRnZXRDbGllbnQgewogcHVibGljOgorICAgIC8vIENhbGxlZCBieSB0
aGUgV2ViV2lkZ2V0IHRvIGdldCBpdHMgYXNzb2NpYXRlZCBXZWJXaWRnZXRSZW5kZXJTdXJmYWNl
LgorICAgIC8vIFRoZSBsaWZldGltZSBvZiB0aGUgcmVuZGVyU3VyZmFjZSBzaG91bGQgYmUgY2xp
ZW50LW1hbmFnZWQuCisgICAgdmlydHVhbCBXZWJXaWRnZXRSZW5kZXJTdXJmYWNlKiByZW5kZXJT
dXJmYWNlKCkgY29uc3QgeyByZXR1cm4gMDsgfQorCiAgICAgLy8gQ2FsbGVkIHdoZW4gYSByZWdp
b24gb2YgdGhlIFdlYldpZGdldCBuZWVkcyB0byBiZSByZS1wYWludGVkLgogICAgIHZpcnR1YWwg
dm9pZCBkaWRJbnZhbGlkYXRlUmVjdChjb25zdCBXZWJSZWN0JikgeyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldFJlbmRlclN1cmZhY2UuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldFJlbmRlclN1cmZhY2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYTcyZjUxN2JjMDNiZjRjOWYyMjZkYjIxM2Y2NjNlNGI3ZTlkMDhlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0UmVu
ZGVyU3VyZmFjZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2Vi
V2lkZ2V0UmVuZGVyU3VyZmFjZV9oCisjZGVmaW5lIFdlYldpZGdldFJlbmRlclN1cmZhY2VfaAor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViV2lkZ2V0UmVuZGVyU3VyZmFjZSB7Citw
dWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGRpZEJlY29tZVJlYWR5Rm9yQWRkaXRpb25hbElucHV0
KCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgfldlYldpZGdldFJlbmRlclN1cmZhY2UoKSB7IH0K
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldFNjaGVkdWxlci5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0U2NoZWR1bGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTNh
MzRiMjVkNWMxOGM3MjE5MGM0MDgwOGFhYjY1NzIxYWVmM2ZkNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldFNjaGVkdWxlci5oCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViV2lkZ2V0U2NoZWR1bGVyX2gK
KyNkZWZpbmUgV2ViV2lkZ2V0U2NoZWR1bGVyX2gKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJXaWRnZXRTY2hlZHVsZXIgeworcHVibGljOgorICAgIC8vIE5vdGlmaWVzIHRoZSBzY2hl
ZHVsZXIgdGhhdCBpdHMgd2lkZ2V0IGhhcyB0YWtlbiBkYW1hZ2UsIGUuZy4gZHVlIHRvIGEKKyAg
ICAvLyB3aW5kb3cgZXhwb3NlLCBhbmQgbmVlZHMgYSByZWRyYXcuCisgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzUmVkcmF3KCkgY29uc3QgPSAwOworCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIGFk
ZGl0aW9uYWwgaW5wdXRzIHNob3VsZCBiZSBoZWxkIHVudGlsIHRvbGQKKyAgICAvLyBvdGhlcndp
c2UgdmlhIFdlYldpZGdldFJlbmRlclN1cmZhY2U6OmRpZEJlY29tZVJlYWR5Rm9yQWRkaXRpb25h
bElucHV0KCkuCisgICAgdmlydHVhbCBib29sIHNob3VsZEhvbGRBZGRpdGlvbmFsSW5wdXQoKSBj
b25zdCA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB+V2ViV2lkZ2V0U2NoZWR1bGVyKCkgeyB9Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXcuY3BwCmluZGV4IDMzMTRkYzJmNTQ0YzFjYThj
NTljNDcyYmMwMjVlOGMwMDdmNzAxZjAuLjcwNDAzOWI1MmM3NjAwN2Q2NWEzNDlkNjUzODJmNjlm
Y2U2MWQ3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVy
VHJlZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJl
ZVZpZXcuY3BwCkBAIC0xMTIsNiArMTEyLDExIEBAIHZvaWQgV2ViTGF5ZXJUcmVlVmlldzo6c3Rh
cnRQYWdlU2NhbGVBbmltYXRpb24oY29uc3QgV2ViUG9pbnQmIHNjcm9sbCwgYm9vbCB1c2VBCiAg
ICAgbV9wcml2YXRlLT5zdGFydFBhZ2VTY2FsZUFuaW1hdGlvbihJbnRTaXplKHNjcm9sbC54LCBz
Y3JvbGwueSksIHVzZUFuY2hvciwgbmV3UGFnZVNjYWxlLCBkdXJhdGlvblNlYyk7CiB9CiAKK2Jv
b2wgV2ViTGF5ZXJUcmVlVmlldzo6c2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1dCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1dCgpOworfQor
CiB2b2lkIFdlYkxheWVyVHJlZVZpZXc6OnNldE5lZWRzQW5pbWF0ZSgpCiB7CiAgICAgbV9wcml2
YXRlLT5zZXROZWVkc0FuaW1hdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcAppbmRleCAzMzU4NzliNjYwNTM0YTRiYzc1N2U1
MTc3NGYzMmZmZGM2N2U3ZmVjLi4zZmM5NTQyNzE0Yzk5NmQyNzRmMzg3ODhmZTg4NGVkOGQxZmNk
MmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVW
aWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVl
Vmlld0ltcGwuY3BwCkBAIC05NSw2ICs5NSwxMiBAQCB2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBs
OjpkaWRSZWNyZWF0ZUNvbnRleHQoYm9vbCBzdWNjZXNzKQogICAgICAgICBtX2NsaWVudC0+ZGlk
UmViaW5kR3JhcGhpY3NDb250ZXh0KHN1Y2Nlc3MpOwogfQogCit2b2lkIFdlYkxheWVyVHJlZVZp
ZXdJbXBsOjpkaWRDb21taXRGcmFtZSgpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBt
X2NsaWVudC0+ZGlkQ29tbWl0RnJhbWUoKTsKK30KKwogdm9pZCBXZWJMYXllclRyZWVWaWV3SW1w
bDo6ZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCkKIHsKICAgICBpZiAobV9jbGllbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaAppbmRleCBi
MWIyNmQwZmMzMzg2MDRmZTVjZjM4MDcxZjUwYThjMzU4NjQ1MmZiLi42NzhkMDY5NTRlYjRiZDQ0
YzIyZjc0MDE3ZWI1MDVkNDg4MjUwNDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWxlKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUNvbnRleHQoKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjcmVhdGVDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CisgICAgdmlydHVhbCB2
b2lkIGRpZENvbW1pdEZyYW1lKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdG
cmFtZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA1MmEwMjJjZTk2
M2JiNjkzYTEwYzVjMzdiNzFmZTJlZWUxMmY5ZTdjLi42OGVjMzZhNzNlMWVjMTNkMjE0ZDA5MDNi
MTcyNGE5ZmUwMTlkOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCkBAIC0xNDIsNiArMTQyLDcgQEAKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcu
aCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJWZWN0b3IuaCIKICNpbmNsdWRlICJXZWJWaWV3Q2xp
ZW50LmgiCisjaW5jbHVkZSAiV2ViV2lkZ2V0UmVuZGVyU3VyZmFjZS5oIgogI2luY2x1ZGUgPHd0
Zi9CeXRlQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgpAQCAtMzE5LDYgKzMyMCw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3
SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAgLCBtX3Blcm1pc3Npb25DbGllbnQoMCkK
ICAgICAsIG1fc3BlbGxDaGVja0NsaWVudCgwKQogICAgICwgbV9jaHJvbWVDbGllbnRJbXBsKHRo
aXMpCisgICAgLCBtX3NjaGVkdWxlckltcGwodGhpcywgY2xpZW50LT5yZW5kZXJTdXJmYWNlKCkp
CiAgICAgLCBtX2NvbnRleHRNZW51Q2xpZW50SW1wbCh0aGlzKQogICAgICwgbV9kcmFnQ2xpZW50
SW1wbCh0aGlzKQogICAgICwgbV9lZGl0b3JDbGllbnRJbXBsKHRoaXMpCkBAIC0xMzk1LDYgKzEz
OTcsMTEgQEAgdm9pZCBXZWJWaWV3SW1wbDo6Y29tcG9zaXRlKGJvb2wpCiAjZW5kaWYKIH0KIAor
V2ViV2lkZ2V0U2NoZWR1bGVyKiBXZWJWaWV3SW1wbDo6c2NoZWR1bGVyKCkKK3sKKyAgICByZXR1
cm4gJm1fc2NoZWR1bGVySW1wbDsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6c2V0TmVlZHNSZWRy
YXcoKQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKQEAgLTMyNTUsNiArMzI2
MiwxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYlNp
emUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbAogICAgIH0KIH0KIAordm9pZCBXZWJWaWV3
SW1wbDo6ZGlkQ29tbWl0RnJhbWUoKQoreworICAgIC8vIEZJWE1FOiBNb3ZlIHRoaXMgbG9naWMg
aW50byBXZWJXaWRnZXRTY2hlZHVsZXIgb25jZSBXZWJXaWRnZXRTY2hlZHVsZXIKKyAgICAvLyBv
d25zIFdlYkxheWVyVHJlZVZpZXcgYW5kIGl0cyBhc3NvY2lhdGVkIGNsaWVudCBpbnRlcmZhY2Uu
CisgICAgaWYgKG1fY2xpZW50LT5yZW5kZXJTdXJmYWNlKCkpCisgICAgICAgIG1fY2xpZW50LT5y
ZW5kZXJTdXJmYWNlKCktPmRpZEJlY29tZVJlYWR5Rm9yQWRkaXRpb25hbElucHV0KCk7Cit9CisK
IHZvaWQgV2ViVmlld0ltcGw6OmRpZENvbW1pdEFuZERyYXdGcmFtZSgpCiB7CiAgICAgaWYgKG1f
Y2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggMzgx
OWVjYjY1NTQxZTFkNTNkYTA4NjgxZDI2NjA4YmRjMzY1ZWE1Yi4uZWYzYTBjYTgzMDhiYjAxODM2
MTE1YTJhZGQ2OThjZDFiYmVmMjhhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oCkBAIC01Myw2ICs1Myw4IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2Vu
dGVySW1wbC5oIgogI2luY2x1ZGUgIlBhZ2VPdmVybGF5TGlzdC5oIgogI2luY2x1ZGUgIlVzZXJN
ZWRpYUNsaWVudEltcGwuaCIKKyNpbmNsdWRlICJXZWJXaWRnZXRJbXBsLmgiCisjaW5jbHVkZSAi
V2ViV2lkZ2V0U2NoZWR1bGVySW1wbC5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC05Niw3ICs5OCw3IEBAIGNsYXNzIFdlYk1vdXNl
V2hlZWxFdmVudDsKIGNsYXNzIFdlYlNldHRpbmdzSW1wbDsKIGNsYXNzIFdlYlRvdWNoRXZlbnQ7
CiAKLWNsYXNzIFdlYlZpZXdJbXBsIDogcHVibGljIFdlYlZpZXcsIHB1YmxpYyBXZWJMYXllclRy
ZWVWaWV3Q2xpZW50LCBwdWJsaWMgUmVmQ291bnRlZDxXZWJWaWV3SW1wbD4geworY2xhc3MgV2Vi
Vmlld0ltcGwgOiBwdWJsaWMgV2ViVmlldywgcHVibGljIFdlYldpZGdldEltcGwsIHB1YmxpYyBX
ZWJMYXllclRyZWVWaWV3Q2xpZW50LCBwdWJsaWMgUmVmQ291bnRlZDxXZWJWaWV3SW1wbD4gewog
cHVibGljOgogICAgIGVudW0gQXV0b1pvb21UeXBlIHsKICAgICAgICAgRG91YmxlVGFwLApAQCAt
MTE4LDYgKzEyMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFz
KiwgY29uc3QgV2ViUmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNoYW5nZWQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wgZmluaXNoKTsKKyAgICB2aXJ0dWFsIFdlYldp
ZGdldFNjaGVkdWxlciogc2NoZWR1bGVyKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzUmVk
cmF3KCk7CiAgICAgdmlydHVhbCBib29sIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRF
dmVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBtb3VzZUNhcHR1cmVMb3N0KCk7CkBAIC0xNDEsNiAr
MTQ0LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VXaW5kb3dSZXNpemVy
UmVjdCgpOwogICAgIHZpcnR1YWwgdm9pZCBpbnN0cnVtZW50QmVnaW5GcmFtZSgpOwogCisgICAg
Ly8gV2ViV2lkZ2V0SW1wbCBtZXRob2RzOgorICAgIHZpcnR1YWwgV2ViTGF5ZXJUcmVlVmlldyog
bGF5ZXJUcmVlVmlldygpOworCiAgICAgLy8gV2ViVmlldyBtZXRob2RzOgogICAgIHZpcnR1YWwg
dm9pZCBpbml0aWFsaXplTWFpbkZyYW1lKFdlYkZyYW1lQ2xpZW50Kik7CiAgICAgdmlydHVhbCB2
b2lkIHNldEF1dG9maWxsQ2xpZW50KFdlYkF1dG9maWxsQ2xpZW50Kik7CkBAIC0yNTgsNiArMjY0
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0
IFdlYlNpemUmLCBmbG9hdCk7CiAgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogY3Jl
YXRlQ29udGV4dDNEKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlYmluZEdyYXBoaWNzQ29udGV4
dChib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0RnJhbWUoKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBs
ZXRlU3dhcEJ1ZmZlcnMoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGUoKTsK
QEAgLTU3MCw2ICs1NzcsNyBAQCBwcml2YXRlOgogICAgIFdlYlNwZWxsQ2hlY2tDbGllbnQqIG1f
c3BlbGxDaGVja0NsaWVudDsKIAogICAgIENocm9tZUNsaWVudEltcGwgbV9jaHJvbWVDbGllbnRJ
bXBsOworICAgIFdlYldpZGdldFNjaGVkdWxlckltcGwgbV9zY2hlZHVsZXJJbXBsOwogICAgIENv
bnRleHRNZW51Q2xpZW50SW1wbCBtX2NvbnRleHRNZW51Q2xpZW50SW1wbDsKICAgICBEcmFnQ2xp
ZW50SW1wbCBtX2RyYWdDbGllbnRJbXBsOwogICAgIEVkaXRvckNsaWVudEltcGwgbV9lZGl0b3JD
bGllbnRJbXBsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV2lk
Z2V0SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV2lkZ2V0SW1wbC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdiY2Q2ZjA4OGI0NzZlMTEzZDMxN2I5OGM4ZWFkNDc4MDUzZWYwOGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXaWRnZXRJbXBsLmgK
QEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJXaWRnZXRJbXBsX2gK
KyNkZWZpbmUgV2ViV2lkZ2V0SW1wbF9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJMYXllclRyZWVWaWV3OworCisvLyBQcml2YXRlIGludGVyZmFjZSBiZXR3ZWVuIFdlYldpZGdl
dCBzdWJjbGFzc2VzIGFuZCB0aGUgV2ViV2lkZ2V0U2NoZWR1bGVyLgorY2xhc3MgV2ViV2lkZ2V0
SW1wbCB7CitwdWJsaWM6CisgICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0FjdGl2ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdlYkxheWVyVHJlZVZpZXcqIGxheWVy
VHJlZVZpZXcoKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB+V2ViV2lkZ2V0SW1wbCgpIHsgfQor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV2lkZ2V0U2NoZWR1bGVySW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXaWRnZXRTY2hlZHVsZXJJbXBsLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZDBiZmUyNjViYTM5YzczNTNkNzgwNjZkZjU1OTc0MjFmOGM5NDVjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV2lkZ2V0U2NoZWR1bGVySW1wbC5j
cHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
CisjaW5jbHVkZSAiV2ViV2lkZ2V0U2NoZWR1bGVySW1wbC5oIgorCisjaW5jbHVkZSAiV2ViV2lk
Z2V0SW1wbC5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYkxheWVyVHJlZVZpZXcuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dlYldpZGdldFNjaGVkdWxlckltcGw6OldlYldpZGdldFNjaGVk
dWxlckltcGwoV2ViV2lkZ2V0SW1wbCogd2lkZ2V0LCBXZWJXaWRnZXRSZW5kZXJTdXJmYWNlKiBz
dXJmYWNlKQorICAgIDogbV93aWRnZXQod2lkZ2V0KQorICAgICwgbV9zdXJmYWNlKHN1cmZhY2Up
Cit7Cit9CisKK3ZvaWQgV2ViV2lkZ2V0U2NoZWR1bGVySW1wbDo6c2V0TmVlZHNSZWRyYXcoKSBj
b25zdAoreworICAgIEFTU0VSVChtX3dpZGdldC0+aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0
aXZlKCkpOworICAgIG1fd2lkZ2V0LT5sYXllclRyZWVWaWV3KCktPnNldE5lZWRzUmVkcmF3KCk7
Cit9CisKK2Jvb2wgV2ViV2lkZ2V0U2NoZWR1bGVySW1wbDo6c2hvdWxkSG9sZEFkZGl0aW9uYWxJ
bnB1dCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fd2lkZ2V0LT5pc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdBY3RpdmUoKSk7CisgICAgcmV0dXJuIG1fd2lkZ2V0LT5sYXllclRyZWVWaWV3KCktPnNo
b3VsZEhvbGRBZGRpdGlvbmFsSW5wdXQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViV2lkZ2V0U2NoZWR1bGVySW1wbC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViV2lkZ2V0U2NoZWR1bGVySW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3YzRh
NjZmZmFiNjI3NDFhZDQ3MTZjNzE4MTNkYjIzNjBlZDA2ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXaWRnZXRTY2hlZHVsZXJJbXBsLmgKQEAgLTAs
MCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJXaWRnZXRTY2hlZHVsZXJJbXBs
X2gKKyNkZWZpbmUgV2ViV2lkZ2V0U2NoZWR1bGVySW1wbF9oCisKKyNpbmNsdWRlICJXZWJXaWRn
ZXRTY2hlZHVsZXIuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViV2lkZ2V0SW1wbDsKK2NsYXNzIFdlYldpZGdldFJlbmRlclN1
cmZhY2U7CisKKworY2xhc3MgV2ViV2lkZ2V0U2NoZWR1bGVySW1wbCA6IHB1YmxpYyBXZWJXaWRn
ZXRTY2hlZHVsZXIgeworcHVibGljOgorICAgIFdlYldpZGdldFNjaGVkdWxlckltcGwoV2ViV2lk
Z2V0SW1wbCosIFdlYldpZGdldFJlbmRlclN1cmZhY2UqKTsKKyAgICB+V2ViV2lkZ2V0U2NoZWR1
bGVySW1wbCgpIHsgfQorCisgICAgLy8gV2ViV2lkZ2V0U2NoZWR1bGVyIGltcGxlbWVudGF0aW9u
LgorICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1JlZHJhdygpIGNvbnN0OworICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRIb2xkQWRkaXRpb25hbElucHV0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAg
V2ViV2lkZ2V0SW1wbCogbV93aWRnZXQ7CisgICAgV2ViV2lkZ2V0UmVuZGVyU3VyZmFjZSogbV9z
dXJmYWNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKaW5k
ZXggZmU3ODhmYmFlZWU3N2U3OTNhMDAzOGVjN2FmMjkyNjU1ZmZjNzQ2Yi4uZDE0ZTk0ZWIzN2M3
N2IwNTIxZmMyOWYwNzYzYzJhMWZjMzA3NzdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCkBAIC0yMzksNiArMjM5LDEw
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3Jl
YXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQod2ViQ29udGV4dC5yZWxlYXNlKCksIEdy
YXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdyk7CiAgICAgfQogCisg
ICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEZyYW1lKCkKKyAgICB7CisgICAgfQorCiAgICAgdmly
dHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZSgpCiAgICAgewogICAgICAgICBtX3Rlc3RI
b29rcy0+ZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0Zha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvRmFrZUNDTGF5ZXJUcmVlSG9zdENsaWVudC5oCmluZGV4IDM4ODc2
ZDczN2ZiNTJhYTZkMDNjNzFiZmZlNDE3MjhjOGNjY2YwYjUuLjQxYTFiYWJjZmU0M2NhMzk3OTgz
MjFhZGQ5NzllODA4ODJhNWMxMjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvRmFrZUNDTGF5ZXJUcmVlSG9zdENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvRmFrZUNDTGF5ZXJUcmVlSG9zdENsaWVudC5oCkBAIC00Myw2ICs0Myw3IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbXBvc2l0b3JNb2NrR3JhcGhpY3NDb250
ZXh0M0QoYXR0cnMpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVDb250ZXh0
KGJvb2wgc3VjY2VzcykgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEZyYW1lKCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZSgpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCkgeyB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131578</attachid>
            <date>2012-03-13 02:59:36 -0700</date>
            <delta_ts>2012-03-28 15:51:50 -0700</delta_ts>
            <desc>should build now</desc>
            <filename>bug-80977-20120313025935.patch</filename>
            <type>text/plain</type>
            <size>33689</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA4ZWI3MTFhYWY2MTM3
MzQzOGRkNWU4ZTA4ZDU2ZjZiNjk1NWFjODIyLi5jNTY3NmRlMGQ5N2I1NWE0NGY4YWY2MzJkYzA4
ZDNmNzNmNjI1ZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0xMyAg
TmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBJbnRy
b2R1Y2UgV2ViV2lkZ2V0UmVuZGVyU3VyZmFjZSBhbmQgV2ViV2lkZ2V0U2NoZWR1bGVyIGFuZCBy
b3V0ZSBpbnB1dC1yZWxhdGVkIHRocm90dGxpbmcgdGhyb3VnaCB0aGVtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDk3NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYkxh
eWVyVHJlZVZpZXcuaDoKKyAgICAgICAgKFdlYkxheWVyVHJlZVZpZXcpOgorICAgICAgICAqIGNo
cm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbW1pdEZyYW1lKToKKwogMjAxMi0wMy0wOCAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVzZSBhbiBl
eHBsaWNpdCBhdHRyaWJ1dGUgdG8gc2lnbmFsIHRoYXQgYSBjb250ZXh0IHByZWZlcnMgdG8gdXNl
IGEgZGlzY3JldGUgR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY2ZmIxNmJlYTMzMTIyODUyOTkyODRjZTg4
YmNjYmZmYWNiNTc2MS4uMWRhNWZlZjA4Njc5ZWU0ZmNlMmI3NjU0ZDJhZWI2MzA4ZjU5ODA0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAzLTEzICBOYXQgRHVjYSAgPG5kdWNh
QGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEludHJvZHVjZSBXZWJXaWRnZXRS
ZW5kZXJTdXJmYWNlIGFuZCBXZWJXaWRnZXRTY2hlZHVsZXIgYW5kIHJvdXRlIGlucHV0LXJlbGF0
ZWQgdGhyb3R0bGluZyB0aHJvdWdoIHRoZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwOTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojpjb21taXRD
b21wbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNob3VsZEhvbGRB
ZGRpdGlvbmFsSW5wdXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChDQ0xheWVy
VHJlZUhvc3RDbGllbnQpOgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Byb3h5Lmg6CisgICAgICAgIChDQ1Byb3h5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVh
ZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFkUHJveHk6OnNob3Vs
ZEhvbGRBZGRpdGlvbmFsSW5wdXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oOgorICAgICAg
ICAoQ0NTaW5nbGVUaHJlYWRQcm94eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFBy
b3h5OjpzaG91bGRIb2xkQWRkaXRpb25hbElucHV0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaDoKKyAg
ICAgICAgKENDVGhyZWFkUHJveHkpOgorCiAyMDEyLTAzLTEyICBHZW9yZ2UgU3RhaWtvcyAgPHN0
YWlrb3NAd2Via2l0Lm9yZz4KIAogICAgICAgICBJdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gcmV0
dXJuIGNvbnN0IHVuc2lnbmVkLCBhbmQgR0NDIHdhcm5zIGFib3V0IGl0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCAyMDRmYzExOWZjOWRmYjlkZGZiZjEyOGE2MGQ2NDE0NmRhZjU3OWE1
Li45OWEzNmQzZDNmYzhlMzdkMDNkMmEwNTY5M2Y5MmNjYjUzNmE3OWRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTAzLTEzICBOYXQgRHVjYSAgPG5k
dWNhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEludHJvZHVjZSBXZWJXaWRn
ZXRSZW5kZXJTdXJmYWNlIGFuZCBXZWJXaWRnZXRTY2hlZHVsZXIgYW5kIHJvdXRlIGlucHV0LXJl
bGF0ZWQgdGhyb3R0bGluZyB0aHJvdWdoIHRoZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgwOTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJX
aWRnZXQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJXaWRnZXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJXaWRnZXQ6OnNjaGVkdWxlcik6CisgICAgICAgICogcHVibGljL1dlYldp
ZGdldENsaWVudC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYldpZGdldENsaWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudDo6cmVuZGVyU3VyZmFjZSk6Cisg
ICAgICAgICogcHVibGljL1dlYldpZGdldFJlbmRlclN1cmZhY2UuaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViV2lkZ2V0UmVuZGVyU3VyZmFjZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYldpZGdldFJlbmRlclN1cmZhY2U6On5XZWJXaWRnZXRSZW5kZXJTdXJmYWNlKToK
KyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0U2NoZWR1bGVyLmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYldpZGdldFNjaGVkdWxlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYldpZGdldFNjaGVkdWxlcjo6fldlYldpZGdldFNjaGVkdWxlcik6CisgICAgICAgICogc3Jj
L1dlYkxheWVyVHJlZVZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3
OjpzaG91bGRIb2xkQWRkaXRpb25hbElucHV0KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5
ZXJUcmVlVmlld0ltcGw6OmRpZENvbW1pdEZyYW1lKToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmg6CisgICAgICAgIChXZWJMYXllclRyZWVW
aWV3SW1wbCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnNjaGVkdWxlcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6ZGlkQ29tbWl0RnJhbWUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgor
ICAgICAgICAoV2ViVmlld0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJXaWRnZXRJbXBsLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYldpZGdldEltcGwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJXaWRnZXRJbXBsOjp+V2ViV2lkZ2V0SW1wbCk6CisgICAgICAgICogc3Jj
L1dlYldpZGdldFNjaGVkdWxlckltcGwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldpZGdldFNjaGVkdWxlckltcGw6OldlYldpZGdldFNjaGVkdWxl
ckltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRTY2hlZHVsZXJJbXBsOjpzZXROZWVk
c1JlZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldFNjaGVkdWxlckltcGw6OnNob3Vs
ZEhvbGRBZGRpdGlvbmFsSW5wdXQpOgorICAgICAgICAqIHNyYy9XZWJXaWRnZXRTY2hlZHVsZXJJ
bXBsLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYldpZGdldFNjaGVk
dWxlckltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXRTY2hlZHVsZXJJbXBsOjp+V2Vi
V2lkZ2V0U2NoZWR1bGVySW1wbCk6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVz
dC5jcHA6CisgICAgICAgIChXVEY6Ok1vY2tMYXllclRyZWVIb3N0Q2xpZW50OjpkaWRDb21taXRG
cmFtZSk6CisgICAgICAgIChNb2NrTGF5ZXJUcmVlSG9zdENsaWVudCk6CisgICAgICAgICogdGVz
dHMvRmFrZUNDTGF5ZXJUcmVlSG9zdENsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RmFrZUND
TGF5ZXJUcmVlSG9zdENsaWVudDo6ZGlkQ29tbWl0RnJhbWUpOgorCiAyMDEyLTAzLTEyICBOYXQg
RHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEZvcmNlIGNv
bXBvc2l0ZUFuZFJlYWRiYWNrIHRocm91Z2ggcmVndWxhciBzY2hlZHVsaW5nIGZsb3cKZGlmZiAt
LWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5o
IGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKaW5k
ZXggM2VmMjk1ZDk0NTU5ODMxOTczY2NhYjVlYzI1MGMyNzAxODhkNDA0ZS4uZTYxNDAyMGNiNzhj
NTExNWY4NjNiZGExMDFjYjUxM2FlZWU2NWE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKKysrIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKQEAgLTEyMyw2ICsxMjMsOSBAQCBw
dWJsaWM6CiAKICAgICAvLyBGbG93IGNvbnRyb2wgYW5kIHNjaGVkdWxpbmcgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKKyAgICAvLyBXaGV0aGVyIGFkZGl0aW9uYWwg
aW5wdXQgc2hvdWxkIGJlIHdpdGhlbGQgdW50aWwgdGhlIG5leHQgZnJhbWUuCisgICAgV0VCS0lU
X0VYUE9SVCBib29sIHNob3VsZEhvbGRBZGRpdGlvbmFsSW5wdXQoKSBjb25zdDsKKwogICAgIC8v
IFJlcXVlc3RzIGFuIHVwZGF0ZUFuaW1hdGlvbnMoKSBjYWxsLgogICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBzZXROZWVkc0FuaW1hdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmggYi9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAppbmRleCA1YzBiOWVmOWEy
YTJjNjEzYjExOTAwYzEzZjg5OGYyMjgzOWI0NjViLi5hNzNiZTBiYzdmMGI0M2E2OTRkY2EwYWNj
MTY2ZWRlOWFiYTk1Mjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaApAQCAtNTIsNiArNTIsNyBAQCBwdWJs
aWM6CiAgICAgLy8gY29udGV4dCBldmVudCkuCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlYmluZEdy
YXBoaWNzQ29udGV4dChib29sIHN1Y2Nlc3MpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBkaWRD
b21taXRGcmFtZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKSA9IDA7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDM0YmNlMTE4MTAwZmE1ZmEzOGQ5
MzUyODIwZDU3MDhlOWZlZGRjYTIuLjQyODNjZjQzY2MxOWNlODdkM2VjZmQyOWEyMTVhMTM3MjVi
YTFmZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtMjI1LDYgKzIyNSw3
IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojpjb21taXRDb21wbGV0ZSgpCiAgICAgbV9kZWxldGVU
ZXh0dXJlQWZ0ZXJDb21taXRMaXN0LmNsZWFyKCk7CiAgICAgY2xlYXJQZW5kaW5nVXBkYXRlKCk7
CiAgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT51bnByb3RlY3RBbGxUZXh0dXJlcygpOwor
ICAgIG1fY2xpZW50LT5kaWRDb21taXRBbmREcmF3RnJhbWUoKTsKIH0KIAogUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGVDb250ZXh0KCkKQEAgLTI4
Nyw2ICsyODgsMTEgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNldE5lZWRzQW5pbWF0ZSgpCiAg
ICAgbV9wcm94eS0+c2V0TmVlZHNBbmltYXRlKCk7CiB9CiAKK2Jvb2wgQ0NMYXllclRyZWVIb3N0
OjpzaG91bGRIb2xkQWRkaXRpb25hbElucHV0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcm94
eS0+c2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1dCgpOworfQorCiB2b2lkIENDTGF5ZXJUcmVlSG9z
dDo6c2V0TmVlZHNDb21taXQoKQogewogICAgIGlmIChDQ1RocmVhZFByb3h5OjppbXBsVGhyZWFk
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IGQ1MjYyMjYyZDRmMmNjYTU0NDk2
Y2ZiYmE3YTU1MGRiOTMyYmE0YWUuLjk3YWZlYTVjZDMyYWEyMWYxNzY2Y2M4YjgzMTZmMTAwZjU0
MTBkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWxlKSA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVDb250ZXh0KCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNyZWF0ZUNvbnRleHQoYm9vbCBzdWNjZXNzKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRpZENvbW1pdEZyYW1lKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmRE
cmF3RnJhbWUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMo
KSA9IDA7CiAKQEAgLTE3Miw2ICsxNzMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb3NlQ29udGV4
dChpbnQgbnVtVGltZXMpOwogCiAgICAgdm9pZCBzZXROZWVkc0FuaW1hdGUoKTsKKworICAgIGJv
b2wgc2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1dCgpIGNvbnN0OworCiAgICAgLy8gdmlydHVhbCBm
b3IgdGVzdGluZwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0NvbW1pdCgpOwogICAgIHZvaWQg
c2V0TmVlZHNSZWRyYXcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDUHJveHkuaAppbmRleCAwMTYyMjZjYTUxMjAxMzFmY2ZlM2Zj
MTMzMTlhYzcxNjA4NzY3NTliLi5mOTQ1MjE2MzYwY2Q4ZTg5NzI0OWEyMGNhMDkwOGY4ZDIwOWQz
OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NQcm94eS5oCkBAIC04MSw2ICs4MSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgY29uc3QgTGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcyYgbGF5ZXJSZW5kZXJlckNhcGFiaWxp
dGllcygpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRIb2xkQWRkaXRpb25h
bElucHV0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0FuaW1hdGUoKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzQ29tbWl0KCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXROZWVkc1JlZHJhdygpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQ
cm94eS5jcHAKaW5kZXggYjZmYzc2YjUyZThiZGY0ZmVhOTc1NTBhMjE2ZWYxMzJmZjdiNWJmNS4u
MzRhOWIxZTJkNjA2ZjkxMjlkZTYwNzNiYWM0NDY4YzFjOTQ4NWU3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKQEAgLTE4NSw2ICsxODUsMTMgQEAgdm9pZCBDQ1Np
bmdsZVRocmVhZFByb3h5Ojpsb3NlQ29udGV4dCgpCiAgICAgbV9jb250ZXh0TG9zdCA9IHRydWU7
CiB9CiAKK2Jvb2wgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1
dCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFdoaWxlIHRoZSBjbGllbnQgaGFuZGxlcyBpbnZh
bGlkYXRpb24gaW4gdGhlIENDU2luZ2xlVGhyZWFkUHJveHksIHdlIGNhbm5vdAorICAgIC8vIHJl
dHVybiBhbnl0aGluZyBtZWFuaW5nZnVsIGhlcmUuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2
b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OnNldE5lZWRzQW5pbWF0ZSgpCiB7CiAgICAgLy8gQ0NU
aHJlYWQtb25seSBmZWF0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgKaW5k
ZXggZWJiZDk2ZTJjMzg4MjIxODlkMmI5MGIyMWU2ZDk3NmEzNjdjMGU5Yy4uMTE5MzM1ODBmMDZi
YzI2OTRlNTY0NWQyMTA0ZDAzYjJhMTlmNGE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhy
ZWFkUHJveHkuaApAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgY29t
cG9zaXRvcklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbXBvc2l0b3JJZGVudGlmaWVy
OyB9CiAgICAgdmlydHVhbCBjb25zdCBMYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzJiBsYXllclJl
bmRlcmVyQ2FwYWJpbGl0aWVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGxvc2VDb250ZXh0
KCk7CisgICAgdmlydHVhbCBib29sIHNob3VsZEhvbGRBZGRpdGlvbmFsSW5wdXQoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNBbmltYXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dE5lZWRzQ29tbWl0KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGUyY2U2NzVlNTA1YTc0YTFiODQ1MDQxZmE2NTMz
Mzg5YTVhNzQwZTIuLjU4OGQyMjkyNWU4NjI0NjE1MjUxY2ViOGQ2ZWE0YmRlMDg5MTQ3NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0yNDUsNiArMjQ1LDExIEBAIHZvaWQgQ0NU
aHJlYWRQcm94eTo6bG9zZUNvbnRleHQoKQogICAgIENDUHJveHk6OmltcGxUaHJlYWQoKS0+cG9z
dFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpkaWRMb3NlQ29u
dGV4dE9uSW1wbFRocmVhZCkpOwogfQogCitib29sIENDVGhyZWFkUHJveHk6OnNob3VsZEhvbGRB
ZGRpdGlvbmFsSW5wdXQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbW1pdFJlcXVlc3RlZDsK
K30KKwogdm9pZCBDQ1RocmVhZFByb3h5OjpzZXROZWVkc0FuaW1hdGUoKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggOWU1MjRhNzYz
ZTI4NTBmZDIwOWMxM2UzNTI2MTJlYzVjYTMwNDllMS4uODFkMGQ3MzYwNmI4MDg0NWI3ZWEwMDAy
NmJmNWY5ZTQ2YmU3ZmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtNjIsNiArNjIs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgY29tcG9zaXRvcklkZW50aWZpZXIoKSBjb25z
dDsKICAgICB2aXJ0dWFsIGNvbnN0IExheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMmIGxheWVyUmVu
ZGVyZXJDYXBhYmlsaXRpZXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbG9zZUNvbnRleHQo
KTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1dCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0FuaW1hdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
TmVlZHNDb21taXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXcoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCBlY2I4N2E3MzlmZDJhY2NlMmRhMmRmNTI2OTc1MTQw
OTliNWZiYTkxLi4zYTc2Zjc3ZTY4ZGJmZDczOTc3NmViNjNkODcwZmU4MTY4NDM2N2YzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yNzQsNiArMjc0LDggQEAKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYlZpZXdDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJXaWRnZXQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJXaWRnZXRDbGllbnQuaCcs
CisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJXaWRnZXRSZW5kZXJTdXJmYWNlLmgnLAorICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViV2lkZ2V0U2NoZWR1bGVySW5mby5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYldvcmtlckluZm8uaCcsCiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJXb3JrZXJSdW5Mb29wLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvYW5kcm9pZC9X
ZWJJbnB1dEV2ZW50RmFjdG9yeS5oJywKQEAgLTY3Niw2ICs2NzgsOSBAQAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViVXNlck1lZGlhUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
V2ViVmlld0ltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlZpZXdJbXBsLmgnLAor
ICAgICAgICAgICAgICAgICdzcmMvV2ViV2lkZ2V0SW1wbC5oJywKKyAgICAgICAgICAgICAgICAn
c3JjL1dlYldpZGdldFNjaGVkdWxlckltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dl
YldpZGdldFNjaGVkdWxlckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJXb3JrZXJC
YXNlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJXb3JrZXJCYXNlLmgnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAppbmRleCBlOTcxMmQ3NDNjM2UyNDBkZDU1ODUxMDhm
YzNhNTRkZDA1YzQwNTg3Li5jNTEzNDc3YjAwMDM2ZGEwYjFhNTQ4ZmU2YzY5MTI2ZTQxNzg4ZThm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaApAQCAtNDcsNiAr
NDcsNyBAQCBjbGFzcyBXZWJJbnB1dEV2ZW50OwogY2xhc3MgV2ViTW91c2VFdmVudDsKIGNsYXNz
IFdlYlN0cmluZzsKIHN0cnVjdCBXZWJQb2ludDsKK2NsYXNzIFdlYldpZGdldFNjaGVkdWxlcjsK
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBXZWJWZWN0b3I7CiAKIGNsYXNzIFdlYldpZGdl
dCB7CkBAIC0xMDcsMTEgKzEwOCwxNCBAQCBwdWJsaWM6CiAgICAgLy8gYW5pbWF0ZSBvciBsYXlv
dXQgaW4gdGhpcyBjYXNlLgogICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gp
ID0gMDsKIAotICAgIC8vIFRlbXBvcmFyeSBtZXRob2QgZm9yIHRoZSBlbWJlZGRlciB0byBub3Rp
ZnkgdGhlIFdlYldpZGdldCB0aGF0IHRoZSB3aWRnZXQKLSAgICAvLyBoYXMgdGFrZW4gZGFtYWdl
LCBlLmcuIGR1ZSB0byBhIHdpbmRvdyBleHBvc2UuIFRoaXMgbWV0aG9kIHdpbGwgYmUKLSAgICAv
LyByZW1vdmVkIHdoZW4gdGhlIFdlYldpZGdldCBpbnZlcnNpb24gcGF0Y2ggbGFuZHMgLS0tIGh0
dHA6Ly9jcmJ1Zy5jb20vMTEyODM3CisgICAgLy8gRGVwcmVjYXRlZCBtZXRob2QgZm9yIHRoZSBl
bWJlZGRlciB0byBub3RpZnkgdGhlIFdlYldpZGdldCB0aGF0IHRoZSB3aWRnZXQKKyAgICAvLyBo
YXMgdGFrZW4gZGFtYWdlLCBlLmcuIGR1ZSB0byBhIHdpbmRvdyBleHBvc2UuIENhbGxlcnMgb2Yg
dGhpcyBtZXRob2Qgc2hvdWxkIGluc3RlYWQKKyAgICAvLyBiZSBjYWxsaW5nIHNjaGVkdWxlcigp
LT5zZXROZWVkc1JlZHJhdygpLgogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1JlZHJhdygpIHsg
fQogCisgICAgLy8gUmV0dXJucyB0aGUgV2ViV2lkZ2V0J3Mgc2NoZWR1bGVyLgorICAgIHZpcnR1
YWwgV2ViV2lkZ2V0U2NoZWR1bGVyKiBzY2hlZHVsZXIoKSB7IHJldHVybiAwOyB9CisKICAgICAv
LyBDYWxsZWQgdG8gaW5mb3JtIHRoZSBXZWJXaWRnZXQgb2YgYSBjaGFuZ2UgaW4gdGhlbWUuCiAg
ICAgLy8gSW1wbGVtZW50b3JzIHRoYXQgY2FjaGUgcmVuZGVyZWQgY29waWVzIG9mIHdpZGdldHMg
bmVlZCB0byByZS1yZW5kZXIKICAgICAvLyBvbiByZWNlaXZpbmcgdGhpcyBtZXNzYWdlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCmluZGV4IDI0
Y2Q5YzZhY2Y5YmQxZjgzZGFkZTEzODZiMjNlZWU3Y2FmN2FkMzQuLjZmYTljYWRmYjkyNzRhM2Uw
NTU5NWVkN2ZjZjI1NjY0NjUzYmI4Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYldpZGdldENsaWVudC5oCkBAIC00MCwxMSArNDAsMTYgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFdlYlN0cmluZzsKIGNsYXNzIFdlYldpZGdldDsKK2NsYXNzIFdlYldp
ZGdldFJlbmRlclN1cmZhY2U7CiBzdHJ1Y3QgV2ViQ3Vyc29ySW5mbzsKIHN0cnVjdCBXZWJTaXpl
OwogCiBjbGFzcyBXZWJXaWRnZXRDbGllbnQgewogcHVibGljOgorICAgIC8vIENhbGxlZCBieSB0
aGUgV2ViV2lkZ2V0IHRvIGdldCBpdHMgYXNzb2NpYXRlZCBXZWJXaWRnZXRSZW5kZXJTdXJmYWNl
LgorICAgIC8vIFRoZSBsaWZldGltZSBvZiB0aGUgcmVuZGVyU3VyZmFjZSBzaG91bGQgYmUgY2xp
ZW50LW1hbmFnZWQuCisgICAgdmlydHVhbCBXZWJXaWRnZXRSZW5kZXJTdXJmYWNlKiByZW5kZXJT
dXJmYWNlKCkgY29uc3QgeyByZXR1cm4gMDsgfQorCiAgICAgLy8gQ2FsbGVkIHdoZW4gYSByZWdp
b24gb2YgdGhlIFdlYldpZGdldCBuZWVkcyB0byBiZSByZS1wYWludGVkLgogICAgIHZpcnR1YWwg
dm9pZCBkaWRJbnZhbGlkYXRlUmVjdChjb25zdCBXZWJSZWN0JikgeyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldFJlbmRlclN1cmZhY2UuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldFJlbmRlclN1cmZhY2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYTcyZjUxN2JjMDNiZjRjOWYyMjZkYjIxM2Y2NjNlNGI3ZTlkMDhlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0UmVu
ZGVyU3VyZmFjZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2Vi
V2lkZ2V0UmVuZGVyU3VyZmFjZV9oCisjZGVmaW5lIFdlYldpZGdldFJlbmRlclN1cmZhY2VfaAor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViV2lkZ2V0UmVuZGVyU3VyZmFjZSB7Citw
dWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGRpZEJlY29tZVJlYWR5Rm9yQWRkaXRpb25hbElucHV0
KCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgfldlYldpZGdldFJlbmRlclN1cmZhY2UoKSB7IH0K
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldFNjaGVkdWxlci5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0U2NoZWR1bGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTNh
MzRiMjVkNWMxOGM3MjE5MGM0MDgwOGFhYjY1NzIxYWVmM2ZkNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldFNjaGVkdWxlci5oCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViV2lkZ2V0U2NoZWR1bGVyX2gK
KyNkZWZpbmUgV2ViV2lkZ2V0U2NoZWR1bGVyX2gKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJXaWRnZXRTY2hlZHVsZXIgeworcHVibGljOgorICAgIC8vIE5vdGlmaWVzIHRoZSBzY2hl
ZHVsZXIgdGhhdCBpdHMgd2lkZ2V0IGhhcyB0YWtlbiBkYW1hZ2UsIGUuZy4gZHVlIHRvIGEKKyAg
ICAvLyB3aW5kb3cgZXhwb3NlLCBhbmQgbmVlZHMgYSByZWRyYXcuCisgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzUmVkcmF3KCkgY29uc3QgPSAwOworCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIGFk
ZGl0aW9uYWwgaW5wdXRzIHNob3VsZCBiZSBoZWxkIHVudGlsIHRvbGQKKyAgICAvLyBvdGhlcndp
c2UgdmlhIFdlYldpZGdldFJlbmRlclN1cmZhY2U6OmRpZEJlY29tZVJlYWR5Rm9yQWRkaXRpb25h
bElucHV0KCkuCisgICAgdmlydHVhbCBib29sIHNob3VsZEhvbGRBZGRpdGlvbmFsSW5wdXQoKSBj
b25zdCA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB+V2ViV2lkZ2V0U2NoZWR1bGVyKCkgeyB9Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXcuY3BwCmluZGV4IDMzMTRkYzJmNTQ0YzFjYThj
NTljNDcyYmMwMjVlOGMwMDdmNzAxZjAuLjcwNDAzOWI1MmM3NjAwN2Q2NWEzNDlkNjUzODJmNjlm
Y2U2MWQ3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVy
VHJlZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJl
ZVZpZXcuY3BwCkBAIC0xMTIsNiArMTEyLDExIEBAIHZvaWQgV2ViTGF5ZXJUcmVlVmlldzo6c3Rh
cnRQYWdlU2NhbGVBbmltYXRpb24oY29uc3QgV2ViUG9pbnQmIHNjcm9sbCwgYm9vbCB1c2VBCiAg
ICAgbV9wcml2YXRlLT5zdGFydFBhZ2VTY2FsZUFuaW1hdGlvbihJbnRTaXplKHNjcm9sbC54LCBz
Y3JvbGwueSksIHVzZUFuY2hvciwgbmV3UGFnZVNjYWxlLCBkdXJhdGlvblNlYyk7CiB9CiAKK2Jv
b2wgV2ViTGF5ZXJUcmVlVmlldzo6c2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1dCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1dCgpOworfQor
CiB2b2lkIFdlYkxheWVyVHJlZVZpZXc6OnNldE5lZWRzQW5pbWF0ZSgpCiB7CiAgICAgbV9wcml2
YXRlLT5zZXROZWVkc0FuaW1hdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcAppbmRleCAzMzU4NzliNjYwNTM0YTRiYzc1N2U1
MTc3NGYzMmZmZGM2N2U3ZmVjLi4zZmM5NTQyNzE0Yzk5NmQyNzRmMzg3ODhmZTg4NGVkOGQxZmNk
MmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVW
aWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVl
Vmlld0ltcGwuY3BwCkBAIC05NSw2ICs5NSwxMiBAQCB2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBs
OjpkaWRSZWNyZWF0ZUNvbnRleHQoYm9vbCBzdWNjZXNzKQogICAgICAgICBtX2NsaWVudC0+ZGlk
UmViaW5kR3JhcGhpY3NDb250ZXh0KHN1Y2Nlc3MpOwogfQogCit2b2lkIFdlYkxheWVyVHJlZVZp
ZXdJbXBsOjpkaWRDb21taXRGcmFtZSgpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBt
X2NsaWVudC0+ZGlkQ29tbWl0RnJhbWUoKTsKK30KKwogdm9pZCBXZWJMYXllclRyZWVWaWV3SW1w
bDo6ZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCkKIHsKICAgICBpZiAobV9jbGllbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaAppbmRleCBi
MWIyNmQwZmMzMzg2MDRmZTVjZjM4MDcxZjUwYThjMzU4NjQ1MmZiLi42NzhkMDY5NTRlYjRiZDQ0
YzIyZjc0MDE3ZWI1MDVkNDg4MjUwNDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWxlKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUNvbnRleHQoKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjcmVhdGVDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CisgICAgdmlydHVhbCB2
b2lkIGRpZENvbW1pdEZyYW1lKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdG
cmFtZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA1MmEwMjJjZTk2
M2JiNjkzYTEwYzVjMzdiNzFmZTJlZWUxMmY5ZTdjLi5lZmUzYjhiZGUyMTFiNjVhYTE3MTk2ZDVl
OTM4MDkyYWQyYzhhYzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCkBAIC0xNDIsNiArMTQyLDcgQEAKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcu
aCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJWZWN0b3IuaCIKICNpbmNsdWRlICJXZWJWaWV3Q2xp
ZW50LmgiCisjaW5jbHVkZSAiV2ViV2lkZ2V0UmVuZGVyU3VyZmFjZS5oIgogI2luY2x1ZGUgPHd0
Zi9CeXRlQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgpAQCAtMzE5LDYgKzMyMCw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3
SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAgLCBtX3Blcm1pc3Npb25DbGllbnQoMCkK
ICAgICAsIG1fc3BlbGxDaGVja0NsaWVudCgwKQogICAgICwgbV9jaHJvbWVDbGllbnRJbXBsKHRo
aXMpCisgICAgLCBtX3NjaGVkdWxlckltcGwodGhpcywgY2xpZW50LT5yZW5kZXJTdXJmYWNlKCkp
CiAgICAgLCBtX2NvbnRleHRNZW51Q2xpZW50SW1wbCh0aGlzKQogICAgICwgbV9kcmFnQ2xpZW50
SW1wbCh0aGlzKQogICAgICwgbV9lZGl0b3JDbGllbnRJbXBsKHRoaXMpCkBAIC0xMjUwLDYgKzEy
NTIsMTEgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5zdHJ1bWVudEJlZ2luRnJhbWUoKQogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQmVnaW5GcmFtZShtX3BhZ2UuZ2V0KCkpOwogfQog
CitXZWJMYXllclRyZWVWaWV3KiBXZWJWaWV3SW1wbDo6bGF5ZXJUcmVlVmlldygpCit7CisgICAg
cmV0dXJuICZtX2xheWVyVHJlZVZpZXc7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OmFuaW1hdGUo
ZG91YmxlIGZyYW1lQmVnaW5UaW1lKQogewogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9G
UkFNRSkKQEAgLTEzOTUsNiArMTQwMiwxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjb21wb3NpdGUo
Ym9vbCkKICNlbmRpZgogfQogCitXZWJXaWRnZXRTY2hlZHVsZXIqIFdlYlZpZXdJbXBsOjpzY2hl
ZHVsZXIoKQoreworICAgIHJldHVybiAmbV9zY2hlZHVsZXJJbXBsOworfQorCiB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXROZWVkc1JlZHJhdygpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQpAQCAtMzI1NSw2ICszMjY3LDE0IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFwcGx5U2Nyb2xs
QW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHBhZ2VTY2FsCiAgICAg
fQogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpkaWRDb21taXRGcmFtZSgpCit7CisgICAgLy8gRklY
TUU6IE1vdmUgdGhpcyBsb2dpYyBpbnRvIFdlYldpZGdldFNjaGVkdWxlciBvbmNlIFdlYldpZGdl
dFNjaGVkdWxlcgorICAgIC8vIG93bnMgV2ViTGF5ZXJUcmVlVmlldyBhbmQgaXRzIGFzc29jaWF0
ZWQgY2xpZW50IGludGVyZmFjZS4KKyAgICBpZiAobV9jbGllbnQtPnJlbmRlclN1cmZhY2UoKSkK
KyAgICAgICAgbV9jbGllbnQtPnJlbmRlclN1cmZhY2UoKS0+ZGlkQmVjb21lUmVhZHlGb3JBZGRp
dGlvbmFsSW5wdXQoKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ29tbWl0QW5kRHJhd0Zy
YW1lKCkKIHsKICAgICBpZiAobV9jbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaAppbmRleCAzODE5ZWNiNjU1NDFlMWQ1M2RhMDg2ODFkMjY2MDhiZGMzNjVlYTVi
Li5lZjNhMGNhODMwOGJiMDE4MzYxMTVhMmFkZDY5OGNkMWJiZWYyOGExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTUzLDYgKzUzLDggQEAKICNpbmNsdWRl
ICJOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgiCiAjaW5jbHVkZSAiUGFnZU92ZXJsYXlMaXN0
LmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2xpZW50SW1wbC5oIgorI2luY2x1ZGUgIldlYldpZGdl
dEltcGwuaCIKKyNpbmNsdWRlICJXZWJXaWRnZXRTY2hlZHVsZXJJbXBsLmgiCiAjaW5jbHVkZSA8
d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTk2LDcgKzk4
LDcgQEAgY2xhc3MgV2ViTW91c2VXaGVlbEV2ZW50OwogY2xhc3MgV2ViU2V0dGluZ3NJbXBsOwog
Y2xhc3MgV2ViVG91Y2hFdmVudDsKIAotY2xhc3MgV2ViVmlld0ltcGwgOiBwdWJsaWMgV2ViVmll
dywgcHVibGljIFdlYkxheWVyVHJlZVZpZXdDbGllbnQsIHB1YmxpYyBSZWZDb3VudGVkPFdlYlZp
ZXdJbXBsPiB7CitjbGFzcyBXZWJWaWV3SW1wbCA6IHB1YmxpYyBXZWJWaWV3LCBwdWJsaWMgV2Vi
V2lkZ2V0SW1wbCwgcHVibGljIFdlYkxheWVyVHJlZVZpZXdDbGllbnQsIHB1YmxpYyBSZWZDb3Vu
dGVkPFdlYlZpZXdJbXBsPiB7CiBwdWJsaWM6CiAgICAgZW51bSBBdXRvWm9vbVR5cGUgewogICAg
ICAgICBEb3VibGVUYXAsCkBAIC0xMTgsNiArMTIwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBwYWludChXZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lk
IHRoZW1lQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gp
OworICAgIHZpcnR1YWwgV2ViV2lkZ2V0U2NoZWR1bGVyKiBzY2hlZHVsZXIoKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXcoKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlSW5wdXRF
dmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlQ2FwdHVy
ZUxvc3QoKTsKQEAgLTE0MSw2ICsxNDQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZENoYW5nZVdpbmRvd1Jlc2l6ZXJSZWN0KCk7CiAgICAgdmlydHVhbCB2b2lkIGluc3RydW1lbnRC
ZWdpbkZyYW1lKCk7CiAKKyAgICAvLyBXZWJXaWRnZXRJbXBsIG1ldGhvZHM6CisgICAgdmlydHVh
bCBXZWJMYXllclRyZWVWaWV3KiBsYXllclRyZWVWaWV3KCk7CisKICAgICAvLyBXZWJWaWV3IG1l
dGhvZHM6CiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVNYWluRnJhbWUoV2ViRnJhbWVDbGll
bnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXV0b2ZpbGxDbGllbnQoV2ViQXV0b2ZpbGxDbGll
bnQqKTsKQEAgLTI1OCw2ICsyNjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5
U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYsIGZsb2F0KTsKICAgICB2aXJ0dWFsIFdlYkdy
YXBoaWNzQ29udGV4dDNEKiBjcmVhdGVDb250ZXh0M0QoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmViaW5kR3JhcGhpY3NDb250ZXh0KGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRG
cmFtZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVTd2FwQnVmZmVycygpOwogICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZUNvbXBvc2l0ZSgpOwpAQCAtNTcwLDYgKzU3Nyw3IEBAIHByaXZhdGU6CiAgICAgV2Vi
U3BlbGxDaGVja0NsaWVudCogbV9zcGVsbENoZWNrQ2xpZW50OwogCiAgICAgQ2hyb21lQ2xpZW50
SW1wbCBtX2Nocm9tZUNsaWVudEltcGw7CisgICAgV2ViV2lkZ2V0U2NoZWR1bGVySW1wbCBtX3Nj
aGVkdWxlckltcGw7CiAgICAgQ29udGV4dE1lbnVDbGllbnRJbXBsIG1fY29udGV4dE1lbnVDbGll
bnRJbXBsOwogICAgIERyYWdDbGllbnRJbXBsIG1fZHJhZ0NsaWVudEltcGw7CiAgICAgRWRpdG9y
Q2xpZW50SW1wbCBtX2VkaXRvckNsaWVudEltcGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJXaWRnZXRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJXaWRnZXRJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2JjZDZmMDg4YjQ3NmUxMTNkMzE3Yjk4Yzhl
YWQ0NzgwNTNlZjA4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYldpZGdldEltcGwuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYldpZGdldEltcGxfaAorI2RlZmluZSBXZWJXaWRnZXRJbXBsX2gKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYkxheWVyVHJlZVZpZXc7CisKKy8vIFByaXZhdGUgaW50ZXJm
YWNlIGJldHdlZW4gV2ViV2lkZ2V0IHN1YmNsYXNzZXMgYW5kIHRoZSBXZWJXaWRnZXRTY2hlZHVs
ZXIuCitjbGFzcyBXZWJXaWRnZXRJbXBsIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGJvb2wgaXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgV2Vi
TGF5ZXJUcmVlVmlldyogbGF5ZXJUcmVlVmlldygpID0gMDsKKworcHJvdGVjdGVkOgorICAgIH5X
ZWJXaWRnZXRJbXBsKCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXaWRnZXRTY2hlZHVs
ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldpZGdldFNjaGVkdWxl
ckltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkMGJmZTI2NWJhMzljNzM1M2Q3ODA2NmRmNTU5NzQyMWY4
Yzk0NWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJX
aWRnZXRTY2hlZHVsZXJJbXBsLmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJXaWRnZXRTY2hlZHVsZXJJbXBsLmgi
CisKKyNpbmNsdWRlICJXZWJXaWRnZXRJbXBsLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViTGF5
ZXJUcmVlVmlldy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViV2lkZ2V0U2NoZWR1bGVy
SW1wbDo6V2ViV2lkZ2V0U2NoZWR1bGVySW1wbChXZWJXaWRnZXRJbXBsKiB3aWRnZXQsIFdlYldp
ZGdldFJlbmRlclN1cmZhY2UqIHN1cmZhY2UpCisgICAgOiBtX3dpZGdldCh3aWRnZXQpCisgICAg
LCBtX3N1cmZhY2Uoc3VyZmFjZSkKK3sKK30KKwordm9pZCBXZWJXaWRnZXRTY2hlZHVsZXJJbXBs
OjpzZXROZWVkc1JlZHJhdygpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fd2lkZ2V0LT5pc0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSk7CisgICAgbV93aWRnZXQtPmxheWVyVHJlZVZpZXco
KS0+c2V0TmVlZHNSZWRyYXcoKTsKK30KKworYm9vbCBXZWJXaWRnZXRTY2hlZHVsZXJJbXBsOjpz
aG91bGRIb2xkQWRkaXRpb25hbElucHV0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV93aWRnZXQt
PmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpKTsKKyAgICByZXR1cm4gbV93aWRnZXQt
PmxheWVyVHJlZVZpZXcoKS0+c2hvdWxkSG9sZEFkZGl0aW9uYWxJbnB1dCgpOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXaWRnZXRTY2hlZHVsZXJJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXaWRnZXRTY2hlZHVsZXJJbXBs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzdjNGE2NmZmYWI2Mjc0MWFkNDcxNmM3MTgxM2RiMjM2MGVkMDZmOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldpZGdldFNj
aGVkdWxlckltcGwuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
YldpZGdldFNjaGVkdWxlckltcGxfaAorI2RlZmluZSBXZWJXaWRnZXRTY2hlZHVsZXJJbXBsX2gK
KworI2luY2x1ZGUgIldlYldpZGdldFNjaGVkdWxlci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJXaWRnZXRJbXBsOworY2xh
c3MgV2ViV2lkZ2V0UmVuZGVyU3VyZmFjZTsKKworCitjbGFzcyBXZWJXaWRnZXRTY2hlZHVsZXJJ
bXBsIDogcHVibGljIFdlYldpZGdldFNjaGVkdWxlciB7CitwdWJsaWM6CisgICAgV2ViV2lkZ2V0
U2NoZWR1bGVySW1wbChXZWJXaWRnZXRJbXBsKiwgV2ViV2lkZ2V0UmVuZGVyU3VyZmFjZSopOwor
ICAgIH5XZWJXaWRnZXRTY2hlZHVsZXJJbXBsKCkgeyB9CisKKyAgICAvLyBXZWJXaWRnZXRTY2hl
ZHVsZXIgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3KCkg
Y29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3VsZEhvbGRBZGRpdGlvbmFsSW5wdXQoKSBjb25z
dDsKKworcHJpdmF0ZToKKyAgICBXZWJXaWRnZXRJbXBsKiBtX3dpZGdldDsKKyAgICBXZWJXaWRn
ZXRSZW5kZXJTdXJmYWNlKiBtX3N1cmZhY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVy
VHJlZUhvc3RUZXN0LmNwcAppbmRleCBmZTc4OGZiYWVlZTc3ZTc5M2EwMDM4ZWM3YWYyOTI2NTVm
ZmM3NDZiLi5kMTRlOTRlYjM3Yzc3YjA1MjFmYzI5ZjA3NjNjMmExZmMzMDc3N2ZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5j
cHAKQEAgLTIzOSw2ICsyMzksMTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gR3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dCh3ZWJD
b250ZXh0LnJlbGVhc2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0
V2luZG93KTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0RnJhbWUoKQorICAg
IHsKKyAgICB9CisKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCkKICAg
ICB7CiAgICAgICAgIG1fdGVzdEhvb2tzLT5kaWRDb21taXRBbmREcmF3RnJhbWUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFrZUNDTGF5ZXJUcmVlSG9zdENs
aWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GYWtlQ0NMYXllclRyZWVIb3N0
Q2xpZW50LmgKaW5kZXggMzg4NzZkNzM3ZmI1MmFhNmQwM2M3MWJmZmU0MTcyOGM4Y2NjZjBiNS4u
NDFhMWJhYmNmZTQzY2EzOTc5ODMyMWFkZDk3OWU4MDg4MmE1YzEyMCAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50
LmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gY3JlYXRlQ29tcG9z
aXRvck1vY2tHcmFwaGljc0NvbnRleHQzRChhdHRycyk7CiAgICAgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNyZWF0ZUNvbnRleHQoYm9vbCBzdWNjZXNzKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ29tbWl0RnJhbWUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0Zy
YW1lKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKSB7IH0K
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>