<?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>104482</bug_id>
          
          <creation_ts>2012-12-09 04:53:43 -0800</creation_ts>
          <short_desc>[GTK] Add API to set a TLS errors policy to WebKit2 GTK+ API</short_desc>
          <delta_ts>2012-12-20 10:43:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, Soup</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>danw</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>786765</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-09 04:53:43 -0800</bug_when>
    <thetext>We are currently always ignoring all TLS errors unconditionally. We should provide an API to allow change the TLS errors policy to not ignore errors and fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786774</commentid>
    <comment_count>1</comment_count>
      <attachid>178415</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-09 05:53:23 -0800</bug_when>
    <thetext>Created attachment 178415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786776</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-09 05:58:41 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786779</commentid>
    <comment_count>3</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2012-12-09 07:34:37 -0800</bug_when>
    <thetext>I&apos;d be happier if WEBKIT_TLS_ERRORS_POLICY_IGNORE had a name that suggested &quot;the application will handle TLS errors itself, so WebKit doesn&apos;t have to&quot; rather than &quot;let&apos;s just ignore TLS errors completely! whee!&quot;.

maybe WEBKIT_TLS_ERRORS_HANDLED_BY_WEBKIT / ..._HANDLED_BY_APPLICATION ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786781</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-12-09 07:38:23 -0800</bug_when>
    <thetext>Maybe WEBKIT_TLS_ERRORS_POLICY_CONTINUE or WEBKIT_TLS_ERRORS_POLICY_LOAD_ANYWAY?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786784</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-09 07:55:25 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I&apos;d be happier if WEBKIT_TLS_ERRORS_POLICY_IGNORE had a name that suggested &quot;the application will handle TLS errors itself, so WebKit doesn&apos;t have to&quot; rather than &quot;let&apos;s just ignore TLS errors completely! whee!&quot;.
&gt; 
&gt; maybe WEBKIT_TLS_ERRORS_HANDLED_BY_WEBKIT / ..._HANDLED_BY_APPLICATION ?

IGNORE doesn&apos;t mean the app will handle them, but that webkit will ignore the errors, and continue with the load normally, as we currently do. I&apos;ll add a new policy ASK to let the app handle the errors in a follow up patch. The idea of the ignore policy is that it doesn&apos;t require IPC traffic at all, and ignore is the default policy (for compatibility)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786787</commentid>
    <comment_count>6</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2012-12-09 08:07:20 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; The idea of the ignore policy is that it doesn&apos;t require IPC traffic at all, and ignore is the default policy (for compatibility)

Do we have API guarantees on WK2 yet? Either ASK or FAIL would be a better default...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786788</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-09 08:12:55 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; The idea of the ignore policy is that it doesn&apos;t require IPC traffic at all, and ignore is the default policy (for compatibility)
&gt; 
&gt; Do we have API guarantees on WK2 yet? Either ASK or FAIL would be a better default...

Not for API compatibility, but to not break SSL pages in GTK and EFL, we can make ASK the default from our API and still keep ignore SSL errors the default in webcore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795556</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-20 10:43:28 -0800</bug_when>
    <thetext>Committed r138273: &lt;http://trac.webkit.org/changeset/138273&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178415</attachid>
            <date>2012-12-09 05:53:23 -0800</date>
            <delta_ts>2012-12-12 03:11:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-tls-errors.diff</filename>
            <type>text/plain</type>
            <size>29266</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MmYyZjQwLi42YjQ2MmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMTItMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gc2V0IGEgVExTIGVycm9ycyBwb2xpY3kgdG8g
