<?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>27469</bug_id>
          
          <creation_ts>2009-07-20 16:32:39 -0700</creation_ts>
          <short_desc>Make it harder to misuse try* allocation routines</short_desc>
          <delta_ts>2009-08-13 14:55:41 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133292</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-07-20 16:32:39 -0700</bug_when>
    <thetext>I&apos;m paranoid so i&apos;d like to make it harder to avoid null checking the results of try* allocation functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133312</commentid>
    <comment_count>1</comment_count>
      <attachid>33126</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-07-20 17:38:56 -0700</bug_when>
    <thetext>Created attachment 33126
a patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133313</commentid>
    <comment_count>2</comment_count>
      <attachid>33126</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-07-20 17:39:22 -0700</bug_when>
    <thetext>Comment on attachment 33126
a patch

whoops, bad patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133314</commentid>
    <comment_count>3</comment_count>
      <attachid>33127</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-07-20 17:45:40 -0700</bug_when>
    <thetext>Created attachment 33127
a correct patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133340</commentid>
    <comment_count>4</comment_count>
      <attachid>33127</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2009-07-20 19:42:04 -0700</bug_when>
    <thetext>Comment on attachment 33127
a correct patch

Please rename &apos;Maybe&apos; to &apos;PossiblyNull&apos;, abarth ftw!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133359</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-07-20 21:36:24 -0700</bug_when>
    <thetext>Fix landed in 46153</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139237</commentid>
    <comment_count>6</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-08-11 22:26:53 -0700</bug_when>
    <thetext>This was rolled out ue to windows bustage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140050</commentid>
    <comment_count>7</comment_count>
      <attachid>33127</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-13 14:47:18 -0700</bug_when>
    <thetext>Comment on attachment 33127
a correct patch

Clearing barraclough&apos;s review flag to not confuse us humans.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140060</commentid>
    <comment_count>8</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-08-13 14:55:41 -0700</bug_when>
    <thetext>This was relanded in r47092 with appropriate fixes</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33126</attachid>
            <date>2009-07-20 17:38:56 -0700</date>
            <delta_ts>2009-07-20 17:45:40 -0700</delta_ts>
            <desc>a patch</desc>
            <filename>tryalloc.patch</filename>
            <type>text/plain</type>
            <size>23224</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBiODMxYzkzLi5lZGRlMjg5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMDktMDctMjAgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGl0IGhhcmRlciB0
