<?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>213362</bug_id>
          
          <creation_ts>2020-06-18 17:16:19 -0700</creation_ts>
          <short_desc>[JSC] Remove dead non-ICU locale Date code since we are always using ICU version</short_desc>
          <delta_ts>2020-06-18 18:44:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1664055</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-18 17:16:19 -0700</bug_when>
    <thetext>[JSC] Remove dead non-ICU locale Date code since we are always using ICU version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664056</commentid>
    <comment_count>1</comment_count>
      <attachid>402254</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-18 17:21:30 -0700</bug_when>
    <thetext>Created attachment 402254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664058</commentid>
    <comment_count>2</comment_count>
      <attachid>402255</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-18 17:26:09 -0700</bug_when>
    <thetext>Created attachment 402255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664059</commentid>
    <comment_count>3</comment_count>
      <attachid>402255</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-18 17:29:53 -0700</bug_when>
    <thetext>Comment on attachment 402255
Patch

Oh awesome! I hadn&apos;t noticed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664074</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-18 18:43:09 -0700</bug_when>
    <thetext>Committed r263250: &lt;https://trac.webkit.org/changeset/263250&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664075</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-18 18:44:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/64513759&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402254</attachid>
            <date>2020-06-18 17:21:30 -0700</date>
            <delta_ts>2020-06-18 17:26:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213362-20200618172129.patch</filename>
            <type>text/plain</type>
            <size>16156</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NWZkYzNlZWQyODhiMzUzODNkYmM0MDcxMzNmZjI1MmEwMGFkMWVlLi5kOGQ4MDM1OWQ4YzczZGFk
