<?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>17788</bug_id>
          
          <creation_ts>2008-03-11 16:50:28 -0700</creation_ts>
          <short_desc>CookieJarWin must be split</short_desc>
          <delta_ts>2008-03-11 17:34:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>73409</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2008-03-11 16:50:28 -0700</bug_when>
    <thetext>In a land where #if/#endif macros are frowned upon, the CookieJarWin.cpp must surely be purged from our archive as EVERY SINGLE METHOD is conditionalized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73411</commentid>
    <comment_count>1</comment_count>
      <attachid>19688</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2008-03-11 17:09:18 -0700</bug_when>
    <thetext>Created attachment 19688
Split the cookies

Split the cookie jar into:
* CookieJarCFNetWin.cpp:  CFNetwork-specific cookie handling.
* CookieJarWin.cpp:  INet-ish cookie handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73412</commentid>
    <comment_count>2</comment_count>
      <attachid>19688</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-11 17:12:41 -0700</bug_when>
    <thetext>Comment on attachment 19688
Split the cookies

r=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73419</commentid>
    <comment_count>3</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2008-03-11 17:34:51 -0700</bug_when>
    <thetext>Landed in r30974.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19688</attachid>
            <date>2008-03-11 17:09:18 -0700</date>
            <delta_ts>2008-03-11 17:12:41 -0700</delta_ts>
            <desc>Split the cookies</desc>
            <filename>CookieJarSplit.patch</filename>
            <type>text/plain</type>
            <size>16044</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMDk3MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDgtMDMtMTEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBnbWFp
