<?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>229263</bug_id>
          
          <creation_ts>2021-08-18 17:05:54 -0700</creation_ts>
          <short_desc>[LFC] Rename LayoutState::established*FormattingState to formattingStateFor*FormattingContext</short_desc>
          <delta_ts>2021-09-13 12:50:12 -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>1785281</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-08-18 17:05:54 -0700</bug_when>
    <thetext>it&apos;s more descriptive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785320</commentid>
    <comment_count>1</comment_count>
      <attachid>435825</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-08-18 18:52:17 -0700</bug_when>
    <thetext>Created attachment 435825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787389</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-25 17:06:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/82365067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793040</commentid>
    <comment_count>3</comment_count>
      <attachid>438064</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-09-13 12:06:20 -0700</bug_when>
    <thetext>Created attachment 438064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793049</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-09-13 12:50:12 -0700</bug_when>
    <thetext>Committed r282350 (241616@main): &lt;https://commits.webkit.org/241616@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435825</attachid>
            <date>2021-08-18 18:52:17 -0700</date>
            <delta_ts>2021-09-13 12:06:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229263-20210818185217.patch</filename>
            <type>text/plain</type>
            <size>25438</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTYyZWUzN2VkZjhmOTc0
MDUzNDQ5NGVlODViNDA4MTJiZDI2ZDBjOS4uYmRlMmQ5YWFkNGVjZGI3YmY4ZGE4MjQ3YzY0Yzc4
ZTNlOGZlODY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA4LTE4ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBSZW5hbWUgTGF5b3V0
U3RhdGU6OmVzdGFibGlzaGVkKkZvcm1hdHRpbmdTdGF0ZSB0byBmb3JtYXR0aW5nU3RhdGVGb3Iq
Rm9ybWF0dGluZ0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyOTI2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZGlzcGxheS9EaXNwbGF5VHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheTo6VHJlZUJ1aWxkZXI6OmJ1aWxkSW5saW5lRGlzcGxheVRyZWUpOgorICAg
ICAgICAqIGxheW91dC9MYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkxheW91dFN0YXRlOjpmb3JtYXR0aW5nU3RhdGVGb3JJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpmb3JtYXR0aW5n
U3RhdGVGb3JCbG9ja0Zvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvclRhYmxlRm9ybWF0dGluZ0Nv
bnRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6Zm9y
bWF0dGluZ1N0YXRlRm9yRmxleEZvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmVuc3VyZUlubGluZUZvcm1hdHRpbmdTdGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjplc3RhYmxpc2hlZElubGlu
ZUZvcm1hdHRpbmdTdGF0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxheW91dFN0YXRlOjplc3RhYmxpc2hlZEJsb2NrRm9ybWF0dGluZ1N0YXRlIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmVzdGFibGlz
aGVkVGFibGVGb3JtYXR0aW5nU3RhdGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6ZXN0YWJsaXNoZWRGbGV4Rm9ybWF0dGluZ1N0YXRlIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0U3RhdGUuaDoKKyAgICAgICAg
KiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0dlb21ldHJ5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nR2VvbWV0cnk6
OmluRmxvd05vblJlcGxhY2VkQ29udGVudEhlaWdodEFuZE1hcmdpbiBjb25zdCk6CisgICAgICAg
ICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2lu
c0NvbGxhcHNlVGhyb3VnaCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9ibG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlV3JhcHBlckJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6OmNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nRm9yVGFibGVCb3gpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlV2lkdGhBbmRNYXJnaW5Gb3JUYWJsZUJveCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1aWxkZXI6OmNvbnN0cnVjdEFuZEFsaWduSW5s
aW5lTGV2ZWxCb3hlcyk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJs
ZS9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6c2V0VXNlZEdlb21ldHJ5Rm9yQ2VsbHMpOgorICAgICAg
ICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVGb3JtYXR0aW5nR2VvbWV0
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdHZW9tZXRy
eTo6dXNlZEJhc2VsaW5lRm9yQ2VsbCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpzaG93
SW5saW5lVHJlZUFuZFJ1bnMpOgorCiAyMDIxLTA4LTE4ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBSZW1vdmUgcmVkdW5kYW50IExheW91dFN0YXRlOjpl
bnN1cmVGb3JtYXR0aW5nU3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkv
RGlzcGxheVRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheVRy
ZWVCdWlsZGVyLmNwcAppbmRleCA3NGQ0NzA2YmViMDI3ZTdhNWQ1OGJhYzRlMTViNjAwOTEzN2Mx
ZTcxLi40OTk3ZTk4N2I1YzE4YzZhOTFlMTUyN2M2NTQ0MzUxYzJiM2I3NGM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNwbGF5VHJlZUJ1aWxkZXIuY3BwCkBAIC0zMDMsNyArMzAz
LDcgQEAgU3RhY2tpbmdJdGVtKiBUcmVlQnVpbGRlcjo6aW5zZXJ0SW50b1RyZWUoc3RkOjp1bmlx
dWVfcHRyPEJveD4mJiBib3gsIEluc2VydGlvblAKIAogdm9pZCBUcmVlQnVpbGRlcjo6YnVpbGRJ
bmxpbmVEaXNwbGF5VHJlZShjb25zdCBMYXlvdXQ6OkxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwg
Y29uc3QgTGF5b3V0OjpDb250YWluZXJCb3gmIGlubGluZUZvcm1hdHRpbmdSb290LCBJbnNlcnRp
b25Qb3NpdGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7Ci0gICAgYXV0byYgaW5saW5lRm9ybWF0
dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUo
aW5saW5lRm9ybWF0dGluZ1Jvb3QpOworICAgIGF1dG8mIGlubGluZUZvcm1hdHRpbmdTdGF0ZSA9
IGxheW91dFN0YXRlLmZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZvcm1hdHRpbmdDb250ZXh0KGlu
bGluZUZvcm1hdHRpbmdSb290KTsKIAogICAgIGZvciAoYXV0byYgcnVuIDogaW5saW5lRm9ybWF0
dGluZ1N0YXRlLmxpbmVSdW5zKCkpIHsKICAgICAgICAgaWYgKHJ1bi50ZXh0KCkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAKaW5kZXggZTE0N2M1OTg0MTQwZDYx
ODI3ZjhiNDJjMmIzYmIxOGE4NDdhNDAxNy4uMzk0N2NkMTZmZmFjNGRlYWRkNjQyODhjNDEwZmNl
YmI5MmNhYjU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdT
dGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAK
QEAgLTUxLDcgKzUxLDcgQEAgRm9ybWF0dGluZ1N0YXRlOjp+Rm9ybWF0dGluZ1N0YXRlKCkKIEJv
eEdlb21ldHJ5JiBGb3JtYXR0aW5nU3RhdGU6OmJveEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0
Qm94KQogewogICAgIC8vIFNob3VsZCBuZXZlciBuZWVkIHRvIG11dGF0ZSBhIGRpc3BsYXkgYm94
IG91dHNpZGUgb2YgdGhlIGZvcm1hdHRpbmcgY29udGV4dC4KLSAgICBBU1NFUlQoJmxheW91dFN0
YXRlKCkuZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUobGF5b3V0Qm94LmZvcm1hdHRpbmdDb250
ZXh0Um9vdCgpKSA9PSB0aGlzKTsKKyAgICBBU1NFUlQoJmxheW91dFN0YXRlKCkuZm9ybWF0dGlu
Z1N0YXRlRm9yRm9ybWF0dGluZ0NvbnRleHQobGF5b3V0Qm94LmZvcm1hdHRpbmdDb250ZXh0Um9v
dCgpKSA9PSB0aGlzKTsKICAgICAvLyBBbm9ueW1vdXMgdGV4dCB3cmFwcGVycyBkbyBub3QgbmVl
ZCB0byBjb21wdXRlIGJveCBnZW9tZXRyeS4gVGhleSBpbml0aWF0ZSBpbmxpbmUgcnVucy4KICAg
ICBBU1NFUlQoIWxheW91dEJveC5pc0lubGluZVRleHRCb3goKSk7CiAgICAgcmV0dXJuIGxheW91
dFN0YXRlKCkuZW5zdXJlR2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0U3RhdGUuY3BwCmluZGV4IDgxNGE3YjEyNjJiZDFkNzJhN2ZjYWYxYTc0YmUyYjll
MGQ1ZmFmZTkuLmM5MzllZTFlNTNlZDA4ZWEzOWQ4YWUyYTI3YTA1ZGMyYTBjMDQ3MDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcApAQCAtODYsNyArODYsNyBAQCBCb3hHZW9t
ZXRyeSYgTGF5b3V0U3RhdGU6OmVuc3VyZUdlb21ldHJ5Rm9yQm94U2xvdyhjb25zdCBCb3gmIGxh
eW91dEJveCkKIAogRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRl
Rm9yQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAogewotICAgIHJldHVybiBlc3RhYmxp
c2hlZEZvcm1hdHRpbmdTdGF0ZShsYXlvdXRCb3guZm9ybWF0dGluZ0NvbnRleHRSb290KCkpOwor
ICAgIHJldHVybiBmb3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0aW5nQ29udGV4dChsYXlvdXRCb3gu
Zm9ybWF0dGluZ0NvbnRleHRSb290KCkpOwogfQogCiBib29sIExheW91dFN0YXRlOjpoYXNGb3Jt
YXR0aW5nU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNv
bnN0CkBAIC05OCw4ICs5OCw5IEBAIGJvb2wgTGF5b3V0U3RhdGU6Omhhc0Zvcm1hdHRpbmdTdGF0
ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKICAgICAgICAgfHwg
bV9mbGV4Rm9ybWF0dGluZ1N0YXRlcy5jb250YWlucygmZm9ybWF0dGluZ0NvbnRleHRSb290KTsK
IH0KIAotRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6ZXN0YWJsaXNoZWRGb3JtYXR0aW5n
U3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0CitG
b3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpmb3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0aW5n
Q29udGV4dChjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3QK
IHsKKyAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzRm9ybWF0dGlu
Z0NvbnRleHQoKSk7CiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQoKSkgewogICAg
ICAgICBBU1NFUlQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSBtX3Jvb3RDb250YWluZXIuZ2V0
KCkpOwogICAgICAgICByZXR1cm4gKm1fcm9vdElubGluZUZvcm1hdHRpbmdTdGF0ZUZvckludGVn
cmF0aW9uOwpAQCAtMTIwLDM0ICsxMjEsMzQgQEAgRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0
ZTo6ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3IKICAg
ICBDUkFTSCgpOwogfQogCi1JbmxpbmVGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjplc3Rh
Ymxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRp
bmdDb250ZXh0Um9vdCkgY29uc3QKK0lubGluZUZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6
OmZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5l
ckJveCYgaW5saW5lRm9ybWF0dGluZ0NvbnRleHRSb290KSBjb25zdAogewotICAgIEFTU0VSVChm
b3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgp
KTsKKyAgICBBU1NFUlQoaW5saW5lRm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQoKSk7CiAKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5sYXlvdXRGb3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5h
YmxlZCgpKSB7Ci0gICAgICAgIEFTU0VSVCgmZm9ybWF0dGluZ0NvbnRleHRSb290ID09IG1fcm9v
dENvbnRhaW5lci5nZXQoKSk7CisgICAgICAgIEFTU0VSVCgmaW5saW5lRm9ybWF0dGluZ0NvbnRl
eHRSb290ID09IG1fcm9vdENvbnRhaW5lci5nZXQoKSk7CiAgICAgICAgIHJldHVybiAqbV9yb290
SW5saW5lRm9ybWF0dGluZ1N0YXRlRm9ySW50ZWdyYXRpb247CiAgICAgfQogCi0gICAgcmV0dXJu
ICptX2lubGluZUZvcm1hdHRpbmdTdGF0ZXMuZ2V0KCZmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwor
ICAgIHJldHVybiAqbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGVzLmdldCgmaW5saW5lRm9ybWF0dGlu
Z0NvbnRleHRSb290KTsKIH0KIAotQmxvY2tGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpl
c3RhYmxpc2hlZEJsb2NrRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0
dGluZ0NvbnRleHRSb290KSBjb25zdAorQmxvY2tGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRl
Ojpmb3JtYXR0aW5nU3RhdGVGb3JCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5l
ckJveCYgYmxvY2tGb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGZv
cm1hdHRpbmdDb250ZXh0Um9vdC5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSk7
Ci0gICAgcmV0dXJuICptX2Jsb2NrRm9ybWF0dGluZ1N0YXRlcy5nZXQoJmZvcm1hdHRpbmdDb250
ZXh0Um9vdCk7CisgICAgQVNTRVJUKGJsb2NrRm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlz
aGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpKTsKKyAgICByZXR1cm4gKm1fYmxvY2tGb3JtYXR0
aW5nU3RhdGVzLmdldCgmYmxvY2tGb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogfQogCi1UYWJsZUZv
cm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmVzdGFibGlzaGVkVGFibGVGb3JtYXR0aW5nU3Rh
dGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0CitUYWJs
ZUZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvclRhYmxlRm9y
bWF0dGluZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyQm94JiB0YWJsZUZvcm1hdHRpbmdDb250ZXh0
Um9vdCkgY29uc3QKIHsKLSAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlz
aGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpKTsKLSAgICByZXR1cm4gKm1fdGFibGVGb3JtYXR0
aW5nU3RhdGVzLmdldCgmZm9ybWF0dGluZ0NvbnRleHRSb290KTsKKyAgICBBU1NFUlQodGFibGVG
b3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNUYWJsZUZvcm1hdHRpbmdDb250ZXh0KCkp
OworICAgIHJldHVybiAqbV90YWJsZUZvcm1hdHRpbmdTdGF0ZXMuZ2V0KCZ0YWJsZUZvcm1hdHRp
bmdDb250ZXh0Um9vdCk7CiB9CiAKLUZsZXhGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpl
c3RhYmxpc2hlZEZsZXhGb3JtYXR0aW5nU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0
aW5nQ29udGV4dFJvb3QpIGNvbnN0CitGbGV4Rm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6
Zm9ybWF0dGluZ1N0YXRlRm9yRmxleEZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lckJv
eCYgZmxleEZvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3QKIHsKLSAgICBBU1NFUlQoZm9ybWF0
dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzRmxleEZvcm1hdHRpbmdDb250ZXh0KCkpOwotICAg
IHJldHVybiAqbV9mbGV4Rm9ybWF0dGluZ1N0YXRlcy5nZXQoJmZvcm1hdHRpbmdDb250ZXh0Um9v
dCk7CisgICAgQVNTRVJUKGZsZXhGb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNGbGV4
Rm9ybWF0dGluZ0NvbnRleHQoKSk7CisgICAgcmV0dXJuICptX2ZsZXhGb3JtYXR0aW5nU3RhdGVz
LmdldCgmZmxleEZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiB9CiAKIElubGluZUZvcm1hdHRpbmdT
dGF0ZSYgTGF5b3V0U3RhdGU6OmVuc3VyZUlubGluZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250
YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKQEAgLTE2Myw3ICsxNjQsNyBAQCBJbmxp
bmVGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjplbnN1cmVJbmxpbmVGb3JtYXR0aW5nU3Rh
dGUoY29uc3QgQ29udGFpbmVyQgogCiAgICAgICAgIC8vIE90aGVyd2lzZSwgdGhlIGZvcm1hdHRp
bmcgY29udGV4dCBpbmhlcml0cyB0aGUgZmxvYXRzIGZyb20gdGhlIHBhcmVudCBmb3JtYXR0aW5n
IGNvbnRleHQuCiAgICAgICAgIC8vIEZpbmQgdGhlIGZvcm1hdHRpbmcgc3RhdGUgaW4gd2hpY2gg
dGhpcyBmb3JtYXR0aW5nIHJvb3QgbGl2ZXMsIG5vdCB0aGUgb25lIGl0IGNyZWF0ZXMgYW5kIHVz
ZSBpdHMgZmxvYXRpbmcgc3RhdGUuCi0gICAgICAgIGF1dG8mIHBhcmVudEZvcm1hdHRpbmdTdGF0
ZSA9IGVzdGFibGlzaGVkQmxvY2tGb3JtYXR0aW5nU3RhdGUoZm9ybWF0dGluZ0NvbnRleHRSb290
LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKTsKKyAgICAgICAgYXV0byYgcGFyZW50Rm9ybWF0dGlu
Z1N0YXRlID0gZm9ybWF0dGluZ1N0YXRlRm9yQmxvY2tGb3JtYXR0aW5nQ29udGV4dChmb3JtYXR0
aW5nQ29udGV4dFJvb3QuZm9ybWF0dGluZ0NvbnRleHRSb290KCkpOwogICAgICAgICBhdXRvJiBw
YXJlbnRGbG9hdGluZ1N0YXRlID0gcGFyZW50Rm9ybWF0dGluZ1N0YXRlLmZsb2F0aW5nU3RhdGUo
KTsKICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihwYXJl
bnRGbG9hdGluZ1N0YXRlLCAqdGhpcyk7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0
YXRlLmgKaW5kZXggYjM4NTdkY2YwOTkwMjhkMTUzYzRkNjAzMTQ3OTc5NTNiNTA4MmNkZS4uZTY5
NWYwZTk3NmQwNmQ3OTI5ODA1MWEyZGRkNDMwMTY0YjI5NWU4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0xheW91dFN0YXRlLmgKQEAgLTU4LDEzICs1OCwxMyBAQCBwdWJsaWM6CiAgICAgVGFibGVGb3Jt
YXR0aW5nU3RhdGUmIGVuc3VyZVRhYmxlRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJv
eCYgZm9ybWF0dGluZ0NvbnRleHRSb290KTsKICAgICBGbGV4Rm9ybWF0dGluZ1N0YXRlJiBlbnN1
cmVGbGV4Rm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0NvbnRl
eHRSb290KTsKIAotICAgIEZvcm1hdHRpbmdTdGF0ZSYgZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3Rh
dGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nUm9vdCkgY29uc3Q7Ci0gICAgSW5saW5l
Rm9ybWF0dGluZ1N0YXRlJiBlc3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBD
b250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3Q7Ci0gICAgQmxvY2tGb3Jt
YXR0aW5nU3RhdGUmIGVzdGFibGlzaGVkQmxvY2tGb3JtYXR0aW5nU3RhdGUoY29uc3QgQ29udGFp
bmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0OwotICAgIFRhYmxlRm9ybWF0dGlu
Z1N0YXRlJiBlc3RhYmxpc2hlZFRhYmxlRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJv
eCYgZm9ybWF0dGluZ0NvbnRleHRSb290KSBjb25zdDsKLSAgICBGbGV4Rm9ybWF0dGluZ1N0YXRl
JiBlc3RhYmxpc2hlZEZsZXhGb3JtYXR0aW5nU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3Jt
YXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0OworICAgIElubGluZUZvcm1hdHRpbmdTdGF0ZSYgZm9y
bWF0dGluZ1N0YXRlRm9ySW5saW5lRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyQm94
JiBpbmxpbmVGb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0OworICAgIEJsb2NrRm9ybWF0dGlu
Z1N0YXRlJiBmb3JtYXR0aW5nU3RhdGVGb3JCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENv
bnRhaW5lckJveCYgYmxvY2tGb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0OworICAgIFRhYmxl
Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGVGb3JUYWJsZUZvcm1hdHRpbmdDb250ZXh0
KGNvbnN0IENvbnRhaW5lckJveCYgdGFibGVGb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0Owor
ICAgIEZsZXhGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZUZvckZsZXhGb3JtYXR0aW5n
Q29udGV4dChjb25zdCBDb250YWluZXJCb3gmIGZsZXh0Rm9ybWF0dGluZ0NvbnRleHRSb290KSBj
b25zdDsKIAogICAgIEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlRm9yQm94KGNvbnN0
IEJveCYpIGNvbnN0OworICAgIEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlRm9yRm9y
bWF0dGluZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3Qp
IGNvbnN0OwogCiAgICAgYm9vbCBoYXNGb3JtYXR0aW5nU3RhdGUoY29uc3QgQ29udGFpbmVyQm94
JiBmb3JtYXR0aW5nUm9vdCkgY29uc3Q7CiAgICAgYm9vbCBoYXNJbmxpbmVGb3JtYXR0aW5nU3Rh
dGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nUm9vdCkgY29uc3QgeyByZXR1cm4gbV9p
bmxpbmVGb3JtYXR0aW5nU3RhdGVzLmNvbnRhaW5zKCZmb3JtYXR0aW5nUm9vdCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAKaW5kZXggMmQ3YmExZGVhOGIwNDlmOWEyODVj
MjE0OWQ4NmU0NWJmZmQxOTc5OS4uYzE3MTZlZWE0Nzc1NjkwOTNiYmZhZjg2ODY4NDBkYzk2Yjdj
M2Q5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAKQEAgLTExNyw4ICsx
MTcsOCBAQCBzdGF0aWMgdm9pZCBjb2xsZWN0SW5saW5lQm94ZXMoY29uc3QgUmVuZGVyQmxvY2tG
bG93JiByb290LCBWZWN0b3I8V2ViQ29yZTo6TGVnYQogCiBzdGF0aWMgYm9vbCBvdXRwdXRNaXNt
YXRjaGluZ0NvbXBsZXhMaW5lSW5mb3JtYXRpb25JZk5lZWRlZChUZXh0U3RyZWFtJiBzdHJlYW0s
IGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3QgUmVuZGVyQmxvY2tGbG93JiBi
bG9ja0Zsb3csIGNvbnN0IENvbnRhaW5lckJveCYgaW5saW5lRm9ybWF0dGluZ1Jvb3QpCiB7Ci0g
ICAgYXV0byYgaW5saW5lRm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUuZXN0YWJsaXNoZWRG
b3JtYXR0aW5nU3RhdGUoaW5saW5lRm9ybWF0dGluZ1Jvb3QpOwotICAgIGF1dG8mIGxpbmVSdW5z
ID0gZG93bmNhc3Q8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihpbmxpbmVGb3JtYXR0aW5nU3RhdGUp
LmxpbmVSdW5zKCk7CisgICAgYXV0byYgaW5saW5lRm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3Rh
dGUuZm9ybWF0dGluZ1N0YXRlRm9ySW5saW5lRm9ybWF0dGluZ0NvbnRleHQoaW5saW5lRm9ybWF0
dGluZ1Jvb3QpOworICAgIGF1dG8mIGxpbmVSdW5zID0gaW5saW5lRm9ybWF0dGluZ1N0YXRlLmxp
bmVSdW5zKCk7CiAgICAgLy8gQ29sbGVjdCBpbmxpbmVib3hlcy4KICAgICBWZWN0b3I8V2ViQ29y
ZTo6TGVnYWN5SW5saW5lQm94Kj4gaW5saW5lQm94ZXM7CiAgICAgY29sbGVjdElubGluZUJveGVz
KGJsb2NrRmxvdywgaW5saW5lQm94ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwCmlu
ZGV4IDRiOGVkMmNmNGRmNTE5NGY1YzkwMTIwNzhjNTQ2YzQ1YTJjZjZiNWYuLmNhYWJiZThiNGUw
MmE0YzU3NmM1ODY1ZDJhOTQyZTZiYjg1NGI0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRy
eS5jcHAKQEAgLTE0OSw3ICsxNDksNyBAQCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IEZvcm1h
dHRpbmdHZW9tZXRyeTo6Y29tcHV0ZWRXaWR0aFZhbHVlKGNvbnN0IEJveCYgbGF5bwogICAgICAg
ICAgICAgQVNTRVJUKGNvbnRhaW5lckJveC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkp
OwogICAgICAgICAgICAgYXV0byYgbGF5b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0ZSgpOwog
ICAgICAgICAgICAgaWYgKGxheW91dFN0YXRlLmhhc0Zvcm1hdHRpbmdTdGF0ZShjb250YWluZXJC
b3gpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gaW50cmluc2ljV2lkdGhDb25zdHJhaW50
cyA9IGxheW91dFN0YXRlLmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGNvbnRhaW5lckJveCku
aW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpKQorICAgICAgICAgICAgICAgIGlmIChhdXRvIGlu
dHJpbnNpY1dpZHRoQ29uc3RyYWludHMgPSBsYXlvdXRTdGF0ZS5mb3JtYXR0aW5nU3RhdGVGb3JG
b3JtYXR0aW5nQ29udGV4dChjb250YWluZXJCb3gpLmludHJpbnNpY1dpZHRoQ29uc3RyYWludHMo
KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICppbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRz
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIExheW91dENvbnRleHQ6OmNyZWF0
ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCwgY29uc3RfY2FzdDxMYXlvdXRTdGF0ZSY+
KGxheW91dFN0YXRlKSktPmNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpOwpAQCAt
MzEzLDcgKzMxMyw3IEBAIExheW91dFVuaXQgRm9ybWF0dGluZ0dlb21ldHJ5OjpzaHJpbmtUb0Zp
dFdpZHRoKGNvbnN0IEJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290CiAgICAgICAgIGF1dG8mIGxh
eW91dFN0YXRlID0gdGhpcy0+bGF5b3V0U3RhdGUoKTsKICAgICAgICAgYXV0byYgcm9vdCA9IGRv
d25jYXN0PENvbnRhaW5lckJveD4oZm9ybWF0dGluZ0NvbnRleHRSb290KTsKICAgICAgICAgaWYg
KGxheW91dFN0YXRlLmhhc0Zvcm1hdHRpbmdTdGF0ZShyb290KSkgewotICAgICAgICAgICAgaWYg
KGF1dG8gaW50cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IGxheW91dFN0YXRlLmVzdGFibGlzaGVk
Rm9ybWF0dGluZ1N0YXRlKHJvb3QpLmludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSkKKyAgICAg
ICAgICAgIGlmIChhdXRvIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgPSBsYXlvdXRTdGF0ZS5m
b3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0aW5nQ29udGV4dChyb290KS5pbnRyaW5zaWNXaWR0aENv
bnN0cmFpbnRzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuICppbnRyaW5zaWNXaWR0aENvbnN0
cmFpbnRzOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBMYXlvdXRDb250ZXh0OjpjcmVhdGVG
b3JtYXR0aW5nQ29udGV4dChyb290LCBjb25zdF9jYXN0PExheW91dFN0YXRlJj4obGF5b3V0U3Rh
dGUpKS0+Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCk7CkBAIC03OTgsNyArNzk4
LDcgQEAgQ29udGVudEhlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nR2VvbWV0cnk6OmNvbXBsaWNh
dGVkQ2FzZXMoY29uc3QgQm94JiBsYXlvdXRCb3gKICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBz
cGVjaWFsIChxdWlyaz8pIGJlaGF2aW9yIHNpbmNlIHRoZSBkb2N1bWVudCBib3ggaXMgbm90IGEg
Zm9ybWF0dGluZyBjb250ZXh0IHJvb3QgYW5kCiAgICAgICAgICAgICAvLyBhbGwgdGhlIGZsb2F0
IGJveGVzIGVuZCB1cCBhdCB0aGUgSUNCIGxldmVsLgogICAgICAgICAgICAgYXV0byYgaW5pdGlh
bENvbnRhaW5pbmdCbG9jayA9IGRvY3VtZW50Qm94LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpOwot
ICAgICAgICAgICAgYXV0byBmbG9hdGluZ0NvbnRleHQgPSBGbG9hdGluZ0NvbnRleHQgeyBmb3Jt
YXR0aW5nQ29udGV4dCgpLCBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRl
KGluaXRpYWxDb250YWluaW5nQmxvY2spLmZsb2F0aW5nU3RhdGUoKSB9OworICAgICAgICAgICAg
YXV0byBmbG9hdGluZ0NvbnRleHQgPSBGbG9hdGluZ0NvbnRleHQgeyBmb3JtYXR0aW5nQ29udGV4
dCgpLCBsYXlvdXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvckJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQoaW5pdGlhbENvbnRhaW5pbmdCbG9jaykuZmxvYXRpbmdTdGF0ZSgpIH07CiAgICAgICAgICAg
ICBpZiAoYXV0byBmbG9hdEJvdHRvbSA9IGZsb2F0aW5nQ29udGV4dC5ib3R0b20oKSkgewogICAg
ICAgICAgICAgICAgIGJvdHRvbSA9IHN0ZDo6bWF4PExheW91dFVuaXQ+KCpmbG9hdEJvdHRvbSwg
Ym90dG9tKTsKICAgICAgICAgICAgICAgICBhdXRvIGZsb2F0VG9wID0gZmxvYXRpbmdDb250ZXh0
LnRvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0dlb21ldHJ5LmNw
cAppbmRleCAyZDAwMDRjMjYyYmM0ZjU3MmE0MjY3ODdkMDllM2YyNzRkYTc2Nzk5Li40ZDY0ZDE3
ZDE5MjFiN2RhZWU2ZWRjZWE3NmZkZDMwYjMwYzVlZGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0dlb21l
dHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Js
b2NrL0Jsb2NrRm9ybWF0dGluZ0dlb21ldHJ5LmNwcApAQCAtODMsNyArODMsNyBAQCBDb250ZW50
SGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNl
ZENvbnRlbnRIZWlnaHRBbgogICAgICAgICAvLyAxLiB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhlIGxh
c3QgbGluZSBib3gsIGlmIHRoZSBib3ggZXN0YWJsaXNoZXMgYSBpbmxpbmUgZm9ybWF0dGluZyBj
b250ZXh0IHdpdGggb25lIG9yIG1vcmUgbGluZXMKICAgICAgICAgYXV0byYgbGF5b3V0Q29udGFp
bmVyID0gZG93bmNhc3Q8Q29udGFpbmVyQm94PihsYXlvdXRCb3gpOwogICAgICAgICBpZiAobGF5
b3V0Q29udGFpbmVyLmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSkgewotICAg
ICAgICAgICAgYXV0byYgaW5saW5lRm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUoKS5lc3Rh
Ymxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShsYXlvdXRDb250YWluZXIpOworICAgICAgICAg
ICAgYXV0byYgaW5saW5lRm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5n
U3RhdGVGb3JJbmxpbmVGb3JtYXR0aW5nQ29udGV4dChsYXlvdXRDb250YWluZXIpOwogICAgICAg
ICAgICAgYXV0byYgbGluZXMgPSBpbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZXMoKTsKICAgICAg
ICAgICAgIC8vIEV2ZW4gZW1wdHkgY29udGFpbmVycyBnZW5lcmF0ZSBvbmUgbGluZS4gCiAgICAg
ICAgICAgICBBU1NFUlQoIWxpbmVzLmlzRW1wdHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9j
a01hcmdpbkNvbGxhcHNlLmNwcAppbmRleCAzZmM5NzJmYTg0NmU3NDliY2E2MWUyZjMwMjZmMTg4
ZmYwNDQxYWUyLi4zYzU2NzVhNGU2ODBlMGE2NDIzMjIxMWUxYWQwYWMxMmRmZWEyM2ZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Js
b2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKQEAgLTQxMyw3ICs0MTMs
NyBAQCBib29sIEJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdpbnNDb2xsYXBzZVRocm91Z2goY29u
c3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgICAgICAgICBhdXRvIGlzQ29uc2lkZXJlZEVtcHR5ID0gWyZdIHsKLSAgICAgICAgICAg
ICAgICBhdXRvJiBpbmxpbmVGb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZS5lc3RhYmxpc2hl
ZElubGluZUZvcm1hdHRpbmdTdGF0ZShjb250YWluZXJCb3gpOworICAgICAgICAgICAgICAgIGF1
dG8mIGlubGluZUZvcm1hdHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlLmZvcm1hdHRpbmdTdGF0ZUZv
cklubGluZUZvcm1hdHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCk7CiAgICAgICAgICAgICAgICAg
aWYgKCFpbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZXMoKS5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAvLyBBbnkgZmxvYXQgYm94
IGluIHRoaXMgZm9ybWF0dGluZyBjb250ZXh0IHByZXZlbnRzIGNvbGxhcHNpbmcgdGhyb3VnaC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxv
Y2svdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay90YWJsZXdyYXBw
ZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggMTEzMWRlZmY2
MGViNGE2MmQwNjFmY2Y3Nzc1MzhmNmMzNWRmZjk1Ni4uOWE1MjI1NGMwOTI0NGU3NjQ2OGFkNjM0
MzlmMjAzNGFjMjI5OWRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9ibG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9ibG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6OmNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nRm9yVGFibGVCb3goY29ucwogICAgIC8v
IGJvcmRlcnMgd2l0aCB0aGUgdG9wIGJvcmRlciBvZiB0aGUgdGFibGUuIFRoZSB0b3AgYm9yZGVy
IHdpZHRoIG9mIHRoZSB0YWJsZSBpcyBlcXVhbCB0byBoYWxmIG9mIHRoZQogICAgIC8vIG1heGlt
dW0gY29sbGFwc2VkIHRvcCBib3JkZXIuIFRoZSBib3R0b20gYm9yZGVyIHdpZHRoIGlzIGNvbXB1
dGVkIGJ5IGV4YW1pbmluZyBhbGwgY2VsbHMgd2hvc2UgYm90dG9tIGJvcmRlcnMgY29sbGFwc2UK
ICAgICAvLyB3aXRoIHRoZSBib3R0b20gb2YgdGhlIHRhYmxlLiBUaGUgYm90dG9tIGJvcmRlciB3
aWR0aCBpcyBlcXVhbCB0byBoYWxmIG9mIHRoZSBtYXhpbXVtIGNvbGxhcHNlZCBib3R0b20gYm9y
ZGVyLgotICAgIGF1dG8mIGdyaWQgPSBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkVGFibGVGb3Jt
YXR0aW5nU3RhdGUodGFibGVCb3gpLnRhYmxlR3JpZCgpOworICAgIGF1dG8mIGdyaWQgPSBsYXlv
dXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvclRhYmxlRm9ybWF0dGluZ0NvbnRleHQodGFibGVC
b3gpLnRhYmxlR3JpZCgpOwogICAgIGF1dG8gdGFibGVCb3JkZXIgPSBmb3JtYXR0aW5nR2VvbWV0
cnkoKS5jb21wdXRlZEJvcmRlcih0YWJsZUJveCk7CiAKICAgICBhdXRvJiBmaXJzdENvbHVtbkZp
cnN0Um93Qm94ID0gZ3JpZC5zbG90KHsgMCAsIDAgfSktPmNlbGwoKS5ib3goKTsKQEAgLTE1MSw3
ICsxNTEsNyBAQCB2b2lkIFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVXaWR0aEFuZE1hcmdpbkZvclRhYmxlQm94KGNvbnN0CiAgICAgQVNTRVJUKHRhYmxlQm94Lmlz
VGFibGVCb3goKSk7CiAgICAgLy8gVGhpcyBpcyBhIHNwZWNpYWwgdGFibGUgImZpdC1jb250ZW50
IHNpemUiIGJlaGF2aW9yIGhhbmRsaW5nLiBOb3QgaW4gdGhlIHNwZWMgdGhvdWdoLgogICAgIC8v
IFRhYmxlIHJldHVybnMgaXRzIGZpbmFsIHdpZHRoIGFzIG1pbi9tYXguIFVzZSB0aGlzIGZpbmFs
IHdpZHRoIHZhbHVlIHRvIGNvbXB1dGVkIGhvcml6b250YWwgbWFyZ2lucyBldGMuCi0gICAgYXV0
byYgZm9ybWF0dGluZ1N0YXRlRm9yVGFibGVCb3ggPSBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVk
VGFibGVGb3JtYXR0aW5nU3RhdGUodGFibGVCb3gpOworICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0
ZUZvclRhYmxlQm94ID0gbGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JUYWJsZUZvcm1h
dHRpbmdDb250ZXh0KHRhYmxlQm94KTsKICAgICBhdXRvIGludHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMgPSBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIHsgfTsKICAgICBpZiAoYXV0byBwcmVjb21w
dXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgPSBmb3JtYXR0aW5nU3RhdGVGb3JUYWJsZUJv
eC5pbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCkpCiAgICAgICAgIGludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMgPSAqcHJlY29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKaW5kZXggYzAz
ZjlmYmJiNTY5NTc4ZmMyNjEwOTQxZjNmZWMxNzU4OGI4MWM2ZS4uNDAxNmM1MGUxYjkwODY4ZjE1
MGY4YjYxZmViOTUxOWI1NGI5N2I1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBMaW5lQm94
QnVpbGRlcjo6Y29uc3RydWN0QW5kQWxpZ25JbmxpbmVMZXZlbEJveGVzKExpbmVCb3gmIGxpbmVC
b3gsIGNvbnN0IEwKICAgICAgICAgICAgICAgICBpZiAoc3ludGhlc2l6ZUJhc2VsaW5lKQogICAg
ICAgICAgICAgICAgICAgICBhc2NlbnQgPSBtYXJnaW5Cb3hIZWlnaHQ7CiAgICAgICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IGxh
eW91dFN0YXRlKCkuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUoZG93bmNhc3Q8Q29u
dGFpbmVyQm94PihsYXlvdXRCb3gpKTsKKyAgICAgICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0
dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dChkb3duY2FzdDxDb250YWluZXJCb3g+KGxheW91dEJveCkpOwogICAgICAgICAg
ICAgICAgICAgICBhdXRvJiBsYXN0TGluZSA9IGZvcm1hdHRpbmdTdGF0ZS5saW5lcygpLmxhc3Qo
KTsKICAgICAgICAgICAgICAgICAgICAgYXV0byBpbmxpbmVCbG9ja0Jhc2VsaW5lID0gbGFzdExp
bmUubGluZUJveExvZ2ljYWxSZWN0KCkudG9wKCkgKyBsYXN0TGluZS5iYXNlbGluZSgpOwogICAg
ICAgICAgICAgICAgICAgICBhc2NlbnQgPSBpbmxpbmVMZXZlbEJveEdlb21ldHJ5Lm1hcmdpbkJl
Zm9yZSgpICsgaW5saW5lTGV2ZWxCb3hHZW9tZXRyeS5ib3JkZXJUb3AoKSArIGlubGluZUxldmVs
Qm94R2VvbWV0cnkucGFkZGluZ1RvcCgpLnZhbHVlX29yKDApICsgaW5saW5lQmxvY2tCYXNlbGlu
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
dGFibGUvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4
IGM4NTI4N2ZhMDM1YzI2MjY4Y2QwNjhlNzJmYmUyODkwYTFmMjk2MjEuLjhiNjJhMDcwZWQ5MDkz
MDRkOGQzMjdiMzY0MGEwY2Y4MDdlNThmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJs
ZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMTU0LDE0ICsxNTQsMTQgQEAgdm9pZCBUYWJsZUZv
cm1hdHRpbmdDb250ZXh0OjpzZXRVc2VkR2VvbWV0cnlGb3JDZWxscyhMYXlvdXRVbml0IGF2YWls
YWJsZUhvcml6b24KICAgICAgICAgICAgICAgICAgICAgLy8gTm9ybWFsbHkgYnkgdGhlIHRpbWUg
d2Ugc3RhcnQgcG9zaXRpb25pbmcgdGhlIGNoaWxkIGNvbnRlbnQsIHdlIGFscmVhZHkgaGF2ZSBj
b21wdXRlZCBib3JkZXJzIGFuZCBwYWRkaW5nIGZvciB0aGUgY29udGFpbmluZyBibG9jay4KICAg
ICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBkaWZmZXJlbnQgd2l0aCB0YWJsZSBjZWxscyB3
aGVyZSB0aGUgZmluYWwgcGFkZGluZyBvZmZzZXQgZGVwZW5kcyBvbiB0aGUgY29udGVudCBoZWln
aHQgYXMgd2UgdXNlCiAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwYWRkaW5nIGJveCB0byB2
ZXJ0aWNhbGx5IGFsaWduIHRoZSB0YWJsZSBjZWxsIGNvbnRlbnQuCi0gICAgICAgICAgICAgICAg
ICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlKCkuZXN0YWJsaXNoZWRGb3Jt
YXR0aW5nU3RhdGUoY2VsbEJveCk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8mIGZvcm1hdHRp
bmdTdGF0ZSA9IGxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ0NvbnRl
eHQoY2VsbEJveCk7CiAgICAgICAgICAgICAgICAgICAgIGZvciAoYXV0byogY2hpbGQgPSBjZWxs
Qm94LmZpcnN0SW5GbG93T3JGbG9hdGluZ0NoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0SW5GbG93T3JGbG9hdGluZ1NpYmxpbmcoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGNoaWxkLT5pc0lubGluZVRleHRCb3goKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5ib3hH
ZW9tZXRyeSgqY2hpbGQpLm1vdmVWZXJ0aWNhbGx5KGludHJpbnNpY1BhZGRpbmdUb3ApOwogICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsQm94LmVzdGFi
bGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byYgaW5saW5lRm9ybWF0dGluZ1N0YXRlZSA9IGxheW91dFN0YXRlKCkuZXN0YWJsaXNo
ZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUoY2VsbEJveCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBhdXRvJiBpbmxpbmVGb3JtYXR0aW5nU3RhdGVlID0gbGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5n
U3RhdGVGb3JJbmxpbmVGb3JtYXR0aW5nQ29udGV4dChjZWxsQm94KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGZvciAoYXV0byYgcnVuIDogaW5saW5lRm9ybWF0dGluZ1N0YXRlZS5saW5lUnVu
cygpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bi5tb3ZlVmVydGljYWxseShpbnRy
aW5zaWNQYWRkaW5nVG9wKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoYXV0byYgbGlu
ZSA6IGlubGluZUZvcm1hdHRpbmdTdGF0ZWUubGluZXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVGb3JtYXR0aW5nR2Vv
bWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJs
ZS9UYWJsZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKaW5kZXggNjY5MTA5M2IyNGZmNGJhYzcyZDM5
ZjdmZDYyMjczMDliNDQzNWY0Ni4uZjA0ODkxNzhlZmUyYjJiYzc0MDU2ZDQ5M2Q4NzZhYjc0ODhm
YjRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy90YWJsZS9UYWJsZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZvcm1hdHRpbmdHZW9tZXRyeS5j
cHAKQEAgLTEzMywxNSArMTMzLDE1IEBAIElubGluZUxheW91dFVuaXQgVGFibGVGb3JtYXR0aW5n
R2VvbWV0cnk6OnVzZWRCYXNlbGluZUZvckNlbGwoY29uc3QgQ29udGFpbmVyQm94CiAgICAgLy8g
b3IgdGhlIGZpcnN0IGluLWZsb3cgdGFibGUtcm93IGluIHRoZSBjZWxsLCB3aGljaGV2ZXIgY29t
ZXMgZmlyc3QuCiAgICAgLy8gSWYgdGhlcmUgaXMgbm8gc3VjaCBsaW5lIGJveCwgdGhlIGJhc2Vs
aW5lIGlzIHRoZSBib3R0b20gb2YgY29udGVudCBlZGdlIG9mIHRoZSBjZWxsIGJveC4KICAgICBp
ZiAoY2VsbEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpCi0gICAgICAg
IHJldHVybiBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGNl
bGxCb3gpLmxpbmVzKClbMF0uYmFzZWxpbmUoKTsKKyAgICAgICAgcmV0dXJuIGxheW91dFN0YXRl
KCkuZm9ybWF0dGluZ1N0YXRlRm9ySW5saW5lRm9ybWF0dGluZ0NvbnRleHQoY2VsbEJveCkubGlu
ZXMoKVswXS5iYXNlbGluZSgpOwogICAgIGZvciAoYXV0byYgY2VsbERlc2NlbmRhbnQgOiBkZXNj
ZW5kYW50c09mVHlwZTxDb250YWluZXJCb3g+KGNlbGxCb3gpKSB7CiAgICAgICAgIGlmIChjZWxs
RGVzY2VuZGFudC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKLSAgICAg
ICAgICAgIGF1dG8mIGlubGluZUZvcm1hdHRpbmdTdGF0ZUZvckNlbGwgPSBsYXlvdXRTdGF0ZSgp
LmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGNlbGxEZXNjZW5kYW50KTsKKyAgICAg
ICAgICAgIGF1dG8mIGlubGluZUZvcm1hdHRpbmdTdGF0ZUZvckNlbGwgPSBsYXlvdXRTdGF0ZSgp
LmZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZvcm1hdHRpbmdDb250ZXh0KGNlbGxEZXNjZW5kYW50
KTsKICAgICAgICAgICAgIGlmICghaW5saW5lRm9ybWF0dGluZ1N0YXRlRm9yQ2VsbC5saW5lcygp
LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gaW5saW5lRm9ybWF0dGluZ1N0YXRl
Rm9yQ2VsbC5saW5lcygpWzBdLmJhc2VsaW5lKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGNl
bGxEZXNjZW5kYW50LmVzdGFibGlzaGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpKQotICAgICAg
ICAgICAgcmV0dXJuIGxheW91dFN0YXRlKCkuZXN0YWJsaXNoZWRUYWJsZUZvcm1hdHRpbmdTdGF0
ZShjZWxsRGVzY2VuZGFudCkudGFibGVHcmlkKCkucm93cygpLmxpc3QoKVswXS5iYXNlbGluZSgp
OworICAgICAgICAgICAgcmV0dXJuIGxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRlRm9yVGFi
bGVGb3JtYXR0aW5nQ29udGV4dChjZWxsRGVzY2VuZGFudCkudGFibGVHcmlkKCkucm93cygpLmxp
c3QoKVswXS5iYXNlbGluZSgpOwogICAgIH0KICAgICByZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQo
KS5nZW9tZXRyeUZvckJveChjZWxsQm94KS5jb250ZW50Qm94Qm90dG9tKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5j
cHAKaW5kZXggMWVlMjUxNDBkMTIyOWZjYTg2ZTEwNDNmNzMyMmMyNTNmMDg3MjZkYi4uNTUzMzc2
NzA2ODI1ZDFjODlhNDBhMGEzMjYzZjdiOTE2NWI3ZWIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcApAQCAtMzc4
LDcgKzM3OCw3IEBAIHZvaWQgVHJlZUJ1aWxkZXI6OmJ1aWxkU3ViVHJlZShjb25zdCBSZW5kZXJF
bGVtZW50JiBwYXJlbnRSZW5kZXJlciwgQ29udGFpbmVyQm94CiAjaWYgRU5BQkxFKFRSRUVfREVC
VUdHSU5HKQogdm9pZCBzaG93SW5saW5lVHJlZUFuZFJ1bnMoVGV4dFN0cmVhbSYgc3RyZWFtLCBj
b25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IENvbnRhaW5lckJveCYgaW5saW5l
Rm9ybWF0dGluZ1Jvb3QsIHNpemVfdCBkZXB0aCkKIHsKLSAgICBhdXRvJiBpbmxpbmVGb3JtYXR0
aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZS5lc3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShp
bmxpbmVGb3JtYXR0aW5nUm9vdCk7CisgICAgYXV0byYgaW5saW5lRm9ybWF0dGluZ1N0YXRlID0g
bGF5b3V0U3RhdGUuZm9ybWF0dGluZ1N0YXRlRm9ySW5saW5lRm9ybWF0dGluZ0NvbnRleHQoaW5s
aW5lRm9ybWF0dGluZ1Jvb3QpOwogICAgIGF1dG8mIGxpbmVzID0gaW5saW5lRm9ybWF0dGluZ1N0
YXRlLmxpbmVzKCk7CiAgICAgYXV0byYgbGluZUJveGVzID0gaW5saW5lRm9ybWF0dGluZ1N0YXRl
LmxpbmVCb3hlcygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438064</attachid>
            <date>2021-09-13 12:06:20 -0700</date>
            <delta_ts>2021-09-13 12:09:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229263-20210913120619.patch</filename>
            <type>text/plain</type>
            <size>27444</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ3YWU4MDJmYTZkYjU3