byBtaXN1c2UgdHJ5KiBhbGxvY2F0aW9uIHJvdXRpbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ2OQorCisgICAgICAgIEp1bXAgdGhyb3VnaCBh
IGZldyBob29wcyB0byBtYWtlIGl0IG11Y2ggaGFyZGVyIHRvIGFjY2lkZW50YWxseQorICAgICAg
ICBtaXNzIG51bGwtY2hlY2tpbmcgb2YgdmFsdWVzIHJldHVybmVkIGJ5IHRoZSB0cnktKiBhbGxv
Y2F0aW9uCisgICAgICAgIHJvdXRpbmVzLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgor
ICAgICAgICAoSlNDOjpKU0FycmF5OjpwdXRTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTQXJy
YXk6OmluY3JlYXNlVmVjdG9yTGVuZ3RoKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0ZvbnRzaXplKToKKyAgICAg
ICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jTGluayk6CisgICAgICAgICogcnVudGltZS9VU3RyaW5n
LmNwcDoKKyAgICAgICAgKEpTQzo6YWxsb2NDaGFycyk6CisgICAgICAgIChKU0M6OnJlYWxsb2ND
aGFycyk6CisgICAgICAgIChKU0M6OmV4cGFuZENhcGFjaXR5KToKKyAgICAgICAgKEpTQzo6VVN0
cmluZzo6UmVwOjpyZXNlcnZlQ2FwYWNpdHkpOgorICAgICAgICAoSlNDOjpVU3RyaW5nOjpleHBh
bmRQcmVDYXBhY2l0eSk6CisgICAgICAgIChKU0M6OmNyZWF0ZVJlcCk6CisgICAgICAgIChKU0M6
OmNvbmNhdGVuYXRlKToKKyAgICAgICAgKEpTQzo6VVN0cmluZzo6c3BsaWNlU3Vic3RyaW5nc1dp
dGhTZXBhcmF0b3JzKToKKyAgICAgICAgKEpTQzo6VVN0cmluZzo6cmVwbGFjZVJhbmdlKToKKyAg
ICAgICAgKEpTQzo6VVN0cmluZzo6YXBwZW5kKToKKyAgICAgICAgKEpTQzo6VVN0cmluZzo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKiBydW50aW1lL1VTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6VVN0
cmluZzo6UmVwOjpjcmVhdGVFbXB0eUJ1ZmZlcik6CisgICAgICAgICogd3RmL0Zhc3RNYWxsb2Mu
Y3BwOgorICAgICAgICAoV1RGOjp0cnlGYXN0WmVyb2VkTWFsbG9jKToKKyAgICAgICAgKFdURjo6
dHJ5RmFzdE1hbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZhc3RDYWxsb2MpOgorICAgICAgICAo
V1RGOjp0cnlGYXN0UmVhbGxvYyk6CisgICAgICAgIChXVEY6OlRDTWFsbG9jU3RhdHM6OnRyeUZh
c3RNYWxsb2MpOgorICAgICAgICAoV1RGOjpUQ01hbGxvY1N0YXRzOjp0cnlGYXN0Q2FsbG9jKToK
KyAgICAgICAgKFdURjo6VENNYWxsb2NTdGF0czo6dHJ5RmFzdFJlYWxsb2MpOgorICAgICAgICAq
IHd0Zi9GYXN0TWFsbG9jLmg6CisgICAgICAgIChXVEY6OlRyeU1hbGxvY1JldHVyblZhbHVlOjpU
cnlNYWxsb2NSZXR1cm5WYWx1ZSk6CisgICAgICAgIChXVEY6OlRyeU1hbGxvY1JldHVyblZhbHVl
Ojp+VHJ5TWFsbG9jUmV0dXJuVmFsdWUpOgorICAgICAgICAoV1RGOjpUcnlNYWxsb2NSZXR1cm5W
YWx1ZTo6b3BlcmF0b3IgTWF5YmU8VD4pOgorICAgICAgICAoV1RGOjpUcnlNYWxsb2NSZXR1cm5W
YWx1ZTo6Z2V0VmFsdWUpOgorICAgICAgICAqIHd0Zi9NYXliZS5oOiBDb3BpZWQgZnJvbSBKYXZh
U2NyaXB0Q29yZS93dGYvQnl0ZUFycmF5LmNwcC4KKyAgICAgICAgKFdURjo6TWF5YmU6Ok1heWJl
KToKKyAgICAgICAgKFdURjo6TWF5YmU6On5NYXliZSk6CisgICAgICAgIChXVEY6Ojo6Z2V0VmFs
dWUpOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDA5LTA3LTIwICBab2x0YW4gSG9y
dmF0aCAgPGh6b2x0YW5AaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9s
aXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWMyZDdhMC4uNDY3MTAzNyAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xOTcsNiArMTk3LDcgQEAKIAkJQTdBMUY3QUMwRjI1MkIzQzAwRTE4NEUyIC8q
IEJ5dGVBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBN0ExRjdBQTBGMjUyQjNDMDBFMTg0RTIgLyogQnl0ZUFycmF5LmNwcCAqLzsgfTsKIAkJ
QTdBMUY3QUQwRjI1MkIzQzAwRTE4NEUyIC8qIEJ5dGVBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBMUY3QUIwRjI1MkIzQzAwRTE4NEUyIC8q
IEJ5dGVBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE3QjQ4RjQ5MEVFODkzNkYwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjQ4REI2
MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAqLzsgfTsKKwkJQTdE
NjQ5QUExMDE1MjI0RTAwOUIyRTFCIC8qIE1heWJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q2NDlBOTEwMTUyMjRFMDA5QjJFMUIgLyogTWF5YmUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0Uy
RUE2QjBGQjQ2MENGMDA2MDFGMDYgLyogTGl0ZXJhbFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdFMkVBNjkwRkI0NjBDRjAwNjAxRjA2IC8q
IExpdGVyYWxQYXJzZXIuaCAqLzsgfTsKIAkJQTdFMkVBNkMwRkI0NjBDRjAwNjAxRjA2IC8qIExp
dGVyYWxQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTdFMkVBNkEwRkI0NjBDRjAwNjAxRjA2IC8qIExpdGVyYWxQYXJzZXIuY3BwICovOyB9
OwogCQlBN0Y5OTM1RjBGRDczMjUxMDBBMEIyRDAgLyogSlNPTk9iamVjdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdGOTkzNUQwRkQ3MzI1MTAwQTBC
MkQwIC8qIEpTT05PYmplY3QuaCAqLzsgfTsKQEAgLTczMyw2ICs3MzQsNyBAQAogCQlBN0ExRjdB
QjBGMjUyQjNDMDBFMTg0RTIgLyogQnl0ZUFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJ5dGVBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0I0
OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBFeGVjdXRhYmxlQWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxl
QWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4ZWN1
dGFibGVBbGxvY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0Q2NDlB
OTEwMTUyMjRFMDA5QjJFMUIgLyogTWF5YmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWF5YmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdFMkVBNjkwRkI0
NjBDRjAwNjAxRjA2IC8qIExpdGVyYWxQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGl0ZXJhbFBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
N0UyRUE2QTBGQjQ2MENGMDA2MDFGMDYgLyogTGl0ZXJhbFBhcnNlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaXRlcmFsUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTdFNDJDMTgwRTM5Mzg4MzAwNjVBNTQ0IC8qIEpTU3RhdGljU2Nv
cGVPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdGF0aWNTY29w
ZU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI0Nyw2ICsxMjQ5LDcg
QEAKIAkJCQk2NTkyQzMxNjA5OEI3REUxMDAwM0Q0RjYgLyogVmVjdG9yLmggKi8sCiAJCQkJNjU5
MkMzMTcwOThCN0RFMTAwMDNENEY2IC8qIFZlY3RvclRyYWl0cy5oICovLAogCQkJCTk2REQ3Mzc4
MEY5REEzMTAwMDI3RkJDQyAvKiBWTVRhZ3MuaCAqLywKKwkJCQlBN0Q2NDlBOTEwMTUyMjRFMDA5
QjJFMUIgLyogTWF5YmUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd3RmOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTE4NjMsNiArMTg2Niw3IEBACiAJCQkJMTQyOURBRTAwRUQyNjQ1
QjAwQjg5NjE5IC8qIFdSRUNHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MjlEQUJG
MEVEMjYzRTcwMEI4OTYxOSAvKiBXUkVDUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5Njg4
Q0IxNjBFRDEyQjRFMDAxRDY0OUYgLyogWDg2QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBN0Q2NDlBQTEwMTUyMjRFMDA5QjJFMUIgLyogTWF5YmUuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggMjk2YWM5ZC4uNmRlMGM2NiAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuY3BwCkBAIC0zNDMsOCArMzQzLDcgQEAgTkVWRVJfSU5MSU5FIHZv
aWQgSlNBcnJheTo6cHV0U2xvd0Nhc2UoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1Zh
bHVlIHZhbHUKICAgICAgICAgfQogICAgIH0KIAotICAgIHN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxB
cnJheVN0b3JhZ2UqPih0cnlGYXN0UmVhbGxvYyhzdG9yYWdlLCBzdG9yYWdlU2l6ZShuZXdWZWN0
b3JMZW5ndGgpKSk7Ci0gICAgaWYgKCFzdG9yYWdlKSB7CisgICAgaWYgKCF0cnlGYXN0UmVhbGxv
YyhzdG9yYWdlLCBzdG9yYWdlU2l6ZShuZXdWZWN0b3JMZW5ndGgpKS5nZXRWYWx1ZShzdG9yYWdl
KSkgewogICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZXhlYyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC00NjIsOCArNDYxLDcgQEAgYm9vbCBKU0FycmF5OjppbmNyZWFzZVZlY3Rv
ckxlbmd0aCh1bnNpZ25lZCBuZXdMZW5ndGgpCiAgICAgQVNTRVJUKG5ld0xlbmd0aCA8PSBNQVhf
U1RPUkFHRV9WRUNUT1JfSU5ERVgpOwogICAgIHVuc2lnbmVkIG5ld1ZlY3Rvckxlbmd0aCA9IGlu
Y3JlYXNlZFZlY3Rvckxlbmd0aChuZXdMZW5ndGgpOwogCi0gICAgc3RvcmFnZSA9IHN0YXRpY19j
YXN0PEFycmF5U3RvcmFnZSo+KHRyeUZhc3RSZWFsbG9jKHN0b3JhZ2UsIHN0b3JhZ2VTaXplKG5l
d1ZlY3Rvckxlbmd0aCkpKTsKLSAgICBpZiAoIXN0b3JhZ2UpCisgICAgaWYgKCF0cnlGYXN0UmVh
bGxvYyhzdG9yYWdlLCBzdG9yYWdlU2l6ZShuZXdWZWN0b3JMZW5ndGgpKS5nZXRWYWx1ZShzdG9y
YWdlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSGVhcDo6aGVhcCh0aGlzKS0+cmVw
b3J0RXh0cmFNZW1vcnlDb3N0KHN0b3JhZ2VTaXplKG5ld1ZlY3Rvckxlbmd0aCkgLSBzdG9yYWdl
U2l6ZSh2ZWN0b3JMZW5ndGgpKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcAppbmRleCBjZWI2YjFlLi5lYjZmNTQ5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC04MjEsOSArODIxLDkgQEAgSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY0ZvbnRzaXplKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
LCBKU1ZhbHUKICAgICBpZiAoYTAuZ2V0VUludDMyKHNtYWxsSW50ZWdlcikgJiYgc21hbGxJbnRl
Z2VyIDw9IDkpIHsKICAgICAgICAgdW5zaWduZWQgc3RyaW5nU2l6ZSA9IHMuc2l6ZSgpOwogICAg
ICAgICB1bnNpZ25lZCBidWZmZXJTaXplID0gMjIgKyBzdHJpbmdTaXplOwotICAgICAgICBVQ2hh
ciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8VUNoYXIqPih0cnlGYXN0TWFsbG9jKGJ1ZmZlclNpemUg
KiBzaXplb2YoVUNoYXIpKSk7Ci0gICAgICAgIGlmICghYnVmZmVyKQotICAgICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIFVDaGFyKiBidWZmZXI7CisgICAgICAgIC8qaWYg
KCEqL3RyeUZhc3RNYWxsb2MoYnVmZmVyU2l6ZSAqIHNpemVvZihVQ2hhcikpLmdldFZhbHVlKGJ1
ZmZlcik7Ly8pCisgICAgICAgICAgICAvL3JldHVybiBqc1VuZGVmaW5lZCgpOwogICAgICAgICBi
dWZmZXJbMF0gPSAnPCc7CiAgICAgICAgIGJ1ZmZlclsxXSA9ICdmJzsKICAgICAgICAgYnVmZmVy
WzJdID0gJ28nOwpAQCAtODY5LDggKzg2OSw4IEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJp
bmdQcm90b0Z1bmNMaW5rKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBKU1ZhbHVlIHRoCiAg
ICAgdW5zaWduZWQgbGlua1RleHRTaXplID0gbGlua1RleHQuc2l6ZSgpOwogICAgIHVuc2lnbmVk
IHN0cmluZ1NpemUgPSBzLnNpemUoKTsKICAgICB1bnNpZ25lZCBidWZmZXJTaXplID0gMTUgKyBs
aW5rVGV4dFNpemUgKyBzdHJpbmdTaXplOwotICAgIFVDaGFyKiBidWZmZXIgPSBzdGF0aWNfY2Fz
dDxVQ2hhcio+KHRyeUZhc3RNYWxsb2MoYnVmZmVyU2l6ZSAqIHNpemVvZihVQ2hhcikpKTsKLSAg
ICBpZiAoIWJ1ZmZlcikKKyAgICBVQ2hhciogYnVmZmVyOworICAgIGlmICghdHJ5RmFzdE1hbGxv
YyhidWZmZXJTaXplICogc2l6ZW9mKFVDaGFyKSkuZ2V0VmFsdWUoYnVmZmVyKSkKICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgYnVmZmVyWzBdID0gJzwnOwogICAgIGJ1ZmZlclsx
XSA9ICdhJzsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVVN0cmluZy5jcHAg
Yi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1VTdHJpbmcuY3BwCmluZGV4IDExODc1MWUuLjIwMDcz
MDMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVVN0cmluZy5jcHAKKysrIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9VU3RyaW5nLmNwcApAQCAtNjgsMjAgKzY4LDIwIEBAIHN0
YXRpYyBjb25zdCBpbnQgbWluTGVuZ3RoVG9TaGFyZSA9IDEwOwogc3RhdGljIGlubGluZSBzaXpl
X3Qgb3ZlcmZsb3dJbmRpY2F0b3IoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVf
dD46Om1heCgpOyB9CiBzdGF0aWMgaW5saW5lIHNpemVfdCBtYXhVQ2hhcnMoKSB7IHJldHVybiBz
dGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpIC8gc2l6ZW9mKFVDaGFyKTsgfQogCi1z
dGF0aWMgaW5saW5lIFVDaGFyKiBhbGxvY0NoYXJzKHNpemVfdCBsZW5ndGgpCitzdGF0aWMgaW5s
aW5lIE1heWJlPFVDaGFyKj4gYWxsb2NDaGFycyhzaXplX3QgbGVuZ3RoKQogewogICAgIEFTU0VS
VChsZW5ndGgpOwogICAgIGlmIChsZW5ndGggPiBtYXhVQ2hhcnMoKSkKICAgICAgICAgcmV0dXJu
IDA7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFVDaGFyKj4odHJ5RmFzdE1hbGxvYyhzaXplb2Yo
VUNoYXIpICogbGVuZ3RoKSk7CisgICAgcmV0dXJuIHRyeUZhc3RNYWxsb2Moc2l6ZW9mKFVDaGFy
KSAqIGxlbmd0aCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgVUNoYXIqIHJlYWxsb2NDaGFycyhVQ2hh
ciogYnVmZmVyLCBzaXplX3QgbGVuZ3RoKQorc3RhdGljIGlubGluZSBNYXliZTxVQ2hhcio+IHJl
YWxsb2NDaGFycyhVQ2hhciogYnVmZmVyLCBzaXplX3QgbGVuZ3RoKQogewogICAgIEFTU0VSVChs
ZW5ndGgpOwogICAgIGlmIChsZW5ndGggPiBtYXhVQ2hhcnMoKSkKICAgICAgICAgcmV0dXJuIDA7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFVDaGFyKj4odHJ5RmFzdFJlYWxsb2MoYnVmZmVyLCBz
aXplb2YoVUNoYXIpICogbGVuZ3RoKSk7CisgICAgcmV0dXJuIHRyeUZhc3RSZWFsbG9jKGJ1ZmZl
ciwgc2l6ZW9mKFVDaGFyKSAqIGxlbmd0aCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBjb3B5
Q2hhcnMoVUNoYXIqIGRlc3RpbmF0aW9uLCBjb25zdCBVQ2hhciogc291cmNlLCB1bnNpZ25lZCBu
dW1DaGFyYWN0ZXJzKQpAQCAtNDgwLDggKzQ4MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBleHBh
bmRDYXBhY2l0eShVU3RyaW5nOjpSZXAqIHJlcCwgaW50IHJlcXVpcmVkTGVuZ3RoKQogICAgIGlm
IChyZXF1aXJlZExlbmd0aCA+IGJhc2UtPmNhcGFjaXR5KSB7CiAgICAgICAgIHNpemVfdCBuZXdD
YXBhY2l0eSA9IGV4cGFuZGVkU2l6ZShyZXF1aXJlZExlbmd0aCwgYmFzZS0+cHJlQ2FwYWNpdHkp
OwogICAgICAgICBVQ2hhciogb2xkQnVmID0gYmFzZS0+YnVmOwotICAgICAgICBiYXNlLT5idWYg
PSByZWFsbG9jQ2hhcnMoYmFzZS0+YnVmLCBuZXdDYXBhY2l0eSk7Ci0gICAgICAgIGlmICghYmFz
ZS0+YnVmKSB7CisgICAgICAgIGlmICghcmVhbGxvY0NoYXJzKGJhc2UtPmJ1ZiwgbmV3Q2FwYWNp
dHkpLmdldFZhbHVlKGJhc2UtPmJ1ZikpIHsKICAgICAgICAgICAgIGJhc2UtPmJ1ZiA9IG9sZEJ1
ZjsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtNTEyLDggKzUxMSw3
IEBAIGJvb2wgVVN0cmluZzo6UmVwOjpyZXNlcnZlQ2FwYWNpdHkoaW50IGNhcGFjaXR5KQogCiAg
ICAgc2l6ZV90IG5ld0NhcGFjaXR5ID0gZXhwYW5kZWRTaXplKGNhcGFjaXR5LCBiYXNlLT5wcmVD
YXBhY2l0eSk7CiAgICAgVUNoYXIqIG9sZEJ1ZiA9IGJhc2UtPmJ1ZjsKLSAgICBiYXNlLT5idWYg
PSByZWFsbG9jQ2hhcnMoYmFzZS0+YnVmLCBuZXdDYXBhY2l0eSk7Ci0gICAgaWYgKCFiYXNlLT5i
dWYpIHsKKyAgICBpZiAoIXJlYWxsb2NDaGFycyhiYXNlLT5idWYsIG5ld0NhcGFjaXR5KS5nZXRW
YWx1ZShiYXNlLT5idWYpKSB7CiAgICAgICAgIGJhc2UtPmJ1ZiA9IG9sZEJ1ZjsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTU0MCw4ICs1MzgsOCBAQCB2b2lkIFVTdHJpbmc6OmV4
cGFuZFByZUNhcGFjaXR5KGludCByZXF1aXJlZFByZUNhcCkKICAgICAgICAgc2l6ZV90IG5ld0Nh
cGFjaXR5ID0gZXhwYW5kZWRTaXplKHJlcXVpcmVkUHJlQ2FwLCBiYXNlLT5jYXBhY2l0eSk7CiAg
ICAgICAgIGludCBkZWx0YSA9IG5ld0NhcGFjaXR5IC0gYmFzZS0+Y2FwYWNpdHkgLSBiYXNlLT5w
cmVDYXBhY2l0eTsKIAotICAgICAgICBVQ2hhciogbmV3QnVmID0gYWxsb2NDaGFycyhuZXdDYXBh
Y2l0eSk7Ci0gICAgICAgIGlmICghbmV3QnVmKSB7CisgICAgICAgIFVDaGFyKiBuZXdCdWY7Cisg
ICAgICAgIGlmICghYWxsb2NDaGFycyhuZXdDYXBhY2l0eSkuZ2V0VmFsdWUobmV3QnVmKSkgewog
ICAgICAgICAgICAgbWFrZU51bGwoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpA
QCAtNTY2LDggKzU2NCw4IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFVTdHJpbmc6OlJlcD4gY3JlYXRl
UmVwKGNvbnN0IGNoYXIqIGMpCiAgICAgICAgIHJldHVybiAmVVN0cmluZzo6UmVwOjplbXB0eSgp
OwogCiAgICAgc2l6ZV90IGxlbmd0aCA9IHN0cmxlbihjKTsKLSAgICBVQ2hhciogZCA9IGFsbG9j
Q2hhcnMobGVuZ3RoKTsKLSAgICBpZiAoIWQpCisgICAgVUNoYXIqIGQ7CisgICAgaWYgKCFhbGxv
Y0NoYXJzKGxlbmd0aCkuZ2V0VmFsdWUoZCkpCiAgICAgICAgIHJldHVybiAmVVN0cmluZzo6UmVw
OjpudWxsKCk7CiAgICAgZWxzZSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVu
Z3RoOyBpKyspCkBAIC02NTYsOCArNjU0LDggQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgUGFzc1Jl
ZlB0cjxVU3RyaW5nOjpSZXA+IGNvbmNhdGVuYXRlKFBhc3NSZWZQdHI8VVN0cmluZzo6UmUKICAg
ICB9IGVsc2UgewogICAgICAgICAvLyBUaGlzIGlzIHNoYXJlZCBpbiBzb21lIHdheSB0aGF0IHBy
ZXZlbnRzIHVzIGZyb20gbW9kaWZ5aW5nIGJhc2UsIHNvIHdlIG11c3QgbWFrZSBhIHdob2xlIG5l
dyBzdHJpbmcuCiAgICAgICAgIHNpemVfdCBuZXdDYXBhY2l0eSA9IGV4cGFuZGVkU2l6ZShsZW5n
dGgsIDApOwotICAgICAgICBVQ2hhciogZCA9IGFsbG9jQ2hhcnMobmV3Q2FwYWNpdHkpOwotICAg
ICAgICBpZiAoIWQpCisgICAgICAgIFVDaGFyKiBkOworICAgICAgICBpZiAoIWFsbG9jQ2hhcnMo
bmV3Q2FwYWNpdHkpLmdldFZhbHVlKGQpKQogICAgICAgICAgICAgcmVwID0gJlVTdHJpbmc6OlJl
cDo6bnVsbCgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGNvcHlDaGFycyhkLCByZXAt
PmRhdGEoKSwgdGhpc1NpemUpOwpAQCAtNzEyLDggKzcxMCw4IEBAIHN0YXRpYyBBTFdBWVNfSU5M
SU5FIFBhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBjb25jYXRlbmF0ZShQYXNzUmVmUHRyPFVTdHJp
bmc6OlJlCiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gVGhpcyBpcyBzaGFyZWQgaW4gc29tZSB3
YXkgdGhhdCBwcmV2ZW50cyB1cyBmcm9tIG1vZGlmeWluZyBiYXNlLCBzbyB3ZSBtdXN0IG1ha2Ug
YSB3aG9sZSBuZXcgc3RyaW5nLgogICAgICAgICBzaXplX3QgbmV3Q2FwYWNpdHkgPSBleHBhbmRl
ZFNpemUobGVuZ3RoLCAwKTsKLSAgICAgICAgVUNoYXIqIGQgPSBhbGxvY0NoYXJzKG5ld0NhcGFj
aXR5KTsKLSAgICAgICAgaWYgKCFkKQorICAgICAgICBVQ2hhciogZDsKKyAgICAgICAgaWYgKCFh
bGxvY0NoYXJzKG5ld0NhcGFjaXR5KS5nZXRWYWx1ZShkKSkKICAgICAgICAgICAgIHJlcCA9ICZV
U3RyaW5nOjpSZXA6Om51bGwoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBjb3B5Q2hh
cnMoZCwgcmVwLT5kYXRhKCksIHRoaXNTaXplKTsKQEAgLTgwMCw4ICs3OTgsOCBAQCBQYXNzUmVm
UHRyPFVTdHJpbmc6OlJlcD4gY29uY2F0ZW5hdGUoVVN0cmluZzo6UmVwKiBhLCBVU3RyaW5nOjpS
ZXAqIGIpCiAKICAgICAvLyBhIGRvZXMgbm90IHF1YWxpZnkgZm9yIGFwcGVuZCwgYW5kIGIgZG9l
cyBub3QgcXVhbGlmeSBmb3IgcHJlcGVuZCwgZ290dGEgbWFrZSBhIHdob2xlIG5ldyBzdHJpbmcK
ICAgICBzaXplX3QgbmV3Q2FwYWNpdHkgPSBleHBhbmRlZFNpemUobGVuZ3RoLCAwKTsKLSAgICBV
Q2hhciogZCA9IGFsbG9jQ2hhcnMobmV3Q2FwYWNpdHkpOwotICAgIGlmICghZCkKKyAgICBVQ2hh
ciogZDsKKyAgICBpZiAoIWFsbG9jQ2hhcnMobmV3Q2FwYWNpdHkpLmdldFZhbHVlKGQpKQogICAg
ICAgICByZXR1cm4gMDsKICAgICBjb3B5Q2hhcnMoZCwgYS0+ZGF0YSgpLCBhU2l6ZSk7CiAgICAg
Y29weUNoYXJzKGQgKyBhU2l6ZSwgYi0+ZGF0YSgpLCBiU2l6ZSk7CkBAIC0xMDc2LDggKzEwNzQs
OCBAQCBVU3RyaW5nIFVTdHJpbmc6OnNwbGljZVN1YnN0cmluZ3NXaXRoU2VwYXJhdG9ycyhjb25z
dCBSYW5nZSogc3Vic3RyaW5nUmFuZ2VzLCBpbgogICAgIGlmICh0b3RhbExlbmd0aCA9PSAwKQog
ICAgICAgICByZXR1cm4gIiI7CiAKLSAgICBVQ2hhciogYnVmZmVyID0gYWxsb2NDaGFycyh0b3Rh
bExlbmd0aCk7Ci0gICAgaWYgKCFidWZmZXIpCisgICAgVUNoYXIqIGJ1ZmZlcjsKKyAgICBpZiAo
IWFsbG9jQ2hhcnModG90YWxMZW5ndGgpLmdldFZhbHVlKGJ1ZmZlcikpCiAgICAgICAgIHJldHVy
biBudWxsKCk7CiAKICAgICBpbnQgbWF4Q291bnQgPSBtYXgocmFuZ2VDb3VudCwgc2VwYXJhdG9y
Q291bnQpOwpAQCAtMTEwNSw4ICsxMTAzLDggQEAgVVN0cmluZyBVU3RyaW5nOjpyZXBsYWNlUmFu
Z2UoaW50IHJhbmdlU3RhcnQsIGludCByYW5nZUxlbmd0aCwgY29uc3QgVVN0cmluZyYgcmUKICAg
ICBpZiAodG90YWxMZW5ndGggPT0gMCkKICAgICAgICAgcmV0dXJuICIiOwogCi0gICAgVUNoYXIq
IGJ1ZmZlciA9IGFsbG9jQ2hhcnModG90YWxMZW5ndGgpOwotICAgIGlmICghYnVmZmVyKQorICAg
IFVDaGFyKiBidWZmZXI7CisgICAgaWYgKCFhbGxvY0NoYXJzKHRvdGFsTGVuZ3RoKS5nZXRWYWx1
ZShidWZmZXIpKQogICAgICAgICByZXR1cm4gbnVsbCgpOwogCiAgICAgY29weUNoYXJzKGJ1ZmZl
ciwgZGF0YSgpLCByYW5nZVN0YXJ0KTsKQEAgLTExNTMsOCArMTE1MSw4IEBAIFVTdHJpbmcmIFVT
dHJpbmc6OmFwcGVuZChjb25zdCBVU3RyaW5nICZ0KQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8v
IFRoaXMgaXMgc2hhcmVkIGluIHNvbWUgd2F5IHRoYXQgcHJldmVudHMgdXMgZnJvbSBtb2RpZnlp
bmcgYmFzZSwgc28gd2UgbXVzdCBtYWtlIGEgd2hvbGUgbmV3IHN0cmluZy4KICAgICAgICAgc2l6
ZV90IG5ld0NhcGFjaXR5ID0gZXhwYW5kZWRTaXplKGxlbmd0aCwgMCk7Ci0gICAgICAgIFVDaGFy
KiBkID0gYWxsb2NDaGFycyhuZXdDYXBhY2l0eSk7Ci0gICAgICAgIGlmICghZCkKKyAgICAgICAg
VUNoYXIqIGQ7CisgICAgICAgIGlmICghYWxsb2NDaGFycyhuZXdDYXBhY2l0eSkuZ2V0VmFsdWUo
ZCkpCiAgICAgICAgICAgICBtYWtlTnVsbCgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
IGNvcHlDaGFycyhkLCBkYXRhKCksIHRoaXNTaXplKTsKQEAgLTEyMDYsOCArMTIwNCw4IEBAIFVT
dHJpbmcmIFVTdHJpbmc6OmFwcGVuZChVQ2hhciBjKQogICAgIGlmIChsZW5ndGggPT0gMCkgewog
ICAgICAgICAvLyB0aGlzIGlzIGVtcHR5IC0gbXVzdCBtYWtlIGEgbmV3IG1fcmVwIGJlY2F1c2Ug
d2UgZG9uJ3Qgd2FudCB0byBwb2xsdXRlIHRoZSBzaGFyZWQgZW1wdHkgb25lIAogICAgICAgICBz
aXplX3QgbmV3Q2FwYWNpdHkgPSBleHBhbmRlZFNpemUoMSwgMCk7Ci0gICAgICAgIFVDaGFyKiBk
ID0gYWxsb2NDaGFycyhuZXdDYXBhY2l0eSk7Ci0gICAgICAgIGlmICghZCkKKyAgICAgICAgVUNo
YXIqIGQ7CisgICAgICAgIGlmICghYWxsb2NDaGFycyhuZXdDYXBhY2l0eSkuZ2V0VmFsdWUoZCkp
CiAgICAgICAgICAgICBtYWtlTnVsbCgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGRb
MF0gPSBjOwpAQCAtMTIzNCw4ICsxMjMyLDggQEAgVVN0cmluZyYgVVN0cmluZzo6YXBwZW5kKFVD
aGFyIGMpCiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gVGhpcyBpcyBzaGFyZWQgaW4gc29tZSB3
YXkgdGhhdCBwcmV2ZW50cyB1cyBmcm9tIG1vZGlmeWluZyBiYXNlLCBzbyB3ZSBtdXN0IG1ha2Ug
YSB3aG9sZSBuZXcgc3RyaW5nLgogICAgICAgICBzaXplX3QgbmV3Q2FwYWNpdHkgPSBleHBhbmRl
ZFNpemUobGVuZ3RoICsgMSwgMCk7Ci0gICAgICAgIFVDaGFyKiBkID0gYWxsb2NDaGFycyhuZXdD
YXBhY2l0eSk7Ci0gICAgICAgIGlmICghZCkKKyAgICAgICAgVUNoYXIqIGQ7CisgICAgICAgIGlm
ICghYWxsb2NDaGFycyhuZXdDYXBhY2l0eSkuZ2V0VmFsdWUoZCkpCiAgICAgICAgICAgICBtYWtl
TnVsbCgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGNvcHlDaGFycyhkLCBkYXRhKCks
IGxlbmd0aCk7CkBAIC0xMzEzLDggKzEzMTEsNyBAQCBVU3RyaW5nJiBVU3RyaW5nOjpvcGVyYXRv
cj0oY29uc3QgY2hhciogYykKICAgICAgICAgbV9yZXAtPl9oYXNoID0gMDsKICAgICAgICAgbV9y
ZXAtPmxlbiA9IGw7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgZCA9IGFsbG9jQ2hhcnMobCk7Ci0g
ICAgICAgIGlmICghZCkgeworICAgICAgICBpZiAoIWFsbG9jQ2hhcnMobCkuZ2V0VmFsdWUoZCkp
IHsKICAgICAgICAgICAgIG1ha2VOdWxsKCk7CiAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVVN0cmluZy5oIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9VU3RyaW5nLmgKaW5kZXggZDAxYjc1ZC4uZWY1NmYxNyAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9VU3RyaW5nLmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9VU3RyaW5nLmgKQEAgLTkxLDcgKzkxLDggQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgLy8gR3VhcmQgYWdhaW5zdCBpbnRl
Z2VyIG92ZXJmbG93CiAgICAgICAgICAgICAgICAgaWYgKHNpemUgPCAoc3RkOjpudW1lcmljX2xp
bWl0czxzaXplX3Q+OjptYXgoKSAvIHNpemVvZihVQ2hhcikpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGlmICh2b2lkICogYnVmID0gdHJ5RmFzdE1hbGxvYyhzaXplICogc2l6ZW9mKFVDaGFyKSkp
CisgICAgICAgICAgICAgICAgICAgIHZvaWQgKiBidWYgPSAwOworICAgICAgICAgICAgICAgICAg
ICBpZiAodHJ5RmFzdE1hbGxvYyhzaXplICogc2l6ZW9mKFVDaGFyKSkuZ2V0VmFsdWUoYnVmKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmFzZVN0cmluZyhz
dGF0aWNfY2FzdDxVQ2hhcio+KGJ1ZiksIDAsIHNpemUpKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCYXNlU3RyaW5nKDAsIDAsIDApKTsK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcCBiL0phdmFTY3Jp
cHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcAppbmRleCBkNjg1MGU2Li4zZmQyZTI1IDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxvYy5jcHAKKysrIGIvSmF2YVNjcmlwdENv
cmUvd3RmL0Zhc3RNYWxsb2MuY3BwCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCB2b2lkKiBmYXN0WmVy
b2VkTWFsbG9jKHNpemVfdCBuKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAgICAgCi12b2lkKiB0
cnlGYXN0WmVyb2VkTWFsbG9jKHNpemVfdCBuKSAKK1RyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZh
c3RaZXJvZWRNYWxsb2Moc2l6ZV90IG4pIAogewotICAgIHZvaWQqIHJlc3VsdCA9IHRyeUZhc3RN
YWxsb2Mobik7Ci0gICAgaWYgKCFyZXN1bHQpCisgICAgdm9pZCogcmVzdWx0OworICAgIGlmICgh
dHJ5RmFzdE1hbGxvYyhuKS5nZXRWYWx1ZShyZXN1bHQpKQogICAgICAgICByZXR1cm4gMDsKICAg
ICBtZW1zZXQocmVzdWx0LCAwLCBuKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTk0LDcgKzE5
NCw3IEBAIHZvaWQqIHRyeUZhc3RaZXJvZWRNYWxsb2Moc2l6ZV90IG4pCiAKIG5hbWVzcGFjZSBX
VEYgewogCi12b2lkKiB0cnlGYXN0TWFsbG9jKHNpemVfdCBuKSAKK1RyeU1hbGxvY1JldHVyblZh
bHVlIHRyeUZhc3RNYWxsb2Moc2l6ZV90IG4pIAogewogICAgIEFTU0VSVCghaXNGb3JiaWRkZW4o
KSk7CiAKQEAgLTIzMCw3ICsyMzAsNyBAQCB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBuKQogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQqIHRyeUZhc3RDYWxsb2Moc2l6ZV90IG5fZWxlbWVu
dHMsIHNpemVfdCBlbGVtZW50X3NpemUpCitUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0Q2Fs
bG9jKHNpemVfdCBuX2VsZW1lbnRzLCBzaXplX3QgZWxlbWVudF9zaXplKQogewogICAgIEFTU0VS
VCghaXNGb3JiaWRkZW4oKSk7CiAKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIGZhc3RGcmVlKHZv
aWQqIHApCiAjZW5kaWYKIH0KIAotdm9pZCogdHJ5RmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90
IG4pCitUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3Qg
bikKIHsKICAgICBBU1NFUlQoIWlzRm9yYmlkZGVuKCkpOwogCkBAIC0zMzg3LDcgKzMzODcsNyBA
QCB2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBzaXplKQogICAgIHJldHVybiBtYWxsb2M8dHJ1ZT4o
c2l6ZSk7CiB9CiAKLXZvaWQqIHRyeUZhc3RNYWxsb2Moc2l6ZV90IHNpemUpCitUcnlNYWxsb2NS
ZXR1cm5WYWx1ZSB0cnlGYXN0TWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIHJldHVybiBtYWxs
b2M8ZmFsc2U+KHNpemUpOwogfQpAQCAtMzQ0OCw3ICszNDQ4LDcgQEAgdm9pZCogZmFzdENhbGxv
YyhzaXplX3Qgbiwgc2l6ZV90IGVsZW1fc2l6ZSkKICAgICByZXR1cm4gY2FsbG9jPHRydWU+KG4s
IGVsZW1fc2l6ZSk7CiB9CiAKLXZvaWQqIHRyeUZhc3RDYWxsb2Moc2l6ZV90IG4sIHNpemVfdCBl
bGVtX3NpemUpCitUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0Q2FsbG9jKHNpemVfdCBuLCBz
aXplX3QgZWxlbV9zaXplKQogewogICAgIHJldHVybiBjYWxsb2M8ZmFsc2U+KG4sIGVsZW1fc2l6
ZSk7CiB9CkBAIC0zNTEyLDcgKzM1MTIsNyBAQCB2b2lkKiBmYXN0UmVhbGxvYyh2b2lkKiBvbGRf
cHRyLCBzaXplX3QgbmV3X3NpemUpCiAgICAgcmV0dXJuIHJlYWxsb2M8dHJ1ZT4ob2xkX3B0ciwg
bmV3X3NpemUpOwogfQogCi12b2lkKiB0cnlGYXN0UmVhbGxvYyh2b2lkKiBvbGRfcHRyLCBzaXpl
X3QgbmV3X3NpemUpCitUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2b2lkKiBv
bGRfcHRyLCBzaXplX3QgbmV3X3NpemUpCiB7CiAgICAgcmV0dXJuIHJlYWxsb2M8ZmFsc2U+KG9s
ZF9wdHIsIG5ld19zaXplKTsKIH0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9GYXN0
TWFsbG9jLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxvYy5oCmluZGV4IDYxZWJlMzIu
LjE4YmI5MjggMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmgKKysr
IGIvSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuaApAQCAtMjEsNiArMjEsNyBAQAogI2lm
bmRlZiBXVEZfRmFzdE1hbGxvY19oCiAjZGVmaW5lIFdURl9GYXN0TWFsbG9jX2gKIAorI2luY2x1
ZGUgIk1heWJlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm0uaCIKICNpbmNsdWRlIDxzdGRsaWIuaD4K
ICNpbmNsdWRlIDxuZXc+CkBAIC0zMywxMSArMzQsMzcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAg
dm9pZCogZmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSk7
CiAgICAgdm9pZCogZmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pOwogCisgICAgc3RydWN0
IFRyeU1hbGxvY1JldHVyblZhbHVlIHsKKyAgICAgICAgVHJ5TWFsbG9jUmV0dXJuVmFsdWUodm9p
ZCogZGF0YSkKKyAgICAgICAgICAgIDogbV9kYXRhKGRhdGEpCisgICAgICAgIHsKKyAgICAgICAg
fQorICAgICAgICB+VHJ5TWFsbG9jUmV0dXJuVmFsdWUoKSB7IEFTU0VSVCghbV9kYXRhKTsgfQor
ICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYm9vbCBnZXRWYWx1ZShUJiBkYXRhKSBXQVJO
X1VOVVNFRF9SRVRVUk47CisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBvcGVyYXRvciBN
YXliZTxUPigpCisgICAgICAgIHsgCisgICAgICAgICAgICBUIHZhbHVlOyAKKyAgICAgICAgICAg
IGdldFZhbHVlKHZhbHVlKTsgCisgICAgICAgICAgICByZXR1cm4gTWF5YmU8VD4odmFsdWUpOwor
ICAgICAgICB9IAorICAgIHByaXZhdGU6CisgICAgICAgIHZvaWQqIG1fZGF0YTsKKyAgICB9Owor
ICAgIAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBib29sIFRyeU1hbGxvY1JldHVyblZhbHVl
OjpnZXRWYWx1ZShUJiBkYXRhKSB7CisgICAgICAgIHVuaW9uIHUgeyB2b2lkKiBkYXRhOyBUIHRh
cmdldDsgfSByZXM7CisgICAgICAgIHJlcy5kYXRhID0gbV9kYXRhOworICAgICAgICBkYXRhID0g
cmVzLnRhcmdldDsKKyAgICAgICAgYm9vbCByZXR1cm5WYWx1ZSA9ICEhbV9kYXRhOworICAgICAg
ICBtX2RhdGEgPSAwOworICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CisgICAgfQorCiAgICAg
Ly8gVGhlc2UgZnVuY3Rpb25zIHJldHVybiBOVUxMIGlmIGFuIGFsbG9jYXRpb24gZmFpbHMuCi0g
ICAgdm9pZCogdHJ5RmFzdE1hbGxvYyhzaXplX3Qgbik7Ci0gICAgdm9pZCogdHJ5RmFzdFplcm9l
ZE1hbGxvYyhzaXplX3Qgbik7Ci0gICAgdm9pZCogdHJ5RmFzdENhbGxvYyhzaXplX3Qgbl9lbGVt
ZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSk7Ci0gICAgdm9pZCogdHJ5RmFzdFJlYWxsb2Modm9p
ZCogcCwgc2l6ZV90IG4pOworICAgIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxsb2Mo
c2l6ZV90IG4pOworICAgIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RaZXJvZWRNYWxsb2Mo
c2l6ZV90IG4pOworICAgIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RDYWxsb2Moc2l6ZV90
IG5fZWxlbWVudHMsIHNpemVfdCBlbGVtZW50X3NpemUpOworICAgIFRyeU1hbGxvY1JldHVyblZh
bHVlIHRyeUZhc3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKTsKIAogICAgIHZvaWQgZmFzdEZy
ZWUodm9pZCogcCk7CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9NYXliZS5oIGIv
SmF2YVNjcmlwdENvcmUvd3RmL01heWJlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYzI0MzRjZAotLS0gL2Rldi9udWxsCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9NYXli
ZS5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIE1heWJlX2gKKyNkZWZpbmUgTWF5YmVfaAorCisjaW5jbHVkZSAi
QXNzZXJ0aW9ucy5oIgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IHN0cnVjdCBNYXliZSB7CisgICAgTWF5YmUoVCBkYXRhKQorICAgICAgICA6IG1fZGF0YShkYXRh
KQorICAgIHsKKyAgICB9CisgICAgfk1heWJlKCkgeyBBU1NFUlQoIW1fZGF0YSk7IH0KKyAgICBi
b29sIGdldFZhbHVlKFQmIG91dCkgV0FSTl9VTlVTRURfUkVUVVJOOworcHJpdmF0ZToKKyAgICBU
IG1fZGF0YTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBib29sIE1heWJlPFQ+OjpnZXRW
YWx1ZShUJiBvdXQpCit7CisgICAgb3V0ID0gbV9kYXRhOworICAgIGJvb2wgcmVzdWx0ID0gISFt
X2RhdGE7CisgICAgbV9kYXRhID0gMDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggYi9KYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCA2MGQwZmEwLi5kZmM0YmZjIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaApAQCAtNjc1LDQgKzY3NSwxMCBAQAogI2RlZmluZSBXVEZfVVNFX0FDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HIDEKICNlbmRpZgogCisjaWYgQ09NUElMRVIoR0NDKQorI2RlZmluZSBX
QVJOX1VOVVNFRF9SRVRVUk4gX19hdHRyaWJ1dGVfXyAoKHdhcm5fdW51c2VkX3Jlc3VsdCkpCisj
ZWxzZQorI2RlZmluZSBXQVJOX1VOVVNFRF9SRVRVUk4KKyNlbmRpZgorCiAjZW5kaWYgLyogV1RG
X1BsYXRmb3JtX2ggKi8KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggOWUwYTJiZC4uNmU5NGMyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAwOS0wNy0y
MCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgaXQgaGFyZGVyIHRvIG1pc3VzZSB0cnkq
IGFsbG9jYXRpb24gcm91dGluZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3NDY5CisKKyAgICAgICAgQWRkIGZvcndhcmRpbmcgaGVhZGVyIGZvciBN
YXliZSB0eXBlLCBhbmQgYWRkIG1pc3NpbmcgbnVsbCBjaGVjaworICAgICAgICB0byBJbWFnZUJ1
ZmZlciBjcmVhdGlvbi4KKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9NYXliZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisKIDIwMDkt
MDctMjAgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3d0Zi9NYXliZS5oIGIvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvTWF5
YmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmM4YmRkCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvTWF5YmUuaApAQCAtMCww
ICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfTWF5YmVfaAorI2RlZmluZSBXZWJDb3JlX0ZX
RF9NYXliZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWF5YmUuaD4KKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5kZXggOTZl
NTYwNC4uYTI3ZmVkZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyQ0cuY3BwCkBAIC02NCw3ICs2NCw5IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihj
b25zdCBJbnRTaXplJiBzaXplLCBib29sIGdyYXlTY2FsZSwgYm9vbCYgc3VjY2VzcykKICAgICAg
ICAgYnl0ZXNQZXJSb3cgKj0gNDsKICAgICB9CiAKLSAgICBtX2RhdGEubV9kYXRhID0gdHJ5RmFz
dENhbGxvYyhzaXplLmhlaWdodCgpLCBieXRlc1BlclJvdyk7CisgICAgaWYgKCF0cnlGYXN0Q2Fs
bG9jKHNpemUuaGVpZ2h0KCksIGJ5dGVzUGVyUm93KS5nZXRWYWx1ZShtX2RhdGEubV9kYXRhKSkK
KyAgICAgICAgcmV0dXJuOworCiAgICAgQVNTRVJUKChyZWludGVycHJldF9jYXN0PHNpemVfdD4o
bV9kYXRhLm1fZGF0YSkgJiAyKSA9PSAwKTsKIAogICAgIENHQ29sb3JTcGFjZVJlZiBjb2xvclNw
YWNlID0gZ3JheVNjYWxlID8gQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlR3JheSgpIDogQ0dDb2xv
clNwYWNlQ3JlYXRlRGV2aWNlUkdCKCk7Cg==
</data>
<flag name="review"
          id="17450"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33127</attachid>
            <date>2009-07-20 17:45:40 -0700</date>
            <delta_ts>2009-08-13 14:47:17 -0700</delta_ts>
            <desc>a correct patch</desc>
            <filename>tryalloc.patch</filename>
            <type>text/plain</type>
            <size>23154</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBiODMxYzkzLi5lZGRlMjg5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMDktMDctMjAgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGl0IGhhcmRlciB0