bC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3BsaXQgQ29va2llSmFyV2luLmNwcCBpbnRvIENGTmV0IGFuZCBub24tQ0ZOZXQgdmVyc2lvbnMg
dG8KKyAgICAgICAgcmVkdWNlIHRoZSBtYXNzaXZlIGFtb3VudCBvZiBjb25kaXRpb25hbGl6YXRp
b24gaW4gdGhlIGZpbGUuCisgICAgICAgIChzZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc3ODgpCisKKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERF
RCBPUiBDSEFOR0VECisKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9Db29raWVKYXJDRk5ldFdpbi5jcHA6IENv
cGllZCBmcm9tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vQ29va2llSmFyV2luLmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OnNldENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2ll
cyk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRW5hYmxlZCk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay93aW4vQ29va2llSmFyV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldENv
b2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpj
b29raWVzRW5hYmxlZCk6CisKIDIwMDgtMDMtMTEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1pdHouCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDMwOTczKQorKysgV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IndpbmRvd3MtMTI1MSI/Pg0KKzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQog
CVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KIAlWZXJzaW9uPSI4LjAwIg0KQEAgLTU0NTEsNyAr
NTQ1MSw3IEBACiAJCQkJCU5hbWU9IndpbiINCiAJCQkJCT4NCiAJCQkJCTxGaWxlDQotCQkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpblxDb29raWVKYXJXaW4uY3BwIg0K
KwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1x3aW5cQ29va2llSmFyQ0ZO
ZXRXaW4uY3BwIg0KIAkJCQkJCT4NCiAJCQkJCTwvRmlsZT4NCiAJCQkJPC9GaWx0ZXI+DQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Db29raWVKYXJDRk5ldFdpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Db29raWVKYXJDRk5ldFdp
bi5jcHAJKHJldmlzaW9uIDMwOTczKQkoZnJvbSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2lu
L0Nvb2tpZUphcldpbi5jcHA6MzA5NzMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2lu
L0Nvb2tpZUphckNGTmV0V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb29r
aWVKYXIuaCIKKworI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKyNp
bmNsdWRlIDx3aW5kb3dzLmg+CisjaWYgVVNFKENGTkVUV09SSykKKyNpbmNsdWRlIDxDb3JlRm91
bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgorI2luY2x1ZGUgPENGTmV0d29yay9DRkhUVFBDb29r
aWVzUHJpdi5oPgorI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KKyNlbHNlCisjaW5jbHVkZSA8V2luaW5ldC5oPgorI2VuZGlmCisKKy8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBiZSBicm9rZW4gdXAgaW50byBDb29raWVKYXJDRk5ldC5jcHAgYW5k
IENvb2tpZUphcldpbi5jcHAgb3IgQ29va2llSmFyV2luSU5ldC5jcHAuCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworI2lmIFVTRShDRk5FVFdPUkspCisgICAgc3RhdGljIGNvbnN0IENGU3RyaW5n
UmVmIHNfc2V0Q29va2llS2V5Q0YgPSBDRlNUUigiU2V0LUNvb2tpZSIpOworICAgIHN0YXRpYyBj
b25zdCBDRlN0cmluZ1JlZiBzX2Nvb2tpZUNGID0gQ0ZTVFIoIkNvb2tpZSIpOworI2VuZGlmCisK
Kwordm9pZCBzZXRDb29raWVzKERvY3VtZW50KiAvKmRvY3VtZW50Ki8sIGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgS1VSTCYgcG9saWN5VVJMLCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworI2lmIFVT
RShDRk5FVFdPUkspCisgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzU2MzI4ODM+IENGSFRUUENvb2tp
ZVN0b3JhZ2UgaGFwcGlseSBzdG9yZXMgYW4gZW1wdHkgY29va2llLCB3aGljaCB3b3VsZCBiZSBz
ZW50IGFzICJDb29raWU6ID0iLgorICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgZGVmYXVsdENvb2tpZVN0b3JhZ2Ug
PSB3a0dldERlZmF1bHRIVFRQQ29va2llU3RvcmFnZSgpOworICAgIGlmICghZGVmYXVsdENvb2tp
ZVN0b3JhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFJldGFpblB0cjxDRlVSTFJlZj4gdXJs
Q0YoQWRvcHRDRiwgdXJsLmNyZWF0ZUNGVVJMKCkpOworICAgIFJldGFpblB0cjxDRlVSTFJlZj4g
cG9saWN5VVJMQ0YoQWRvcHRDRiwgcG9saWN5VVJMLmNyZWF0ZUNGVVJMKCkpOworCisgICAgLy8g
PGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUzMT4sIDxy
ZGFyOi8vNDQwOTAzND4KKyAgICAvLyBjb29raWVzV2l0aFJlc3BvbnNlSGVhZGVyRmllbGRzIGRv
ZXNuJ3QgcGFyc2UgY29va2llcyB3aXRob3V0IGEgdmFsdWUKKyAgICBTdHJpbmcgY29va2llU3Ry
aW5nID0gdmFsdWUuY29udGFpbnMoJz0nKSA/IHZhbHVlIDogdmFsdWUgKyAiPSI7CisKKyAgICBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNvb2tpZVN0cmluZ0NGKEFkb3B0Q0YsIGNvb2tpZVN0cmlu
Zy5jcmVhdGVDRlN0cmluZygpKTsKKyAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBoZWFk
ZXJGaWVsZHNDRihBZG9wdENGLCBDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgKGNvbnN0IHZvaWQqKikmc19zZXRDb29raWVLZXlDRiwgCisgICAgICAgIChjb25zdCB2b2lk
KiopJmNvb2tpZVN0cmluZ0NGLCAxLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZr
Q0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisKKyAgICBSZXRhaW5QdHI8Q0ZBcnJh
eVJlZj4gY29va2llc0NGKEFkb3B0Q0YsIENGSFRUUENvb2tpZUNyZWF0ZVdpdGhSZXNwb25zZUhl
YWRlckZpZWxkcyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LAorICAgICAgICBoZWFkZXJGaWVsZHNDRi5n
ZXQoKSwgdXJsQ0YuZ2V0KCkpKTsKKworICAgIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRDb29raWVz
KGRlZmF1bHRDb29raWVTdG9yYWdlLCBjb29raWVzQ0YuZ2V0KCksIHVybENGLmdldCgpLCBwb2xp
Y3lVUkxDRi5nZXQoKSk7CisjZWxzZQorICAgIC8vIEZJWE1FOiBEZWFsIHdpdGggdGhlIHBvbGlj
eSBVUkwuCisgICAgU3RyaW5nIHN0ciA9IHVybC5zdHJpbmcoKTsKKyAgICBTdHJpbmcgdmFsID0g
dmFsdWU7CisgICAgSW50ZXJuZXRTZXRDb29raWUoc3RyLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1p
bmF0aW9uKCksIDAsIHZhbC5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpKTsKKyNlbmRp
ZgorfQorCitTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25z
dCBLVVJMJiB1cmwpCit7CisjaWYgVVNFKENGTkVUV09SSykKKyAgICBDRkhUVFBDb29raWVTdG9y
YWdlUmVmIGRlZmF1bHRDb29raWVTdG9yYWdlID0gd2tHZXREZWZhdWx0SFRUUENvb2tpZVN0b3Jh
Z2UoKTsKKyAgICBpZiAoIWRlZmF1bHRDb29raWVTdG9yYWdlKQorICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CisKKyAgICBTdHJpbmcgY29va2llU3RyaW5nOworICAgIFJldGFpblB0cjxDRlVSTFJl
Zj4gdXJsQ0YoQWRvcHRDRiwgdXJsLmNyZWF0ZUNGVVJMKCkpOworCisgICAgYm9vbCBzZWN1cmUg
PSBlcXVhbElnbm9yaW5nQ2FzZSh1cmwucHJvdG9jb2woKSwgImh0dHBzIik7CisKKyAgICBSZXRh
aW5QdHI8Q0ZBcnJheVJlZj4gY29va2llc0NGKEFkb3B0Q0YsIENGSFRUUENvb2tpZVN0b3JhZ2VD
b3B5Q29va2llc0ZvclVSTChkZWZhdWx0Q29va2llU3RvcmFnZSwgdXJsQ0YuZ2V0KCksIHNlY3Vy
ZSkpOworCisgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzU2MzI4ODM+IENGSFRUUENvb2tpZVN0b3Jh
Z2UgaGFwcGlseSBzdG9yZXMgYW4gZW1wdHkgY29va2llLCB3aGljaCB3b3VsZCBiZSBzZW50IGFz
ICJDb29raWU6ID0iLgorICAgIC8vIFdlIGhhdmUgYSB3b3JrYXJvdW5kIGluIHNldENvb2tpZXMo
KSB0byBwcmV2ZW50IHRoYXQsIGJ1dCB3ZSBhbHNvIG5lZWQgdG8gYXZvaWQgc2VuZGluZyBjb29r
aWVzIHRoYXQgd2VyZSBwcmV2aW91c2x5IHN0b3JlZC4KKyAgICBDRkluZGV4IGNvdW50ID0gQ0ZB
cnJheUdldENvdW50KGNvb2tpZXNDRi5nZXQoKSk7CisgICAgUmV0YWluUHRyPENGTXV0YWJsZUFy
cmF5UmVmPiBjb29raWVzRm9yVVJMRmlsdGVyZWRDb3B5KEFkb3B0Q0YsIENGQXJyYXlDcmVhdGVN
dXRhYmxlKDAsIGNvdW50LCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7CisgICAgZm9yIChDRklu
ZGV4IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBDRkhUVFBDb29raWVSZWYgY29v
a2llID0gKENGSFRUUENvb2tpZVJlZilDRkFycmF5R2V0VmFsdWVBdEluZGV4KGNvb2tpZXNDRi5n
ZXQoKSwgaSk7CisgICAgICAgIGlmIChDRlN0cmluZ0dldExlbmd0aChDRkhUVFBDb29raWVHZXRO
YW1lKGNvb2tpZSkpICE9IDApCisgICAgICAgICAgICBDRkFycmF5QXBwZW5kVmFsdWUoY29va2ll
c0ZvclVSTEZpbHRlcmVkQ29weS5nZXQoKSwgY29va2llKTsKKyAgICB9CisgICAgUmV0YWluUHRy
PENGRGljdGlvbmFyeVJlZj4gaGVhZGVyQ0YoQWRvcHRDRiwgQ0ZIVFRQQ29va2llQ29weVJlcXVl
c3RIZWFkZXJGaWVsZHMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29va2llc0ZvclVSTEZpbHRlcmVk
Q29weS5nZXQoKSkpOworCisgICAgcmV0dXJuIChDRlN0cmluZ1JlZilDRkRpY3Rpb25hcnlHZXRW
YWx1ZShoZWFkZXJDRi5nZXQoKSwgc19jb29raWVDRik7CisjZWxzZQorICAgIFN0cmluZyBzdHIg
PSB1cmwuc3RyaW5nKCk7CisKKyAgICBEV09SRCBjb3VudCA9IHN0ci5sZW5ndGgoKSArIDE7Cisg
ICAgSW50ZXJuZXRHZXRDb29raWUoc3RyLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCks
IDAsIDAsICZjb3VudCk7CisgICAgaWYgKGNvdW50IDw9IDEpIC8vIE51bGwgdGVybWluYXRvciBj
b3VudHMgYXMgMS4KKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgVmVjdG9yPFVDaGFy
PiBidWZmZXIoY291bnQpOworICAgIEludGVybmV0R2V0Q29va2llKHN0ci5jaGFyYWN0ZXJzV2l0
aE51bGxUZXJtaW5hdGlvbigpLCAwLCBidWZmZXIuZGF0YSgpLCAmY291bnQpOworICAgIGJ1ZmZl
ci5zaHJpbmsoY291bnQgLSAxKTsgLy8gSWdub3JlIHRoZSBudWxsIHRlcm1pbmF0b3IuCisgICAg
cmV0dXJuIFN0cmluZzo6YWRvcHQoYnVmZmVyKTsKKyNlbmRpZgorfQorCitib29sIGNvb2tpZXNF
bmFibGVkKGNvbnN0IERvY3VtZW50KiAvKmRvY3VtZW50Ki8pCit7CisjaWYgVVNFKENGTkVUV09S
SykKKyAgICBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5IHBvbGljeSA9IENGSFRUUENv
b2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsKKyAgICBp
ZiAoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBkZWZhdWx0Q29va2llU3RvcmFnZSA9IHdrR2V0RGVm
YXVsdEhUVFBDb29raWVTdG9yYWdlKCkpCisgICAgICAgIHBvbGljeSA9IENGSFRUUENvb2tpZVN0
b3JhZ2VHZXRDb29raWVBY2NlcHRQb2xpY3koZGVmYXVsdENvb2tpZVN0b3JhZ2UpOworICAgIHJl
dHVybiBwb2xpY3kgPT0gQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFp
bkRvY3VtZW50RG9tYWluIHx8IHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9s
aWN5QWx3YXlzOworI2Vsc2UKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQorCit9CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL0Nvb2tpZUphckNGTmV0V2luLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL0Nvb2tpZUphckNGTmV0V2lu
LmNwcAkocmV2aXNpb24gMzA5NzMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL0Nv
b2tpZUphckNGTmV0V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsMjcgKzMxLDE3IEBACiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1
ZGUgPHdpbmRvd3MuaD4KLSNpZiBVU0UoQ0ZORVRXT1JLKQogI2luY2x1ZGUgPENvcmVGb3VuZGF0
aW9uL0NvcmVGb3VuZGF0aW9uLmg+CiAjaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGSFRUUENvb2tpZXNQ
cml2Lmg+CiAjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVy
ZmFjZS5oPgotI2Vsc2UKLSNpbmNsdWRlIDxXaW5pbmV0Lmg+Ci0jZW5kaWYKLQotLy8gRklYTUU6
IFRoaXMgc2hvdWxkIGJlIGJyb2tlbiB1cCBpbnRvIENvb2tpZUphckNGTmV0LmNwcCBhbmQgQ29v
a2llSmFyV2luLmNwcCBvciBDb29raWVKYXJXaW5JTmV0LmNwcC4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0jaWYgVVNFKENGTkVUV09SSykKLSAgICBzdGF0aWMgY29uc3QgQ0ZTdHJpbmdSZWYg
c19zZXRDb29raWVLZXlDRiA9IENGU1RSKCJTZXQtQ29va2llIik7Ci0gICAgc3RhdGljIGNvbnN0
IENGU3RyaW5nUmVmIHNfY29va2llQ0YgPSBDRlNUUigiQ29va2llIik7Ci0jZW5kaWYKLQorc3Rh
dGljIGNvbnN0IENGU3RyaW5nUmVmIHNfc2V0Q29va2llS2V5Q0YgPSBDRlNUUigiU2V0LUNvb2tp
ZSIpOworc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIHNfY29va2llQ0YgPSBDRlNUUigiQ29va2ll
Iik7CiAKIHZvaWQgc2V0Q29va2llcyhEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25zdCBLVVJM
JiB1cmwsIGNvbnN0IEtVUkwmIHBvbGljeVVSTCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSNp
ZiBVU0UoQ0ZORVRXT1JLKQogICAgIC8vIDxyZGFyOi8vcHJvYmxlbS81NjMyODgzPiBDRkhUVFBD
b29raWVTdG9yYWdlIGhhcHBpbHkgc3RvcmVzIGFuIGVtcHR5IGNvb2tpZSwgd2hpY2ggd291bGQg
YmUgc2VudCBhcyAiQ29va2llOiA9Ii4KICAgICBpZiAodmFsdWUuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CkBAIC03NSwxNyArNjUsMTAgQEAgdm9pZCBzZXRDb29raWVzKERvY3VtZW50KiAv
KmRvY3VtZW50Ki8sIAogICAgICAgICBoZWFkZXJGaWVsZHNDRi5nZXQoKSwgdXJsQ0YuZ2V0KCkp
KTsKIAogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRDb29raWVzKGRlZmF1bHRDb29raWVTdG9y
YWdlLCBjb29raWVzQ0YuZ2V0KCksIHVybENGLmdldCgpLCBwb2xpY3lVUkxDRi5nZXQoKSk7Ci0j
ZWxzZQotICAgIC8vIEZJWE1FOiBEZWFsIHdpdGggdGhlIHBvbGljeSBVUkwuCi0gICAgU3RyaW5n
IHN0ciA9IHVybC5zdHJpbmcoKTsKLSAgICBTdHJpbmcgdmFsID0gdmFsdWU7Ci0gICAgSW50ZXJu
ZXRTZXRDb29raWUoc3RyLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIDAsIHZhbC5j
aGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpKTsKLSNlbmRpZgogfQogCiBTdHJpbmcgY29v
a2llcyhjb25zdCBEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25zdCBLVVJMJiB1cmwpCiB7Ci0j
aWYgVVNFKENGTkVUV09SSykKICAgICBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGRlZmF1bHRDb29r
aWVTdG9yYWdlID0gd2tHZXREZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2UoKTsKICAgICBpZiAoIWRl
ZmF1bHRDb29raWVTdG9yYWdlKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC0xMDksMzEg
KzkyLDE0IEBAIFN0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50KiAvKmRvY3VtZW4KICAgICBS
ZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBoZWFkZXJDRihBZG9wdENGLCBDRkhUVFBDb29raWVD
b3B5UmVxdWVzdEhlYWRlckZpZWxkcyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb29raWVzRm9yVVJM
RmlsdGVyZWRDb3B5LmdldCgpKSk7CiAKICAgICByZXR1cm4gKENGU3RyaW5nUmVmKUNGRGljdGlv
bmFyeUdldFZhbHVlKGhlYWRlckNGLmdldCgpLCBzX2Nvb2tpZUNGKTsKLSNlbHNlCi0gICAgU3Ry
aW5nIHN0ciA9IHVybC5zdHJpbmcoKTsKLQotICAgIERXT1JEIGNvdW50ID0gc3RyLmxlbmd0aCgp
ICsgMTsKLSAgICBJbnRlcm5ldEdldENvb2tpZShzdHIuY2hhcmFjdGVyc1dpdGhOdWxsVGVybWlu
YXRpb24oKSwgMCwgMCwgJmNvdW50KTsKLSAgICBpZiAoY291bnQgPD0gMSkgLy8gTnVsbCB0ZXJt
aW5hdG9yIGNvdW50cyBhcyAxLgotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICBWZWN0
b3I8VUNoYXI+IGJ1ZmZlcihjb3VudCk7Ci0gICAgSW50ZXJuZXRHZXRDb29raWUoc3RyLmNoYXJh
Y3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIDAsIGJ1ZmZlci5kYXRhKCksICZjb3VudCk7Ci0g
ICAgYnVmZmVyLnNocmluayhjb3VudCAtIDEpOyAvLyBJZ25vcmUgdGhlIG51bGwgdGVybWluYXRv
ci4KLSAgICByZXR1cm4gU3RyaW5nOjphZG9wdChidWZmZXIpOwotI2VuZGlmCiB9CiAKIGJvb2wg
Y29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQqIC8qZG9jdW1lbnQqLykKIHsKLSNpZiBVU0Uo
Q0ZORVRXT1JLKQogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgcG9saWN5ID0g
Q0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
OwogICAgIGlmIChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGRlZmF1bHRDb29raWVTdG9yYWdlID0g
d2tHZXREZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2UoKSkKICAgICAgICAgcG9saWN5ID0gQ0ZIVFRQ
Q29va2llU3RvcmFnZUdldENvb2tpZUFjY2VwdFBvbGljeShkZWZhdWx0Q29va2llU3RvcmFnZSk7
CiAgICAgcmV0dXJuIHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5T25s
eUZyb21NYWluRG9jdW1lbnREb21haW4gfHwgcG9saWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VB
Y2NlcHRQb2xpY3lBbHdheXM7Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiB9CiAK
IH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vQ29va2llSmFyV2luLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL0Nvb2tpZUphcldpbi5j
cHAJKHJldmlzaW9uIDMwOTczKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Db29r
aWVKYXJXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw4NSArMzEsMjEgQEAKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSA8d2lu
ZG93cy5oPgotI2lmIFVTRShDRk5FVFdPUkspCi0jaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29y
ZUZvdW5kYXRpb24uaD4KLSNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZIVFRQQ29va2llc1ByaXYuaD4K
LSNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
Ci0jZWxzZQogI2luY2x1ZGUgPFdpbmluZXQuaD4KLSNlbmRpZgotCi0vLyBGSVhNRTogVGhpcyBz
aG91bGQgYmUgYnJva2VuIHVwIGludG8gQ29va2llSmFyQ0ZOZXQuY3BwIGFuZCBDb29raWVKYXJX
aW4uY3BwIG9yIENvb2tpZUphcldpbklOZXQuY3BwLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LSNpZiBVU0UoQ0ZORVRXT1JLKQotICAgIHN0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiBzX3NldENv
b2tpZUtleUNGID0gQ0ZTVFIoIlNldC1Db29raWUiKTsKLSAgICBzdGF0aWMgY29uc3QgQ0ZTdHJp
bmdSZWYgc19jb29raWVDRiA9IENGU1RSKCJDb29raWUiKTsKLSNlbmRpZgotCiAKIHZvaWQgc2V0
Q29va2llcyhEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtV
UkwmIHBvbGljeVVSTCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSNpZiBVU0UoQ0ZORVRXT1JL
KQotICAgIC8vIDxyZGFyOi8vcHJvYmxlbS81NjMyODgzPiBDRkhUVFBDb29raWVTdG9yYWdlIGhh
cHBpbHkgc3RvcmVzIGFuIGVtcHR5IGNvb2tpZSwgd2hpY2ggd291bGQgYmUgc2VudCBhcyAiQ29v
a2llOiA9Ii4KLSAgICBpZiAodmFsdWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGRlZmF1bHRDb29raWVTdG9yYWdlID0gd2tHZXREZWZh
dWx0SFRUUENvb2tpZVN0b3JhZ2UoKTsKLSAgICBpZiAoIWRlZmF1bHRDb29raWVTdG9yYWdlKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHVybENGKEFkb3B0Q0Ys
IHVybC5jcmVhdGVDRlVSTCgpKTsKLSAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHBvbGljeVVSTENG
KEFkb3B0Q0YsIHBvbGljeVVSTC5jcmVhdGVDRlVSTCgpKTsKLQotICAgIC8vIDxodHRwOi8vYnVn
emlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTY1MzE+LCA8cmRhcjovLzQ0MDkw
MzQ+Ci0gICAgLy8gY29va2llc1dpdGhSZXNwb25zZUhlYWRlckZpZWxkcyBkb2Vzbid0IHBhcnNl
IGNvb2tpZXMgd2l0aG91dCBhIHZhbHVlCi0gICAgU3RyaW5nIGNvb2tpZVN0cmluZyA9IHZhbHVl
LmNvbnRhaW5zKCc9JykgPyB2YWx1ZSA6IHZhbHVlICsgIj0iOwotCi0gICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBjb29raWVTdHJpbmdDRihBZG9wdENGLCBjb29raWVTdHJpbmcuY3JlYXRlQ0ZT
dHJpbmcoKSk7Ci0gICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gaGVhZGVyRmllbGRzQ0Yo
QWRvcHRDRiwgQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIChjb25zdCB2
b2lkKiopJnNfc2V0Q29va2llS2V5Q0YsIAotICAgICAgICAoY29uc3Qgdm9pZCoqKSZjb29raWVT
dHJpbmdDRiwgMSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rp
b25hcnlWYWx1ZUNhbGxCYWNrcykpOwotCi0gICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGNvb2tp
ZXNDRihBZG9wdENGLCBDRkhUVFBDb29raWVDcmVhdGVXaXRoUmVzcG9uc2VIZWFkZXJGaWVsZHMo
a0NGQWxsb2NhdG9yRGVmYXVsdCwKLSAgICAgICAgaGVhZGVyRmllbGRzQ0YuZ2V0KCksIHVybENG
LmdldCgpKSk7Ci0KLSAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llcyhkZWZhdWx0Q29v
a2llU3RvcmFnZSwgY29va2llc0NGLmdldCgpLCB1cmxDRi5nZXQoKSwgcG9saWN5VVJMQ0YuZ2V0
KCkpOwotI2Vsc2UKICAgICAvLyBGSVhNRTogRGVhbCB3aXRoIHRoZSBwb2xpY3kgVVJMLgogICAg
IFN0cmluZyBzdHIgPSB1cmwuc3RyaW5nKCk7CiAgICAgU3RyaW5nIHZhbCA9IHZhbHVlOwogICAg
IEludGVybmV0U2V0Q29va2llKHN0ci5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLCAw
LCB2YWwuY2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24oKSk7Ci0jZW5kaWYKIH0KIAogU3Ry
aW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIC8qZG9jdW1lbnQqLywgY29uc3QgS1VSTCYgdXJs
KQogewotI2lmIFVTRShDRk5FVFdPUkspCi0gICAgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBkZWZh
dWx0Q29va2llU3RvcmFnZSA9IHdrR2V0RGVmYXVsdEhUVFBDb29raWVTdG9yYWdlKCk7Ci0gICAg
aWYgKCFkZWZhdWx0Q29va2llU3RvcmFnZSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0g
ICAgU3RyaW5nIGNvb2tpZVN0cmluZzsKLSAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHVybENGKEFk
b3B0Q0YsIHVybC5jcmVhdGVDRlVSTCgpKTsKLQotICAgIGJvb2wgc2VjdXJlID0gZXF1YWxJZ25v
cmluZ0Nhc2UodXJsLnByb3RvY29sKCksICJodHRwcyIpOwotCi0gICAgUmV0YWluUHRyPENGQXJy
YXlSZWY+IGNvb2tpZXNDRihBZG9wdENGLCBDRkhUVFBDb29raWVTdG9yYWdlQ29weUNvb2tpZXNG
b3JVUkwoZGVmYXVsdENvb2tpZVN0b3JhZ2UsIHVybENGLmdldCgpLCBzZWN1cmUpKTsKLQotICAg
IC8vIDxyZGFyOi8vcHJvYmxlbS81NjMyODgzPiBDRkhUVFBDb29raWVTdG9yYWdlIGhhcHBpbHkg
c3RvcmVzIGFuIGVtcHR5IGNvb2tpZSwgd2hpY2ggd291bGQgYmUgc2VudCBhcyAiQ29va2llOiA9
Ii4KLSAgICAvLyBXZSBoYXZlIGEgd29ya2Fyb3VuZCBpbiBzZXRDb29raWVzKCkgdG8gcHJldmVu
dCB0aGF0LCBidXQgd2UgYWxzbyBuZWVkIHRvIGF2b2lkIHNlbmRpbmcgY29va2llcyB0aGF0IHdl
cmUgcHJldmlvdXNseSBzdG9yZWQuCi0gICAgQ0ZJbmRleCBjb3VudCA9IENGQXJyYXlHZXRDb3Vu
dChjb29raWVzQ0YuZ2V0KCkpOwotICAgIFJldGFpblB0cjxDRk11dGFibGVBcnJheVJlZj4gY29v
a2llc0ZvclVSTEZpbHRlcmVkQ29weShBZG9wdENGLCBDRkFycmF5Q3JlYXRlTXV0YWJsZSgwLCBj
b3VudCwgJmtDRlR5cGVBcnJheUNhbGxCYWNrcykpOwotICAgIGZvciAoQ0ZJbmRleCBpID0gMDsg
aSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAgQ0ZIVFRQQ29va2llUmVmIGNvb2tpZSA9IChDRkhU
VFBDb29raWVSZWYpQ0ZBcnJheUdldFZhbHVlQXRJbmRleChjb29raWVzQ0YuZ2V0KCksIGkpOwot
ICAgICAgICBpZiAoQ0ZTdHJpbmdHZXRMZW5ndGgoQ0ZIVFRQQ29va2llR2V0TmFtZShjb29raWUp
KSAhPSAwKQotICAgICAgICAgICAgQ0ZBcnJheUFwcGVuZFZhbHVlKGNvb2tpZXNGb3JVUkxGaWx0
ZXJlZENvcHkuZ2V0KCksIGNvb2tpZSk7Ci0gICAgfQotICAgIFJldGFpblB0cjxDRkRpY3Rpb25h
cnlSZWY+IGhlYWRlckNGKEFkb3B0Q0YsIENGSFRUUENvb2tpZUNvcHlSZXF1ZXN0SGVhZGVyRmll
bGRzKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvb2tpZXNGb3JVUkxGaWx0ZXJlZENvcHkuZ2V0KCkp
KTsKLQotICAgIHJldHVybiAoQ0ZTdHJpbmdSZWYpQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoaGVhZGVy
Q0YuZ2V0KCksIHNfY29va2llQ0YpOwotI2Vsc2UKICAgICBTdHJpbmcgc3RyID0gdXJsLnN0cmlu
ZygpOwogCiAgICAgRFdPUkQgY291bnQgPSBzdHIubGVuZ3RoKCkgKyAxOwpAQCAtMTIxLDE5ICs1
NywxMSBAQCBTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCogLypkb2N1bWVuCiAgICAgSW50
ZXJuZXRHZXRDb29raWUoc3RyLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIDAsIGJ1
ZmZlci5kYXRhKCksICZjb3VudCk7CiAgICAgYnVmZmVyLnNocmluayhjb3VudCAtIDEpOyAvLyBJ
Z25vcmUgdGhlIG51bGwgdGVybWluYXRvci4KICAgICByZXR1cm4gU3RyaW5nOjphZG9wdChidWZm
ZXIpOwotI2VuZGlmCiB9CiAKIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQqIC8q
ZG9jdW1lbnQqLykKIHsKLSNpZiBVU0UoQ0ZORVRXT1JLKQotICAgIENGSFRUUENvb2tpZVN0b3Jh
Z2VBY2NlcHRQb2xpY3kgcG9saWN5ID0gQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeU9u
bHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOwotICAgIGlmIChDRkhUVFBDb29raWVTdG9yYWdlUmVm
IGRlZmF1bHRDb29raWVTdG9yYWdlID0gd2tHZXREZWZhdWx0SFRUUENvb2tpZVN0b3JhZ2UoKSkK
LSAgICAgICAgcG9saWN5ID0gQ0ZIVFRQQ29va2llU3RvcmFnZUdldENvb2tpZUFjY2VwdFBvbGlj
eShkZWZhdWx0Q29va2llU3RvcmFnZSk7Ci0gICAgcmV0dXJuIHBvbGljeSA9PSBDRkhUVFBDb29r
aWVTdG9yYWdlQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4gfHwgcG9saWN5
ID09IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lBbHdheXM7Ci0jZWxzZQogICAgIHJl
dHVybiB0cnVlOwotI2VuZGlmCiB9CiAKIH0K
</data>
<flag name="review"
          id="8615"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>