NmNmMDBmNzQ3NjQwMzQ0MDVjZTkxMTk5OC4uYjc0NWNjNTRhNGFjN2QyZGE0YjBkZTc5ODgxZGY3
M2RhMWFjZjIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIxLTA5LTEzICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBSZW5hbWUgTGF5b3V0
U3RhdGU6OmVzdGFibGlzaGVkKkZvcm1hdHRpbmdTdGF0ZSB0byBmb3JtYXR0aW5nU3RhdGVGb3Iq
Rm9ybWF0dGluZ0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyOTI2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIzNjUwNjc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RvcCB1c2luZyAi
ZXN0YWJsaXNoZWQiIHdoZW4gYXNraW5nIGZvciB0aGUgc3RhdGUgb2JqZWN0IGFzc29jaWF0ZWQg
d2l0aCBhIGZvcm1hdHRpbmcgY29udGV4dC4gCisgICAgICAgIFRoZSBzcGVjIHRlcm0sICJlc3Rh
Ymxpc2hlZCIsIGlzIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBhIHBhcnRpY3VsYXIgbm9kZSBpbiB0
aGUgbGF5b3V0IHRyZWUgZm9yY2VzIGEgc2V0IG9mIGZvcm1hdHRpbmcgcnVsZXMgb24gaXRzIGRl
c2NlbmRhbnRzLgorICAgICAgICBUaGlzIHRlcm1zIHdvcmtzIHdlbGwgaW4gdGhlIGNvbnRleHQg
b2YgZm9ybWluZyBmb3JtYXR0aW5nIGNvbnRleHRzLiBIb3dldmVyIHRoZSBjb3JyZXNwb25kaW5n
IChwZXJzaXN0ZW50KWZvcm1hdHRpbmcgc3RhdGVzIGFyZSBub3QgImVzdGFibGlzaGVkIiBpbiB0
aGUgc2FtZSBzZW5zZS4KKworICAgICAgICAqIGRpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlRyZWVCdWlsZGVyOjpidWlsZElubGluZURp
c3BsYXlUcmVlKToKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ1N0YXRlOjpib3hHZW9tZXRyeSk6CisgICAg
ICAgICogbGF5b3V0L0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
TGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvckJveCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpmb3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0aW5nQ29u
dGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpmb3Jt
YXR0aW5nU3RhdGVGb3JJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpmb3JtYXR0aW5nU3RhdGVGb3JCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3Rh
dGU6OmZvcm1hdHRpbmdTdGF0ZUZvclRhYmxlRm9ybWF0dGluZ0NvbnRleHQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRlRm9yRmxl
eEZvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5
b3V0U3RhdGU6OmVuc3VyZUlubGluZUZvcm1hdHRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxheW91dFN0YXRlOjplc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZSBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjplc3RhYmxp
c2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjplc3RhYmxpc2hlZEJsb2NrRm9ybWF0dGluZ1N0YXRl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6
OmVzdGFibGlzaGVkVGFibGVGb3JtYXR0aW5nU3RhdGUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6ZXN0YWJsaXNoZWRGbGV4Rm9ybWF0dGlu
Z1N0YXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0U3RhdGUuaDoK
KyAgICAgICAgKiBsYXlvdXQvVmVyaWZpY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6b3V0cHV0TWlzbWF0Y2hpbmdDb21wbGV4TGluZUluZm9ybWF0aW9uSWZOZWVkZWQpOgor
ICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0dlb21ldHJ5Ojpjb21wdXRl
ZFdpZHRoVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5n
R2VvbWV0cnk6OnNocmlua1RvRml0V2lkdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpGb3JtYXR0aW5nR2VvbWV0cnk6OmNvbXBsaWNhdGVkQ2FzZXMgY29uc3QpOgorICAgICAg
ICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nR2VvbWV0
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdHZW9tZXRy
eTo6aW5GbG93Tm9uUmVwbGFjZWRDb250ZW50SGVpZ2h0QW5kTWFyZ2luIGNvbnN0KToKKyAgICAg
ICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJn
aW5zQ29sbGFwc2VUaHJvdWdoIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2Jsb2NrL3RhYmxld3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVXcmFwcGVyQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6Y29tcHV0ZUJvcmRlckFuZFBhZGRpbmdGb3JUYWJsZUJveCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OmNvbXB1dGVXaWR0aEFuZE1hcmdpbkZvclRhYmxlQm94KToKKyAgICAgICAgKiBsYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RBbmRBbGlnbklubGlu
ZUxldmVsQm94ZXMpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUv
VGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRh
YmxlRm9ybWF0dGluZ0NvbnRleHQ6OnNldFVzZWRHZW9tZXRyeUZvckNlbGxzKToKKyAgICAgICAg
KiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlRm9ybWF0dGluZ0dlb21ldHJ5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVGb3JtYXR0aW5nR2VvbWV0cnk6
OnVzZWRCYXNlbGluZUZvckNlbGwgY29uc3QpOgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVl
L0xheW91dFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6c2hvd0lu
bGluZVRyZWVBbmRSdW5zKToKKwogMjAyMS0wOS0xMyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBEbyBub3QgcGFzcyBpbiB0aGUgSW52YWxpZGF0
aW9uU3RhdGUgdG8gdGhlIGxheW91dCBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Rpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3Bs
YXkvRGlzcGxheVRyZWVCdWlsZGVyLmNwcAppbmRleCBiYTdlMjgzOGJkMjg3YTk5OTIyNzZlOWE5
Y2I3YzEwMzdiNDRlZTcwLi5hNWU4OGUyNDFlOTNiNjU2OTIzMDE2ODZiYzc3ZTA0YzUyZWJiODY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNwbGF5VHJlZUJ1aWxkZXIuY3BwCkBA
IC0zMDMsNyArMzAzLDcgQEAgU3RhY2tpbmdJdGVtKiBUcmVlQnVpbGRlcjo6aW5zZXJ0SW50b1Ry
ZWUoc3RkOjp1bmlxdWVfcHRyPEJveD4mJiBib3gsIEluc2VydGlvblAKIAogdm9pZCBUcmVlQnVp
bGRlcjo6YnVpbGRJbmxpbmVEaXNwbGF5VHJlZShjb25zdCBMYXlvdXQ6OkxheW91dFN0YXRlJiBs
YXlvdXRTdGF0ZSwgY29uc3QgTGF5b3V0OjpDb250YWluZXJCb3gmIGlubGluZUZvcm1hdHRpbmdS
b290LCBJbnNlcnRpb25Qb3NpdGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7Ci0gICAgYXV0byYg
aW5saW5lRm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUuZXN0YWJsaXNoZWRJbmxpbmVGb3Jt
YXR0aW5nU3RhdGUoaW5saW5lRm9ybWF0dGluZ1Jvb3QpOworICAgIGF1dG8mIGlubGluZUZvcm1h
dHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlLmZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZvcm1hdHRp
bmdDb250ZXh0KGlubGluZUZvcm1hdHRpbmdSb290KTsKIAogICAgIGZvciAoYXV0byYgcnVuIDog
aW5saW5lRm9ybWF0dGluZ1N0YXRlLnJ1bnMoKSkgewogICAgICAgICBpZiAocnVuLmlzUm9vdElu
bGluZUJveCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGlu
Z1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwCmlu
ZGV4IGUxNDdjNTk4NDE0MGQ2MTgyN2Y4YjQyYzJiM2JiMThhODQ3YTQwMTcuLjM5NDdjZDE2ZmZh
YzRkZWFkZDY0Mjg4YzQxMGZjZWJiOTJjYWI1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nU3RhdGUuY3BwCkBAIC01MSw3ICs1MSw3IEBAIEZvcm1hdHRpbmdTdGF0ZTo6fkZv
cm1hdHRpbmdTdGF0ZSgpCiBCb3hHZW9tZXRyeSYgRm9ybWF0dGluZ1N0YXRlOjpib3hHZW9tZXRy
eShjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICAvLyBTaG91bGQgbmV2ZXIgbmVlZCB0byBt
dXRhdGUgYSBkaXNwbGF5IGJveCBvdXRzaWRlIG9mIHRoZSBmb3JtYXR0aW5nIGNvbnRleHQuCi0g
ICAgQVNTRVJUKCZsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGxheW91
dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSkgPT0gdGhpcyk7CisgICAgQVNTRVJUKCZsYXlv
dXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0KGxheW91dEJveC5m
b3JtYXR0aW5nQ29udGV4dFJvb3QoKSkgPT0gdGhpcyk7CiAgICAgLy8gQW5vbnltb3VzIHRleHQg
d3JhcHBlcnMgZG8gbm90IG5lZWQgdG8gY29tcHV0ZSBib3ggZ2VvbWV0cnkuIFRoZXkgaW5pdGlh
dGUgaW5saW5lIHJ1bnMuCiAgICAgQVNTRVJUKCFsYXlvdXRCb3guaXNJbmxpbmVUZXh0Qm94KCkp
OwogICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmVuc3VyZUdlb21ldHJ5Rm9yQm94KGxheW91dEJv
eCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcAppbmRleCBmOTI4YjgyNjk5YTE3
MGMwODVkM2U2Y2NlODI2MzE4ZTE0MzYyZTdlLi4wZDAyMWY0NDVkNTE1YmFlOTIzODdiYWE4NDVm
ODM5MWYyNWRkMGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3Rh
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKQEAgLTg1
LDcgKzg1LDcgQEAgQm94R2VvbWV0cnkmIExheW91dFN0YXRlOjplbnN1cmVHZW9tZXRyeUZvckJv
eFNsb3coY29uc3QgQm94JiBsYXlvdXRCb3gpCiAKIEZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3Rh
dGU6OmZvcm1hdHRpbmdTdGF0ZUZvckJveChjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsK
LSAgICByZXR1cm4gZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUobGF5b3V0Qm94LmZvcm1hdHRp
bmdDb250ZXh0Um9vdCgpKTsKKyAgICByZXR1cm4gZm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGlu
Z0NvbnRleHQobGF5b3V0Qm94LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKTsKIH0KIAogYm9vbCBM
YXlvdXRTdGF0ZTo6aGFzRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0
dGluZ0NvbnRleHRSb290KSBjb25zdApAQCAtOTcsNTYgKzk3LDU3IEBAIGJvb2wgTGF5b3V0U3Rh
dGU6Omhhc0Zvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250
ZXh0Um9vdCkKICAgICAgICAgfHwgbV9mbGV4Rm9ybWF0dGluZ1N0YXRlcy5jb250YWlucygmZm9y
bWF0dGluZ0NvbnRleHRSb290KTsKIH0KIAotRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6
ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5n
Q29udGV4dFJvb3QpIGNvbnN0CitGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpmb3JtYXR0
aW5nU3RhdGVGb3JGb3JtYXR0aW5nQ29udGV4dChjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRp
bmdDb250ZXh0Um9vdCkgY29uc3QKIHsKKyAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290
LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSk7CiAgICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3Jh
dGlvbkVuYWJsZWQoKSkgewogICAgICAgICBBU1NFUlQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCA9
PSBtX3Jvb3RDb250YWluZXIuZ2V0KCkpOwogICAgICAgICByZXR1cm4gKm1fcm9vdElubGluZUZv
cm1hdHRpbmdTdGF0ZUZvckludGVncmF0aW9uOwogICAgIH0KIAotICAgIGlmIChhdXRvKiBmb3Jt
YXR0aW5nU3RhdGUgPSBtX2lubGluZUZvcm1hdHRpbmdTdGF0ZXMuZ2V0KCZmb3JtYXR0aW5nQ29u
dGV4dFJvb3QpKQotICAgICAgICByZXR1cm4gKmZvcm1hdHRpbmdTdGF0ZTsKKyAgICBpZiAoZm9y
bWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSkK
KyAgICAgICAgcmV0dXJuIGZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZvcm1hdHRpbmdDb250ZXh0
KGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAKLSAgICBpZiAoYXV0byogZm9ybWF0dGluZ1N0YXRl
ID0gbV9ibG9ja0Zvcm1hdHRpbmdTdGF0ZXMuZ2V0KCZmb3JtYXR0aW5nQ29udGV4dFJvb3QpKQot
ICAgICAgICByZXR1cm4gKmZvcm1hdHRpbmdTdGF0ZTsKKyAgICBpZiAoZm9ybWF0dGluZ0NvbnRl
eHRSb290LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpKQorICAgICAgICByZXR1
cm4gZm9ybWF0dGluZ1N0YXRlRm9yQmxvY2tGb3JtYXR0aW5nQ29udGV4dChmb3JtYXR0aW5nQ29u
dGV4dFJvb3QpOwogCi0gICAgaWYgKGF1dG8qIGZvcm1hdHRpbmdTdGF0ZSA9IG1fdGFibGVGb3Jt
YXR0aW5nU3RhdGVzLmdldCgmZm9ybWF0dGluZ0NvbnRleHRSb290KSkKLSAgICAgICAgcmV0dXJu
ICpmb3JtYXR0aW5nU3RhdGU7CisgICAgaWYgKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5lc3RhYmxp
c2hlc1RhYmxlRm9ybWF0dGluZ0NvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRpbmdT
dGF0ZUZvclRhYmxlRm9ybWF0dGluZ0NvbnRleHQoZm9ybWF0dGluZ0NvbnRleHRSb290KTsKIAot
ICAgIGlmIChhdXRvKiBmb3JtYXR0aW5nU3RhdGUgPSBtX2ZsZXhGb3JtYXR0aW5nU3RhdGVzLmdl
dCgmZm9ybWF0dGluZ0NvbnRleHRSb290KSkKLSAgICAgICAgcmV0dXJuICpmb3JtYXR0aW5nU3Rh
dGU7CisgICAgaWYgKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5lc3RhYmxpc2hlc0ZsZXhGb3JtYXR0
aW5nQ29udGV4dCgpKQorICAgICAgICByZXR1cm4gZm9ybWF0dGluZ1N0YXRlRm9yRmxleEZvcm1h
dHRpbmdDb250ZXh0KGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAKICAgICBDUkFTSCgpOwogfQog
Ci1JbmxpbmVGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjplc3RhYmxpc2hlZElubGluZUZv
cm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkg
Y29uc3QKK0lubGluZUZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0
ZUZvcklubGluZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lckJveCYgaW5saW5lRm9y
bWF0dGluZ0NvbnRleHRSb290KSBjb25zdAogewotICAgIEFTU0VSVChmb3JtYXR0aW5nQ29udGV4
dFJvb3QuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKTsKKyAgICBBU1NFUlQo
aW5saW5lRm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQoKSk7CiAKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5sYXlvdXRGb3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5hYmxlZCgpKSB7Ci0gICAg
ICAgIEFTU0VSVCgmZm9ybWF0dGluZ0NvbnRleHRSb290ID09IG1fcm9vdENvbnRhaW5lci5nZXQo
KSk7CisgICAgICAgIEFTU0VSVCgmaW5saW5lRm9ybWF0dGluZ0NvbnRleHRSb290ID09IG1fcm9v
dENvbnRhaW5lci5nZXQoKSk7CiAgICAgICAgIHJldHVybiAqbV9yb290SW5saW5lRm9ybWF0dGlu
Z1N0YXRlRm9ySW50ZWdyYXRpb247CiAgICAgfQogCi0gICAgcmV0dXJuICptX2lubGluZUZvcm1h
dHRpbmdTdGF0ZXMuZ2V0KCZmb3JtYXR0aW5nQ29udGV4dFJvb3QpOworICAgIHJldHVybiAqbV9p
bmxpbmVGb3JtYXR0aW5nU3RhdGVzLmdldCgmaW5saW5lRm9ybWF0dGluZ0NvbnRleHRSb290KTsK
IH0KIAotQmxvY2tGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjplc3RhYmxpc2hlZEJsb2Nr
Rm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290
KSBjb25zdAorQmxvY2tGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpmb3JtYXR0aW5nU3Rh
dGVGb3JCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lckJveCYgYmxvY2tGb3Jt
YXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGZvcm1hdHRpbmdDb250ZXh0
Um9vdC5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSk7Ci0gICAgcmV0dXJuICpt
X2Jsb2NrRm9ybWF0dGluZ1N0YXRlcy5nZXQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CisgICAg
QVNTRVJUKGJsb2NrRm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0
aW5nQ29udGV4dCgpKTsKKyAgICByZXR1cm4gKm1fYmxvY2tGb3JtYXR0aW5nU3RhdGVzLmdldCgm
YmxvY2tGb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogfQogCi1UYWJsZUZvcm1hdHRpbmdTdGF0ZSYg
TGF5b3V0U3RhdGU6OmVzdGFibGlzaGVkVGFibGVGb3JtYXR0aW5nU3RhdGUoY29uc3QgQ29udGFp
bmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0CitUYWJsZUZvcm1hdHRpbmdTdGF0
ZSYgTGF5b3V0U3RhdGU6OmZvcm1hdHRpbmdTdGF0ZUZvclRhYmxlRm9ybWF0dGluZ0NvbnRleHQo
Y29uc3QgQ29udGFpbmVyQm94JiB0YWJsZUZvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3QKIHsK
LSAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzVGFibGVGb3JtYXR0
aW5nQ29udGV4dCgpKTsKLSAgICByZXR1cm4gKm1fdGFibGVGb3JtYXR0aW5nU3RhdGVzLmdldCgm
Zm9ybWF0dGluZ0NvbnRleHRSb290KTsKKyAgICBBU1NFUlQodGFibGVGb3JtYXR0aW5nQ29udGV4
dFJvb3QuZXN0YWJsaXNoZXNUYWJsZUZvcm1hdHRpbmdDb250ZXh0KCkpOworICAgIHJldHVybiAq
bV90YWJsZUZvcm1hdHRpbmdTdGF0ZXMuZ2V0KCZ0YWJsZUZvcm1hdHRpbmdDb250ZXh0Um9vdCk7
CiB9CiAKLUZsZXhGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjplc3RhYmxpc2hlZEZsZXhG
b3JtYXR0aW5nU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3Qp
IGNvbnN0CitGbGV4Rm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6Zm9ybWF0dGluZ1N0YXRl
Rm9yRmxleEZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lckJveCYgZmxleEZvcm1hdHRp
bmdDb250ZXh0Um9vdCkgY29uc3QKIHsKLSAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290
LmVzdGFibGlzaGVzRmxleEZvcm1hdHRpbmdDb250ZXh0KCkpOwotICAgIHJldHVybiAqbV9mbGV4
Rm9ybWF0dGluZ1N0YXRlcy5nZXQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CisgICAgQVNTRVJU
KGZsZXhGb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNGbGV4Rm9ybWF0dGluZ0NvbnRl
eHQoKSk7CisgICAgcmV0dXJuICptX2ZsZXhGb3JtYXR0aW5nU3RhdGVzLmdldCgmZmxleEZvcm1h
dHRpbmdDb250ZXh0Um9vdCk7CiB9CiAKIElubGluZUZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3Rh
dGU6OmVuc3VyZUlubGluZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1h
dHRpbmdDb250ZXh0Um9vdCkKQEAgLTE2Miw3ICsxNjMsOCBAQCBJbmxpbmVGb3JtYXR0aW5nU3Rh
dGUmIExheW91dFN0YXRlOjplbnN1cmVJbmxpbmVGb3JtYXR0aW5nU3RhdGUoY29uc3QgQ29udGFp
bmVyQgogCiAgICAgICAgIC8vIE90aGVyd2lzZSwgdGhlIGZvcm1hdHRpbmcgY29udGV4dCBpbmhl
cml0cyB0aGUgZmxvYXRzIGZyb20gdGhlIHBhcmVudCBmb3JtYXR0aW5nIGNvbnRleHQuCiAgICAg
ICAgIC8vIEZpbmQgdGhlIGZvcm1hdHRpbmcgc3RhdGUgaW4gd2hpY2ggdGhpcyBmb3JtYXR0aW5n
IHJvb3QgbGl2ZXMsIG5vdCB0aGUgb25lIGl0IGNyZWF0ZXMgYW5kIHVzZSBpdHMgZmxvYXRpbmcg
c3RhdGUuCi0gICAgICAgIGF1dG8mIHBhcmVudEZvcm1hdHRpbmdTdGF0ZSA9IGVzdGFibGlzaGVk
QmxvY2tGb3JtYXR0aW5nU3RhdGUoZm9ybWF0dGluZ0NvbnRleHRSb290LmZvcm1hdHRpbmdDb250
ZXh0Um9vdCgpKTsKKyAgICAgICAgQVNTRVJUKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5mb3JtYXR0
aW5nQ29udGV4dFJvb3QoKS5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSk7Cisg
ICAgICAgIGF1dG8mIHBhcmVudEZvcm1hdHRpbmdTdGF0ZSA9IGZvcm1hdHRpbmdTdGF0ZUZvckJs
b2NrRm9ybWF0dGluZ0NvbnRleHQoZm9ybWF0dGluZ0NvbnRleHRSb290LmZvcm1hdHRpbmdDb250
ZXh0Um9vdCgpKTsKICAgICAgICAgYXV0byYgcGFyZW50RmxvYXRpbmdTdGF0ZSA9IHBhcmVudEZv
cm1hdHRpbmdTdGF0ZS5mbG9hdGluZ1N0YXRlKCk7CiAgICAgICAgIHJldHVybiBtYWtlVW5pcXVl
PElubGluZUZvcm1hdHRpbmdTdGF0ZT4ocGFyZW50RmxvYXRpbmdTdGF0ZSwgKnRoaXMpOwogICAg
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oCmluZGV4IDVkZGJjMzZiM2E3Yjg4ODA2
MzZlODhlNDFlZjBmNWMwZmU0NzNjMjguLjUxNGJkOTYwMDQzMDBiYjIyMTNhOGNlMDEyZDRkMDRl
MmQ3NjNkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oCkBAIC01NywxMiArNTcs
MTIgQEAgcHVibGljOgogICAgIFRhYmxlRm9ybWF0dGluZ1N0YXRlJiBlbnN1cmVUYWJsZUZvcm1h
dHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAg
ICAgRmxleEZvcm1hdHRpbmdTdGF0ZSYgZW5zdXJlRmxleEZvcm1hdHRpbmdTdGF0ZShjb25zdCBD
b250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAKLSAgICBGb3JtYXR0aW5nU3Rh
dGUmIGVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0
dGluZ1Jvb3QpIGNvbnN0OwotICAgIElubGluZUZvcm1hdHRpbmdTdGF0ZSYgZXN0YWJsaXNoZWRJ
bmxpbmVGb3JtYXR0aW5nU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4
dFJvb3QpIGNvbnN0OwotICAgIEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBlc3RhYmxpc2hlZEJsb2Nr
Rm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290
KSBjb25zdDsKLSAgICBUYWJsZUZvcm1hdHRpbmdTdGF0ZSYgZXN0YWJsaXNoZWRUYWJsZUZvcm1h
dHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29u
c3Q7Ci0gICAgRmxleEZvcm1hdHRpbmdTdGF0ZSYgZXN0YWJsaXNoZWRGbGV4Rm9ybWF0dGluZ1N0
YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0NvbnRleHRSb290KSBjb25zdDsKKyAg
ICBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZvcm1hdHRp
bmdDb250ZXh0KGNvbnN0IENvbnRhaW5lckJveCYgaW5saW5lRm9ybWF0dGluZ0NvbnRleHRSb290
KSBjb25zdDsKKyAgICBCbG9ja0Zvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlRm9yQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dChjb25zdCBDb250YWluZXJCb3gmIGJsb2NrRm9ybWF0dGluZ0Nv
bnRleHRSb290KSBjb25zdDsKKyAgICBUYWJsZUZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0
YXRlRm9yVGFibGVGb3JtYXR0aW5nQ29udGV4dChjb25zdCBDb250YWluZXJCb3gmIHRhYmxlRm9y
bWF0dGluZ0NvbnRleHRSb290KSBjb25zdDsKKyAgICBGbGV4Rm9ybWF0dGluZ1N0YXRlJiBmb3Jt
YXR0aW5nU3RhdGVGb3JGbGV4Rm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyQm94JiBm
bGV4Rm9ybWF0dGluZ0NvbnRleHRSb290KSBjb25zdDsKIAorICAgIEZvcm1hdHRpbmdTdGF0ZSYg
Zm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyQm94JiBm
b3JtYXR0aW5nUm9vdCkgY29uc3Q7CiAgICAgRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3Rh
dGVGb3JCb3goY29uc3QgQm94JikgY29uc3Q7CiAKICAgICBib29sIGhhc0Zvcm1hdHRpbmdTdGF0
ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdSb290KSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAKaW5kZXggY2U0MTExZWJkOTQ0OWYxOTA3NzI2YmRhMzQ5
N2NlZDIxMjc0YzhmOC4uOTI5ZjEwOTdjNmIyM2YxYjRjZDk1OTUyZjhmMjAwYjMyM2YxZTM1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAKQEAgLTExNyw3ICsxMTcsNyBA
QCBzdGF0aWMgdm9pZCBjb2xsZWN0SW5saW5lQm94ZXMoY29uc3QgUmVuZGVyQmxvY2tGbG93JiBy
b290LCBWZWN0b3I8V2ViQ29yZTo6TGVnYQogCiBzdGF0aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGlu
Z0NvbXBsZXhMaW5lSW5mb3JtYXRpb25JZk5lZWRlZChUZXh0U3RyZWFtJiBzdHJlYW0sIGNvbnN0
IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3QgUmVuZGVyQmxvY2tGbG93JiBibG9ja0Zs
b3csIGNvbnN0IENvbnRhaW5lckJveCYgaW5saW5lRm9ybWF0dGluZ1Jvb3QpCiB7Ci0gICAgYXV0
byYgaW5saW5lRm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUuZXN0YWJsaXNoZWRGb3JtYXR0
aW5nU3RhdGUoaW5saW5lRm9ybWF0dGluZ1Jvb3QpOworICAgIGF1dG8mIGlubGluZUZvcm1hdHRp
bmdTdGF0ZSA9IGxheW91dFN0YXRlLmZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0
KGlubGluZUZvcm1hdHRpbmdSb290KTsKICAgICBhdXRvJiBydW5zID0gZG93bmNhc3Q8SW5saW5l
Rm9ybWF0dGluZ1N0YXRlPihpbmxpbmVGb3JtYXR0aW5nU3RhdGUpLnJ1bnMoKTsKICAgICAvLyBD
b2xsZWN0IGlubGluZWJveGVzLgogICAgIFZlY3RvcjxXZWJDb3JlOjpMZWdhY3lJbmxpbmVCb3gq
PiBpbmxpbmVCb3hlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcAppbmRleCA0YjhlZDJj
ZjRkZjUxOTRmNWM5MDEyMDc4YzU0NmM0NWEyY2Y2YjVmLi4yOWEwMDZmYzMxNGUzZDExOTI0ZjYw
Yjg3MWI4MmUwNjI4YjcyZWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwCkBAIC0x
NDksNyArMTQ5LDcgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBGb3JtYXR0aW5nR2VvbWV0
cnk6OmNvbXB1dGVkV2lkdGhWYWx1ZShjb25zdCBCb3gmIGxheW8KICAgICAgICAgICAgIEFTU0VS
VChjb250YWluZXJCb3guZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKICAgICAgICAg
ICAgIGF1dG8mIGxheW91dFN0YXRlID0gdGhpcy0+bGF5b3V0U3RhdGUoKTsKICAgICAgICAgICAg
IGlmIChsYXlvdXRTdGF0ZS5oYXNGb3JtYXR0aW5nU3RhdGUoY29udGFpbmVyQm94KSkgewotICAg
ICAgICAgICAgICAgIGlmIChhdXRvIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgPSBsYXlvdXRT
dGF0ZS5lc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShjb250YWluZXJCb3gpLmludHJpbnNpY1dp
ZHRoQ29uc3RyYWludHMoKSkKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBpbnRyaW5zaWNXaWR0
aENvbnN0cmFpbnRzID0gbGF5b3V0U3RhdGUuZm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ0Nv
bnRleHQoY29udGFpbmVyQm94KS5pbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCkpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAqaW50cmluc2ljV2lkdGhDb25zdHJhaW50czsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHJldHVybiBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5n
Q29udGV4dChjb250YWluZXJCb3gsIGNvbnN0X2Nhc3Q8TGF5b3V0U3RhdGUmPihsYXlvdXRTdGF0
ZSkpLT5jb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKTsKQEAgLTMxMyw3ICszMTMs
NyBAQCBMYXlvdXRVbml0IEZvcm1hdHRpbmdHZW9tZXRyeTo6c2hyaW5rVG9GaXRXaWR0aChjb25z
dCBCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdAogICAgICAgICBhdXRvJiBsYXlvdXRTdGF0ZSA9
IHRoaXMtPmxheW91dFN0YXRlKCk7CiAgICAgICAgIGF1dG8mIHJvb3QgPSBkb3duY2FzdDxDb250
YWluZXJCb3g+KGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAgICAgICAgIGlmIChsYXlvdXRTdGF0
ZS5oYXNGb3JtYXR0aW5nU3RhdGUocm9vdCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIGludHJp
bnNpY1dpZHRoQ29uc3RyYWludHMgPSBsYXlvdXRTdGF0ZS5lc3RhYmxpc2hlZEZvcm1hdHRpbmdT
dGF0ZShyb290KS5pbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCkpCisgICAgICAgICAgICBpZiAo
YXV0byBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzID0gbGF5b3V0U3RhdGUuZm9ybWF0dGluZ1N0
YXRlRm9yRm9ybWF0dGluZ0NvbnRleHQocm9vdCkuaW50cmluc2ljV2lkdGhDb25zdHJhaW50cygp
KQogICAgICAgICAgICAgICAgIHJldHVybiAqaW50cmluc2ljV2lkdGhDb25zdHJhaW50czsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0Nv
bnRleHQocm9vdCwgY29uc3RfY2FzdDxMYXlvdXRTdGF0ZSY+KGxheW91dFN0YXRlKSktPmNvbXB1
dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpOwpAQCAtNzk4LDcgKzc5OCw3IEBAIENvbnRl
bnRIZWlnaHRBbmRNYXJnaW4gRm9ybWF0dGluZ0dlb21ldHJ5Ojpjb21wbGljYXRlZENhc2VzKGNv
bnN0IEJveCYgbGF5b3V0Qm94CiAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgc3BlY2lhbCAocXVp
cms/KSBiZWhhdmlvciBzaW5jZSB0aGUgZG9jdW1lbnQgYm94IGlzIG5vdCBhIGZvcm1hdHRpbmcg
Y29udGV4dCByb290IGFuZAogICAgICAgICAgICAgLy8gYWxsIHRoZSBmbG9hdCBib3hlcyBlbmQg
dXAgYXQgdGhlIElDQiBsZXZlbC4KICAgICAgICAgICAgIGF1dG8mIGluaXRpYWxDb250YWluaW5n
QmxvY2sgPSBkb2N1bWVudEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKTsKLSAgICAgICAgICAg
IGF1dG8gZmxvYXRpbmdDb250ZXh0ID0gRmxvYXRpbmdDb250ZXh0IHsgZm9ybWF0dGluZ0NvbnRl
eHQoKSwgbGF5b3V0U3RhdGUoKS5lc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShpbml0aWFsQ29u
dGFpbmluZ0Jsb2NrKS5mbG9hdGluZ1N0YXRlKCkgfTsKKyAgICAgICAgICAgIGF1dG8gZmxvYXRp
bmdDb250ZXh0ID0gRmxvYXRpbmdDb250ZXh0IHsgZm9ybWF0dGluZ0NvbnRleHQoKSwgbGF5b3V0
U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JGb3JtYXR0aW5nQ29udGV4dChpbml0aWFsQ29udGFp
bmluZ0Jsb2NrKS5mbG9hdGluZ1N0YXRlKCkgfTsKICAgICAgICAgICAgIGlmIChhdXRvIGZsb2F0
Qm90dG9tID0gZmxvYXRpbmdDb250ZXh0LmJvdHRvbSgpKSB7CiAgICAgICAgICAgICAgICAgYm90
dG9tID0gc3RkOjptYXg8TGF5b3V0VW5pdD4oKmZsb2F0Qm90dG9tLCBib3R0b20pOwogICAgICAg
ICAgICAgICAgIGF1dG8gZmxvYXRUb3AgPSBmbG9hdGluZ0NvbnRleHQudG9wKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2Nr
Rm9ybWF0dGluZ0dlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCmluZGV4IDJkMDAwNGMy
NjJiYzRmNTcyYTQyNjc4N2QwOWUzZjI3NGRhNzY3OTkuLjRkNjRkMTdkMTkyMWI3ZGFlZTZlZGNl
YTc2ZmRkMzBiMzBjNWVkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0
aW5nR2VvbWV0cnkuY3BwCkBAIC04Myw3ICs4Myw3IEBAIENvbnRlbnRIZWlnaHRBbmRNYXJnaW4g
QmxvY2tGb3JtYXR0aW5nR2VvbWV0cnk6OmluRmxvd05vblJlcGxhY2VkQ29udGVudEhlaWdodEFu
CiAgICAgICAgIC8vIDEuIHRoZSBib3R0b20gZWRnZSBvZiB0aGUgbGFzdCBsaW5lIGJveCwgaWYg
dGhlIGJveCBlc3RhYmxpc2hlcyBhIGlubGluZSBmb3JtYXR0aW5nIGNvbnRleHQgd2l0aCBvbmUg
b3IgbW9yZSBsaW5lcwogICAgICAgICBhdXRvJiBsYXlvdXRDb250YWluZXIgPSBkb3duY2FzdDxD
b250YWluZXJCb3g+KGxheW91dEJveCk7CiAgICAgICAgIGlmIChsYXlvdXRDb250YWluZXIuZXN0
YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBp
bmxpbmVGb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5saW5lRm9y
bWF0dGluZ1N0YXRlKGxheW91dENvbnRhaW5lcik7CisgICAgICAgICAgICBhdXRvJiBpbmxpbmVG
b3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZv
cm1hdHRpbmdDb250ZXh0KGxheW91dENvbnRhaW5lcik7CiAgICAgICAgICAgICBhdXRvJiBsaW5l
cyA9IGlubGluZUZvcm1hdHRpbmdTdGF0ZS5saW5lcygpOwogICAgICAgICAgICAgLy8gRXZlbiBl
bXB0eSBjb250YWluZXJzIGdlbmVyYXRlIG9uZSBsaW5lLiAKICAgICAgICAgICAgIEFTU0VSVCgh
bGluZXMuaXNFbXB0eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2Uu
Y3BwCmluZGV4IDNmYzk3MmZhODQ2ZTc0OWJjYTYxZTJmMzAyNmYxODhmZjA0NDFhZTIuLjNjNTY3
NWE0ZTY4MGUwYTY0MjMyMjExZTFhZDBhYzEyZGZlYTIzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9j
ay9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcApAQCAtNDEzLDcgKzQxMyw3IEBAIGJvb2wgQmxvY2tN
YXJnaW5Db2xsYXBzZTo6bWFyZ2luc0NvbGxhcHNlVGhyb3VnaChjb25zdCBCb3gmIGxheW91dEJv
eCkgY29uc3QKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgIGF1
dG8gaXNDb25zaWRlcmVkRW1wdHkgPSBbJl0gewotICAgICAgICAgICAgICAgIGF1dG8mIGlubGlu
ZUZvcm1hdHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlLmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGlu
Z1N0YXRlKGNvbnRhaW5lckJveCk7CisgICAgICAgICAgICAgICAgYXV0byYgaW5saW5lRm9ybWF0
dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUuZm9ybWF0dGluZ1N0YXRlRm9ySW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQoY29udGFpbmVyQm94KTsKICAgICAgICAgICAgICAgICBpZiAoIWlubGluZUZvcm1h
dHRpbmdTdGF0ZS5saW5lcygpLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgICAgIC8vIEFueSBmbG9hdCBib3ggaW4gdGhpcyBmb3JtYXR0
aW5nIGNvbnRleHQgcHJldmVudHMgY29sbGFwc2luZyB0aHJvdWdoLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay90YWJsZXdyYXBwZXIv
VGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL3RhYmxld3JhcHBlci9UYWJsZVdyYXBwZXJC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCAxMTMxZGVmZjYwZWI0YTYyZDA2MWZjZjc3
NzUzOGY2YzM1ZGZmOTU2Li45YTUyMjU0YzA5MjQ0ZTc2NDY4YWQ2MzQzOWYyMDM0YWMyMjk5ZGQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Js
b2NrL3RhYmxld3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL3RhYmxl
d3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMTAxLDcg
KzEwMSw3IEBAIHZvaWQgVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0
ZUJvcmRlckFuZFBhZGRpbmdGb3JUYWJsZUJveChjb25zCiAgICAgLy8gYm9yZGVycyB3aXRoIHRo
ZSB0b3AgYm9yZGVyIG9mIHRoZSB0YWJsZS4gVGhlIHRvcCBib3JkZXIgd2lkdGggb2YgdGhlIHRh
YmxlIGlzIGVxdWFsIHRvIGhhbGYgb2YgdGhlCiAgICAgLy8gbWF4aW11bSBjb2xsYXBzZWQgdG9w
IGJvcmRlci4gVGhlIGJvdHRvbSBib3JkZXIgd2lkdGggaXMgY29tcHV0ZWQgYnkgZXhhbWluaW5n
IGFsbCBjZWxscyB3aG9zZSBib3R0b20gYm9yZGVycyBjb2xsYXBzZQogICAgIC8vIHdpdGggdGhl
IGJvdHRvbSBvZiB0aGUgdGFibGUuIFRoZSBib3R0b20gYm9yZGVyIHdpZHRoIGlzIGVxdWFsIHRv
IGhhbGYgb2YgdGhlIG1heGltdW0gY29sbGFwc2VkIGJvdHRvbSBib3JkZXIuCi0gICAgYXV0byYg
Z3JpZCA9IGxheW91dFN0YXRlKCkuZXN0YWJsaXNoZWRUYWJsZUZvcm1hdHRpbmdTdGF0ZSh0YWJs
ZUJveCkudGFibGVHcmlkKCk7CisgICAgYXV0byYgZ3JpZCA9IGxheW91dFN0YXRlKCkuZm9ybWF0
dGluZ1N0YXRlRm9yVGFibGVGb3JtYXR0aW5nQ29udGV4dCh0YWJsZUJveCkudGFibGVHcmlkKCk7
CiAgICAgYXV0byB0YWJsZUJvcmRlciA9IGZvcm1hdHRpbmdHZW9tZXRyeSgpLmNvbXB1dGVkQm9y
ZGVyKHRhYmxlQm94KTsKIAogICAgIGF1dG8mIGZpcnN0Q29sdW1uRmlyc3RSb3dCb3ggPSBncmlk
LnNsb3QoeyAwICwgMCB9KS0+Y2VsbCgpLmJveCgpOwpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQg
VGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2lu
Rm9yVGFibGVCb3goY29uc3QKICAgICBBU1NFUlQodGFibGVCb3guaXNUYWJsZUJveCgpKTsKICAg
ICAvLyBUaGlzIGlzIGEgc3BlY2lhbCB0YWJsZSAiZml0LWNvbnRlbnQgc2l6ZSIgYmVoYXZpb3Ig
aGFuZGxpbmcuIE5vdCBpbiB0aGUgc3BlYyB0aG91Z2guCiAgICAgLy8gVGFibGUgcmV0dXJucyBp
dHMgZmluYWwgd2lkdGggYXMgbWluL21heC4gVXNlIHRoaXMgZmluYWwgd2lkdGggdmFsdWUgdG8g
Y29tcHV0ZWQgaG9yaXpvbnRhbCBtYXJnaW5zIGV0Yy4KLSAgICBhdXRvJiBmb3JtYXR0aW5nU3Rh
dGVGb3JUYWJsZUJveCA9IGxheW91dFN0YXRlKCkuZXN0YWJsaXNoZWRUYWJsZUZvcm1hdHRpbmdT
dGF0ZSh0YWJsZUJveCk7CisgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlRm9yVGFibGVCb3ggPSBs
YXlvdXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvclRhYmxlRm9ybWF0dGluZ0NvbnRleHQodGFi
bGVCb3gpOwogICAgIGF1dG8gaW50cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IEludHJpbnNpY1dp
ZHRoQ29uc3RyYWludHMgeyB9OwogICAgIGlmIChhdXRvIHByZWNvbXB1dGVkSW50cmluc2ljV2lk
dGhDb25zdHJhaW50cyA9IGZvcm1hdHRpbmdTdGF0ZUZvclRhYmxlQm94LmludHJpbnNpY1dpZHRo
Q29uc3RyYWludHMoKSkKICAgICAgICAgaW50cmluc2ljV2lkdGhDb25zdHJhaW50cyA9ICpwcmVj
b21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lQm94QnVpbGRlci5jcHAKaW5kZXggOWJjN2FjNTZkNWU3M2IzMTU2ODZkYzA1YmYz
ZmE5ZDE2ZWQ0YmU4Yy4uZjhmZDgwZDI1MGVkZTVkYTVjMzRjMjJiZTBiZGNkZmNmMDQ0N2RlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcApAQCAtMjc4
LDcgKzI3OCw3IEBAIElubGluZUxheW91dFVuaXQgTGluZUJveEJ1aWxkZXI6OmNvbnN0cnVjdEFu
ZEFsaWduSW5saW5lTGV2ZWxCb3hlcyhMaW5lQm94JiBsaW5lCiAgICAgICAgICAgICAgICAgaWYg
KHN5bnRoZXNpemVCYXNlbGluZSkKICAgICAgICAgICAgICAgICAgICAgYXNjZW50ID0gbWFyZ2lu
Qm94SGVpZ2h0OwogICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBh
dXRvJiBmb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5saW5lRm9y
bWF0dGluZ1N0YXRlKGRvd25jYXN0PENvbnRhaW5lckJveD4obGF5b3V0Qm94KSk7CisgICAgICAg
ICAgICAgICAgICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlKCkuZm9ybWF0
dGluZ1N0YXRlRm9ySW5saW5lRm9ybWF0dGluZ0NvbnRleHQoZG93bmNhc3Q8Q29udGFpbmVyQm94
PihsYXlvdXRCb3gpKTsKICAgICAgICAgICAgICAgICAgICAgYXV0byYgbGFzdExpbmUgPSBmb3Jt
YXR0aW5nU3RhdGUubGluZXMoKS5sYXN0KCk7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gaW5s
aW5lQmxvY2tCYXNlbGluZSA9IGxhc3RMaW5lLmxpbmVCb3hMb2dpY2FsUmVjdCgpLnRvcCgpICsg
bGFzdExpbmUuYmFzZWxpbmUoKTsKICAgICAgICAgICAgICAgICAgICAgYXNjZW50ID0gaW5saW5l
TGV2ZWxCb3hHZW9tZXRyeS5tYXJnaW5CZWZvcmUoKSArIGlubGluZUxldmVsQm94R2VvbWV0cnku
Ym9yZGVyVG9wKCkgKyBpbmxpbmVMZXZlbEJveEdlb21ldHJ5LnBhZGRpbmdUb3AoKS52YWx1ZV9v
cigwKSArIGlubGluZUJsb2NrQmFzZWxpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZv
cm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA4NWQ4ZDE1NGM4ZmZiN2U2NzA2MzVhNzc0YjM2MWY1
OWQ4NjFhMWExLi5lZTNlYTlmZWQyNzgxMmVkNjk4Y2Q2YjBiM2JkMmY5MmRlNTRjOTkzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1Rh
YmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTE1NCwx
NCArMTU0LDE0IEBAIHZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6c2V0VXNlZEdlb21ldHJ5
Rm9yQ2VsbHMoTGF5b3V0VW5pdCBhdmFpbGFibGVIb3Jpem9uCiAgICAgICAgICAgICAgICAgICAg
IC8vIE5vcm1hbGx5IGJ5IHRoZSB0aW1lIHdlIHN0YXJ0IHBvc2l0aW9uaW5nIHRoZSBjaGlsZCBj
b250ZW50LCB3ZSBhbHJlYWR5IGhhdmUgY29tcHV0ZWQgYm9yZGVycyBhbmQgcGFkZGluZyBmb3Ig
dGhlIGNvbnRhaW5pbmcgYmxvY2suCiAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgZGlm
ZmVyZW50IHdpdGggdGFibGUgY2VsbHMgd2hlcmUgdGhlIGZpbmFsIHBhZGRpbmcgb2Zmc2V0IGRl
cGVuZHMgb24gdGhlIGNvbnRlbnQgaGVpZ2h0IGFzIHdlIHVzZQogICAgICAgICAgICAgICAgICAg
ICAvLyB0aGUgcGFkZGluZyBib3ggdG8gdmVydGljYWxseSBhbGlnbiB0aGUgdGFibGUgY2VsbCBj
b250ZW50LgotICAgICAgICAgICAgICAgICAgICBhdXRvJiBmb3JtYXR0aW5nU3RhdGUgPSBsYXlv
dXRTdGF0ZSgpLmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGNlbGxCb3gpOworICAgICAgICAg
ICAgICAgICAgICBhdXRvJiBmb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZSgpLmZvcm1hdHRp
bmdTdGF0ZUZvckZvcm1hdHRpbmdDb250ZXh0KGNlbGxCb3gpOwogICAgICAgICAgICAgICAgICAg
ICBmb3IgKGF1dG8qIGNoaWxkID0gY2VsbEJveC5maXJzdEluRmxvd09yRmxvYXRpbmdDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dEluRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNJbmxpbmVUZXh0Qm94KCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBmb3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnkoKmNoaWxkKS5tb3ZlVmVydGljYWxseShp
bnRyaW5zaWNQYWRkaW5nVG9wKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICBpZiAoY2VsbEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8mIGlubGluZUZvcm1hdHRpbmdTdGF0ZWUg
PSBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGNlbGxCb3gp
OworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byYgaW5saW5lRm9ybWF0dGluZ1N0YXRlZSA9
IGxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRlRm9ySW5saW5lRm9ybWF0dGluZ0NvbnRleHQo
Y2VsbEJveCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHJ1biA6IGlubGlu
ZUZvcm1hdHRpbmdTdGF0ZWUucnVucygpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bi5tb3ZlVmVydGljYWxseShpbnRyaW5zaWNQYWRkaW5nVG9wKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciAoYXV0byYgbGluZSA6IGlubGluZUZvcm1hdHRpbmdTdGF0ZWUubGluZXMoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFi
bGUvVGFibGVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKaW5kZXgg
NjY5MTA5M2IyNGZmNGJhYzcyZDM5ZjdmZDYyMjczMDliNDQzNWY0Ni4uZjA0ODkxNzhlZmUyYjJi
Yzc0MDU2ZDQ5M2Q4NzZhYjc0ODhmYjRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJs
ZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKQEAgLTEzMywxNSArMTMzLDE1IEBAIElubGluZUxheW91
dFVuaXQgVGFibGVGb3JtYXR0aW5nR2VvbWV0cnk6OnVzZWRCYXNlbGluZUZvckNlbGwoY29uc3Qg
Q29udGFpbmVyQm94CiAgICAgLy8gb3IgdGhlIGZpcnN0IGluLWZsb3cgdGFibGUtcm93IGluIHRo
ZSBjZWxsLCB3aGljaGV2ZXIgY29tZXMgZmlyc3QuCiAgICAgLy8gSWYgdGhlcmUgaXMgbm8gc3Vj
aCBsaW5lIGJveCwgdGhlIGJhc2VsaW5lIGlzIHRoZSBib3R0b20gb2YgY29udGVudCBlZGdlIG9m
IHRoZSBjZWxsIGJveC4KICAgICBpZiAoY2VsbEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRp
bmdDb250ZXh0KCkpCi0gICAgICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5s
aW5lRm9ybWF0dGluZ1N0YXRlKGNlbGxCb3gpLmxpbmVzKClbMF0uYmFzZWxpbmUoKTsKKyAgICAg
ICAgcmV0dXJuIGxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRlRm9ySW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQoY2VsbEJveCkubGluZXMoKVswXS5iYXNlbGluZSgpOwogICAgIGZvciAoYXV0byYg
Y2VsbERlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxDb250YWluZXJCb3g+KGNlbGxCb3gp
KSB7CiAgICAgICAgIGlmIChjZWxsRGVzY2VuZGFudC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRp
bmdDb250ZXh0KCkpIHsKLSAgICAgICAgICAgIGF1dG8mIGlubGluZUZvcm1hdHRpbmdTdGF0ZUZv
ckNlbGwgPSBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGNl
bGxEZXNjZW5kYW50KTsKKyAgICAgICAgICAgIGF1dG8mIGlubGluZUZvcm1hdHRpbmdTdGF0ZUZv
ckNlbGwgPSBsYXlvdXRTdGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvcklubGluZUZvcm1hdHRpbmdD
b250ZXh0KGNlbGxEZXNjZW5kYW50KTsKICAgICAgICAgICAgIGlmICghaW5saW5lRm9ybWF0dGlu
Z1N0YXRlRm9yQ2VsbC5saW5lcygpLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
aW5saW5lRm9ybWF0dGluZ1N0YXRlRm9yQ2VsbC5saW5lcygpWzBdLmJhc2VsaW5lKCk7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKGNlbGxEZXNjZW5kYW50LmVzdGFibGlzaGVzVGFibGVGb3JtYXR0
aW5nQ29udGV4dCgpKQotICAgICAgICAgICAgcmV0dXJuIGxheW91dFN0YXRlKCkuZXN0YWJsaXNo
ZWRUYWJsZUZvcm1hdHRpbmdTdGF0ZShjZWxsRGVzY2VuZGFudCkudGFibGVHcmlkKCkucm93cygp
Lmxpc3QoKVswXS5iYXNlbGluZSgpOworICAgICAgICAgICAgcmV0dXJuIGxheW91dFN0YXRlKCku
Zm9ybWF0dGluZ1N0YXRlRm9yVGFibGVGb3JtYXR0aW5nQ29udGV4dChjZWxsRGVzY2VuZGFudCku
dGFibGVHcmlkKCkucm93cygpLmxpc3QoKVswXS5iYXNlbGluZSgpOwogICAgIH0KICAgICByZXR1
cm4gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChjZWxsQm94KS5jb250ZW50Qm94
Qm90dG9tKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKaW5kZXggYWRiYzg5NWM4NjEzMGFjZDg5M2E5YjczYjM3
YzNhNDRmZTAxN2Q5ZS4uNDJiNzMyMmI0OGQ1NDc5NDI1NWFmNGE4ZGY4ZGUzMTUxYjc0MDc5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1
aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRy
ZWVCdWlsZGVyLmNwcApAQCAtMzgzLDcgKzM4Myw3IEBAIHZvaWQgVHJlZUJ1aWxkZXI6OmJ1aWxk
U3ViVHJlZShjb25zdCBSZW5kZXJFbGVtZW50JiBwYXJlbnRSZW5kZXJlciwgQ29udGFpbmVyQm94
CiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQogdm9pZCBzaG93SW5saW5lVHJlZUFuZFJ1bnMo
VGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0
IENvbnRhaW5lckJveCYgaW5saW5lRm9ybWF0dGluZ1Jvb3QsIHNpemVfdCBkZXB0aCkKIHsKLSAg
ICBhdXRvJiBpbmxpbmVGb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZS5lc3RhYmxpc2hlZElu
bGluZUZvcm1hdHRpbmdTdGF0ZShpbmxpbmVGb3JtYXR0aW5nUm9vdCk7CisgICAgYXV0byYgaW5s
aW5lRm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUuZm9ybWF0dGluZ1N0YXRlRm9ySW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQoaW5saW5lRm9ybWF0dGluZ1Jvb3QpOwogICAgIGF1dG8mIGxpbmVz
ID0gaW5saW5lRm9ybWF0dGluZ1N0YXRlLmxpbmVzKCk7CiAgICAgYXV0byYgcnVucyA9IGlubGlu
ZUZvcm1hdHRpbmdTdGF0ZS5ydW5zKCk7CiAK
</data>
<flag name="review"
          id="461366"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>