<?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>231862</bug_id>
          
          <creation_ts>2021-10-16 06:14:51 -0700</creation_ts>
          <short_desc>[LFC][IFC] Adjust the logical right side of the line with line spanning inline boxes</short_desc>
          <delta_ts>2021-10-16 22:59:16 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1805256</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-10-16 06:14:51 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805257</commentid>
    <comment_count>1</comment_count>
      <attachid>441489</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-16 06:26:42 -0700</bug_when>
    <thetext>Created attachment 441489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805332</commentid>
    <comment_count>2</comment_count>
      <attachid>441511</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-16 16:48:16 -0700</bug_when>
    <thetext>Created attachment 441511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805342</commentid>
    <comment_count>3</comment_count>
      <attachid>441514</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-16 20:07:11 -0700</bug_when>
    <thetext>Created attachment 441514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805358</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-16 22:58:09 -0700</bug_when>
    <thetext>Committed r284333 (243128@main): &lt;https://commits.webkit.org/243128@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441514.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805359</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-16 22:59:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/84340410&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441489</attachid>
            <date>2021-10-16 06:26:42 -0700</date>
            <delta_ts>2021-10-16 16:48:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>14256</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">Y29tbWl0IDlhMWE3NDY3NjdmMmZmYjczNTk4ODk0N2FhZmZmZDliOTIzZGNjYWEKQXV0aG9yOiBa