OWIxZjZlMmYyYjM1MzYwODcwOGMxNTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0wNi0xOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSBkZWFkIG5vbi1JQ1UgbG9jYWxlIERhdGUgY29kZSBz
aW5jZSB3ZSBhcmUgYWx3YXlzIHVzaW5nIElDVSB2ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMzNjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBhcmUgb2xkIG5vbi1JQ1UgdmVyc2lv
biBvZiBEYXRlIGxvY2FsZSBjb2RlLiBCdXQgdGhpcyBpcyBub3cgZGVhZCBjb2RlIHNpbmNlIHdl
IGFyZSBhbHdheXMgdXNpbmcgSUNVIHZlcnNpb24sCisgICAgICAgIHdoaWNoIGlzIGludm9rZWQg
ZnJvbSBidWlsdGluIEpTIERhdGVQcm90b3R5cGUuanMuIFdlIHNob3VsZCByZW1vdmUgdGhlc2Ug
ZGVhZCBjb2RlLgorCisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6RGF0ZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6c3R5bGVGcm9tQXJnU3RyaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Zm9ybWF0TG9jYWxlRGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNUb0xvY2FsZURhdGVTdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJv
dG9GdW5jVG9Mb2NhbGVUaW1lU3RyaW5nKTogRGVsZXRlZC4KKwogMjAyMC0wNi0xOCAgUm9zcyBL
aXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0ludGxdIEVuYWJs
ZSBSZWxhdGl2ZVRpbWVGb3JtYXQgYW5kIExvY2FsZSBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCmluZGV4IDZlNDk3NWFmYmZl
NjRiZjYzZjJkOWJlMjUyOTQ2ZDBhZGQyZGNiYjAuLmY0YjdlMTNjNDBkNzA3MzIyYjczNjdiMzM2
M2I0ZGM5OWVkZDNkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVQcm90b3R5cGUuY3BwCkBAIC04MSw5ICs4MSw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ01vbnRoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENTZWNvbmRz
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGRhdGVQcm90b0Z1bmNTZXRZZWFyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0RhdGVTdHJpbmcoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY1RvTG9jYWxlRGF0ZVN0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVT
dHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvTG9jYWxlVGltZVN0cmluZyhKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
VG9QcmltaXRpdmVTeW1ib2woSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNUb1RpbWVTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKQEAgLTk3LDIxMSAr
OTQsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0pTT04o
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWVudW0g
TG9jYWxlRGF0ZVRpbWVGb3JtYXQgeyBMb2NhbGVEYXRlQW5kVGltZSwgTG9jYWxlRGF0ZSwgTG9j
YWxlVGltZSB9OwotIAotI2lmIE9TKERBUldJTikgJiYgVVNFKENGKQotCi0vLyBGSVhNRTogU2lu
Y2UgdGhpcyBpcyBzdXBlcmlvciB0byB0aGUgc3RyZnRpbWUtYmFzZWQgdmVyc2lvbiwgd2h5IGxp
bWl0IHRoaXMgdG8gT1MoREFSV0lOKT8KLS8vIEluc3RlYWQgd2Ugc2hvdWxkIGNvbnNpZGVyIHVz
aW5nIHRoaXMgd2hlbmV2ZXIgVVNFKENGKSBpcyB0cnVlLgotCi1zdGF0aWMgQ0ZEYXRlRm9ybWF0
dGVyU3R5bGUgc3R5bGVGcm9tQXJnU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBDRkRhdGVG
b3JtYXR0ZXJTdHlsZSBkZWZhdWx0U3R5bGUpCi17Ci0gICAgaWYgKHN0cmluZyA9PSAic2hvcnQi
KQotICAgICAgICByZXR1cm4ga0NGRGF0ZUZvcm1hdHRlclNob3J0U3R5bGU7Ci0gICAgaWYgKHN0
cmluZyA9PSAibWVkaXVtIikKLSAgICAgICAgcmV0dXJuIGtDRkRhdGVGb3JtYXR0ZXJNZWRpdW1T
dHlsZTsKLSAgICBpZiAoc3RyaW5nID09ICJsb25nIikKLSAgICAgICAgcmV0dXJuIGtDRkRhdGVG
b3JtYXR0ZXJMb25nU3R5bGU7Ci0gICAgaWYgKHN0cmluZyA9PSAiZnVsbCIpCi0gICAgICAgIHJl
dHVybiBrQ0ZEYXRlRm9ybWF0dGVyRnVsbFN0eWxlOwotICAgIHJldHVybiBkZWZhdWx0U3R5bGU7
Ci19Ci0KLXN0YXRpYyBKU0NlbGwqIGZvcm1hdExvY2FsZURhdGUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIERhdGVJbnN0YW5jZSogZGF0ZU9iamVj
dCwgZG91YmxlIHRpbWVJbk1pbGxpc2Vjb25kcywgTG9jYWxlRGF0ZVRpbWVGb3JtYXQgZm9ybWF0
KQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBJbnRlZ3JpdHk6OmF1
ZGl0U3RydWN0dXJlSUQodm0sIGRhdGVPYmplY3QtPnN0cnVjdHVyZUlEKCkpOwotCi0gICAgQ0ZE
YXRlRm9ybWF0dGVyU3R5bGUgZGF0ZVN0eWxlID0gKGZvcm1hdCAhPSBMb2NhbGVUaW1lID8ga0NG
RGF0ZUZvcm1hdHRlckxvbmdTdHlsZSA6IGtDRkRhdGVGb3JtYXR0ZXJOb1N0eWxlKTsKLSAgICBD
RkRhdGVGb3JtYXR0ZXJTdHlsZSB0aW1lU3R5bGUgPSAoZm9ybWF0ICE9IExvY2FsZURhdGUgPyBr
Q0ZEYXRlRm9ybWF0dGVyTG9uZ1N0eWxlIDoga0NGRGF0ZUZvcm1hdHRlck5vU3R5bGUpOwotCi0g
ICAgYm9vbCB1c2VDdXN0b21Gb3JtYXQgPSBmYWxzZTsKLSAgICBTdHJpbmcgY3VzdG9tRm9ybWF0
U3RyaW5nOwotCi0gICAgU3RyaW5nIGFyZzBTdHJpbmcgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
LnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKGFyZzBTdHJpbmcgPT0gImN1c3Rv
bSIgJiYgIWNhbGxGcmFtZS0+YXJndW1lbnQoMSkuaXNVbmRlZmluZWQoKSkgewotICAgICAgICB1
c2VDdXN0b21Gb3JtYXQgPSB0cnVlOwotICAgICAgICBjdXN0b21Gb3JtYXRTdHJpbmcgPSBjYWxs
RnJhbWUtPmFyZ3VtZW50KDEpLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0gICAgfSBlbHNl
IGlmIChmb3JtYXQgPT0gTG9jYWxlRGF0ZUFuZFRpbWUgJiYgIWNhbGxGcmFtZS0+YXJndW1lbnQo
MSkuaXNVbmRlZmluZWQoKSkgewotICAgICAgICBkYXRlU3R5bGUgPSBzdHlsZUZyb21BcmdTdHJp
bmcoYXJnMFN0cmluZywgZGF0ZVN0eWxlKTsKLSAgICAgICAgdGltZVN0eWxlID0gc3R5bGVGcm9t
QXJnU3RyaW5nKGNhbGxGcmFtZS0+YXJndW1lbnQoMSkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0
KSwgdGltZVN0eWxlKTsKLSAgICB9IGVsc2UgaWYgKGZvcm1hdCAhPSBMb2NhbGVUaW1lICYmICFj
YWxsRnJhbWUtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIGRhdGVTdHlsZSA9
IHN0eWxlRnJvbUFyZ1N0cmluZyhhcmcwU3RyaW5nLCBkYXRlU3R5bGUpOwotICAgIGVsc2UgaWYg
KGZvcm1hdCAhPSBMb2NhbGVEYXRlICYmICFjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmlzVW5kZWZp
bmVkKCkpCi0gICAgICAgIHRpbWVTdHlsZSA9IHN0eWxlRnJvbUFyZ1N0cmluZyhhcmcwU3RyaW5n
LCB0aW1lU3R5bGUpOwotCi0gICAgQ0ZBYnNvbHV0ZVRpbWUgYWJzb2x1dGVUaW1lID0gZmxvb3Io
dGltZUluTWlsbGlzZWNvbmRzIC8gbXNQZXJTZWNvbmQpIC0ga0NGQWJzb2x1dGVUaW1lSW50ZXJ2
YWxTaW5jZTE5NzA7Ci0KLSAgICBhdXRvIGZvcm1hdHRlciA9IGFkb3B0Q0YoQ0ZEYXRlRm9ybWF0
dGVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5Q3VycmVu
dCgpKS5nZXQoKSwgZGF0ZVN0eWxlLCB0aW1lU3R5bGUpKTsKLSAgICBpZiAodXNlQ3VzdG9tRm9y
bWF0KQotICAgICAgICBDRkRhdGVGb3JtYXR0ZXJTZXRGb3JtYXQoZm9ybWF0dGVyLmdldCgpLCBj
dXN0b21Gb3JtYXRTdHJpbmcuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7Ci0gICAgcmV0dXJuIGpz
Tm9udHJpdmlhbFN0cmluZyh2bSwgYWRvcHRDRihDRkRhdGVGb3JtYXR0ZXJDcmVhdGVTdHJpbmdX
aXRoQWJzb2x1dGVUaW1lKGtDRkFsbG9jYXRvckRlZmF1bHQsIGZvcm1hdHRlci5nZXQoKSwgYWJz
b2x1dGVUaW1lKSkuZ2V0KCkpOwotfQotCi0jZWxpZiAhVUNPTkZJR19OT19GT1JNQVRUSU5HCi0K
LXN0YXRpYyBKU0NlbGwqIGZvcm1hdExvY2FsZURhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiwgRGF0ZUluc3RhbmNlKiBkYXRlT2JqZWN0LCBkb3VibGUgdGltZUlu
TWlsbGlzZWNvbmRzLCBMb2NhbGVEYXRlVGltZUZvcm1hdCBmb3JtYXQpCi17Ci0gICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIEludGVncml0eTo6YXVkaXRTdHJ1Y3R1cmVJRCh2
bSwgZGF0ZU9iamVjdC0+c3RydWN0dXJlSUQoKSk7Ci0KLSAgICBVRGF0ZUZvcm1hdFN0eWxlIHRp
bWVTdHlsZSA9IChmb3JtYXQgIT0gTG9jYWxlRGF0ZSA/IFVEQVRfTE9ORyA6IFVEQVRfTk9ORSk7
Ci0gICAgVURhdGVGb3JtYXRTdHlsZSBkYXRlU3R5bGUgPSAoZm9ybWF0ICE9IExvY2FsZVRpbWUg
PyBVREFUX0xPTkcgOiBVREFUX05PTkUpOwotCi0gICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pF
Uk9fRVJST1I7Ci0gICAgVURhdGVGb3JtYXQqIGRmID0gdWRhdF9vcGVuKHRpbWVTdHlsZSwgZGF0
ZVN0eWxlLCBudWxscHRyLCBudWxscHRyLCAtMSwgbnVsbHB0ciwgMCwgJnN0YXR1cyk7Ci0gICAg
aWYgKCFkZikKLSAgICAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcodm0pOwotCi0gICAgVUNoYXIg
YnVmZmVyWzEyOF07Ci0gICAgaW50MzJfdCBsZW5ndGg7Ci0gICAgbGVuZ3RoID0gdWRhdF9mb3Jt
YXQoZGYsIHRpbWVJbk1pbGxpc2Vjb25kcywgYnVmZmVyLCAxMjgsIG51bGxwdHIsICZzdGF0dXMp
OwotICAgIHVkYXRfY2xvc2UoZGYpOwotICAgIGlmIChzdGF0dXMgIT0gVV9aRVJPX0VSUk9SKQot
ICAgICAgICByZXR1cm4ganNFbXB0eVN0cmluZyh2bSk7Ci0KLSAgICByZXR1cm4ganNOb250cml2
aWFsU3RyaW5nKHZtLCBTdHJpbmcoYnVmZmVyLCBsZW5ndGgpKTsKLX0KLQotI2Vsc2UKLQotc3Rh
dGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlRGF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUmIGdkdCwgTG9j
YWxlRGF0ZVRpbWVGb3JtYXQgZm9ybWF0KQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKLSNpZiBPUyhXSU5ET1dTKQotICAgIFNZU1RFTVRJTUUgc3lzdGVtVGltZTsKLSAgICBt
ZW1zZXQoJnN5c3RlbVRpbWUsIDAsIHNpemVvZihzeXN0ZW1UaW1lKSk7Ci0gICAgc3lzdGVtVGlt
ZS53WWVhciA9IGdkdC55ZWFyKCk7Ci0gICAgc3lzdGVtVGltZS53TW9udGggPSBnZHQubW9udGgo
KSArIDE7Ci0gICAgc3lzdGVtVGltZS53RGF5ID0gZ2R0Lm1vbnRoRGF5KCk7Ci0gICAgc3lzdGVt
VGltZS53RGF5T2ZXZWVrID0gZ2R0LndlZWtEYXkoKTsKLSAgICBzeXN0ZW1UaW1lLndIb3VyID0g
Z2R0LmhvdXIoKTsKLSAgICBzeXN0ZW1UaW1lLndNaW51dGUgPSBnZHQubWludXRlKCk7Ci0gICAg
c3lzdGVtVGltZS53U2Vjb25kID0gZ2R0LnNlY29uZCgpOwotCi0gICAgVmVjdG9yPFVDaGFyLCAx
Mjg+IGJ1ZmZlcjsKLSAgICBzaXplX3QgbGVuZ3RoID0gMDsKLQotICAgIGlmIChmb3JtYXQgPT0g
TG9jYWxlRGF0ZSkgewotICAgICAgICBidWZmZXIucmVzaXplKEdldERhdGVGb3JtYXRXKExPQ0FM
RV9VU0VSX0RFRkFVTFQsIERBVEVfTE9OR0RBVEUsICZzeXN0ZW1UaW1lLCAwLCAwLCAwKSk7Ci0g
ICAgICAgIGxlbmd0aCA9IEdldERhdGVGb3JtYXRXKExPQ0FMRV9VU0VSX0RFRkFVTFQsIERBVEVf
TE9OR0RBVEUsICZzeXN0ZW1UaW1lLCAwLCBidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgpKTsK
LSAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PSBMb2NhbGVUaW1lKSB7Ci0gICAgICAgIGJ1ZmZlci5y
ZXNpemUoR2V0VGltZUZvcm1hdFcoTE9DQUxFX1VTRVJfREVGQVVMVCwgMCwgJnN5c3RlbVRpbWUs
IDAsIDAsIDApKTsKLSAgICAgICAgbGVuZ3RoID0gR2V0VGltZUZvcm1hdFcoTE9DQUxFX1VTRVJf
REVGQVVMVCwgMCwgJnN5c3RlbVRpbWUsIDAsIGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5zaXplKCkp
OwotICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09IExvY2FsZURhdGVBbmRUaW1lKSB7Ci0gICAgICAg
IGJ1ZmZlci5yZXNpemUoR2V0RGF0ZUZvcm1hdFcoTE9DQUxFX1VTRVJfREVGQVVMVCwgREFURV9M
T05HREFURSwgJnN5c3RlbVRpbWUsIDAsIDAsIDApICsgR2V0VGltZUZvcm1hdFcoTE9DQUxFX1VT
RVJfREVGQVVMVCwgMCwgJnN5c3RlbVRpbWUsIDAsIDAsIDApKTsKLSAgICAgICAgbGVuZ3RoID0g
R2V0RGF0ZUZvcm1hdFcoTE9DQUxFX1VTRVJfREVGQVVMVCwgREFURV9MT05HREFURSwgJnN5c3Rl
bVRpbWUsIDAsIGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5zaXplKCkpOwotICAgICAgICBpZiAobGVu
Z3RoKSB7Ci0gICAgICAgICAgICBidWZmZXJbbGVuZ3RoIC0gMV0gPSAnICc7Ci0gICAgICAgICAg
ICBsZW5ndGggKz0gR2V0VGltZUZvcm1hdFcoTE9DQUxFX1VTRVJfREVGQVVMVCwgMCwgJnN5c3Rl
bVRpbWUsIDAsIGJ1ZmZlci5kYXRhKCkgKyBsZW5ndGgsIGJ1ZmZlci5zaXplKCkgLSBsZW5ndGgp
OwotICAgICAgICB9Ci0gICAgfSBlbHNlCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0KLSAgICAvLyAgUmVtb3ZlIHRlcm1pbmF0aW5nIG51bGwgY2hhcmFjdGVyLgotICAg
IGlmIChsZW5ndGgpCi0gICAgICAgIGxlbmd0aC0tOwotCi0gICAgcmV0dXJuIGpzTm9udHJpdmlh
bFN0cmluZyh2bSwgU3RyaW5nKGJ1ZmZlci5kYXRhKCksIGxlbmd0aCkpOwotCi0jZWxzZSAvLyBP
UyhXSU5ET1dTKQotCi0jaWYgSEFWRShMQU5HSU5GT19IKQotICAgIHN0YXRpYyBjb25zdCBubF9p
dGVtIGZvcm1hdHNbXSA9IHsgRF9UX0ZNVCwgRF9GTVQsIFRfRk1UIH07Ci0jZWxzZQotICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBjb25zdCBmb3JtYXRTdHJpbmdzW10gPSB7ICIlI2MiLCAiJSN4Iiwg
IiVYIiB9OwotI2VuZGlmCi0KLSAgICAvLyBPZmZzZXQgeWVhciBpZiBuZWVkZWQKLSAgICBzdHJ1
Y3QgdG0gbG9jYWxUTSA9IGdkdDsKLSAgICBpbnQgeWVhciA9IGdkdC55ZWFyKCk7Ci0gICAgYm9v
bCB5ZWFyTmVlZHNPZmZzZXQgPSB5ZWFyIDwgMTkwMCB8fCB5ZWFyID4gMjAzODsKLSAgICBpZiAo
eWVhck5lZWRzT2Zmc2V0KQotICAgICAgICBsb2NhbFRNLnRtX3llYXIgPSBlcXVpdmFsZW50WWVh
ckZvckRTVCh5ZWFyKSAtIDE5MDA7Ci0KLSNpZiBIQVZFKExBTkdJTkZPX0gpCi0gICAgLy8gV2Ug
ZG8gbm90IGFsbG93IHN0cmZ0aW1lIHRvIGdlbmVyYXRlIGRhdGVzIHdpdGggMi1kaWdpdHMgeWVh
cnMsCi0gICAgLy8gYm90aCB0byBhdm9pZCBhbWJpZ3VpdHksIGFuZCBhIGNyYXNoIGluIHN0cm5j
cHksIGZvciB5ZWFycyB0aGF0Ci0gICAgLy8gbmVlZCBvZmZzZXQuCi0gICAgY2hhciogZm9ybWF0
U3RyaW5nID0gc3RyZHVwKG5sX2xhbmdpbmZvKGZvcm1hdHNbZm9ybWF0XSkpOwotICAgIGNoYXIq
IHlQb3MgPSBzdHJjaHIoZm9ybWF0U3RyaW5nLCAneScpOwotICAgIGlmICh5UG9zKQotICAgICAg
ICAqeVBvcyA9ICdZJzsKLSNlbmRpZgotCi0gICAgLy8gRG8gdGhlIGZvcm1hdHRpbmcKLSAgICBj
b25zdCBpbnQgYnVmc2l6ZSA9IDEyODsKLSAgICBjaGFyIHRpbWVidWZmZXJbYnVmc2l6ZV07Ci0K
LSNpZiBIQVZFKExBTkdJTkZPX0gpCi0gICAgc2l6ZV90IHJldCA9IHN0cmZ0aW1lKHRpbWVidWZm
ZXIsIGJ1ZnNpemUsIGZvcm1hdFN0cmluZywgJmxvY2FsVE0pOwotICAgIGZyZWUoZm9ybWF0U3Ry
aW5nKTsKLSNlbHNlCi0gICAgc2l6ZV90IHJldCA9IHN0cmZ0aW1lKHRpbWVidWZmZXIsIGJ1ZnNp
emUsIGZvcm1hdFN0cmluZ3NbZm9ybWF0XSwgJmxvY2FsVE0pOwotI2VuZGlmCi0KLSAgICBpZiAo
cmV0ID09IDApCi0gICAgICAgIHJldHVybiBqc0VtcHR5U3RyaW5nKHZtKTsKLQotICAgIC8vIENv
cHkgb3JpZ2luYWwgaW50byB0aGUgYnVmZmVyCi0gICAgaWYgKHllYXJOZWVkc09mZnNldCAmJiBm
b3JtYXQgIT0gTG9jYWxlVGltZSkgewotICAgICAgICBzdGF0aWMgY29uc3QgaW50IHllYXJMZW4g
PSA1OyAgIC8vIEZJWE1FIHdpbGwgYmUgYSBwcm9ibGVtIGluIHRoZSB5ZWFyIDEwLDAwMAotICAg
ICAgICBjaGFyIHllYXJTdHJpbmdbeWVhckxlbl07Ci0KLSAgICAgICAgc25wcmludGYoeWVhclN0
cmluZywgeWVhckxlbiwgIiVkIiwgbG9jYWxUTS50bV95ZWFyICsgMTkwMCk7Ci0gICAgICAgIGNo
YXIqIHllYXJMb2NhdGlvbiA9IHN0cnN0cih0aW1lYnVmZmVyLCB5ZWFyU3RyaW5nKTsKLSAgICAg
ICAgc25wcmludGYoeWVhclN0cmluZywgeWVhckxlbiwgIiVkIiwgeWVhcik7Ci0KLSAgICAgICAg
c3RybmNweSh5ZWFyTG9jYXRpb24sIHllYXJTdHJpbmcsIHllYXJMZW4gLSAxKTsKLSAgICB9Ci0K
LSAgICAvLyBDb252ZXJ0IG11bHRpLWJ5dGUgcmVzdWx0IHRvIFVOSUNPREUuCi0gICAgLy8gSWYg
X19TVERDX0lTT18xMDY0Nl9fIGlzIGRlZmluZWQsIHdpZGUgY2hhcmFjdGVyIHJlcHJlc2VudHMK
LSAgICAvLyBVVEYtMTYgKG9yIFVURi0zMikgY29kZSBwb2ludC4gSW4gbW9zdCBtb2Rlcm4gVW5p
eCBsaWtlIHN5c3RlbQotICAgIC8vIChlLmcuIExpbnV4IHdpdGggZ2xpYmMgMi4yIGFuZCBhYm92
ZSkgdGhlIG1hY3JvIGlzIGRlZmluZWQsCi0gICAgLy8gYW5kIHdpZGUgY2hhcmFjdGVyIHJlcHJl
c2VudHMgVVRGLTMyIGNvZGUgcG9pbnQuCi0gICAgLy8gSGVyZSB3ZSBzdGF0aWNfY2FzdCBwb3Rl
bnRpYWwgVVRGLTMyIHRvIFVURi0xNiwgaXQgc2hvdWxkIGJlCi0gICAgLy8gc2FmZSBiZWNhdXNl
IGRhdGUgYW5kIChvcikgdGltZSByZWxhdGVkIGNoYXJhY3RlcnMgaW4gZGlmZmVyZW50IGxhbmd1
YWdlcwotICAgIC8vIHNob3VsZCBiZSBpbiBVTklDT0RFIEJNUC4gSWYgbWJzdG93Y3MgZmFpbHMs
IHdlIGp1c3QgZmFsbAotICAgIC8vIGJhY2sgb24gdXNpbmcgbXVsdGktYnl0ZSByZXN1bHQgYXMt
aXMuCi0jaWZkZWYgX19TVERDX0lTT18xMDY0Nl9fCi0gICAgVUNoYXIgYnVmZmVyW2J1ZnNpemVd
OwotICAgIHdjaGFyX3QgdGVtcGJ1ZmZlcltidWZzaXplXTsKLSAgICBzaXplX3QgbGVuZ3RoID0g
bWJzdG93Y3ModGVtcGJ1ZmZlciwgdGltZWJ1ZmZlciwgYnVmc2l6ZSAtIDEpOwotICAgIGlmIChs
ZW5ndGggIT0gc3RhdGljX2Nhc3Q8c2l6ZV90PigtMSkpIHsKLSAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKLSAgICAgICAgICAgIGJ1ZmZlcltpXSA9IHN0YXRpY19j
YXN0PFVDaGFyPih0ZW1wYnVmZmVyW2ldKTsKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0
cmluZyh2bSwgU3RyaW5nKGJ1ZmZlciwgbGVuZ3RoKSk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBy
ZXR1cm4ganNOb250cml2aWFsU3RyaW5nKHZtLCB0aW1lYnVmZmVyKTsKLSNlbmRpZiAvLyBPUyhX
SU5ET1dTKQotfQotCi1zdGF0aWMgSlNDZWxsKiBmb3JtYXRMb2NhbGVEYXRlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBEYXRlSW5zdGFuY2UqIGRh
dGVPYmplY3QsIGRvdWJsZSwgTG9jYWxlRGF0ZVRpbWVGb3JtYXQgZm9ybWF0KQotewotICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBJbnRlZ3JpdHk6OmF1ZGl0U3RydWN0dXJl
SUQodm0sIGRhdGVPYmplY3QtPnN0cnVjdHVyZUlEKCkpOwotCi0gICAgY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZU9iamVjdC0+Z3JlZ29yaWFuRGF0ZVRp
bWUodm0uZGF0ZUNhY2hlKTsKLSAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQotICAgICAgICBy
ZXR1cm4ganNOb250cml2aWFsU3RyaW5nKHZtLCAiSW52YWxpZCBEYXRlIl9zKTsKLSAgICByZXR1
cm4gZm9ybWF0TG9jYWxlRGF0ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgKmdyZWdvcmlhbkRh
dGVUaW1lLCBmb3JtYXQpOwotfQotCi0jZW5kaWYgLy8gT1MoREFSV0lOKSAmJiBVU0UoQ0YpCi0K
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBmb3JtYXRlRGF0ZUluc3RhbmNlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBEYXRlVGltZUZvcm1hdCBmb3Jt
YXQsIGJvb2wgYXNVVENWYXJpYW50KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKQEAgLTQyNywxNyArMjE5LDE3IEBAIHN0YXRpYyBib29sIGZpbGxTdHJ1Y3R1cmVzVXNpbmdE
YXRlQXJncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqCiAgICAgcmV0
dXJuIG9rOwogfQogCi1jb25zdCBDbGFzc0luZm8gRGF0ZVByb3RvdHlwZTo6c19pbmZvID0geyJP
YmplY3QiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAmZGF0ZVRhYmxlLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKERhdGVQcm90b3R5cGUpfTsKK2NvbnN0IENsYXNzSW5mbyBEYXRl
UHJvdG90eXBlOjpzX2luZm8gPSB7Ik9iamVjdCIsICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8s
ICZkYXRlUHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRGF0ZVBy
b3RvdHlwZSl9OwogCiAvKiBTb3VyY2UgZm9yIERhdGVQcm90b3R5cGUubHV0LmgKLUBiZWdpbiBk
YXRlVGFibGUKK0BiZWdpbiBkYXRlUHJvdG90eXBlVGFibGUKICAgdG9TdHJpbmcgICAgICAgICAg
ICAgIGRhdGVQcm90b0Z1bmNUb1N0cmluZyAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlv
biAgICAgICAwCiAgIHRvSVNPU3RyaW5nICAgICAgICAgICBkYXRlUHJvdG9GdW5jVG9JU09TdHJp
bmcgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAogICB0b0RhdGVTdHJpbmcg
ICAgICAgICAgZGF0ZVByb3RvRnVuY1RvRGF0ZVN0cmluZyAgICAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uICAgICAgIDAKICAgdG9UaW1lU3RyaW5nICAgICAgICAgIGRhdGVQcm90b0Z1bmNUb1Rp
bWVTdHJpbmcgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIHRvTG9jYWxl
U3RyaW5nICAgICAgICBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcgICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gICAgICAgMAotICB0b0xvY2FsZURhdGVTdHJpbmcgICAgZGF0ZVByb3RvRnVu
Y1RvTG9jYWxlRGF0ZVN0cmluZyAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgdG9M
b2NhbGVUaW1lU3RyaW5nICAgIGRhdGVQcm90b0Z1bmNUb0xvY2FsZVRpbWVTdHJpbmcgICAgICBE
b250RW51bXxGdW5jdGlvbiAgICAgICAwCisgIHRvTG9jYWxlU3RyaW5nICAgICAgICBKU0J1aWx0
aW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAor
ICB0b0xvY2FsZURhdGVTdHJpbmcgICAgSlNCdWlsdGluICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKKyAgdG9Mb2NhbGVUaW1lU3RyaW5nICAgIEpT
QnVpbHRpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAg
ICAwCiAgIHZhbHVlT2YgICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VGltZSAgICAgICAg
ICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFRpbWVJ
bnRyaW5zaWMKICAgZ2V0VGltZSAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRUaW1lICAg
ICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0
VGltZUludHJpbnNpYwogICBnZXRGdWxsWWVhciAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldEZ1
bGxZZWFyICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5
cGVHZXRGdWxsWWVhckludHJpbnNpYwpAQCAtNDk1LDEwICsyODcsNiBAQCB2b2lkIERhdGVQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdG9VVENTdHJpbmdOYW1lLCB0
b1VUQ1N0cmluZ0Z1bmN0aW9uLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sICJ0b0dNVFN0cmluZyJfcyksIHRvVVRDU3RyaW5nRnVuY3Rp
b24sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsK
IAotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigidG9Mb2NhbGVT
dHJpbmciLCBkYXRlUHJvdG90eXBlVG9Mb2NhbGVTdHJpbmdDb2RlR2VuZXJhdG9yLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgSlNDX0JV
SUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0b0xvY2FsZURhdGVTdHJpbmciLCBk
YXRlUHJvdG90eXBlVG9Mb2NhbGVEYXRlU3RyaW5nQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlMVElO
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigidG9Mb2NhbGVUaW1lU3RyaW5nIiwgZGF0ZVBy
b3RvdHlwZVRvTG9jYWxlVGltZVN0cmluZ0NvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLQogICAgIEpTRnVuY3Rpb24qIHRv
UHJpbWl0aXZlRnVuY3Rpb24gPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
MSwgIltTeW1ib2wudG9QcmltaXRpdmVdIl9zLCBkYXRlUHJvdG9GdW5jVG9QcmltaXRpdmVTeW1i
b2wsIE5vSW50cmluc2ljKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+dG9QcmltaXRpdmVTeW1ib2wsIHRvUHJpbWl0aXZlRnVuY3Rpb24sIFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7
CiAKQEAgLTU2OCw0MiArMzU2LDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jVG9UaW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICByZXR1
cm4gZm9ybWF0ZURhdGVJbnN0YW5jZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgRGF0ZVRpbWVG
b3JtYXRUaW1lLCBhc1VUQ1ZhcmlhbnQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGRhdGVQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKTsKLSAgICBhdXRvKiB0aGlz
RGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7Ci0g
ICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShmb3JtYXRMb2NhbGVEYXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCB0aGlzRGF0ZU9iaiwg
dGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCksIExvY2FsZURhdGVBbmRUaW1lKSk7Ci19Ci0K
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvTG9jYWxlRGF0ZVN0
cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
LXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1l
LT50aGlzVmFsdWUoKTsKLSAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0
ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7Ci0gICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9i
aikpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUp
OwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShmb3JtYXRMb2NhbGVEYXRlKGdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lLCB0aGlzRGF0ZU9iaiwgdGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVy
KCksIExvY2FsZURhdGUpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jVG9Mb2NhbGVUaW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpOwotICAgIGF1dG8qIHRoaXNEYXRl
T2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKLSAgICBp
ZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGZv
cm1hdExvY2FsZURhdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIHRoaXNEYXRlT2JqLCB0aGlz
RGF0ZU9iai0+aW50ZXJuYWxOdW1iZXIoKSwgTG9jYWxlVGltZSkpOwotfQotCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb1ByaW1pdGl2ZVN5bWJvbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402255</attachid>
            <date>2020-06-18 17:26:09 -0700</date>
            <delta_ts>2020-06-18 17:29:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213362-20200618172608.patch</filename>
            <type>text/plain</type>
            <size>16463</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NWZkYzNlZWQyODhiMzUzODNkYmM0MDcxMzNmZjI1MmEwMGFkMWVlLi5kOGQ4MDM1OWQ4YzczZGFk
