<?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>124431</bug_id>
          
          <creation_ts>2013-11-15 13:17:51 -0800</creation_ts>
          <short_desc>Give the policy client the originating frame of a navigation action</short_desc>
          <delta_ts>2013-11-15 14:21:15 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>951172</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2013-11-15 13:17:51 -0800</bug_when>
    <thetext>For link activations and form submissions, the frame being navigated is not necessarily the frame where the navigation action occurred. Give the policy delegate access to the latter as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951174</commentid>
    <comment_count>1</comment_count>
      <attachid>217075</attachid>
    <who name="">mitz</who>
    <bug_when>2013-11-15 13:31:14 -0800</bug_when>
    <thetext>Created attachment 217075
Add originatingFrame to decidePolicyForNavigationAction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951177</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-15 13:33:59 -0800</bug_when>
    <thetext>Attachment 217075 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/Platform/CoreIPC/HandleMessage.h&apos;, u&apos;Source/WebKit2/Shared/APIClientTraits.cpp&apos;, u&apos;Source/WebKit2/Shared/APIClientTraits.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKPage.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h&apos;, u&apos;Source/WebKit2/UIProcess/WebInspectorProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.messages.in&apos;, u&apos;Source/WebKit2/UIProcess/WebPolicyClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPolicyClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/MiniBrowser/mac/WK2BrowserWindowController.m&apos;, u&apos;Tools/TestWebKitAPI/Tests/WebKit2/DownloadDecideDestinationCrash.cpp&apos;, u&apos;Tools/TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp&apos;, u&apos;Tools/WebKitTestRunner/TestController.cpp&apos;, u&apos;Tools/WebKitTestRunner/TestController.h&apos;]&quot; exit_code: 1
Source/WebKit2/UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h:31:  One space before end of line comments  [whitespace/comments] [5]
Source/WebKit2/UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h:32:  One space before end of line comments  [whitespace/comments] [5]
Source/WebKit2/UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h:33:  One space before end of line comments  [whitespace/comments] [5]
Source/WebKit2/UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h:34:  One space before end of line comments  [whitespace/comments] [5]
Source/WebKit2/UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h:35:  One space before end of line comments  [whitespace/comments] [5]
Source/WebKit2/UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h:36:  One space before end of line comments  [whitespace/comments] [5]
Source/WebKit2/UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h:37:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 7 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951181</commentid>
    <comment_count>3</comment_count>
      <attachid>217075</attachid>
    <who name="">mitz</who>
    <bug_when>2013-11-15 13:37:58 -0800</bug_when>
    <thetext>Comment on attachment 217075
Add originatingFrame to decidePolicyForNavigationAction

Actually, we want this in the new window policy callback as well. Updated patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951194</commentid>
    <comment_count>4</comment_count>
      <attachid>217075</attachid>
    <who name="">mitz</who>
    <bug_when>2013-11-15 13:58:47 -0800</bug_when>
    <thetext>Comment on attachment 217075
Add originatingFrame to decidePolicyForNavigationAction

On second thought, for the new window policy, the originating frame is the frame we already have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951206</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2013-11-15 14:21:15 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r159358&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217075</attachid>
            <date>2013-11-15 13:31:14 -0800</date>
            <delta_ts>2013-11-15 14:15:26 -0800</delta_ts>
            <desc>Add originatingFrame to decidePolicyForNavigationAction</desc>
            <filename>bug-124431-20131115133113.patch</filename>
            <type>text/plain</type>
            <size>35826</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTM1MykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDEzLTExLTE1ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgR2l2ZSB0aGUgcG9saWN5IGNsaWVu
