<?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>132623</bug_id>
          
          <creation_ts>2014-05-06 14:16:27 -0700</creation_ts>
          <short_desc>[iOS][WK2] Add tap highlight on the simple UITapGestureRecognizer</short_desc>
          <delta_ts>2014-05-28 09:58:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>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>
          
          <blocked>133349</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1007079</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-06 14:16:27 -0700</bug_when>
    <thetext>[iOS][WK2] Add tap highlight on the simple UITapGestureRecognizer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007081</commentid>
    <comment_count>1</comment_count>
      <attachid>230932</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-06 14:17:32 -0700</bug_when>
    <thetext>Created attachment 230932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007083</commentid>
    <comment_count>2</comment_count>
      <attachid>230933</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-06 14:23:16 -0700</bug_when>
    <thetext>Created attachment 230933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007084</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-06 14:24:05 -0700</bug_when>
    <thetext>Attachment 230933 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:437:  The parameter name &quot;!&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:452:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:453:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:454:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:456:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:664:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:665:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:666:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:667:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:667:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:667:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:668:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:669:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:670:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:671:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:800:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:801:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:802:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:804:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 19 in 15 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>1007091</commentid>
    <comment_count>4</comment_count>
      <attachid>230933</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-05-06 15:01:14 -0700</bug_when>
    <thetext>Comment on attachment 230933
Patch

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

Looks good to me.

&gt; Source/WebKit2/UIProcess/ios/WKSyntheticClickTapGestureRecognizer.h:25
&gt; +

you need to add #if PLATFORM(IOS) around the entire file content.

&gt; Source/WebKit2/UIProcess/ios/WKSyntheticClickTapGestureRecognizer.m:25
&gt; +

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007116</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-06 15:53:45 -0700</bug_when>
    <thetext>Committed r168388: &lt;http://trac.webkit.org/changeset/168388&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230932</attachid>
            <date>2014-05-06 14:17:32 -0700</date>
            <delta_ts>2014-05-06 14:23:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132623-20140506141658.patch</filename>
            <type>text/plain</type>
            <size>37596</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTFiY2M3MTEwNWMzYjFh