V2ViS2l0MiBHVEsrIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0NDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvci5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6c2V0VExTRXJyb3JzKTogU2V0IHRoZSBUTFMgZXJy
b3IgZmxhZ3MuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUVycm9yOjpzZXRDZXJ0aWZpY2F0
ZSk6IFNldCB0aGUgY2VydGlmaWNhdGUuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlRXJyb3JTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlRXJyb3I6
OnRsc0Vycm9yKTogU2V0IHRoZSBnaXZlbiBUTFMgZXJyb3JzIGFuZAorICAgICAgICBjZXJ0aWZp
Y2F0ZSB0byB0aGUgUmVzb3VyY2VFcnJvci4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlRXJy
b3I6OnBsYXRmb3JtQ29weSk6IENvcHkgYWxzbyB0aGUgVExTIGVycm9ycworICAgICAgICBhbmQg
dGhlIGNlcnRpZmljYXRlLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6cGxhdGZv
cm1Db21wYXJlKTogQ29tcGFyZSBhbHNvIHRoZSBUTFMKKyAgICAgICAgZXJyb3JzLgorCiAyMDEy
LTEyLTA4ICBXZWkgSmFtZXMgIDxqYW1lcy53ZWlAaW50ZWwuY29tPgogCiAgICAgICAgIFJlbW92
ZSBpbmNvcnJlY3QgQVNTRVJUIGZvciBtX2Vycm9yIGluIENhY2hlZFJlc291cmNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggOTkzNTk3NC4uNzgyNDY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEy
LTEyLTA5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbR1RLXSBBZGQgQVBJIHRvIHNldCBhIFRMUyBlcnJvcnMgcG9saWN5IHRvIFdlYktpdDIg
R1RLKyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNDQ4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBhbiBlbXVtIGZvciBUTFMgZXJyb3JzIHBvbGljeSB3aXRoIHZhbHVlcyBJR05PUkUgYW5k
IEZBSUwgYW5kCisgICAgICAgIEFQSSB0byBXZWJLaXRXZWJDb250ZXh0IHRvIHNldC9nZXQgdGhl
IHBvbGljeS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKTogRW5jb2RlIGlnbm9yZVRMU0Vycm9ycy4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKTogRGVjb2RlIGlnbm9yZVRMU0Vycm9ycy4KKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAo
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyk6IEFkZCBpZ25vcmVUTFNFcnJvcnMgd2hlbiBi
dWlsZGluZworICAgICAgICB3aXRoIHNvdXAgbmV0d29yayBiYWNrZW5kLgorICAgICAgICAqIFNo
YXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKTogQWRkIGEK
KyAgICAgICAgY29uc3RydWN0b3IgdGhhdCByZWNlaXZlcyBhIFJlc291cmNlRXJyb3IuCisgICAg
ICAgICogU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaDoKKyAgICAgICAgKiBT
aGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcDoKKyAgICAgICAgKENvcmVJ
UEM6Ojo6ZW5jb2RlUGxhdGZvcm1EYXRhKTogRW5jb2RlIHRoZQorICAgICAgICBQbGF0Zm9ybUNl
cnRpZmljYXRlSW5mbyBhcyBwYXJ0IGZvciB0aGUgUmVzb3VyY2VFcnJvci4KKyAgICAgICAgKENv
cmVJUEM6Ojo6ZGVjb2RlUGxhdGZvcm1EYXRhKTogRGVjb2RlIHRoZQorICAgICAgICBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbyBhbmQgc2V0IGNlcnRpZmljYXRlIGFuZCBUTFMgZXJyb3JzIGluIHRo
ZQorICAgICAgICBSZXNvdXJjZUVycm9yLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdExvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0
aEVycm9yRm9yRnJhbWUpOiBDYWxsCisgICAgICAgIHdlYmtpdFdlYlZpZXdMb2FkRmFpbGVkV2l0
aFRMU0Vycm9ycygpIGlmIHRoZSBsb2FkIGZhaWxlZCBkdWUgdG8KKyAgICAgICAgVExTIGVycm9y
cy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKF9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSk6IEFkZCB0bHNFcnJvcnNQb2xpY3kgbWVt
YmVyLgorICAgICAgICAoY3JlYXRlRGVmYXVsdFdlYkNvbnRleHQpOiBJbml0aWFsZXMgdGxzRXJy
b3JzUG9saWN5LgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3Bv
bGljeSk6IFNldCB0aGUgVExTIGVycm9ycworICAgICAgICBwb2xpY3kgbm90aWZ5IFdlYkNvbnRl
eHQgdG8gaWdub3JlIFRMUyBlcnJvcnMgb3Igbm90LgorICAgICAgICAod2Via2l0X3dlYl9jb250
ZXh0X2dldF90bHNfZXJyb3JzX3BvbGljeSk6IFJldHVybiB0aGUgY3VycmVudCBUTFMKKyAgICAg
ICAgZXJyb3JzIHBvbGljeS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJD
b250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6
CisgICAgICAgICh3ZWJraXRXZWJWaWV3TG9hZEZhaWxlZFdpdGhUTFNFcnJvcnMpOiBGaW5pc2gg
dGhlIGxvYWQgd2l0aCBhbgorICAgICAgICBlcnJvciBpZiB0aGUgVExTIGVycm9ycyBwb2xpY3kg
aXMgRkFJTC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3UHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9u
cy50eHQ6IEFkZCBuZXcgc3ltYm9scy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0
cy9UZXN0U1NMLmNwcDoKKyAgICAgICAgKHRlc3RUTFNFcnJvcnNQb2xpY3kpOgorICAgICAgICAo
YmVmb3JlQWxsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHQ6OldlYkNvbnRleHQpOiBJbml0aWFsaXplIG1faWdub3JlVExT
RXJyb3JzLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisgICAgICAgIChXZWJD
b250ZXh0KTogQWRkIG1faWdub3JlVExTRXJyb3JzIG1lbWJlci4KKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dDo6aWdub3JlVExTRXJyb3JzKTogUmV0dXJuIG1faWdub3JlVExTRXJyb3JzLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOiBTZXQKKyAgICAg
ICAgaWdub3JlVExTRXJyb3JzIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dDo6c2V0SWdub3JlVExTRXJyb3JzKTogU2VuZCBTZXRJZ25vcmVUTFNFcnJvcnMKKyAgICAgICAg
bWVzc2FnZSB0byB0aGUgd2ViIHByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJD
b250ZXh0R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyk6IFNldAorICAgICAgICBpZ25vcmVUTFNFcnJvcnMgcGFyYW1ldGVy
LgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpzZXRJZ25vcmVUTFNFcnJvcnMpOiBTZW5k
IFNldElnbm9yZVRMU0Vycm9ycworICAgICAgICBtZXNzYWdlIHRvIHRoZSB3ZWIgcHJvY2Vzcy4K
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc01haW5FZmwpOiBSZW1vdmUgdGhlIGNhbGwgdG8KKyAgICAgICAgUmVzb3VyY2VIYW5k
bGU6OnNldElnbm9yZVNTTEVycm9ycygpLgorICAgICAgICAqIFdlYlByb2Nlc3MvZ3RrL1dlYlBy
b2Nlc3NNYWluR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc01haW5HdGspOiBS
ZW1vdmUgdGhlIGNhbGwgdG8KKyAgICAgICAgUmVzb3VyY2VIYW5kbGU6OnNldElnbm9yZVNTTEVy
cm9ycygpLgorICAgICAgICAqIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRJZ25vcmVUTFNFcnJvcnMpOiBDYWxs
CisgICAgICAgIFJlc291cmNlSGFuZGxlOjpzZXRJZ25vcmVTU0xFcnJvcnMoKS4KKyAgICAgICAg
KFdlYktpdCk6CisKIDIwMTItMTItMDggIFNlb2tqdSBLd29uICA8c2Vva2p1Lmt3b25AZ21haWwu
Y29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgaGVhZGVycwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVycm9yLmgKaW5kZXggMGNiNWRi
Ny4uYzMwOWRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VFcnJvci5oCkBAIC01Niw5ICs1NiwxNCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlc291cmNlRXJyb3IgYXV0aGVudGljYXRpb25FcnJvcihTb3VwTWVzc2FnZSopOwogCiAg
ICAgdW5zaWduZWQgdGxzRXJyb3JzKCkgY29uc3QgeyByZXR1cm4gbV90bHNFcnJvcnM7IH0KKyAg
ICB2b2lkIHNldFRMU0Vycm9ycyh1bnNpZ25lZCB0bHNFcnJvcnMpIHsgbV90bHNFcnJvcnMgPSB0
bHNFcnJvcnM7IH0KICAgICBHVGxzQ2VydGlmaWNhdGUqIGNlcnRpZmljYXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jZXJ0aWZpY2F0ZS5nZXQoKTsgfQorICAgIHZvaWQgc2V0Q2VydGlmaWNhdGUoR1Rs
c0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSkgeyBtX2NlcnRpZmljYXRlID0gY2VydGlmaWNhdGU7
IH0KIAogcHJpdmF0ZToKKyAgICB2b2lkIHBsYXRmb3JtQ29weShSZXNvdXJjZUVycm9yJikgY29u
c3Q7CisgICAgc3RhdGljIGJvb2wgcGxhdGZvcm1Db21wYXJlKGNvbnN0IFJlc291cmNlRXJyb3Im
IGEsIGNvbnN0IFJlc291cmNlRXJyb3ImIGIpOworCiAgICAgdW5zaWduZWQgbV90bHNFcnJvcnM7
CiAgICAgR1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+IG1fY2VydGlmaWNhdGU7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JT
b3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUVy
cm9yU291cC5jcHAKaW5kZXggNTM1MTMzZi4uNmY2NWIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3Bw
CkBAIC02OSwxMCArNjksMTMgQEAgUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9yOjpnZW5lcmlj
SU9FcnJvcihHRXJyb3IqIGVycm9yLCBTb3VwUmVxdWVzdCogcmVxdWVzdCkKICAgICAgICAgZmFp
bGluZ1VSSShyZXF1ZXN0KSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwogfQog
Ci1SZXNvdXJjZUVycm9yIFJlc291cmNlRXJyb3I6OnRsc0Vycm9yKFNvdXBSZXF1ZXN0KiByZXF1
ZXN0LCB1bnNpZ25lZCAvKiB0bHNFcnJvcnMgKi8sIEdUbHNDZXJ0aWZpY2F0ZSopCitSZXNvdXJj
ZUVycm9yIFJlc291cmNlRXJyb3I6OnRsc0Vycm9yKFNvdXBSZXF1ZXN0KiByZXF1ZXN0LCB1bnNp
Z25lZCB0bHNFcnJvcnMsIEdUbHNDZXJ0aWZpY2F0ZSogY2VydGlmaWNhdGUpCiB7Ci0gICAgcmV0
dXJuIFJlc291cmNlRXJyb3IoZ19xdWFya190b19zdHJpbmcoU09VUF9IVFRQX0VSUk9SKSwgU09V
UF9TVEFUVVNfU1NMX0ZBSUxFRCwKKyAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IoZ19x
dWFya190b19zdHJpbmcoU09VUF9IVFRQX0VSUk9SKSwgU09VUF9TVEFUVVNfU1NMX0ZBSUxFRCwK
ICAgICAgICAgZmFpbGluZ1VSSShyZXF1ZXN0KSwgdW5hY2NlcHRhYmxlVExTQ2VydGlmaWNhdGUo
KSk7CisgICAgcmVzb3VyY2VFcnJvci5zZXRUTFNFcnJvcnModGxzRXJyb3JzKTsKKyAgICByZXNv
dXJjZUVycm9yLnNldENlcnRpZmljYXRlKGNlcnRpZmljYXRlKTsKKyAgICByZXR1cm4gcmVzb3Vy
Y2VFcnJvcjsKIH0KIAogUmVzb3VyY2VFcnJvciBSZXNvdXJjZUVycm9yOjp0aW1lb3V0RXJyb3Io
Y29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMKQpAQCAtODgsNCArOTEsMTUgQEAgUmVzb3VyY2VFcnJv
ciBSZXNvdXJjZUVycm9yOjp0aW1lb3V0RXJyb3IoY29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMKQog
ICAgIHJldHVybiBlcnJvcjsKIH0KIAordm9pZCBSZXNvdXJjZUVycm9yOjpwbGF0Zm9ybUNvcHko
UmVzb3VyY2VFcnJvciYgZXJyb3JDb3B5KSBjb25zdAoreworICAgIGVycm9yQ29weS5tX2NlcnRp
ZmljYXRlID0gbV9jZXJ0aWZpY2F0ZTsKKyAgICBlcnJvckNvcHkubV90bHNFcnJvcnMgPSBtX3Rs
c0Vycm9yczsKK30KKworYm9vbCBSZXNvdXJjZUVycm9yOjpwbGF0Zm9ybUNvbXBhcmUoY29uc3Qg
UmVzb3VyY2VFcnJvciYgYSwgY29uc3QgUmVzb3VyY2VFcnJvciYgYikKK3sKKyAgICByZXR1cm4g
YS50bHNFcnJvcnMoKSA9PSBiLnRsc0Vycm9ycygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKaW5kZXggOTZmZGQ2Yy4uNmYzNWNlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAt
NzgsNiArNzgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbgogI2VuZGlmCiAjaWYgVVNFKFNP
VVApCiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZDsKKyAgICBlbmNvZGVyIDw8
IGlnbm9yZVRMU0Vycm9yczsKICNlbmRpZgogICAgIGVuY29kZXIuZW5jb2RlRW51bShjYWNoZU1v
ZGVsKTsKICAgICBlbmNvZGVyIDw8IHNob3VsZFRyYWNrVmlzaXRlZExpbmtzOwpAQCAtMTcwLDYg
KzE3MSw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViCiAjaWYgVVNFKFNPVVApCiAgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmln
bm9yZVRMU0Vycm9ycykpCisgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlRW51bShwYXJhbWV0ZXJzLmNhY2hlTW9kZWwpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAppbmRleCA2NGE2OTlmLi4xNmRmYmQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTc3
LDYgKzc3LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogI2VuZGlm
CiAjaWYgVVNFKFNPVVApCiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWQ7
CisgICAgYm9vbCBpZ25vcmVUTFNFcnJvcnM7CiAjZW5kaWYKIAogICAgIENhY2hlTW9kZWwgY2Fj
aGVNb2RlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvLmNwcAppbmRleCA4MTY5MjBlLi5lYzgxMDM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAjaW5jbHVk
ZSAiQXJndW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXNwb25zZS5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogCkBAIC00Nyw2ICs0OCwxMiBA
QCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9ucwogewogfQogCitQbGF0Zm9ybUNlcnRpZmljYXRlSW5m
bzo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VF
cnJvcikKKyAgICA6IG1fY2VydGlmaWNhdGUocmVzb3VyY2VFcnJvci5jZXJ0aWZpY2F0ZSgpKQor
ICAgICwgbV90bHNFcnJvcnMoc3RhdGljX2Nhc3Q8R1Rsc0NlcnRpZmljYXRlRmxhZ3M+KHJlc291
cmNlRXJyb3IudGxzRXJyb3JzKCkpKQoreworfQorCiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6
flBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oCmluZGV4IDlmMTlhMmYuLmQ5
YmI1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8uaApAQCAtMzYsNiArMzYsNyBAQCBjbGFzcyBBcmd1bWVudEVuY29kZXI7
CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBS
ZXNvdXJjZVJlc3BvbnNlOwogfQogCkBAIC00NSw2ICs0Niw3IEBAIGNsYXNzIFBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvIHsKIHB1YmxpYzoKICAgICBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpOwog
ICAgIGV4cGxpY2l0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKTsKKyAgICBleHBsaWNpdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CiAgICAgflBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
KCk7CiAKICAgICBHVGxzQ2VydGlmaWNhdGUqIGNlcnRpZmljYXRlKCkgY29uc3QgeyByZXR1cm4g
bV9jZXJ0aWZpY2F0ZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAppbmRleCAyZTlhMTk2Li5mNjA0
ZDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnNTb3VwLmNwcApAQCAtMjcsMTIgKzI3LDE0IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKKyNpbmNsdWRlICJQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIG5h
bWVzcGFjZSBDb3JlSVBDIHsKIApAQCAtNjYsMTIgKzY4LDE5IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2Rlciog
ZGVjb2RlCiB9CiAKIAotdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGVQ
bGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgUmVzb3VyY2VFcnJvciYpCit2b2lk
IEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7
CisgICAgZW5jb2RlciA8PCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhyZXNvdXJjZUVycm9yKTsK
IH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjpkZWNvZGVQbGF0Zm9ybURh
dGEoQXJndW1lbnREZWNvZGVyKiwgUmVzb3VyY2VFcnJvciYpCitib29sIEFyZ3VtZW50Q29kZXI8
UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXIqIGRlY29k
ZXIsIFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7CisgICAgUGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGNlcnRp
ZmljYXRlSW5mbykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJlc291cmNlRXJyb3Iu
c2V0Q2VydGlmaWNhdGUoY2VydGlmaWNhdGVJbmZvLmNlcnRpZmljYXRlKCkpOworICAgIHJlc291
cmNlRXJyb3Iuc2V0VExTRXJyb3JzKGNlcnRpZmljYXRlSW5mby50bHNFcnJvcnMoKSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCmluZGV4IDFlYWUyNjcuLjJmNmQ2MDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9h
ZGVyQ2xpZW50LmNwcApAQCAtNTcsOCArNTcsMTEgQEAgc3RhdGljIHZvaWQgZGlkRmFpbFByb3Zp
c2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGYK
ICAgICBHT3duUHRyPEdFcnJvcj4gd2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJr
X2Zyb21fc3RyaW5nKHJlc291cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VFcnJv
ci5lcnJvckNvZGUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEo
KSkpOwotICAgIHdlYmtpdFdlYlZpZXdMb2FkRmFpbGVkKFdFQktJVF9XRUJfVklFVyhjbGllbnRJ
bmZvKSwgV0VCS0lUX0xPQURfU1RBUlRFRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXNvdXJjZUVycm9yLmZhaWxpbmdVUkwoKS51dGY4KCkuZGF0YSgpLCB3ZWJFcnJvci5nZXQoKSk7
CisgICAgaWYgKHJlc291cmNlRXJyb3IudGxzRXJyb3JzKCkpIHsKKyAgICAgICAgd2Via2l0V2Vi
Vmlld0xvYWRGYWlsZWRXaXRoVExTRXJyb3JzKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwg
cmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCks
CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4ocmVzb3VyY2VF
cnJvci50bHNFcnJvcnMoKSksIHJlc291cmNlRXJyb3IuY2VydGlmaWNhdGUoKSk7CisgICAgfSBl
bHNlCisgICAgICAgIHdlYmtpdFdlYlZpZXdMb2FkRmFpbGVkKFdFQktJVF9XRUJfVklFVyhjbGll
bnRJbmZvKSwgV0VCS0lUX0xPQURfU1RBUlRFRCwgcmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCku
dXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCkpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRDb21t
aXRMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJl
ZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggM2RiY2Zl
OC4uMTZlN2RlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTExMCw2ICsxMTAsNyBAQCBzdHJ1Y3QgX1dlYktp
dFdlYkNvbnRleHRQcml2YXRlIHsKICAgICBPd25QdHI8V2ViS2l0VGV4dENoZWNrZXI+IHRleHRD
aGVja2VyOwogI2VuZGlmCiAgICAgQ1N0cmluZyBmYXZpY29uRGF0YWJhc2VEaXJlY3Rvcnk7Cisg
ICAgV2ViS2l0VExTRXJyb3JzUG9saWN5IHRsc0Vycm9yc1BvbGljeTsKIH07CiAKIHN0YXRpYyBn
dWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKQEAgLTE0NSw2ICsxNDYsNyBAQCBz
dGF0aWMgZ3BvaW50ZXIgY3JlYXRlRGVmYXVsdFdlYkNvbnRleHQoZ3BvaW50ZXIpCiAgICAgcHJp
di0+Y29udGV4dCA9IFdlYkNvbnRleHQ6OmNyZWF0ZShTdHJpbmcoKSk7CiAgICAgcHJpdi0+cmVx
dWVzdE1hbmFnZXIgPSB3ZWJDb250ZXh0LT5wcml2LT5jb250ZXh0LT5zb3VwUmVxdWVzdE1hbmFn
ZXJQcm94eSgpOwogICAgIHByaXYtPmNvbnRleHQtPnNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbFBy
aW1hcnlXZWJCcm93c2VyKTsKKyAgICBwcml2LT50bHNFcnJvcnNQb2xpY3kgPSBXRUJLSVRfVExT
X0VSUk9SU19QT0xJQ1lfSUdOT1JFOwogCiAgICAgYXR0YWNoRG93bmxvYWRDbGllbnRUb0NvbnRl
eHQod2ViQ29udGV4dC5nZXQoKSk7CiAgICAgYXR0YWNoUmVxdWVzdE1hbmFnZXJDbGllbnRUb0Nv
bnRleHQod2ViQ29udGV4dC5nZXQoKSk7CkBAIC02NjgsNiArNjcwLDQxIEBAIHZvaWQgd2Via2l0
X3dlYl9jb250ZXh0X3NldF9wcmVmZXJyZWRfbGFuZ3VhZ2VzKFdlYktpdFdlYkNvbnRleHQqIGNv
bnRleHQsIGNvbnN0CiAgICAgV2ViQ29yZTo6bGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKIH0KIAorLyoq
CisgKiB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Rsc19lcnJvcnNfcG9saWN5OgorICogQGNvbnRl
eHQ6IGEgI1dlYktpdFdlYkNvbnRleHQKKyAqIEBwb2xpY3k6IGEgI1dlYktpdFRMU0Vycm9yc1Bv
bGljeQorICoKKyAqIFNldCB0aGUgVExTIGVycm9ycyBwb2xpY3kgb2YgQGNvbnRleHQgYXMgQHBv
bGljeQorICovCit2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfdGxzX2Vycm9yc19wb2xpY3ko
V2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgV2ViS2l0VExTRXJyb3JzUG9saWN5IHBvbGljeSkK
K3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7
CisKKyAgICBpZiAoY29udGV4dC0+cHJpdi0+dGxzRXJyb3JzUG9saWN5ID09IHBvbGljeSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY29udGV4dC0+cHJpdi0+dGxzRXJyb3JzUG9saWN5ID0gcG9s
aWN5OworICAgIGJvb2wgaWdub3JlVExTRXJyb3JzID0gcG9saWN5ID09IFdFQktJVF9UTFNfRVJS
T1JTX1BPTElDWV9JR05PUkU7CisgICAgaWYgKGNvbnRleHQtPnByaXYtPmNvbnRleHQtPmlnbm9y
ZVRMU0Vycm9ycygpICE9IGlnbm9yZVRMU0Vycm9ycykKKyAgICAgICAgY29udGV4dC0+cHJpdi0+
Y29udGV4dC0+c2V0SWdub3JlVExTRXJyb3JzKGlnbm9yZVRMU0Vycm9ycyk7Cit9CisKKy8qKgor
ICogd2Via2l0X3dlYl9jb250ZXh0X2dldF90bHNfZXJyb3JzX3BvbGljeToKKyAqIEBjb250ZXh0
OiBhICNXZWJLaXRXZWJDb250ZXh0CisgKgorICogR2V0IHRoZSBUTFMgZXJyb3JzIHBvbGljeSBv
ZiBAY29udGV4dAorICoKKyAqIFJldHVybnM6IGEgI1dlYktpdFRMU0Vycm9yc1BvbGljeQorICov
CitXZWJLaXRUTFNFcnJvcnNQb2xpY3kgd2Via2l0X3dlYl9jb250ZXh0X2dldF90bHNfZXJyb3Jz
X3BvbGljeShXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQoreworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSwgV0VCS0lUX1RMU19FUlJPUlNf
UE9MSUNZX0lHTk9SRSk7CisKKyAgICByZXR1cm4gY29udGV4dC0+cHJpdi0+dGxzRXJyb3JzUG9s
aWN5OworfQorCiBXZWJLaXREb3dubG9hZCogd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93
bmxvYWQoRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSkKIHsKICAgICBHUmVmUHRyPFdlYktp
dERvd25sb2FkPiBkb3dubG9hZCA9IGRvd25sb2Fkc01hcCgpLmdldChkb3dubG9hZFByb3h5KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRl
eHQuaAppbmRleCBhZTc5YmVjLi5mZGNmYmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oCkBAIC02Miw2ICs2MiwxOCBAQCB0
eXBlZGVmIGVudW0gewogfSBXZWJLaXRDYWNoZU1vZGVsOwogCiAvKioKKyAqIFdlYktpdFRMU0Vy
cm9yc1BvbGljeToKKyAqIEBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfSUdOT1JFOiBJZ25vcmUg
VExTIGVycm9ycy4KKyAqIEBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfRkFJTDogVExTIGVycm9y
cyBtYWtlIHRoZSBsb2FkIHRvIGZpbmlzaCB3aXRoIGFuIGVycm9yLgorICoKKyAqIEVudW0gdmFs
dWVzIHVzZWQgdG8gZGVub3RlIHRoZSBUTFMgZXJyb3JzIHBvbGljeS4KKyAqLwordHlwZWRlZiBl
bnVtIHsKKyAgICBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfSUdOT1JFLAorICAgIFdFQktJVF9U
TFNfRVJST1JTX1BPTElDWV9GQUlMCit9IFdlYktpdFRMU0Vycm9yc1BvbGljeTsKKworLyoqCiAg
KiBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Q2FsbGJhY2s6CiAgKiBAcmVxdWVzdDogdGhlICNXZWJL
aXRVUklTY2hlbWVSZXF1ZXN0CiAgKiBAdXNlcl9kYXRhOiB1c2VyIGRhdGEgcGFzc2VkIHRvIHRo
ZSBjYWxsYmFjawpAQCAtMTY1LDYgKzE3NywxMyBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93
ZWJfY29udGV4dF9zZXRfcHJlZmVycmVkX2xhbmd1YWdlcyAgICAgICAgICAoV2ViS2l0V2ViQ29u
dGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICogY29uc3QgICAgICAgICAgICps
YW5ndWFnZXMpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfY29udGV4dF9zZXRfdGxz
X2Vycm9yc19wb2xpY3kgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAg
KmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYktpdFRMU0Vycm9yc1BvbGljeSAgICAgICAgICBwb2xpY3kpOworCitXRUJLSVRf
QVBJIFdlYktpdFRMU0Vycm9yc1BvbGljeQord2Via2l0X3dlYl9jb250ZXh0X2dldF90bHNfZXJy
b3JzX3BvbGljeSAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29u
dGV4dCk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBmYjBjNWVkLi40Y2U1MDQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3LmNwcApAQCAtMTMyNSw2ICsxMzI1LDE5IEBAIHZvaWQgd2Via2l0V2ViVmlld0xvYWRGYWls
ZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TG9hZEV2ZW50IGxvYWRFdmVudCwKICAg
ICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25hbHNbTE9BRF9DSEFOR0VEXSwgMCwgV0VCS0lU
X0xPQURfRklOSVNIRUQpOwogfQogCit2b2lkIHdlYmtpdFdlYlZpZXdMb2FkRmFpbGVkV2l0aFRM
U0Vycm9ycyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBjaGFyKiBmYWlsaW5nVVJJLCBH
RXJyb3IgKmVycm9yLCBHVGxzQ2VydGlmaWNhdGVGbGFncyB0bHNFcnJvcnMsIEdUbHNDZXJ0aWZp
Y2F0ZSogY2VydGlmaWNhdGUpCit7CisgICAgd2Via2l0V2ViVmlld1NldElzTG9hZGluZyh3ZWJW
aWV3LCBmYWxzZSk7CisKKyAgICBXZWJLaXRUTFNFcnJvcnNQb2xpY3kgdGxzRXJyb3JzUG9saWN5
ID0gd2Via2l0X3dlYl9jb250ZXh0X2dldF90bHNfZXJyb3JzX3BvbGljeSh3ZWJWaWV3LT5wcml2
LT5jb250ZXh0KTsKKyAgICBpZiAodGxzRXJyb3JzUG9saWN5ID09IFdFQktJVF9UTFNfRVJST1JT
X1BPTElDWV9GQUlMKSB7CisgICAgICAgIHdlYmtpdFdlYlZpZXdMb2FkRmFpbGVkKHdlYlZpZXcs
IFdFQktJVF9MT0FEX1NUQVJURUQsIGZhaWxpbmdVUkksIGVycm9yKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgc2lnbmFsc1tMT0FEX0NIQU5H
RURdLCAwLCBXRUJLSVRfTE9BRF9GSU5JU0hFRCk7Cit9CisKIHZvaWQgd2Via2l0V2ViVmlld1Nl
dFRpdGxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IENTdHJpbmcmIHRpdGxlKQogewog
ICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3UHJpdmF0
ZS5oCmluZGV4IDY2ZGE1ODQuLjllMjMxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaApAQCAtMzIsNiArMzIs
NyBAQAogCiB2b2lkIHdlYmtpdFdlYlZpZXdMb2FkQ2hhbmdlZChXZWJLaXRXZWJWaWV3KiwgV2Vi
S2l0TG9hZEV2ZW50KTsKIHZvaWQgd2Via2l0V2ViVmlld0xvYWRGYWlsZWQoV2ViS2l0V2ViVmll
dyosIFdlYktpdExvYWRFdmVudCwgY29uc3QgY2hhciogZmFpbGluZ1VSSSwgR0Vycm9yKik7Cit2
b2lkIHdlYmtpdFdlYlZpZXdMb2FkRmFpbGVkV2l0aFRMU0Vycm9ycyhXZWJLaXRXZWJWaWV3Kiwg
Y29uc3QgY2hhciogZmFpbGluZ1VSSSwgR0Vycm9yICosIEdUbHNDZXJ0aWZpY2F0ZUZsYWdzLCBH
VGxzQ2VydGlmaWNhdGUqKTsKIHZvaWQgd2Via2l0V2ViVmlld1NldEVzdGltYXRlZExvYWRQcm9n
cmVzcyhXZWJLaXRXZWJWaWV3KiwgZG91YmxlIGVzdGltYXRlZExvYWRQcm9ncmVzcyk7CiB2b2lk
IHdlYmtpdFdlYlZpZXdTZXRUaXRsZShXZWJLaXRXZWJWaWV3KiwgY29uc3QgQ1N0cmluZyYpOwog
dm9pZCB3ZWJraXRXZWJWaWV3VXBkYXRlVVJJKFdlYktpdFdlYlZpZXcqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9u
cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
c2VjdGlvbnMudHh0CmluZGV4IDJmNmY1NGIuLmFjNTkxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rp
b25zLnR4dApAQCAtMjQsNiArMjQsNyBAQCBXRUJLSVRfT0JTT0xFVEVfQVBJCiA8VElUTEU+V2Vi
S2l0V2ViQ29udGV4dDwvVElUTEU+CiBXZWJLaXRXZWJDb250ZXh0CiBXZWJLaXRDYWNoZU1vZGVs
CitXZWJLaXRUTFNFcnJvcnNQb2xpY3kKIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVsdAog
d2Via2l0X3dlYl9jb250ZXh0X2dldF9jYWNoZV9tb2RlbAogd2Via2l0X3dlYl9jb250ZXh0X3Nl
dF9jYWNoZV9tb2RlbApAQCAtNDIsNiArNDMsOCBAQCB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Nw
ZWxsX2NoZWNraW5nX2VuYWJsZWQKIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc3BlbGxfY2hlY2tp
bmdfbGFuZ3VhZ2VzCiB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NwZWxsX2NoZWNraW5nX2xhbmd1
YWdlcwogd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcmVmZXJyZWRfbGFuZ3VhZ2VzCit3ZWJraXRf
d2ViX2NvbnRleHRfc2V0X3Rsc19lcnJvcnNfcG9saWN5Cit3ZWJraXRfd2ViX2NvbnRleHRfZ2V0
X3Rsc19lcnJvcnNfcG9saWN5CiAKIDxTVUJTRUNUSU9OIFVSSSBTY2hlbWU+CiBXZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0Q2FsbGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL3Rlc3RzL1Rlc3RTU0wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvdGVzdHMvVGVzdFNTTC5jcHAKaW5kZXggOGZhMDEzZC4uYTRhMmIyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFNTTC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFNTTC5jcHAKQEAg
LTM1LDYgKzM1LDEyIEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCisgICAgdmlydHVhbCB2b2lk
IHByb3Zpc2lvbmFsTG9hZEZhaWxlZChjb25zdCBnY2hhciogZmFpbGluZ1VSSSwgR0Vycm9yKiBl
cnJvcikKKyAgICB7CisgICAgICAgIGdfYXNzZXJ0X2Vycm9yKGVycm9yLCBTT1VQX0hUVFBfRVJS
T1IsIFNPVVBfU1RBVFVTX1NTTF9GQUlMRUQpOworICAgICAgICBMb2FkVHJhY2tpbmdUZXN0Ojpw
cm92aXNpb25hbExvYWRGYWlsZWQoZmFpbGluZ1VSSSwgZXJyb3IpOworICAgIH0KKwogICAgIHZp
cnR1YWwgdm9pZCBsb2FkQ29tbWl0dGVkKCkKICAgICB7CiAgICAgICAgIFdlYktpdFdlYlJlc291
cmNlKiByZXNvdXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9yZXNvdXJjZShtX3dlYlZp
ZXcpOwpAQCAtNDUsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIEdUbHNDZXJ0aWZpY2F0ZSog
Y2VydGlmaWNhdGUgPSAwOwogICAgICAgICB3ZWJraXRfdXJpX3Jlc3BvbnNlX2dldF9odHRwc19z
dGF0dXMocmVzcG9uc2UsICZjZXJ0aWZpY2F0ZSwgJm1fdGxzRXJyb3JzKTsKICAgICAgICAgbV9j
ZXJ0aWZpY2F0ZSA9IGNlcnRpZmljYXRlOworICAgICAgICBMb2FkVHJhY2tpbmdUZXN0Ojpsb2Fk
Q29tbWl0dGVkKCk7CiAgICAgfQogCiAgICAgdm9pZCB3YWl0VW50aWxMb2FkRmluaXNoZWQoKQpA
QCAtNzUsNiArODIsMjMgQEAgc3RhdGljIHZvaWQgdGVzdFNTTChTU0xUZXN0KiB0ZXN0LCBnY29u
c3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0KCF0ZXN0LT5tX3Rsc0Vycm9ycyk7CiB9CiAKK3N0YXRp
YyB2b2lkIHRlc3RUTFNFcnJvcnNQb2xpY3koU1NMVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
K3sKKyAgICBXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0ID0gd2Via2l0X3dlYl92aWV3X2dldF9j
b250ZXh0KHRlc3QtPm1fd2ViVmlldyk7CisgICAgLy8gVExTIGVycm9ycyBhcmUgaWdub3JlZCBi
eSBkZWZhdWx0LgorICAgIGdfYXNzZXJ0KHdlYmtpdF93ZWJfY29udGV4dF9nZXRfdGxzX2Vycm9y
c19wb2xpY3koY29udGV4dCkgPT0gV0VCS0lUX1RMU19FUlJPUlNfUE9MSUNZX0lHTk9SRSk7Cisg
ICAgdGVzdC0+bG9hZFVSSShrU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvIikuZGF0YSgpKTsKKyAg
ICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydCghdGVzdC0+bV9s
b2FkRmFpbGVkKTsKKworICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfdGxzX2Vycm9yc19wb2xp
Y3koY29udGV4dCwgV0VCS0lUX1RMU19FUlJPUlNfUE9MSUNZX0ZBSUwpOworICAgIHRlc3QtPmxv
YWRVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiLyIpLmRhdGEoKSk7CisgICAgdGVzdC0+d2Fp
dFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnQodGVzdC0+bV9sb2FkRmFpbGVkKTsK
KyAgICBnX2Fzc2VydCh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVz
dDo6UHJvdmlzaW9uYWxMb2FkRmFpbGVkKSk7CisgICAgZ19hc3NlcnQoIXRlc3QtPm1fbG9hZEV2
ZW50cy5jb250YWlucyhMb2FkVHJhY2tpbmdUZXN0OjpMb2FkQ29tbWl0dGVkKSk7Cit9CisKIHN0
YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2Uq
IG1lc3NhZ2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4
dCosIGdwb2ludGVyKQogewogICAgIGlmIChtZXNzYWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0Rf
R0VUKSB7CkBAIC05Niw2ICsxMjAsNyBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAga1NlcnZlci0+
cnVuKHNlcnZlckNhbGxiYWNrKTsKIAogICAgIFNTTFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIs
ICJzc2wiLCB0ZXN0U1NMKTsKKyAgICBTU0xUZXN0OjphZGQoIldlYktpdFdlYkNvbnRleHQiLCAi
dGxzLWVycm9ycy1wb2xpY3kiLCB0ZXN0VExTRXJyb3JzUG9saWN5KTsKIH0KIAogdm9pZCBhZnRl
ckFsbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggNTA2YWVk
Yy4uZmY3ZjU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAt
MTM3LDYgKzEzNyw5IEBAIFdlYkNvbnRleHQ6OldlYkNvbnRleHQoUHJvY2Vzc01vZGVsIHByb2Nl
c3NNb2RlbCwgY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhCiAjaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKICAgICAsIG1fdXNlc05ldHdvcmtQcm9jZXNzKGZhbHNlKQogI2VuZGlmCisj
aWYgVVNFKFNPVVApCisgICAgLCBtX2lnbm9yZVRMU0Vycm9ycyh0cnVlKQorI2VuZGlmCiB7CiAg
ICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJDb250ZXh0OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIHRoaXMpOwogICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdl
S2luZFRyYWl0czxXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6S2luZD46Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAppbmRleCBl
ZDUzNTA0Li41MmM0NTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAg
LTI1Myw2ICsyNTMsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHdpbGxTdGFydFVzaW5n
UHJpdmF0ZUJyb3dzaW5nKCk7CiAgICAgc3RhdGljIHZvaWQgd2lsbFN0b3BVc2luZ1ByaXZhdGVC
cm93c2luZygpOwogCisjaWYgVVNFKFNPVVApCisgICAgdm9pZCBzZXRJZ25vcmVUTFNFcnJvcnMo
Ym9vbCk7CisgICAgYm9vbCBpZ25vcmVUTFNFcnJvcnMoKSBjb25zdCB7IHJldHVybiBtX2lnbm9y
ZVRMU0Vycm9yczsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViQ29udGV4dChQcm9jZXNz
TW9kZWwsIGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5kbGVQYXRoKTsKIApAQCAtNDE1LDYgKzQy
MCwxMCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBzdGF0aWMgYm9vbCBzX2Fw
cGxpY2F0aW9uSXNPY2NsdWRlZDsKICNlbmRpZgorCisjaWYgVVNFKFNPVVApCisgICAgYm9vbCBt
X2lnbm9yZVRMU0Vycm9yczsKKyNlbmRpZgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5s
aW5lIHZvaWQgV2ViQ29udGV4dDo6c2VuZFRvQWxsUHJvY2Vzc2VzKGNvbnN0IFUmIG1lc3NhZ2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcAppbmRl
eCBhM2Q0NzI1Li44NTc2ZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1dlYkNvbnRleHRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViQ29udGV4dEVmbC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAKICNpbmNsdWRlIDxFZnJlZXQuaD4KQEAgLTQz
LDYgKzQ0LDcgQEAgU3RyaW5nIFdlYkNvbnRleHQ6OmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnko
KQogdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgcGFyYW1ldGVycy51cmxT
Y2hlbWVzUmVnaXN0ZXJlZCA9IG1fc291cFJlcXVlc3RNYW5hZ2VyUHJveHktPnJlZ2lzdGVyZWRV
UklTY2hlbWVzKCk7CisgICAgcGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBtX2lnbm9yZVRM
U0Vycm9yczsKIH0KIAogdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUludmFsaWRhdGVDb250ZXh0
KCkKQEAgLTc3LDQgKzc5LDEwIEBAIFN0cmluZyBXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHRD
b29raWVTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
K3ZvaWQgV2ViQ29udGV4dDo6c2V0SWdub3JlVExTRXJyb3JzKGJvb2wgaWdub3JlVExTRXJyb3Jz
KQoreworICAgIG1faWdub3JlVExTRXJyb3JzID0gaWdub3JlVExTRXJyb3JzOworICAgIHNlbmRU
b0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0SWdub3JlVExTRXJyb3JzKG1f
aWdub3JlVExTRXJyb3JzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0R3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dEd0ay5jcHAKaW5kZXggMGIwOWU5OS4u
ODJlNjY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb250
ZXh0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRH
dGsuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
IldlYkluc3BlY3RvclNlcnZlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJT
b3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KQEAgLTg3LDYgKzg4LDcgQEAg
dm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICAgICBpbml0SW5zcGVjdG9yU2VydmVyKCk7CiAKICAg
ICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkID0gbV9zb3VwUmVxdWVzdE1hbmFnZXJQ
cm94eS0+cmVnaXN0ZXJlZFVSSVNjaGVtZXMoKTsKKyAgICBwYXJhbWV0ZXJzLmlnbm9yZVRMU0Vy
cm9ycyA9IG1faWdub3JlVExTRXJyb3JzOwogfQogCiB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3Jt
SW52YWxpZGF0ZUNvbnRleHQoKQpAQCAtMTIzLDQgKzEyNSwxMCBAQCBTdHJpbmcgV2ViQ29udGV4
dDo6cGxhdGZvcm1EZWZhdWx0Q29va2llU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0CiAgICAgcmV0
dXJuIFN0cmluZygpOwogfQogCit2b2lkIFdlYkNvbnRleHQ6OnNldElnbm9yZVRMU0Vycm9ycyhi
b29sIGlnbm9yZVRMU0Vycm9ycykKK3sKKyAgICBtX2lnbm9yZVRMU0Vycm9ycyA9IGlnbm9yZVRM
U0Vycm9yczsKKyAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNl
dElnbm9yZVRMU0Vycm9ycyhtX2lnbm9yZVRMU0Vycm9ycykpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZWY5NWQ4
MC4uNWZiMDMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTI3
NCw2ICsyNzQsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdhcmJhZ2VDb2xsZWN0SmF2YVNjcmlw
dE9iamVjdHMoKTsKICAgICB2b2lkIHNldEphdmFTY3JpcHRHYXJiYWdlQ29sbGVjdG9yVGltZXJF
bmFibGVkKGJvb2wgZmxhZyk7CiAKKyNpZiBVU0UoU09VUCkKKyAgICB2b2lkIHNldElnbm9yZVRM
U0Vycm9ycyhib29sKTsKKyNlbmRpZgorCiAgICAgdm9pZCBwb3N0SW5qZWN0ZWRCdW5kbGVNZXNz
YWdlKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2VEYXRhKTsKIAogI2lmIFVT
RShTRUNVUklUWV9GUkFNRVdPUkspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYjhmOWIzNy4uZDlhYzExOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNTQsNiAr
NTQsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIHsKICNpZiBQTEFURk9STShXSU4pCiAgICAg
U2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyhib29sIHNob3VsZFBhaW50TmF0aXZlQ29udHJv
bHMpCiAjZW5kaWYKKyNpZiBVU0UoU09VUCkKKyAgICBTZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBp
Z25vcmVUTFNFcnJvcnMpCisjZW5kaWYKIAogICAgIC8vIFByaXZhdGUgYnJvd3Npbmcgc2Vzc2lv
biBpcyBwZXIgcHJvY2Vzcy4gSW5kaXZpZHVhbCBwYWdlcyBvciBwYWdlIGdyb3VwcyBtYXkgdXNl
IHRoZSBwcml2YXRlIHNlc3Npb24gb3IgdGhlIGRlZmF1bHQgb25lIGFzIGFwcHJvcHJpYXRlLgog
ICAgIEVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCmluZGV4IGVjZjEwM2QuLjQ4
N2ZhYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nl
c3NNYWluRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9j
ZXNzTWFpbkVmbC5jcHAKQEAgLTExNyw4ICsxMTcsNiBAQCBXS19FWFBPUlQgaW50IFdlYlByb2Nl
c3NNYWluRWZsKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjppbml0RmFjdG9yeSgpOwogI2VuZGlmCiAKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6c2V0SWdub3JlU1NMRXJyb3JzKHRydWUpOwotCiAgICAgaW50IHNvY2tldCA9IGF0b2ko
YXJndlsxXSk7CiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5pdGlhbGl6ZShzb2NrZXQsIFJ1
bkxvb3A6Om1haW4oKSk7CiAgICAgUnVuTG9vcDo6cnVuKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKaW5kZXggZjE3YWM2Yy4u
YjRmMWMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJv
Y2Vzc01haW5HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlBy
b2Nlc3NNYWluR3RrLmNwcApAQCAtNzYsOSArNzYsNiBAQCBXS19FWFBPUlQgaW50IFdlYlByb2Nl
c3NNYWluR3RrKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgc291cF9zZXNzaW9uX2FkZF9m
ZWF0dXJlKHNlc3Npb24sIFNPVVBfU0VTU0lPTl9GRUFUVVJFKHNvdXBDYWNoZS5nZXQoKSkpOwog
ICAgIHNvdXBfY2FjaGVfbG9hZChzb3VwQ2FjaGUuZ2V0KCkpOwogCi0gICAgLy8gVGhpcyBpcyBm
b3IgY29tcGF0aWJpbGl0eSwgaXQgd2lsbCBiZSByZW1vdmVkIHdoZW4gVUkgcHJvY2VzcyBjYW4g
aGFuZGxlIFNTTCBlcnJvcnMuCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNldElnbm9y
ZVNTTEVycm9ycyh0cnVlKTsKLQogICAgIFJ1bkxvb3A6OnJ1bigpOwogCiAgICAgc291cF9jYWNo
ZV9mbHVzaChzb3VwQ2FjaGUuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKaW5kZXggNzQ2ZTM2Ny4uYzcwZmFjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCkBA
IC0xNjksNiArMTY5LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWQuc2l6ZSgpOyBpKysp
CiAgICAgICAgIG1fc291cFJlcXVlc3RNYW5hZ2VyLnJlZ2lzdGVyVVJJU2NoZW1lKHBhcmFtZXRl
cnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRbaV0pOwogCisgICAgc2V0SWdub3JlVExTRXJyb3JzKHBh
cmFtZXRlcnMuaWdub3JlVExTRXJyb3JzKTsKKwogICAgIFdlYkNvcmU6OmFkZExhbmd1YWdlQ2hh
bmdlT2JzZXJ2ZXIodGhpcywgbGFuZ3VhZ2VDaGFuZ2VkKTsKIH0KIApAQCAtMTc3LDQgKzE3OSw5
IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1UZXJtaW5hdGUoKQogICAgIFdlYkNvcmU6OnJl
bW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodGhpcyk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6
c2V0SWdub3JlVExTRXJyb3JzKGJvb2wgaWdub3JlVExTRXJyb3JzKQoreworICAgIFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpzZXRJZ25vcmVTU0xFcnJvcnMoaWdub3JlVExTRXJyb3JzKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="194945"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>