<?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>100734</bug_id>
          
          <creation_ts>2012-10-30 01:16:58 -0700</creation_ts>
          <short_desc>Remove unused code for old input[type=date] UI</short_desc>
          <delta_ts>2012-10-30 05:10:29 -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>Forms</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="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>mifenton</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>754047</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-30 01:16:58 -0700</bug_when>
    <thetext>Remove unused code for old input[type=date] UI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754053</commentid>
    <comment_count>1</comment_count>
      <attachid>171392</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-30 01:26:36 -0700</bug_when>
    <thetext>Created attachment 171392
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754170</commentid>
    <comment_count>2</comment_count>
      <attachid>171392</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-10-30 03:44:51 -0700</bug_when>
    <thetext>Comment on attachment 171392
Patch

rs=me. Please wait mac bot greenness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754231</commentid>
    <comment_count>3</comment_count>
      <attachid>171392</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-30 05:10:25 -0700</bug_when>
    <thetext>Comment on attachment 171392
Patch

Clearing flags on attachment: 171392

Committed r132896: &lt;http://trac.webkit.org/changeset/132896&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754232</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-30 05:10:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171392</attachid>
            <date>2012-10-30 01:26:36 -0700</date>
            <delta_ts>2012-10-30 05:10:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100734-20121030172501.patch</filename>
            <type>text/plain</type>
            <size>29649</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc5Nzg3MzJhZGVlNWMz
