<?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>298830</bug_id>
          
          <creation_ts>2025-09-13 19:31:41 -0700</creation_ts>
          <short_desc>[text shaping] Add shaping-boundary/start/end/in-between bits to line run and display box</short_desc>
          <delta_ts>2025-09-17 16:55:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>6148</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2142817</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-09-13 19:31:41 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2142818</commentid>
    <comment_count>1</comment_count>
      <attachid>476726</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-09-13 19:43:42 -0700</bug_when>
    <thetext>Created attachment 476726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2143015</commentid>
    <comment_count>2</comment_count>
      <attachid>476737</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-09-15 10:19:21 -0700</bug_when>
    <thetext>Created attachment 476737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2143281</commentid>
    <comment_count>3</comment_count>
      <attachid>476753</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-09-16 05:01:53 -0700</bug_when>
    <thetext>Created attachment 476753
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2143299</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-09-16 07:04:49 -0700</bug_when>
    <thetext>Committed 300028@main (13855c61b93f): &lt;https://commits.webkit.org/300028@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 476753.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2143300</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-09-16 07:05:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/160690166&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476726</attachid>
            <date>2025-09-13 19:43:42 -0700</date>
            <delta_ts>2025-09-15 10:19:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-298830-20250913194341.patch</filename>
            <type>text/plain</type>
            <size>14367</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA4OWQ3MDkwZjQ1NzJkYzE4YzkzYmM5ZGI4MzJmY2VlOTE2MmFiNzcyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMTMgU2VwIDIwMjUgMTk6MzE6NTUgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbdGV4dCBz