YWxhbiBCdWp0YXMgPHphbGFuQGFwcGxlLmNvbT4KRGF0ZTogICBTYXQgT2N0IDE2IDA2OjIyOjQx
IDIwMjEgLTA3MDAKCiAgICByaWdodCBzaWRlCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ3NzY1ZWUzODZlMC4u
NmI1NjgzMzQ2MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjEtMTAtMTYgIFph
bGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkanVz
dCB0aGUgbG9naWNhbCByaWdodCBzaWRlIG9mIHRoZSBsaW5lIHdpdGggbGluZSBzcGFubmluZyBp
bmxpbmUgYm94ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTg2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaXMgaW4gcHJlcGFyYXRpb24gZm9yIHN1cHBvcnRpbmcgImJveC1kZWNv
cmF0aW9uLWJyZWFrOiBjbG9uZSIuCisKKyAgICAgICAgMS4gVGhlIGxpbmUgc3Bhbm5pbmcgaW5s
aW5lIGJveCB0YWtlcyB1cCBzcGFjZSBvbiB0aGUgbGluZSAoc2VlIGxpbmUgbG9naWNhbCB3aWR0
aCkKKyAgICAgICAgMi4gVGhlIGlubGluZSBib3ggbWF5IGJlIGdldHRpbmcgY2xvc2VkIG9uIHRo
ZSBsaW5lIChkbyBub3QgZG91YmxlIGFjY291bnQgZm9yIHRoZSBlbmQgd2lkdGgsIHNlZSBoYW5k
bGVJbmxpbmVDb250ZW50ICkKKyAgICAgICAgMy4gV2hlbiB3ZSBjb21taXQgdGhlIGlubGluZSBi
b3ggY2xvc2luZywgdHVybiB0aGUgZW5kaW5nIGludG8ganVzdCBhIG5vcm1hbCBydW4gKHNlZSBh
cHBlbmRJbmxpbmVCb3hFbmQgKQorCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6
OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRJbmxp
bmVCb3hTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZElubGlu
ZUJveEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZFRleHRDb250
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5kTm9uUmVwbGFjZWRJ
bmxpbmVMZXZlbEJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZExp
bmVCcmVhayk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZFdvcmRCcmVh
a09wcG9ydHVuaXR5KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmNvbnRlbnRM
b2dpY2FsUmlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpsaW5l
U3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGluZTo6bGFzdFJ1bkxvZ2ljYWxSaWdodCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6aGFuZGxlSW5saW5lQ29udGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpyZWJ1aWxkTGluZUZvclRyYWlsaW5n
U29mdEh5cGhlbik6CisKIDIwMjEtMTAtMTUgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtMRkNdW0lGQ10gQWRqdXN0IHRoZSBsb2dpY2FsIGxlZnQgc2lkZSBvZiB0
aGUgbGluZSB3aXRoIGxpbmUgc3Bhbm5pbmcgaW5saW5lIGJveGVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmUuY3BwCmluZGV4IDhiYmZkMGU4MThhMi4uMTZlM2UyYzdjNTBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmNwcApAQCAtNTIsNiArNTIsOCBAQCBMaW5lOjp+TGluZSgpCiAKIHZvaWQg
TGluZTo6aW5pdGlhbGl6ZShjb25zdCBWZWN0b3I8SW5saW5lSXRlbT4mIGxpbmVTcGFubmluZ0lu
bGluZUJveGVzKQogeworICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcy5jbGVhcigp
OworICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kV2lkdGggPSB7IH07CiAgICAgbV9u
b25TcGFubmluZ0lubGluZUxldmVsQm94Q291bnQgPSAwOwogICAgIG1fY29udGVudExvZ2ljYWxX
aWR0aCA9IHsgfTsKICAgICBtX3J1bnMuY2xlYXIoKTsKQEAgLTYzLDE4ICs2NSwyMyBAQCB2b2lk
IExpbmU6OmluaXRpYWxpemUoY29uc3QgVmVjdG9yPElubGluZUl0ZW0+JiBsaW5lU3Bhbm5pbmdJ
bmxpbmVCb3hlcykKICAgICAgICAgICAgIHNob3VsZENoZWNrRm9yTWFyZ2luQm9yZGVyQW5kUGFk
ZGluZyA9IGlubGluZUJveFN0YXJ0SXRlbS5zdHlsZSgpLmJveERlY29yYXRpb25CcmVhaygpID09
IEJveERlY29yYXRpb25CcmVhazo6Q2xvbmU7CiAjZW5kaWYKICAgICAgICAgICAgIGlmICghc2hv
dWxkQ2hlY2tGb3JNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nKSB7Ci0gICAgICAgICAgICAgICAgbV9y
dW5zLmFwcGVuZCh7IGlubGluZUJveFN0YXJ0SXRlbSwgY29udGVudExvZ2ljYWxSaWdodCgpLCB7
IH0gfSk7CisgICAgICAgICAgICAgICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUJveFN0YXJ0SXRl
bSwgbGFzdFJ1bkxvZ2ljYWxSaWdodCgpLCB7IH0gfSk7CiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3NzLWJyZWFrLyNicmVhay1kZWNvcmF0aW9uCiAgICAgICAgICAgICAvLyBjbG9uZTogRWFj
aCBib3ggZnJhZ21lbnQgaXMgaW5kZXBlbmRlbnRseSB3cmFwcGVkIHdpdGggdGhlIGJvcmRlciwg
cGFkZGluZywgYW5kIG1hcmdpbi4KICAgICAgICAgICAgIGF1dG8mIGlubGluZUJveEdlb21ldHJ5
ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVCb3hTdGFydEl0ZW0u
bGF5b3V0Qm94KCkpOwotICAgICAgICAgICAgYXV0byBydW5Mb2dpY2FsTGVmdCA9IGNvbnRlbnRM
b2dpY2FsUmlnaHQoKTsKLSAgICAgICAgICAgIGF1dG8gbWFyZ2luQm9yZGVyQW5kUGFkZGluZyA9
IGlubGluZUJveEdlb21ldHJ5Lm1hcmdpblN0YXJ0KCkgKyBpbmxpbmVCb3hHZW9tZXRyeS5ib3Jk
ZXJMZWZ0KCkgKyBpbmxpbmVCb3hHZW9tZXRyeS5wYWRkaW5nTGVmdCgpLnZhbHVlX29yKDBfbHUp
OwotICAgICAgICAgICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUJveFN0YXJ0SXRlbSwgcnVuTG9n
aWNhbExlZnQsIG1hcmdpbkJvcmRlckFuZFBhZGRpbmcgfSk7CisgICAgICAgICAgICBhdXRvIHJ1
bkxvZ2ljYWxMZWZ0ID0gbGFzdFJ1bkxvZ2ljYWxSaWdodCgpOworICAgICAgICAgICAgYXV0byBt
YXJnaW5Cb3JkZXJBbmRQYWRkaW5nU3RhcnQgPSBpbmxpbmVCb3hHZW9tZXRyeS5tYXJnaW5TdGFy
dCgpICsgaW5saW5lQm94R2VvbWV0cnkuYm9yZGVyTGVmdCgpICsgaW5saW5lQm94R2VvbWV0cnku
cGFkZGluZ0xlZnQoKS52YWx1ZV9vcigwX2x1KTsKKyAgICAgICAgICAgIG1fcnVucy5hcHBlbmQo
eyBpbmxpbmVCb3hTdGFydEl0ZW0sIHJ1bkxvZ2ljYWxMZWZ0LCBtYXJnaW5Cb3JkZXJBbmRQYWRk
aW5nU3RhcnQgfSk7CiAgICAgICAgICAgICAvLyBEbyBub3QgbGV0IG5lZ2F0aXZlIG1hcmdpbiBt
YWtlIHRoZSBjb250ZW50IHNob3J0ZXIgdGhhbiBpdCBhbHJlYWR5IGlzLgotICAgICAgICAgICAg
YXV0byBydW5Mb2dpY2FsUmlnaHQgPSBydW5Mb2dpY2FsTGVmdCArIG1hcmdpbkJvcmRlckFuZFBh
ZGRpbmc7CisgICAgICAgICAgICBhdXRvIHJ1bkxvZ2ljYWxSaWdodCA9IHJ1bkxvZ2ljYWxMZWZ0
ICsgbWFyZ2luQm9yZGVyQW5kUGFkZGluZ1N0YXJ0OwogICAgICAgICAgICAgbV9jb250ZW50TG9n
aWNhbFdpZHRoID0gc3RkOjptYXgobV9jb250ZW50TG9naWNhbFdpZHRoLCBydW5Mb2dpY2FsUmln
aHQpOworCisgICAgICAgICAgICBhdXRvIG1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQgPSBpbmxp
bmVCb3hHZW9tZXRyeS5tYXJnaW5FbmQoKSArIGlubGluZUJveEdlb21ldHJ5LmJvcmRlclJpZ2h0
KCkgKyBpbmxpbmVCb3hHZW9tZXRyeS5wYWRkaW5nUmlnaHQoKS52YWx1ZV9vcigwX2x1KTsKKyAg
ICAgICAgICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcy5hZGQoJmlubGluZUJveFN0
YXJ0SXRlbS5sYXlvdXRCb3goKSwgbWFyZ2luQm9yZGVyQW5kUGFkZGluZ0VuZCk7CisgICAgICAg
ICAgICBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZFdpZHRoICs9IG1hcmdpbkJvcmRlckFu
ZFBhZGRpbmdFbmQ7CisgICAgICAgICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggKz0gbWFyZ2lu
Qm9yZGVyQW5kUGFkZGluZ0VuZDsKICAgICAgICAgfQogICAgIH07CiAgICAgYXBwZW5kTGluZVNw
YW5uaW5nSW5saW5lQm94ZXMoKTsKQEAgLTI2OSw3ICsyNzYsNyBAQCB2b2lkIExpbmU6OmFwcGVu
ZElubGluZUJveFN0YXJ0KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRl
clN0eWxlJgogewogICAgIC8vIFRoaXMgaXMgcmVhbGx5IGp1c3QgYSBwbGFjZWhvbGRlciB0byBt
YXJrIHRoZSBzdGFydCBvZiB0aGUgaW5saW5lIGJveCA8c3Bhbj4uCiAgICAgKyttX25vblNwYW5u
aW5nSW5saW5lTGV2ZWxCb3hDb3VudDsKLSAgICBhcHBlbmROb25CcmVha2FibGVTcGFjZShpbmxp
bmVJdGVtLCBzdHlsZSwgY29udGVudExvZ2ljYWxSaWdodCgpLCBsb2dpY2FsV2lkdGgpOworICAg
IGFwcGVuZE5vbkJyZWFrYWJsZVNwYWNlKGlubGluZUl0ZW0sIHN0eWxlLCBsYXN0UnVuTG9naWNh
bFJpZ2h0KCksIGxvZ2ljYWxXaWR0aCk7CiB9CiAKIHZvaWQgTGluZTo6YXBwZW5kSW5saW5lQm94
RW5kKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCkBAIC0yODAsMTAgKzI4NywxOCBAQCB2
b2lkIExpbmU6OmFwcGVuZElubGluZUJveEVuZChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVt
LCBjb25zdCBSZW5kZXJTdHlsZSYgcwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2Nv
bnRlbnRMb2dpY2FsV2lkdGggLT0gbV90cmltbWFibGVUcmFpbGluZ0NvbnRlbnQucmVtb3ZlUGFy
dGlhbGx5VHJpbW1hYmxlQ29udGVudCgpOwogICAgIH07CisgICAgYXV0byByZW1vdmVGcm9tTGlu
ZVNwYW5uaW5nSW5saW5lQm94TGlzdElmQXBwbGljYWJsZSA9IFsmXSB7CisgICAgICAgIEFTU0VS
VCghbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzLmNvbnRhaW5zKCZpbmxpbmVJdGVtLmxh
eW91dEJveCgpKSB8fCBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMuZ2V0KCZpbmxpbmVJ
dGVtLmxheW91dEJveCgpKSA9PSBsb2dpY2FsV2lkdGgpOworICAgICAgICBhdXRvIGlubGluZUJv
eEVuZCA9IG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcy5yZW1vdmUoJmlubGluZUl0ZW0u
bGF5b3V0Qm94KCkpOworICAgICAgICAvLyBUaGlzIGlubGluZSBib3ggZW5kIG5vdyBjb250cmli
dXRlcyB0byB0aGUgbGluZSBjb250ZW50IHdpZHRoIGluIHRoZSByZWd1bGFyIHdheS4KKyAgICAg
ICAgbV9jb250ZW50TG9naWNhbFdpZHRoIC09IGlubGluZUJveEVuZDsKKyAgICAgICAgbV9saW5l
U3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRXaWR0aCAtPSBpbmxpbmVCb3hFbmQ7CisgICAgfTsKICAg
ICAvLyBQcmV2ZW50IHRyYWlsaW5nIGxldHRlci1zcGFjaW5nIGZyb20gc3BpbGxpbmcgb3V0IG9m
IHRoZSBpbmxpbmUgYm94LgogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdGV4
dC0zLyNsZXR0ZXItc3BhY2luZy1wcm9wZXJ0eSBTZWUgZXhhbXBsZSAyMS4KICAgICByZW1vdmVU
cmFpbGluZ0xldHRlclNwYWNpbmcoKTsKLSAgICBhcHBlbmROb25CcmVha2FibGVTcGFjZShpbmxp
bmVJdGVtLCBzdHlsZSwgY29udGVudExvZ2ljYWxSaWdodCgpLCBsb2dpY2FsV2lkdGgpOworICAg
IHJlbW92ZUZyb21MaW5lU3Bhbm5pbmdJbmxpbmVCb3hMaXN0SWZBcHBsaWNhYmxlKCk7CisgICAg
YXBwZW5kTm9uQnJlYWthYmxlU3BhY2UoaW5saW5lSXRlbSwgc3R5bGUsIGxhc3RSdW5Mb2dpY2Fs
UmlnaHQoKSwgbG9naWNhbFdpZHRoKTsKIH0KIAogdm9pZCBMaW5lOjphcHBlbmRUZXh0Q29udGVu
dChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxl
JiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCkBAIC0zMzAsNyArMzQ1LDcg
QEAgdm9pZCBMaW5lOjphcHBlbmRUZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5s
aW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclMKICAgICBhdXRvIG9sZENvbnRlbnRMb2dpY2FsV2lk
dGggPSBjb250ZW50TG9naWNhbFdpZHRoKCk7CiAgICAgaWYgKG5lZWRzTmV3UnVuKSB7CiAgICAg
ICAgIC8vIE5vdGUsIG5lZ2F0aXZlIHdvcmRzIHNwYWNpbmcgbWF5IGNhdXNlIGdseXBoIG92ZXJs
YXAuCi0gICAgICAgIGF1dG8gcnVuTG9naWNhbExlZnQgPSBjb250ZW50TG9naWNhbFJpZ2h0KCkg
KyAoaW5saW5lVGV4dEl0ZW0uaXNXb3JkU2VwYXJhdG9yKCkgPyBzdHlsZS5mb250Q2FzY2FkZSgp
LndvcmRTcGFjaW5nKCkgOiAwLjBmKTsKKyAgICAgICAgYXV0byBydW5Mb2dpY2FsTGVmdCA9IGxh
c3RSdW5Mb2dpY2FsUmlnaHQoKSArIChpbmxpbmVUZXh0SXRlbS5pc1dvcmRTZXBhcmF0b3IoKSA/
IHN0eWxlLmZvbnRDYXNjYWRlKCkud29yZFNwYWNpbmcoKSA6IDAuMGYpOwogICAgICAgICBtX3J1
bnMuYXBwZW5kKHsgaW5saW5lVGV4dEl0ZW0sIHN0eWxlLCBydW5Mb2dpY2FsTGVmdCwgbG9naWNh
bFdpZHRoIH0pOwogICAgICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggPSBzdGQ6Om1heChvbGRD
b250ZW50TG9naWNhbFdpZHRoLCBydW5Mb2dpY2FsTGVmdCArIGxvZ2ljYWxXaWR0aCk7CiAgICAg
fSBlbHNlIHsKQEAgLTM2NywxNCArMzgyLDE0IEBAIHZvaWQgTGluZTo6YXBwZW5kTm9uUmVwbGFj
ZWRJbmxpbmVMZXZlbEJveChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSCiAg
ICAgKyttX25vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hDb3VudDsKICAgICBhdXRvIG1hcmdpblN0
YXJ0ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVJdGVtLmxheW91
dEJveCgpKS5tYXJnaW5TdGFydCgpOwogICAgIGlmIChtYXJnaW5TdGFydCA+PSAwKSB7Ci0gICAg
ICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVJdGVtLCBzdHlsZSwgY29udGVudExvZ2ljYWxSaWdo
dCgpLCBtYXJnaW5Cb3hMb2dpY2FsV2lkdGggfSk7CisgICAgICAgIG1fcnVucy5hcHBlbmQoeyBp
bmxpbmVJdGVtLCBzdHlsZSwgbGFzdFJ1bkxvZ2ljYWxSaWdodCgpLCBtYXJnaW5Cb3hMb2dpY2Fs
V2lkdGggfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gTmVnYXRpdmUgbWFyZ2lu
LXN0YXJ0IHB1bGxzIHRoZSBjb250ZW50IHRvIHRoZSBsb2dpY2FsIGxlZnQgZGlyZWN0aW9uLgog
ICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBhbHNvIHNxdWVlemVzIHRoZSBtYXJnaW4gYm94LCB3ZSBu
ZWVkIHRvIHN0cmV0Y2ggaXQgdG8gbWFrZSBzdXJlIHRoZSBzdWJzZXF1ZW50IGNvbnRlbnQgd29u
J3Qgb3ZlcmxhcC4KICAgICAvLyBlLmcuIDxpbWcgc3R5bGU9IndpZHRoOiAxMDBweDsgbWFyZ2lu
LWxlZnQ6IC0xMDBweDsiPiBwdWxscyB0aGUgcmVwbGFjZWQgYm94IHRvIC0xMDBweCB3aXRoIHRo
ZSBtYXJnaW4gYm94IHdpZHRoIG9mIDBweC4KICAgICAvLyBJbnN0ZWFkIHdlIG5lZWQgdG8gcG9z
aXRpb24gaXQgYXQgLTEwMHB4IGFuZCBzaXplIGl0IHRvIDEwMHB4IHNvIHRoZSBzdWJzZXF1ZW50
IGNvbnRlbnQgc3RhcnRzIGF0IDBweC4gCi0gICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUl0ZW0s
IHN0eWxlLCBjb250ZW50TG9naWNhbFJpZ2h0KCkgKyBtYXJnaW5TdGFydCwgbWFyZ2luQm94TG9n
aWNhbFdpZHRoIC0gbWFyZ2luU3RhcnQgfSk7CisgICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUl0
ZW0sIHN0eWxlLCBsYXN0UnVuTG9naWNhbFJpZ2h0KCkgKyBtYXJnaW5TdGFydCwgbWFyZ2luQm94
TG9naWNhbFdpZHRoIC0gbWFyZ2luU3RhcnQgfSk7CiB9CiAKIHZvaWQgTGluZTo6YXBwZW5kUmVw
bGFjZWRJbmxpbmVMZXZlbEJveChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbWFyZ2luQm94TG9naWNhbFdpZHRo
KQpAQCAtMzg5LDE2ICs0MDQsMTYgQEAgdm9pZCBMaW5lOjphcHBlbmRMaW5lQnJlYWsoY29uc3Qg
SW5saW5lSXRlbSYgaW5saW5lSXRlbSkKICAgICBtX3RyYWlsaW5nU29mdEh5cGhlbldpZHRoID0g
eyB9OwogICAgIGlmIChpbmxpbmVJdGVtLmlzSGFyZExpbmVCcmVhaygpKSB7CiAgICAgICAgICsr
bV9ub25TcGFubmluZ0lubGluZUxldmVsQm94Q291bnQ7Ci0gICAgICAgIHJldHVybiBtX3J1bnMu
YXBwZW5kKHsgaW5saW5lSXRlbSwgY29udGVudExvZ2ljYWxSaWdodCgpIH0pOworICAgICAgICBy
ZXR1cm4gbV9ydW5zLmFwcGVuZCh7IGlubGluZUl0ZW0sIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSB9
KTsKICAgICB9CiAgICAgLy8gU29mdCBsaW5lIGJyZWFrcyAocHJlc2VydmVkIG5ldyBsaW5lIGNo
YXJhY3RlcnMpIHJlcXVpcmUgaW5saW5lIHRleHQgYm94ZXMgZm9yIGNvbXBhdGliaWxpdHkgcmVh
c29ucy4KICAgICBBU1NFUlQoaW5saW5lSXRlbS5pc1NvZnRMaW5lQnJlYWsoKSk7Ci0gICAgbV9y
dW5zLmFwcGVuZCh7IGRvd25jYXN0PElubGluZVNvZnRMaW5lQnJlYWtJdGVtPihpbmxpbmVJdGVt
KSwgY29udGVudExvZ2ljYWxSaWdodCgpIH0pOworICAgIG1fcnVucy5hcHBlbmQoeyBkb3duY2Fz
dDxJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbT4oaW5saW5lSXRlbSksIGxhc3RSdW5Mb2dpY2FsUmln
aHQoKSB9KTsKIH0KIAogdm9pZCBMaW5lOjphcHBlbmRXb3JkQnJlYWtPcHBvcnR1bml0eShjb25z
dCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtKQogewotICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVJ
dGVtLCBjb250ZW50TG9naWNhbFJpZ2h0KCkgfSk7CisgICAgbV9ydW5zLmFwcGVuZCh7IGlubGlu
ZUl0ZW0sIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSB9KTsKIH0KIAogdm9pZCBMaW5lOjphZGRUcmFp
bGluZ0h5cGhlbihJbmxpbmVMYXlvdXRVbml0IGh5cGhlbkxvZ2ljYWxXaWR0aCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmUuaAppbmRleCBiZTE4NjY5NWFkYzQuLjQ5N2E2YjhjNTA2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmUuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXND
b250ZW50KCkgY29uc3QgeyByZXR1cm4gIW1fcnVucy5pc0VtcHR5KCkgJiYgIW1fcnVucy5sYXN0
KCkuaXNMaW5lU3Bhbm5pbmdJbmxpbmVCb3hTdGFydCgpOyB9CiAKICAgICBJbmxpbmVMYXlvdXRV
bml0IGNvbnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRMb2dpY2Fs
V2lkdGg7IH0KLSAgICBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25z
dCB7IHJldHVybiBtX3J1bnMuaXNFbXB0eSgpID8gMC4wZiA6IG1fcnVucy5sYXN0KCkubG9naWNh
bFJpZ2h0KCk7IH0KKyAgICBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBj
b25zdCB7IHJldHVybiBsYXN0UnVuTG9naWNhbFJpZ2h0KCkgKyBtX2xpbmVTcGFubmluZ0lubGlu
ZUJveFJ1bkVuZFdpZHRoOyB9CiAgICAgc2l6ZV90IG5vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hD
b3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbm9uU3Bhbm5pbmdJbmxpbmVMZXZlbEJveENvdW50OyB9
CiAKICAgICBJbmxpbmVMYXlvdXRVbml0IHRyaW1tYWJsZVRyYWlsaW5nV2lkdGgoKSBjb25zdCB7
IHJldHVybiBtX3RyaW1tYWJsZVRyYWlsaW5nQ29udGVudC53aWR0aCgpOyB9CkBAIC0xNTYsOCAr
MTU2LDEyIEBAIHB1YmxpYzoKICAgICB9OwogICAgIHVzaW5nIFJ1bkxpc3QgPSBWZWN0b3I8UnVu
LCAxMD47CiAgICAgY29uc3QgUnVuTGlzdCYgcnVucygpIGNvbnN0IHsgcmV0dXJuIG1fcnVuczsg
fQorICAgIHVzaW5nIExpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMgPSBIYXNoTWFwPGNvbnN0
IEJveCosIElubGluZUxheW91dFVuaXQ+OworICAgIGNvbnN0IExpbmVTcGFubmluZ0lubGluZUJv
eFJ1bkVuZHMmIGxpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMoKSBjb25zdCB7IHJldHVybiBt
X2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHM7IH0KIAogcHJpdmF0ZToKKyAgICBJbmxpbmVM
YXlvdXRVbml0IGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3J1bnMuaXNF
bXB0eSgpID8gMC4wZiA6IG1fcnVucy5sYXN0KCkubG9naWNhbFJpZ2h0KCk7IH0KKwogICAgIHZv
aWQgYXBwZW5kTm9uQnJlYWthYmxlU3BhY2UoY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IFJlbmRl
clN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBs
b2dpY2FsV2lkdGgpOwogICAgIHZvaWQgYXBwZW5kVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4
dEl0ZW0mLCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRo
KTsKICAgICB2b2lkIGFwcGVuZE5vblJlcGxhY2VkSW5saW5lTGV2ZWxCb3goY29uc3QgSW5saW5l
SXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBtYXJnaW5Cb3hMb2dp
Y2FsV2lkdGgpOwpAQCAtMjE2LDYgKzIyMCw4IEBAIHByaXZhdGU6CiAgICAgSW5saW5lTGF5b3V0
VW5pdCBtX2NvbnRlbnRMb2dpY2FsV2lkdGggeyAwIH07CiAgICAgc2l6ZV90IG1fbm9uU3Bhbm5p
bmdJbmxpbmVMZXZlbEJveENvdW50IHsgMCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5
b3V0VW5pdD4gbV90cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCB7IDAgfTsKKyAgICBMaW5lU3Bhbm5p
bmdJbmxpbmVCb3hSdW5FbmRzIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kczsKKyAgICBJ
bmxpbmVMYXlvdXRVbml0IG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kV2lkdGggeyAwIH07
CiB9OwogCiBpbmxpbmUgdm9pZCBMaW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlc2V0
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCAyMzQ5MzQ2
ZmI5N2YuLjQ3NThjMDYzZmFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWls
ZGVyLmNwcApAQCAtNzM0LDcgKzczNCwxNiBAQCBMaW5lQnVpbGRlcjo6UmVzdWx0IExpbmVCdWls
ZGVyOjpoYW5kbGVJbmxpbmVDb250ZW50KElubGluZUNvbnRlbnRCcmVha2VyJiBpbmxpbgogICAg
ICAgICByZXR1cm4gYWRqdXN0ZWRMaW5lTG9naWNhbFJlY3Q7CiAgICAgfSgpOwogICAgIGF1dG8g
YXZhaWxhYmxlV2lkdGggPSBbJl0gewotICAgICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoRm9yQ29u
dGVudCA9IGxpbmVMb2dpY2FsUmVjdEZvckNhbmRpZGF0ZUNvbnRlbnQud2lkdGgoKSAtIG1fbGlu
ZS5jb250ZW50TG9naWNhbFJpZ2h0KCk7CisgICAgICAgIGF1dG8gbGluZUNvbnRlbnRMb2dpY2Fs
V2lkdGggPSBtX2xpbmUuY29udGVudExvZ2ljYWxXaWR0aCgpOworICAgICAgICBhdXRvJiBsaW5l
U3Bhbm5pbmdJbmxpbmVCb3hFbmRzID0gbV9saW5lLmxpbmVTcGFubmluZ0lubGluZUJveFJ1bkVu
ZHMoKTsKKyAgICAgICAgaWYgKCFsaW5lU3Bhbm5pbmdJbmxpbmVCb3hFbmRzLmlzRW1wdHkoKSAm
JiBpbmxpbmVDb250ZW50Lmhhc0lubGluZUxldmVsQm94KCkpIHsKKyAgICAgICAgICAgIC8vIFdl
IG1heSB0cnkgdG8gY29tbWl0IGEgbGluZSBzcGFubmluZyBpbmxpbmUgYm94IGVuZCBoZXJlLiBM
ZXQncyBub3QgYWNjb3VudCBmb3IgaXRzIGxvZ2ljYWwgd2lkdGggdHdpY2UuCisgICAgICAgICAg
ICBmb3IgKGF1dG8mIHJ1biA6IGNvbnRpbnVvdXNJbmxpbmVDb250ZW50LnJ1bnMoKSkgeworICAg
ICAgICAgICAgICAgIGlmIChydW4uaW5saW5lSXRlbS5pc0lubGluZUJveEVuZCgpKQorICAgICAg
ICAgICAgICAgICAgICBsaW5lQ29udGVudExvZ2ljYWxXaWR0aCAtPSBsaW5lU3Bhbm5pbmdJbmxp
bmVCb3hFbmRzLmdldCgmcnVuLmlubGluZUl0ZW0ubGF5b3V0Qm94KCkpOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIGF1dG8gYXZhaWxhYmxlV2lkdGhGb3JDb250ZW50ID0gbGlu
ZUxvZ2ljYWxSZWN0Rm9yQ2FuZGlkYXRlQ29udGVudC53aWR0aCgpIC0gbGluZUNvbnRlbnRMb2dp
Y2FsV2lkdGg7CiAgICAgICAgIHJldHVybiBzdGQ6OmlzbmFuKGF2YWlsYWJsZVdpZHRoRm9yQ29u
dGVudCkgPyBtYXhJbmxpbmVMYXlvdXRVbml0KCkgOiBhdmFpbGFibGVXaWR0aEZvckNvbnRlbnQ7
CiAgICAgfSgpOwogICAgIC8vIFdoaWxlIHRoZSBmbG9hdHMgYXJlIG5vdCBjb25zaWRlcmVkIHRv
IGJlIG9uIHRoZSBsaW5lLCB0aGV5IG1ha2UgdGhlIGxpbmUgY29udGVudGZ1bCBmb3IgbGluZSBi
cmVha2luZy4KQEAgLTg4NCw3ICs4OTMsNyBAQCBzaXplX3QgTGluZUJ1aWxkZXI6OnJlYnVpbGRM
aW5lRm9yVHJhaWxpbmdTb2Z0SHlwaGVuKGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbGF5bwogICAg
ICAgICAvLyBGSVhNRTogSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgYSBwZXJmIGlzc3VlLCB3ZSBj
b3VsZCBhbHNvIHRyYXZlcnNlIHRoZSB3cmFwIGxpc3QgYW5kIGtlZXAgYWRkaW5nIHRoZSBpdGVt
cwogICAgICAgICAvLyB3aGlsZSB3YXRjaGluZyB0aGUgYXZhaWxhYmxlIHdpZHRoIHZlcnkgY2xv
c2VseS4KICAgICAgICAgYXV0byBjb21taXR0ZWRDb3VudCA9IHJlYnVpbGRMaW5lKGxheW91dFJh
bmdlLCBzb2Z0V3JhcE9wcG9ydHVuaXR5SXRlbSk7Ci0gICAgICAgIGF1dG8gYXZhaWxhYmxlV2lk
dGggPSBtX2xpbmVMb2dpY2FsUmVjdC53aWR0aCgpIC0gbV9saW5lLmNvbnRlbnRMb2dpY2FsUmln
aHQoKTsKKyAgICAgICAgYXV0byBhdmFpbGFibGVXaWR0aCA9IG1fbGluZUxvZ2ljYWxSZWN0Lndp
ZHRoKCkgLSBtX2xpbmUuY29udGVudExvZ2ljYWxXaWR0aCgpOwogICAgICAgICBhdXRvIHRyYWls
aW5nU29mdEh5cGhlbldpZHRoID0gbV9saW5lLnRyYWlsaW5nU29mdEh5cGhlbldpZHRoKCk7CiAg
ICAgICAgIC8vIENoZWNrIGlmIHRoZSB0cmFpbGluZyBoeXBoZW4gbm93IGZpdHMgdGhlIGxpbmUg
KG9yIHdlIGRvbid0IG5lZWQgaHloZW4gYW55bW9yZSkuCiAgICAgICAgIGlmICghdHJhaWxpbmdT
b2Z0SHlwaGVuV2lkdGggfHwgdHJhaWxpbmdTb2Z0SHlwaGVuV2lkdGggPD0gYXZhaWxhYmxlV2lk
dGgpIHsK
</data>
<flag name="review"
          id="465760"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441511</attachid>
            <date>2021-10-16 16:48:16 -0700</date>
            <delta_ts>2021-10-16 20:07:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>14250</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">Y29tbWl0IDlhZDUzYzg3NjNkOGEzYjk5OTI1ZDZkNmRkNGFlZTkyMjhmMDYzZTIKQXV0aG9yOiBa