NmFjZmVjZjFkYjgxYmU3MDVkOThmNzE2Yi4uYTY2ZTZkM2YzMDkxOTc5NmE1YjUyYmE0NzZlMTlj
MmQ4NDFkNGNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTEwLTMwICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdW51c2VkIGNv
ZGUgZm9yIG9sZCBpbnB1dFt0eXBlPWRhdGVdIFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA3MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb2xkIGlucHV0W3R5cGU9ZGF0ZV0gVUkgdXNlZCBp
biBHb29nbGUgQ2hyb21lIDIwLTIzICh0ZXh0IGZpZWxkIHdpdGgKKyAgICAgICAgYSBmaXhlZCBw
bGFjZWhvbGRlcikgd2FzIHJlcGxhY2VkIHdpdGggRU5BQkxFX0lOUFVUX01VTFRJUExFX0ZJRUxE
U19VSS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBvZiBubyBiZWhhdmlvciBjaGFu
Z2VzLgorCisgICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmNwcDogUmVtb3ZlIEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVfTEVHQUNZX1VJIGNvZGUgcGF0aC4KKyAgICAgICAgKiBodG1sL0RhdGVJ
bnB1dFR5cGUuaDogRGl0dG8uCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c3VwcG9ydHNQbGFjZWhvbGRl
cik6CisgICAgICAgIFJlbW92ZSBmaXhlZC1wbGFjZWhvbGRlciBmZWF0dXJlLgorICAgICAgICAq
IGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAoSFRNTElucHV0RWxlbWVudCk6IERp
dHRvLgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAg
ICAgKEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KTogaXNQbGFjZWhvbGRlckVtcHR5KCkgaXMg
bm90IG5lZWRlZCB0byBiZSB2aXJ0dWFsCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOiBS
ZW1vdmUgZml4ZWQtcGxhY2Vob2xkZXIgZmVhdHVyZS4KKyAgICAgICAgKiBodG1sL0lucHV0VHlw
ZS5oOiBEaXR0by4KKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCk6
IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oOgorICAg
ICAgICAoTG9jYWxlKTogUmVtb3ZlIGRhdGVGb3JtYXRUZXh0LgorICAgICAgICAqIHBsYXRmb3Jt
L3RleHQvTG9jYWxlSUNVLmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVJQ1UuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGVOb25lLmNwcDog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLmg6IERpdHRvLgor
ICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbTogRGl0dG8uCisgICAgICAg
ICogcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcDogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmUpOiBSZW1vdmUgdW51c2VkIGZ1bmN0
aW9uczsgY2FsZW5kYXJUb2RheVRleHQsCisgICAgICAgIGNhbGVuZGFyQ2xlYXJUZXh0LCBkYXRl
Rm9ybWF0WWVhclRleHQsIGRhdGVGb3JtYXRNb250aFRleHQsCisgICAgICAgIGRhdGVGb3JtYXRE
YXlJbk1vbnRoVGV4dAorCiAyMDEyLTEwLTI5ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbUmVmYXRvcmluZ10gUmVtb3ZlIEVsZW1lbnRTaGFkb3c6
Omluc2VydGlvblBvaW50Rm9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDNkZGQ4MTBm
ZTU3OTlkNTMzNDQ2Y2M5MTY1OTRiZDM4ODc0YjYwNjguLmExMTA2YmY4YmVkOGVhZTY2YmYwNzU1
ZTkxYjQyMzRhYzkzNjIwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTItMTAtMzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJlbW92ZSB1bnVzZWQgY29kZSBmb3Igb2xkIGlucHV0W3R5cGU9ZGF0ZV0gVUkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDczNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL0xvY2Fs
aXplZFN0cmluZ3MuY3BwOgorICAgICAgICBGb2xsb3cgdGhlIExvY2FsaXplZFN0cmluZ3MuaCBj
aGFuZ2UuCisgICAgICAgICogdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHA6CisgICAgICAgIChMb2Nh
bGVNYWNUZXN0KTogUmVtb3ZlIHRlc3RzIGZvciBMb2NhbGU6OmRhdGVGb3JtYXRUZXh0LgorICAg
ICAgICAqIHRlc3RzL0xvY2FsZVdpblRlc3QuY3BwOgorICAgICAgICAoTG9jYWxlV2luVGVzdCk6
IERpdHRvLgorCiAyMDEyLTEwLTI5ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBOdWxsLWNoZWNrIFdlYlZpZXdJbXBsOjptX2NsaWVu
dCBiZWZvcmUgY2FsbGluZyBpbnZhbGlkYXRlUmVjdCgpIG9uIGl0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlSW5wdXRUeXBlLmNwcAppbmRleCA5ODliMzBkNGM5OGVhZGI3YjNlZjEwOGY1OGFiYzI2ZGRl
YWUyZDk3Li5hYjhhYzdjY2MwYmZjMDcwZTAzNjU2NTYyYjdjNTcxNjM5OTMzOWQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAgLTUzLDkgKzUzLDYgQEAgc3RhdGljIGNv
bnN0IGludCBkYXRlU3RlcFNjYWxlRmFjdG9yID0gODY0MDAwMDA7CiAKIGlubGluZSBEYXRlSW5w
dXRUeXBlOjpEYXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgOiBC
YXNlRGF0ZUlucHV0VHlwZShlbGVtZW50KQotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEVfTEVH
QUNZX1VJKQotICAgICwgbV9waWNrZXJFbGVtZW50KDApCi0jZW5kaWYKIHsKIH0KIApAQCAtMTAz
LDczICsxMDAsNyBAQCBib29sIERhdGVJbnB1dFR5cGU6OmlzRGF0ZUZpZWxkKCkgY29uc3QKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0RBVEVfTEVHQUNZX1VJ
KQotdm9pZCBEYXRlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKLXsKLSAgICBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKLSAgICBSZWZQdHI8
UGlja2VySW5kaWNhdG9yRWxlbWVudD4gcGlja2VyRWxlbWVudCA9IFBpY2tlckluZGljYXRvckVs
ZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpOwotICAgIG1fcGlja2VyRWxlbWVu
dCA9IHBpY2tlckVsZW1lbnQuZ2V0KCk7Ci0gICAgY29udGFpbmVyRWxlbWVudCgpLT5pbnNlcnRC
ZWZvcmUobV9waWNrZXJFbGVtZW50LCBpbm5lckJsb2NrRWxlbWVudCgpLT5uZXh0U2libGluZygp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLX0KLQotdm9pZCBEYXRlSW5wdXRUeXBlOjpkZXN0cm95
U2hhZG93U3VidHJlZSgpCi17Ci0gICAgVGV4dEZpZWxkSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93
U3VidHJlZSgpOwotICAgIG1fcGlja2VyRWxlbWVudCA9IDA7Ci19Ci0KLWJvb2wgRGF0ZUlucHV0
VHlwZTo6bmVlZHNDb250YWluZXIoKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCi1i
b29sIERhdGVJbnB1dFR5cGU6OnNob3VsZEhhdmVTcGluQnV0dG9uKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgRGF0ZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50
KEtleWJvYXJkRXZlbnQqIGV2ZW50KQotewotICAgIGlmIChlbGVtZW50KCktPmRpc2FibGVkKCkg
fHwgZWxlbWVudCgpLT5yZWFkT25seSgpKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKGV2ZW50
LT5rZXlJZGVudGlmaWVyKCkgPT0gIkRvd24iKSB7Ci0gICAgICAgIGlmIChtX3BpY2tlckVsZW1l
bnQpCi0gICAgICAgICAgICBtX3BpY2tlckVsZW1lbnQtPm9wZW5Qb3B1cCgpOwotICAgICAgICBl
dmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChldmVudCk7Ci19Ci0K
LXZvaWQgRGF0ZUlucHV0VHlwZTo6aGFuZGxlQmx1ckV2ZW50KCkKLXsKLSAgICBpZiAobV9waWNr
ZXJFbGVtZW50KQotICAgICAgICBtX3BpY2tlckVsZW1lbnQtPmNsb3NlUG9wdXAoKTsKLQotICAg
IC8vIFJlc2V0IHRoZSByZW5kZXJlciB2YWx1ZSwgd2hpY2ggbWlnaHQgYmUgdW5tYXRjaGVkIHdp
dGggdGhlIGVsZW1lbnQgdmFsdWUuCi0gICAgZWxlbWVudCgpLT5zZXRGb3JtQ29udHJvbFZhbHVl
TWF0Y2hlc1JlbmRlcmVyKGZhbHNlKTsKLSAgICAvLyBXZSBuZWVkIHRvIHJlc2V0IHRoZSByZW5k
ZXJlciB2YWx1ZSBleHBsaWNpdGx5IGJlY2F1c2UgYW4gdW5hY2NlcHRhYmxlCi0gICAgLy8gcmVu
ZGVyZXIgdmFsdWUgc2hvdWxkIGJlIHB1cmdlZCBiZWZvcmUgc3R5bGUgY2FsY3VsYXRpb24uCi0g
ICAgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsKLX0KLQotYm9vbCBEYXRlSW5wdXRUeXBlOjpzdXBw
b3J0c1BsYWNlaG9sZGVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBE
YXRlSW5wdXRUeXBlOjp1c2VzRml4ZWRQbGFjZWhvbGRlcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLVN0cmluZyBEYXRlSW5wdXRUeXBlOjpmaXhlZFBsYWNlaG9sZGVyKCkKLXsK
LSAgICByZXR1cm4gZWxlbWVudCgpLT5sb2NhbGUoKS5kYXRlRm9ybWF0VGV4dCgpOwotfQotI2Vu
ZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX0RBVEVfTEVHQUNZX1VJKQotCi0jaWYgRU5BQkxFKElO
UFVUX01VTFRJUExFX0ZJRUxEU19VSSkgJiYgIUVOQUJMRShJTlBVVF9UWVBFX0RBVEVfTEVHQUNZ
X1VJKQorI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCiBTdHJpbmcgRGF0ZUlu
cHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0
YXRlJiBkYXRlVGltZUZpZWxkc1N0YXRlKSBjb25zdAogewogICAgIGlmICghZGF0ZVRpbWVGaWVs
ZHNTdGF0ZS5oYXNEYXlPZk1vbnRoKCkgfHwgIWRhdGVUaW1lRmllbGRzU3RhdGUuaGFzTW9udGgo
KSB8fCAhZGF0ZVRpbWVGaWVsZHNTdGF0ZS5oYXNZZWFyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlu
cHV0VHlwZS5oCmluZGV4IDkzNGFjMjYyOWYwNzIxNTZmNzRhYjFhMDE4ODJlYzU1MzljYTY4MWIu
LjFmOGI3MmVlMmQ5MGQ4M2I5ZDg0ZDlmOTBkOWU2NGRiZmZiZTQxZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZUlucHV0VHlwZS5oCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgUGlja2VySW5kaWNhdG9yRWxlbWVudDsKIAotI2lmIEVOQUJMRShJTlBVVF9NVUxU
SVBMRV9GSUVMRFNfVUkpICYmICFFTkFCTEUoSU5QVVRfVFlQRV9EQVRFX0xFR0FDWV9VSSkKKyNp
ZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQogdHlwZWRlZiBCYXNlTXVsdGlwbGVG
aWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSBCYXNlRGF0ZUlucHV0VHlwZTsKICNlbHNlCiB0eXBl
ZGVmIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSBCYXNlRGF0ZUlucHV0VHlwZTsKQEAgLTU4LDI3
ICs1OCwxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0
ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBpc0RhdGVGaWVsZCgpIGNvbnN0IE9WRVJSSURFOwogCi0jaWYgRU5BQkxF
KElOUFVUX1RZUEVfREFURV9MRUdBQ1lfVUkpCi0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRv
d1N1YnRyZWUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveVNoYWRvd1N1YnRy
ZWUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJv
YXJkRXZlbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdXNlc0ZpeGVkUGxhY2Vob2xkZXIoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmaXhlZFBsYWNlaG9sZGVyKCkgT1ZFUlJJREU7
Ci0KLSAgICAvLyBUZXh0RmllbGRJbnB1dFR5cGUgZnVuY3Rpb25zCi0gICAgdmlydHVhbCBib29s
IG5lZWRzQ29udGFpbmVyKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3Vs
ZEhhdmVTcGluQnV0dG9uKCkgY29uc3QgT1ZFUlJJREU7Ci0KLSAgICBQaWNrZXJJbmRpY2F0b3JF
bGVtZW50KiBtX3BpY2tlckVsZW1lbnQ7Ci0jZWxzZQogI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBM
RV9GSUVMRFNfVUkpCiAgICAgLy8gQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGUgZnVuY3Rpb25zCiAgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0
ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQ
YXJhbWV0ZXJzJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBjb25zdCBPVkVSUklERTsKICNlbmRp
ZgotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBkYjg0ODkyNjhhZTc2YjhiNDY2MzllZTRkNTIw
MzJlNDE0MjY3ODFiLi5iZGE0NDcxN2NjNWY1YzQyMjIzZWU0MDQxNmYwMTYxNGZhYTQ0MzQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTE3NDIsMTMgKzE3
NDIsNiBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnN1cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25z
dAogICAgIHJldHVybiBtX2lucHV0VHlwZS0+c3VwcG9ydHNQbGFjZWhvbGRlcigpOwogfQogCi1i
b29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzUGxhY2Vob2xkZXJFbXB0eSgpIGNvbnN0Ci17Ci0gICAg
aWYgKG1faW5wdXRUeXBlLT51c2VzRml4ZWRQbGFjZWhvbGRlcigpKQotICAgICAgICByZXR1cm4g
bV9pbnB1dFR5cGUtPmZpeGVkUGxhY2Vob2xkZXIoKS5pc0VtcHR5KCk7Ci0gICAgcmV0dXJuIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojppc1BsYWNlaG9sZGVyRW1wdHkoKTsKLX0KLQogdm9p
ZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogewogICAgIHJldHVy
biBtX2lucHV0VHlwZS0+dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCmluZGV4IGY2ZWRiNWUzOGE2YTFjYWZiNDQ1YTYyNjMzOWJjNzEx
ODI3ZDYzYzIuLmVmNGQ3NmVhMWE1NWQwMjFjMGMzMWVhYmE5MTMzZWUxZDMwMTNiZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0zNjksNyArMzY5LDYgQEAgcHJp
dmF0ZToKICAgICBib29sIHRvb0xvbmcoY29uc3QgU3RyaW5nJiwgTmVlZHNUb0NoZWNrRGlydHlG
bGFnKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1BsYWNlaG9sZGVyKCkgY29u
c3Q7Ci0gICAgdmlydHVhbCBib29sIGlzUGxhY2Vob2xkZXJFbXB0eSgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQbGFjZWhvbGRlclRleHQoKTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNFbXB0eVZhbHVlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gaW5uZXJUZXh0VmFs
dWUoKS5pc0VtcHR5KCk7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eVN1Z2dlc3RlZFZhbHVl
KCkgY29uc3QgeyByZXR1cm4gc3VnZ2VzdGVkVmFsdWUoKS5pc0VtcHR5KCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCBjN2U4
NjkxNjVkMWQwMjU2MmE4NjhhODFlNzAzM2VhOGU0ZmNlZjU1Li45YTVmYTYxODE3MjljYWYxNTBl
Y2YxZGVmM2E4OThiMDQ3OGFjODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoKIAogcHJv
dGVjdGVkOgogICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOwotICAgIHZpcnR1YWwgYm9vbCBpc1Bs
YWNlaG9sZGVyRW1wdHkoKSBjb25zdDsKKyAgICBib29sIGlzUGxhY2Vob2xkZXJFbXB0eSgpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQbGFjZWhvbGRlclRleHQoKSA9IDA7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggNDE5NWU4ZWQ3ZjgwYzMwYzE1ZGQwN2Jl
MmRkOTBlNjVhODM0NTIxYy4uZDY2OWNkNjFjOTNmNjNhZDVkYzM3MmJhMmVhZjMwNTJjYjcwZjdj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtODcxLDE2ICs4NzEsNiBAQCBib29s
IElucHV0VHlwZTo6c3VwcG9ydHNQbGFjZWhvbGRlcigpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi1ib29sIElucHV0VHlwZTo6dXNlc0ZpeGVkUGxhY2Vob2xkZXIoKSBjb25zdAotewot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQotU3RyaW5nIElucHV0VHlwZTo6Zml4ZWRQbGFjZWhvbGRl
cigpCi17Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCiB2b2lkIElucHV0VHlwZTo6dXBkYXRl
SW5uZXJUZXh0VmFsdWUoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggMGMyZjAx
MGI3ZmJlMzg2MTRkZDVkZTQ4YjRhMjcxYjNmOWE5YThiZi4uMzJhNTVmMjk1ZWNiZDM2ZTk2YWNh
MWNlZGEzZTA4MzMzM2M3MjEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0yNjgsMTQg
KzI2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNDaGVja2FibGUoKTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNTdGVwcGFibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
UmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpOwotICAgIC8vIElmIHN1cHBvcnRzUGxh
Y2Vob2xkZXIoKSAmJiAhdXNlc0ZpeGVkUGxhY2Vob2xkZXIoKSwgaXQgbWVhbnMgYSB0eXBlCi0g
ICAgLy8gc3VwcG9ydHMgdGhlICdwbGFjZWhvbGRlcicgYXR0cmlidXRlLgotICAgIC8vIElmIHN1
cHBvcnRzUGxhY2Vob2xkZXIoKSAmJiB1c2VzRml4ZWRQbGFjZWhvbGRlcigpLCBpdCBtZWFucyBh
IHR5cGUKLSAgICAvLyBkb2Vzbid0IHN1cHBvcnQgdGhlICdwbGFjZWhvbGRlcicgYXR0cmlidXRl
LCBidXQgc2hvd3MKLSAgICAvLyBmaXhlZFBsYWNlaG9sZGVyKCkgc3RyaW5nIGFzIGEgcGxhY2Vo
b2xkZXIuCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIGJvb2wgdXNlc0ZpeGVkUGxhY2Vob2xkZXIoKSBjb25zdDsKLSAgICB2aXJ0dWFs
IFN0cmluZyBmaXhlZFBsYWNlaG9sZGVyKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUlubmVy
VGV4dFZhbHVlKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBtdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCAzZTZjMWVlN2NlMjU0ZmNlMDA2
ODZhNjJkMWZhOTlhN2YyOTJmODBmLi5hNWMyNzQ1ZmM0NmFhNzViNmQ1Mzg5OTcyNTAxMGMyOTE0
NmVhYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBA
IC00MDIsNyArNDAyLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9s
ZGVyVGV4dCgpCiAgICAgaWYgKCFzdXBwb3J0c1BsYWNlaG9sZGVyKCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBTdHJpbmcgcGxhY2Vob2xkZXJUZXh0
ID0gdXNlc0ZpeGVkUGxhY2Vob2xkZXIoKSA/IGZpeGVkUGxhY2Vob2xkZXIoKSA6IGVsZW1lbnQo
KS0+c3RyaXBwZWRQbGFjZWhvbGRlcigpOworICAgIFN0cmluZyBwbGFjZWhvbGRlclRleHQgPSBl
bGVtZW50KCktPnN0cmlwcGVkUGxhY2Vob2xkZXIoKTsKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0
LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9wbGFjZWhvbGRlcikgewogICAgICAgICAgICAg
bV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdl
dCgpLCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5k
ZXggOGM1NmZlMWQ1Y2ZjMjQ3OTk2YzkwODI2NGMzZjk3MTI0MDEzNTQ1Yy4uYjRiYTIxOTdjMmRk
NDY0MDQ1MmUxYWYxNTY2MDRhNTI2YzVmYmU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuaApAQCAtMjQ2LDEzICsyNDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KGNvbnN0
IFN0cmluZyYgbWluaW11bSk7CiAgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVy
Zmxvd1RleHQoY29uc3QgU3RyaW5nJiBtYXhpbXVtKTsKICAgICBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0cmluZyYgYmFzZSwgY29uc3QgU3RyaW5nJiBz
dGVwKTsKLSNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQotICAgIFN0cmluZyBjYWxlbmRhclRv
ZGF5VGV4dCgpOwotICAgIFN0cmluZyBjYWxlbmRhckNsZWFyVGV4dCgpOwotICAgIFN0cmluZyBk
YXRlRm9ybWF0WWVhclRleHQoKTsKLSAgICBTdHJpbmcgZGF0ZUZvcm1hdE1vbnRoVGV4dCgpOwot
ICAgIFN0cmluZyBkYXRlRm9ybWF0RGF5SW5Nb250aFRleHQoKTsKLSNlbmRpZgogI2lmIFVTRShT
T1VQKQogICAgIFN0cmluZyB1bmFjY2VwdGFibGVUTFNDZXJ0aWZpY2F0ZSgpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKaW5kZXggOWE0ZjIxOTlj
MTZiZDkyYzc5MWYzOTM0OWIzYjNmMDkxM2Q2M2Y5Ny4uMzAyMTE4ZThiYTc0YzBhMDYzZWQ4ZGUw
ZDQyZjZkNGYxYWEwMzU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9Mb2NhbGVJQ1UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxl
SUNVLmNwcApAQCAtMTkzLDc2ICsxOTMsNiBAQCBzdGF0aWMgU3RyaW5nIGdldERhdGVGb3JtYXRQ
YXR0ZXJuKGNvbnN0IFVEYXRlRm9ybWF0KiBkYXRlRm9ybWF0KQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ0FMRU5EQVJfUElDS0VSKQotc3RhdGljIGlubGluZSBib29sIGlzSUNVWWVhclN5bWJvbChV
Q2hhciBsZXR0ZXIpCi17Ci0gICAgcmV0dXJuIGxldHRlciA9PSAneScgfHwgbGV0dGVyID09ICdZ
JzsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGlzSUNVTW9udGhTeW1ib2woVUNoYXIgbGV0dGVy
KQotewotICAgIHJldHVybiBsZXR0ZXIgPT0gJ00nOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wg
aXNJQ1VEYXlJbk1vbnRoU3ltYm9sKFVDaGFyIGxldHRlcikKLXsKLSAgICByZXR1cm4gbGV0dGVy
ID09ICdkJzsKLX0KLQotLy8gU3BlY2lmaWNhdGlvbiBvZiB0aGUgaW5wdXQ6Ci0vLyBodHRwOi8v
aWN1LXByb2plY3Qub3JnL2FwaXJlZi9pY3U0Yy9jbGFzc1NpbXBsZURhdGVGb3JtYXQuaHRtbCNk
ZXRhaWxzCi1zdGF0aWMgU3RyaW5nIGxvY2FsaXplRm9ybWF0KGNvbnN0IFN0cmluZyYgYnVmZmVy
KQotewotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBVQ2hhciBsYXN0Q2hhciA9IDA7
Ci0gICAgYm9vbCBpblF1b3RlID0gZmFsc2U7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGJ1ZmZlci5sZW5ndGgoKTsgKytpKSB7Ci0gICAgICAgIGlmIChpblF1b3RlKSB7Ci0gICAgICAg
ICAgICBpZiAoYnVmZmVyW2ldID09ICdcJycpIHsKLSAgICAgICAgICAgICAgICBpblF1b3RlID0g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgbGFzdENoYXIgPSAwOwotICAgICAgICAgICAgICAgIEFT
U0VSVChpKTsKLSAgICAgICAgICAgICAgICBpZiAoYnVmZmVyW2kgLSAxXSA9PSAnXCcnKQotICAg
ICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXCcnKTsKLSAgICAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGJ1ZmZlcltpXSk7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBpZiAoaXNBU0NJSUFscGhhKGxhc3RDaGFyKSAmJiBsYXN0Q2hh
ciA9PSBidWZmZXJbaV0pCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBs
YXN0Q2hhciA9IGJ1ZmZlcltpXTsKLSAgICAgICAgICAgIGlmIChpc0lDVVllYXJTeW1ib2wobGFz
dENoYXIpKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBkYXRlRm9ybWF0WWVhclRl
eHQoKTsKLSAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh0ZXh0LmlzRW1wdHkoKSA/ICJZ
ZWFyIiA6IHRleHQpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChpc0lDVU1vbnRoU3ltYm9sKGxh
c3RDaGFyKSkgewotICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gZGF0ZUZvcm1hdE1vbnRo
VGV4dCgpOwotICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHRleHQuaXNFbXB0eSgpID8g
Ik1vbnRoIiA6IHRleHQpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChpc0lDVURheUluTW9udGhT
eW1ib2wobGFzdENoYXIpKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBkYXRlRm9y
bWF0RGF5SW5Nb250aFRleHQoKTsKLSAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh0ZXh0
LmlzRW1wdHkoKSA/ICJEYXkiIDogdGV4dCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3RD
aGFyID09ICdcJycpCi0gICAgICAgICAgICAgICAgaW5RdW90ZSA9IHRydWU7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobGFzdENoYXIpOwotICAgICAg
ICB9Ci0gICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Ci19Ci0KLXZvaWQgTG9j
YWxlSUNVOjppbml0aWFsaXplTG9jYWxpemVkRGF0ZUZvcm1hdFRleHQoKQotewotICAgIGlmICgh
bV9sb2NhbGl6ZWREYXRlRm9ybWF0VGV4dC5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuOwotICAg
IG1fbG9jYWxpemVkRGF0ZUZvcm1hdFRleHQgPSBlbXB0eVN0cmluZygpOwotICAgIGlmICghaW5p
dGlhbGl6ZVNob3J0RGF0ZUZvcm1hdCgpKQotICAgICAgICByZXR1cm47Ci0gICAgbV9sb2NhbGl6
ZWREYXRlRm9ybWF0VGV4dCA9IGxvY2FsaXplRm9ybWF0KGdldERhdGVGb3JtYXRQYXR0ZXJuKG1f
c2hvcnREYXRlRm9ybWF0KSk7Ci19Ci0KLVN0cmluZyBMb2NhbGVJQ1U6OmRhdGVGb3JtYXRUZXh0
KCkKLXsKLSAgICBpbml0aWFsaXplTG9jYWxpemVkRGF0ZUZvcm1hdFRleHQoKTsKLSAgICByZXR1
cm4gbV9sb2NhbGl6ZWREYXRlRm9ybWF0VGV4dDsKLX0KLQogUGFzc093blB0cjxWZWN0b3I8U3Ry
aW5nPiA+IExvY2FsZUlDVTo6Y3JlYXRlTGFiZWxWZWN0b3IoY29uc3QgVURhdGVGb3JtYXQqIGRh
dGVGb3JtYXQsIFVEYXRlRm9ybWF0U3ltYm9sVHlwZSB0eXBlLCBpbnQzMl90IHN0YXJ0SW5kZXgs
IGludDMyX3Qgc2l6ZSkKIHsKICAgICBpZiAoIWRhdGVGb3JtYXQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaAppbmRleCBhNWE0ZmVlY2RiMzI1NjFhNDkwZTM3NjUzYjVm
ZmU4ZmE5Zjc1OGM4Li4xY2Q2N2M4MGFmYzBhNDZhZTk2Mjg3ZWY0Yzg3NGIyMmZjOGUwNzM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmgKQEAgLTUyLDggKzUyLDYg
QEAgcHVibGljOgogICAgIC8vIEZvciBMb2NhbGl6ZWREYXRlCiAgICAgdmlydHVhbCBkb3VibGUg
cGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50czo6VHlwZSkgT1ZFUlJJ
REU7CiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKLSAgICB2aXJ0dWFsIFN0cmluZyBkYXRl
Rm9ybWF0VGV4dCgpIE9WRVJSSURFOwotCiAgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgd2Vla0RheVNob3J0TGFiZWxzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBm
aXJzdERheU9mV2VlaygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1JUTCgpIE9WRVJS
SURFOwpAQCAtODUsNyArODMsNiBAQCBwcml2YXRlOgogICAgIFVEYXRlRm9ybWF0KiBvcGVuRGF0
ZUZvcm1hdChVRGF0ZUZvcm1hdFN0eWxlIHRpbWVTdHlsZSwgVURhdGVGb3JtYXRTdHlsZSBkYXRl
U3R5bGUpIGNvbnN0OwogCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKLSAgICB2b2lkIGlu
aXRpYWxpemVMb2NhbGl6ZWREYXRlRm9ybWF0VGV4dCgpOwogICAgIHZvaWQgaW5pdGlhbGl6ZUNh
bGVuZGFyKCk7CiAjZW5kaWYKIApAQCAtMTA0LDcgKzEwMSw2IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2RpZENyZWF0ZVNob3J0RGF0ZUZvcm1hdDsKIAogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNL
RVIpCi0gICAgU3RyaW5nIG1fbG9jYWxpemVkRGF0ZUZvcm1hdFRleHQ7CiAgICAgT3duUHRyPFZl
Y3RvcjxTdHJpbmc+ID4gbV93ZWVrRGF5U2hvcnRMYWJlbHM7CiAgICAgdW5zaWduZWQgbV9maXJz
dERheU9mV2VlazsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9Mb2NhbGVOb25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxl
Tm9uZS5jcHAKaW5kZXggMzVhZmNmN2IxMDVkOTFkZGM2ZWM1NjAwNWQ4ZTdlNTYxM2FjMGIyNy4u
ODI4NThiNjMyZmQxNmZjZjExZWNlNTVjODVlMjM2NTM0ZjJjYTQ5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVOb25lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZU5vbmUuY3BwCkBAIC0zOCw3ICszOCw2IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVMb2NhbGVEYXRhKCkgT1ZFUlJJREUgRklO
QUw7CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRl
Q29tcG9uZW50czo6VHlwZSkgT1ZFUlJJREU7CiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikK
LSAgICB2aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBpc1JUTCgpIE9WRVJSSURFOwogI2VuZGlmCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJ
Q0tFUikgfHwgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKQEAgLTgxLDExICs4MCw2
IEBAIGRvdWJsZSBMb2NhbGVOb25lOjpwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYsIERhdGVD
b21wb25lbnRzOjpUeXBlKQogfQogCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKLVN0cmlu
ZyBMb2NhbGVOb25lOjpkYXRlRm9ybWF0VGV4dCgpCi17Ci0gICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgiWWVhci1Nb250aC1EYXkiKTsKLX0KLQogYm9vbCBMb2NhbGVOb25lOjppc1JUTCgpCiB7CiAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9QbGF0Zm9ybUxvY2FsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9y
bUxvY2FsZS5oCmluZGV4IGM2ZWE5YmM4YWIzNmU3YTJjOWY4MzkzMTU5ODY4ZGIyMGU3OTNlMGQu
LmVmYTQ1ZjgxNGNmOGQ4NzUzNmIwNzhjMWZkMzIyZjAyM2FhNDc3ZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmgKQEAgLTExNyw4ICsxMTcsNiBA
QCBwdWJsaWM6CiAgICAgLy8gVGhlIGZpcnN0IGRheSBvZiBhIHdlZWsuIDAgaXMgU3VuZGF5LCBh
bmQgNiBpcyBTYXR1cmRheS4KICAgICB2aXJ0dWFsIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKCkg
PSAwOwogCi0gICAgdmlydHVhbCBTdHJpbmcgZGF0ZUZvcm1hdFRleHQoKSA9IDA7Ci0KICAgICAv
LyBSZXR1cm5zIHRydWUgaWYgcGVvcGxlIHVzZSByaWdodC10by1sZWZ0IHdyaXRpbmcgaW4gdGhl
IGxvY2FsZSBmb3IgdGhpcwogICAgIC8vIG9iamVjdC4KICAgICB2aXJ0dWFsIGJvb2wgaXNSVEwo
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2Nh
bGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oCmlu
ZGV4IGY5MzRlZjExYjUxZWU3NDNiMDk0NDZlNTE0NDgxNzJiNzk1M2ZkNjIuLjZmZWE5MzFhYjk1
MWRhMjc4ZDBhYzRjN2EyMTQ4M2I5MDliMTFmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oCkBAIC01Myw3ICs1Myw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGRvdWJsZSBwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25lbnRz
OjpUeXBlKSBPVkVSUklERTsKIAogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCi0gICAgdmly
dHVhbCBTdHJpbmcgZGF0ZUZvcm1hdFRleHQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiB3ZWVrRGF5U2hvcnRMYWJlbHMoKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IGlzUlRMKCkgT1ZFUlJJREU7CkBAIC04MSw3ICs4MCw2IEBAIHByaXZhdGU6CiAgICAgUmV0YWlu
UHRyPE5TTG9jYWxlPiBtX2xvY2FsZTsKICAgICBSZXRhaW5QdHI8TlNDYWxlbmRhcj4gbV9ncmVn
b3JpYW5DYWxlbmRhcjsKICNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQotICAgIFN0cmluZyBt
X2xvY2FsaXplZERhdGVGb3JtYXRUZXh0OwogICAgIFZlY3RvcjxTdHJpbmc+IG1fd2Vla0RheVNo
b3J0TGFiZWxzOwogI2VuZGlmCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikgfHwgRU5BQkxF
KElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvbWFjL0xvY2FsZU1hYy5tbQppbmRleCBjOTVjMjdjMTJiZDIxNWNmNGNjZWE2NzIzYzkwZTAx
N2E0ZTU4ZWMzLi5jMDZjMDA1NTQ0ZWVjN2Y3MzNmMjM1ODg1ZjE0NjQ2NDk2NjhkOTAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCkBAIC0xMjQs
NjMgKzEyNCw2IEBAIGRvdWJsZSBMb2NhbGVNYWM6OnBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5n
JiBpbnB1dCwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlwZSkKICAgICByZXR1cm4gW2RhdGUgdGlt
ZUludGVydmFsU2luY2UxOTcwXSAqIG1zUGVyU2Vjb25kOwogfQogCi0jaWYgRU5BQkxFKENBTEVO
REFSX1BJQ0tFUikKLXN0YXRpYyBib29sIGlzWWVhclN5bWJvbChVQ2hhciBsZXR0ZXIpIHsgcmV0
dXJuIGxldHRlciA9PSAneScgfHwgbGV0dGVyID09ICdZJyB8fCBsZXR0ZXIgPT0gJ3UnOyB9Ci1z
dGF0aWMgYm9vbCBpc01vbnRoU3ltYm9sKFVDaGFyIGxldHRlcikgeyByZXR1cm4gbGV0dGVyID09
ICdNJyB8fCBsZXR0ZXIgPT0gJ0wnOyB9Ci1zdGF0aWMgYm9vbCBpc0RheVN5bWJvbChVQ2hhciBs
ZXR0ZXIpIHsgcmV0dXJuIGxldHRlciA9PSAnZCc7IH0KLQotLy8gaHR0cDovL3VuaWNvZGUub3Jn
L3JlcG9ydHMvdHIzNS90cjM1LTYuaHRtbCNEYXRlX0Zvcm1hdF9QYXR0ZXJucwotc3RhdGljIFN0
cmluZyBsb2NhbGl6ZURhdGVGb3JtYXQoY29uc3QgU3RyaW5nJiBmb3JtYXQpCi17Ci0gICAgU3Ry
aW5nIHllYXJUZXh0ID0gZGF0ZUZvcm1hdFllYXJUZXh0KCkuaXNFbXB0eSgpID8gIlllYXIiIDog
ZGF0ZUZvcm1hdFllYXJUZXh0KCk7Ci0gICAgU3RyaW5nIG1vbnRoVGV4dCA9IGRhdGVGb3JtYXRN
b250aFRleHQoKS5pc0VtcHR5KCkgPyAiTW9udGgiIDogZGF0ZUZvcm1hdE1vbnRoVGV4dCgpOwot
ICAgIFN0cmluZyBkYXlUZXh0ID0gZGF0ZUZvcm1hdERheUluTW9udGhUZXh0KCkuaXNFbXB0eSgp
ID8gIkRheSIgOiBkYXRlRm9ybWF0RGF5SW5Nb250aFRleHQoKTsKLSAgICBTdHJpbmdCdWlsZGVy
IGJ1ZmZlcjsKLSAgICBib29sIGluUXVvdGUgPSBmYWxzZTsKLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgZm9ybWF0Lmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgVUNoYXIgY2ggPSBmb3Jt
YXRbaV07Ci0gICAgICAgIGlmIChpblF1b3RlKSB7Ci0gICAgICAgICAgICBpZiAoY2ggPT0gJ1wn
JykgewotICAgICAgICAgICAgICAgIGluUXVvdGUgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBB
U1NFUlQoaSk7Ci0gICAgICAgICAgICAgICAgaWYgKGZvcm1hdFtpIC0gMV0gPT0gJ1wnJykKLSAg
ICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnXCcnKTsKLSAgICAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY2gpOwotICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoY2ggPT0gJ1wnJykgewotICAgICAgICAgICAg
aW5RdW90ZSA9IHRydWU7Ci0gICAgICAgICAgICBpZiAoaSA+IDAgJiYgZm9ybWF0W2kgLSAxXSA9
PSAnXCcnKQotICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY2gpOwotICAgICAgICB9IGVs
c2UgaWYgKGlzWWVhclN5bWJvbChjaCkpIHsKLSAgICAgICAgICAgIGlmIChpID4gMCAmJiBmb3Jt
YXRbaSAtIDFdID09IGNoKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
YnVmZmVyLmFwcGVuZCh5ZWFyVGV4dCk7Ci0gICAgICAgIH0gZWxzZSBpZiAoaXNNb250aFN5bWJv
bChjaCkpIHsKLSAgICAgICAgICAgIGlmIChpID4gMCAmJiBmb3JtYXRbaSAtIDFdID09IGNoKQot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChtb250
aFRleHQpOwotICAgICAgICB9IGVsc2UgaWYgKGlzRGF5U3ltYm9sKGNoKSkgewotICAgICAgICAg
ICAgaWYgKGkgPiAwICYmIGZvcm1hdFtpIC0gMV0gPT0gY2gpCi0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICBidWZmZXIuYXBwZW5kKGRheVRleHQpOwotICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY2gpOwotICAgIH0KLSAgICByZXR1cm4gYnVm
ZmVyLnRvU3RyaW5nKCk7Ci19Ci0KLVN0cmluZyBMb2NhbGVNYWM6OmRhdGVGb3JtYXRUZXh0KCkK
LXsKLSAgICBpZiAoIW1fbG9jYWxpemVkRGF0ZUZvcm1hdFRleHQuaXNOdWxsKCkpCi0gICAgICAg
IHJldHVybiBtX2xvY2FsaXplZERhdGVGb3JtYXRUZXh0OwotICAgIG1fbG9jYWxpemVkRGF0ZUZv
cm1hdFRleHQgPSBsb2NhbGl6ZURhdGVGb3JtYXQoW3Nob3J0RGF0ZUZvcm1hdHRlcigpLmdldCgp
IGRhdGVGb3JtYXRdKTsKLSAgICByZXR1cm4gIG1fbG9jYWxpemVkRGF0ZUZvcm1hdFRleHQ7Ci19
Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpIHx8IEVOQUJMRShJTlBVVF9N
VUxUSVBMRV9GSUVMRFNfVUkpCiBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlTWFjOjptb250
aExhYmVscygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dp
bi9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxl
V2luLmNwcAppbmRleCA2NmVmYzI1NzgwNTk2NDQ5NmRkZjQ0MjJiMGU1ODFjOTBhYzk4YjZlLi5h
Mjg0MGY5OGVmMWM2ODgxNzg0ZDIxOGYwZjI5MmU2Y2M2NjM0NGQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKQEAgLTQ1MCw0OCArNDUwLDYg
QEAgdm9pZCBMb2NhbGVXaW46OmVuc3VyZVNob3J0RGF0ZVRva2VucygpCiAgICAgbV9zaG9ydERh
dGVUb2tlbnMgPSBwYXJzZURhdGVGb3JtYXQoZ2V0TG9jYWxlSW5mb1N0cmluZyhMT0NBTEVfU1NI
T1JUREFURSkpOwogfQogCi1zdGF0aWMgU3RyaW5nIHN1YnN0aXR1dGVMYWJlbHNJbnRvRm9ybWF0
KGNvbnN0IFZlY3RvcjxEYXRlRm9ybWF0VG9rZW4+JiB0b2tlbnMsIGNvbnN0IFN0cmluZyYgeWVh
clRleHQsIGNvbnN0IFN0cmluZyYgbW9udGhUZXh0LCBjb25zdCBTdHJpbmcmIGRheVRleHQpCi17
Ci0gICAgU3RyaW5nIG5vbkVtcHR5RGF5VGV4dCA9IGRheVRleHQuaXNFbXB0eSgpID8gIkRheSIg
OiBkYXlUZXh0OwotICAgIFN0cmluZyBub25FbXB0eU1vbnRoVGV4dCA9IG1vbnRoVGV4dC5pc0Vt
cHR5KCkgPyAiTW9udGgiIDogbW9udGhUZXh0OwotICAgIFN0cmluZyBub25FbXB0eVllYXJUZXh0
ID0geWVhclRleHQuaXNFbXB0eSgpID8gIlllYXIiIDogeWVhclRleHQ7Ci0gICAgU3RyaW5nQnVp
bGRlciBidWZmZXI7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRva2Vucy5zaXplKCk7
ICsraSkgewotICAgICAgICBzd2l0Y2ggKHRva2Vuc1tpXS50eXBlKSB7Ci0gICAgICAgIGNhc2Ug
RGF0ZUZvcm1hdFRva2VuOjpMaXRlcmFsOgotICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCh0b2tl
bnNbaV0uZGF0YSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEYXRlRm9ybWF0
VG9rZW46OkRheTE6Ci0gICAgICAgIGNhc2UgRGF0ZUZvcm1hdFRva2VuOjpEYXkyOgotICAgICAg
ICAgICAgYnVmZmVyLmFwcGVuZChub25FbXB0eURheVRleHQpOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgRGF0ZUZvcm1hdFRva2VuOjpNb250aDE6Ci0gICAgICAgIGNhc2UgRGF0
ZUZvcm1hdFRva2VuOjpNb250aDI6Ci0gICAgICAgIGNhc2UgRGF0ZUZvcm1hdFRva2VuOjpNb250
aDM6Ci0gICAgICAgIGNhc2UgRGF0ZUZvcm1hdFRva2VuOjpNb250aDQ6Ci0gICAgICAgICAgICBi
dWZmZXIuYXBwZW5kKG5vbkVtcHR5TW9udGhUZXh0KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIERhdGVGb3JtYXRUb2tlbjo6WWVhcjE6Ci0gICAgICAgIGNhc2UgRGF0ZUZvcm1h
dFRva2VuOjpZZWFyMjoKLSAgICAgICAgY2FzZSBEYXRlRm9ybWF0VG9rZW46OlllYXI0OgotICAg
ICAgICAgICAgYnVmZmVyLmFwcGVuZChub25FbXB0eVllYXJUZXh0KTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKLX0K
LQotU3RyaW5nIExvY2FsZVdpbjo6ZGF0ZUZvcm1hdFRleHQoKQotewotICAgIGVuc3VyZVNob3J0
RGF0ZVRva2VucygpOwotICAgIHJldHVybiBzdWJzdGl0dXRlTGFiZWxzSW50b0Zvcm1hdChtX3No
b3J0RGF0ZVRva2VucywgZGF0ZUZvcm1hdFllYXJUZXh0KCksIGRhdGVGb3JtYXRNb250aFRleHQo
KSwgZGF0ZUZvcm1hdERheUluTW9udGhUZXh0KCkpOwotfQotCi1TdHJpbmcgTG9jYWxlV2luOjpk
YXRlRm9ybWF0VGV4dChjb25zdCBTdHJpbmcmIGZvcm1hdCwgY29uc3QgU3RyaW5nJiB5ZWFyVGV4
dCwgY29uc3QgU3RyaW5nJiBtb250aFRleHQsIGNvbnN0IFN0cmluZyYgZGF5VGV4dCkKLXsKLSAg
ICByZXR1cm4gc3Vic3RpdHV0ZUxhYmVsc0ludG9Gb3JtYXQocGFyc2VEYXRlRm9ybWF0KGZvcm1h
dCksIHllYXJUZXh0LCBtb250aFRleHQsIGRheVRleHQpOwotfQotCiB2b2lkIExvY2FsZVdpbjo6
ZW5zdXJlTW9udGhMYWJlbHMoKQogewogICAgIGlmICghbV9tb250aExhYmVscy5pc0VtcHR5KCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5oCmluZGV4IDQ2
NzE0NDUyYTFjNGI0NjgwYzQ2ZmRlOTg3MGQzYmZlYWZhNTY3OTcuLjQxZjRmNDU2MGYzM2RiNjBk
OWVmYzM0ZTk3NzFhYWIyMmU1NjYyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvd2luL0xvY2FsZVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvd2luL0xvY2FsZVdpbi5oCkBAIC00OCw3ICs0OCw2IEBAIHB1YmxpYzoKICAgICB+TG9jYWxl
V2luKCk7CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBE
YXRlQ29tcG9uZW50czo6VHlwZSkgT1ZFUlJJREU7CiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tF
UikKLSAgICB2aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHdlZWtEYXlTaG9ydExhYmVscygpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdW5zaWduZWQgZmlyc3REYXlPZldlZWsoKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNSVEwoKSBPVkVSUklERTsKQEAgLTY5LDggKzY4LDYgQEAgcHVibGljOgog
CiAgICAgLy8gRm9yIHRlc3RpbmcuCiAgICAgZG91YmxlIHBhcnNlRGF0ZShjb25zdCBTdHJpbmcm
IGZvcm1hdCwgaW50IGJhc2VZZWFyLCBjb25zdCBTdHJpbmcmIGlucHV0KTsKLSAgICBTdHJpbmcg
Zm9ybWF0RGF0ZShjb25zdCBTdHJpbmcmIGZvcm1hdCwgaW50IGJhc2VZZWFyLCBpbnQgeWVhciwg
aW50IG1vbnRoLCBpbnQgZGF5KTsKLSAgICBzdGF0aWMgU3RyaW5nIGRhdGVGb3JtYXRUZXh0KGNv
bnN0IFN0cmluZyYgZm9ybWF0LCBjb25zdCBTdHJpbmcmIHllYXJUZXh0LCBjb25zdCBTdHJpbmcm
IG1vbnRoVGV4dCwgY29uc3QgU3RyaW5nJiBkYXlUZXh0KTsKICNpZiBFTkFCTEUoSU5QVVRfTVVM
VElQTEVfRklFTERTX1VJKQogICAgIHN0YXRpYyBTdHJpbmcgZGF0ZUZvcm1hdChjb25zdCBTdHJp
bmcmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9j
YWxpemVkU3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcAppbmRleCBmNTQ3N2YzYTczNzc4ZDE3MjM2MThmMjlhMjcxYzYxYjNkN2ZiZGU5
Li5hYzhhYWU1NWVlMDdhNDBhYzA2MTRhMDU1NjY5MTU5NWNjMjRkM2Y3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtNDk2LDMxICs0
OTYsNCBAQCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KGNvbnN0IFN0
cmluZyYgYmFzZSwgY29uc3QgU3RyaW5nJiBzdGVwKQogICAgIHJldHVybiBxdWVyeShXZWJMb2Nh
bGl6ZWRTdHJpbmc6OlZhbGlkYXRpb25TdGVwTWlzbWF0Y2gsIGJhc2UsIHN0ZXApOwogfQogCi0j
aWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKLVN0cmluZyBjYWxlbmRhclRvZGF5VGV4dCgpCi17
Ci0gICAgcmV0dXJuIHF1ZXJ5KFdlYkxvY2FsaXplZFN0cmluZzo6Q2FsZW5kYXJUb2RheSk7Ci19
Ci0KLVN0cmluZyBjYWxlbmRhckNsZWFyVGV4dCgpCi17Ci0gICAgcmV0dXJuIHF1ZXJ5KFdlYkxv
Y2FsaXplZFN0cmluZzo6Q2FsZW5kYXJDbGVhcik7Ci19Ci0KLVN0cmluZyBkYXRlRm9ybWF0WWVh
clRleHQoKQotewotICAgIHJldHVybiBxdWVyeShXZWJMb2NhbGl6ZWRTdHJpbmc6OkRhdGVGb3Jt
YXRZZWFyTGFiZWwpOwotfQotCi1TdHJpbmcgZGF0ZUZvcm1hdE1vbnRoVGV4dCgpCi17Ci0gICAg
cmV0dXJuIHF1ZXJ5KFdlYkxvY2FsaXplZFN0cmluZzo6RGF0ZUZvcm1hdE1vbnRoTGFiZWwpOwot
fQotCi1TdHJpbmcgZGF0ZUZvcm1hdERheUluTW9udGhUZXh0KCkKLXsKLSAgICByZXR1cm4gcXVl
cnkoV2ViTG9jYWxpemVkU3RyaW5nOjpEYXRlRm9ybWF0RGF5SW5Nb250aExhYmVsKTsKLX0KLSNl
bmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcAppbmRleCAxN2IyZTkxODBkZDg0MDkxNDA3MmJmNWYz
OWNhZjU4MDZhYzhhYmJhLi4wMzg4OTc2M2I5NzZlZTE4YTgzOTA5OGM5ODJjNzA0YWI5YzJjNGYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHAK
QEAgLTg4LDEyICs4OCw2IEBAIHByb3RlY3RlZDoKICAgICB9CiAKICNpZiBFTkFCTEUoQ0FMRU5E
QVJfUElDS0VSKQotICAgIFN0cmluZyBkYXRlRm9ybWF0VGV4dChjb25zdCBTdHJpbmcmIGxvY2Fs
ZVN0cmluZykKLSAgICB7Ci0gICAgICAgIE93blB0cjxMb2NhbGVNYWM+IGxvY2FsZSA9IExvY2Fs
ZU1hYzo6Y3JlYXRlKGxvY2FsZVN0cmluZyk7Ci0gICAgICAgIHJldHVybiBsb2NhbGUtPmRhdGVG
b3JtYXRUZXh0KCk7Ci0gICAgfQotCiAgICAgdW5zaWduZWQgZmlyc3REYXlPZldlZWsoY29uc3Qg
U3RyaW5nJiBsb2NhbGVTdHJpbmcpCiAgICAgewogICAgICAgICBPd25QdHI8TG9jYWxlTWFjPiBs
b2NhbGUgPSBMb2NhbGVNYWM6OmNyZWF0ZShsb2NhbGVTdHJpbmcpOwpAQCAtMjA2LDEzICsyMDAs
NiBAQCBURVNUX0YoTG9jYWxlTWFjVGVzdCwgcGFyc2VEYXRlKQogfQogCiAjaWYgRU5BQkxFKENB
TEVOREFSX1BJQ0tFUikKLVRFU1RfRihMb2NhbGVNYWNUZXN0LCBkYXRlRm9ybWF0VGV4dCkKLXsK
LSAgICBFWFBFQ1RfU1RSRVEoIk1vbnRoL0RheS9ZZWFyIiwgZGF0ZUZvcm1hdFRleHQoImVuX1VT
IikudXRmOCgpLmRhdGEoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJEYXkvTW9udGgvWWVhciIsIGRh
dGVGb3JtYXRUZXh0KCJmcl9GUiIpLnV0ZjgoKS5kYXRhKCkpOwotICAgIEVYUEVDVF9TVFJFUSgi
WWVhci9Nb250aC9EYXkiLCBkYXRlRm9ybWF0VGV4dCgiamFfSlAiKS51dGY4KCkuZGF0YSgpKTsK
LX0KLQogVEVTVF9GKExvY2FsZU1hY1Rlc3QsIGZpcnN0RGF5T2ZXZWVrKQogewogICAgIEVYUEVD
VF9FUShTdW5kYXksIGZpcnN0RGF5T2ZXZWVrKCJlbl9VUyIpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlV2luVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0xvY2FsZVdpblRlc3QuY3BwCmluZGV4IDdiMmRjOWNhYjAwYTViMjEy
ZTFmMGUzY2M5ZjMzZGIwYWNkN2EwYWUuLmUyZTAzYzEzODhiN2JmNWJhNjgzOGZjNmFkODRiZDdk
MzhhNmY4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxl
V2luVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVXaW5U
ZXN0LmNwcApAQCAtOTcsMTIgKzk3LDYgQEAgcHJvdGVjdGVkOgogICAgIH0KIAogI2lmIEVOQUJM
RShDQUxFTkRBUl9QSUNLRVIpCi0gICAgU3RyaW5nIGRhdGVGb3JtYXRUZXh0KExDSUQgbGNpZCkK
LSAgICB7Ci0gICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3Jl
YXRlKGxjaWQpOwotICAgICAgICByZXR1cm4gbG9jYWxlLT5kYXRlRm9ybWF0VGV4dCgpOwotICAg
IH0KLQogICAgIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKExDSUQgbGNpZCkKICAgICB7CiAgICAg
ICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKGxjaWQpOwpA
QCAtMTY3LDIwICsxNjEsNiBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIH07CiAKLVRFU1RfRihMb2Nh
bGVXaW5UZXN0LCBUZXN0TG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpCi17Ci0gICAgRVhQRUNUX1NU
UkVRKCJ5ZWFyL21vbnRoL2RheSIsIExvY2FsZVdpbjo6ZGF0ZUZvcm1hdFRleHQoInkvTS9kIiwg
InllYXIiLCAibW9udGgiLCAiZGF5IikudXRmOCgpLmRhdGEoKSk7Ci0gICAgRVhQRUNUX1NUUkVR
KCJ5ZWFyL21vbnRoL2RheSIsIExvY2FsZVdpbjo6ZGF0ZUZvcm1hdFRleHQoInl5L01NL2RkIiwg
InllYXIiLCAibW9udGgiLCAiZGF5IikudXRmOCgpLmRhdGEoKSk7Ci0gICAgRVhQRUNUX1NUUkVR
KCJ5ZWFyL21vbnRoL2RheSIsIExvY2FsZVdpbjo6ZGF0ZUZvcm1hdFRleHQoInl5eS9NTU0vZGRk
IiwgInllYXIiLCAibW9udGgiLCAiZGF5IikudXRmOCgpLmRhdGEoKSk7Ci0gICAgRVhQRUNUX1NU
UkVRKCJ5ZWFyL21vbnRoL2RheSIsIExvY2FsZVdpbjo6ZGF0ZUZvcm1hdFRleHQoInl5eXkvTU1N
TS9kZGRkIiwgInllYXIiLCAibW9udGgiLCAiZGF5IikudXRmOCgpLmRhdGEoKSk7Ci0gICAgRVhQ
RUNUX1NUUkVRKCIvbW9udGgvZGF5LCB5ZWFyIiwgTG9jYWxlV2luOjpkYXRlRm9ybWF0VGV4dCgi
L01NL2RkLCB5eXl5IiwgInllYXIiLCAibW9udGgiLCAiZGF5IikudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgRVhQRUNUX1NUUkVRKCJtb250aC9kYXksIHllYXI9eWVhci4iLCBMb2NhbGVXaW46OmRhdGVG
b3JtYXRUZXh0KCJNTS9kZCwgJ3llYXI9J3l5eXkuIiwgInllYXIiLCAibW9udGgiLCAiZGF5Iiku
dXRmOCgpLmRhdGEoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJtb250aC1kYXkgJ3llYXIiLCBMb2Nh
bGVXaW46OmRhdGVGb3JtYXRUZXh0KCJNTS1kZCAnJ3l5eSIsICJ5ZWFyIiwgIm1vbnRoIiwgImRh
eSIpLnV0ZjgoKS5kYXRhKCkpOwotICAgIEVYUEVDVF9TVFJFUSgibW9udGgtZGF5IGFhYSdiYmIg
eWVhciIsIExvY2FsZVdpbjo6ZGF0ZUZvcm1hdFRleHQoIk1NLWRkICdhYWEnJ2JiYicgeXl5Iiwg
InllYXIiLCAibW9udGgiLCAiZGF5IikudXRmOCgpLmRhdGEoKSk7Ci0gICAgRVhQRUNUX1NUUkVR
KCJ5ZWFyL21vbnRoL2RheS95ZWFyL21vbnRoL2RheSIsIExvY2FsZVdpbjo6ZGF0ZUZvcm1hdFRl
eHQoInl5eXkvTU1NTS9kZGRkL3l5eXkvTU1NTS9kZGRkIiwgInllYXIiLCAibW9udGgiLCAiZGF5
IikudXRmOCgpLmRhdGEoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJZWS9tbS9ERCIsIExvY2FsZVdp
bjo6ZGF0ZUZvcm1hdFRleHQoIllZL21tL0REIiwgInllYXIiLCAibW9udGgiLCAiZGF5IikudXRm
OCgpLmRhdGEoKSk7Ci19Ci0KIFRFU1RfRihMb2NhbGVXaW5UZXN0LCBUZXN0UGFyc2UpCiB7CiAg
ICAgT3duUHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUoRW5nbGlzaFVT
KTsKQEAgLTIzNSwxMyArMjE1LDYgQEAgVEVTVF9GKExvY2FsZVdpblRlc3QsIHBhcnNlRGF0ZSkK
IH0KIAogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCi1URVNUX0YoTG9jYWxlV2luVGVzdCwg
ZGF0ZUZvcm1hdFRleHQpCi17Ci0gICAgRVhQRUNUX1NUUkVRKCJNb250aC9EYXkvWWVhciIsIGRh
dGVGb3JtYXRUZXh0KEVuZ2xpc2hVUykudXRmOCgpLmRhdGEoKSk7Ci0gICAgRVhQRUNUX1NUUkVR
KCJEYXkvTW9udGgvWWVhciIsIGRhdGVGb3JtYXRUZXh0KEZyZW5jaEZSKS51dGY4KCkuZGF0YSgp
KTsKLSAgICBFWFBFQ1RfU1RSRVEoIlllYXIvTW9udGgvRGF5IiwgZGF0ZUZvcm1hdFRleHQoSmFw
YW5lc2VKUCkudXRmOCgpLmRhdGEoKSk7Ci19Ci0KIFRFU1RfRihMb2NhbGVXaW5UZXN0LCBmaXJz
dERheU9mV2VlaykKIHsKICAgICBFWFBFQ1RfRVEoU3VuZGF5LCBmaXJzdERheU9mV2VlayhFbmds
aXNoVVMpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>