Removed check for required file in Cache::!__loadEngine();
Fixed cache being wrote on each request from Configure::listObjects(); when data was an empty array
Removed extra call to App::getInstance(); in App::import();
Moved setting of App::!__loaded; inside of if statement.
Removed cake core install directory paths from the cached dir_map.
Changed uses('file'); to require statement in file.php
Changed uses('set'); to require statement in inflector.php
Removed check for existing inflections.php since this file has been included in 1.2 since Dev releases.
Added additional test for Helper::clean();
Fixed bug in Helper::!__clean();
Fixed random output of 1 when using MediaView;
Added csv mime type to MediaView
git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@7516 3807eeeb-6ff5-0310-8944-8be069107fe0
Made changes to test suite to allow running test without headers already sent errors.
Moved Component::initialize(), Controller::beforeFilter(); and Component::startup(); from Dipatcher::start() to Controller::constructClasses();
Removed Dispatcher::start();
Fixing model instances not being created
Adding additional test to CookieComponent to increase coverage to 95%
Optimizing Set::diff();
Fixing SessionComponent test and RequestHandlerComponent test
Fixing CakeSession tests, removed deprecated code from CakeSession
git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@7162 3807eeeb-6ff5-0310-8944-8be069107fe0
code coverage html diff view (which is the default view now)
refactorings for CodeCoverageManager
adding tests for html view, html diff view and a bunch of others
git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@6732 3807eeeb-6ff5-0310-8944-8be069107fe0
Implemented Validation::extension(); and Vaidation::range();
Updated copyright notices in all files"
git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@6296 3807eeeb-6ff5-0310-8944-8be069107fe0
Fixes#2988, AclComponent check() does not inherit permissions.
Fixes#3022, Inconsistent table alias quoting crashes Acl node lookup with PostgreSQL.
Fixes#3129, Console ACL Shell ACO View Broken
Fixes#3176, Problems with ACL support on Microsoft SQL Server.
Closes#3311 as invalid, DboSourceTest::testArrayConditionsParsing tests added
Fixes#3312, DB_ACL::check() fail returning right permission
Fixes#3344, Model->field adds incorrect condition under certain circumstances.
Fixes#3400, Cookie Component: When reading a non-existing key it throws a notice.
Fixes#3407, Since [5768] CookieComponent throws warning when used in beforeFilter().
Closes#3401, Added form test to ensure $Form->fields array is what the security component requires.
Updated AclComponentTest
Merged changes in app/ to cake/console/libs/templates/skel
Fixed generated link to Run More Test after running Group > All tests
git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@5776 3807eeeb-6ff5-0310-8944-8be069107fe0
Added test for changes to Dispatcher.
Updating Model::_ _saveMulti(), moved the insert statement to DboSource::insertMulti() this will allow database that do not support multiple inserts in one statement to save data.
git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@5460 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [2654]
Refactored the Object::cakeError()
Revision: [2653]
Adding check for custom error class in app/.
Added check for AppController::appError(); will be called if this method
is in AppController.
Revision: [2652]
Adding fix for Ticket #704
Revision: [2650]
Fixing scaffold CSS
Revision: [2648]
Adding fix for Ticket #717
Revision: [2647]
Adding fix for Ticket #718
git-svn-id: https://svn.cakephp.org/repo/trunk/cake/1.x.x.x@2685 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [2618]
Adding fix for Ticket #609
Revision: [2617]
Added fix for Ticket #684
Revision: [2616]
Adding patch from Ticket #649
Revision: [2615]
Adding fix for Ticket #608
Revision: [2614]
Additional fix for Ticket #584
Revision: [2613]
Adding fix for Ticket #584
Revision: [2612]
Added fix for undefined index notices
Revision: [2609]
Adding fix for Ticket #658
Revision: [2608]
Adding fix for Ticket #635, and code formatting fixes in FormHelper
Revision: [2607]
Adding fix for Ticket #636
Revision: [2606]
Adding fix to allow associations to be defined through non-associative arrays
Revision: [2605]
Adding fix for Ticket #672
Revision: [2604]
Adding fix for Ticket #708
Revision: [2603]
Adding fix for Ticket #687
Revision: [2602]
Refactoring database drivers, and adding fix for Ticket #398
Revision: [2601]
Merging change from model_php5.php
Revision: [2600]
Adding ODBC driver
Revision: [2599]
Adding fix for Ticket #702
Revision: [2598]
Adding fix for Ticket #699
Revision: [2597]
Fixing an issue in Model::set(), and moving limit() to DboSource
Revision: [2595]
Fixing unit test download URL in Bake
Revision: [2594]
Adding fix for Ticket #698
Revision: [2593]
Adding fox for Ticket #231
Revision: [2592]
Adding fix for Ticket #630, and updating MS SQL driver docstring
Revision: [2577]
Adding $alias property to enable future Oracle support
Revision: [2568]
Merging changes to bake from old sandboxes
git-svn-id: https://svn.cakephp.org/repo/trunk/cake/1.x.x.x@2620 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [2369]
Added missing doc comments to classes
Revision: [2368]
Removing core view paths from Configure class
Revision: [2367]
Updating View class to use new Configure class to search paths for view files
Revision:[ 2366]
Corrected loadControllers() in basics.php
Revision: [2365]
Updating function in basics.php to use new Configure class
Revision: [2364]
removed duplicate loading of app/config/bootstrap.php
Revision: [2363]
Added new Configure class to hold paths to models, views, and controllers related to Ticket #470.
Moved loading of app/config/bootstrap.php to Configure class from app/webroot/index.php.
Added creating instance of Configure instance in cake/bootstrap.php
Added example of setting custom paths in app/config/bootstrap.php
Corrected error in Object::_savePersistent().
Revision: [2362]
Added fix for Ticket #534
Revision: [2361]
Refactoring persistent code a little more.
File now holds a variable with the serialized class and is include vs. reading file contents.
Revision: [2360]
Refactored persistent methods to use cache()
Revision: [2359]
Fixing array_combine() Warning in Model::generateList()
Revision: [2358]
Set var $persistModel to false by default
Revision: [2357]
Moved persistent code to Object class.
Moved $TIME_START variable to top of file.
added __sleep methods for models
Revision: [2356]
Reverting persistent changes to Model class
Revision: [2355]
Adding fix for Ticket #550
Revision: [2354]
Corrected errors in persistent code
Revision: [2353]
Corrected overwrite in the model/model_php4.php file.
Revision: [2352]
Adding persistent methods to Model class.
This will allow caching of classes.
Added app/tmp/persistent directory.
Revision: [2351]
Reverting changes to dbo_source.php in [2350]
Revision: [2350]
Removed name pattern matches related to Ticket #534
Revision: [2349]
Adding fix for Ticket #548
Revision: [2348]
Adding fixes from Ticket #547.
Revision: [2347]
Adding fixes from Ticket #546.
Revision: [2346]
Adding fix for Ticket #527
Revision: [2345]
Refactored Html::url()
Revision: [2344]
Last fix for Ticket #483
Revision: [2343]
Updating last commit
Revision: [2342]
Adding fix for Ticket #483
Revision: [2341]
Adding fix for Ticket #543, DBO will now only cache SELECT queries
Revision: [2340]
Adding session_write_close() to the CakeSession::__regenerateId()
Revision: [2339]
Adding patch from Ticket #544
Revision: [2338]
Adding patch from Ticket #529
Revision: [2337]
Adding patch from Ticket #528
Revision: [2336]
Removing the converting of \n to <br /> in Sanitize::html()
Revision: [2335]
Added bash script from Ticket #533
Revision: [2334]
Added enhancement for Ticket #474
Revision: [2333]
Correcting errors introduced with prior fix
Revision: [2332]
Correcting errors introduced with prior fix
Revision: [2331]
Performance optimization for NeatArray::findIn(): replaced foreach loop with for
Revision: [2330]
Minor performance optimization: Replacing all occurrences of low() with strtolower()
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@2370 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [2193]
Adding fix for Ticket #471
Revision: [2192]
Adding fix from Ticket #464.
Revision: [2191]
Adding fix for Ticket #461
Revision: [2190]
Adding fix for array_merge_recursive() error when unbindModelis used
Revision: [2189]
merging changes made in model_php5.php
Revision: [2188]
Fixing controller so $viewPath can be set as a var
Revision: [2186]
Adding Security component
Revision: [2185]
Adding additional RequestHandler detection, form security authentication, and automagic view variable $data
Revision: [2183]
Fixing Ticket #473
Revision: [2182]
Adding fix for Ticket #261
Revision: [2181]
Changing MySQL column defs from 12 hour times to 24 (#465)
Revision: [2180]
Fixing Tickets #463 and #462, and an error in Controller::setAction()
Revision: [2179]
Fixing a bug I found in AjaxHelper::link(), and changing the stopwatch time to 4 decimals
Revision: [2177]
Added patch from Ticket #459
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@2195 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [2158]
Changing vendors() to user require_once().
Revision: [2157]
Fixed missing directory separator.
Revision: [2156]
Added a few more fixes for Ticket #447
Revision: [2155]
Reverting changes in [2153]
Adding fix for Ticket #447
Revision: [2154]
Adding patch from Ticket #448
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@2159 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [2120]
Added fix for error in Controller::cleanUpFields().
Fixed typo in Scaffold::__scaffoldUpdate().
Revision: [2119]
Added fix for missing view error.
Added changes to allow SessionComponent::flash() to return similar to what was suggested in Ticket #430.
Changed delimiter to -! in the arrays used in DboSource::conditions().
Fixed single quotes being added when value was empty
Revision: [2118]
Corrected some bugs found in DboSource::conditions();
Added loading of app/config/bootstrap.php to index.php after the core bootstrap.php loads.
Changed doc block comment in app/config/bootstrap.php
Revision: [2117]
"Adding app/config/bootstrap.php.
Used for application wide settings"
Revision: [2116]
"Added better regex to the DboSource::fields()"
Revision: [2115]
Moving the DIRECTORY_SEPARATOR to top section of the file
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@2121 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [2098]
Removed check for database class to load model classes from the models directory.
Fixed missing views not being found.
Revision: [2097]
Fixed the WWW_ROOT setting
Revision: [2096]
Changed the way Sessions component is added to the components array
Revision: [2095]
Moved the WWW_ROOT define.
Revision: [2094]
Components/Helpers etc. in AppController are now automatically added to all controllers
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@2099 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [2025]
A little more work on plugin to set some default routing.
Revision: [2024]
Changed DboSource::field() so the name() is not called for some field variables.
Revision: [2023]
Changes made in [2022] should only check if the $conditions is not empty.
Revision: [2022]
Changed DboSource::conditions() so it will add the "ticks" needed around the Model.field names.
The Model.field name conventions must be used for this to work.
Revision: [2021]
Adding fix for Ticket #405
Revision: [2020]
Added fix for Ticket #403
Revision: [2019]
Added patch from Ticket #404.
Fixing formatting of files.
Revision: [2018]
Fixing formatting of files
Revision: [2017]
Fixed bad search and replace
Revision: [2016]
Fixing formatting of files
Revision: [2015]
Replaced all 3 space indents with 4 space indents
Revision: [2014]
Updating variables to use the naming proper conventions
Revision: [2013]
Added patch from Ticket #406
Revision: [2012]
Adding fix for Ticket #407.
Fix variables that where not formatted per the coding conventions
Revision: [2011]
Adding patch from Ticket #401
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@2026 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [2009]
Adding fixes for session errors posted in the google group.
Changed the header for PHP version in the model classes.
Change uses() back to require_once
Revision: [2008]
Adding reference back to the PHP 4 model
Revision: [2007]
Merging changes from model_php5
Revision: [2006]
Fixing recursive associations, adding whitelist to Model::save
Revision: [2005]
Added fix for error in CakeSession class.
Updated home.thtml
Revision: [2004]
Rearranged some of the defines moving the most often changed ones to the top of the script
Revision: [2003]
Moved SQL files distributed with the core to app/config/sql/
Removed app/config/routes.php.default
Fixed class_exists check in TextHelper
Revision: [2002]
adding sql directory
Revision: [2001]
Fixed error when cake distribution is installed inside of the DOCUMENT ROOT
Revision: [2000]
Adding checks for classes that are already loaded so the require() calls will not error
Revision: [1999]
Replacing all require_once() with require()
Revision: [1998]
Moved creation of the Dispatcher object to app/webroot/index.php
Revision: [1997]
Adding session sql file
Revision: [1996]
Revision: [1995]
Fixing session db queries
Revision: [1994]
Change the require_once in bootstrap to require.
Merged changes John made to the CakeSession database methods
Revision: [1993]
Removing some constants that are not needed
Revision: [1992]
Adding fix for Ticket #400
Revision: [1991]
Fixing Ticket #348
Revision: [1990]
Fixing Tickets #397 and #399
Revision: [1989]
Fixed callbacks in JavaScript events and Ajax, fixed Controller::beforeRender so you can set view variables, and fixed Ticket #394
Revision: [1988]
Renamed the $dir param to $direction.
Added default value to the DboSource::order() $direction param.
Revision: [1987]
Adding changes back to the sessions class I reverted in [1984]
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@2010 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [1985]
Changed DboSource?::order() to allow passing an array in the order param
Revision: [1984]
Reverting changes from [1983]
Revision: [1983]
Merging change from [1966] and [1967]
Revision: [1982]
Adding fix for DboSource::order().
This allows setting the order in the find methods.
Revision: [1981]
cleaned up code
Revision: [1980]
Corrected the array keys in the regex I added
Revision: [1979]
Added check to DboMysql::value() that does not add quotes around a numerical value.
Refactored DboSource::conditions() adding better regex.
Revision: [1978]
Added check for LIKE in a condition array this fixes the = being added.
Revision: [1977]
Added fix for Ticket #392
Revision: [1976]
Adding changes suggested in Ticket #381.
These have not been fully tested.
Revision: [1975]
Added fix for Ticket #391
Revision: [1974]
Added patch from Ticket #390
Revision: [1973]
Adding patch from Ticket #386
Revision: [1972]
Added patch from Ticket #385.
Changed wording of a comment.
Revision: [1971]
Added patch from Ticket #383
Revision: [1970]
Adding fix for Ticket #395
Revision: [1969]
Adding more detailed comment to path defines
Revision: [1968]
Making a few more changes to the path settings
Revision: [1965]
fixing path issue with loading PagesController
Revision: [1964]
Added model method for getting column types by field
Revision: [1963]
Corrected paths to the tmp directory.
Making a few more changes to the defines in index.php
Revision: [1962]
Moving tmp directory to app
Revision: [1961]
Starting separation of core from the application.
Revision: [1960]
Adding vendors directory to app directory
Revision: [1959]
Finished support for recursive associations. Still needs some testing...
Revision: [1958]
Adding fix for Ticket #387, and automagic id's for form inputs
Revision: [1957]
Revision: [1956]
Adding fix for error reported in Google Group: http://groups.google.com/group/cake-php/browse_thread/thread/395593a3cea34174
Revision: [1955]
Adding fix for Controller::referer()
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@1986 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [1841]
Merging changes made in model_php5.php to model_php4.php
Revision: [1840]
Adding fix for PHP 5 when using mysql_connect setting.
Commented out the call to Dbo*::disconnect(). This was closing connections early.
Adding fixe for Ticket #302.
Adding Enhancement for Ticket #300.
Adding fix for Ticket #299
Adding Enhancement for Ticket #298
Adding fix for Ticket #297
Adding Enhancement/Patch from Ticket #296
Revision: [1838]
working on deeper recursive joins
Revision: [1837]
Updating copyright information in all files
Revision: [1836]
Adding fix when setting a field value to 0.
Before it would set this to NULL, which was not expected result.
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@1842 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [1815]
Adding the path.php require back, and removing the code that was in the path.php file.
Revision: [1814]
More work on Model.
Removed all code from app/webroot/index.php that is moved to the bootstrap file.
Added CAKE_SESSION_TIMEOUT define in app/config/core.php
Revision: [1813]
Adding a bootstrap file to remove need to edit index.php anymore
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@1816 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [1761]
Removing old db_acl.sql
Revision: [1759]
Removed unneeded calls to uses().
Changed basics.php listClasses() no longer using folder class.
Starting corrections in DboPostgres class.
Adding missing DboPostgres::query().
Added missing doc blocks to AjaxHelper.
Fixed undefined keys in FormHelper::generateFields()
Reformatted FormHelper::generateFields() adding open and close brackets where needed
Revision: [1758]
Fixed typo
Revision: [1757]
Fixed errors found when using PHP 4.
Fixed a scaffold error
Revision: [1756]
Merging changes to model_php4.php
Revision: [1755]
Fixed scaffolding for the changes made to the model.
Fixed Model::isForeignKey(), replaced array_key_exists with in_array, other function was failing
Revision: [1754]
Committing changes from bundt model to beta.
DataSources will not be in the beta release
Revision: [1751]
Cleaning up a little more in the code.
Removing loading of log.php unless it is really needed.
Refactored dispatcher to speed up the stripslashes code if it is called
Revision: [1748]
removing all references to error_messages and deleting the file
Revision: [1747]
updated more error messages
Revision: [1746]
removing all error message defines
Revision: [1745]
added _() method from 1.0 to basics.php only used to return string right now
Revision: [1744]
Adding fix for ticket #220
Revision: [1743]
More work on ErrorHandler class
Revision: [1742]
Renaming error view for missing database connection
Revision: [1741]
More work on ErrorHandler class
Revision: [1740]
More work on error class
Revision: [1739]
Replacing all $_SERVER variable check with env() in basics.php
Revision: [1738]
Adding env() to basic
Revision: [1737]
Updated session to use env()
Revision: [1736]
Removing ternary operators from Dispatcher
Revision: [1735]
Per nates request I am rolling back ACL to [1373]
Revision: [1734]
Removed the IP in the session class this was not very reliable.
Added a time setting that generates current time adding the Security::inactiveMins() to the session
Removed code that was added to basics.php to replace gethostbyaddr().
Added CAKE_SESSION_STRING define to core.php which is used in the by the Session class to generate a hashed key.
Revision: [1733]
Moving errors messages to ErrorHandler class.
Updating errors view for use with new class.
Updating Scaffold to use new class.
Updated Dispatcher to use new class.
Removing methods from Object class
Revision: [1732]
Adding ErrorHandler class
Revision: [1731]
Adding fix for Ticket #223
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@1762 3807eeeb-6ff5-0310-8944-8be069107fe0
Revision: [1638]
removing php short tags
Revision: [1637]
Remove renderElememnts loading of helpers also, forgot it in the last commit
Revision: [1636]
Refactoring after profiling code.
Session was creating a new instance of Dispatcher removed the need for it.
Added a check to the Component class to pass the base to the SessionComponent class, will refactor that at a later time.
Changed View class so it would not load helpers when rending a layout, no need for that.
A great performance boost after the change.
Change the loadModels method call in app/webroot/index.php.
Will only attempt the loadModels call if the AppModel class is not in memory, and the Database class is in memory.
Removed all unnecessary calls to basics uses(). Again another big performance increase.
Added fix to the Html::guiListTree() after discussing the output that is expected.
A ticket was closed on this already.
Revision: [1635]
Removing calls to basic uses()
Revision: [1634]
Removing calls to basics uses() that are not needed.
Revision: [1633]
Removing calls to basics uses() that are not needed.
Moved Object class further up in the loading order
Revision: [1632]
adding fix for Ticket #132
Revision: [1631]
Added fix from Ticket #122
Revision: [1630]
Scaffold views can now be placed in a view directory.
These will override the core.
Example (Must have the scaffold dot name):
app/views/posts/scaffold.list.thtml
app/views/posts/scaffold.new.thtml
app/views/posts/scaffold.edit.thtml
app/views/posts/scaffold.show.thtml
Revision: [1629]
Think I fixed the issue with scaffold showing proper dates prior to January 1 1970 00:00:00.
Revision: [1628]
Added a few more change to allow saving dates prior to January 1 1970 00:00:00.
Still a few issues with this, but will get them figured out soon.
Changed scaffold to use only one form view.
Revision: [1627]
Added fix for Ticket #189
Revision: [1626]
Added fix for Ticket #120.
Revision: [1625]
left justified doc blocks
Revision: [1624]
remove files from uses() that are loaded by default in app/webroot/index.php no reason to attempt to load them again in the classes
Revision: [1623]
adding check to the loadModels and loadController that will only attempt to load files if the classes are not already in memory
Revision: [1622]
Adding fix to time helper that was lost in a previous merge
Removing all tabs from code
Revision: [1621]
Addtional model validation fixes
Revision: [1620]
fixed parse error
Revision: [1619]
Fixing ticket #102
Revision: [1618]
correcting mime types and keywords
Revision: [1617]
correcting mime types and keywords
Revision: [1616]
fixed link in footer
Revision: [1615]
Fixing ticket #207
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@1639 3807eeeb-6ff5-0310-8944-8be069107fe0
Updated headers.
beginning to clean up files that are not used in this version of Cake
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@1593 3807eeeb-6ff5-0310-8944-8be069107fe0
Author: phpnut
Date: 10:09:03 PM, Monday, October 31, 2005
Message:
Removed references in the Session class
[1283]
Author: phpnut
Date: 8:47:37 PM, Monday, October 31, 2005
Message:
Added fix to the Controller::constructClassess().
The database should have an instance available if a component will use it.
[1282]
Author: phpnut
Date: 8:36:07 PM, Monday, October 31, 2005
Message:
Updated the Model association methods to correct and error I introduced when reactoring last week.
Added a return from each of the settings in Security::inactiveMins(); This class is not fully implemented.
Updated scaffold and dipatcher with changes to the session class.
Fixed problem with session not working properly.
Added a regenrate id for sessions.
When CAKE_SECURITY is set to high this will regenrate a new session key on each request.
The old session file will be removed from the file system. This is a added security measure.
[1270]
Author: phpnut
Date: 1:55:28 PM, Sunday, October 30, 2005
Message:
Updated Session class to regenrate a new session key on each request when security level set to high.
Updated doc comments in some classes
[1269]
Author: phpnut
Date: 9:49:43 AM, Sunday, October 30, 2005
Message:
Added a fix for Ticket #105
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@1286 3807eeeb-6ff5-0310-8944-8be069107fe0
Author: phpnut
Date: 3:20:08 AM, Friday, October 28, 2005
Message:
Adding fix for Ticket #107
Revision: 1244
Author: phpnut
Date: 2:18:00 AM, Friday, October 28, 2005
Message:
Adding config setting to allow setting a admin path that can access admin methods only on a controller.
Added ability to add objects to the session.
Updated some scaffold templates.
git-svn-id: https://svn.cakephp.org/repo/trunk/cake@1246 3807eeeb-6ff5-0310-8944-8be069107fe0