byBtaXN1c2UgdHJ5KiBhbGxvY2F0aW9uIHJvdXRpbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ2OQorCisgICAgICAgIEp1bXAgdGhyb3VnaCBh
IGZldyBob29wcyB0byBtYWtlIGl0IG11Y2ggaGFyZGVyIHRvIGFjY2lkZW50YWxseQorICAgICAg
ICBtaXNzIG51bGwtY2hlY2tpbmcgb2YgdmFsdWVzIHJldHVybmVkIGJ5IHRoZSB0cnktKiBhbGxv
Y2F0aW9uCisgICAgICAgIHJvdXRpbmVzLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgor
ICAgICAgICAoSlNDOjpKU0FycmF5OjpwdXRTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTQXJy
YXk6OmluY3JlYXNlVmVjdG9yTGVuZ3RoKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0ZvbnRzaXplKToKKyAgICAg
ICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jTGluayk6CisgICAgICAgICogcnVudGltZS9VU3RyaW5n
LmNwcDoKKyAgICAgICAgKEpTQzo6YWxsb2NDaGFycyk6CisgICAgICAgIChKU0M6OnJlYWxsb2ND
aGFycyk6CisgICAgICAgIChKU0M6OmV4cGFuZENhcGFjaXR5KToKKyAgICAgICAgKEpTQzo6VVN0
cmluZzo6UmVwOjpyZXNlcnZlQ2FwYWNpdHkpOgorICAgICAgICAoSlNDOjpVU3RyaW5nOjpleHBh
bmRQcmVDYXBhY2l0eSk6CisgICAgICAgIChKU0M6OmNyZWF0ZVJlcCk6CisgICAgICAgIChKU0M6
OmNvbmNhdGVuYXRlKToKKyAgICAgICAgKEpTQzo6VVN0cmluZzo6c3BsaWNlU3Vic3RyaW5nc1dp
dGhTZXBhcmF0b3JzKToKKyAgICAgICAgKEpTQzo6VVN0cmluZzo6cmVwbGFjZVJhbmdlKToKKyAg
ICAgICAgKEpTQzo6VVN0cmluZzo6YXBwZW5kKToKKyAgICAgICAgKEpTQzo6VVN0cmluZzo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKiBydW50aW1lL1VTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6VVN0
cmluZzo6UmVwOjpjcmVhdGVFbXB0eUJ1ZmZlcik6CisgICAgICAgICogd3RmL0Zhc3RNYWxsb2Mu
Y3BwOgorICAgICAgICAoV1RGOjp0cnlGYXN0WmVyb2VkTWFsbG9jKToKKyAgICAgICAgKFdURjo6
dHJ5RmFzdE1hbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZhc3RDYWxsb2MpOgorICAgICAgICAo
V1RGOjp0cnlGYXN0UmVhbGxvYyk6CisgICAgICAgIChXVEY6OlRDTWFsbG9jU3RhdHM6OnRyeUZh
c3RNYWxsb2MpOgorICAgICAgICAoV1RGOjpUQ01hbGxvY1N0YXRzOjp0cnlGYXN0Q2FsbG9jKToK
KyAgICAgICAgKFdURjo6VENNYWxsb2NTdGF0czo6dHJ5RmFzdFJlYWxsb2MpOgorICAgICAgICAq
IHd0Zi9GYXN0TWFsbG9jLmg6CisgICAgICAgIChXVEY6OlRyeU1hbGxvY1JldHVyblZhbHVlOjpU
cnlNYWxsb2NSZXR1cm5WYWx1ZSk6CisgICAgICAgIChXVEY6OlRyeU1hbGxvY1JldHVyblZhbHVl
Ojp+VHJ5TWFsbG9jUmV0dXJuVmFsdWUpOgorICAgICAgICAoV1RGOjpUcnlNYWxsb2NSZXR1cm5W
YWx1ZTo6b3BlcmF0b3IgTWF5YmU8VD4pOgorICAgICAgICAoV1RGOjpUcnlNYWxsb2NSZXR1cm5W
YWx1ZTo6Z2V0VmFsdWUpOgorICAgICAgICAqIHd0Zi9NYXliZS5oOiBDb3BpZWQgZnJvbSBKYXZh
U2NyaXB0Q29yZS93dGYvQnl0ZUFycmF5LmNwcC4KKyAgICAgICAgKFdURjo6TWF5YmU6Ok1heWJl
KToKKyAgICAgICAgKFdURjo6TWF5YmU6On5NYXliZSk6CisgICAgICAgIChXVEY6Ojo6Z2V0VmFs
dWUpOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDA5LTA3LTIwICBab2x0YW4gSG9y
dmF0aCAgPGh6b2x0YW5AaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9s
aXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWMyZDdhMC4uNDY3MTAzNyAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xOTcsNiArMTk3LDcgQEAKIAkJQTdBMUY3QUMwRjI1MkIzQzAwRTE4NEUyIC8q
IEJ5dGVBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBN0ExRjdBQTBGMjUyQjNDMDBFMTg0RTIgLyogQnl0ZUFycmF5LmNwcCAqLzsgfTsKIAkJ
QTdBMUY3QUQwRjI1MkIzQzAwRTE4NEUyIC8qIEJ5dGVBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBMUY3QUIwRjI1MkIzQzAwRTE4NEUyIC8q
IEJ5dGVBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE3QjQ4RjQ5MEVFODkzNkYwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjQ4REI2
MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAqLzsgfTsKKwkJQTdE
NjQ5QUExMDE1MjI0RTAwOUIyRTFCIC8qIE1heWJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q2NDlBOTEwMTUyMjRFMDA5QjJFMUIgLyogTWF5YmUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0Uy
RUE2QjBGQjQ2MENGMDA2MDFGMDYgLyogTGl0ZXJhbFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdFMkVBNjkwRkI0NjBDRjAwNjAxRjA2IC8q
IExpdGVyYWxQYXJzZXIuaCAqLzsgfTsKIAkJQTdFMkVBNkMwRkI0NjBDRjAwNjAxRjA2IC8qIExp
dGVyYWxQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTdFMkVBNkEwRkI0NjBDRjAwNjAxRjA2IC8qIExpdGVyYWxQYXJzZXIuY3BwICovOyB9
OwogCQlBN0Y5OTM1RjBGRDczMjUxMDBBMEIyRDAgLyogSlNPTk9iamVjdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdGOTkzNUQwRkQ3MzI1MTAwQTBC
MkQwIC8qIEpTT05PYmplY3QuaCAqLzsgfTsKQEAgLTczMyw2ICs3MzQsNyBAQAogCQlBN0ExRjdB
QjBGMjUyQjNDMDBFMTg0RTIgLyogQnl0ZUFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJ5dGVBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0I0
OERCNTBFRTc0Q0ZDMDBEQ0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBFeGVjdXRhYmxlQWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxl
QWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4ZWN1
dGFibGVBbGxvY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0Q2NDlB
OTEwMTUyMjRFMDA5QjJFMUIgLyogTWF5YmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWF5YmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdFMkVBNjkwRkI0
NjBDRjAwNjAxRjA2IC8qIExpdGVyYWxQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGl0ZXJhbFBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
N0UyRUE2QTBGQjQ2MENGMDA2MDFGMDYgLyogTGl0ZXJhbFBhcnNlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaXRlcmFsUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTdFNDJDMTgwRTM5Mzg4MzAwNjVBNTQ0IC8qIEpTU3RhdGljU2Nv
cGVPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdGF0aWNTY29w
ZU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI0Nyw2ICsxMjQ5LDcg
QEAKIAkJCQk2NTkyQzMxNjA5OEI3REUxMDAwM0Q0RjYgLyogVmVjdG9yLmggKi8sCiAJCQkJNjU5
MkMzMTcwOThCN0RFMTAwMDNENEY2IC8qIFZlY3RvclRyYWl0cy5oICovLAogCQkJCTk2REQ3Mzc4
MEY5REEzMTAwMDI3RkJDQyAvKiBWTVRhZ3MuaCAqLywKKwkJCQlBN0Q2NDlBOTEwMTUyMjRFMDA5
QjJFMUIgLyogTWF5YmUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd3RmOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTE4NjMsNiArMTg2Niw3IEBACiAJCQkJMTQyOURBRTAwRUQyNjQ1
QjAwQjg5NjE5IC8qIFdSRUNHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MjlEQUJG
MEVEMjYzRTcwMEI4OTYxOSAvKiBXUkVDUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5Njg4
Q0IxNjBFRDEyQjRFMDAxRDY0OUYgLyogWDg2QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBN0Q2NDlBQTEwMTUyMjRFMDA5QjJFMUIgLyogTWF5YmUuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggMjk2YWM5ZC4uNmRlMGM2NiAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuY3BwCkBAIC0zNDMsOCArMzQzLDcgQEAgTkVWRVJfSU5MSU5FIHZv
aWQgSlNBcnJheTo6cHV0U2xvd0Nhc2UoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1Zh
bHVlIHZhbHUKICAgICAgICAgfQogICAgIH0KIAotICAgIHN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxB
cnJheVN0b3JhZ2UqPih0cnlGYXN0UmVhbGxvYyhzdG9yYWdlLCBzdG9yYWdlU2l6ZShuZXdWZWN0
b3JMZW5ndGgpKSk7Ci0gICAgaWYgKCFzdG9yYWdlKSB7CisgICAgaWYgKCF0cnlGYXN0UmVhbGxv
YyhzdG9yYWdlLCBzdG9yYWdlU2l6ZShuZXdWZWN0b3JMZW5ndGgpKS5nZXRWYWx1ZShzdG9yYWdl
KSkgewogICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZXhlYyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC00NjIsOCArNDYxLDcgQEAgYm9vbCBKU0FycmF5OjppbmNyZWFzZVZlY3Rv
ckxlbmd0aCh1bnNpZ25lZCBuZXdMZW5ndGgpCiAgICAgQVNTRVJUKG5ld0xlbmd0aCA8PSBNQVhf
U1RPUkFHRV9WRUNUT1JfSU5ERVgpOwogICAgIHVuc2lnbmVkIG5ld1ZlY3Rvckxlbmd0aCA9IGlu
Y3JlYXNlZFZlY3Rvckxlbmd0aChuZXdMZW5ndGgpOwogCi0gICAgc3RvcmFnZSA9IHN0YXRpY19j
YXN0PEFycmF5U3RvcmFnZSo+KHRyeUZhc3RSZWFsbG9jKHN0b3JhZ2UsIHN0b3JhZ2VTaXplKG5l
d1ZlY3Rvckxlbmd0aCkpKTsKLSAgICBpZiAoIXN0b3JhZ2UpCisgICAgaWYgKCF0cnlGYXN0UmVh
bGxvYyhzdG9yYWdlLCBzdG9yYWdlU2l6ZShuZXdWZWN0b3JMZW5ndGgpKS5nZXRWYWx1ZShzdG9y
YWdlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSGVhcDo6aGVhcCh0aGlzKS0+cmVw
b3J0RXh0cmFNZW1vcnlDb3N0KHN0b3JhZ2VTaXplKG5ld1ZlY3Rvckxlbmd0aCkgLSBzdG9yYWdl
U2l6ZSh2ZWN0b3JMZW5ndGgpKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcAppbmRleCBjZWI2YjFlLi4yODZkN2M4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC04MjEsOCArODIxLDggQEAgSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY0ZvbnRzaXplKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
LCBKU1ZhbHUKICAgICBpZiAoYTAuZ2V0VUludDMyKHNtYWxsSW50ZWdlcikgJiYgc21hbGxJbnRl
Z2VyIDw9IDkpIHsKICAgICAgICAgdW5zaWduZWQgc3RyaW5nU2l6ZSA9IHMuc2l6ZSgpOwogICAg
ICAgICB1bnNpZ25lZCBidWZmZXJTaXplID0gMjIgKyBzdHJpbmdTaXplOwotICAgICAgICBVQ2hh
ciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8VUNoYXIqPih0cnlGYXN0TWFsbG9jKGJ1ZmZlclNpemUg
KiBzaXplb2YoVUNoYXIpKSk7Ci0gICAgICAgIGlmICghYnVmZmVyKQorICAgICAgICBVQ2hhciog
YnVmZmVyOworICAgICAgICBpZiAoIXRyeUZhc3RNYWxsb2MoYnVmZmVyU2l6ZSAqIHNpemVvZihV
Q2hhcikpLmdldFZhbHVlKGJ1ZmZlcikpCiAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKICAgICAgICAgYnVmZmVyWzBdID0gJzwnOwogICAgICAgICBidWZmZXJbMV0gPSAnZic7CkBA
IC04NjksOCArODY5LDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0xp
bmsoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEpTVmFsdWUgdGgKICAgICB1bnNpZ25lZCBs
aW5rVGV4dFNpemUgPSBsaW5rVGV4dC5zaXplKCk7CiAgICAgdW5zaWduZWQgc3RyaW5nU2l6ZSA9
IHMuc2l6ZSgpOwogICAgIHVuc2lnbmVkIGJ1ZmZlclNpemUgPSAxNSArIGxpbmtUZXh0U2l6ZSAr
IHN0cmluZ1NpemU7Ci0gICAgVUNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PFVDaGFyKj4odHJ5
RmFzdE1hbGxvYyhidWZmZXJTaXplICogc2l6ZW9mKFVDaGFyKSkpOwotICAgIGlmICghYnVmZmVy
KQorICAgIFVDaGFyKiBidWZmZXI7CisgICAgaWYgKCF0cnlGYXN0TWFsbG9jKGJ1ZmZlclNpemUg
KiBzaXplb2YoVUNoYXIpKS5nZXRWYWx1ZShidWZmZXIpKQogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKICAgICBidWZmZXJbMF0gPSAnPCc7CiAgICAgYnVmZmVyWzFdID0gJ2EnOwpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9VU3RyaW5nLmNwcCBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVVN0cmluZy5jcHAKaW5kZXggMTE4NzUxZS4uMjAwNzMwMyAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9VU3RyaW5nLmNwcAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1VTdHJpbmcuY3BwCkBAIC02OCwyMCArNjgsMjAgQEAgc3RhdGljIGNvbnN0IGlu
dCBtaW5MZW5ndGhUb1NoYXJlID0gMTA7CiBzdGF0aWMgaW5saW5lIHNpemVfdCBvdmVyZmxvd0lu
ZGljYXRvcigpIHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCk7IH0K
IHN0YXRpYyBpbmxpbmUgc2l6ZV90IG1heFVDaGFycygpIHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19s
aW1pdHM8c2l6ZV90Pjo6bWF4KCkgLyBzaXplb2YoVUNoYXIpOyB9CiAKLXN0YXRpYyBpbmxpbmUg
VUNoYXIqIGFsbG9jQ2hhcnMoc2l6ZV90IGxlbmd0aCkKK3N0YXRpYyBpbmxpbmUgTWF5YmU8VUNo
YXIqPiBhbGxvY0NoYXJzKHNpemVfdCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKGxlbmd0aCk7CiAg
ICAgaWYgKGxlbmd0aCA+IG1heFVDaGFycygpKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8VUNoYXIqPih0cnlGYXN0TWFsbG9jKHNpemVvZihVQ2hhcikgKiBsZW5n
dGgpKTsKKyAgICByZXR1cm4gdHJ5RmFzdE1hbGxvYyhzaXplb2YoVUNoYXIpICogbGVuZ3RoKTsK
IH0KIAotc3RhdGljIGlubGluZSBVQ2hhciogcmVhbGxvY0NoYXJzKFVDaGFyKiBidWZmZXIsIHNp
emVfdCBsZW5ndGgpCitzdGF0aWMgaW5saW5lIE1heWJlPFVDaGFyKj4gcmVhbGxvY0NoYXJzKFVD
aGFyKiBidWZmZXIsIHNpemVfdCBsZW5ndGgpCiB7CiAgICAgQVNTRVJUKGxlbmd0aCk7CiAgICAg
aWYgKGxlbmd0aCA+IG1heFVDaGFycygpKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8VUNoYXIqPih0cnlGYXN0UmVhbGxvYyhidWZmZXIsIHNpemVvZihVQ2hhcikg
KiBsZW5ndGgpKTsKKyAgICByZXR1cm4gdHJ5RmFzdFJlYWxsb2MoYnVmZmVyLCBzaXplb2YoVUNo
YXIpICogbGVuZ3RoKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGNvcHlDaGFycyhVQ2hhciog
ZGVzdGluYXRpb24sIGNvbnN0IFVDaGFyKiBzb3VyY2UsIHVuc2lnbmVkIG51bUNoYXJhY3RlcnMp
CkBAIC00ODAsOCArNDgwLDcgQEAgc3RhdGljIGlubGluZSBib29sIGV4cGFuZENhcGFjaXR5KFVT
dHJpbmc6OlJlcCogcmVwLCBpbnQgcmVxdWlyZWRMZW5ndGgpCiAgICAgaWYgKHJlcXVpcmVkTGVu
Z3RoID4gYmFzZS0+Y2FwYWNpdHkpIHsKICAgICAgICAgc2l6ZV90IG5ld0NhcGFjaXR5ID0gZXhw
YW5kZWRTaXplKHJlcXVpcmVkTGVuZ3RoLCBiYXNlLT5wcmVDYXBhY2l0eSk7CiAgICAgICAgIFVD
aGFyKiBvbGRCdWYgPSBiYXNlLT5idWY7Ci0gICAgICAgIGJhc2UtPmJ1ZiA9IHJlYWxsb2NDaGFy
cyhiYXNlLT5idWYsIG5ld0NhcGFjaXR5KTsKLSAgICAgICAgaWYgKCFiYXNlLT5idWYpIHsKKyAg
ICAgICAgaWYgKCFyZWFsbG9jQ2hhcnMoYmFzZS0+YnVmLCBuZXdDYXBhY2l0eSkuZ2V0VmFsdWUo
YmFzZS0+YnVmKSkgewogICAgICAgICAgICAgYmFzZS0+YnVmID0gb2xkQnVmOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC01MTIsOCArNTExLDcgQEAgYm9vbCBVU3Ry
aW5nOjpSZXA6OnJlc2VydmVDYXBhY2l0eShpbnQgY2FwYWNpdHkpCiAKICAgICBzaXplX3QgbmV3
Q2FwYWNpdHkgPSBleHBhbmRlZFNpemUoY2FwYWNpdHksIGJhc2UtPnByZUNhcGFjaXR5KTsKICAg
ICBVQ2hhciogb2xkQnVmID0gYmFzZS0+YnVmOwotICAgIGJhc2UtPmJ1ZiA9IHJlYWxsb2NDaGFy
cyhiYXNlLT5idWYsIG5ld0NhcGFjaXR5KTsKLSAgICBpZiAoIWJhc2UtPmJ1ZikgeworICAgIGlm
ICghcmVhbGxvY0NoYXJzKGJhc2UtPmJ1ZiwgbmV3Q2FwYWNpdHkpLmdldFZhbHVlKGJhc2UtPmJ1
ZikpIHsKICAgICAgICAgYmFzZS0+YnVmID0gb2xkQnVmOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQpAQCAtNTQwLDggKzUzOCw4IEBAIHZvaWQgVVN0cmluZzo6ZXhwYW5kUHJlQ2FwYWNp
dHkoaW50IHJlcXVpcmVkUHJlQ2FwKQogICAgICAgICBzaXplX3QgbmV3Q2FwYWNpdHkgPSBleHBh
bmRlZFNpemUocmVxdWlyZWRQcmVDYXAsIGJhc2UtPmNhcGFjaXR5KTsKICAgICAgICAgaW50IGRl
bHRhID0gbmV3Q2FwYWNpdHkgLSBiYXNlLT5jYXBhY2l0eSAtIGJhc2UtPnByZUNhcGFjaXR5Owog
Ci0gICAgICAgIFVDaGFyKiBuZXdCdWYgPSBhbGxvY0NoYXJzKG5ld0NhcGFjaXR5KTsKLSAgICAg
ICAgaWYgKCFuZXdCdWYpIHsKKyAgICAgICAgVUNoYXIqIG5ld0J1ZjsKKyAgICAgICAgaWYgKCFh
bGxvY0NoYXJzKG5ld0NhcGFjaXR5KS5nZXRWYWx1ZShuZXdCdWYpKSB7CiAgICAgICAgICAgICBt
YWtlTnVsbCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC01NjYsOCArNTY0
LDggQEAgc3RhdGljIFBhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBjcmVhdGVSZXAoY29uc3QgY2hh
ciogYykKICAgICAgICAgcmV0dXJuICZVU3RyaW5nOjpSZXA6OmVtcHR5KCk7CiAKICAgICBzaXpl
X3QgbGVuZ3RoID0gc3RybGVuKGMpOwotICAgIFVDaGFyKiBkID0gYWxsb2NDaGFycyhsZW5ndGgp
OwotICAgIGlmICghZCkKKyAgICBVQ2hhciogZDsKKyAgICBpZiAoIWFsbG9jQ2hhcnMobGVuZ3Ro
KS5nZXRWYWx1ZShkKSkKICAgICAgICAgcmV0dXJuICZVU3RyaW5nOjpSZXA6Om51bGwoKTsKICAg
ICBlbHNlIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKQEAg
LTY1Niw4ICs2NTQsOCBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBQYXNzUmVmUHRyPFVTdHJpbmc6
OlJlcD4gY29uY2F0ZW5hdGUoUGFzc1JlZlB0cjxVU3RyaW5nOjpSZQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIC8vIFRoaXMgaXMgc2hhcmVkIGluIHNvbWUgd2F5IHRoYXQgcHJldmVudHMgdXMgZnJv
bSBtb2RpZnlpbmcgYmFzZSwgc28gd2UgbXVzdCBtYWtlIGEgd2hvbGUgbmV3IHN0cmluZy4KICAg
ICAgICAgc2l6ZV90IG5ld0NhcGFjaXR5ID0gZXhwYW5kZWRTaXplKGxlbmd0aCwgMCk7Ci0gICAg
ICAgIFVDaGFyKiBkID0gYWxsb2NDaGFycyhuZXdDYXBhY2l0eSk7Ci0gICAgICAgIGlmICghZCkK
KyAgICAgICAgVUNoYXIqIGQ7CisgICAgICAgIGlmICghYWxsb2NDaGFycyhuZXdDYXBhY2l0eSku
Z2V0VmFsdWUoZCkpCiAgICAgICAgICAgICByZXAgPSAmVVN0cmluZzo6UmVwOjpudWxsKCk7CiAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgY29weUNoYXJzKGQsIHJlcC0+ZGF0YSgpLCB0aGlz
U2l6ZSk7CkBAIC03MTIsOCArNzEwLDggQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgUGFzc1JlZlB0
cjxVU3RyaW5nOjpSZXA+IGNvbmNhdGVuYXRlKFBhc3NSZWZQdHI8VVN0cmluZzo6UmUKICAgICB9
IGVsc2UgewogICAgICAgICAvLyBUaGlzIGlzIHNoYXJlZCBpbiBzb21lIHdheSB0aGF0IHByZXZl
bnRzIHVzIGZyb20gbW9kaWZ5aW5nIGJhc2UsIHNvIHdlIG11c3QgbWFrZSBhIHdob2xlIG5ldyBz
dHJpbmcuCiAgICAgICAgIHNpemVfdCBuZXdDYXBhY2l0eSA9IGV4cGFuZGVkU2l6ZShsZW5ndGgs
IDApOwotICAgICAgICBVQ2hhciogZCA9IGFsbG9jQ2hhcnMobmV3Q2FwYWNpdHkpOwotICAgICAg
ICBpZiAoIWQpCisgICAgICAgIFVDaGFyKiBkOworICAgICAgICBpZiAoIWFsbG9jQ2hhcnMobmV3
Q2FwYWNpdHkpLmdldFZhbHVlKGQpKQogICAgICAgICAgICAgcmVwID0gJlVTdHJpbmc6OlJlcDo6
bnVsbCgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGNvcHlDaGFycyhkLCByZXAtPmRh
dGEoKSwgdGhpc1NpemUpOwpAQCAtODAwLDggKzc5OCw4IEBAIFBhc3NSZWZQdHI8VVN0cmluZzo6
UmVwPiBjb25jYXRlbmF0ZShVU3RyaW5nOjpSZXAqIGEsIFVTdHJpbmc6OlJlcCogYikKIAogICAg
IC8vIGEgZG9lcyBub3QgcXVhbGlmeSBmb3IgYXBwZW5kLCBhbmQgYiBkb2VzIG5vdCBxdWFsaWZ5
IGZvciBwcmVwZW5kLCBnb3R0YSBtYWtlIGEgd2hvbGUgbmV3IHN0cmluZwogICAgIHNpemVfdCBu
ZXdDYXBhY2l0eSA9IGV4cGFuZGVkU2l6ZShsZW5ndGgsIDApOwotICAgIFVDaGFyKiBkID0gYWxs
b2NDaGFycyhuZXdDYXBhY2l0eSk7Ci0gICAgaWYgKCFkKQorICAgIFVDaGFyKiBkOworICAgIGlm
ICghYWxsb2NDaGFycyhuZXdDYXBhY2l0eSkuZ2V0VmFsdWUoZCkpCiAgICAgICAgIHJldHVybiAw
OwogICAgIGNvcHlDaGFycyhkLCBhLT5kYXRhKCksIGFTaXplKTsKICAgICBjb3B5Q2hhcnMoZCAr
IGFTaXplLCBiLT5kYXRhKCksIGJTaXplKTsKQEAgLTEwNzYsOCArMTA3NCw4IEBAIFVTdHJpbmcg
VVN0cmluZzo6c3BsaWNlU3Vic3RyaW5nc1dpdGhTZXBhcmF0b3JzKGNvbnN0IFJhbmdlKiBzdWJz
dHJpbmdSYW5nZXMsIGluCiAgICAgaWYgKHRvdGFsTGVuZ3RoID09IDApCiAgICAgICAgIHJldHVy
biAiIjsKIAotICAgIFVDaGFyKiBidWZmZXIgPSBhbGxvY0NoYXJzKHRvdGFsTGVuZ3RoKTsKLSAg
ICBpZiAoIWJ1ZmZlcikKKyAgICBVQ2hhciogYnVmZmVyOworICAgIGlmICghYWxsb2NDaGFycyh0
b3RhbExlbmd0aCkuZ2V0VmFsdWUoYnVmZmVyKSkKICAgICAgICAgcmV0dXJuIG51bGwoKTsKIAog
ICAgIGludCBtYXhDb3VudCA9IG1heChyYW5nZUNvdW50LCBzZXBhcmF0b3JDb3VudCk7CkBAIC0x
MTA1LDggKzExMDMsOCBAQCBVU3RyaW5nIFVTdHJpbmc6OnJlcGxhY2VSYW5nZShpbnQgcmFuZ2VT
dGFydCwgaW50IHJhbmdlTGVuZ3RoLCBjb25zdCBVU3RyaW5nJiByZQogICAgIGlmICh0b3RhbExl
bmd0aCA9PSAwKQogICAgICAgICByZXR1cm4gIiI7CiAKLSAgICBVQ2hhciogYnVmZmVyID0gYWxs
b2NDaGFycyh0b3RhbExlbmd0aCk7Ci0gICAgaWYgKCFidWZmZXIpCisgICAgVUNoYXIqIGJ1ZmZl
cjsKKyAgICBpZiAoIWFsbG9jQ2hhcnModG90YWxMZW5ndGgpLmdldFZhbHVlKGJ1ZmZlcikpCiAg
ICAgICAgIHJldHVybiBudWxsKCk7CiAKICAgICBjb3B5Q2hhcnMoYnVmZmVyLCBkYXRhKCksIHJh
bmdlU3RhcnQpOwpAQCAtMTE1Myw4ICsxMTUxLDggQEAgVVN0cmluZyYgVVN0cmluZzo6YXBwZW5k
KGNvbnN0IFVTdHJpbmcgJnQpCiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gVGhpcyBpcyBzaGFy
ZWQgaW4gc29tZSB3YXkgdGhhdCBwcmV2ZW50cyB1cyBmcm9tIG1vZGlmeWluZyBiYXNlLCBzbyB3
ZSBtdXN0IG1ha2UgYSB3aG9sZSBuZXcgc3RyaW5nLgogICAgICAgICBzaXplX3QgbmV3Q2FwYWNp
dHkgPSBleHBhbmRlZFNpemUobGVuZ3RoLCAwKTsKLSAgICAgICAgVUNoYXIqIGQgPSBhbGxvY0No
YXJzKG5ld0NhcGFjaXR5KTsKLSAgICAgICAgaWYgKCFkKQorICAgICAgICBVQ2hhciogZDsKKyAg
ICAgICAgaWYgKCFhbGxvY0NoYXJzKG5ld0NhcGFjaXR5KS5nZXRWYWx1ZShkKSkKICAgICAgICAg
ICAgIG1ha2VOdWxsKCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgY29weUNoYXJzKGQs
IGRhdGEoKSwgdGhpc1NpemUpOwpAQCAtMTIwNiw4ICsxMjA0LDggQEAgVVN0cmluZyYgVVN0cmlu
Zzo6YXBwZW5kKFVDaGFyIGMpCiAgICAgaWYgKGxlbmd0aCA9PSAwKSB7CiAgICAgICAgIC8vIHRo
aXMgaXMgZW1wdHkgLSBtdXN0IG1ha2UgYSBuZXcgbV9yZXAgYmVjYXVzZSB3ZSBkb24ndCB3YW50
IHRvIHBvbGx1dGUgdGhlIHNoYXJlZCBlbXB0eSBvbmUgCiAgICAgICAgIHNpemVfdCBuZXdDYXBh
Y2l0eSA9IGV4cGFuZGVkU2l6ZSgxLCAwKTsKLSAgICAgICAgVUNoYXIqIGQgPSBhbGxvY0NoYXJz
KG5ld0NhcGFjaXR5KTsKLSAgICAgICAgaWYgKCFkKQorICAgICAgICBVQ2hhciogZDsKKyAgICAg
ICAgaWYgKCFhbGxvY0NoYXJzKG5ld0NhcGFjaXR5KS5nZXRWYWx1ZShkKSkKICAgICAgICAgICAg
IG1ha2VOdWxsKCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgZFswXSA9IGM7CkBAIC0x
MjM0LDggKzEyMzIsOCBAQCBVU3RyaW5nJiBVU3RyaW5nOjphcHBlbmQoVUNoYXIgYykKICAgICB9
IGVsc2UgewogICAgICAgICAvLyBUaGlzIGlzIHNoYXJlZCBpbiBzb21lIHdheSB0aGF0IHByZXZl
bnRzIHVzIGZyb20gbW9kaWZ5aW5nIGJhc2UsIHNvIHdlIG11c3QgbWFrZSBhIHdob2xlIG5ldyBz
dHJpbmcuCiAgICAgICAgIHNpemVfdCBuZXdDYXBhY2l0eSA9IGV4cGFuZGVkU2l6ZShsZW5ndGgg
KyAxLCAwKTsKLSAgICAgICAgVUNoYXIqIGQgPSBhbGxvY0NoYXJzKG5ld0NhcGFjaXR5KTsKLSAg
ICAgICAgaWYgKCFkKQorICAgICAgICBVQ2hhciogZDsKKyAgICAgICAgaWYgKCFhbGxvY0NoYXJz
KG5ld0NhcGFjaXR5KS5nZXRWYWx1ZShkKSkKICAgICAgICAgICAgIG1ha2VOdWxsKCk7CiAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgY29weUNoYXJzKGQsIGRhdGEoKSwgbGVuZ3RoKTsKQEAg
LTEzMTMsOCArMTMxMSw3IEBAIFVTdHJpbmcmIFVTdHJpbmc6Om9wZXJhdG9yPShjb25zdCBjaGFy
KiBjKQogICAgICAgICBtX3JlcC0+X2hhc2ggPSAwOwogICAgICAgICBtX3JlcC0+bGVuID0gbDsK
ICAgICB9IGVsc2UgewotICAgICAgICBkID0gYWxsb2NDaGFycyhsKTsKLSAgICAgICAgaWYgKCFk
KSB7CisgICAgICAgIGlmICghYWxsb2NDaGFycyhsKS5nZXRWYWx1ZShkKSkgewogICAgICAgICAg
ICAgbWFrZU51bGwoKTsKICAgICAgICAgICAgIHJldHVybiAqdGhpczsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9VU3RyaW5nLmggYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1VTdHJpbmcuaAppbmRleCBkMDFiNzVkLi5lZjU2ZjE3IDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1VTdHJpbmcuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1VTdHJpbmcuaApAQCAtOTEsNyArOTEsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAvLyBHdWFyZCBhZ2FpbnN0IGludGVnZXIgb3ZlcmZsb3cK
ICAgICAgICAgICAgICAgICBpZiAoc2l6ZSA8IChzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46
Om1heCgpIC8gc2l6ZW9mKFVDaGFyKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZvaWQg
KiBidWYgPSB0cnlGYXN0TWFsbG9jKHNpemUgKiBzaXplb2YoVUNoYXIpKSkKKyAgICAgICAgICAg
ICAgICAgICAgdm9pZCAqIGJ1ZiA9IDA7CisgICAgICAgICAgICAgICAgICAgIGlmICh0cnlGYXN0
TWFsbG9jKHNpemUgKiBzaXplb2YoVUNoYXIpKS5nZXRWYWx1ZShidWYpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCYXNlU3RyaW5nKHN0YXRpY19jYXN0PFVD
aGFyKj4oYnVmKSwgMCwgc2l6ZSkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEJhc2VTdHJpbmcoMCwgMCwgMCkpOwpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuY3BwIGIvSmF2YVNjcmlwdENvcmUvd3RmL0Zh
c3RNYWxsb2MuY3BwCmluZGV4IGQ2ODUwZTYuLjNmZDJlMjUgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1h
bGxvYy5jcHAKQEAgLTE3MiwxMCArMTcyLDEwIEBAIHZvaWQqIGZhc3RaZXJvZWRNYWxsb2Moc2l6
ZV90IG4pCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KICAgICAKLXZvaWQqIHRyeUZhc3RaZXJvZWRN
YWxsb2Moc2l6ZV90IG4pIAorVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFplcm9lZE1hbGxv
YyhzaXplX3QgbikgCiB7Ci0gICAgdm9pZCogcmVzdWx0ID0gdHJ5RmFzdE1hbGxvYyhuKTsKLSAg
ICBpZiAoIXJlc3VsdCkKKyAgICB2b2lkKiByZXN1bHQ7CisgICAgaWYgKCF0cnlGYXN0TWFsbG9j
KG4pLmdldFZhbHVlKHJlc3VsdCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIG1lbXNldChyZXN1
bHQsIDAsIG4pOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xOTQsNyArMTk0LDcgQEAgdm9pZCog
dHJ5RmFzdFplcm9lZE1hbGxvYyhzaXplX3QgbikKIAogbmFtZXNwYWNlIFdURiB7CiAKLXZvaWQq
IHRyeUZhc3RNYWxsb2Moc2l6ZV90IG4pIAorVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdE1h
bGxvYyhzaXplX3QgbikgCiB7CiAgICAgQVNTRVJUKCFpc0ZvcmJpZGRlbigpKTsKIApAQCAtMjMw
LDcgKzIzMCw3IEBAIHZvaWQqIGZhc3RNYWxsb2Moc2l6ZV90IG4pCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotdm9pZCogdHJ5RmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVs
ZW1lbnRfc2l6ZSkKK1RyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RDYWxsb2Moc2l6ZV90IG5f
ZWxlbWVudHMsIHNpemVfdCBlbGVtZW50X3NpemUpCiB7CiAgICAgQVNTRVJUKCFpc0ZvcmJpZGRl
bigpKTsKIApAQCAtMjg1LDcgKzI4NSw3IEBAIHZvaWQgZmFzdEZyZWUodm9pZCogcCkKICNlbmRp
ZgogfQogCi12b2lkKiB0cnlGYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3QgbikKK1RyeU1hbGxv
Y1JldHVyblZhbHVlIHRyeUZhc3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQogewogICAgIEFT
U0VSVCghaXNGb3JiaWRkZW4oKSk7CiAKQEAgLTMzODcsNyArMzM4Nyw3IEBAIHZvaWQqIGZhc3RN
YWxsb2Moc2l6ZV90IHNpemUpCiAgICAgcmV0dXJuIG1hbGxvYzx0cnVlPihzaXplKTsKIH0KIAot
dm9pZCogdHJ5RmFzdE1hbGxvYyhzaXplX3Qgc2l6ZSkKK1RyeU1hbGxvY1JldHVyblZhbHVlIHRy
eUZhc3RNYWxsb2Moc2l6ZV90IHNpemUpCiB7CiAgICAgcmV0dXJuIG1hbGxvYzxmYWxzZT4oc2l6
ZSk7CiB9CkBAIC0zNDQ4LDcgKzM0NDgsNyBAQCB2b2lkKiBmYXN0Q2FsbG9jKHNpemVfdCBuLCBz
aXplX3QgZWxlbV9zaXplKQogICAgIHJldHVybiBjYWxsb2M8dHJ1ZT4obiwgZWxlbV9zaXplKTsK
IH0KIAotdm9pZCogdHJ5RmFzdENhbGxvYyhzaXplX3Qgbiwgc2l6ZV90IGVsZW1fc2l6ZSkKK1Ry
eU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RDYWxsb2Moc2l6ZV90IG4sIHNpemVfdCBlbGVtX3Np
emUpCiB7CiAgICAgcmV0dXJuIGNhbGxvYzxmYWxzZT4obiwgZWxlbV9zaXplKTsKIH0KQEAgLTM1
MTIsNyArMzUxMiw3IEBAIHZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBu
ZXdfc2l6ZSkKICAgICByZXR1cm4gcmVhbGxvYzx0cnVlPihvbGRfcHRyLCBuZXdfc2l6ZSk7CiB9
CiAKLXZvaWQqIHRyeUZhc3RSZWFsbG9jKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSkK
K1RyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RSZWFsbG9jKHZvaWQqIG9sZF9wdHIsIHNpemVf
dCBuZXdfc2l6ZSkKIHsKICAgICByZXR1cm4gcmVhbGxvYzxmYWxzZT4ob2xkX3B0ciwgbmV3X3Np
emUpOwogfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuaCBiL0ph
dmFTY3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmgKaW5kZXggNjFlYmUzMi4uMThiYjkyOCAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS93dGYvRmFzdE1hbGxvYy5oCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIFdURl9GYXN0
TWFsbG9jX2gKICNkZWZpbmUgV1RGX0Zhc3RNYWxsb2NfaAogCisjaW5jbHVkZSAiTWF5YmUuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybS5oIgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPG5l
dz4KQEAgLTMzLDExICszNCwzNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB2b2lkKiBmYXN0Q2Fs
bG9jKHNpemVfdCBuX2VsZW1lbnRzLCBzaXplX3QgZWxlbWVudF9zaXplKTsKICAgICB2b2lkKiBm
YXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3Qgbik7CiAKKyAgICBzdHJ1Y3QgVHJ5TWFsbG9jUmV0
dXJuVmFsdWUgeworICAgICAgICBUcnlNYWxsb2NSZXR1cm5WYWx1ZSh2b2lkKiBkYXRhKQorICAg
ICAgICAgICAgOiBtX2RhdGEoZGF0YSkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIH5U
cnlNYWxsb2NSZXR1cm5WYWx1ZSgpIHsgQVNTRVJUKCFtX2RhdGEpOyB9CisgICAgICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPiBib29sIGdldFZhbHVlKFQmIGRhdGEpIFdBUk5fVU5VU0VEX1JFVFVS
TjsKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IG9wZXJhdG9yIE1heWJlPFQ+KCkKKyAg
ICAgICAgeyAKKyAgICAgICAgICAgIFQgdmFsdWU7IAorICAgICAgICAgICAgZ2V0VmFsdWUodmFs
dWUpOyAKKyAgICAgICAgICAgIHJldHVybiBNYXliZTxUPih2YWx1ZSk7CisgICAgICAgIH0gCisg
ICAgcHJpdmF0ZToKKyAgICAgICAgdm9pZCogbV9kYXRhOworICAgIH07CisgICAgCisgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGJvb2wgVHJ5TWFsbG9jUmV0dXJuVmFsdWU6OmdldFZhbHVlKFQm
IGRhdGEpIHsKKyAgICAgICAgdW5pb24gdSB7IHZvaWQqIGRhdGE7IFQgdGFyZ2V0OyB9IHJlczsK
KyAgICAgICAgcmVzLmRhdGEgPSBtX2RhdGE7CisgICAgICAgIGRhdGEgPSByZXMudGFyZ2V0Owor
ICAgICAgICBib29sIHJldHVyblZhbHVlID0gISFtX2RhdGE7CisgICAgICAgIG1fZGF0YSA9IDA7
CisgICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTsKKyAgICB9CisKICAgICAvLyBUaGVzZSBmdW5j
dGlvbnMgcmV0dXJuIE5VTEwgaWYgYW4gYWxsb2NhdGlvbiBmYWlscy4KLSAgICB2b2lkKiB0cnlG
YXN0TWFsbG9jKHNpemVfdCBuKTsKLSAgICB2b2lkKiB0cnlGYXN0WmVyb2VkTWFsbG9jKHNpemVf
dCBuKTsKLSAgICB2b2lkKiB0cnlGYXN0Q2FsbG9jKHNpemVfdCBuX2VsZW1lbnRzLCBzaXplX3Qg
ZWxlbWVudF9zaXplKTsKLSAgICB2b2lkKiB0cnlGYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3Qg
bik7CisgICAgVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdE1hbGxvYyhzaXplX3Qgbik7Cisg
ICAgVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFplcm9lZE1hbGxvYyhzaXplX3Qgbik7Cisg
ICAgVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywg
c2l6ZV90IGVsZW1lbnRfc2l6ZSk7CisgICAgVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJl
YWxsb2Modm9pZCogcCwgc2l6ZV90IG4pOwogCiAgICAgdm9pZCBmYXN0RnJlZSh2b2lkKiBwKTsK
IApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL01heWJlLmggYi9KYXZhU2NyaXB0Q29y
ZS93dGYvTWF5YmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjQzNGNk
Ci0tLSAvZGV2L251bGwKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL01heWJlLmgKQEAgLTAsMCAr
MSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTWF5YmVfaAorI2RlZmluZSBNYXliZV9oCisKKyNpbmNsdWRlICJBc3NlcnRpb25zLmgi
CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IE1heWJl
IHsKKyAgICBNYXliZShUIGRhdGEpCisgICAgICAgIDogbV9kYXRhKGRhdGEpCisgICAgeworICAg
IH0KKyAgICB+TWF5YmUoKSB7IEFTU0VSVCghbV9kYXRhKTsgfQorICAgIGJvb2wgZ2V0VmFsdWUo
VCYgb3V0KSBXQVJOX1VOVVNFRF9SRVRVUk47Citwcml2YXRlOgorICAgIFQgbV9kYXRhOworfTsK
KwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGJvb2wgTWF5YmU8VD46OmdldFZhbHVlKFQmIG91dCkK
K3sKKyAgICBvdXQgPSBtX2RhdGE7CisgICAgYm9vbCByZXN1bHQgPSAhIW1fZGF0YTsKKyAgICBt
X2RhdGEgPSAwOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
bGF0Zm9ybS5oCmluZGV4IDYwZDBmYTAuLmRmYzRiZmMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBA
IC02NzUsNCArNjc1LDEwIEBACiAjZGVmaW5lIFdURl9VU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcgMQogI2VuZGlmCiAKKyNpZiBDT01QSUxFUihHQ0MpCisjZGVmaW5lIFdBUk5fVU5VU0VEX1JF
VFVSTiBfX2F0dHJpYnV0ZV9fICgod2Fybl91bnVzZWRfcmVzdWx0KSkKKyNlbHNlCisjZGVmaW5l
IFdBUk5fVU5VU0VEX1JFVFVSTgorI2VuZGlmCisKICNlbmRpZiAvKiBXVEZfUGxhdGZvcm1faCAq
LwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA5ZTBhMmJkLi42ZTk0YzJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDA5LTA3LTIwICBPbGl2ZXIgSHVu
dCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWFrZSBpdCBoYXJkZXIgdG8gbWlzdXNlIHRyeSogYWxsb2NhdGlvbiBy
b3V0aW5lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjc0NjkKKworICAgICAgICBBZGQgZm9yd2FyZGluZyBoZWFkZXIgZm9yIE1heWJlIHR5cGUsIGFu
ZCBhZGQgbWlzc2luZyBudWxsIGNoZWNrCisgICAgICAgIHRvIEltYWdlQnVmZmVyIGNyZWF0aW9u
LgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL01heWJlLmg6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKToKKwogMjAwOS0wNy0yMCAgRHVtaXRy
dSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERp
bWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3Rm
L01heWJlLmggYi9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9NYXliZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmYzhiZGQKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9NYXliZS5oCkBAIC0wLDAgKzEsNCBAQAorI2lm
bmRlZiBXZWJDb3JlX0ZXRF9NYXliZV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX01heWJlX2gKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9NYXliZS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCA5NmU1NjA0Li5hMjdmZWRl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAK
QEAgLTY0LDcgKzY0LDkgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUm
IHNpemUsIGJvb2wgZ3JheVNjYWxlLCBib29sJiBzdWNjZXNzKQogICAgICAgICBieXRlc1BlclJv
dyAqPSA0OwogICAgIH0KIAotICAgIG1fZGF0YS5tX2RhdGEgPSB0cnlGYXN0Q2FsbG9jKHNpemUu
aGVpZ2h0KCksIGJ5dGVzUGVyUm93KTsKKyAgICBpZiAoIXRyeUZhc3RDYWxsb2Moc2l6ZS5oZWln
aHQoKSwgYnl0ZXNQZXJSb3cpLmdldFZhbHVlKG1fZGF0YS5tX2RhdGEpKQorICAgICAgICByZXR1
cm47CisKICAgICBBU1NFUlQoKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihtX2RhdGEubV9kYXRh
KSAmIDIpID09IDApOwogCiAgICAgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UgPSBncmF5U2Nh
bGUgPyBDR0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VHcmF5KCkgOiBDR0NvbG9yU3BhY2VDcmVhdGVE
ZXZpY2VSR0IoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>