OWIxZjZlMmYyYjM1MzYwODcwOGMxNTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0wNi0xOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSBkZWFkIG5vbi1JQ1UgbG9jYWxlIERhdGUgY29kZSBz
aW5jZSB3ZSBhcmUgYWx3YXlzIHVzaW5nIElDVSB2ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMzNjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBhcmUgb2xkIG5vbi1JQ1UgdmVyc2lv
biBvZiBEYXRlIGxvY2FsZSBjb2RlLiBCdXQgdGhpcyBpcyBub3cgZGVhZCBjb2RlIHNpbmNlIHdl
IGFyZSBhbHdheXMgdXNpbmcgSUNVIHZlcnNpb24sCisgICAgICAgIHdoaWNoIGlzIGludm9rZWQg
ZnJvbSBidWlsdGluIEpTIERhdGVQcm90b3R5cGUuanMuIFdlIHNob3VsZCByZW1vdmUgdGhlc2Ug
ZGVhZCBjb2RlLgorCisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6RGF0ZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6c3R5bGVGcm9tQXJnU3RyaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Zm9ybWF0TG9jYWxlRGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNUb0xvY2FsZURhdGVTdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJv
dG9GdW5jVG9Mb2NhbGVUaW1lU3RyaW5nKTogRGVsZXRlZC4KKwogMjAyMC0wNi0xOCAgUm9zcyBL
aXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0ludGxdIEVuYWJs
ZSBSZWxhdGl2ZVRpbWVGb3JtYXQgYW5kIExvY2FsZSBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCmluZGV4IDZlNDk3NWFmYmZl
NjRiZjYzZjJkOWJlMjUyOTQ2ZDBhZGQyZGNiYjAuLjg5OTQ3NGUxODcxYWM2NmQ4MGMxN2JhOGFj
MmJjMDBkOWZiZDkyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVQcm90b3R5cGUuY3BwCkBAIC0zNiwxNCArMzYsNiBAQAogI2luY2x1ZGUgIkpTU3RyaW5nLmgi
CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAotI2lmICEoT1MoREFSV0lOKSAmJiBVU0Uo
Q0YpKQotI2luY2x1ZGUgPHVuaWNvZGUvdWRhdC5oPgotI2VuZGlmCi0KLSNpZiBVU0UoQ0YpCi0j
aW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KLSNlbmRpZgotCiBuYW1l
c3BhY2UgSlNDIHsKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
R2V0RGF0ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwpAQCAtODEsOSArNzMsNiBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENNb250aChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jU2V0VVRDU2Vjb25kcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0WWVhcihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jVG9EYXRlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0xvY2FsZURhdGVTdHJpbmcoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0xvY2FsZVRpbWVT
dHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvUHJpbWl0aXZlU3ltYm9sKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNU
b1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9UaW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7CkBAIC05NywyMTEgKzg2LDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jVG9KU09OKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CiAKIG5h
bWVzcGFjZSBKU0MgewogCi1lbnVtIExvY2FsZURhdGVUaW1lRm9ybWF0IHsgTG9jYWxlRGF0ZUFu
ZFRpbWUsIExvY2FsZURhdGUsIExvY2FsZVRpbWUgfTsKLSAKLSNpZiBPUyhEQVJXSU4pICYmIFVT
RShDRikKLQotLy8gRklYTUU6IFNpbmNlIHRoaXMgaXMgc3VwZXJpb3IgdG8gdGhlIHN0cmZ0aW1l
LWJhc2VkIHZlcnNpb24sIHdoeSBsaW1pdCB0aGlzIHRvIE9TKERBUldJTik/Ci0vLyBJbnN0ZWFk
IHdlIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGlzIHdoZW5ldmVyIFVTRShDRikgaXMgdHJ1ZS4K
LQotc3RhdGljIENGRGF0ZUZvcm1hdHRlclN0eWxlIHN0eWxlRnJvbUFyZ1N0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZywgQ0ZEYXRlRm9ybWF0dGVyU3R5bGUgZGVmYXVsdFN0eWxlKQotewotICAg
IGlmIChzdHJpbmcgPT0gInNob3J0IikKLSAgICAgICAgcmV0dXJuIGtDRkRhdGVGb3JtYXR0ZXJT
aG9ydFN0eWxlOwotICAgIGlmIChzdHJpbmcgPT0gIm1lZGl1bSIpCi0gICAgICAgIHJldHVybiBr
Q0ZEYXRlRm9ybWF0dGVyTWVkaXVtU3R5bGU7Ci0gICAgaWYgKHN0cmluZyA9PSAibG9uZyIpCi0g
ICAgICAgIHJldHVybiBrQ0ZEYXRlRm9ybWF0dGVyTG9uZ1N0eWxlOwotICAgIGlmIChzdHJpbmcg
PT0gImZ1bGwiKQotICAgICAgICByZXR1cm4ga0NGRGF0ZUZvcm1hdHRlckZ1bGxTdHlsZTsKLSAg
ICByZXR1cm4gZGVmYXVsdFN0eWxlOwotfQotCi1zdGF0aWMgSlNDZWxsKiBmb3JtYXRMb2NhbGVE
YXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBE
YXRlSW5zdGFuY2UqIGRhdGVPYmplY3QsIGRvdWJsZSB0aW1lSW5NaWxsaXNlY29uZHMsIExvY2Fs
ZURhdGVUaW1lRm9ybWF0IGZvcm1hdCkKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7Ci0gICAgSW50ZWdyaXR5OjphdWRpdFN0cnVjdHVyZUlEKHZtLCBkYXRlT2JqZWN0LT5zdHJ1
Y3R1cmVJRCgpKTsKLQotICAgIENGRGF0ZUZvcm1hdHRlclN0eWxlIGRhdGVTdHlsZSA9IChmb3Jt
YXQgIT0gTG9jYWxlVGltZSA/IGtDRkRhdGVGb3JtYXR0ZXJMb25nU3R5bGUgOiBrQ0ZEYXRlRm9y
bWF0dGVyTm9TdHlsZSk7Ci0gICAgQ0ZEYXRlRm9ybWF0dGVyU3R5bGUgdGltZVN0eWxlID0gKGZv
cm1hdCAhPSBMb2NhbGVEYXRlID8ga0NGRGF0ZUZvcm1hdHRlckxvbmdTdHlsZSA6IGtDRkRhdGVG
b3JtYXR0ZXJOb1N0eWxlKTsKLQotICAgIGJvb2wgdXNlQ3VzdG9tRm9ybWF0ID0gZmFsc2U7Ci0g
ICAgU3RyaW5nIGN1c3RvbUZvcm1hdFN0cmluZzsKLQotICAgIFN0cmluZyBhcmcwU3RyaW5nID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwotICAgIGlm
IChhcmcwU3RyaW5nID09ICJjdXN0b20iICYmICFjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLmlzVW5k
ZWZpbmVkKCkpIHsKLSAgICAgICAgdXNlQ3VzdG9tRm9ybWF0ID0gdHJ1ZTsKLSAgICAgICAgY3Vz
dG9tRm9ybWF0U3RyaW5nID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKS50b1dURlN0cmluZyhnbG9i
YWxPYmplY3QpOwotICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09IExvY2FsZURhdGVBbmRUaW1lICYm
ICFjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLmlzVW5kZWZpbmVkKCkpIHsKLSAgICAgICAgZGF0ZVN0
eWxlID0gc3R5bGVGcm9tQXJnU3RyaW5nKGFyZzBTdHJpbmcsIGRhdGVTdHlsZSk7Ci0gICAgICAg
IHRpbWVTdHlsZSA9IHN0eWxlRnJvbUFyZ1N0cmluZyhjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLnRv
V1RGU3RyaW5nKGdsb2JhbE9iamVjdCksIHRpbWVTdHlsZSk7Ci0gICAgfSBlbHNlIGlmIChmb3Jt
YXQgIT0gTG9jYWxlVGltZSAmJiAhY2FsbEZyYW1lLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZCgp
KQotICAgICAgICBkYXRlU3R5bGUgPSBzdHlsZUZyb21BcmdTdHJpbmcoYXJnMFN0cmluZywgZGF0
ZVN0eWxlKTsKLSAgICBlbHNlIGlmIChmb3JtYXQgIT0gTG9jYWxlRGF0ZSAmJiAhY2FsbEZyYW1l
LT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZCgpKQotICAgICAgICB0aW1lU3R5bGUgPSBzdHlsZUZy
b21BcmdTdHJpbmcoYXJnMFN0cmluZywgdGltZVN0eWxlKTsKLQotICAgIENGQWJzb2x1dGVUaW1l
IGFic29sdXRlVGltZSA9IGZsb29yKHRpbWVJbk1pbGxpc2Vjb25kcyAvIG1zUGVyU2Vjb25kKSAt
IGtDRkFic29sdXRlVGltZUludGVydmFsU2luY2UxOTcwOwotCi0gICAgYXV0byBmb3JtYXR0ZXIg
PSBhZG9wdENGKENGRGF0ZUZvcm1hdHRlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBhZG9w
dENGKENGTG9jYWxlQ29weUN1cnJlbnQoKSkuZ2V0KCksIGRhdGVTdHlsZSwgdGltZVN0eWxlKSk7
Ci0gICAgaWYgKHVzZUN1c3RvbUZvcm1hdCkKLSAgICAgICAgQ0ZEYXRlRm9ybWF0dGVyU2V0Rm9y
bWF0KGZvcm1hdHRlci5nZXQoKSwgY3VzdG9tRm9ybWF0U3RyaW5nLmNyZWF0ZUNGU3RyaW5nKCku
Z2V0KCkpOwotICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcodm0sIGFkb3B0Q0YoQ0ZEYXRl
Rm9ybWF0dGVyQ3JlYXRlU3RyaW5nV2l0aEFic29sdXRlVGltZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBmb3JtYXR0ZXIuZ2V0KCksIGFic29sdXRlVGltZSkpLmdldCgpKTsKLX0KLQotI2VsaWYgIVVD
T05GSUdfTk9fRk9STUFUVElORwotCi1zdGF0aWMgSlNDZWxsKiBmb3JtYXRMb2NhbGVEYXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSosIERhdGVJbnN0YW5jZSogZGF0
ZU9iamVjdCwgZG91YmxlIHRpbWVJbk1pbGxpc2Vjb25kcywgTG9jYWxlRGF0ZVRpbWVGb3JtYXQg
Zm9ybWF0KQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBJbnRlZ3Jp
dHk6OmF1ZGl0U3RydWN0dXJlSUQodm0sIGRhdGVPYmplY3QtPnN0cnVjdHVyZUlEKCkpOwotCi0g
ICAgVURhdGVGb3JtYXRTdHlsZSB0aW1lU3R5bGUgPSAoZm9ybWF0ICE9IExvY2FsZURhdGUgPyBV
REFUX0xPTkcgOiBVREFUX05PTkUpOwotICAgIFVEYXRlRm9ybWF0U3R5bGUgZGF0ZVN0eWxlID0g
KGZvcm1hdCAhPSBMb2NhbGVUaW1lID8gVURBVF9MT05HIDogVURBVF9OT05FKTsKLQotICAgIFVF
cnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOwotICAgIFVEYXRlRm9ybWF0KiBkZiA9IHVk
YXRfb3Blbih0aW1lU3R5bGUsIGRhdGVTdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgLTEsIG51bGxw
dHIsIDAsICZzdGF0dXMpOwotICAgIGlmICghZGYpCi0gICAgICAgIHJldHVybiBqc0VtcHR5U3Ry
aW5nKHZtKTsKLQotICAgIFVDaGFyIGJ1ZmZlclsxMjhdOwotICAgIGludDMyX3QgbGVuZ3RoOwot
ICAgIGxlbmd0aCA9IHVkYXRfZm9ybWF0KGRmLCB0aW1lSW5NaWxsaXNlY29uZHMsIGJ1ZmZlciwg
MTI4LCBudWxscHRyLCAmc3RhdHVzKTsKLSAgICB1ZGF0X2Nsb3NlKGRmKTsKLSAgICBpZiAoc3Rh
dHVzICE9IFVfWkVST19FUlJPUikKLSAgICAgICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcodm0pOwot
Ci0gICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgU3RyaW5nKGJ1ZmZlciwgbGVuZ3Ro
KSk7Ci19Ci0KLSNlbHNlCi0KLXN0YXRpYyBKU0NlbGwqIGZvcm1hdExvY2FsZURhdGUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEdyZWdv
cmlhbkRhdGVUaW1lJiBnZHQsIExvY2FsZURhdGVUaW1lRm9ybWF0IGZvcm1hdCkKLXsKLSAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0jaWYgT1MoV0lORE9XUykKLSAgICBTWVNURU1U
SU1FIHN5c3RlbVRpbWU7Ci0gICAgbWVtc2V0KCZzeXN0ZW1UaW1lLCAwLCBzaXplb2Yoc3lzdGVt
VGltZSkpOwotICAgIHN5c3RlbVRpbWUud1llYXIgPSBnZHQueWVhcigpOwotICAgIHN5c3RlbVRp
bWUud01vbnRoID0gZ2R0Lm1vbnRoKCkgKyAxOwotICAgIHN5c3RlbVRpbWUud0RheSA9IGdkdC5t
b250aERheSgpOwotICAgIHN5c3RlbVRpbWUud0RheU9mV2VlayA9IGdkdC53ZWVrRGF5KCk7Ci0g
ICAgc3lzdGVtVGltZS53SG91ciA9IGdkdC5ob3VyKCk7Ci0gICAgc3lzdGVtVGltZS53TWludXRl
ID0gZ2R0Lm1pbnV0ZSgpOwotICAgIHN5c3RlbVRpbWUud1NlY29uZCA9IGdkdC5zZWNvbmQoKTsK
LQotICAgIFZlY3RvcjxVQ2hhciwgMTI4PiBidWZmZXI7Ci0gICAgc2l6ZV90IGxlbmd0aCA9IDA7
Ci0KLSAgICBpZiAoZm9ybWF0ID09IExvY2FsZURhdGUpIHsKLSAgICAgICAgYnVmZmVyLnJlc2l6
ZShHZXREYXRlRm9ybWF0VyhMT0NBTEVfVVNFUl9ERUZBVUxULCBEQVRFX0xPTkdEQVRFLCAmc3lz
dGVtVGltZSwgMCwgMCwgMCkpOwotICAgICAgICBsZW5ndGggPSBHZXREYXRlRm9ybWF0VyhMT0NB
TEVfVVNFUl9ERUZBVUxULCBEQVRFX0xPTkdEQVRFLCAmc3lzdGVtVGltZSwgMCwgYnVmZmVyLmRh
dGEoKSwgYnVmZmVyLnNpemUoKSk7Ci0gICAgfSBlbHNlIGlmIChmb3JtYXQgPT0gTG9jYWxlVGlt
ZSkgewotICAgICAgICBidWZmZXIucmVzaXplKEdldFRpbWVGb3JtYXRXKExPQ0FMRV9VU0VSX0RF
RkFVTFQsIDAsICZzeXN0ZW1UaW1lLCAwLCAwLCAwKSk7Ci0gICAgICAgIGxlbmd0aCA9IEdldFRp
bWVGb3JtYXRXKExPQ0FMRV9VU0VSX0RFRkFVTFQsIDAsICZzeXN0ZW1UaW1lLCAwLCBidWZmZXIu
ZGF0YSgpLCBidWZmZXIuc2l6ZSgpKTsKLSAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PSBMb2NhbGVE
YXRlQW5kVGltZSkgewotICAgICAgICBidWZmZXIucmVzaXplKEdldERhdGVGb3JtYXRXKExPQ0FM
RV9VU0VSX0RFRkFVTFQsIERBVEVfTE9OR0RBVEUsICZzeXN0ZW1UaW1lLCAwLCAwLCAwKSArIEdl
dFRpbWVGb3JtYXRXKExPQ0FMRV9VU0VSX0RFRkFVTFQsIDAsICZzeXN0ZW1UaW1lLCAwLCAwLCAw
KSk7Ci0gICAgICAgIGxlbmd0aCA9IEdldERhdGVGb3JtYXRXKExPQ0FMRV9VU0VSX0RFRkFVTFQs
IERBVEVfTE9OR0RBVEUsICZzeXN0ZW1UaW1lLCAwLCBidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6
ZSgpKTsKLSAgICAgICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAgYnVmZmVyW2xlbmd0aCAt
IDFdID0gJyAnOwotICAgICAgICAgICAgbGVuZ3RoICs9IEdldFRpbWVGb3JtYXRXKExPQ0FMRV9V
U0VSX0RFRkFVTFQsIDAsICZzeXN0ZW1UaW1lLCAwLCBidWZmZXIuZGF0YSgpICsgbGVuZ3RoLCBi
dWZmZXIuc2l6ZSgpIC0gbGVuZ3RoKTsKLSAgICAgICAgfQotICAgIH0gZWxzZQotICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotCi0gICAgLy8gIFJlbW92ZSB0ZXJtaW5hdGlu
ZyBudWxsIGNoYXJhY3Rlci4KLSAgICBpZiAobGVuZ3RoKQotICAgICAgICBsZW5ndGgtLTsKLQot
ICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcodm0sIFN0cmluZyhidWZmZXIuZGF0YSgpLCBs
ZW5ndGgpKTsKLQotI2Vsc2UgLy8gT1MoV0lORE9XUykKLQotI2lmIEhBVkUoTEFOR0lORk9fSCkK
LSAgICBzdGF0aWMgY29uc3QgbmxfaXRlbSBmb3JtYXRzW10gPSB7IERfVF9GTVQsIERfRk1ULCBU
X0ZNVCB9OwotI2Vsc2UKLSAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZm9ybWF0U3RyaW5n
c1tdID0geyAiJSNjIiwgIiUjeCIsICIlWCIgfTsKLSNlbmRpZgotCi0gICAgLy8gT2Zmc2V0IHll
YXIgaWYgbmVlZGVkCi0gICAgc3RydWN0IHRtIGxvY2FsVE0gPSBnZHQ7Ci0gICAgaW50IHllYXIg
PSBnZHQueWVhcigpOwotICAgIGJvb2wgeWVhck5lZWRzT2Zmc2V0ID0geWVhciA8IDE5MDAgfHwg
eWVhciA+IDIwMzg7Ci0gICAgaWYgKHllYXJOZWVkc09mZnNldCkKLSAgICAgICAgbG9jYWxUTS50
bV95ZWFyID0gZXF1aXZhbGVudFllYXJGb3JEU1QoeWVhcikgLSAxOTAwOwotCi0jaWYgSEFWRShM
QU5HSU5GT19IKQotICAgIC8vIFdlIGRvIG5vdCBhbGxvdyBzdHJmdGltZSB0byBnZW5lcmF0ZSBk
YXRlcyB3aXRoIDItZGlnaXRzIHllYXJzLAotICAgIC8vIGJvdGggdG8gYXZvaWQgYW1iaWd1aXR5
LCBhbmQgYSBjcmFzaCBpbiBzdHJuY3B5LCBmb3IgeWVhcnMgdGhhdAotICAgIC8vIG5lZWQgb2Zm
c2V0LgotICAgIGNoYXIqIGZvcm1hdFN0cmluZyA9IHN0cmR1cChubF9sYW5naW5mbyhmb3JtYXRz
W2Zvcm1hdF0pKTsKLSAgICBjaGFyKiB5UG9zID0gc3RyY2hyKGZvcm1hdFN0cmluZywgJ3knKTsK
LSAgICBpZiAoeVBvcykKLSAgICAgICAgKnlQb3MgPSAnWSc7Ci0jZW5kaWYKLQotICAgIC8vIERv
IHRoZSBmb3JtYXR0aW5nCi0gICAgY29uc3QgaW50IGJ1ZnNpemUgPSAxMjg7Ci0gICAgY2hhciB0
aW1lYnVmZmVyW2J1ZnNpemVdOwotCi0jaWYgSEFWRShMQU5HSU5GT19IKQotICAgIHNpemVfdCBy
ZXQgPSBzdHJmdGltZSh0aW1lYnVmZmVyLCBidWZzaXplLCBmb3JtYXRTdHJpbmcsICZsb2NhbFRN
KTsKLSAgICBmcmVlKGZvcm1hdFN0cmluZyk7Ci0jZWxzZQotICAgIHNpemVfdCByZXQgPSBzdHJm
dGltZSh0aW1lYnVmZmVyLCBidWZzaXplLCBmb3JtYXRTdHJpbmdzW2Zvcm1hdF0sICZsb2NhbFRN
KTsKLSNlbmRpZgotCi0gICAgaWYgKHJldCA9PSAwKQotICAgICAgICByZXR1cm4ganNFbXB0eVN0
cmluZyh2bSk7Ci0KLSAgICAvLyBDb3B5IG9yaWdpbmFsIGludG8gdGhlIGJ1ZmZlcgotICAgIGlm
ICh5ZWFyTmVlZHNPZmZzZXQgJiYgZm9ybWF0ICE9IExvY2FsZVRpbWUpIHsKLSAgICAgICAgc3Rh
dGljIGNvbnN0IGludCB5ZWFyTGVuID0gNTsgICAvLyBGSVhNRSB3aWxsIGJlIGEgcHJvYmxlbSBp
biB0aGUgeWVhciAxMCwwMDAKLSAgICAgICAgY2hhciB5ZWFyU3RyaW5nW3llYXJMZW5dOwotCi0g
ICAgICAgIHNucHJpbnRmKHllYXJTdHJpbmcsIHllYXJMZW4sICIlZCIsIGxvY2FsVE0udG1feWVh
ciArIDE5MDApOwotICAgICAgICBjaGFyKiB5ZWFyTG9jYXRpb24gPSBzdHJzdHIodGltZWJ1ZmZl
ciwgeWVhclN0cmluZyk7Ci0gICAgICAgIHNucHJpbnRmKHllYXJTdHJpbmcsIHllYXJMZW4sICIl
ZCIsIHllYXIpOwotCi0gICAgICAgIHN0cm5jcHkoeWVhckxvY2F0aW9uLCB5ZWFyU3RyaW5nLCB5
ZWFyTGVuIC0gMSk7Ci0gICAgfQotCi0gICAgLy8gQ29udmVydCBtdWx0aS1ieXRlIHJlc3VsdCB0
byBVTklDT0RFLgotICAgIC8vIElmIF9fU1REQ19JU09fMTA2NDZfXyBpcyBkZWZpbmVkLCB3aWRl
IGNoYXJhY3RlciByZXByZXNlbnRzCi0gICAgLy8gVVRGLTE2IChvciBVVEYtMzIpIGNvZGUgcG9p
bnQuIEluIG1vc3QgbW9kZXJuIFVuaXggbGlrZSBzeXN0ZW0KLSAgICAvLyAoZS5nLiBMaW51eCB3
aXRoIGdsaWJjIDIuMiBhbmQgYWJvdmUpIHRoZSBtYWNybyBpcyBkZWZpbmVkLAotICAgIC8vIGFu
ZCB3aWRlIGNoYXJhY3RlciByZXByZXNlbnRzIFVURi0zMiBjb2RlIHBvaW50LgotICAgIC8vIEhl
cmUgd2Ugc3RhdGljX2Nhc3QgcG90ZW50aWFsIFVURi0zMiB0byBVVEYtMTYsIGl0IHNob3VsZCBi
ZQotICAgIC8vIHNhZmUgYmVjYXVzZSBkYXRlIGFuZCAob3IpIHRpbWUgcmVsYXRlZCBjaGFyYWN0
ZXJzIGluIGRpZmZlcmVudCBsYW5ndWFnZXMKLSAgICAvLyBzaG91bGQgYmUgaW4gVU5JQ09ERSBC
TVAuIElmIG1ic3Rvd2NzIGZhaWxzLCB3ZSBqdXN0IGZhbGwKLSAgICAvLyBiYWNrIG9uIHVzaW5n
IG11bHRpLWJ5dGUgcmVzdWx0IGFzLWlzLgotI2lmZGVmIF9fU1REQ19JU09fMTA2NDZfXwotICAg
IFVDaGFyIGJ1ZmZlcltidWZzaXplXTsKLSAgICB3Y2hhcl90IHRlbXBidWZmZXJbYnVmc2l6ZV07
Ci0gICAgc2l6ZV90IGxlbmd0aCA9IG1ic3Rvd2NzKHRlbXBidWZmZXIsIHRpbWVidWZmZXIsIGJ1
ZnNpemUgLSAxKTsKLSAgICBpZiAobGVuZ3RoICE9IHN0YXRpY19jYXN0PHNpemVfdD4oLTEpKSB7
Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAgICAg
ICBidWZmZXJbaV0gPSBzdGF0aWNfY2FzdDxVQ2hhcj4odGVtcGJ1ZmZlcltpXSk7Ci0gICAgICAg
IHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcodm0sIFN0cmluZyhidWZmZXIsIGxlbmd0aCkpOwot
ICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgdGltZWJ1
ZmZlcik7Ci0jZW5kaWYgLy8gT1MoV0lORE9XUykKLX0KLQotc3RhdGljIEpTQ2VsbCogZm9ybWF0
TG9jYWxlRGF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgRGF0ZUluc3RhbmNlKiBkYXRlT2JqZWN0LCBkb3VibGUsIExvY2FsZURhdGVUaW1lRm9y
bWF0IGZvcm1hdCkKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgSW50
ZWdyaXR5OjphdWRpdFN0cnVjdHVyZUlEKHZtLCBkYXRlT2JqZWN0LT5zdHJ1Y3R1cmVJRCgpKTsK
LQotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGVP
YmplY3QtPmdyZWdvcmlhbkRhdGVUaW1lKHZtLmRhdGVDYWNoZSk7Ci0gICAgaWYgKCFncmVnb3Jp
YW5EYXRlVGltZSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIkludmFs
aWQgRGF0ZSJfcyk7Ci0gICAgcmV0dXJuIGZvcm1hdExvY2FsZURhdGUoZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUsICpncmVnb3JpYW5EYXRlVGltZSwgZm9ybWF0KTsKLX0KLQotI2VuZGlmIC8vIE9T
KERBUldJTikgJiYgVVNFKENGKQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZm9ybWF0ZURhdGVJ
bnN0YW5jZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgRGF0ZVRpbWVGb3JtYXQgZm9ybWF0LCBib29sIGFzVVRDVmFyaWFudCkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC00MjcsMTcgKzIxMSwxNyBAQCBzdGF0aWMgYm9v
bCBmaWxsU3RydWN0dXJlc1VzaW5nRGF0ZUFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKgogICAgIHJldHVybiBvazsKIH0KIAotY29uc3QgQ2xhc3NJbmZvIERhdGVQ
cm90b3R5cGU6OnNfaW5mbyA9IHsiT2JqZWN0IiwgJkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywg
JmRhdGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShEYXRlUHJvdG90eXBlKX07
Citjb25zdCBDbGFzc0luZm8gRGF0ZVByb3RvdHlwZTo6c19pbmZvID0geyJPYmplY3QiLCAmSlNO
b25GaW5hbE9iamVjdDo6c19pbmZvLCAmZGF0ZVByb3RvdHlwZVRhYmxlLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKERhdGVQcm90b3R5cGUpfTsKIAogLyogU291cmNlIGZvciBEYXRlUHJv
dG90eXBlLmx1dC5oCi1AYmVnaW4gZGF0ZVRhYmxlCitAYmVnaW4gZGF0ZVByb3RvdHlwZVRhYmxl
CiAgIHRvU3RyaW5nICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jVG9TdHJpbmcgICAgICAgICAg
ICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAogICB0b0lTT1N0cmluZyAgICAgICAgICAg
ZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAg
ICAgIDAKICAgdG9EYXRlU3RyaW5nICAgICAgICAgIGRhdGVQcm90b0Z1bmNUb0RhdGVTdHJpbmcg
ICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCiAgIHRvVGltZVN0cmluZyAgICAg
ICAgICBkYXRlUHJvdG9GdW5jVG9UaW1lU3RyaW5nICAgICAgICAgICAgRG9udEVudW18RnVuY3Rp
b24gICAgICAgMAotICB0b0xvY2FsZVN0cmluZyAgICAgICAgZGF0ZVByb3RvRnVuY1RvTG9jYWxl
U3RyaW5nICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgdG9Mb2NhbGVEYXRl
U3RyaW5nICAgIGRhdGVQcm90b0Z1bmNUb0xvY2FsZURhdGVTdHJpbmcgICAgICBEb250RW51bXxG
dW5jdGlvbiAgICAgICAwCi0gIHRvTG9jYWxlVGltZVN0cmluZyAgICBkYXRlUHJvdG9GdW5jVG9M
b2NhbGVUaW1lU3RyaW5nICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAorICB0b0xvY2Fs
ZVN0cmluZyAgICAgICAgSlNCdWlsdGluICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRF
bnVtfEZ1bmN0aW9uICAgICAgIDAKKyAgdG9Mb2NhbGVEYXRlU3RyaW5nICAgIEpTQnVpbHRpbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCisgIHRv
TG9jYWxlVGltZVN0cmluZyAgICBKU0J1aWx0aW4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
RG9udEVudW18RnVuY3Rpb24gICAgICAgMAogICB2YWx1ZU9mICAgICAgICAgICAgICAgZGF0ZVBy
b3RvRnVuY0dldFRpbWUgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAg
IERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljCiAgIGdldFRpbWUgICAgICAgICAgICAgICBk
YXRlUHJvdG9GdW5jR2V0VGltZSAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAg
ICAgMCAgRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWMKICAgZ2V0RnVsbFllYXIgICAgICAg
ICAgIGRhdGVQcm90b0Z1bmNHZXRGdWxsWWVhciAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlv
biAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0RnVsbFllYXJJbnRyaW5zaWMKQEAgLTQ5NSwxMCAr
Mjc5LDYgQEAgdm9pZCBEYXRlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHRvVVRDU3RyaW5nTmFtZSwgdG9VVENTdHJpbmdGdW5jdGlvbiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIHB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAidG9HTVRTdHJpbmci
X3MpLCB0b1VUQ1N0cmluZ0Z1bmN0aW9uLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oInRvTG9jYWxlU3RyaW5nIiwgZGF0ZVByb3RvdHlwZVRvTG9jYWxlU3RyaW5n
Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
dG9Mb2NhbGVEYXRlU3RyaW5nIiwgZGF0ZVByb3RvdHlwZVRvTG9jYWxlRGF0ZVN0cmluZ0NvZGVH
ZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRvTG9j
YWxlVGltZVN0cmluZyIsIGRhdGVQcm90b3R5cGVUb0xvY2FsZVRpbWVTdHJpbmdDb2RlR2VuZXJh
dG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7
Ci0KICAgICBKU0Z1bmN0aW9uKiB0b1ByaW1pdGl2ZUZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIDEsICJbU3ltYm9sLnRvUHJpbWl0aXZlXSJfcywgZGF0ZVBy
b3RvRnVuY1RvUHJpbWl0aXZlU3ltYm9sLCBOb0ludHJpbnNpYyk7CiAgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvUHJpbWl0aXZlU3ltYm9sLCB0
b1ByaW1pdGl2ZUZ1bmN0aW9uLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogCkBAIC01NjgsNDIgKzM0OCw2IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvVGltZVN0cmluZyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIGZvcm1hdGVEYXRlSW5zdGFuY2UoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsIERhdGVUaW1lRm9ybWF0VGltZSwgYXNVVENWYXJpYW50KTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1Zh
bHVlKCk7Ci0gICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5j
ZSo+KHZtLCB0aGlzVmFsdWUpOwotICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQotICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKLQotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZm9ybWF0TG9jYWxlRGF0ZShnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgdGhpc0RhdGVPYmosIHRoaXNEYXRlT2JqLT5pbnRlcm5hbE51bWJlcigpLCBMb2Nh
bGVEYXRlQW5kVGltZSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNUb0xvY2FsZURhdGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCk7Ci0gICAgYXV0byogdGhpc0RhdGVP
YmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOwotICAgIGlm
IChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlKTsKLQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZm9y
bWF0TG9jYWxlRGF0ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgdGhpc0RhdGVPYmosIHRoaXNE
YXRlT2JqLT5pbnRlcm5hbE51bWJlcigpLCBMb2NhbGVEYXRlKSk7Ci19Ci0KLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvTG9jYWxlVGltZVN0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50aGlzVmFsdWUo
KTsKLSAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4o
dm0sIHRoaXNWYWx1ZSk7Ci0gICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCi0gICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwotCi0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShmb3JtYXRMb2NhbGVEYXRlKGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLCB0aGlzRGF0ZU9iaiwgdGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCksIExvY2FsZVRp
bWUpKTsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9Q
cmltaXRpdmVTeW1ib2woSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwo=
</data>
<flag name="review"
          id="417677"
          type_id="1"
          status="+"
          setter="ross.kirsling"
    />
          </attachment>
      

    </bug>

</bugzilla>