NTljZTQ4ZGIxNDk5NTlmMjhiOGQyYjhhMC4uNjcyNGQyNTJhYzIzOTBjZTgxN2MzZGE3NzgxOGY1
YmVlMDJkZDYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE0LTA1LTA2ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdW1dLMl0g
QWRkIHRhcCBoaWdobGlnaHQgb24gdGhlIHNpbXBsZSBVSVRhcEdlc3R1cmVSZWNvZ25pemVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI2MjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBsb3cg
bGF0ZW5jeSBoaWdobGlnaHQgZm9yIHRhcC9jbGljay4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Q
YWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb21t
aXRQb3RlbnRpYWxUYXBGYWlsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0dXBJbnRlcmFjdGlv
bl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaG93VGFwSGlnaGxpZ2h0V2l0aENvbG9y
OldlYkNvcmU6OnF1YWRzOldlYkNvcmU6OnRvcExlZnRSYWRpdXM6V2ViQ29yZTo6dG9wUmlnaHRS
YWRpdXM6V2ViQ29yZTo6Ym90dG9tTGVmdFJhZGl1czpXZWJDb3JlOjpib3R0b21SaWdodFJhZGl1
czpXZWJDb3JlOjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkR2V0VGFwSGlnaGxp
Z2h0Rm9yUmVxdWVzdDpjb2xvcjpXZWJDb3JlOjpxdWFkczpXZWJDb3JlOjp0b3BMZWZ0UmFkaXVz
OldlYkNvcmU6OnRvcFJpZ2h0UmFkaXVzOldlYkNvcmU6OmJvdHRvbUxlZnRSYWRpdXM6V2ViQ29y
ZTo6Ym90dG9tUmlnaHRSYWRpdXM6V2ViQ29yZTo6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX2ZpbmlzaEludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2hpZ2hs
aWdodExvbmdQcmVzc1JlY29nbml6ZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Np
bmdsZVRhcFJlY29nbml6ZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbmdsZVRh
cERpZFJlc2V0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jb21taXRQb3RlbnRpYWxU
YXBGYWlsZWRdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2luZ2xlVGFwQ29tbWl0ZWQ6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2F0dGVtcHRDbGlja0F0TG9jYXRpb246XSk6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29n
bml6ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY0NsaWNr
VGFwR2VzdHVyZVJlY29nbml6ZXIubTogQWRkZWQuCisgICAgICAgICgtW1dLU3ludGhldGljQ2xp
Y2tUYXBHZXN0dXJlUmVjb2duaXplciBzZXRHZXN0dXJlUmVjb2duaXplZFRhcmdldDphY3Rpb246
XSk6CisgICAgICAgICgtW1dLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplciBzZXRS
ZXNldFRhcmdldDphY3Rpb246XSk6CisgICAgICAgICgtW1dLU3ludGhldGljQ2xpY2tUYXBHZXN0
dXJlUmVjb2duaXplciBzZXRTdGF0ZTpdKToKKyAgICAgICAgKC1bV0tTeW50aGV0aWNDbGlja1Rh
cEdlc3R1cmVSZWNvZ25pemVyIHJlc2V0XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cG90ZW50aWFs
VGFwQXRQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tbWl0UG90
ZW50aWFsVGFwKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYW5jZWxQb3RlbnRp
YWxUYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnRhcEhpZ2hsaWdodEF0UG9z
aXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbW1pdFBvdGVudGlhbFRh
cEZhaWxlZCk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYW5k
bGVTeW50aGV0aWNDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVRhcCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlbmRUYXBIaWdobGlnaHRGb3JOb2RlSWZOZWNl
c3NhcnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb3RlbnRpYWxUYXBBdFBvc2l0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6Y2FuY2VsUG90ZW50aWFsVGFwKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbik6CisKIDIwMTQtMDUtMDUgIEJlbmph
bWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11bV0syXSBQ
cmVmZXRjaCBETlMgaG9zdG5hbWVzIG9uIHRhcCBoaWdobGlnaHQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCmluZGV4IDFiZDIzNzE2NjJjNDYxZTcyYzQxMTdmMGFhMWY3NjY2M2Fj
MTkyYmIuLmFiNzcyMWFiNjJkM2Q2ZmIyZjZlNDFhMTlhYTc3ZGRiNmQxNmVlZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMjQxLDYgKzI0MSw3IEBAIHB1YmxpYzoK
ICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKICNpZiBQTEFURk9STShJT1MpCisgICAgdmlydHVh
bCB2b2lkIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkR2V0VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdl
YkNvcmU6OkNvbG9yJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4mIGhpZ2hsaWdo
dGVkUXVhZHMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcExlZnRSYWRpdXMsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBi
b3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21SaWdodFJhZGl1
cykgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdExheWVyVHJlZShjb25zdCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCAwZGMxNWI1ZTZhZTYzNDM5MDUyYTJjODk1MDA3OWEwZTE2MDZjMzJj
Li40YzQ3ODIwOWRjZjJlNDkyNWNlZDI1ZWY5MTZjMDljZWIxOWU1YjFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02MjIsNiArNjIyLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgYXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlKCk7CiAgICAgdm9pZCBhcHBsaWNh
dGlvbkRpZEJlY29tZUFjdGl2ZSgpOwogICAgIHZvaWQgem9vbVRvUmVjdChXZWJDb3JlOjpGbG9h
dFJlY3QsIGRvdWJsZSBtaW5pbXVtU2NhbGUsIGRvdWJsZSBtYXhpbXVtU2NhbGUpOworICAgIHZv
aWQgY29tbWl0UG90ZW50aWFsVGFwRmFpbGVkKCk7CiAgICAgdm9pZCBkaWROb3RIYW5kbGVUYXBB
c0NsaWNrKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAjZW5kaWYKIApAQCAtMTAzMCw2ICsx
MDMxLDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIHdpbGxTdGFydFVz
ZXJUcmlnZ2VyZWRab29taW5nKCk7CiAKKyAgICB2b2lkIHBvdGVudGlhbFRhcEF0UG9zaXRpb24o
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIHVpbnQ2NF90JiByZXF1ZXN0SUQpOworICAgIHZv
aWQgY29tbWl0UG90ZW50aWFsVGFwKCk7CisgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXAoKTsK
ICAgICB2b2lkIHRhcEhpZ2hsaWdodEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYsIHVpbnQ2NF90JiByZXF1ZXN0SUQpOwogCiAgICAgdm9pZCBibHVyQXNzaXN0ZWROb2RlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCBkOTkwOTI2MDY0OGI4YTJkMDQ1MTc4NjkzNWU3NTMxNjM2ODA4YzliLi4yNDg2YjY1
NGYwOGRmMGY4ZmRhNmE1NTM4ZjRlMTRjYzc1NWNkNzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTE2OSw2ICsxNjksNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZFVwZGF0ZUJsb2NrU2VsZWN0aW9u
V2l0aFRvdWNoKHVpbnQzMl90IHRvdWNoLCB1aW50MzJfdCBmbGFncywgZmxvYXQgZ3Jvd1RocmVz
aG9sZCwgZmxvYXQgc2hyaW5rVGhyZXNob2xkKQogICAgIFNob3dQbGF5YmFja1RhcmdldFBpY2tl
cihib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpJbnRSZWN0IGVsZW1lbnRSZWN0KQogICAgIFpvb21U
b1JlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QsIGRvdWJsZSBtaW5pbXVtU2NhbGUsIGRvdWJs
ZSBtYXhpbXVtU2NhbGUpCisgICAgQ29tbWl0UG90ZW50aWFsVGFwRmFpbGVkKCkKICAgICBEaWRO
b3RIYW5kbGVUYXBBc0NsaWNrKFdlYkNvcmU6OkludFBvaW50IHBvaW50KQogI2VuZGlmCiAjaWYg
UExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oCmluZGV4IDU5MjNlYWQxN2JhMGRmNzM4NDc4Yjc5N2FhMGFhOTY4MjRhYTIz
MzQuLjJkZmQ0NGUxMTZkYjExMzU3ZGE5NmY3MzA3OTM4MTM0NDNkZmM1YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTEwNiw2
ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aGVlbEV2ZW50V2FzTm90SGFu
ZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGNsZWFyQ3VzdG9tU3dpcGVWaWV3cygpIG92ZXJyaWRlOwogCisgICAgdmly
dHVhbCB2b2lkIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYg
aGlnaGxpZ2h0ZWRRdWFkcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJp
Z2h0UmFkaXVzKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRMYXllclRy
ZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGU4
NDI5ZGE4NWI2NGQzYzJmN2I5ZWI0YjhiZTIwOTgwMTU3OGI0ZGMuLmU4MzBmNDk5NTgxODM0Njdh
ZmI2YjlhM2IwMjhjYmVjZmVlZDc2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtMzY2LDYgKzM2NiwxMSBAQCB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpjbGVhckN1c3RvbVN3aXBlVmlld3MoKQogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgp
Cit7CisgICAgW21fY29udGVudFZpZXcgX2NvbW1pdFBvdGVudGlhbFRhcEZhaWxlZF07Cit9CisK
IHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0
X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IsIGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpGbG9hdFF1YWQ+JiBoaWdobGlnaHRlZFF1YWRzLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiB0b3BMZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BSaWdodFJhZGl1
cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tTGVmdFJhZGl1cywgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgYm90dG9tUmlnaHRSYWRpdXMpCiB7CiAgICAgW21fY29udGVudFZpZXcgX2Rp
ZEdldFRhcEhpZ2hsaWdodEZvclJlcXVlc3Q6cmVxdWVzdElEIGNvbG9yOmNvbG9yIHF1YWRzOmhp
Z2hsaWdodGVkUXVhZHMgdG9wTGVmdFJhZGl1czp0b3BMZWZ0UmFkaXVzIHRvcFJpZ2h0UmFkaXVz
OnRvcFJpZ2h0UmFkaXVzIGJvdHRvbUxlZnRSYWRpdXM6Ym90dG9tTGVmdFJhZGl1cyBib3R0b21S
aWdodFJhZGl1czpib3R0b21SaWdodFJhZGl1c107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA4ZWMxMmQx
ZWFiOWJlZjQ5Mzg5YzJmM2U5M2YxOGVmMWVkZDQ4NjdjLi5jNjZhYmI0ZmFkMDVhNzlhMTQ0NzE2
YWMyYTNhNjA4NTlhODBmNWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bXBvcnQgIkFzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmgiCiAjaW1wb3J0ICJHZXN0dXJlVHlwZXMu
aCIKICNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCisjaW1wb3J0
ICJXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIuaCIKICNpbXBvcnQgIldLQWly
UGxheVJvdXRlUGlja2VyLmgiCiAjaW1wb3J0ICJXS0ZpbGVVcGxvYWRQYW5lbC5oIgogI2ltcG9y
dCAiV0tGb3JtUGVyaXBoZXJhbC5oIgpAQCAtMzksNiArNDAsOCBAQAogI2ltcG9ydCA8VUlLaXQv
VUlXS1RleHRJbnRlcmFjdGlvbkFzc2lzdGFudC5oPgogI2ltcG9ydCA8VUlLaXQvVUlXZWJGb3Jt
QWNjZXNzb3J5Lmg+CiAjaW1wb3J0IDxVSUtpdC9VSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29n
bml6ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRmxv
YXRRdWFkLmg+CiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5o
PgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC04NCw3ICs4Nyw3IEBAIHN0cnVj
dCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAKICAgICBCT09MIF9jYW5TZW5kVG91Y2hFdmVudHNB
c3luY2hyb25vdXNseTsKIAotICAgIFJldGFpblB0cjxVSVRhcEdlc3R1cmVSZWNvZ25pemVyPiBf
c2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXI7CisgICAgUmV0YWluUHRyPFdLU3ludGhldGljQ2xp
Y2tUYXBHZXN0dXJlUmVjb2duaXplcj4gX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyOwogICAg
IFJldGFpblB0cjxfVUlXZWJIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcj4gX2hp
Z2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyOwogICAgIFJldGFpblB0cjxVSUxvbmdQ
cmVzc0dlc3R1cmVSZWNvZ25pemVyPiBfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI7CiAgICAg
UmV0YWluUHRyPFVJVGFwR2VzdHVyZVJlY29nbml6ZXI+IF9kb3VibGVUYXBHZXN0dXJlUmVjb2du
aXplcjsKQEAgLTEwOCw2ICsxMTEsMTUgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsK
ICAgICBpZCA8VUlUZXh0SW5wdXREZWxlZ2F0ZT4gX2lucHV0RGVsZWdhdGU7CiAKICAgICB1aW50
NjRfdCBfbGF0ZXN0VGFwSGlnaGxpZ2h0SUQ7CisgICAgc3RydWN0IFRhcEhpZ2hsaWdodEluZm9y
bWF0aW9uIHsKKyAgICAgICAgV2ViQ29yZTo6Q29sb3IgY29sb3I7CisgICAgICAgIFZlY3RvcjxX
ZWJDb3JlOjpGbG9hdFF1YWQ+IHF1YWRzOworICAgICAgICBXZWJDb3JlOjpJbnRTaXplIHRvcExl
ZnRSYWRpdXM7CisgICAgICAgIFdlYkNvcmU6OkludFNpemUgdG9wUmlnaHRSYWRpdXM7CisgICAg
ICAgIFdlYkNvcmU6OkludFNpemUgYm90dG9tTGVmdFJhZGl1czsKKyAgICAgICAgV2ViQ29yZTo6
SW50U2l6ZSBib3R0b21SaWdodFJhZGl1czsKKyAgICB9OworICAgIHN0ZDo6dW5pcXVlX3B0cjxU
YXBIaWdobGlnaHRJbmZvcm1hdGlvbj4gX3BvdGVudGlhbFRhcEhpZ2hsaWdodEluZm9ybWF0aW9u
OwogCiAgICAgV2ViS2l0OjpXS0F1dG9Db3JyZWN0aW9uRGF0YSBfYXV0b2NvcnJlY3Rpb25EYXRh
OwogICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gX3Bvc2l0aW9u
SW5mb3JtYXRpb247CkBAIC0xMjAsNiArMTMyLDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25E
YXRhIHsKICAgICBCT09MIF9zaG93aW5nVGV4dFN0eWxlT3B0aW9uczsKICAgICBCT09MIF9oYXNW
YWxpZFBvc2l0aW9uSW5mb3JtYXRpb247CiAgICAgQk9PTCBfaXNUYXBIaWdobGlnaHRJRFZhbGlk
OworICAgIEJPT0wgX3BvdGVudGlhbFRhcEluUHJvZ3Jlc3M7CiAgICAgQk9PTCBfc2VsZWN0aW9u
TmVlZHNVcGRhdGU7CiAgICAgQk9PTCBfdXNpbmdHZXN0dXJlRm9yU2VsZWN0aW9uOwogfQpAQCAt
MTM5LDYgKzE1Miw3IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAtICh2b2lkKWNs
ZWFudXBJbnRlcmFjdGlvbjsKIAogLSAodm9pZClfd2ViVG91Y2hFdmVudDooY29uc3QgV2ViS2l0
OjpOYXRpdmVXZWJUb3VjaEV2ZW50Jil0b3VjaEV2ZW50IHByZXZlbnRzTmF0aXZlR2VzdHVyZXM6
KEJPT0wpcHJldmVudHNEZWZhdWx0OworLSAodm9pZClfY29tbWl0UG90ZW50aWFsVGFwRmFpbGVk
OwogLSAodm9pZClfZGlkR2V0VGFwSGlnaGxpZ2h0Rm9yUmVxdWVzdDoodWludDY0X3QpcmVxdWVz
dElEIGNvbG9yOihjb25zdCBXZWJDb3JlOjpDb2xvciYpY29sb3IgcXVhZHM6KGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpGbG9hdFF1YWQ+JiloaWdobGlnaHRlZFF1YWRzIHRvcExlZnRSYWRpdXM6KGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKXRvcExlZnRSYWRpdXMgdG9wUmlnaHRSYWRpdXM6KGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKXRvcFJpZ2h0UmFkaXVzIGJvdHRvbUxlZnRSYWRpdXM6KGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKWJvdHRvbUxlZnRSYWRpdXMgYm90dG9tUmlnaHRSYWRpdXM6KGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKWJvdHRvbVJpZ2h0UmFkaXVzOwogCiAtICh2b2lkKV9zdGFy
dEFzc2lzdGluZ05vZGU6KGNvbnN0IFdlYktpdDo6QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mKWlu
Zm9ybWF0aW9uIHVzZXJJc0ludGVyYWN0aW5nOihCT09MKXVzZXJJc0ludGVyYWN0aW5nIHVzZXJP
YmplY3Q6KE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1c2VyT2JqZWN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQppbmRleCAyMWYyMzU2YmFlMjgxNTZjYWI5OWNhZGU3YTY4ZGE4NDQwZWMwOTEzLi4zMTkw
NjUxNTIxOTc2MWYxMTkyMDQzNmU4ZmU0YWZlOGQxMjBhMTI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpA
QCAtNTQsOCArNTQsNiBAQAogI2ltcG9ydCA8VUlLaXQvVUlXZWJEb2N1bWVudFZpZXcuaD4gLy8g
RklYTUU6IHNob3VsZCBub3QgaW5jbHVkZSB0aGlzIGhlYWRlci4KICNpbXBvcnQgPFVJS2l0L19V
SUhpZ2hsaWdodFZpZXcuaD4KICNpbXBvcnQgPFVJS2l0L19VSVdlYkhpZ2hsaWdodExvbmdQcmVz
c0dlc3R1cmVSZWNvZ25pemVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJF
dmVudC5oPgpAQCAtMTkyLDggKzE5MCwxMCBAQCBzdGF0aWMgY29uc3QgZmxvYXQgdGFwQW5kSG9s
ZERlbGF5ICA9IDAuNzU7CiAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVs
ZWdhdGU6c2VsZl07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X3RvdWNoRXZlbnRH
ZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAKLSAgICBfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6
ZXIgPSBhZG9wdE5TKFtbVUlUYXBHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJn
ZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9zaW5nbGVUYXBSZWNvZ25pemVkOildKTsKKyAgICBf
c2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbV0tTeW50aGV0aWNDbGlja1Rh
cEdlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2Vs
ZWN0b3IoX3NpbmdsZVRhcENvbW1pdGVkOildKTsKICAgICBbX3NpbmdsZVRhcEdlc3R1cmVSZWNv
Z25pemVyIHNldERlbGVnYXRlOnNlbGZdOworICAgIFtfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6
ZXIgc2V0R2VzdHVyZVJlY29nbml6ZWRUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9zaW5n
bGVUYXBSZWNvZ25pemVkOildOworICAgIFtfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0
UmVzZXRUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9zaW5nbGVUYXBEaWRSZXNldDopXTsK
ICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6
ZXIuZ2V0KCldOwogCiAgICAgX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhb
W1VJVGFwR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFyZ2V0OnNlbGYgYWN0aW9u
OkBzZWxlY3RvcihfZG91YmxlVGFwUmVjb2duaXplZDopXSk7CkBAIC0zNjMsMTEgKzM2Myw4IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBoaWdobGlnaHRlZFF1YWRzQXJlU21hbGxlclRoYW5SZWN0KGNv
bnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLS0gKHZvaWQp
X2RpZEdldFRhcEhpZ2hsaWdodEZvclJlcXVlc3Q6KHVpbnQ2NF90KXJlcXVlc3RJRCBjb2xvcjoo
Y29uc3QgV2ViQ29yZTo6Q29sb3ImKWNvbG9yIHF1YWRzOihjb25zdCBWZWN0b3I8V2ViQ29yZTo6
RmxvYXRRdWFkPiYpaGlnaGxpZ2h0ZWRRdWFkcyB0b3BMZWZ0UmFkaXVzOihjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJil0b3BMZWZ0UmFkaXVzIHRvcFJpZ2h0UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJil0b3BSaWdodFJhZGl1cyBib3R0b21MZWZ0UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJilib3R0b21MZWZ0UmFkaXVzIGJvdHRvbVJpZ2h0UmFkaXVzOihjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJilib3R0b21SaWdodFJhZGl1cworLSAodm9pZClfc2hvd1RhcEhpZ2hsaWdodFdp
dGhDb2xvcjooY29uc3QgV2ViQ29yZTo6Q29sb3ImKWNvbG9yIHF1YWRzOihjb25zdCBWZWN0b3I8
V2ViQ29yZTo6RmxvYXRRdWFkPiYpaGlnaGxpZ2h0ZWRRdWFkcyB0b3BMZWZ0UmFkaXVzOihjb25z
dCBXZWJDb3JlOjpJbnRTaXplJil0b3BMZWZ0UmFkaXVzIHRvcFJpZ2h0UmFkaXVzOihjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJil0b3BSaWdodFJhZGl1cyBib3R0b21MZWZ0UmFkaXVzOihjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJilib3R0b21MZWZ0UmFkaXVzIGJvdHRvbVJpZ2h0UmFkaXVzOihjb25z
dCBXZWJDb3JlOjpJbnRTaXplJilib3R0b21SaWdodFJhZGl1cwogewotICAgIGlmICghX2lzVGFw
SGlnaGxpZ2h0SURWYWxpZCB8fCBfbGF0ZXN0VGFwSGlnaGxpZ2h0SUQgIT0gcmVxdWVzdElEKQot
ICAgICAgICByZXR1cm47Ci0KICAgICBpZiAoIWhpZ2hsaWdodGVkUXVhZHNBcmVTbWFsbGVyVGhh
blJlY3QoaGlnaGxpZ2h0ZWRRdWFkcywgX3BhZ2UtPnVub2JzY3VyZWRDb250ZW50UmVjdCgpKSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC00MzQsNiArNDMxLDMwIEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBoaWdobGlnaHRlZFF1YWRzQXJlU21hbGxlclRoYW5SZWN0KGNvbnN0IFZlY3RvcjxGbG9hdFF1
YWQ+JiBxCiAgICAgW19oaWdobGlnaHRWaWV3IHNldENvcm5lclJhZGlpOmJvcmRlclJhZGlpLmdl
dCgpXTsKIH0KIAorLSAodm9pZClfZGlkR2V0VGFwSGlnaGxpZ2h0Rm9yUmVxdWVzdDoodWludDY0
X3QpcmVxdWVzdElEIGNvbG9yOihjb25zdCBXZWJDb3JlOjpDb2xvciYpY29sb3IgcXVhZHM6KGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFF1YWQ+JiloaWdobGlnaHRlZFF1YWRzIHRvcExlZnRS
YWRpdXM6KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKXRvcExlZnRSYWRpdXMgdG9wUmlnaHRSYWRp
dXM6KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKXRvcFJpZ2h0UmFkaXVzIGJvdHRvbUxlZnRSYWRp
dXM6KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKWJvdHRvbUxlZnRSYWRpdXMgYm90dG9tUmlnaHRS
YWRpdXM6KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKWJvdHRvbVJpZ2h0UmFkaXVzCit7CisgICAg
aWYgKCFfaXNUYXBIaWdobGlnaHRJRFZhbGlkIHx8IF9sYXRlc3RUYXBIaWdobGlnaHRJRCAhPSBy
ZXF1ZXN0SUQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChfcG90ZW50aWFsVGFwSW5Qcm9n
cmVzcykgeworICAgICAgICBfcG90ZW50aWFsVGFwSGlnaGxpZ2h0SW5mb3JtYXRpb24gPSBzdGQ6
Om1ha2VfdW5pcXVlPFRhcEhpZ2hsaWdodEluZm9ybWF0aW9uPigpOworICAgICAgICBfcG90ZW50
aWFsVGFwSGlnaGxpZ2h0SW5mb3JtYXRpb24tPmNvbG9yID0gY29sb3I7CisgICAgICAgIF9wb3Rl
bnRpYWxUYXBIaWdobGlnaHRJbmZvcm1hdGlvbi0+cXVhZHMgPSBoaWdobGlnaHRlZFF1YWRzOwor
ICAgICAgICBfcG90ZW50aWFsVGFwSGlnaGxpZ2h0SW5mb3JtYXRpb24tPnRvcExlZnRSYWRpdXMg
PSB0b3BMZWZ0UmFkaXVzOworICAgICAgICBfcG90ZW50aWFsVGFwSGlnaGxpZ2h0SW5mb3JtYXRp
b24tPnRvcFJpZ2h0UmFkaXVzID0gdG9wUmlnaHRSYWRpdXM7CisgICAgICAgIF9wb3RlbnRpYWxU
YXBIaWdobGlnaHRJbmZvcm1hdGlvbi0+Ym90dG9tTGVmdFJhZGl1cyA9IGJvdHRvbUxlZnRSYWRp
dXM7CisgICAgICAgIF9wb3RlbnRpYWxUYXBIaWdobGlnaHRJbmZvcm1hdGlvbi0+Ym90dG9tUmln
aHRSYWRpdXMgPSBib3R0b21SaWdodFJhZGl1czsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIFtzZWxmIF9zaG93VGFwSGlnaGxpZ2h0V2l0aENvbG9yOmNvbG9yCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcXVhZHM6aGlnaGxpZ2h0ZWRRdWFkcworICAgICAgICAgICAgICAg
ICAgICAgICB0b3BMZWZ0UmFkaXVzOnRvcExlZnRSYWRpdXMKKyAgICAgICAgICAgICAgICAgICAg
ICB0b3BSaWdodFJhZGl1czp0b3BSaWdodFJhZGl1cworICAgICAgICAgICAgICAgICAgICBib3R0
b21MZWZ0UmFkaXVzOmJvdHRvbUxlZnRSYWRpdXMKKyAgICAgICAgICAgICAgICAgICBib3R0b21S
aWdodFJhZGl1czpib3R0b21SaWdodFJhZGl1c107Cit9CisKIC0gKHZvaWQpX2NhbmNlbExvbmdQ
cmVzc0dlc3R1cmVSZWNvZ25pemVyCiB7CiAgICAgW19oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJl
UmVjb2duaXplciBjYW5jZWxdOwpAQCAtNjM2LDYgKzY1NywxOSBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgaXNTYW1lUGFpcihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVy
ICpiLCBVSQogICAgIFtfaGlnaGxpZ2h0Um9vdFZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld107CiB9
CiAKKy0gKHZvaWQpX2ZpbmlzaEludGVyYWN0aW9uCit7CisgICAgW1VJVmlldyBhbmltYXRlV2l0
aER1cmF0aW9uOjAuMQorICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uczpeeworICAgICAg
ICAgICAgICAgICAgICAgICAgIFtbX2hpZ2hsaWdodFJvb3RWaWV3IGxheWVyXSBzZXRPcGFjaXR5
OjBdOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgY29tcGxl
dGlvbjpeKEJPT0wpeworICAgICAgICAgICAgICAgICAgICAgICAgIF9pc1RhcEhpZ2hsaWdodElE
VmFsaWQgPSBOTzsKKyAgICAgICAgICAgICAgICAgICAgICAgICBbX2hpZ2hsaWdodFJvb3RWaWV3
IHJlbW92ZUZyb21TdXBlcnZpZXddOworICAgICAgICAgICAgICAgICAgICAgICAgIFtbX2hpZ2hs
aWdodFJvb3RWaWV3IGxheWVyXSBzZXRPcGFjaXR5OjFdOworICAgICAgICAgICAgICAgICAgICAg
fV07Cit9CisKIC0gKEJPT0wpaGFzU2VsZWN0YWJsZVBvc2l0aW9uQXRQb2ludDooQ0dQb2ludClw
b2ludAogewogICAgIFtzZWxmIGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOnBv
aW50XTsKQEAgLTY4NywxMiArNzIxLDE1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVQYWly
KFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29nbml6ZXIgKmIsIFVJCiAKICAg
ICBzd2l0Y2ggKFtnZXN0dXJlUmVjb2duaXplciBzdGF0ZV0pIHsKICAgICBjYXNlIFVJR2VzdHVy
ZVJlY29nbml6ZXJTdGF0ZUJlZ2FuOgotICAgICAgICBfcGFnZS0+dGFwSGlnaGxpZ2h0QXRQb3Np
dGlvbihbZ2VzdHVyZVJlY29nbml6ZXIgc3RhcnRQb2ludF0sIF9sYXRlc3RUYXBIaWdobGlnaHRJ
RCk7CisgICAgICAgIF9wYWdlLT50YXBIaWdobGlnaHRBdFBvc2l0aW9uKFtnZXN0dXJlUmVjb2du
aXplciBzdGFydFBvaW50XSwgKytfbGF0ZXN0VGFwSGlnaGxpZ2h0SUQpOwogICAgICAgICBfaXNU
YXBIaWdobGlnaHRJRFZhbGlkID0gWUVTOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVJR2Vz
dHVyZVJlY29nbml6ZXJTdGF0ZUVuZGVkOgotICAgICAgICBpZiAoIV9wb3NpdGlvbkluZm9ybWF0
aW9uLmNsaWNrYWJsZUVsZW1lbnROYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKCFfcG9zaXRp
b25JbmZvcm1hdGlvbi5jbGlja2FibGVFbGVtZW50TmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAg
ICAgIFtzZWxmIF9hdHRlbXB0Q2xpY2tBdExvY2F0aW9uOltnZXN0dXJlUmVjb2duaXplciBzdGFy
dFBvaW50XV07CisgICAgICAgICAgICBbc2VsZiBfZmluaXNoSW50ZXJhY3Rpb25dOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIFtzZWxmIF9jYW5jZWxJbnRlcmFjdGlvbl07CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVUlHZXN0dXJlUmVjb2duaXplclN0YXRlQ2FuY2VsbGVkOgogICAg
ICAgICBbc2VsZiBfY2FuY2VsSW50ZXJhY3Rpb25dOwpAQCAtNzE4LDE1ICs3NTUsNTggQEAgc3Rh
dGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwgVUlHZXN0
dXJlUmVjb2duaXplciAqYiwgVUkKIC0gKHZvaWQpX3NpbmdsZVRhcFJlY29nbml6ZWQ6KFVJVGFw
R2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogewogICAgIEFTU0VSVChnZXN0
dXJlUmVjb2duaXplciA9PSBfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIpOworICAgIEFTU0VS
VCghX3BvdGVudGlhbFRhcEluUHJvZ3Jlc3MpOworCisgICAgX3BhZ2UtPnBvdGVudGlhbFRhcEF0
UG9zaXRpb24oZ2VzdHVyZVJlY29nbml6ZXIubG9jYXRpb24sICsrX2xhdGVzdFRhcEhpZ2hsaWdo
dElEKTsKKyAgICBfcG90ZW50aWFsVGFwSW5Qcm9ncmVzcyA9IFlFUzsKKyAgICBfaXNUYXBIaWdo
bGlnaHRJRFZhbGlkID0gWUVTOworfQorCistICh2b2lkKV9zaW5nbGVUYXBEaWRSZXNldDooVUlU
YXBHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCit7CisgICAgQVNTRVJUKGdl
c3R1cmVSZWNvZ25pemVyID09IF9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplcik7CisgICAgaWYg
KF9wb3RlbnRpYWxUYXBJblByb2dyZXNzKSB7CisgICAgICAgIF9wb3RlbnRpYWxUYXBJblByb2dy
ZXNzID0gTk87CisgICAgICAgIFtzZWxmIF9jYW5jZWxJbnRlcmFjdGlvbl07CisgICAgICAgIF9w
YWdlLT5jYW5jZWxQb3RlbnRpYWxUYXAoKTsKKyAgICB9Cit9CisKKy0gKHZvaWQpX2NvbW1pdFBv
dGVudGlhbFRhcEZhaWxlZAoreworICAgIFtzZWxmIF9jYW5jZWxJbnRlcmFjdGlvbl07Cit9CisK
Ky0gKHZvaWQpX3NpbmdsZVRhcENvbW1pdGVkOihVSVRhcEdlc3R1cmVSZWNvZ25pemVyICopZ2Vz
dHVyZVJlY29nbml6ZXIKK3sKKyAgICBBU1NFUlQoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3Npbmds
ZVRhcEdlc3R1cmVSZWNvZ25pemVyKTsKIAotICAgIGlmIChfd2ViU2VsZWN0aW9uQXNzaXN0YW50
ICYmICFbX3dlYlNlbGVjdGlvbkFzc2lzdGFudCBzaG91bGRIYW5kbGVTaW5nbGVUYXBBdFBvaW50
Omdlc3R1cmVSZWNvZ25pemVyLmxvY2F0aW9uXSkKKyAgICBpZiAoX3dlYlNlbGVjdGlvbkFzc2lz
dGFudCAmJiAhW193ZWJTZWxlY3Rpb25Bc3Npc3RhbnQgc2hvdWxkSGFuZGxlU2luZ2xlVGFwQXRQ
b2ludDpnZXN0dXJlUmVjb2duaXplci5sb2NhdGlvbl0pIHsKKyAgICAgICAgW3NlbGYgX3Npbmds
ZVRhcERpZFJlc2V0Omdlc3R1cmVSZWNvZ25pemVyXTsKICAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIEFTU0VSVChfcG90ZW50aWFsVGFwSW5Qcm9ncmVzcyk7CiAKICAgICBbX3dlYlNlbGVj
dGlvbkFzc2lzdGFudCBjbGVhclNlbGVjdGlvbl07CiAKICAgICBfbGFzdEludGVyYWN0aW9uTG9j
YXRpb24gPSBnZXN0dXJlUmVjb2duaXplci5sb2NhdGlvbjsKIAotICAgIFtzZWxmIF9hdHRlbXB0
Q2xpY2tBdExvY2F0aW9uOmdlc3R1cmVSZWNvZ25pemVyLmxvY2F0aW9uXTsKKyAgICBfcG90ZW50
aWFsVGFwSW5Qcm9ncmVzcyA9IE5POworCisgICAgaWYgKF9wb3RlbnRpYWxUYXBIaWdobGlnaHRJ
bmZvcm1hdGlvbikgeworICAgICAgICBbc2VsZiBfc2hvd1RhcEhpZ2hsaWdodFdpdGhDb2xvcjpf
cG90ZW50aWFsVGFwSGlnaGxpZ2h0SW5mb3JtYXRpb24tPmNvbG9yCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHF1YWRzOl9wb3RlbnRpYWxUYXBIaWdobGlnaHRJbmZvcm1hdGlv
bi0+cXVhZHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcExlZnRSYWRpdXM6X3BvdGVu
dGlhbFRhcEhpZ2hsaWdodEluZm9ybWF0aW9uLT50b3BMZWZ0UmFkaXVzCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRvcFJpZ2h0UmFkaXVzOl9wb3RlbnRpYWxUYXBIaWdobGlnaHRJbmZvcm1h
dGlvbi0+dG9wUmlnaHRSYWRpdXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnRS
YWRpdXM6X3BvdGVudGlhbFRhcEhpZ2hsaWdodEluZm9ybWF0aW9uLT5ib3R0b21MZWZ0UmFkaXVz
CisgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0UmFkaXVzOl9wb3RlbnRpYWxUYXBI
aWdobGlnaHRJbmZvcm1hdGlvbi0+Ym90dG9tUmlnaHRSYWRpdXNdOworICAgICAgICBfcG90ZW50
aWFsVGFwSGlnaGxpZ2h0SW5mb3JtYXRpb24gPSBudWxscHRyOworICAgIH0KKworICAgIF9wYWdl
LT5jb21taXRQb3RlbnRpYWxUYXAoKTsKKworICAgIFtzZWxmIF9maW5pc2hJbnRlcmFjdGlvbl07
CiB9CiAKIC0gKHZvaWQpX2RvdWJsZVRhcFJlY29nbml6ZWQ6KFVJVGFwR2VzdHVyZVJlY29nbml6
ZXIgKilnZXN0dXJlUmVjb2duaXplcgpAQCAtNzQ1LDEwICs4MjUsNiBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25p
emVyICpiLCBVSQogCiAtICh2b2lkKV9hdHRlbXB0Q2xpY2tBdExvY2F0aW9uOihDR1BvaW50KWxv
Y2F0aW9uCiB7Ci0gICAgLy8gRklYTUU6IElkZWFsbHksIHdlIHNob3VsZCBhbHdheXMgcHJvdmlk
ZSBzb21lIHZpc3VhbCBmZWVkYmFjayBvbiBjbGljay4gSWYgYSBzaG9ydCB0YXAgZGlkIG5vdCB0
cmlnZ2VyIHRoZQotICAgIC8vIHRhcCBoaWdobGlnaHQsIHdlIHNob3VsZCBzaG93IG9uZSBiYXNl
ZCBvbiBhIHRpbWVyIGlmIHdlIGNvbW1pdCB0aGUgc3ludGhldGljIG1vdXNlIGV2ZW50cy4KLSAg
ICBbc2VsZiBfY2FuY2VsSW50ZXJhY3Rpb25dOwotCiAgICAgaWYgKCFbc2VsZiBpc0ZpcnN0UmVz
cG9uZGVyXSkKICAgICAgICAgW3NlbGYgYmVjb21lRmlyc3RSZXNwb25kZXJdOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLU3ludGhldGljQ2xpY2tUYXBHZXN0
dXJlUmVjb2duaXplci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRp
Y0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjUxZjU1ZWQ0MjhiODIw
ZmU5NzU2Zjg1NDMzOWNmOTk5YjM5ZDk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIuaApA
QCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8VUlLaXQvVUlUYXBHZXN0dXJl
UmVjb2duaXplcl9Qcml2YXRlLmg+CisKK0BpbnRlcmZhY2UgV0tTeW50aGV0aWNDbGlja1RhcEdl
c3R1cmVSZWNvZ25pemVyIDogVUlUYXBHZXN0dXJlUmVjb2duaXplcgorLSAodm9pZClzZXRHZXN0
dXJlUmVjb2duaXplZFRhcmdldDooaWQpdGFyZ2V0IGFjdGlvbjooU0VMKWFjdGlvbjsKKy0gKHZv
aWQpc2V0UmVzZXRUYXJnZXQ6KGlkKXRhcmdldCBhY3Rpb246KFNFTClhY3Rpb247CitAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLU3ludGhldGljQ2xpY2tU
YXBHZXN0dXJlUmVjb2duaXplci5tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1N5
bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIubQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWRiNzA4ODI5
MGVhZTVjMzVlZTM3ZGRjNzYzY2Y1OGY1NWVkMTdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6
ZXIubQpAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV0tTeW50aGV0aWND
bGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmgiCisKKyNpbXBvcnQgPFVJS2l0L1VJR2VzdHVyZVJl
Y29nbml6ZXJTdWJjbGFzcy5oPgorCitAaW1wbGVtZW50YXRpb24gV0tTeW50aGV0aWNDbGlja1Rh
cEdlc3R1cmVSZWNvZ25pemVyIHsKKyAgICBpZCBfZ2VzdHVyZVJlY29nbml6ZWRUYXJnZXQ7Cisg
ICAgU0VMIF9nZXN0dXJlUmVjb2duaXplZEFjdGlvbjsKKyAgICBpZCBfcmVzZXRUYXJnZXQ7Cisg
ICAgU0VMIF9yZXNldEFjdGlvbjsKK30KKworLSAodm9pZClzZXRHZXN0dXJlUmVjb2duaXplZFRh
cmdldDooaWQpdGFyZ2V0IGFjdGlvbjooU0VMKWFjdGlvbgoreworICAgIF9nZXN0dXJlUmVjb2du
aXplZFRhcmdldCA9IHRhcmdldDsKKyAgICBfZ2VzdHVyZVJlY29nbml6ZWRBY3Rpb24gPSBhY3Rp
b247Cit9CisKKy0gKHZvaWQpc2V0UmVzZXRUYXJnZXQ6KGlkKXRhcmdldCBhY3Rpb246KFNFTClh
Y3Rpb24KK3sKKyAgICBfcmVzZXRUYXJnZXQgPSB0YXJnZXQ7CisgICAgX3Jlc2V0QWN0aW9uID0g
YWN0aW9uOworfQorCistICh2b2lkKXNldFN0YXRlOihVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGUp
c3RhdGUKK3sKKyAgICBbc3VwZXIgc2V0U3RhdGU6c3RhdGVdOworICAgIFtfZ2VzdHVyZVJlY29n
bml6ZWRUYXJnZXQgcGVyZm9ybVNlbGVjdG9yOl9nZXN0dXJlUmVjb2duaXplZEFjdGlvbiB3aXRo
T2JqZWN0OnNlbGZdOworfQorCistICh2b2lkKXJlc2V0Cit7CisgICAgW3N1cGVyIHJlc2V0XTsK
KyAgICBbX3Jlc2V0VGFyZ2V0IHBlcmZvcm1TZWxlY3RvcjpfcmVzZXRBY3Rpb24gd2l0aE9iamVj
dDpzZWxmXTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQppbmRleCAxMjllOTZhYTgzOGI2MDUyNzE1NzVkY2JiOTU3YWFhNmJm
NDNkNjFiLi5iODZhZjA1YTE0ZDAzMWYyZTIyMGI4MjRkMGI2M2YwN2ZlYjA5MzIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtNDYx
LDExICs0NjEsMjMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdGFydFVzZXJUcmlnZ2VyZWRa
b29taW5nKCkKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6V2lsbFN0YXJ0
VXNlclRyaWdnZXJlZFpvb21pbmcoKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb3Np
dGlvbiwgdWludDY0X3QmIHJlcXVlc3RJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpwb3RlbnRpYWxU
YXBBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCB1aW50NjRf
dCYgcmVxdWVzdElEKQogewotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVSZXF1ZXN0SUQgPSAw
OwotICAgIHJlcXVlc3RJRCA9ICsrdW5pcXVlUmVxdWVzdElEOworICAgIHByb2Nlc3MoKS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpQb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHJlcXVlc3RJRCwgcG9z
aXRpb24pLCBtX3BhZ2VJRCk7Cit9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb21taXRQb3RlbnRp
YWxUYXAoKQoreworICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21taXRQ
b3RlbnRpYWxUYXAoKSwgbV9wYWdlSUQpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6Y2FuY2Vs
UG90ZW50aWFsVGFwKCkKK3sKKyAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
Q2FuY2VsUG90ZW50aWFsVGFwKCksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6
OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRp
b24sIHVpbnQ2NF90JiByZXF1ZXN0SUQpCit7CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlRhcEhpZ2hsaWdodEF0UG9zaXRpb24ocmVxdWVzdElELCBwb3NpdGlvbiksIG1f
cGFnZUlEKTsKIH0KIApAQCAtNTgxLDYgKzU5MywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6em9v
bVRvUmVjdChGbG9hdFJlY3QgcmVjdCwgZG91YmxlIG1pbmltdW1TY2FsZSwgZG91YmxlIG1heGlt
dQogICAgIG1fcGFnZUNsaWVudC56b29tVG9SZWN0KHJlY3QsIG1pbmltdW1TY2FsZSwgbWF4aW11
bVNjYWxlKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcEZhaWxl
ZCgpCit7CisgICAgbV9wYWdlQ2xpZW50LmNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpOworfQor
CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTm90SGFuZGxlVGFwQXNDbGljayhjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgbV91aUNsaWVudC0+ZGlkTm90SGFuZGxlVGFwQXND
bGljayhwb2ludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggODFlNGM0OTdiMWQ0M2FhODJlMTUyYzYzOGVjYTFkNmM0MTM2OGM4
Ni4uNGQ0YjA3Mzg0Mjc1NjQxMjk0OWE2ZWJlOGE2MDg0NTEwMzg3YmRkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDc0LDYg
KzQ3NCw4IEBACiAJCTI2ODQwNTRGMThCODZDOEUwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0
Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
Njg0MDU0NTE4Qjg1RTdFMDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXIuY3BwICovOyB9
OwogCQkyNjg0MDU1MjE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjY4NDA1NTAxOEI4NkVENjAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMjY4NDA1NTMxOEI4NkVENjAwMjJDMzhCIC8qIFZp
ZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI2ODQwNTUxMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRl
RGlzcGF0Y2hlck1lc3NhZ2VzLmggKi87IH07CisJCTI2RjEwQkU4MTkxODdFMkUwMDFEMEU2OCAv
KiBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjEwQkU2MTkxODdFMkUwMDFEMEU2OCAv
KiBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIuaCAqLzsgfTsKKwkJMjZGMTBC
RTkxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXpl
ci5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZGMTBC
RTcxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXpl
ci5tICovOyB9OwogCQkyNkY5QTgzQjE4QTM0NjgxMDBBRUI4OEEgLyogV0tXZWJWaWV3UHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZGOUE4
M0ExOEEzNDYzRjAwQUVCODhBIC8qIFdLV2ViVmlld1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyOTBGNDI3MjE3MkEwQzc0MDA5MzlG
RjAgLyogQ2hpbGRQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwRjQyNzExNzJBMEM3NDAwOTM5RkYwIC8qIENoaWxkUHJv
Y2Vzc1N1cHBsZW1lbnQuaCAqLzsgfTsKIAkJMjkyMzJERjQxOEIyOUQ2ODAwRDA1OTZGIC8qIFdL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MjMyREYzMThCMjlENjgwMEQwNTk2RiAvKiBXS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLmggKi87IH07CkBAIC0yMjg4LDYgKzIyOTAsOCBAQAog
CQkyNjg0MDU0QTE4Qjg2NkZGMDAyMkMzOEIgLyogVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5m
by5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY4NDA1
NTAxOEI4NkVENjAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZXdVcGRhdGVEaXNw
YXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MjY4NDA1NTExOEI4NkVENjAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlld1VwZGF0ZURpc3BhdGNoZXJN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNkYxMEJFNjE5MTg3RTJF
MDAxRDBFNjggLyogV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVj
b2duaXplci5oOyBwYXRoID0gaW9zL1dLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXpl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNkYxMEJFNzE5MTg3RTJFMDAxRDBF
NjggLyogV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLm0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMub2JqYzsgbmFtZSA9IFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2du
aXplci5tOyBwYXRoID0gaW9zL1dLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkY5QTgzQTE4QTM0NjNGMDBBRUI4OEEg
LyogV0tXZWJWaWV3UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlZpZXdQcml2YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MEY0MjcxMTcyQTBDNzQwMDkzOUZGMCAv
KiBDaGlsZFByb2Nlc3NTdXBwbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENoaWxkUHJvY2Vzc1N1cHBsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjkyMzJERjExOEIyOUQxMTAwRDA1OTZGIC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3RNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNDUwMiw2ICs0NTA2LDggQEAKIAkJCQkyREFGMDZENDE4QkQxQTQ3MDA4MUNFQjEgLyogU21h
cnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5oICovLAogCQkJCTJEQUYwNkQ1MThCRDFBNDcwMDgx
Q0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tICovLAogCQkJCTJEQUYwNkQ4
MThCRDIzQkEwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1lc3NhZ2Vz
LmluICovLAorCQkJCTI2RjEwQkU2MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY0NsaWNr
VGFwR2VzdHVyZVJlY29nbml6ZXIuaCAqLywKKwkJCQkyNkYxMEJFNzE5MTg3RTJFMDAxRDBFNjgg
LyogV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLm0gKi8sCiAJCQkJMkRBOTQ0
QUExODg0RTlCQTAwRUQ4NkRCIC8qIFdlYkluc3BlY3RvclByb3h5SU9TLm1tICovLAogCQkJCTJE
M0VGNDQwMTkxNzY0NjMwMDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXJJT1MuY3Bw
ICovLAogCQkJCTJEM0VGNDQxMTkxNzY0NjMwMDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhh
bmRsZXJJT1MuaCAqLywKQEAgLTczODYsNiArNzM5Miw3IEBACiAJCQkJNzUzRTNFMEUxODg3Mzk4
OTAwMTg4NDk2IC8qIFNlc3Npb25UcmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYw
RTEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzU5Q0NENUExODA4RjYxNjAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBp
biBIZWFkZXJzICovLAorCQkJCTI2RjEwQkU4MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRp
Y0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjJC
MTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlTlMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUY2MTEzRTI5MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM4Njk5QjcxMTZBQURBQTAwMkE5MjVCIC8qIFdLVmlld0ludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTg2OTksNiArODcwNiw3IEBACiAJCQkJOTM1RUVCQTAx
Mjc3NjFBQzAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MUZBMkQ3NzE1MjEyRTI2MDBDMUJBMEIgLyogV0tCdW5kbGVET01XaW5k
b3dFeHRlbnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNEMjVGMTgxMUQ2QkRFMTAwMTY5
QjBFIC8qIFdLQnVuZGxlRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjZGMTBCRTkxOTE4
N0UyRTAwMUQwRTY4IC8qIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM0OTg2MzAxMjREMThDMTAwRDgzNEUxIC8qIFdLQnVuZGxlSGl0
VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTAxQkQxQTEyRjEyNDM0MDBFOUYy
NDggLyogV0tCdW5kbGVJbnNwZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzUzRTNFMEQx
ODg3Mzk4NTAwMTg4NDk2IC8qIFNlc3Npb25UcmFja2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMjJhYWI1ZThj
NGVjYTM1NjBhMWM4ZTNiZDY4ODg4NjcwMGFiZjRlMi4uMWQxMGJkZWQ1ZjMwY2Q3NWUxNzZmYzZj
NWFmZTMyNGQwZmE2ZjRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC00NTEsNiArNDUxLDkgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dzVXNl
clNjYWxpbmcoKSBjb25zdDsKIAogICAgIHZvaWQgaGFuZGxlVGFwKGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50Jik7CisgICAgdm9pZCBwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVl
c3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOworICAgIHZvaWQgY29tbWl0UG90ZW50
aWFsVGFwKCk7CisgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXAoKTsKICAgICB2b2lkIHRhcEhp
Z2hsaWdodEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50Jik7CiAKICAgICB2b2lkIGJsdXJBc3Npc3RlZE5vZGUoKTsKQEAgLTgyMCw3ICs4MjMs
OCBAQCBwcml2YXRlOgogICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IGNvbnRyYWN0ZWRS
YW5nZUZyb21IYW5kbGUoV2ViQ29yZTo6UmFuZ2UqIGN1cnJlbnRSYW5nZSwgU2VsZWN0aW9uSGFu
ZGxlUG9zaXRpb24sIFNlbGVjdGlvbkZsYWdzJik7CiAgICAgdm9pZCBnZXRBc3Npc3RlZE5vZGVJ
bmZvcm1hdGlvbihBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYpOwogICAgIHZvaWQgcGxhdGZvcm1J
bml0aWFsaXplQWNjZXNzaWJpbGl0eSgpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4gbV9j
dXJyZW50QmxvY2tTZWxlY3Rpb247CisgICAgdm9pZCBoYW5kbGVTeW50aGV0aWNDbGljayhXZWJD
b3JlOjpOb2RlKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIGxvY2F0aW9uKTsKKyAgICB2b2lkIHNlbmRUYXBIaWdobGlnaHRGb3JOb2RlSWZOZWNlc3Nh
cnkodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpOb2RlKik7CiAjZW5kaWYKICNpZiAhUExB
VEZPUk0oQ09DT0EpCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNv
bnN0IFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKQEAgLTExNzMsNiArMTE3Nyw5IEBAIHByaXZh
dGU6CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IG1faW50ZXJhY3Rpb25Ob2RlOwogICAgIFdl
YkNvcmU6OkludFBvaW50IG1fbGFzdEludGVyYWN0aW9uTG9jYXRpb247CiAKKyAgICBSZWZQdHI8
V2ViQ29yZTo6Tm9kZT4gbV9wb3RlbnRpYWxUYXBOb2RlOworICAgIFdlYkNvcmU6OkZsb2F0UG9p
bnQgbV9wb3RlbnRpYWxUYXBMb2NhdGlvbjsKKwogICAgIFdlYkNvcmU6OlZpZXdwb3J0Q29uZmln
dXJhdGlvbiBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbjsKICAgICB1aW50NjRfdCBtX2xhc3RWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGVJRDsKICAgICBib29sIG1faGFzUmVjZWl2ZWRWaXNpYmxlQ29u
dGVudFJlY3RzQWZ0ZXJEaWRDb21taXRMb2FkOwpAQCAtMTE4MSw2ICsxMTg4LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1fdXNlcklzSW50ZXJhY3Rpbmc7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXpl
IG1fc2NyZWVuU2l6ZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9hdmFpbGFibGVTY3JlZW5T
aXplOworICAgIFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4gbV9jdXJyZW50QmxvY2tTZWxlY3Rpb247
CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2Jsb2NrU2VsZWN0aW9uRGVzaXJlZFNpemU7CiAgICAg
V2ViQ29yZTo6RmxvYXRTaXplIG1fbWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUk7CiAgICAg
Ym9vbCBtX2luRHluYW1pY1NpemVVcGRhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDkyYzI2ZjBjMTI3M2Fl
NTE5ZmYxYjBkODY2Yjg1OWQwNmJmM2ZjMDIuLmExNDBjZjBhODRiZDIwMjJiODQwNWIyNmIwN2Mx
Y2IyOTUzOGQ2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00OCw2ICs0OCw5IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoV2Vi
Q29yZTo6RmxvYXRTaXplIG1pbmltdW1MYXlvdXRTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFy
Z2V0RXhwb3NlZENvbnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJl
ZFJlY3QsIGRvdWJsZSBzY2FsZSkKIAogICAgIEhhbmRsZVRhcChXZWJDb3JlOjpJbnRQb2ludCBw
b2ludCkKKyAgICBQb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2Vi
Q29yZTo6RmxvYXRQb2ludCBwb2ludCkKKyAgICBDb21taXRQb3RlbnRpYWxUYXAoKQorICAgIENh
bmNlbFBvdGVudGlhbFRhcCgpCiAgICAgVGFwSGlnaGxpZ2h0QXRQb3NpdGlvbih1aW50NjRfdCBy
ZXF1ZXN0SUQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQpCiAgICAgQmx1ckFzc2lzdGVkTm9k
ZSgpCiAgICAgU2VsZWN0V2l0aEdlc3R1cmUoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIHVpbnQz
Ml90IGdyYW51bGFyaXR5LCB1aW50MzJfdCBnZXN0dXJlVHlwZSwgdWludDMyX3QgZ2VzdHVyZVN0
YXRlLCB1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDI3ZWQ4MTgwMWYyYjEzMjRjMTVi
ODdhMzhhNjdlZmMyNWY3ZGFmNmMuLjM4ZmFkZmU0MDM4NWUwNzRlYzdlNzRkZjkxNmRiMmM2MDQw
NjY0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KQEAgLTMxOSwxMiArMzE5LDEwIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRl
U2VsZWN0aW9uQXBwZWFyYW5jZSgpCiAgICAgICAgIGRpZENoYW5nZVNlbGVjdGlvbigpOwogfQog
Ci12b2lkIFdlYlBhZ2U6OmhhbmRsZVRhcChjb25zdCBJbnRQb2ludCYgcG9pbnQpCit2b2lkIFdl
YlBhZ2U6OmhhbmRsZVN5bnRoZXRpY0NsaWNrKE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24pCiB7CisgICAgSW50UG9pbnQgcm91
bmRlZEFkanVzdGVkUG9pbnQgPSByb3VuZGVkSW50UG9pbnQobG9jYXRpb24pOwogICAgIEZyYW1l
JiBtYWluZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOwotICAgIEZsb2F0UG9pbnQgYWRqdXN0
ZWRQb2ludDsKLSAgICBOb2RlKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2sgPSBtYWluZnJhbWUubm9k
ZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzKHBvaW50LCBhZGp1c3RlZFBvaW50KTsKLSAgICBJbnRQ
b2ludCByb3VuZGVkQWRqdXN0ZWRQb2ludCA9IHJvdW5kZWRJbnRQb2ludChhZGp1c3RlZFBvaW50
KTsKIAogICAgIFdLQmVnaW5PYnNlcnZpbmdDb250ZW50Q2hhbmdlcyh0cnVlKTsKICAgICBtYWlu
ZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRl
ZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1F
dmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDApKTsKQEAg
LTM1NSwxNSArMzUzLDE4IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlVGFwKGNvbnN0IEludFBvaW50
JiBwb2ludCkKICAgICBtX3VzZXJJc0ludGVyYWN0aW5nID0gZmFsc2U7CiAKICAgICBpZiAoIXRh
cFdhc0hhbmRsZWQgfHwgIW5vZGVSZXNwb25kaW5nVG9DbGljayB8fCAhbm9kZVJlc3BvbmRpbmdU
b0NsaWNrLT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGlkTm90SGFuZGxlVGFwQXNDbGljayhwb2ludCkpOworICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRpZE5vdEhhbmRsZVRhcEFzQ2xpY2socm91bmRlZEludFBvaW50
KGxvY2F0aW9uKSkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24o
dWludDY0X3QgcmVxdWVzdElELCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKK3ZvaWQgV2Vi
UGFnZTo6aGFuZGxlVGFwKGNvbnN0IEludFBvaW50JiBwb2ludCkKIHsKLSAgICBGcmFtZSYgbWFp
bmZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKICAgICBGbG9hdFBvaW50IGFkanVzdGVkUG9p
bnQ7Ci0gICAgTm9kZSogbm9kZSA9IG1haW5mcmFtZS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVu
dHMocG9zaXRpb24sIGFkanVzdGVkUG9pbnQpOworICAgIE5vZGUqIG5vZGVSZXNwb25kaW5nVG9D
bGljayA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzKHBv
aW50LCBhZGp1c3RlZFBvaW50KTsKKyAgICBoYW5kbGVTeW50aGV0aWNDbGljayhub2RlUmVzcG9u
ZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQpOworfQogCit2b2lkIFdlYlBhZ2U6OnNlbmRUYXBI
aWdobGlnaHRGb3JOb2RlSWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdElELCBOb2RlKiBub2Rl
KQorewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0zOTUsNiArMzk2LDQy
IEBAIHZvaWQgV2ViUGFnZTo6dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0CiAgICAgfQogfQogCit2b2lkIFdlYlBhZ2U6OnBv
dGVudGlhbFRhcEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBwb3NpdGlvbikKK3sKKyAgICBtX3BvdGVudGlhbFRhcE5vZGUgPSBtX3BhZ2Ut
Pm1haW5GcmFtZSgpLm5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyhwb3NpdGlvbiwgbV9wb3Rl
bnRpYWxUYXBMb2NhdGlvbik7CisgICAgc2VuZFRhcEhpZ2hsaWdodEZvck5vZGVJZk5lY2Vzc2Fy
eShyZXF1ZXN0SUQsIG1fcG90ZW50aWFsVGFwTm9kZS5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViUGFn
ZTo6Y29tbWl0UG90ZW50aWFsVGFwKCkKK3sKKyAgICBpZiAoIW1fcG90ZW50aWFsVGFwTm9kZSB8
fCAhbV9wb3RlbnRpYWxUYXBOb2RlLT5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBGbG9hdFBvaW50IGFkanVzdGVkUG9pbnQ7CisgICAgTm9kZSogbm9kZVJlc3BvbmRpbmdUb0Ns
aWNrID0gbV9wYWdlLT5tYWluRnJhbWUoKS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMobV9w
b3RlbnRpYWxUYXBMb2NhdGlvbiwgYWRqdXN0ZWRQb2ludCk7CisKKyAgICBpZiAobV9wb3RlbnRp
YWxUYXBOb2RlID09IG5vZGVSZXNwb25kaW5nVG9DbGljaykKKyAgICAgICAgaGFuZGxlU3ludGhl
dGljQ2xpY2sobm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBhZGp1c3RlZFBvaW50KTsKKyAgICBlbHNl
CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q29tbWl0UG90ZW50aWFsVGFw
RmFpbGVkKCkpOworCisgICAgbV9wb3RlbnRpYWxUYXBOb2RlID0gbnVsbHB0cjsKKyAgICBtX3Bv
dGVudGlhbFRhcExvY2F0aW9uID0gRmxvYXRQb2ludCgpOworfQorCit2b2lkIFdlYlBhZ2U6OmNh
bmNlbFBvdGVudGlhbFRhcCgpCit7CisgICAgbV9wb3RlbnRpYWxUYXBOb2RlID0gbnVsbHB0cjsK
KyAgICBtX3BvdGVudGlhbFRhcExvY2F0aW9uID0gRmxvYXRQb2ludCgpOworfQorCit2b2lkIFdl
YlBhZ2U6OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBG
bG9hdFBvaW50JiBwb3NpdGlvbikKK3sKKyAgICBGcmFtZSYgbWFpbmZyYW1lID0gbV9wYWdlLT5t
YWluRnJhbWUoKTsKKyAgICBGbG9hdFBvaW50IGFkanVzdGVkUG9pbnQ7CisgICAgc2VuZFRhcEhp
Z2hsaWdodEZvck5vZGVJZk5lY2Vzc2FyeShyZXF1ZXN0SUQsIG1haW5mcmFtZS5ub2RlUmVzcG9u
ZGluZ1RvQ2xpY2tFdmVudHMocG9zaXRpb24sIGFkanVzdGVkUG9pbnQpKTsKK30KKwogdm9pZCBX
ZWJQYWdlOjpibHVyQXNzaXN0ZWROb2RlKCkKIHsKICAgICBpZiAobV9hc3Npc3RlZE5vZGUgJiYg
bV9hc3Npc3RlZE5vZGUtPmlzRWxlbWVudE5vZGUoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230933</attachid>
            <date>2014-05-06 14:23:16 -0700</date>
            <delta_ts>2014-05-06 15:54:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132623-20140506142239.patch</filename>
            <type>text/plain</type>
            <size>37246</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4Mzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmVhY2M2MmVmYTdlNTU1