aGFwaW5nXSBBZGQgc2hhcGluZy1ib3VuZGFyeS9zdGFydC9lbmQvaW4tYmV0d2VlbiBiaXRzCiB0
byBsaW5lIHJ1biBhbmQgZGlzcGxheSBib3ggaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI5ODgzMAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpUaGlzIGlzIGlu
IHByZXBhcmF0aW9uIGZvciBhZGRpbmcgdGV4dCBzaGFwaW5nIHN1cHBvcnQuCgpMaW5lIGJ1aWxk
ZXIgd2lsbCBzZXQgdGhlc2UgYml0cyBvbiBydW5zIGFuZCBUZXh0Qm94UGFpbnRlciB3aWxsIGNv
bnN1bHQgdGhlIGRpc3BsYXkgYm94IGlmIGl0Cm5lZWRzIHNwZWNpYWwgdHlwZSBvZiBwYWludGlu
Zy4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZS5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZFRleHQpOgooV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjpSdW46OlJ1bik6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6
ZXhwYW5kKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmg6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5nQm91
bmRhcnlTdGFydCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5n
Qm91bmRhcnlFbmQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzQmV0d2Vl
blNoYXBpbmdCb3VuZGFyaWVzIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpp
c1NoYXBpbmdCb3VuZGFyeSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0
OjpMaW5lQnVpbGRlcjo6Y29tbWl0Q2FuaWRhdGVDb250ZW50KToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3gu
aDoKKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6VGV4dDo6aXNBdFNoYXBpbmdCb3VuZGFy
eVN0YXJ0IGNvbnN0KToKKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6VGV4dDo6aXNBdFNo
YXBpbmdCb3VuZGFyeUVuZCBjb25zdCk6CihXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OlRl
eHQ6OmlzQmV0d2VlblNoYXBpbmdCb3VuZGFyaWVzIGNvbnN0KToKKFdlYkNvcmU6OklubGluZURp
c3BsYXk6OkJveDo6VGV4dDo6VGV4dCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3Bw
OgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRl
eHREaXNwbGF5Qm94KToKLS0tCiAuLi4vbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZS5jcHAgICB8IDEwICsrKysrKystLS0KIC4uLi9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmggICAgIHwgMTAgKysrKysrKystLQogLi4uL2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwICAgfCAgNCArKy0tCiAu
Li4vaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oICAgICAgICAgICAgICAgICB8IDEw
ICsrKysrKysrLS0KIC4uLi9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXIuY3BwICAgIHwgMTEgKysrKysrKysrKy0KIDUgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9u
cygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcAppbmRleCBm
MDU4MjcwNmY5NTkuLjkxZWFhMDRhNzU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAK
QEAgLTMzNCw3ICszMzQsNyBAQCB2b2lkIExpbmU6OmFwcGVuZElubGluZUJveEVuZChjb25zdCBJ
bmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgcwogICAgIH0KIH0KIAot
dm9pZCBMaW5lOjphcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRl
bSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0
aCkKK3ZvaWQgTGluZTo6YXBwZW5kVGV4dChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4
dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
V2lkdGgsIHN0ZDo6b3B0aW9uYWw8TGluZTo6U2hhcGluZ0JvdW5kYXJ5PiBzaGFwaW5nQm91bmRh
cnkpCiB7CiAgICAgYXV0byB3aWxsQ29sbGFwc2VDb21wbGV0ZWx5ID0gWyZdIHsKICAgICAgICAg
aWYgKGlubGluZVRleHRJdGVtLmlzRW1wdHkoKSkgewpAQCAtMzg3LDYgKzM4Nyw4IEBAIHZvaWQg
TGluZTo6YXBwZW5kVGV4dChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNv
bnN0IFJlbmRlclN0eWxlJiBzCiAgICAgICAgICAgICAvLyBXZSBtYXkgZW5kIHVwIHdpdGggbWlz
bWF0Y2hpbmcgY29tcHV0ZWQgd2lkdGhzIGFuZCBtaXNwbGFjZWQgZ2x5cGhzIGF0IHBhaW50IHRp
bWUgLXVubGVzcyB3ZSBrZWVwIGRlZGljYXRlZCBydW5zIHdpdGggZXhwbGljaXQgcG9zaXRpb25z
LgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKHNoYXBp
bmdCb3VuZGFyeSB8fCBsYXN0UnVuLmlzU2hhcGluZ0JvdW5kYXJ5KCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0oKTsKICAgICBhdXRvIG9s
ZENvbnRlbnRMb2dpY2FsV2lkdGggPSBjb250ZW50TG9naWNhbFdpZHRoKCk7CkBAIC0zOTksNyAr
NDAxLDcgQEAgdm9pZCBMaW5lOjphcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxp
bmVUZXh0SXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICAgICAgICAgICAgICByZXR1cm4g
LVRleHRVdGlsOjpoYW5nYWJsZVB1bmN0dWF0aW9uU3RhcnRXaWR0aChpbmxpbmVUZXh0SXRlbSwg
c3R5bGUpOwogICAgICAgICAgICAgcmV0dXJuIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSArIChpbmxp
bmVUZXh0SXRlbS5pc1dvcmRTZXBhcmF0b3IoKSA/IHN0eWxlLmZvbnRDYXNjYWRlKCkud29yZFNw
YWNpbmcoKSA6IDAuMGYpOwogICAgICAgICB9KCk7Ci0gICAgICAgIG1fcnVucy5hcHBlbmQoeyBp
bmxpbmVUZXh0SXRlbSwgc3R5bGUsIHJ1bkxvZ2ljYWxMZWZ0LCBsb2dpY2FsV2lkdGggfSk7Cisg
ICAgICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVUZXh0SXRlbSwgc3R5bGUsIHJ1bkxvZ2ljYWxM
ZWZ0LCBsb2dpY2FsV2lkdGgsIHsgfSwgc2hhcGluZ0JvdW5kYXJ5IH0pOwogICAgICAgICAvLyBO
b3RlIHRoYXQgdGhlIF9jb250ZW50XyBsb2dpY2FsIHJpZ2h0IG1heSBiZSBsYXJnZXIgdGhhbiB0
aGUgX3J1bl8gbG9naWNhbCByaWdodC4KICAgICAgICAgY29udGVudExvZ2ljYWxSaWdodCA9IHJ1
bkxvZ2ljYWxMZWZ0ICsgbG9naWNhbFdpZHRoOwogICAgIH0gZWxzZSB7CkBAIC03ODYsMTMgKzc4
OCwxNCBAQCBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbSYgc29m
dExpbmVCcmVha0l0ZW0sIGNvbnN0IFJlbmRlclN0eQogewogfQogCi1MaW5lOjpSdW46OlJ1bihj
b25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBsb2dp
Y2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3RtZW50KQorTGluZTo6
UnVuOjpSdW4oY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGluZUxheW91
dFVuaXQgbG9naWNhbFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IHRleHRTcGFjaW5nQWRqdXN0bWVu
dCwgc3RkOjpvcHRpb25hbDxMaW5lOjpTaGFwaW5nQm91bmRhcnk+IHNoYXBpbmdCb3VuZGFyeSkK
ICAgICA6IG1fdHlwZShpbmxpbmVUZXh0SXRlbS5pc1dvcmRTZXBhcmF0b3IoKSA/IFR5cGU6Oldv
cmRTZXBhcmF0b3IgOiBpbmxpbmVUZXh0SXRlbS5pc1F1aXJrTm9uQnJlYWtpbmdTcGFjZSgpID8g
VHlwZTo6Tm9uQnJlYWtpbmdTcGFjZSA6IFR5cGU6OlRleHQpCiAgICAgLCBtX2xheW91dEJveCgm
aW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94KCkpCiAgICAgLCBtX3N0eWxlKHN0eWxlKQogICAgICwg
bV9sb2dpY2FsTGVmdChsb2dpY2FsTGVmdCkKICAgICAsIG1fbG9naWNhbFdpZHRoKGxvZ2ljYWxX
aWR0aCkKICAgICAsIG1fYmlkaUxldmVsKGlubGluZVRleHRJdGVtLmJpZGlMZXZlbCgpKQorICAg
ICwgbV9zaGFwaW5nQm91bmRhcnkoc2hhcGluZ0JvdW5kYXJ5KQogICAgICwgbV90ZXh0U3BhY2lu
Z0FkanVzdG1lbnQodGV4dFNwYWNpbmdBZGp1c3RtZW50KQogewogICAgIGF1dG8gbGVuZ3RoID0g
aW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CkBAIC04MTEsNiArODE0LDcgQEAgdm9pZCBMaW5lOjpS
dW46OmV4cGFuZChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIElubGluZUxh
eW91dFVuaXQgbG8KICAgICBBU1NFUlQoaXNUZXh0KCkgJiYgaW5saW5lVGV4dEl0ZW0uaXNUZXh0
KCkpOwogICAgIEFTU0VSVChtX2xheW91dEJveCA9PSAmaW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94
KCkpOwogICAgIEFTU0VSVChtX2JpZGlMZXZlbCA9PSBpbmxpbmVUZXh0SXRlbS5iaWRpTGV2ZWwo
KSk7CisgICAgQVNTRVJUKCFtX3NoYXBpbmdCb3VuZGFyeSB8fCAqbV9zaGFwaW5nQm91bmRhcnkg
IT0gU2hhcGluZ0JvdW5kYXJ5OjpFbmQpOwogCiAgICAgbV9sb2dpY2FsV2lkdGggKz0gbG9naWNh
bFdpZHRoOwogICAgIGF1dG8gd2hpdGVzcGFjZVR5cGUgPSB0cmFpbGluZ1doaXRlc3BhY2VUeXBl
KGlubGluZVRleHRJdGVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAppbmRleCA5ZDAwNDg0MjI1
NGQuLjY2ODlmYjc2MzU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaApAQCAtNDksNyArNDks
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFZlY3RvcjxJbmxpbmVJdGVt
LCAxPiYgbGluZVNwYW5uaW5nSW5saW5lQm94ZXMsIGJvb2wgaXNGaXJzdEZvcm1hdHRlZExpbmUp
OwogCiAgICAgZW51bSBjbGFzcyBTaGFwaW5nQm91bmRhcnkgOiB1aW50OF90IHsgU3RhcnQsIE1p
ZGRsZSwgRW5kIH07Ci0gICAgdm9pZCBhcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCk7CisgICAg
dm9pZCBhcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUm
LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgc3RkOjpvcHRpb25hbDxTaGFwaW5nQm91
bmRhcnk+KTsKICAgICB2b2lkIGFwcGVuZFRleHRGYXN0KGNvbnN0IElubGluZVRleHRJdGVtJiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCk7IC8vIFJl
c2VydmVkIGZvciBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyCiAgICAgdm9pZCBhcHBlbmRBdG9t
aWNJbmxpbmVCb3goY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5l
TGF5b3V0VW5pdCBtYXJnaW5Cb3hMb2dpY2FsV2lkdGgpOwogICAgIHZvaWQgYXBwZW5kSW5saW5l
Qm94U3RhcnQoY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3Rt
ZW50KTsKQEAgLTE0OSwxMCArMTQ5LDE1IEBAIHB1YmxpYzoKIAogICAgICAgICBVQmlEaUxldmVs
IGJpZGlMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fYmlkaUxldmVsOyB9CiAKKyAgICAgICAgYm9v
bCBpc1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkgY29uc3QgeyByZXR1cm4gaXNTaGFwaW5nQm91bmRh
cnkoKSAmJiAqbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpTdGFy
dDsgfQorICAgICAgICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5RW5kKCkgY29uc3QgeyByZXR1cm4g
aXNTaGFwaW5nQm91bmRhcnkoKSAmJiAqbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGlu
Z0JvdW5kYXJ5OjpFbmQ7IH0KKyAgICAgICAgYm9vbCBpc0JldHdlZW5TaGFwaW5nQm91bmRhcmll
cygpIGNvbnN0IHsgcmV0dXJuIGlzU2hhcGluZ0JvdW5kYXJ5KCkgJiYgKm1fc2hhcGluZ0JvdW5k
YXJ5ID09IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6TWlkZGxlOyB9CisgICAgICAgIGJvb2wgaXNT
aGFwaW5nQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeS5oYXNfdmFs
dWUoKTsgfQorCiAgICAgICAgIC8vIEZJWE1FOiBNYXliZSBhZGQgY3JlYXRlIGZ1bmN0aW9ucyBp
bnRlYWQ/CiAgICAgICAgIFJ1bihjb25zdCBJbmxpbmVJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUm
LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgUnVuKGNvbnN0IElubGlu
ZUl0ZW0mIGxpbmVTcGFubmluZ0lubGluZUJveEl0ZW0sIElubGluZUxheW91dFVuaXQgbG9naWNh
bExlZnQsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IHRl
eHRTcGFjaW5nQWRqdXN0bWVudCA9IDAuZik7Ci0gICAgICAgIFJ1bihjb25zdCBJbmxpbmVUZXh0
SXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwg
SW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNp
bmdBZGp1c3RtZW50ID0gMC5mKTsKKyAgICAgICAgUnVuKGNvbnN0IElubGluZVRleHRJdGVtJiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVM
YXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0U3BhY2luZ0FkanVz
dG1lbnQgPSAwLmYsIHN0ZDo6b3B0aW9uYWw8TGluZTo6U2hhcGluZ0JvdW5kYXJ5PiA9IHN0ZDo6
bnVsbG9wdCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgTGluZTsKQEAg
LTIwMSw2ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VHJhaWxpbmdX
aGl0ZXNwYWNlPiBtX3RyYWlsaW5nV2hpdGVzcGFjZSB7IH07CiAgICAgICAgIHN0ZDo6b3B0aW9u
YWw8c2l6ZV90PiBtX2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0IHsgfTsKICAgICAgICAg
c3RkOjpvcHRpb25hbDxUZXh0PiBtX3RleHRDb250ZW50OworICAgICAgICBzdGQ6Om9wdGlvbmFs
PExpbmU6OlNoYXBpbmdCb3VuZGFyeT4gbV9zaGFwaW5nQm91bmRhcnk7CiAgICAgICAgIElubGlu
ZUxheW91dFVuaXQgbV90ZXh0U3BhY2luZ0FkanVzdG1lbnQgeyAwIH07CiAgICAgfTsKICAgICB1
c2luZyBSdW5MaXN0ID0gVmVjdG9yPFJ1biwgMTA+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZUJ1aWxkZXIuY3BwCmluZGV4IGQyMmIzYjI1OTFjOS4uZjU4ZTcyZGY0MWNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC0xMjMyLDcgKzEyMzIsNyBA
QCB2b2lkIExpbmVCdWlsZGVyOjpjb21taXRDYW5pZGF0ZUNvbnRlbnQoY29uc3QgTGluZUNhbmRp
ZGF0ZSYgbGluZUNhbmRpZGF0ZSwgc3RkOgogICAgICAgICAgICAgbV9saW5lLnNldENvbnRlbnRO
ZWVkc0JpZGlSZW9yZGVyaW5nKCk7CiAKICAgICAgICAgaWYgKGF1dG8qIGlubGluZVRleHRJdGVt
ID0gZHluYW1pY0Rvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKSkgewotICAgICAg
ICAgICAgbV9saW5lLmFwcGVuZFRleHQoKmlubGluZVRleHRJdGVtLCBydW4uc3R5bGUsIHJ1bi5j
b250ZW50V2lkdGgoKSk7CisgICAgICAgICAgICBtX2xpbmUuYXBwZW5kVGV4dCgqaW5saW5lVGV4
dEl0ZW0sIHJ1bi5zdHlsZSwgcnVuLmNvbnRlbnRXaWR0aCgpLCB7IH0pOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKQEAgLTEyODYsNyArMTI4Niw3IEBAIHZvaWQgTGluZUJ1aWxk
ZXI6OmNvbW1pdENhbmlkYXRlQ29udGVudChjb25zdCBMaW5lQ2FuZGlkYXRlJiBsaW5lQ2FuZGlk
YXRlLCBzdGQ6CiAgICAgICAgICAgICAvLyBDcmVhdGUgYW5kIGNvbW1pdCBwYXJ0aWFsIHRyYWls
aW5nIGl0ZW0uCiAgICAgICAgICAgICBpZiAoYXV0byogdHJhaWxpbmdJbmxpbmVUZXh0SXRlbSA9
IGR5bmFtaWNEb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4ocnVuc1t0cmFpbGluZ1J1bkluZGV4XS5p
bmxpbmVJdGVtKSkgewogICAgICAgICAgICAgICAgIGF1dG8gcGFydGlhbFRyYWlsaW5nVGV4dEl0
ZW0gPSB0cmFpbGluZ0lubGluZVRleHRJdGVtLT5sZWZ0KHBhcnRpYWxSdW4tPmxlbmd0aCk7Ci0g
ICAgICAgICAgICAgICAgbV9saW5lLmFwcGVuZFRleHQocGFydGlhbFRyYWlsaW5nVGV4dEl0ZW0s
IHRyYWlsaW5nSW5saW5lVGV4dEl0ZW0tPnN0eWxlKCksIHBhcnRpYWxSdW4tPmxvZ2ljYWxXaWR0
aCk7CisgICAgICAgICAgICAgICAgbV9saW5lLmFwcGVuZFRleHQocGFydGlhbFRyYWlsaW5nVGV4
dEl0ZW0sIHRyYWlsaW5nSW5saW5lVGV4dEl0ZW0tPnN0eWxlKCksIHBhcnRpYWxSdW4tPmxvZ2lj
YWxXaWR0aCwgeyB9KTsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxh
eUJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
ZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmgKaW5kZXggMDEzZWI0NGQyZDdkLi5jNDlkMTdhZDg4
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5o
CkBAIC00MiwxMyArNDIsMTcgQEAgc3RydWN0IEJveCB7CiAgICAgc3RydWN0IFRleHQgewogICAg
IHB1YmxpYzoKICAgICAgICAgVGV4dCgpID0gZGVmYXVsdDsKLSAgICAgICAgVGV4dChzaXplX3Qg
cG9zaXRpb24sIHNpemVfdCBsZW5ndGgsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxDb250ZW50LCBT
dHJpbmcgYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIgPSBTdHJpbmcoKSwgYm9vbCBoYXNIeXBoZW4g
PSBmYWxzZSk7CisgICAgICAgIGVudW0gU2hhcGluZ0JvdW5kYXJ5IDogdWludDhfdCB7IFN0YXJ0
LCBJbnNpZGUsIEVuZCwgTm90QXBwbGljYWJsZSB9OworICAgICAgICBUZXh0KHNpemVfdCBwb3Np
dGlvbiwgc2l6ZV90IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbENvbnRlbnQsIFN0cmlu
ZyBhZGp1c3RlZENvbnRlbnRUb1JlbmRlciA9IFN0cmluZygpLCBib29sIGhhc0h5cGhlbiA9IGZh
bHNlLCBTaGFwaW5nQm91bmRhcnkgPSBTaGFwaW5nQm91bmRhcnk6Ok5vdEFwcGxpY2FibGUpOwog
CiAgICAgICAgIHNpemVfdCBzdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnQ7IH0KICAgICAg
ICAgc2l6ZV90IGVuZCgpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0KCkgKyBsZW5ndGgoKTsgfQogICAg
ICAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KICAgICAgICAg
U3RyaW5nVmlldyBvcmlnaW5hbENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBTdHJpbmdWaWV3KG1f
b3JpZ2luYWxDb250ZW50KS5zdWJzdHJpbmcobV9zdGFydCwgbV9sZW5ndGgpOyB9CiAgICAgICAg
IFN0cmluZ1ZpZXcgcmVuZGVyZWRDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hZGp1c3RlZENv
bnRlbnRUb1JlbmRlci5pc051bGwoKSA/IG9yaWdpbmFsQ29udGVudCgpIDogbV9hZGp1c3RlZENv
bnRlbnRUb1JlbmRlcjsgfQorICAgICAgICBib29sIGlzQXRTaGFwaW5nQm91bmRhcnlTdGFydCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2hhcGluZ0JvdW5kYXJ5ID09IFNoYXBpbmdCb3VuZGFyeTo6U3Rh
cnQ7IH0KKyAgICAgICAgYm9vbCBpc0F0U2hhcGluZ0JvdW5kYXJ5RW5kKCkgY29uc3QgeyByZXR1
cm4gbV9zaGFwaW5nQm91bmRhcnkgPT0gU2hhcGluZ0JvdW5kYXJ5OjpFbmQ7IH0KKyAgICAgICAg
Ym9vbCBpc0JldHdlZW5TaGFwaW5nQm91bmRhcmllcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGlu
Z0JvdW5kYXJ5ID09IFNoYXBpbmdCb3VuZGFyeTo6SW5zaWRlOyB9CiAgICAgICAgIGJvb2wgaGFz
SHlwaGVuKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIeXBoZW47IH0KICAgICAgICAgc3RkOjpvcHRp
b25hbDxzaXplX3Q+IHBhcnRpYWxseVZpc2libGVDb250ZW50TGVuZ3RoKCkgY29uc3Q7CiAgICAg
ICAgIHZvaWQgc2V0UGFydGlhbGx5VmlzaWJsZUNvbnRlbnRMZW5ndGgoc2l6ZV90IHRydW5jYXRl
ZExlbmd0aCk7CkBAIC02MSw2ICs2NSw3IEBAIHN0cnVjdCBCb3ggewogCiAgICAgICAgIHVuc2ln
bmVkIG1fc3RhcnQgeyAwIH07CiAgICAgICAgIHVuc2lnbmVkIG1fbGVuZ3RoIHsgMCB9OworICAg
ICAgICBTaGFwaW5nQm91bmRhcnkgbV9zaGFwaW5nQm91bmRhcnkgeyBTaGFwaW5nQm91bmRhcnk6
Ok5vdEFwcGxpY2FibGUgfTsKICAgICAgICAgdW5zaWduZWQgbV9wYXJ0aWFsbHlWaXNpYmxlQ29u
dGVudExlbmd0aCA6IDMwIHsgfTsKICAgICAgICAgYm9vbCBtX2hhc1BhcnRpYWxseVZpc2libGVD
b250ZW50TGVuZ3RoIDogMSB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgbV9oYXNIeXBoZW4gOiAx
IHsgZmFsc2UgfTsKQEAgLTIxMiwxMSArMjE3LDEyIEBAIGlubGluZSBCb3g6On5Cb3goKQogICAg
ICAgICByZW1vdmVCb3hGcm9tR2x5cGhEaXNwbGF5TGlzdENhY2hlKCp0aGlzKTsKIH0KIAotaW5s
aW5lIEJveDo6VGV4dDo6VGV4dChzaXplX3Qgc3RhcnQsIHNpemVfdCBsZW5ndGgsIGNvbnN0IFN0
cmluZyYgb3JpZ2luYWxDb250ZW50LCBTdHJpbmcgYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIsIGJv
b2wgaGFzSHlwaGVuKQoraW5saW5lIEJveDo6VGV4dDo6VGV4dChzaXplX3Qgc3RhcnQsIHNpemVf
dCBsZW5ndGgsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxDb250ZW50LCBTdHJpbmcgYWRqdXN0ZWRD
b250ZW50VG9SZW5kZXIsIGJvb2wgaGFzSHlwaGVuLCBTaGFwaW5nQm91bmRhcnkgc2hhcGluZ0Jv
dW5kYXJ5KQogICAgIDogbV9vcmlnaW5hbENvbnRlbnQob3JpZ2luYWxDb250ZW50KQogICAgICwg
bV9hZGp1c3RlZENvbnRlbnRUb1JlbmRlcihhZGp1c3RlZENvbnRlbnRUb1JlbmRlcikKICAgICAs
IG1fc3RhcnQoc3RhcnQpCiAgICAgLCBtX2xlbmd0aChsZW5ndGgpCisgICAgLCBtX3NoYXBpbmdC
b3VuZGFyeShzaGFwaW5nQm91bmRhcnkpCiAgICAgLCBtX2hhc0h5cGhlbihoYXNIeXBoZW4pCiB7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURp
c3BsYXlDb250ZW50QnVpbGRlci5jcHAKaW5kZXggYzYzY2RiZDQ3YmJhLi40YzFmYWRlMmQxN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURp
c3BsYXlDb250ZW50QnVpbGRlci5jcHAKQEAgLTIzNSw2ICsyMzUsMTUgQEAgdm9pZCBJbmxpbmVE
aXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94KGNvbnN0IExpbmU6OlJ1
biYgbGluZVJ1biwKICAgICBhdXRvIGFkanVzdGVkQ29udGVudFRvUmVuZGVyID0gWyZdIHsKICAg
ICAgICAgcmV0dXJuIHRleHQtPm5lZWRzSHlwaGVuID8gbWFrZVN0cmluZyhTdHJpbmdWaWV3KGNv
bnRlbnQpLnN1YnN0cmluZyh0ZXh0LT5zdGFydCwgdGV4dC0+bGVuZ3RoKSwgc3R5bGUuaHlwaGVu
U3RyaW5nKCkpIDogU3RyaW5nKCk7CiAgICAgfTsKKyAgICBhdXRvIHNoYXBpbmdCb3VuZGFyeSA9
IFsmXSB7CisgICAgICAgIGlmIChsaW5lUnVuLmlzU2hhcGluZ0JvdW5kYXJ5U3RhcnQoKSkKKyAg
ICAgICAgICAgIHJldHVybiBJbmxpbmVEaXNwbGF5OjpCb3g6OlRleHQ6OlNoYXBpbmdCb3VuZGFy
eTo6U3RhcnQ7CisgICAgICAgIGlmIChsaW5lUnVuLmlzU2hhcGluZ0JvdW5kYXJ5RW5kKCkpCisg
ICAgICAgICAgICByZXR1cm4gSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0OjpTaGFwaW5nQm91bmRh
cnk6OkVuZDsKKyAgICAgICAgaWYgKGxpbmVSdW4uaXNCZXR3ZWVuU2hhcGluZ0JvdW5kYXJpZXMo
KSkKKyAgICAgICAgICAgIHJldHVybiBJbmxpbmVEaXNwbGF5OjpCb3g6OlRleHQ6OlNoYXBpbmdC
b3VuZGFyeTo6SW5zaWRlOworICAgICAgICByZXR1cm4gSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0
OjpTaGFwaW5nQm91bmRhcnk6Ok5vdEFwcGxpY2FibGU7CisgICAgfTsKICAgICBib3hlcy5hcHBl
bmQoeyBsaW5lSW5kZXgoKQogICAgICAgICAsIGxpbmVSdW4uaXNXb3JkU2VwYXJhdG9yKCkgPyBJ
bmxpbmVEaXNwbGF5OjpCb3g6OlR5cGU6OldvcmRTZXBhcmF0b3IgOiBJbmxpbmVEaXNwbGF5OjpC
b3g6OlR5cGU6OlRleHQKICAgICAgICAgLCBpbmxpbmVUZXh0Qm94CkBAIC0yNDMsNyArMjUyLDcg
QEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRleHREaXNwbGF5Qm94
KGNvbnN0IExpbmU6OlJ1biYgbGluZVJ1biwKICAgICAgICAgLCBpbmtPdmVyZmxvdwogICAgICAg
ICAsIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkKICAgICAgICAgLCBsaW5lUnVuLmV4cGFuc2lvbigp
Ci0gICAgICAgICwgSW5saW5lRGlzcGxheTo6Qm94OjpUZXh0IHsgdGV4dC0+c3RhcnQsIHRleHQt
Pmxlbmd0aCwgY29udGVudCwgYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIoKSwgdGV4dC0+bmVlZHNI
eXBoZW4gfQorICAgICAgICAsIElubGluZURpc3BsYXk6OkJveDo6VGV4dCB7IHRleHQtPnN0YXJ0
LCB0ZXh0LT5sZW5ndGgsIGNvbnRlbnQsIGFkanVzdGVkQ29udGVudFRvUmVuZGVyKCksIHRleHQt
Pm5lZWRzSHlwaGVuLCBzaGFwaW5nQm91bmRhcnkoKSB9CiAgICAgICAgICwgaXNDb250ZW50ZnVs
CiAgICAgICAgICwgaXNMaW5lRnVsbHlUcnVuY2F0ZWRJbkJsb2NrRGlyZWN0aW9uKCkKICAgICB9
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476737</attachid>
            <date>2025-09-15 10:19:21 -0700</date>
            <delta_ts>2025-09-16 05:01:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-298830-20250915101920.patch</filename>
            <type>text/plain</type>
            <size>14452</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAzNTljOGM0MzNkZWY1NDNiMDkyYTQxZmMzMzBmMDc4OWQwZGQzZmQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IE1vbiwgMTUgU2VwIDIwMjUgMTA6MTc6MjQgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbdGV4dCBz
