<?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>96319</bug_id>
          
          <creation_ts>2012-09-10 14:31:40 -0700</creation_ts>
          <short_desc>Rename box-sizing applying methods to be more clear about just applying box-sizing.</short_desc>
          <delta_ts>2012-09-10 16:55:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Ojan Vafai">ojan</assigned_to>
          <cc>eric</cc>
    
    <cc>mifenton</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>716519</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-10 14:31:40 -0700</bug_when>
    <thetext>Rename box-sizing applying methods to be more clear about just applying box-sizing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716520</commentid>
    <comment_count>1</comment_count>
      <attachid>163210</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-10 14:33:23 -0700</bug_when>
    <thetext>Created attachment 163210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716524</commentid>
    <comment_count>2</comment_count>
      <attachid>163210</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-10 14:39:31 -0700</bug_when>
    <thetext>Comment on attachment 163210
Patch

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

&gt; Source/WebCore/rendering/AutoTableLayout.cpp:96
&gt; +                            LayoutUnit logicalWidth = cell-&gt;adjustBorderLogicalWidthForBoxSizing(cellLogicalWidth.value());

Nit: I would call it adjustBorderBoxLogicalWidthForBoxSizing to make it clear that we&apos;re not talking about the border width.

&gt; Source/WebCore/rendering/RenderBlock.cpp:5555
&gt; +        m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = adjustContentLogicalWidthForBoxSizing(styleToUse-&gt;logicalWidth().value());

Nit: adjustContentBoxLogicalWidthForBoxSizing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716551</commentid>
    <comment_count>3</comment_count>
      <attachid>163214</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-10 14:50:49 -0700</bug_when>
    <thetext>Created attachment 163214
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716689</commentid>
    <comment_count>4</comment_count>
      <attachid>163214</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 16:55:15 -0700</bug_when>
    <thetext>Comment on attachment 163214
Patch for landing

Clearing flags on attachment: 163214

Committed r128130: &lt;http://trac.webkit.org/changeset/128130&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716690</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 16:55:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163210</attachid>
            <date>2012-09-10 14:33:23 -0700</date>
            <delta_ts>2012-09-10 14:50:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96319-20120910143259.patch</filename>
            <type>text/plain</type>
            <size>42669</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM0M2M3OTExMTFhMmVm
