<?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>161032</bug_id>
          
          <creation_ts>2016-08-20 11:05:00 -0700</creation_ts>
          <short_desc>Stop pretending that AbstractView is a thing, it&apos;s not</short_desc>
          <delta_ts>2016-08-20 14:42:10 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221656</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-20 11:05:00 -0700</bug_when>
    <thetext>Stop pretending that AbstractView is a thing, it&apos;s not</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221657</commentid>
    <comment_count>1</comment_count>
      <attachid>286542</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-20 11:07:45 -0700</bug_when>
    <thetext>Created attachment 286542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221658</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-20 11:09:36 -0700</bug_when>
    <thetext>Attachment 286542 did not pass style-queue:


ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:64:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:64:  Wrong number of spaces before statement. (expected: 41)  [whitespace/indent] [4]
Total errors found: 2 in 23 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>1221659</commentid>
    <comment_count>3</comment_count>
      <attachid>286543</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-20 11:22:41 -0700</bug_when>
    <thetext>Created attachment 286543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221660</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-20 11:24:34 -0700</bug_when>
    <thetext>Attachment 286543 did not pass style-queue:


ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:64:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:64:  Wrong number of spaces before statement. (expected: 41)  [whitespace/indent] [4]
Total errors found: 2 in 24 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>1221666</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-20 14:42:10 -0700</bug_when>
    <thetext>Committed r204681: &lt;http://trac.webkit.org/changeset/204681&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286542</attachid>
            <date>2016-08-20 11:07:45 -0700</date>
            <delta_ts>2016-08-20 11:22:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161032-20160820110552.patch</filename>
            <type>text/plain</type>
            <size>48336</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDY4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgzIEBACisyMDE2LTA4LTIwICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3RvcCBwcmV0ZW5kaW5nIHRoYXQgQWJz