YWxhbiBCdWp0YXMgPHphbGFuQGFwcGxlLmNvbT4KRGF0ZTogICBTYXQgT2N0IDE2IDA2OjIyOjQx
IDIwMjEgLTA3MDAKCiAgICByZ2lodAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNzc2NWVlMzg2ZTAuLmUzYzM4
ZWMwZTY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTEwLTE2ICBBbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkanVzdCB0aGUg
bG9naWNhbCByaWdodCBzaWRlIG9mIHRoZSBsaW5lIHdpdGggbGluZSBzcGFubmluZyBpbmxpbmUg
Ym94ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTg2MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaXMgaW4gcHJlcGFyYXRpb24gZm9yIHN1cHBvcnRpbmcgImJveC1kZWNvcmF0aW9u
LWJyZWFrOiBjbG9uZSIuCisKKyAgICAgICAgMS4gVGhlIGxpbmUgc3Bhbm5pbmcgaW5saW5lIGJv
eCB0YWtlcyB1cCBzcGFjZSBvbiB0aGUgbGluZSAoc2VlIGxpbmUgbG9naWNhbCB3aWR0aCkKKyAg
ICAgICAgMi4gVGhlIGlubGluZSBib3ggbWF5IGJlIGdldHRpbmcgY2xvc2VkIG9uIHRoZSBsaW5l
IChkbyBub3QgZG91YmxlIGFjY291bnQgZm9yIHRoZSBlbmQgd2lkdGgsIHNlZSBoYW5kbGVJbmxp
bmVDb250ZW50ICkKKyAgICAgICAgMy4gV2hlbiB3ZSBjb21taXQgdGhlIGlubGluZSBib3ggY2xv
c2luZywgdHVybiB0aGUgZW5kaW5nIGludG8ganVzdCBhIG5vcm1hbCBydW4gKHNlZSBhcHBlbmRJ
bmxpbmVCb3hFbmQgKQorCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmluaXRp
YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRJbmxpbmVCb3hT
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZElubGluZUJveEVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZFRleHRDb250ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5kTm9uUmVwbGFjZWRJbmxpbmVM
ZXZlbEJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZExpbmVCcmVh
ayk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZFdvcmRCcmVha09wcG9y
dHVuaXR5KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmNvbnRlbnRMb2dpY2Fs
UmlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpsaW5lU3Bhbm5p
bmdJbmxpbmVCb3hSdW5FbmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGlu
ZTo6bGFzdFJ1bkxvZ2ljYWxSaWdodCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6aGFuZGxlSW5saW5lQ29udGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpyZWJ1aWxkTGluZUZvclRyYWlsaW5nU29mdEh5
cGhlbik6CisKIDIwMjEtMTAtMTUgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0lGQ10gQWRqdXN0IHRoZSBsb2dpY2FsIGxlZnQgc2lkZSBvZiB0aGUgbGlu
ZSB3aXRoIGxpbmUgc3Bhbm5pbmcgaW5saW5lIGJveGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUu
Y3BwCmluZGV4IDhiYmZkMGU4MThhMi4uMTZlM2UyYzdjNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lLmNwcApAQCAtNTIsNiArNTIsOCBAQCBMaW5lOjp+TGluZSgpCiAKIHZvaWQgTGluZTo6
aW5pdGlhbGl6ZShjb25zdCBWZWN0b3I8SW5saW5lSXRlbT4mIGxpbmVTcGFubmluZ0lubGluZUJv
eGVzKQogeworICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcy5jbGVhcigpOworICAg
IG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kV2lkdGggPSB7IH07CiAgICAgbV9ub25TcGFu
bmluZ0lubGluZUxldmVsQm94Q291bnQgPSAwOwogICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCA9
IHsgfTsKICAgICBtX3J1bnMuY2xlYXIoKTsKQEAgLTYzLDE4ICs2NSwyMyBAQCB2b2lkIExpbmU6
OmluaXRpYWxpemUoY29uc3QgVmVjdG9yPElubGluZUl0ZW0+JiBsaW5lU3Bhbm5pbmdJbmxpbmVC
b3hlcykKICAgICAgICAgICAgIHNob3VsZENoZWNrRm9yTWFyZ2luQm9yZGVyQW5kUGFkZGluZyA9
IGlubGluZUJveFN0YXJ0SXRlbS5zdHlsZSgpLmJveERlY29yYXRpb25CcmVhaygpID09IEJveERl
Y29yYXRpb25CcmVhazo6Q2xvbmU7CiAjZW5kaWYKICAgICAgICAgICAgIGlmICghc2hvdWxkQ2hl
Y2tGb3JNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nKSB7Ci0gICAgICAgICAgICAgICAgbV9ydW5zLmFw
cGVuZCh7IGlubGluZUJveFN0YXJ0SXRlbSwgY29udGVudExvZ2ljYWxSaWdodCgpLCB7IH0gfSk7
CisgICAgICAgICAgICAgICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUJveFN0YXJ0SXRlbSwgbGFz
dFJ1bkxvZ2ljYWxSaWdodCgpLCB7IH0gfSk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
LWJyZWFrLyNicmVhay1kZWNvcmF0aW9uCiAgICAgICAgICAgICAvLyBjbG9uZTogRWFjaCBib3gg
ZnJhZ21lbnQgaXMgaW5kZXBlbmRlbnRseSB3cmFwcGVkIHdpdGggdGhlIGJvcmRlciwgcGFkZGlu
ZywgYW5kIG1hcmdpbi4KICAgICAgICAgICAgIGF1dG8mIGlubGluZUJveEdlb21ldHJ5ID0gZm9y
bWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVCb3hTdGFydEl0ZW0ubGF5b3V0
Qm94KCkpOwotICAgICAgICAgICAgYXV0byBydW5Mb2dpY2FsTGVmdCA9IGNvbnRlbnRMb2dpY2Fs
UmlnaHQoKTsKLSAgICAgICAgICAgIGF1dG8gbWFyZ2luQm9yZGVyQW5kUGFkZGluZyA9IGlubGlu
ZUJveEdlb21ldHJ5Lm1hcmdpblN0YXJ0KCkgKyBpbmxpbmVCb3hHZW9tZXRyeS5ib3JkZXJMZWZ0
KCkgKyBpbmxpbmVCb3hHZW9tZXRyeS5wYWRkaW5nTGVmdCgpLnZhbHVlX29yKDBfbHUpOwotICAg
ICAgICAgICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUJveFN0YXJ0SXRlbSwgcnVuTG9naWNhbExl
ZnQsIG1hcmdpbkJvcmRlckFuZFBhZGRpbmcgfSk7CisgICAgICAgICAgICBhdXRvIHJ1bkxvZ2lj
YWxMZWZ0ID0gbGFzdFJ1bkxvZ2ljYWxSaWdodCgpOworICAgICAgICAgICAgYXV0byBtYXJnaW5C
b3JkZXJBbmRQYWRkaW5nU3RhcnQgPSBpbmxpbmVCb3hHZW9tZXRyeS5tYXJnaW5TdGFydCgpICsg
aW5saW5lQm94R2VvbWV0cnkuYm9yZGVyTGVmdCgpICsgaW5saW5lQm94R2VvbWV0cnkucGFkZGlu
Z0xlZnQoKS52YWx1ZV9vcigwX2x1KTsKKyAgICAgICAgICAgIG1fcnVucy5hcHBlbmQoeyBpbmxp
bmVCb3hTdGFydEl0ZW0sIHJ1bkxvZ2ljYWxMZWZ0LCBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nU3Rh
cnQgfSk7CiAgICAgICAgICAgICAvLyBEbyBub3QgbGV0IG5lZ2F0aXZlIG1hcmdpbiBtYWtlIHRo
ZSBjb250ZW50IHNob3J0ZXIgdGhhbiBpdCBhbHJlYWR5IGlzLgotICAgICAgICAgICAgYXV0byBy
dW5Mb2dpY2FsUmlnaHQgPSBydW5Mb2dpY2FsTGVmdCArIG1hcmdpbkJvcmRlckFuZFBhZGRpbmc7
CisgICAgICAgICAgICBhdXRvIHJ1bkxvZ2ljYWxSaWdodCA9IHJ1bkxvZ2ljYWxMZWZ0ICsgbWFy
Z2luQm9yZGVyQW5kUGFkZGluZ1N0YXJ0OwogICAgICAgICAgICAgbV9jb250ZW50TG9naWNhbFdp
ZHRoID0gc3RkOjptYXgobV9jb250ZW50TG9naWNhbFdpZHRoLCBydW5Mb2dpY2FsUmlnaHQpOwor
CisgICAgICAgICAgICBhdXRvIG1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQgPSBpbmxpbmVCb3hH
ZW9tZXRyeS5tYXJnaW5FbmQoKSArIGlubGluZUJveEdlb21ldHJ5LmJvcmRlclJpZ2h0KCkgKyBp
bmxpbmVCb3hHZW9tZXRyeS5wYWRkaW5nUmlnaHQoKS52YWx1ZV9vcigwX2x1KTsKKyAgICAgICAg
ICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcy5hZGQoJmlubGluZUJveFN0YXJ0SXRl
bS5sYXlvdXRCb3goKSwgbWFyZ2luQm9yZGVyQW5kUGFkZGluZ0VuZCk7CisgICAgICAgICAgICBt
X2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZFdpZHRoICs9IG1hcmdpbkJvcmRlckFuZFBhZGRp
bmdFbmQ7CisgICAgICAgICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggKz0gbWFyZ2luQm9yZGVy
QW5kUGFkZGluZ0VuZDsKICAgICAgICAgfQogICAgIH07CiAgICAgYXBwZW5kTGluZVNwYW5uaW5n
SW5saW5lQm94ZXMoKTsKQEAgLTI2OSw3ICsyNzYsNyBAQCB2b2lkIExpbmU6OmFwcGVuZElubGlu
ZUJveFN0YXJ0KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxl
JgogewogICAgIC8vIFRoaXMgaXMgcmVhbGx5IGp1c3QgYSBwbGFjZWhvbGRlciB0byBtYXJrIHRo
ZSBzdGFydCBvZiB0aGUgaW5saW5lIGJveCA8c3Bhbj4uCiAgICAgKyttX25vblNwYW5uaW5nSW5s
aW5lTGV2ZWxCb3hDb3VudDsKLSAgICBhcHBlbmROb25CcmVha2FibGVTcGFjZShpbmxpbmVJdGVt
LCBzdHlsZSwgY29udGVudExvZ2ljYWxSaWdodCgpLCBsb2dpY2FsV2lkdGgpOworICAgIGFwcGVu
ZE5vbkJyZWFrYWJsZVNwYWNlKGlubGluZUl0ZW0sIHN0eWxlLCBsYXN0UnVuTG9naWNhbFJpZ2h0
KCksIGxvZ2ljYWxXaWR0aCk7CiB9CiAKIHZvaWQgTGluZTo6YXBwZW5kSW5saW5lQm94RW5kKGNv
bnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5s
aW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCkBAIC0yODAsMTAgKzI4NywxOCBAQCB2b2lkIExp
bmU6OmFwcGVuZElubGluZUJveEVuZChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25z
dCBSZW5kZXJTdHlsZSYgcwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2NvbnRlbnRM
b2dpY2FsV2lkdGggLT0gbV90cmltbWFibGVUcmFpbGluZ0NvbnRlbnQucmVtb3ZlUGFydGlhbGx5
VHJpbW1hYmxlQ29udGVudCgpOwogICAgIH07CisgICAgYXV0byByZW1vdmVGcm9tTGluZVNwYW5u
aW5nSW5saW5lQm94TGlzdElmQXBwbGljYWJsZSA9IFsmXSB7CisgICAgICAgIEFTU0VSVCghbV9s
aW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzLmNvbnRhaW5zKCZpbmxpbmVJdGVtLmxheW91dEJv
eCgpKSB8fCBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMuZ2V0KCZpbmxpbmVJdGVtLmxh
eW91dEJveCgpKSA9PSBsb2dpY2FsV2lkdGgpOworICAgICAgICBhdXRvIGlubGluZUJveEVuZCA9
IG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcy5yZW1vdmUoJmlubGluZUl0ZW0ubGF5b3V0
Qm94KCkpOworICAgICAgICAvLyBUaGlzIGlubGluZSBib3ggZW5kIG5vdyBjb250cmlidXRlcyB0
byB0aGUgbGluZSBjb250ZW50IHdpZHRoIGluIHRoZSByZWd1bGFyIHdheS4KKyAgICAgICAgbV9j
b250ZW50TG9naWNhbFdpZHRoIC09IGlubGluZUJveEVuZDsKKyAgICAgICAgbV9saW5lU3Bhbm5p
bmdJbmxpbmVCb3hSdW5FbmRXaWR0aCAtPSBpbmxpbmVCb3hFbmQ7CisgICAgfTsKICAgICAvLyBQ
cmV2ZW50IHRyYWlsaW5nIGxldHRlci1zcGFjaW5nIGZyb20gc3BpbGxpbmcgb3V0IG9mIHRoZSBp
bmxpbmUgYm94LgogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdGV4dC0zLyNs
ZXR0ZXItc3BhY2luZy1wcm9wZXJ0eSBTZWUgZXhhbXBsZSAyMS4KICAgICByZW1vdmVUcmFpbGlu
Z0xldHRlclNwYWNpbmcoKTsKLSAgICBhcHBlbmROb25CcmVha2FibGVTcGFjZShpbmxpbmVJdGVt
LCBzdHlsZSwgY29udGVudExvZ2ljYWxSaWdodCgpLCBsb2dpY2FsV2lkdGgpOworICAgIHJlbW92
ZUZyb21MaW5lU3Bhbm5pbmdJbmxpbmVCb3hMaXN0SWZBcHBsaWNhYmxlKCk7CisgICAgYXBwZW5k
Tm9uQnJlYWthYmxlU3BhY2UoaW5saW5lSXRlbSwgc3R5bGUsIGxhc3RSdW5Mb2dpY2FsUmlnaHQo
KSwgbG9naWNhbFdpZHRoKTsKIH0KIAogdm9pZCBMaW5lOjphcHBlbmRUZXh0Q29udGVudChjb25z
dCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCkBAIC0zMzAsNyArMzQ1LDcgQEAgdm9p
ZCBMaW5lOjphcHBlbmRUZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4
dEl0ZW0sIGNvbnN0IFJlbmRlclMKICAgICBhdXRvIG9sZENvbnRlbnRMb2dpY2FsV2lkdGggPSBj
b250ZW50TG9naWNhbFdpZHRoKCk7CiAgICAgaWYgKG5lZWRzTmV3UnVuKSB7CiAgICAgICAgIC8v
IE5vdGUsIG5lZ2F0aXZlIHdvcmRzIHNwYWNpbmcgbWF5IGNhdXNlIGdseXBoIG92ZXJsYXAuCi0g
ICAgICAgIGF1dG8gcnVuTG9naWNhbExlZnQgPSBjb250ZW50TG9naWNhbFJpZ2h0KCkgKyAoaW5s
aW5lVGV4dEl0ZW0uaXNXb3JkU2VwYXJhdG9yKCkgPyBzdHlsZS5mb250Q2FzY2FkZSgpLndvcmRT
cGFjaW5nKCkgOiAwLjBmKTsKKyAgICAgICAgYXV0byBydW5Mb2dpY2FsTGVmdCA9IGxhc3RSdW5M
b2dpY2FsUmlnaHQoKSArIChpbmxpbmVUZXh0SXRlbS5pc1dvcmRTZXBhcmF0b3IoKSA/IHN0eWxl
LmZvbnRDYXNjYWRlKCkud29yZFNwYWNpbmcoKSA6IDAuMGYpOwogICAgICAgICBtX3J1bnMuYXBw
ZW5kKHsgaW5saW5lVGV4dEl0ZW0sIHN0eWxlLCBydW5Mb2dpY2FsTGVmdCwgbG9naWNhbFdpZHRo
IH0pOwogICAgICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggPSBzdGQ6Om1heChvbGRDb250ZW50
TG9naWNhbFdpZHRoLCBydW5Mb2dpY2FsTGVmdCArIGxvZ2ljYWxXaWR0aCk7CiAgICAgfSBlbHNl
IHsKQEAgLTM2NywxNCArMzgyLDE0IEBAIHZvaWQgTGluZTo6YXBwZW5kTm9uUmVwbGFjZWRJbmxp
bmVMZXZlbEJveChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSCiAgICAgKytt
X25vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hDb3VudDsKICAgICBhdXRvIG1hcmdpblN0YXJ0ID0g
Zm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVJdGVtLmxheW91dEJveCgp
KS5tYXJnaW5TdGFydCgpOwogICAgIGlmIChtYXJnaW5TdGFydCA+PSAwKSB7Ci0gICAgICAgIG1f
cnVucy5hcHBlbmQoeyBpbmxpbmVJdGVtLCBzdHlsZSwgY29udGVudExvZ2ljYWxSaWdodCgpLCBt
YXJnaW5Cb3hMb2dpY2FsV2lkdGggfSk7CisgICAgICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVJ
dGVtLCBzdHlsZSwgbGFzdFJ1bkxvZ2ljYWxSaWdodCgpLCBtYXJnaW5Cb3hMb2dpY2FsV2lkdGgg
fSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gTmVnYXRpdmUgbWFyZ2luLXN0YXJ0
IHB1bGxzIHRoZSBjb250ZW50IHRvIHRoZSBsb2dpY2FsIGxlZnQgZGlyZWN0aW9uLgogICAgIC8v
IE5lZ2F0aXZlIG1hcmdpbiBhbHNvIHNxdWVlemVzIHRoZSBtYXJnaW4gYm94LCB3ZSBuZWVkIHRv
IHN0cmV0Y2ggaXQgdG8gbWFrZSBzdXJlIHRoZSBzdWJzZXF1ZW50IGNvbnRlbnQgd29uJ3Qgb3Zl
cmxhcC4KICAgICAvLyBlLmcuIDxpbWcgc3R5bGU9IndpZHRoOiAxMDBweDsgbWFyZ2luLWxlZnQ6
IC0xMDBweDsiPiBwdWxscyB0aGUgcmVwbGFjZWQgYm94IHRvIC0xMDBweCB3aXRoIHRoZSBtYXJn
aW4gYm94IHdpZHRoIG9mIDBweC4KICAgICAvLyBJbnN0ZWFkIHdlIG5lZWQgdG8gcG9zaXRpb24g
aXQgYXQgLTEwMHB4IGFuZCBzaXplIGl0IHRvIDEwMHB4IHNvIHRoZSBzdWJzZXF1ZW50IGNvbnRl
bnQgc3RhcnRzIGF0IDBweC4gCi0gICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUl0ZW0sIHN0eWxl
LCBjb250ZW50TG9naWNhbFJpZ2h0KCkgKyBtYXJnaW5TdGFydCwgbWFyZ2luQm94TG9naWNhbFdp
ZHRoIC0gbWFyZ2luU3RhcnQgfSk7CisgICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUl0ZW0sIHN0
eWxlLCBsYXN0UnVuTG9naWNhbFJpZ2h0KCkgKyBtYXJnaW5TdGFydCwgbWFyZ2luQm94TG9naWNh
bFdpZHRoIC0gbWFyZ2luU3RhcnQgfSk7CiB9CiAKIHZvaWQgTGluZTo6YXBwZW5kUmVwbGFjZWRJ
bmxpbmVMZXZlbEJveChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbWFyZ2luQm94TG9naWNhbFdpZHRoKQpAQCAt
Mzg5LDE2ICs0MDQsMTYgQEAgdm9pZCBMaW5lOjphcHBlbmRMaW5lQnJlYWsoY29uc3QgSW5saW5l
SXRlbSYgaW5saW5lSXRlbSkKICAgICBtX3RyYWlsaW5nU29mdEh5cGhlbldpZHRoID0geyB9Owog
ICAgIGlmIChpbmxpbmVJdGVtLmlzSGFyZExpbmVCcmVhaygpKSB7CiAgICAgICAgICsrbV9ub25T
cGFubmluZ0lubGluZUxldmVsQm94Q291bnQ7Ci0gICAgICAgIHJldHVybiBtX3J1bnMuYXBwZW5k
KHsgaW5saW5lSXRlbSwgY29udGVudExvZ2ljYWxSaWdodCgpIH0pOworICAgICAgICByZXR1cm4g
bV9ydW5zLmFwcGVuZCh7IGlubGluZUl0ZW0sIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSB9KTsKICAg
ICB9CiAgICAgLy8gU29mdCBsaW5lIGJyZWFrcyAocHJlc2VydmVkIG5ldyBsaW5lIGNoYXJhY3Rl
cnMpIHJlcXVpcmUgaW5saW5lIHRleHQgYm94ZXMgZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucy4K
ICAgICBBU1NFUlQoaW5saW5lSXRlbS5pc1NvZnRMaW5lQnJlYWsoKSk7Ci0gICAgbV9ydW5zLmFw
cGVuZCh7IGRvd25jYXN0PElubGluZVNvZnRMaW5lQnJlYWtJdGVtPihpbmxpbmVJdGVtKSwgY29u
dGVudExvZ2ljYWxSaWdodCgpIH0pOworICAgIG1fcnVucy5hcHBlbmQoeyBkb3duY2FzdDxJbmxp
bmVTb2Z0TGluZUJyZWFrSXRlbT4oaW5saW5lSXRlbSksIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSB9
KTsKIH0KIAogdm9pZCBMaW5lOjphcHBlbmRXb3JkQnJlYWtPcHBvcnR1bml0eShjb25zdCBJbmxp
bmVJdGVtJiBpbmxpbmVJdGVtKQogewotICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVJdGVtLCBj
b250ZW50TG9naWNhbFJpZ2h0KCkgfSk7CisgICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUl0ZW0s
IGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSB9KTsKIH0KIAogdm9pZCBMaW5lOjphZGRUcmFpbGluZ0h5
cGhlbihJbmxpbmVMYXlvdXRVbml0IGh5cGhlbkxvZ2ljYWxXaWR0aCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmUuaAppbmRleCBiZTE4NjY5NWFkYzQuLjQ5N2E2YjhjNTA2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUxpbmUuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNDb250ZW50
KCkgY29uc3QgeyByZXR1cm4gIW1fcnVucy5pc0VtcHR5KCkgJiYgIW1fcnVucy5sYXN0KCkuaXNM
aW5lU3Bhbm5pbmdJbmxpbmVCb3hTdGFydCgpOyB9CiAKICAgICBJbmxpbmVMYXlvdXRVbml0IGNv
bnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRMb2dpY2FsV2lkdGg7
IH0KLSAgICBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJl
dHVybiBtX3J1bnMuaXNFbXB0eSgpID8gMC4wZiA6IG1fcnVucy5sYXN0KCkubG9naWNhbFJpZ2h0
KCk7IH0KKyAgICBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25zdCB7
IHJldHVybiBsYXN0UnVuTG9naWNhbFJpZ2h0KCkgKyBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1
bkVuZFdpZHRoOyB9CiAgICAgc2l6ZV90IG5vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hDb3VudCgp
IGNvbnN0IHsgcmV0dXJuIG1fbm9uU3Bhbm5pbmdJbmxpbmVMZXZlbEJveENvdW50OyB9CiAKICAg
ICBJbmxpbmVMYXlvdXRVbml0IHRyaW1tYWJsZVRyYWlsaW5nV2lkdGgoKSBjb25zdCB7IHJldHVy
biBtX3RyaW1tYWJsZVRyYWlsaW5nQ29udGVudC53aWR0aCgpOyB9CkBAIC0xNTYsOCArMTU2LDEy
IEBAIHB1YmxpYzoKICAgICB9OwogICAgIHVzaW5nIFJ1bkxpc3QgPSBWZWN0b3I8UnVuLCAxMD47
CiAgICAgY29uc3QgUnVuTGlzdCYgcnVucygpIGNvbnN0IHsgcmV0dXJuIG1fcnVuczsgfQorICAg
IHVzaW5nIExpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMgPSBIYXNoTWFwPGNvbnN0IEJveCos
IElubGluZUxheW91dFVuaXQ+OworICAgIGNvbnN0IExpbmVTcGFubmluZ0lubGluZUJveFJ1bkVu
ZHMmIGxpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMoKSBjb25zdCB7IHJldHVybiBtX2xpbmVT
cGFubmluZ0lubGluZUJveFJ1bkVuZHM7IH0KIAogcHJpdmF0ZToKKyAgICBJbmxpbmVMYXlvdXRV
bml0IGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3J1bnMuaXNFbXB0eSgp
ID8gMC4wZiA6IG1fcnVucy5sYXN0KCkubG9naWNhbFJpZ2h0KCk7IH0KKwogICAgIHZvaWQgYXBw
ZW5kTm9uQnJlYWthYmxlU3BhY2UoY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IFJlbmRlclN0eWxl
JiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
V2lkdGgpOwogICAgIHZvaWQgYXBwZW5kVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4dEl0ZW0m
LCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKTsKICAg
ICB2b2lkIGFwcGVuZE5vblJlcGxhY2VkSW5saW5lTGV2ZWxCb3goY29uc3QgSW5saW5lSXRlbSYs
IGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBtYXJnaW5Cb3hMb2dpY2FsV2lk
dGgpOwpAQCAtMjE2LDYgKzIyMCw4IEBAIHByaXZhdGU6CiAgICAgSW5saW5lTGF5b3V0VW5pdCBt
X2NvbnRlbnRMb2dpY2FsV2lkdGggeyAwIH07CiAgICAgc2l6ZV90IG1fbm9uU3Bhbm5pbmdJbmxp
bmVMZXZlbEJveENvdW50IHsgMCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5p
dD4gbV90cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCB7IDAgfTsKKyAgICBMaW5lU3Bhbm5pbmdJbmxp
bmVCb3hSdW5FbmRzIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kczsKKyAgICBJbmxpbmVM
YXlvdXRVbml0IG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kV2lkdGggeyAwIH07CiB9Owog
CiBpbmxpbmUgdm9pZCBMaW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlc2V0KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCAyMzQ5MzQ2ZmI5N2Yu
LjQ3NThjMDYzZmFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNw
cApAQCAtNzM0LDcgKzczNCwxNiBAQCBMaW5lQnVpbGRlcjo6UmVzdWx0IExpbmVCdWlsZGVyOjpo
YW5kbGVJbmxpbmVDb250ZW50KElubGluZUNvbnRlbnRCcmVha2VyJiBpbmxpbgogICAgICAgICBy
ZXR1cm4gYWRqdXN0ZWRMaW5lTG9naWNhbFJlY3Q7CiAgICAgfSgpOwogICAgIGF1dG8gYXZhaWxh
YmxlV2lkdGggPSBbJl0gewotICAgICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoRm9yQ29udGVudCA9
IGxpbmVMb2dpY2FsUmVjdEZvckNhbmRpZGF0ZUNvbnRlbnQud2lkdGgoKSAtIG1fbGluZS5jb250
ZW50TG9naWNhbFJpZ2h0KCk7CisgICAgICAgIGF1dG8gbGluZUNvbnRlbnRMb2dpY2FsV2lkdGgg
PSBtX2xpbmUuY29udGVudExvZ2ljYWxXaWR0aCgpOworICAgICAgICBhdXRvJiBsaW5lU3Bhbm5p
bmdJbmxpbmVCb3hFbmRzID0gbV9saW5lLmxpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMoKTsK
KyAgICAgICAgaWYgKCFsaW5lU3Bhbm5pbmdJbmxpbmVCb3hFbmRzLmlzRW1wdHkoKSAmJiBpbmxp
bmVDb250ZW50Lmhhc0lubGluZUxldmVsQm94KCkpIHsKKyAgICAgICAgICAgIC8vIFdlIG1heSB0
cnkgdG8gY29tbWl0IGEgbGluZSBzcGFubmluZyBpbmxpbmUgYm94IGVuZCBoZXJlLiBMZXQncyBu
b3QgYWNjb3VudCBmb3IgaXRzIGxvZ2ljYWwgd2lkdGggdHdpY2UuCisgICAgICAgICAgICBmb3Ig
KGF1dG8mIHJ1biA6IGNvbnRpbnVvdXNJbmxpbmVDb250ZW50LnJ1bnMoKSkgeworICAgICAgICAg
ICAgICAgIGlmIChydW4uaW5saW5lSXRlbS5pc0lubGluZUJveEVuZCgpKQorICAgICAgICAgICAg
ICAgICAgICBsaW5lQ29udGVudExvZ2ljYWxXaWR0aCAtPSBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hF
bmRzLmdldCgmcnVuLmlubGluZUl0ZW0ubGF5b3V0Qm94KCkpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIGF1dG8gYXZhaWxhYmxlV2lkdGhGb3JDb250ZW50ID0gbGluZUxvZ2lj
YWxSZWN0Rm9yQ2FuZGlkYXRlQ29udGVudC53aWR0aCgpIC0gbGluZUNvbnRlbnRMb2dpY2FsV2lk
dGg7CiAgICAgICAgIHJldHVybiBzdGQ6OmlzbmFuKGF2YWlsYWJsZVdpZHRoRm9yQ29udGVudCkg
PyBtYXhJbmxpbmVMYXlvdXRVbml0KCkgOiBhdmFpbGFibGVXaWR0aEZvckNvbnRlbnQ7CiAgICAg
fSgpOwogICAgIC8vIFdoaWxlIHRoZSBmbG9hdHMgYXJlIG5vdCBjb25zaWRlcmVkIHRvIGJlIG9u
IHRoZSBsaW5lLCB0aGV5IG1ha2UgdGhlIGxpbmUgY29udGVudGZ1bCBmb3IgbGluZSBicmVha2lu
Zy4KQEAgLTg4NCw3ICs4OTMsNyBAQCBzaXplX3QgTGluZUJ1aWxkZXI6OnJlYnVpbGRMaW5lRm9y
VHJhaWxpbmdTb2Z0SHlwaGVuKGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbGF5bwogICAgICAgICAv
LyBGSVhNRTogSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgYSBwZXJmIGlzc3VlLCB3ZSBjb3VsZCBh
bHNvIHRyYXZlcnNlIHRoZSB3cmFwIGxpc3QgYW5kIGtlZXAgYWRkaW5nIHRoZSBpdGVtcwogICAg
ICAgICAvLyB3aGlsZSB3YXRjaGluZyB0aGUgYXZhaWxhYmxlIHdpZHRoIHZlcnkgY2xvc2VseS4K
ICAgICAgICAgYXV0byBjb21taXR0ZWRDb3VudCA9IHJlYnVpbGRMaW5lKGxheW91dFJhbmdlLCBz
b2Z0V3JhcE9wcG9ydHVuaXR5SXRlbSk7Ci0gICAgICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSBt
X2xpbmVMb2dpY2FsUmVjdC53aWR0aCgpIC0gbV9saW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKTsK
KyAgICAgICAgYXV0byBhdmFpbGFibGVXaWR0aCA9IG1fbGluZUxvZ2ljYWxSZWN0LndpZHRoKCkg
LSBtX2xpbmUuY29udGVudExvZ2ljYWxXaWR0aCgpOwogICAgICAgICBhdXRvIHRyYWlsaW5nU29m
dEh5cGhlbldpZHRoID0gbV9saW5lLnRyYWlsaW5nU29mdEh5cGhlbldpZHRoKCk7CiAgICAgICAg
IC8vIENoZWNrIGlmIHRoZSB0cmFpbGluZyBoeXBoZW4gbm93IGZpdHMgdGhlIGxpbmUgKG9yIHdl
IGRvbid0IG5lZWQgaHloZW4gYW55bW9yZSkuCiAgICAgICAgIGlmICghdHJhaWxpbmdTb2Z0SHlw
aGVuV2lkdGggfHwgdHJhaWxpbmdTb2Z0SHlwaGVuV2lkdGggPD0gYXZhaWxhYmxlV2lkdGgpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441514</attachid>
            <date>2021-10-16 20:07:11 -0700</date>
            <delta_ts>2021-10-16 22:58:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>13443</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">Y29tbWl0IGE1NDQxMDk5NTY1NmFiM2EwYWM5MTIxNGNkN2E3OTgxNmU2ODFkYjAKQXV0aG9yOiBa