NTFkOGU5MTI4ZGJiYmM0MWUwMWU5ZWFhYy4uMzBkYzBhNjMwMzdhYjk0ZTljOTRjY2IwYmM1NWVm
MGZmMTEzNDNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA5LTEwICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVuYW1lIGJveC1zaXppbmcg
YXBwbHlpbmcgbWV0aG9kcyB0byBiZSBtb3JlIGNsZWFyIGFib3V0IGp1c3QgYXBwbHlpbmcgYm94
LXNpemluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk2MzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBpcyBzdHJpY3RseSBhIHJlbmFtZS4gTm8gbG9naWMgb3Igd2ViLWV4cG9zZWQgY2hhbmdl
cy4KKworICAgICAgICAqIHJlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXV0b1RhYmxlTGF5b3V0OjpyZWNhbGNDb2x1bW4pOgorICAgICAgICAqIHJlbmRl
cmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpeGVkVGFibGVM
YXlvdXQ6OmNhbGNXaWR0aEFycmF5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVQcmVmZXJyZWRMb2dp
Y2FsV2lkdGhzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6YWRqdXN0Qm9yZGVyTG9naWNhbFdpZHRoRm9yQm94U2l6aW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YWRqdXN0Qm9yZGVyTG9naWNhbEhlaWdo
dEZvckJveFNpemluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmFkanVzdENvbnRl
bnRMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94
OjphZGp1c3RDb250ZW50TG9naWNhbEhlaWdodEZvckJveFNpemluZyk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3g6OnBlcnBlbmRpY3VsYXJDb250YWluaW5nQmxvY2tMb2dpY2FsSGVpZ2h0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxXaWR0aEluUmVn
aW9uVXNpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhl
aWdodFVzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxD
bGllbnRIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUGVyY2Vu
dGFnZUxvZ2ljYWxIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRl
UmVwbGFjZWRMb2dpY2FsV2lkdGhVc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6OmF2YWlsYWJsZUxvZ2ljYWxIZWlnaHRVc2luZyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWlnaHRVc2lu
Zyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6Y29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBs
b2FkQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJv
eDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRmxleGlibGVCb3g6OmNvbXB1dGVNYWluQXhpc0V4dGVudEZvckNoaWxkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
aXN0Qm94Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0
Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OmNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKwogMjAxMi0wOS0xMCAgQW5kZXJzIENhcmxzc29uICA8
YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbGVuY2UgYSB3YXJuaW5nIHdoZW4gcnVu
bmluZyB1cGRhdGUtd2Via2l0LWxvY2FsaXphYmxlLXN0cmluZ3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAKaW5kZXggM2E1Y2IwZGRhYTU3ZDMyMjI0NzA0
ZTcxNzU5NmNhOGE0NzJhY2E5MS4uOWJmN2M2YTdlZjg1NDNmMzQ5YjY0Yjk2ZDdlMDYxZDAyZTRl
NGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHAK
QEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbih1bnNp
Z25lZCBlZmZDb2wpCiAgICAgICAgICAgICAgICAgICAgIGNhc2UgRml4ZWQ6CiAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBpZ25vcmUgd2lkdGg9MAogICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGNlbGxMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpICYmICFjb2x1bW5MYXlvdXQubG9naWNh
bFdpZHRoLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGggPSBjZWxsLT5jb21wdXRlQm9yZGVyQm94TG9naWNhbFdpZHRoKGNl
bGxMb2dpY2FsV2lkdGgudmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGggPSBjZWxsLT5hZGp1c3RCb3JkZXJMb2dpY2FsV2lkdGhGb3JC
b3hTaXppbmcoY2VsbExvZ2ljYWxXaWR0aC52YWx1ZSgpKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoY29sdW1uTGF5b3V0LmxvZ2ljYWxXaWR0aC5pc0ZpeGVkKCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmF2L0lFIHdlaXJkbmVzcwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGxvZ2ljYWxXaWR0aCA+IGNvbHVtbkxheW91dC5s
b2dpY2FsV2lkdGgudmFsdWUoKSkgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRml4ZWRUYWJsZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRU
YWJsZUxheW91dC5jcHAKaW5kZXggODY0OWEwOGQzYzExMjVmZWVjNTY3ZjE0MDE2MjliZDFkZDUw
YzIyNC4uYWViM2JhOTZiOTQwNWZkMjEyN2NhMWY2MzA2MzkxYjUzNTk0ZWRhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcApAQCAtMTQ1LDcgKzE0
NSw3IEBAIGludCBGaXhlZFRhYmxlTGF5b3V0OjpjYWxjV2lkdGhBcnJheShpbnQpCiAgICAgICAg
IHVuc2lnbmVkIHNwYW4gPSBjZWxsLT5jb2xTcGFuKCk7CiAgICAgICAgIGludCBmaXhlZEJvcmRl
ckJveExvZ2ljYWxXaWR0aCA9IDA7CiAgICAgICAgIGlmIChsb2dpY2FsV2lkdGguaXNGaXhlZCgp
ICYmIGxvZ2ljYWxXaWR0aC5pc1Bvc2l0aXZlKCkpIHsKLSAgICAgICAgICAgIGZpeGVkQm9yZGVy
Qm94TG9naWNhbFdpZHRoID0gY2VsbC0+Y29tcHV0ZUJvcmRlckJveExvZ2ljYWxXaWR0aChsb2dp
Y2FsV2lkdGgudmFsdWUoKSk7CisgICAgICAgICAgICBmaXhlZEJvcmRlckJveExvZ2ljYWxXaWR0
aCA9IGNlbGwtPmFkanVzdEJvcmRlckxvZ2ljYWxXaWR0aEZvckJveFNpemluZyhsb2dpY2FsV2lk
dGgudmFsdWUoKSk7CiAgICAgICAgICAgICBsb2dpY2FsV2lkdGguc2V0VmFsdWUoZml4ZWRCb3Jk
ZXJCb3hMb2dpY2FsV2lkdGgpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCmluZGV4IDEwMjE2YmMwMDc4YWNjMTNkZTk1ODAyNzFiNjk4ODQwMTAy
YTVhMGIuLmYxY2M0YjAxNmUwMDk0ZTk0NDBlNGRmMTJmYWMzYzBlZTE5MWQ0MjAgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNTU1Miw3ICs1NTUyLDcgQEAg
dm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQogICAgIFJl
bmRlclN0eWxlKiBzdHlsZVRvVXNlID0gc3R5bGUoKTsKICAgICBpZiAoIWlzVGFibGVDZWxsKCkg
JiYgc3R5bGVUb1VzZS0+bG9naWNhbFdpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlVG9Vc2UtPmxv
Z2ljYWxXaWR0aCgpLnZhbHVlKCkgPj0gMCAKICAgICAgICAmJiBzdHlsZSgpLT5tYXJxdWVlQmVo
YXZpb3IoKSAhPSBNQUxURVJOQVRFICYmICEoaXNEZXByZWNhdGVkRmxleEl0ZW0oKSAmJiAhc3R5
bGVUb1VzZS0+bG9naWNhbFdpZHRoKCkuaW50VmFsdWUoKSkpCi0gICAgICAgIG1fbWluUHJlZmVy
cmVkTG9naWNhbFdpZHRoID0gbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBjb21wdXRlQ29u
dGVudEJveExvZ2ljYWxXaWR0aChzdHlsZVRvVXNlLT5sb2dpY2FsV2lkdGgoKS52YWx1ZSgpKTsK
KyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX21heFByZWZlcnJlZExvZ2lj
YWxXaWR0aCA9IGFkanVzdENvbnRlbnRMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGVUb1Vz
ZS0+bG9naWNhbFdpZHRoKCkudmFsdWUoKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIG1fbWluUHJl
ZmVycmVkTG9naWNhbFdpZHRoID0gMDsKICAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lk
dGggPSAwOwpAQCAtNTU4NCw3ICs1NTg0LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQogICAgICAgICBpZiAoaXNUYWJsZUNlbGwoKSkgewogICAg
ICAgICAgICAgTGVuZ3RoIHcgPSB0b1JlbmRlclRhYmxlQ2VsbCh0aGlzKS0+c3R5bGVPckNvbExv
Z2ljYWxXaWR0aCgpOwogICAgICAgICAgICAgaWYgKHcuaXNGaXhlZCgpICYmIHcudmFsdWUoKSA+
IDApIHsKLSAgICAgICAgICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heCht
X21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgo
dy52YWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgg
PSBtYXgobV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRlbnRMb2dpY2FsV2lk
dGhGb3JCb3hTaXppbmcody52YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgc2Nyb2xsYmFyV2lk
dGggPSAwOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC01NTkzLDEzICs1NTkzLDEzIEBA
IHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAgICB9
CiAgICAgCiAgICAgaWYgKHN0eWxlVG9Vc2UtPmxvZ2ljYWxNaW5XaWR0aCgpLmlzRml4ZWQoKSAm
JiBzdHlsZVRvVXNlLT5sb2dpY2FsTWluV2lkdGgoKS52YWx1ZSgpID4gMCkgewotICAgICAgICBt
X21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heChtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0
aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGVUb1VzZS0+bG9naWNhbE1pbldp
ZHRoKCkudmFsdWUoKSkpOwotICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1h
eChtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lk
dGgoc3R5bGVUb1VzZS0+bG9naWNhbE1pbldpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21h
eFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heChtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCwg
YWRqdXN0Q29udGVudExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhzdHlsZVRvVXNlLT5sb2dpY2Fs
TWluV2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRo
ID0gbWF4KG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RDb250ZW50TG9naWNhbFdp
ZHRoRm9yQm94U2l6aW5nKHN0eWxlVG9Vc2UtPmxvZ2ljYWxNaW5XaWR0aCgpLnZhbHVlKCkpKTsK
ICAgICB9CiAgICAgCiAgICAgaWYgKHN0eWxlVG9Vc2UtPmxvZ2ljYWxNYXhXaWR0aCgpLmlzRml4
ZWQoKSkgewotICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21heFBy
ZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGVU
b1VzZS0+bG9naWNhbE1heFdpZHRoKCkudmFsdWUoKSkpOwotICAgICAgICBtX21pblByZWZlcnJl
ZExvZ2ljYWxXaWR0aCA9IG1pbihtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNv
bnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGVUb1VzZS0+bG9naWNhbE1heFdpZHRoKCkudmFsdWUo
KSkpOworICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21heFByZWZl
cnJlZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhz
dHlsZVRvVXNlLT5sb2dpY2FsTWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWluUHJl
ZmVycmVkTG9naWNhbFdpZHRoID0gbWluKG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1
c3RDb250ZW50TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlVG9Vc2UtPmxvZ2ljYWxNYXhX
aWR0aCgpLnZhbHVlKCkpKTsKICAgICB9CiAKICAgICBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRp
bmcgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCmluZGV4IDc5MmI5YzI4YmU5MTBlOTRmZjk3ZDVmN2FiNGU2N2EyMmIz
ZmQzYmEuLjJhZmFhNzYyYWZlZDcxZDk5MWE1YjEwNzcxNTk4NDE0YjZlMzU0YWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC03MDcsNyArNzA3LDcgQEAgTGF5b3V0
VW5pdCBSZW5kZXJCb3g6Om92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKSBjb25zdAogICAg
IHJldHVybiBoYXNPdmVycmlkZUhlaWdodCgpID8gZ092ZXJyaWRlSGVpZ2h0TWFwLT5nZXQodGhp
cykgOiBjb250ZW50SGVpZ2h0KCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRl
Qm9yZGVyQm94TG9naWNhbFdpZHRoKExheW91dFVuaXQgd2lkdGgpIGNvbnN0CitMYXlvdXRVbml0
IFJlbmRlckJveDo6YWRqdXN0Qm9yZGVyTG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKExheW91dFVu
aXQgd2lkdGgpIGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCBib3JkZXJzUGx1c1BhZGRpbmcgPSBi
b3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCk7CiAgICAgaWYgKHN0eWxlKCktPmJveFNpemlu
ZygpID09IENPTlRFTlRfQk9YKQpAQCAtNzE1LDcgKzcxNSw3IEBAIExheW91dFVuaXQgUmVuZGVy
Qm94Ojpjb21wdXRlQm9yZGVyQm94TG9naWNhbFdpZHRoKExheW91dFVuaXQgd2lkdGgpIGNvbnN0
CiAgICAgcmV0dXJuIG1heCh3aWR0aCwgYm9yZGVyc1BsdXNQYWRkaW5nKTsKIH0KIAotTGF5b3V0
VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVCb3JkZXJCb3hMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQg
aGVpZ2h0KSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmFkanVzdEJvcmRlckxvZ2ljYWxI
ZWlnaHRGb3JCb3hTaXppbmcoTGF5b3V0VW5pdCBoZWlnaHQpIGNvbnN0CiB7CiAgICAgTGF5b3V0
VW5pdCBib3JkZXJzUGx1c1BhZGRpbmcgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgp
OwogICAgIGlmIChzdHlsZSgpLT5ib3hTaXppbmcoKSA9PSBDT05URU5UX0JPWCkKQEAgLTcyMywx
NCArNzIzLDE0IEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlQm9yZGVyQm94TG9naWNh
bEhlaWdodChMYXlvdXRVbml0IGhlaWdodCkgY29uc3QKICAgICByZXR1cm4gbWF4KGhlaWdodCwg
Ym9yZGVyc1BsdXNQYWRkaW5nKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVD
b250ZW50Qm94TG9naWNhbFdpZHRoKExheW91dFVuaXQgd2lkdGgpIGNvbnN0CitMYXlvdXRVbml0
IFJlbmRlckJveDo6YWRqdXN0Q29udGVudExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhMYXlvdXRV
bml0IHdpZHRoKSBjb25zdAogewogICAgIGlmIChzdHlsZSgpLT5ib3hTaXppbmcoKSA9PSBCT1JE
RVJfQk9YKQogICAgICAgICB3aWR0aCAtPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCk7
CiAgICAgcmV0dXJuIG1heDxMYXlvdXRVbml0PigwLCB3aWR0aCk7CiB9CiAKLUxheW91dFVuaXQg
UmVuZGVyQm94Ojpjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBoZWln
aHQpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6YWRqdXN0Q29udGVudExvZ2ljYWxIZWln
aHRGb3JCb3hTaXppbmcoTGF5b3V0VW5pdCBoZWlnaHQpIGNvbnN0CiB7CiAgICAgaWYgKHN0eWxl
KCktPmJveFNpemluZygpID09IEJPUkRFUl9CT1gpCiAgICAgICAgIGhlaWdodCAtPSBib3JkZXJB
bmRQYWRkaW5nTG9naWNhbEhlaWdodCgpOwpAQCAtMTI0NCw3ICsxMjQ0LDcgQEAgTGF5b3V0VW5p
dCBSZW5kZXJCb3g6OnBlcnBlbmRpY3VsYXJDb250YWluaW5nQmxvY2tMb2dpY2FsSGVpZ2h0KCkg
Y29uc3QKICAgICB9CiAgICAgCiAgICAgLy8gVXNlIHRoZSBjb250ZW50IGJveCBsb2dpY2FsIGhl
aWdodCBhcyBzcGVjaWZpZWQgYnkgdGhlIHN0eWxlLgotICAgIHJldHVybiBjYi0+Y29tcHV0ZUNv
bnRlbnRCb3hMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHRMZW5ndGgudmFsdWUoKSk7CisgICAg
cmV0dXJuIGNiLT5hZGp1c3RDb250ZW50TG9naWNhbEhlaWdodEZvckJveFNpemluZyhsb2dpY2Fs
SGVpZ2h0TGVuZ3RoLnZhbHVlKCkpOwogfQogCiB2b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBMb2NhbFRvQ29udGFpbmVyRmxhZ3MgbW9kZSwgYm9v
bCogd2FzRml4ZWQpIGNvbnN0CkBAIC0xNzMyLDExICsxNzMyLDExIEBAIExheW91dFVuaXQgUmVu
ZGVyQm94Ojpjb21wdXRlTG9naWNhbFdpZHRoSW5SZWdpb25Vc2luZyhTaXplVHlwZSB3aWR0aFR5
cGUsIExheW91CiAgICAgQVNTRVJUKCFsb2dpY2FsV2lkdGguaXNVbmRlZmluZWQoKSk7CiAKICAg
ICBpZiAod2lkdGhUeXBlID09IE1pblNpemUgJiYgbG9naWNhbFdpZHRoLmlzQXV0bygpKQotICAg
ICAgICByZXR1cm4gY29tcHV0ZUJvcmRlckJveExvZ2ljYWxXaWR0aCgwKTsKKyAgICAgICAgcmV0
dXJuIGFkanVzdEJvcmRlckxvZ2ljYWxXaWR0aEZvckJveFNpemluZygwKTsKICAgICAKICAgICBp
ZiAoIWxvZ2ljYWxXaWR0aC5pc0ludHJpbnNpY09yQXV0bygpKSB7CiAgICAgICAgIC8vIEZJWE1F
OiBJZiB0aGUgY29udGFpbmluZyBibG9jayBmbG93IGlzIHBlcnBlbmRpY3VsYXIgdG8gb3VyIGRp
cmVjdGlvbiB3ZSBuZWVkIHRvIHVzZSB0aGUgYXZhaWxhYmxlIGxvZ2ljYWwgaGVpZ2h0IGluc3Rl
YWQuCi0gICAgICAgIHJldHVybiBjb21wdXRlQm9yZGVyQm94TG9naWNhbFdpZHRoKHZhbHVlRm9y
TGVuZ3RoKGxvZ2ljYWxXaWR0aCwgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCB2aWV3KCkpKTsKKyAg
ICAgICAgcmV0dXJuIGFkanVzdEJvcmRlckxvZ2ljYWxXaWR0aEZvckJveFNpemluZyh2YWx1ZUZv
ckxlbmd0aChsb2dpY2FsV2lkdGgsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgdmlldygpKSk7CiAg
ICAgfQogCiAgICAgaWYgKGxvZ2ljYWxXaWR0aC50eXBlKCkgPT0gTWluQ29udGVudCkKQEAgLTIw
OTEsNyArMjA5MSw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhlaWdo
dFVzaW5nKFNpemVUeXBlIGhlaWdodFR5cGUsIGNvbnN0IExlbmd0CiB7CiAgICAgTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0ID0gY29tcHV0ZUNvbnRlbnRMb2dpY2FsSGVpZ2h0VXNpbmcoaGVpZ2h0
VHlwZSwgaGVpZ2h0KTsKICAgICBpZiAobG9naWNhbEhlaWdodCAhPSAtMSkKLSAgICAgICAgbG9n
aWNhbEhlaWdodCA9IGNvbXB1dGVCb3JkZXJCb3hMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQp
OworICAgICAgICBsb2dpY2FsSGVpZ2h0ID0gYWRqdXN0Qm9yZGVyTG9naWNhbEhlaWdodEZvckJv
eFNpemluZyhsb2dpY2FsSGVpZ2h0KTsKICAgICByZXR1cm4gbG9naWNhbEhlaWdodDsKIH0KIApA
QCAtMjEwMCw3ICsyMTAwLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2Fs
Q2xpZW50SGVpZ2h0KFNpemVUeXBlIGhlaWdodFR5cGUsIGNvbnN0IExlbmcKICAgICBMYXlvdXRV
bml0IGhlaWdodEluY2x1ZGluZ1Njcm9sbGJhciA9IGNvbXB1dGVDb250ZW50TG9naWNhbEhlaWdo
dFVzaW5nKGhlaWdodFR5cGUsIGhlaWdodCk7CiAgICAgaWYgKGhlaWdodEluY2x1ZGluZ1Njcm9s
bGJhciA9PSAtMSkKICAgICAgICAgcmV0dXJuIC0xOwotICAgIHJldHVybiBzdGQ6Om1heDxMYXlv
dXRVbml0PigwLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQoaGVpZ2h0SW5jbHVkaW5n
U2Nyb2xsYmFyKSAtIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKSk7CisgICAgcmV0dXJuIHN0ZDo6
bWF4PExheW91dFVuaXQ+KDAsIGFkanVzdENvbnRlbnRMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5n
KGhlaWdodEluY2x1ZGluZ1Njcm9sbGJhcikgLSBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCkpOwog
fQogCiBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZUNvbnRlbnRMb2dpY2FsSGVpZ2h0VXNp
bmcoU2l6ZVR5cGUgaGVpZ2h0VHlwZSwgY29uc3QgTGVuZ3RoJiBoZWlnaHQpIGNvbnN0CkBAIC0y
MTY4LDEzICsyMTY4LDEzIEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUGVyY2VudGFn
ZUxvZ2ljYWxIZWlnaHQoY29uc3QgTGVuZ3RoJiBoZWlnaHQpIGNvbnN0CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgaWYgKGNic3R5bGUtPmxvZ2ljYWxIZWlnaHQoKS5pc0ZpeGVkKCkpIHsKICAgICAg
ICAgLy8gT3RoZXJ3aXNlIHdlIG9ubHkgdXNlIG91ciBwZXJjZW50YWdlIGhlaWdodCBpZiBvdXIg
Y29udGFpbmluZyBibG9jayBoYWQgYSBzcGVjaWZpZWQgaGVpZ2h0LgotICAgICAgICBMYXlvdXRV
bml0IGNvbnRlbnRCb3hIZWlnaHRXaXRoU2Nyb2xsYmFyID0gY2ItPmNvbXB1dGVDb250ZW50Qm94
TG9naWNhbEhlaWdodChjYnN0eWxlLT5sb2dpY2FsSGVpZ2h0KCkudmFsdWUoKSk7CisgICAgICAg
IExheW91dFVuaXQgY29udGVudEJveEhlaWdodFdpdGhTY3JvbGxiYXIgPSBjYi0+YWRqdXN0Q29u
dGVudExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcoY2JzdHlsZS0+bG9naWNhbEhlaWdodCgpLnZh
bHVlKCkpOwogICAgICAgICByZXN1bHQgPSBtYXg8TGF5b3V0VW5pdD4oMCwgY29udGVudEJveEhl
aWdodFdpdGhTY3JvbGxiYXIgLSBjYi0+c2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpKTsKICAgICB9
IGVsc2UgaWYgKGNic3R5bGUtPmxvZ2ljYWxIZWlnaHQoKS5pc1BlcmNlbnQoKSAmJiAhaXNPdXRP
ZkZsb3dQb3NpdGlvbmVkV2l0aFNwZWNpZmllZEhlaWdodCkgewogICAgICAgICAvLyBXZSBuZWVk
IHRvIHJlY3VyIGFuZCBjb21wdXRlIHRoZSBwZXJjZW50YWdlIGhlaWdodCBmb3Igb3VyIGNvbnRh
aW5pbmcgYmxvY2suCiAgICAgICAgIExheW91dFVuaXQgaGVpZ2h0V2l0aFNjcm9sbGJhciA9IGNi
LT5jb21wdXRlUGVyY2VudGFnZUxvZ2ljYWxIZWlnaHQoY2JzdHlsZS0+bG9naWNhbEhlaWdodCgp
KTsKICAgICAgICAgaWYgKGhlaWdodFdpdGhTY3JvbGxiYXIgIT0gLTEpIHsKLSAgICAgICAgICAg
IExheW91dFVuaXQgY29udGVudEJveEhlaWdodFdpdGhTY3JvbGxiYXIgPSBjYi0+Y29tcHV0ZUNv
bnRlbnRCb3hMb2dpY2FsSGVpZ2h0KGhlaWdodFdpdGhTY3JvbGxiYXIpOworICAgICAgICAgICAg
TGF5b3V0VW5pdCBjb250ZW50Qm94SGVpZ2h0V2l0aFNjcm9sbGJhciA9IGNiLT5hZGp1c3RDb250
ZW50TG9naWNhbEhlaWdodEZvckJveFNpemluZyhoZWlnaHRXaXRoU2Nyb2xsYmFyKTsKICAgICAg
ICAgICAgIHJlc3VsdCA9IG1heDxMYXlvdXRVbml0PigwLCBjb250ZW50Qm94SGVpZ2h0V2l0aFNj
cm9sbGJhciAtIGNiLT5zY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCkpOwogICAgICAgICB9CiAgICAg
fSBlbHNlIGlmIChjYi0+aXNSZW5kZXJWaWV3KCkgfHwgKGNiLT5pc0JvZHkoKSAmJiBkb2N1bWVu
dCgpLT5pblF1aXJrc01vZGUoKSkgfHwgaXNPdXRPZkZsb3dQb3NpdGlvbmVkV2l0aFNwZWNpZmll
ZEhlaWdodCkgewpAQCAtMjIxNCwxNSArMjIxNCwxNSBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6
Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKExheW91dFVu
aQogTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5n
KFNpemVUeXBlIHNpemVUeXBlLCBMZW5ndGggbG9naWNhbFdpZHRoKSBjb25zdAogewogICAgIGlm
IChzaXplVHlwZSA9PSBNaW5TaXplICYmIGxvZ2ljYWxXaWR0aC5pc0F1dG8oKSkKLSAgICAgICAg
cmV0dXJuIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKDApOworICAgICAgICByZXR1cm4g
YWRqdXN0Q29udGVudExvZ2ljYWxXaWR0aEZvckJveFNpemluZygwKTsKIAogICAgIHN3aXRjaCAo
bG9naWNhbFdpZHRoLnR5cGUoKSkgewogICAgICAgICBjYXNlIEZpeGVkOgotICAgICAgICAgICAg
cmV0dXJuIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKGxvZ2ljYWxXaWR0aC52YWx1ZSgp
KTsKKyAgICAgICAgICAgIHJldHVybiBhZGp1c3RDb250ZW50TG9naWNhbFdpZHRoRm9yQm94U2l6
aW5nKGxvZ2ljYWxXaWR0aC52YWx1ZSgpKTsKICAgICAgICAgY2FzZSBWaWV3cG9ydFBlcmNlbnRh
Z2VXaWR0aDoKICAgICAgICAgY2FzZSBWaWV3cG9ydFBlcmNlbnRhZ2VIZWlnaHQ6CiAgICAgICAg
IGNhc2UgVmlld3BvcnRQZXJjZW50YWdlTWluOgotICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVD
b250ZW50Qm94TG9naWNhbFdpZHRoKHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxXaWR0aCwgMCwgdmll
dygpKSk7CisgICAgICAgICAgICByZXR1cm4gYWRqdXN0Q29udGVudExvZ2ljYWxXaWR0aEZvckJv
eFNpemluZyh2YWx1ZUZvckxlbmd0aChsb2dpY2FsV2lkdGgsIDAsIHZpZXcoKSkpOwogICAgICAg
ICBjYXNlIFBlcmNlbnQ6IAogICAgICAgICBjYXNlIENhbGN1bGF0ZWQ6IHsKICAgICAgICAgICAg
IC8vIEZJWE1FOiBjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JDb250ZW50KCkgaXMgd3Jv
bmcgaWYgdGhlIHJlcGxhY2VkIGVsZW1lbnQncyBibG9jay1mbG93IGlzIHBlcnBlbmRpY3VsYXIg
dG8gdGhlCkBAIC0yMjMzLDcgKzIyMzMsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0
ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoU2l6ZVR5cGUgc2l6ZVR5cGUsIExlbmd0aAogICAg
ICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBjYXNlcyB3aGVuIGNvbnRhaW5pbmcgYmxvY2sgd2lk
dGggaXMgY2FsY3VsYXRlZCBvciB2aWV3cG9ydCBwZXJjZW50LgogICAgICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDcxCiAgICAgICAgICAgICBp
ZiAoY3cgPiAwIHx8ICghY3cgJiYgKGNvbnRhaW5lckxvZ2ljYWxXaWR0aC5pc0ZpeGVkKCkgfHwg
Y29udGFpbmVyTG9naWNhbFdpZHRoLmlzUGVyY2VudCgpKSkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKG1pbmltdW1WYWx1ZUZvckxlbmd0aChs
b2dpY2FsV2lkdGgsIGN3KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFkanVzdENvbnRlbnRM
b2dpY2FsV2lkdGhGb3JCb3hTaXppbmcobWluaW11bVZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxXaWR0
aCwgY3cpKTsKICAgICAgICAgfQogICAgICAgICAvLyBmYWxsIHRocm91Z2gKICAgICAgICAgZGVm
YXVsdDoKQEAgLTIyNTYsMTEgKzIyNTYsMTEgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRSZXNwZWN0aW5nTWluTWF4SGVpZ2h0KExheW91dFUKIExh
eW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNpbmcoU2l6
ZVR5cGUgc2l6ZVR5cGUsIExlbmd0aCBsb2dpY2FsSGVpZ2h0KSBjb25zdAogewogICAgIGlmIChz
aXplVHlwZSA9PSBNaW5TaXplICYmIGxvZ2ljYWxIZWlnaHQuaXNBdXRvKCkpCi0gICAgICAgIHJl
dHVybiBjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQoMCk7CisgICAgICAgIHJldHVybiBh
ZGp1c3RDb250ZW50TG9naWNhbEhlaWdodEZvckJveFNpemluZygwKTsKIAogICAgIHN3aXRjaCAo
bG9naWNhbEhlaWdodC50eXBlKCkpIHsKICAgICAgICAgY2FzZSBGaXhlZDoKLSAgICAgICAgICAg
IHJldHVybiBjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodC52YWx1
ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBhZGp1c3RDb250ZW50TG9naWNhbEhlaWdodEZvckJv
eFNpemluZyhsb2dpY2FsSGVpZ2h0LnZhbHVlKCkpOwogICAgICAgICBjYXNlIFBlcmNlbnQ6CiAg
ICAgICAgIGNhc2UgQ2FsY3VsYXRlZDoKICAgICAgICAgewpAQCAtMjI3Nyw5ICsyMjc3LDkgQEAg
TGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2luZyhT
aXplVHlwZSBzaXplVHlwZSwgTGVuZ3QKICAgICAgICAgICAgICAgICBSZW5kZXJCbG9jayogYmxv
Y2sgPSB0b1JlbmRlckJsb2NrKGNiKTsKICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IG9sZEhl
aWdodCA9IGJsb2NrLT5oZWlnaHQoKTsKICAgICAgICAgICAgICAgICBibG9jay0+Y29tcHV0ZUxv
Z2ljYWxIZWlnaHQoKTsKLSAgICAgICAgICAgICAgICBMYXlvdXRVbml0IG5ld0hlaWdodCA9IGJs
b2NrLT5jb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQoYmxvY2stPmNvbnRlbnRIZWlnaHQo
KSk7CisgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBuZXdIZWlnaHQgPSBibG9jay0+YWRqdXN0
Q29udGVudExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcoYmxvY2stPmNvbnRlbnRIZWlnaHQoKSk7
CiAgICAgICAgICAgICAgICAgYmxvY2stPnNldEhlaWdodChvbGRIZWlnaHQpOwotICAgICAgICAg
ICAgICAgIHJldHVybiBjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQodmFsdWVGb3JMZW5n
dGgobG9naWNhbEhlaWdodCwgbmV3SGVpZ2h0KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFk
anVzdENvbnRlbnRMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKHZhbHVlRm9yTGVuZ3RoKGxvZ2lj
YWxIZWlnaHQsIG5ld0hlaWdodCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAg
ICAgICAgICAvLyBGSVhNRTogYXZhaWxhYmxlTG9naWNhbEhlaWdodCgpIGlzIHdyb25nIGlmIHRo
ZSByZXBsYWNlZCBlbGVtZW50J3MgYmxvY2stZmxvdyBpcyBwZXJwZW5kaWN1bGFyIHRvIHRoZQpA
QCAtMjMwNiwxMiArMjMwNiwxMiBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZVJlcGxh
Y2VkTG9naWNhbEhlaWdodFVzaW5nKFNpemVUeXBlIHNpemVUeXBlLCBMZW5ndAogICAgICAgICAg
ICAgICAgICAgICBjYiA9IGNiLT5jb250YWluaW5nQmxvY2soKTsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gY29tcHV0ZUNvbnRlbnRCb3hMb2dp
Y2FsSGVpZ2h0KHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxIZWlnaHQsIGF2YWlsYWJsZUhlaWdodCkp
OworICAgICAgICAgICAgcmV0dXJuIGFkanVzdENvbnRlbnRMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6
aW5nKHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxIZWlnaHQsIGF2YWlsYWJsZUhlaWdodCkpOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgVmlld3BvcnRQZXJjZW50YWdlV2lkdGg6CiAgICAgICAgIGNh
c2UgVmlld3BvcnRQZXJjZW50YWdlSGVpZ2h0OgogICAgICAgICBjYXNlIFZpZXdwb3J0UGVyY2Vu
dGFnZU1pbjoKLSAgICAgICAgICAgIHJldHVybiBjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWln
aHQodmFsdWVGb3JMZW5ndGgobG9naWNhbEhlaWdodCwgMCwgdmlldygpKSk7CisgICAgICAgICAg
ICByZXR1cm4gYWRqdXN0Q29udGVudExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcodmFsdWVGb3JM
ZW5ndGgobG9naWNhbEhlaWdodCwgMCwgdmlldygpKSk7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICByZXR1cm4gaW50cmluc2ljTG9naWNhbEhlaWdodCgpOwogICAgIH0KQEAgLTIzMzUs
MTIgKzIzMzUsMTIgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmF2YWlsYWJsZUxvZ2ljYWxIZWln
aHRVc2luZyhjb25zdCBMZW5ndGgmIGgpIGNvbnN0CiAKICAgICBpZiAoaC5pc1BlcmNlbnQoKSAm
JiBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewogICAgICAgICBMYXlvdXRVbml0IGF2YWlsYWJs
ZUhlaWdodCA9IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHRGb3JQb3NpdGlvbmVkKGNvbnRh
aW5pbmdCbG9jaygpKTsKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbEhl
aWdodCh2YWx1ZUZvckxlbmd0aChoLCBhdmFpbGFibGVIZWlnaHQpKTsKKyAgICAgICAgcmV0dXJu
IGFkanVzdENvbnRlbnRMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKHZhbHVlRm9yTGVuZ3RoKGgs
IGF2YWlsYWJsZUhlaWdodCkpOwogICAgIH0KIAogICAgIExheW91dFVuaXQgaGVpZ2h0SW5jbHVk
aW5nU2Nyb2xsYmFyID0gY29tcHV0ZUNvbnRlbnRMb2dpY2FsSGVpZ2h0VXNpbmcoTWFpbk9yUHJl
ZmVycmVkU2l6ZSwgaCk7CiAgICAgaWYgKGhlaWdodEluY2x1ZGluZ1Njcm9sbGJhciAhPSAtMSkK
LSAgICAgICAgcmV0dXJuIHN0ZDo6bWF4PExheW91dFVuaXQ+KDAsIGNvbXB1dGVDb250ZW50Qm94
TG9naWNhbEhlaWdodChoZWlnaHRJbmNsdWRpbmdTY3JvbGxiYXIpIC0gc2Nyb2xsYmFyTG9naWNh
bEhlaWdodCgpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWF4PExheW91dFVuaXQ+KDAsIGFkanVz
dENvbnRlbnRMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKGhlaWdodEluY2x1ZGluZ1Njcm9sbGJh
cikgLSBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCkpOwogCiAgICAgLy8gRklYTUU6IENoZWNrIGxv
Z2ljYWxUb3AvbG9naWNhbEJvdHRvbSBoZXJlIHRvIGNvcnJlY3RseSBoYW5kbGUgdmVydGljYWwg
d3JpdGluZy1tb2RlLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NjUwMApAQCAtMjM0OCw5ICsyMzQ4LDkgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmF2
YWlsYWJsZUxvZ2ljYWxIZWlnaHRVc2luZyhjb25zdCBMZW5ndGgmIGgpIGNvbnN0CiAgICAgICAg
IFJlbmRlckJsb2NrKiBibG9jayA9IGNvbnN0X2Nhc3Q8UmVuZGVyQmxvY2sqPih0b1JlbmRlckJs
b2NrKHRoaXMpKTsKICAgICAgICAgTGF5b3V0VW5pdCBvbGRIZWlnaHQgPSBibG9jay0+bG9naWNh
bEhlaWdodCgpOwogICAgICAgICBibG9jay0+Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKLSAgICAg
ICAgTGF5b3V0VW5pdCBuZXdIZWlnaHQgPSBibG9jay0+Y29tcHV0ZUNvbnRlbnRCb3hMb2dpY2Fs
SGVpZ2h0KGJsb2NrLT5jb250ZW50TG9naWNhbEhlaWdodCgpKTsKKyAgICAgICAgTGF5b3V0VW5p
dCBuZXdIZWlnaHQgPSBibG9jay0+YWRqdXN0Q29udGVudExvZ2ljYWxIZWlnaHRGb3JCb3hTaXpp
bmcoYmxvY2stPmNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkpOwogICAgICAgICBibG9jay0+c2V0TG9n
aWNhbEhlaWdodChvbGRIZWlnaHQpOwotICAgICAgICByZXR1cm4gY29tcHV0ZUNvbnRlbnRCb3hM
b2dpY2FsSGVpZ2h0KG5ld0hlaWdodCk7CisgICAgICAgIHJldHVybiBhZGp1c3RDb250ZW50TG9n
aWNhbEhlaWdodEZvckJveFNpemluZyhuZXdIZWlnaHQpOwogICAgIH0KIAogICAgIHJldHVybiBj
b250YWluaW5nQmxvY2soKS0+YXZhaWxhYmxlTG9naWNhbEhlaWdodCgpOwpAQCAtMjcxNyw3ICsy
NzE3LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNp
bmcoU2l6ZVR5cGUgd2lkdGhTaXplVHlwZSwgTGVuZ3QKICAgICAgICAgLy8gY2FzZSBiZWNhdXNl
IHRoZSB2YWx1ZSBpcyBub3QgdXNlZCBmb3IgYW55IGZ1cnRoZXIgY2FsY3VsYXRpb25zLgogCiAg
ICAgICAgIGxvZ2ljYWxMZWZ0VmFsdWUgPSB2YWx1ZUZvckxlbmd0aChsb2dpY2FsTGVmdCwgY29u
dGFpbmVyTG9naWNhbFdpZHRoLCByZW5kZXJWaWV3KTsKLSAgICAgICAgY29tcHV0ZWRWYWx1ZXMu
bV9leHRlbnQgPSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aCh2YWx1ZUZvckxlbmd0aChs
b2dpY2FsV2lkdGgsIGNvbnRhaW5lckxvZ2ljYWxXaWR0aCwgcmVuZGVyVmlldykpOworICAgICAg
ICBjb21wdXRlZFZhbHVlcy5tX2V4dGVudCA9IGFkanVzdENvbnRlbnRMb2dpY2FsV2lkdGhGb3JC
b3hTaXppbmcodmFsdWVGb3JMZW5ndGgobG9naWNhbFdpZHRoLCBjb250YWluZXJMb2dpY2FsV2lk
dGgsIHJlbmRlclZpZXcpKTsKIAogICAgICAgICBjb25zdCBMYXlvdXRVbml0IGF2YWlsYWJsZVNw
YWNlID0gY29udGFpbmVyTG9naWNhbFdpZHRoIC0gKGxvZ2ljYWxMZWZ0VmFsdWUgKyBjb21wdXRl
ZFZhbHVlcy5tX2V4dGVudCArIHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxSaWdodCwgY29udGFpbmVy
TG9naWNhbFdpZHRoLCByZW5kZXJWaWV3KSArIGJvcmRlcnNQbHVzUGFkZGluZyk7CiAKQEAgLTI4
MjcsNyArMjgyNyw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxX
aWR0aFVzaW5nKFNpemVUeXBlIHdpZHRoU2l6ZVR5cGUsIExlbmd0CiAgICAgICAgICAgICBjb21w
dXRlZFZhbHVlcy5tX2V4dGVudCA9IG1pbihtYXgocHJlZmVycmVkTWluV2lkdGgsIGF2YWlsYWJs
ZVdpZHRoKSwgcHJlZmVycmVkV2lkdGgpOwogICAgICAgICB9IGVsc2UgaWYgKGxvZ2ljYWxMZWZ0
SXNBdXRvICYmICFsb2dpY2FsV2lkdGhJc0F1dG8gJiYgIWxvZ2ljYWxSaWdodElzQXV0bykgewog
ICAgICAgICAgICAgLy8gUlVMRSA0OiAoc29sdmUgZm9yIGxlZnQpCi0gICAgICAgICAgICBjb21w
dXRlZFZhbHVlcy5tX2V4dGVudCA9IGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHZhbHVl
Rm9yTGVuZ3RoKGxvZ2ljYWxXaWR0aCwgY29udGFpbmVyTG9naWNhbFdpZHRoLCByZW5kZXJWaWV3
KSk7CisgICAgICAgICAgICBjb21wdXRlZFZhbHVlcy5tX2V4dGVudCA9IGFkanVzdENvbnRlbnRM
b2dpY2FsV2lkdGhGb3JCb3hTaXppbmcodmFsdWVGb3JMZW5ndGgobG9naWNhbFdpZHRoLCBjb250
YWluZXJMb2dpY2FsV2lkdGgsIHJlbmRlclZpZXcpKTsKICAgICAgICAgICAgIGxvZ2ljYWxMZWZ0
VmFsdWUgPSBhdmFpbGFibGVTcGFjZSAtIChjb21wdXRlZFZhbHVlcy5tX2V4dGVudCArIHZhbHVl
Rm9yTGVuZ3RoKGxvZ2ljYWxSaWdodCwgY29udGFpbmVyTG9naWNhbFdpZHRoLCByZW5kZXJWaWV3
KSk7CiAgICAgICAgIH0gZWxzZSBpZiAoIWxvZ2ljYWxMZWZ0SXNBdXRvICYmIGxvZ2ljYWxXaWR0
aElzQXV0byAmJiAhbG9naWNhbFJpZ2h0SXNBdXRvKSB7CiAgICAgICAgICAgICAvLyBSVUxFIDU6
IChzb2x2ZSBmb3Igd2lkdGgpCkBAIC0yODM2LDcgKzI4MzYsNyBAQCB2b2lkIFJlbmRlckJveDo6
Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsV2lkdGhVc2luZyhTaXplVHlwZSB3aWR0aFNpemVUeXBl
LCBMZW5ndAogICAgICAgICB9IGVsc2UgaWYgKCFsb2dpY2FsTGVmdElzQXV0byAmJiAhbG9naWNh
bFdpZHRoSXNBdXRvICYmIGxvZ2ljYWxSaWdodElzQXV0bykgewogICAgICAgICAgICAgLy8gUlVM
RSA2OiAobm8gbmVlZCBzb2x2ZSBmb3IgcmlnaHQpCiAgICAgICAgICAgICBsb2dpY2FsTGVmdFZh
bHVlID0gdmFsdWVGb3JMZW5ndGgobG9naWNhbExlZnQsIGNvbnRhaW5lckxvZ2ljYWxXaWR0aCwg
cmVuZGVyVmlldyk7Ci0gICAgICAgICAgICBjb21wdXRlZFZhbHVlcy5tX2V4dGVudCA9IGNvbXB1
dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxXaWR0aCwgY29u
dGFpbmVyTG9naWNhbFdpZHRoLCByZW5kZXJWaWV3KSk7CisgICAgICAgICAgICBjb21wdXRlZFZh
bHVlcy5tX2V4dGVudCA9IGFkanVzdENvbnRlbnRMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcodmFs
dWVGb3JMZW5ndGgobG9naWNhbFdpZHRoLCBjb250YWluZXJMb2dpY2FsV2lkdGgsIHJlbmRlclZp
ZXcpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMzA0Myw3ICszMDQzLDcgQEAgdm9pZCBSZW5k
ZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbEhlaWdodFVzaW5nKFNpemVUeXBlIGhlaWdo
dFNpemVUeXBlLCBMZW4KICAgICAgICAgLy8gTk9URTogIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8g
c29sdmUgZm9yICdib3R0b20nIGluIHRoZSBvdmVyIGNvbnN0cmFpbmVkCiAgICAgICAgIC8vIGNh
c2UgYmVjYXVzZSB0aGUgdmFsdWUgaXMgbm90IHVzZWQgZm9yIGFueSBmdXJ0aGVyIGNhbGN1bGF0
aW9ucy4KIAotICAgICAgICBsb2dpY2FsSGVpZ2h0VmFsdWUgPSBjb21wdXRlQ29udGVudEJveExv
Z2ljYWxIZWlnaHQodmFsdWVGb3JMZW5ndGgobG9naWNhbEhlaWdodExlbmd0aCwgY29udGFpbmVy
TG9naWNhbEhlaWdodCwgcmVuZGVyVmlldykpOworICAgICAgICBsb2dpY2FsSGVpZ2h0VmFsdWUg
PSBhZGp1c3RDb250ZW50TG9naWNhbEhlaWdodEZvckJveFNpemluZyh2YWx1ZUZvckxlbmd0aChs
b2dpY2FsSGVpZ2h0TGVuZ3RoLCBjb250YWluZXJMb2dpY2FsSGVpZ2h0LCByZW5kZXJWaWV3KSk7
CiAgICAgICAgIGxvZ2ljYWxUb3BWYWx1ZSA9IHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxUb3AsIGNv
bnRhaW5lckxvZ2ljYWxIZWlnaHQsIHJlbmRlclZpZXcpOwogCiAgICAgICAgIGNvbnN0IExheW91
dFVuaXQgYXZhaWxhYmxlU3BhY2UgPSBjb250YWluZXJMb2dpY2FsSGVpZ2h0IC0gKGxvZ2ljYWxU
b3BWYWx1ZSArIGxvZ2ljYWxIZWlnaHRWYWx1ZSArIHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxCb3R0
b20sIGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQsIHJlbmRlclZpZXcpICsgYm9yZGVyc1BsdXNQYWRk
aW5nKTsKQEAgLTMxMTAsNyArMzExMCw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRp
b25lZExvZ2ljYWxIZWlnaHRVc2luZyhTaXplVHlwZSBoZWlnaHRTaXplVHlwZSwgTGVuCiAgICAg
ICAgICAgICBsb2dpY2FsSGVpZ2h0VmFsdWUgPSBjb250ZW50TG9naWNhbEhlaWdodDsKICAgICAg
ICAgfSBlbHNlIGlmIChsb2dpY2FsVG9wSXNBdXRvICYmICFsb2dpY2FsSGVpZ2h0SXNBdXRvICYm
ICFsb2dpY2FsQm90dG9tSXNBdXRvKSB7CiAgICAgICAgICAgICAvLyBSVUxFIDQ6IChzb2x2ZSBv
ZiB0b3ApCi0gICAgICAgICAgICBsb2dpY2FsSGVpZ2h0VmFsdWUgPSBjb21wdXRlQ29udGVudEJv
eExvZ2ljYWxIZWlnaHQodmFsdWVGb3JMZW5ndGgobG9naWNhbEhlaWdodExlbmd0aCwgY29udGFp
bmVyTG9naWNhbEhlaWdodCwgcmVuZGVyVmlldykpOworICAgICAgICAgICAgbG9naWNhbEhlaWdo
dFZhbHVlID0gYWRqdXN0Q29udGVudExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcodmFsdWVGb3JM
ZW5ndGgobG9naWNhbEhlaWdodExlbmd0aCwgY29udGFpbmVyTG9naWNhbEhlaWdodCwgcmVuZGVy
VmlldykpOwogICAgICAgICAgICAgbG9naWNhbFRvcFZhbHVlID0gYXZhaWxhYmxlU3BhY2UgLSAo
bG9naWNhbEhlaWdodFZhbHVlICsgdmFsdWVGb3JMZW5ndGgobG9naWNhbEJvdHRvbSwgY29udGFp
bmVyTG9naWNhbEhlaWdodCwgcmVuZGVyVmlldykpOwogICAgICAgICB9IGVsc2UgaWYgKCFsb2dp
Y2FsVG9wSXNBdXRvICYmIGxvZ2ljYWxIZWlnaHRJc0F1dG8gJiYgIWxvZ2ljYWxCb3R0b21Jc0F1
dG8pIHsKICAgICAgICAgICAgIC8vIFJVTEUgNTogKHNvbHZlIG9mIGhlaWdodCkKQEAgLTMxMTgs
NyArMzExOCw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWln
aHRVc2luZyhTaXplVHlwZSBoZWlnaHRTaXplVHlwZSwgTGVuCiAgICAgICAgICAgICBsb2dpY2Fs
SGVpZ2h0VmFsdWUgPSBtYXg8TGF5b3V0VW5pdD4oMCwgYXZhaWxhYmxlU3BhY2UgLSAobG9naWNh
bFRvcFZhbHVlICsgdmFsdWVGb3JMZW5ndGgobG9naWNhbEJvdHRvbSwgY29udGFpbmVyTG9naWNh
bEhlaWdodCwgcmVuZGVyVmlldykpKTsKICAgICAgICAgfSBlbHNlIGlmICghbG9naWNhbFRvcElz
QXV0byAmJiAhbG9naWNhbEhlaWdodElzQXV0byAmJiBsb2dpY2FsQm90dG9tSXNBdXRvKSB7CiAg
ICAgICAgICAgICAvLyBSVUxFIDY6IChubyBuZWVkIHNvbHZlIG9mIGJvdHRvbSkKLSAgICAgICAg
ICAgIGxvZ2ljYWxIZWlnaHRWYWx1ZSA9IGNvbXB1dGVDb250ZW50Qm94TG9naWNhbEhlaWdodCh2
YWx1ZUZvckxlbmd0aChsb2dpY2FsSGVpZ2h0TGVuZ3RoLCBjb250YWluZXJMb2dpY2FsSGVpZ2h0
LCByZW5kZXJWaWV3KSk7CisgICAgICAgICAgICBsb2dpY2FsSGVpZ2h0VmFsdWUgPSBhZGp1c3RD
b250ZW50TG9naWNhbEhlaWdodEZvckJveFNpemluZyh2YWx1ZUZvckxlbmd0aChsb2dpY2FsSGVp
Z2h0TGVuZ3RoLCBjb250YWluZXJMb2dpY2FsSGVpZ2h0LCByZW5kZXJWaWV3KSk7CiAgICAgICAg
ICAgICBsb2dpY2FsVG9wVmFsdWUgPSB2YWx1ZUZvckxlbmd0aChsb2dpY2FsVG9wLCBjb250YWlu
ZXJMb2dpY2FsSGVpZ2h0LCByZW5kZXJWaWV3KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBlZDcwYTk0Yjg1ODIzMDI4MzRmMGViNjI5OTE2
ZmIzZTNjMGY0NzBiLi5hZjlhODhlYTYyZGIyZjY5M2U0NmJjYTkxM2IxYzYyNzE3YzA4NDZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC0yOTksMTAgKzI5OSwxMCBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIExheW91dFNpemUgb2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5k
ZXJPYmplY3QqLCBjb25zdCBMYXlvdXRQb2ludCYsIGJvb2wqIG9mZnNldERlcGVuZHNPblBvaW50
ID0gMCkgY29uc3Q7CiAgICAgCi0gICAgTGF5b3V0VW5pdCBjb21wdXRlQm9yZGVyQm94TG9naWNh
bFdpZHRoKExheW91dFVuaXQgd2lkdGgpIGNvbnN0OwotICAgIExheW91dFVuaXQgY29tcHV0ZUJv
cmRlckJveExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBoZWlnaHQpIGNvbnN0OwotICAgIExheW91
dFVuaXQgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkgY29u
c3Q7Ci0gICAgTGF5b3V0VW5pdCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQoTGF5b3V0
VW5pdCBoZWlnaHQpIGNvbnN0OworICAgIExheW91dFVuaXQgYWRqdXN0Qm9yZGVyTG9naWNhbFdp
ZHRoRm9yQm94U2l6aW5nKExheW91dFVuaXQgd2lkdGgpIGNvbnN0OworICAgIExheW91dFVuaXQg
YWRqdXN0Qm9yZGVyTG9naWNhbEhlaWdodEZvckJveFNpemluZyhMYXlvdXRVbml0IGhlaWdodCkg
Y29uc3Q7CisgICAgTGF5b3V0VW5pdCBhZGp1c3RDb250ZW50TG9naWNhbFdpZHRoRm9yQm94U2l6
aW5nKExheW91dFVuaXQgd2lkdGgpIGNvbnN0OworICAgIExheW91dFVuaXQgYWRqdXN0Q29udGVu
dExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcoTGF5b3V0VW5pdCBoZWlnaHQpIGNvbnN0OwogCiAg
ICAgdmlydHVhbCB2b2lkIGJvcmRlckZpdEFkanVzdChMYXlvdXRSZWN0JikgY29uc3QgeyB9IC8v
IFNocmluayB0aGUgYm94IGluIHdoaWNoIHRoZSBib3JkZXIgcGFpbnRzIGlmIGJvcmRlci1maXQg
aXMgc2V0LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVw
cmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJE
ZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IGUyZmUxY2Y1YzFlNzFhNWFhZjJjZDFmMzk5
YTA5NGQxODQyZGQ3MmUuLjlhNmUxZDhmZWE4ZDk2MTYzMDQ5MDMxNTYzOTBhOTRiMjEzZmQwMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxl
eGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNh
dGVkRmxleGlibGVCb3guY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9pZCBSZW5kZXJEZXByZWNh
dGVkRmxleGlibGVCb3g6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAgICBBU1NF
UlQocHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KCkpOwogCiAgICAgaWYgKHN0eWxlKCktPndp
ZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCktPndpZHRoKCkudmFsdWUoKSA+IDApCi0gICAgICAg
IG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgg
PSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZSgpLT53aWR0aCgpLnZhbHVlKCkp
OworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1fbWF4UHJlZmVycmVkTG9n
aWNhbFdpZHRoID0gYWRqdXN0Q29udGVudExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhzdHlsZSgp
LT53aWR0aCgpLnZhbHVlKCkpOwogICAgIGVsc2UgewogICAgICAgICBtX21pblByZWZlcnJlZExv
Z2ljYWxXaWR0aCA9IG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gMDsKIApAQCAtMjEyLDEz
ICsyMTIsMTMgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmNvbXB1dGVQcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAgICB9CiAKICAgICBpZiAoc3R5bGUoKS0+bWluV2lkdGgo
KS5pc0ZpeGVkKCkgJiYgc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpID4gMCkgewotICAgICAg
ICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heChtX21heFByZWZlcnJlZExvZ2ljYWxX
aWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUoKS0+bWluV2lkdGgoKS52
YWx1ZSgpKSk7Ci0gICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1fbWlu
UHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHls
ZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2Fs
V2lkdGggPSBtYXgobV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRlbnRMb2dp
Y2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpKSk7CisgICAg
ICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1fbWluUHJlZmVycmVkTG9naWNh
bFdpZHRoLCBhZGp1c3RDb250ZW50TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlKCktPm1p
bldpZHRoKCkudmFsdWUoKSkpOwogICAgIH0KIAogICAgIGlmIChzdHlsZSgpLT5tYXhXaWR0aCgp
LmlzRml4ZWQoKSkgewotICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbiht
X21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgo
c3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7Ci0gICAgICAgIG1fbWluUHJlZmVycmVkTG9n
aWNhbFdpZHRoID0gbWluKG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVu
dEJveExvZ2ljYWxXaWR0aChzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAg
bV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtaW4obV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lk
dGgsIGFkanVzdENvbnRlbnRMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGUoKS0+bWF4V2lk
dGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWlu
KG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RDb250ZW50TG9naWNhbFdpZHRoRm9y
Qm94U2l6aW5nKHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkpOwogICAgIH0KIAogICAgIExh
eW91dFVuaXQgYm9yZGVyQW5kUGFkZGluZyA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwCmluZGV4IGRlOTU2NDQ1NjYwNDMyNjA0ODEwYmI3NDM2ZTEzNmI3ZWZhNTk2ZTYu
LjNjNTUyYWRjYWVmNWYyNDE5YTc0OGY2N2U4YjRhYzQwM2NlNDQ1ZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAt
MTg0LDcgKzE4NCw3IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OmNvbXB1dGVQcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzKCkKIAogICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBzdHlsZS0+Zm9u
dCgpOwogICAgIGlmIChzdHlsZS0+d2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUtPndpZHRoKCku
dmFsdWUoKSA+IDApCi0gICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9tYXhQ
cmVmZXJyZWRMb2dpY2FsV2lkdGggPSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHls
ZS0+d2lkdGgoKS52YWx1ZSgpKTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgg
PSBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IGFkanVzdENvbnRlbnRMb2dpY2FsV2lkdGhG
b3JCb3hTaXppbmcoc3R5bGUtPndpZHRoKCkudmFsdWUoKSk7CiAgICAgZWxzZSB7CiAgICAgICAg
IC8vIEZpZ3VyZSBvdXQgaG93IGJpZyB0aGUgZmlsZW5hbWUgc3BhY2UgbmVlZHMgdG8gYmUgZm9y
IGEgZ2l2ZW4gbnVtYmVyIG9mIGNoYXJhY3RlcnMKICAgICAgICAgLy8gKHVzaW5nICIwIiBhcyB0
aGUgbm9taW5hbCBjaGFyYWN0ZXIpLgpAQCAtMjAxLDE2ICsyMDEsMTYgQEAgdm9pZCBSZW5kZXJG
aWxlVXBsb2FkQ29udHJvbDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQogICAgIH0K
IAogICAgIGlmIChzdHlsZS0+bWluV2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUtPm1pbldpZHRo
KCkudmFsdWUoKSA+IDApIHsKLSAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBt
YXgobV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdp
ZHRoKHN0eWxlLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKLSAgICAgICAgbV9taW5QcmVmZXJyZWRM
b2dpY2FsV2lkdGggPSBtYXgobV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250
ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAg
bV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lk
dGgsIGFkanVzdENvbnRlbnRMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGUtPm1pbldpZHRo
KCkudmFsdWUoKSkpOworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heCht
X21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudExvZ2ljYWxXaWR0aEZvckJv
eFNpemluZyhzdHlsZS0+bWluV2lkdGgoKS52YWx1ZSgpKSk7CiAgICAgfSBlbHNlIGlmIChzdHls
ZS0+d2lkdGgoKS5pc1BlcmNlbnQoKSB8fCAoc3R5bGUtPndpZHRoKCkuaXNBdXRvKCkgJiYgc3R5
bGUtPmhlaWdodCgpLmlzUGVyY2VudCgpKSkKICAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2Fs
V2lkdGggPSAwOwogICAgIGVsc2UKICAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgg
PSBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aDsKIAogICAgIGlmIChzdHlsZS0+bWF4V2lkdGgo
KS5pc0ZpeGVkKCkpIHsKLSAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtaW4o
bV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRo
KHN0eWxlLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKLSAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dp
Y2FsV2lkdGggPSBtaW4obV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50
Qm94TG9naWNhbFdpZHRoKHN0eWxlLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9t
YXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtaW4obV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgs
IGFkanVzdENvbnRlbnRMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGUtPm1heFdpZHRoKCku
dmFsdWUoKSkpOworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21p
blByZWZlcnJlZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudExvZ2ljYWxXaWR0aEZvckJveFNp
emluZyhzdHlsZS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CiAgICAgfQogCiAgICAgaW50IHRvQWRk
ID0gYm9yZGVyQW5kUGFkZGluZ1dpZHRoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRleCA5Zjg3Y2Y4MzVhYzU5MDc0NmI0YTc1YTAxYTE2
MzczZjQ4MDc3MTQ3Li40YzNmNzYyNzU5NTc5NGUwZjRlNTQyMWFlYjc0Y2M3YjcxZjAyOTkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAg
LTE2Nyw3ICsxNjcsNyBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpCiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBzdHlsZSgpOwog
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBjaGVja2luZyBmb3IgaXNTcGVj
aWZpZWQgc2luY2UgeW91IHNob3VsZCBiZSBhYmxlIHRvIHVzZSBwZXJjZW50YWdlLCBjYWxjIG9y
IHZpZXdwb3J0IHJlbGF0aXZlIHZhbHVlcyBmb3Igd2lkdGguCiAgICAgaWYgKHN0eWxlVG9Vc2Ut
PmxvZ2ljYWxXaWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZVRvVXNlLT5sb2dpY2FsV2lkdGgoKS52
YWx1ZSgpID4gMCkKLSAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX21heFBy
ZWZlcnJlZExvZ2ljYWxXaWR0aCA9IGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxl
VG9Vc2UtPmxvZ2ljYWxXaWR0aCgpLnZhbHVlKCkpOworICAgICAgICBtX21pblByZWZlcnJlZExv
Z2ljYWxXaWR0aCA9IG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gYWRqdXN0Q29udGVudExv
Z2ljYWxXaWR0aEZvckJveFNpemluZyhzdHlsZVRvVXNlLT5sb2dpY2FsV2lkdGgoKS52YWx1ZSgp
KTsKICAgICBlbHNlIHsKICAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX21h
eFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IDA7CiAKQEAgLTIxNywxNCArMjE3LDE0IEBAIHZvaWQg
UmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKIAogICAg
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBjaGVja2luZyBmb3IgaXNTcGVjaWZp
ZWQgc2luY2UgeW91IHNob3VsZCBiZSBhYmxlIHRvIHVzZSBwZXJjZW50YWdlLCBjYWxjIG9yIHZp
ZXdwb3J0IHJlbGF0aXZlIHZhbHVlcyBmb3IgbWluLXdpZHRoLgogICAgIGlmIChzdHlsZVRvVXNl
LT5sb2dpY2FsTWluV2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGVUb1VzZS0+bG9naWNhbE1pbldp
ZHRoKCkudmFsdWUoKSA+IDApIHsKLSAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgg
PSBzdGQ6Om1heChtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hM
b2dpY2FsV2lkdGgoc3R5bGVUb1VzZS0+bG9naWNhbE1pbldpZHRoKCkudmFsdWUoKSkpOwotICAg
ICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4KG1fbWluUHJlZmVycmVk
TG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZVRvVXNlLT5s
b2dpY2FsTWluV2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNh
bFdpZHRoID0gc3RkOjptYXgobV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRl
bnRMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGVUb1VzZS0+bG9naWNhbE1pbldpZHRoKCku
dmFsdWUoKSkpOworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWF4
KG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RDb250ZW50TG9naWNhbFdpZHRoRm9y
Qm94U2l6aW5nKHN0eWxlVG9Vc2UtPmxvZ2ljYWxNaW5XaWR0aCgpLnZhbHVlKCkpKTsKICAgICB9
CiAKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgY2hlY2tpbmcgZm9yIGlz
U3BlY2lmaWVkIHNpbmNlIHlvdSBzaG91bGQgYmUgYWJsZSB0byB1c2UgcGVyY2VudGFnZSwgY2Fs
YyBvciB2aWV3cG9ydCByZWxhdGl2ZSB2YWx1ZXMgZm9yIG1heFdpZHRoLgogICAgIGlmIChzdHls
ZVRvVXNlLT5sb2dpY2FsTWF4V2lkdGgoKS5pc0ZpeGVkKCkpIHsKLSAgICAgICAgbV9tYXhQcmVm
ZXJyZWRMb2dpY2FsV2lkdGggPSBzdGQ6Om1pbihtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCwg
Y29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGVUb1VzZS0+bG9naWNhbE1heFdpZHRo
KCkudmFsdWUoKSkpOwotICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IHN0ZDo6
bWluKG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxX
aWR0aChzdHlsZVRvVXNlLT5sb2dpY2FsTWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1f
bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gc3RkOjptaW4obV9tYXhQcmVmZXJyZWRMb2dpY2Fs
V2lkdGgsIGFkanVzdENvbnRlbnRMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGVUb1VzZS0+
bG9naWNhbE1heFdpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21pblByZWZlcnJlZExvZ2lj
YWxXaWR0aCA9IHN0ZDo6bWluKG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RDb250
ZW50TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlVG9Vc2UtPmxvZ2ljYWxNYXhXaWR0aCgp
LnZhbHVlKCkpKTsKICAgICB9CiAKICAgICBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmcgPSBi
b3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCk7CkBAIC00MDYsNyArNDA2LDcgQEAgTGF5b3V0
VW5pdCBSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZU1haW5BeGlzRXh0ZW50Rm9yQ2hpbGQoUmVu
ZGVyQm94KiBjaGlsZCwgU2kKICAgICAvLyB0byBmaWd1cmUgb3V0IHRoZSBsb2dpY2FsIGhlaWdo
dC93aWR0aC4KICAgICBpZiAoaXNDb2x1bW5GbG93KCkpCiAgICAgICAgIHJldHVybiBjaGlsZC0+
Y29tcHV0ZUxvZ2ljYWxDbGllbnRIZWlnaHQoc2l6ZVR5cGUsIHNpemUpOwotICAgIHJldHVybiBj
aGlsZC0+Y29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgodmFsdWVGb3JMZW5ndGgoc2l6ZSwg
bWF4aW11bVZhbHVlLCB2aWV3KCkpKTsKKyAgICByZXR1cm4gY2hpbGQtPmFkanVzdENvbnRlbnRM
b2dpY2FsV2lkdGhGb3JCb3hTaXppbmcodmFsdWVGb3JMZW5ndGgoc2l6ZSwgbWF4aW11bVZhbHVl
LCB2aWV3KCkpKTsKIH0KIAogV3JpdGluZ01vZGUgUmVuZGVyRmxleGlibGVCb3g6OnRyYW5zZm9y
bWVkV3JpdGluZ01vZGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwCmluZGV4IGRiNzBiMDhhNTE2NzRhNGJlN2IyMzA3ZjcxNTA1NWEwNzkzNTkyY2Eu
LjBlYmRhYWEwMTI0ODE3YjZkYzFhZGE3ZTA1NWY3NzhlODVjNzk2N2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTE5OCw3ICsxOTgsNyBAQCB2b2lk
IFJlbmRlckxpc3RCb3g6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAgICBtX21h
eFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IDA7CiAKICAgICBpZiAoc3R5bGUoKS0+d2lkdGgoKS5p
c0ZpeGVkKCkgJiYgc3R5bGUoKS0+d2lkdGgoKS52YWx1ZSgpID4gMCkKLSAgICAgICAgbV9taW5Q
cmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IGNvbXB1
dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlKCktPndpZHRoKCkudmFsdWUoKSk7CisgICAg
ICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lk
dGggPSBhZGp1c3RDb250ZW50TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlKCktPndpZHRo
KCkudmFsdWUoKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdp
ZHRoID0gbV9vcHRpb25zV2lkdGggKyAyICogb3B0aW9uc1NwYWNpbmdIb3Jpem9udGFsOwogICAg
ICAgICBpZiAobV92QmFyKQpAQCAtMjA2LDE2ICsyMDYsMTYgQEAgdm9pZCBSZW5kZXJMaXN0Qm94
Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAgICAgfQogCiAgICAgaWYgKHN0eWxl
KCktPm1pbldpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCktPm1pbldpZHRoKCkudmFsdWUoKSA+
IDApIHsKLSAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9tYXhQcmVm
ZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlKCkt
Pm1pbldpZHRoKCkudmFsdWUoKSkpOwotICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0
aCA9IG1heChtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dp
Y2FsV2lkdGgoc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWF4UHJl
ZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1
c3RDb250ZW50TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlKCktPm1pbldpZHRoKCkudmFs
dWUoKSkpOworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heChtX21pblBy
ZWZlcnJlZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudExvZ2ljYWxXaWR0aEZvckJveFNpemlu
ZyhzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKICAgICB9IGVsc2UgaWYgKHN0eWxlKCkt
PndpZHRoKCkuaXNQZXJjZW50KCkgfHwgKHN0eWxlKCktPndpZHRoKCkuaXNBdXRvKCkgJiYgc3R5
bGUoKS0+aGVpZ2h0KCkuaXNQZXJjZW50KCkpKQogICAgICAgICBtX21pblByZWZlcnJlZExvZ2lj
YWxXaWR0aCA9IDA7CiAgICAgZWxzZQogICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0
aCA9IG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoOwogCiAgICAgaWYgKHN0eWxlKCktPm1heFdp
ZHRoKCkuaXNGaXhlZCgpKSB7Ci0gICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0g
bWluKG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxX
aWR0aChzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKLSAgICAgICAgbV9taW5QcmVmZXJy
ZWRMb2dpY2FsV2lkdGggPSBtaW4obV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVD
b250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkpOworICAg
ICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21heFByZWZlcnJlZExvZ2lj
YWxXaWR0aCwgYWRqdXN0Q29udGVudExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhzdHlsZSgpLT5t
YXhXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgg
PSBtaW4obV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRlbnRMb2dpY2FsV2lk
dGhGb3JCb3hTaXppbmcoc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CiAgICAgfQogCiAg
ICAgTGF5b3V0VW5pdCB0b0FkZCA9IGJvcmRlckFuZFBhZGRpbmdXaWR0aCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggMDYzNjdjNzI2OGRmNDQ1
Nzk4ZTQxMDA3NzE1ZGIzNzMwMzZmMmFjMS4uMTZkOWE4YWY1YjRhMWVjMmY4OGViYWMyNDkzNmUx
YjYzNWNhN2UzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
Y3BwCkBAIC0yNzgsMjEgKzI3OCwyMSBAQCB2b2lkIFJlbmRlck1lbnVMaXN0Ojpjb21wdXRlUHJl
ZmVycmVkTG9naWNhbFdpZHRocygpCiAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSAw
OwogICAgIAogICAgIGlmIChzdHlsZSgpLT53aWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZSgpLT53
aWR0aCgpLnZhbHVlKCkgPiAwKQotICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9
IG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lk
dGgoc3R5bGUoKS0+d2lkdGgoKS52YWx1ZSgpKTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dp
Y2FsV2lkdGggPSBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IGFkanVzdENvbnRlbnRMb2dp
Y2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGUoKS0+d2lkdGgoKS52YWx1ZSgpKTsKICAgICBlbHNl
CiAgICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1fb3B0aW9uc1dpZHRo
LCB0aGVtZSgpLT5taW5pbXVtTWVudUxpc3RTaXplKHN0eWxlKCkpKSArIG1faW5uZXJCbG9jay0+
cGFkZGluZ0xlZnQoKSArIG1faW5uZXJCbG9jay0+cGFkZGluZ1JpZ2h0KCk7CiAKICAgICBpZiAo
c3R5bGUoKS0+bWluV2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1
ZSgpID4gMCkgewotICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heChtX21h
eFByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5
bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpKSk7Ci0gICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNh
bFdpZHRoID0gbWF4KG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJv
eExvZ2ljYWxXaWR0aChzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9t
YXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgs
IGFkanVzdENvbnRlbnRMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGUoKS0+bWluV2lkdGgo
KS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1f
bWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RDb250ZW50TG9naWNhbFdpZHRoRm9yQm94
U2l6aW5nKHN0eWxlKCktPm1pbldpZHRoKCkudmFsdWUoKSkpOwogICAgIH0gZWxzZSBpZiAoc3R5
bGUoKS0+d2lkdGgoKS5pc1BlcmNlbnQoKSB8fCAoc3R5bGUoKS0+d2lkdGgoKS5pc0F1dG8oKSAm
JiBzdHlsZSgpLT5oZWlnaHQoKS5pc1BlcmNlbnQoKSkpCiAgICAgICAgIG1fbWluUHJlZmVycmVk
TG9naWNhbFdpZHRoID0gMDsKICAgICBlbHNlCiAgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNh
bFdpZHRoID0gbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGg7CiAKICAgICBpZiAoc3R5bGUoKS0+
bWF4V2lkdGgoKS5pc0ZpeGVkKCkpIHsKLSAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lk
dGggPSBtaW4obV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9n
aWNhbFdpZHRoKHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkpOwotICAgICAgICBtX21pblBy
ZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29t
cHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7
CisgICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWluKG1fbWF4UHJlZmVycmVk
TG9naWNhbFdpZHRoLCBhZGp1c3RDb250ZW50TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxl
KCktPm1heFdpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxX
aWR0aCA9IG1pbihtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudExvZ2lj
YWxXaWR0aEZvckJveFNpemluZyhzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKICAgICB9
CiAKICAgICBMYXlvdXRVbml0IHRvQWRkID0gYm9yZGVyQW5kUGFkZGluZ1dpZHRoKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCmluZGV4IDFhYmNhMmZkYmVhMjJl
YTZjOTAwMTYyYzNhZDhiN2NjMWQzZTE2ZGIuLjc5N2VlZWE0ZjRhNDQxNDJhNTdkN2YxODY3YmRl
NmUyZDUwMGM0ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
bGlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3Bw
CkBAIC03NiwyMSArNzYsMjEgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OmNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzKCkKICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IDA7CiAKICAg
ICBpZiAoc3R5bGUoKS0+d2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUoKS0+d2lkdGgoKS52YWx1
ZSgpID4gMCkKLSAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX21heFByZWZl
cnJlZExvZ2ljYWxXaWR0aCA9IGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlKCkt
PndpZHRoKCkudmFsdWUoKSk7CisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0g
bV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBhZGp1c3RDb250ZW50TG9naWNhbFdpZHRoRm9y
Qm94U2l6aW5nKHN0eWxlKCktPndpZHRoKCkudmFsdWUoKSk7CiAgICAgZWxzZQogICAgICAgICBt
X21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IGRlZmF1bHRUcmFja0xlbmd0aCAqIHN0eWxlKCkt
PmVmZmVjdGl2ZVpvb20oKTsKIAogICAgIGlmIChzdHlsZSgpLT5taW5XaWR0aCgpLmlzRml4ZWQo
KSAmJiBzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkgPiAwKSB7Ci0gICAgICAgIG1fbWF4UHJl
ZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21w
dXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsK
LSAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9taW5QcmVmZXJyZWRM
b2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlKCktPm1pbldp
ZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1h
eChtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudExvZ2ljYWxXaWR0aEZv
ckJveFNpemluZyhzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9taW5Q
cmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFk
anVzdENvbnRlbnRMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGUoKS0+bWluV2lkdGgoKS52
YWx1ZSgpKSk7CiAgICAgfSBlbHNlIGlmIChzdHlsZSgpLT53aWR0aCgpLmlzUGVyY2VudCgpIHx8
IChzdHlsZSgpLT53aWR0aCgpLmlzQXV0bygpICYmIHN0eWxlKCktPmhlaWdodCgpLmlzUGVyY2Vu
dCgpKSkKICAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSAwOwogICAgIGVsc2UK
ICAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX21heFByZWZlcnJlZExvZ2lj
YWxXaWR0aDsKICAgICAKICAgICBpZiAoc3R5bGUoKS0+bWF4V2lkdGgoKS5pc0ZpeGVkKCkpIHsK
LSAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtaW4obV9tYXhQcmVmZXJyZWRM
b2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlKCktPm1heFdp
ZHRoKCkudmFsdWUoKSkpOwotICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1p
bihtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lk
dGgoc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWF4UHJlZmVycmVk
TG9naWNhbFdpZHRoID0gbWluKG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RDb250
ZW50TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkp
OworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21pblByZWZlcnJl
ZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhzdHls
ZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKICAgICB9CiAKICAgICBMYXlvdXRVbml0IHRvQWRk
ID0gYm9yZGVyQW5kUGFkZGluZ1dpZHRoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sLmNwcAppbmRleCBjYjc2MzdkYjM3NWQxZTZjOTkzYmM5N2FmMWY2
ZDg5OTdhMTRlN2VlLi40YzExYTg5ZTFhNjEwNGNmMjJmMzFjMDIyMzQ1MTBmMjYyYTk0Y2ViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAg
LTI2Miw3ICsyNjIsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sOjpjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpCiAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSAwOwogCiAg
ICAgaWYgKHN0eWxlKCktPndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCktPndpZHRoKCkudmFs
dWUoKSA+PSAwKQotICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1fbWF4UHJl
ZmVycmVkTG9naWNhbFdpZHRoID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUo
KS0+d2lkdGgoKS52YWx1ZSgpKTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgg
PSBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IGFkanVzdENvbnRlbnRMb2dpY2FsV2lkdGhG
b3JCb3hTaXppbmcoc3R5bGUoKS0+d2lkdGgoKS52YWx1ZSgpKTsKICAgICBlbHNlIHsKICAgICAg
ICAgLy8gVXNlIGF2ZXJhZ2UgY2hhcmFjdGVyIHdpZHRoLiBNYXRjaGVzIElFLgogICAgICAgICBB
dG9taWNTdHJpbmcgZmFtaWx5ID0gc3R5bGUoKS0+Zm9udCgpLmZhbWlseSgpLmZhbWlseSgpOwpA
QCAtMjcyLDE2ICsyNzIsMTYgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6Y29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKQogICAgIH0KIAogICAgIGlmIChzdHlsZSgpLT5taW5XaWR0aCgp
LmlzRml4ZWQoKSAmJiBzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkgPiAwKSB7Ci0gICAgICAg
IG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1fbWF4UHJlZmVycmVkTG9naWNhbFdp
ZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZSgpLT5taW5XaWR0aCgpLnZh
bHVlKCkpKTsKLSAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9taW5Q
cmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxl
KCktPm1pbldpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxX
aWR0aCA9IG1heChtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudExvZ2lj
YWxXaWR0aEZvckJveFNpemluZyhzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAg
ICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9taW5QcmVmZXJyZWRMb2dpY2Fs
V2lkdGgsIGFkanVzdENvbnRlbnRMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGUoKS0+bWlu
V2lkdGgoKS52YWx1ZSgpKSk7CiAgICAgfSBlbHNlIGlmIChzdHlsZSgpLT53aWR0aCgpLmlzUGVy
Y2VudCgpIHx8IChzdHlsZSgpLT53aWR0aCgpLmlzQXV0bygpICYmIHN0eWxlKCktPmhlaWdodCgp
LmlzUGVyY2VudCgpKSkKICAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSAwOwog
ICAgIGVsc2UKICAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX21heFByZWZl
cnJlZExvZ2ljYWxXaWR0aDsKIAogICAgIGlmIChzdHlsZSgpLT5tYXhXaWR0aCgpLmlzRml4ZWQo
KSkgewotICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21heFByZWZl
cnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUoKS0+
bWF4V2lkdGgoKS52YWx1ZSgpKSk7Ci0gICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRo
ID0gbWluKG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2lj
YWxXaWR0aChzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9tYXhQcmVm
ZXJyZWRMb2dpY2FsV2lkdGggPSBtaW4obV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVz
dENvbnRlbnRMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1
ZSgpKSk7CisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWluKG1fbWluUHJl
ZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RDb250ZW50TG9naWNhbFdpZHRoRm9yQm94U2l6aW5n
KHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkpOwogICAgIH0KIAogICAgIExheW91dFVuaXQg
dG9BZGQgPSBib3JkZXJBbmRQYWRkaW5nV2lkdGgoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163214</attachid>
            <date>2012-09-10 14:50:49 -0700</date>
            <delta_ts>2012-09-10 16:55:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96319-20120910215025.patch</filename>
            <type>text/plain</type>
            <size>42916</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjc3MjRjNTAzZjg2MTVm