dHJhY3RWaWV3IGlzIGEgdGhpbmcsIGl0J3Mgbm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgQWJzdHJhY3RWaWV3LmlkbCwgdGhlIEFic3Ry
YWN0VmlldyB0eXBlZGVmIG9mIERPTVdpbmRvdywgYW5kCisgICAgICAgIGFsbCBzcGVjaWFsIGNh
c2luZyBvZiB0aGUgbmFtZSBBYnN0cmFjdFZpZXcgaW4gdGhlIEpTIGNvZGUgZ2VuZXJhdG9yLgor
CisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlVJUmVxdWVzdEV2ZW50OjpjcmVhdGVGb3JCaW5kaW5ncyk6Cisg
ICAgICAgIChXZWJDb3JlOjpVSVJlcXVlc3RFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlVJUmVxdWVzdEV2ZW50OjpVSVJlcXVlc3RFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9p
bmRpZXVpL1VJUmVxdWVzdEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpVSVJlcXVlc3RFdmVu
dDo6cmVjZWl2ZXIpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAo
U2hvdWxkR2VuZXJhdGVUb0pTRGVjbGFyYXRpb24pOgorICAgICAgICAoR2V0SW1wbENsYXNzTmFt
ZSk6CisgICAgICAgICogZG9tL0NvbXBvc2l0aW9uRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRpb25FdmVudDo6Q29tcG9zaXRpb25FdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGlvbkV2ZW50Ojp+Q29tcG9zaXRpb25FdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGlvbkV2ZW50Ojppbml0Q29tcG9zaXRpb25FdmVudCk6CisgICAgICAgICogZG9t
L0NvbXBvc2l0aW9uRXZlbnQuaDoKKyAgICAgICAgKiBkb20vRm9jdXNFdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGb2N1c0V2ZW50Ojppc0ZvY3VzRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNFdmVudDo6Rm9jdXNFdmVudCk6CisgICAgICAgICogZG9tL0ZvY3VzRXZlbnQuaDoK
KyAgICAgICAgKiBkb20vS2V5Ym9hcmRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXli
b2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OktleWJvYXJkRXZl
bnQ6On5LZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6Omlu
aXRLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBkb20vS2V5Ym9hcmRFdmVudC5oOgorICAgICAg
ICAqIGRvbS9Nb3VzZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNy
ZWF0ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdXNlRXZlbnQ6On5Nb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNl
RXZlbnQ6OmluaXRNb3VzZUV2ZW50KToKKyAgICAgICAgKiBkb20vTW91c2VFdmVudC5oOgorICAg
ICAgICAqIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb3Vz
ZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGVudHNTY3JvbGxPZmZzZXQpOgorICAgICAgICAqIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oOgor
ICAgICAgICAqIGRvbS9TaW11bGF0ZWRDbGljay5jcHA6CisgICAgICAgICogZG9tL1RleHRFdmVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RXZlbnQ6OmNyZWF0ZUZvckJpbmRpbmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRFdmVudDo6Y3JlYXRlRm9yUGxhaW5UZXh0UGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dEV2ZW50OjpjcmVhdGVGb3JGcmFnbWVudFBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRFdmVudDo6Y3JlYXRlRm9yRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RXZlbnQ6OmNy
ZWF0ZUZvckRpY3RhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RXZlbnQ6OlRleHRFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RXZlbnQ6On5UZXh0RXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEV2ZW50Ojppbml0VGV4dEV2ZW50KToKKyAgICAgICAgKiBkb20vVGV4dEV2
ZW50Lmg6CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuaDoKKyAgICAgICAgKiBkb20vVUlFdmVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVSUV2ZW50OjpVSUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlVJRXZlbnQ6On5VSUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlVJRXZlbnQ6Omlu
aXRVSUV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
VUlFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlVJRXZlbnQ6OmNyZWF0ZUZvckJp
bmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlVJRXZlbnQ6OnZpZXcpOgorICAgICAgICAoV2Vi
Q29yZTo6VUlFdmVudDo6ZGV0YWlsKToKKyAgICAgICAgKiBkb20vVUlFdmVudFdpdGhLZXlTdGF0
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VUlFdmVudFdpdGhLZXlTdGF0ZTo6VUlFdmVudFdpdGhL
ZXlTdGF0ZSk6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2hlZWxFdmVudDo6V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50
Ojppbml0V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50Ojppbml0V2Vi
S2l0V2hlZWxFdmVudCk6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuaDoKKyAgICAgICAgKiBw
YWdlL0Fic3RyYWN0Vmlldy5pZGw6IFJlbW92ZWQuCisKIDIwMTYtMDgtMTkgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBMb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnMgc2hv
dWxkIHJldHVybiBhIEZyb3plbkFycmF5PFVTVlN0cmluZz4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNTEyLDcgKzUxMiw2IEBAIEpTX0JJTkRJ
TkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3Qu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlk
bCBcCi0gICAgJChXZWJDb3JlKS9wYWdlL0Fic3RyYWN0Vmlldy5pZGwgXAogICAgICQoV2ViQ29y
ZSkvcGFnZS9CYXJQcm9wLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0NyeXB0by5pZGwgXAog
ICAgICQoV2ViQ29yZSkvcGFnZS9ET01TZWxlY3Rpb24uaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kaWV1aS9VSVJlcXVlc3RFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmNwcAkocmV2aXNpb24g
MjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBSZWY8VUlSZXF1ZXN0RXZlbnQ+
IFVJUmVxdWVzdEV2ZW50OjpjcmVhCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVUlSZXF1ZXN0
RXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKIH0KIAotUmVmPFVJUmVxdWVzdEV2ZW50PiBVSVJl
cXVlc3RFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVz
LCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0VmlldyogdmlldywgaW50IGRldGFpbCwgUmVmUHRy
PEV2ZW50VGFyZ2V0PiYmIHJlY2VpdmVyKQorUmVmPFVJUmVxdWVzdEV2ZW50PiBVSVJlcXVlc3RF
dmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29s
IGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgUmVmUHRyPEV2ZW50VGFy
Z2V0PiYmIHJlY2VpdmVyKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVJUmVxdWVzdEV2
ZW50KHR5cGUsIGJ1YmJsZXMsIGNhbmNlbGFibGUsIHZpZXcsIGRldGFpbCwgV1RGTW92ZShyZWNl
aXZlcikpKTsKIH0KQEAgLTQ2LDcgKzQ2LDcgQEAgVUlSZXF1ZXN0RXZlbnQ6OlVJUmVxdWVzdEV2
ZW50KGNvbnN0IEF0bwogewogfQogICAgIAotVUlSZXF1ZXN0RXZlbnQ6OlVJUmVxdWVzdEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUs
IEFic3RyYWN0VmlldyogdmlldywgaW50IGRldGFpbCwgUmVmUHRyPEV2ZW50VGFyZ2V0PiYmIHJl
Y2VpdmVyKQorVUlSZXF1ZXN0RXZlbnQ6OlVJUmVxdWVzdEV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywg
aW50IGRldGFpbCwgUmVmUHRyPEV2ZW50VGFyZ2V0PiYmIHJlY2VpdmVyKQogICAgIDogVUlFdmVu
dCh0eXBlLCBidWJibGVzLCBjYW5jZWxhYmxlLCB2aWV3LCBkZXRhaWwpCiAgICAgLCBtX3JlY2Vp
dmVyKFdURk1vdmUocmVjZWl2ZXIpKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRpZXVpL1VJUmVxdWVzdEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmgJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kaWV1aS9VSVJlcXVlc3RFdmVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCBVSVJlcXVlc3RFdmVudEluaXQgOiBwdWJsaWMgVUlF
dmUKIAogY2xhc3MgVUlSZXF1ZXN0RXZlbnQgOiBwdWJsaWMgVUlFdmVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxVSVJlcXVlc3RFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0VmlldyosIGludCBk
ZXRhaWwsIFJlZlB0cjxFdmVudFRhcmdldD4mJiByZWNlaXZlcik7CisgICAgc3RhdGljIFJlZjxV
SVJlcXVlc3RFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJi
bGVzLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIFJlZlB0cjxFdmVu
dFRhcmdldD4mJiByZWNlaXZlcik7CiAgICAgc3RhdGljIFJlZjxVSVJlcXVlc3RFdmVudD4gY3Jl
YXRlRm9yQmluZGluZ3MoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFVJUmVx
dWVzdEV2ZW50SW5pdCYpOwogICAgIAogICAgIHZpcnR1YWwgflVJUmVxdWVzdEV2ZW50KCk7CkBA
IC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBFdmVudFRhcmdldCogcmVjZWl2ZXIoKSBjb25z
dCB7IHJldHVybiBtX3JlY2VpdmVyLmdldCgpOyB9CiAKIHByb3RlY3RlZDoKLSAgICBVSVJlcXVl
c3RFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywgYm9vbCBjYW5j
ZWxhYmxlLCBBYnN0cmFjdFZpZXcqLCBpbnQgZGV0YWlsLCBSZWZQdHI8RXZlbnRUYXJnZXQ+JiYg
cmVjZWl2ZXIpOworICAgIFVJUmVxdWVzdEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIFJl
ZlB0cjxFdmVudFRhcmdldD4mJiByZWNlaXZlcik7CiAgICAgCiAgICAgVUlSZXF1ZXN0RXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBVSVJlcXVlc3RFdmVudEluaXQmKTsKICAg
ICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA2MDcsNyArMTA2MDcs
NiBAQAogCQk4NTFFRTgyMDBBQkNBNTgxMDBBNkFBMzMgLyogRE9NUmFuZ2VFeGNlcHRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NUmFuZ2VFeGNlcHRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODUyMTdFMDAwQTVFQ0Q0NzAwREI4RDAwIC8qIFhT
TEltcG9ydFJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhT
TEltcG9ydFJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTIxN0UwMTBB
NUVDRDQ3MDBEQjhEMDAgLyogWFNMSW1wb3J0UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWFNMSW1wb3J0UnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk4NTM4RjAwMDBBRDcxNzcwMDA2QTgxRDEgLyogQWJzdHJhY3RWaWV3LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBBYnN0cmFjdFZpZXcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4NTM4RjAxNjBBRDcxOEQ4MDA2QTgxRDEgLyogRE9NQWJzdHJhY3RWaWV3LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01BYnN0cmFjdFZpZXcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODUzOEYwMTgwQUQ3MThEODAwNkE4MUQxIC8qIERPTUFic3Ry
YWN0Vmlld0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01B
YnN0cmFjdFZpZXdJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTM4
RjA1ODBBRDcyMkYxMDA2QTgxRDEgLyogRE9NUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODE1Niw3ICsxODE1NSw2IEBACiAJCQkJMThBNkNENkYwRDhGMjAyNTAwMURDM0NFIC8qIGlvcyAq
LywKIAkJCQk5M0MwOUE4MjBCMDY0RjA1MDA1QUJENEQgLyogbWFjICovLAogCQkJCTFBRjYyRUUx
MTREQTIyQTcwMDQxNTU2QyAvKiBzY3JvbGxpbmcgKi8sCi0JCQkJODUzOEYwMDAwQUQ3MTc3MDAw
NkE4MUQxIC8qIEFic3RyYWN0Vmlldy5pZGwgKi8sCiAJCQkJQkNGNDhDRTYxMzcwRDExNDAwNEU4
N0Q2IC8qIEFkanVzdFZpZXdTaXplT3JOb3QuaCAqLywKIAkJCQlDRURBMTJENjE1MkNBMUNCMDBE
OUUwOEQgLyogQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggKi8sCiAJCQkJNDU4MzBENEIxNjc5QjRG
ODAwQUNGOEMzIC8qIEF1dG9zY3JvbGxDb250cm9sbGVyLmNwcCAqLywKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVj
dC5wbQkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBA
QCBteSAkY2xhc3NOYW1lID0gIiI7CiBteSAlYmFzZVR5cGVIYXNoID0gKCJPYmplY3QiID0+IDEs
ICJOb2RlIiA9PiAxLCAiTm9kZUxpc3QiID0+IDEsICJOYW1lZE5vZGVNYXAiID0+IDEsICJET01J
bXBsZW1lbnRhdGlvbiIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIkV2ZW50IiA9PiAxLCAi
Q1NTUnVsZSIgPT4gMSwgIkNTU1ZhbHVlIiA9PiAxLCAiU3R5bGVTaGVldCIgPT4gMSwgIk1lZGlh
TGlzdCIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIkNvdW50ZXIiID0+IDEsICJSZWN0IiA9
PiAxLCAiUkdCQ29sb3IiID0+IDEsICJYUGF0aEV4cHJlc3Npb24iID0+IDEsICJYUGF0aFJlc3Vs
dCIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgIk5vZGVJdGVyYXRvciIgPT4gMSwgIlRyZWVX
YWxrZXIiID0+IDEsICJBYnN0cmFjdFZpZXciID0+IDEsICJCbG9iIiA9PiAxLCAiRE9NVG9rZW5M
aXN0IiA9PiAxLAorICAgICAgICAgICAgICAgICAgICAiTm9kZUl0ZXJhdG9yIiA9PiAxLCAiVHJl
ZVdhbGtlciIgPT4gMSwgIkJsb2IiID0+IDEsICJET01Ub2tlbkxpc3QiID0+IDEsCiAgICAgICAg
ICAgICAgICAgICAgICJIVE1MQ29sbGVjdGlvbiIgPT4gMSwgIlRleHRUcmFja0N1ZSIgPT4gMSwg
IkFuaW1hdGlvblRpbWVsaW5lIiA9PiAxLCAiQW5pbWF0aW9uRWZmZWN0IiA9PiAxKTsKIAogIyBP
bmx5IG9iamVjdHMgZGVyaXZlZCBmcm9tIE5vZGUgYXJlIHJlbGVhc2VkIGJ5IHRoZSBET00gb2Jq
ZWN0IGNhY2hlIGFuZCBjYW4gYmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyMDQ2NzkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBj
b3B5KQpAQCAtNDQyLDcgKzQ0Miw2IEBAIHN1YiBTaG91bGRHZW5lcmF0ZVRvSlNEZWNsYXJhdGlv
bgogCiAgICAgcmV0dXJuIDAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJT
dXBwcmVzc1RvSlNPYmplY3QifSk7CiAgICAgcmV0dXJuIDAgaWYgbm90IE5lZWRzSW1wbGVtZW50
YXRpb25DbGFzcygkaW50ZXJmYWNlKTsKLSAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT5uYW1l
IGVxICJBYnN0cmFjdFZpZXciOwogICAgIHJldHVybiAwIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21Qcm94eVRvSlNPYmplY3QifTsKICAgICByZXR1cm4gMSBpZiAo
ISRoYXNQYXJlbnQgb3IgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJh
dGVUb0pTT2JqZWN0In0gb3IgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bVRvSlNPYmplY3QifSk7CiAgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZS0+cGFyZW50ICYmICRp
bnRlcmZhY2UtPnBhcmVudCBlcSAiRXZlbnRUYXJnZXQiOwpAQCAtNzI5LDggKzcyOCw2IEBAIHN1
YiBHZXRJbXBsQ2xhc3NOYW1lCiB7CiAgICAgbXkgJG5hbWUgPSBzaGlmdDsKIAotICAgIHJldHVy
biAiRE9NV2luZG93IiBpZiAkbmFtZSBlcSAiQWJzdHJhY3RWaWV3IjsKLQogICAgIG15ICgkc3Zn
UHJvcGVydHlUeXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSwgJHN2Z05hdGl2ZVR5cGUpID0gR2V0
U1ZHUHJvcGVydHlUeXBlcygkbmFtZSk7CiAgICAgcmV0dXJuICRzdmdOYXRpdmVUeXBlIGlmICRz
dmdOYXRpdmVUeXBlOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRpb25FdmVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2l0aW9uRXZlbnQu
Y3BwCShyZXZpc2lvbiAyMDQ2NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRpb25F
dmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgQ29tcG9zaXRpb25FdmVu
dDo6Q29tcG9zaXRpb25FdmVudCgpCiB7CiB9CiAKLUNvbXBvc2l0aW9uRXZlbnQ6OkNvbXBvc2l0
aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBBYnN0cmFjdFZpZXcqIHZpZXcsIGNv
bnN0IFN0cmluZyYgZGF0YSkKK0NvbXBvc2l0aW9uRXZlbnQ6OkNvbXBvc2l0aW9uRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBET01XaW5kb3cqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0
YSkKICAgICA6IFVJRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwgdmlldywgMCkKICAgICAsIG1fZGF0
YShkYXRhKQogewpAQCAtNTEsNyArNTEsNyBAQCBDb21wb3NpdGlvbkV2ZW50Ojp+Q29tcG9zaXRp
b25FdmVudCgpCiB7CiB9CiAKLXZvaWQgQ29tcG9zaXRpb25FdmVudDo6aW5pdENvbXBvc2l0aW9u
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5j
ZWxhYmxlLCBBYnN0cmFjdFZpZXcqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSkKK3ZvaWQgQ29t
cG9zaXRpb25FdmVudDo6aW5pdENvbXBvc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsIGNv
bnN0IFN0cmluZyYgZGF0YSkKIHsKICAgICBpZiAoZGlzcGF0Y2hlZCgpKQogICAgICAgICByZXR1
cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRpb25FdmVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlvbkV2ZW50LmgJKHJldmlzaW9uIDIw
NDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlvbkV2ZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IENvbXBvc2l0aW9uRXZlbnRJbml0IDogVUlF
dmVudEluaQogCiBjbGFzcyBDb21wb3NpdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIFVJRXZlbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q29tcG9zaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgQWJzdHJhY3RWaWV3KiB2aWV3LCBjb25zdCBTdHJpbmcmIGRh
dGEpCisgICAgc3RhdGljIFJlZjxDb21wb3NpdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBET01XaW5kb3cqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSkKICAgICB7
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENvbXBvc2l0aW9uRXZlbnQodHlwZSwgdmll
dywgZGF0YSkpOwogICAgIH0KQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB+Q29tcG9zaXRpb25FdmVudCgpOwogCi0gICAgdm9pZCBpbml0Q29tcG9zaXRpb25FdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUs
IEFic3RyYWN0VmlldyosIGNvbnN0IFN0cmluZyYgZGF0YSk7CisgICAgdm9pZCBpbml0Q29tcG9z
aXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGNvbnN0IFN0cmluZyYgZGF0YSk7CiAKICAgICBTdHJp
bmcgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQogCkBAIC02Miw3ICs2Miw3IEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICBDb21wb3NpdGlvbkV2ZW50KCk7Ci0gICAgQ29tcG9zaXRp
b25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIEFic3RyYWN0VmlldyosIGNvbnN0IFN0
cmluZyYpOworICAgIENvbXBvc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBE
T01XaW5kb3cqLCBjb25zdCBTdHJpbmcmKTsKICAgICBDb21wb3NpdGlvbkV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQ29tcG9zaXRpb25FdmVudEluaXQmKTsKIAogICAgIGJv
b2wgaXNDb21wb3NpdGlvbkV2ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRm9jdXNFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0ZvY3VzRXZlbnQuY3BwCShyZXZpc2lvbiAyMDQ2NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
Rm9jdXNFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgYm9vbCBGb2N1
c0V2ZW50Ojppc0ZvY3VzRXZlbnQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1Gb2N1
c0V2ZW50OjpGb2N1c0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RWaWV3KiB2aWV3LCBpbnQgZGV0YWlsLCBSZWZQ
dHI8RXZlbnRUYXJnZXQ+JiYgcmVsYXRlZFRhcmdldCkKK0ZvY3VzRXZlbnQ6OkZvY3VzRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxl
LCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIFJlZlB0cjxFdmVudFRhcmdldD4mJiByZWxh
dGVkVGFyZ2V0KQogICAgIDogVUlFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHZp
ZXcsIGRldGFpbCkKICAgICAsIG1fcmVsYXRlZFRhcmdldChXVEZNb3ZlKHJlbGF0ZWRUYXJnZXQp
KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0ZvY3VzRXZlbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRm9jdXNFdmVudC5oCShyZXZpc2lvbiAyMDQ2NzkpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vRm9jdXNFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICsz
OSw3IEBAIHN0cnVjdCBGb2N1c0V2ZW50SW5pdCA6IHB1YmxpYyBVSUV2ZW50SW4KIAogY2xhc3Mg
Rm9jdXNFdmVudCBmaW5hbCA6IHB1YmxpYyBVSUV2ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPEZvY3VzRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2Fu
QnViYmxlLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0VmlldyogdmlldywgaW50IGRldGFpbCwg
UmVmUHRyPEV2ZW50VGFyZ2V0PiYmIHJlbGF0ZWRUYXJnZXQpCisgICAgc3RhdGljIFJlZjxGb2N1
c0V2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIFJlZlB0cjxFdmVu
dFRhcmdldD4mJiByZWxhdGVkVGFyZ2V0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRm9jdXNFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHZpZXcsIGRldGFp
bCwgV1RGTW92ZShyZWxhdGVkVGFyZ2V0KSkpOwogICAgIH0KQEAgLTU1LDcgKzU1LDcgQEAgcHVi
bGljOgogICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6Ci0gICAgRm9jdXNFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJv
b2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0VmlldyosIGludCwgUmVmUHRy
PEV2ZW50VGFyZ2V0PiYmKTsKKyAgICBGb2N1c0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgRE9NV2luZG93KiwgaW50LCBSZWZQ
dHI8RXZlbnRUYXJnZXQ+JiYpOwogICAgIEZvY3VzRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBjb25zdCBGb2N1c0V2ZW50SW5pdCYpOwogCiAgICAgYm9vbCBpc0ZvY3VzRXZlbnQoKSBj
b25zdCBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAJKHJl
dmlzaW9uIDIwNDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIEtleWJvYXJkRXZlbnQ6OktleWJvYXJk
RXZlbnQoKQogewogfQogCi1LZXlib2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KGNvbnN0IFBsYXRm
b3JtS2V5Ym9hcmRFdmVudCYga2V5LCBBYnN0cmFjdFZpZXcqIHZpZXcpCitLZXlib2FyZEV2ZW50
OjpLZXlib2FyZEV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5LCBET01XaW5k
b3cqIHZpZXcpCiAgICAgOiBVSUV2ZW50V2l0aEtleVN0YXRlKGV2ZW50VHlwZUZvcktleWJvYXJk
RXZlbnRUeXBlKGtleS50eXBlKCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCB0
cnVlLCBrZXkudGltZXN0YW1wKCksIHZpZXcsIDAsIGtleS5jdHJsS2V5KCksIGtleS5hbHRLZXko
KSwga2V5LnNoaWZ0S2V5KCksIGtleS5tZXRhS2V5KCkpCiAgICAgLCBtX2tleUV2ZW50KHN0ZDo6
bWFrZV91bmlxdWU8UGxhdGZvcm1LZXlib2FyZEV2ZW50PihrZXkpKQpAQCAtMTM5LDcgKzEzOSw3
IEBAIEtleWJvYXJkRXZlbnQ6On5LZXlib2FyZEV2ZW50KCkKIHsKIH0KIAotdm9pZCBLZXlib2Fy
ZEV2ZW50Ojppbml0S2V5Ym9hcmRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0VmlldyogdmlldywKK3ZvaWQgS2V5
Ym9hcmRFdmVudDo6aW5pdEtleWJvYXJkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBi
b29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyAma2V5SWRlbnRpZmll
ciwgdW5zaWduZWQgbG9jYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtl
eSwgYm9vbCBhbHRHcmFwaEtleSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2Fy
ZEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQu
aAkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIERP
TV9LRVlfTE9DQVRJT05fSk9ZU1RJQ0sgICA9IDB4MDUKICAgICB9OwogCi0gICAgc3RhdGljIFJl
ZjxLZXlib2FyZEV2ZW50PiBjcmVhdGUoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBwbGF0
Zm9ybUV2ZW50LCBBYnN0cmFjdFZpZXcqIHZpZXcpCisgICAgc3RhdGljIFJlZjxLZXlib2FyZEV2
ZW50PiBjcmVhdGUoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBE
T01XaW5kb3cqIHZpZXcpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBLZXli
b2FyZEV2ZW50KHBsYXRmb3JtRXZlbnQsIHZpZXcpKTsKICAgICB9CkBAIC03NSw3ICs3NSw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfktleWJvYXJkRXZlbnQoKTsKICAgICAKLSAgICB2b2lk
IGluaXRLZXlib2FyZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RWaWV3KiwKKyAgICB2b2lkIGluaXRLZXlib2Fy
ZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2Fu
Y2VsYWJsZSwgRE9NV2luZG93KiwKICAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVy
LCB1bnNpZ25lZCBsb2NhdGlvbiwKICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5ID0gZmFsc2UpOwog
ICAgIApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBXRUJDT1JF
X0VYUE9SVCBLZXlib2FyZEV2ZW50KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgS2V5Ym9hcmRFdmVu
dChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmLCBBYnN0cmFjdFZpZXcqKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBLZXlib2FyZEV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYsIERP
TVdpbmRvdyopOwogICAgIEtleWJvYXJkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3Qg
S2V5Ym9hcmRFdmVudEluaXQmKTsKICAgICAvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIGJl
IGdldCByaWRlIG9mIGluIHRoZSBmdXR1cmUuCiAgICAgLy8gRE8gTk9UIFVTRSBJVCEKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBA
QCBSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlRm9yQmluCiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTW91c2VFdmVudCh0eXBlLCBpbml0aWFsaXplcikpOwogfQogCi1SZWY8TW91
c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBBYnN0cmFjdFZpZXcqIHZpZXcsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIGlu
dCBkZXRhaWwsIFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRhcmdldCkKK1JlZjxNb3VzZUV2ZW50
PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdp
bmRvdyogdmlldywgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgaW50IGRldGFpbCwg
UGFzc1JlZlB0cjxOb2RlPiByZWxhdGVkVGFyZ2V0KQogewogICAgIGJvb2wgaXNNb3VzZUVudGVy
T3JMZWF2ZSA9IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2VlbnRlckV2ZW50IHx8IGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2VsZWF2ZUV2ZW50OwogICAgIGJvb2wgaXNDYW5j
ZWxhYmxlID0gZXZlbnRUeXBlICE9IGV2ZW50TmFtZXMoKS5tb3VzZW1vdmVFdmVudCAmJiAhaXNN
b3VzZUVudGVyT3JMZWF2ZTsKQEAgLTUzLDcgKzUzLDcgQEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNl
RXZlbnQ6OmNyZWF0ZShjb25zdAogICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3JjZSgp
LCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2ZW50PiBNb3Vz
ZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBBYnN0cmFjdFZpZXcqIHZpZXcsIGlu
dCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVks
CitSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwg
RE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGlu
dCBwYWdlWCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgaW50IG1v
dmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgpAQCAtNjgsNyArNjgsNyBAQCBSZWY8TW91
c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0CiAgICAgICAgIGN0cmxLZXksIGFsdEtl
eSwgc2hpZnRLZXksIG1ldGFLZXksIGJ1dHRvbiwgcmVsYXRlZFRhcmdldCwgZm9yY2UsIHN5bnRo
ZXRpY0NsaWNrVHlwZSwgMCwgZmFsc2UpOwogfQogCi1SZWY8TW91c2VFdmVudD4gTW91c2VFdmVu
dDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wg
Y2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgQWJzdHJhY3RWaWV3KiB2aWV3LCBpbnQgZGV0
YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAorUmVm
PE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdp
bmRvdyogdmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFn
ZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGludCBtb3ZlbWVu
dFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAgLTgyLDcgKzgyLDcgQEAgUmVmPE1vdXNlRXZl
bnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdAogICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNo
aWZ0S2V5LCBtZXRhS2V5LCBidXR0b24sIHJlbGF0ZWRUYXJnZXQsIGZvcmNlLCBzeW50aGV0aWND
bGlja1R5cGUsIGRhdGFUcmFuc2ZlciwgaXNTaW11bGF0ZWQpKTsKIH0KIAotUmVmPE1vdXNlRXZl
bnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9v
bCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RWaWV3KiB2aWV3LCBpbnQgZGV0
YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwg
Ym9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1
bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwg
UGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkKK1JlZjxNb3VzZUV2ZW50PiBN
b3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2Fu
QnViYmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgaW50
IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwgaW50IGNsaWVudFksIGJvb2wgY3Ry
bEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5zaWduZWQg
c2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIFBhc3NSZWZQ
dHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTW91c2VFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdmlldywgZGV0
YWlsLCBzY3JlZW5YLCBzY3JlZW5ZLCBjbGllbnRYLCBjbGllbnRZLCBjdHJsS2V5LCBhbHRLZXks
IHNoaWZ0S2V5LCBtZXRhS2V5LCBidXR0b24sIHN5bnRoZXRpY0NsaWNrVHlwZSwgcmVsYXRlZFRh
cmdldCkpOwogfQpAQCAtOTMsNyArOTMsNyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KCkKIHsK
IH0KIAotTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgQWJz
dHJhY3RWaWV3KiB2aWV3LAorTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRp
bWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGV0
YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb3ZlbWVu
dFgsIGludCBtb3ZlbWVudFksCkBAIC0xMTYsNyArMTE2LDcgQEAgTW91c2VFdmVudDo6TW91c2VF
dmVudChjb25zdCBBdG9taWNTdHJpbgogewogfQogCi1Nb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBBYnN0cmFjdFZpZXcqIHZpZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5
LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5z
aWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tUeXBlLCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiBy
ZWxhdGVkVGFyZ2V0KQorTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgRE9NV2luZG93KiB2
aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBp
bnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRp
Y0NsaWNrVHlwZSwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkKICAgICA6
IE1vdXNlUmVsYXRlZEV2ZW50KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBXVEY6
OmN1cnJlbnRUaW1lKCksIHZpZXcsIGRldGFpbCwgSW50UG9pbnQoc2NyZWVuWCwgc2NyZWVuWSks
IEludFBvaW50KDAsIDApLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIEludFBv
aW50KDAsIDApLApAQCAtMTQ0LDcgKzE0NCw3IEBAIE1vdXNlRXZlbnQ6On5Nb3VzZUV2ZW50KCkK
IHsKIH0KIAotdm9pZCBNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0Vmlldyog
dmlldywKK3ZvaWQgTW91c2VFdmVudDo6aW5pdE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGludCBzY3JlZW5Y
LCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5
LCBib29sIG1ldGFLZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IHNob3J0IGJ1dHRvbiwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL01vdXNlRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBz
dHJ1Y3QgTW91c2VFdmVudEluaXQgOiBwdWJsaWMgTW91c2VSZWxhCiAKIGNsYXNzIE1vdXNlRXZl
bnQgOiBwdWJsaWMgTW91c2VSZWxhdGVkRXZlbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgQWJzdHJhY3RWaWV3KiwKKyAg
ICBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdp
bmRvdyosCiAgICAgICAgIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50
IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgaW50
IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAg
ICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFL
ZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwKICAgICAgICAgUGFzc1JlZlB0cjxFdmVudFRhcmdl
dD4gcmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWND
bGlja1R5cGUpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5j
ZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBBYnN0cmFjdFZpZXcqLAorICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9N
V2luZG93KiwKICAgICAgICAgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBp
bnQgcGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBp
bnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLApAQCAtNTYsOSArNTYsOSBAQCBwdWJsaWM6CiAg
ICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0
YUtleSwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLAogICAgICAgICBQYXNzUmVmUHRyPEV2ZW50VGFy
Z2V0PiByZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRp
Y0NsaWNrVHlwZSwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+LCBib29sIGlzU2ltdWxhdGVkID0g
ZmFsc2UpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVh
dGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEFic3RyYWN0VmlldyosIGNvbnN0IFBs
YXRmb3JtTW91c2VFdmVudCYsIGludCBkZXRhaWwsIFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRh
cmdldCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyosIGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYsIGludCBkZXRhaWwsIFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRhcmdldCk7
CiAKLSAgICBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RWaWV3
KiwKKyAgICBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgRE9NV2luZG93KiwK
ICAgICAgICAgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50
WCwgaW50IGNsaWVudFksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wg
c2hpZnRLZXksIGJvb2wgbWV0YUtleSwKICAgICAgICAgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1
bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+
IHJlbGF0ZWRUYXJnZXQpOwpAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IH5Nb3VzZUV2ZW50KCk7CiAKLSAgICB2b2lkIGluaXRNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RWaWV3
KiwKKyAgICB2b2lkIGluaXRNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9v
bCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgRE9NV2luZG93KiwKICAgICAgICAgaW50IGRl
dGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwgaW50IGNsaWVudFks
CiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wg
bWV0YUtleSwKICAgICAgICAgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCBQYXNzUmVmUHRyPEV2ZW50
VGFyZ2V0PiByZWxhdGVkVGFyZ2V0KTsKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAg
UmVmPEV2ZW50PiBjbG9uZUZvcihIVE1MSUZyYW1lRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwog
CiBwcm90ZWN0ZWQ6Ci0gICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJv
b2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIEFic3RyYWN0
VmlldyosCisgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2Fu
QnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAg
ICAgICAgIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBp
bnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgaW50IG1vdmVtZW50
WCwgaW50IG1vdmVtZW50WSwKQEAgLTExMyw3ICsxMTMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwg
dW5zaWduZWQgc2hvcnQgYnV0dG9uLAogICAgICAgICBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiBy
ZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNr
VHlwZSwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+LCBib29sIGlzU2ltdWxhdGVkKTsKIAotICAg
IE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9v
bCBjYW5jZWxhYmxlLCBBYnN0cmFjdFZpZXcqLAorICAgIE1vdXNlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cq
LAogICAgICAgICBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGll
bnRYLCBpbnQgY2xpZW50WSwKICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9v
bCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LAogICAgICAgICB1bnNpZ25lZCBzaG9ydCBidXR0b24s
IHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgUGFzc1JlZlB0cjxFdmVudFRhcmdl
dD4gcmVsYXRlZFRhcmdldCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVk
RXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRF
dmVudC5jcHAJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJl
bGF0ZWRFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDExICszNywxMSBAQCBNb3VzZVJl
bGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQoKQogewogfQogCi1zdGF0aWMgTGF5b3V0U2l6
ZSBjb250ZW50c1Njcm9sbE9mZnNldChBYnN0cmFjdFZpZXcqIGFic3RyYWN0VmlldykKK3N0YXRp
YyBMYXlvdXRTaXplIGNvbnRlbnRzU2Nyb2xsT2Zmc2V0KERPTVdpbmRvdyogRE9NV2luZG93KQog
ewotICAgIGlmICghYWJzdHJhY3RWaWV3KQorICAgIGlmICghRE9NV2luZG93KQogICAgICAgICBy
ZXR1cm4gTGF5b3V0U2l6ZSgpOwotICAgIEZyYW1lKiBmcmFtZSA9IGFic3RyYWN0Vmlldy0+ZnJh
bWUoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBET01XaW5kb3ctPmZyYW1lKCk7CiAgICAgaWYgKCFm
cmFtZSkKICAgICAgICAgcmV0dXJuIExheW91dFNpemUoKTsKICAgICBGcmFtZVZpZXcqIGZyYW1l
VmlldyA9IGZyYW1lLT52aWV3KCk7CkBAIC01NSwxMyArNTUsMTMgQEAgc3RhdGljIExheW91dFNp
emUgY29udGVudHNTY3JvbGxPZmZzZXQoQQogI2VuZGlmCiB9CiAKLU1vdXNlUmVsYXRlZEV2ZW50
OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgQWJzdHJhY3RWaWV3
KiBhYnN0cmFjdFZpZXcsCitNb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3Jl
ZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQ
T0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
SW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCiAjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBi
b29sIG1ldGFLZXksIGJvb2wgaXNTaW11bGF0ZWQpCi0gICAgOiBVSUV2ZW50V2l0aEtleVN0YXRl
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIGFic3RyYWN0Vmll
dywgZGV0YWlsLCBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5KQorICAgIDogVUlF
dmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0
YW1wLCBET01XaW5kb3csIGRldGFpbCwgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtl
eSkKICAgICAsIG1fc2NyZWVuTG9jYXRpb24oc2NyZWVuTG9jYXRpb24pCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAsIG1fbW92ZW1lbnREZWx0YShtb3ZlbWVudERlbHRhKQpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgJKHJldmlzaW9uIDIwNDY3OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1vdXNlUmVsYXRlZEV2
ZW50KCk7Ci0gICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBi
b29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBBYnN0cmFj
dFZpZXcqLAorICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2lu
ZG93KiwKICAgICAgICAgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9u
LCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDEzICsz
OCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNpbXVsYXRlZE1vdXNlRXZlbnQg
ZmluYWwgOiBwdWJsaWMgTW91c2VFdmVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTaW11
bGF0ZWRNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEFi
c3RyYWN0VmlldyogdmlldywgUmVmUHRyPEV2ZW50PiYmIHVuZGVybHlpbmdFdmVudCwgRWxlbWVu
dCYgdGFyZ2V0KQorICAgIHN0YXRpYyBSZWY8U2ltdWxhdGVkTW91c2VFdmVudD4gY3JlYXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBET01XaW5kb3cqIHZpZXcsIFJlZlB0cjxFdmVu
dD4mJiB1bmRlcmx5aW5nRXZlbnQsIEVsZW1lbnQmIHRhcmdldCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNpbXVsYXRlZE1vdXNlRXZlbnQoZXZlbnRUeXBlLCB2aWV3LCBX
VEZNb3ZlKHVuZGVybHlpbmdFdmVudCksIHRhcmdldCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAg
ICBTaW11bGF0ZWRNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBBYnN0
cmFjdFZpZXcqIHZpZXcsIFJlZlB0cjxFdmVudD4mJiB1bmRlcmx5aW5nRXZlbnQsIEVsZW1lbnQm
IHRhcmdldCkKKyAgICBTaW11bGF0ZWRNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBET01XaW5kb3cqIHZpZXcsIFJlZlB0cjxFdmVudD4mJiB1bmRlcmx5aW5nRXZlbnQs
IEVsZW1lbnQmIHRhcmdldCkKICAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1ZSwg
dHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6IGN1
cnJlbnRUaW1lKCksIHZpZXcsIDAsIDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKICAgICAgICAgICAgICAgICAgICAgIDAsIDAsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
VGV4dEV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50
LmNwcAkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDI3ICszOCwyNyBAQCBSZWY8VGV4dEV2ZW50PiBUZXh0
RXZlbnQ6OmNyZWF0ZUZvckJpbmRpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dEV2ZW50
KTsKIH0KIAotUmVmPFRleHRFdmVudD4gVGV4dEV2ZW50OjpjcmVhdGUoQWJzdHJhY3RWaWV3KiB2
aWV3LCBjb25zdCBTdHJpbmcmIGRhdGEsIFRleHRFdmVudElucHV0VHlwZSBpbnB1dFR5cGUpCitS
ZWY8VGV4dEV2ZW50PiBUZXh0RXZlbnQ6OmNyZWF0ZShET01XaW5kb3cqIHZpZXcsIGNvbnN0IFN0
cmluZyYgZGF0YSwgVGV4dEV2ZW50SW5wdXRUeXBlIGlucHV0VHlwZSkKIHsKICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUZXh0RXZlbnQodmlldywgZGF0YSwgaW5wdXRUeXBlKSk7CiB9CiAKLVJl
ZjxUZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlRm9yUGxhaW5UZXh0UGFzdGUoQWJzdHJhY3RW
aWV3KiB2aWV3LCBjb25zdCBTdHJpbmcmIGRhdGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNlKQor
UmVmPFRleHRFdmVudD4gVGV4dEV2ZW50OjpjcmVhdGVGb3JQbGFpblRleHRQYXN0ZShET01XaW5k
b3cqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSwgYm9vbCBzaG91bGRTbWFydFJlcGxhY2UpCiB7
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dEV2ZW50KHZpZXcsIGRhdGEsIDAsIHNob3Vs
ZFNtYXJ0UmVwbGFjZSwgZmFsc2UsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9j
a3F1b3RlKSk7CiB9CiAKLVJlZjxUZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlRm9yRnJhZ21l
bnRQYXN0ZShBYnN0cmFjdFZpZXcqIHZpZXcsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYmIGRh
dGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNlLCBib29sIHNob3VsZE1hdGNoU3R5bGUsIE1haWxC
bG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKK1JlZjxUZXh0RXZlbnQ+
IFRleHRFdmVudDo6Y3JlYXRlRm9yRnJhZ21lbnRQYXN0ZShET01XaW5kb3cqIHZpZXcsIFJlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiYmIGRhdGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNlLCBib29s
IHNob3VsZE1hdGNoU3R5bGUsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVI
YW5kbGluZykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0RXZlbnQodmlldywgZW1w
dHlTdHJpbmcoKSwgV1RGTW92ZShkYXRhKSwgc2hvdWxkU21hcnRSZXBsYWNlLCBzaG91bGRNYXRj
aFN0eWxlLCBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKSk7CiB9CiAKLVJlZjxUZXh0RXZlbnQ+IFRl
eHRFdmVudDo6Y3JlYXRlRm9yRHJvcChBYnN0cmFjdFZpZXcqIHZpZXcsIGNvbnN0IFN0cmluZyYg
ZGF0YSkKK1JlZjxUZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlRm9yRHJvcChET01XaW5kb3cq
IHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBU
ZXh0RXZlbnQodmlldywgZGF0YSwgVGV4dEV2ZW50SW5wdXREcm9wKSk7CiB9CiAKLVJlZjxUZXh0
RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlRm9yRGljdGF0aW9uKEFic3RyYWN0Vmlldyogdmlldywg
Y29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBk
aWN0YXRpb25BbHRlcm5hdGl2ZXMpCitSZWY8VGV4dEV2ZW50PiBUZXh0RXZlbnQ6OmNyZWF0ZUZv
ckRpY3RhdGlvbihET01XaW5kb3cqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgVmVj
dG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKQogewogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRFdmVudCh2aWV3LCBkYXRhLCBkaWN0YXRpb25BbHRl
cm5hdGl2ZXMpKTsKIH0KQEAgLTcxLDcgKzcxLDcgQEAgVGV4dEV2ZW50OjpUZXh0RXZlbnQoKQog
ewogfQogCi1UZXh0RXZlbnQ6OlRleHRFdmVudChBYnN0cmFjdFZpZXcqIHZpZXcsIGNvbnN0IFN0
cmluZyYgZGF0YSwgVGV4dEV2ZW50SW5wdXRUeXBlIGlucHV0VHlwZSkKK1RleHRFdmVudDo6VGV4
dEV2ZW50KERPTVdpbmRvdyogdmlldywgY29uc3QgU3RyaW5nJiBkYXRhLCBUZXh0RXZlbnRJbnB1
dFR5cGUgaW5wdXRUeXBlKQogICAgIDogVUlFdmVudChldmVudE5hbWVzKCkudGV4dElucHV0RXZl
bnQsIHRydWUsIHRydWUsIHZpZXcsIDApCiAgICAgLCBtX2lucHV0VHlwZShpbnB1dFR5cGUpCiAg
ICAgLCBtX2RhdGEoZGF0YSkKQEAgLTgxLDcgKzgxLDcgQEAgVGV4dEV2ZW50OjpUZXh0RXZlbnQo
QWJzdHJhY3RWaWV3KiB2aWV3LAogewogfQogCi1UZXh0RXZlbnQ6OlRleHRFdmVudChBYnN0cmFj
dFZpZXcqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSwgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
JiYgcGFzdGluZ0ZyYWdtZW50LCBib29sIHNob3VsZFNtYXJ0UmVwbGFjZSwgYm9vbCBzaG91bGRN
YXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcp
CitUZXh0RXZlbnQ6OlRleHRFdmVudChET01XaW5kb3cqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0
YSwgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+JiYgcGFzdGluZ0ZyYWdtZW50LCBib29sIHNob3Vs
ZFNtYXJ0UmVwbGFjZSwgYm9vbCBzaG91bGRNYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRs
aW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCiAgICAgOiBVSUV2ZW50KGV2ZW50TmFtZXMoKS50
ZXh0SW5wdXRFdmVudCwgdHJ1ZSwgdHJ1ZSwgdmlldywgMCkKICAgICAsIG1faW5wdXRUeXBlKFRl
eHRFdmVudElucHV0UGFzdGUpCiAgICAgLCBtX2RhdGEoZGF0YSkKQEAgLTkyLDcgKzkyLDcgQEAg
VGV4dEV2ZW50OjpUZXh0RXZlbnQoQWJzdHJhY3RWaWV3KiB2aWV3LAogewogfQogCi1UZXh0RXZl
bnQ6OlRleHRFdmVudChBYnN0cmFjdFZpZXcqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSwgY29u
c3QgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKQor
VGV4dEV2ZW50OjpUZXh0RXZlbnQoRE9NV2luZG93KiB2aWV3LCBjb25zdCBTdHJpbmcmIGRhdGEs
IGNvbnN0IFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGRpY3RhdGlvbkFsdGVybmF0aXZl
cykKICAgICA6IFVJRXZlbnQoZXZlbnROYW1lcygpLnRleHRJbnB1dEV2ZW50LCB0cnVlLCB0cnVl
LCB2aWV3LCAwKQogICAgICwgbV9pbnB1dFR5cGUoVGV4dEV2ZW50SW5wdXREaWN0YXRpb24pCiAg
ICAgLCBtX2RhdGEoZGF0YSkKQEAgLTEwNyw3ICsxMDcsNyBAQCBUZXh0RXZlbnQ6On5UZXh0RXZl
bnQoKQogewogfQogCi12b2lkIFRleHRFdmVudDo6aW5pdFRleHRFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0Vmll
dyogdmlldywgY29uc3QgU3RyaW5nJiBkYXRhKQordm9pZCBUZXh0RXZlbnQ6OmluaXRUZXh0RXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBET01XaW5kb3cqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSkKIHsKICAgICBpZiAoZGlz
cGF0Y2hlZCgpKQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vVGV4
dEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5oCShy
ZXZpc2lvbiAyMDQ2NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM5LDE2ICszOSwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBj
bGFzcyBUZXh0RXZlbnQgZmluYWwgOiBwdWJsaWMgVUlFdmVudCB7CiAgICAgcHVibGljOgotICAg
ICAgICBzdGF0aWMgUmVmPFRleHRFdmVudD4gY3JlYXRlKEFic3RyYWN0VmlldyosIGNvbnN0IFN0
cmluZyYgZGF0YSwgVGV4dEV2ZW50SW5wdXRUeXBlID0gVGV4dEV2ZW50SW5wdXRLZXlib2FyZCk7
CisgICAgICAgIHN0YXRpYyBSZWY8VGV4dEV2ZW50PiBjcmVhdGUoRE9NV2luZG93KiwgY29uc3Qg
U3RyaW5nJiBkYXRhLCBUZXh0RXZlbnRJbnB1dFR5cGUgPSBUZXh0RXZlbnRJbnB1dEtleWJvYXJk
KTsKICAgICAgICAgc3RhdGljIFJlZjxUZXh0RXZlbnQ+IGNyZWF0ZUZvckJpbmRpbmdzKCk7Ci0g
ICAgICAgIHN0YXRpYyBSZWY8VGV4dEV2ZW50PiBjcmVhdGVGb3JQbGFpblRleHRQYXN0ZShBYnN0
cmFjdFZpZXcqLCBjb25zdCBTdHJpbmcmIGRhdGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNlKTsK
LSAgICAgICAgc3RhdGljIFJlZjxUZXh0RXZlbnQ+IGNyZWF0ZUZvckZyYWdtZW50UGFzdGUoQWJz
dHJhY3RWaWV3KiwgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+JiYgZGF0YSwgYm9vbCBzaG91bGRT
bWFydFJlcGxhY2UsIGJvb2wgc2hvdWxkTWF0Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGlu
Zyk7Ci0gICAgICAgIHN0YXRpYyBSZWY8VGV4dEV2ZW50PiBjcmVhdGVGb3JEcm9wKEFic3RyYWN0
VmlldyosIGNvbnN0IFN0cmluZyYgZGF0YSk7Ci0gICAgICAgIHN0YXRpYyBSZWY8VGV4dEV2ZW50
PiBjcmVhdGVGb3JEaWN0YXRpb24oQWJzdHJhY3RWaWV3KiwgY29uc3QgU3RyaW5nJiBkYXRhLCBj
b25zdCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBkaWN0YXRpb25BbHRlcm5hdGl2ZXMp
OworICAgICAgICBzdGF0aWMgUmVmPFRleHRFdmVudD4gY3JlYXRlRm9yUGxhaW5UZXh0UGFzdGUo
RE9NV2luZG93KiwgY29uc3QgU3RyaW5nJiBkYXRhLCBib29sIHNob3VsZFNtYXJ0UmVwbGFjZSk7
CisgICAgICAgIHN0YXRpYyBSZWY8VGV4dEV2ZW50PiBjcmVhdGVGb3JGcmFnbWVudFBhc3RlKERP
TVdpbmRvdyosIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYmIGRhdGEsIGJvb2wgc2hvdWxkU21h
cnRSZXBsYWNlLCBib29sIHNob3VsZE1hdGNoU3R5bGUsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcp
OworICAgICAgICBzdGF0aWMgUmVmPFRleHRFdmVudD4gY3JlYXRlRm9yRHJvcChET01XaW5kb3cq
LCBjb25zdCBTdHJpbmcmIGRhdGEpOworICAgICAgICBzdGF0aWMgUmVmPFRleHRFdmVudD4gY3Jl
YXRlRm9yRGljdGF0aW9uKERPTVdpbmRvdyosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgVmVj
dG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTsKIAogICAg
ICAgICB2aXJ0dWFsIH5UZXh0RXZlbnQoKTsKICAgICAKLSAgICAgICAgdm9pZCBpbml0VGV4dEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgQWJzdHJhY3RWaWV3KiwgY29uc3QgU3RyaW5nJiBkYXRhKTsKKyAgICAgICAgdm9pZCBp
bml0VGV4dEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJv
b2wgY2FuY2VsYWJsZSwgRE9NV2luZG93KiwgY29uc3QgU3RyaW5nJiBkYXRhKTsKICAgICAKICAg
ICAgICAgU3RyaW5nIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KIApAQCAtNzAsOSAr
NzAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgVGV4dEV2
ZW50KCk7CiAKLSAgICAgICAgVGV4dEV2ZW50KEFic3RyYWN0VmlldyosIGNvbnN0IFN0cmluZyYg
ZGF0YSwgVGV4dEV2ZW50SW5wdXRUeXBlID0gVGV4dEV2ZW50SW5wdXRLZXlib2FyZCk7Ci0gICAg
ICAgIFRleHRFdmVudChBYnN0cmFjdFZpZXcqLCBjb25zdCBTdHJpbmcmIGRhdGEsIFJlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiYmLCBib29sIHNob3VsZFNtYXJ0UmVwbGFjZSwgYm9vbCBzaG91bGRN
YXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nKTsKLSAgICAgICAgVGV4dEV2ZW50KEFi
c3RyYWN0VmlldyosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgVmVjdG9yPERpY3RhdGlvbkFs
dGVybmF0aXZlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTsKKyAgICAgICAgVGV4dEV2ZW50KERP
TVdpbmRvdyosIGNvbnN0IFN0cmluZyYgZGF0YSwgVGV4dEV2ZW50SW5wdXRUeXBlID0gVGV4dEV2
ZW50SW5wdXRLZXlib2FyZCk7CisgICAgICAgIFRleHRFdmVudChET01XaW5kb3cqLCBjb25zdCBT
dHJpbmcmIGRhdGEsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYmLCBib29sIHNob3VsZFNtYXJ0
UmVwbGFjZSwgYm9vbCBzaG91bGRNYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nKTsK
KyAgICAgICAgVGV4dEV2ZW50KERPTVdpbmRvdyosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3Qg
VmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTsKIAog
ICAgICAgICBib29sIGlzVGV4dEV2ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL1RvdWNoRXZlbnQuaAkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L1RvdWNoRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgUmVmPFRvdWNoRXZlbnQ+IGNyZWF0ZShUb3VjaExpc3QqIHRvdWNoZXMsIAog
ICAgICAgICAgICAgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLCBUb3VjaExpc3QqIGNoYW5nZWRU
b3VjaGVzLCAKLSAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQWJzdHJhY3RW
aWV3KiB2aWV3LAorICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBET01XaW5k
b3cqIHZpZXcsCiAgICAgICAgICAgICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdl
WCwgaW50IHBhZ2VZLAogICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9v
bCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQogICAgIHsKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBpbml0VG91Y2hFdmVudChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlz
dCogdGFyZ2V0VG91Y2hlcywKICAgICAgICAgICAgIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMs
IGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgCi0gICAgICAgICAgICBBYnN0cmFjdFZpZXcqLCBp
bnQgc2NyZWVuWCwgaW50IHNjcmVlblksCisgICAgICAgICAgICBET01XaW5kb3cqLCBpbnQgc2Ny
ZWVuWCwgaW50IHNjcmVlblksCiAgICAgICAgICAgICBpbnQgY2xpZW50WCwgaW50IGNsaWVudFks
CiAgICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBi
b29sIG1ldGFLZXkpOwogCkBAIC04Nyw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgVG91Y2hFdmVu
dCgpOwogICAgIFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdl
dFRvdWNoZXMsCiAgICAgICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsCi0gICAgICAgICAgICBBYnN0cmFjdFZpZXcqLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwKKyAgICAgICAgICAgIERPTVdpbmRvdyosIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLAogICAgICAgICAgICAgaW50IHBhZ2VZLAog
ICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5KTsKICAgICBUb3VjaEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFRv
dWNoRXZlbnRJbml0Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCShyZXZpc2lvbiAyMDQ2
NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDE0ICszMiwxNCBAQCBVSUV2ZW50OjpVSUV2ZW50KCkKIHsKIH0KIAotVUlFdmVudDo6VUlF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJv
b2wgY2FuY2VsYWJsZUFyZywgQWJzdHJhY3RWaWV3KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQor
VUlFdmVudDo6VUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5C
dWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgRE9NV2luZG93KiB2aWV3QXJnLCBpbnQgZGV0
YWlsQXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVB
cmcpCiAgICAgLCBtX3ZpZXcodmlld0FyZykKICAgICAsIG1fZGV0YWlsKGRldGFpbEFyZykKIHsK
IH0KIAotVUlFdmVudDo6VUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9v
bCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgZG91YmxlIHRpbWVzdGFtcCwgQWJz
dHJhY3RWaWV3KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQorVUlFdmVudDo6VUlFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2Vs
YWJsZUFyZywgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3QXJnLCBpbnQgZGV0YWls
QXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcs
IHRpbWVzdGFtcCkKICAgICAsIG1fdmlldyh2aWV3QXJnKQogICAgICwgbV9kZXRhaWwoZGV0YWls
QXJnKQpAQCAtNTcsNyArNTcsNyBAQCBVSUV2ZW50Ojp+VUlFdmVudCgpCiB7CiB9CiAKLXZvaWQg
VUlFdmVudDo6aW5pdFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlQXJnLCBib29sIGNh
bkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBBYnN0cmFjdFZpZXcqIHZpZXdBcmcsIGlu
dCBkZXRhaWxBcmcpCit2b2lkIFVJRXZlbnQ6OmluaXRVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZUFyZywgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgRE9NV2lu
ZG93KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQogewogICAgIGlmIChkaXNwYXRjaGVkKCkpCiAg
ICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAkocmV2aXNpb24gMjA0Njc5KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTYg
KzI5LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdHlwZWRlZiBET01XaW5kb3cgQWJz
dHJhY3RWaWV3OwotCiBzdHJ1Y3QgVUlFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0IHsKLSAg
ICBSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3OworICAgIFJlZlB0cjxET01XaW5kb3c+IHZpZXc7
CiAgICAgaW50IGRldGFpbCB7IDAgfTsKIH07CiAKIGNsYXNzIFVJRXZlbnQgOiBwdWJsaWMgRXZl
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VUlFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RW
aWV3KiB2aWV3LCBpbnQgZGV0YWlsKQorICAgIHN0YXRpYyBSZWY8VUlFdmVudD4gY3JlYXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwg
RE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVUlFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHZpZXcsIGRldGFp
bCkpOwogICAgIH0KQEAgLTUyLDkgKzUwLDkgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFs
IH5VSUV2ZW50KCk7CiAKLSAgICB2b2lkIGluaXRVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RWaWV3KiwgaW50
IGRldGFpbCk7CisgICAgdm9pZCBpbml0VUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGludCBkZXRhaWwp
OwogCi0gICAgQWJzdHJhY3RWaWV3KiB2aWV3KCkgY29uc3QgeyByZXR1cm4gbV92aWV3LmdldCgp
OyB9CisgICAgRE9NV2luZG93KiB2aWV3KCkgY29uc3QgeyByZXR1cm4gbV92aWV3LmdldCgpOyB9
CiAgICAgaW50IGRldGFpbCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV0YWlsOyB9CiAKICAgICBFdmVu
dEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNzIsMTQgKzcw
LDE0IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFVJRXZlbnQoKTsKLSAgICBVSUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgQWJzdHJhY3RWaWV3KiwgaW50IGRldGFpbCk7Ci0gICAgVUlFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1l
c3RhbXAsIEFic3RyYWN0VmlldyosIGludCBkZXRhaWwpOworICAgIFVJRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5k
b3cqLCBpbnQgZGV0YWlsKTsKKyAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2lu
ZG93KiwgaW50IGRldGFpbCk7CiAgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBjb25z
dCBVSUV2ZW50SW5pdCYpOwogCiBwcml2YXRlOgogICAgIGJvb2wgaXNVSUV2ZW50KCkgY29uc3Qg
ZmluYWw7CiAKLSAgICBSZWZQdHI8QWJzdHJhY3RWaWV3PiBtX3ZpZXc7CisgICAgUmVmUHRyPERP
TVdpbmRvdz4gbV92aWV3OwogICAgIGludCBtX2RldGFpbDsKIH07CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAkocmV2aXNpb24gMjA0Njc5KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NTEsNyArNTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgIH0KIAotICAgIFVJRXZlbnRXaXRo
S2V5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBBYnN0cmFjdFZpZXcqIHZpZXcsIGludCBkZXRhaWwsIGJvb2wgY3RybEtleSwg
Ym9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKKyAgICBVSUV2ZW50V2l0
aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wg
Y2FuY2VsYWJsZSwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBib29sIGN0cmxLZXksIGJv
b2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpCiAgICAgICAgIDogVUlFdmVu
dCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHZpZXcsIGRldGFpbCkKICAgICAgICAgLCBt
X2N0cmxLZXkoY3RybEtleSkKICAgICAgICAgLCBtX2FsdEtleShhbHRLZXkpCkBAIC02MCw3ICs2
MCw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdpdGhLZXlTdGF0
ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIGRvdWJsZSB0aW1lc3RhbXAsIEFic3RyYWN0VmlldyogdmlldywgaW50IGRldGFpbCwgYm9v
bCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQorICAg
IFVJRXZlbnRXaXRoS2V5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1
YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcs
IGludCBkZXRhaWwsIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJv
b2wgbWV0YUtleSkKICAgICAgICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJs
ZSwgdGltZXN0YW1wLCB2aWV3LCBkZXRhaWwpCiAgICAgICAgICwgbV9jdHJsS2V5KGN0cmxLZXkp
CiAgICAgICAgICwgbV9hbHRLZXkoYWx0S2V5KQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50
LmNwcAkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIFdoZWVsRXZlbnQ6OldoZWVsRXZl
bnQoY29uc3QgQXRvbWljU3RyaW4KIHsKIH0KIAotV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBBYnN0cmFjdFZpZXcqIHZpZXcpCitXaGVlbEV2
ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIERPTVdpbmRv
dyogdmlldykKICAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndoZWVsRXZlbnQsIHRydWUs
IHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LCAwLCBldmVudC5nbG9iYWxQb3NpdGlvbigp
LngoKSwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCkueCgpLCBl
dmVudC5wb3NpdGlvbigpLnkoKQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAg
ICAgICAgLCAwLCAwCkBAIC04MSw3ICs4MSw3IEBAIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGUKIHsKIH0KIAotdm9pZCBXaGVlbEV2ZW50Ojppbml0V2hlZWxFdmVudChp
bnQgcmF3RGVsdGFYLCBpbnQgcmF3RGVsdGFZLCBBYnN0cmFjdFZpZXcqIHZpZXcsIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGJvb2wgY3RybEtleSwgYm9v
bCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKK3ZvaWQgV2hlZWxFdmVudDo6
aW5pdFdoZWVsRXZlbnQoaW50IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgRE9NV2luZG93KiB2
aWV3LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLCBib29s
IGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpCiB7CiAg
ICAgaWYgKGRpc3BhdGNoZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTA0LDcgKzEwNCw3IEBA
IHZvaWQgV2hlZWxFdmVudDo6aW5pdFdoZWVsRXZlbnQoaW50IHJhd0QKICAgICBpbml0Q29vcmRp
bmF0ZXMoSW50UG9pbnQocGFnZVgsIHBhZ2VZKSk7CiB9CiAKLXZvaWQgV2hlZWxFdmVudDo6aW5p
dFdlYktpdFdoZWVsRXZlbnQoaW50IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgQWJzdHJhY3RW
aWV3KiB2aWV3LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZ
LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkp
Cit2b2lkIFdoZWVsRXZlbnQ6OmluaXRXZWJLaXRXaGVlbEV2ZW50KGludCByYXdEZWx0YVgsIGlu
dCByYXdEZWx0YVksIERPTVdpbmRvdyogdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBp
bnQgcGFnZVgsIGludCBwYWdlWSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlm
dEtleSwgYm9vbCBtZXRhS2V5KQogewogICAgIGluaXRXaGVlbEV2ZW50KHJhd0RlbHRhWCwgcmF3
RGVsdGFZLCB2aWV3LCBzY3JlZW5YLCBzY3JlZW5ZLCBwYWdlWCwgcGFnZVksIGN0cmxLZXksIGFs
dEtleSwgc2hpZnRLZXksIG1ldGFLZXkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5o
CShyZXZpc2lvbiAyMDQ2NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgRE9NX0RFTFRB
X1BBR0UKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxXaGVlbEV2ZW50PiBjcmVhdGUoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgQWJzdHJhY3RWaWV3KiB2aWV3KQorICAgIHN0YXRp
YyBSZWY8V2hlZWxFdmVudD4gY3JlYXRlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQs
IERPTVdpbmRvdyogdmlldykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdo
ZWVsRXZlbnQoZXZlbnQsIHZpZXcpKTsKICAgICB9CkBAIC02OSwxMSArNjksMTEgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXaGVlbEV2ZW50KHR5cGUsIGluaXRpYWxp
emVyKSk7CiAgICAgfQogCi0gICAgdm9pZCBpbml0V2hlZWxFdmVudChpbnQgcmF3RGVsdGFYLCBp
bnQgcmF3RGVsdGFZLCBBYnN0cmFjdFZpZXcqLAorICAgIHZvaWQgaW5pdFdoZWVsRXZlbnQoaW50
IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgRE9NV2luZG93KiwKICAgICAgICAgaW50IHNjcmVl
blgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICAgICAgICAgYm9vbCBjdHJs
S2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KTsKIAotICAgIHZv
aWQgaW5pdFdlYktpdFdoZWVsRXZlbnQoaW50IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgQWJz
dHJhY3RWaWV3KiwKKyAgICB2b2lkIGluaXRXZWJLaXRXaGVlbEV2ZW50KGludCByYXdEZWx0YVgs
IGludCByYXdEZWx0YVksIERPTVdpbmRvdyosCiAgICAgICAgIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CiAKQEAgLTk4LDcgKzk4LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBXaGVlbEV2ZW50KCk7CiAgICAgV2hlZWxFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmLCBjb25zdCBXaGVlbEV2ZW50SW5pdCYpOwotICAgIFdoZWVsRXZlbnQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgQWJzdHJhY3RWaWV3Kik7CisgICAgV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBET01XaW5kb3cqKTsKIAogICAgIGJvb2wgaXNX
aGVlbEV2ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
QWJzdHJhY3RWaWV3LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Fic3Ry
YWN0Vmlldy5pZGwJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQWJz
dHJhY3RWaWV3LmlkbAkobm9uZXhpc3RlbnQpCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLS8vIEludHJvZHVjZWQgaW4g
RE9NIExldmVsIDI6Ci1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgT2JqQ0N1c3RvbUlt
cGxlbWVudGF0aW9uLAotXSBpbnRlcmZhY2UgQWJzdHJhY3RWaWV3IHsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgRG9jdW1lbnQgZG9jdW1lbnQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0eWxl
TWVkaWEgc3R5bGVNZWRpYTsKLX07Ci0KClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvQWJzdHJhY3RWaWV3LmlkbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5
bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286543</attachid>
            <date>2016-08-20 11:22:41 -0700</date>
            <delta_ts>2016-08-20 14:39:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161032-20160820112048.patch</filename>
            <type>text/plain</type>
            <size>49932</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDY4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgzIEBACisyMDE2LTA4LTIwICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3RvcCBwcmV0ZW5kaW5nIHRoYXQgQWJz