aGFwaW5nXSBBZGQgc2hhcGluZy1ib3VuZGFyeS9zdGFydC9lbmQvaW4tYmV0d2VlbiBiaXRzCiB0
byBsaW5lIHJ1biBhbmQgZGlzcGxheSBib3ggaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI5ODgzMAoKUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpUaGlzIGlzIGlu
IHByZXBhcmF0aW9uIGZvciBhZGRpbmcgdGV4dCBzaGFwaW5nIHN1cHBvcnQuCgpMaW5lIGJ1aWxk
ZXIgd2lsbCBzZXQgdGhlc2UgYml0cyBvbiBydW5zIGFuZCBUZXh0Qm94UGFpbnRlciB3aWxsIGNv
bnN1bHQgdGhlIGRpc3BsYXkgYm94IGlmIGl0Cm5lZWRzIHNwZWNpYWwgdHlwZSBvZiBwYWludGlu
Zy4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZS5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZFRleHQpOgooV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjpSdW46OlJ1bik6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6
ZXhwYW5kKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmg6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5nQm91
bmRhcnlTdGFydCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5n
Qm91bmRhcnlFbmQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzQmV0d2Vl
blNoYXBpbmdCb3VuZGFyaWVzIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpp
c1NoYXBpbmdCb3VuZGFyeSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0
OjpMaW5lQnVpbGRlcjo6Y29tbWl0Q2FuaWRhdGVDb250ZW50KToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3gu
aDoKKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6VGV4dDo6aXNBdFNoYXBpbmdCb3VuZGFy
eVN0YXJ0IGNvbnN0KToKKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6VGV4dDo6aXNBdFNo
YXBpbmdCb3VuZGFyeUVuZCBjb25zdCk6CihXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OlRl
eHQ6OmlzQmV0d2VlblNoYXBpbmdCb3VuZGFyaWVzIGNvbnN0KToKKFdlYkNvcmU6OklubGluZURp
c3BsYXk6OkJveDo6VGV4dDo6VGV4dCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3Bw
OgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRl
eHREaXNwbGF5Qm94KToKLS0tCiAuLi4vbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZS5jcHAgICB8IDEwICsrKysrKystLS0KIC4uLi9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmggICAgIHwgMTAgKysrKysrKystLQogLi4uL2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwICAgfCAgNCArKy0tCiAu
Li4vaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oICAgICAgICAgICAgICAgICB8IDEw
ICsrKysrKysrLS0KIC4uLi9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXIuY3BwICAgIHwgMTEgKysrKysrKysrKy0KIDUgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9u
cygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcAppbmRleCBm
MDU4MjcwNmY5NTkuLjkxZWFhMDRhNzU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAK
QEAgLTMzNCw3ICszMzQsNyBAQCB2b2lkIExpbmU6OmFwcGVuZElubGluZUJveEVuZChjb25zdCBJ
bmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgcwogICAgIH0KIH0KIAot
dm9pZCBMaW5lOjphcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRl
bSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0
aCkKK3ZvaWQgTGluZTo6YXBwZW5kVGV4dChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4
dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
V2lkdGgsIHN0ZDo6b3B0aW9uYWw8TGluZTo6U2hhcGluZ0JvdW5kYXJ5PiBzaGFwaW5nQm91bmRh
cnkpCiB7CiAgICAgYXV0byB3aWxsQ29sbGFwc2VDb21wbGV0ZWx5ID0gWyZdIHsKICAgICAgICAg
aWYgKGlubGluZVRleHRJdGVtLmlzRW1wdHkoKSkgewpAQCAtMzg3LDYgKzM4Nyw4IEBAIHZvaWQg
TGluZTo6YXBwZW5kVGV4dChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNv
bnN0IFJlbmRlclN0eWxlJiBzCiAgICAgICAgICAgICAvLyBXZSBtYXkgZW5kIHVwIHdpdGggbWlz
bWF0Y2hpbmcgY29tcHV0ZWQgd2lkdGhzIGFuZCBtaXNwbGFjZWQgZ2x5cGhzIGF0IHBhaW50IHRp
bWUgLXVubGVzcyB3ZSBrZWVwIGRlZGljYXRlZCBydW5zIHdpdGggZXhwbGljaXQgcG9zaXRpb25z
LgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKHNoYXBp
bmdCb3VuZGFyeSB8fCBsYXN0UnVuLmlzU2hhcGluZ0JvdW5kYXJ5KCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0oKTsKICAgICBhdXRvIG9s
ZENvbnRlbnRMb2dpY2FsV2lkdGggPSBjb250ZW50TG9naWNhbFdpZHRoKCk7CkBAIC0zOTksNyAr
NDAxLDcgQEAgdm9pZCBMaW5lOjphcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxp
bmVUZXh0SXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICAgICAgICAgICAgICByZXR1cm4g
LVRleHRVdGlsOjpoYW5nYWJsZVB1bmN0dWF0aW9uU3RhcnRXaWR0aChpbmxpbmVUZXh0SXRlbSwg
c3R5bGUpOwogICAgICAgICAgICAgcmV0dXJuIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSArIChpbmxp
bmVUZXh0SXRlbS5pc1dvcmRTZXBhcmF0b3IoKSA/IHN0eWxlLmZvbnRDYXNjYWRlKCkud29yZFNw
YWNpbmcoKSA6IDAuMGYpOwogICAgICAgICB9KCk7Ci0gICAgICAgIG1fcnVucy5hcHBlbmQoeyBp
bmxpbmVUZXh0SXRlbSwgc3R5bGUsIHJ1bkxvZ2ljYWxMZWZ0LCBsb2dpY2FsV2lkdGggfSk7Cisg
ICAgICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVUZXh0SXRlbSwgc3R5bGUsIHJ1bkxvZ2ljYWxM
ZWZ0LCBsb2dpY2FsV2lkdGgsIHsgfSwgc2hhcGluZ0JvdW5kYXJ5IH0pOwogICAgICAgICAvLyBO
b3RlIHRoYXQgdGhlIF9jb250ZW50XyBsb2dpY2FsIHJpZ2h0IG1heSBiZSBsYXJnZXIgdGhhbiB0
aGUgX3J1bl8gbG9naWNhbCByaWdodC4KICAgICAgICAgY29udGVudExvZ2ljYWxSaWdodCA9IHJ1
bkxvZ2ljYWxMZWZ0ICsgbG9naWNhbFdpZHRoOwogICAgIH0gZWxzZSB7CkBAIC03ODYsMTMgKzc4
OCwxNCBAQCBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbSYgc29m
dExpbmVCcmVha0l0ZW0sIGNvbnN0IFJlbmRlclN0eQogewogfQogCi1MaW5lOjpSdW46OlJ1bihj
b25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBsb2dp
Y2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3RtZW50KQorTGluZTo6
UnVuOjpSdW4oY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGluZUxheW91
dFVuaXQgbG9naWNhbFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IHRleHRTcGFjaW5nQWRqdXN0bWVu
dCwgc3RkOjpvcHRpb25hbDxMaW5lOjpTaGFwaW5nQm91bmRhcnk+IHNoYXBpbmdCb3VuZGFyeSkK
ICAgICA6IG1fdHlwZShpbmxpbmVUZXh0SXRlbS5pc1dvcmRTZXBhcmF0b3IoKSA/IFR5cGU6Oldv
cmRTZXBhcmF0b3IgOiBpbmxpbmVUZXh0SXRlbS5pc1F1aXJrTm9uQnJlYWtpbmdTcGFjZSgpID8g
VHlwZTo6Tm9uQnJlYWtpbmdTcGFjZSA6IFR5cGU6OlRleHQpCiAgICAgLCBtX2xheW91dEJveCgm
aW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94KCkpCiAgICAgLCBtX3N0eWxlKHN0eWxlKQogICAgICwg
bV9sb2dpY2FsTGVmdChsb2dpY2FsTGVmdCkKICAgICAsIG1fbG9naWNhbFdpZHRoKGxvZ2ljYWxX
aWR0aCkKICAgICAsIG1fYmlkaUxldmVsKGlubGluZVRleHRJdGVtLmJpZGlMZXZlbCgpKQorICAg
ICwgbV9zaGFwaW5nQm91bmRhcnkoc2hhcGluZ0JvdW5kYXJ5KQogICAgICwgbV90ZXh0U3BhY2lu
Z0FkanVzdG1lbnQodGV4dFNwYWNpbmdBZGp1c3RtZW50KQogewogICAgIGF1dG8gbGVuZ3RoID0g
aW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CkBAIC04MTEsNiArODE0LDcgQEAgdm9pZCBMaW5lOjpS
dW46OmV4cGFuZChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIElubGluZUxh
eW91dFVuaXQgbG8KICAgICBBU1NFUlQoaXNUZXh0KCkgJiYgaW5saW5lVGV4dEl0ZW0uaXNUZXh0
KCkpOwogICAgIEFTU0VSVChtX2xheW91dEJveCA9PSAmaW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94
KCkpOwogICAgIEFTU0VSVChtX2JpZGlMZXZlbCA9PSBpbmxpbmVUZXh0SXRlbS5iaWRpTGV2ZWwo
KSk7CisgICAgQVNTRVJUKCFtX3NoYXBpbmdCb3VuZGFyeSB8fCAqbV9zaGFwaW5nQm91bmRhcnkg
IT0gU2hhcGluZ0JvdW5kYXJ5OjpFbmQpOwogCiAgICAgbV9sb2dpY2FsV2lkdGggKz0gbG9naWNh
bFdpZHRoOwogICAgIGF1dG8gd2hpdGVzcGFjZVR5cGUgPSB0cmFpbGluZ1doaXRlc3BhY2VUeXBl
KGlubGluZVRleHRJdGVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAppbmRleCA5ZDAwNDg0MjI1
NGQuLjY2ODlmYjc2MzU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaApAQCAtNDksNyArNDks
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFZlY3RvcjxJbmxpbmVJdGVt
LCAxPiYgbGluZVNwYW5uaW5nSW5saW5lQm94ZXMsIGJvb2wgaXNGaXJzdEZvcm1hdHRlZExpbmUp
OwogCiAgICAgZW51bSBjbGFzcyBTaGFwaW5nQm91bmRhcnkgOiB1aW50OF90IHsgU3RhcnQsIE1p
ZGRsZSwgRW5kIH07Ci0gICAgdm9pZCBhcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCk7CisgICAg
dm9pZCBhcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUm
LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgc3RkOjpvcHRpb25hbDxTaGFwaW5nQm91
bmRhcnk+KTsKICAgICB2b2lkIGFwcGVuZFRleHRGYXN0KGNvbnN0IElubGluZVRleHRJdGVtJiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCk7IC8vIFJl
c2VydmVkIGZvciBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyCiAgICAgdm9pZCBhcHBlbmRBdG9t
aWNJbmxpbmVCb3goY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5l
TGF5b3V0VW5pdCBtYXJnaW5Cb3hMb2dpY2FsV2lkdGgpOwogICAgIHZvaWQgYXBwZW5kSW5saW5l
Qm94U3RhcnQoY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3Rt
ZW50KTsKQEAgLTE0OSwxMCArMTQ5LDE1IEBAIHB1YmxpYzoKIAogICAgICAgICBVQmlEaUxldmVs
IGJpZGlMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fYmlkaUxldmVsOyB9CiAKKyAgICAgICAgYm9v
bCBpc1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkgY29uc3QgeyByZXR1cm4gaXNTaGFwaW5nQm91bmRh
cnkoKSAmJiAqbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpTdGFy
dDsgfQorICAgICAgICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5RW5kKCkgY29uc3QgeyByZXR1cm4g
aXNTaGFwaW5nQm91bmRhcnkoKSAmJiAqbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGlu
Z0JvdW5kYXJ5OjpFbmQ7IH0KKyAgICAgICAgYm9vbCBpc0JldHdlZW5TaGFwaW5nQm91bmRhcmll
cygpIGNvbnN0IHsgcmV0dXJuIGlzU2hhcGluZ0JvdW5kYXJ5KCkgJiYgKm1fc2hhcGluZ0JvdW5k
YXJ5ID09IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6TWlkZGxlOyB9CisgICAgICAgIGJvb2wgaXNT
aGFwaW5nQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeS5oYXNfdmFs
dWUoKTsgfQorCiAgICAgICAgIC8vIEZJWE1FOiBNYXliZSBhZGQgY3JlYXRlIGZ1bmN0aW9ucyBp
bnRlYWQ/CiAgICAgICAgIFJ1bihjb25zdCBJbmxpbmVJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUm
LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgUnVuKGNvbnN0IElubGlu
ZUl0ZW0mIGxpbmVTcGFubmluZ0lubGluZUJveEl0ZW0sIElubGluZUxheW91dFVuaXQgbG9naWNh
bExlZnQsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IHRl
eHRTcGFjaW5nQWRqdXN0bWVudCA9IDAuZik7Ci0gICAgICAgIFJ1bihjb25zdCBJbmxpbmVUZXh0
SXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwg
SW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNp
bmdBZGp1c3RtZW50ID0gMC5mKTsKKyAgICAgICAgUnVuKGNvbnN0IElubGluZVRleHRJdGVtJiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVM
YXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0U3BhY2luZ0FkanVz
dG1lbnQgPSAwLmYsIHN0ZDo6b3B0aW9uYWw8TGluZTo6U2hhcGluZ0JvdW5kYXJ5PiA9IHN0ZDo6
bnVsbG9wdCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgTGluZTsKQEAg
LTIwMSw2ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VHJhaWxpbmdX
aGl0ZXNwYWNlPiBtX3RyYWlsaW5nV2hpdGVzcGFjZSB7IH07CiAgICAgICAgIHN0ZDo6b3B0aW9u
YWw8c2l6ZV90PiBtX2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0IHsgfTsKICAgICAgICAg
c3RkOjpvcHRpb25hbDxUZXh0PiBtX3RleHRDb250ZW50OworICAgICAgICBzdGQ6Om9wdGlvbmFs
PExpbmU6OlNoYXBpbmdCb3VuZGFyeT4gbV9zaGFwaW5nQm91bmRhcnk7CiAgICAgICAgIElubGlu
ZUxheW91dFVuaXQgbV90ZXh0U3BhY2luZ0FkanVzdG1lbnQgeyAwIH07CiAgICAgfTsKICAgICB1
c2luZyBSdW5MaXN0ID0gVmVjdG9yPFJ1biwgMTA+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZUJ1aWxkZXIuY3BwCmluZGV4IGJmMzI1YzQwZGQ5MS4uYmJmNWI0YTdjYjhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC0xMjM0LDcgKzEyMzQsNyBA
QCB2b2lkIExpbmVCdWlsZGVyOjpjb21taXRDYW5pZGF0ZUNvbnRlbnQoY29uc3QgTGluZUNhbmRp
ZGF0ZSYgbGluZUNhbmRpZGF0ZSwgc3RkOgogICAgICAgICAgICAgbV9saW5lLnNldENvbnRlbnRO
ZWVkc0JpZGlSZW9yZGVyaW5nKCk7CiAKICAgICAgICAgaWYgKGF1dG8qIGlubGluZVRleHRJdGVt
ID0gZHluYW1pY0Rvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKSkgewotICAgICAg
ICAgICAgbV9saW5lLmFwcGVuZFRleHQoKmlubGluZVRleHRJdGVtLCBydW4uc3R5bGUsIHJ1bi5j
b250ZW50V2lkdGgoKSk7CisgICAgICAgICAgICBtX2xpbmUuYXBwZW5kVGV4dCgqaW5saW5lVGV4
dEl0ZW0sIHJ1bi5zdHlsZSwgcnVuLmNvbnRlbnRXaWR0aCgpLCB7IH0pOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKQEAgLTEyODgsNyArMTI4OCw3IEBAIHZvaWQgTGluZUJ1aWxk
ZXI6OmNvbW1pdENhbmlkYXRlQ29udGVudChjb25zdCBMaW5lQ2FuZGlkYXRlJiBsaW5lQ2FuZGlk
YXRlLCBzdGQ6CiAgICAgICAgICAgICAvLyBDcmVhdGUgYW5kIGNvbW1pdCBwYXJ0aWFsIHRyYWls
aW5nIGl0ZW0uCiAgICAgICAgICAgICBpZiAoYXV0byogdHJhaWxpbmdJbmxpbmVUZXh0SXRlbSA9
IGR5bmFtaWNEb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4ocnVuc1t0cmFpbGluZ1J1bkluZGV4XS5p
bmxpbmVJdGVtKSkgewogICAgICAgICAgICAgICAgIGF1dG8gcGFydGlhbFRyYWlsaW5nVGV4dEl0
ZW0gPSB0cmFpbGluZ0lubGluZVRleHRJdGVtLT5sZWZ0KHBhcnRpYWxSdW4tPmxlbmd0aCk7Ci0g
ICAgICAgICAgICAgICAgbV9saW5lLmFwcGVuZFRleHQocGFydGlhbFRyYWlsaW5nVGV4dEl0ZW0s
IHRyYWlsaW5nSW5saW5lVGV4dEl0ZW0tPnN0eWxlKCksIHBhcnRpYWxSdW4tPmxvZ2ljYWxXaWR0
aCk7CisgICAgICAgICAgICAgICAgbV9saW5lLmFwcGVuZFRleHQocGFydGlhbFRyYWlsaW5nVGV4
dEl0ZW0sIHRyYWlsaW5nSW5saW5lVGV4dEl0ZW0tPnN0eWxlKCksIHBhcnRpYWxSdW4tPmxvZ2lj
YWxXaWR0aCwgeyB9KTsKICAgICAgICAgICAgICAgICBpZiAodHJhaWxpbmdJbmxpbmVUZXh0SXRl
bS0+YmlkaUxldmVsKCkgIT0gVUJJRElfREVGQVVMVF9MVFIpCiAgICAgICAgICAgICAgICAgICAg
IG1fbGluZS5zZXRDb250ZW50TmVlZHNCaWRpUmVvcmRlcmluZygpOwogICAgICAgICAgICAgfSBl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oCmlu
ZGV4IDAxM2ViNDRkMmQ3ZC4uYzQ5ZDE3YWQ4ODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlC
b3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaApAQCAtNDIsMTMgKzQyLDE3IEBAIHN0cnVjdCBC
b3ggewogICAgIHN0cnVjdCBUZXh0IHsKICAgICBwdWJsaWM6CiAgICAgICAgIFRleHQoKSA9IGRl
ZmF1bHQ7Ci0gICAgICAgIFRleHQoc2l6ZV90IHBvc2l0aW9uLCBzaXplX3QgbGVuZ3RoLCBjb25z
dCBTdHJpbmcmIG9yaWdpbmFsQ29udGVudCwgU3RyaW5nIGFkanVzdGVkQ29udGVudFRvUmVuZGVy
ID0gU3RyaW5nKCksIGJvb2wgaGFzSHlwaGVuID0gZmFsc2UpOworICAgICAgICBlbnVtIFNoYXBp
bmdCb3VuZGFyeSA6IHVpbnQ4X3QgeyBTdGFydCwgSW5zaWRlLCBFbmQsIE5vdEFwcGxpY2FibGUg
fTsKKyAgICAgICAgVGV4dChzaXplX3QgcG9zaXRpb24sIHNpemVfdCBsZW5ndGgsIGNvbnN0IFN0
cmluZyYgb3JpZ2luYWxDb250ZW50LCBTdHJpbmcgYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIgPSBT
dHJpbmcoKSwgYm9vbCBoYXNIeXBoZW4gPSBmYWxzZSwgU2hhcGluZ0JvdW5kYXJ5ID0gU2hhcGlu
Z0JvdW5kYXJ5OjpOb3RBcHBsaWNhYmxlKTsKIAogICAgICAgICBzaXplX3Qgc3RhcnQoKSBjb25z
dCB7IHJldHVybiBtX3N0YXJ0OyB9CiAgICAgICAgIHNpemVfdCBlbmQoKSBjb25zdCB7IHJldHVy
biBzdGFydCgpICsgbGVuZ3RoKCk7IH0KICAgICAgICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGVuZ3RoOyB9CiAgICAgICAgIFN0cmluZ1ZpZXcgb3JpZ2luYWxDb250ZW50KCkg
Y29uc3QgeyByZXR1cm4gU3RyaW5nVmlldyhtX29yaWdpbmFsQ29udGVudCkuc3Vic3RyaW5nKG1f
c3RhcnQsIG1fbGVuZ3RoKTsgfQogICAgICAgICBTdHJpbmdWaWV3IHJlbmRlcmVkQ29udGVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIuaXNOdWxsKCkgPyBvcmln
aW5hbENvbnRlbnQoKSA6IG1fYWRqdXN0ZWRDb250ZW50VG9SZW5kZXI7IH0KKyAgICAgICAgYm9v
bCBpc0F0U2hhcGluZ0JvdW5kYXJ5U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3Vu
ZGFyeSA9PSBTaGFwaW5nQm91bmRhcnk6OlN0YXJ0OyB9CisgICAgICAgIGJvb2wgaXNBdFNoYXBp
bmdCb3VuZGFyeUVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGluZ0JvdW5kYXJ5ID09IFNoYXBp
bmdCb3VuZGFyeTo6RW5kOyB9CisgICAgICAgIGJvb2wgaXNCZXR3ZWVuU2hhcGluZ0JvdW5kYXJp
ZXMoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeSA9PSBTaGFwaW5nQm91bmRhcnk6
Okluc2lkZTsgfQogICAgICAgICBib29sIGhhc0h5cGhlbigpIGNvbnN0IHsgcmV0dXJuIG1faGFz
SHlwaGVuOyB9CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBwYXJ0aWFsbHlWaXNpYmxl
Q29udGVudExlbmd0aCgpIGNvbnN0OwogICAgICAgICB2b2lkIHNldFBhcnRpYWxseVZpc2libGVD
b250ZW50TGVuZ3RoKHNpemVfdCB0cnVuY2F0ZWRMZW5ndGgpOwpAQCAtNjEsNiArNjUsNyBAQCBz
dHJ1Y3QgQm94IHsKIAogICAgICAgICB1bnNpZ25lZCBtX3N0YXJ0IHsgMCB9OwogICAgICAgICB1
bnNpZ25lZCBtX2xlbmd0aCB7IDAgfTsKKyAgICAgICAgU2hhcGluZ0JvdW5kYXJ5IG1fc2hhcGlu
Z0JvdW5kYXJ5IHsgU2hhcGluZ0JvdW5kYXJ5OjpOb3RBcHBsaWNhYmxlIH07CiAgICAgICAgIHVu
c2lnbmVkIG1fcGFydGlhbGx5VmlzaWJsZUNvbnRlbnRMZW5ndGggOiAzMCB7IH07CiAgICAgICAg
IGJvb2wgbV9oYXNQYXJ0aWFsbHlWaXNpYmxlQ29udGVudExlbmd0aCA6IDEgeyBmYWxzZSB9Owog
ICAgICAgICBib29sIG1faGFzSHlwaGVuIDogMSB7IGZhbHNlIH07CkBAIC0yMTIsMTEgKzIxNywx
MiBAQCBpbmxpbmUgQm94Ojp+Qm94KCkKICAgICAgICAgcmVtb3ZlQm94RnJvbUdseXBoRGlzcGxh
eUxpc3RDYWNoZSgqdGhpcyk7CiB9CiAKLWlubGluZSBCb3g6OlRleHQ6OlRleHQoc2l6ZV90IHN0
YXJ0LCBzaXplX3QgbGVuZ3RoLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsQ29udGVudCwgU3RyaW5n
IGFkanVzdGVkQ29udGVudFRvUmVuZGVyLCBib29sIGhhc0h5cGhlbikKK2lubGluZSBCb3g6OlRl
eHQ6OlRleHQoc2l6ZV90IHN0YXJ0LCBzaXplX3QgbGVuZ3RoLCBjb25zdCBTdHJpbmcmIG9yaWdp
bmFsQ29udGVudCwgU3RyaW5nIGFkanVzdGVkQ29udGVudFRvUmVuZGVyLCBib29sIGhhc0h5cGhl
biwgU2hhcGluZ0JvdW5kYXJ5IHNoYXBpbmdCb3VuZGFyeSkKICAgICA6IG1fb3JpZ2luYWxDb250
ZW50KG9yaWdpbmFsQ29udGVudCkKICAgICAsIG1fYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIoYWRq
dXN0ZWRDb250ZW50VG9SZW5kZXIpCiAgICAgLCBtX3N0YXJ0KHN0YXJ0KQogICAgICwgbV9sZW5n
dGgobGVuZ3RoKQorICAgICwgbV9zaGFwaW5nQm91bmRhcnkoc2hhcGluZ0JvdW5kYXJ5KQogICAg
ICwgbV9oYXNIeXBoZW4oaGFzSHlwaGVuKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4
IGM2M2NkYmQ0N2JiYS4uNGMxZmFkZTJkMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250
ZW50QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0y
MzUsNiArMjM1LDE1IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRU
ZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxpbmVSdW4sCiAgICAgYXV0byBhZGp1c3Rl
ZENvbnRlbnRUb1JlbmRlciA9IFsmXSB7CiAgICAgICAgIHJldHVybiB0ZXh0LT5uZWVkc0h5cGhl
biA/IG1ha2VTdHJpbmcoU3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmcodGV4dC0+c3RhcnQs
IHRleHQtPmxlbmd0aCksIHN0eWxlLmh5cGhlblN0cmluZygpKSA6IFN0cmluZygpOwogICAgIH07
CisgICAgYXV0byBzaGFwaW5nQm91bmRhcnkgPSBbJl0geworICAgICAgICBpZiAobGluZVJ1bi5p
c1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkpCisgICAgICAgICAgICByZXR1cm4gSW5saW5lRGlzcGxh
eTo6Qm94OjpUZXh0OjpTaGFwaW5nQm91bmRhcnk6OlN0YXJ0OworICAgICAgICBpZiAobGluZVJ1
bi5pc1NoYXBpbmdCb3VuZGFyeUVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIElubGluZURpc3Bs
YXk6OkJveDo6VGV4dDo6U2hhcGluZ0JvdW5kYXJ5OjpFbmQ7CisgICAgICAgIGlmIChsaW5lUnVu
LmlzQmV0d2VlblNoYXBpbmdCb3VuZGFyaWVzKCkpCisgICAgICAgICAgICByZXR1cm4gSW5saW5l
RGlzcGxheTo6Qm94OjpUZXh0OjpTaGFwaW5nQm91bmRhcnk6Okluc2lkZTsKKyAgICAgICAgcmV0
dXJuIElubGluZURpc3BsYXk6OkJveDo6VGV4dDo6U2hhcGluZ0JvdW5kYXJ5OjpOb3RBcHBsaWNh
YmxlOworICAgIH07CiAgICAgYm94ZXMuYXBwZW5kKHsgbGluZUluZGV4KCkKICAgICAgICAgLCBs
aW5lUnVuLmlzV29yZFNlcGFyYXRvcigpID8gSW5saW5lRGlzcGxheTo6Qm94OjpUeXBlOjpXb3Jk
U2VwYXJhdG9yIDogSW5saW5lRGlzcGxheTo6Qm94OjpUeXBlOjpUZXh0CiAgICAgICAgICwgaW5s
aW5lVGV4dEJveApAQCAtMjQzLDcgKzI1Miw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRC
dWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxpbmVSdW4sCiAg
ICAgICAgICwgaW5rT3ZlcmZsb3cKICAgICAgICAgLCBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpCiAg
ICAgICAgICwgbGluZVJ1bi5leHBhbnNpb24oKQotICAgICAgICAsIElubGluZURpc3BsYXk6OkJv
eDo6VGV4dCB7IHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgsIGNvbnRlbnQsIGFkanVzdGVkQ29u
dGVudFRvUmVuZGVyKCksIHRleHQtPm5lZWRzSHlwaGVuIH0KKyAgICAgICAgLCBJbmxpbmVEaXNw
bGF5OjpCb3g6OlRleHQgeyB0ZXh0LT5zdGFydCwgdGV4dC0+bGVuZ3RoLCBjb250ZW50LCBhZGp1
c3RlZENvbnRlbnRUb1JlbmRlcigpLCB0ZXh0LT5uZWVkc0h5cGhlbiwgc2hhcGluZ0JvdW5kYXJ5
KCkgfQogICAgICAgICAsIGlzQ29udGVudGZ1bAogICAgICAgICAsIGlzTGluZUZ1bGx5VHJ1bmNh
dGVkSW5CbG9ja0RpcmVjdGlvbigpCiAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476753</attachid>
            <date>2025-09-16 05:01:53 -0700</date>
            <delta_ts>2025-09-16 07:04:50 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-298830-20250916050152.patch</filename>
            <type>text/plain</type>
            <size>14452</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA1NDExYmVkMTI1MmQ3MWYwZjY0ZDBjNTE1YTZhM2JjZTIxNmU3NzUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IE1vbiwgMTUgU2VwIDIwMjUgMTA6MTc6MjQgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbdGV4dCBz
