<?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>174613</bug_id>
          
          <creation_ts>2017-07-18 00:28:39 -0700</creation_ts>
          <short_desc>WebDriver: implement cookies commands</short_desc>
          <delta_ts>2017-08-28 04:57: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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>166679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>buildbot</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1329916</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-18 00:28:39 -0700</bug_when>
    <thetext>https://www.w3.org/TR/webdriver/#cookies</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339182</commentid>
    <comment_count>1</comment_count>
      <attachid>318263</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-16 09:11:46 -0700</bug_when>
    <thetext>Created attachment 318263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339185</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-16 09:13:45 -0700</bug_when>
    <thetext>Attachment 318263 did not pass style-queue:


ERROR: Source/WebDriver/Session.h:107:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.h:108:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.h:109:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.h:110:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.h:111:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.cpp:1283:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.cpp:1300:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.cpp:1367:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.cpp:1396:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.cpp:1419:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.h:103:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.h:104:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.h:105:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.h:106:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.h:107:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:1778:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:1824:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:1848:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:1873:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:1898:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 20 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1340177</commentid>
    <comment_count>3</comment_count>
      <attachid>318263</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-18 12:23:37 -0700</bug_when>
    <thetext>Comment on attachment 318263
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342807</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-28 04:53:06 -0700</bug_when>
    <thetext>Committed r221241: &lt;http://trac.webkit.org/changeset/221241&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342809</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-28 04:57:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/34108580&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318263</attachid>
            <date>2017-08-16 09:11:46 -0700</date>
            <delta_ts>2017-08-18 12:23:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-cookies.diff</filename>
            <type>text/plain</type>
            <size>23869</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggYmNmYjA4NGRmNzUuLjIwYWJlODBmZGI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA4LTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBjb29raWVz