OWY1NmY1MzBiODkzM2YzOWZhOWJhMTVkOS4uMDljZWFmNjZjZGJlNDk4MDBkMTQzMzc5NWU1N2Nh
ZmY1YTVlYTc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE0LTA1LTA2ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdW1dLMl0g
QWRkIHRhcCBoaWdobGlnaHQgb24gdGhlIHNpbXBsZSBVSVRhcEdlc3R1cmVSZWNvZ25pemVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI2MjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBsb3cg
bGF0ZW5jeSBoaWdobGlnaHQgZm9yIHRhcC9jbGljay4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Q
YWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb21t
aXRQb3RlbnRpYWxUYXBGYWlsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0dXBJbnRlcmFjdGlv
bl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaG93VGFwSGlnaGxpZ2h0V2l0aENvbG9y
OldlYkNvcmU6OnF1YWRzOldlYkNvcmU6OnRvcExlZnRSYWRpdXM6V2ViQ29yZTo6dG9wUmlnaHRS
YWRpdXM6V2ViQ29yZTo6Ym90dG9tTGVmdFJhZGl1czpXZWJDb3JlOjpib3R0b21SaWdodFJhZGl1
czpXZWJDb3JlOjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkR2V0VGFwSGlnaGxp
Z2h0Rm9yUmVxdWVzdDpjb2xvcjpXZWJDb3JlOjpxdWFkczpXZWJDb3JlOjp0b3BMZWZ0UmFkaXVz
OldlYkNvcmU6OnRvcFJpZ2h0UmFkaXVzOldlYkNvcmU6OmJvdHRvbUxlZnRSYWRpdXM6V2ViQ29y
ZTo6Ym90dG9tUmlnaHRSYWRpdXM6V2ViQ29yZTo6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX2ZpbmlzaEludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2hpZ2hs
aWdodExvbmdQcmVzc1JlY29nbml6ZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Np
bmdsZVRhcFJlY29nbml6ZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbmdsZVRh
cERpZFJlc2V0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jb21taXRQb3RlbnRpYWxU
YXBGYWlsZWRdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2luZ2xlVGFwQ29tbWl0ZWQ6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2F0dGVtcHRDbGlja0F0TG9jYXRpb246XSk6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29n
bml6ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY0NsaWNr
VGFwR2VzdHVyZVJlY29nbml6ZXIubTogQWRkZWQuCisgICAgICAgICgtW1dLU3ludGhldGljQ2xp
Y2tUYXBHZXN0dXJlUmVjb2duaXplciBzZXRHZXN0dXJlUmVjb2duaXplZFRhcmdldDphY3Rpb246
XSk6CisgICAgICAgICgtW1dLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplciBzZXRS
ZXNldFRhcmdldDphY3Rpb246XSk6CisgICAgICAgICgtW1dLU3ludGhldGljQ2xpY2tUYXBHZXN0
dXJlUmVjb2duaXplciBzZXRTdGF0ZTpdKToKKyAgICAgICAgKC1bV0tTeW50aGV0aWNDbGlja1Rh
cEdlc3R1cmVSZWNvZ25pemVyIHJlc2V0XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cG90ZW50aWFs
VGFwQXRQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tbWl0UG90
ZW50aWFsVGFwKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYW5jZWxQb3RlbnRp
YWxUYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnRhcEhpZ2hsaWdodEF0UG9z
aXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbW1pdFBvdGVudGlhbFRh
cEZhaWxlZCk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYW5k
bGVTeW50aGV0aWNDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVRhcCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlbmRUYXBIaWdobGlnaHRGb3JOb2RlSWZOZWNl
c3NhcnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb3RlbnRpYWxUYXBBdFBvc2l0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6Y2FuY2VsUG90ZW50aWFsVGFwKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbik6CisKIDIwMTQtMDUtMDYgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmVk
IHVubmVjZXNzYXJ5IG5vdEltcGxlbWVudGVkLmggaW5jbHVkZXMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAppbmRleCAxYmQyMzcxNjYyYzQ2MWU3MmM0MTE3ZjBhYTFmNzY2NjNh
YzE5MmJiLi5hYjc3MjFhYjYyZDNkNmZiMmY2ZTQxYTE5YWE3N2RkYjZkMTZlZWY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTI0MSw2ICsyNDEsNyBAQCBwdWJsaWM6
CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAjaWYgUExBVEZPUk0oSU9TKQorICAgIHZpcnR1
YWwgdm9pZCBjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0X3QgcmVxdWVzdElELCBjb25zdCBX
ZWJDb3JlOjpDb2xvciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFF1YWQ+JiBoaWdobGln
aHRlZFF1YWRzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BMZWZ0UmFkaXVzLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiB0b3BSaWdodFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
Ym90dG9tTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tUmlnaHRSYWRp
dXMpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRMYXllclRyZWUoY29uc3QgUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggMGRjMTViNWU2YWU2MzQzOTA1MmEyYzg5NTAwNzlhMGUxNjA2YzMy
Yy4uNGM0NzgyMDlkY2YyZTQ5MjVjZWQyNWVmOTE2YzA5Y2ViMTllNWIxYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjIyLDYgKzYyMiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpOwogICAgIHZvaWQgYXBwbGlj
YXRpb25EaWRCZWNvbWVBY3RpdmUoKTsKICAgICB2b2lkIHpvb21Ub1JlY3QoV2ViQ29yZTo6Rmxv
YXRSZWN0LCBkb3VibGUgbWluaW11bVNjYWxlLCBkb3VibGUgbWF4aW11bVNjYWxlKTsKKyAgICB2
b2lkIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpOwogICAgIHZvaWQgZGlkTm90SGFuZGxlVGFw
QXNDbGljayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogI2VuZGlmCiAKQEAgLTEwMzAsNiAr
MTAzMSw5IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShJT1MpCiAgICAgdm9pZCB3aWxsU3RhcnRV
c2VyVHJpZ2dlcmVkWm9vbWluZygpOwogCisgICAgdm9pZCBwb3RlbnRpYWxUYXBBdFBvc2l0aW9u
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCB1aW50NjRfdCYgcmVxdWVzdElEKTsKKyAgICB2
b2lkIGNvbW1pdFBvdGVudGlhbFRhcCgpOworICAgIHZvaWQgY2FuY2VsUG90ZW50aWFsVGFwKCk7
CiAgICAgdm9pZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmLCB1aW50NjRfdCYgcmVxdWVzdElEKTsKIAogICAgIHZvaWQgYmx1ckFzc2lzdGVkTm9kZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggZDk5MDkyNjA2NDhiOGEyZDA0NTE3ODY5MzVlNzUzMTYzNjgwOGM5Yi4uMjQ4NmI2
NTRmMDhkZjBmOGZkYTZhNTUzOGY0ZTE0Y2M3NTVjZDc1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xNjksNiArMTY5LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRVcGRhdGVCbG9ja1NlbGVjdGlv
bldpdGhUb3VjaCh1aW50MzJfdCB0b3VjaCwgdWludDMyX3QgZmxhZ3MsIGZsb2F0IGdyb3dUaHJl
c2hvbGQsIGZsb2F0IHNocmlua1RocmVzaG9sZCkKICAgICBTaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXIoYm9vbCBoYXNWaWRlbywgV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50UmVjdCkKICAgICBab29t
VG9SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0LCBkb3VibGUgbWluaW11bVNjYWxlLCBkb3Vi
bGUgbWF4aW11bVNjYWxlKQorICAgIENvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpCiAgICAgRGlk
Tm90SGFuZGxlVGFwQXNDbGljayhXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkKICNlbmRpZgogI2lm
IFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAppbmRleCA1OTIzZWFkMTdiYTBkZjczODQ3OGI3OTdhYTBhYTk2ODI0YWEy
MzM0Li4yZGZkNDRlMTE2ZGIxMTM1N2RhOTZmNzMwNzkzODEzNDQzZGZjNWM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMDYs
NiArMTA2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVudFdhc05vdEhh
bmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBjbGVhckN1c3RvbVN3aXBlVmlld3MoKSBvdmVycmlkZTsKIAorICAgIHZp
cnR1YWwgdm9pZCBjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkR2V0VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4m
IGhpZ2hsaWdodGVkUXVhZHMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcExlZnRSYWRpdXMs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBib3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21S
aWdodFJhZGl1cykgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TGF5ZXJU
cmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCBl
ODQyOWRhODViNjRkM2MyZjdiOWViNGI4YmUyMDk4MDE1NzhiNGRjLi5lODMwZjQ5OTU4MTgzNDY3
YWZiNmI5YTNiMDI4Y2JlY2ZlZWQ3NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTM2Niw2ICszNjYsMTEgQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6Y2xlYXJDdXN0b21Td2lwZVZpZXdzKCkKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQo
KQoreworICAgIFttX2NvbnRlbnRWaWV3IF9jb21taXRQb3RlbnRpYWxUYXBGYWlsZWRdOworfQor
CiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2
NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0ZWRRdWFkcywgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRp
dXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzKQogewogICAgIFttX2NvbnRlbnRWaWV3IF9k
aWRHZXRUYXBIaWdobGlnaHRGb3JSZXF1ZXN0OnJlcXVlc3RJRCBjb2xvcjpjb2xvciBxdWFkczpo
aWdobGlnaHRlZFF1YWRzIHRvcExlZnRSYWRpdXM6dG9wTGVmdFJhZGl1cyB0b3BSaWdodFJhZGl1
czp0b3BSaWdodFJhZGl1cyBib3R0b21MZWZ0UmFkaXVzOmJvdHRvbUxlZnRSYWRpdXMgYm90dG9t
UmlnaHRSYWRpdXM6Ym90dG9tUmlnaHRSYWRpdXNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggOGVjMTJk
MWVhYjliZWY0OTM4OWMyZjNlOTNmMThlZjFlZGQ0ODY3Yy4uYzY2YWJiNGZhZDA1YTc5YTE0NDcx
NmFjMmEzYTYwODU5YTgwZjViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAj
aW1wb3J0ICJBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5oIgogI2ltcG9ydCAiR2VzdHVyZVR5cGVz
LmgiCiAjaW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgorI2ltcG9y
dCAiV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0ICJXS0Fp
clBsYXlSb3V0ZVBpY2tlci5oIgogI2ltcG9ydCAiV0tGaWxlVXBsb2FkUGFuZWwuaCIKICNpbXBv
cnQgIldLRm9ybVBlcmlwaGVyYWwuaCIKQEAgLTM5LDYgKzQwLDggQEAKICNpbXBvcnQgPFVJS2l0
L1VJV0tUZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQuaD4KICNpbXBvcnQgPFVJS2l0L1VJV2ViRm9y
bUFjY2Vzc29yeS5oPgogI2ltcG9ydCA8VUlLaXQvVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNv
Z25pemVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zs
b2F0UXVhZC5oPgogI2ltcG9ydCA8d3RmL0ZvcndhcmQuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3Iu
aD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtODQsNyArODcsNyBAQCBzdHJ1
Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogCiAgICAgQk9PTCBfY2FuU2VuZFRvdWNoRXZlbnRz
QXN5bmNocm9ub3VzbHk7CiAKLSAgICBSZXRhaW5QdHI8VUlUYXBHZXN0dXJlUmVjb2duaXplcj4g
X3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyOworICAgIFJldGFpblB0cjxXS1N5bnRoZXRpY0Ns
aWNrVGFwR2VzdHVyZVJlY29nbml6ZXI+IF9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplcjsKICAg
ICBSZXRhaW5QdHI8X1VJV2ViSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI+IF9o
aWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8VUlMb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplcj4gX2xvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyOwogICAg
IFJldGFpblB0cjxVSVRhcEdlc3R1cmVSZWNvZ25pemVyPiBfZG91YmxlVGFwR2VzdHVyZVJlY29n
bml6ZXI7CkBAIC0xMDgsNiArMTExLDE1IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7
CiAgICAgaWQgPFVJVGV4dElucHV0RGVsZWdhdGU+IF9pbnB1dERlbGVnYXRlOwogCiAgICAgdWlu
dDY0X3QgX2xhdGVzdFRhcEhpZ2hsaWdodElEOworICAgIHN0cnVjdCBUYXBIaWdobGlnaHRJbmZv
cm1hdGlvbiB7CisgICAgICAgIFdlYkNvcmU6OkNvbG9yIGNvbG9yOworICAgICAgICBWZWN0b3I8
V2ViQ29yZTo6RmxvYXRRdWFkPiBxdWFkczsKKyAgICAgICAgV2ViQ29yZTo6SW50U2l6ZSB0b3BM
ZWZ0UmFkaXVzOworICAgICAgICBXZWJDb3JlOjpJbnRTaXplIHRvcFJpZ2h0UmFkaXVzOworICAg
ICAgICBXZWJDb3JlOjpJbnRTaXplIGJvdHRvbUxlZnRSYWRpdXM7CisgICAgICAgIFdlYkNvcmU6
OkludFNpemUgYm90dG9tUmlnaHRSYWRpdXM7CisgICAgfTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
VGFwSGlnaGxpZ2h0SW5mb3JtYXRpb24+IF9wb3RlbnRpYWxUYXBIaWdobGlnaHRJbmZvcm1hdGlv
bjsKIAogICAgIFdlYktpdDo6V0tBdXRvQ29ycmVjdGlvbkRhdGEgX2F1dG9jb3JyZWN0aW9uRGF0
YTsKICAgICBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIF9wb3NpdGlv
bkluZm9ybWF0aW9uOwpAQCAtMTIwLDYgKzEzMiw3IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9u
RGF0YSB7CiAgICAgQk9PTCBfc2hvd2luZ1RleHRTdHlsZU9wdGlvbnM7CiAgICAgQk9PTCBfaGFz
VmFsaWRQb3NpdGlvbkluZm9ybWF0aW9uOwogICAgIEJPT0wgX2lzVGFwSGlnaGxpZ2h0SURWYWxp
ZDsKKyAgICBCT09MIF9wb3RlbnRpYWxUYXBJblByb2dyZXNzOwogICAgIEJPT0wgX3NlbGVjdGlv
bk5lZWRzVXBkYXRlOwogICAgIEJPT0wgX3VzaW5nR2VzdHVyZUZvclNlbGVjdGlvbjsKIH0KQEAg
LTEzOSw2ICsxNTIsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogLSAodm9pZClj
bGVhbnVwSW50ZXJhY3Rpb247CiAKIC0gKHZvaWQpX3dlYlRvdWNoRXZlbnQ6KGNvbnN0IFdlYktp
dDo6TmF0aXZlV2ViVG91Y2hFdmVudCYpdG91Y2hFdmVudCBwcmV2ZW50c05hdGl2ZUdlc3R1cmVz
OihCT09MKXByZXZlbnRzRGVmYXVsdDsKKy0gKHZvaWQpX2NvbW1pdFBvdGVudGlhbFRhcEZhaWxl
ZDsKIC0gKHZvaWQpX2RpZEdldFRhcEhpZ2hsaWdodEZvclJlcXVlc3Q6KHVpbnQ2NF90KXJlcXVl
c3RJRCBjb2xvcjooY29uc3QgV2ViQ29yZTo6Q29sb3ImKWNvbG9yIHF1YWRzOihjb25zdCBWZWN0
b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYpaGlnaGxpZ2h0ZWRRdWFkcyB0b3BMZWZ0UmFkaXVzOihj
b25zdCBXZWJDb3JlOjpJbnRTaXplJil0b3BMZWZ0UmFkaXVzIHRvcFJpZ2h0UmFkaXVzOihjb25z
dCBXZWJDb3JlOjpJbnRTaXplJil0b3BSaWdodFJhZGl1cyBib3R0b21MZWZ0UmFkaXVzOihjb25z
dCBXZWJDb3JlOjpJbnRTaXplJilib3R0b21MZWZ0UmFkaXVzIGJvdHRvbVJpZ2h0UmFkaXVzOihj
b25zdCBXZWJDb3JlOjpJbnRTaXplJilib3R0b21SaWdodFJhZGl1czsKIAogLSAodm9pZClfc3Rh
cnRBc3Npc3RpbmdOb2RlOihjb25zdCBXZWJLaXQ6OkFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJilp
bmZvcm1hdGlvbiB1c2VySXNJbnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRlcmFjdGluZyB1c2Vy
T2JqZWN0OihOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICopdXNlck9iamVjdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggNWIzNmQ2NmU0MGVmOTM3YTk0MzM4ZTYxM2IzNjljMjc0ZDU5NTZmYy4uMDZl
YzdhNTViMzZmM2YyOTUyYjdlNmNmNzNjZmJiZGZkY2RjNTQ3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
QEAgLTE5MSw4ICsxOTEsMTAgQEAgc3RhdGljIGNvbnN0IGZsb2F0IHRhcEFuZEhvbGREZWxheSAg
PSAwLjc1OwogICAgIFtfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOnNl
bGZdOwogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl90b3VjaEV2ZW50R2VzdHVyZVJl
Y29nbml6ZXIuZ2V0KCldOwogCi0gICAgX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyID0gYWRv
cHROUyhbW1VJVGFwR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFyZ2V0OnNlbGYg
YWN0aW9uOkBzZWxlY3Rvcihfc2luZ2xlVGFwUmVjb2duaXplZDopXSk7CisgICAgX3NpbmdsZVRh
cEdlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhbW1dLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJl
UmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9z
aW5nbGVUYXBDb21taXRlZDopXSk7CiAgICAgW19zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplciBz
ZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICBbX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldEdl
c3R1cmVSZWNvZ25pemVkVGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3Rvcihfc2luZ2xlVGFwUmVj
b2duaXplZDopXTsKKyAgICBbX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldFJlc2V0VGFy
Z2V0OnNlbGYgYWN0aW9uOkBzZWxlY3Rvcihfc2luZ2xlVGFwRGlkUmVzZXQ6KV07CiAgICAgW3Nl
bGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgp
XTsKIAogICAgIF9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMoW1tVSVRhcEdl
c3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0
b3IoX2RvdWJsZVRhcFJlY29nbml6ZWQ6KV0pOwpAQCAtMzYyLDExICszNjQsOCBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgaGlnaGxpZ2h0ZWRRdWFkc0FyZVNtYWxsZXJUaGFuUmVjdChjb25zdCBWZWN0
b3I8RmxvYXRRdWFkPiYgcQogICAgIHJldHVybiB0cnVlOwogfQogCi0tICh2b2lkKV9kaWRHZXRU
YXBIaWdobGlnaHRGb3JSZXF1ZXN0Oih1aW50NjRfdClyZXF1ZXN0SUQgY29sb3I6KGNvbnN0IFdl
YkNvcmU6OkNvbG9yJiljb2xvciBxdWFkczooY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVh
ZD4mKWhpZ2hsaWdodGVkUXVhZHMgdG9wTGVmdFJhZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpdG9wTGVmdFJhZGl1cyB0b3BSaWdodFJhZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
dG9wUmlnaHRSYWRpdXMgYm90dG9tTGVmdFJhZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
Ym90dG9tTGVmdFJhZGl1cyBib3R0b21SaWdodFJhZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpYm90dG9tUmlnaHRSYWRpdXMKKy0gKHZvaWQpX3Nob3dUYXBIaWdobGlnaHRXaXRoQ29sb3I6
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJiljb2xvciBxdWFkczooY29uc3QgVmVjdG9yPFdlYkNvcmU6
OkZsb2F0UXVhZD4mKWhpZ2hsaWdodGVkUXVhZHMgdG9wTGVmdFJhZGl1czooY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpdG9wTGVmdFJhZGl1cyB0b3BSaWdodFJhZGl1czooY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYpdG9wUmlnaHRSYWRpdXMgYm90dG9tTGVmdFJhZGl1czooY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYpYm90dG9tTGVmdFJhZGl1cyBib3R0b21SaWdodFJhZGl1czooY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpYm90dG9tUmlnaHRSYWRpdXMKIHsKLSAgICBpZiAoIV9pc1RhcEhpZ2hsaWdo
dElEVmFsaWQgfHwgX2xhdGVzdFRhcEhpZ2hsaWdodElEICE9IHJlcXVlc3RJRCkKLSAgICAgICAg
cmV0dXJuOwotCiAgICAgaWYgKCFoaWdobGlnaHRlZFF1YWRzQXJlU21hbGxlclRoYW5SZWN0KGhp
Z2hsaWdodGVkUXVhZHMsIF9wYWdlLT51bm9ic2N1cmVkQ29udGVudFJlY3QoKSkpCiAgICAgICAg
IHJldHVybjsKIApAQCAtNDMzLDYgKzQzMiwzMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGlnaGxp
Z2h0ZWRRdWFkc0FyZVNtYWxsZXJUaGFuUmVjdChjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcQog
ICAgIFtfaGlnaGxpZ2h0VmlldyBzZXRDb3JuZXJSYWRpaTpib3JkZXJSYWRpaS5nZXQoKV07CiB9
CiAKKy0gKHZvaWQpX2RpZEdldFRhcEhpZ2hsaWdodEZvclJlcXVlc3Q6KHVpbnQ2NF90KXJlcXVl
c3RJRCBjb2xvcjooY29uc3QgV2ViQ29yZTo6Q29sb3ImKWNvbG9yIHF1YWRzOihjb25zdCBWZWN0
b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYpaGlnaGxpZ2h0ZWRRdWFkcyB0b3BMZWZ0UmFkaXVzOihj
b25zdCBXZWJDb3JlOjpJbnRTaXplJil0b3BMZWZ0UmFkaXVzIHRvcFJpZ2h0UmFkaXVzOihjb25z
dCBXZWJDb3JlOjpJbnRTaXplJil0b3BSaWdodFJhZGl1cyBib3R0b21MZWZ0UmFkaXVzOihjb25z
dCBXZWJDb3JlOjpJbnRTaXplJilib3R0b21MZWZ0UmFkaXVzIGJvdHRvbVJpZ2h0UmFkaXVzOihj
b25zdCBXZWJDb3JlOjpJbnRTaXplJilib3R0b21SaWdodFJhZGl1cworeworICAgIGlmICghX2lz
VGFwSGlnaGxpZ2h0SURWYWxpZCB8fCBfbGF0ZXN0VGFwSGlnaGxpZ2h0SUQgIT0gcmVxdWVzdElE
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoX3BvdGVudGlhbFRhcEluUHJvZ3Jlc3MpIHsK
KyAgICAgICAgX3BvdGVudGlhbFRhcEhpZ2hsaWdodEluZm9ybWF0aW9uID0gc3RkOjptYWtlX3Vu
aXF1ZTxUYXBIaWdobGlnaHRJbmZvcm1hdGlvbj4oKTsKKyAgICAgICAgX3BvdGVudGlhbFRhcEhp
Z2hsaWdodEluZm9ybWF0aW9uLT5jb2xvciA9IGNvbG9yOworICAgICAgICBfcG90ZW50aWFsVGFw
SGlnaGxpZ2h0SW5mb3JtYXRpb24tPnF1YWRzID0gaGlnaGxpZ2h0ZWRRdWFkczsKKyAgICAgICAg
X3BvdGVudGlhbFRhcEhpZ2hsaWdodEluZm9ybWF0aW9uLT50b3BMZWZ0UmFkaXVzID0gdG9wTGVm
dFJhZGl1czsKKyAgICAgICAgX3BvdGVudGlhbFRhcEhpZ2hsaWdodEluZm9ybWF0aW9uLT50b3BS
aWdodFJhZGl1cyA9IHRvcFJpZ2h0UmFkaXVzOworICAgICAgICBfcG90ZW50aWFsVGFwSGlnaGxp
Z2h0SW5mb3JtYXRpb24tPmJvdHRvbUxlZnRSYWRpdXMgPSBib3R0b21MZWZ0UmFkaXVzOworICAg
ICAgICBfcG90ZW50aWFsVGFwSGlnaGxpZ2h0SW5mb3JtYXRpb24tPmJvdHRvbVJpZ2h0UmFkaXVz
ID0gYm90dG9tUmlnaHRSYWRpdXM7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbc2Vs
ZiBfc2hvd1RhcEhpZ2hsaWdodFdpdGhDb2xvcjpjb2xvcgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHF1YWRzOmhpZ2hsaWdodGVkUXVhZHMKKyAgICAgICAgICAgICAgICAgICAgICAg
dG9wTGVmdFJhZGl1czp0b3BMZWZ0UmFkaXVzCisgICAgICAgICAgICAgICAgICAgICAgdG9wUmln
aHRSYWRpdXM6dG9wUmlnaHRSYWRpdXMKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tTGVmdFJh
ZGl1czpib3R0b21MZWZ0UmFkaXVzCisgICAgICAgICAgICAgICAgICAgYm90dG9tUmlnaHRSYWRp
dXM6Ym90dG9tUmlnaHRSYWRpdXNdOworfQorCiAtICh2b2lkKV9jYW5jZWxMb25nUHJlc3NHZXN0
dXJlUmVjb2duaXplcgogewogICAgIFtfaGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6
ZXIgY2FuY2VsXTsKQEAgLTYzNSw2ICs2NTgsMTkgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2Ft
ZVBhaXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkK
ICAgICBbX2hpZ2hsaWdodFJvb3RWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwogfQogCistICh2
b2lkKV9maW5pc2hJbnRlcmFjdGlvbgoreworICAgIFtVSVZpZXcgYW5pbWF0ZVdpdGhEdXJhdGlv
bjowLjEKKyAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbnM6XnsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBbW19oaWdobGlnaHRSb290VmlldyBsYXllcl0gc2V0T3BhY2l0eTowXTsKKyAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb246XihC
T09MKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICBfaXNUYXBIaWdobGlnaHRJRFZhbGlkID0g
Tk87CisgICAgICAgICAgICAgICAgICAgICAgICAgW19oaWdobGlnaHRSb290VmlldyByZW1vdmVG
cm9tU3VwZXJ2aWV3XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBbW19oaWdobGlnaHRSb290
VmlldyBsYXllcl0gc2V0T3BhY2l0eToxXTsKKyAgICAgICAgICAgICAgICAgICAgIH1dOworfQor
CiAtIChCT09MKWhhc1NlbGVjdGFibGVQb3NpdGlvbkF0UG9pbnQ6KENHUG9pbnQpcG9pbnQKIHsK
ICAgICBbc2VsZiBlbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTpwb2ludF07CkBA
IC02ODYsMTIgKzcyMiwxNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1
cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQogCiAgICAgc3dpdGNo
IChbZ2VzdHVyZVJlY29nbml6ZXIgc3RhdGVdKSB7CiAgICAgY2FzZSBVSUdlc3R1cmVSZWNvZ25p
emVyU3RhdGVCZWdhbjoKLSAgICAgICAgX3BhZ2UtPnRhcEhpZ2hsaWdodEF0UG9zaXRpb24oW2dl
c3R1cmVSZWNvZ25pemVyIHN0YXJ0UG9pbnRdLCBfbGF0ZXN0VGFwSGlnaGxpZ2h0SUQpOworICAg
ICAgICBfcGFnZS0+dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihbZ2VzdHVyZVJlY29nbml6ZXIgc3Rh
cnRQb2ludF0sICsrX2xhdGVzdFRhcEhpZ2hsaWdodElEKTsKICAgICAgICAgX2lzVGFwSGlnaGxp
Z2h0SURWYWxpZCA9IFlFUzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVSUdlc3R1cmVSZWNv
Z25pemVyU3RhdGVFbmRlZDoKLSAgICAgICAgaWYgKCFfcG9zaXRpb25JbmZvcm1hdGlvbi5jbGlj
a2FibGVFbGVtZW50TmFtZS5pc0VtcHR5KCkpCisgICAgICAgIGlmICghX3Bvc2l0aW9uSW5mb3Jt
YXRpb24uY2xpY2thYmxlRWxlbWVudE5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBbc2Vs
ZiBfYXR0ZW1wdENsaWNrQXRMb2NhdGlvbjpbZ2VzdHVyZVJlY29nbml6ZXIgc3RhcnRQb2ludF1d
OworICAgICAgICAgICAgW3NlbGYgX2ZpbmlzaEludGVyYWN0aW9uXTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBbc2VsZiBfY2FuY2VsSW50ZXJhY3Rpb25dOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUNhbmNlbGxlZDoKICAgICAgICAgW3Nl
bGYgX2NhbmNlbEludGVyYWN0aW9uXTsKQEAgLTcxNywxNSArNzU2LDU4IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29n
bml6ZXIgKmIsIFVJCiAtICh2b2lkKV9zaW5nbGVUYXBSZWNvZ25pemVkOihVSVRhcEdlc3R1cmVS
ZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIKIHsKICAgICBBU1NFUlQoZ2VzdHVyZVJlY29n
bml6ZXIgPT0gX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyKTsKKyAgICBBU1NFUlQoIV9wb3Rl
bnRpYWxUYXBJblByb2dyZXNzKTsKKworICAgIF9wYWdlLT5wb3RlbnRpYWxUYXBBdFBvc2l0aW9u
KGdlc3R1cmVSZWNvZ25pemVyLmxvY2F0aW9uLCArK19sYXRlc3RUYXBIaWdobGlnaHRJRCk7Cisg
ICAgX3BvdGVudGlhbFRhcEluUHJvZ3Jlc3MgPSBZRVM7CisgICAgX2lzVGFwSGlnaGxpZ2h0SURW
YWxpZCA9IFlFUzsKK30KKworLSAodm9pZClfc2luZ2xlVGFwRGlkUmVzZXQ6KFVJVGFwR2VzdHVy
ZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgoreworICAgIEFTU0VSVChnZXN0dXJlUmVj
b2duaXplciA9PSBfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIpOworICAgIGlmIChfcG90ZW50
aWFsVGFwSW5Qcm9ncmVzcykgeworICAgICAgICBfcG90ZW50aWFsVGFwSW5Qcm9ncmVzcyA9IE5P
OworICAgICAgICBbc2VsZiBfY2FuY2VsSW50ZXJhY3Rpb25dOworICAgICAgICBfcGFnZS0+Y2Fu
Y2VsUG90ZW50aWFsVGFwKCk7CisgICAgfQorfQorCistICh2b2lkKV9jb21taXRQb3RlbnRpYWxU
YXBGYWlsZWQKK3sKKyAgICBbc2VsZiBfY2FuY2VsSW50ZXJhY3Rpb25dOworfQorCistICh2b2lk
KV9zaW5nbGVUYXBDb21taXRlZDooVUlUYXBHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNv
Z25pemVyCit7CisgICAgQVNTRVJUKGdlc3R1cmVSZWNvZ25pemVyID09IF9zaW5nbGVUYXBHZXN0
dXJlUmVjb2duaXplcik7CiAKLSAgICBpZiAoX3dlYlNlbGVjdGlvbkFzc2lzdGFudCAmJiAhW193
ZWJTZWxlY3Rpb25Bc3Npc3RhbnQgc2hvdWxkSGFuZGxlU2luZ2xlVGFwQXRQb2ludDpnZXN0dXJl
UmVjb2duaXplci5sb2NhdGlvbl0pCisgICAgaWYgKF93ZWJTZWxlY3Rpb25Bc3Npc3RhbnQgJiYg
IVtfd2ViU2VsZWN0aW9uQXNzaXN0YW50IHNob3VsZEhhbmRsZVNpbmdsZVRhcEF0UG9pbnQ6Z2Vz
dHVyZVJlY29nbml6ZXIubG9jYXRpb25dKSB7CisgICAgICAgIFtzZWxmIF9zaW5nbGVUYXBEaWRS
ZXNldDpnZXN0dXJlUmVjb2duaXplcl07CiAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBB
U1NFUlQoX3BvdGVudGlhbFRhcEluUHJvZ3Jlc3MpOwogCiAgICAgW193ZWJTZWxlY3Rpb25Bc3Np
c3RhbnQgY2xlYXJTZWxlY3Rpb25dOwogCiAgICAgX2xhc3RJbnRlcmFjdGlvbkxvY2F0aW9uID0g
Z2VzdHVyZVJlY29nbml6ZXIubG9jYXRpb247CiAKLSAgICBbc2VsZiBfYXR0ZW1wdENsaWNrQXRM
b2NhdGlvbjpnZXN0dXJlUmVjb2duaXplci5sb2NhdGlvbl07CisgICAgX3BvdGVudGlhbFRhcElu
UHJvZ3Jlc3MgPSBOTzsKKworICAgIGlmIChfcG90ZW50aWFsVGFwSGlnaGxpZ2h0SW5mb3JtYXRp
b24pIHsKKyAgICAgICAgW3NlbGYgX3Nob3dUYXBIaWdobGlnaHRXaXRoQ29sb3I6X3BvdGVudGlh
bFRhcEhpZ2hsaWdodEluZm9ybWF0aW9uLT5jb2xvcgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBxdWFkczpfcG90ZW50aWFsVGFwSGlnaGxpZ2h0SW5mb3JtYXRpb24tPnF1YWRz
CisgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3BMZWZ0UmFkaXVzOl9wb3RlbnRpYWxUYXBI
aWdobGlnaHRJbmZvcm1hdGlvbi0+dG9wTGVmdFJhZGl1cworICAgICAgICAgICAgICAgICAgICAg
ICAgICB0b3BSaWdodFJhZGl1czpfcG90ZW50aWFsVGFwSGlnaGxpZ2h0SW5mb3JtYXRpb24tPnRv
cFJpZ2h0UmFkaXVzCisgICAgICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0UmFkaXVzOl9w
b3RlbnRpYWxUYXBIaWdobGlnaHRJbmZvcm1hdGlvbi0+Ym90dG9tTGVmdFJhZGl1cworICAgICAg
ICAgICAgICAgICAgICAgICBib3R0b21SaWdodFJhZGl1czpfcG90ZW50aWFsVGFwSGlnaGxpZ2h0
SW5mb3JtYXRpb24tPmJvdHRvbVJpZ2h0UmFkaXVzXTsKKyAgICAgICAgX3BvdGVudGlhbFRhcEhp
Z2hsaWdodEluZm9ybWF0aW9uID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBfcGFnZS0+Y29tbWl0
UG90ZW50aWFsVGFwKCk7CisKKyAgICBbc2VsZiBfZmluaXNoSW50ZXJhY3Rpb25dOwogfQogCiAt
ICh2b2lkKV9kb3VibGVUYXBSZWNvZ25pemVkOihVSVRhcEdlc3R1cmVSZWNvZ25pemVyICopZ2Vz
dHVyZVJlY29nbml6ZXIKQEAgLTc0NCwxMCArODI2LDYgQEAgc3RhdGljIGlubGluZSBib29sIGlz
U2FtZVBhaXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwg
VUkKIAogLSAodm9pZClfYXR0ZW1wdENsaWNrQXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbgog
ewotICAgIC8vIEZJWE1FOiBJZGVhbGx5LCB3ZSBzaG91bGQgYWx3YXlzIHByb3ZpZGUgc29tZSB2
aXN1YWwgZmVlZGJhY2sgb24gY2xpY2suIElmIGEgc2hvcnQgdGFwIGRpZCBub3QgdHJpZ2dlciB0
aGUKLSAgICAvLyB0YXAgaGlnaGxpZ2h0LCB3ZSBzaG91bGQgc2hvdyBvbmUgYmFzZWQgb24gYSB0
aW1lciBpZiB3ZSBjb21taXQgdGhlIHN5bnRoZXRpYyBtb3VzZSBldmVudHMuCi0gICAgW3NlbGYg
X2NhbmNlbEludGVyYWN0aW9uXTsKLQogICAgIGlmICghW3NlbGYgaXNGaXJzdFJlc3BvbmRlcl0p
CiAgICAgICAgIFtzZWxmIGJlY29tZUZpcnN0UmVzcG9uZGVyXTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29n
bml6ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNDbGlja1Rh
cEdlc3R1cmVSZWNvZ25pemVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDY1MWY1NWVkNDI4YjgyMGZlOTc1NmY4
NTQzMzljZjk5OWIzOWQ5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmgKQEAgLTAsMCAr
MSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFVJS2l0L1VJVGFwR2VzdHVyZVJlY29nbml6
ZXJfUHJpdmF0ZS5oPgorCitAaW50ZXJmYWNlIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVj
b2duaXplciA6IFVJVGFwR2VzdHVyZVJlY29nbml6ZXIKKy0gKHZvaWQpc2V0R2VzdHVyZVJlY29n
bml6ZWRUYXJnZXQ6KGlkKXRhcmdldCBhY3Rpb246KFNFTClhY3Rpb247CistICh2b2lkKXNldFJl
c2V0VGFyZ2V0OihpZCl0YXJnZXQgYWN0aW9uOihTRUwpYWN0aW9uOworQGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVy
ZVJlY29nbml6ZXIubSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWND
bGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLm0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVkYjcwODgyOTBlYWU1YzM1
ZWUzN2RkYzc2M2NmNThmNTVlZDE3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLm0KQEAg
LTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIldLU3ludGhldGljQ2xpY2tUYXBH
ZXN0dXJlUmVjb2duaXplci5oIgorCisjaW1wb3J0IDxVSUtpdC9VSUdlc3R1cmVSZWNvZ25pemVy
U3ViY2xhc3MuaD4KKworQGltcGxlbWVudGF0aW9uIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJl
UmVjb2duaXplciB7CisgICAgaWQgX2dlc3R1cmVSZWNvZ25pemVkVGFyZ2V0OworICAgIFNFTCBf
Z2VzdHVyZVJlY29nbml6ZWRBY3Rpb247CisgICAgaWQgX3Jlc2V0VGFyZ2V0OworICAgIFNFTCBf
cmVzZXRBY3Rpb247Cit9CisKKy0gKHZvaWQpc2V0R2VzdHVyZVJlY29nbml6ZWRUYXJnZXQ6KGlk
KXRhcmdldCBhY3Rpb246KFNFTClhY3Rpb24KK3sKKyAgICBfZ2VzdHVyZVJlY29nbml6ZWRUYXJn
ZXQgPSB0YXJnZXQ7CisgICAgX2dlc3R1cmVSZWNvZ25pemVkQWN0aW9uID0gYWN0aW9uOworfQor
CistICh2b2lkKXNldFJlc2V0VGFyZ2V0OihpZCl0YXJnZXQgYWN0aW9uOihTRUwpYWN0aW9uCit7
CisgICAgX3Jlc2V0VGFyZ2V0ID0gdGFyZ2V0OworICAgIF9yZXNldEFjdGlvbiA9IGFjdGlvbjsK
K30KKworLSAodm9pZClzZXRTdGF0ZTooVUlHZXN0dXJlUmVjb2duaXplclN0YXRlKXN0YXRlCit7
CisgICAgW3N1cGVyIHNldFN0YXRlOnN0YXRlXTsKKyAgICBbX2dlc3R1cmVSZWNvZ25pemVkVGFy
Z2V0IHBlcmZvcm1TZWxlY3RvcjpfZ2VzdHVyZVJlY29nbml6ZWRBY3Rpb24gd2l0aE9iamVjdDpz
ZWxmXTsKK30KKworLSAodm9pZClyZXNldAoreworICAgIFtzdXBlciByZXNldF07CisgICAgW19y
ZXNldFRhcmdldCBwZXJmb3JtU2VsZWN0b3I6X3Jlc2V0QWN0aW9uIHdpdGhPYmplY3Q6c2VsZl07
Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0KaW5kZXggMTI5ZTk2YWE4MzhiNjA1MjcxNTc1ZGNiYjk1N2FhYTZiZjQzZDYxYi4u
Yjg2YWYwNWExNGQwMzFmMmUyMjBiODI0ZDBiNjNmMDdmZWIwOTMyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTQ2MSwxMSArNDYx
LDIzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygp
CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OldpbGxTdGFydFVzZXJUcmln
Z2VyZWRab29taW5nKCksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnRhcEhp
Z2hsaWdodEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRpb24sIHVp
bnQ2NF90JiByZXF1ZXN0SUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6cG90ZW50aWFsVGFwQXRQb3Np
dGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb3NpdGlvbiwgdWludDY0X3QmIHJlcXVl
c3RJRCkKIHsKLSAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlUmVxdWVzdElEID0gMDsKLSAgICBy
ZXF1ZXN0SUQgPSArK3VuaXF1ZVJlcXVlc3RJRDsKKyAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6UG90ZW50aWFsVGFwQXRQb3NpdGlvbihyZXF1ZXN0SUQsIHBvc2l0aW9uKSwg
bV9wYWdlSUQpOworfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UG90ZW50aWFsVGFwKCkK
K3sKKyAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q29tbWl0UG90ZW50aWFs
VGFwKCksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmNhbmNlbFBvdGVudGlh
bFRhcCgpCit7CisgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNhbmNlbFBv
dGVudGlhbFRhcCgpLCBtX3BhZ2VJRCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojp0YXBIaWdo
bGlnaHRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCB1aW50
NjRfdCYgcmVxdWVzdElEKQorewogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpUYXBIaWdobGlnaHRBdFBvc2l0aW9uKHJlcXVlc3RJRCwgcG9zaXRpb24pLCBtX3BhZ2VJRCk7
CiB9CiAKQEAgLTU4MSw2ICs1OTMsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6Onpvb21Ub1JlY3Qo
RmxvYXRSZWN0IHJlY3QsIGRvdWJsZSBtaW5pbXVtU2NhbGUsIGRvdWJsZSBtYXhpbXUKICAgICBt
X3BhZ2VDbGllbnQuem9vbVRvUmVjdChyZWN0LCBtaW5pbXVtU2NhbGUsIG1heGltdW1TY2FsZSk7
CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKQorewor
ICAgIG1fcGFnZUNsaWVudC5jb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKTsKK30KKwogdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHBvaW50KQogewogICAgIG1fdWlDbGllbnQtPmRpZE5vdEhhbmRsZVRhcEFzQ2xpY2socG9p
bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDgxZTRjNDk3YjFkNDNhYTgyZTE1MmM2MzhlY2ExZDZjNDEzNjhjODYuLjRkNGIw
NzM4NDI3NTY0MTI5NDlhNmViZThhNjA4NDUxMDM4N2JkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3NCw2ICs0NzQsOCBA
QAogCQkyNjg0MDU0RjE4Qjg2QzhFMDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY4NDA1NDUx
OEI4NUU3RTAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcCAqLzsgfTsKIAkJMjY4
NDA1NTIxOEI4NkVENjAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2
ODQwNTUwMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CiAJCTI2ODQwNTUzMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRl
RGlzcGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyNjg0MDU1MTE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNo
ZXJNZXNzYWdlcy5oICovOyB9OworCQkyNkYxMEJFODE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50
aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkYxMEJFNjE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50
aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmggKi87IH07CisJCTI2RjEwQkU5MTkxODdF
MkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIubSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjEwQkU3MTkxODdF
MkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIubSAqLzsg
fTsKIAkJMjZGOUE4M0IxOEEzNDY4MTAwQUVCODhBIC8qIFdLV2ViVmlld1ByaXZhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjlBODNBMThBMzQ2
M0YwMEFFQjg4QSAvKiBXS1dlYlZpZXdQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjkwRjQyNzIxNzJBMEM3NDAwOTM5RkYwIC8qIENo
aWxkUHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI5MEY0MjcxMTcyQTBDNzQwMDkzOUZGMCAvKiBDaGlsZFByb2Nlc3NTdXBw
bGVtZW50LmggKi87IH07CiAJCTI5MjMyREY0MThCMjlENjgwMEQwNTk2RiAvKiBXS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOTIzMkRGMzE4QjI5RDY4MDBEMDU5NkYgLyogV0tBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdE1hYy5oICovOyB9OwpAQCAtMjI4OCw2ICsyMjkwLDggQEAKIAkJMjY4NDA1
NEExOEI4NjZGRjAwMjJDMzhCIC8qIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2ODQwNTUwMThCODZF
RDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWV3VXBkYXRlRGlzcGF0Y2hlck1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2ODQwNTUx
MThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjZGMTBCRTYxOTE4N0UyRTAwMUQwRTY4
IC8qIFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIu
aDsgcGF0aCA9IGlvcy9XS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjZGMTBCRTcxOTE4N0UyRTAwMUQwRTY4IC8qIFdL
U3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLm9iamM7IG5hbWUgPSBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIubTsg
cGF0aCA9IGlvcy9XS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIubTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZGOUE4M0ExOEEzNDYzRjAwQUVCODhBIC8qIFdLV2Vi
Vmlld1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3UHJpdmF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyOTBGNDI3MTE3MkEwQzc0MDA5MzlGRjAgLyogQ2hpbGRQ
cm9jZXNzU3VwcGxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGls
ZFByb2Nlc3NTdXBwbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5MjMy
REYxMThCMjlEMTEwMEQwNTk2RiAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ1MDIs
NiArNDUwNiw4IEBACiAJCQkJMkRBRjA2RDQxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXIuaCAqLywKIAkJCQkyREFGMDZENTE4QkQxQTQ3MDA4MUNFQjEgLyog
U21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbSAqLywKIAkJCQkyREFGMDZEODE4QkQyM0JB
MDA4MUNFQjEgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbiAqLywK
KwkJCQkyNkYxMEJFNjE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1
cmVSZWNvZ25pemVyLmggKi8sCisJCQkJMjZGMTBCRTcxOTE4N0UyRTAwMUQwRTY4IC8qIFdLU3lu
dGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5tICovLAogCQkJCTJEQTk0NEFBMTg4NEU5
QkEwMEVEODZEQiAvKiBXZWJJbnNwZWN0b3JQcm94eUlPUy5tbSAqLywKIAkJCQkyRDNFRjQ0MDE5
MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVySU9TLmNwcCAqLywKIAkJ
CQkyRDNFRjQ0MTE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVySU9T
LmggKi8sCkBAIC03Mzg2LDYgKzczOTIsNyBAQAogCQkJCTc1M0UzRTBFMTg4NzM5ODkwMDE4ODQ5
NiAvKiBTZXNzaW9uVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MEUxMjRGRjAy
NzAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1OUNDRDVB
MTgwOEY2MTYwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggaW4gSGVhZGVy
cyAqLywKKwkJCQkyNkYxMEJFODE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNDbGlja1Rh
cEdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYyQjEyNEZGMDQw
MDA2OEYyMEEgLyogV0tVUkxSZXNwb25zZU5TLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjExM0Uy
OTEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDODY5OUI3MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXdJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC04Njk5LDYgKzg3MDYsNyBAQAogCQkJCTkzNUVFQkEwMTI3NzYxQUMw
MDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTFGQTJENzcxNTIxMkUyNjAwQzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5z
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRDI1RjE4MTFENkJERTEwMDE2OUIwRSAvKiBX
S0J1bmRsZUZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI2RjEwQkU5MTkxODdFMkUwMDFE
MEU2OCAvKiBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIubSBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNDk4NjMwMTI0RDE4QzEwMEQ4MzRFMSAvKiBXS0J1bmRsZUhpdFRlc3RSZXN1
bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjUwMUJEMUExMkYxMjQzNDAwRTlGMjQ4IC8qIFdL
QnVuZGxlSW5zcGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1M0UzRTBEMTg4NzM5ODUw
MDE4ODQ5NiAvKiBTZXNzaW9uVHJhY2tlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDIyYWFiNWU4YzRlY2EzNTYw
YTFjOGUzYmQ2ODg4ODY3MDBhYmY0ZTIuLjFkMTBiZGVkNWYzMGNkNzVlMTc2ZmM2YzVhZmUzMjRk
MGZhNmY0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtNDUxLDYgKzQ1MSw5IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93c1VzZXJTY2FsaW5n
KCkgY29uc3Q7CiAKICAgICB2b2lkIGhhbmRsZVRhcChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYp
OworICAgIHZvaWQgcG90ZW50aWFsVGFwQXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKKyAgICB2b2lkIGNvbW1pdFBvdGVudGlhbFRhcCgp
OworICAgIHZvaWQgY2FuY2VsUG90ZW50aWFsVGFwKCk7CiAgICAgdm9pZCB0YXBIaWdobGlnaHRB
dFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYp
OwogCiAgICAgdm9pZCBibHVyQXNzaXN0ZWROb2RlKCk7CkBAIC04MjAsNyArODIzLDggQEAgcHJp
dmF0ZToKICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiBjb250cmFjdGVkUmFuZ2VGcm9t
SGFuZGxlKFdlYkNvcmU6OlJhbmdlKiBjdXJyZW50UmFuZ2UsIFNlbGVjdGlvbkhhbmRsZVBvc2l0
aW9uLCBTZWxlY3Rpb25GbGFncyYpOwogICAgIHZvaWQgZ2V0QXNzaXN0ZWROb2RlSW5mb3JtYXRp
b24oQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6
ZUFjY2Vzc2liaWxpdHkoKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IG1fY3VycmVudEJs
b2NrU2VsZWN0aW9uOworICAgIHZvaWQgaGFuZGxlU3ludGhldGljQ2xpY2soV2ViQ29yZTo6Tm9k
ZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2Nh
dGlvbik7CisgICAgdm9pZCBzZW5kVGFwSGlnaGxpZ2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KHVpbnQ2
NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6Tm9kZSopOwogI2VuZGlmCiAjaWYgIVBMQVRGT1JNKENP
Q09BKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25zdCBXZWJD
b3JlOjpLZXlib2FyZEV2ZW50Kik7CkBAIC0xMTczLDYgKzExNzcsOSBAQCBwcml2YXRlOgogICAg
IFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBtX2ludGVyYWN0aW9uTm9kZTsKICAgICBXZWJDb3JlOjpJ
bnRQb2ludCBtX2xhc3RJbnRlcmFjdGlvbkxvY2F0aW9uOwogCisgICAgUmVmUHRyPFdlYkNvcmU6
Ok5vZGU+IG1fcG90ZW50aWFsVGFwTm9kZTsKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IG1fcG90
ZW50aWFsVGFwTG9jYXRpb247CisKICAgICBXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb24g
bV92aWV3cG9ydENvbmZpZ3VyYXRpb247CiAgICAgdWludDY0X3QgbV9sYXN0VmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSUQ7CiAgICAgYm9vbCBtX2hhc1JlY2VpdmVkVmlzaWJsZUNvbnRlbnRSZWN0
c0FmdGVyRGlkQ29tbWl0TG9hZDsKQEAgLTExODEsNiArMTE4OCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX3VzZXJJc0ludGVyYWN0aW5nOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3NjcmVl
blNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fYXZhaWxhYmxlU2NyZWVuU2l6ZTsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IG1fY3VycmVudEJsb2NrU2VsZWN0aW9uOwogICAgIFdl
YkNvcmU6OkludFNpemUgbV9ibG9ja1NlbGVjdGlvbkRlc2lyZWRTaXplOwogICAgIFdlYkNvcmU6
OkZsb2F0U2l6ZSBtX21pbmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJOwogICAgIGJvb2wgbV9p
bkR5bmFtaWNTaXplVXBkYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA5MmMyNmYwYzEyNzNhZTUxOWZmMWIw
ZDg2NmI4NTlkMDZiZjNmYzAyLi5hMTQwY2YwYTg0YmQyMDIyYjg0MDViMjZiMDdjMWNiMjk1Mzhk
NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtNDgsNiArNDgsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExl
Z2FjeVJlY2VpdmVyIHsKICAgICBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKFdlYkNvcmU6OkZs
b2F0U2l6ZSBtaW5pbXVtTGF5b3V0U2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEV4cG9z
ZWRDb250ZW50UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0LCBk
b3VibGUgc2NhbGUpCiAKICAgICBIYW5kbGVUYXAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCisg
ICAgUG90ZW50aWFsVGFwQXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OkZs
b2F0UG9pbnQgcG9pbnQpCisgICAgQ29tbWl0UG90ZW50aWFsVGFwKCkKKyAgICBDYW5jZWxQb3Rl
bnRpYWxUYXAoKQogICAgIFRhcEhpZ2hsaWdodEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElE
LCBXZWJDb3JlOjpGbG9hdFBvaW50IHBvaW50KQogICAgIEJsdXJBc3Npc3RlZE5vZGUoKQogICAg
IFNlbGVjdFdpdGhHZXN0dXJlKFdlYkNvcmU6OkludFBvaW50IHBvaW50LCB1aW50MzJfdCBncmFu
dWxhcml0eSwgdWludDMyX3QgZ2VzdHVyZVR5cGUsIHVpbnQzMl90IGdlc3R1cmVTdGF0ZSwgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCAyN2VkODE4MDFmMmIxMzI0YzE1Yjg3YTM4YTY3
ZWZjMjVmN2RhZjZjLi4zOGZhZGZlNDAzODVlMDc0ZWM3ZTc0ZGY5MTZkYjJjNjA0MDY2NDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCkBAIC0zMTksMTIgKzMxOSwxMCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVNlbGVjdGlv
bkFwcGVhcmFuY2UoKQogICAgICAgICBkaWRDaGFuZ2VTZWxlY3Rpb24oKTsKIH0KIAotdm9pZCBX
ZWJQYWdlOjpoYW5kbGVUYXAoY29uc3QgSW50UG9pbnQmIHBvaW50KQordm9pZCBXZWJQYWdlOjpo
YW5kbGVTeW50aGV0aWNDbGljayhOb2RlKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uKQogeworICAgIEludFBvaW50IHJvdW5kZWRBZGp1
c3RlZFBvaW50ID0gcm91bmRlZEludFBvaW50KGxvY2F0aW9uKTsKICAgICBGcmFtZSYgbWFpbmZy
YW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKLSAgICBGbG9hdFBvaW50IGFkanVzdGVkUG9pbnQ7
Ci0gICAgTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrID0gbWFpbmZyYW1lLm5vZGVSZXNwb25k
aW5nVG9DbGlja0V2ZW50cyhwb2ludCwgYWRqdXN0ZWRQb2ludCk7Ci0gICAgSW50UG9pbnQgcm91
bmRlZEFkanVzdGVkUG9pbnQgPSByb3VuZGVkSW50UG9pbnQoYWRqdXN0ZWRQb2ludCk7CiAKICAg
ICBXS0JlZ2luT2JzZXJ2aW5nQ29udGVudENoYW5nZXModHJ1ZSk7CiAgICAgbWFpbmZyYW1lLmV2
ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3Rl
ZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwKSk7CkBAIC0zNTUsMTUg
KzM1MywxOCBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZVRhcChjb25zdCBJbnRQb2ludCYgcG9pbnQp
CiAgICAgbV91c2VySXNJbnRlcmFjdGluZyA9IGZhbHNlOwogCiAgICAgaWYgKCF0YXBXYXNIYW5k
bGVkIHx8ICFub2RlUmVzcG9uZGluZ1RvQ2xpY2sgfHwgIW5vZGVSZXNwb25kaW5nVG9DbGljay0+
aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRp
ZE5vdEhhbmRsZVRhcEFzQ2xpY2socG9pbnQpKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWROb3RIYW5kbGVUYXBBc0NsaWNrKHJvdW5kZWRJbnRQb2ludChsb2NhdGlv
bikpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjp0YXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCit2b2lkIFdlYlBhZ2U6Omhh
bmRsZVRhcChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7Ci0gICAgRnJhbWUmIG1haW5mcmFtZSA9
IG1fcGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgRmxvYXRQb2ludCBhZGp1c3RlZFBvaW50OwotICAg
IE5vZGUqIG5vZGUgPSBtYWluZnJhbWUubm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzKHBvc2l0
aW9uLCBhZGp1c3RlZFBvaW50KTsKKyAgICBOb2RlKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2sgPSBt
X3BhZ2UtPm1haW5GcmFtZSgpLm5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyhwb2ludCwgYWRq
dXN0ZWRQb2ludCk7CisgICAgaGFuZGxlU3ludGhldGljQ2xpY2sobm9kZVJlc3BvbmRpbmdUb0Ns
aWNrLCBhZGp1c3RlZFBvaW50KTsKK30KIAordm9pZCBXZWJQYWdlOjpzZW5kVGFwSGlnaGxpZ2h0
Rm9yTm9kZUlmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCwgTm9kZSogbm9kZSkKK3sKICAg
ICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzk1LDYgKzM5Niw0MiBAQCB2b2lk
IFdlYlBhZ2U6OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBGbG9hdFBvaW50JiBwb3NpdAogICAgIH0KIH0KIAordm9pZCBXZWJQYWdlOjpwb3RlbnRpYWxU
YXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgcG9zaXRpb24pCit7CisgICAgbV9wb3RlbnRpYWxUYXBOb2RlID0gbV9wYWdlLT5tYWluRnJh
bWUoKS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMocG9zaXRpb24sIG1fcG90ZW50aWFsVGFw
TG9jYXRpb24pOworICAgIHNlbmRUYXBIaWdobGlnaHRGb3JOb2RlSWZOZWNlc3NhcnkocmVxdWVz
dElELCBtX3BvdGVudGlhbFRhcE5vZGUuZ2V0KCkpOworfQorCit2b2lkIFdlYlBhZ2U6OmNvbW1p
dFBvdGVudGlhbFRhcCgpCit7CisgICAgaWYgKCFtX3BvdGVudGlhbFRhcE5vZGUgfHwgIW1fcG90
ZW50aWFsVGFwTm9kZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmxvYXRQ
b2ludCBhZGp1c3RlZFBvaW50OworICAgIE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljayA9IG1f
cGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzKG1fcG90ZW50aWFs
VGFwTG9jYXRpb24sIGFkanVzdGVkUG9pbnQpOworCisgICAgaWYgKG1fcG90ZW50aWFsVGFwTm9k
ZSA9PSBub2RlUmVzcG9uZGluZ1RvQ2xpY2spCisgICAgICAgIGhhbmRsZVN5bnRoZXRpY0NsaWNr
KG5vZGVSZXNwb25kaW5nVG9DbGljaywgYWRqdXN0ZWRQb2ludCk7CisgICAgZWxzZQorICAgICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgp
KTsKKworICAgIG1fcG90ZW50aWFsVGFwTm9kZSA9IG51bGxwdHI7CisgICAgbV9wb3RlbnRpYWxU
YXBMb2NhdGlvbiA9IEZsb2F0UG9pbnQoKTsKK30KKwordm9pZCBXZWJQYWdlOjpjYW5jZWxQb3Rl
bnRpYWxUYXAoKQoreworICAgIG1fcG90ZW50aWFsVGFwTm9kZSA9IG51bGxwdHI7CisgICAgbV9w
b3RlbnRpYWxUYXBMb2NhdGlvbiA9IEZsb2F0UG9pbnQoKTsKK30KKwordm9pZCBXZWJQYWdlOjp0
YXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgRmxvYXRQb2lu
dCYgcG9zaXRpb24pCit7CisgICAgRnJhbWUmIG1haW5mcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1l
KCk7CisgICAgRmxvYXRQb2ludCBhZGp1c3RlZFBvaW50OworICAgIHNlbmRUYXBIaWdobGlnaHRG
b3JOb2RlSWZOZWNlc3NhcnkocmVxdWVzdElELCBtYWluZnJhbWUubm9kZVJlc3BvbmRpbmdUb0Ns
aWNrRXZlbnRzKHBvc2l0aW9uLCBhZGp1c3RlZFBvaW50KSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6
Ymx1ckFzc2lzdGVkTm9kZSgpCiB7CiAgICAgaWYgKG1fYXNzaXN0ZWROb2RlICYmIG1fYXNzaXN0
ZWROb2RlLT5pc0VsZW1lbnROb2RlKCkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>