aGFwaW5nXSBBZGQgc2hhcGluZy1ib3VuZGFyeS9zdGFydC9lbmQvaW4tYmV0d2VlbiBiaXRzCiB0
byBsaW5lIHJ1biBhbmQgZGlzcGxheSBib3ggaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI5ODgzMAoKUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpUaGlzIGlzIGlu
IHByZXBhcmF0aW9uIGZvciBhZGRpbmcgdGV4dCBzaGFwaW5nIHN1cHBvcnQuCgpMaW5lIGJ1aWxk
ZXIgd2lsbCBzZXQgdGhlc2UgYml0cyBvbiBydW5zIGFuZCBUZXh0Qm94UGFpbnRlciB3aWxsIGNv
bnN1bHQgdGhlIGRpc3BsYXkgYm94IGlmIGl0Cm5lZWRzIHNwZWNpYWwgdHlwZSBvZiBwYWludGlu
Zy4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZS5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZFRleHQpOgooV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjpSdW46OlJ1bik6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6
ZXhwYW5kKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmg6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5nQm91
bmRhcnlTdGFydCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6aXNTaGFwaW5n
Qm91bmRhcnlFbmQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmlzQmV0d2Vl
blNoYXBpbmdCb3VuZGFyaWVzIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpp
c1NoYXBpbmdCb3VuZGFyeSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0
OjpMaW5lQnVpbGRlcjo6Y29tbWl0Q2FuaWRhdGVDb250ZW50KToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3gu
aDoKKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6VGV4dDo6aXNBdFNoYXBpbmdCb3VuZGFy
eVN0YXJ0IGNvbnN0KToKKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6VGV4dDo6aXNBdFNo
YXBpbmdCb3VuZGFyeUVuZCBjb25zdCk6CihXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OlRl
eHQ6OmlzQmV0d2VlblNoYXBpbmdCb3VuZGFyaWVzIGNvbnN0KToKKFdlYkNvcmU6OklubGluZURp
c3BsYXk6OkJveDo6VGV4dDo6VGV4dCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3Bw
OgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGVuZFRl
eHREaXNwbGF5Qm94KToKLS0tCiAuLi4vbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZS5jcHAgICB8IDEwICsrKysrKystLS0KIC4uLi9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmggICAgIHwgMTAgKysrKysrKystLQogLi4uL2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwICAgfCAgNCArKy0tCiAu
Li4vaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oICAgICAgICAgICAgICAgICB8IDEw
ICsrKysrKysrLS0KIC4uLi9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXIuY3BwICAgIHwgMTEgKysrKysrKysrKy0KIDUgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9u
cygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcAppbmRleCBm
MDU4MjcwNmY5NTkuLjkxZWFhMDRhNzU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAK
QEAgLTMzNCw3ICszMzQsNyBAQCB2b2lkIExpbmU6OmFwcGVuZElubGluZUJveEVuZChjb25zdCBJ
bmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgcwogICAgIH0KIH0KIAot
dm9pZCBMaW5lOjphcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRl
bSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0
aCkKK3ZvaWQgTGluZTo6YXBwZW5kVGV4dChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4
dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
V2lkdGgsIHN0ZDo6b3B0aW9uYWw8TGluZTo6U2hhcGluZ0JvdW5kYXJ5PiBzaGFwaW5nQm91bmRh
cnkpCiB7CiAgICAgYXV0byB3aWxsQ29sbGFwc2VDb21wbGV0ZWx5ID0gWyZdIHsKICAgICAgICAg
aWYgKGlubGluZVRleHRJdGVtLmlzRW1wdHkoKSkgewpAQCAtMzg3LDYgKzM4Nyw4IEBAIHZvaWQg
TGluZTo6YXBwZW5kVGV4dChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNv
bnN0IFJlbmRlclN0eWxlJiBzCiAgICAgICAgICAgICAvLyBXZSBtYXkgZW5kIHVwIHdpdGggbWlz
bWF0Y2hpbmcgY29tcHV0ZWQgd2lkdGhzIGFuZCBtaXNwbGFjZWQgZ2x5cGhzIGF0IHBhaW50IHRp
bWUgLXVubGVzcyB3ZSBrZWVwIGRlZGljYXRlZCBydW5zIHdpdGggZXhwbGljaXQgcG9zaXRpb25z
LgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKHNoYXBp
bmdCb3VuZGFyeSB8fCBsYXN0UnVuLmlzU2hhcGluZ0JvdW5kYXJ5KCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0oKTsKICAgICBhdXRvIG9s
ZENvbnRlbnRMb2dpY2FsV2lkdGggPSBjb250ZW50TG9naWNhbFdpZHRoKCk7CkBAIC0zOTksNyAr
NDAxLDcgQEAgdm9pZCBMaW5lOjphcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxp
bmVUZXh0SXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICAgICAgICAgICAgICByZXR1cm4g
LVRleHRVdGlsOjpoYW5nYWJsZVB1bmN0dWF0aW9uU3RhcnRXaWR0aChpbmxpbmVUZXh0SXRlbSwg
c3R5bGUpOwogICAgICAgICAgICAgcmV0dXJuIGxhc3RSdW5Mb2dpY2FsUmlnaHQoKSArIChpbmxp
bmVUZXh0SXRlbS5pc1dvcmRTZXBhcmF0b3IoKSA/IHN0eWxlLmZvbnRDYXNjYWRlKCkud29yZFNw
YWNpbmcoKSA6IDAuMGYpOwogICAgICAgICB9KCk7Ci0gICAgICAgIG1fcnVucy5hcHBlbmQoeyBp
bmxpbmVUZXh0SXRlbSwgc3R5bGUsIHJ1bkxvZ2ljYWxMZWZ0LCBsb2dpY2FsV2lkdGggfSk7Cisg
ICAgICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVUZXh0SXRlbSwgc3R5bGUsIHJ1bkxvZ2ljYWxM
ZWZ0LCBsb2dpY2FsV2lkdGgsIHsgfSwgc2hhcGluZ0JvdW5kYXJ5IH0pOwogICAgICAgICAvLyBO
b3RlIHRoYXQgdGhlIF9jb250ZW50XyBsb2dpY2FsIHJpZ2h0IG1heSBiZSBsYXJnZXIgdGhhbiB0
aGUgX3J1bl8gbG9naWNhbCByaWdodC4KICAgICAgICAgY29udGVudExvZ2ljYWxSaWdodCA9IHJ1
bkxvZ2ljYWxMZWZ0ICsgbG9naWNhbFdpZHRoOwogICAgIH0gZWxzZSB7CkBAIC03ODYsMTMgKzc4
OCwxNCBAQCBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbSYgc29m
dExpbmVCcmVha0l0ZW0sIGNvbnN0IFJlbmRlclN0eQogewogfQogCi1MaW5lOjpSdW46OlJ1bihj
b25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5lTGF5b3V0VW5pdCBsb2dp
Y2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3RtZW50KQorTGluZTo6
UnVuOjpSdW4oY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGluZUxheW91
dFVuaXQgbG9naWNhbFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IHRleHRTcGFjaW5nQWRqdXN0bWVu
dCwgc3RkOjpvcHRpb25hbDxMaW5lOjpTaGFwaW5nQm91bmRhcnk+IHNoYXBpbmdCb3VuZGFyeSkK
ICAgICA6IG1fdHlwZShpbmxpbmVUZXh0SXRlbS5pc1dvcmRTZXBhcmF0b3IoKSA/IFR5cGU6Oldv
cmRTZXBhcmF0b3IgOiBpbmxpbmVUZXh0SXRlbS5pc1F1aXJrTm9uQnJlYWtpbmdTcGFjZSgpID8g
VHlwZTo6Tm9uQnJlYWtpbmdTcGFjZSA6IFR5cGU6OlRleHQpCiAgICAgLCBtX2xheW91dEJveCgm
aW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94KCkpCiAgICAgLCBtX3N0eWxlKHN0eWxlKQogICAgICwg
bV9sb2dpY2FsTGVmdChsb2dpY2FsTGVmdCkKICAgICAsIG1fbG9naWNhbFdpZHRoKGxvZ2ljYWxX
aWR0aCkKICAgICAsIG1fYmlkaUxldmVsKGlubGluZVRleHRJdGVtLmJpZGlMZXZlbCgpKQorICAg
ICwgbV9zaGFwaW5nQm91bmRhcnkoc2hhcGluZ0JvdW5kYXJ5KQogICAgICwgbV90ZXh0U3BhY2lu
Z0FkanVzdG1lbnQodGV4dFNwYWNpbmdBZGp1c3RtZW50KQogewogICAgIGF1dG8gbGVuZ3RoID0g
aW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CkBAIC04MTEsNiArODE0LDcgQEAgdm9pZCBMaW5lOjpS
dW46OmV4cGFuZChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIElubGluZUxh
eW91dFVuaXQgbG8KICAgICBBU1NFUlQoaXNUZXh0KCkgJiYgaW5saW5lVGV4dEl0ZW0uaXNUZXh0
KCkpOwogICAgIEFTU0VSVChtX2xheW91dEJveCA9PSAmaW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94
KCkpOwogICAgIEFTU0VSVChtX2JpZGlMZXZlbCA9PSBpbmxpbmVUZXh0SXRlbS5iaWRpTGV2ZWwo
KSk7CisgICAgQVNTRVJUKCFtX3NoYXBpbmdCb3VuZGFyeSB8fCAqbV9zaGFwaW5nQm91bmRhcnkg
IT0gU2hhcGluZ0JvdW5kYXJ5OjpFbmQpOwogCiAgICAgbV9sb2dpY2FsV2lkdGggKz0gbG9naWNh
bFdpZHRoOwogICAgIGF1dG8gd2hpdGVzcGFjZVR5cGUgPSB0cmFpbGluZ1doaXRlc3BhY2VUeXBl
KGlubGluZVRleHRJdGVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAppbmRleCA5ZDAwNDg0MjI1
NGQuLjY2ODlmYjc2MzU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaApAQCAtNDksNyArNDks
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFZlY3RvcjxJbmxpbmVJdGVt
LCAxPiYgbGluZVNwYW5uaW5nSW5saW5lQm94ZXMsIGJvb2wgaXNGaXJzdEZvcm1hdHRlZExpbmUp
OwogCiAgICAgZW51bSBjbGFzcyBTaGFwaW5nQm91bmRhcnkgOiB1aW50OF90IHsgU3RhcnQsIE1p
ZGRsZSwgRW5kIH07Ci0gICAgdm9pZCBhcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCk7CisgICAg
dm9pZCBhcHBlbmRUZXh0KGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUm
LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgc3RkOjpvcHRpb25hbDxTaGFwaW5nQm91
bmRhcnk+KTsKICAgICB2b2lkIGFwcGVuZFRleHRGYXN0KGNvbnN0IElubGluZVRleHRJdGVtJiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCk7IC8vIFJl
c2VydmVkIGZvciBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyCiAgICAgdm9pZCBhcHBlbmRBdG9t
aWNJbmxpbmVCb3goY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5l
TGF5b3V0VW5pdCBtYXJnaW5Cb3hMb2dpY2FsV2lkdGgpOwogICAgIHZvaWQgYXBwZW5kSW5saW5l
Qm94U3RhcnQoY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNpbmdBZGp1c3Rt
ZW50KTsKQEAgLTE0OSwxMCArMTQ5LDE1IEBAIHB1YmxpYzoKIAogICAgICAgICBVQmlEaUxldmVs
IGJpZGlMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fYmlkaUxldmVsOyB9CiAKKyAgICAgICAgYm9v
bCBpc1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkgY29uc3QgeyByZXR1cm4gaXNTaGFwaW5nQm91bmRh
cnkoKSAmJiAqbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGluZ0JvdW5kYXJ5OjpTdGFy
dDsgfQorICAgICAgICBib29sIGlzU2hhcGluZ0JvdW5kYXJ5RW5kKCkgY29uc3QgeyByZXR1cm4g
aXNTaGFwaW5nQm91bmRhcnkoKSAmJiAqbV9zaGFwaW5nQm91bmRhcnkgPT0gTGluZTo6U2hhcGlu
Z0JvdW5kYXJ5OjpFbmQ7IH0KKyAgICAgICAgYm9vbCBpc0JldHdlZW5TaGFwaW5nQm91bmRhcmll
cygpIGNvbnN0IHsgcmV0dXJuIGlzU2hhcGluZ0JvdW5kYXJ5KCkgJiYgKm1fc2hhcGluZ0JvdW5k
YXJ5ID09IExpbmU6OlNoYXBpbmdCb3VuZGFyeTo6TWlkZGxlOyB9CisgICAgICAgIGJvb2wgaXNT
aGFwaW5nQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeS5oYXNfdmFs
dWUoKTsgfQorCiAgICAgICAgIC8vIEZJWE1FOiBNYXliZSBhZGQgY3JlYXRlIGZ1bmN0aW9ucyBp
bnRlYWQ/CiAgICAgICAgIFJ1bihjb25zdCBJbmxpbmVJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUm
LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgUnVuKGNvbnN0IElubGlu
ZUl0ZW0mIGxpbmVTcGFubmluZ0lubGluZUJveEl0ZW0sIElubGluZUxheW91dFVuaXQgbG9naWNh
bExlZnQsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IHRl
eHRTcGFjaW5nQWRqdXN0bWVudCA9IDAuZik7Ci0gICAgICAgIFJ1bihjb25zdCBJbmxpbmVUZXh0
SXRlbSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwg
SW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIElubGluZUxheW91dFVuaXQgdGV4dFNwYWNp
bmdBZGp1c3RtZW50ID0gMC5mKTsKKyAgICAgICAgUnVuKGNvbnN0IElubGluZVRleHRJdGVtJiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVM
YXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCB0ZXh0U3BhY2luZ0FkanVz
dG1lbnQgPSAwLmYsIHN0ZDo6b3B0aW9uYWw8TGluZTo6U2hhcGluZ0JvdW5kYXJ5PiA9IHN0ZDo6
bnVsbG9wdCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgTGluZTsKQEAg
LTIwMSw2ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VHJhaWxpbmdX
aGl0ZXNwYWNlPiBtX3RyYWlsaW5nV2hpdGVzcGFjZSB7IH07CiAgICAgICAgIHN0ZDo6b3B0aW9u
YWw8c2l6ZV90PiBtX2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0IHsgfTsKICAgICAgICAg
c3RkOjpvcHRpb25hbDxUZXh0PiBtX3RleHRDb250ZW50OworICAgICAgICBzdGQ6Om9wdGlvbmFs
PExpbmU6OlNoYXBpbmdCb3VuZGFyeT4gbV9zaGFwaW5nQm91bmRhcnk7CiAgICAgICAgIElubGlu
ZUxheW91dFVuaXQgbV90ZXh0U3BhY2luZ0FkanVzdG1lbnQgeyAwIH07CiAgICAgfTsKICAgICB1
c2luZyBSdW5MaXN0ID0gVmVjdG9yPFJ1biwgMTA+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZUJ1aWxkZXIuY3BwCmluZGV4IDJlYzE1MzI5MTAyMy4uODI1MDk3NWY5MWY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC0xMjQzLDcgKzEyNDMsNyBA
QCB2b2lkIExpbmVCdWlsZGVyOjpjb21taXRDYW5pZGF0ZUNvbnRlbnQoY29uc3QgTGluZUNhbmRp
ZGF0ZSYgbGluZUNhbmRpZGF0ZSwgc3RkOgogICAgICAgICAgICAgbV9saW5lLnNldENvbnRlbnRO
ZWVkc0JpZGlSZW9yZGVyaW5nKCk7CiAKICAgICAgICAgaWYgKGF1dG8qIGlubGluZVRleHRJdGVt
ID0gZHluYW1pY0Rvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKSkgewotICAgICAg
ICAgICAgbV9saW5lLmFwcGVuZFRleHQoKmlubGluZVRleHRJdGVtLCBydW4uc3R5bGUsIHJ1bi5j
b250ZW50V2lkdGgoKSk7CisgICAgICAgICAgICBtX2xpbmUuYXBwZW5kVGV4dCgqaW5saW5lVGV4
dEl0ZW0sIHJ1bi5zdHlsZSwgcnVuLmNvbnRlbnRXaWR0aCgpLCB7IH0pOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKQEAgLTEyOTcsNyArMTI5Nyw3IEBAIHZvaWQgTGluZUJ1aWxk
ZXI6OmNvbW1pdENhbmlkYXRlQ29udGVudChjb25zdCBMaW5lQ2FuZGlkYXRlJiBsaW5lQ2FuZGlk
YXRlLCBzdGQ6CiAgICAgICAgICAgICAvLyBDcmVhdGUgYW5kIGNvbW1pdCBwYXJ0aWFsIHRyYWls
aW5nIGl0ZW0uCiAgICAgICAgICAgICBpZiAoYXV0byogdHJhaWxpbmdJbmxpbmVUZXh0SXRlbSA9
IGR5bmFtaWNEb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4ocnVuc1t0cmFpbGluZ1J1bkluZGV4XS5p
bmxpbmVJdGVtKSkgewogICAgICAgICAgICAgICAgIGF1dG8gcGFydGlhbFRyYWlsaW5nVGV4dEl0
ZW0gPSB0cmFpbGluZ0lubGluZVRleHRJdGVtLT5sZWZ0KHBhcnRpYWxSdW4tPmxlbmd0aCk7Ci0g
ICAgICAgICAgICAgICAgbV9saW5lLmFwcGVuZFRleHQocGFydGlhbFRyYWlsaW5nVGV4dEl0ZW0s
IHRyYWlsaW5nSW5saW5lVGV4dEl0ZW0tPnN0eWxlKCksIHBhcnRpYWxSdW4tPmxvZ2ljYWxXaWR0
aCk7CisgICAgICAgICAgICAgICAgbV9saW5lLmFwcGVuZFRleHQocGFydGlhbFRyYWlsaW5nVGV4
dEl0ZW0sIHRyYWlsaW5nSW5saW5lVGV4dEl0ZW0tPnN0eWxlKCksIHBhcnRpYWxSdW4tPmxvZ2lj
YWxXaWR0aCwgeyB9KTsKICAgICAgICAgICAgICAgICBpZiAodHJhaWxpbmdJbmxpbmVUZXh0SXRl
bS0+YmlkaUxldmVsKCkgIT0gVUJJRElfREVGQVVMVF9MVFIpCiAgICAgICAgICAgICAgICAgICAg
IG1fbGluZS5zZXRDb250ZW50TmVlZHNCaWRpUmVvcmRlcmluZygpOwogICAgICAgICAgICAgfSBl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oCmlu
ZGV4IDAxM2ViNDRkMmQ3ZC4uYzQ5ZDE3YWQ4ODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlC
b3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaApAQCAtNDIsMTMgKzQyLDE3IEBAIHN0cnVjdCBC
b3ggewogICAgIHN0cnVjdCBUZXh0IHsKICAgICBwdWJsaWM6CiAgICAgICAgIFRleHQoKSA9IGRl
ZmF1bHQ7Ci0gICAgICAgIFRleHQoc2l6ZV90IHBvc2l0aW9uLCBzaXplX3QgbGVuZ3RoLCBjb25z
dCBTdHJpbmcmIG9yaWdpbmFsQ29udGVudCwgU3RyaW5nIGFkanVzdGVkQ29udGVudFRvUmVuZGVy
ID0gU3RyaW5nKCksIGJvb2wgaGFzSHlwaGVuID0gZmFsc2UpOworICAgICAgICBlbnVtIFNoYXBp
bmdCb3VuZGFyeSA6IHVpbnQ4X3QgeyBTdGFydCwgSW5zaWRlLCBFbmQsIE5vdEFwcGxpY2FibGUg
fTsKKyAgICAgICAgVGV4dChzaXplX3QgcG9zaXRpb24sIHNpemVfdCBsZW5ndGgsIGNvbnN0IFN0
cmluZyYgb3JpZ2luYWxDb250ZW50LCBTdHJpbmcgYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIgPSBT
dHJpbmcoKSwgYm9vbCBoYXNIeXBoZW4gPSBmYWxzZSwgU2hhcGluZ0JvdW5kYXJ5ID0gU2hhcGlu
Z0JvdW5kYXJ5OjpOb3RBcHBsaWNhYmxlKTsKIAogICAgICAgICBzaXplX3Qgc3RhcnQoKSBjb25z
dCB7IHJldHVybiBtX3N0YXJ0OyB9CiAgICAgICAgIHNpemVfdCBlbmQoKSBjb25zdCB7IHJldHVy
biBzdGFydCgpICsgbGVuZ3RoKCk7IH0KICAgICAgICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGVuZ3RoOyB9CiAgICAgICAgIFN0cmluZ1ZpZXcgb3JpZ2luYWxDb250ZW50KCkg
Y29uc3QgeyByZXR1cm4gU3RyaW5nVmlldyhtX29yaWdpbmFsQ29udGVudCkuc3Vic3RyaW5nKG1f
c3RhcnQsIG1fbGVuZ3RoKTsgfQogICAgICAgICBTdHJpbmdWaWV3IHJlbmRlcmVkQ29udGVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIuaXNOdWxsKCkgPyBvcmln
aW5hbENvbnRlbnQoKSA6IG1fYWRqdXN0ZWRDb250ZW50VG9SZW5kZXI7IH0KKyAgICAgICAgYm9v
bCBpc0F0U2hhcGluZ0JvdW5kYXJ5U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3Vu
ZGFyeSA9PSBTaGFwaW5nQm91bmRhcnk6OlN0YXJ0OyB9CisgICAgICAgIGJvb2wgaXNBdFNoYXBp
bmdCb3VuZGFyeUVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGluZ0JvdW5kYXJ5ID09IFNoYXBp
bmdCb3VuZGFyeTo6RW5kOyB9CisgICAgICAgIGJvb2wgaXNCZXR3ZWVuU2hhcGluZ0JvdW5kYXJp
ZXMoKSBjb25zdCB7IHJldHVybiBtX3NoYXBpbmdCb3VuZGFyeSA9PSBTaGFwaW5nQm91bmRhcnk6
Okluc2lkZTsgfQogICAgICAgICBib29sIGhhc0h5cGhlbigpIGNvbnN0IHsgcmV0dXJuIG1faGFz
SHlwaGVuOyB9CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBwYXJ0aWFsbHlWaXNpYmxl
Q29udGVudExlbmd0aCgpIGNvbnN0OwogICAgICAgICB2b2lkIHNldFBhcnRpYWxseVZpc2libGVD
b250ZW50TGVuZ3RoKHNpemVfdCB0cnVuY2F0ZWRMZW5ndGgpOwpAQCAtNjEsNiArNjUsNyBAQCBz
dHJ1Y3QgQm94IHsKIAogICAgICAgICB1bnNpZ25lZCBtX3N0YXJ0IHsgMCB9OwogICAgICAgICB1
bnNpZ25lZCBtX2xlbmd0aCB7IDAgfTsKKyAgICAgICAgU2hhcGluZ0JvdW5kYXJ5IG1fc2hhcGlu
Z0JvdW5kYXJ5IHsgU2hhcGluZ0JvdW5kYXJ5OjpOb3RBcHBsaWNhYmxlIH07CiAgICAgICAgIHVu
c2lnbmVkIG1fcGFydGlhbGx5VmlzaWJsZUNvbnRlbnRMZW5ndGggOiAzMCB7IH07CiAgICAgICAg
IGJvb2wgbV9oYXNQYXJ0aWFsbHlWaXNpYmxlQ29udGVudExlbmd0aCA6IDEgeyBmYWxzZSB9Owog
ICAgICAgICBib29sIG1faGFzSHlwaGVuIDogMSB7IGZhbHNlIH07CkBAIC0yMTIsMTEgKzIxNywx
MiBAQCBpbmxpbmUgQm94Ojp+Qm94KCkKICAgICAgICAgcmVtb3ZlQm94RnJvbUdseXBoRGlzcGxh
eUxpc3RDYWNoZSgqdGhpcyk7CiB9CiAKLWlubGluZSBCb3g6OlRleHQ6OlRleHQoc2l6ZV90IHN0
YXJ0LCBzaXplX3QgbGVuZ3RoLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsQ29udGVudCwgU3RyaW5n
IGFkanVzdGVkQ29udGVudFRvUmVuZGVyLCBib29sIGhhc0h5cGhlbikKK2lubGluZSBCb3g6OlRl
eHQ6OlRleHQoc2l6ZV90IHN0YXJ0LCBzaXplX3QgbGVuZ3RoLCBjb25zdCBTdHJpbmcmIG9yaWdp
bmFsQ29udGVudCwgU3RyaW5nIGFkanVzdGVkQ29udGVudFRvUmVuZGVyLCBib29sIGhhc0h5cGhl
biwgU2hhcGluZ0JvdW5kYXJ5IHNoYXBpbmdCb3VuZGFyeSkKICAgICA6IG1fb3JpZ2luYWxDb250
ZW50KG9yaWdpbmFsQ29udGVudCkKICAgICAsIG1fYWRqdXN0ZWRDb250ZW50VG9SZW5kZXIoYWRq
dXN0ZWRDb250ZW50VG9SZW5kZXIpCiAgICAgLCBtX3N0YXJ0KHN0YXJ0KQogICAgICwgbV9sZW5n
dGgobGVuZ3RoKQorICAgICwgbV9zaGFwaW5nQm91bmRhcnkoc2hhcGluZ0JvdW5kYXJ5KQogICAg
ICwgbV9oYXNIeXBoZW4oaGFzSHlwaGVuKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4
IGM2M2NkYmQ0N2JiYS4uNGMxZmFkZTJkMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250
ZW50QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0y
MzUsNiArMjM1LDE1IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRU
ZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxpbmVSdW4sCiAgICAgYXV0byBhZGp1c3Rl
ZENvbnRlbnRUb1JlbmRlciA9IFsmXSB7CiAgICAgICAgIHJldHVybiB0ZXh0LT5uZWVkc0h5cGhl
biA/IG1ha2VTdHJpbmcoU3RyaW5nVmlldyhjb250ZW50KS5zdWJzdHJpbmcodGV4dC0+c3RhcnQs
IHRleHQtPmxlbmd0aCksIHN0eWxlLmh5cGhlblN0cmluZygpKSA6IFN0cmluZygpOwogICAgIH07
CisgICAgYXV0byBzaGFwaW5nQm91bmRhcnkgPSBbJl0geworICAgICAgICBpZiAobGluZVJ1bi5p
c1NoYXBpbmdCb3VuZGFyeVN0YXJ0KCkpCisgICAgICAgICAgICByZXR1cm4gSW5saW5lRGlzcGxh
eTo6Qm94OjpUZXh0OjpTaGFwaW5nQm91bmRhcnk6OlN0YXJ0OworICAgICAgICBpZiAobGluZVJ1
bi5pc1NoYXBpbmdCb3VuZGFyeUVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIElubGluZURpc3Bs
YXk6OkJveDo6VGV4dDo6U2hhcGluZ0JvdW5kYXJ5OjpFbmQ7CisgICAgICAgIGlmIChsaW5lUnVu
LmlzQmV0d2VlblNoYXBpbmdCb3VuZGFyaWVzKCkpCisgICAgICAgICAgICByZXR1cm4gSW5saW5l
RGlzcGxheTo6Qm94OjpUZXh0OjpTaGFwaW5nQm91bmRhcnk6Okluc2lkZTsKKyAgICAgICAgcmV0
dXJuIElubGluZURpc3BsYXk6OkJveDo6VGV4dDo6U2hhcGluZ0JvdW5kYXJ5OjpOb3RBcHBsaWNh
YmxlOworICAgIH07CiAgICAgYm94ZXMuYXBwZW5kKHsgbGluZUluZGV4KCkKICAgICAgICAgLCBs
aW5lUnVuLmlzV29yZFNlcGFyYXRvcigpID8gSW5saW5lRGlzcGxheTo6Qm94OjpUeXBlOjpXb3Jk
U2VwYXJhdG9yIDogSW5saW5lRGlzcGxheTo6Qm94OjpUeXBlOjpUZXh0CiAgICAgICAgICwgaW5s
aW5lVGV4dEJveApAQCAtMjQzLDcgKzI1Miw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRC
dWlsZGVyOjphcHBlbmRUZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mIGxpbmVSdW4sCiAg
ICAgICAgICwgaW5rT3ZlcmZsb3cKICAgICAgICAgLCBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpCiAg
ICAgICAgICwgbGluZVJ1bi5leHBhbnNpb24oKQotICAgICAgICAsIElubGluZURpc3BsYXk6OkJv
eDo6VGV4dCB7IHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgsIGNvbnRlbnQsIGFkanVzdGVkQ29u
dGVudFRvUmVuZGVyKCksIHRleHQtPm5lZWRzSHlwaGVuIH0KKyAgICAgICAgLCBJbmxpbmVEaXNw
bGF5OjpCb3g6OlRleHQgeyB0ZXh0LT5zdGFydCwgdGV4dC0+bGVuZ3RoLCBjb250ZW50LCBhZGp1
c3RlZENvbnRlbnRUb1JlbmRlcigpLCB0ZXh0LT5uZWVkc0h5cGhlbiwgc2hhcGluZ0JvdW5kYXJ5
KCkgfQogICAgICAgICAsIGlzQ29udGVudGZ1bAogICAgICAgICAsIGlzTGluZUZ1bGx5VHJ1bmNh
dGVkSW5CbG9ja0RpcmVjdGlvbigpCiAgICAgfSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>