YWxhbiBCdWp0YXMgPHphbGFuQGFwcGxlLmNvbT4KRGF0ZTogICBTYXQgT2N0IDE2IDA2OjIyOjQx
IDIwMjEgLTA3MDAKCiAgICByaWdodAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNzc2NWVlMzg2ZTAuLmUzYzM4
ZWMwZTY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTEwLTE2ICBBbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkanVzdCB0aGUg
bG9naWNhbCByaWdodCBzaWRlIG9mIHRoZSBsaW5lIHdpdGggbGluZSBzcGFubmluZyBpbmxpbmUg
Ym94ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTg2MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaXMgaW4gcHJlcGFyYXRpb24gZm9yIHN1cHBvcnRpbmcgImJveC1kZWNvcmF0aW9u
LWJyZWFrOiBjbG9uZSIuCisKKyAgICAgICAgMS4gVGhlIGxpbmUgc3Bhbm5pbmcgaW5saW5lIGJv
eCB0YWtlcyB1cCBzcGFjZSBvbiB0aGUgbGluZSAoc2VlIGxpbmUgbG9naWNhbCB3aWR0aCkKKyAg
ICAgICAgMi4gVGhlIGlubGluZSBib3ggbWF5IGJlIGdldHRpbmcgY2xvc2VkIG9uIHRoZSBsaW5l
IChkbyBub3QgZG91YmxlIGFjY291bnQgZm9yIHRoZSBlbmQgd2lkdGgsIHNlZSBoYW5kbGVJbmxp
bmVDb250ZW50ICkKKyAgICAgICAgMy4gV2hlbiB3ZSBjb21taXQgdGhlIGlubGluZSBib3ggY2xv
c2luZywgdHVybiB0aGUgZW5kaW5nIGludG8ganVzdCBhIG5vcm1hbCBydW4gKHNlZSBhcHBlbmRJ
bmxpbmVCb3hFbmQgKQorCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmluaXRp
YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmRJbmxpbmVCb3hT
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZElubGluZUJveEVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZFRleHRDb250ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5kTm9uUmVwbGFjZWRJbmxpbmVM
ZXZlbEJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZExpbmVCcmVh
ayk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZFdvcmRCcmVha09wcG9y
dHVuaXR5KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmNvbnRlbnRMb2dpY2Fs
UmlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpsaW5lU3Bhbm5p
bmdJbmxpbmVCb3hSdW5FbmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGlu
ZTo6bGFzdFJ1bkxvZ2ljYWxSaWdodCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6aGFuZGxlSW5saW5lQ29udGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpyZWJ1aWxkTGluZUZvclRyYWlsaW5nU29mdEh5
cGhlbik6CisKIDIwMjEtMTAtMTUgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0lGQ10gQWRqdXN0IHRoZSBsb2dpY2FsIGxlZnQgc2lkZSBvZiB0aGUgbGlu
ZSB3aXRoIGxpbmUgc3Bhbm5pbmcgaW5saW5lIGJveGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUu
Y3BwCmluZGV4IDhiYmZkMGU4MThhMi4uMTZlM2UyYzdjNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lLmNwcApAQCAtNTIsNiArNTIsOCBAQCBMaW5lOjp+TGluZSgpCiAKIHZvaWQgTGluZTo6
aW5pdGlhbGl6ZShjb25zdCBWZWN0b3I8SW5saW5lSXRlbT4mIGxpbmVTcGFubmluZ0lubGluZUJv
eGVzKQogeworICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcy5jbGVhcigpOworICAg
IG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kV2lkdGggPSB7IH07CiAgICAgbV9ub25TcGFu
bmluZ0lubGluZUxldmVsQm94Q291bnQgPSAwOwogICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCA9
IHsgfTsKICAgICBtX3J1bnMuY2xlYXIoKTsKQEAgLTYzLDE4ICs2NSwyMyBAQCB2b2lkIExpbmU6
OmluaXRpYWxpemUoY29uc3QgVmVjdG9yPElubGluZUl0ZW0+JiBsaW5lU3Bhbm5pbmdJbmxpbmVC
b3hlcykKICAgICAgICAgICAgIHNob3VsZENoZWNrRm9yTWFyZ2luQm9yZGVyQW5kUGFkZGluZyA9
IGlubGluZUJveFN0YXJ0SXRlbS5zdHlsZSgpLmJveERlY29yYXRpb25CcmVhaygpID09IEJveERl
Y29yYXRpb25CcmVhazo6Q2xvbmU7CiAjZW5kaWYKICAgICAgICAgICAgIGlmICghc2hvdWxkQ2hl
Y2tGb3JNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nKSB7Ci0gICAgICAgICAgICAgICAgbV9ydW5zLmFw
cGVuZCh7IGlubGluZUJveFN0YXJ0SXRlbSwgY29udGVudExvZ2ljYWxSaWdodCgpLCB7IH0gfSk7
CisgICAgICAgICAgICAgICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUJveFN0YXJ0SXRlbSwgbGFz
dFJ1bkxvZ2ljYWxSaWdodCgpLCB7IH0gfSk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
LWJyZWFrLyNicmVhay1kZWNvcmF0aW9uCiAgICAgICAgICAgICAvLyBjbG9uZTogRWFjaCBib3gg
ZnJhZ21lbnQgaXMgaW5kZXBlbmRlbnRseSB3cmFwcGVkIHdpdGggdGhlIGJvcmRlciwgcGFkZGlu
ZywgYW5kIG1hcmdpbi4KICAgICAgICAgICAgIGF1dG8mIGlubGluZUJveEdlb21ldHJ5ID0gZm9y
bWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVCb3hTdGFydEl0ZW0ubGF5b3V0
Qm94KCkpOwotICAgICAgICAgICAgYXV0byBydW5Mb2dpY2FsTGVmdCA9IGNvbnRlbnRMb2dpY2Fs
UmlnaHQoKTsKLSAgICAgICAgICAgIGF1dG8gbWFyZ2luQm9yZGVyQW5kUGFkZGluZyA9IGlubGlu
ZUJveEdlb21ldHJ5Lm1hcmdpblN0YXJ0KCkgKyBpbmxpbmVCb3hHZW9tZXRyeS5ib3JkZXJMZWZ0
KCkgKyBpbmxpbmVCb3hHZW9tZXRyeS5wYWRkaW5nTGVmdCgpLnZhbHVlX29yKDBfbHUpOwotICAg
ICAgICAgICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUJveFN0YXJ0SXRlbSwgcnVuTG9naWNhbExl
ZnQsIG1hcmdpbkJvcmRlckFuZFBhZGRpbmcgfSk7CisgICAgICAgICAgICBhdXRvIHJ1bkxvZ2lj
YWxMZWZ0ID0gbGFzdFJ1bkxvZ2ljYWxSaWdodCgpOworICAgICAgICAgICAgYXV0byBtYXJnaW5C
b3JkZXJBbmRQYWRkaW5nU3RhcnQgPSBpbmxpbmVCb3hHZW9tZXRyeS5tYXJnaW5TdGFydCgpICsg
aW5saW5lQm94R2VvbWV0cnkuYm9yZGVyTGVmdCgpICsgaW5saW5lQm94R2VvbWV0cnkucGFkZGlu
Z0xlZnQoKS52YWx1ZV9vcigwX2x1KTsKKyAgICAgICAgICAgIG1fcnVucy5hcHBlbmQoeyBpbmxp
bmVCb3hTdGFydEl0ZW0sIHJ1bkxvZ2ljYWxMZWZ0LCBtYXJnaW5Cb3JkZXJBbmRQYWRkaW5nU3Rh
cnQgfSk7CiAgICAgICAgICAgICAvLyBEbyBub3QgbGV0IG5lZ2F0aXZlIG1hcmdpbiBtYWtlIHRo
ZSBjb250ZW50IHNob3J0ZXIgdGhhbiBpdCBhbHJlYWR5IGlzLgotICAgICAgICAgICAgYXV0byBy
dW5Mb2dpY2FsUmlnaHQgPSBydW5Mb2dpY2FsTGVmdCArIG1hcmdpbkJvcmRlckFuZFBhZGRpbmc7
CisgICAgICAgICAgICBhdXRvIHJ1bkxvZ2ljYWxSaWdodCA9IHJ1bkxvZ2ljYWxMZWZ0ICsgbWFy
Z2luQm9yZGVyQW5kUGFkZGluZ1N0YXJ0OwogICAgICAgICAgICAgbV9jb250ZW50TG9naWNhbFdp
ZHRoID0gc3RkOjptYXgobV9jb250ZW50TG9naWNhbFdpZHRoLCBydW5Mb2dpY2FsUmlnaHQpOwor
CisgICAgICAgICAgICBhdXRvIG1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQgPSBpbmxpbmVCb3hH
ZW9tZXRyeS5tYXJnaW5FbmQoKSArIGlubGluZUJveEdlb21ldHJ5LmJvcmRlclJpZ2h0KCkgKyBp
bmxpbmVCb3hHZW9tZXRyeS5wYWRkaW5nUmlnaHQoKS52YWx1ZV9vcigwX2x1KTsKKyAgICAgICAg
ICAgIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcy5hZGQoJmlubGluZUJveFN0YXJ0SXRl
bS5sYXlvdXRCb3goKSwgbWFyZ2luQm9yZGVyQW5kUGFkZGluZ0VuZCk7CisgICAgICAgICAgICBt
X2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZFdpZHRoICs9IG1hcmdpbkJvcmRlckFuZFBhZGRp
bmdFbmQ7CisgICAgICAgICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggKz0gbWFyZ2luQm9yZGVy
QW5kUGFkZGluZ0VuZDsKICAgICAgICAgfQogICAgIH07CiAgICAgYXBwZW5kTGluZVNwYW5uaW5n
SW5saW5lQm94ZXMoKTsKQEAgLTI2OSw3ICsyNzYsNyBAQCB2b2lkIExpbmU6OmFwcGVuZElubGlu
ZUJveFN0YXJ0KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxl
JgogewogICAgIC8vIFRoaXMgaXMgcmVhbGx5IGp1c3QgYSBwbGFjZWhvbGRlciB0byBtYXJrIHRo
ZSBzdGFydCBvZiB0aGUgaW5saW5lIGJveCA8c3Bhbj4uCiAgICAgKyttX25vblNwYW5uaW5nSW5s
aW5lTGV2ZWxCb3hDb3VudDsKLSAgICBhcHBlbmROb25CcmVha2FibGVTcGFjZShpbmxpbmVJdGVt
LCBzdHlsZSwgY29udGVudExvZ2ljYWxSaWdodCgpLCBsb2dpY2FsV2lkdGgpOworICAgIGFwcGVu
ZE5vbkJyZWFrYWJsZVNwYWNlKGlubGluZUl0ZW0sIHN0eWxlLCBsYXN0UnVuTG9naWNhbFJpZ2h0
KCksIGxvZ2ljYWxXaWR0aCk7CiB9CiAKIHZvaWQgTGluZTo6YXBwZW5kSW5saW5lQm94RW5kKGNv
bnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5s
aW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCkBAIC0yODAsMTAgKzI4NywxOCBAQCB2b2lkIExp
bmU6OmFwcGVuZElubGluZUJveEVuZChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25z
dCBSZW5kZXJTdHlsZSYgcwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2NvbnRlbnRM
b2dpY2FsV2lkdGggLT0gbV90cmltbWFibGVUcmFpbGluZ0NvbnRlbnQucmVtb3ZlUGFydGlhbGx5
VHJpbW1hYmxlQ29udGVudCgpOwogICAgIH07CisgICAgYXV0byByZW1vdmVGcm9tTGluZVNwYW5u
aW5nSW5saW5lQm94TGlzdElmQXBwbGljYWJsZSA9IFsmXSB7CisgICAgICAgIEFTU0VSVCghbV9s
aW5lU3Bhbm5pbmdJbmxpbmVCb3hSdW5FbmRzLmNvbnRhaW5zKCZpbmxpbmVJdGVtLmxheW91dEJv
eCgpKSB8fCBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMuZ2V0KCZpbmxpbmVJdGVtLmxh
eW91dEJveCgpKSA9PSBsb2dpY2FsV2lkdGgpOworICAgICAgICBhdXRvIGlubGluZUJveEVuZCA9
IG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcy5yZW1vdmUoJmlubGluZUl0ZW0ubGF5b3V0
Qm94KCkpOworICAgICAgICAvLyBUaGlzIGlubGluZSBib3ggZW5kIG5vdyBjb250cmlidXRlcyB0
byB0aGUgbGluZSBjb250ZW50IHdpZHRoIGluIHRoZSByZWd1bGFyIHdheS4KKyAgICAgICAgbV9j
b250ZW50TG9naWNhbFdpZHRoIC09IGlubGluZUJveEVuZDsKKyAgICAgICAgbV9saW5lU3Bhbm5p
bmdJbmxpbmVCb3hSdW5FbmRXaWR0aCAtPSBpbmxpbmVCb3hFbmQ7CisgICAgfTsKICAgICAvLyBQ
cmV2ZW50IHRyYWlsaW5nIGxldHRlci1zcGFjaW5nIGZyb20gc3BpbGxpbmcgb3V0IG9mIHRoZSBp
bmxpbmUgYm94LgogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdGV4dC0zLyNs
ZXR0ZXItc3BhY2luZy1wcm9wZXJ0eSBTZWUgZXhhbXBsZSAyMS4KICAgICByZW1vdmVUcmFpbGlu
Z0xldHRlclNwYWNpbmcoKTsKLSAgICBhcHBlbmROb25CcmVha2FibGVTcGFjZShpbmxpbmVJdGVt
LCBzdHlsZSwgY29udGVudExvZ2ljYWxSaWdodCgpLCBsb2dpY2FsV2lkdGgpOworICAgIHJlbW92
ZUZyb21MaW5lU3Bhbm5pbmdJbmxpbmVCb3hMaXN0SWZBcHBsaWNhYmxlKCk7CisgICAgYXBwZW5k
Tm9uQnJlYWthYmxlU3BhY2UoaW5saW5lSXRlbSwgc3R5bGUsIGxhc3RSdW5Mb2dpY2FsUmlnaHQo
KSwgbG9naWNhbFdpZHRoKTsKIH0KIAogdm9pZCBMaW5lOjphcHBlbmRUZXh0Q29udGVudChjb25z
dCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCkBAIC0zMzAsNyArMzQ1LDcgQEAgdm9p
ZCBMaW5lOjphcHBlbmRUZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4
dEl0ZW0sIGNvbnN0IFJlbmRlclMKICAgICBhdXRvIG9sZENvbnRlbnRMb2dpY2FsV2lkdGggPSBj
b250ZW50TG9naWNhbFdpZHRoKCk7CiAgICAgaWYgKG5lZWRzTmV3UnVuKSB7CiAgICAgICAgIC8v
IE5vdGUsIG5lZ2F0aXZlIHdvcmRzIHNwYWNpbmcgbWF5IGNhdXNlIGdseXBoIG92ZXJsYXAuCi0g
ICAgICAgIGF1dG8gcnVuTG9naWNhbExlZnQgPSBjb250ZW50TG9naWNhbFJpZ2h0KCkgKyAoaW5s
aW5lVGV4dEl0ZW0uaXNXb3JkU2VwYXJhdG9yKCkgPyBzdHlsZS5mb250Q2FzY2FkZSgpLndvcmRT
cGFjaW5nKCkgOiAwLjBmKTsKKyAgICAgICAgYXV0byBydW5Mb2dpY2FsTGVmdCA9IGxhc3RSdW5M
b2dpY2FsUmlnaHQoKSArIChpbmxpbmVUZXh0SXRlbS5pc1dvcmRTZXBhcmF0b3IoKSA/IHN0eWxl
LmZvbnRDYXNjYWRlKCkud29yZFNwYWNpbmcoKSA6IDAuMGYpOwogICAgICAgICBtX3J1bnMuYXBw
ZW5kKHsgaW5saW5lVGV4dEl0ZW0sIHN0eWxlLCBydW5Mb2dpY2FsTGVmdCwgbG9naWNhbFdpZHRo
IH0pOwogICAgICAgICBtX2NvbnRlbnRMb2dpY2FsV2lkdGggPSBzdGQ6Om1heChvbGRDb250ZW50
TG9naWNhbFdpZHRoLCBydW5Mb2dpY2FsTGVmdCArIGxvZ2ljYWxXaWR0aCk7CiAgICAgfSBlbHNl
IHsKQEAgLTM2NywxNCArMzgyLDE0IEBAIHZvaWQgTGluZTo6YXBwZW5kTm9uUmVwbGFjZWRJbmxp
bmVMZXZlbEJveChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSCiAgICAgKytt
X25vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hDb3VudDsKICAgICBhdXRvIG1hcmdpblN0YXJ0ID0g
Zm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVJdGVtLmxheW91dEJveCgp
KS5tYXJnaW5TdGFydCgpOwogICAgIGlmIChtYXJnaW5TdGFydCA+PSAwKSB7Ci0gICAgICAgIG1f
cnVucy5hcHBlbmQoeyBpbmxpbmVJdGVtLCBzdHlsZSwgY29udGVudExvZ2ljYWxSaWdodCgpLCBt
YXJnaW5Cb3hMb2dpY2FsV2lkdGggfSk7CisgICAgICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVJ
dGVtLCBzdHlsZSwgbGFzdFJ1bkxvZ2ljYWxSaWdodCgpLCBtYXJnaW5Cb3hMb2dpY2FsV2lkdGgg
fSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gTmVnYXRpdmUgbWFyZ2luLXN0YXJ0
IHB1bGxzIHRoZSBjb250ZW50IHRvIHRoZSBsb2dpY2FsIGxlZnQgZGlyZWN0aW9uLgogICAgIC8v
IE5lZ2F0aXZlIG1hcmdpbiBhbHNvIHNxdWVlemVzIHRoZSBtYXJnaW4gYm94LCB3ZSBuZWVkIHRv
IHN0cmV0Y2ggaXQgdG8gbWFrZSBzdXJlIHRoZSBzdWJzZXF1ZW50IGNvbnRlbnQgd29uJ3Qgb3Zl
cmxhcC4KICAgICAvLyBlLmcuIDxpbWcgc3R5bGU9IndpZHRoOiAxMDBweDsgbWFyZ2luLWxlZnQ6
IC0xMDBweDsiPiBwdWxscyB0aGUgcmVwbGFjZWQgYm94IHRvIC0xMDBweCB3aXRoIHRoZSBtYXJn
aW4gYm94IHdpZHRoIG9mIDBweC4KICAgICAvLyBJbnN0ZWFkIHdlIG5lZWQgdG8gcG9zaXRpb24g
aXQgYXQgLTEwMHB4IGFuZCBzaXplIGl0IHRvIDEwMHB4IHNvIHRoZSBzdWJzZXF1ZW50IGNvbnRl
bnQgc3RhcnRzIGF0IDBweC4gCi0gICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUl0ZW0sIHN0eWxl
LCBjb250ZW50TG9naWNhbFJpZ2h0KCkgKyBtYXJnaW5TdGFydCwgbWFyZ2luQm94TG9naWNhbFdp
ZHRoIC0gbWFyZ2luU3RhcnQgfSk7CisgICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUl0ZW0sIHN0
eWxlLCBsYXN0UnVuTG9naWNhbFJpZ2h0KCkgKyBtYXJnaW5TdGFydCwgbWFyZ2luQm94TG9naWNh
bFdpZHRoIC0gbWFyZ2luU3RhcnQgfSk7CiB9CiAKIHZvaWQgTGluZTo6YXBwZW5kUmVwbGFjZWRJ
bmxpbmVMZXZlbEJveChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbWFyZ2luQm94TG9naWNhbFdpZHRoKQpAQCAt
Mzg5LDE2ICs0MDQsMTYgQEAgdm9pZCBMaW5lOjphcHBlbmRMaW5lQnJlYWsoY29uc3QgSW5saW5l
SXRlbSYgaW5saW5lSXRlbSkKICAgICBtX3RyYWlsaW5nU29mdEh5cGhlbldpZHRoID0geyB9Owog
ICAgIGlmIChpbmxpbmVJdGVtLmlzSGFyZExpbmVCcmVhaygpKSB7CiAgICAgICAgICsrbV9ub25T
cGFubmluZ0lubGluZUxldmVsQm94Q291bnQ7Ci0gICAgICAgIHJldHVybiBtX3J1bnMuYXBwZW5k
KHsgaW5saW5lSXRlbSwgY29udGVudExvZ2ljYWxSaWdodCgpIH0pOworICAgICAgICByZXR1cm4g
bV9ydW5zLmFwcGVuZCh7IGlubGluZUl0ZW0sIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSB9KTsKICAg
ICB9CiAgICAgLy8gU29mdCBsaW5lIGJyZWFrcyAocHJlc2VydmVkIG5ldyBsaW5lIGNoYXJhY3Rl
cnMpIHJlcXVpcmUgaW5saW5lIHRleHQgYm94ZXMgZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucy4K
ICAgICBBU1NFUlQoaW5saW5lSXRlbS5pc1NvZnRMaW5lQnJlYWsoKSk7Ci0gICAgbV9ydW5zLmFw
cGVuZCh7IGRvd25jYXN0PElubGluZVNvZnRMaW5lQnJlYWtJdGVtPihpbmxpbmVJdGVtKSwgY29u
dGVudExvZ2ljYWxSaWdodCgpIH0pOworICAgIG1fcnVucy5hcHBlbmQoeyBkb3duY2FzdDxJbmxp
bmVTb2Z0TGluZUJyZWFrSXRlbT4oaW5saW5lSXRlbSksIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSB9
KTsKIH0KIAogdm9pZCBMaW5lOjphcHBlbmRXb3JkQnJlYWtPcHBvcnR1bml0eShjb25zdCBJbmxp
bmVJdGVtJiBpbmxpbmVJdGVtKQogewotICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVJdGVtLCBj
b250ZW50TG9naWNhbFJpZ2h0KCkgfSk7CisgICAgbV9ydW5zLmFwcGVuZCh7IGlubGluZUl0ZW0s
IGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSB9KTsKIH0KIAogdm9pZCBMaW5lOjphZGRUcmFpbGluZ0h5
cGhlbihJbmxpbmVMYXlvdXRVbml0IGh5cGhlbkxvZ2ljYWxXaWR0aCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmUuaAppbmRleCBiZTE4NjY5NWFkYzQuLjQ5N2E2YjhjNTA2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUxpbmUuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNDb250ZW50
KCkgY29uc3QgeyByZXR1cm4gIW1fcnVucy5pc0VtcHR5KCkgJiYgIW1fcnVucy5sYXN0KCkuaXNM
aW5lU3Bhbm5pbmdJbmxpbmVCb3hTdGFydCgpOyB9CiAKICAgICBJbmxpbmVMYXlvdXRVbml0IGNv
bnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRMb2dpY2FsV2lkdGg7
IH0KLSAgICBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJl
dHVybiBtX3J1bnMuaXNFbXB0eSgpID8gMC4wZiA6IG1fcnVucy5sYXN0KCkubG9naWNhbFJpZ2h0
KCk7IH0KKyAgICBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsUmlnaHQoKSBjb25zdCB7
IHJldHVybiBsYXN0UnVuTG9naWNhbFJpZ2h0KCkgKyBtX2xpbmVTcGFubmluZ0lubGluZUJveFJ1
bkVuZFdpZHRoOyB9CiAgICAgc2l6ZV90IG5vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hDb3VudCgp
IGNvbnN0IHsgcmV0dXJuIG1fbm9uU3Bhbm5pbmdJbmxpbmVMZXZlbEJveENvdW50OyB9CiAKICAg
ICBJbmxpbmVMYXlvdXRVbml0IHRyaW1tYWJsZVRyYWlsaW5nV2lkdGgoKSBjb25zdCB7IHJldHVy
biBtX3RyaW1tYWJsZVRyYWlsaW5nQ29udGVudC53aWR0aCgpOyB9CkBAIC0xNTYsOCArMTU2LDEy
IEBAIHB1YmxpYzoKICAgICB9OwogICAgIHVzaW5nIFJ1bkxpc3QgPSBWZWN0b3I8UnVuLCAxMD47
CiAgICAgY29uc3QgUnVuTGlzdCYgcnVucygpIGNvbnN0IHsgcmV0dXJuIG1fcnVuczsgfQorICAg
IHVzaW5nIExpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMgPSBIYXNoTWFwPGNvbnN0IEJveCos
IElubGluZUxheW91dFVuaXQ+OworICAgIGNvbnN0IExpbmVTcGFubmluZ0lubGluZUJveFJ1bkVu
ZHMmIGxpbmVTcGFubmluZ0lubGluZUJveFJ1bkVuZHMoKSBjb25zdCB7IHJldHVybiBtX2xpbmVT
cGFubmluZ0lubGluZUJveFJ1bkVuZHM7IH0KIAogcHJpdmF0ZToKKyAgICBJbmxpbmVMYXlvdXRV
bml0IGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3J1bnMuaXNFbXB0eSgp
ID8gMC4wZiA6IG1fcnVucy5sYXN0KCkubG9naWNhbFJpZ2h0KCk7IH0KKwogICAgIHZvaWQgYXBw
ZW5kTm9uQnJlYWthYmxlU3BhY2UoY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IFJlbmRlclN0eWxl
JiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
V2lkdGgpOwogICAgIHZvaWQgYXBwZW5kVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4dEl0ZW0m
LCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKTsKICAg
ICB2b2lkIGFwcGVuZE5vblJlcGxhY2VkSW5saW5lTGV2ZWxCb3goY29uc3QgSW5saW5lSXRlbSYs
IGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBtYXJnaW5Cb3hMb2dpY2FsV2lk
dGgpOwpAQCAtMjE2LDYgKzIyMCw4IEBAIHByaXZhdGU6CiAgICAgSW5saW5lTGF5b3V0VW5pdCBt
X2NvbnRlbnRMb2dpY2FsV2lkdGggeyAwIH07CiAgICAgc2l6ZV90IG1fbm9uU3Bhbm5pbmdJbmxp
bmVMZXZlbEJveENvdW50IHsgMCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5p
dD4gbV90cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCB7IDAgfTsKKyAgICBMaW5lU3Bhbm5pbmdJbmxp
bmVCb3hSdW5FbmRzIG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kczsKKyAgICBJbmxpbmVM
YXlvdXRVbml0IG1fbGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kV2lkdGggeyAwIH07CiB9Owog
CiBpbmxpbmUgdm9pZCBMaW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlc2V0KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCAyMzQ5MzQ2ZmI5N2Yu
LjM1M2QzZjBjMmI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNw
cApAQCAtNzM0LDcgKzczNCwxNiBAQCBMaW5lQnVpbGRlcjo6UmVzdWx0IExpbmVCdWlsZGVyOjpo
YW5kbGVJbmxpbmVDb250ZW50KElubGluZUNvbnRlbnRCcmVha2VyJiBpbmxpbgogICAgICAgICBy
ZXR1cm4gYWRqdXN0ZWRMaW5lTG9naWNhbFJlY3Q7CiAgICAgfSgpOwogICAgIGF1dG8gYXZhaWxh
YmxlV2lkdGggPSBbJl0gewotICAgICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoRm9yQ29udGVudCA9
IGxpbmVMb2dpY2FsUmVjdEZvckNhbmRpZGF0ZUNvbnRlbnQud2lkdGgoKSAtIG1fbGluZS5jb250
ZW50TG9naWNhbFJpZ2h0KCk7CisgICAgICAgIGF1dG8gY29udGVudExvZ2ljYWxSaWdodCA9IG1f
bGluZS5jb250ZW50TG9naWNhbFJpZ2h0KCk7CisgICAgICAgIGF1dG8mIGxpbmVTcGFubmluZ0lu
bGluZUJveEVuZHMgPSBtX2xpbmUubGluZVNwYW5uaW5nSW5saW5lQm94UnVuRW5kcygpOworICAg
ICAgICBpZiAoIWxpbmVTcGFubmluZ0lubGluZUJveEVuZHMuaXNFbXB0eSgpICYmIGlubGluZUNv
bnRlbnQuaGFzSW5saW5lTGV2ZWxCb3goKSkgeworICAgICAgICAgICAgLy8gV2UgbWF5IHRyeSB0
byBjb21taXQgYSBsaW5lIHNwYW5uaW5nIGlubGluZSBib3ggZW5kIGhlcmUuIExldCdzIG5vdCBh
Y2NvdW50IGZvciBpdHMgbG9naWNhbCB3aWR0aCB0d2ljZS4KKyAgICAgICAgICAgIGZvciAoYXV0
byYgcnVuIDogY29udGludW91c0lubGluZUNvbnRlbnQucnVucygpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHJ1bi5pbmxpbmVJdGVtLmlzSW5saW5lQm94RW5kKCkpCisgICAgICAgICAgICAgICAg
ICAgIGNvbnRlbnRMb2dpY2FsUmlnaHQgLT0gbGluZVNwYW5uaW5nSW5saW5lQm94RW5kcy5nZXQo
JnJ1bi5pbmxpbmVJdGVtLmxheW91dEJveCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoRm9yQ29udGVudCA9IGxpbmVMb2dpY2FsUmVjdEZv
ckNhbmRpZGF0ZUNvbnRlbnQud2lkdGgoKSAtIGNvbnRlbnRMb2dpY2FsUmlnaHQ7CiAgICAgICAg
IHJldHVybiBzdGQ6OmlzbmFuKGF2YWlsYWJsZVdpZHRoRm9yQ29udGVudCkgPyBtYXhJbmxpbmVM
YXlvdXRVbml0KCkgOiBhdmFpbGFibGVXaWR0aEZvckNvbnRlbnQ7CiAgICAgfSgpOwogICAgIC8v
IFdoaWxlIHRoZSBmbG9hdHMgYXJlIG5vdCBjb25zaWRlcmVkIHRvIGJlIG9uIHRoZSBsaW5lLCB0
aGV5IG1ha2UgdGhlIGxpbmUgY29udGVudGZ1bCBmb3IgbGluZSBicmVha2luZy4K
</data>

          </attachment>
      

    </bug>

</bugzilla>