<?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>143182</bug_id>
          
          <creation_ts>2015-03-28 02:23:18 -0700</creation_ts>
          <short_desc>nullptr cleanup in RenderFooBox classes</short_desc>
          <delta_ts>2015-03-29 19:01: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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joonghun Park">jh718.park</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1080926</commentid>
    <comment_count>0</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-03-28 02:23:18 -0700</bug_when>
    <thetext>Replace 0 with nullptr in RenderFooBox classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080952</commentid>
    <comment_count>1</comment_count>
      <attachid>249665</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2015-03-28 10:38:53 -0700</bug_when>
    <thetext>Created attachment 249665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081079</commentid>
    <comment_count>2</comment_count>
      <attachid>249665</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-29 19:01:07 -0700</bug_when>
    <thetext>Comment on attachment 249665
Patch

Clearing flags on attachment: 249665

Committed r182127: &lt;http://trac.webkit.org/changeset/182127&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081080</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-29 19:01:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249665</attachid>
            <date>2015-03-28 10:38:53 -0700</date>
            <delta_ts>2015-03-29 19:01:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143182-20150329023812.patch</filename>
            <type>text/plain</type>
            <size>41511</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQwMzhmNGQ4YjQ1MjIy
NThhNWJmYTQ4YmJhNjMwMWYwYjQ2MTQ0ZC4uNWQyZDcyNDZmMjNkYzRkZjM5NDc3ODEwNGUwMDZj
NmE2NTEzNzdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYyIEBACiAyMDE1LTAzLTI4ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KIAorICAgICAgICBudWxscHRyIGNs
ZWFudXAgaW4gUmVuZGVyRm9vQm94IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzE4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcwor
CisgICAgICAgIFJlcGxhY2UgMCB3aXRoIG51bGxwdHIgaW4gUmVuZGVyRm9vQm94IGNsYXNzZXMu
CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveDo6UmVuZGVyQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cGFp
bnRGaWxsTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzaHJpbmtMb2dpY2Fs
V2lkdGhUb0F2b2lkRmxvYXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGFp
bmluZ0Jsb2NrQXZhaWxhYmxlTGluZVdpZHRoSW5SZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94OjpyZW5kZXJCb3hSZWdpb25JbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsV2lkdGhVc2luZyk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbEhlaWdodFVzaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsV2lkdGhS
ZXBsYWNlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBvc2l0aW9uRm9yUG9pbnQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpsYXlvdXRPdmVyZmxvd1JlY3RGb3JQcm9w
YWdhdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpzZXRNYXJnaW5CZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94OjpzZXRNYXJnaW5BZnRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNl
dE1hcmdpblN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0TWFyZ2luRW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y3JlYXRlQW5vbnltb3VzQm94V2l0aFNh
bWVUeXBlQXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRJbmxpbmVCb3hXcmFw
cGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRNYXNrRm9yVGV4dEZp
bGxCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9y
ZGVyU2lkZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmZpcnN0
TGV0dGVyUmVtYWluaW5nVGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6bW92ZUNo
aWxkVG8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6Om1vdmVBbGxD
aGlsZHJlblRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojptb3Zl
Q2hpbGRyZW5Ubyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGbGV4Qm94SXRlcmF0b3I6OnJlc2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZsZXhCb3hJdGVyYXRvcjo6bmV4dCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJv
eDo6Zmlyc3RMaW5lQmFzZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVC
b3g6OmNvbXB1dGVNYWluQXhpc0V4dGVudEZvckNoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGluZUJveExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGluZUJveExp
c3Q6OmRlbGV0ZUxpbmVCb3hUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpbmVCb3hM
aXN0OjpleHRyYWN0TGluZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaW5lQm94TGlz
dDo6ZGVsZXRlTGluZUJveGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpbmVCb3hMaXN0
OjpjaGVja0NvbnNpc3RlbmN5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGluZUJveExp
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpbmVCb3hMaXN0OjpSZW5kZXJMaW5lQm94
TGlzdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6c2V0SGFzVmVydGljYWxTY3JvbGxiYXIpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CisKKzIwMTUtMDMtMjggIEpvb25naHVu
IFBhcmsgIDxqaDcxOC5wYXJrQHNhbXN1bmcuY29tPgorCiAgICAgICAgIG51bGxwdHIgY2xlYW51
cCBpbiBJbmxpbmVGb29Cb3ggY2xhc3NlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMTc4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKaW5kZXggZGUyZjM0NjA0Y2U2ZDcxOGY2Y2U0ZjIzMDJlMmQ1N2Y2MmMxYWQzMS4uMWNk
ZmM4NjBhMzBlYzNhMmUyNTZlODllZjgxYjU3Y2E0YTUzZWE2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTg2LDggKzg2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAogLy8gVXNlZCBieSBmbGV4aWJsZSBib3hlcyB3aGVuIGZsZXhpbmcgdGhpcyBl
bGVtZW50IGFuZCBieSB0YWJsZSBjZWxscy4KIHR5cGVkZWYgV1RGOjpIYXNoTWFwPGNvbnN0IFJl
bmRlckJveCosIExheW91dFVuaXQ+IE92ZXJyaWRlU2l6ZU1hcDsKLXN0YXRpYyBPdmVycmlkZVNp
emVNYXAqIGdPdmVycmlkZUhlaWdodE1hcCA9IDA7Ci1zdGF0aWMgT3ZlcnJpZGVTaXplTWFwKiBn
T3ZlcnJpZGVXaWR0aE1hcCA9IDA7CitzdGF0aWMgT3ZlcnJpZGVTaXplTWFwKiBnT3ZlcnJpZGVI
ZWlnaHRNYXAgPSBudWxscHRyOworc3RhdGljIE92ZXJyaWRlU2l6ZU1hcCogZ092ZXJyaWRlV2lk
dGhNYXAgPSBudWxscHRyOwogCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKIC8vIFVzZWQg
YnkgZ3JpZCBlbGVtZW50cyB0byBwcm9wZXJseSBzaXplIHRoZWlyIGdyaWQgaXRlbXMuCkBAIC0x
MjgsNyArMTI4LDcgQEAgUmVuZGVyQm94OjpSZW5kZXJCb3goRWxlbWVudCYgZWxlbWVudCwgUmVm
PFJlbmRlclN0eWxlPiYmIHN0eWxlLCB1bnNpZ25lZCBiYXNlVHkKICAgICA6IFJlbmRlckJveE1v
ZGVsT2JqZWN0KGVsZW1lbnQsIFdURjo6bW92ZShzdHlsZSksIGJhc2VUeXBlRmxhZ3MpCiAgICAg
LCBtX21pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgtMSkKICAgICAsIG1fbWF4UHJlZmVycmVkTG9n
aWNhbFdpZHRoKC0xKQotICAgICwgbV9pbmxpbmVCb3hXcmFwcGVyKDApCisgICAgLCBtX2lubGlu
ZUJveFdyYXBwZXIobnVsbHB0cikKIHsKICAgICBzZXRJc0JveCgpOwogfQpAQCAtMTM3LDcgKzEz
Nyw3IEBAIFJlbmRlckJveDo6UmVuZGVyQm94KERvY3VtZW50JiBkb2N1bWVudCwgUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlLCB1bnNpZ25lZCBiYXNlCiAgICAgOiBSZW5kZXJCb3hNb2RlbE9iamVj
dChkb2N1bWVudCwgV1RGOjptb3ZlKHN0eWxlKSwgYmFzZVR5cGVGbGFncykKICAgICAsIG1fbWlu
UHJlZmVycmVkTG9naWNhbFdpZHRoKC0xKQogICAgICwgbV9tYXhQcmVmZXJyZWRMb2dpY2FsV2lk
dGgoLTEpCi0gICAgLCBtX2lubGluZUJveFdyYXBwZXIoMCkKKyAgICAsIG1faW5saW5lQm94V3Jh
cHBlcihudWxscHRyKQogewogICAgIHNldElzQm94KCk7CiB9CkBAIC0xNjEwLDcgKzE2MTAsNyBA
QCB2b2lkIFJlbmRlckJveDo6cGFpbnRGaWxsTGF5ZXJzKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBDb2xvciYgYywgY29ucwogdm9pZCBSZW5kZXJCb3g6OnBhaW50RmlsbExheWVy
KGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBDb2xvciYgYywgY29uc3QgRmlsbExh
eWVyKiBmaWxsTGF5ZXIsIGNvbnN0IExheW91dFJlY3QmIHJlY3QsCiAgICAgQmFja2dyb3VuZEJs
ZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVuZGVy
RWxlbWVudCogYmFja2dyb3VuZE9iamVjdCwgQmFzZUJhY2tncm91bmRDb2xvclVzYWdlIGJhc2VC
Z0NvbG9yVXNhZ2UpCiB7Ci0gICAgcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChwYWludEluZm8sIGMs
IGZpbGxMYXllciwgcmVjdCwgYmxlZWRBdm9pZGFuY2UsIDAsIExheW91dFNpemUoKSwgb3AsIGJh
Y2tncm91bmRPYmplY3QsIGJhc2VCZ0NvbG9yVXNhZ2UpOworICAgIHBhaW50RmlsbExheWVyRXh0
ZW5kZWQocGFpbnRJbmZvLCBjLCBmaWxsTGF5ZXIsIHJlY3QsIGJsZWVkQXZvaWRhbmNlLCBudWxs
cHRyLCBMYXlvdXRTaXplKCksIG9wLCBiYWNrZ3JvdW5kT2JqZWN0LCBiYXNlQmdDb2xvclVzYWdl
KTsKIH0KIAogc3RhdGljIGJvb2wgbGF5ZXJzVXNlSW1hZ2UoV3JhcHBlZEltYWdlUHRyIGltYWdl
LCBjb25zdCBGaWxsTGF5ZXIqIGxheWVycykKQEAgLTE4MDUsNyArMTgwNSw3IEBAIExheW91dFJl
Y3QgUmVuZGVyQm94OjpjbGlwUmVjdChjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIFJlbmRl
clJlZ2lvbiogcmVnaW9uCiAKIExheW91dFVuaXQgUmVuZGVyQm94OjpzaHJpbmtMb2dpY2FsV2lk
dGhUb0F2b2lkRmxvYXRzKExheW91dFVuaXQgY2hpbGRNYXJnaW5TdGFydCwgTGF5b3V0VW5pdCBj
aGlsZE1hcmdpbkVuZCwgY29uc3QgUmVuZGVyQmxvY2sqIGNiLCBSZW5kZXJSZWdpb24qIHJlZ2lv
bikgY29uc3QKIHsgICAgCi0gICAgUmVuZGVyUmVnaW9uKiBjb250YWluaW5nQmxvY2tSZWdpb24g
PSAwOworICAgIFJlbmRlclJlZ2lvbiogY29udGFpbmluZ0Jsb2NrUmVnaW9uID0gbnVsbHB0cjsK
ICAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3BQb3NpdGlvbiA9IGxvZ2ljYWxUb3AoKTsKICAgICBp
ZiAocmVnaW9uKSB7CiAgICAgICAgIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZlJl
Z2lvbiA9IHJlZ2lvbiA/IHJlZ2lvbi0+bG9naWNhbFRvcEZvckZsb3dUaHJlYWRDb250ZW50KCkg
LSBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlKCkgOiBMYXlvdXRVbml0KCk7CkBAIC0x
ODg5LDcgKzE4ODksNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29udGFpbmluZ0Jsb2NrTG9n
aWNhbFdpZHRoRm9yQ29udGVudEluUmVnaW9uKFJlbmRlclJlZ2lvbgogTGF5b3V0VW5pdCBSZW5k
ZXJCb3g6OmNvbnRhaW5pbmdCbG9ja0F2YWlsYWJsZUxpbmVXaWR0aEluUmVnaW9uKFJlbmRlclJl
Z2lvbiogcmVnaW9uKSBjb25zdAogewogICAgIFJlbmRlckJsb2NrKiBjYiA9IGNvbnRhaW5pbmdC
bG9jaygpOwotICAgIFJlbmRlclJlZ2lvbiogY29udGFpbmluZ0Jsb2NrUmVnaW9uID0gMDsKKyAg
ICBSZW5kZXJSZWdpb24qIGNvbnRhaW5pbmdCbG9ja1JlZ2lvbiA9IG51bGxwdHI7CiAgICAgTGF5
b3V0VW5pdCBsb2dpY2FsVG9wUG9zaXRpb24gPSBsb2dpY2FsVG9wKCk7CiAgICAgaWYgKHJlZ2lv
bikgewogICAgICAgICBMYXlvdXRVbml0IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZSZWdpb24gPSBy
ZWdpb24gPyByZWdpb24tPmxvZ2ljYWxUb3BGb3JGbG93VGhyZWFkQ29udGVudCgpIC0gb2Zmc2V0
RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSgpIDogTGF5b3V0VW5pdCgpOwpAQCAtMjU2NSw3ICsy
NTY1LDcgQEAgUmVuZGVyQm94UmVnaW9uSW5mbyogUmVuZGVyQm94OjpyZW5kZXJCb3hSZWdpb25J
bmZvKFJlbmRlclJlZ2lvbiogcmVnaW9uLCBSZW5kZXIKIHsKICAgICAvLyBNYWtlIHN1cmUgbm9i
b2R5IGlzIHRyeWluZyB0byBjYWxsIHRoaXMgd2l0aCBhIG51bGwgcmVnaW9uLgogICAgIGlmICgh
cmVnaW9uKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICAvLyBJZiB3ZSBoYXZlIGNvbXB1dGVkIG91ciB3aWR0aCBpbiB0aGlzIHJlZ2lvbiBhbHJlYWR5
LCBpdCB3aWxsIGJlIGNhY2hlZCwgYW5kIHdlIGNhbgogICAgIC8vIGp1c3QgcmV0dXJuIGl0LgpA
QCAtMjU3OCw3ICsyNTc4LDcgQEAgUmVuZGVyQm94UmVnaW9uSW5mbyogUmVuZGVyQm94OjpyZW5k
ZXJCb3hSZWdpb25JbmZvKFJlbmRlclJlZ2lvbiogcmVnaW9uLCBSZW5kZXIKICAgICAvLyBzdXBw
b3J0IHRvIGNvdmVyIGFsbCBib3hlcy4KICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFk
ID0gZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOwogICAgIGlmIChpc1JlbmRlckZsb3dUaHJl
YWQoKSB8fCAhZmxvd1RocmVhZCB8fCAhY2FuSGF2ZUJveEluZm9JblJlZ2lvbigpIHx8IGZsb3dU
aHJlYWQtPnN0eWxlKCkud3JpdGluZ01vZGUoKSAhPSBzdHlsZSgpLndyaXRpbmdNb2RlKCkpCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIExvZ2ljYWxF
eHRlbnRDb21wdXRlZFZhbHVlcyBjb21wdXRlZFZhbHVlczsKICAgICBjb21wdXRlTG9naWNhbFdp
ZHRoSW5SZWdpb24oY29tcHV0ZWRWYWx1ZXMsIHJlZ2lvbik7CkBAIC0zNDA2LDcgKzM0MDYsNyBA
QCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsV2lkdGhVc2luZyhMZW5n
dGggbG9naWNhbFdpZHRoLCBjb25zdCBSZQogCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdFZh
bHVlID0gMDsKIAotICAgIGNvbnN0IExheW91dFVuaXQgY29udGFpbmVyUmVsYXRpdmVMb2dpY2Fs
V2lkdGggPSBjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JQb3NpdGlvbmVkKGNvbnRhaW5l
ckJsb2NrLCAwLCBmYWxzZSk7CisgICAgY29uc3QgTGF5b3V0VW5pdCBjb250YWluZXJSZWxhdGl2
ZUxvZ2ljYWxXaWR0aCA9IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvclBvc2l0aW9uZWQo
Y29udGFpbmVyQmxvY2ssIG51bGxwdHIsIGZhbHNlKTsKIAogICAgIGJvb2wgbG9naWNhbFdpZHRo
SXNBdXRvID0gbG9naWNhbFdpZHRoLmlzSW50cmluc2ljT3JBdXRvKCk7CiAgICAgYm9vbCBsb2dp
Y2FsTGVmdElzQXV0byA9IGxvZ2ljYWxMZWZ0LmlzQXV0bygpOwpAQCAtMzczMiw3ICszNzMyLDcg
QEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbEhlaWdodFVzaW5nKExl
bmd0aCBsb2dpY2FsSGVpZ2h0TGVuZ3RoLAogICAgIExheW91dFVuaXQgbG9naWNhbEhlaWdodFZh
bHVlOwogICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0
IC0gYm9yZGVyc1BsdXNQYWRkaW5nOwogCi0gICAgY29uc3QgTGF5b3V0VW5pdCBjb250YWluZXJS
ZWxhdGl2ZUxvZ2ljYWxXaWR0aCA9IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvclBvc2l0
aW9uZWQoY29udGFpbmVyQmxvY2ssIDAsIGZhbHNlKTsKKyAgICBjb25zdCBMYXlvdXRVbml0IGNv
bnRhaW5lclJlbGF0aXZlTG9naWNhbFdpZHRoID0gY29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRo
Rm9yUG9zaXRpb25lZChjb250YWluZXJCbG9jaywgbnVsbHB0ciwgZmFsc2UpOwogCiAgICAgTGF5
b3V0VW5pdCBsb2dpY2FsVG9wVmFsdWUgPSAwOwogICAgIExheW91dFVuaXQgcmVzb2x2ZWRMb2dp
Y2FsSGVpZ2h0ID0gMDsKQEAgLTM4OTEsNyArMzg5MSw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21w
dXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aFJlcGxhY2VkKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZh
bHVlCiAgICAgICogICAgZWxzZSBpZiAnZGlyZWN0aW9uJyBpcyAncnRsJywgc2V0ICdyaWdodCcg
dG8gdGhlIHN0YXRpYyBwb3NpdGlvbi4KICAgICBcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICAgICAvLyBz
ZWUgRklYTUUgMQotICAgIGNvbXB1dGVJbmxpbmVTdGF0aWNEaXN0YW5jZShsb2dpY2FsTGVmdCwg
bG9naWNhbFJpZ2h0LCB0aGlzLCBjb250YWluZXJCbG9jaywgY29udGFpbmVyTG9naWNhbFdpZHRo
LCAwKTsgLy8gRklYTUU6IFBhc3MgdGhlIHJlZ2lvbi4KKyAgICBjb21wdXRlSW5saW5lU3RhdGlj
RGlzdGFuY2UobG9naWNhbExlZnQsIGxvZ2ljYWxSaWdodCwgdGhpcywgY29udGFpbmVyQmxvY2ss
IGNvbnRhaW5lckxvZ2ljYWxXaWR0aCwgbnVsbHB0cik7IC8vIEZJWE1FOiBQYXNzIHRoZSByZWdp
b24uCiAKICAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKICAgICAgKiAzLiBJZiAnbGVmdCcgb3IgJ3Jp
Z2h0JyBhcmUgJ2F1dG8nLCByZXBsYWNlIGFueSAnYXV0bycgb24gJ21hcmdpbi1sZWZ0JwpAQCAt
NDIxNSw3ICs0MjE1LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlckJveDo6cG9zaXRpb25Gb3JQ
b2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIGNvbnN0IFJlbmQKIAogICAgIC8vIFBhc3Mg
b2ZmIHRvIHRoZSBjbG9zZXN0IGNoaWxkLgogICAgIExheW91dFVuaXQgbWluRGlzdCA9IExheW91
dFVuaXQ6Om1heCgpOwotICAgIFJlbmRlckJveCogY2xvc2VzdFJlbmRlcmVyID0gMDsKKyAgICBS
ZW5kZXJCb3gqIGNsb3Nlc3RSZW5kZXJlciA9IG51bGxwdHI7CiAgICAgTGF5b3V0UG9pbnQgYWRq
dXN0ZWRQb2ludCA9IHBvaW50OwogICAgIGlmIChpc1RhYmxlUm93KCkpCiAgICAgICAgIGFkanVz
dGVkUG9pbnQubW92ZUJ5KGxvY2F0aW9uKCkpOwpAQCAtNDgxMCw3ICs0ODEwLDcgQEAgUmVuZGVy
T2JqZWN0KiBSZW5kZXJCb3g6OnNwbGl0QW5vbnltb3VzQm94ZXNBcm91bmRDaGlsZChSZW5kZXJP
YmplY3QqIGJlZm9yZUNoaWwKICAgICAgICAgICAgIC8vIFNlZSBmb3IgZXhhbXBsZSBSZW5kZXJU
YWJsZUNlbGw6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQuCiAgICAgICAgICAgICBtYXJr
Qm94Rm9yUmVsYXlvdXRBZnRlclNwbGl0KCpwYXJlbnRCb3gpOwogICAgICAgICAgICAgcGFyZW50
Qm94LT5pbnNlcnRDaGlsZEludGVybmFsKHBvc3RCb3gsIGJveFRvU3BsaXQubmV4dFNpYmxpbmco
KSwgTm90aWZ5Q2hpbGRyZW4pOwotICAgICAgICAgICAgYm94VG9TcGxpdC5tb3ZlQ2hpbGRyZW5U
byhwb3N0Qm94LCBiZWZvcmVDaGlsZCwgMCwgdHJ1ZSk7CisgICAgICAgICAgICBib3hUb1NwbGl0
Lm1vdmVDaGlsZHJlblRvKHBvc3RCb3gsIGJlZm9yZUNoaWxkLCBudWxscHRyLCB0cnVlKTsKIAog
ICAgICAgICAgICAgbWFya0JveEZvclJlbGF5b3V0QWZ0ZXJTcGxpdChib3hUb1NwbGl0KTsKICAg
ICAgICAgICAgIG1hcmtCb3hGb3JSZWxheW91dEFmdGVyU3BsaXQoKnBvc3RCb3gpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDAwZWE4NmJjOTBkMmM2MjJmNDIxOTlmZWJi
NDI0MzcyYmRlMzQ4NGMuLmUyZTI1N2QxZjE4ZWIyY2M2ZDM0NDgwZDU5MGIzMjQ3YTA0YTk0YzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVi
bGljOgogICAgIExheW91dFVuaXQgbG9naWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gc3R5bGUo
KS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gd2lkdGgoKSA6IGhlaWdodCgpOyB9CiAgICAg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS5pc0hvcml6
b250YWxXcml0aW5nTW9kZSgpID8gaGVpZ2h0KCkgOiB3aWR0aCgpOyB9CiAKLSAgICBMYXlvdXRV
bml0IGNvbnN0cmFpbkxvZ2ljYWxXaWR0aEluUmVnaW9uQnlNaW5NYXgoTGF5b3V0VW5pdCwgTGF5
b3V0VW5pdCwgUmVuZGVyQmxvY2sqLCBSZW5kZXJSZWdpb24qID0gMCkgY29uc3Q7CisgICAgTGF5
b3V0VW5pdCBjb25zdHJhaW5Mb2dpY2FsV2lkdGhJblJlZ2lvbkJ5TWluTWF4KExheW91dFVuaXQs
IExheW91dFVuaXQsIFJlbmRlckJsb2NrKiwgUmVuZGVyUmVnaW9uKiA9IG51bGxwdHIpIGNvbnN0
OwogICAgIExheW91dFVuaXQgY29uc3RyYWluTG9naWNhbEhlaWdodEJ5TWluTWF4KExheW91dFVu
aXQpIGNvbnN0OwogICAgIExheW91dFVuaXQgY29uc3RyYWluQ29udGVudEJveExvZ2ljYWxIZWln
aHRCeU1pbk1heChMYXlvdXRVbml0KSBjb25zdDsKIApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1Ymxp
YzoKIAogICAgIC8vIEJvdW5kcyBvZiB0aGUgb3V0bGluZSBib3ggaW4gYWJzb2x1dGUgY29vcmRz
LiBSZXNwZWN0cyB0cmFuc2Zvcm1zCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IG91dGxpbmVCb3Vu
ZHNGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIC8qcmVwYWludENvbnRh
aW5lciovLCBjb25zdCBSZW5kZXJHZW9tZXRyeU1hcCopIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwot
ICAgIHZpcnR1YWwgdm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25z
dCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcGFpbnRDb250YWluZXIgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRk
Rm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0
aW9uYWxPZmZzZXQsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVy
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWlu
dFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib3JkZXJC
b3hSZWN0KCk7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvcmRlckJveFJlY3QoKTsgfQpAQCAtMjY0LDI2ICsyNjQs
MjYgQEAgcHVibGljOgogICAgIExheW91dFVuaXQgbWFyZ2luTG9naWNhbExlZnQoKSBjb25zdCB7
IHJldHVybiBtX21hcmdpbkJveC5sb2dpY2FsTGVmdChzdHlsZSgpLndyaXRpbmdNb2RlKCkpOyB9
CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Mb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX21h
cmdpbkJveC5sb2dpY2FsUmlnaHQoc3R5bGUoKS53cml0aW5nTW9kZSgpKTsgfQogICAgIAotICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5CZWZvcmUoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJy
aWRlU3R5bGUgPSAwKSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBtX21hcmdpbkJveC5i
ZWZvcmUoKG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCkpLT53cml0aW5n
TW9kZSgpKTsgfQotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5BZnRlcihjb25zdCBSZW5k
ZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9IDApIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJu
IG1fbWFyZ2luQm94LmFmdGVyKChvdmVycmlkZVN0eWxlID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHls
ZSgpKS0+d3JpdGluZ01vZGUoKSk7IH0KLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luU3Rh
cnQoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSAwKSBjb25zdCBvdmVycmlkZSBm
aW5hbAorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5CZWZvcmUoY29uc3QgUmVuZGVyU3R5
bGUqIG92ZXJyaWRlU3R5bGUgPSBudWxscHRyKSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVy
biBtX21hcmdpbkJveC5iZWZvcmUoKG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0
eWxlKCkpLT53cml0aW5nTW9kZSgpKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5B
ZnRlcihjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9IG51bGxwdHIpIGNvbnN0IG92
ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG1fbWFyZ2luQm94LmFmdGVyKChvdmVycmlkZVN0eWxlID8g
b3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpKS0+d3JpdGluZ01vZGUoKSk7IH0KKyAgICB2aXJ0dWFs
IExheW91dFVuaXQgbWFyZ2luU3RhcnQoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUg
PSBudWxscHRyKSBjb25zdCBvdmVycmlkZSBmaW5hbAogICAgIHsKICAgICAgICAgY29uc3QgUmVu
ZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBvdmVycmlkZVN0eWxlID8gb3ZlcnJpZGVTdHlsZSA6ICZz
dHlsZSgpOwogICAgICAgICByZXR1cm4gbV9tYXJnaW5Cb3guc3RhcnQoc3R5bGVUb1VzZS0+d3Jp
dGluZ01vZGUoKSwgc3R5bGVUb1VzZS0+ZGlyZWN0aW9uKCkpOwogICAgIH0KLSAgICB2aXJ0dWFs
IExheW91dFVuaXQgbWFyZ2luRW5kKGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0g
MCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luRW5k
KGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgY29uc3Qgb3ZlcnJp
ZGUgZmluYWwKICAgICB7CiAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZVRvVXNlID0g
b3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5bGUoKTsKICAgICAgICAgcmV0dXJu
IG1fbWFyZ2luQm94LmVuZChzdHlsZVRvVXNlLT53cml0aW5nTW9kZSgpLCBzdHlsZVRvVXNlLT5k
aXJlY3Rpb24oKSk7CiAgICAgfQotICAgIHZvaWQgc2V0TWFyZ2luQmVmb3JlKExheW91dFVuaXQg
dmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gMCkgeyBtX21hcmdpbkJv
eC5zZXRCZWZvcmUoKG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCkpLT53
cml0aW5nTW9kZSgpLCB2YWx1ZSk7IH0KLSAgICB2b2lkIHNldE1hcmdpbkFmdGVyKExheW91dFVu
aXQgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gMCkgeyBtX21hcmdp
bkJveC5zZXRBZnRlcigob3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5bGUoKSkt
PndyaXRpbmdNb2RlKCksIHZhbHVlKTsgfQotICAgIHZvaWQgc2V0TWFyZ2luU3RhcnQoTGF5b3V0
VW5pdCB2YWx1ZSwgY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSAwKQorICAgIHZv
aWQgc2V0TWFyZ2luQmVmb3JlKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlKiBv
dmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJveC5zZXRCZWZvcmUoKG92ZXJyaWRl
U3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCkpLT53cml0aW5nTW9kZSgpLCB2YWx1ZSk7
IH0KKyAgICB2b2lkIHNldE1hcmdpbkFmdGVyKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRl
clN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJveC5zZXRBZnRlcigo
b3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5bGUoKSktPndyaXRpbmdNb2RlKCks
IHZhbHVlKTsgfQorICAgIHZvaWQgc2V0TWFyZ2luU3RhcnQoTGF5b3V0VW5pdCB2YWx1ZSwgY29u
c3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSBudWxscHRyKQogICAgIHsKICAgICAgICAg
Y29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBvdmVycmlkZVN0eWxlID8gb3ZlcnJpZGVT
dHlsZSA6ICZzdHlsZSgpOwogICAgICAgICBtX21hcmdpbkJveC5zZXRTdGFydChzdHlsZVRvVXNl
LT53cml0aW5nTW9kZSgpLCBzdHlsZVRvVXNlLT5kaXJlY3Rpb24oKSwgdmFsdWUpOwogICAgIH0K
LSAgICB2b2lkIHNldE1hcmdpbkVuZChMYXlvdXRVbml0IHZhbHVlLCBjb25zdCBSZW5kZXJTdHls
ZSogb3ZlcnJpZGVTdHlsZSA9IDApCisgICAgdm9pZCBzZXRNYXJnaW5FbmQoTGF5b3V0VW5pdCB2
YWx1ZSwgY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSBudWxscHRyKQogICAgIHsK
ICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBvdmVycmlkZVN0eWxlID8g
b3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpOwogICAgICAgICBtX21hcmdpbkJveC5zZXRFbmQoc3R5
bGVUb1VzZS0+d3JpdGluZ01vZGUoKSwgc3R5bGVUb1VzZS0+ZGlyZWN0aW9uKCksIHZhbHVlKTsK
QEAgLTMzOCw3ICszMzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck92ZXJyaWRlQ29udGFp
bmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoKTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBM
YXlvdXRTaXplIG9mZnNldEZyb21Db250YWluZXIoUmVuZGVyRWxlbWVudCYsIGNvbnN0IExheW91
dFBvaW50JiwgYm9vbCogb2Zmc2V0RGVwZW5kc09uUG9pbnQgPSAwKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIExheW91dFNpemUgb2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJFbGVtZW50
JiwgY29uc3QgTGF5b3V0UG9pbnQmLCBib29sKiBvZmZzZXREZXBlbmRzT25Qb2ludCA9IG51bGxw
dHIpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIExheW91dFVuaXQgYWRqdXN0Qm9yZGVyQm94
TG9naWNhbFdpZHRoRm9yQm94U2l6aW5nKExheW91dFVuaXQgd2lkdGgpIGNvbnN0OwogICAgIExh
eW91dFVuaXQgYWRqdXN0Qm9yZGVyQm94TG9naWNhbEhlaWdodEZvckJveFNpemluZyhMYXlvdXRV
bml0IGhlaWdodCkgY29uc3Q7CkBAIC00MTMsNyArNDEzLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExh
eW91dFVuaXQgbG9naWNhbFRvcCwgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzJikgY29uc3Q7
CiAKICAgICBSZW5kZXJCb3hSZWdpb25JbmZvKiByZW5kZXJCb3hSZWdpb25JbmZvKFJlbmRlclJl
Z2lvbiosIFJlbmRlckJveFJlZ2lvbkluZm9GbGFncyA9IENhY2hlUmVuZGVyQm94UmVnaW9uSW5m
bykgY29uc3Q7Ci0gICAgdm9pZCBjb21wdXRlTG9naWNhbFdpZHRoSW5SZWdpb24oTG9naWNhbEV4
dGVudENvbXB1dGVkVmFsdWVzJiwgUmVuZGVyUmVnaW9uKiA9IDApIGNvbnN0OworICAgIHZvaWQg
Y29tcHV0ZUxvZ2ljYWxXaWR0aEluUmVnaW9uKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYs
IFJlbmRlclJlZ2lvbiogPSBudWxscHRyKSBjb25zdDsKIAogICAgIGJvb2wgc3RyZXRjaGVzVG9W
aWV3cG9ydCgpIGNvbnN0CiAgICAgewpAQCAtNDU5LDcgKzQ1OSw3IEBAIHB1YmxpYzoKICAgICBp
bnQgaW5zdHJpbnNpY1Njcm9sbGJhckxvZ2ljYWxXaWR0aCgpIGNvbnN0OwogICAgIGludCBzY3Jv
bGxiYXJMb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgpIDogdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpOyB9CiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24s
IFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BF
bGVtZW50ID0gbnVsbHB0ciwgUmVuZGVyQm94KiBzdGFydEJveCA9IG51bGxwdHIsIGNvbnN0IElu
dFBvaW50JiB3aGVlbEV2ZW50QWJzb2x1dGVQb2ludCA9IEludFBvaW50KCkpOwotICAgIHZpcnR1
YWwgYm9vbCBsb2dpY2FsU2Nyb2xsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdyYW51
bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50ID0gMCk7
CisgICAgdmlydHVhbCBib29sIGxvZ2ljYWxTY3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwg
U2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLCBFbGVtZW50Kiogc3RvcEVs
ZW1lbnQgPSBudWxscHRyKTsKICAgICBib29sIGNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxl
QXJlYSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVByb2dyYW1hdGljYWxseVNjcm9s
bGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGF1dG9zY3JvbGwoY29uc3QgSW50UG9pbnQm
KTsKQEAgLTQ4Miw3ICs0ODIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNVbnNwbGl0dGFibGVT
Y3JvbGxpbmdPdmVyZmxvdygpIGNvbnN0OwogICAgIGJvb2wgaXNVbnNwbGl0dGFibGVGb3JQYWdp
bmF0aW9uKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgbG9jYWxDYXJldFJlY3Qo
SW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRP
ZkxpbmUgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgbG9jYWxDYXJldFJl
Y3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9F
bmRPZkxpbmUgPSBudWxscHRyKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBv
dmVyZmxvd0NsaXBSZWN0KGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbiwgUmVuZGVyUmVnaW9u
KiwgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgPSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFy
U2l6ZSwgUGFpbnRQaGFzZSA9IFBhaW50UGhhc2VCbG9ja0JhY2tncm91bmQpOwogICAgIHZpcnR1
YWwgTGF5b3V0UmVjdCBvdmVyZmxvd0NsaXBSZWN0Rm9yQ2hpbGRMYXllcnMoY29uc3QgTGF5b3V0
UG9pbnQmIGxvY2F0aW9uLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgT3ZlcmxheVNjcm9sbGJhclNp
emVSZWxldmFuY3kgcmVsZXZhbmN5KSB7IHJldHVybiBvdmVyZmxvd0NsaXBSZWN0KGxvY2F0aW9u
LCByZWdpb24sIHJlbGV2YW5jeSk7IH0KQEAgLTQ5Niw3ICs0OTYsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0
UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRNYXNrKFBhaW50SW5mbyYsIGNvbnN0IExh
eW91dFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q2xpcHBpbmdNYXNrKFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50Jik7Ci0gICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChX
cmFwcGVkSW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqID0gMCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqID0gbnVs
bHB0cikgb3ZlcnJpZGU7CiAKICAgICAvLyBDYWxsZWQgd2hlbiBhIHBvc2l0aW9uZWQgb2JqZWN0
IG1vdmVzIGJ1dCBkb2Vzbid0IG5lY2Vzc2FyaWx5IGNoYW5nZSBzaXplLiAgQSBzaW1wbGlmaWVk
IGxheW91dCBpcyBhdHRlbXB0ZWQKICAgICAvLyB0aGF0IGp1c3QgdXBkYXRlcyB0aGUgb2JqZWN0
J3MgcG9zaXRpb24uIElmIHRoZSBzaXplIGRvZXMgY2hhbmdlLCB0aGUgb2JqZWN0IHJlbWFpbnMg
ZGlydHkuCkBAIC01OTMsNyArNTkzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVuZGVyQm94
KiBjcmVhdGVBbm9ueW1vdXNCb3hXaXRoU2FtZVR5cGVBcyhjb25zdCBSZW5kZXJPYmplY3QqKSBj
b25zdAogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBib29sIGhhc1NhbWVE
aXJlY3Rpb25Bcyhjb25zdCBSZW5kZXJCb3gqIG9iamVjdCkgY29uc3QgeyByZXR1cm4gc3R5bGUo
KS5kaXJlY3Rpb24oKSA9PSBvYmplY3QtPnN0eWxlKCkuZGlyZWN0aW9uKCk7IH0KQEAgLTY0MCw3
ICs2NDAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlIGRldGVy
bWluZUJhY2tncm91bmRCbGVlZEF2b2lkYW5jZShHcmFwaGljc0NvbnRleHQqKSBjb25zdDsKICAg
ICBib29sIGJhY2tncm91bmRIYXNPcGFxdWVUb3BMYXllcigpIGNvbnN0OwogCi0gICAgdm9pZCBj
b21wdXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aChMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMm
LCBSZW5kZXJSZWdpb24qID0gMCkgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlUG9zaXRpb25lZExv
Z2ljYWxXaWR0aChMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMmLCBSZW5kZXJSZWdpb24qID0g
bnVsbHB0cikgY29uc3Q7CiAKICAgICBMYXlvdXRVbml0IGNvbXB1dGVJbnRyaW5zaWNMb2dpY2Fs
V2lkdGhVc2luZyhMZW5ndGggbG9naWNhbFdpZHRoTGVuZ3RoLCBMYXlvdXRVbml0IGF2YWlsYWJs
ZUxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBib3JkZXJBbmRQYWRkaW5nKSBjb25zdDsKICAgICAK
QEAgLTY3Nyw3ICs2NzcsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBza2lwQ29udGFpbmluZ0Js
b2NrRm9yUGVyY2VudEhlaWdodENhbGN1bGF0aW9uKGNvbnN0IFJlbmRlckJveCogY29udGFpbmlu
Z0Jsb2NrLCBib29sIGlzUGVycGVuZGljdWxhcldyaXRpbmdNb2RlKSBjb25zdDsKICAgIAotICAg
IExheW91dFVuaXQgY29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRoRm9yUG9zaXRpb25lZChjb25z
dCBSZW5kZXJCb3hNb2RlbE9iamVjdCogY29udGFpbmluZ0Jsb2NrLCBSZW5kZXJSZWdpb24qID0g
MCwgYm9vbCBjaGVja0ZvclBlcnBlbmRpY3VsYXJXcml0aW5nTW9kZSA9IHRydWUpIGNvbnN0Owor
ICAgIExheW91dFVuaXQgY29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRoRm9yUG9zaXRpb25lZChj
b25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCogY29udGFpbmluZ0Jsb2NrLCBSZW5kZXJSZWdpb24q
ID0gbnVsbHB0ciwgYm9vbCBjaGVja0ZvclBlcnBlbmRpY3VsYXJXcml0aW5nTW9kZSA9IHRydWUp
IGNvbnN0OwogICAgIExheW91dFVuaXQgY29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodEZvclBv
c2l0aW9uZWQoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNvbnRhaW5pbmdCbG9jaywgYm9v
bCBjaGVja0ZvclBlcnBlbmRpY3VsYXJXcml0aW5nTW9kZSA9IHRydWUpIGNvbnN0OwogCiAgICAg
TGF5b3V0VW5pdCB2aWV3TG9naWNhbEhlaWdodEZvclBlcmNlbnRhZ2VzKCkgY29uc3Q7CkBAIC03
NjQsNyArNzY0LDcgQEAgaW5saW5lIHZvaWQgUmVuZGVyQm94OjpzZXRJbmxpbmVCb3hXcmFwcGVy
KElubGluZUVsZW1lbnRCb3gqIGJveFdyYXBwZXIpCiAgICAgICAgIC8vIE90aGVyd2lzZSwgdGhl
cmUgd2lsbCB0d28gbGluZSBib3ggd3JhcHBlcnMga2VlcGluZyB0aGUgcmVmZXJlbmNlIHRvIHRo
aXMgcmVuZGVyZXIsIGFuZAogICAgICAgICAvLyBvbmx5IG9uZSB3aWxsIGJlIG5vdGlmaWVkIHdo
ZW4gdGhlIHJlbmRlcmVyIGlzIGdldHRpbmcgZGVzdHJveWVkLiBUaGUgc2Vjb25kIGxpbmUgYm94
IHdyYXBwZXIKICAgICAgICAgLy8gd2lsbCBrZWVwIGEgc3RhbGUgcmVmZXJlbmNlLgotICAgICAg
ICBpZiAoVU5MSUtFTFkobV9pbmxpbmVCb3hXcmFwcGVyICE9IDApKQorICAgICAgICBpZiAoVU5M
SUtFTFkobV9pbmxpbmVCb3hXcmFwcGVyICE9IG51bGxwdHIpKQogICAgICAgICAgICAgZGVsZXRl
TGluZUJveFdyYXBwZXIoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDk0M2ZhMGM0NGVjYWUwMWRmNGQwOGVi
OTJhOGZmNDNmMTJmMGJmOGYuLjM1YTUyZjVlNjhjYjc3ZGVkY2E4MjRiYmMzY2I2Y2UxMjBkMThh
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcApAQCAtODMsNyArODMsNyBAQCBzdGF0aWMgQ29udGludWF0aW9uTWFwJiBjb250aW51
YXRpb25NYXAoKQogLy8gVGhpcyBIYXNoTWFwIGlzIHNpbWlsYXIgdG8gdGhlIGNvbnRpbnVhdGlv
biBtYXAsIGJ1dCBjb25uZWN0cyBmaXJzdC1sZXR0ZXIKIC8vIHJlbmRlcmVycyB0byB0aGVpciBy
ZW1haW5pbmcgdGV4dCBmcmFnbWVudHMuCiB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgUmVuZGVyQm94
TW9kZWxPYmplY3QqLCBSZW5kZXJUZXh0RnJhZ21lbnQqPiBGaXJzdExldHRlclJlbWFpbmluZ1Rl
eHRNYXA7Ci1zdGF0aWMgRmlyc3RMZXR0ZXJSZW1haW5pbmdUZXh0TWFwKiBmaXJzdExldHRlclJl
bWFpbmluZ1RleHRNYXAgPSAwOworc3RhdGljIEZpcnN0TGV0dGVyUmVtYWluaW5nVGV4dE1hcCog
Zmlyc3RMZXR0ZXJSZW1haW5pbmdUZXh0TWFwID0gbnVsbHB0cjsKIAogdm9pZCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6c2V0U2VsZWN0aW9uU3RhdGUoU2VsZWN0aW9uU3RhdGUgc3RhdGUpCiB7CkBA
IC0xOTUsNyArMTk1LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJv
eWVkKCkKICAgICAvLyBJZiB0aGlzIGlzIGEgZmlyc3QtbGV0dGVyIG9iamVjdCB3aXRoIGEgcmVt
YWluaW5nIHRleHQgZnJhZ21lbnQgdGhlbiB0aGUKICAgICAvLyBlbnRyeSBuZWVkcyB0byBiZSBj
bGVhcmVkIGZyb20gdGhlIG1hcC4KICAgICBpZiAoZmlyc3RMZXR0ZXJSZW1haW5pbmdUZXh0KCkp
Ci0gICAgICAgIHNldEZpcnN0TGV0dGVyUmVtYWluaW5nVGV4dCgwKTsKKyAgICAgICAgc2V0Rmly
c3RMZXR0ZXJSZW1haW5pbmdUZXh0KG51bGxwdHIpOwogCiAgICAgaWYgKCFkb2N1bWVudEJlaW5n
RGVzdHJveWVkKCkpCiAgICAgICAgIHZpZXcoKS5pbWFnZVF1YWxpdHlDb250cm9sbGVyKCkucmVu
ZGVyZXJXaWxsQmVEZXN0cm95ZWQoKnRoaXMpOwpAQCAtNjE1LDcgKzYxNSw3IEBAIHZvaWQgUmVu
ZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TWFza0ZvclRleHRGaWxsQm94KEltYWdlQnVmZmVyKiBt
YXNrSW1hZ2UsIGNvbnN0CiAKICAgICAvLyBOb3cgYWRkIHRoZSB0ZXh0IHRvIHRoZSBjbGlwLiBX
ZSBkbyB0aGlzIGJ5IHBhaW50aW5nIHVzaW5nIGEgc3BlY2lhbCBwYWludCBwaGFzZSB0aGF0IHNp
Z25hbHMgdG8KICAgICAvLyBJbmxpbmVUZXh0Qm94ZXMgdGhhdCB0aGV5IHNob3VsZCBqdXN0IGFk
ZCB0aGVpciBjb250ZW50cyB0byB0aGUgY2xpcC4KLSAgICBQYWludEluZm8gaW5mbyhtYXNrSW1h
Z2VDb250ZXh0LCBtYXNrUmVjdCwgUGFpbnRQaGFzZVRleHRDbGlwLCBQYWludEJlaGF2aW9yRm9y
Y2VCbGFja1RleHQsIDApOworICAgIFBhaW50SW5mbyBpbmZvKG1hc2tJbWFnZUNvbnRleHQsIG1h
c2tSZWN0LCBQYWludFBoYXNlVGV4dENsaXAsIFBhaW50QmVoYXZpb3JGb3JjZUJsYWNrVGV4dCk7
CiAgICAgaWYgKGJveCkgewogICAgICAgICBjb25zdCBSb290SW5saW5lQm94JiByb290Qm94ID0g
Ym94LT5yb290KCk7CiAgICAgICAgIGJveC0+cGFpbnQoaW5mbywgTGF5b3V0UG9pbnQoc2Nyb2xs
ZWRQYWludFJlY3QueCgpIC0gYm94LT54KCksIHNjcm9sbGVkUGFpbnRSZWN0LnkoKSAtIGJveC0+
eSgpKSwgcm9vdEJveC5saW5lVG9wKCksIHJvb3RCb3gubGluZUJvdHRvbSgpKTsKQEAgLTE2MzYs
NyArMTYzNiw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyU2lkZXMo
R3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNvCiAgICAgICAgIHNpZGVSZWN0LnNl
dEhlaWdodChlZGdlc1tCU1RvcF0ud2lkdGhGb3JQYWludGluZygpICsgaW5uZXJCb3JkZXJBZGp1
c3RtZW50LnkoKSk7CiAKICAgICAgICAgYm9vbCB1c2VQYXRoID0gcmVuZGVyUmFkaWkgJiYgKGJv
cmRlclN0eWxlSGFzSW5uZXJEZXRhaWwoZWRnZXNbQlNUb3BdLnN0eWxlKCkpIHx8IGJvcmRlcldp
bGxBcmNJbm5lckVkZ2UoaW5uZXJCb3JkZXIucmFkaWkoKS50b3BMZWZ0KCksIGlubmVyQm9yZGVy
LnJhZGlpKCkudG9wUmlnaHQoKSkpOwotICAgICAgICBwYWludE9uZUJvcmRlclNpZGUoZ3JhcGhp
Y3NDb250ZXh0LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBzaWRlUmVjdCwgQlNU
b3AsIEJTTGVmdCwgQlNSaWdodCwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBi
bGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdo
dEVkZ2UsIGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CisgICAgICAgIHBhaW50T25lQm9yZGVy
U2lkZShncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIsIHNp
ZGVSZWN0LCBCU1RvcCwgQlNMZWZ0LCBCU1JpZ2h0LCBlZGdlcywgdXNlUGF0aCA/ICZyb3VuZGVk
UGF0aCA6IG51bGxwdHIsIGJsZWVkQXZvaWRhbmNlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBp
bmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYW50aWFsaWFzLCBvdmVycmlkZUNvbG9yKTsKICAgICB9
CiAKICAgICBpZiAoZWRnZXNbQlNCb3R0b21dLnNob3VsZFJlbmRlcigpICYmIGluY2x1ZGVzRWRn
ZShlZGdlU2V0LCBCU0JvdHRvbSkpIHsKQEAgLTE2NDQsNyArMTY0NCw3IEBAIHZvaWQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiBncmFwaGlj
c0NvbnRleHQsIGNvCiAgICAgICAgIHNpZGVSZWN0LnNoaWZ0WUVkZ2VUbyhzaWRlUmVjdC5tYXhZ
KCkgLSBlZGdlc1tCU0JvdHRvbV0ud2lkdGhGb3JQYWludGluZygpIC0gaW5uZXJCb3JkZXJBZGp1
c3RtZW50LnkoKSk7CiAKICAgICAgICAgYm9vbCB1c2VQYXRoID0gcmVuZGVyUmFkaWkgJiYgKGJv
cmRlclN0eWxlSGFzSW5uZXJEZXRhaWwoZWRnZXNbQlNCb3R0b21dLnN0eWxlKCkpIHx8IGJvcmRl
cldpbGxBcmNJbm5lckVkZ2UoaW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCksIGlubmVy
Qm9yZGVyLnJhZGlpKCkuYm90dG9tUmlnaHQoKSkpOwotICAgICAgICBwYWludE9uZUJvcmRlclNp
ZGUoZ3JhcGhpY3NDb250ZXh0LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBzaWRl
UmVjdCwgQlNCb3R0b20sIEJTTGVmdCwgQlNSaWdodCwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRl
ZFBhdGggOiAwLCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVk
ZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CisgICAgICAgIHBh
aW50T25lQm9yZGVyU2lkZShncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwgaW5u
ZXJCb3JkZXIsIHNpZGVSZWN0LCBCU0JvdHRvbSwgQlNMZWZ0LCBCU1JpZ2h0LCBlZGdlcywgdXNl
UGF0aCA/ICZyb3VuZGVkUGF0aCA6IG51bGxwdHIsIGJsZWVkQXZvaWRhbmNlLCBpbmNsdWRlTG9n
aWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYW50aWFsaWFzLCBvdmVycmlk
ZUNvbG9yKTsKICAgICB9CiAKICAgICBpZiAoZWRnZXNbQlNMZWZ0XS5zaG91bGRSZW5kZXIoKSAm
JiBpbmNsdWRlc0VkZ2UoZWRnZVNldCwgQlNMZWZ0KSkgewpAQCAtMTY1Miw3ICsxNjUyLDcgQEAg
dm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXJTaWRlcyhHcmFwaGljc0NvbnRl
eHQqIGdyYXBoaWNzQ29udGV4dCwgY28KICAgICAgICAgc2lkZVJlY3Quc2V0V2lkdGgoZWRnZXNb
QlNMZWZ0XS53aWR0aEZvclBhaW50aW5nKCkgKyBpbm5lckJvcmRlckFkanVzdG1lbnQueCgpKTsK
IAogICAgICAgICBib29sIHVzZVBhdGggPSByZW5kZXJSYWRpaSAmJiAoYm9yZGVyU3R5bGVIYXNJ
bm5lckRldGFpbChlZGdlc1tCU0xlZnRdLnN0eWxlKCkpIHx8IGJvcmRlcldpbGxBcmNJbm5lckVk
Z2UoaW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCksIGlubmVyQm9yZGVyLnJhZGlpKCku
dG9wTGVmdCgpKSk7Ci0gICAgICAgIHBhaW50T25lQm9yZGVyU2lkZShncmFwaGljc0NvbnRleHQs
IHN0eWxlLCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIsIHNpZGVSZWN0LCBCU0xlZnQsIEJTVG9w
LCBCU0JvdHRvbSwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVlZEF2b2lk
YW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFu
dGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CisgICAgICAgIHBhaW50T25lQm9yZGVyU2lkZShncmFw
aGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIsIHNpZGVSZWN0LCBC
U0xlZnQsIEJTVG9wLCBCU0JvdHRvbSwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiBu
dWxscHRyLCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxv
Z2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CiAgICAgfQogCiAgICAg
aWYgKGVkZ2VzW0JTUmlnaHRdLnNob3VsZFJlbmRlcigpICYmIGluY2x1ZGVzRWRnZShlZGdlU2V0
LCBCU1JpZ2h0KSkgewpAQCAtMTY2MCw3ICsxNjYwLDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6cGFpbnRCb3JkZXJTaWRlcyhHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwg
Y28KICAgICAgICAgc2lkZVJlY3Quc2hpZnRYRWRnZVRvKHNpZGVSZWN0Lm1heFgoKSAtIGVkZ2Vz
W0JTUmlnaHRdLndpZHRoRm9yUGFpbnRpbmcoKSAtIGlubmVyQm9yZGVyQWRqdXN0bWVudC54KCkp
OwogCiAgICAgICAgIGJvb2wgdXNlUGF0aCA9IHJlbmRlclJhZGlpICYmIChib3JkZXJTdHlsZUhh
c0lubmVyRGV0YWlsKGVkZ2VzW0JTUmlnaHRdLnN0eWxlKCkpIHx8IGJvcmRlcldpbGxBcmNJbm5l
ckVkZ2UoaW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpLCBpbm5lckJvcmRlci5yYWRp
aSgpLnRvcFJpZ2h0KCkpKTsKLSAgICAgICAgcGFpbnRPbmVCb3JkZXJTaWRlKGdyYXBoaWNzQ29u
dGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwgc2lkZVJlY3QsIEJTUmlnaHQs
IEJTVG9wLCBCU0JvdHRvbSwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVl
ZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVk
Z2UsIGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CisgICAgICAgIHBhaW50T25lQm9yZGVyU2lk
ZShncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIsIHNpZGVS
ZWN0LCBCU1JpZ2h0LCBCU1RvcCwgQlNCb3R0b20sIGVkZ2VzLCB1c2VQYXRoID8gJnJvdW5kZWRQ
YXRoIDogbnVsbHB0ciwgYmxlZWRBdm9pZGFuY2UsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGlu
Y2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMsIG92ZXJyaWRlQ29sb3IpOwogICAgIH0K
IH0KIApAQCAtMjUzMSw3ICsyNTMxLDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c2V0
Q29udGludWF0aW9uKFJlbmRlckJveE1vZGVsT2JqZWN0KiBjb250aW51YXRpb24pCiBSZW5kZXJU
ZXh0RnJhZ21lbnQqIFJlbmRlckJveE1vZGVsT2JqZWN0OjpmaXJzdExldHRlclJlbWFpbmluZ1Rl
eHQoKSBjb25zdAogewogICAgIGlmICghZmlyc3RMZXR0ZXJSZW1haW5pbmdUZXh0TWFwKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGZpcnN0
TGV0dGVyUmVtYWluaW5nVGV4dE1hcC0+Z2V0KHRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IGE3NjkzZmVkMTFkZDRh
MjFhN2IzY2JkZGRjM2VjNjRhZjk4YjZmMDguLjVhMWMxNWZjMWQwMGJhMjcxYzk0ODZkOGVjNmVi
M2YxMDg5YTMwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5oCkBAIC0xODQsMTAgKzE4NCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBM
YXlvdXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIExheW91dFVu
aXQgbWFyZ2luTGVmdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2lu
UmlnaHQoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJlZm9yZShj
b25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSA9IDApIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUgPSAw
KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpblN0YXJ0KGNvbnN0IFJl
bmRlclN0eWxlKiBvdGhlclN0eWxlID0gMCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBtYXJnaW5FbmQoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUgPSAwKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJlZm9yZShjb25zdCBSZW5kZXJTdHls
ZSogb3RoZXJTdHlsZSA9IG51bGxwdHIpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91dFVu
aXQgbWFyZ2luQWZ0ZXIoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUgPSBudWxscHRyKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpblN0YXJ0KGNvbnN0IFJlbmRl
clN0eWxlKiBvdGhlclN0eWxlID0gbnVsbHB0cikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBtYXJnaW5FbmQoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUgPSBudWxscHRy
KSBjb25zdCA9IDA7CiAgICAgTGF5b3V0VW5pdCB2ZXJ0aWNhbE1hcmdpbkV4dGVudCgpIGNvbnN0
IHsgcmV0dXJuIG1hcmdpblRvcCgpICsgbWFyZ2luQm90dG9tKCk7IH0KICAgICBMYXlvdXRVbml0
IGhvcml6b250YWxNYXJnaW5FeHRlbnQoKSBjb25zdCB7IHJldHVybiBtYXJnaW5MZWZ0KCkgKyBt
YXJnaW5SaWdodCgpOyB9CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Mb2dpY2FsSGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbWFyZ2luQmVmb3JlKCkgKyBtYXJnaW5BZnRlcigpOyB9CkBAIC0yMDMsOSAr
MjAzLDkgQEAgcHVibGljOgogICAgIHZvaWQgcGFpbnRCb3JkZXIoY29uc3QgUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgQmFja2dyb3VuZEJsZWVkQXZv
aWRhbmNlID0gQmFja2dyb3VuZEJsZWVkTm9uZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdl
ID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSA9IHRydWUpOwogICAgIGJvb2wg
cGFpbnROaW5lUGllY2VJbWFnZShHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0Jiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBOaW5lUGllY2VJbWFnZSYsIENvbXBvc2l0ZU9wZXJh
dG9yID0gQ29tcG9zaXRlU291cmNlT3Zlcik7CiAgICAgdm9pZCBwYWludEJveFNoYWRvdyhjb25z
dCBQYWludEluZm8mLCBjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBTaGFk
b3dTdHlsZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlID0gdHJ1ZSwgYm9vbCBpbmNsdWRl
TG9naWNhbFJpZ2h0RWRnZSA9IHRydWUpOwotICAgIHZvaWQgcGFpbnRGaWxsTGF5ZXJFeHRlbmRl
ZChjb25zdCBQYWludEluZm8mLCBjb25zdCBDb2xvciYsIGNvbnN0IEZpbGxMYXllciosIGNvbnN0
IExheW91dFJlY3QmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIElubGluZUZsb3dCb3gqID0g
MCwgY29uc3QgTGF5b3V0U2l6ZSYgPSBMYXlvdXRTaXplKCksIENvbXBvc2l0ZU9wZXJhdG9yID0g
Q29tcG9zaXRlU291cmNlT3ZlciwgUmVuZGVyRWxlbWVudCogYmFja2dyb3VuZE9iamVjdCA9IDAs
IEJhc2VCYWNrZ3JvdW5kQ29sb3JVc2FnZSA9IEJhc2VCYWNrZ3JvdW5kQ29sb3JVc2UpOworICAg
IHZvaWQgcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mLCBjb25zdCBDb2xv
ciYsIGNvbnN0IEZpbGxMYXllciosIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3JvdW5kQmxlZWRB
dm9pZGFuY2UsIElubGluZUZsb3dCb3gqID0gbnVsbHB0ciwgY29uc3QgTGF5b3V0U2l6ZSYgPSBM
YXlvdXRTaXplKCksIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVu
ZGVyRWxlbWVudCogYmFja2dyb3VuZE9iamVjdCA9IG51bGxwdHIsIEJhc2VCYWNrZ3JvdW5kQ29s
b3JVc2FnZSA9IEJhc2VCYWNrZ3JvdW5kQ29sb3JVc2UpOwogCi0gICAgdmlydHVhbCBib29sIGJv
eFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChCYWNrZ3JvdW5kQmxlZWRBdm9pZGFu
Y2UsIElubGluZUZsb3dCb3gqID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGJveFNoYWRv
d1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3VuZChCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIElu
bGluZUZsb3dCb3gqID0gbnVsbHB0cikgY29uc3Q7CiAKICAgICAvLyBPdmVycmlkZGVuIGJ5IHN1
YmNsYXNzZXMgdG8gZGV0ZXJtaW5lIGxpbmUgaGVpZ2h0IGFuZCBiYXNlbGluZSBwb3NpdGlvbi4K
ICAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUp
IGNvbnN0ID0gMDsKQEAgLTI0MCw3ICsyNDAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgTGF5b3V0UG9p
bnQgYWRqdXN0ZWRQb3NpdGlvblJlbGF0aXZlVG9PZmZzZXRQYXJlbnQoY29uc3QgTGF5b3V0UG9p
bnQmKSBjb25zdDsKIAogICAgIGJvb2wgaGFzQm94RGVjb3JhdGlvblN0eWxlKCkgY29uc3Q7Ci0g
ICAgQmFja2dyb3VuZEltYWdlR2VvbWV0cnkgY2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0
cnkoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIsIGNvbnN0IEZp
bGxMYXllciYsIGNvbnN0IExheW91dFJlY3QmIHBhaW50UmVjdCwgUmVuZGVyRWxlbWVudCogPSAw
KSBjb25zdDsKKyAgICBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeSBjYWxjdWxhdGVCYWNrZ3JvdW5k
SW1hZ2VHZW9tZXRyeShjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWludENvbnRhaW5l
ciwgY29uc3QgRmlsbExheWVyJiwgY29uc3QgTGF5b3V0UmVjdCYgcGFpbnRSZWN0LCBSZW5kZXJF
bGVtZW50KiA9IG51bGxwdHIpIGNvbnN0OwogICAgIGJvb2wgYm9yZGVyT2JzY3VyZXNCYWNrZ3Jv
dW5kRWRnZShjb25zdCBGbG9hdFNpemUmIGNvbnRleHRTY2FsZSkgY29uc3Q7CiAgICAgYm9vbCBi
b3JkZXJPYnNjdXJlc0JhY2tncm91bmQoKSBjb25zdDsKICAgICBSb3VuZGVkUmVjdCBiYWNrZ3Jv
dW5kUm91bmRlZFJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKGNvbnN0IEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIElubGlu
ZUZsb3dCb3gqLCBjb25zdCBMYXlvdXRTaXplJiwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdl
LCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKSBjb25zdDsKQEAgLTI2OSwyMSArMjY5LDIx
IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVDaGlsZFRvKFJlbmRlckJveE1vZGVsT2JqZWN0KiB0
b0JveE1vZGVsT2JqZWN0LCBSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9y
ZUNoaWxkLCBib29sIGZ1bGxSZW1vdmVJbnNlcnQgPSBmYWxzZSk7CiAgICAgdm9pZCBtb3ZlQ2hp
bGRUbyhSZW5kZXJCb3hNb2RlbE9iamVjdCogdG9Cb3hNb2RlbE9iamVjdCwgUmVuZGVyT2JqZWN0
KiBjaGlsZCwgYm9vbCBmdWxsUmVtb3ZlSW5zZXJ0ID0gZmFsc2UpCiAgICAgewotICAgICAgICBt
b3ZlQ2hpbGRUbyh0b0JveE1vZGVsT2JqZWN0LCBjaGlsZCwgMCwgZnVsbFJlbW92ZUluc2VydCk7
CisgICAgICAgIG1vdmVDaGlsZFRvKHRvQm94TW9kZWxPYmplY3QsIGNoaWxkLCBudWxscHRyLCBm
dWxsUmVtb3ZlSW5zZXJ0KTsKICAgICB9CiAgICAgdm9pZCBtb3ZlQWxsQ2hpbGRyZW5UbyhSZW5k
ZXJCb3hNb2RlbE9iamVjdCogdG9Cb3hNb2RlbE9iamVjdCwgYm9vbCBmdWxsUmVtb3ZlSW5zZXJ0
ID0gZmFsc2UpCiAgICAgewotICAgICAgICBtb3ZlQWxsQ2hpbGRyZW5Ubyh0b0JveE1vZGVsT2Jq
ZWN0LCAwLCBmdWxsUmVtb3ZlSW5zZXJ0KTsKKyAgICAgICAgbW92ZUFsbENoaWxkcmVuVG8odG9C
b3hNb2RlbE9iamVjdCwgbnVsbHB0ciwgZnVsbFJlbW92ZUluc2VydCk7CiAgICAgfQogICAgIHZv
aWQgbW92ZUFsbENoaWxkcmVuVG8oUmVuZGVyQm94TW9kZWxPYmplY3QqIHRvQm94TW9kZWxPYmpl
Y3QsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQsIGJvb2wgZnVsbFJlbW92ZUluc2VydCA9IGZh
bHNlKQogICAgIHsKLSAgICAgICAgbW92ZUNoaWxkcmVuVG8odG9Cb3hNb2RlbE9iamVjdCwgZmly
c3RDaGlsZCgpLCAwLCBiZWZvcmVDaGlsZCwgZnVsbFJlbW92ZUluc2VydCk7CisgICAgICAgIG1v
dmVDaGlsZHJlblRvKHRvQm94TW9kZWxPYmplY3QsIGZpcnN0Q2hpbGQoKSwgbnVsbHB0ciwgYmVm
b3JlQ2hpbGQsIGZ1bGxSZW1vdmVJbnNlcnQpOwogICAgIH0KICAgICAvLyBNb3ZlIGFsbCBvZiB0
aGUga2lkcyBmcm9tIHxzdGFydENoaWxkfCB1cCB0byBidXQgZXhjbHVkaW5nIHxlbmRDaGlsZHwu
IDAgY2FuIGJlIHBhc3NlZCBhcyB0aGUgfGVuZENoaWxkfCB0byBkZW5vdGUKICAgICAvLyB0aGF0
IGFsbCB0aGUga2lkcyBmcm9tIHxzdGFydENoaWxkfCBvbndhcmRzIHNob3VsZCBiZSBtb3ZlZC4K
ICAgICB2b2lkIG1vdmVDaGlsZHJlblRvKFJlbmRlckJveE1vZGVsT2JqZWN0KiB0b0JveE1vZGVs
T2JqZWN0LCBSZW5kZXJPYmplY3QqIHN0YXJ0Q2hpbGQsIFJlbmRlck9iamVjdCogZW5kQ2hpbGQs
IGJvb2wgZnVsbFJlbW92ZUluc2VydCA9IGZhbHNlKQogICAgIHsKLSAgICAgICAgbW92ZUNoaWxk
cmVuVG8odG9Cb3hNb2RlbE9iamVjdCwgc3RhcnRDaGlsZCwgZW5kQ2hpbGQsIDAsIGZ1bGxSZW1v
dmVJbnNlcnQpOworICAgICAgICBtb3ZlQ2hpbGRyZW5Ubyh0b0JveE1vZGVsT2JqZWN0LCBzdGFy
dENoaWxkLCBlbmRDaGlsZCwgbnVsbHB0ciwgZnVsbFJlbW92ZUluc2VydCk7CiAgICAgfQogICAg
IHZvaWQgbW92ZUNoaWxkcmVuVG8oUmVuZGVyQm94TW9kZWxPYmplY3QqIHRvQm94TW9kZWxPYmpl
Y3QsIFJlbmRlck9iamVjdCogc3RhcnRDaGlsZCwgUmVuZGVyT2JqZWN0KiBlbmRDaGlsZCwgUmVu
ZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCwgYm9vbCBmdWxsUmVtb3ZlSW5zZXJ0ID0gZmFsc2UpOwog
CkBAIC0zMDcsMTIgKzMwNywxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xpcEJvcmRlclNpZGVG
b3JDb21wbGV4SW5uZXJQYXRoKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFJvdW5kZWRSZWN0Jiwg
Y29uc3QgUm91bmRlZFJlY3QmLCBCb3hTaWRlLCBjb25zdCBCb3JkZXJFZGdlW10pOwogICAgIHZv
aWQgcGFpbnRPbmVCb3JkZXJTaWRlKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFJlbmRlclN0eWxl
JiwgY29uc3QgUm91bmRlZFJlY3QmIG91dGVyQm9yZGVyLCBjb25zdCBSb3VuZGVkUmVjdCYgaW5u
ZXJCb3JkZXIsCiAgICAgICAgIGNvbnN0IExheW91dFJlY3QmIHNpZGVSZWN0LCBCb3hTaWRlLCBC
b3hTaWRlIGFkamFjZW50U2lkZTEsIEJveFNpZGUgYWRqYWNlbnRTaWRlMiwgY29uc3QgQm9yZGVy
RWRnZVtdLAotICAgICAgICBjb25zdCBQYXRoKiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBi
b29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2Us
IGJvb2wgYW50aWFsaWFzLCBjb25zdCBDb2xvciogb3ZlcnJpZGVDb2xvciA9IDApOworICAgICAg
ICBjb25zdCBQYXRoKiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dp
Y2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFz
LCBjb25zdCBDb2xvciogb3ZlcnJpZGVDb2xvciA9IG51bGxwdHIpOwogICAgIHZvaWQgcGFpbnRU
cmFuc2x1Y2VudEJvcmRlclNpZGVzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFJlbmRlclN0eWxl
JiwgY29uc3QgUm91bmRlZFJlY3QmIG91dGVyQm9yZGVyLCBjb25zdCBSb3VuZGVkUmVjdCYgaW5u
ZXJCb3JkZXIsIGNvbnN0IEludFBvaW50JiBpbm5lckJvcmRlckFkanVzdG1lbnQsCiAgICAgICAg
IGNvbnN0IEJvcmRlckVkZ2VbXSwgQm9yZGVyRWRnZUZsYWdzLCBCYWNrZ3JvdW5kQmxlZWRBdm9p
ZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMgPSBmYWxzZSk7CiAgICAgdm9pZCBwYWludEJvcmRlclNp
ZGVzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgUm91bmRlZFJl
Y3QmIG91dGVyQm9yZGVyLCBjb25zdCBSb3VuZGVkUmVjdCYgaW5uZXJCb3JkZXIsCiAgICAgICAg
IGNvbnN0IEludFBvaW50JiBpbm5lckJvcmRlckFkanVzdG1lbnQsIGNvbnN0IEJvcmRlckVkZ2Vb
XSwgQm9yZGVyRWRnZUZsYWdzLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsCi0gICAgICAgIGJv
b2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwg
Ym9vbCBhbnRpYWxpYXMgPSBmYWxzZSwgY29uc3QgQ29sb3IqIG92ZXJyaWRlQ29sb3IgPSAwKTsK
KyAgICAgICAgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2Fs
UmlnaHRFZGdlLCBib29sIGFudGlhbGlhcyA9IGZhbHNlLCBjb25zdCBDb2xvciogb3ZlcnJpZGVD
b2xvciA9IG51bGxwdHIpOwogICAgIHZvaWQgZHJhd0JveFNpZGVGcm9tUGF0aChHcmFwaGljc0Nv
bnRleHQqLCBjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUGF0aCYsIGNvbnN0IEJvcmRlckVkZ2Vb
XSwKICAgICAgICAgZmxvYXQgdGhpY2tuZXNzLCBmbG9hdCBkcmF3VGhpY2tuZXNzLCBCb3hTaWRl
LCBjb25zdCBSZW5kZXJTdHlsZSYsCiAgICAgICAgIENvbG9yLCBFQm9yZGVyU3R5bGUsIEJhY2tn
cm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGlu
Y2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKaW5kZXggOTdlNzU1MGI4ZmEx
ZmE0MmE5YzI2MTQwYjZmY2NjODcxYmU5MzY0MC4uYjlkN2U1OWJlMDc1NjVjYzdkMTYxYzNhZWE4
YmU1MzgzN2JkM2ZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCByZXNldCgpCiAgICAgewotICAgICAgICBtX2N1cnJlbnRDaGlsZCA9IDA7
CisgICAgICAgIG1fY3VycmVudENoaWxkID0gbnVsbHB0cjsKICAgICAgICAgbV9vcmRpbmFsSXRl
cmF0aW9uID0gLTE7CiAgICAgfQogCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgICAgICAgICAgbV9jdXJyZW50T3JkaW5hbCA9IG1fZm9yd2FyZCA/IDEgOiBtX2xhcmdlc3RP
cmRpbmFsOwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBpZiAo
bV9vcmRpbmFsSXRlcmF0aW9uID4gbV9vcmRpbmFsVmFsdWVzLnNpemUoKSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICAgICAgICAgICAgICAgICAgLy8gT25seSBjb3B5K3NvcnQgdGhlIHZhbHVl
cyBvbmNlIHBlciBsYXlvdXQgZXZlbiBpZiB0aGUgaXRlcmF0b3IgaXMgcmVzZXQuCiAgICAgICAg
ICAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxzaXplX3Q+KG1fb3JkaW5hbFZhbHVlcy5zaXpl
KCkpICE9IG1fc29ydGVkT3JkaW5hbFZhbHVlcy5zaXplKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaAppbmRleCA4
YWRkMjA5MThkZWYxNTk4YWEzNmNmN2FjZTJiMjNkYzM4MzgxYWM0Li4yZGQwMWY3ZGJiN2ViMmQ5
ZGM5ZmEwN2ZiMDI3YWM5YTUxMjgwYmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oCkBAIC00OSw3ICs0OSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYXZvaWRzRmxvYXRzKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBjYW5Db2xsYXBzZUFub255bW91c0Js
b2NrQ2hpbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBw
bGFjZUNoaWxkKFJlbmRlckJveCogY2hpbGQsIGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbiwg
TGF5b3V0U2l6ZSogY2hpbGRMYXlvdXREZWx0YSA9IDApOworICAgIHZvaWQgcGxhY2VDaGlsZChS
ZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIExheW91dFNpemUq
IGNoaWxkTGF5b3V0RGVsdGEgPSBudWxscHRyKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNEZXByZWNhdGVkRmxleGlibGVCb3goKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApp
bmRleCA5MzQzNmQyYjE2NjhhNTJjY2E1MWU2YjdiMGM4YjVlOTMxYjRlOTQwLi4yYTUwZWUyNWYy
YzI4M2FmOTE2ZDM2NjY4YzM5ZGY0NzljZTM5N2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTE3OSw3ICsxNzksNyBAQCBPcHRpb25h
bDxpbnQ+IFJlbmRlckZsZXhpYmxlQm94OjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CiB7CiAg
ICAgaWYgKGlzV3JpdGluZ01vZGVSb290KCkgfHwgbV9udW1iZXJPZkluRmxvd0NoaWxkcmVuT25G
aXJzdExpbmUgPD0gMCkKICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPGludD4oKTsKLSAgICBSZW5k
ZXJCb3gqIGJhc2VsaW5lQ2hpbGQgPSAwOworICAgIFJlbmRlckJveCogYmFzZWxpbmVDaGlsZCA9
IG51bGxwdHI7CiAgICAgaW50IGNoaWxkTnVtYmVyID0gMDsKICAgICBmb3IgKFJlbmRlckJveCog
Y2hpbGQgPSBtX29yZGVySXRlcmF0b3IuZmlyc3QoKTsgY2hpbGQ7IGNoaWxkID0gbV9vcmRlckl0
ZXJhdG9yLm5leHQoKSkgewogICAgICAgICBpZiAoY2hpbGQtPmlzT3V0T2ZGbG93UG9zaXRpb25l
ZCgpKQpAQCAtNDY1LDcgKzQ2NSw3IEBAIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmNv
bXB1dGVNYWluQXhpc0V4dGVudEZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIFNpCiAgICAgaWYg
KGlzQ29sdW1uRmxvdygpKQogICAgICAgICByZXR1cm4gY2hpbGQuY29tcHV0ZUNvbnRlbnRMb2dp
Y2FsSGVpZ2h0KHNpemUpOwogICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IGhvdyB0aGlzIHNob3Vs
ZCB3b3JrIGZvciByZWdpb25zIGFuZCBwYXNzIGluIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZXMuCi0g
ICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAwOworICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0g
bnVsbHB0cjsKICAgICByZXR1cm4gY2hpbGQuY29tcHV0ZUxvZ2ljYWxXaWR0aEluUmVnaW9uVXNp
bmcoc2l6ZVR5cGUsIHNpemUsIGNvbnRlbnRMb2dpY2FsV2lkdGgoKSwgdGhpcywgcmVnaW9uKSAt
IGNoaWxkLmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCb3hMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlzdC5jcHAKaW5kZXggYjUwNWI4MjFjMzQ5
ODcwYTU5MmE4OGQ1NjY5NmM1NmQ4MDM1NTM3Zi4uNDUwMzIwNzc3MjAzMzZlZmUyZDQwYTNhMmUz
ZjM5NTJlZTkyMmI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpbmVCb3hMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlu
ZUJveExpc3QuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgUmVuZGVyTGluZUJveExpc3Q6OmRl
bGV0ZUxpbmVCb3hUcmVlKCkKICAgICAgICAgbGluZS0+ZGVsZXRlTGluZSgpOwogICAgICAgICBs
aW5lID0gbmV4dExpbmU7CiAgICAgfQotICAgIG1fZmlyc3RMaW5lQm94ID0gbV9sYXN0TGluZUJv
eCA9IDA7CisgICAgbV9maXJzdExpbmVCb3ggPSBtX2xhc3RMaW5lQm94ID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBSZW5kZXJMaW5lQm94TGlzdDo6ZXh0cmFjdExpbmVCb3goSW5saW5lRmxvd0JveCog
Ym94KQpAQCAtODcsOCArODcsOCBAQCB2b2lkIFJlbmRlckxpbmVCb3hMaXN0OjpleHRyYWN0TGlu
ZUJveChJbmxpbmVGbG93Qm94KiBib3gpCiAgICAgaWYgKGJveCA9PSBtX2ZpcnN0TGluZUJveCkK
ICAgICAgICAgbV9maXJzdExpbmVCb3ggPSAwOwogICAgIGlmIChib3gtPnByZXZMaW5lQm94KCkp
Ci0gICAgICAgIGJveC0+cHJldkxpbmVCb3goKS0+c2V0TmV4dExpbmVCb3goMCk7Ci0gICAgYm94
LT5zZXRQcmV2aW91c0xpbmVCb3goMCk7CisgICAgICAgIGJveC0+cHJldkxpbmVCb3goKS0+c2V0
TmV4dExpbmVCb3gobnVsbHB0cik7CisgICAgYm94LT5zZXRQcmV2aW91c0xpbmVCb3gobnVsbHB0
cik7CiAgICAgZm9yIChJbmxpbmVGbG93Qm94KiBjdXJyID0gYm94OyBjdXJyOyBjdXJyID0gY3Vy
ci0+bmV4dExpbmVCb3goKSkKICAgICAgICAgY3Vyci0+c2V0RXh0cmFjdGVkKCk7CiAKQEAgLTEz
OCw4ICsxMzgsOCBAQCB2b2lkIFJlbmRlckxpbmVCb3hMaXN0OjpkZWxldGVMaW5lQm94ZXMoKQog
ICAgICAgICAgICAgbmV4dCA9IGN1cnItPm5leHRMaW5lQm94KCk7CiAgICAgICAgICAgICBkZWxl
dGUgY3VycjsKICAgICAgICAgfQotICAgICAgICBtX2ZpcnN0TGluZUJveCA9IDA7Ci0gICAgICAg
IG1fbGFzdExpbmVCb3ggPSAwOworICAgICAgICBtX2ZpcnN0TGluZUJveCA9IG51bGxwdHI7Cisg
ICAgICAgIG1fbGFzdExpbmVCb3ggPSBudWxscHRyOwogICAgIH0KIH0KIApAQCAtNDAyLDggKzQw
Miw4IEBAIHZvaWQgUmVuZGVyTGluZUJveExpc3Q6OmRpcnR5TGluZXNGcm9tQ2hhbmdlZENoaWxk
KFJlbmRlckJveE1vZGVsT2JqZWN0JiBjb250YWluCiB2b2lkIFJlbmRlckxpbmVCb3hMaXN0Ojpj
aGVja0NvbnNpc3RlbmN5KCkgY29uc3QKIHsKICNpZmRlZiBDSEVDS19DT05TSVNURU5DWQotICAg
IGNvbnN0IElubGluZUZsb3dCb3gqIHByZXYgPSAwOwotICAgIGZvciAoY29uc3QgSW5saW5lRmxv
d0JveCogY2hpbGQgPSBtX2ZpcnN0TGluZUJveDsgY2hpbGQgIT0gMDsgY2hpbGQgPSBjaGlsZC0+
bmV4dExpbmVCb3goKSkgeworICAgIGNvbnN0IElubGluZUZsb3dCb3gqIHByZXYgPSBudWxscHRy
OworICAgIGZvciAoY29uc3QgSW5saW5lRmxvd0JveCogY2hpbGQgPSBtX2ZpcnN0TGluZUJveDsg
Y2hpbGQgIT0gbnVsbHB0cjsgY2hpbGQgPSBjaGlsZC0+bmV4dExpbmVCb3goKSkgewogICAgICAg
ICBBU1NFUlQoY2hpbGQtPnByZXZMaW5lQm94KCkgPT0gcHJldik7CiAgICAgICAgIHByZXYgPSBj
aGlsZDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGluZUJveExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlz
dC5oCmluZGV4IDdhYTM1YTJkOTg3NzViYjhiZGFiZTIyNjZkYWM5YTYzYWI4ZWRmOGEuLmI5NTVl
ZjgzODYzYTZmYzYxNzBiYTJhZGMwNjE3YWFmMWEzMGE1ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlzdC5oCkBAIC00MCw4ICs0MCw4IEBAIGNsYXNzIFJl
bmRlckJsb2NrRmxvdzsKIGNsYXNzIFJlbmRlckxpbmVCb3hMaXN0IHsKIHB1YmxpYzoKICAgICBS
ZW5kZXJMaW5lQm94TGlzdCgpCi0gICAgICAgIDogbV9maXJzdExpbmVCb3goMCkKLSAgICAgICAg
LCBtX2xhc3RMaW5lQm94KDApCisgICAgICAgIDogbV9maXJzdExpbmVCb3gobnVsbHB0cikKKyAg
ICAgICAgLCBtX2xhc3RMaW5lQm94KG51bGxwdHIpCiAgICAgewogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDllMzE3YmUwYjZiNDlhZTUx
Mzc5YWM1ZTJhNzFiZmJhMjMwYmE1ODAuLjdlMzg3YmQ5ZmE5ZWRjMjVhYTNkM2U0MGIxYTA5NWE5
ZWY1OTBiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAK
QEAgLTc3OSw3ICs3NzksNyBAQCBib29sIFJlbmRlckxpc3RCb3g6OmZvcmNlVXBkYXRlU2Nyb2xs
YmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbgogU2Nyb2xsYWJsZUFy
ZWEqIFJlbmRlckxpc3RCb3g6OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3QKIHsKICAg
ICAvLyBGSVhNRTogUmV0dXJuIGEgUmVuZGVyTGF5ZXIgdGhhdCdzIHNjcm9sbGFibGUuCi0gICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIGJvb2wgUmVuZGVyTGlzdEJveDo6
aXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZSgpCkBAIC04MjQsNyArODI0LDcgQEAgdm9pZCBS
ZW5kZXJMaXN0Qm94OjpkZXN0cm95U2Nyb2xsYmFyKCkKIAogdm9pZCBSZW5kZXJMaXN0Qm94Ojpz
ZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihib29sIGhhc1Njcm9sbGJhcikKIHsKLSAgICBpZiAoaGFz
U2Nyb2xsYmFyID09IChtX3ZCYXIgIT0gMCkpCisgICAgaWYgKGhhc1Njcm9sbGJhciA9PSAobV92
QmFyICE9IG51bGxwdHIpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoaGFzU2Nyb2xsYmFy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5kZXggYzVkZjZkNWJh
NzM2ZjRmZWZjZmZjMTk0ZTBiMjU3YzU5MThlOWE1ZC4uMGZmYzJjOTkwZGEyNmQwN2RhYjU3OTli
ZDliMGVmOTUwY2E2MTM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5oCkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQb2lu
dEluT3ZlcmZsb3dDb250cm9sKEhpdFRlc3RSZXN1bHQmLCBjb25zdCBMYXlvdXRQb2ludCYgbG9j
YXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBsb2dpY2FsU2Nyb2xsKFNjcm9sbExvZ2ljYWxE
aXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgRWxlbWVu
dCoqIHN0b3BFbGVtZW50ID0gMCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGxvZ2ljYWxT
Y3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11
bHRpcGxpZXIgPSAxLCBFbGVtZW50Kiogc3RvcEVsZW1lbnQgPSBudWxscHRyKSBvdmVycmlkZTsK
IAogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRV
bml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhz
KCkgb3ZlcnJpZGU7CkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZv
aWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVj
dHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQs
IGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyID0gMCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRSZWN0PiYs
IGNvbnN0IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0LCBjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBwYWludENvbnRhaW5lciA9IG51bGxwdHIpIG92ZXJyaWRlOwogCiAgICAgdmly
dHVhbCBib29sIGNhbkJlUHJvZ3JhbWF0aWNhbGx5U2Nyb2xsZWQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIGF1dG9zY3JvbGwoY29uc3QgSW50UG9p
bnQmKSBvdmVycmlkZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>