NTk0ODQ2NTdkODcyZjdjZjQ2M2MzMDA0Zi4uMjUyOTc3YjE2M2M5ZjExNzc5NWE3NzI0NDlkZTlj
OWIwMzhhYzJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA5LTEwICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVuYW1lIGJveC1zaXppbmcg
YXBwbHlpbmcgbWV0aG9kcyB0byBiZSBtb3JlIGNsZWFyIGFib3V0IGp1c3QgYXBwbHlpbmcgYm94
LXNpemluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk2MzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICBUaGlz
IGlzIHN0cmljdGx5IGEgcmVuYW1lLiBObyBsb2dpYyBvciB3ZWItZXhwb3NlZCBjaGFuZ2VzLgor
CisgICAgICAgICogcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdXRvVGFibGVMYXlvdXQ6OnJlY2FsY0NvbHVtbik6CisgICAgICAgICogcmVuZGVyaW5n
L0ZpeGVkVGFibGVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rml4ZWRUYWJsZUxheW91
dDo6Y2FsY1dpZHRoQXJyYXkpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjphZGp1c3RCb3JkZXJCb3hMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjphZGp1c3RCb3JkZXJCb3hMb2dpY2FsSGVp
Z2h0Rm9yQm94U2l6aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YWRqdXN0Q29u
dGVudEJveExvZ2ljYWxXaWR0aEZvckJveFNpemluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cGVycGVuZGljdWxhckNvbnRhaW5pbmdCbG9ja0xvZ2lj
YWxIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbFdp
ZHRoSW5SZWdpb25Vc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVM
b2dpY2FsSGVpZ2h0VXNpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRl
TG9naWNhbENsaWVudEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1
dGVQZXJjZW50YWdlTG9naWNhbEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFVzaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6YXZhaWxhYmxlTG9naWNhbEhlaWdodFVzaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsV2lkdGhVc2luZyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbEhl
aWdodFVzaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChS
ZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Ojpj
b21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZpbGVVcGxvYWRDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZpbGVVcGxv
YWRDb250cm9sOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZs
ZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZU1haW5BeGlzRXh0ZW50Rm9yQ2hpbGQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxpc3RCb3g6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TWVudUxpc3Q6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOgorCiAyMDEyLTA5LTEwICBBbmRyZWFzIEts
aW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBFbGVtZW50QXR0cmlidXRlRGF0YTog
VXNlIHN1YmNsYXNzZXMgdG8gbWFuYWdlIHZhcnlpbmcgb2JqZWN0IGxheW91dHMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCmluZGV4IDNhNWNiMGRkYWE1
N2QzMjIyNDcwNGU3MTc1OTZjYThhNDcyYWNhOTEuLjY2YWMyOGYxYTljOGZmMGE4ZGFkOWY5OTA3
MWUxZTkwZjc0NjdhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRv
VGFibGVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9BdXRvVGFibGVM
YXlvdXQuY3BwCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgQXV0b1RhYmxlTGF5b3V0OjpyZWNhbGND
b2x1bW4odW5zaWduZWQgZWZmQ29sKQogICAgICAgICAgICAgICAgICAgICBjYXNlIEZpeGVkOgog
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlIHdpZHRoPTAKICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChjZWxsTG9naWNhbFdpZHRoLmlzUG9zaXRpdmUoKSAmJiAhY29sdW1uTGF5
b3V0LmxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExheW91dFVuaXQgbG9naWNhbFdpZHRoID0gY2VsbC0+Y29tcHV0ZUJvcmRlckJveExvZ2lj
YWxXaWR0aChjZWxsTG9naWNhbFdpZHRoLnZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExheW91dFVuaXQgbG9naWNhbFdpZHRoID0gY2VsbC0+YWRqdXN0Qm9yZGVyQm94TG9n
aWNhbFdpZHRoRm9yQm94U2l6aW5nKGNlbGxMb2dpY2FsV2lkdGgudmFsdWUoKSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbkxheW91dC5sb2dpY2FsV2lkdGguaXNGaXhl
ZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5hdi9JRSB3ZWlyZG5l
c3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChsb2dpY2FsV2lkdGggPiBj
b2x1bW5MYXlvdXQubG9naWNhbFdpZHRoLnZhbHVlKCkpIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCmluZGV4IDg2NDlhMDhkM2MxMTI1ZmVlYzU2N2Yx
NDAxNjI5YmQxZGQ1MGMyMjQuLjMzZWJjZWE1NzlkODU4ZWNjZDhmNDVjNTNiYzE4NzMzZTQzYjY2
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAK
QEAgLTE0NSw3ICsxNDUsNyBAQCBpbnQgRml4ZWRUYWJsZUxheW91dDo6Y2FsY1dpZHRoQXJyYXko
aW50KQogICAgICAgICB1bnNpZ25lZCBzcGFuID0gY2VsbC0+Y29sU3BhbigpOwogICAgICAgICBp
bnQgZml4ZWRCb3JkZXJCb3hMb2dpY2FsV2lkdGggPSAwOwogICAgICAgICBpZiAobG9naWNhbFdp
ZHRoLmlzRml4ZWQoKSAmJiBsb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpKSB7Ci0gICAgICAgICAg
ICBmaXhlZEJvcmRlckJveExvZ2ljYWxXaWR0aCA9IGNlbGwtPmNvbXB1dGVCb3JkZXJCb3hMb2dp
Y2FsV2lkdGgobG9naWNhbFdpZHRoLnZhbHVlKCkpOworICAgICAgICAgICAgZml4ZWRCb3JkZXJC
b3hMb2dpY2FsV2lkdGggPSBjZWxsLT5hZGp1c3RCb3JkZXJCb3hMb2dpY2FsV2lkdGhGb3JCb3hT
aXppbmcobG9naWNhbFdpZHRoLnZhbHVlKCkpOwogICAgICAgICAgICAgbG9naWNhbFdpZHRoLnNl
dFZhbHVlKGZpeGVkQm9yZGVyQm94TG9naWNhbFdpZHRoKTsKICAgICAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAxMDIxNmJjMDA3OGFjYzEzZGU5
NTgwMjcxYjY5ODg0MDEwMmE1YTBiLi5hNDkzYzIxODhjNTI1ODRiODZkMjhmN2RlNDY0OWY4OThh
MzE4NjFhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTU1
NTIsNyArNTU1Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2Fs
V2lkdGhzKCkKICAgICBSZW5kZXJTdHlsZSogc3R5bGVUb1VzZSA9IHN0eWxlKCk7CiAgICAgaWYg
KCFpc1RhYmxlQ2VsbCgpICYmIHN0eWxlVG9Vc2UtPmxvZ2ljYWxXaWR0aCgpLmlzRml4ZWQoKSAm
JiBzdHlsZVRvVXNlLT5sb2dpY2FsV2lkdGgoKS52YWx1ZSgpID49IDAgCiAgICAgICAgJiYgc3R5
bGUoKS0+bWFycXVlZUJlaGF2aW9yKCkgIT0gTUFMVEVSTkFURSAmJiAhKGlzRGVwcmVjYXRlZEZs
ZXhJdGVtKCkgJiYgIXN0eWxlVG9Vc2UtPmxvZ2ljYWxXaWR0aCgpLmludFZhbHVlKCkpKQotICAg
ICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1fbWF4UHJlZmVycmVkTG9naWNhbFdp
ZHRoID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGVUb1VzZS0+bG9naWNhbFdp
ZHRoKCkudmFsdWUoKSk7CisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9t
YXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBhZGp1c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9y
Qm94U2l6aW5nKHN0eWxlVG9Vc2UtPmxvZ2ljYWxXaWR0aCgpLnZhbHVlKCkpOwogICAgIGVsc2Ug
ewogICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IDA7CiAgICAgICAgIG1fbWF4
UHJlZmVycmVkTG9naWNhbFdpZHRoID0gMDsKQEAgLTU1ODQsNyArNTU4NCw3IEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAgICAgICAgaWYgKGlz
VGFibGVDZWxsKCkpIHsKICAgICAgICAgICAgIExlbmd0aCB3ID0gdG9SZW5kZXJUYWJsZUNlbGwo
dGhpcyktPnN0eWxlT3JDb2xMb2dpY2FsV2lkdGgoKTsKICAgICAgICAgICAgIGlmICh3LmlzRml4
ZWQoKSAmJiB3LnZhbHVlKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgbV9tYXhQcmVmZXJyZWRM
b2dpY2FsV2lkdGggPSBtYXgobV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250
ZW50Qm94TG9naWNhbFdpZHRoKHcudmFsdWUoKSkpOworICAgICAgICAgICAgICAgIG1fbWF4UHJl
ZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1
c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHcudmFsdWUoKSkpOwogICAgICAg
ICAgICAgICAgIHNjcm9sbGJhcldpZHRoID0gMDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpA
QCAtNTU5MywxMyArNTU5MywxMyBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpCiAgICAgfQogICAgIAogICAgIGlmIChzdHlsZVRvVXNlLT5sb2dpY2Fs
TWluV2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGVUb1VzZS0+bG9naWNhbE1pbldpZHRoKCkudmFs
dWUoKSA+IDApIHsKLSAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9t
YXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0
eWxlVG9Vc2UtPmxvZ2ljYWxNaW5XaWR0aCgpLnZhbHVlKCkpKTsKLSAgICAgICAgbV9taW5QcmVm
ZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1
dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlVG9Vc2UtPmxvZ2ljYWxNaW5XaWR0aCgpLnZh
bHVlKCkpKTsKKyAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9tYXhQ
cmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRlbnRCb3hMb2dpY2FsV2lkdGhGb3JCb3hT
aXppbmcoc3R5bGVUb1VzZS0+bG9naWNhbE1pbldpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBt
X21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heChtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0
aCwgYWRqdXN0Q29udGVudEJveExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhzdHlsZVRvVXNlLT5s
b2dpY2FsTWluV2lkdGgoKS52YWx1ZSgpKSk7CiAgICAgfQogICAgIAogICAgIGlmIChzdHlsZVRv
VXNlLT5sb2dpY2FsTWF4V2lkdGgoKS5pc0ZpeGVkKCkpIHsKLSAgICAgICAgbV9tYXhQcmVmZXJy
ZWRMb2dpY2FsV2lkdGggPSBtaW4obV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVD
b250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlVG9Vc2UtPmxvZ2ljYWxNYXhXaWR0aCgpLnZhbHVl
KCkpKTsKLSAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtaW4obV9taW5QcmVm
ZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlVG9V
c2UtPmxvZ2ljYWxNYXhXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9tYXhQcmVmZXJyZWRM
b2dpY2FsV2lkdGggPSBtaW4obV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRl
bnRCb3hMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGVUb1VzZS0+bG9naWNhbE1heFdpZHRo
KCkudmFsdWUoKSkpOworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbiht
X21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudEJveExvZ2ljYWxXaWR0aEZv
ckJveFNpemluZyhzdHlsZVRvVXNlLT5sb2dpY2FsTWF4V2lkdGgoKS52YWx1ZSgpKSk7CiAgICAg
fQogCiAgICAgTGF5b3V0VW5pdCBib3JkZXJBbmRQYWRkaW5nID0gYm9yZGVyQW5kUGFkZGluZ0xv
Z2ljYWxXaWR0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA3
OTJiOWMyOGJlOTEwZTk0ZmY5N2Q1ZjdhYjRlNjdhMjJiM2ZkM2JhLi5hZTQ3M2ZiZmY0MjMwZmYx
Mzg4MDNmZWYzNDAwODJkMWY2OGY2NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcApAQCAtNzA3LDcgKzcwNyw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94OjpvdmVycmlk
ZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCkgY29uc3QKICAgICByZXR1cm4gaGFzT3ZlcnJpZGVIZWln
aHQoKSA/IGdPdmVycmlkZUhlaWdodE1hcC0+Z2V0KHRoaXMpIDogY29udGVudEhlaWdodCgpOwog
fQogCi1MYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZUJvcmRlckJveExvZ2ljYWxXaWR0aChM
YXlvdXRVbml0IHdpZHRoKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmFkanVzdEJvcmRl
ckJveExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhMYXlvdXRVbml0IHdpZHRoKSBjb25zdAogewog
ICAgIExheW91dFVuaXQgYm9yZGVyc1BsdXNQYWRkaW5nID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2lj
YWxXaWR0aCgpOwogICAgIGlmIChzdHlsZSgpLT5ib3hTaXppbmcoKSA9PSBDT05URU5UX0JPWCkK
QEAgLTcxNSw3ICs3MTUsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZUJvcmRlckJv
eExvZ2ljYWxXaWR0aChMYXlvdXRVbml0IHdpZHRoKSBjb25zdAogICAgIHJldHVybiBtYXgod2lk
dGgsIGJvcmRlcnNQbHVzUGFkZGluZyk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQm94Ojpjb21w
dXRlQm9yZGVyQm94TG9naWNhbEhlaWdodChMYXlvdXRVbml0IGhlaWdodCkgY29uc3QKK0xheW91
dFVuaXQgUmVuZGVyQm94OjphZGp1c3RCb3JkZXJCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5n
KExheW91dFVuaXQgaGVpZ2h0KSBjb25zdAogewogICAgIExheW91dFVuaXQgYm9yZGVyc1BsdXNQ
YWRkaW5nID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKTsKICAgICBpZiAoc3R5bGUo
KS0+Ym94U2l6aW5nKCkgPT0gQ09OVEVOVF9CT1gpCkBAIC03MjMsMTQgKzcyMywxNCBAQCBMYXlv
dXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZUJvcmRlckJveExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5p
dCBoZWlnaHQpIGNvbnN0CiAgICAgcmV0dXJuIG1heChoZWlnaHQsIGJvcmRlcnNQbHVzUGFkZGlu
Zyk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlQ29udGVudEJveExvZ2ljYWxX
aWR0aChMYXlvdXRVbml0IHdpZHRoKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmFkanVz
dENvbnRlbnRCb3hMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoTGF5b3V0VW5pdCB3aWR0aCkgY29u
c3QKIHsKICAgICBpZiAoc3R5bGUoKS0+Ym94U2l6aW5nKCkgPT0gQk9SREVSX0JPWCkKICAgICAg
ICAgd2lkdGggLT0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpOwogICAgIHJldHVybiBt
YXg8TGF5b3V0VW5pdD4oMCwgd2lkdGgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveDo6Y29t
cHV0ZUNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgaGVpZ2h0KSBjb25zdAorTGF5
b3V0VW5pdCBSZW5kZXJCb3g6OmFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6
aW5nKExheW91dFVuaXQgaGVpZ2h0KSBjb25zdAogewogICAgIGlmIChzdHlsZSgpLT5ib3hTaXpp
bmcoKSA9PSBCT1JERVJfQk9YKQogICAgICAgICBoZWlnaHQgLT0gYm9yZGVyQW5kUGFkZGluZ0xv
Z2ljYWxIZWlnaHQoKTsKQEAgLTEyNDQsNyArMTI0NCw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94
OjpwZXJwZW5kaWN1bGFyQ29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodCgpIGNvbnN0CiAgICAg
fQogICAgIAogICAgIC8vIFVzZSB0aGUgY29udGVudCBib3ggbG9naWNhbCBoZWlnaHQgYXMgc3Bl
Y2lmaWVkIGJ5IHRoZSBzdHlsZS4KLSAgICByZXR1cm4gY2ItPmNvbXB1dGVDb250ZW50Qm94TG9n
aWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0TGVuZ3RoLnZhbHVlKCkpOworICAgIHJldHVybiBjYi0+
YWRqdXN0Q29udGVudEJveExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcobG9naWNhbEhlaWdodExl
bmd0aC52YWx1ZSgpKTsKIH0KIAogdm9pZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIo
UmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0
cmFuc2Zvcm1TdGF0ZSwgTWFwTG9jYWxUb0NvbnRhaW5lckZsYWdzIG1vZGUsIGJvb2wqIHdhc0Zp
eGVkKSBjb25zdApAQCAtMTczMiwxMSArMTczMiwxMSBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6
Y29tcHV0ZUxvZ2ljYWxXaWR0aEluUmVnaW9uVXNpbmcoU2l6ZVR5cGUgd2lkdGhUeXBlLCBMYXlv
dQogICAgIEFTU0VSVCghbG9naWNhbFdpZHRoLmlzVW5kZWZpbmVkKCkpOwogCiAgICAgaWYgKHdp
ZHRoVHlwZSA9PSBNaW5TaXplICYmIGxvZ2ljYWxXaWR0aC5pc0F1dG8oKSkKLSAgICAgICAgcmV0
dXJuIGNvbXB1dGVCb3JkZXJCb3hMb2dpY2FsV2lkdGgoMCk7CisgICAgICAgIHJldHVybiBhZGp1
c3RCb3JkZXJCb3hMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoMCk7CiAgICAgCiAgICAgaWYgKCFs
b2dpY2FsV2lkdGguaXNJbnRyaW5zaWNPckF1dG8oKSkgewogICAgICAgICAvLyBGSVhNRTogSWYg
dGhlIGNvbnRhaW5pbmcgYmxvY2sgZmxvdyBpcyBwZXJwZW5kaWN1bGFyIHRvIG91ciBkaXJlY3Rp
b24gd2UgbmVlZCB0byB1c2UgdGhlIGF2YWlsYWJsZSBsb2dpY2FsIGhlaWdodCBpbnN0ZWFkLgot
ICAgICAgICByZXR1cm4gY29tcHV0ZUJvcmRlckJveExvZ2ljYWxXaWR0aCh2YWx1ZUZvckxlbmd0
aChsb2dpY2FsV2lkdGgsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgdmlldygpKSk7CisgICAgICAg
IHJldHVybiBhZGp1c3RCb3JkZXJCb3hMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcodmFsdWVGb3JM
ZW5ndGgobG9naWNhbFdpZHRoLCBhdmFpbGFibGVMb2dpY2FsV2lkdGgsIHZpZXcoKSkpOwogICAg
IH0KIAogICAgIGlmIChsb2dpY2FsV2lkdGgudHlwZSgpID09IE1pbkNvbnRlbnQpCkBAIC0yMDkx
LDcgKzIwOTEsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHRV
c2luZyhTaXplVHlwZSBoZWlnaHRUeXBlLCBjb25zdCBMZW5ndAogewogICAgIExheW91dFVuaXQg
bG9naWNhbEhlaWdodCA9IGNvbXB1dGVDb250ZW50TG9naWNhbEhlaWdodFVzaW5nKGhlaWdodFR5
cGUsIGhlaWdodCk7CiAgICAgaWYgKGxvZ2ljYWxIZWlnaHQgIT0gLTEpCi0gICAgICAgIGxvZ2lj
YWxIZWlnaHQgPSBjb21wdXRlQm9yZGVyQm94TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KTsK
KyAgICAgICAgbG9naWNhbEhlaWdodCA9IGFkanVzdEJvcmRlckJveExvZ2ljYWxIZWlnaHRGb3JC
b3hTaXppbmcobG9naWNhbEhlaWdodCk7CiAgICAgcmV0dXJuIGxvZ2ljYWxIZWlnaHQ7CiB9CiAK
QEAgLTIxMDAsNyArMjEwMCw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNh
bENsaWVudEhlaWdodChTaXplVHlwZSBoZWlnaHRUeXBlLCBjb25zdCBMZW5nCiAgICAgTGF5b3V0
VW5pdCBoZWlnaHRJbmNsdWRpbmdTY3JvbGxiYXIgPSBjb21wdXRlQ29udGVudExvZ2ljYWxIZWln
aHRVc2luZyhoZWlnaHRUeXBlLCBoZWlnaHQpOwogICAgIGlmIChoZWlnaHRJbmNsdWRpbmdTY3Jv
bGxiYXIgPT0gLTEpCiAgICAgICAgIHJldHVybiAtMTsKLSAgICByZXR1cm4gc3RkOjptYXg8TGF5
b3V0VW5pdD4oMCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0KGhlaWdodEluY2x1ZGlu
Z1Njcm9sbGJhcikgLSBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCkpOworICAgIHJldHVybiBzdGQ6
Om1heDxMYXlvdXRVbml0PigwLCBhZGp1c3RDb250ZW50Qm94TG9naWNhbEhlaWdodEZvckJveFNp
emluZyhoZWlnaHRJbmNsdWRpbmdTY3JvbGxiYXIpIC0gc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgp
KTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVDb250ZW50TG9naWNhbEhlaWdo
dFVzaW5nKFNpemVUeXBlIGhlaWdodFR5cGUsIGNvbnN0IExlbmd0aCYgaGVpZ2h0KSBjb25zdApA
QCAtMjE2OCwxMyArMjE2OCwxMyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZVBlcmNl
bnRhZ2VMb2dpY2FsSGVpZ2h0KGNvbnN0IExlbmd0aCYgaGVpZ2h0KSBjb25zdAogICAgICAgICB9
CiAgICAgfSBlbHNlIGlmIChjYnN0eWxlLT5sb2dpY2FsSGVpZ2h0KCkuaXNGaXhlZCgpKSB7CiAg
ICAgICAgIC8vIE90aGVyd2lzZSB3ZSBvbmx5IHVzZSBvdXIgcGVyY2VudGFnZSBoZWlnaHQgaWYg
b3VyIGNvbnRhaW5pbmcgYmxvY2sgaGFkIGEgc3BlY2lmaWVkIGhlaWdodC4KLSAgICAgICAgTGF5
b3V0VW5pdCBjb250ZW50Qm94SGVpZ2h0V2l0aFNjcm9sbGJhciA9IGNiLT5jb21wdXRlQ29udGVu
dEJveExvZ2ljYWxIZWlnaHQoY2JzdHlsZS0+bG9naWNhbEhlaWdodCgpLnZhbHVlKCkpOworICAg
ICAgICBMYXlvdXRVbml0IGNvbnRlbnRCb3hIZWlnaHRXaXRoU2Nyb2xsYmFyID0gY2ItPmFkanVz
dENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKGNic3R5bGUtPmxvZ2ljYWxIZWln
aHQoKS52YWx1ZSgpKTsKICAgICAgICAgcmVzdWx0ID0gbWF4PExheW91dFVuaXQ+KDAsIGNvbnRl
bnRCb3hIZWlnaHRXaXRoU2Nyb2xsYmFyIC0gY2ItPnNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKSk7
CiAgICAgfSBlbHNlIGlmIChjYnN0eWxlLT5sb2dpY2FsSGVpZ2h0KCkuaXNQZXJjZW50KCkgJiYg
IWlzT3V0T2ZGbG93UG9zaXRpb25lZFdpdGhTcGVjaWZpZWRIZWlnaHQpIHsKICAgICAgICAgLy8g
V2UgbmVlZCB0byByZWN1ciBhbmQgY29tcHV0ZSB0aGUgcGVyY2VudGFnZSBoZWlnaHQgZm9yIG91
ciBjb250YWluaW5nIGJsb2NrLgogICAgICAgICBMYXlvdXRVbml0IGhlaWdodFdpdGhTY3JvbGxi
YXIgPSBjYi0+Y29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KGNic3R5bGUtPmxvZ2ljYWxI
ZWlnaHQoKSk7CiAgICAgICAgIGlmIChoZWlnaHRXaXRoU2Nyb2xsYmFyICE9IC0xKSB7Ci0gICAg
ICAgICAgICBMYXlvdXRVbml0IGNvbnRlbnRCb3hIZWlnaHRXaXRoU2Nyb2xsYmFyID0gY2ItPmNv
bXB1dGVDb250ZW50Qm94TG9naWNhbEhlaWdodChoZWlnaHRXaXRoU2Nyb2xsYmFyKTsKKyAgICAg
ICAgICAgIExheW91dFVuaXQgY29udGVudEJveEhlaWdodFdpdGhTY3JvbGxiYXIgPSBjYi0+YWRq
dXN0Q29udGVudEJveExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcoaGVpZ2h0V2l0aFNjcm9sbGJh
cik7CiAgICAgICAgICAgICByZXN1bHQgPSBtYXg8TGF5b3V0VW5pdD4oMCwgY29udGVudEJveEhl
aWdodFdpdGhTY3JvbGxiYXIgLSBjYi0+c2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpKTsKICAgICAg
ICAgfQogICAgIH0gZWxzZSBpZiAoY2ItPmlzUmVuZGVyVmlldygpIHx8IChjYi0+aXNCb2R5KCkg
JiYgZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpIHx8IGlzT3V0T2ZGbG93UG9zaXRpb25lZFdp
dGhTcGVjaWZpZWRIZWlnaHQpIHsKQEAgLTIyMTQsMTUgKzIyMTQsMTUgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0
aChMYXlvdXRVbmkKIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGhVc2luZyhTaXplVHlwZSBzaXplVHlwZSwgTGVuZ3RoIGxvZ2ljYWxXaWR0aCkgY29uc3QK
IHsKICAgICBpZiAoc2l6ZVR5cGUgPT0gTWluU2l6ZSAmJiBsb2dpY2FsV2lkdGguaXNBdXRvKCkp
Ci0gICAgICAgIHJldHVybiBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aCgwKTsKKyAgICAg
ICAgcmV0dXJuIGFkanVzdENvbnRlbnRCb3hMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoMCk7CiAK
ICAgICBzd2l0Y2ggKGxvZ2ljYWxXaWR0aC50eXBlKCkpIHsKICAgICAgICAgY2FzZSBGaXhlZDoK
LSAgICAgICAgICAgIHJldHVybiBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChsb2dpY2Fs
V2lkdGgudmFsdWUoKSk7CisgICAgICAgICAgICByZXR1cm4gYWRqdXN0Q29udGVudEJveExvZ2lj
YWxXaWR0aEZvckJveFNpemluZyhsb2dpY2FsV2lkdGgudmFsdWUoKSk7CiAgICAgICAgIGNhc2Ug
Vmlld3BvcnRQZXJjZW50YWdlV2lkdGg6CiAgICAgICAgIGNhc2UgVmlld3BvcnRQZXJjZW50YWdl
SGVpZ2h0OgogICAgICAgICBjYXNlIFZpZXdwb3J0UGVyY2VudGFnZU1pbjoKLSAgICAgICAgICAg
IHJldHVybiBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aCh2YWx1ZUZvckxlbmd0aChsb2dp
Y2FsV2lkdGgsIDAsIHZpZXcoKSkpOworICAgICAgICAgICAgcmV0dXJuIGFkanVzdENvbnRlbnRC
b3hMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcodmFsdWVGb3JMZW5ndGgobG9naWNhbFdpZHRoLCAw
LCB2aWV3KCkpKTsKICAgICAgICAgY2FzZSBQZXJjZW50OiAKICAgICAgICAgY2FzZSBDYWxjdWxh
dGVkOiB7CiAgICAgICAgICAgICAvLyBGSVhNRTogY29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRo
Rm9yQ29udGVudCgpIGlzIHdyb25nIGlmIHRoZSByZXBsYWNlZCBlbGVtZW50J3MgYmxvY2stZmxv
dyBpcyBwZXJwZW5kaWN1bGFyIHRvIHRoZQpAQCAtMjIzMyw3ICsyMjMzLDcgQEAgTGF5b3V0VW5p
dCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKFNpemVUeXBlIHNp
emVUeXBlLCBMZW5ndGgKICAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgY2FzZXMgd2hlbiBj
b250YWluaW5nIGJsb2NrIHdpZHRoIGlzIGNhbGN1bGF0ZWQgb3Igdmlld3BvcnQgcGVyY2VudC4K
ICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
MTA3MQogICAgICAgICAgICAgaWYgKGN3ID4gMCB8fCAoIWN3ICYmIChjb250YWluZXJMb2dpY2Fs
V2lkdGguaXNGaXhlZCgpIHx8IGNvbnRhaW5lckxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSkpKQot
ICAgICAgICAgICAgICAgIHJldHVybiBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChtaW5p
bXVtVmFsdWVGb3JMZW5ndGgobG9naWNhbFdpZHRoLCBjdykpOworICAgICAgICAgICAgICAgIHJl
dHVybiBhZGp1c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKG1pbmltdW1WYWx1
ZUZvckxlbmd0aChsb2dpY2FsV2lkdGgsIGN3KSk7CiAgICAgICAgIH0KICAgICAgICAgLy8gZmFs
bCB0aHJvdWdoCiAgICAgICAgIGRlZmF1bHQ6CkBAIC0yMjU2LDExICsyMjU2LDExIEBAIExheW91
dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0UmVzcGVjdGluZ01p
bk1heEhlaWdodChMYXlvdXRVCiBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2Vk
TG9naWNhbEhlaWdodFVzaW5nKFNpemVUeXBlIHNpemVUeXBlLCBMZW5ndGggbG9naWNhbEhlaWdo
dCkgY29uc3QKIHsKICAgICBpZiAoc2l6ZVR5cGUgPT0gTWluU2l6ZSAmJiBsb2dpY2FsSGVpZ2h0
LmlzQXV0bygpKQotICAgICAgICByZXR1cm4gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0
KDApOworICAgICAgICByZXR1cm4gYWRqdXN0Q29udGVudEJveExvZ2ljYWxIZWlnaHRGb3JCb3hT
aXppbmcoMCk7CiAKICAgICBzd2l0Y2ggKGxvZ2ljYWxIZWlnaHQudHlwZSgpKSB7CiAgICAgICAg
IGNhc2UgRml4ZWQ6Ci0gICAgICAgICAgICByZXR1cm4gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2Fs
SGVpZ2h0KGxvZ2ljYWxIZWlnaHQudmFsdWUoKSk7CisgICAgICAgICAgICByZXR1cm4gYWRqdXN0
Q29udGVudEJveExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcobG9naWNhbEhlaWdodC52YWx1ZSgp
KTsKICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICBjYXNlIENhbGN1bGF0ZWQ6CiAgICAg
ICAgIHsKQEAgLTIyNzcsOSArMjI3Nyw5IEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRl
UmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNpbmcoU2l6ZVR5cGUgc2l6ZVR5cGUsIExlbmd0CiAgICAg
ICAgICAgICAgICAgUmVuZGVyQmxvY2sqIGJsb2NrID0gdG9SZW5kZXJCbG9jayhjYik7CiAgICAg
ICAgICAgICAgICAgTGF5b3V0VW5pdCBvbGRIZWlnaHQgPSBibG9jay0+aGVpZ2h0KCk7CiAgICAg
ICAgICAgICAgICAgYmxvY2stPmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7Ci0gICAgICAgICAgICAg
ICAgTGF5b3V0VW5pdCBuZXdIZWlnaHQgPSBibG9jay0+Y29tcHV0ZUNvbnRlbnRCb3hMb2dpY2Fs
SGVpZ2h0KGJsb2NrLT5jb250ZW50SGVpZ2h0KCkpOworICAgICAgICAgICAgICAgIExheW91dFVu
aXQgbmV3SGVpZ2h0ID0gYmxvY2stPmFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94
U2l6aW5nKGJsb2NrLT5jb250ZW50SGVpZ2h0KCkpOwogICAgICAgICAgICAgICAgIGJsb2NrLT5z
ZXRIZWlnaHQob2xkSGVpZ2h0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gY29tcHV0ZUNvbnRl
bnRCb3hMb2dpY2FsSGVpZ2h0KHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxIZWlnaHQsIG5ld0hlaWdo
dCkpOworICAgICAgICAgICAgICAgIHJldHVybiBhZGp1c3RDb250ZW50Qm94TG9naWNhbEhlaWdo
dEZvckJveFNpemluZyh2YWx1ZUZvckxlbmd0aChsb2dpY2FsSGVpZ2h0LCBuZXdIZWlnaHQpKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gRklYTUU6IGF2YWls
YWJsZUxvZ2ljYWxIZWlnaHQoKSBpcyB3cm9uZyBpZiB0aGUgcmVwbGFjZWQgZWxlbWVudCdzIGJs
b2NrLWZsb3cgaXMgcGVycGVuZGljdWxhciB0byB0aGUKQEAgLTIzMDYsMTIgKzIzMDYsMTIgQEAg
TGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2luZyhT
aXplVHlwZSBzaXplVHlwZSwgTGVuZ3QKICAgICAgICAgICAgICAgICAgICAgY2IgPSBjYi0+Y29u
dGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbEhlaWdodCh2YWx1ZUZvckxlbmd0
aChsb2dpY2FsSGVpZ2h0LCBhdmFpbGFibGVIZWlnaHQpKTsKKyAgICAgICAgICAgIHJldHVybiBh
ZGp1c3RDb250ZW50Qm94TG9naWNhbEhlaWdodEZvckJveFNpemluZyh2YWx1ZUZvckxlbmd0aChs
b2dpY2FsSGVpZ2h0LCBhdmFpbGFibGVIZWlnaHQpKTsKICAgICAgICAgfQogICAgICAgICBjYXNl
IFZpZXdwb3J0UGVyY2VudGFnZVdpZHRoOgogICAgICAgICBjYXNlIFZpZXdwb3J0UGVyY2VudGFn
ZUhlaWdodDoKICAgICAgICAgY2FzZSBWaWV3cG9ydFBlcmNlbnRhZ2VNaW46Ci0gICAgICAgICAg
ICByZXR1cm4gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0KHZhbHVlRm9yTGVuZ3RoKGxv
Z2ljYWxIZWlnaHQsIDAsIHZpZXcoKSkpOworICAgICAgICAgICAgcmV0dXJuIGFkanVzdENvbnRl
bnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxIZWln
aHQsIDAsIHZpZXcoKSkpOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGlu
dHJpbnNpY0xvZ2ljYWxIZWlnaHQoKTsKICAgICB9CkBAIC0yMzM1LDEyICsyMzM1LDEyIEBAIExh
eW91dFVuaXQgUmVuZGVyQm94OjphdmFpbGFibGVMb2dpY2FsSGVpZ2h0VXNpbmcoY29uc3QgTGVu
Z3RoJiBoKSBjb25zdAogCiAgICAgaWYgKGguaXNQZXJjZW50KCkgJiYgaXNPdXRPZkZsb3dQb3Np
dGlvbmVkKCkpIHsKICAgICAgICAgTGF5b3V0VW5pdCBhdmFpbGFibGVIZWlnaHQgPSBjb250YWlu
aW5nQmxvY2tMb2dpY2FsSGVpZ2h0Rm9yUG9zaXRpb25lZChjb250YWluaW5nQmxvY2soKSk7Ci0g
ICAgICAgIHJldHVybiBjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQodmFsdWVGb3JMZW5n
dGgoaCwgYXZhaWxhYmxlSGVpZ2h0KSk7CisgICAgICAgIHJldHVybiBhZGp1c3RDb250ZW50Qm94
TG9naWNhbEhlaWdodEZvckJveFNpemluZyh2YWx1ZUZvckxlbmd0aChoLCBhdmFpbGFibGVIZWln
aHQpKTsKICAgICB9CiAKICAgICBMYXlvdXRVbml0IGhlaWdodEluY2x1ZGluZ1Njcm9sbGJhciA9
IGNvbXB1dGVDb250ZW50TG9naWNhbEhlaWdodFVzaW5nKE1haW5PclByZWZlcnJlZFNpemUsIGgp
OwogICAgIGlmIChoZWlnaHRJbmNsdWRpbmdTY3JvbGxiYXIgIT0gLTEpCi0gICAgICAgIHJldHVy
biBzdGQ6Om1heDxMYXlvdXRVbml0PigwLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQo
aGVpZ2h0SW5jbHVkaW5nU2Nyb2xsYmFyKSAtIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKSk7Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1heDxMYXlvdXRVbml0PigwLCBhZGp1c3RDb250ZW50Qm94TG9n
aWNhbEhlaWdodEZvckJveFNpemluZyhoZWlnaHRJbmNsdWRpbmdTY3JvbGxiYXIpIC0gc2Nyb2xs
YmFyTG9naWNhbEhlaWdodCgpKTsKIAogICAgIC8vIEZJWE1FOiBDaGVjayBsb2dpY2FsVG9wL2xv
Z2ljYWxCb3R0b20gaGVyZSB0byBjb3JyZWN0bHkgaGFuZGxlIHZlcnRpY2FsIHdyaXRpbmctbW9k
ZS4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY1MDAK
QEAgLTIzNDgsOSArMjM0OCw5IEBAIExheW91dFVuaXQgUmVuZGVyQm94OjphdmFpbGFibGVMb2dp
Y2FsSGVpZ2h0VXNpbmcoY29uc3QgTGVuZ3RoJiBoKSBjb25zdAogICAgICAgICBSZW5kZXJCbG9j
ayogYmxvY2sgPSBjb25zdF9jYXN0PFJlbmRlckJsb2NrKj4odG9SZW5kZXJCbG9jayh0aGlzKSk7
CiAgICAgICAgIExheW91dFVuaXQgb2xkSGVpZ2h0ID0gYmxvY2stPmxvZ2ljYWxIZWlnaHQoKTsK
ICAgICAgICAgYmxvY2stPmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7Ci0gICAgICAgIExheW91dFVu
aXQgbmV3SGVpZ2h0ID0gYmxvY2stPmNvbXB1dGVDb250ZW50Qm94TG9naWNhbEhlaWdodChibG9j
ay0+Y29udGVudExvZ2ljYWxIZWlnaHQoKSk7CisgICAgICAgIExheW91dFVuaXQgbmV3SGVpZ2h0
ID0gYmxvY2stPmFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKGJsb2Nr
LT5jb250ZW50TG9naWNhbEhlaWdodCgpKTsKICAgICAgICAgYmxvY2stPnNldExvZ2ljYWxIZWln
aHQob2xkSGVpZ2h0KTsKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbEhl
aWdodChuZXdIZWlnaHQpOworICAgICAgICByZXR1cm4gYWRqdXN0Q29udGVudEJveExvZ2ljYWxI
ZWlnaHRGb3JCb3hTaXppbmcobmV3SGVpZ2h0KTsKICAgICB9CiAKICAgICByZXR1cm4gY29udGFp
bmluZ0Jsb2NrKCktPmF2YWlsYWJsZUxvZ2ljYWxIZWlnaHQoKTsKQEAgLTI3MTcsNyArMjcxNyw3
IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aFVzaW5nKFNp
emVUeXBlIHdpZHRoU2l6ZVR5cGUsIExlbmd0CiAgICAgICAgIC8vIGNhc2UgYmVjYXVzZSB0aGUg
dmFsdWUgaXMgbm90IHVzZWQgZm9yIGFueSBmdXJ0aGVyIGNhbGN1bGF0aW9ucy4KIAogICAgICAg
ICBsb2dpY2FsTGVmdFZhbHVlID0gdmFsdWVGb3JMZW5ndGgobG9naWNhbExlZnQsIGNvbnRhaW5l
ckxvZ2ljYWxXaWR0aCwgcmVuZGVyVmlldyk7Ci0gICAgICAgIGNvbXB1dGVkVmFsdWVzLm1fZXh0
ZW50ID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgodmFsdWVGb3JMZW5ndGgobG9naWNh
bFdpZHRoLCBjb250YWluZXJMb2dpY2FsV2lkdGgsIHJlbmRlclZpZXcpKTsKKyAgICAgICAgY29t
cHV0ZWRWYWx1ZXMubV9leHRlbnQgPSBhZGp1c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94
U2l6aW5nKHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxXaWR0aCwgY29udGFpbmVyTG9naWNhbFdpZHRo
LCByZW5kZXJWaWV3KSk7CiAKICAgICAgICAgY29uc3QgTGF5b3V0VW5pdCBhdmFpbGFibGVTcGFj
ZSA9IGNvbnRhaW5lckxvZ2ljYWxXaWR0aCAtIChsb2dpY2FsTGVmdFZhbHVlICsgY29tcHV0ZWRW
YWx1ZXMubV9leHRlbnQgKyB2YWx1ZUZvckxlbmd0aChsb2dpY2FsUmlnaHQsIGNvbnRhaW5lckxv
Z2ljYWxXaWR0aCwgcmVuZGVyVmlldykgKyBib3JkZXJzUGx1c1BhZGRpbmcpOwogCkBAIC0yODI3
LDcgKzI4MjcsNyBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsV2lk
dGhVc2luZyhTaXplVHlwZSB3aWR0aFNpemVUeXBlLCBMZW5ndAogICAgICAgICAgICAgY29tcHV0
ZWRWYWx1ZXMubV9leHRlbnQgPSBtaW4obWF4KHByZWZlcnJlZE1pbldpZHRoLCBhdmFpbGFibGVX
aWR0aCksIHByZWZlcnJlZFdpZHRoKTsKICAgICAgICAgfSBlbHNlIGlmIChsb2dpY2FsTGVmdElz
QXV0byAmJiAhbG9naWNhbFdpZHRoSXNBdXRvICYmICFsb2dpY2FsUmlnaHRJc0F1dG8pIHsKICAg
ICAgICAgICAgIC8vIFJVTEUgNDogKHNvbHZlIGZvciBsZWZ0KQotICAgICAgICAgICAgY29tcHV0
ZWRWYWx1ZXMubV9leHRlbnQgPSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aCh2YWx1ZUZv
ckxlbmd0aChsb2dpY2FsV2lkdGgsIGNvbnRhaW5lckxvZ2ljYWxXaWR0aCwgcmVuZGVyVmlldykp
OworICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQgPSBhZGp1c3RDb250ZW50Qm94
TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxXaWR0aCwgY29u
dGFpbmVyTG9naWNhbFdpZHRoLCByZW5kZXJWaWV3KSk7CiAgICAgICAgICAgICBsb2dpY2FsTGVm
dFZhbHVlID0gYXZhaWxhYmxlU3BhY2UgLSAoY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQgKyB2YWx1
ZUZvckxlbmd0aChsb2dpY2FsUmlnaHQsIGNvbnRhaW5lckxvZ2ljYWxXaWR0aCwgcmVuZGVyVmll
dykpOwogICAgICAgICB9IGVsc2UgaWYgKCFsb2dpY2FsTGVmdElzQXV0byAmJiBsb2dpY2FsV2lk
dGhJc0F1dG8gJiYgIWxvZ2ljYWxSaWdodElzQXV0bykgewogICAgICAgICAgICAgLy8gUlVMRSA1
OiAoc29sdmUgZm9yIHdpZHRoKQpAQCAtMjgzNiw3ICsyODM2LDcgQEAgdm9pZCBSZW5kZXJCb3g6
OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNpbmcoU2l6ZVR5cGUgd2lkdGhTaXplVHlw
ZSwgTGVuZ3QKICAgICAgICAgfSBlbHNlIGlmICghbG9naWNhbExlZnRJc0F1dG8gJiYgIWxvZ2lj
YWxXaWR0aElzQXV0byAmJiBsb2dpY2FsUmlnaHRJc0F1dG8pIHsKICAgICAgICAgICAgIC8vIFJV
TEUgNjogKG5vIG5lZWQgc29sdmUgZm9yIHJpZ2h0KQogICAgICAgICAgICAgbG9naWNhbExlZnRW
YWx1ZSA9IHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxMZWZ0LCBjb250YWluZXJMb2dpY2FsV2lkdGgs
IHJlbmRlclZpZXcpOwotICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQgPSBjb21w
dXRlQ29udGVudEJveExvZ2ljYWxXaWR0aCh2YWx1ZUZvckxlbmd0aChsb2dpY2FsV2lkdGgsIGNv
bnRhaW5lckxvZ2ljYWxXaWR0aCwgcmVuZGVyVmlldykpOworICAgICAgICAgICAgY29tcHV0ZWRW
YWx1ZXMubV9leHRlbnQgPSBhZGp1c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5n
KHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxXaWR0aCwgY29udGFpbmVyTG9naWNhbFdpZHRoLCByZW5k
ZXJWaWV3KSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTMwNDMsNyArMzA0Myw3IEBAIHZvaWQg
UmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWlnaHRVc2luZyhTaXplVHlwZSBo
ZWlnaHRTaXplVHlwZSwgTGVuCiAgICAgICAgIC8vIE5PVEU6ICBJdCBpcyBub3QgbmVjZXNzYXJ5
IHRvIHNvbHZlIGZvciAnYm90dG9tJyBpbiB0aGUgb3ZlciBjb25zdHJhaW5lZAogICAgICAgICAv
LyBjYXNlIGJlY2F1c2UgdGhlIHZhbHVlIGlzIG5vdCB1c2VkIGZvciBhbnkgZnVydGhlciBjYWxj
dWxhdGlvbnMuCiAKLSAgICAgICAgbG9naWNhbEhlaWdodFZhbHVlID0gY29tcHV0ZUNvbnRlbnRC
b3hMb2dpY2FsSGVpZ2h0KHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxIZWlnaHRMZW5ndGgsIGNvbnRh
aW5lckxvZ2ljYWxIZWlnaHQsIHJlbmRlclZpZXcpKTsKKyAgICAgICAgbG9naWNhbEhlaWdodFZh
bHVlID0gYWRqdXN0Q29udGVudEJveExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcodmFsdWVGb3JM
ZW5ndGgobG9naWNhbEhlaWdodExlbmd0aCwgY29udGFpbmVyTG9naWNhbEhlaWdodCwgcmVuZGVy
VmlldykpOwogICAgICAgICBsb2dpY2FsVG9wVmFsdWUgPSB2YWx1ZUZvckxlbmd0aChsb2dpY2Fs
VG9wLCBjb250YWluZXJMb2dpY2FsSGVpZ2h0LCByZW5kZXJWaWV3KTsKIAogICAgICAgICBjb25z
dCBMYXlvdXRVbml0IGF2YWlsYWJsZVNwYWNlID0gY29udGFpbmVyTG9naWNhbEhlaWdodCAtIChs
b2dpY2FsVG9wVmFsdWUgKyBsb2dpY2FsSGVpZ2h0VmFsdWUgKyB2YWx1ZUZvckxlbmd0aChsb2dp
Y2FsQm90dG9tLCBjb250YWluZXJMb2dpY2FsSGVpZ2h0LCByZW5kZXJWaWV3KSArIGJvcmRlcnNQ
bHVzUGFkZGluZyk7CkBAIC0zMTEwLDcgKzMxMTAsNyBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0
ZVBvc2l0aW9uZWRMb2dpY2FsSGVpZ2h0VXNpbmcoU2l6ZVR5cGUgaGVpZ2h0U2l6ZVR5cGUsIExl
bgogICAgICAgICAgICAgbG9naWNhbEhlaWdodFZhbHVlID0gY29udGVudExvZ2ljYWxIZWlnaHQ7
CiAgICAgICAgIH0gZWxzZSBpZiAobG9naWNhbFRvcElzQXV0byAmJiAhbG9naWNhbEhlaWdodElz
QXV0byAmJiAhbG9naWNhbEJvdHRvbUlzQXV0bykgewogICAgICAgICAgICAgLy8gUlVMRSA0OiAo
c29sdmUgb2YgdG9wKQotICAgICAgICAgICAgbG9naWNhbEhlaWdodFZhbHVlID0gY29tcHV0ZUNv
bnRlbnRCb3hMb2dpY2FsSGVpZ2h0KHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxIZWlnaHRMZW5ndGgs
IGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQsIHJlbmRlclZpZXcpKTsKKyAgICAgICAgICAgIGxvZ2lj
YWxIZWlnaHRWYWx1ZSA9IGFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5n
KHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxIZWlnaHRMZW5ndGgsIGNvbnRhaW5lckxvZ2ljYWxIZWln
aHQsIHJlbmRlclZpZXcpKTsKICAgICAgICAgICAgIGxvZ2ljYWxUb3BWYWx1ZSA9IGF2YWlsYWJs
ZVNwYWNlIC0gKGxvZ2ljYWxIZWlnaHRWYWx1ZSArIHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxCb3R0
b20sIGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQsIHJlbmRlclZpZXcpKTsKICAgICAgICAgfSBlbHNl
IGlmICghbG9naWNhbFRvcElzQXV0byAmJiBsb2dpY2FsSGVpZ2h0SXNBdXRvICYmICFsb2dpY2Fs
Qm90dG9tSXNBdXRvKSB7CiAgICAgICAgICAgICAvLyBSVUxFIDU6IChzb2x2ZSBvZiBoZWlnaHQp
CkBAIC0zMTE4LDcgKzMxMTgsNyBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRM
b2dpY2FsSGVpZ2h0VXNpbmcoU2l6ZVR5cGUgaGVpZ2h0U2l6ZVR5cGUsIExlbgogICAgICAgICAg
ICAgbG9naWNhbEhlaWdodFZhbHVlID0gbWF4PExheW91dFVuaXQ+KDAsIGF2YWlsYWJsZVNwYWNl
IC0gKGxvZ2ljYWxUb3BWYWx1ZSArIHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxCb3R0b20sIGNvbnRh
aW5lckxvZ2ljYWxIZWlnaHQsIHJlbmRlclZpZXcpKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoIWxv
Z2ljYWxUb3BJc0F1dG8gJiYgIWxvZ2ljYWxIZWlnaHRJc0F1dG8gJiYgbG9naWNhbEJvdHRvbUlz
QXV0bykgewogICAgICAgICAgICAgLy8gUlVMRSA2OiAobm8gbmVlZCBzb2x2ZSBvZiBib3R0b20p
Ci0gICAgICAgICAgICBsb2dpY2FsSGVpZ2h0VmFsdWUgPSBjb21wdXRlQ29udGVudEJveExvZ2lj
YWxIZWlnaHQodmFsdWVGb3JMZW5ndGgobG9naWNhbEhlaWdodExlbmd0aCwgY29udGFpbmVyTG9n
aWNhbEhlaWdodCwgcmVuZGVyVmlldykpOworICAgICAgICAgICAgbG9naWNhbEhlaWdodFZhbHVl
ID0gYWRqdXN0Q29udGVudEJveExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcodmFsdWVGb3JMZW5n
dGgobG9naWNhbEhlaWdodExlbmd0aCwgY29udGFpbmVyTG9naWNhbEhlaWdodCwgcmVuZGVyVmll
dykpOwogICAgICAgICAgICAgbG9naWNhbFRvcFZhbHVlID0gdmFsdWVGb3JMZW5ndGgobG9naWNh
bFRvcCwgY29udGFpbmVyTG9naWNhbEhlaWdodCwgcmVuZGVyVmlldyk7CiAgICAgICAgIH0KICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggZWQ3MGE5NGI4NTgyMzAy
ODM0ZjBlYjYyOTkxNmZiM2UzYzBmNDcwYi4uZGM3OTViOWViMWMwZTI0OTI2MTYxOWYzY2JhOGU5
ZjMwYjQyZjYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtMjk5LDEw
ICsyOTksMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBMYXlvdXRTaXplIG9mZnNldEZyb21D
b250YWluZXIoUmVuZGVyT2JqZWN0KiwgY29uc3QgTGF5b3V0UG9pbnQmLCBib29sKiBvZmZzZXRE
ZXBlbmRzT25Qb2ludCA9IDApIGNvbnN0OwogICAgIAotICAgIExheW91dFVuaXQgY29tcHV0ZUJv
cmRlckJveExvZ2ljYWxXaWR0aChMYXlvdXRVbml0IHdpZHRoKSBjb25zdDsKLSAgICBMYXlvdXRV
bml0IGNvbXB1dGVCb3JkZXJCb3hMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgaGVpZ2h0KSBjb25z
dDsKLSAgICBMYXlvdXRVbml0IGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKExheW91dFVu
aXQgd2lkdGgpIGNvbnN0OwotICAgIExheW91dFVuaXQgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2Fs
SGVpZ2h0KExheW91dFVuaXQgaGVpZ2h0KSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGFkanVzdEJv
cmRlckJveExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhMYXlvdXRVbml0IHdpZHRoKSBjb25zdDsK
KyAgICBMYXlvdXRVbml0IGFkanVzdEJvcmRlckJveExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmco
TGF5b3V0VW5pdCBoZWlnaHQpIGNvbnN0OworICAgIExheW91dFVuaXQgYWRqdXN0Q29udGVudEJv
eExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhMYXlvdXRVbml0IHdpZHRoKSBjb25zdDsKKyAgICBM
YXlvdXRVbml0IGFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKExheW91
dFVuaXQgaGVpZ2h0KSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBib3JkZXJGaXRBZGp1c3Qo
TGF5b3V0UmVjdCYpIGNvbnN0IHsgfSAvLyBTaHJpbmsgdGhlIGJveCBpbiB3aGljaCB0aGUgYm9y
ZGVyIHBhaW50cyBpZiBib3JkZXItZml0IGlzIHNldC4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCBl
MmZlMWNmNWMxZTcxYTVhYWYyY2QxZjM5OWEwOTRkMTg0MmRkNzJlLi4zMjBkNzY3Yjg3NTk4MTA0
NTAxNGNlNmNiODA2ODY4NDJkY2UzOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMTkyLDcgKzE5
Miw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpCiAgICAgQVNTRVJUKHByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSgp
KTsKIAogICAgIGlmIChzdHlsZSgpLT53aWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZSgpLT53aWR0
aCgpLnZhbHVlKCkgPiAwKQotICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1f
bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgo
c3R5bGUoKS0+d2lkdGgoKS52YWx1ZSgpKTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2Fs
V2lkdGggPSBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IGFkanVzdENvbnRlbnRCb3hMb2dp
Y2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGUoKS0+d2lkdGgoKS52YWx1ZSgpKTsKICAgICBlbHNl
IHsKICAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX21heFByZWZlcnJlZExv
Z2ljYWxXaWR0aCA9IDA7CiAKQEAgLTIxMiwxMyArMjEyLDEzIEBAIHZvaWQgUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAgICAgfQog
CiAgICAgaWYgKHN0eWxlKCktPm1pbldpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCktPm1pbldp
ZHRoKCkudmFsdWUoKSA+IDApIHsKLSAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgg
PSBtYXgobV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNh
bFdpZHRoKHN0eWxlKCktPm1pbldpZHRoKCkudmFsdWUoKSkpOwotICAgICAgICBtX21pblByZWZl
cnJlZExvZ2ljYWxXaWR0aCA9IG1heChtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0
ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpKSk7Cisg
ICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1fbWF4UHJlZmVycmVkTG9n
aWNhbFdpZHRoLCBhZGp1c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxl
KCktPm1pbldpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxX
aWR0aCA9IG1heChtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudEJveExv
Z2ljYWxXaWR0aEZvckJveFNpemluZyhzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKICAg
ICB9CiAKICAgICBpZiAoc3R5bGUoKS0+bWF4V2lkdGgoKS5pc0ZpeGVkKCkpIHsKLSAgICAgICAg
bV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtaW4obV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lk
dGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlKCktPm1heFdpZHRoKCkudmFs
dWUoKSkpOwotICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21pblBy
ZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUo
KS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdp
ZHRoID0gbWluKG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RDb250ZW50Qm94TG9n
aWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkpOworICAg
ICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21pblByZWZlcnJlZExvZ2lj
YWxXaWR0aCwgYWRqdXN0Q29udGVudEJveExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhzdHlsZSgp
LT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKICAgICB9CiAKICAgICBMYXlvdXRVbml0IGJvcmRlckFu
ZFBhZGRpbmcgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAppbmRleCBk
ZTk1NjQ0NTY2MDQzMjYwNDgxMGJiNzQzNmUxMzZiN2VmYTU5NmU2Li5jZTZmMjc4YjUyNTljNmY0
YzhmZmNiM2Q0YjVlNmI0MmMzMDA3MjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCB2
b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cygpCiAKICAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUtPmZvbnQoKTsKICAgICBpZiAoc3R5
bGUtPndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlLT53aWR0aCgpLnZhbHVlKCkgPiAwKQotICAg
ICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1fbWF4UHJlZmVycmVkTG9naWNhbFdp
ZHRoID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUtPndpZHRoKCkudmFsdWUo
KSk7CisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9tYXhQcmVmZXJyZWRM
b2dpY2FsV2lkdGggPSBhZGp1c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0
eWxlLT53aWR0aCgpLnZhbHVlKCkpOwogICAgIGVsc2UgewogICAgICAgICAvLyBGaWd1cmUgb3V0
IGhvdyBiaWcgdGhlIGZpbGVuYW1lIHNwYWNlIG5lZWRzIHRvIGJlIGZvciBhIGdpdmVuIG51bWJl
ciBvZiBjaGFyYWN0ZXJzCiAgICAgICAgIC8vICh1c2luZyAiMCIgYXMgdGhlIG5vbWluYWwgY2hh
cmFjdGVyKS4KQEAgLTIwMSwxNiArMjAxLDE2IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2w6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAgICB9CiAKICAgICBpZiAoc3R5
bGUtPm1pbldpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlLT5taW5XaWR0aCgpLnZhbHVlKCkgPiAw
KSB7Ci0gICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1fbWF4UHJlZmVy
cmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZS0+bWlu
V2lkdGgoKS52YWx1ZSgpKSk7Ci0gICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0g
bWF4KG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxX
aWR0aChzdHlsZS0+bWluV2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWF4UHJlZmVycmVk
TG9naWNhbFdpZHRoID0gbWF4KG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RDb250
ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlLT5taW5XaWR0aCgpLnZhbHVlKCkp
KTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9taW5QcmVmZXJy
ZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRlbnRCb3hMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmco
c3R5bGUtPm1pbldpZHRoKCkudmFsdWUoKSkpOwogICAgIH0gZWxzZSBpZiAoc3R5bGUtPndpZHRo
KCkuaXNQZXJjZW50KCkgfHwgKHN0eWxlLT53aWR0aCgpLmlzQXV0bygpICYmIHN0eWxlLT5oZWln
aHQoKS5pc1BlcmNlbnQoKSkpCiAgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0g
MDsKICAgICBlbHNlCiAgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9tYXhQ
cmVmZXJyZWRMb2dpY2FsV2lkdGg7CiAKICAgICBpZiAoc3R5bGUtPm1heFdpZHRoKCkuaXNGaXhl
ZCgpKSB7Ci0gICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWluKG1fbWF4UHJl
ZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZS0+
bWF4V2lkdGgoKS52YWx1ZSgpKSk7Ci0gICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRo
ID0gbWluKG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2lj
YWxXaWR0aChzdHlsZS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWF4UHJlZmVy
cmVkTG9naWNhbFdpZHRoID0gbWluKG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RD
b250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlLT5tYXhXaWR0aCgpLnZhbHVl
KCkpKTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtaW4obV9taW5QcmVm
ZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRlbnRCb3hMb2dpY2FsV2lkdGhGb3JCb3hTaXpp
bmcoc3R5bGUtPm1heFdpZHRoKCkudmFsdWUoKSkpOwogICAgIH0KIAogICAgIGludCB0b0FkZCA9
IGJvcmRlckFuZFBhZGRpbmdXaWR0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggOWY4N2NmODM1YWM1OTA3NDZiNGE3NWEwMWExNjM3
M2Y0ODA3NzE0Ny4uZmU2MDU3NmY4MGNiYjY1YTg2Zjc4MDk4ODg2MDUwYWY0MDdiNmMyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBAIC0x
NjcsNyArMTY3LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZVByZWZlcnJlZExv
Z2ljYWxXaWR0aHMoKQogICAgIFJlbmRlclN0eWxlKiBzdHlsZVRvVXNlID0gc3R5bGUoKTsKICAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgY2hlY2tpbmcgZm9yIGlzU3BlY2lm
aWVkIHNpbmNlIHlvdSBzaG91bGQgYmUgYWJsZSB0byB1c2UgcGVyY2VudGFnZSwgY2FsYyBvciB2
aWV3cG9ydCByZWxhdGl2ZSB2YWx1ZXMgZm9yIHdpZHRoLgogICAgIGlmIChzdHlsZVRvVXNlLT5s
b2dpY2FsV2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGVUb1VzZS0+bG9naWNhbFdpZHRoKCkudmFs
dWUoKSA+IDApCi0gICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9tYXhQcmVm
ZXJyZWRMb2dpY2FsV2lkdGggPSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZVRv
VXNlLT5sb2dpY2FsV2lkdGgoKS52YWx1ZSgpKTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dp
Y2FsV2lkdGggPSBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IGFkanVzdENvbnRlbnRCb3hM
b2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGVUb1VzZS0+bG9naWNhbFdpZHRoKCkudmFsdWUo
KSk7CiAgICAgZWxzZSB7CiAgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9t
YXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSAwOwogCkBAIC0yMTcsMTQgKzIxNywxNCBAQCB2b2lk
IFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAKICAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgY2hlY2tpbmcgZm9yIGlzU3BlY2lm
aWVkIHNpbmNlIHlvdSBzaG91bGQgYmUgYWJsZSB0byB1c2UgcGVyY2VudGFnZSwgY2FsYyBvciB2
aWV3cG9ydCByZWxhdGl2ZSB2YWx1ZXMgZm9yIG1pbi13aWR0aC4KICAgICBpZiAoc3R5bGVUb1Vz
ZS0+bG9naWNhbE1pbldpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlVG9Vc2UtPmxvZ2ljYWxNaW5X
aWR0aCgpLnZhbHVlKCkgPiAwKSB7Ci0gICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRo
ID0gc3RkOjptYXgobV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94
TG9naWNhbFdpZHRoKHN0eWxlVG9Vc2UtPmxvZ2ljYWxNaW5XaWR0aCgpLnZhbHVlKCkpKTsKLSAg
ICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBzdGQ6Om1heChtX21pblByZWZlcnJl
ZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGVUb1VzZS0+
bG9naWNhbE1pbldpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21heFByZWZlcnJlZExvZ2lj
YWxXaWR0aCA9IHN0ZDo6bWF4KG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RDb250
ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlVG9Vc2UtPmxvZ2ljYWxNaW5XaWR0
aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBzdGQ6
Om1heChtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudEJveExvZ2ljYWxX
aWR0aEZvckJveFNpemluZyhzdHlsZVRvVXNlLT5sb2dpY2FsTWluV2lkdGgoKS52YWx1ZSgpKSk7
CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIGNoZWNraW5n
IGZvciBpc1NwZWNpZmllZCBzaW5jZSB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gdXNlIHBlcmNlbnRh
Z2UsIGNhbGMgb3Igdmlld3BvcnQgcmVsYXRpdmUgdmFsdWVzIGZvciBtYXhXaWR0aC4KICAgICBp
ZiAoc3R5bGVUb1VzZS0+bG9naWNhbE1heFdpZHRoKCkuaXNGaXhlZCgpKSB7Ci0gICAgICAgIG1f
bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gc3RkOjptaW4obV9tYXhQcmVmZXJyZWRMb2dpY2Fs
V2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlVG9Vc2UtPmxvZ2ljYWxN
YXhXaWR0aCgpLnZhbHVlKCkpKTsKLSAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgg
PSBzdGQ6Om1pbihtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hM
b2dpY2FsV2lkdGgoc3R5bGVUb1VzZS0+bG9naWNhbE1heFdpZHRoKCkudmFsdWUoKSkpOworICAg
ICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IHN0ZDo6bWluKG1fbWF4UHJlZmVycmVk
TG9naWNhbFdpZHRoLCBhZGp1c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0
eWxlVG9Vc2UtPmxvZ2ljYWxNYXhXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9taW5QcmVm
ZXJyZWRMb2dpY2FsV2lkdGggPSBzdGQ6Om1pbihtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwg
YWRqdXN0Q29udGVudEJveExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhzdHlsZVRvVXNlLT5sb2dp
Y2FsTWF4V2lkdGgoKS52YWx1ZSgpKSk7CiAgICAgfQogCiAgICAgTGF5b3V0VW5pdCBib3JkZXJB
bmRQYWRkaW5nID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpOwpAQCAtNDA2LDcgKzQw
Niw3IEBAIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVNYWluQXhpc0V4dGVu
dEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQsIFNpCiAgICAgLy8gdG8gZmlndXJlIG91dCB0aGUg
bG9naWNhbCBoZWlnaHQvd2lkdGguCiAgICAgaWYgKGlzQ29sdW1uRmxvdygpKQogICAgICAgICBy
ZXR1cm4gY2hpbGQtPmNvbXB1dGVMb2dpY2FsQ2xpZW50SGVpZ2h0KHNpemVUeXBlLCBzaXplKTsK
LSAgICByZXR1cm4gY2hpbGQtPmNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHZhbHVlRm9y
TGVuZ3RoKHNpemUsIG1heGltdW1WYWx1ZSwgdmlldygpKSk7CisgICAgcmV0dXJuIGNoaWxkLT5h
ZGp1c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHZhbHVlRm9yTGVuZ3RoKHNp
emUsIG1heGltdW1WYWx1ZSwgdmlldygpKSk7CiB9CiAKIFdyaXRpbmdNb2RlIFJlbmRlckZsZXhp
YmxlQm94Ojp0cmFuc2Zvcm1lZFdyaXRpbmdNb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCBkYjcwYjA4YTUxNjc0YTRiZTdiMjMwN2Y3
MTUwNTVhMDc5MzU5MmNhLi5lNjRmMmM1YzM2MWM5NmIzYWMzYzAxMTg0MzlhMjgxNmU5M2U3Nzk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC0xOTgs
NyArMTk4LDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdp
ZHRocygpCiAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSAwOwogCiAgICAgaWYgKHN0
eWxlKCktPndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCktPndpZHRoKCkudmFsdWUoKSA+IDAp
Ci0gICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9tYXhQcmVmZXJyZWRMb2dp
Y2FsV2lkdGggPSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZSgpLT53aWR0aCgp
LnZhbHVlKCkpOworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1fbWF4UHJl
ZmVycmVkTG9naWNhbFdpZHRoID0gYWRqdXN0Q29udGVudEJveExvZ2ljYWxXaWR0aEZvckJveFNp
emluZyhzdHlsZSgpLT53aWR0aCgpLnZhbHVlKCkpOwogICAgIGVsc2UgewogICAgICAgICBtX21h
eFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1fb3B0aW9uc1dpZHRoICsgMiAqIG9wdGlvbnNTcGFj
aW5nSG9yaXpvbnRhbDsKICAgICAgICAgaWYgKG1fdkJhcikKQEAgLTIwNiwxNiArMjA2LDE2IEBA
IHZvaWQgUmVuZGVyTGlzdEJveDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQogICAg
IH0KIAogICAgIGlmIChzdHlsZSgpLT5taW5XaWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZSgpLT5t
aW5XaWR0aCgpLnZhbHVlKCkgPiAwKSB7Ci0gICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdp
ZHRoID0gbWF4KG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExv
Z2ljYWxXaWR0aChzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKLSAgICAgICAgbV9taW5Q
cmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNv
bXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlKCktPm1pbldpZHRoKCkudmFsdWUoKSkp
OworICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heChtX21heFByZWZlcnJl
ZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudEJveExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhz
dHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dp
Y2FsV2lkdGggPSBtYXgobV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRlbnRC
b3hMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpKSk7
CiAgICAgfSBlbHNlIGlmIChzdHlsZSgpLT53aWR0aCgpLmlzUGVyY2VudCgpIHx8IChzdHlsZSgp
LT53aWR0aCgpLmlzQXV0bygpICYmIHN0eWxlKCktPmhlaWdodCgpLmlzUGVyY2VudCgpKSkKICAg
ICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSAwOwogICAgIGVsc2UKICAgICAgICAg
bV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aDsK
IAogICAgIGlmIChzdHlsZSgpLT5tYXhXaWR0aCgpLmlzRml4ZWQoKSkgewotICAgICAgICBtX21h
eFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCwg
Y29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgp
KSk7Ci0gICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWluKG1fbWluUHJlZmVy
cmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZSgpLT5t
YXhXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgg
PSBtaW4obV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRlbnRCb3hMb2dpY2Fs
V2lkdGhGb3JCb3hTaXppbmcoc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAg
IG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWluKG1fbWluUHJlZmVycmVkTG9naWNhbFdp
ZHRoLCBhZGp1c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlKCktPm1h
eFdpZHRoKCkudmFsdWUoKSkpOwogICAgIH0KIAogICAgIExheW91dFVuaXQgdG9BZGQgPSBib3Jk
ZXJBbmRQYWRkaW5nV2lkdGgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuY3BwCmluZGV4IDA2MzY3YzcyNjhkZjQ0NTc5OGU0MTAwNzcxNWRiMzczMDM2ZjJhYzEu
LjFhYjU1YTYwMmUxNjc2MGI0ZTY4ZDIzODEwMzI2MDE5MzM2NzkxOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMjc4LDIxICsyNzgsMjEgQEAg
dm9pZCBSZW5kZXJNZW51TGlzdDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQogICAg
IG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gMDsKICAgICAKICAgICBpZiAoc3R5bGUoKS0+
d2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUoKS0+d2lkdGgoKS52YWx1ZSgpID4gMCkKLSAgICAg
ICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0
aCA9IGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlKCktPndpZHRoKCkudmFsdWUo
KSk7CisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9tYXhQcmVmZXJyZWRM
b2dpY2FsV2lkdGggPSBhZGp1c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0
eWxlKCktPndpZHRoKCkudmFsdWUoKSk7CiAgICAgZWxzZQogICAgICAgICBtX21heFByZWZlcnJl
ZExvZ2ljYWxXaWR0aCA9IG1heChtX29wdGlvbnNXaWR0aCwgdGhlbWUoKS0+bWluaW11bU1lbnVM
aXN0U2l6ZShzdHlsZSgpKSkgKyBtX2lubmVyQmxvY2stPnBhZGRpbmdMZWZ0KCkgKyBtX2lubmVy
QmxvY2stPnBhZGRpbmdSaWdodCgpOwogCiAgICAgaWYgKHN0eWxlKCktPm1pbldpZHRoKCkuaXNG
aXhlZCgpICYmIHN0eWxlKCktPm1pbldpZHRoKCkudmFsdWUoKSA+IDApIHsKLSAgICAgICAgbV9t
YXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgs
IGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0eWxlKCktPm1pbldpZHRoKCkudmFsdWUo
KSkpOwotICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heChtX21pblByZWZl
cnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUoKS0+
bWluV2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRo
ID0gbWF4KG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RDb250ZW50Qm94TG9naWNh
bFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlKCktPm1pbldpZHRoKCkudmFsdWUoKSkpOworICAgICAg
ICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heChtX21pblByZWZlcnJlZExvZ2ljYWxX
aWR0aCwgYWRqdXN0Q29udGVudEJveExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhzdHlsZSgpLT5t
aW5XaWR0aCgpLnZhbHVlKCkpKTsKICAgICB9IGVsc2UgaWYgKHN0eWxlKCktPndpZHRoKCkuaXNQ
ZXJjZW50KCkgfHwgKHN0eWxlKCktPndpZHRoKCkuaXNBdXRvKCkgJiYgc3R5bGUoKS0+aGVpZ2h0
KCkuaXNQZXJjZW50KCkpKQogICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IDA7
CiAgICAgZWxzZQogICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1fbWF4UHJl
ZmVycmVkTG9naWNhbFdpZHRoOwogCiAgICAgaWYgKHN0eWxlKCktPm1heFdpZHRoKCkuaXNGaXhl
ZCgpKSB7Ci0gICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWluKG1fbWF4UHJl
ZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZSgp
LT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKLSAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lk
dGggPSBtaW4obV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9n
aWNhbFdpZHRoKHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21heFBy
ZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCwgYWRq
dXN0Q29udGVudEJveExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhzdHlsZSgpLT5tYXhXaWR0aCgp
LnZhbHVlKCkpKTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtaW4obV9t
aW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRlbnRCb3hMb2dpY2FsV2lkdGhGb3JC
b3hTaXppbmcoc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CiAgICAgfQogCiAgICAgTGF5
b3V0VW5pdCB0b0FkZCA9IGJvcmRlckFuZFBhZGRpbmdXaWR0aCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCAxYWJjYTJmZGJlYTIyZWE2YzkwMDE2MmMz
YWQ4YjdjYzFkM2UxNmRiLi4xMjE0YWJjMDljYWI5MDU2YmMxMGIxY2JiMWIwNzFjMDNkMGRlODgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcApAQCAtNzYsMjEg
Kzc2LDIxIEBAIHZvaWQgUmVuZGVyU2xpZGVyOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cygpCiAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSAwOwogCiAgICAgaWYgKHN0eWxl
KCktPndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCktPndpZHRoKCkudmFsdWUoKSA+IDApCi0g
ICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9tYXhQcmVmZXJyZWRMb2dpY2Fs
V2lkdGggPSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZSgpLT53aWR0aCgpLnZh
bHVlKCkpOworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1fbWF4UHJlZmVy
cmVkTG9naWNhbFdpZHRoID0gYWRqdXN0Q29udGVudEJveExvZ2ljYWxXaWR0aEZvckJveFNpemlu
ZyhzdHlsZSgpLT53aWR0aCgpLnZhbHVlKCkpOwogICAgIGVsc2UKICAgICAgICAgbV9tYXhQcmVm
ZXJyZWRMb2dpY2FsV2lkdGggPSBkZWZhdWx0VHJhY2tMZW5ndGggKiBzdHlsZSgpLT5lZmZlY3Rp
dmVab29tKCk7CiAKICAgICBpZiAoc3R5bGUoKS0+bWluV2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5
bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpID4gMCkgewotICAgICAgICBtX21heFByZWZlcnJlZExv
Z2ljYWxXaWR0aCA9IG1heChtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRl
bnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpKSk7Ci0gICAgICAg
IG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1fbWluUHJlZmVycmVkTG9naWNhbFdp
ZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZSgpLT5taW5XaWR0aCgpLnZh
bHVlKCkpKTsKKyAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtYXgobV9tYXhQ
cmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRlbnRCb3hMb2dpY2FsV2lkdGhGb3JCb3hT
aXppbmcoc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpKSk7CisgICAgICAgIG1fbWluUHJlZmVy
cmVkTG9naWNhbFdpZHRoID0gbWF4KG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBhZGp1c3RD
b250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlKCktPm1pbldpZHRoKCkudmFs
dWUoKSkpOwogICAgIH0gZWxzZSBpZiAoc3R5bGUoKS0+d2lkdGgoKS5pc1BlcmNlbnQoKSB8fCAo
c3R5bGUoKS0+d2lkdGgoKS5pc0F1dG8oKSAmJiBzdHlsZSgpLT5oZWlnaHQoKS5pc1BlcmNlbnQo
KSkpCiAgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gMDsKICAgICBlbHNlCiAg
ICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9tYXhQcmVmZXJyZWRMb2dpY2Fs
V2lkdGg7CiAgICAgCiAgICAgaWYgKHN0eWxlKCktPm1heFdpZHRoKCkuaXNGaXhlZCgpKSB7Ci0g
ICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWluKG1fbWF4UHJlZmVycmVkTG9n
aWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChzdHlsZSgpLT5tYXhXaWR0
aCgpLnZhbHVlKCkpKTsKLSAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtaW4o
bV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRo
KHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21heFByZWZlcnJlZExv
Z2ljYWxXaWR0aCA9IG1pbihtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVu
dEJveExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkp
KTsKKyAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtaW4obV9taW5QcmVmZXJy
ZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRlbnRCb3hMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmco
c3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CiAgICAgfQogCiAgICAgTGF5b3V0VW5pdCB0
b0FkZCA9IGJvcmRlckFuZFBhZGRpbmdXaWR0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKaW5kZXggY2I3NjM3ZGIzNzVkMWU2Yzk5M2JjOTdh
ZjFmNmQ4OTk3YTE0ZTdlZS4uN2Q0YTk4YzBlOTU0NjMzZDdlMGVkODU4YmFhYWViODdlNWU0MWNk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3Bw
CkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6Y29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKQogICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gMDsK
IAogICAgIGlmIChzdHlsZSgpLT53aWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZSgpLT53aWR0aCgp
LnZhbHVlKCkgPj0gMCkKLSAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBtX21h
eFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdpZHRoKHN0
eWxlKCktPndpZHRoKCkudmFsdWUoKSk7CisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdp
ZHRoID0gbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBhZGp1c3RDb250ZW50Qm94TG9naWNh
bFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlKCktPndpZHRoKCkudmFsdWUoKSk7CiAgICAgZWxzZSB7
CiAgICAgICAgIC8vIFVzZSBhdmVyYWdlIGNoYXJhY3RlciB3aWR0aC4gTWF0Y2hlcyBJRS4KICAg
ICAgICAgQXRvbWljU3RyaW5nIGZhbWlseSA9IHN0eWxlKCktPmZvbnQoKS5mYW1pbHkoKS5mYW1p
bHkoKTsKQEAgLTI3MiwxNiArMjcyLDE2IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OmNvbXB1
dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAgICB9CiAKICAgICBpZiAoc3R5bGUoKS0+bWlu
V2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgpID4gMCkgewot
ICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1heChtX21heFByZWZlcnJlZExv
Z2ljYWxXaWR0aCwgY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUoKS0+bWluV2lk
dGgoKS52YWx1ZSgpKSk7Ci0gICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWF4
KG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0
aChzdHlsZSgpLT5taW5XaWR0aCgpLnZhbHVlKCkpKTsKKyAgICAgICAgbV9tYXhQcmVmZXJyZWRM
b2dpY2FsV2lkdGggPSBtYXgobV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGFkanVzdENvbnRl
bnRCb3hMb2dpY2FsV2lkdGhGb3JCb3hTaXppbmcoc3R5bGUoKS0+bWluV2lkdGgoKS52YWx1ZSgp
KSk7CisgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWF4KG1fbWluUHJlZmVy
cmVkTG9naWNhbFdpZHRoLCBhZGp1c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5n
KHN0eWxlKCktPm1pbldpZHRoKCkudmFsdWUoKSkpOwogICAgIH0gZWxzZSBpZiAoc3R5bGUoKS0+
d2lkdGgoKS5pc1BlcmNlbnQoKSB8fCAoc3R5bGUoKS0+d2lkdGgoKS5pc0F1dG8oKSAmJiBzdHls
ZSgpLT5oZWlnaHQoKS5pc1BlcmNlbnQoKSkpCiAgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNh
bFdpZHRoID0gMDsKICAgICBlbHNlCiAgICAgICAgIG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRo
ID0gbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGg7CiAKICAgICBpZiAoc3R5bGUoKS0+bWF4V2lk
dGgoKS5pc0ZpeGVkKCkpIHsKLSAgICAgICAgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBt
aW4obV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgsIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbFdp
ZHRoKHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSkpOwotICAgICAgICBtX21pblByZWZlcnJl
ZExvZ2ljYWxXaWR0aCA9IG1pbihtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgY29tcHV0ZUNv
bnRlbnRCb3hMb2dpY2FsV2lkdGgoc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpKSk7CisgICAg
ICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWluKG1fbWF4UHJlZmVycmVkTG9naWNh
bFdpZHRoLCBhZGp1c3RDb250ZW50Qm94TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKHN0eWxlKCkt
Pm1heFdpZHRoKCkudmFsdWUoKSkpOworICAgICAgICBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0
aCA9IG1pbihtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCwgYWRqdXN0Q29udGVudEJveExvZ2lj
YWxXaWR0aEZvckJveFNpemluZyhzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkpKTsKICAgICB9
CiAKICAgICBMYXlvdXRVbml0IHRvQWRkID0gYm9yZGVyQW5kUGFkZGluZ1dpZHRoKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>