dHJhY3RWaWV3IGlzIGEgdGhpbmcsIGl0J3Mgbm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgQWJzdHJhY3RWaWV3LmlkbCwgdGhlIEFic3Ry
YWN0VmlldyB0eXBlZGVmIG9mIERPTVdpbmRvdywgYW5kCisgICAgICAgIGFsbCBzcGVjaWFsIGNh
c2luZyBvZiB0aGUgbmFtZSBBYnN0cmFjdFZpZXcgaW4gdGhlIEpTIGNvZGUgZ2VuZXJhdG9yLgor
CisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlVJUmVxdWVzdEV2ZW50OjpjcmVhdGVGb3JCaW5kaW5ncyk6Cisg
ICAgICAgIChXZWJDb3JlOjpVSVJlcXVlc3RFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlVJUmVxdWVzdEV2ZW50OjpVSVJlcXVlc3RFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9p
bmRpZXVpL1VJUmVxdWVzdEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpVSVJlcXVlc3RFdmVu
dDo6cmVjZWl2ZXIpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAo
U2hvdWxkR2VuZXJhdGVUb0pTRGVjbGFyYXRpb24pOgorICAgICAgICAoR2V0SW1wbENsYXNzTmFt
ZSk6CisgICAgICAgICogZG9tL0NvbXBvc2l0aW9uRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRpb25FdmVudDo6Q29tcG9zaXRpb25FdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGlvbkV2ZW50Ojp+Q29tcG9zaXRpb25FdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGlvbkV2ZW50Ojppbml0Q29tcG9zaXRpb25FdmVudCk6CisgICAgICAgICogZG9t
L0NvbXBvc2l0aW9uRXZlbnQuaDoKKyAgICAgICAgKiBkb20vRm9jdXNFdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGb2N1c0V2ZW50Ojppc0ZvY3VzRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNFdmVudDo6Rm9jdXNFdmVudCk6CisgICAgICAgICogZG9tL0ZvY3VzRXZlbnQuaDoK
KyAgICAgICAgKiBkb20vS2V5Ym9hcmRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXli
b2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OktleWJvYXJkRXZl
bnQ6On5LZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6Omlu
aXRLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBkb20vS2V5Ym9hcmRFdmVudC5oOgorICAgICAg
ICAqIGRvbS9Nb3VzZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNy
ZWF0ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdXNlRXZlbnQ6On5Nb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNl
RXZlbnQ6OmluaXRNb3VzZUV2ZW50KToKKyAgICAgICAgKiBkb20vTW91c2VFdmVudC5oOgorICAg
ICAgICAqIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb3Vz
ZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGVudHNTY3JvbGxPZmZzZXQpOgorICAgICAgICAqIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oOgor
ICAgICAgICAqIGRvbS9TaW11bGF0ZWRDbGljay5jcHA6CisgICAgICAgICogZG9tL1RleHRFdmVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RXZlbnQ6OmNyZWF0ZUZvckJpbmRpbmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRFdmVudDo6Y3JlYXRlRm9yUGxhaW5UZXh0UGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dEV2ZW50OjpjcmVhdGVGb3JGcmFnbWVudFBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRFdmVudDo6Y3JlYXRlRm9yRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RXZlbnQ6OmNy
ZWF0ZUZvckRpY3RhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RXZlbnQ6OlRleHRFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RXZlbnQ6On5UZXh0RXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEV2ZW50Ojppbml0VGV4dEV2ZW50KToKKyAgICAgICAgKiBkb20vVGV4dEV2
ZW50Lmg6CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuaDoKKyAgICAgICAgKiBkb20vVUlFdmVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVSUV2ZW50OjpVSUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlVJRXZlbnQ6On5VSUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlVJRXZlbnQ6Omlu
aXRVSUV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
VUlFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlVJRXZlbnQ6OmNyZWF0ZUZvckJp
bmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlVJRXZlbnQ6OnZpZXcpOgorICAgICAgICAoV2Vi
Q29yZTo6VUlFdmVudDo6ZGV0YWlsKToKKyAgICAgICAgKiBkb20vVUlFdmVudFdpdGhLZXlTdGF0
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VUlFdmVudFdpdGhLZXlTdGF0ZTo6VUlFdmVudFdpdGhL
ZXlTdGF0ZSk6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2hlZWxFdmVudDo6V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50
Ojppbml0V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50Ojppbml0V2Vi
S2l0V2hlZWxFdmVudCk6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuaDoKKyAgICAgICAgKiBw
YWdlL0Fic3RyYWN0Vmlldy5pZGw6IFJlbW92ZWQuCisKIDIwMTYtMDgtMTkgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBMb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnMgc2hv
dWxkIHJldHVybiBhIEZyb3plbkFycmF5PFVTVlN0cmluZz4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CShyZXZpc2lvbiAyMDQ2NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtNjA3LDcgKzYwNyw2IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURM
X0ZJTEVTCiAKICAgICBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKIAot
ICAgIHBhZ2UvQWJzdHJhY3RWaWV3LmlkbAogICAgIHBhZ2UvQmFyUHJvcC5pZGwKICAgICBwYWdl
L0NyeXB0by5pZGwKICAgICBwYWdlL0RPTVNlbGVjdGlvbi5pZGwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNTEyLDcgKzUxMiw2IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSUhv
c3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3Qu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hl
LmlkbCBcCi0gICAgJChXZWJDb3JlKS9wYWdlL0Fic3RyYWN0Vmlldy5pZGwgXAogICAgICQoV2Vi
Q29yZSkvcGFnZS9CYXJQcm9wLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0NyeXB0by5pZGwg
XAogICAgICQoV2ViQ29yZSkvcGFnZS9ET01TZWxlY3Rpb24uaWRsIFwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kaWV1aS9VSVJlcXVlc3RFdmVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmNwcAkocmV2aXNp
b24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBSZWY8VUlSZXF1ZXN0RXZl
bnQ+IFVJUmVxdWVzdEV2ZW50OjpjcmVhCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVUlSZXF1
ZXN0RXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKIH0KIAotUmVmPFVJUmVxdWVzdEV2ZW50PiBV
SVJlcXVlc3RFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJi
bGVzLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0VmlldyogdmlldywgaW50IGRldGFpbCwgUmVm
UHRyPEV2ZW50VGFyZ2V0PiYmIHJlY2VpdmVyKQorUmVmPFVJUmVxdWVzdEV2ZW50PiBVSVJlcXVl
c3RFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBi
b29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgUmVmUHRyPEV2ZW50
VGFyZ2V0PiYmIHJlY2VpdmVyKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVJUmVxdWVz
dEV2ZW50KHR5cGUsIGJ1YmJsZXMsIGNhbmNlbGFibGUsIHZpZXcsIGRldGFpbCwgV1RGTW92ZShy
ZWNlaXZlcikpKTsKIH0KQEAgLTQ2LDcgKzQ2LDcgQEAgVUlSZXF1ZXN0RXZlbnQ6OlVJUmVxdWVz
dEV2ZW50KGNvbnN0IEF0bwogewogfQogICAgIAotVUlSZXF1ZXN0RXZlbnQ6OlVJUmVxdWVzdEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFi
bGUsIEFic3RyYWN0VmlldyogdmlldywgaW50IGRldGFpbCwgUmVmUHRyPEV2ZW50VGFyZ2V0PiYm
IHJlY2VpdmVyKQorVUlSZXF1ZXN0RXZlbnQ6OlVJUmVxdWVzdEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmll
dywgaW50IGRldGFpbCwgUmVmUHRyPEV2ZW50VGFyZ2V0PiYmIHJlY2VpdmVyKQogICAgIDogVUlF
dmVudCh0eXBlLCBidWJibGVzLCBjYW5jZWxhYmxlLCB2aWV3LCBkZXRhaWwpCiAgICAgLCBtX3Jl
Y2VpdmVyKFdURk1vdmUocmVjZWl2ZXIpKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmgJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kaWV1aS9VSVJlcXVlc3RFdmVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCBVSVJlcXVlc3RFdmVudEluaXQgOiBwdWJsaWMg
VUlFdmUKIAogY2xhc3MgVUlSZXF1ZXN0RXZlbnQgOiBwdWJsaWMgVUlFdmVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxVSVJlcXVlc3RFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0VmlldyosIGlu
dCBkZXRhaWwsIFJlZlB0cjxFdmVudFRhcmdldD4mJiByZWNlaXZlcik7CisgICAgc3RhdGljIFJl
ZjxVSVJlcXVlc3RFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBi
dWJibGVzLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIFJlZlB0cjxF
dmVudFRhcmdldD4mJiByZWNlaXZlcik7CiAgICAgc3RhdGljIFJlZjxVSVJlcXVlc3RFdmVudD4g
Y3JlYXRlRm9yQmluZGluZ3MoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFVJ
UmVxdWVzdEV2ZW50SW5pdCYpOwogICAgIAogICAgIHZpcnR1YWwgflVJUmVxdWVzdEV2ZW50KCk7
CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBFdmVudFRhcmdldCogcmVjZWl2ZXIoKSBj
b25zdCB7IHJldHVybiBtX3JlY2VpdmVyLmdldCgpOyB9CiAKIHByb3RlY3RlZDoKLSAgICBVSVJl
cXVlc3RFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywgYm9vbCBj
YW5jZWxhYmxlLCBBYnN0cmFjdFZpZXcqLCBpbnQgZGV0YWlsLCBSZWZQdHI8RXZlbnRUYXJnZXQ+
JiYgcmVjZWl2ZXIpOworICAgIFVJUmVxdWVzdEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGludCBkZXRhaWws
IFJlZlB0cjxFdmVudFRhcmdldD4mJiByZWNlaXZlcik7CiAgICAgCiAgICAgVUlSZXF1ZXN0RXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBVSVJlcXVlc3RFdmVudEluaXQmKTsK
ICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA2MDcsNyArMTA2
MDcsNiBAQAogCQk4NTFFRTgyMDBBQkNBNTgxMDBBNkFBMzMgLyogRE9NUmFuZ2VFeGNlcHRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NUmFuZ2VFeGNlcHRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODUyMTdFMDAwQTVFQ0Q0NzAwREI4RDAwIC8q
IFhTTEltcG9ydFJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFhTTEltcG9ydFJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTIxN0Uw
MTBBNUVDRDQ3MDBEQjhEMDAgLyogWFNMSW1wb3J0UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gWFNMSW1wb3J0UnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk4NTM4RjAwMDBBRDcxNzcwMDA2QTgxRDEgLyogQWJzdHJhY3RWaWV3LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBBYnN0cmFjdFZpZXcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4NTM4RjAxNjBBRDcxOEQ4MDA2QTgxRDEgLyogRE9NQWJzdHJhY3RWaWV3LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01BYnN0cmFjdFZpZXcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODUzOEYwMTgwQUQ3MThEODAwNkE4MUQxIC8qIERPTUFi
c3RyYWN0Vmlld0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01BYnN0cmFjdFZpZXdJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
NTM4RjA1ODBBRDcyMkYxMDA2QTgxRDEgLyogRE9NUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xODE1Niw3ICsxODE1NSw2IEBACiAJCQkJMThBNkNENkYwRDhGMjAyNTAwMURDM0NFIC8qIGlv
cyAqLywKIAkJCQk5M0MwOUE4MjBCMDY0RjA1MDA1QUJENEQgLyogbWFjICovLAogCQkJCTFBRjYy
RUUxMTREQTIyQTcwMDQxNTU2QyAvKiBzY3JvbGxpbmcgKi8sCi0JCQkJODUzOEYwMDAwQUQ3MTc3
MDAwNkE4MUQxIC8qIEFic3RyYWN0Vmlldy5pZGwgKi8sCiAJCQkJQkNGNDhDRTYxMzcwRDExNDAw
NEU4N0Q2IC8qIEFkanVzdFZpZXdTaXplT3JOb3QuaCAqLywKIAkJCQlDRURBMTJENjE1MkNBMUNC
MDBEOUUwOEQgLyogQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggKi8sCiAJCQkJNDU4MzBENEIxNjc5
QjRGODAwQUNGOEMzIC8qIEF1dG9zY3JvbGxDb250cm9sbGVyLmNwcCAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09i
amVjdC5wbQkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYs
NyBAQCBteSAkY2xhc3NOYW1lID0gIiI7CiBteSAlYmFzZVR5cGVIYXNoID0gKCJPYmplY3QiID0+
IDEsICJOb2RlIiA9PiAxLCAiTm9kZUxpc3QiID0+IDEsICJOYW1lZE5vZGVNYXAiID0+IDEsICJE
T01JbXBsZW1lbnRhdGlvbiIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIkV2ZW50IiA9PiAx
LCAiQ1NTUnVsZSIgPT4gMSwgIkNTU1ZhbHVlIiA9PiAxLCAiU3R5bGVTaGVldCIgPT4gMSwgIk1l
ZGlhTGlzdCIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIkNvdW50ZXIiID0+IDEsICJSZWN0
IiA9PiAxLCAiUkdCQ29sb3IiID0+IDEsICJYUGF0aEV4cHJlc3Npb24iID0+IDEsICJYUGF0aFJl
c3VsdCIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgIk5vZGVJdGVyYXRvciIgPT4gMSwgIlRy
ZWVXYWxrZXIiID0+IDEsICJBYnN0cmFjdFZpZXciID0+IDEsICJCbG9iIiA9PiAxLCAiRE9NVG9r
ZW5MaXN0IiA9PiAxLAorICAgICAgICAgICAgICAgICAgICAiTm9kZUl0ZXJhdG9yIiA9PiAxLCAi
VHJlZVdhbGtlciIgPT4gMSwgIkJsb2IiID0+IDEsICJET01Ub2tlbkxpc3QiID0+IDEsCiAgICAg
ICAgICAgICAgICAgICAgICJIVE1MQ29sbGVjdGlvbiIgPT4gMSwgIlRleHRUcmFja0N1ZSIgPT4g
MSwgIkFuaW1hdGlvblRpbWVsaW5lIiA9PiAxLCAiQW5pbWF0aW9uRWZmZWN0IiA9PiAxKTsKIAog
IyBPbmx5IG9iamVjdHMgZGVyaXZlZCBmcm9tIE5vZGUgYXJlIHJlbGVhc2VkIGJ5IHRoZSBET00g
b2JqZWN0IGNhY2hlIGFuZCBjYW4gYmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyMDQ2NzkpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDQyLDcgKzQ0Miw2IEBAIHN1YiBTaG91bGRHZW5lcmF0ZVRvSlNEZWNsYXJh
dGlvbgogCiAgICAgcmV0dXJuIDAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJTdXBwcmVzc1RvSlNPYmplY3QifSk7CiAgICAgcmV0dXJuIDAgaWYgbm90IE5lZWRzSW1wbGVt
ZW50YXRpb25DbGFzcygkaW50ZXJmYWNlKTsKLSAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT5u
YW1lIGVxICJBYnN0cmFjdFZpZXciOwogICAgIHJldHVybiAwIGlmICRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Qcm94eVRvSlNPYmplY3QifTsKICAgICByZXR1cm4gMSBp
ZiAoISRoYXNQYXJlbnQgb3IgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2Vu
ZXJhdGVUb0pTT2JqZWN0In0gb3IgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbVRvSlNPYmplY3QifSk7CiAgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZS0+cGFyZW50ICYm
ICRpbnRlcmZhY2UtPnBhcmVudCBlcSAiRXZlbnRUYXJnZXQiOwpAQCAtNzI5LDggKzcyOCw2IEBA
IHN1YiBHZXRJbXBsQ2xhc3NOYW1lCiB7CiAgICAgbXkgJG5hbWUgPSBzaGlmdDsKIAotICAgIHJl
dHVybiAiRE9NV2luZG93IiBpZiAkbmFtZSBlcSAiQWJzdHJhY3RWaWV3IjsKLQogICAgIG15ICgk
c3ZnUHJvcGVydHlUeXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSwgJHN2Z05hdGl2ZVR5cGUpID0g
R2V0U1ZHUHJvcGVydHlUeXBlcygkbmFtZSk7CiAgICAgcmV0dXJuICRzdmdOYXRpdmVUeXBlIGlm
ICRzdmdOYXRpdmVUeXBlOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRpb25F
dmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2l0aW9uRXZl
bnQuY3BwCShyZXZpc2lvbiAyMDQ2NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRp
b25FdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgQ29tcG9zaXRpb25F
dmVudDo6Q29tcG9zaXRpb25FdmVudCgpCiB7CiB9CiAKLUNvbXBvc2l0aW9uRXZlbnQ6OkNvbXBv
c2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBBYnN0cmFjdFZpZXcqIHZpZXcs
IGNvbnN0IFN0cmluZyYgZGF0YSkKK0NvbXBvc2l0aW9uRXZlbnQ6OkNvbXBvc2l0aW9uRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBET01XaW5kb3cqIHZpZXcsIGNvbnN0IFN0cmluZyYg
ZGF0YSkKICAgICA6IFVJRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwgdmlldywgMCkKICAgICAsIG1f
ZGF0YShkYXRhKQogewpAQCAtNTEsNyArNTEsNyBAQCBDb21wb3NpdGlvbkV2ZW50Ojp+Q29tcG9z
aXRpb25FdmVudCgpCiB7CiB9CiAKLXZvaWQgQ29tcG9zaXRpb25FdmVudDo6aW5pdENvbXBvc2l0
aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBBYnN0cmFjdFZpZXcqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSkKK3ZvaWQg
Q29tcG9zaXRpb25FdmVudDo6aW5pdENvbXBvc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcs
IGNvbnN0IFN0cmluZyYgZGF0YSkKIHsKICAgICBpZiAoZGlzcGF0Y2hlZCgpKQogICAgICAgICBy
ZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRpb25FdmVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlvbkV2ZW50LmgJKHJldmlzaW9u
IDIwNDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlvbkV2ZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IENvbXBvc2l0aW9uRXZlbnRJbml0IDog
VUlFdmVudEluaQogCiBjbGFzcyBDb21wb3NpdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIFVJRXZl
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q29tcG9zaXRpb25FdmVudD4gY3JlYXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQWJzdHJhY3RWaWV3KiB2aWV3LCBjb25zdCBTdHJpbmcm
IGRhdGEpCisgICAgc3RhdGljIFJlZjxDb21wb3NpdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBET01XaW5kb3cqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSkKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENvbXBvc2l0aW9uRXZlbnQodHlwZSwg
dmlldywgZGF0YSkpOwogICAgIH0KQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB+Q29tcG9zaXRpb25FdmVudCgpOwogCi0gICAgdm9pZCBpbml0Q29tcG9zaXRpb25FdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIEFic3RyYWN0VmlldyosIGNvbnN0IFN0cmluZyYgZGF0YSk7CisgICAgdm9pZCBpbml0Q29t
cG9zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBi
b29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGNvbnN0IFN0cmluZyYgZGF0YSk7CiAKICAgICBT
dHJpbmcgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQogCkBAIC02Miw3ICs2Miw3IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBDb21wb3NpdGlvbkV2ZW50KCk7Ci0gICAgQ29tcG9z
aXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIEFic3RyYWN0VmlldyosIGNvbnN0
IFN0cmluZyYpOworICAgIENvbXBvc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBET01XaW5kb3cqLCBjb25zdCBTdHJpbmcmKTsKICAgICBDb21wb3NpdGlvbkV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQ29tcG9zaXRpb25FdmVudEluaXQmKTsKIAogICAg
IGJvb2wgaXNDb21wb3NpdGlvbkV2ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vRm9jdXNFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL0ZvY3VzRXZlbnQuY3BwCShyZXZpc2lvbiAyMDQ2NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vRm9jdXNFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgYm9vbCBG
b2N1c0V2ZW50Ojppc0ZvY3VzRXZlbnQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1G
b2N1c0V2ZW50OjpGb2N1c0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RWaWV3KiB2aWV3LCBpbnQgZGV0YWlsLCBS
ZWZQdHI8RXZlbnRUYXJnZXQ+JiYgcmVsYXRlZFRhcmdldCkKK0ZvY3VzRXZlbnQ6OkZvY3VzRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIFJlZlB0cjxFdmVudFRhcmdldD4mJiBy
ZWxhdGVkVGFyZ2V0KQogICAgIDogVUlFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUs
IHZpZXcsIGRldGFpbCkKICAgICAsIG1fcmVsYXRlZFRhcmdldChXVEZNb3ZlKHJlbGF0ZWRUYXJn
ZXQpKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0ZvY3VzRXZlbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRm9jdXNFdmVudC5oCShyZXZpc2lvbiAyMDQ2NzkpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRm9jdXNFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3
ICszOSw3IEBAIHN0cnVjdCBGb2N1c0V2ZW50SW5pdCA6IHB1YmxpYyBVSUV2ZW50SW4KIAogY2xh
c3MgRm9jdXNFdmVudCBmaW5hbCA6IHB1YmxpYyBVSUV2ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPEZvY3VzRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0VmlldyogdmlldywgaW50IGRldGFp
bCwgUmVmUHRyPEV2ZW50VGFyZ2V0PiYmIHJlbGF0ZWRUYXJnZXQpCisgICAgc3RhdGljIFJlZjxG
b2N1c0V2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIFJlZlB0cjxF
dmVudFRhcmdldD4mJiByZWxhdGVkVGFyZ2V0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRm9jdXNFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHZpZXcsIGRl
dGFpbCwgV1RGTW92ZShyZWxhdGVkVGFyZ2V0KSkpOwogICAgIH0KQEAgLTU1LDcgKzU1LDcgQEAg
cHVibGljOgogICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKIHByaXZhdGU6Ci0gICAgRm9jdXNFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0VmlldyosIGludCwgUmVm
UHRyPEV2ZW50VGFyZ2V0PiYmKTsKKyAgICBGb2N1c0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgRE9NV2luZG93KiwgaW50LCBS
ZWZQdHI8RXZlbnRUYXJnZXQ+JiYpOwogICAgIEZvY3VzRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBjb25zdCBGb2N1c0V2ZW50SW5pdCYpOwogCiAgICAgYm9vbCBpc0ZvY3VzRXZlbnQo
KSBjb25zdCBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAJ
KHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIEtleWJvYXJkRXZlbnQ6OktleWJv
YXJkRXZlbnQoKQogewogfQogCi1LZXlib2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KGNvbnN0IFBs
YXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5LCBBYnN0cmFjdFZpZXcqIHZpZXcpCitLZXlib2FyZEV2
ZW50OjpLZXlib2FyZEV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5LCBET01X
aW5kb3cqIHZpZXcpCiAgICAgOiBVSUV2ZW50V2l0aEtleVN0YXRlKGV2ZW50VHlwZUZvcktleWJv
YXJkRXZlbnRUeXBlKGtleS50eXBlKCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVl
LCB0cnVlLCBrZXkudGltZXN0YW1wKCksIHZpZXcsIDAsIGtleS5jdHJsS2V5KCksIGtleS5hbHRL
ZXkoKSwga2V5LnNoaWZ0S2V5KCksIGtleS5tZXRhS2V5KCkpCiAgICAgLCBtX2tleUV2ZW50KHN0
ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1LZXlib2FyZEV2ZW50PihrZXkpKQpAQCAtMTM5LDcgKzEz
OSw3IEBAIEtleWJvYXJkRXZlbnQ6On5LZXlib2FyZEV2ZW50KCkKIHsKIH0KIAotdm9pZCBLZXli
b2FyZEV2ZW50Ojppbml0S2V5Ym9hcmRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJv
b2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0VmlldyogdmlldywKK3ZvaWQg
S2V5Ym9hcmRFdmVudDo6aW5pdEtleWJvYXJkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyAma2V5SWRlbnRp
ZmllciwgdW5zaWduZWQgbG9jYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0
YUtleSwgYm9vbCBhbHRHcmFwaEtleSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9LZXli
b2FyZEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZl
bnQuaAkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZl
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8v
IERPTV9LRVlfTE9DQVRJT05fSk9ZU1RJQ0sgICA9IDB4MDUKICAgICB9OwogCi0gICAgc3RhdGlj
IFJlZjxLZXlib2FyZEV2ZW50PiBjcmVhdGUoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBw
bGF0Zm9ybUV2ZW50LCBBYnN0cmFjdFZpZXcqIHZpZXcpCisgICAgc3RhdGljIFJlZjxLZXlib2Fy
ZEV2ZW50PiBjcmVhdGUoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBwbGF0Zm9ybUV2ZW50
LCBET01XaW5kb3cqIHZpZXcpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBL
ZXlib2FyZEV2ZW50KHBsYXRmb3JtRXZlbnQsIHZpZXcpKTsKICAgICB9CkBAIC03NSw3ICs3NSw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfktleWJvYXJkRXZlbnQoKTsKICAgICAKLSAgICB2
b2lkIGluaXRLZXlib2FyZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RWaWV3KiwKKyAgICB2b2lkIGluaXRLZXli
b2FyZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wg
Y2FuY2VsYWJsZSwgRE9NV2luZG93KiwKICAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCB1bnNpZ25lZCBsb2NhdGlvbiwKICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtl
eSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5ID0gZmFsc2Up
OwogICAgIApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBXRUJD
T1JFX0VYUE9SVCBLZXlib2FyZEV2ZW50KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgS2V5Ym9hcmRF
dmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmLCBBYnN0cmFjdFZpZXcqKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBLZXlib2FyZEV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYs
IERPTVdpbmRvdyopOwogICAgIEtleWJvYXJkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29u
c3QgS2V5Ym9hcmRFdmVudEluaXQmKTsKICAgICAvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxk
IGJlIGdldCByaWRlIG9mIGluIHRoZSBmdXR1cmUuCiAgICAgLy8gRE8gTk9UIFVTRSBJVCEKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgs
NyBAQCBSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlRm9yQmluCiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTW91c2VFdmVudCh0eXBlLCBpbml0aWFsaXplcikpOwogfQogCi1SZWY8
TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBBYnN0cmFjdFZpZXcqIHZpZXcsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQs
IGludCBkZXRhaWwsIFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRhcmdldCkKK1JlZjxNb3VzZUV2
ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERP
TVdpbmRvdyogdmlldywgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgaW50IGRldGFp
bCwgUGFzc1JlZlB0cjxOb2RlPiByZWxhdGVkVGFyZ2V0KQogewogICAgIGJvb2wgaXNNb3VzZUVu
dGVyT3JMZWF2ZSA9IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2VlbnRlckV2ZW50IHx8
IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2VsZWF2ZUV2ZW50OwogICAgIGJvb2wgaXND
YW5jZWxhYmxlID0gZXZlbnRUeXBlICE9IGV2ZW50TmFtZXMoKS5tb3VzZW1vdmVFdmVudCAmJiAh
aXNNb3VzZUVudGVyT3JMZWF2ZTsKQEAgLTUzLDcgKzUzLDcgQEAgUmVmPE1vdXNlRXZlbnQ+IE1v
dXNlRXZlbnQ6OmNyZWF0ZShjb25zdAogICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3Jj
ZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2ZW50PiBN
b3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBBYnN0cmFjdFZpZXcqIHZpZXcs
IGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFn
ZVksCitSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFt
cCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblks
IGludCBwYWdlWCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgaW50
IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgpAQCAtNjgsNyArNjgsNyBAQCBSZWY8
TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0CiAgICAgICAgIGN0cmxLZXksIGFs
dEtleSwgc2hpZnRLZXksIG1ldGFLZXksIGJ1dHRvbiwgcmVsYXRlZFRhcmdldCwgZm9yY2UsIHN5
bnRoZXRpY0NsaWNrVHlwZSwgMCwgZmFsc2UpOwogfQogCi1SZWY8TW91c2VFdmVudD4gTW91c2VF
dmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJv
b2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgQWJzdHJhY3RWaWV3KiB2aWV3LCBpbnQg
ZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAor
UmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERP
TVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQg
cGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGludCBtb3Zl
bWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAgLTgyLDcgKzgyLDcgQEAgUmVmPE1vdXNl
RXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdAogICAgICAgICBjdHJsS2V5LCBhbHRLZXks
IHNoaWZ0S2V5LCBtZXRhS2V5LCBidXR0b24sIHJlbGF0ZWRUYXJnZXQsIGZvcmNlLCBzeW50aGV0
aWNDbGlja1R5cGUsIGRhdGFUcmFuc2ZlciwgaXNTaW11bGF0ZWQpKTsKIH0KIAotUmVmPE1vdXNl
RXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RWaWV3KiB2aWV3LCBpbnQg
ZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50
WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5
LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlw
ZSwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkKK1JlZjxNb3VzZUV2ZW50
PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwg
aW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwgaW50IGNsaWVudFksIGJvb2wg
Y3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5zaWdu
ZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIFBhc3NS
ZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTW91c2VFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdmlldywg
ZGV0YWlsLCBzY3JlZW5YLCBzY3JlZW5ZLCBjbGllbnRYLCBjbGllbnRZLCBjdHJsS2V5LCBhbHRL
ZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBidXR0b24sIHN5bnRoZXRpY0NsaWNrVHlwZSwgcmVsYXRl
ZFRhcmdldCkpOwogfQpAQCAtOTMsNyArOTMsNyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KCkK
IHsKIH0KIAotTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwg
QWJzdHJhY3RWaWV3KiB2aWV3LAorTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91Ymxl
IHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICBpbnQg
ZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb3Zl
bWVudFgsIGludCBtb3ZlbWVudFksCkBAIC0xMTYsNyArMTE2LDcgQEAgTW91c2VFdmVudDo6TW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbgogewogfQogCi1Nb3VzZUV2ZW50OjpNb3VzZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5j
ZWxhYmxlLCBBYnN0cmFjdFZpZXcqIHZpZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQg
c2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wgYWx0
S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwg
dW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tUeXBlLCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0
PiByZWxhdGVkVGFyZ2V0KQorTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgRE9NV2luZG93
KiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRY
LCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwg
Ym9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IHN5bnRo
ZXRpY0NsaWNrVHlwZSwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkKICAg
ICA6IE1vdXNlUmVsYXRlZEV2ZW50KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBX
VEY6OmN1cnJlbnRUaW1lKCksIHZpZXcsIGRldGFpbCwgSW50UG9pbnQoc2NyZWVuWCwgc2NyZWVu
WSksIEludFBvaW50KDAsIDApLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIElu
dFBvaW50KDAsIDApLApAQCAtMTQ0LDcgKzE0NCw3IEBAIE1vdXNlRXZlbnQ6On5Nb3VzZUV2ZW50
KCkKIHsKIH0KIAotdm9pZCBNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0Vmll
dyogdmlldywKK3ZvaWQgTW91c2VFdmVudDo6aW5pdE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZp
ZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0
S2V5LCBib29sIG1ldGFLZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIHNob3J0IGJ1dHRvbiwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBA
QCBzdHJ1Y3QgTW91c2VFdmVudEluaXQgOiBwdWJsaWMgTW91c2VSZWxhCiAKIGNsYXNzIE1vdXNl
RXZlbnQgOiBwdWJsaWMgTW91c2VSZWxhdGVkRXZlbnQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgQWJzdHJhY3RWaWV3KiwK
KyAgICBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERP
TVdpbmRvdyosCiAgICAgICAgIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwg
aW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAg
aW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgog
ICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1l
dGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwKICAgICAgICAgUGFzc1JlZlB0cjxFdmVudFRh
cmdldD4gcmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0
aWNDbGlja1R5cGUpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50
PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBBYnN0cmFjdFZpZXcqLAorICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwg
RE9NV2luZG93KiwKICAgICAgICAgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5Z
LCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAg
ICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLApAQCAtNTYsOSArNTYsOSBAQCBwdWJsaWM6
CiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wg
bWV0YUtleSwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLAogICAgICAgICBQYXNzUmVmUHRyPEV2ZW50
VGFyZ2V0PiByZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0IHN5bnRo
ZXRpY0NsaWNrVHlwZSwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+LCBib29sIGlzU2ltdWxhdGVk
ID0gZmFsc2UpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEFic3RyYWN0VmlldyosIGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYsIGludCBkZXRhaWwsIFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRl
ZFRhcmdldCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVh
dGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyosIGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYsIGludCBkZXRhaWwsIFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRhcmdl
dCk7CiAKLSAgICBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RW
aWV3KiwKKyAgICBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgRE9NV2luZG93
KiwKICAgICAgICAgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xp
ZW50WCwgaW50IGNsaWVudFksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJv
b2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwKICAgICAgICAgdW5zaWduZWQgc2hvcnQgYnV0dG9u
LCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIFBhc3NSZWZQdHI8RXZlbnRUYXJn
ZXQ+IHJlbGF0ZWRUYXJnZXQpOwpAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIH5Nb3VzZUV2ZW50KCk7CiAKLSAgICB2b2lkIGluaXRNb3VzZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RW
aWV3KiwKKyAgICB2b2lkIGluaXRNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgRE9NV2luZG93KiwKICAgICAgICAgaW50
IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwgaW50IGNsaWVu
dFksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJv
b2wgbWV0YUtleSwKICAgICAgICAgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCBQYXNzUmVmUHRyPEV2
ZW50VGFyZ2V0PiByZWxhdGVkVGFyZ2V0KTsKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAg
ICAgUmVmPEV2ZW50PiBjbG9uZUZvcihIVE1MSUZyYW1lRWxlbWVudCopIGNvbnN0IG92ZXJyaWRl
OwogCiBwcm90ZWN0ZWQ6Ci0gICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIEFic3Ry
YWN0VmlldyosCisgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyos
CiAgICAgICAgIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VY
LCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgaW50IG1vdmVt
ZW50WCwgaW50IG1vdmVtZW50WSwKQEAgLTExMyw3ICsxMTMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtl
eSwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLAogICAgICAgICBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0
PiByZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0Ns
aWNrVHlwZSwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+LCBib29sIGlzU2ltdWxhdGVkKTsKIAot
ICAgIE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym9vbCBjYW5jZWxhYmxlLCBBYnN0cmFjdFZpZXcqLAorICAgIE1vdXNlRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5k
b3cqLAogICAgICAgICBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBj
bGllbnRYLCBpbnQgY2xpZW50WSwKICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LAogICAgICAgICB1bnNpZ25lZCBzaG9ydCBidXR0
b24sIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgUGFzc1JlZlB0cjxFdmVudFRh
cmdldD4gcmVsYXRlZFRhcmdldCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxh
dGVkRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0
ZWRFdmVudC5jcHAJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDExICszNywxMSBAQCBNb3Vz
ZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQoKQogewogfQogCi1zdGF0aWMgTGF5b3V0
U2l6ZSBjb250ZW50c1Njcm9sbE9mZnNldChBYnN0cmFjdFZpZXcqIGFic3RyYWN0VmlldykKK3N0
YXRpYyBMYXlvdXRTaXplIGNvbnRlbnRzU2Nyb2xsT2Zmc2V0KERPTVdpbmRvdyogRE9NV2luZG93
KQogewotICAgIGlmICghYWJzdHJhY3RWaWV3KQorICAgIGlmICghRE9NV2luZG93KQogICAgICAg
ICByZXR1cm4gTGF5b3V0U2l6ZSgpOwotICAgIEZyYW1lKiBmcmFtZSA9IGFic3RyYWN0Vmlldy0+
ZnJhbWUoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBET01XaW5kb3ctPmZyYW1lKCk7CiAgICAgaWYg
KCFmcmFtZSkKICAgICAgICAgcmV0dXJuIExheW91dFNpemUoKTsKICAgICBGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IGZyYW1lLT52aWV3KCk7CkBAIC01NSwxMyArNTUsMTMgQEAgc3RhdGljIExheW91
dFNpemUgY29udGVudHNTY3JvbGxPZmZzZXQoQQogI2VuZGlmCiB9CiAKLU1vdXNlUmVsYXRlZEV2
ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9v
bCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgQWJzdHJhY3RW
aWV3KiBhYnN0cmFjdFZpZXcsCitNb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNl
bGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBz
Y3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCiAjZW5kaWYKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5
LCBib29sIG1ldGFLZXksIGJvb2wgaXNTaW11bGF0ZWQpCi0gICAgOiBVSUV2ZW50V2l0aEtleVN0
YXRlKGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIGFic3RyYWN0
VmlldywgZGV0YWlsLCBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5KQorICAgIDog
VUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGlt
ZXN0YW1wLCBET01XaW5kb3csIGRldGFpbCwgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0
YUtleSkKICAgICAsIG1fc2NyZWVuTG9jYXRpb24oc2NyZWVuTG9jYXRpb24pCiAjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKICAgICAsIG1fbW92ZW1lbnREZWx0YShtb3ZlbWVudERlbHRhKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgJKHJldmlzaW9uIDIwNDY3OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1vdXNlUmVsYXRl
ZEV2ZW50KCk7Ci0gICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBBYnN0
cmFjdFZpZXcqLAorICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9N
V2luZG93KiwKICAgICAgICAgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0
aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDEz
ICszOCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNpbXVsYXRlZE1vdXNlRXZl
bnQgZmluYWwgOiBwdWJsaWMgTW91c2VFdmVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxT
aW11bGF0ZWRNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IEFic3RyYWN0VmlldyogdmlldywgUmVmUHRyPEV2ZW50PiYmIHVuZGVybHlpbmdFdmVudCwgRWxl
bWVudCYgdGFyZ2V0KQorICAgIHN0YXRpYyBSZWY8U2ltdWxhdGVkTW91c2VFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBET01XaW5kb3cqIHZpZXcsIFJlZlB0cjxF
dmVudD4mJiB1bmRlcmx5aW5nRXZlbnQsIEVsZW1lbnQmIHRhcmdldCkKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNpbXVsYXRlZE1vdXNlRXZlbnQoZXZlbnRUeXBlLCB2aWV3
LCBXVEZNb3ZlKHVuZGVybHlpbmdFdmVudCksIHRhcmdldCkpOwogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBTaW11bGF0ZWRNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBB
YnN0cmFjdFZpZXcqIHZpZXcsIFJlZlB0cjxFdmVudD4mJiB1bmRlcmx5aW5nRXZlbnQsIEVsZW1l
bnQmIHRhcmdldCkKKyAgICBTaW11bGF0ZWRNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBET01XaW5kb3cqIHZpZXcsIFJlZlB0cjxFdmVudD4mJiB1bmRlcmx5aW5nRXZl
bnQsIEVsZW1lbnQmIHRhcmdldCkKICAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1
ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6
IGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKICAgICAgICAgICAgICAgICAgICAgIDAsIDAsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vVGV4dEV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2
ZW50LmNwcAkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDI3ICszOCwyNyBAQCBSZWY8VGV4dEV2ZW50PiBU
ZXh0RXZlbnQ6OmNyZWF0ZUZvckJpbmRpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dEV2
ZW50KTsKIH0KIAotUmVmPFRleHRFdmVudD4gVGV4dEV2ZW50OjpjcmVhdGUoQWJzdHJhY3RWaWV3
KiB2aWV3LCBjb25zdCBTdHJpbmcmIGRhdGEsIFRleHRFdmVudElucHV0VHlwZSBpbnB1dFR5cGUp
CitSZWY8VGV4dEV2ZW50PiBUZXh0RXZlbnQ6OmNyZWF0ZShET01XaW5kb3cqIHZpZXcsIGNvbnN0
IFN0cmluZyYgZGF0YSwgVGV4dEV2ZW50SW5wdXRUeXBlIGlucHV0VHlwZSkKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBUZXh0RXZlbnQodmlldywgZGF0YSwgaW5wdXRUeXBlKSk7CiB9CiAK
LVJlZjxUZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlRm9yUGxhaW5UZXh0UGFzdGUoQWJzdHJh
Y3RWaWV3KiB2aWV3LCBjb25zdCBTdHJpbmcmIGRhdGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNl
KQorUmVmPFRleHRFdmVudD4gVGV4dEV2ZW50OjpjcmVhdGVGb3JQbGFpblRleHRQYXN0ZShET01X
aW5kb3cqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSwgYm9vbCBzaG91bGRTbWFydFJlcGxhY2Up
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dEV2ZW50KHZpZXcsIGRhdGEsIDAsIHNo
b3VsZFNtYXJ0UmVwbGFjZSwgZmFsc2UsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RC
bG9ja3F1b3RlKSk7CiB9CiAKLVJlZjxUZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlRm9yRnJh
Z21lbnRQYXN0ZShBYnN0cmFjdFZpZXcqIHZpZXcsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYm
IGRhdGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNlLCBib29sIHNob3VsZE1hdGNoU3R5bGUsIE1h
aWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKK1JlZjxUZXh0RXZl
bnQ+IFRleHRFdmVudDo6Y3JlYXRlRm9yRnJhZ21lbnRQYXN0ZShET01XaW5kb3cqIHZpZXcsIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiYmIGRhdGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNlLCBi
b29sIHNob3VsZE1hdGNoU3R5bGUsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVv
dGVIYW5kbGluZykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0RXZlbnQodmlldywg
ZW1wdHlTdHJpbmcoKSwgV1RGTW92ZShkYXRhKSwgc2hvdWxkU21hcnRSZXBsYWNlLCBzaG91bGRN
YXRjaFN0eWxlLCBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKSk7CiB9CiAKLVJlZjxUZXh0RXZlbnQ+
IFRleHRFdmVudDo6Y3JlYXRlRm9yRHJvcChBYnN0cmFjdFZpZXcqIHZpZXcsIGNvbnN0IFN0cmlu
ZyYgZGF0YSkKK1JlZjxUZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlRm9yRHJvcChET01XaW5k
b3cqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBUZXh0RXZlbnQodmlldywgZGF0YSwgVGV4dEV2ZW50SW5wdXREcm9wKSk7CiB9CiAKLVJlZjxU
ZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlRm9yRGljdGF0aW9uKEFic3RyYWN0Vmlldyogdmll
dywgY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+
JiBkaWN0YXRpb25BbHRlcm5hdGl2ZXMpCitSZWY8VGV4dEV2ZW50PiBUZXh0RXZlbnQ6OmNyZWF0
ZUZvckRpY3RhdGlvbihET01XaW5kb3cqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3Qg
VmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKQogewog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRFdmVudCh2aWV3LCBkYXRhLCBkaWN0YXRpb25B
bHRlcm5hdGl2ZXMpKTsKIH0KQEAgLTcxLDcgKzcxLDcgQEAgVGV4dEV2ZW50OjpUZXh0RXZlbnQo
KQogewogfQogCi1UZXh0RXZlbnQ6OlRleHRFdmVudChBYnN0cmFjdFZpZXcqIHZpZXcsIGNvbnN0
IFN0cmluZyYgZGF0YSwgVGV4dEV2ZW50SW5wdXRUeXBlIGlucHV0VHlwZSkKK1RleHRFdmVudDo6
VGV4dEV2ZW50KERPTVdpbmRvdyogdmlldywgY29uc3QgU3RyaW5nJiBkYXRhLCBUZXh0RXZlbnRJ
bnB1dFR5cGUgaW5wdXRUeXBlKQogICAgIDogVUlFdmVudChldmVudE5hbWVzKCkudGV4dElucHV0
RXZlbnQsIHRydWUsIHRydWUsIHZpZXcsIDApCiAgICAgLCBtX2lucHV0VHlwZShpbnB1dFR5cGUp
CiAgICAgLCBtX2RhdGEoZGF0YSkKQEAgLTgxLDcgKzgxLDcgQEAgVGV4dEV2ZW50OjpUZXh0RXZl
bnQoQWJzdHJhY3RWaWV3KiB2aWV3LAogewogfQogCi1UZXh0RXZlbnQ6OlRleHRFdmVudChBYnN0
cmFjdFZpZXcqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSwgUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+JiYgcGFzdGluZ0ZyYWdtZW50LCBib29sIHNob3VsZFNtYXJ0UmVwbGFjZSwgYm9vbCBzaG91
bGRNYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxp
bmcpCitUZXh0RXZlbnQ6OlRleHRFdmVudChET01XaW5kb3cqIHZpZXcsIGNvbnN0IFN0cmluZyYg
ZGF0YSwgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+JiYgcGFzdGluZ0ZyYWdtZW50LCBib29sIHNo
b3VsZFNtYXJ0UmVwbGFjZSwgYm9vbCBzaG91bGRNYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhh
bmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCiAgICAgOiBVSUV2ZW50KGV2ZW50TmFtZXMo
KS50ZXh0SW5wdXRFdmVudCwgdHJ1ZSwgdHJ1ZSwgdmlldywgMCkKICAgICAsIG1faW5wdXRUeXBl
KFRleHRFdmVudElucHV0UGFzdGUpCiAgICAgLCBtX2RhdGEoZGF0YSkKQEAgLTkyLDcgKzkyLDcg
QEAgVGV4dEV2ZW50OjpUZXh0RXZlbnQoQWJzdHJhY3RWaWV3KiB2aWV3LAogewogfQogCi1UZXh0
RXZlbnQ6OlRleHRFdmVudChBYnN0cmFjdFZpZXcqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSwg
Y29uc3QgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVz
KQorVGV4dEV2ZW50OjpUZXh0RXZlbnQoRE9NV2luZG93KiB2aWV3LCBjb25zdCBTdHJpbmcmIGRh
dGEsIGNvbnN0IFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGRpY3RhdGlvbkFsdGVybmF0
aXZlcykKICAgICA6IFVJRXZlbnQoZXZlbnROYW1lcygpLnRleHRJbnB1dEV2ZW50LCB0cnVlLCB0
cnVlLCB2aWV3LCAwKQogICAgICwgbV9pbnB1dFR5cGUoVGV4dEV2ZW50SW5wdXREaWN0YXRpb24p
CiAgICAgLCBtX2RhdGEoZGF0YSkKQEAgLTEwNyw3ICsxMDcsNyBAQCBUZXh0RXZlbnQ6On5UZXh0
RXZlbnQoKQogewogfQogCi12b2lkIFRleHRFdmVudDo6aW5pdFRleHRFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIEFic3RyYWN0
VmlldyogdmlldywgY29uc3QgU3RyaW5nJiBkYXRhKQordm9pZCBUZXh0RXZlbnQ6OmluaXRUZXh0
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5j
ZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSkKIHsKICAgICBpZiAo
ZGlzcGF0Y2hlZCgpKQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
VGV4dEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5o
CShyZXZpc2lvbiAyMDQ2NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDE2ICszOSwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICBjbGFzcyBUZXh0RXZlbnQgZmluYWwgOiBwdWJsaWMgVUlFdmVudCB7CiAgICAgcHVibGljOgot
ICAgICAgICBzdGF0aWMgUmVmPFRleHRFdmVudD4gY3JlYXRlKEFic3RyYWN0VmlldyosIGNvbnN0
IFN0cmluZyYgZGF0YSwgVGV4dEV2ZW50SW5wdXRUeXBlID0gVGV4dEV2ZW50SW5wdXRLZXlib2Fy
ZCk7CisgICAgICAgIHN0YXRpYyBSZWY8VGV4dEV2ZW50PiBjcmVhdGUoRE9NV2luZG93KiwgY29u
c3QgU3RyaW5nJiBkYXRhLCBUZXh0RXZlbnRJbnB1dFR5cGUgPSBUZXh0RXZlbnRJbnB1dEtleWJv
YXJkKTsKICAgICAgICAgc3RhdGljIFJlZjxUZXh0RXZlbnQ+IGNyZWF0ZUZvckJpbmRpbmdzKCk7
Ci0gICAgICAgIHN0YXRpYyBSZWY8VGV4dEV2ZW50PiBjcmVhdGVGb3JQbGFpblRleHRQYXN0ZShB
YnN0cmFjdFZpZXcqLCBjb25zdCBTdHJpbmcmIGRhdGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNl
KTsKLSAgICAgICAgc3RhdGljIFJlZjxUZXh0RXZlbnQ+IGNyZWF0ZUZvckZyYWdtZW50UGFzdGUo
QWJzdHJhY3RWaWV3KiwgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+JiYgZGF0YSwgYm9vbCBzaG91
bGRTbWFydFJlcGxhY2UsIGJvb2wgc2hvdWxkTWF0Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5k
bGluZyk7Ci0gICAgICAgIHN0YXRpYyBSZWY8VGV4dEV2ZW50PiBjcmVhdGVGb3JEcm9wKEFic3Ry
YWN0VmlldyosIGNvbnN0IFN0cmluZyYgZGF0YSk7Ci0gICAgICAgIHN0YXRpYyBSZWY8VGV4dEV2
ZW50PiBjcmVhdGVGb3JEaWN0YXRpb24oQWJzdHJhY3RWaWV3KiwgY29uc3QgU3RyaW5nJiBkYXRh
LCBjb25zdCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBkaWN0YXRpb25BbHRlcm5hdGl2
ZXMpOworICAgICAgICBzdGF0aWMgUmVmPFRleHRFdmVudD4gY3JlYXRlRm9yUGxhaW5UZXh0UGFz
dGUoRE9NV2luZG93KiwgY29uc3QgU3RyaW5nJiBkYXRhLCBib29sIHNob3VsZFNtYXJ0UmVwbGFj
ZSk7CisgICAgICAgIHN0YXRpYyBSZWY8VGV4dEV2ZW50PiBjcmVhdGVGb3JGcmFnbWVudFBhc3Rl
KERPTVdpbmRvdyosIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYmIGRhdGEsIGJvb2wgc2hvdWxk
U21hcnRSZXBsYWNlLCBib29sIHNob3VsZE1hdGNoU3R5bGUsIE1haWxCbG9ja3F1b3RlSGFuZGxp
bmcpOworICAgICAgICBzdGF0aWMgUmVmPFRleHRFdmVudD4gY3JlYXRlRm9yRHJvcChET01XaW5k
b3cqLCBjb25zdCBTdHJpbmcmIGRhdGEpOworICAgICAgICBzdGF0aWMgUmVmPFRleHRFdmVudD4g
Y3JlYXRlRm9yRGljdGF0aW9uKERPTVdpbmRvdyosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3Qg
VmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTsKIAog
ICAgICAgICB2aXJ0dWFsIH5UZXh0RXZlbnQoKTsKICAgICAKLSAgICAgICAgdm9pZCBpbml0VGV4
dEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2Fu
Y2VsYWJsZSwgQWJzdHJhY3RWaWV3KiwgY29uc3QgU3RyaW5nJiBkYXRhKTsKKyAgICAgICAgdm9p
ZCBpbml0VGV4dEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgRE9NV2luZG93KiwgY29uc3QgU3RyaW5nJiBkYXRhKTsKICAgICAK
ICAgICAgICAgU3RyaW5nIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KIApAQCAtNzAs
OSArNzAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgVGV4
dEV2ZW50KCk7CiAKLSAgICAgICAgVGV4dEV2ZW50KEFic3RyYWN0VmlldyosIGNvbnN0IFN0cmlu
ZyYgZGF0YSwgVGV4dEV2ZW50SW5wdXRUeXBlID0gVGV4dEV2ZW50SW5wdXRLZXlib2FyZCk7Ci0g
ICAgICAgIFRleHRFdmVudChBYnN0cmFjdFZpZXcqLCBjb25zdCBTdHJpbmcmIGRhdGEsIFJlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiYmLCBib29sIHNob3VsZFNtYXJ0UmVwbGFjZSwgYm9vbCBzaG91
bGRNYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nKTsKLSAgICAgICAgVGV4dEV2ZW50
KEFic3RyYWN0VmlldyosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgVmVjdG9yPERpY3RhdGlv
bkFsdGVybmF0aXZlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTsKKyAgICAgICAgVGV4dEV2ZW50
KERPTVdpbmRvdyosIGNvbnN0IFN0cmluZyYgZGF0YSwgVGV4dEV2ZW50SW5wdXRUeXBlID0gVGV4
dEV2ZW50SW5wdXRLZXlib2FyZCk7CisgICAgICAgIFRleHRFdmVudChET01XaW5kb3cqLCBjb25z
dCBTdHJpbmcmIGRhdGEsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYmLCBib29sIHNob3VsZFNt
YXJ0UmVwbGFjZSwgYm9vbCBzaG91bGRNYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5n
KTsKKyAgICAgICAgVGV4dEV2ZW50KERPTVdpbmRvdyosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29u
c3QgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTsK
IAogICAgICAgICBib29sIGlzVGV4dEV2ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vVG91Y2hFdmVudC5jcHAJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9Ub3VjaEV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBU
b3VjaEV2ZW50OjpUb3VjaEV2ZW50KCkKIAogVG91Y2hFdmVudDo6VG91Y2hFdmVudChUb3VjaExp
c3QqIHRvdWNoZXMsIFRvdWNoTGlzdCogdGFyZ2V0VG91Y2hlcywKICAgICAgICAgVG91Y2hMaXN0
KiBjaGFuZ2VkVG91Y2hlcywgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCAKLSAgICAgICAgQWJz
dHJhY3RWaWV3KiB2aWV3LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50
IHBhZ2VZLAorICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVu
WSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRL
ZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKICAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVl
blgsIHNjcmVlblkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBh
Z2VZKSwKQEAgLTY5LDcgKzY5LDcgQEAgVG91Y2hFdmVudDo6flRvdWNoRXZlbnQoKQogCiB2b2lk
IFRvdWNoRXZlbnQ6OmluaXRUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0
KiB0YXJnZXRUb3VjaGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIAotICAgICAgICBBYnN0cmFjdFZpZXcqIHZpZXcsIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLAorICAgICAgICBE
T01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGlu
dCBjbGllbnRZLAogICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0
S2V5LCBib29sIG1ldGFLZXkpCiB7CiAgICAgaWYgKGRpc3BhdGNoZWQoKSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL1RvdWNoRXZlbnQuaAkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L1RvdWNoRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgUmVmPFRvdWNoRXZlbnQ+IGNyZWF0ZShUb3VjaExpc3QqIHRvdWNoZXMsIAog
ICAgICAgICAgICAgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLCBUb3VjaExpc3QqIGNoYW5nZWRU
b3VjaGVzLCAKLSAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQWJzdHJhY3RW
aWV3KiB2aWV3LAorICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBET01XaW5k
b3cqIHZpZXcsCiAgICAgICAgICAgICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdl
WCwgaW50IHBhZ2VZLAogICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9v
bCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQogICAgIHsKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBpbml0VG91Y2hFdmVudChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlz
dCogdGFyZ2V0VG91Y2hlcywKICAgICAgICAgICAgIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMs
IGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgCi0gICAgICAgICAgICBBYnN0cmFjdFZpZXcqLCBp
bnQgc2NyZWVuWCwgaW50IHNjcmVlblksCisgICAgICAgICAgICBET01XaW5kb3cqLCBpbnQgc2Ny
ZWVuWCwgaW50IHNjcmVlblksCiAgICAgICAgICAgICBpbnQgY2xpZW50WCwgaW50IGNsaWVudFks
CiAgICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBi
b29sIG1ldGFLZXkpOwogCkBAIC04Nyw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgVG91Y2hFdmVu
dCgpOwogICAgIFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdl
dFRvdWNoZXMsCiAgICAgICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsCi0gICAgICAgICAgICBBYnN0cmFjdFZpZXcqLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwKKyAgICAgICAgICAgIERPTVdpbmRvdyosIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLAogICAgICAgICAgICAgaW50IHBhZ2VZLAog
ICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5KTsKICAgICBUb3VjaEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFRv
dWNoRXZlbnRJbml0Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCShyZXZpc2lvbiAyMDQ2
NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDE0ICszMiwxNCBAQCBVSUV2ZW50OjpVSUV2ZW50KCkKIHsKIH0KIAotVUlFdmVudDo6VUlF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJv
b2wgY2FuY2VsYWJsZUFyZywgQWJzdHJhY3RWaWV3KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQor
VUlFdmVudDo6VUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5C
dWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgRE9NV2luZG93KiB2aWV3QXJnLCBpbnQgZGV0
YWlsQXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVB
cmcpCiAgICAgLCBtX3ZpZXcodmlld0FyZykKICAgICAsIG1fZGV0YWlsKGRldGFpbEFyZykKIHsK
IH0KIAotVUlFdmVudDo6VUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9v
bCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgZG91YmxlIHRpbWVzdGFtcCwgQWJz
dHJhY3RWaWV3KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQorVUlFdmVudDo6VUlFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2Vs
YWJsZUFyZywgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3QXJnLCBpbnQgZGV0YWls
QXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcs
IHRpbWVzdGFtcCkKICAgICAsIG1fdmlldyh2aWV3QXJnKQogICAgICwgbV9kZXRhaWwoZGV0YWls
QXJnKQpAQCAtNTcsNyArNTcsNyBAQCBVSUV2ZW50Ojp+VUlFdmVudCgpCiB7CiB9CiAKLXZvaWQg
VUlFdmVudDo6aW5pdFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlQXJnLCBib29sIGNh
bkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBBYnN0cmFjdFZpZXcqIHZpZXdBcmcsIGlu
dCBkZXRhaWxBcmcpCit2b2lkIFVJRXZlbnQ6OmluaXRVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZUFyZywgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgRE9NV2lu
ZG93KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQogewogICAgIGlmIChkaXNwYXRjaGVkKCkpCiAg
ICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAkocmV2aXNpb24gMjA0Njc5KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTYg
KzI5LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdHlwZWRlZiBET01XaW5kb3cgQWJz
dHJhY3RWaWV3OwotCiBzdHJ1Y3QgVUlFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0IHsKLSAg
ICBSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3OworICAgIFJlZlB0cjxET01XaW5kb3c+IHZpZXc7
CiAgICAgaW50IGRldGFpbCB7IDAgfTsKIH07CiAKIGNsYXNzIFVJRXZlbnQgOiBwdWJsaWMgRXZl
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VUlFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RW
aWV3KiB2aWV3LCBpbnQgZGV0YWlsKQorICAgIHN0YXRpYyBSZWY8VUlFdmVudD4gY3JlYXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwg
RE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVUlFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHZpZXcsIGRldGFp
bCkpOwogICAgIH0KQEAgLTUyLDkgKzUwLDkgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFs
IH5VSUV2ZW50KCk7CiAKLSAgICB2b2lkIGluaXRVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgQWJzdHJhY3RWaWV3KiwgaW50
IGRldGFpbCk7CisgICAgdm9pZCBpbml0VUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGludCBkZXRhaWwp
OwogCi0gICAgQWJzdHJhY3RWaWV3KiB2aWV3KCkgY29uc3QgeyByZXR1cm4gbV92aWV3LmdldCgp
OyB9CisgICAgRE9NV2luZG93KiB2aWV3KCkgY29uc3QgeyByZXR1cm4gbV92aWV3LmdldCgpOyB9
CiAgICAgaW50IGRldGFpbCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV0YWlsOyB9CiAKICAgICBFdmVu
dEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNzIsMTQgKzcw
LDE0IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFVJRXZlbnQoKTsKLSAgICBVSUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgQWJzdHJhY3RWaWV3KiwgaW50IGRldGFpbCk7Ci0gICAgVUlFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1l
c3RhbXAsIEFic3RyYWN0VmlldyosIGludCBkZXRhaWwpOworICAgIFVJRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5k
b3cqLCBpbnQgZGV0YWlsKTsKKyAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2lu
ZG93KiwgaW50IGRldGFpbCk7CiAgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBjb25z
dCBVSUV2ZW50SW5pdCYpOwogCiBwcml2YXRlOgogICAgIGJvb2wgaXNVSUV2ZW50KCkgY29uc3Qg
ZmluYWw7CiAKLSAgICBSZWZQdHI8QWJzdHJhY3RWaWV3PiBtX3ZpZXc7CisgICAgUmVmUHRyPERP
TVdpbmRvdz4gbV92aWV3OwogICAgIGludCBtX2RldGFpbDsKIH07CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAkocmV2aXNpb24gMjA0Njc5KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NTEsNyArNTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgIH0KIAotICAgIFVJRXZlbnRXaXRo
S2V5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBBYnN0cmFjdFZpZXcqIHZpZXcsIGludCBkZXRhaWwsIGJvb2wgY3RybEtleSwg
Ym9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKKyAgICBVSUV2ZW50V2l0
aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wg
Y2FuY2VsYWJsZSwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBib29sIGN0cmxLZXksIGJv
b2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpCiAgICAgICAgIDogVUlFdmVu
dCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHZpZXcsIGRldGFpbCkKICAgICAgICAgLCBt
X2N0cmxLZXkoY3RybEtleSkKICAgICAgICAgLCBtX2FsdEtleShhbHRLZXkpCkBAIC02MCw3ICs2
MCw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdpdGhLZXlTdGF0
ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIGRvdWJsZSB0aW1lc3RhbXAsIEFic3RyYWN0VmlldyogdmlldywgaW50IGRldGFpbCwgYm9v
bCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQorICAg
IFVJRXZlbnRXaXRoS2V5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1
YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcs
IGludCBkZXRhaWwsIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJv
b2wgbWV0YUtleSkKICAgICAgICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJs
ZSwgdGltZXN0YW1wLCB2aWV3LCBkZXRhaWwpCiAgICAgICAgICwgbV9jdHJsS2V5KGN0cmxLZXkp
CiAgICAgICAgICwgbV9hbHRLZXkoYWx0S2V5KQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50
LmNwcAkocmV2aXNpb24gMjA0Njc5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIFdoZWVsRXZlbnQ6OldoZWVsRXZl
bnQoY29uc3QgQXRvbWljU3RyaW4KIHsKIH0KIAotV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBBYnN0cmFjdFZpZXcqIHZpZXcpCitXaGVlbEV2
ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIERPTVdpbmRv
dyogdmlldykKICAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndoZWVsRXZlbnQsIHRydWUs
IHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LCAwLCBldmVudC5nbG9iYWxQb3NpdGlvbigp
LngoKSwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCkueCgpLCBl
dmVudC5wb3NpdGlvbigpLnkoKQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAg
ICAgICAgLCAwLCAwCkBAIC04MSw3ICs4MSw3IEBAIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGUKIHsKIH0KIAotdm9pZCBXaGVlbEV2ZW50Ojppbml0V2hlZWxFdmVudChp
bnQgcmF3RGVsdGFYLCBpbnQgcmF3RGVsdGFZLCBBYnN0cmFjdFZpZXcqIHZpZXcsIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGJvb2wgY3RybEtleSwgYm9v
bCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKK3ZvaWQgV2hlZWxFdmVudDo6
aW5pdFdoZWVsRXZlbnQoaW50IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgRE9NV2luZG93KiB2
aWV3LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLCBib29s
IGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpCiB7CiAg
ICAgaWYgKGRpc3BhdGNoZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTA0LDcgKzEwNCw3IEBA
IHZvaWQgV2hlZWxFdmVudDo6aW5pdFdoZWVsRXZlbnQoaW50IHJhd0QKICAgICBpbml0Q29vcmRp
bmF0ZXMoSW50UG9pbnQocGFnZVgsIHBhZ2VZKSk7CiB9CiAKLXZvaWQgV2hlZWxFdmVudDo6aW5p
dFdlYktpdFdoZWVsRXZlbnQoaW50IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgQWJzdHJhY3RW
aWV3KiB2aWV3LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZ
LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkp
Cit2b2lkIFdoZWVsRXZlbnQ6OmluaXRXZWJLaXRXaGVlbEV2ZW50KGludCByYXdEZWx0YVgsIGlu
dCByYXdEZWx0YVksIERPTVdpbmRvdyogdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBp
bnQgcGFnZVgsIGludCBwYWdlWSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlm
dEtleSwgYm9vbCBtZXRhS2V5KQogewogICAgIGluaXRXaGVlbEV2ZW50KHJhd0RlbHRhWCwgcmF3
RGVsdGFZLCB2aWV3LCBzY3JlZW5YLCBzY3JlZW5ZLCBwYWdlWCwgcGFnZVksIGN0cmxLZXksIGFs
dEtleSwgc2hpZnRLZXksIG1ldGFLZXkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5o
CShyZXZpc2lvbiAyMDQ2NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgRE9NX0RFTFRB
X1BBR0UKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxXaGVlbEV2ZW50PiBjcmVhdGUoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgQWJzdHJhY3RWaWV3KiB2aWV3KQorICAgIHN0YXRp
YyBSZWY8V2hlZWxFdmVudD4gY3JlYXRlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQs
IERPTVdpbmRvdyogdmlldykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdo
ZWVsRXZlbnQoZXZlbnQsIHZpZXcpKTsKICAgICB9CkBAIC02OSwxMSArNjksMTEgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXaGVlbEV2ZW50KHR5cGUsIGluaXRpYWxp
emVyKSk7CiAgICAgfQogCi0gICAgdm9pZCBpbml0V2hlZWxFdmVudChpbnQgcmF3RGVsdGFYLCBp
bnQgcmF3RGVsdGFZLCBBYnN0cmFjdFZpZXcqLAorICAgIHZvaWQgaW5pdFdoZWVsRXZlbnQoaW50
IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgRE9NV2luZG93KiwKICAgICAgICAgaW50IHNjcmVl
blgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICAgICAgICAgYm9vbCBjdHJs
S2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KTsKIAotICAgIHZv
aWQgaW5pdFdlYktpdFdoZWVsRXZlbnQoaW50IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgQWJz
dHJhY3RWaWV3KiwKKyAgICB2b2lkIGluaXRXZWJLaXRXaGVlbEV2ZW50KGludCByYXdEZWx0YVgs
IGludCByYXdEZWx0YVksIERPTVdpbmRvdyosCiAgICAgICAgIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CiAKQEAgLTk4LDcgKzk4LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBXaGVlbEV2ZW50KCk7CiAgICAgV2hlZWxFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmLCBjb25zdCBXaGVlbEV2ZW50SW5pdCYpOwotICAgIFdoZWVsRXZlbnQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgQWJzdHJhY3RWaWV3Kik7CisgICAgV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBET01XaW5kb3cqKTsKIAogICAgIGJvb2wgaXNX
aGVlbEV2ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
QWJzdHJhY3RWaWV3LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Fic3Ry
YWN0Vmlldy5pZGwJKHJldmlzaW9uIDIwNDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQWJz
dHJhY3RWaWV3LmlkbAkobm9uZXhpc3RlbnQpCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLS8vIEludHJvZHVjZWQgaW4g
RE9NIExldmVsIDI6Ci1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgT2JqQ0N1c3RvbUlt
cGxlbWVudGF0aW9uLAotXSBpbnRlcmZhY2UgQWJzdHJhY3RWaWV3IHsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgRG9jdW1lbnQgZG9jdW1lbnQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0eWxl
TWVkaWEgc3R5bGVNZWRpYTsKLX07Ci0KClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvQWJzdHJhY3RWaWV3LmlkbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5
bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
</data>
<flag name="review"
          id="310071"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>