IGNvbW1hbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzQ2MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgY29va2llcyBjb21tYW5kcy4KKworICAgICAgICAxNi4gQ29va2llcy4KKyAgICAgICAg
aHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci93ZWJkcml2ZXItc3BlYy5odG1sI2Nvb2tp
ZXMKKworICAgICAgICAqIENvbW1hbmRSZXN1bHQuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpD
b21tYW5kUmVzdWx0OjpodHRwU3RhdHVzQ29kZSBjb25zdCk6IEFkZCBOb1N1Y2hDb29raWUgZXJy
b3IuCisgICAgICAgIChXZWJEcml2ZXI6OkNvbW1hbmRSZXN1bHQ6OmVycm9yU3RyaW5nIGNvbnN0
KTogRGl0dG8uCisgICAgICAgICogQ29tbWFuZFJlc3VsdC5oOgorICAgICAgICAqIFNlc3Npb24u
Y3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpwYXJzZUF1dG9tYXRpb25Db29raWUpOiBQYXJzZSBK
U09OIGNvb2tpZSBvYmplY3QgcmV0dXJuZWQgYnkgYXV0b21hdGlvbiBhbmQgY29udmVydCBpdCB0
byBhIENvb2tpZSBzdHJ1Y3QuCisgICAgICAgIChXZWJEcml2ZXI6OmJ1aWx0QXV0b21hdGlvbkNv
b2tpZSk6IEJ1aWxkIGEgSlNPTiBjb29raWUgb2JqZWN0IGFzIGV4cGVjdGVkIGJ5IGF1dG9tYXRp
b24gZnJvbSBhIENvb2tpZSBzdHJ1Y3QuCisgICAgICAgIChXZWJEcml2ZXI6OnNlcmlhbGl6ZUNv
b2tpZSk6IFNlcmlhbGl6ZSBhIENvb2tpZSBzdHJ1Y3QgaW50byBhIEpTT04gY29va2llIG9iamVj
dCBhY2NvcmRpbmcgdG8gdGhlIFdlYkRyaXZlciBzcGVjLgorICAgICAgICAoV2ViRHJpdmVyOjpT
ZXNzaW9uOjpnZXRBbGxDb29raWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6Z2V0
TmFtZWRDb29raWUpOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjphZGRDb29raWUpOgor
ICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2Vi
RHJpdmVyOjpTZXNzaW9uOjpkZWxldGVBbGxDb29raWVzKToKKyAgICAgICAgKiBTZXNzaW9uLmg6
CisgICAgICAgICogV2ViRHJpdmVyU2VydmljZS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6Oldl
YkRyaXZlclNlcnZpY2U6OmdldEFsbENvb2tpZXMpOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJE
cml2ZXJTZXJ2aWNlOjpnZXROYW1lZENvb2tpZSk6CisgICAgICAgIChXZWJEcml2ZXI6OmRlc2Vy
aWFsaXplQ29va2llKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6YWRk
Q29va2llKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6ZGVsZXRlQ29v
a2llKToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6ZGVsZXRlQWxsQ29v
a2llcyk6CisgICAgICAgICogV2ViRHJpdmVyU2VydmljZS5oOgorCiAyMDE3LTA3LTI4ICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBXZWJEcml2
ZXI6IGZpeCByZXR1cm4gdmFsdWUgb2YgY2xvc2Ugd2luZG93IGNvbW1hbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL0Nv
bW1hbmRSZXN1bHQuY3BwCmluZGV4IGE1M2JhYzk3OTY2Li43ZTQ4NWVlNjQyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJp
dmVyL0NvbW1hbmRSZXN1bHQuY3BwCkBAIC0xMzUsMTEgKzEzNSwxMiBAQCB1bnNpZ25lZCBDb21t
YW5kUmVzdWx0OjpodHRwU3RhdHVzQ29kZSgpIGNvbnN0CiAgICAgY2FzZSBFcnJvckNvZGU6Oklu
dmFsaWRFbGVtZW50U3RhdGU6CiAgICAgY2FzZSBFcnJvckNvZGU6OkludmFsaWRTZWxlY3RvcjoK
ICAgICBjYXNlIEVycm9yQ29kZTo6Tm9TdWNoQWxlcnQ6Ci0gICAgY2FzZSBFcnJvckNvZGU6Ok5v
U3VjaEVsZW1lbnQ6CiAgICAgY2FzZSBFcnJvckNvZGU6Ok5vU3VjaEZyYW1lOgogICAgIGNhc2Ug
RXJyb3JDb2RlOjpOb1N1Y2hXaW5kb3c6CiAgICAgY2FzZSBFcnJvckNvZGU6OlN0YWxlRWxlbWVu
dFJlZmVyZW5jZToKICAgICAgICAgcmV0dXJuIDQwMDsKKyAgICBjYXNlIEVycm9yQ29kZTo6Tm9T
dWNoQ29va2llOgorICAgIGNhc2UgRXJyb3JDb2RlOjpOb1N1Y2hFbGVtZW50OgogICAgIGNhc2Ug
RXJyb3JDb2RlOjpJbnZhbGlkU2Vzc2lvbklEOgogICAgIGNhc2UgRXJyb3JDb2RlOjpVbmtub3du
Q29tbWFuZDoKICAgICAgICAgcmV0dXJuIDQwNDsKQEAgLTE4MSw2ICsxODIsOCBAQCBTdHJpbmcg
Q29tbWFuZFJlc3VsdDo6ZXJyb3JTdHJpbmcoKSBjb25zdAogICAgICAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCJqYXZhc2NyaXB0IGVycm9yIik7CiAgICAgY2FzZSBFcnJvckNvZGU6Ok5vU3VjaEFs
ZXJ0OgogICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJubyBzdWNoIGFsZXJ0Iik7CisgICAg
Y2FzZSBFcnJvckNvZGU6Ok5vU3VjaENvb2tpZToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgibm8gc3VjaCBjb29raWUiKTsKICAgICBjYXNlIEVycm9yQ29kZTo6Tm9TdWNoRWxlbWVudDoK
ICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibm8gc3VjaCBlbGVtZW50Iik7CiAgICAgY2Fz
ZSBFcnJvckNvZGU6Ok5vU3VjaEZyYW1lOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9D
b21tYW5kUmVzdWx0LmggYi9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuaAppbmRleCA3
Zjc4OWU1YTM5ZC4uZjE2MmQ0ZTI4YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvQ29t
bWFuZFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5oCkBAIC00
OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgSW52YWxpZFNlc3Npb25JRCwKICAgICAgICAg
SmF2YXNjcmlwdEVycm9yLAogICAgICAgICBOb1N1Y2hBbGVydCwKKyAgICAgICAgTm9TdWNoQ29v
a2llLAogICAgICAgICBOb1N1Y2hFbGVtZW50LAogICAgICAgICBOb1N1Y2hGcmFtZSwKICAgICAg
ICAgTm9TdWNoV2luZG93LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggMThiZTgwMDkwYzguLmFjYjZi
ZGMwNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTE3MTIsNiArMTcxMiwyMTMgQEAgdm9pZCBT
ZXNzaW9uOjpwZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlvbnMoVmVjdG9yPEtleWJvYXJkSW50ZXJh
Y3Rpb24+JiYgaW50ZXJhY3QKICAgICB9KTsKIH0KIAorc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2Vz
c2lvbjo6Q29va2llPiBwYXJzZUF1dG9tYXRpb25Db29raWUoY29uc3QgSW5zcGVjdG9yT2JqZWN0
JiBjb29raWVPYmplY3QpCit7CisgICAgU2Vzc2lvbjo6Q29va2llIGNvb2tpZTsKKyAgICBpZiAo
IWNvb2tpZU9iamVjdC5nZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJuYW1lIiksIGNvb2tpZS5uYW1l
KSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWNvb2tpZU9iamVjdC5n
ZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJ2YWx1ZSIpLCBjb29raWUudmFsdWUpKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgU3RyaW5nIHBhdGg7CisgICAgaWYgKGNvb2tpZU9i
amVjdC5nZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJwYXRoIiksIHBhdGgpKQorICAgICAgICBjb29r
aWUucGF0aCA9IHBhdGg7CisgICAgU3RyaW5nIGRvbWFpbjsKKyAgICBpZiAoY29va2llT2JqZWN0
LmdldFN0cmluZyhBU0NJSUxpdGVyYWwoImRvbWFpbiIpLCBkb21haW4pKQorICAgICAgICBjb29r
aWUuZG9tYWluID0gZG9tYWluOworICAgIGJvb2wgc2VjdXJlOworICAgIGlmIChjb29raWVPYmpl
Y3QuZ2V0Qm9vbGVhbihBU0NJSUxpdGVyYWwoInNlY3VyZSIpLCBzZWN1cmUpKQorICAgICAgICBj
b29raWUuc2VjdXJlID0gc2VjdXJlOworICAgIGJvb2wgaHR0cE9ubHk7CisgICAgaWYgKGNvb2tp
ZU9iamVjdC5nZXRCb29sZWFuKEFTQ0lJTGl0ZXJhbCgiaHR0cE9ubHkiKSwgaHR0cE9ubHkpKQor
ICAgICAgICBjb29raWUuaHR0cE9ubHkgPSBodHRwT25seTsKKyAgICBib29sIHNlc3Npb24gPSBm
YWxzZTsKKyAgICBjb29raWVPYmplY3QuZ2V0Qm9vbGVhbihBU0NJSUxpdGVyYWwoInNlc3Npb24i
KSwgc2Vzc2lvbik7CisgICAgaWYgKCFzZXNzaW9uKSB7CisgICAgICAgIGRvdWJsZSBleHBpcnk7
CisgICAgICAgIGlmIChjb29raWVPYmplY3QuZ2V0RG91YmxlKEFTQ0lJTGl0ZXJhbCgiZXhwaXJl
cyIpLCBleHBpcnkpKQorICAgICAgICAgICAgY29va2llLmV4cGlyeSA9IGV4cGlyeTsKKyAgICB9
CisKKyAgICByZXR1cm4gY29va2llOworfQorCitzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gYnVpbHRBdXRvbWF0aW9uQ29va2llKGNvbnN0IFNlc3Npb246OkNvb2tpZSYgY29va2llKQor
eworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNvb2tpZU9iamVjdCA9IEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCk7CisgICAgY29va2llT2JqZWN0LT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFs
KCJuYW1lIiksIGNvb2tpZS5uYW1lKTsKKyAgICBjb29raWVPYmplY3QtPnNldFN0cmluZyhBU0NJ
SUxpdGVyYWwoInZhbHVlIiksIGNvb2tpZS52YWx1ZSk7CisgICAgY29va2llT2JqZWN0LT5zZXRT
dHJpbmcoQVNDSUlMaXRlcmFsKCJwYXRoIiksIGNvb2tpZS5wYXRoLnZhbHVlX29yKCIvIikpOwor
ICAgIGNvb2tpZU9iamVjdC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiZG9tYWluIiksIGNvb2tp
ZS5kb21haW4udmFsdWVfb3IoZW1wdHlTdHJpbmcoKSkpOworICAgIGNvb2tpZU9iamVjdC0+c2V0
Qm9vbGVhbihBU0NJSUxpdGVyYWwoInNlY3VyZSIpLCBjb29raWUuc2VjdXJlLnZhbHVlX29yKGZh
bHNlKSk7CisgICAgY29va2llT2JqZWN0LT5zZXRCb29sZWFuKEFTQ0lJTGl0ZXJhbCgiaHR0cE9u
bHkiKSwgY29va2llLmh0dHBPbmx5LnZhbHVlX29yKGZhbHNlKSk7CisgICAgY29va2llT2JqZWN0
LT5zZXRCb29sZWFuKEFTQ0lJTGl0ZXJhbCgic2Vzc2lvbiIpLCAhY29va2llLmV4cGlyeSk7Cisg
ICAgY29va2llT2JqZWN0LT5zZXREb3VibGUoQVNDSUlMaXRlcmFsKCJleHBpcmVzIiksIGNvb2tp
ZS5leHBpcnkudmFsdWVfb3IoMCkpOworICAgIHJldHVybiBjb29raWVPYmplY3Q7Cit9CisKK3N0
YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzZXJpYWxpemVDb29raWUoY29uc3QgU2Vzc2lv
bjo6Q29va2llJiBjb29raWUpCit7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY29va2ll
T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBjb29raWVPYmplY3QtPnNl
dFN0cmluZyhBU0NJSUxpdGVyYWwoIm5hbWUiKSwgY29va2llLm5hbWUpOworICAgIGNvb2tpZU9i
amVjdC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgidmFsdWUiKSwgY29va2llLnZhbHVlKTsKKyAg
ICBpZiAoY29va2llLnBhdGgpCisgICAgICAgIGNvb2tpZU9iamVjdC0+c2V0U3RyaW5nKEFTQ0lJ
TGl0ZXJhbCgicGF0aCIpLCBjb29raWUucGF0aC52YWx1ZSgpKTsKKyAgICBpZiAoY29va2llLmRv
bWFpbikKKyAgICAgICAgY29va2llT2JqZWN0LT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJkb21h
aW4iKSwgY29va2llLmRvbWFpbi52YWx1ZSgpKTsKKyAgICBpZiAoY29va2llLnNlY3VyZSkKKyAg
ICAgICAgY29va2llT2JqZWN0LT5zZXRCb29sZWFuKEFTQ0lJTGl0ZXJhbCgic2VjdXJlIiksIGNv
b2tpZS5zZWN1cmUudmFsdWUoKSk7CisgICAgaWYgKGNvb2tpZS5odHRwT25seSkKKyAgICAgICAg
Y29va2llT2JqZWN0LT5zZXRCb29sZWFuKEFTQ0lJTGl0ZXJhbCgiaHR0cE9ubHkiKSwgY29va2ll
Lmh0dHBPbmx5LnZhbHVlKCkpOworICAgIGlmIChjb29raWUuZXhwaXJ5KQorICAgICAgICBjb29r
aWVPYmplY3QtPnNldEludGVnZXIoQVNDSUlMaXRlcmFsKCJleHBpcnkiKSwgY29va2llLmV4cGly
eS52YWx1ZSgpKTsKKyAgICByZXR1cm4gY29va2llT2JqZWN0OworfQorCit2b2lkIFNlc3Npb246
OmdldEFsbENvb2tpZXMoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQpIHsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6Ok5vU3VjaFdpbmRvdykpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaGFuZGxlVXNlclByb21wdHMoW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAg
ICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHBhcmFtZXRlcnMgPSBJbnNwZWN0b3JPYmpl
Y3Q6OmNyZWF0ZSgpOworICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFs
KCJicm93c2luZ0NvbnRleHRIYW5kbGUiKSwgbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52YWx1
ZSgpKTsKKyAgICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZChBU0NJSUxpdGVyYWwo
ImdldEFsbENvb2tpZXMiKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNw
b25zZU9iamVjdCkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRS
ZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBSZWZQdHI8SW5zcGVj
dG9yQXJyYXk+IGNvb2tpZXNBcnJheTsKKyAgICAgICAgICAgIGlmICghcmVzcG9uc2UucmVzcG9u
c2VPYmplY3QtPmdldEFycmF5KEFTQ0lJTGl0ZXJhbCgiY29va2llcyIpLCBjb29raWVzQXJyYXkp
KSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlVua25vd25FcnJvcikpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JB
cnJheT4gY29va2llcyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKKyAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb29raWVzQXJyYXktPmxlbmd0aCgpOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IGNvb2tpZVZhbHVlID0gY29va2ll
c0FycmF5LT5nZXQoaSk7CisgICAgICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
Y29va2llT2JqZWN0OworICAgICAgICAgICAgICAgIGlmICghY29va2llVmFsdWUtPmFzT2JqZWN0
KGNvb2tpZU9iamVjdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Q29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlVua25vd25FcnJv
cikpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgYXV0byBjb29raWUgPSBwYXJzZUF1dG9tYXRpb25Db29raWUoKmNvb2tp
ZU9iamVjdCk7CisgICAgICAgICAgICAgICAgaWYgKCFjb29raWUpIHsKKyAgICAgICAgICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OlVua25vd25FcnJvcikpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvb2tpZXMtPnB1c2hPYmplY3Qo
c2VyaWFsaXplQ29va2llKGNvb2tpZS52YWx1ZSgpKSk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpzdWNjZXNzKFdURk1vdmUoY29v
a2llcykpKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgU2Vzc2lvbjo6Z2V0TmFt
ZWRDb29raWUoY29uc3QgU3RyaW5nJiBuYW1lLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGdldEFsbENvb2tpZXMoW3RoaXMsIG5h
bWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1h
bmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3Io
KSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+IGNvb2tpZXNBcnJheTsKKyAgICAgICAgcmVzdWx0LnJlc3VsdCgpLT5hc0FycmF5KGNvb2tp
ZXNBcnJheSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb29raWVzQXJyYXkt
Pmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gY29v
a2llVmFsdWUgPSBjb29raWVzQXJyYXktPmdldChpKTsKKyAgICAgICAgICAgIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGNvb2tpZU9iamVjdDsKKyAgICAgICAgICAgIGNvb2tpZVZhbHVlLT5hc09i
amVjdChjb29raWVPYmplY3QpOworICAgICAgICAgICAgU3RyaW5nIGNvb2tpZU5hbWU7CisgICAg
ICAgICAgICBjb29raWVPYmplY3QtPmdldFN0cmluZyhBU0NJSUxpdGVyYWwoIm5hbWUiKSwgY29v
a2llTmFtZSk7CisgICAgICAgICAgICBpZiAoY29va2llTmFtZSA9PSBuYW1lKSB7CisgICAgICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6c3VjY2VzcyhXVEZNb3Zl
KGNvb2tpZU9iamVjdCkpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Ok5vU3VjaENvb2tpZSkpOworICAgIH0pOworfQor
Cit2b2lkIFNlc3Npb246OmFkZENvb2tpZShjb25zdCBDb29raWUmIGNvb2tpZSwgRnVuY3Rpb248
dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAo
IW1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Q29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Ok5vU3VjaFdpbmRv
dykpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaGFuZGxlVXNlclByb21wdHMoW3Ro
aXMsIGNvb2tpZSA9IGJ1aWx0QXV0b21hdGlvbkNvb2tpZShjb29raWUpLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShDb21tYW5kUmVzdWx0JiYgcmVzdWx0
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcGFyYW1ldGVycyA9
IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmlu
ZyhBU0NJSUxpdGVyYWwoImJyb3dzaW5nQ29udGV4dEhhbmRsZSIpLCBtX3RvcGxldmVsQnJvd3Np
bmdDb250ZXh0LnZhbHVlKCkpOworICAgICAgICBwYXJhbWV0ZXJzLT5zZXRPYmplY3QoQVNDSUlM
aXRlcmFsKCJjb29raWUiKSwgV1RGTW92ZShjb29raWUpKTsKKyAgICAgICAgbV9ob3N0LT5zZW5k
Q29tbWFuZFRvQmFja2VuZChBU0NJSUxpdGVyYWwoImFkZFNpbmdsZUNvb2tpZSIpLCBXVEZNb3Zl
KHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6
Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGlmIChyZXNwb25zZS5p
c0Vycm9yKSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OnN1Y2Nlc3MoKSk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2
b2lkIFNlc3Npb246OmRlbGV0ZUNvb2tpZShjb25zdCBTdHJpbmcmIG5hbWUsIEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFt
X3RvcGxldmVsQnJvd3NpbmdDb250ZXh0KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpOb1N1Y2hXaW5kb3cp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGhhbmRsZVVzZXJQcm9tcHRzKFt0aGlz
LCBuYW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShD
b21tYW5kUmVzdWx0JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHJlc3VsdC5pc0Vy
cm9yKCkpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gcGFyYW1ldGVycyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgICAg
IHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImJyb3dzaW5nQ29udGV4dEhhbmRs
ZSIpLCBtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOworICAgICAgICBwYXJhbWV0
ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJjb29raWVOYW1lIiksIG5hbWUpOworICAgICAg
ICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKEFTQ0lJTGl0ZXJhbCgiZGVsZXRlU2luZ2xl
Q29va2llIiksIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgICAgICAg
ICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3Qp
KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6c3VjY2VzcygpKTsKKyAgICAgICAgfSk7
CisgICAgfSk7Cit9CisKK3ZvaWQgU2Vzc2lvbjo6ZGVsZXRlQWxsQ29va2llcyhGdW5jdGlvbjx2
b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICgh
bV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dCkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6Tm9TdWNoV2luZG93
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBoYW5kbGVVc2VyUHJvbXB0cyhbdGhp
cywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQ29tbWFu
ZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigp
KSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IHBhcmFtZXRlcnMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICBwYXJh
bWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJicm93c2luZ0NvbnRleHRIYW5kbGUiKSwg
bV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKKyAgICAgICAgbV9ob3N0LT5zZW5k
Q29tbWFuZFRvQmFja2VuZChBU0NJSUxpdGVyYWwoImRlbGV0ZUFsbENvb2tpZXMiKSwgV1RGTW92
ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6
OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CisgICAgICAgICAgICBpZiAocmVzcG9uc2Uu
aXNFcnJvcikgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpzdWNjZXNzKCkpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKwog
dm9pZCBTZXNzaW9uOjpkaXNtaXNzQWxlcnQoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1fdG9wbGV2ZWxCcm93c2luZ0Nv
bnRleHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5oIGIvU291cmNl
L1dlYkRyaXZlci9TZXNzaW9uLmgKaW5kZXggOGIxODA2MTRiMmQuLjdmOTZmMzk2MGFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViRHJpdmVy
L1Nlc3Npb24uaApAQCAtNTksNiArNTksMTYgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgRXhl
Y3V0ZVNjcmlwdE1vZGUgeyBTeW5jLCBBc3luYyB9OwogICAgIGVudW0gY2xhc3MgVGltZW91dCB7
IFNjcmlwdCwgUGFnZUxvYWQsIEltcGxpY2l0IH07CiAKKyAgICBzdHJ1Y3QgQ29va2llIHsKKyAg
ICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIFN0cmluZyB2YWx1ZTsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxTdHJpbmc+IHBhdGg7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkb21h
aW47CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gc2VjdXJlOworICAgICAgICBzdGQ6Om9w
dGlvbmFsPGJvb2w+IGh0dHBPbmx5OworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBl
eHBpcnk7CisgICAgfTsKKwogICAgIHZvaWQgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlKEZ1
bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZvaWQgY3JlYXRlVG9wTGV2
ZWxCcm93c2luZ0NvbnRleHQoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAg
ICAgdm9pZCBjbG9zZShGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKQEAgLTk0
LDYgKzEwNCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbGVtZW50U2VuZEtleXMoY29uc3QgU3Ry
aW5nJiBlbGVtZW50SUQsIFZlY3RvcjxTdHJpbmc+JiYga2V5cywgRnVuY3Rpb248dm9pZCAoQ29t
bWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBlbGVtZW50U3VibWl0KGNvbnN0IFN0cmluZyYg
ZWxlbWVudElELCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKICAgICB2b2lk
IGV4ZWN1dGVTY3JpcHQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIFJlZlB0cjxJbnNwZWN0b3I6Oklu
c3BlY3RvckFycmF5PiYmIGFyZ3VtZW50cywgRXhlY3V0ZVNjcmlwdE1vZGUsIEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZvaWQgZ2V0QWxsQ29va2llcyhGdW5jdGlv
bjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKKyAgICB2b2lkIGdldE5hbWVkQ29va2llKGNv
bnN0IFN0cmluZyYgbmFtZSwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7Cisg
ICAgdm9pZCBhZGRDb29raWUoY29uc3QgQ29va2llJiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJl
c3VsdCYmKT4mJik7CisgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgU3RyaW5nJiBuYW1lLCBG
dW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKKyAgICB2b2lkIGRlbGV0ZUFsbENv
b2tpZXMoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBkaXNt
aXNzQWxlcnQoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBh
Y2NlcHRBbGVydChGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKICAgICB2b2lk
IGdldEFsZXJ0VGV4dChGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDA0ZjhlM2U0NmY0Li41MmE4ZjhmNGQw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC0xNDcsNiArMTQ3LDEy
IEBAIGNvbnN0IFdlYkRyaXZlclNlcnZpY2U6OkNvbW1hbmQgV2ViRHJpdmVyU2VydmljZTo6c19j
b21tYW5kc1tdID0gewogICAgIHsgSFRUUE1ldGhvZDo6UG9zdCwgIi9zZXNzaW9uLyRzZXNzaW9u
SWQvZXhlY3V0ZS9zeW5jIiwgJldlYkRyaXZlclNlcnZpY2U6OmV4ZWN1dGVTY3JpcHQgfSwKICAg
ICB7IEhUVFBNZXRob2Q6OlBvc3QsICIvc2Vzc2lvbi8kc2Vzc2lvbklkL2V4ZWN1dGUvYXN5bmMi
LCAmV2ViRHJpdmVyU2VydmljZTo6ZXhlY3V0ZUFzeW5jU2NyaXB0IH0sCiAKKyAgICB7IEhUVFBN
ZXRob2Q6OkdldCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvY29va2llIiwgJldlYkRyaXZlclNlcnZp
Y2U6OmdldEFsbENvb2tpZXMgfSwKKyAgICB7IEhUVFBNZXRob2Q6OkdldCwgIi9zZXNzaW9uLyRz
ZXNzaW9uSWQvY29va2llLyRuYW1lIiwgJldlYkRyaXZlclNlcnZpY2U6OmdldE5hbWVkQ29va2ll
IH0sCisgICAgeyBIVFRQTWV0aG9kOjpQb3N0LCAiL3Nlc3Npb24vJHNlc3Npb25JZC9jb29raWUi
LCAmV2ViRHJpdmVyU2VydmljZTo6YWRkQ29va2llIH0sCisgICAgeyBIVFRQTWV0aG9kOjpEZWxl
dGUsICIvc2Vzc2lvbi8kc2Vzc2lvbklkL2Nvb2tpZS8kbmFtZSIsICZXZWJEcml2ZXJTZXJ2aWNl
OjpkZWxldGVDb29raWUgfSwKKyAgICB7IEhUVFBNZXRob2Q6OkRlbGV0ZSwgIi9zZXNzaW9uLyRz
ZXNzaW9uSWQvY29va2llIiwgJldlYkRyaXZlclNlcnZpY2U6OmRlbGV0ZUFsbENvb2tpZXMgfSwK
KwogICAgIHsgSFRUUE1ldGhvZDo6UG9zdCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvYWxlcnQvZGlz
bWlzcyIsICZXZWJEcml2ZXJTZXJ2aWNlOjpkaXNtaXNzQWxlcnQgfSwKICAgICB7IEhUVFBNZXRo
b2Q6OlBvc3QsICIvc2Vzc2lvbi8kc2Vzc2lvbklkL2FsZXJ0L2FjY2VwdCIsICZXZWJEcml2ZXJT
ZXJ2aWNlOjphY2NlcHRBbGVydCB9LAogICAgIHsgSFRUUE1ldGhvZDo6R2V0LCAiL3Nlc3Npb24v
JHNlc3Npb25JZC9hbGVydC90ZXh0IiwgJldlYkRyaXZlclNlcnZpY2U6OmdldEFsZXJ0VGV4dCB9
LApAQCAtMTI3NCw2ICsxMjgwLDE1OSBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmV4ZWN1dGVB
c3luY1NjcmlwdChSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYmIHBhcmFtZXRlcnMsCiAgICAgfSk7
CiB9CiAKK3ZvaWQgV2ViRHJpdmVyU2VydmljZTo6Z2V0QWxsQ29va2llcyhSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgLy8gwqcxNi4xIEdldCBBbGwgQ29va2llcy4K
KyAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRyaXZlci1zcGVjLmh0
bWwjZ2V0LWFsbC1jb29raWVzCisgICAgYXV0byBzZXNzaW9uID0gZmluZFNlc3Npb25PckNvbXBs
ZXRlV2l0aEVycm9yKCpwYXJhbWV0ZXJzLCBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgaWYgKCFz
ZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXNzaW9uLT53YWl0Rm9yTmF2aWdhdGlv
blRvQ29tcGxldGUoW3Nlc3Npb24sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBp
ZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RG
TW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBz
ZXNzaW9uLT5nZXRBbGxDb29raWVzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB9
KTsKK30KKwordm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpnZXROYW1lZENvb2tpZShSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQm
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgLy8gwqcxNi4yIEdldCBOYW1lZCBDb29r
aWUuCisgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci93ZWJkcml2ZXItc3Bl
Yy5odG1sI2dldC1uYW1lZC1jb29raWUKKyAgICBhdXRvIHNlc3Npb24gPSBmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IoKnBhcmFtZXRlcnMsIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBp
ZiAoIXNlc3Npb24pCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBuYW1lOworICAgIGlm
ICghcGFyYW1ldGVycy0+Z2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgibmFtZSIpLCBuYW1lKSkgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBzZXNzaW9uLT53YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUoW3Nlc3Npb24sIG5h
bWUgPSBXVEZNb3ZlKG5hbWUpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShDb21tYW5kUmVzdWx0JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYg
KHJlc3VsdC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUocmVzdWx0KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc2Vz
c2lvbi0+Z2V0TmFtZWRDb29raWUobmFtZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgIH0pOworfQorCitzdGF0aWMgc3RkOjpvcHRpb25hbDxTZXNzaW9uOjpDb29raWU+IGRlc2Vy
aWFsaXplQ29va2llKEluc3BlY3Rvck9iamVjdCYgY29va2llT2JqZWN0KQoreworICAgIFNlc3Np
b246OkNvb2tpZSBjb29raWU7CisgICAgaWYgKCFjb29raWVPYmplY3QuZ2V0U3RyaW5nKEFTQ0lJ
TGl0ZXJhbCgibmFtZSIpLCBjb29raWUubmFtZSkgfHwgY29va2llLm5hbWUuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghY29va2llT2JqZWN0LmdldFN0
cmluZyhBU0NJSUxpdGVyYWwoInZhbHVlIiksIGNvb2tpZS52YWx1ZSkgfHwgY29va2llLnZhbHVl
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIFJlZlB0cjxJ
bnNwZWN0b3JWYWx1ZT4gdmFsdWU7CisgICAgaWYgKGNvb2tpZU9iamVjdC5nZXRWYWx1ZShBU0NJ
SUxpdGVyYWwoInBhdGgiKSwgdmFsdWUpKSB7CisgICAgICAgIFN0cmluZyBwYXRoOworICAgICAg
ICBpZiAoIXZhbHVlLT5hc1N0cmluZyhwYXRoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisgICAgICAgIGNvb2tpZS5wYXRoID0gcGF0aDsKKyAgICB9CisgICAgaWYgKGNvb2tp
ZU9iamVjdC5nZXRWYWx1ZShBU0NJSUxpdGVyYWwoImRvbWFpbiIpLCB2YWx1ZSkpIHsKKyAgICAg
ICAgU3RyaW5nIGRvbWFpbjsKKyAgICAgICAgaWYgKCF2YWx1ZS0+YXNTdHJpbmcoZG9tYWluKSkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGNvb2tpZS5kb21haW4g
PSBkb21haW47CisgICAgfQorICAgIGlmIChjb29raWVPYmplY3QuZ2V0VmFsdWUoQVNDSUlMaXRl
cmFsKCJzZWN1cmUiKSwgdmFsdWUpKSB7CisgICAgICAgIGJvb2wgc2VjdXJlOworICAgICAgICBp
ZiAoIXZhbHVlLT5hc0Jvb2xlYW4oc2VjdXJlKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisgICAgICAgIGNvb2tpZS5zZWN1cmUgPSBzZWN1cmU7CisgICAgfQorICAgIGlmIChj
b29raWVPYmplY3QuZ2V0VmFsdWUoQVNDSUlMaXRlcmFsKCJodHRwT25seSIpLCB2YWx1ZSkpIHsK
KyAgICAgICAgYm9vbCBodHRwT25seTsKKyAgICAgICAgaWYgKCF2YWx1ZS0+YXNCb29sZWFuKGh0
dHBPbmx5KSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGNvb2tp
ZS5odHRwT25seSA9IGh0dHBPbmx5OworICAgIH0KKyAgICBpZiAoY29va2llT2JqZWN0LmdldFZh
bHVlKEFTQ0lJTGl0ZXJhbCgiZXhwaXJ5IiksIHZhbHVlKSkgeworICAgICAgICBpbnQgZXhwaXJ5
OworICAgICAgICBpZiAoIXZhbHVlLT5hc0ludGVnZXIoZXhwaXJ5KSB8fCBleHBpcnkgPCAwIHx8
IGV4cGlyeSA+IElOVF9NQVgpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIGNvb2tpZS5leHBpcnkgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZXhwaXJ5KTsKKyAg
ICB9CisKKyAgICByZXR1cm4gY29va2llOworfQorCit2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmFk
ZENvb2tpZShSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgLy8gwqcx
Ni4zIEFkZCBDb29raWUuCisgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci93
ZWJkcml2ZXItc3BlYy5odG1sI2FkZC1jb29raWUKKyAgICBhdXRvIHNlc3Npb24gPSBmaW5kU2Vz
c2lvbk9yQ29tcGxldGVXaXRoRXJyb3IoKnBhcmFtZXRlcnMsIGNvbXBsZXRpb25IYW5kbGVyKTsK
KyAgICBpZiAoIXNlc3Npb24pCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGNvb2tpZU9iamVjdDsKKyAgICBpZiAoIXBhcmFtZXRlcnMtPmdldE9iamVjdChB
U0NJSUxpdGVyYWwoImNvb2tpZSIpLCBjb29raWVPYmplY3QpKSB7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJ
bnZhbGlkQXJndW1lbnQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gY29v
a2llID0gZGVzZXJpYWxpemVDb29raWUoKmNvb2tpZU9iamVjdCk7CisgICAgaWYgKCFjb29raWUp
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCkpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgc2Vzc2lvbi0+d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlKFtzZXNzaW9u
LCBjb29raWUgPSBXVEZNb3ZlKGNvb2tpZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAg
ICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICBzZXNzaW9uLT5hZGRDb29raWUoY29va2llLnZhbHVlKCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpkZWxldGVD
b29raWUoUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2b2lk
IChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIC8vIMKnMTYu
NCBEZWxldGUgQ29va2llLgorICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIv
d2ViZHJpdmVyLXNwZWMuaHRtbCNkZWxldGUtY29va2llCisgICAgYXV0byBzZXNzaW9uID0gZmlu
ZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKCpwYXJhbWV0ZXJzLCBjb21wbGV0aW9uSGFuZGxl
cik7CisgICAgaWYgKCFzZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgbmFt
ZTsKKyAgICBpZiAoIXBhcmFtZXRlcnMtPmdldFN0cmluZyhBU0NJSUxpdGVyYWwoIm5hbWUiKSwg
bmFtZSkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChD
b21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgc2Vzc2lvbi0+d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlKFtz
ZXNzaW9uLCBuYW1lID0gV1RGTW92ZShuYW1lKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIHNlc3Npb24tPmRlbGV0ZUNvb2tpZShuYW1lLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRHJpdmVyU2VydmljZTo6ZGVsZXRlQWxsQ29v
a2llcyhSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvaWQg
KENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgLy8gwqcxNi41
IERlbGV0ZSBBbGwgQ29va2llcy4KKyAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJp
dmVyL3dlYmRyaXZlci1zcGVjLmh0bWwjZGVsZXRlLWFsbC1jb29raWVzCisgICAgYXV0byBzZXNz
aW9uID0gZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKCpwYXJhbWV0ZXJzLCBjb21wbGV0
aW9uSGFuZGxlcik7CisgICAgaWYgKCFzZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBz
ZXNzaW9uLT53YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUoW3Nlc3Npb24sIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiByZXN1
bHQpIG11dGFibGUgeworICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICBzZXNzaW9uLT5kZWxldGVBbGxDb29raWVzKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJEcml2ZXJTZXJ2aWNl
OjpkaXNtaXNzQWxlcnQoUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5j
dGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IC8vIMKnMTguMSBEaXNtaXNzIEFsZXJ0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9X
ZWJEcml2ZXJTZXJ2aWNlLmggYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuaApp
bmRleCA1Yzc3NWVmZTcwMC4uMmE2NTU5M2ZjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2
ZXIvV2ViRHJpdmVyU2VydmljZS5oCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2Vy
dmljZS5oCkBAIC0xMDAsNiArMTAwLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbGVtZW50U3Vi
bWl0KFJlZlB0cjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4mJiwgRnVuY3Rpb248dm9pZCAo
Q29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBleGVjdXRlU2NyaXB0KFJlZlB0cjxJbnNw
ZWN0b3I6Okluc3BlY3Rvck9iamVjdD4mJiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYm
KT4mJik7CiAgICAgdm9pZCBleGVjdXRlQXN5bmNTY3JpcHQoUmVmUHRyPEluc3BlY3Rvcjo6SW5z
cGVjdG9yT2JqZWN0PiYmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKKyAg
ICB2b2lkIGdldEFsbENvb2tpZXMoUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiYm
LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKKyAgICB2b2lkIGdldE5hbWVk
Q29va2llKFJlZlB0cjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4mJiwgRnVuY3Rpb248dm9p
ZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CisgICAgdm9pZCBhZGRDb29raWUoUmVmUHRyPEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiYmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYp
PiYmKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JP
YmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZvaWQg
ZGVsZXRlQWxsQ29va2llcyhSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYsIEZ1
bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZvaWQgZGlzbWlzc0FsZXJ0
KFJlZlB0cjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4mJiwgRnVuY3Rpb248dm9pZCAoQ29t
bWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBhY2NlcHRBbGVydChSZWZQdHI8SW5zcGVjdG9y
OjpJbnNwZWN0b3JPYmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYp
OwogICAgIHZvaWQgZ2V0QWxlcnRUZXh0KFJlZlB0cjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVj
dD4mJiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7Cg==
</data>
<flag name="review"
          id="338686"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>