dCB0aGUgb3JpZ2luYXRpbmcgZnJhbWUgb2YgYSBuYXZpZ2F0aW9uIGFjdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NDMxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBD
L0hhbmRsZU1lc3NhZ2UuaDoKKyAgICAgICAgKENvcmVJUEM6OmNhbGxNZW1iZXJGdW5jdGlvbik6
IEFkZGVkIGEgc2V2ZW50aCBtZXNzYWdlIHBhcmFtZXRlciB0byB0aGlzIHRlbXBsYXRlLgorCisg
ICAgICAgICogU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHA6IERlZmluZWQgQVBJIHRyYWl0cyBm
b3IgV0tQYWdlUG9saWN5Q2xpZW50LCB3aGljaCBub3cgaGFzIHR3bworICAgICAgICB2ZXJzaW9u
cy4KKyAgICAgICAgKiBTaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmg6IERlY2xhcmVkIEFQSUNsaWVu
dFRyYWl0czxXS1BhZ2VQb2xpY3lDbGllbnQ+LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oOiBBZGRlZCBhbiBvcmlnaW5hdGluZ0ZyYW1lIHBhcmFtZXRlciB0bworICAgICAg
ICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQ2FsbGJhY2sgYW5kIGRlcHJl
Y2F0ZWQgdGhlIG9sZCB2ZXJzaW9uLiBCdW1wZWQgdGhlCisgICAgICAgIHBvbGljeSBjbGllbnQg
dmVyc2lvbiB0byAxLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLm1tOgorICAgICAgICAoc2V0VXBQYWdlUG9saWN5Q2xpZW50KTogSW5j
bHVkZSB0aGUgb3JpZ2luYXRpbmcgZnJhbWXigJlzIFVSTCB1bmRlciB0aGUgYSBuZXcga2V5IGlu
IHRoZQorICAgICAgICBhY3Rpb24gaW5mb3JtYXRpb24gZGljdGlvbmFyeS4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dFBvbGljeURlbGVnYXRlLmg6IERlY2xh
cmVkCisgICAgICAgIFdLQWN0aW9uT3JpZ2luYXRpbmdGcmFtZVVSTEtleS4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOiBBZGRlZCBvcmlnaW5hdGluZ0ZyYW1lIHBhcmFt
ZXRlci4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZUluc3BlY3Rv
clBhZ2UpOiBVcGRhdGVkIHRvIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGUgcG9saWN5CisgICAgICAg
IGNsaWVudCBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKTogQWRkZWQgb3JpZ2luYXRpbmdGcmFtZUlEIHBhcmFtZXRlcgorICAgICAgICBh
bmQgcGFzc2luZyB0aGUgb3JpZ2luYXRpbmcgZnJhbWUgdG8gdGhlIHBvbGljeSBjbGllbnQuCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IEFkZGVkIG9yaWdpbmF0aW5nRnJhbWVJRCBwYXJlbWV0
ZXIgdG8KKyAgICAgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbi4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQb2xpY3lDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
b2xpY3lDbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOiBBZGRlZCBvcmln
aW5hdGluZ0ZyYW1lCisgICAgICAgIHBhcmFtZXRlciwgd2hpY2ggaXMgcGFzc2VkIHRvIHRoZSBj
bGllbnQgY2FsbGJhY2suCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVudC5oOgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOiBEZXRlcm1pbmUgdGhlCisgICAgICAgIG9y
aWdpbmF0aW5nIGZyYW1lIGZvciBsaW5rIGFjdGl2YXRpb24gYW5kIGZvcm0gc3VibWlzc2lvbiBh
Y3Rpb25zIGFuZCBzZW5kIGl0cyBJRCBpbiB0aGUKKyAgICAgICAgRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbiBtZXNzYWdlLgorCiAyMDEzLTExLTE1ICBCcmFkeSBFaWRzb24gIDxiZWlk
c29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIGV4ZWN1dGlvbiBvZiBJREJUcmFuc2FjdGlv
bkJhY2tlbmRPcGVyYXRpb25zIHRvIHRoZSBJREJTZXJ2ZXJDb25uZWN0aW9uCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAkocmV2aXNp
b24gMTU5MzUxKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNz
YWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1OCwxMCArMzU4LDEwIEBAIHZvaWQgY2FsbE1lbWJl
ckZ1bmN0aW9uKHN0ZDo6dHVwbGU8UDEsIFAKICAgICAob2JqZWN0LT4qZnVuY3Rpb24pKHN0ZDo6
Z2V0PDA+KGFyZ3MpLCBzdGQ6OmdldDwxPihhcmdzKSwgc3RkOjpnZXQ8Mj4oYXJncyksIHN0ZDo6
Z2V0PDM+KGFyZ3MpLCBzdGQ6OmdldDw0PihhcmdzKSwgc3RkOjpnZXQ8NT4oYXJncyksIGRlY29k
ZXIsIHN0ZDo6Z2V0PDA+KHJlcGx5QXJncyksIHN0ZDo6Z2V0PDE+KHJlcGx5QXJncykpOwogfQog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1l
IFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNiwg
dHlwZW5hbWUgUjEsIHR5cGVuYW1lIFIyLCB0eXBlbmFtZSBSMz4KLXZvaWQgY2FsbE1lbWJlckZ1
bmN0aW9uKHN0ZDo6dHVwbGU8UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4mJiBhcmdzLCBNZXNzYWdl
RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp0dXBsZTxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBv
YmplY3QsIE1GIGZ1bmN0aW9uKQordGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5
cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFt
ZSBQNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIFA3LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjIs
IHR5cGVuYW1lIFIzPgordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMSwgUDIs
IFAzLCBQNCwgUDUsIFA2LCBQNz4mJiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3Rk
Ojp0dXBsZTxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQog
ewotICAgIChvYmplY3QtPipmdW5jdGlvbikoc3RkOjpnZXQ8MD4oYXJncyksIHN0ZDo6Z2V0PDE+
KGFyZ3MpLCBzdGQ6OmdldDwyPihhcmdzKSwgc3RkOjpnZXQ8Mz4oYXJncyksIHN0ZDo6Z2V0PDQ+
KGFyZ3MpLCBzdGQ6OmdldDw1PihhcmdzKSwgZGVjb2Rlciwgc3RkOjpnZXQ8MD4ocmVwbHlBcmdz
KSwgc3RkOjpnZXQ8MT4ocmVwbHlBcmdzKSwgc3RkOjpnZXQ8Mj4ocmVwbHlBcmdzKSk7CisgICAg
KG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MT4oYXJncyks
IHN0ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdzKSwgc3RkOjpnZXQ8ND4oYXJncyks
IHN0ZDo6Z2V0PDU+KGFyZ3MpLCBzdGQ6OmdldDw2PihhcmdzKSwgZGVjb2Rlciwgc3RkOjpnZXQ8
MD4ocmVwbHlBcmdzKSwgc3RkOjpnZXQ8MT4ocmVwbHlBcmdzKSwgc3RkOjpnZXQ8Mj4ocmVwbHlB
cmdzKSk7CiB9CiAKIC8vIE1haW4gZGlzcGF0Y2ggZnVuY3Rpb25zCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcAkocmV2aXNpb24gMTU5MzUxKQorKysgU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcxLDYgKzcxLDExIEBAIGNvbnN0IHNpemVfdCBBUElDbGllbnRUcmFpdHM8V0tQYWdlTG9hZGUK
ICAgICBzaXplb2YoV0tQYWdlTG9hZGVyQ2xpZW50KQogfTsKIAorY29uc3Qgc2l6ZV90IEFQSUNs
aWVudFRyYWl0czxXS1BhZ2VQb2xpY3lDbGllbnQ+OjppbnRlcmZhY2VTaXplc0J5VmVyc2lvbltd
ID0geworICAgIG9mZnNldG9mKFdLUGFnZVBvbGljeUNsaWVudCwgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbiksCisgICAgc2l6ZW9mKFdLUGFnZVBvbGljeUNsaWVudCkKK307CisKIGNv
bnN0IHNpemVfdCBBUElDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnQ+OjppbnRlcmZhY2VTaXpl
c0J5VmVyc2lvbltdID0gewogICAgIG9mZnNldG9mKFdLUGFnZVVJQ2xpZW50LCBjcmVhdGVOZXdQ
YWdlKSwKICAgICBvZmZzZXRvZihXS1BhZ2VVSUNsaWVudCwgc2hvd0NvbG9yUGlja2VyKSwKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgJKHJldmlzaW9uIDE1OTM1
MSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAkod29ya2luZyBj
b3B5KQpAQCAtNjgsNiArNjgsMTAgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRz
PFdLUGFnZQogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25b
NF07CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBUElDbGllbnRUcmFpdHM8V0tQYWdlUG9saWN5
Q2xpZW50PiB7CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lv
blsyXTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS1BhZ2VVSUNs
aWVudD4gewogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25b
M107CiB9OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9y
UHJveHkuY3BwCShyZXZpc2lvbiAxNTkzNTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViSW5zcGVjdG9yUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzIsNyArMzcyLDcgQEAg
c3RhdGljIGJvb2wgaXNNYWluSW5zcGVjdG9yUGFnZShjb25zdCBXZQogICAgIHJldHVybiBXZWJD
b3JlOjpTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKHJlcXVlc3RV
UkwucHJvdG9jb2woKSkgJiYgZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHJlcXVlc3RVUkwucGF0
aCgpKSA9PSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMoaW5zcGVjdG9yVVJMLnBhdGgoKSk7CiB9
CiAKLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tQYWdlUmVm
LCBXS0ZyYW1lUmVmIGZyYW1lUmVmLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2Rp
ZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYsIFdL
RnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSwg
V0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBXS0ZyYW1lUmVmLCBXS1VSTFJl
cXVlc3RSZWYgcmVxdWVzdFJlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyUmVm
LCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgLy8gQWxsb3cgbm9u
LW1haW4gZnJhbWVzIHRvIG5hdmlnYXRlIGFueXdoZXJlLgogICAgIGlmICghdG9JbXBsKGZyYW1l
UmVmKS0+aXNNYWluRnJhbWUoKSkgewpAQCAtNDQxLDEwICs0NDEsMTEgQEAgdm9pZCBXZWJJbnNw
ZWN0b3JQcm94eTo6Y3JlYXRlSW5zcGVjdG9yUAogICAgIFdLUGFnZVBvbGljeUNsaWVudCBwb2xp
Y3lDbGllbnQgPSB7CiAgICAgICAgIGtXS1BhZ2VQb2xpY3lDbGllbnRDdXJyZW50VmVyc2lvbiwK
ICAgICAgICAgdGhpcywgLyogY2xpZW50SW5mbyAqLwotICAgICAgICBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uLAorICAgICAgICAwLCAvKiBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgKi8KICAgICAgICAgMCwgLyogZGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uICovCiAgICAgICAgIDAsIC8qIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlICovCi0gICAgICAgIDAgLyogdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kgKi8KKyAgICAg
ICAgMCwgLyogdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kgKi8KKyAgICAgICAgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbgogICAgIH07CiAKICAgICBpbnNwZWN0b3JQYWdlLT5pbml0aWFs
aXplUG9saWN5Q2xpZW50KCZwb2xpY3lDbGllbnQpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDE1OTM1MSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDAzLDcg
KzI0MDMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNlCiB9CiAK
IC8vIFBvbGljeUNsaWVudAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5
cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVycywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24s
IHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKQordm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJ
RCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVy
cywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwgdWludDY0X3Qgb3JpZ2luYXRpbmdGcmFtZUlE
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlv
biwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpCiB7CiAgICAg
UmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VE
ZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwpAQCAtMjQy
MCw2ICsyNDIwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYQog
ICAgIE5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlID0gc3RhdGljX2Nhc3Q8TmF2aWdhdGlv
blR5cGU+KG9wYXF1ZU5hdmlnYXRpb25UeXBlKTsKICAgICBXZWJFdmVudDo6TW9kaWZpZXJzIG1v
ZGlmaWVycyA9IHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KG9wYXF1ZU1vZGlmaWVy
cyk7CiAgICAgV2ViTW91c2VFdmVudDo6QnV0dG9uIG1vdXNlQnV0dG9uID0gc3RhdGljX2Nhc3Q8
V2ViTW91c2VFdmVudDo6QnV0dG9uPihvcGFxdWVNb3VzZUJ1dHRvbik7CisgICAgV2ViRnJhbWVQ
cm94eSogb3JpZ2luYXRpbmdGcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUob3JpZ2luYXRpbmdG
cmFtZUlEKTsKICAgICAKICAgICBSZWZQdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiBs
aXN0ZW5lciA9IGZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkobGlzdGVuZXJJRCk7CiAK
QEAgLTI0MjgsNyArMjQyOSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2EKICAgICBtX2luRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IHRydWU7CiAg
ICAgbV9zeW5jTmF2aWdhdGlvbkFjdGlvblBvbGljeUFjdGlvbklzVmFsaWQgPSBmYWxzZTsKICAg
ICAKLSAgICBpZiAoIW1fcG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24odGhpcywgZnJhbWUsIG5hdmlnYXRpb25UeXBlLCBtb2RpZmllcnMsIG1vdXNlQnV0dG9uLCBy
ZXF1ZXN0LCBsaXN0ZW5lci5nZXQoKSwgdXNlckRhdGEuZ2V0KCkpKQorICAgIGlmICghbV9wb2xp
Y3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih0aGlzLCBmcmFtZSwgbmF2
aWdhdGlvblR5cGUsIG1vZGlmaWVycywgbW91c2VCdXR0b24sIG9yaWdpbmF0aW5nRnJhbWUsIHJl
cXVlc3QsIGxpc3RlbmVyLmdldCgpLCB1c2VyRGF0YS5nZXQoKSkpCiAgICAgICAgIGxpc3RlbmVy
LT51c2UoKTsKIAogICAgIG1faW5EZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gZmFs
c2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lv
biAxNTkzNTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTc4OSw3ICs3ODksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ2hh
bmdlUHJvZ3Jlc3MoZG91YmxlKTsKICAgICB2b2lkIGRpZEZpbmlzaFByb2dyZXNzKCk7CiAKLSAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwg
dWludDMyX3QgbmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG1vZGlmaWVycywgaW50MzJfdCBtb3Vz
ZUJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlv
biwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpOworICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50
MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0
dG9uLCB1aW50NjRfdCBvcmlnaW5hdGluZ0ZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwg
Ym9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2
NF90JiBkb3dubG9hZElEKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9k
aWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTeW5jKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1aW50NjRfdCYgcG9s
aWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDE1OTM1
MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTk3LDcgKzk3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKIAogICAgICMgUG9saWN5IG1lc3NhZ2VzCiAgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VT
eW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Us
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSAtPiAoYm9v
bCByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QgcG9saWN5QWN0aW9uLCB1aW50NjRfdCBk
b3dubG9hZElEKSBWYXJpYWRpYwotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
dWludDY0X3QgZnJhbWVJRCwgdWludDMyX3QgbmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG1vZGlm
aWVycywgaW50MzJfdCBtb3VzZUJ1dHRvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2Fn
ZUVuY29kZXIgdXNlckRhdGEpIC0+IChib29sIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1aW50NjRf
dCBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IGRvd25sb2FkSUQpIFZhcmlhZGljCisgICAgRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZp
Z2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCB1aW50
NjRfdCBvcmlnaW5hdGluZ0ZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VF
bmNvZGVyIHVzZXJEYXRhKSAtPiAoYm9vbCByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3Qg
cG9saWN5QWN0aW9uLCB1aW50NjRfdCBkb3dubG9hZElEKSBWYXJpYWRpYwogICAgIERlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0
aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV1RGOjpTdHJpbmcgZnJhbWVOYW1lLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVz
ZXJEYXRhKSBWYXJpYWRpYwogICAgIFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpICBWYXJpYWRpYwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9saWN5Q2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9saWN5Q2xpZW50LmNwcAkocmV2aXNpb24gMTU5MzUx
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDE0ICszNCwxOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLWJvb2wgV2ViUG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJh
bWUsIE5hdmlnYXRpb25UeXBlIHR5cGUsIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzLCBX
ZWJNb3VzZUV2ZW50OjpCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVzb3VyY2VSZXF1ZXN0LCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqIGxpc3RlbmVyLCBB
UEk6Ok9iamVjdCogdXNlckRhdGEpCitib29sIFdlYlBvbGljeUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZy
YW1lLCBOYXZpZ2F0aW9uVHlwZSB0eXBlLCBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVycywg
V2ViTW91c2VFdmVudDo6QnV0dG9uIG1vdXNlQnV0dG9uLCBXZWJGcmFtZVByb3h5KiBvcmlnaW5h
dGluZ0ZyYW1lLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgV2ViRnJh
bWVQb2xpY3lMaXN0ZW5lclByb3h5KiBsaXN0ZW5lciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQog
ewotICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbikKKyAg
ICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25fZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAmJiAhbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPFdlYlVSTFJlcXVlc3Q+IHJl
cXVlc3QgPSBXZWJVUkxSZXF1ZXN0OjpjcmVhdGUocmVzb3VyY2VSZXF1ZXN0KTsKIAotICAgIG1f
Y2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odG9BUEkocGFnZSksIHRvQVBJ
KGZyYW1lKSwgdG9BUEkodHlwZSksIHRvQVBJKG1vZGlmaWVycyksIHRvQVBJKG1vdXNlQnV0dG9u
KSwgdG9BUEkocmVxdWVzdC5nZXQoKSksIHRvQVBJKGxpc3RlbmVyKSwgdG9BUEkodXNlckRhdGEp
LCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICBpZiAobV9jbGllbnQuZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbl9kZXByZWNhdGVkRm9yVXNlV2l0aFYwKQorICAgICAgICBtX2NsaWVu
dC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAo
dG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkodHlwZSksIHRvQVBJKG1vZGlmaWVycyks
IHRvQVBJKG1vdXNlQnV0dG9uKSwgdG9BUEkocmVxdWVzdC5nZXQoKSksIHRvQVBJKGxpc3RlbmVy
KSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICBlbHNlCisgICAg
ICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odG9BUEkocGFnZSks
IHRvQVBJKGZyYW1lKSwgdG9BUEkodHlwZSksIHRvQVBJKG1vZGlmaWVycyksIHRvQVBJKG1vdXNl
QnV0dG9uKSwgdG9BUEkob3JpZ2luYXRpbmdGcmFtZSksIHRvQVBJKHJlcXVlc3QuZ2V0KCkpLCB0
b0FQSShsaXN0ZW5lciksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBvbGljeUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQb2xpY3lDbGllbnQuaAkocmV2aXNpb24gMTU5MzUxKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBvbGljeUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBA
IGNsYXNzIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTsKIAogY2xhc3MgV2ViUG9saWN5Q2xp
ZW50IDogcHVibGljIEFQSUNsaWVudDxXS1BhZ2VQb2xpY3lDbGllbnQsIGtXS1BhZ2VQb2xpY3lD
bGllbnRDdXJyZW50VmVyc2lvbj4gewogcHVibGljOgotICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViQ29yZTo6
TmF2aWdhdGlvblR5cGUsIFdlYkV2ZW50OjpNb2RpZmllcnMsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRv
biwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5KiwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKTsKKyAgICBib29sIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24oV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYkNvcmU6
Ok5hdmlnYXRpb25UeXBlLCBXZWJFdmVudDo6TW9kaWZpZXJzLCBXZWJNb3VzZUV2ZW50OjpCdXR0
b24sIFdlYkZyYW1lUHJveHkqIG9yaWdpbmF0aW5nRnJhbWUsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSosIEFQSTo6T2JqZWN0KiB1
c2VyRGF0YSk7CiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViUGFn
ZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlLCBXZWJFdmVu
dDo6TW9kaWZpZXJzLCBXZWJNb3VzZUV2ZW50OjpCdXR0b24sIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJGcmFtZVBvbGljeUxpc3Rl
bmVyUHJveHkqLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpOwogICAgIGJvb2wgZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHkqLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpOwogICAgIHZv
aWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSos
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpOwpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAkocmV2aXNpb24gMTU5
MzUxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDgsMjIgKzE0OCwyOCBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VMb2FkZXJD
bGllbnQgV0tQYWdlCiBlbnVtIHsga1dLUGFnZUxvYWRlckNsaWVudEN1cnJlbnRWZXJzaW9uID0g
MyB9OwogCiAvLyBQb2xpY3kgQ2xpZW50LgotdHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9k
aWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJl
cXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgq
V0tQYWdlRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkNhbGxiYWNrKShXS1BhZ2VSZWYg
cGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25U
eXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNl
QnV0dG9uLCBXS0ZyYW1lUmVmIG9yaWdpbmF0aW5nRnJhbWUsIFdLVVJMUmVxdWVzdFJlZiByZXF1
ZXN0LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQ
b2xpY3lGb3JOZXdXaW5kb3dBY3Rpb25DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxS
ZXF1ZXN0UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGljeUxp
c3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVVJMUmVzcG9uc2VSZWYg
cmVzcG9uc2UsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJS
ZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VVbmFibGVUb0ltcGxlbWVudFBvbGljeUNhbGxiYWNrKShX
S1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBl
UmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAorLy8gRGVwcmVjYXRlZAor
dHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkNhbGxi
YWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZy
YW1lLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmll
cnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVz
dFJlZiByZXF1ZXN0LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJl
ZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKIHN0cnVjdCBXS1BhZ2VQb2xp
Y3lDbGllbnQgewotICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKLSAgICBjb25zdCB2b2lkICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVu
dEluZm87Ci0gICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOwot
ICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbkNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uOwotICAgIFdLUGFn
ZURlY2lkZVBvbGljeUZvclJlc3BvbnNlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2U7Ci0gICAgV0tQYWdlVW5hYmxlVG9JbXBsZW1l
bnRQb2xpY3lDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmFibGVUb0lt
cGxlbWVudFBvbGljeTsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQg
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNsaWVudEluZm87CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkNh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbl9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5l
d1dpbmRvd0FjdGlvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbjsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZTsKKyAgICBXS1BhZ2VVbmFibGVUb0ltcGxlbWVudFBvbGljeUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bmFibGVUb0ltcGxlbWVudFBvbGljeTsKKworICAgIC8v
IFZlcnNpb24gMQorICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25DYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b247CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlUG9saWN5Q2xpZW50IFdLUGFnZVBvbGljeUNs
aWVudDsKIAotZW51bSB7IGtXS1BhZ2VQb2xpY3lDbGllbnRDdXJyZW50VmVyc2lvbiA9IDAgfTsK
K2VudW0geyBrV0tQYWdlUG9saWN5Q2xpZW50Q3VycmVudFZlcnNpb24gPSAxIH07CiAKIC8vIEZv
cm0gQ2xpZW50LgogdHlwZWRlZiB2b2lkICgqV0tQYWdlV2lsbFN1Ym1pdEZvcm1DYWxsYmFjayko
V0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVSZWYgc291cmNlRnJhbWUs
IFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIFdLVHlwZVJlZiB1c2VyRGF0YSwgV0tGb3JtU3VibWlz
c2lvbkxpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0JKHJldmlzaW9uIDE1OTM1MSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5t
bQkod29ya2luZyBjb3B5KQpAQCAtODEsNiArODEsNyBAQCBOU1N0cmluZyAqIGNvbnN0IFdLQWN0
aW9uTW9kaWZpZXJGbGFnc0tlCiBOU1N0cmluZyAqIGNvbnN0IFdLQWN0aW9uVVJMUmVxdWVzdEtl
eSA9IEAiV0tBY3Rpb25VUkxSZXF1ZXN0S2V5IjsKIE5TU3RyaW5nICogY29uc3QgV0tBY3Rpb25V
UkxSZXNwb25zZUtleSA9IEAiV0tBY3Rpb25VUkxSZXNwb25zZUtleSI7CiBOU1N0cmluZyAqIGNv
bnN0IFdLQWN0aW9uRnJhbWVOYW1lS2V5ID0gQCJXS0FjdGlvbkZyYW1lTmFtZUtleSI7CitOU1N0
cmluZyAqIGNvbnN0IFdLQWN0aW9uT3JpZ2luYXRpbmdGcmFtZVVSTEtleSA9IEAiV0tBY3Rpb25P
cmlnaW5hdGluZ0ZyYW1lVVJMS2V5IjsKIAogQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXJEYXRhIDogTlNPYmplY3QgewogQHB1YmxpYwpAQCAtNjIyLDcgKzYyMyw3IEBAIHN0
YXRpYyB2b2lkIHNldFVwUGFnZVBvbGljeUNsaWVudChXS0Jyb3cKICAgICBwb2xpY3lDbGllbnQu
dmVyc2lvbiA9IGtXS1BhZ2VQb2xpY3lDbGllbnRDdXJyZW50VmVyc2lvbjsKICAgICBwb2xpY3lD
bGllbnQuY2xpZW50SW5mbyA9IGJyb3dzaW5nQ29udGV4dDsKIAotICAgIHBvbGljeUNsaWVudC5k
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gW10oV0tQYWdlUmVmIHBhZ2UsIFdLRnJh
bWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVu
dE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tV
UkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorICAgIHBvbGljeUNs
aWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gW10oV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwg
V0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRv
biwgV0tGcmFtZVJlZiBvcmlnaW5hdGluZ0ZyYW1lLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwg
V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiAgICAgewogICAgICAgICBXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCA9IChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIg
KiljbGllbnRJbmZvOwogICAgICAgICBpZiAoW2Jyb3dzaW5nQ29udGV4dC5wb2xpY3lEZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KV0pIHsKQEAg
LTYzMyw2ICs2MzQsMTEgQEAgc3RhdGljIHZvaWQgc2V0VXBQYWdlUG9saWN5Q2xpZW50KFdLQnJv
dwogICAgICAgICAgICAgICAgIFdLQWN0aW9uTW91c2VCdXR0b25LZXk6IEAobW91c2VCdXR0b24p
LAogICAgICAgICAgICAgICAgIFdLQWN0aW9uVVJMUmVxdWVzdEtleTogYWRvcHROUyhXS1VSTFJl
cXVlc3RDb3B5TlNVUkxSZXF1ZXN0KHJlcXVlc3QpKS5nZXQoKQogICAgICAgICAgICAgfTsKKwor
ICAgICAgICAgICAgaWYgKG9yaWdpbmF0aW5nRnJhbWUpIHsKKyAgICAgICAgICAgICAgICBhY3Rp
b25EaWN0aW9uYXJ5ID0gW1thY3Rpb25EaWN0aW9uYXJ5IG11dGFibGVDb3B5XSBhdXRvcmVsZWFz
ZV07CisgICAgICAgICAgICAgICAgWyhOU011dGFibGVEaWN0aW9uYXJ5ICopYWN0aW9uRGljdGlv
bmFyeSBzZXRPYmplY3Q6W05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzp0b0ltcGwob3JpZ2lu
YXRpbmdGcmFtZSktPnVybCgpIHJlbGF0aXZlVG9VUkw6bmlsXSBmb3JLZXk6V0tBY3Rpb25Pcmln
aW5hdGluZ0ZyYW1lVVJMS2V5XTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAg
ICAgICAgW2Jyb3dzaW5nQ29udGV4dC5wb2xpY3lEZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250
cm9sbGVyOmJyb3dzaW5nQ29udGV4dCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmFj
dGlvbkRpY3Rpb25hcnkgZGVjaXNpb25IYW5kbGVyOm1ha2VQb2xpY3lEZWNpc2lvbkJsb2NrKGxp
c3RlbmVyKV07CiAgICAgICAgIH0gZWxzZQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0UG9saWN5
RGVsZWdhdGUuaAkocmV2aXNpb24gMTU5MzUxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxMyArMjgsMTQgQEAKIEBjbGFzcyBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI7
CiAKIC8qIENvbnN0YW50cyBmb3IgcG9saWN5IGFjdGlvbiBkaWN0aW9uYXJpZXMgKi8KLVdLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBXS0FjdGlvbklzTWFpbkZyYW1lS2V5OyAgICAv
LyBOU051bWJlciAoQk9PTCkKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBXS0Fj
dGlvbk5hdmlnYXRpb25UeXBlS2V5OyAvLyBOU051bWJlciAoV0tOYXZpZ2F0aW9uVHlwZSkKLVdL
X0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBXS0FjdGlvbk1vdXNlQnV0dG9uS2V5OyAg
ICAvLyBOU051bWJlciAoMCBmb3IgbGVmdCBidXR0b24sIDEgZm9yIG1pZGRsZSBidXR0b24sIDIg
Zm9yIHJpZ2h0IGJ1dHRvbikKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBXS0Fj
dGlvbk1vZGlmaWVyRmxhZ3NLZXk7ICAvLyBOU051bWJlciAodW5zaWduZWQpCi1XS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgV0tBY3Rpb25VUkxSZXF1ZXN0S2V5OyAgICAgLy8gTlNV
UkxSZXF1ZXN0Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgV0tBY3Rpb25VUkxS
ZXNwb25zZUtleTsgICAgLy8gTlNVUkxSZXNwb25zZQotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmlu
ZyAqIGNvbnN0IFdLQWN0aW9uRnJhbWVOYW1lS2V5OyAgICAgIC8vIE5TU3RyaW5nCitXS19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgV0tBY3Rpb25Jc01haW5GcmFtZUtleTsgICAgICAg
ICAvLyBOU051bWJlciAoQk9PTCkKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBX
S0FjdGlvbk5hdmlnYXRpb25UeXBlS2V5OyAgICAgIC8vIE5TTnVtYmVyIChXS05hdmlnYXRpb25U
eXBlKQorV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IFdLQWN0aW9uTW91c2VCdXR0
b25LZXk7ICAgICAgICAgLy8gTlNOdW1iZXIgKDAgZm9yIGxlZnQgYnV0dG9uLCAxIGZvciBtaWRk
bGUgYnV0dG9uLCAyIGZvciByaWdodCBidXR0b24pCitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5n
ICogY29uc3QgV0tBY3Rpb25Nb2RpZmllckZsYWdzS2V5OyAgICAgICAvLyBOU051bWJlciAodW5z
aWduZWQpCitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgV0tBY3Rpb25VUkxSZXF1
ZXN0S2V5OyAgICAgICAgICAvLyBOU1VSTFJlcXVlc3QKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJp
bmcgKiBjb25zdCBXS0FjdGlvblVSTFJlc3BvbnNlS2V5OyAgICAgICAgIC8vIE5TVVJMUmVzcG9u
c2UKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBXS0FjdGlvbkZyYW1lTmFtZUtl
eTsgICAgICAgICAgIC8vIE5TU3RyaW5nCitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29u
c3QgV0tBY3Rpb25PcmlnaW5hdGluZ0ZyYW1lVVJMS2V5OyAvLyBOU1VSTAogCiB0eXBlZGVmIE5T
X0VOVU0oTlNVSW50ZWdlciwgV0tOYXZpZ2F0aW9uVHlwZSkgewogICAgIFdLTmF2aWdhdGlvblR5
cGVMaW5rQ2xpY2tlZCwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCShy
ZXZpc2lvbiAxNTkzNTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjc2LDcgKzY3
Niw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWQKICAgICB3ZWJQ
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5ld1dpbmRv
d0FjdGlvbihtX2ZyYW1lLT5mcmFtZUlEKCksIGFjdGlvbi0+bmF2aWdhdGlvblR5cGUoKSwgYWN0
aW9uLT5tb2RpZmllcnMoKSwgYWN0aW9uLT5tb3VzZUJ1dHRvbigpLCByZXF1ZXN0LCBmcmFtZU5h
bWUsIGxpc3RlbmVySUQsIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRh
LmdldCgpKSkpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdh
dGlvbkFjdGlvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQYXNzUmVmUHRyPEZv
cm1TdGF0ZT4gZm9ybVN0YXRlLCBGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uKQordm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24sIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IHBycEZvcm1TdGF0ZSwg
RnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbikKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0g
bV9mcmFtZS0+cGFnZSgpOwogICAgIGlmICghd2ViUGFnZSkKQEAgLTY4OSw2ICs2ODksNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkCiAgICAgfQogCiAgICAgUmVm
UHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsKKyAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3Rh
dGUgPSBwcnBGb3JtU3RhdGU7CiAKICAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9u
QWN0aW9uPiBhY3Rpb24gPSBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb246OmNyZWF0ZSht
X2ZyYW1lLCBuYXZpZ2F0aW9uQWN0aW9uLCBmb3JtU3RhdGUpOwogCkBAIC03MDQsOCArNzA1LDI2
IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWQKICAgICB1aW50NjRf
dCBwb2xpY3lBY3Rpb247CiAgICAgdWludDY0X3QgZG93bmxvYWRJRDsKIAorICAgIFJlZlB0cjxX
ZWJGcmFtZT4gb3JpZ2luYXRpbmdGcmFtZTsKKyAgICBzd2l0Y2ggKGFjdGlvbi0+bmF2aWdhdGlv
blR5cGUoKSkgeworICAgIGNhc2UgTmF2aWdhdGlvblR5cGVMaW5rQ2xpY2tlZDoKKyAgICAgICAg
b3JpZ2luYXRpbmdGcmFtZSA9IGFjdGlvbi0+aGl0VGVzdFJlc3VsdCgpLT5mcmFtZSgpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE5hdmlnYXRpb25UeXBlRm9ybVN1Ym1pdHRlZDoKKyAgICBj
YXNlIE5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkOgorICAgICAgICBpZiAoZm9ybVN0YXRl
KSB7CisgICAgICAgICAgICBpZiAoV2ViRnJhbWVMb2FkZXJDbGllbnQqIG9yaWdpbmF0aW5nRnJh
bWVMb2FkZXJDbGllbnQgPSB0b1dlYkZyYW1lTG9hZGVyQ2xpZW50KGZvcm1TdGF0ZS0+c291cmNl
RG9jdW1lbnQoKS0+ZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkpKQorICAgICAgICAgICAgICAg
IG9yaWdpbmF0aW5nRnJhbWUgPSBvcmlnaW5hdGluZ0ZyYW1lTG9hZGVyQ2xpZW50LT53ZWJGcmFt
ZSgpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTmF2aWdhdGlvblR5cGVC
YWNrRm9yd2FyZDoKKyAgICBjYXNlIE5hdmlnYXRpb25UeXBlUmVsb2FkOgorICAgIGNhc2UgTmF2
aWdhdGlvblR5cGVPdGhlcjoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgLy8gTm90aWZ5
IHRoZSBVSVByb2Nlc3MuCi0gICAgaWYgKCF3ZWJQYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKG1fZnJhbWUtPmZyYW1l
SUQoKSwgYWN0aW9uLT5uYXZpZ2F0aW9uVHlwZSgpLCBhY3Rpb24tPm1vZGlmaWVycygpLCBhY3Rp
b24tPm1vdXNlQnV0dG9uKCksIHJlcXVlc3QsIGxpc3RlbmVySUQsIEluamVjdGVkQnVuZGxlVXNl
ck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246OlJlcGx5KHJlY2VpdmVkUG9saWN5QWN0
aW9uLCBwb2xpY3lBY3Rpb24sIGRvd25sb2FkSUQpKSkKKyAgICBpZiAoIXdlYlBhZ2UtPnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24obV9mcmFtZS0+ZnJhbWVJRCgpLCBhY3Rpb24tPm5hdmlnYXRpb25UeXBlKCksIGFjdGlvbi0+
bW9kaWZpZXJzKCksIGFjdGlvbi0+bW91c2VCdXR0b24oKSwgb3JpZ2luYXRpbmdGcmFtZSA/IG9y
aWdpbmF0aW5nRnJhbWUtPmZyYW1lSUQoKSA6IDAsIHJlcXVlc3QsIGxpc3RlbmVySUQsIEluamVj
dGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSksIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246OlJlcGx5KHJlY2Vp
dmVkUG9saWN5QWN0aW9uLCBwb2xpY3lBY3Rpb24sIGRvd25sb2FkSUQpKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgLy8gV2UgY2FsbCB0aGlzIHN5bmNocm9ub3VzbHkgYmVjYXVzZSBXZWJDb3Jl
IGNhbm5vdCBncmFjZWZ1bGx5IGhhbmRsZSBhIGZyYW1lIGxvYWQgd2l0aG91dCBhIHN5bmNocm9u
b3VzIG5hdmlnYXRpb24gcG9saWN5IHJlcGx5LgpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTU5MzUzKQorKysgVG9vbHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTMtMTEtMTUgIERhbiBC
ZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBHaXZlIHRoZSBwb2xpY3kgY2xp
ZW50IHRoZSBvcmlnaW5hdGluZyBmcmFtZSBvZiBhIG5hdmlnYXRpb24gYWN0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ0MzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL21h
Yy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbik6IEFkZGVkIG9yaWdpbmF0aW5nRnJhbWUgcGFyYW1ldGVyLgorICAg
ICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKTogVXBkYXRl
ZCBmb3IgdGhlIG5ldyB2ZXJzaW9uIG9mIHRoZSBwb2xpY3kKKyAgICAgICAgY2xpZW50LgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0Rvd25sb2FkRGVjaWRlRGVzdGlu
YXRpb25DcmFzaC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKTogQWRkZWQgb3JpZ2luYXRpbmdGcmFtZSBwYXJhbWV0ZXIuCisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpzZXRQYWdlUG9saWN5Q2xpZW50KTogVXBkYXRlZCBmb3IgdGhl
IG5ldyB2ZXJzaW9uIG9mIHRoZSBwb2xpY3kgY2xpZW50LgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL1BhZ2VMb2FkQmFzaWMuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6IEFkZGVkIG9yaWdpbmF0aW5n
RnJhbWUgcGFyYW1ldGVyLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6IFVwZGF0ZWQg
Zm9yIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGUgcG9saWN5IGNsaWVudC4KKworICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKTogVXBkYXRlZCBmb3IgdGhlIG5ldyB2
ZXJzaW9uIG9mIHRoZSBwb2xpY3kKKyAgICAgICAgY2xpZW50LgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6IEFkZGVkIG9yaWdp
bmF0aW5nRnJhbWUgcGFyYW1ldGVyLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaDoKKwogMjAxMy0xMS0xNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KIAogICAgICAgICBidWlsZC53ZWJraXQub3JnL2Rhc2hib2FyZCBzaG91bGQgcHJv
dmlkZSBhIHdheSB0byBmb2N1cyBvbiBhIHN1YnNldCBvZiBib3RzCkluZGV4OiBUb29scy9NaW5p
QnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQkocmV2aXNp
b24gMTU5MzUxKQorKysgVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250
cm9sbGVyLm0JKHdvcmtpbmcgY29weSkKQEAgLTQxNCw3ICs0MTQsNyBAQCBzdGF0aWMgdm9pZCBk
aWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoV0tQCiAKIC8vIE1BUks6IFBvbGljeSBDbGllbnQgQ2Fs
bGJhY2tzCiAKLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZp
Z2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRv
biBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0
ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRp
b25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1v
dXNlQnV0dG9uLCBXS0ZyYW1lUmVmIG9yaWdpbmF0aW5nRnJhbWUsIFdLVVJMUmVxdWVzdFJlZiBy
ZXF1ZXN0LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2Vy
RGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBMT0coQCJkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uIik7CiAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3Rl
bmVyKTsKQEAgLTY3MCwxMCArNjcwLDExIEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgV0tQ
YWdlUG9saWN5Q2xpZW50IHBvbGljeUNsaWVudCA9IHsKICAgICAgICAga1dLUGFnZVBvbGljeUNs
aWVudEN1cnJlbnRWZXJzaW9uLAogICAgICAgICBzZWxmLCAgICAgICAvKiBjbGllbnRJbmZvICov
Ci0gICAgICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24sCisgICAgICAgIDAsICAg
ICAgICAgIC8qIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25fZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMCAqLwogICAgICAgICBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24sCiAgICAg
ICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlLAotICAgICAgICAwICAgICAgICAgICAvKiB1bmFi
bGVUb0ltcGxlbWVudFBvbGljeSAqLworICAgICAgICAwLCAgICAgICAgICAvKiB1bmFibGVUb0lt
cGxlbWVudFBvbGljeSAqLworICAgICAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
LAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudChfd2ViVmlldy5wYWdlUmVm
LCAmcG9saWN5Q2xpZW50KTsKIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL0Rvd25sb2FkRGVjaWRlRGVzdGluYXRpb25DcmFzaC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0Rvd25sb2FkRGVjaWRlRGVzdGluYXRpb25D
cmFzaC5jcHAJKHJldmlzaW9uIDE1OTM1MSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9Eb3dubG9hZERlY2lkZURlc3RpbmF0aW9uQ3Jhc2guY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogc3RhdGljIGJv
b2wgZGlkRGVjaWRlRGVzdGluYXRpb247CiAKLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ZyYW1lTmF2aWdhdGlvblR5
cGUsIFdLRXZlbnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVm
LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiwgY29uc3Qgdm9p
ZCopCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzLCBX
S0V2ZW50TW91c2VCdXR0b24sIFdLRnJhbWVSZWYsIFdLVVJMUmVxdWVzdFJlZiwgV0tGcmFtZVBv
bGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKQogewogICAg
IFdLRnJhbWVQb2xpY3lMaXN0ZW5lckRvd25sb2FkKGxpc3RlbmVyKTsKIH0KQEAgLTU3LDYgKzU3
LDcgQEAgc3RhdGljIHZvaWQgc2V0UGFnZVBvbGljeUNsaWVudChXS1BhZ2VSZQogewogICAgIFdL
UGFnZVBvbGljeUNsaWVudCBwb2xpY3lDbGllbnQ7CiAgICAgbWVtc2V0KCZwb2xpY3lDbGllbnQs
IDAsIHNpemVvZihwb2xpY3lDbGllbnQpKTsKKyAgICBwb2xpY3lDbGllbnQudmVyc2lvbiA9IDE7
CiAgICAgcG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOwogCiAgICAgV0tQYWdlU2V0UGFnZVBvbGljeUNs
aWVudChwYWdlLCAmcG9saWN5Q2xpZW50KTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9QYWdlTG9hZEJhc2ljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvUGFnZUxvYWRCYXNpYy5jcHAJKHJldmlzaW9uIDE1OTM1MSkK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QYWdlTG9hZEJhc2ljLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsNyBAQCBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2Fk
Rm9yRnJhbWUoV0tQYWdlCiAgICAgdGVzdDFEb25lID0gdHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9k
aWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJl
cXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5
cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZy
YW1lLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmll
cnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLRnJhbWVSZWYg
b3JpZ2luYXRpbmdGcmFtZSwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lM
aXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogewogICAgIFN0YXRlKiBzdGF0ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8U3RhdGUqPihj
b25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHN0YXRlLT5k
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKTsKQEAgLTEyOCw3ICsxMjgsNyBAQCBURVNU
KFdlYktpdDIsIFBhZ2VMb2FkQmFzaWMpCiAgICAgV0tQYWdlUG9saWN5Q2xpZW50IHBvbGljeUNs
aWVudDsKICAgICBtZW1zZXQoJnBvbGljeUNsaWVudCwgMCwgc2l6ZW9mKHBvbGljeUNsaWVudCkp
OwogCi0gICAgcG9saWN5Q2xpZW50LnZlcnNpb24gPSAwOworICAgIHBvbGljeUNsaWVudC52ZXJz
aW9uID0gMTsKICAgICBwb2xpY3lDbGllbnQuY2xpZW50SW5mbyA9ICZzdGF0ZTsKICAgICBwb2xp
Y3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb247CiAgICAgcG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbiA9IGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbjsKSW5kZXg6IFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxNTkzNTEpCisr
KyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDg4LDEwICs0ODgsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmll
d1dpdGhPcAogICAgIFdLUGFnZVBvbGljeUNsaWVudCBwYWdlUG9saWN5Q2xpZW50ID0gewogICAg
ICAgICBrV0tQYWdlUG9saWN5Q2xpZW50Q3VycmVudFZlcnNpb24sCiAgICAgICAgIHRoaXMsCi0g
ICAgICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24sCisgICAgICAgIDAsIC8vIGRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25fZGVwcmVjYXRlZEZvclVzZVdpdGhWMAogICAg
ICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24KICAgICAgICAgZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UsCiAgICAgICAgIDAsIC8vIHVuYWJsZVRvSW1wbGVtZW50UG9saWN5
CisgICAgICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24sCiAgICAgfTsKICAgICBX
S1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VQb2xp
Y3lDbGllbnQpOwogCkBAIC0xMjE2LDcgKzEyMTcsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjp1
bmF2YWlsYWJsZVBsdWdpbkJ1CiAgICAgcHJpbnRmKCJNSVNTSU5HIFBMVUdJTiBCVVRUT04gUFJF
U1NFRFxuIik7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUs
IFdLRXZlbnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmLCBX
S0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUsIFdL
RXZlbnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgV0tGcmFtZVJlZiwgV0tVUkxSZXF1
ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+
KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbihsaXN0ZW5lcik7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCShyZXZpc2lvbiAxNTkzNTEpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw3ICsxNTIsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZShXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYsIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYpOwogCiAgICAg
Ly8gV0tQYWdlUG9saWN5Q2xpZW50Ci0gICAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlw
ZSwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYs
IFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKik7CisgICAg
c3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdL
RnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVu
dE1vdXNlQnV0dG9uLCBXS0ZyYW1lUmVmLCBXS1VSTFJlcXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lM
aXN0ZW5lclJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKik7CiAgICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZik7CiAKICAgICBz
dGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYs
IFdLVVJMUmVzcG9uc2VSZWYsIFdLVVJMUmVxdWVzdFJlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVy
UmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKTsK
</data>
<flag name="review"
          id="240157"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>