diff --git a/_darcs/checkpoints/inventory b/_darcs/checkpoints/inventory deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/_darcs/format b/_darcs/format deleted file mode 100644 index 020c452187..0000000000 --- a/_darcs/format +++ /dev/null @@ -1 +0,0 @@ -darcs-1.0 diff --git a/_darcs/inventories/20080517153140-84dde-9a66640ac27da548d82459183d14b60d9e0c241a.gz b/_darcs/inventories/20080517153140-84dde-9a66640ac27da548d82459183d14b60d9e0c241a.gz deleted file mode 100644 index 3e909155ba..0000000000 --- a/_darcs/inventories/20080517153140-84dde-9a66640ac27da548d82459183d14b60d9e0c241a.gz +++ /dev/null @@ -1,99 +0,0 @@ -[initial database -Evan Prodromou **20080505135019] -[default index files -Evan Prodromou **20080505135228] -[documentation for URLs -Evan Prodromou **20080505150839] -[add standard directories -Evan Prodromou **20080506151729 - - Added some of the standard directories - -] -[beginnings of PHP -Evan Prodromou **20080507164807] -[add data objects -Evan Prodromou **20080507171542] -[start showstream -Evan Prodromou **20080508162145] -[read-only stuff -Evan Prodromou **20080509021604] -[considerable coding -Evan Prodromou **20080514145436] -[head and foot menus -Evan Prodromou **20080514184702] -[deny access to include files -Evan Prodromou **20080514190009] -[remove placeholder index files -Evan Prodromou **20080514190105] -[move library files to lib -Evan Prodromou **20080514190300] -[move docs to doc -Evan Prodromou **20080514190341] -[move sql file to db -Evan Prodromou **20080514190411] -[license block for source code -Evan Prodromou **20080514192648 - - Added GNU Affero GPL license block to source code. - - Added name "LACONICA". I think it should work fine. - -] -[settings and avatars -Evan Prodromou **20080515162844 - - Did considerable work on the settings section. - - Redesigned the DB to allow avatars. Each avatar image has a size and - an URL. There can be multiple avatars per profile, just different sizes. - - Added accessors in Profile for avatar. Show the avatar in lots of - places, where it makes sense. Constants for avatar sizes in common.php. - -] -[upload and change avatars -Evan Prodromou **20080517122045 - - code to upload and change avatars. - - combined some code in the settings area, too. - -] -[bogus version of common_local_url() -Evan Prodromou **20080517135138 - - Threw together a bogus version of common_local_url(), which should - work for now. But eventually it should use pretty URLs if possible. - -] -[move the goal posts -Evan Prodromou **20080517140532 - - change the version numbers for an internal 0.1 test release (putting - it on the server!). - - Also, added some tweedly date formatting, just to have something - there. Needs some thought. - -] -[more twiddling -Evan Prodromou **20080517144642 - - Placeholder for broadcasting notice updates. - - Fixup the local url function to include server and path. - - Add server and path to configuration array. - - Make new notice 303 redirect to shownotice. - - Make redirects work. - - Add link in streams to notices. - -] -[make config kinda work -Evan Prodromou **20080517152958] -[flipped a couple of TODOs around -Evan Prodromou **20080517153127] \ No newline at end of file diff --git a/_darcs/inventories/20080522172623-84dde-81f0da83f977503dbeb718b9c9c8017fb6479f04.gz b/_darcs/inventories/20080522172623-84dde-81f0da83f977503dbeb718b9c9c8017fb6479f04.gz deleted file mode 100644 index 01d8760b0a..0000000000 --- a/_darcs/inventories/20080522172623-84dde-81f0da83f977503dbeb718b9c9c8017fb6479f04.gz +++ /dev/null @@ -1,366 +0,0 @@ -Starting with tag: -[TAG 0.1 -Evan Prodromou **20080517153140] -[fixes to make it all lint -Evan Prodromou **20080517154701 - - Ran everything through php -l, found out that it didn't compile. - - So: fixed the am-I-running-in-Laconica check at the top of each file. - Some syntax fixes in shownotice, showstream, common. - -] -[correct placement of common -Evan Prodromou **20080517154942] -[correct path to DB_DataObject -Evan Prodromou **20080517155326] -[fix comma in db script -Evan Prodromou **20080517155754] -[fix check in config.php.sample -Evan Prodromou **20080517160654] -[common_local_url() second parameter optional -Evan Prodromou **20080517160908] -[some more todos -Evan Prodromou **20080517161332] -[handle empty path better -Evan Prodromou **20080517161548] -[add action class to default loads -Evan Prodromou **20080517161817] -[fixup argument handling in action superclass -Evan Prodromou **20080517162305] -[try to make register work -Evan Prodromou **20080517162932] -[try to fix arghandling in action -Evan Prodromou **20080517163749] -[change from class call on action to obj call -Evan Prodromou **20080517163917] -[fix array key check -Evan Prodromou **20080517164218] -[fix form output in register -Evan Prodromou **20080517164349 - - Two twiddly bits for the form output. - -] -[common_start_element -> common_element_start -Evan Prodromou **20080517170430] -[wrong title on register -Evan Prodromou **20080517170617] -[buttons work right -Evan Prodromou **20080517170920] -[fix check for POST -Evan Prodromou **20080517171501] -[add stub email canonicalizer -Evan Prodromou **20080517172110 - - Added a stub function to stand in for eventual email canonicalizer. - -] -[require data classes in common -Evan Prodromou **20080517172528] -[path separator problem in data classes -Evan Prodromou **20080517172654] -[fix INSTALLDIR use in common.php -Evan Prodromou **20080517173424 - - I was using $INSTALLDIR instead of INSTALLDIR - -] -[misspelled function name -Evan Prodromou **20080517173626] -[change username to nickname -Evan Prodromou **20080517174219] -[fixup some nickname handling -Evan Prodromou **20080517175022] -[require once for settings actions -Evan Prodromou **20080517175416] -[fixup login form -Evan Prodromou **20080517190142] -[require stream stuff -Evan Prodromou **20080517191034] -[canonicalize -> canonical -Evan Prodromou **20080517191128 - - typo - -] -[change profile argument to nickname -Evan Prodromou **20080517191430] -[change how the user profile is fetched -Evan Prodromou **20080517192001] -[fix notice counting code -Evan Prodromou **20080517192151] -[handle empty subscription list -Evan Prodromou **20080517192447] -[check results of setting current user -Evan Prodromou **20080517193030] -[ensure rather than check for session -Evan Prodromou **20080517193520] -[better button for posting notes -Evan Prodromou **20080517193833] -[fix button on newnotice -Evan Prodromou **20080517194003] -[fix typo in common_date_string -Evan Prodromou **20080517194133] -[fix created, messages -Evan Prodromou **20080517195201] -[go to public timeline on logout and handle missing user more gracefully -Evan Prodromou **20080517195449] -[fix typo in newnotice -Evan Prodromou **20080517195724 - - there was a typo, and I removed it. - -] -[use cast object for datetimes -Evan Prodromou **20080517201411] -[dates are already strings -Evan Prodromou **20080517201719] -[save profile url -Evan Prodromou **20080517202132] -[hide subscribe stuff if looking at your own page -Evan Prodromou **20080518011808] -[fix table name in subscriptions.php -Evan Prodromou **20080518012850] -[sub => subs consistently -Evan Prodromou **20080518013312] -[add header and footer to subscriptions -Evan Prodromou **20080518013747] -[fix interpolation of profile_id in query -Evan Prodromou **20080518014207] -[smaller packet -Evan Prodromou **20080518015551] -[header and footer on subscribers -Evan Prodromou **20080518125253] -[off-by-one error in notice stream -Evan Prodromou **20080518185940] -[better handling of zero values in stats -Evan Prodromou **20080518190220] -[fix path to files, some TODOs -Evan Prodromou **20080518191056] -[fix form for avatars -Evan Prodromou **20080518191326] -[move avatars to their own dir -Evan Prodromou **20080518191750] -[change defaults to use avatar dir -Evan Prodromou **20080518191849] -[better deletion of old avatars -Evan Prodromou **20080518193951] -[timestamps for avatar -Evan Prodromou **20080518194653] -[try to fix updating in profile -Evan Prodromou **20080519122445] -[all updates use original now -Evan Prodromou **20080519122708] -[add common_password -Evan Prodromou **20080519131808] -[fix form in password -Evan Prodromou **20080519132118] -[update avatar table -Evan Prodromou **20080519134057] -[better headers -Evan Prodromou **20080519141219 - - Added H1 headers to all pages. Added H2 headers to sections of pages, - where appropriate. - - Moved a lot of TODOs around. - - Made the public stream the default if no action is specified. - -] -[whitespace in showstream -Evan Prodromou **20080519141351] -[fix link to profilesettings in settings menu -Evan Prodromou **20080519141736] -[fix output of statistics -Evan Prodromou **20080519141943] -[better stats -Evan Prodromou **20080519142807] -[break out utility functions to util.php -Evan Prodromou **20080520130535] -[convert html-generation functions to use XMLWriter -Evan Prodromou **20080520132722] -[change textarea to start and end -Evan Prodromou **20080520133008] -[fix calling for textarea elements -Evan Prodromou **20080520133220] -[type declaration -Evan Prodromou **20080520133640] -[add a space to textarea -Evan Prodromou **20080520133825] -[add alt to all images -Evan Prodromou **20080520134631] -[add notice id -Evan Prodromou **20080520153629] -[license block and move theme stuff -Evan Prodromou **20080520171353] -[add image to config -Evan Prodromou **20080520171711] -[fix license title -Evan Prodromou **20080520171809] -[copy in SimpleLife theme -Evan Prodromou **20080520172241] -[make the code use the default style -Evan Prodromou **20080520173427] -[better forms for new theme -Evan Prodromou **20080520174759] -[typo in form functions -Evan Prodromou **20080520175105] -[add a label for submit button -Evan Prodromou **20080520175906] -[add nbsp to submit button label -Evan Prodromou **20080520180640] -[indent HTML -Evan Prodromou **20080520180750] -[fix problem with uninitialized xw object -Evan Prodromou **20080520181040] -[better login button -Evan Prodromou **20080520181444] -[forgot the footer -Evan Prodromou **20080520181906] -[add validation methods to classes -Evan Prodromou **20080520185756] -[call validate before saving objects -Evan Prodromou **20080520191032] -[trim whitespace -Evan Prodromou **20080520191412] -[fix validation of url -Evan Prodromou **20080520192634] -[float images in stream left -Evan Prodromou **20080520192901] -[add a sidebar -Evan Prodromou **20080520193636] -[fix div in profile -Evan Prodromou **20080520194008] -[float notices left -Evan Prodromou **20080520194326] -[reformat showstream -Evan Prodromou **20080520201120] -[change relative widths of sidebar and notices again -Evan Prodromou **20080520201440] -[fix element in notice form -Evan Prodromou **20080520201738] -[smaller textbox -Evan Prodromou **20080520202500] -[highlight notice -Evan Prodromou **20080520202747] -[close ul for foot menu -Evan Prodromou **20080520203002] -[move notices and sidebar relative to each other -Evan Prodromou **20080520204259] -[clear both for footer -Evan Prodromou **20080520204639] -[better menuish stuff -Evan Prodromou **20080520205152] -[fix menuish again -Evan Prodromou **20080520205756] -[ease up on the validation -Evan Prodromou **20080520210119] -[fixup footer menu and fix syntax error in profile.php -Evan Prodromou **20080520210437] -[extract textarea code and make bio a textarea -Evan Prodromou **20080520211945] -[fixup textarea again -Evan Prodromou **20080520212319] -[remove validation code -Evan Prodromou **20080521110253] -[validation in form handlers -Evan Prodromou **20080521112707 - - Moved validation code from classes to form handlers. Probably better - in the classes, but I can't quite grok the validate() method in - DB_DataObject, so for now I'm going to do it the old-fashioned way. - -] -[default avatars -Evan Prodromou **20080521114624] -[default avatar -Evan Prodromou **20080521115727] -[change measurement of updated profiles -Evan Prodromou **20080521121307] -[correct error-handling in newnotice -Evan Prodromou **20080521122604] -[move error display to save_new_notice -Evan Prodromou **20080521123106] -[declare config global for show_notice in streams -Evan Prodromou **20080521133951 - - This is needed to get the default avatar, but it was missing. - -] -[better formatting in profile -Evan Prodromou **20080521134849] -[rss feed plus -Evan Prodromou **20080521143351 - - Added an action for creating an RSS 1.0 (RDF) feed. To make this work, - added a couple of helper functions to util, and changed the HTML stuff - to use the helper functions. - - Also, changed a bit of formatting in the profile. Yeah, not a clean - changeset. - -] -[add w3dtf date to rss 1.0 items -Evan Prodromou **20080521145916] -[full path for avatars -Evan Prodromou **20080521151227] -[add RSS 1.0 link to header of showstream -Evan Prodromou **20080521152404] -[falsely claim rss 1.0 is rss 2.0 -Evan Prodromou **20080521153652] -[fix path to default avatars -Evan Prodromou **20080521154234] -[fixup default avatar urls by using common function -Evan Prodromou **20080521155448] -[mismatched parens -Evan Prodromou **20080521155611] -[wrong path for defaults -Evan Prodromou **20080521155849] -[fixup subscription links -Evan Prodromou **20080521183645] -[fix subscriptions a bit -Evan Prodromou **20080521185602] -[off-by-one error in subscriptions -Evan Prodromou **20080521190640] -[close unclosed rows in subscriptions -Evan Prodromou **20080521191135] -[re-write the subscriptions section -Evan Prodromou **20080521192048] -[define undefined, order subs -Evan Prodromou **20080521192912] -[get the correct data for subscribers/subscriptions -Evan Prodromou **20080521193452] -[change some todos -Evan Prodromou **20080521194238] -[strip slashes -Evan Prodromou **20080522103630 - - Check if automated slash-adder is on, and if so, strip out automated - slashes. - -] -[abstract out RSS 1.0 generation to allow multiple streams -Evan Prodromou **20080522112954] -[RSS feeds for public stream and friends streams -Evan Prodromou **20080522114152] -[fix query and description for allrss -Evan Prodromou **20080522114839] -[TODOs and docs and openmicroblogging spec -Evan Prodromou **20080522172006 - - Moved around a few TODOs. - - Linked to docs in the foot menu better. - - Added a specification for the openmicroblogging standard. - -] -[move the goalposts for 0.2 -Evan Prodromou **20080522172530 - - I pushed a lot of TODOs down, renamed the 0.2 release to 0.3, and made - a new release 0.2 in between. - -] \ No newline at end of file diff --git a/_darcs/inventories/20080610150429-34904-c09bc4ef00a38bcdbf740f35291c8ea35869dcae.gz b/_darcs/inventories/20080610150429-34904-c09bc4ef00a38bcdbf740f35291c8ea35869dcae.gz deleted file mode 100644 index 8906048123..0000000000 --- a/_darcs/inventories/20080610150429-34904-c09bc4ef00a38bcdbf740f35291c8ea35869dcae.gz +++ /dev/null @@ -1,475 +0,0 @@ -Starting with tag: -[TAG 0.2 -Evan Prodromou **20080522172623] -[tags and XRDS -Evan Prodromou **20080522183421 - - Starting the process of remote subscriptions. - - First, add the capacity to mint tags. May in the future want to allow - some kind of UUID or URL for unique URIs. New config options for tag - authority and date, and a function for minting tags. - - Store URIs in the DB. If the admin changes his/her tag config, this - shouldn't change the URIs in the DB. Unless they really want to make - that happen. - - Generate an XRDS document with the appropriate URLs for microblogging. - Also, redefined some stuff in openmicroblogging.txt. And moved the file. - -] -[typo in common_mint_tag -Evan Prodromou **20080522184027] -[generate classes for db schema with URIs -Evan Prodromou **20080522184109] -[use notice URIs in RSS feeds -Evan Prodromou **20080522184434] -[add tags on creation of notices and users -Evan Prodromou **20080522185500] -[use notice URI in channel items list -Evan Prodromou **20080522191028] -[fix notice generation in rss channels -Evan Prodromou **20080522191436] -[oauth discovery and all new actions -Evan Prodromou **20080526112700 - - Updated the spec to include OAuth discovery. - - Added new actions for all the OMB URLs. - -] -[update for new version of OMB protocol -Evan Prodromou **20080526130328 - - After finding OAuth Discovery, I rewrote the OMB spec to support it - better. This version of the XRDS generator supports OAuth Discovery - more completely. - -] -[fixups for xrds -Evan Prodromou **20080526131551 - - Corrected the definition of showService to show all the parameters. - - Fixed the localID part so it uses $user->uri; getUri() was throwing an - error. - -] -[fix typo in xrds -Evan Prodromou **20080526131953 - - I'd spelled "ENDPOINT" as "ENDPONT" in the code. whoops! - -] -[move OMB and OAUTH defs to their own lib file -Evan Prodromou **20080526151332] -[client side of distributed subscription almost complete -Evan Prodromou **20080527114219] -[server-side storage model -Evan Prodromou **20080527200721 - - First pass at a server-side storage model. New tables for consumers, - tokens, and nonces, with associated classes. An OAuthDataStore class - interfaces with the OAuth.php library to enable server logic. - - Some additional work to get pretty-OK random number generation into - the utilities library. Use /dev/urandom if available; else use - mt_rand(). - -] -[remove bogus validation code -Evan Prodromou **20080528134804] -[add timestamp to avatar filenames to prevent overlap -Evan Prodromou **20080528140321] -[fix submit button for avatar -Evan Prodromou **20080528141432] -[fix source link -Evan Prodromou **20080528141555] -[better timestamped avatar filenames -Evan Prodromou **20080528143030] -[don't scale avatar if original already matches size -Evan Prodromou **20080528144202] -[registration requires accepting the license -Evan Prodromou **20080528164222] -[move license label to _after_ the checkbox -Evan Prodromou **20080528170438] -[get rid of the license label, since it mucks everything else up. -Evan Prodromou **20080528170556] -[show error messages in registration form -Evan Prodromou **20080528170752] -[fix cc license url -Evan Prodromou **20080528171012] -[float text of license stuff right, to make a more pleasing license block -Evan Prodromou **20080528171232] -[try to float license image left again -Evan Prodromou **20080528171434] -[try to float license text right -Evan Prodromou **20080528171543] -[fixed widths -Evan Prodromou **20080528171626] -[add span around license link -Evan Prodromou **20080528171758] -[add greenBg for license -Evan Prodromou **20080528171944] -[whole footer has greenBg -Evan Prodromou **20080528172041] -[undo that -Evan Prodromou **20080528172149] -[paginate on showstream -Evan Prodromou **20080528173129] -[forgot commas! -Evan Prodromou **20080528173231] -[better page numbers -Evan Prodromou **20080528173417] -[add pagination to all and public -Evan Prodromou **20080528173917] -[update TODOs and try to reformat notices -Evan Prodromou **20080528174247] -[change to use correct width classes -Evan Prodromou **20080528174412] -[take out spans -Evan Prodromou **20080528174621] -[take out avatar floatleft -Evan Prodromou **20080528174807] -[take out content rendering, seems to do something strange -Evan Prodromou **20080528174924] -[add doc action -Evan Prodromou **20080528182707] -[error in file_exists() -Evan Prodromou **20080528183022] -[stub of about -Evan Prodromou **20080528183709] -[add more docs -Evan Prodromou **20080528185637] -[source document -Evan Prodromou **20080528193121] -[dump args to browser for debugging -Evan Prodromou **20080529151317] -[fix checking boolean parameters -Evan Prodromou **20080529151602] -[even better boolean handling -Evan Prodromou **20080529152304] -[mark some TODOs done -Evan Prodromou **20080529163508] -[use common_render_content -Evan Prodromou **20080529164139] -[reformat showstream -Evan Prodromou **20080529164411] -[@ messages -Evan Prodromou **20080529170801] -[loosen restrictions on names for atlinks -Evan Prodromou **20080529171604] -[fixup atlink generator a bit -Evan Prodromou **20080529171853] -[dummy atlinkin -Evan Prodromou **20080529172107] -[more debugging crap -Evan Prodromou **20080529172205] -[remove debug string -Evan Prodromou **20080529172258] -[don't check for notice in rendering content; just render it! -Evan Prodromou **20080529172549] -[better regular expression for atlinks -Evan Prodromou **20080529173234] -[special chars for raw links in atlinks -Evan Prodromou **20080529173400] -[fix render in showstream -Evan Prodromou **20080529173527] -[keep the ampersand in atlinks -Evan Prodromou **20080529173635] -[linkify URLs -Evan Prodromou **20080529181244] -[remove url regex -Evan Prodromou **20080529181321] -[use q's for regex delimiter -Evan Prodromou **20080529181549] -[bad regex again -Evan Prodromou **20080529181623] -[one more try on the preg delimiter -Evan Prodromou **20080529181942] -[remove URL check again -Evan Prodromou **20080529182026] -[more regex fun -Evan Prodromou **20080529182725] -[ar -Evan Prodromou **20080529182754] -[linkify URLs -Evan Prodromou **20080529190702] -[move linkifying so URL links come first -Evan Prodromou **20080529190743] -[change number of subscriptions per row -Evan Prodromou **20080529192112] -[don't render content in RSS feeds -Evan Prodromou **20080529192510] -[interim commit after pull from server -Evan Prodromou **20080530142324] -[common function for turning a relative path into a full URL -Evan Prodromou **20080530162429] -[remotesubscribe form -Evan Prodromou **20080530174310] -[fix path for requiring oauthstore -Evan Prodromou **20080530174616] -[check that services are null in yadis check -Evan Prodromou **20080530175055] -[show footer for remotesubscribe form -Evan Prodromou **20080530175235] -[add a print_r for the yadis doc returned -Evan Prodromou **20080530175436] -[correct content-type on XRDS document -Evan Prodromou **20080530181029] -[check to see if XRDS discovery failed -Evan Prodromou **20080530181103] -[add debug logging and do some from the remotesubscribe page -Evan Prodromou **20080530182230] -[add X-XRDS-Location header -Evan Prodromou **20080530183528] -[typo in checking for YADIS failure -Evan Prodromou **20080530184105] -[better debug messages -Evan Prodromou **20080530184712] -[debug message for when services returns null -Evan Prodromou **20080530184925] -[no pid in syslog -Evan Prodromou **20080530185015] -[check xrds object -Evan Prodromou **20080530185343] -[parse the XRDS results -Evan Prodromou **20080530190446 - - Apparently you have to parse the XRDS results from the discovery - result object. Who knew? - -] -[start handling fancy URLs -Evan Prodromou **20080530212555] -[set proper row sizes -Evan Prodromou **20080601020132] -[better handling of XRDS files -Evan Prodromou **20080602174249 - - Our generated XRDS files contain 3 XRD elements: one for OAuth, one - for OMB, and one to point to the other two. Auth_Yadis only gives us - the last one, so we have to use it to find the other two, and then - extract service URLs from them. - - Kind of fragile code, probably won't hold up under complicated - topologies, and won't work at all if the XRDs are in another XRDS - container. I tried to use XRDS filtering to get the top-priority - version of XRDs, services, and URIs, but Laconica's output doesn't use - any of that stuff and I don't particularly want to test it. - -] -[move service-matching callbacks to library -Evan Prodromou **20080602175725] -[use omb_service_filter() rather than omb_match_service() -Evan Prodromou **20080602175936] -[fix dynamically-created code -Evan Prodromou **20080602180108] -[add some debugging stuff for problems with remote subscribe -Evan Prodromou **20080602181254] -[services() returns an array -Evan Prodromou **20080602181759] -[trim whitespace -Evan Prodromou **20080602181857] -[make a nodes variable to pass nodes by reference -Evan Prodromou **20080602182153] -[fix assignment of omb stuff -Evan Prodromou **20080602183314] -[debug info -Evan Prodromou **20080602183911] -[minor corrections for OMB discovery -Evan Prodromou **20080602185137] -[typo in LocalID generation in xrds -Evan Prodromou **20080602185452] -[fix URLs for OMB endpoints -Evan Prodromou **20080602185618] -[add a namespace when checking for LocalID element -Evan Prodromou **20080602190357] -[get content of element rather than raw element -Evan Prodromou **20080602191039] -[add some debugging output to request token request -Evan Prodromou **20080602192018] -[fixup caching problem with server variable -Evan Prodromou **20080602192242] -[correct name of data store class -Evan Prodromou **20080602192526] -[fixup classes -Evan Prodromou **20080602192820] -[correct server error output -Evan Prodromou **20080602193851] -[add the hmac sha1 signature method to server -Evan Prodromou **20080602194333] -[change names, update -Evan Prodromou **20080602195138] -[fix consumer fetching, nonce making -Evan Prodromou **20080602200645] -[get rid of callback nonce -Evan Prodromou **20080602201707] -[debugging code for userauthorization -Evan Prodromou **20080602203142] -[more debug code -Evan Prodromou **20080602203802] -[trying to find out why auth request is going to requesttoken -Evan Prodromou **20080602205534] -[move debugging code for checking URIs of XRD -Evan Prodromou **20080602205921] -[more debugging, don't reuse variable -Evan Prodromou **20080603104859] -[typo in use of omb_service_uri() -Evan Prodromou **20080603110749] -[restructure filters on services -Evan Prodromou **20080603111750] -[one more stab at type matching, plus debug message -Evan Prodromou **20080603113626] -[fix service discovery (I think) -Evan Prodromou **20080603114317] -[clear out lots of debugging code, add require to userauthorization -Evan Prodromou **20080603115218] -[remove call to private get-version() method -Evan Prodromou **20080603115839] -[full interface for userauthorization -Evan Prodromou **20080604185131] -[fix passing request around -Evan Prodromou **20080604191206] -[add some debugging code -Evan Prodromou **20080604201123] -[automatically prepend filename to debug output -Evan Prodromou **20080605024035] -[move filename stuff to debug function -Evan Prodromou **20080605024717] -[move stoica schema to laconica -Evan Prodromou **20080605024807] -[correct order of params in get_token -Evan Prodromou **20080605025152] -[clear request doesn't need an argument -Evan Prodromou **20080605025611] -[don't validate listenee URI -Evan Prodromou **20080605033911 - - Validation of the listenee URI was failing for tag: URIs. So, - abandoned validation for now. Maybe in the future I'll add it back in, - with a second check for a valid tag URI if it doesn't work. - -] -[decided to validate tag uris rather than not validating any uris -Evan Prodromou **20080605040153] -[bad validation of callback URL -Evan Prodromou **20080605040358] -[a -Evan Prodromou **20080605183419] -[new TODOs -Evan Prodromou **20080605190614] -[move avatar scaling and saving to Avatar and Profile -Evan Prodromou **20080605193708 - - Extracted the code for setting a new original avatar to the Profile - class, and moved some of it to Avatar, too. This makes it easier to - have the same functionality whether an avatar is set using the profile - settings (for our users), or on a remote subscription. Necessitated - changing the filenaming function to just take an ID. - -] -[setOriginal() is an instance method -Evan Prodromou **20080605195222] -[passing id to the avatar filename function -Evan Prodromou **20080605195500] -[show error correctly in login -Evan Prodromou **20080605200759] -[debugging info on finished remote subscribe -Evan Prodromou **20080606040946] -[listenee is nickname, not URI -Evan Prodromou **20080606043405] -[fix args in returnto -Evan Prodromou **20080606051331] -[don't clone arrays! -Evan Prodromou **20080606051823] -[use $_GET, not $args -Evan Prodromou **20080606052117] -[handle errors in authorizing and saving remote profile -Evan Prodromou **20080606052631] -[debug info for authorizing token -Evan Prodromou **20080606053321] -[seem to be storing tokens with null consumer keys -Evan Prodromou **20080606053914] -[mixed up OAuthConsumer and Consumer classes -Evan Prodromou **20080606054549] -[checks for user and sub in validate and better error check in remote save -Evan Prodromou **20080606055439] -[remember to sign access token request with request token -Evan Prodromou **20080606060000] -[mixed up token keys and OAuthToken objects -Evan Prodromou **20080606060601] -[debugging output for new_access_token -Evan Prodromou **20080606061556] -[debugging stuff in accesstoken action -Evan Prodromou **20080606062235] -[debugging request for access token -Evan Prodromou **20080606062958] -[store URL rather than service in $omb for bounce back -Evan Prodromou **20080606063721] -[forgot to require libs in accesstoken -Evan Prodromou **20080606064011] -[stash URLs for return and check all values for profiles -Evan Prodromou **20080606065027] -[call postnotice when there's a remote subscription -Evan Prodromou **20080606160437] -[move notice-posting stuff from util.php to omb.php -Evan Prodromou **20080606162226] -[push yadis requirement into omb.php -Evan Prodromou **20080606162659] -[debugging messages in broadcast remote -Evan Prodromou **20080606171450] -[trim whitespace and more debugging for posting messages -Evan Prodromou **20080606172239] -[dump sub and rp -Evan Prodromou **20080606172638] -[fix name of join-adding method -Evan Prodromou **20080606173804] -[quit trying to use fancy join and just loop -Evan Prodromou **20080606174822] -[removing some noisy debug notices -Evan Prodromou **20080606175254] -[bad signature because variable name was wrong -Evan Prodromou **20080606180035] -[was using $notice->uri instead of $notice_uri -Evan Prodromou **20080606180330] -[start doing some fancy URLs -Evan Prodromou **20080606182044] -[use mod_rewrite to have prettier urls -Evan Prodromou **20080606195136] -[fancy URLs -Evan Prodromou **20080606200151] -[add cc:license to RSS streams -Evan Prodromou **20080608201917] -[forgot config in channel -Evan Prodromou **20080608201957] -[use rdf:resource for license urls -Evan Prodromou **20080608203314] -[export FOAF -Evan Prodromou **20080610121132] -[incorrectly used , instead of => in a surprising number of places -Evan Prodromou **20080610121936] -[more specific fetchers -Evan Prodromou **20080610122707] -[undo fancy URLs for omb endpoints -Evan Prodromou **20080610123002 - - The OAuth library uses the $_GET and $_POST arrays for checking - signatures on requests. So, we need to make sure that the client sees - the same request parameters as the server (or callback). These don't - have to be particularly readable URLs, anyways, since they're mostly - "behind the scenes". - -] -[ticking off a TODO -Evan Prodromou **20080610142221] -[make presentation of remote subscribe nicer -Evan Prodromou **20080610143709] -[add link for FOAF autodiscovery -Evan Prodromou **20080610144420] -[close parens in showstream -Evan Prodromou **20080610144606] -[fix getting subscribers -Evan Prodromou **20080610145520] -[add another TODO -Evan Prodromou **20080610150113] \ No newline at end of file diff --git a/_darcs/inventories/20080613184833-84dde-560f55c55492f909c3a5a0948e4ef3b072208bcd.gz b/_darcs/inventories/20080613184833-84dde-560f55c55492f909c3a5a0948e4ef3b072208bcd.gz deleted file mode 100644 index 4763643ca1..0000000000 --- a/_darcs/inventories/20080613184833-84dde-560f55c55492f909c3a5a0948e4ef3b072208bcd.gz +++ /dev/null @@ -1,146 +0,0 @@ -Starting with tag: -[TAG 0.2.5 -Evan Prodromou **20080610150429] -[geo namespace -Evan Prodromou **20080610150957] -[files from Marie-Claude Doyon for stoi.ca theme -Evan Prodromou **20080610171303] -[rename files in stoica theme -Evan Prodromou **20080610173718] -[first steps towards new skin -Evan Prodromou **20080610185238] -[background header -Evan Prodromou **20080610185551] -[fix footer menu -Evan Prodromou **20080610185759] -[fixup for new theme design in public.php -Evan Prodromou **20080610192101] -[new layout for all action -Evan Prodromou **20080610193305] -[fixup views menu -Evan Prodromou **20080610193520] -[wrap notice form in p -Evan Prodromou **20080610193649] -[finish logo link -Evan Prodromou **20080610193854] -[change class of notice textarea to its id -Evan Prodromou **20080610194243] -[move help menu and change class of menuitem li,s -Evan Prodromou **20080610194553] -[remove license block -Evan Prodromou **20080610195134] -[better footer -Evan Prodromou **20080610195502] -[get current user in views menu -Evan Prodromou **20080610195920] -[canonicalization lowercases nicknames -Evan Prodromou **20080611141824] -[new TODOs -Evan Prodromou **20080608203731] -[fixup TODOs -Evan Prodromou **20080610211316] -[better form handling -Evan Prodromou **20080610211614] -[make shownotice a stream of one notice -Evan Prodromou **20080610221910 - - For display sake, make showing a single notice like showing a - stream with one notice in it. - -] -[fix including stream in shownotice -Evan Prodromou **20080610222222] -[get the profile to show it in the title -Evan Prodromou **20080610222547] -[add more TODOs -Evan Prodromou **20080611014547] -[one more TODO -Evan Prodromou **20080611014616] -[take out home/profile menu for all pages, use same format for settings menu -Evan Prodromou **20080611015609] -[fixup some TODOs, fix a bug in userauthorization -Evan Prodromou **20080611020810] -[refresh on showstream -Evan Prodromou **20080611022900] -[remove notice form from showstream -Evan Prodromou **20080611023246] -[menu on home and profile -Evan Prodromou **20080611155258] -[make last parameter for common_menu_item() optional -Evan Prodromou **20080611155649] -[closing menu list in the wrong place -Evan Prodromou **20080611160318] -[show selection in settings menu -Evan Prodromou **20080611160520] -[a couple of TODOs that are done -Evan Prodromou **20080611162118] -[instructions -Evan Prodromou **20080611163308] -[reminder about site license in avatar upload process -Evan Prodromou **20080611163645] -[more documentation -Evan Prodromou **20080611170624] -[remove URLS.txt -Evan Prodromou **20080611170723] -[move files in default theme to one directory -Evan Prodromou **20080611171009] -[reformat for our theme layout -Evan Prodromou **20080611171351] -[only show notice form if user is logged in, looking at own page -Evan Prodromou **20080611181334] -[push notice form and sub-menu into header div -Evan Prodromou **20080611183634] -[double-showing notice form and views menu -Evan Prodromou **20080611184128] -[change default avatars from config vars to theme files -Evan Prodromou **20080611190230] -[start changing default theme to work with new HTML -Evan Prodromou **20080612015858] -[menu to nav -Evan Prodromou **20080612020408] -[add instructions to each form entry in forms -Evan Prodromou **20080612165201] -[link for website -Evan Prodromou **20080612174453] -[broadcast profile and change subscription input id -Evan Prodromou **20080612184028] -[hide warnings when unlinking an avatar file -Evan Prodromou **20080612185322] -[add some more debugging code -Evan Prodromou **20080612190447] -[fix some incorrect input due to copy-and-paste programming -Evan Prodromou **20080612191606] -[correct the id attribute of the profile -Evan Prodromou **20080612192221] -[only show "more subscriptions" link if there really are more subscriptions -Evan Prodromou **20080612192650] -[catch errors in debug log -Evan Prodromou **20080612193945] -[another copy-and-paste error -Evan Prodromou **20080612194656] -[only validate if values are sent -Evan Prodromou **20080612195324] -[links for subscribers and subscribed in showstream -Evan Prodromou **20080612200424] -[add content negotiation for media type -Evan Prodromou **20080613144913] -[mark off TODO, only local notices in public stream -Evan Prodromou **20080613152420] -[MC's changes on test1 server -Evan Prodromou **20080613152520] -[add author information for RSS -Evan Prodromou **20080613153012] -[better titles in RSS -Evan Prodromou **20080613153303] -[show logo only if file exists, add h1 and h2 to all pages -Evan Prodromou **20080613154632] -[hide pagename and site title -Evan Prodromou **20080613155540] -[update TODO, and add variables to docs -Evan Prodromou **20080613171538] -[function for retrieving a config variable -Evan Prodromou **20080613175344] -[site name in help file -Evan Prodromou **20080613183325] -[mark off some todos, add a version number, and put code info at the bottom of the page -Evan Prodromou **20080613184638] \ No newline at end of file diff --git a/_darcs/inventories/20080619150226-5ed1f-2c7ad753166708ede8c07e704953a5da888e4145.gz b/_darcs/inventories/20080619150226-5ed1f-2c7ad753166708ede8c07e704953a5da888e4145.gz deleted file mode 100644 index 089fa655f1..0000000000 --- a/_darcs/inventories/20080619150226-5ed1f-2c7ad753166708ede8c07e704953a5da888e4145.gz +++ /dev/null @@ -1,263 +0,0 @@ -Starting with tag: -[TAG 0.3.0 -Evan Prodromou **20080613184833] -[add public tab -Evan Prodromou **20080614122038] -[no arg -Evan Prodromou **20080614122155] -[take out public from views menu for now -Evan Prodromou **20080614122517] -[show default profile image in showstream -Evan Prodromou **20080615014742] -[some doc -Evan Prodromou **20080615021852] -[email notification on new subscriptions -Evan Prodromou **20080615030202] -[use site name as default sender -Evan Prodromou **20080615030319] -[fancy URLs should remember page -Evan Prodromou **20080615035012] -[before and after are switched, pass QSA in some rewrite rules -Evan Prodromou **20080615035510] -[add jQuery -Evan Prodromou **20080617043650] -[filename in jquery -Evan Prodromou **20080617044054] -[move roadmap to web site -Evan Prodromou **20080617121642 - - I've put all the roadmap info into the Laconi.ca Web site: - - http://laconi.ca/PITS - - It's more detailed, more accessible for non-programmers, and more - structured. - - To avoid having the two sources go out-of-synch, I'm deleting this one. - -] -[start openid rp integration -Evan Prodromou **20080617133501] -[remove roadmap -Evan Prodromou **20080617133539] -[ignore oid_.* tables when generating classes -Evan Prodromou **20080617133941] -[beginnings of OpenID login -Evan Prodromou **20080617144942] -[inclusion of our local OpenID lib -Evan Prodromou **20080617145140] -[more specific Store class -Evan Prodromou **20080617150509] -[forgot 'new' keyword -Evan Prodromou **20080617150656] -[add OpenID and SReg libraries -Evan Prodromou **20080617151249] -[fixup & -Evan Prodromou **20080617152051] -[close function call in javascript -Evan Prodromou **20080617152444] -[what exactly are we updating -Evan Prodromou **20080615152047] -[more debugging on profile update -Evan Prodromou **20080615153123] -[M-C changes in stoica -Evan Prodromou **20080618015146] -[make default a clone of stoica -Evan Prodromou **20080618015423 - - Rather than trying to backfill a default theme from the Simple Life - theme, we're just going to copy the stoica theme, and make some - changes so it looks distinctive. - -] -[finish openid -Evan Prodromou **20080618052638 - - Added some code to make finishing the OpenID login work. - - Changed the OID storage so that there's a "canonical" URL and a - display URL. This is because of i-names, which is annoying. - - If the login succeeds, we try to find a local user associated with the - canonical URL. If they don't exist, we let the user either create a - new account, or login to an existing account and connect to it. - - A totally unrelated change is that the DB engine now uses InnoDB. - -] -[require the openid relational class -Evan Prodromou **20080618054847] -[fix prompt and debug input -Evan Prodromou **20080618055349] -[check existence of args not booleanness -Evan Prodromou **20080618055657] -[refactoring error -Evan Prodromou **20080618055836] -[fix get_saved_values() function in finishopenidlogin -Evan Prodromou **20080618060549] -[set nickname correctly -Evan Prodromou **20080618061117] -[go to profile instead of profile settings -Evan Prodromou **20080618061833] -[fix missing parens -Evan Prodromou **20080618062059] -[manage existing OpenIDs -Evan Prodromou **20080618065320 - - Add a settings page to manage existing OpenIDs, or add OpenIDs to an - account. - -] -[add OpenID settings to settings menu -Evan Prodromou **20080618065508] -[user_id in user_openid should not be unique -Evan Prodromou **20080618070430] -[dot not comma -Evan Prodromou **20080618070710] -[better error handling -Evan Prodromou **20080618071207] -[user_id in user_openid is not unique -Evan Prodromou **20080618110126] -[debugging on adding OpenID -Evan Prodromou **20080618110853] -[error on save -Evan Prodromou **20080618111512] -[return true on successful save of openid -Evan Prodromou **20080618112624] -[voodoo changes -Evan Prodromou **20080618113720] -[consolidate linking a user to an OpenID -Evan Prodromou **20080618114310] -[fix syntax error in finishopenidlogin -Evan Prodromou **20080618123941] -[references -Evan Prodromou **20080618131519] -[change variable name error -Evan Prodromou **20080618131636] -[debugging for addopenid problem -Evan Prodromou **20080618132613] -[move openid authentication to a common function -Evan Prodromou **20080618133251] -[fixup syntax error in openid.php -Evan Prodromou **20080618150557] -[better presentation on openidsettings -Evan Prodromou **20080618160111] -[better URLs for OpenID stuff -Evan Prodromou **20080618160733] -[fancified openidsettings URL -Evan Prodromou **20080618161321] -[more debugging output, better check on canonical -Evan Prodromou **20080618162715] -[fix debug to prefix with var name -Evan Prodromou **20080618162838] -[add submit class to all buttons -Evan Prodromou **20080618163516] -[don't put fake spaces in the text area -Evan Prodromou **20080618025253] -[fake spaces in textareas to fakeout XMLWriter -Evan Prodromou **20080618030019] -[move instructions up to the "whats up" area -Evan Prodromou **20080618035739] -[fix copy-and-paste error -Evan Prodromou **20080618151103] -[change sitename h2 to branding p -Evan Prodromou **20080618152004] -[more rigorous check on site logo -Evan Prodromou **20080618153036] -[class=branding => id=branding -Evan Prodromou **20080618153258] -[link in the branding p -Evan Prodromou **20080618154643] -[better pagination and no rows in subscriptions and subscribed -Evan Prodromou **20080618165041] -[more changes by M-C on the server -Evan Prodromou **20080618175911] -[small debugging and messaging fixes -Evan Prodromou **20080618180642] -[add xrds for trust root URL -Evan Prodromou **20080618182647] -[fix trust root in openid to use 'public' string -Evan Prodromou **20080618182812] -[remove 'oauth' from publicxrds -Evan Prodromou **20080618183606] -[add more debugging -Evan Prodromou **20080618201123] -[add a little XML goodness to redirect -Evan Prodromou **20080618202500] -[factor out similarities in subscriptions and subscribers -Evan Prodromou **20080618171313] -[change references from subscribed to subscribers -Evan Prodromou **20080618171622] -[more subscriptions/subscribers changes -Evan Prodromou **20080618172444 - - Showstream now shows subscriptions in reverse chron order, like the - other pages. - - Added a callback method to figure out who the _other_ guy is in a - subscription. - - Changed gallery page to be a UL of images. - -] -[move instructions to top in openid pages -Evan Prodromou **20080618190202] -[removed message was slurping in success flag -Evan Prodromou **20080618204421] -[forgot settingsmenu in openidsettings -Evan Prodromou **20080618204611] -[take out check for other user -Evan Prodromou **20080618210044] -[switch password and id in munge_password -Evan Prodromou **20080618211454 - - I think this is the less effective way to salt a password, BUT... - I had a big bug in my code! All the code that was calling this - function got the order of the params mixed up. So, to save heartache, - I just reversed the order of the parameters, and reversed how the were - used in the function. It should be functionally the same as before, - but better documented. - -] -[add some reasonable things to configure -Evan Prodromou **20080619014802] -[config with path -Evan Prodromou **20080619020540] -[default DB driver is DB -Evan Prodromou **20080619020634] -[use DB as the data driver in dataobject.ini too -Evan Prodromou **20080619021449] -[do some commits -Evan Prodromou **20080619033212] -[use query method to do some transactions -Evan Prodromou **20080619033619] -[immediate mode for openid -Evan Prodromou **20080619134710] -[move update_user function to openid.php -Evan Prodromou **20080619135148] -[use openid.php functions in finishimmediate -Evan Prodromou **20080619135603] -[added some debugging stuff -Evan Prodromou **20080619135944] -[build backto a little smarter -Evan Prodromou **20080619140350] -[refresh the cookie on successful immediate -Evan Prodromou **20080619140505] -[copy args function -Evan Prodromou **20080619141107] -[M-C's changes to default theme on test2 -Test Server 2 **20080619142224] -[more changes by M-C on the dev server -Evan Prodromou **20080619141755] -[openid input styling -Evan Prodromou **20080619143610] -[id not class on openid_url input -Evan Prodromou **20080619143829] -[TAG 0.3.1 -Identica Server **20080619145124] -[update_user didn't return true -Evan Prodromou **20080619145838] -[update version -Evan Prodromou **20080619150158] -[TAG 0.3.2 -Evan Prodromou **20080619150208] \ No newline at end of file diff --git a/_darcs/inventories/20080619162450-5ed1f-037e20d9adc391a309e7c27091d13a8a039e3f94.gz b/_darcs/inventories/20080619162450-5ed1f-037e20d9adc391a309e7c27091d13a8a039e3f94.gz deleted file mode 100644 index 4da7ab35ff..0000000000 --- a/_darcs/inventories/20080619162450-5ed1f-037e20d9adc391a309e7c27091d13a8a039e3f94.gz +++ /dev/null @@ -1,23 +0,0 @@ -Starting with tag: -[TAG 0.3.2 -Evan Prodromou **20080619150226] -[need a profileurl for new users -Evan Prodromou **20080619151803] -[cant remove last openid, public xrds includes immediate -Evan Prodromou **20080619153231 - - Added a check to make sure the user doesn't remove their last OpenID - if they don't also have a password. - - Also, put the finishimmediate URL in the publicxrds so that e.g. - Yahoo! doesn't get snippy. - -] -[fetch the oid before showing it -Evan Prodromou **20080619153719] -[had order of arguments for oid_link_user backwards in finishaddopenid -Evan Prodromou **20080619155042] -[Don't repeat "Remove OpenID" header -Evan Prodromou **20080619155154] -[posting from a form takes you back to the same page -Evan Prodromou **20080619161814] \ No newline at end of file diff --git a/_darcs/inventories/20080622172309-34904-734a780cc39d8716ca998ece451fec8923d9cbe7.gz b/_darcs/inventories/20080622172309-34904-734a780cc39d8716ca998ece451fec8923d9cbe7.gz deleted file mode 100644 index 73b4b9c7ee..0000000000 --- a/_darcs/inventories/20080622172309-34904-734a780cc39d8716ca998ece451fec8923d9cbe7.gz +++ /dev/null @@ -1,108 +0,0 @@ -Starting with tag: -[TAG 0.3.3 -Evan Prodromou **20080619162450] -[common_show_footer() was hidden in an if -Evan Prodromou **20080619172031] -[push instructions into head and require license -Evan Prodromou **20080619173225] -[try to clear openid url cookie better -Evan Prodromou **20080619183238] -[put instructions into header div -Evan Prodromou **20080619190357] -[fix pagination for galleries -Evan Prodromou **20080620195627] -[Fix for bug #00019 (Linkified all @ addresses in a message) -matthew.gregg@gmail.com**20080620181136] -[skip a DB hit, and better regex -Evan Prodromou **20080620203449] -[add confirmemail table -Evan Prodromou **20080620041012] -[confirm email addresses -Evan Prodromou **20080620051536] -[correct name for common_good_rand() -Evan Prodromou **20080620052453] -[correct confirmation code -Evan Prodromou **20080620062606] -[fancy url for confirmation of email -Evan Prodromou **20080620062847] -[whitespace and debugging changes -Evan Prodromou **20080620064824] -[don't keep cached user -Evan Prodromou **20080620065455] -[strip some whitespace -Evan Prodromou **20080620065619] -[go back to ensuring session -Evan Prodromou **20080620070256] -[change from using tag uris to http urls for identifiers -Evan Prodromou **20080620071700 - - Weirdly, I got in an argument with Tim Berners-Lee in #swig about the - tag URIs I was using in FOAF documents. Eventually, I was convinced - that it's a better thing to use HTTP URLs instead. So, now we have - HTTP URLs. - - The tricky thing was for users. Since they can change their names, we - can't use their profile URL, since it includes the name. Instead, I - made up a new action, which simply redirects from a user ID to their - current profile URL. This should be sufficiently long-term. - -] -[some whitespace -Evan Prodromou **20080620072125] -[fix url for redirect -Evan Prodromou **20080620072632] -[add better debugging -Evan Prodromou **20080622140941] -[add confirm email to profile settings -Evan Prodromou **20080622142015] -[reference calling for objstring -Evan Prodromou **20080622142713] -[typo in objstring -Evan Prodromou **20080622142906] -[add a method to update key fields in User -Evan Prodromou **20080622145644] -[use internal quoting code for manual query -Evan Prodromou **20080622150633] -[use updateKeys() for updating the user -Evan Prodromou **20080622151611] -[better logic in profile settings, missing method in all -Evan Prodromou **20080622152306] -[nickname update -Evan Prodromou **20080622152628] -[strcmp for comparison -Evan Prodromou **20080622153220] -[more debugging -Evan Prodromou **20080622153754] -[q -Evan Prodromou **20080622154836] -[change Confirm_email to Confirm_address -Evan Prodromou **20080622155028] -[move confirmemail to confirmaddress -Evan Prodromou **20080622155250 - - Rename the confirmemail to more general confirmaddress so we can use - it for Jabber, SMS, or whatever. - -] -[require the right class -Evan Prodromou **20080622155454] -[correctly use Confirm_address -Evan Prodromou **20080622161607] -[fix name of class in confirmaddress.php -Evan Prodromou **20080622161749] -[confirm address -Evan Prodromou **20080622161917] -[special function for generating confirmation codes -Evan Prodromou **20080622163241] -[use a static rather than a constant for code chars -Evan Prodromou **20080622163458] -[auto-increment primary key for SMS carrier -Evan Prodromou **20080622164013] -[debugging for profile update -Evan Prodromou **20080622164542] -[move profile update to front -Evan Prodromou **20080622164928] -[move profile update to front -Evan Prodromou *-20080622164928] -[allow blank email address (I think) -Evan Prodromou **20080622165453] \ No newline at end of file diff --git a/_darcs/inventories/20080622172408-34904-76462f7172a89292a1f5125bd616fc789f1199d5.gz b/_darcs/inventories/20080622172408-34904-76462f7172a89292a1f5125bd616fc789f1199d5.gz deleted file mode 100644 index 634971d8ab..0000000000 --- a/_darcs/inventories/20080622172408-34904-76462f7172a89292a1f5125bd616fc789f1199d5.gz +++ /dev/null @@ -1,5 +0,0 @@ -Starting with tag: -[TAG 0.3.4 -Evan Prodromou **20080622172309] -[version number changed -Evan Prodromou **20080622172354] \ No newline at end of file diff --git a/_darcs/inventories/20080626205418-34904-3c00363d01955e4df73b0ef730c23188f03b548f.gz b/_darcs/inventories/20080626205418-34904-3c00363d01955e4df73b0ef730c23188f03b548f.gz deleted file mode 100644 index 300ac62fbf..0000000000 --- a/_darcs/inventories/20080626205418-34904-3c00363d01955e4df73b0ef730c23188f03b548f.gz +++ /dev/null @@ -1,160 +0,0 @@ -Starting with tag: -[TAG 0.3.4 -Evan Prodromou **20080622172408] -[remove check immediate -Evan Prodromou **20080622173341 - - After getting a lot of problems and bugs with this, I'm removing the - check_immediate code. Instead, I'm going to add this functionality in - JavaScript. I think that's a preferred practice, anyways. - -] -[disallow nicknames on a blacklist -Evan Prodromou **20080622180437] -[forgot to return on invalid nickname -Evan Prodromou **20080622181550] -[first pass at a daemon to receive XMPP messages -Evan Prodromou **20080623022710] -[add flags to db for jabber and sms notification -Evan Prodromou **20080623023859] -[make the daemon do something -Evan Prodromou **20080623030150] -[strip whitespace in xmppdaemon -Evan Prodromou **20080623030259] -[dont let the daemon get called from a web server -Evan Prodromou **20080623030523] -[change host to port -Evan Prodromou **20080623030930] -[conn is an attribute of XMPPdaemon -Evan Prodromou **20080623031058] -[normalize jids before comparison -Evan Prodromou **20080623041816] -[add imsettings to menu -Evan Prodromou **20080623223641] -[add jabber library and use it -Evan Prodromou **20080624001523] -[jabber send and confirmation code -Evan Prodromou **20080624013203] -[broadcast notices to jabber -Evan Prodromou **20080624014241] -[fix instructions in default theme -Evan Prodromou **20080624014625] -[don't validate email if none provided -Evan Prodromou **20080624014642] -[more fixes in default theme -Evan Prodromou **20080624014843] -[syntax error in jabber_format_notice -Evan Prodromou **20080624015001] -[more robust handling of new JIDs -Evan Prodromou **20080624015616] -[add table for remember me codes -Evan Prodromou **20080624020205] -[implement rememberme functionality -Evan Prodromou **20080624025234 - - Added a checkbox on login or register to remember the current user. If - the login is successful, this sets a cookie with a random code (saved - in the DB). If they come back, and they aren't logged in "normally", - we check to see if they have a rememberme cookie. If so, we log them - in. - - However, they can't change settings -- cookie theft is too prevalent. - So we mark a session as having a "real" (password or OpenID) login, or - not. In settings pages, we check to see if the login is "real", and if - not, we redirect to the login page. - -] -[switch order for checkbox, instructio -Evan Prodromou **20080624030034] -[bad function call -Evan Prodromou **20080624030741] -[typo in name of common_set_cookie -Evan Prodromou **20080624030834] -[use the correct field for Remember_me -Evan Prodromou **20080624031057] -[force session again and correctly get ID -Evan Prodromou **20080624031746] -[correct name for common_forgetme() in logout -Evan Prodromou **20080624031927] -[change some things around to see if we can get the cookies right -Evan Prodromou **20080624032408] -[set user takes a nickname, not a user object -Evan Prodromou **20080624032818] -[better cookie building -Evan Prodromou **20080624033223] -[check session name COOKIE before ensuring session -Evan Prodromou **20080624034906] -[think && was binding too closely in remembered_user -Evan Prodromou **20080624040058] -[using bogus attribute of $rm -Evan Prodromou **20080624040234] -[login doesn't bark if the user is automatically logged in -Evan Prodromou **20080624040548] -[rudimentary recoverpassword system -Evan Prodromou **20080624215033] -[output a message when we send the recovery email -Evan Prodromou **20080624215826] -[url for confirmation email is better, fancy url -Evan Prodromou **20080624220335] -[less tricky with recoverpassword -Evan Prodromou **20080624220626] -[slightly different from settingsaction -Evan Prodromou **20080624221054] -[type -> address_type -Evan Prodromou **20080624221437] -[correct field name -Evan Prodromou **20080624221758] -[use $newpassword instead of $password consistently -Evan Prodromou **20080624224030] -[show better errors on bad codes -Evan Prodromou **20080624225556] -[subscribe before sending confirmation message -Evan Prodromou **20080626064646] -[use jabber library from xmppdaemon program -Evan Prodromou **20080626070703] -[commit queries in xmppdaemon::add_notice -Evan Prodromou **20080626071213] -[show the proper address in the message for non-email confirms -Evan Prodromou **20080626072159] -[confirmation code sent by web user, not xmppdaemon -Evan Prodromou **20080626073530] -[handle host != server in xmpp, also use one function for connections -Evan Prodromou **20080626075920] -[lost parenthesis in xmppdaemon -Evan Prodromou **20080626080214] -[misunderstood host versus server -Evan Prodromou **20080626080626] -[use jabber.php more from xmppdaemon -Evan Prodromou **20080626150336] -[more logging -Evan Prodromou **20080626151202] -[correct confirm code -Evan Prodromou **20080626152044] -[some UI changes to the IM settings -Evan Prodromou **20080626181144] -[get rid of label on checkbox, just include it as contents -Evan Prodromou **20080626181726] -[move text out of input, into a separate span -Evan Prodromou **20080626182231] -[show checkbox as checked or not -Evan Prodromou **20080626182705] -[stub for jabber_is_subscribed -Evan Prodromou **20080626183117] -[forgot to clone user -Evan Prodromou **20080626183721] -[add a function to show current address -Evan Prodromou **20080626184055] -[some variable names swapped around when I split up the big method -Evan Prodromou **20080626184811] -[fancy URLs for IM settings -Evan Prodromou **20080626184931] -[better instructions on confirmation code -Evan Prodromou **20080626190307] -[compile error with lost dot -Evan Prodromou **20080626190538] -[don't bother with subscription hoohaw; just ask the user to do it -Evan Prodromou **20080626203103] -[lost a couple of variables -Evan Prodromou **20080626203935] -[new version number -Evan Prodromou **20080626205409] \ No newline at end of file diff --git a/_darcs/inventories/20080701185244-34904-63270def0bb343c20fd150490996e6d0e49f40b4.gz b/_darcs/inventories/20080701185244-34904-63270def0bb343c20fd150490996e6d0e49f40b4.gz deleted file mode 100644 index 2d511825b7..0000000000 --- a/_darcs/inventories/20080701185244-34904-63270def0bb343c20fd150490996e6d0e49f40b4.gz +++ /dev/null @@ -1,95 +0,0 @@ -Starting with tag: -[TAG 0.3.5 -Evan Prodromou **20080626205418] -[limit rss streams to 100 items by default -Evan Prodromou **20080626213018] -[better handling of too-long messages -Evan Prodromou **20080626214654] -[add a bit of instructions -Evan Prodromou **20080626215204] -[better formatting for notice instructions -Evan Prodromou **20080626215308] -[better formatting for notice instructions -Evan Prodromou *-20080626215308] -[take out the instructions -Evan Prodromou **20080626215525] -[xhtml/xml and IE do not mix so well PITS # 00103 -matthew.gregg@gmail.com**20080623173043] -[Missing quote in the conditional CSS for IE browsers. Fix for http://laconi.ca/PITS/00104 -matthew.gregg@gmail.com**20080624171305] -[revert to common_user_error, which is what is used everywhere -Evan Prodromou **20080626225002] -["subscribe" -> "add to buddy list" -Evan Prodromou **20080627143025] -[add some classes to inputs -Evan Prodromou **20080627145553] -[add a space between address and to -Evan Prodromou **20080627154825] -[more natural date strings -Evan Prodromou **20080627222522] -[show exact date when needed -Evan Prodromou **20080627222930] -[822 -> 850 -Evan Prodromou **20080627223439] -[wasn't checking for notify flag -Evan Prodromou **20080630152415] -[beef up the faq -Evan Prodromou **20080630161024] -[add FAQ to foot menu -Evan Prodromou **20080630161201] -[add FAQ rewrite -Evan Prodromou **20080630161304] -[add some documentation on the IM stuff -Evan Prodromou **20080630164341] -[refactor common behaviour in settings pages -Evan Prodromou **20080630170342] -[move markdown require to common -Evan Prodromou **20080630170545] -[return instructions -Evan Prodromou **20080630170653] -[link for im -Evan Prodromou **20080630171317] -[change remote subscribe to link -Evan Prodromou **20080630195032] -[fixup code in showstream -Evan Prodromou **20080630195139] -[fixup formatting on remotesubscribe link -Evan Prodromou **20080701155442] -[class -> id -Evan Prodromou **20080701155651] -[remove formatting for profile_url -Evan Prodromou **20080701155809] -[add instructions to remotesubscribe -Evan Prodromou **20080701163705] -[fancy url for remote subscribe -Evan Prodromou **20080701164058] -[add documentation for OpenMicroBlogging -Evan Prodromou **20080701165717] -[fix link in doc/openmublog -Evan Prodromou **20080701165927] -[make help doc an index to other documents -Evan Prodromou **20080701170521] -[add OpenID documentation -Evan Prodromou **20080701172429] -[formatting in OpenID documentation -Evan Prodromou **20080701172904] -[add more contact information -Evan Prodromou **20080701175611] -[basic help in help page -Evan Prodromou **20080701180205] -[better instructions for login -Evan Prodromou **20080701180611] -[Char counter for notice update text area. http://laconi.ca/PITS/00094 -matthew.gregg@gmail.com**20080624174613 - - Added a util.js and this uses JQuery. - -] -[Removed some DOM lookups in the char counter -matthew.gregg@gmail.com**20080625125847] -[Fix for space being added to notice form -matthew.gregg@gmail.com**20080625142131] -[rationalize with mgs version -Evan Prodromou **20080701182758] -[run the counter once at page load time -Evan Prodromou **20080701183016] \ No newline at end of file diff --git a/_darcs/inventories/20080701185302-34904-46a593cdf2d9abf2d18e005cc3c861d563a3a48c.gz b/_darcs/inventories/20080701185302-34904-46a593cdf2d9abf2d18e005cc3c861d563a3a48c.gz deleted file mode 100644 index 879a8b5b18..0000000000 --- a/_darcs/inventories/20080701185302-34904-46a593cdf2d9abf2d18e005cc3c861d563a3a48c.gz +++ /dev/null @@ -1,3 +0,0 @@ -Starting with tag: -[TAG 0.4.0 -Evan Prodromou **20080701185244] \ No newline at end of file diff --git a/_darcs/inventories/20080701185323-34904-85f85b33132fc1aea00afb1ec5e3a16cbc638dc6.gz b/_darcs/inventories/20080701185323-34904-85f85b33132fc1aea00afb1ec5e3a16cbc638dc6.gz deleted file mode 100644 index f937f3676c..0000000000 --- a/_darcs/inventories/20080701185323-34904-85f85b33132fc1aea00afb1ec5e3a16cbc638dc6.gz +++ /dev/null @@ -1,9 +0,0 @@ -Starting with tag: -[TAG 0.4.0 -Evan Prodromou **20080701185302] -[change version number -Evan Prodromou **20080701185305 - - Update the version number. - -] \ No newline at end of file diff --git a/_darcs/inventories/20080702183853-34904-59f0b9eeb79289f12e93db25f660e5b7b1a3e9db.gz b/_darcs/inventories/20080702183853-34904-59f0b9eeb79289f12e93db25f660e5b7b1a3e9db.gz deleted file mode 100644 index f291d57624..0000000000 --- a/_darcs/inventories/20080702183853-34904-59f0b9eeb79289f12e93db25f660e5b7b1a3e9db.gz +++ /dev/null @@ -1,13 +0,0 @@ -Starting with tag: -[TAG 0.4.0 -Evan Prodromou **20080701185323] -[fix rememberme checkboxes on login, register -Evan Prodromou **20080702125457] -[full end element, no space in textarea -Evan Prodromou **20080702130029] -[method="POST" to method="post" -Evan Prodromou **20080702131507] -[show current tab correctly on settings menu -Evan Prodromou **20080702131911] -[bump the version number -Evan Prodromou **20080702183839] \ No newline at end of file diff --git a/_darcs/inventories/20080706173453-84dde-bdd84aa8e9dc72eaea72247d03a8620a67a8cec2.gz b/_darcs/inventories/20080706173453-84dde-bdd84aa8e9dc72eaea72247d03a8620a67a8cec2.gz deleted file mode 100644 index d6adad5123..0000000000 --- a/_darcs/inventories/20080706173453-84dde-bdd84aa8e9dc72eaea72247d03a8620a67a8cec2.gz +++ /dev/null @@ -1,83 +0,0 @@ -Starting with tag: -[TAG 0.4.1 -Evan Prodromou **20080702183853] -[invert title and content in rss action -Evan Prodromou **20080702214011] -[update using a config'd server -Evan Prodromou **20080703165043] -[add a display url function to display URLs -Evan Prodromou **20080703170347] -[add a queued notice item -Evan Prodromou **20080704040746] -[enqueue notices for offline broadcast -Evan Prodromou **20080704050425] -[a couple of things to make queue items work -Evan Prodromou **20080704052240] -[info about stuff getting queued -Evan Prodromou **20080704053846] -[some logging for queues -Evan Prodromou **20080704055259] -[don't worry about old claims -Evan Prodromou **20080704060213] -[log some errors for missed inserts -Evan Prodromou **20080704062056] -[problem with dates in db error -Evan Prodromou **20080704071726] -[don't treat notice_id like a sequence -Evan Prodromou **20080704082418] -[better notices on commands and errors -Evan Prodromou **20080704201716] -[Validate action parameter -Gina Haeussge **20080704194114 - - Make sure the action request parameter only consists of a-z, A-Z, 0-9, _ or - - to discourage tampering with the following require_once. -] -[spaces on avatars -Evan Prodromou **20080704210954] -[fix galleries -Evan Prodromou **20080704221336] -[a little more error-checking in the queuedaemon -Evan Prodromou **20080705002207] -[error notices -Evan Prodromou **20080705005602] -[nickname in profile, member since in profile -Evan Prodromou **20080705064303] -[move member since to statistics -Evan Prodromou **20080705064618] -[debugging code for rm -Evan Prodromou **20080705161602] -[better debugging -Evan Prodromou **20080705161801] -[rememberme debugging -Evan Prodromou **20080705162142] -[move queuedaemon into xmppdaemon -Evan Prodromou **20080705172837] -[fix checkbox width -Test Server 1 **20080627171700] -[some whitespace differences -Test Server 1 **20080703124652] -[change to use SVN version of XMPPHP -Evan Prodromou **20080705174045] -[don't use old inarow variable -Evan Prodromou **20080705183955] -[use method instead of now-protected attribute for xmpp -Evan Prodromou **20080705184729] -[if not a POST, redirect to subscriptions -Evan Prodromou **20080705213637] -[add queueing variables to confirm_address -Evan Prodromou **20080706031234] -[optionally queue jabber confirmations -Evan Prodromou **20080706035707] -[restrict confirmations in queue to jabber addresses -Evan Prodromou **20080706035838] -[broadcast directly from xmpp daemon -Evan Prodromou **20080704072909] -[fixup disconnected to use method -Evan Prodromou **20080705202412] -[debugging on the live server -Evan Prodromou **20080706061437] -[enable confirmation queue -Evan Prodromou **20080706071319] -[fixes on bourdin for confirm claims -Evan Prodromou **20080706090309] \ No newline at end of file diff --git a/_darcs/inventories/20080710042333-84dde-55b87a5f8cba7992b5c2ca1eeb87838c20ef6a61.gz b/_darcs/inventories/20080710042333-84dde-55b87a5f8cba7992b5c2ca1eeb87838c20ef6a61.gz deleted file mode 100644 index a54e6bc201..0000000000 --- a/_darcs/inventories/20080710042333-84dde-55b87a5f8cba7992b5c2ca1eeb87838c20ef6a61.gz +++ /dev/null @@ -1,225 +0,0 @@ -Starting with tag: -[TAG 0.4.2 -Evan Prodromou **20080706173453] -[don't double-escape bio -Evan Prodromou **20080706210809] -[prefer, barely, text/html to application/xhtml+xml -Evan Prodromou **20080706220020] -[First pass at replies support http://laconi.ca/PITS/00080 -matthew.gregg@gmail.com**20080623030837 - - Doesn't handle a reply to a user that has never updated. -] -[fixup conflicts -Evan Prodromou **20080706221758] -[some twiddles in the db for replies, plus the class -Evan Prodromou **20080706223839] -[add replies fancy url and include Reply class -Evan Prodromou **20080707032348] -[twiddle a few bits to make replies work correctly -Evan Prodromou **20080707054358] -[added a script for adding old replies in -Evan Prodromou **20080707055428] -[default for datetime in common_relative_profile -Evan Prodromou **20080707060733] -[use db error logger for common_save_replies -Evan Prodromou **20080707061639] -[fix constant in common_db_log_error -Evan Prodromou **20080707061912] -[check for profile -Evan Prodromou **20080707062347] -[check to see the reply_for worked -Evan Prodromou **20080707062618] -[created -> modified in Reply -Evan Prodromou **20080707063731] -[consolidate show_notice and show_reply -Evan Prodromou **20080707064155] -[change reply info -Evan Prodromou **20080707064430] -[show replies -Evan Prodromou **20080707064607] -[use DB_DataObject join -Evan Prodromou **20080707070545] -[use DB_DataObject join -Evan Prodromou *-20080707070545] -[add repliesrss -Evan Prodromou **20080707072454] -[add in the notice form -Evan Prodromou **20080707072545] -[shorter replies rss -Evan Prodromou **20080707072754] -[fancy url for replies rss -Evan Prodromou **20080707073025] -[better error reporting -Evan Prodromou **20080707074434] -[don't try to do date relative -Evan Prodromou **20080707074755] -[mcdoyon changes to design on dev server -Test Server 1 **20080707173224 - - Marie-Claude did some changes to the design on the dev server. - -] -[get rid of one-pixel border on subscriptions -Evan Prodromou **20080707181150] -[add authorship block to OMB spec -Evan Prodromou **20080707234033] -[autosubscribe for jabber -Evan Prodromou **20080707234050] -[autoreply -Evan Prodromou **20080708003055] -[ignore old password if no old password -Evan Prodromou **20080708041210] -[more debug output for rememberme cookies -Evan Prodromou **20080708064241] -[space in title -Evan Prodromou **20080705064900] -[debugging info for queueing notices -Evan Prodromou **20080704083216] -[debugging info for queueing notices -Evan Prodromou *-20080704083216] -[take out queuing debugging -Evan Prodromou **20080708070457] -[don't do an end tag for empty elements -Evan Prodromou **20080708233218] -[don't call text if you don't mean it -Evan Prodromou **20080708235004] -[p.instructions -> div.instructions -Evan Prodromou **20080709002242] -[notice -> permalink in notices -Evan Prodromou **20080709004349] -[name of form on remote subscribe changed -Evan Prodromou **20080709005342] -[better description of what happens when changing settings -Evan Prodromou **20080709050022] -[some debug stuff for remember me -Evan Prodromou **20080709051943] -[don't refetch user objects so much -Evan Prodromou **20080709055343] -[login -> reenter -Evan Prodromou **20080709060928] -[reword, leave out the OpenID part -Evan Prodromou **20080709061118] -[forgot to change null check at beginning of set user -Evan Prodromou **20080709062502] -[replybutton.darc -mike@ice2o.com**20080708112016 - - Add a simple reply button to notices -] -[fixup required XMPP library -Evan Prodromou **20080709070012] -[fallback to newnotice on reply button, new button with mouseover -Evan Prodromou **20080709071439] -[return false -Evan Prodromou **20080709072244] -[try another tack -Evan Prodromou **20080709072429] -[accept replyto for fancy newnotice URL -Evan Prodromou **20080709072833] -[format replyto name correctly -Evan Prodromou **20080709072953] -[remove replybutton formatting -Evan Prodromou **20080709073159] -[remove current notice code which doesn't seem to do anything -Evan Prodromou **20080709073305] -[better arrow -Evan Prodromou **20080709075045] -[move some things around -Evan Prodromou **20080709080110] -[move again -Evan Prodromou **20080709080206] -[remove version number from OMB spec -Evan Prodromou **20080709183833] -[changes to database -Evan Prodromou **20080709193810] -[store rendered content on save; display pre-rendered content -Evan Prodromou **20080709195238] -[rebuild DB_DataObject classes for new structure -Evan Prodromou **20080709200711] -[wording change in comment -Evan Prodromou **20080709200750] -[reply_to is now stored on the notice, not on the reply record -Evan Prodromou **20080709202346] -[store replies on the notice record, not the reply record -Evan Prodromou **20080709202716] -[show reply_to for notices in profile stream -Evan Prodromou **20080709203237] -[use getCurrentNotice() on profile page -Evan Prodromou **20080709203831] -[use rendered text in profile page stream -Evan Prodromou **20080709203910] -[don't record a reply_to for responses to self -Evan Prodromou **20080709203925] -[wrong comparison operator for saving reply to self -Evan Prodromou **20080709204050] -[defaults for argument functions -Evan Prodromou **20080709214433] -[first pass at people search -Evan Prodromou **20080709214455] -[missing comma in people search -Evan Prodromou **20080709214659] -[move end of form element -Evan Prodromou **20080709214713] -[common_start_element -> common_element_start -Evan Prodromou **20080709214821] -[ignore case when highlighting -Evan Prodromou **20080709215011] -[show p.error when there are no results. -Evan Prodromou **20080709215632] -[change formatting of search output -Evan Prodromou **20080709220045] -[add some CSS for the people lists -Evan Prodromou **20080709220446] -[don't inline p's in the people list -Evan Prodromou **20080709220656] -[list of profiles -Evan Prodromou **20080709220856] -[fixup end tag in login (not used, maybe later) -Evan Prodromou **20080709221735] -[add instructions to people search -Evan Prodromou **20080709221754] -[remove hr -- CSS takes care of it -Evan Prodromou **20080709221826] -[add fancy urls for search -Evan Prodromou **20080709223144] -[fix syntax errors in URL builder -Evan Prodromou **20080709223409] -[use smarter query builder -Evan Prodromou **20080709223701] -[try some scoping -Evan Prodromou **20080709223803] -[better instructions -Evan Prodromou **20080709223910] -[highlight homepage in search results -Evan Prodromou **20080709225929] -[specialchars() text in search results -Evan Prodromou **20080709225942] -[first pass at a notice search -Evan Prodromou **20080709230017] -[refactor common code between searches and between search and settings -Evan Prodromou **20080709231031] -[require search action lib in search actions -Evan Prodromou **20080709231217] -[some debug code to find a problem with terms -Evan Prodromou **20080709231503] -[found missing second term -Evan Prodromou **20080709231539] -[better highlighting in URL -Evan Prodromou **20080709231638] -[missing second argument -Evan Prodromou **20080709231821] -[change some parens -Evan Prodromou **20080709231948] -[correct class for ul -Evan Prodromou **20080709232350] -[add notice search rss ("tracking") -Evan Prodromou **20080709234228] -[order search rss items by date desc -Evan Prodromou **20080710032835] -[mc's changes on test1 -Test Server 1 **20080710032953] -[add both my and mc's stuff to the display.css -Evan Prodromou **20080710033108] -[update version number -Evan Prodromou **20080710042324] \ No newline at end of file diff --git a/_darcs/inventories/20080710045454-84dde-4f33e8ca41dcbd0bf0a69c28c56d7ec716f1c48a.gz b/_darcs/inventories/20080710045454-84dde-4f33e8ca41dcbd0bf0a69c28c56d7ec716f1c48a.gz deleted file mode 100644 index 706b099865..0000000000 --- a/_darcs/inventories/20080710045454-84dde-4f33e8ca41dcbd0bf0a69c28c56d7ec716f1c48a.gz +++ /dev/null @@ -1,5 +0,0 @@ -Starting with tag: -[TAG 0.4.3 -Evan Prodromou **20080710042333] -[lost a closing tag in peoplesearch -Evan Prodromou **20080710042930] \ No newline at end of file diff --git a/_darcs/inventories/20080718164332-34904-c590580bef21d90072f988d2597154b954823299.gz b/_darcs/inventories/20080718164332-34904-c590580bef21d90072f988d2597154b954823299.gz deleted file mode 100644 index 8699583269..0000000000 --- a/_darcs/inventories/20080718164332-34904-c590580bef21d90072f988d2597154b954823299.gz +++ /dev/null @@ -1,414 +0,0 @@ -Starting with tag: -[TAG 0.4.3 -Evan Prodromou **20080710045454] -[don't auto-pull OpenID parameters -Evan Prodromou **20080710151842] -[bug in userbyid -Evan Prodromou **20080711042022] -[get avatar by nickname -Evan Prodromou **20080711060045 - - This is to support third-party apps that want to build an URL to an - avatar given a user's name. - -] -[add 'avatar' to blacklisted names -Evan Prodromou **20080711171113] -[better error checking in shownotice -Evan Prodromou **20080711171345] -[check for error, not success! -Evan Prodromou **20080712051738] -[Log msgs can now go to a file as well as syslog -zach@copley.name**20080711070021] -[add the logfile entry to common, a little recoding in common_log -Evan Prodromou **20080712151521] -[Convert _t() to _() for gettext. -Mike Cochrane **20080708094531 - - -] -[Remove tralling whitespace on lines and a gettext replacement that I missed. -Mike Cochrane **20080708095113 - -] -[Translate a few more strings. -Mike Cochrane **20080708100519] -[bracket in the wrong place -Mike Cochrane **20080708130408] -[Merge conflicts and kill a whole lot of trailing whitespace on lines. -Mike Cochrane **20080709224630] -[Resolve conflicts and convert _t( to _( where it was introduced again. -Mike Cochrane **20080710045126] -[Resolve conflict properly -Mike Cochrane **20080710045942] -[Bracket in correct place -Mike Cochrane **20080710050202] -[Missing sprintf -Mike Cochrane **20080710050459] -[More _t( to _( and sprintfs in new code -Mike Cochrane **20080710051035] -[Trailing whitespace on lines -Mike Cochrane **20080710051201] -[Missed one _t -Mike Cochrane **20080710051331] -[Stop after a redirect. Fixed remote subscription for me. -Mike Cochrane **20080710055726] -[Convert more _t s to _ -Mike Cochrane **20080712115300] -[Error I made merging a diff -Mike Cochrane **20080712123942] -[try to show zeroes in statistics -Evan Prodromou **20080712200909] -[fixup name sent in subject of confirmation email -Evan Prodromou **20080712202017] -[lost the site name, and moved everything into sprintf of gettext -Evan Prodromou **20080712202903] -[reformat mail again -Evan Prodromou **20080712204923] -[format string, again -Evan Prodromou **20080712205220] -[change search forms to get (PITS 00248) -Evan Prodromou **20080712214610] -[multibyte counter -drry **20080708090418 - #00179 -] -[check type, not value, of counts -Evan Prodromou **20080713003932] -[first pass at a sitemap generator -Evan Prodromou **20080713004936] -[twiddle some parens in imsettings for gettext -Evan Prodromou **20080713130112] -[restore enhanced login instructions, lost in gettext() switchover -Evan Prodromou **20080713151004] -[little lost hash -Evan Prodromou **20080713151035] -[Fixed non openid registration -Mike Cochrane **20080713024754] -[Sort notices on the public page where they were posted in the same second -Mike Cochrane **20080713042238] -[Merge some gettext strings to one line so translation tools are happier -Mike Cochrane **20080713044608] -[Colapse a lot of strings to make like easier for translators and more consisitant for users -Mike Cochrane **20080713053748] -[locale/laconica.pot can be used as a translation template to translate loconica. -Mike Cochrane **20080713060055 - - I have added an en_NZ translation which has a few of the spelling differences that we have down here. - - Until a language interface is created add something like: - /* Set locale */ - setlocale(LC_ALL, 'en_NZ'); - bindtextdomain("laconica", './locale'); - textdomain("laconica"); - - to index.php to allow you to test your new locale. I used http://www.poedit.net/ to edit the locale. Also see http://nz2.php.net/manual/en/function.setlocale.php#82288 is you're having issues getting you locale to work on linux. - - -] -[Sort notices by date then id so they are in the correct order when there are multiple in the same second -Mike Cochrane **20080713065009] -[conflict resolution after pulling from mikenz -Evan Prodromou **20080713215601] -[remove dataobject.ini -Evan Prodromou **20080713220114 - - This is a useful file for development but not for deployment. Deleting - it so people don't use it on production servers. - -] -[remove old file from themes dir -Evan Prodromou **20080713222006] -[remove old index file -Evan Prodromou **20080713222056] -[fixing IM message, AGAIN -Evan Prodromou **20080714022055] -[extra space in link -Evan Prodromou **20080714060517] -[add handle_session() -Evan Prodromou **20080714124733] -[utility for getting avatar or default avatar -Evan Prodromou **20080714034443] -[add extra Twitter cruft to jabber messages -Evan Prodromou **20080714034503] -[make broadcast send notice with extra Twitter cruft -Evan Prodromou **20080714034647] -[forgot to send a null for subject in XMPP message -Evan Prodromou **20080714043459] -[get the msg to format -Evan Prodromou **20080714044153] -[debugging changes on development server -Evan Prodromou **20080714140209] -[encode special chars in atom payload -Evan Prodromou **20080714143042] -[build stanza ourselves, without library -Evan Prodromou **20080715033711] -[work around probs with XMPPHP library -Evan Prodromou **20080715190519] -[replies from people you're not subscribed to over Jabber -Evan Prodromou **20080715195513] -[more info at registration time, better message when you're finished -Evan Prodromou **20080715213202] -[fix checkbox for license -Evan Prodromou **20080715214249] -[better formatting in registration results -Evan Prodromou **20080715214612] -[more formatting for registration success -Evan Prodromou **20080715214934] -[maybe an extra \n will help my formatting -Evan Prodromou **20080715215407] -[one more linefeed -Evan Prodromou **20080715215556] -[remove email settings from profile settings ahead of having its own tab -Evan Prodromou **20080715220144] -[move email settings to its own tab -Evan Prodromou **20080715221826] -[unique key on a boolean value is not scalable -Evan Prodromou **20080715221946] -[rebuild classes based on DB change -Evan Prodromou **20080715222026] -[bad class name in emailsettings -Evan Prodromou **20080715222342] -[correct name for common_canonical_email -Evan Prodromou **20080715222554] -[confirm address -Evan Prodromou **20080715223149] -[Take full path for index file, not just name; change any "hourly" changefreqs to "daily"; add small function for W3C timestamps. -Earle Martin **20080714000833] -[Include user name in item titles for RSS aggregator users. -Earle Martin **20080714153859] -[Add SIOC data to global RSS feed. -Earle Martin **20080714191328] -[Don't capture trailing ")", "]" or ">" as part of URLs -Earle Martin **20080715022045] -[only loop through the list if there's a list -Evan Prodromou **20080716004414] -[PITS.00114: 'T USERNAME' should work like an @-link -erik@erikstambaugh.com**20080709010415] -[add alternative reply format -Evan Prodromou **20080716025842] -[got the args to array unshift backwards -Evan Prodromou **20080716030022] -[back out my change to the link format; see if it helps -Evan Prodromou **20080716030200] -[more array munging -Evan Prodromou **20080716031346] -[lcase tname -Evan Prodromou **20080716031459] -[yet more array munging -Evan Prodromou **20080716031544] -[sigh -Evan Prodromou **20080716031718] -[Update laconica.pot with latest strings -Mike Cochrane **20080714091337] -[The first translation of laconica, fr_FR translation from Florian Biree . Thanks :-) -Mike Cochrane **20080714091448 - - - To test locales add code like this to your index.php: - - /* Set locale */ - setlocale(LC_ALL, 'fr_FR'); - bindtextdomain("laconica", './locale'); - bind_textdomain_codeset("laconica", 'UTF-8'); - textdomain("laconica"); - - UI coming soon from someone else for changing your language. - - -] -[Fixup rememberme cookie handling in the POST only case -Dave Barry **20080714050037] -[lost else -Evan Prodromou **20080716053532] -[error handler in xmppdaemon -Evan Prodromou **20080716054932] -[add some warnings and stuff -Evan Prodromou **20080716061933] -[bad default for email on command-line systems -Evan Prodromou **20080716055326] -[slightly better error handling -Evan Prodromou **20080716064736] -[better formatting on custom error -Evan Prodromou **20080716134408] -[slight code hygiene for rssaction -Evan Prodromou **20080716152009 - - I moved the $creators array from being a global variable to being an - instance variable. - - I also changed the URL that was used for the user, based on whether - they're a remote or local user. - - Finally, I changed instances of $config to calls to common_config(). - -] -[utility function for getting a profile URI -Evan Prodromou **20080716152511 - - I added a utility function for getting a profile URI. At some point we - need to push commonalities between Remote_profile and User into the - Profile class; single-table inheritance. We do a lot of switching - around for no good reason on users and profiles. - -] -[use root url of site, not hard-coded identi.ca URL -Evan Prodromou **20080716152906] -[creator_url => creator_uri -Evan Prodromou **20080716163339] -[remove tag URI stuff; unused and confusing -Evan Prodromou **20080716205359] -[default value for avatar server -Evan Prodromou **20080716205541] -[theme server support -Evan Prodromou **20080716205947] -[default timezone -Evan Prodromou **20080716210949] -[no such user in replies. -Evan Prodromou **20080717124215] -[add a description with the bio in it to HTML head -Evan Prodromou **20080717124719] -[better log message for incoming presence -Evan Prodromou **20080717132452] -[public indexers in config file -Evan Prodromou **20080717134331] -[remove default priority from sitemaps -Evan Prodromou **20080717153657] -[use common functions -Evan Prodromou **20080717155212 - - I used the common function for the avatar URL, in case there's an - avatar server. - - I used the common W3C DTF function. - -] -[remove unused call to undefined function -Evan Prodromou **20080717155438] -[restrict avatars to certain sizes in SQL -Evan Prodromou **20080717160257] -[avatar files never change -Evan Prodromou **20080717160531] -[add rel=me to homepage link -Evan Prodromou **20080717163211] -[define syslog variables in common.php -Evan Prodromou **20080717163613] -[uniquify the list of reply nicknames (DOH!) -Evan Prodromou **20080717164042] -[First volly at a Twitter-compatible API. Just working out the -zach@copley.name**20080712081247 - detials of 1) Basic Auth and 2) dispatch to the right Action class - files to handle the requests. - - You can hit it with... - - http://localhost/laconica/api/public_timeline.json - - or to try Basic Auth you can try something like: - - http://nickname:password@localhost/laconica/api/statuses/friends_timeline.xml - - Although that actual method isn't done yet, so it should authenticate - and then complain. - -] -[Comment changed to reflect reality -zach@copley.name**20080713083853] -[Second shot at figuring out action dispatch for Twitter-compatible API -zach@copley.name**20080714080741] -[Stubs for all Twitter-API methods -zach@copley.name**20080714080949] -[All Twitter-compatible API calls answer now -zach@copley.name**20080714190300] -[First Twitter-compat API call works! /api/help/test.format -zach@copley.name**20080714202728] -[Twitter-compatible API: /statuses/public_timeline.xml sorta works -zach@copley.name**20080715031812] -[Prepended 'Twit' to Twitter-compatible API actions (renamed action -zach@copley.name**20080715043121 - files) to make it more clear what the action files are for. -] -[Twitter-compatible API: public_timeline.xml more complete -zach@copley.name**20080715065850] -[Twitter-compatible API: refactor in prep for json, rss, and atom formats -zach@copley.name**20080715234131] -[Twitter-compatible API: public_timeline.json now works -zach@copley.name**20080716060922] -[Twitter-compatible API: public_timeline.rss mostly working -zach@copley.name**20080716072124] -[Twitter-compatible API: public_timeline.rss really works now -zach@copley.name**20080716191847] -[Twitter-compatible API: public_timeline.atom works -zach@copley.name**20080716205218] -[Twitter-compatible API - code cleanup -zach@copley.name**20080716220223] -[Twitter-compatible API: statuses/show/id.format now works -zach@copley.name**20080716230047] -[Twitter-compatible API - /statuses/show and /statuses/update now work -zach@copley.name**20080717054411] -[add friend statuses, refactor output functions -Evan Prodromou **20080717210519] -[support id, user timeline -Evan Prodromou **20080717211942] -[sprintf error -Evan Prodromou **20080717213214] -[Twitter-API: /statuses/replies.format now works (mostly) -zach@copley.name**20080717222845] -[Twitter-compatible API /statuses/replies.format -- changed subtitle to be more like Twitter's -zach@copley.name**20080717223521] -[Twitter-compatible API: /statuses/user_timeline/argument.format now works -zach@copley.name**20080718002131] -[Twitter-compatible API - updated rewrite rules to support /statuses/user_timeline -zach@copley.name**20080718002324] -[Link author avatars to posts directly. -Earle Martin **20080716183052] -[hand-built links.ini -Evan Prodromou **20080718013444] -[Twitter-compatible API: white listed user_timeline and show as per twitter -zach@copley.name**20080718023334] -[Twitter-compatible API - first crack at /statuses/followers.format -zach@copley.name**20080718025554] -[Twitter-API: /account/verify_credentials.format now works -zach@copley.name**20080718040332] -[move mail notification to a utility function -Evan Prodromou **20080718041231] -[show friendship stuff -Evan Prodromou **20080718041323] -[add nonce links -Evan Prodromou **20080718041549] -[beware of shadows -Evan Prodromou **20080718041633] -[null reference error -Evan Prodromou **20080718042030] -[getting the id from the wrong place -Evan Prodromou **20080718042352] -[start and end xml -Evan Prodromou **20080718042511] -[init and end documents -Evan Prodromou **20080718043456] -[when in doubt, start throwing transactions around -Evan Prodromou **20080718043735] -[exit on error -Evan Prodromou **20080718044905] -[add create stamp to subscription in api -Evan Prodromou **20080718045150] -[change fetch to find in api -Evan Prodromou **20080718045204] -[handle some more cases -Evan Prodromou **20080718050845] -[add api data -Evan Prodromou **20080718051318] -[forgot ending element for users -Evan Prodromou **20080718051404] -[add argumented friends and followers to api -Evan Prodromou **20080718051841] -[pages and limits -Evan Prodromou **20080718052557] -[add an HTML payload to outgoing notices -Evan Prodromou **20080718063130] -[forgot the user's name in HTML output -Evan Prodromou **20080718070252] -[remove API from list of unimplemented features. -Evan Prodromou **20080718164120] -[increment software version -Evan Prodromou **20080718164317] \ No newline at end of file diff --git a/_darcs/inventories/20080731050646-34904-b17417e7a20088b81fd47484c29bb0922de94acf.gz b/_darcs/inventories/20080731050646-34904-b17417e7a20088b81fd47484c29bb0922de94acf.gz deleted file mode 100644 index 192e98bbce..0000000000 --- a/_darcs/inventories/20080731050646-34904-b17417e7a20088b81fd47484c29bb0922de94acf.gz +++ /dev/null @@ -1,375 +0,0 @@ -Starting with tag: -[TAG 0.4.4 -Evan Prodromou **20080718164332] -[quote match terms -Evan Prodromou **20080718183534] -[Twitter-compatible API - added missing double quotes to WWW-Authenticate header -zach@copley.name**20080718185053] -[LOG_ERROR -> LOG_ERR -Evan Prodromou **20080718190835] -[add basic auth for user_timeline -Evan Prodromou **20080719154753] -[try again with user_timeline auth -Evan Prodromou **20080719155526] -[bare auth for friends, too -Evan Prodromou **20080719171023] -[correct handling of bareauth -Evan Prodromou **20080719171605] -[Update pot file -Mike Cochrane **20080717235306] -[Fix a couple of notice errors -Mike Cochrane **20080720023259] -[Another notice error -Mike Cochrane **20080720023510] -[A couple more notice errors -Mike Cochrane **20080720025546] -[Some more notice errors - I guess I'm the only one developing with E_ALL -Mike Cochrane **20080720033236] -[Don't highlight search terms inside url -Mike Cochrane **20080720033401] -[Add hidden form value when the site is not in fancy mode so the action is not lost -Mike Cochrane **20080720040351] -[mailer daemon start -Evan Prodromou **20080717132533] -[some missing methods -Evan Prodromou **20080718180951] -[fixup error -Evan Prodromou **20080718181612] -[better error msg -Evan Prodromou **20080718185027] -[LOG_ERROR => LOG_ERR in maildaemon -Evan Prodromou **20080718191019] -[better type logic -Evan Prodromou **20080718202052] -[pass type to error -Evan Prodromou **20080718202124] -[add some logging -Evan Prodromou **20080718202702] -[add a transport flag to queue items -Evan Prodromou **20080719140906] -[use mailparse -Evan Prodromou **20080719142058] -[email settings for post by email -Evan Prodromou **20080719202625] -[save emailpost flag -Evan Prodromou **20080720053431] -[first pass at list of SMS carriers for SMS-to-email gateway -Evan Prodromou **20080720053458] -[start sms settings -Evan Prodromou **20080720193005] -[wrong name for email settings action file -Evan Prodromou **20080720193132] -[require sms carrier -Evan Prodromou **20080720193228] -[confirmation for sms -Evan Prodromou **20080720193712] -[add sms broadcast to broadcasting -Evan Prodromou **20080720195549] -[clarify that charges may be exorbitant -Evan Prodromou **20080720195834] -[bad string in SQL query -Evan Prodromou **20080720200039] -[add autosubscribe flag to users -Evan Prodromou **20080720200530] -[add autosubscribe -Evan Prodromou **20080720201620] -[add autosubscribe to profile settings -Evan Prodromou **20080720202705] -[too much merlot on the airplane, dumb syntax mistake -Evan Prodromou **20080720202832] -[$true not the same as true -Evan Prodromou **20080720233308] -[fixup autosubscribe save -Evan Prodromou **20080720233712] -[shorter confirmation message and web iface to confirm -Evan Prodromou **20080721011128] -[forgot to p -Evan Prodromou **20080721012301] -[get the correct code -Evan Prodromou **20080721012405] -[stop overwriting links.ini -Evan Prodromou **20080721035853] -[add sms email address to user -Evan Prodromou **20080721035919] -[add flag for sms replies -Evan Prodromou **20080721040551] -[use user field rather than re-building sms email over and over -Evan Prodromou **20080721040614] -[use smsemail stored value -Evan Prodromou **20080721042302] -[trim mail and maildaemon -Evan Prodromou **20080721042333] -[scrub mail content a bit more -Evan Prodromou **20080721043734] -[explode WHAT, again? -Evan Prodromou **20080721044015] -[output with whitespace between lines -Evan Prodromou **20080721044135] -[save changes to smsemail -Evan Prodromou **20080721044604] -[multitype (???) -> multipart -Evan Prodromou **20080721045119] -[some more scrubbing -Evan Prodromou **20080721050508] -[rewrite for settings of sms -Evan Prodromou **20080721083758] -[checkbox named wrong in sms settings -Evan Prodromou **20080721084801] -[update keys for incomingemail -Evan Prodromou **20080721085641] -[fix mail sending -Evan Prodromou **20080721090819] -[SQL error -Evan Prodromou **20080721091854] -[logging and checking -Evan Prodromou **20080721092813] -[do the sms query the dumb way -Evan Prodromou **20080721093401] -[return true from mail sms broadcast -Evan Prodromou **20080721093457] -[maildaemon enqueues -Evan Prodromou **20080721133337] -[Twitter-compatible API: /account/update_location implemented -zach@copley.name**20080720044756] -[Twitter-compatible API - Error handling that better matches Twitter's -zach@copley.name**20080720070905] -[Twitter-compatible API - refactoring and bug fixes -zach@copley.name**20080720083428] -[Twitter-compatible API: /friendship/exists always failed - fixed! -zach@copley.name**20080720083948] -[Twitter-compatible API: /help/test was emmitting dupe elements. Fixed. -zach@copley.name**20080721091702] -[better confirm cancel -Evan Prodromou **20080721162434] -[correct values for hidden fields -Evan Prodromou **20080721162857] -[mark notices as local -Evan Prodromou **20080722141614] -[mark incoming notices as local or not -Evan Prodromou **20080722141828] -[public timeline only gets local notices -Evan Prodromou **20080722142050] -[every user is subscribed to themselves -Evan Prodromou **20080722144154] -[centralize and optimize with-friends query -Evan Prodromou **20080722160213] -[blow off DB_DataObject joins, write SQL from scratch -Evan Prodromou **20080722161549] -[whitespace in SQL -Evan Prodromou **20080722161712] -[another whitespace SQL error -Evan Prodromou **20080722161752] -[notices and counts -Evan Prodromou **20080722162332] -[don't get a count from query -Evan Prodromou **20080722163116] -[don't get a count anywhere -Evan Prodromou **20080722163200] -[hide magic self subscription -Evan Prodromou **20080722163511] -[fix content check so it shows zeros -Evan Prodromou **20080722163618] -[correctly return 0 for zero followers -Evan Prodromou **20080722164129] -[add notice sources (currently unused) -Evan Prodromou **20080722164639] -[lost the nickname changing from profile to user -Evan Prodromou **20080722173613] -[Twitter-compatible API - location_update was spitting out the wrong profile. Fixed. -zach@copley.name**20080721174438] -[Added is_readonly() method to all Actions -zach@copley.name**20080722171501] -[Twitter-compatible API: made is_readonly() method smarter -zach@copley.name**20080722182919] -[base class is_readonly() now returns false by default -zach@copley.name**20080722212056] -[use a random mirror -Evan Prodromou **20080724171213] -[default for mirror in DB -Evan Prodromou **20080724205456] -[ensure that there's a session before redirecting the user -Evan Prodromou **20080724231833] -[let admins prevent registration -Evan Prodromou **20080724235508] -[don't show register link if the site is closed -Evan Prodromou **20080724235804] -[add local flag for stuff posted over the API -Evan Prodromou **20080727023516] -[four key SMS providers had ' (SMS)' appended to their patterns -Evan Prodromou **20080729032845] -[Fixed location of bracket for gettext. -Mike Cochrane **20080713053033] -[Resolve conflict -Mike Cochrane **20080714025853] -[More notice errors and fix and incorrect variable name -Mike Cochrane **20080720055558] -[First cut at hastags support. -Mike Cochrane **20080720055702] -[Missing ini settings for notice_tag table -Mike Cochrane **20080720080801] -[Add rewrite rules for tags -Mike Cochrane **20080720081021] -[Add tag action -Mike Cochrane **20080720081838] -[Set constant to propper value, not debug value -Mike Cochrane **20080720082641] -[Update of the fr_FR translation -florian@biree.name**20080719162355] -[Added notice deletion http://laconi.ca/PITS/00045 -matthew.gregg@gmail.com**20080716032045 - - Removes selected notice and any replies that reference it. - Attempts to de-queue anything pending. - - This patch does not archive notices. -] -[Patch for PITS 00032, 00033, 00034 -matthew.gregg@gmail.com**20080719003417] -[Adds Opensearch description -matthew.gregg@gmail.com**20080720015823] -[Sort tags by highest frequency then most recent -Mike Cochrane **20080720094832] -[Notice error -Mike Cochrane **20080720094917] -[Clean up of delete links when not logged in -Mike Cochrane **20080720094954] -[Update for langauge column -Mike Cochrane **20080720095651] -[Fix undefined variable error -Mike Cochrane **20080720100024] -[Regenerate class file for language column -Mike Cochrane **20080720100253] -[Fullname is in the profile, not the user object -Mike Cochrane **20080720101553] -[Add rel="contact" to subscription on profile page. http://laconi.ca/PITS/00275 -Mike Cochrane **20080720101947] -[gettext strings and pass the query string between tabs http://laconi.ca/PITS/00231 -Mike Cochrane **20080720105659] -[Block access to .ini files http://laconi.ca/PITS/00240 -Mike Cochrane **20080720112032] -[Explicitly set the character set on the handle column to fix http://laconi.ca/PITS/00262 -Mike Cochrane **20080720113458] -[Fix errors from delete code when viewing a user's profile while not logged in. -Mike Cochrane **20080720122715] -[Strip characters that shouldn't be in xml. Fixes http://laconi.ca/PITS/00253 for future messages, or all after a regeneration of rendered messages -Mike Cochrane **20080720122832] -[Clean up delete code. Add missing htaccess rule. Exit after errors so the code doesn't continue running. -Mike Cochrane **20080720124552] -[User definable timezones. Work in UTC internally and display per user/site default. http://laconi.ca/PITS/00011 -Mike Cochrane **20080720141325] -[Locate examples in config -Mike Cochrane **20080720141543] -[Opensearch updates -matthew.gregg@gmail.com**20080720195505 - - This adds htaccess and searches for people and notices. - -] -[Get text wrappers around strings so they can be in the native language of the site and use fancy urls if appropriate -mikec@mikenz.geek.nz**20080721090110] -[Publish MicroIDs for email and mpp on profile and notice pages. -mikec@mikenz.geek.nz**20080721120036] -[Changse to ini file that I always forget to record -Mike Cochrane **20080721123243] -[Update POT file -Mike Cochrane **20080721123519] -[Resolve conflicts after pull from evan -mikec@mikenz.geek.nz**20080721135637] -[Add error file and line to the xmppdaemon error handler -Mike Cochrane **20080722064607] -[Add vodafone New Zealand -Mike Cochrane **20080722082526] -[Only try sending xmpp notices if xmpp is enabled -Mike Cochrane **20080722082653] -[Only Set reply details if there is something to reply to -Mike Cochrane **20080722082724] -[No errors if it's not set -Mike Cochrane **20080722082840] -[Add SMS mail config to sample config -Mike Cochrane **20080722100828] -[Resolve conflicts -Mike Cochrane **20080722205315] -[Index on the correct column -Mike Cochrane **20080722205335] -[Lazy/Auto load the class files as needed -Mike Cochrane **20080724234533] -[Correct variable name -Mike Cochrane **20080724234601] -[Cache the DateTimeZon objects -Mike Cochrane **20080724234619] -[Auto/Lazy load the class files -Mike Cochrane **20080724234701] -[Queue_item correct name in dequeue function -Evan Prodromou **20080726033958] -[change 'deletenotice' to 'notice/delete' -Evan Prodromou **20080726034209] -[require validation code -Evan Prodromou **20080729025156] -[Orange (UK) for carriers -Evan Prodromou **20080729182534] -[rel=tag for hashtags -Evan Prodromou **20080729182558] -[force re-render on all notices whether or not they're already rendered -Evan Prodromou **20080729183154] -[change tag output to a tag cloud -Evan Prodromou **20080729193533] -[show the weight in output (for my own edification) -Evan Prodromou **20080729194246] -[relative info, too -Evan Prodromou **20080729194457] -[if-else instead of ?: -Evan Prodromou **20080729194735] -[change relative names to percentages in font sizes -Evan Prodromou **20080729195055] -[fix css selector -Evan Prodromou **20080729195204] -[shift some font sizes around -Evan Prodromou **20080729195307] -[justify the tag cloud -Evan Prodromou **20080729195405] -[justify -> center -Evan Prodromou **20080729195512] -[refactor notice-adding code to one static method on Notice -Evan Prodromou **20080730022856] -[save the source -Evan Prodromou **20080730025052] -[remember to broadcast in api, and also use the right ID -Evan Prodromou **20080730030012] -[show where a notice came from -Evan Prodromou **20080730032651] -[fallback for unknown source -Evan Prodromou **20080730032918] -[new -> staticGet -Evan Prodromou **20080730033304] -[use a little X instead of "delete" for delete link, right after arrow -Evan Prodromou **20080730033804] -[show the right stuff on profile page, too -Evan Prodromou **20080730033939] -[move the language info, fix dir for locales -Evan Prodromou **20080730035446] -[output on fixup_hashtags -Evan Prodromou **20080730191753] -[Twitter-compatible API: better error handling for replier_by_reply() -zach@copley.name**20080728230221] -[Update some gettext strings and number the arguements so life is easier for translators -Mike Cochrane **20080729080641] -[Resolve conflicts -Mike Cochrane **20080731004922] -[Twitter-compatible API: implemented /users/show.format method -zach@copley.name**20080730213226 - (and some API bug fixes) -] -[let @rejon do the homework http://ur1.ca/17c -Evan Prodromou **20080731020433] -[try to slim down the top menu so it all fits -Evan Prodromou **20080731020933] -[Envoyer -> Poster -Evan Prodromou **20080731031652] -[Poster -> Envoi (coding by microblog, probably a first) -Evan Prodromou **20080731033641] -[change the font sizes in the tag cloud -Evan Prodromou **20080731040703] -[ksort() the tags list -Evan Prodromou **20080731041000] -[version upgrade -Evan Prodromou **20080731050632] \ No newline at end of file diff --git a/_darcs/inventories/20080922225224-84dde-625df932503bbcfc34e4eecc6aec09c5a0509315.gz b/_darcs/inventories/20080922225224-84dde-625df932503bbcfc34e4eecc6aec09c5a0509315.gz deleted file mode 100644 index da247966a3..0000000000 --- a/_darcs/inventories/20080922225224-84dde-625df932503bbcfc34e4eecc6aec09c5a0509315.gz +++ /dev/null @@ -1,869 +0,0 @@ -Starting with tag: -[TAG 0.5.0 -Evan Prodromou **20080731050646] -[add edo's tagcloud code -Evan Prodromou **20080731132302] -[extend length of source for notices -Evan Prodromou **20080731152731] -[added conneg for action/userbyid so that foaf can be delivered to clients that want application/rdf+xml -ehs@pobox.com**20080801164623] -[update .pot from source code -Evan Prodromou **20080803232102] -[change no-such-user error to a 404 instead of a 400 -Evan Prodromou **20080804132001] -[use an outstanding unconfirmed email address for password recovery if available -Evan Prodromou **20080804130914] -[better handling of unconfirmed email addresses -Evan Prodromou **20080804133253] -[use noreply address as fallback if no incoming email address exists -Evan Prodromou **20080804133933] -[add commands to turn sms notification on and off -Evan Prodromou **20080804190749] -[ignore OTR messages over Jabber (I think) -Evan Prodromou **20080806002134] -[make init of lang environment happen earlier, or when user language may have changed -Evan Prodromou **20080806034515] -[Set the C locate to avoid tr_TR php bug see http://www.topolis.lt/php/#35050 -mikec@mikenz.geek.nz**20080804133727] -[Add other languages to drop down -Mike Cochrane **20080805020520] -[fixup locale stuff from mikenz -Evan Prodromou **20080806040433] -[fix config global -Evan Prodromou **20080806122119] -[update French translation with msgmerge -Evan Prodromou **20080806161748] -[LOG_ERROR -> LOG_ERR (again) -Evan Prodromou **20080807234227] -[emergency fixup for bad notices in notice search -Evan Prodromou **20080811175318] -[make tag dropoff configurable -Evan Prodromou **20080811175820] -[Twitter-compatible API - /statuses/update.format now decodes HTML chars, such as & -zach@copley.name**20080731224911] -[Twitter-compatible API: filled in the source attr for notices accessed via API -zach@copley.name**20080809001240] -[fix problem with new notices -Evan Prodromou **20080811181158] -[correct sitemapindex output -Evan Prodromou **20080811200058] -[fix some errors in sitemaps -Evan Prodromou **20080812011600 - - Only show notices that don't have a remote URL. That should include - only local notices. - - Also, don't do an avatar sitemap; apparently nobody indexes these - anyways. - -] -[correctly show URL for rare notice without an URI -Evan Prodromou **20080812121832] -[get rid of dataobject.ini -- again -Evan Prodromou **20080813180239] -[auto-load OAuthRequest -Evan Prodromou **20080813195408] -[move user registration to a single static method -Evan Prodromou **20080814002038] -[Twitter-compatible API: removed redundant decoding step; already taken care of by util.php's common_render_content() -zach@copley.name**20080813193327] -[Twitter-compatible API: support for new in_reply_to_status_id in statuses/update -zach@copley.name**20080815185317] -[name omb_listener param so we can refer to it in error msg -Evan Prodromou **20080816151057] -[make settings and search menus localisable -Evan Prodromou **20080817150244] -[move command-line scripts to their own dir -Evan Prodromou **20080813154603] -[accept 140-character UTF-8 strings to content -Evan Prodromou **20080817151751] -[debug for content too long -Evan Prodromou **20080817152419] -[use UTF-8 as the internal encoding -Evan Prodromou **20080817153024] -[remove hack to count bytes, not chars, in JS, since we now use chars -Evan Prodromou **20080817153143] -[typo in forgotten password string -Evan Prodromou **20080817163324] -[accept 140 chars in API, too -Evan Prodromou **20080817192710] -[use mb_substr for xmpp daemon check -Evan Prodromou **20080818025549] -[first step towards adding favorites to the system -Evan Prodromou **20080813142637] -[Database uses UTF-8 by default -Evan Prodromou **20080817151728] -[restore fave table lost when doing utf8 upgrade -Evan Prodromou **20080817152108] -[trim whitespace in laconica.sql -Evan Prodromou **20080817152133] -[set internal encoding in XMPP daemon -Evan Prodromou **20080818033049] -[broadcast remote notices -Evan Prodromou **20080819182724] -[add remote flag to broadcast of notices -Evan Prodromou **20080819182824] -[add database tables for foreign services -Evan Prodromou **20080819221214] -[Twitter-compatible API - running all strings through gettext() now -zach@controlyourself.ca**20080819002903] -[Twitter-compatible API - moved show() to the right file -zach@controlyourself.ca**20080819003931] -[Twitter-compatible API - /statuses/destroy method implemented -zach@controlyourself.ca**20080819194610] -[Twitter-compatible API - Added /statuses/followers to methods that -zach@controlyourself.ca**20080819195431 - require bareauth only if no nickname/id is supplied. -] -[Twitter-compatible API - /statuses/show - better err msg if notice doesn't exist -zach@controlyourself.ca**20080819202318] -[Twitter-compatible API - RESTfulness checks as per Twitter -zach@controlyourself.ca**20080819214923] -[add Cincinnati Bell Wireless -Evan Prodromou **20080821125306] -[include external libs in a subdir to make install easier -Evan Prodromou **20080822131714] -[local-only is optional on public timeline -Evan Prodromou **20080822210307] -[add note to config.php.sample about localonly -Evan Prodromou **20080822210415] -[fix include path bug -Evan Prodromou **20080822210654] -[better error reporting in user authorization action -Evan Prodromou **20080822212111] -[XMPP bounce message when too long (ticket #112) -CiaranG **20080818213031] -[Fix bug in xmpp on/off (ticket #528) -CiaranG **20080819071321] -[Define xmpp daemon claim timeout time -CiaranG **20080822185955] -[XMPP sub/unsub and help commands -CiaranG **20080822191032] -[Fixed attempt to read nonexistent match in JID regex -CiaranG **20080822191751] -[Escape profile url in xmpp in case fancy urls off (Ticket #521) -CiaranG **20080823052534] -[Prevent jabber.php error by checking key exists -CiaranG **20080823053548] -[request token is not readonly -Evan Prodromou **20080824011706] -[be a little more liberal for sites that accidentally put whitespace before the xml decl -Evan Prodromou **20080824013803] -[move README to main dir -Evan Prodromou **20080824113719] -[big scarygram warning in config.php.sample about using DB_DataObject's debug mode -Evan Prodromou **20080824171202] -[notify user of remote subscriptions -Evan Prodromou **20080824200517] -[use mb_strlen instead of strlen in xmpp daemon -Evan Prodromou **20080825173105] -[use common_sql_now() instead of DB_DataObject_Cast -Evan Prodromou **20080825182338] -[change DataObject_Cast to use sql_now -Evan Prodromou **20080825183005] -[use better SQL date, fix security problem with OpenID logins -Evan Prodromou **20080825184104] -[never allow blank passwords -Evan Prodromou **20080825185245] -[optionally turn encryption on or off in the XMPP connection -Evan Prodromou **20080826131814 - - For identi.ca, we had some problems with the XMPP daemon getting - "stuck" in I/O through the encrypted (by default) XMPP socket. Turning - off encryption helped. So, now it's an option. - -] -[only send local messages to public XMPP stream -Evan Prodromou **20080826205341] -[use notice URI if it's not local and it's an HTTP URL -Evan Prodromou **20080826210314] -[fix error storing uris of remote notices -Evan Prodromou **20080826211108] -[import upstream XMPPHP with @ciarang's fix -Evan Prodromou **20080827124430] -[fixup whitespace -Evan Prodromou **20080827131603] -[don't show unknown (debug) errors -Evan Prodromou **20080827132346] -[XMPP daemon that doesn't eat messages - note change to XMPPHP as well (Ticket #551) -CiaranG **20080826200057] -[restoring upstream XMLStream.php after pulling ciarang's patch -Evan Prodromou **20080827133048] -[add back in a session start handler -Evan Prodromou **20080827135422] -[don't do too many broadcasts or confirms before checking the message queue -Evan Prodromou **20080827142336] -[get language before setting it. -Evan Prodromou **20080828005323] -[add session token check to password change -Evan Prodromou **20080829014515] -[code for session token -Evan Prodromou **20080829015304] -[fix random function name -Evan Prodromou **20080829021854] -[return after failed token -Evan Prodromou **20080829023731] -[add CSRF protection to avatar -Evan Prodromou **20080829023919] -[CSRF protection in deletenotice -Evan Prodromou **20080829025127] -[show error in delete notice -Evan Prodromou **20080829025559] -[add a token for CSRF avoidance -Evan Prodromou **20080829034854] -[CSRF protection for OpenID form -Evan Prodromou **20080829035934] -[swap around some stuff to show the form correctly on a CSRF error in openidlogin -Evan Prodromou **20080829040925] -[CSRF protection in openidsettings -Evan Prodromou **20080829042908] -[add csrf protection to profile settings -Evan Prodromou **20080829043909] -[CSRF protection in smssettings.php -Zach Copley **20080829035118] -[CSRF protection in imsettings.php -Zach Copley **20080829035707] -[CSRF protection for subscription/unsubscription -Evan Prodromou **20080829051104] -[better client error on CSRF problem with subscribe/unsubscribe -Evan Prodromou **20080829051628] -[csrf protection in userauthorization -Evan Prodromou **20080829052732] -[session token in userauthorization form -Evan Prodromou **20080829052847] -[CSRF protection in recoverpassword -Zach Copley **20080829052824] -[CSRF protection in user registration -Evan Prodromou **20080829054017] -[CSRF protection in emailsettings -Zach Copley **20080829053337] -[CSRF protection in remotesubscribe -Zach Copley **20080829054038] -[clean up username entered at login -Evan Prodromou **20080829225258] -[break up monolithic xmppdaemon into multiple queue handlers -Evan Prodromou **20080827205407 - - Eventually, the poor xmppdaemon has become overloaded with extra - tasks. So, I've broken it up. Now, we have 5 background scripts, and - more coming: - - * xmppdaemon.php - handles incoming XMPP messages only. - * xmppqueuehandler.php - sends notices from the queue out through XMPP. - * smsqueuehandler.php - sends notices from the queue out over SMS - * ombqueuehandler.php - sends notices from the queue out over OMB - * xmppconfirmhandler.php - sends confirmation requests out over XMPP. - - This is in addition to maildaemon.php, which takes incoming messages. - - None of these are "true" daemons -- they don't daemonize themselves - automatically. Use nohup or another tool to background them. monit can - also be useful to keep them running. - - At some point, these might become fork()'ing daemons, able to handle - more than one notice at a time. For now, I'm just running multiple - instances, hoping they don't interfere. - -] -[remove unimplemented methods from XmppDaemon -Evan Prodromou **20080827210429] -[change queue_item to use a compound primary key -Evan Prodromou **20080827211239 - - Breaking up to use multiple queue handlers means we need multiple - queue items for the same notice. So, change the queue_item table to - have a compound pkey, (notice_id,transport). - -] -[got two lines reversed -Evan Prodromou **20080827211940] -[change return in queue function -Evan Prodromou **20080828001414] -[correct presence in jabber function -Evan Prodromou **20080828001936] -[don't clear claims immediately -Evan Prodromou **20080828002610] -[correct return values from start() in queue handlers -Evan Prodromou **20080828003013] -[extend QueueHandler -Evan Prodromou **20080828003829] -[XmppQueueHandler extends QueueHandler too -Evan Prodromou **20080828004224] -[$this->log to common_log in Queue_item -Evan Prodromou **20080828004503] -[return correct values for success in handling messages -Evan Prodromou **20080828011002] -[misprint of omb as oms -Evan Prodromou **20080828012619] -[return results of broadcasting by sms -Evan Prodromou **20080828012635] -[add a bash script to start all the daemons -Evan Prodromou **20080828134856] -[add a script to stop daemons, too -Evan Prodromou **20080828135011] -[harmonize csrf and queues -Evan Prodromou **20080829174012] -[split public stream to its own queue handler -Evan Prodromou **20080829181702 - - Add another queue handler for the public stream. Should further - parallelize the work of sending out messages. - -] -[fix name of instantiated class -Evan Prodromou **20080829182112] -[a little more robust confirm handler -Evan Prodromou **20080829182349] -[many jabber queue management changes -Evan Prodromou **20080829200352 - - Added a method to QueueManager to let subclasses do stuff when idle. - Needed so that XMPP queue manager can service its message queue. - - Cleaned up jabber_broadcast_message quite a bit. Use custom joins - instead of loop-and-query, should fix some problems with users who are - getting messages even after turning off notification. Only build $msg - and $entry once, and use the XMPPHP function for messages with a - payload, rather than rolling our own. - -] -[lost $sent_to in jabber_public_notice -Evan Prodromou **20080829200859] -[strip script ending from end of xmppdaemon -Evan Prodromou **20080829202613] -[add 'raw' to payload to allow getting to the raw xml -Evan Prodromou **20080830000314] -[forward messages from queuehandler to listener -Evan Prodromou **20080830040717 - - The queuehandler sends messages to the user. If the user replies, the - messages are typically sent directly to the queuehandler (including - resource), not the default bot JID. - - We add a little code for the xmppqueuehandler to periodically service - its queue of received messages. Received messages are forwarded to the - listener to deal with. We use XEP 33, 'addresses', to note the - original sender. - - The xmppdaemon checks to see if the 'from' on a message is the daemon - address. If so, it looks for a XEP 33 'addresses' stanza, with an - 'ofrom' address, which shows who it was originally is from. - - This should let us send from one resource ID and still process - incoming messages in a different connection. - -] -[strtolower jids for comparison -Evan Prodromou **20080830052143] -[typo preventing detection of addresses -Evan Prodromou **20080830052810] -[use common log in error handler rather than echo -Evan Prodromou **20080830053052] -[log transport when claiming a notice -Evan Prodromou **20080830054933] -[better logging in ombqueuehandler -Evan Prodromou **20080830055416] -[get address from addresses -Evan Prodromou **20080830055640] -[better debugging output for forwarded messages -Evan Prodromou **20080830055938] -[debug xml input -Evan Prodromou **20080830060732] -[log fetch -Evan Prodromou **20080830062246] -[correctly use attrs array rather than nonexistent attunction -Evan Prodromou **20080830062744] -[less sleeping, slightly -Evan Prodromou **20080830064431] -[don't clear old claims -Evan Prodromou **20080830070135] -[require mail for sms, not omb -Evan Prodromou **20080830070309] -[sms handler was handling omb wrongly -Evan Prodromou **20080830071007] -[forgot to get the profile in public queue handler -Evan Prodromou **20080830071232] -[some fixes from on the jabber server -evan@controlezvous.ca**20080830083502] -[get rid of Laconica_XMPP and ignore priority -Evan Prodromou **20080830084423] -[check for self in forwards, too -Evan Prodromou **20080830085607] -[eliminate loops in forwarding -Evan Prodromou **20080830090148] -[make XMPP take a priority for presence -Evan Prodromou **20080830091430] -[use priority in connection -Evan Prodromou **20080830091522] -[forgot to use the array for avoiding dupes -Evan Prodromou **20080830094252] -[check the state of the queue before diving in to process it -Evan Prodromou **20080830095709] -[better check for ready state on connection -Evan Prodromou **20080830171441] -[public queue handler and xmpp confirm handler service their message queues -Evan Prodromou **20080830172217] -[add initialization info to the queue handlers -Evan Prodromou **20080831020325] -[add some sanity-check stuff for long-running daemons -Evan Prodromou **20080831023844] -[halt sending HTML in Jabber -Evan Prodromou **20080831114642] -[separate out presence from connection, send different presence types from queuehandlers -Evan Prodromou **20080902012604] -[slightly more robust connection code -Evan Prodromou **20080902030331] -[restore HTML in output, remove rump pubsub event code -Evan Prodromou **20080902030403] -[dnd -> available, just looks bad as dns -Evan Prodromou **20080902030910] -[switch around how XMLStream does processing -Evan Prodromou **20080831003210] -[debug logging in __process -Evan Prodromou **20080831012136] -[floor -Evan Prodromou **20080831013132] -[int div games -Evan Prodromou **20080831013603] -[slightly better int math -Evan Prodromou **20080831014404] -[use updated xmpphp library -Evan Prodromou **20080902163718] -[add reconnect handlers to main XMPP-handling scripts -Evan Prodromou **20080902165319] -[better connection handling in scripts -Evan Prodromou **20080902165735] -[set the reconnect timeout -Evan Prodromou **20080902171740] -[variable name conflict on reconnect -Evan Prodromou **20080902172039] -[reconnect timeout -Evan Prodromou **20080902172256] -[license block on util.js -Evan Prodromou **20080827013835] -[try to make the reply button do the right thing if there's no notification box. -Evan Prodromou **20080827015010] -[move broadcast in OMB postnotice for bad case -Evan Prodromou **20080828221420] -[Tags_without_fancy -Garret Buell **20080831233401 - Change common_tag_link to format the tag link based on the setting of $config['site']['fancy'] -] -[Allow_multicase_tags -Garret Buell **20080901001241 - Make "#test", "#Test", and "#tEsT" all preserve appearance but link to the same tag -] -[Elide_Tags -Garret Buell **20080901025932 - Make "#sanfrancisco", "#SanFrancisco", "#san_francisco", "#San.Francisco", and "#SAN-FRANCISCO" all link to http://identi.ca/tag/sanfrancisco but preserve appearance -] -[RequirePassword -Garret Buell **20080830195036 - Require a password with at least 6 characters when registering. -] -[Resolve remote subscribe and omb problems with quotes (Tickets #604 and #567) -CiaranG **20080904065504] -[Fix typo in presence message (x3) -CiaranG **20080904081542] -[Some Notice::saveNew cleanups. -Ori Avtalion **20080902173804 - * No need to check $source's value before inserting - * No need to update the notice if the $uri was known in advance -] -[fix bad args in postnotice for new notices -Evan Prodromou **20080904195720] -[Fix typo in finishremotesubscribe -CiaranG **20080904201921] -[scripts daemonize themselves -Evan Prodromou **20080904184031] -[add .pid to pidfile names -Evan Prodromou **20080904190254] -[more robust code for setting daemon uid/gid -Evan Prodromou **20080904191031] -[add newline at the end of pidfile -Evan Prodromou **20080904191517] -[new format for startdaemons; not sure how to do stopdaemons so punting -Evan Prodromou **20080904192220] -[better feedback when starting daemons -Evan Prodromou **20080904192851] -[make confirmhandler a subclass of queuehandler -Evan Prodromou **20080904193118] -[abstract XMPP-related queue handling to a common superclass -Evan Prodromou **20080904194035] -[change xmppqueuedaemon to jabberqueuedaemon in startdaemons -Evan Prodromou **20080904194346] -[require xmppqueuehandler in jabberqueuehandler -Evan Prodromou **20080904194456] -[better logging for confirm handler update -Evan Prodromou **20080904203502] -[add some processTime() to the send loops to avoid filling the buffer -Evan Prodromou **20080904213257] -[better @ links -Evan Prodromou **20080904224129] -[use a join for omb broadcast -Evan Prodromou **20080905004701] -[change sms broadcast to use a join -Evan Prodromou **20080905022019] -[return in the status textarea will submit the form -Evan Prodromou **20080905045415] -[do submit on keydown -Evan Prodromou **20080905045736] -[stop default handling of return in browser -Evan Prodromou **20080905050356] -[set focus to status text area -Evan Prodromou **20080905050824] -[free and unset DB_DataObjects after we're done with them -Evan Prodromou **20080906015501] -[free memory in SMS daemon, too -Evan Prodromou **20080906015621] -[debugging for omb -Evan Prodromou **20080907193402] -[lots of debugging code in OMB send -Evan Prodromou **20080907195242] -[remove some debugging code from omb.php -Evan Prodromou **20080907200344] -[error checking in subscriptions -Evan Prodromou **20080908201020] -[Disallow 'tag' and 'tags' as usernames. Fixes ticket #584 -Ori Avtalion **20080905114534] -[Fix for reply arrow in profile page -Michael Landers **20080905090848] -[Fix confusing comment in config.sample.php (Ticket #616) -CiaranG **20080905162732] -[add a sample RewriteBase -Evan Prodromou **20080910180050] -[add a line for mail domain -Evan Prodromou **20080910154632] -[update information about queues -Evan Prodromou **20080910154754] -[reverse order of queries for galleries -Evan Prodromou **20080911144742] -[LOG_ERROR -> LOG_ERR -Evan Prodromou **20080913161107] -[duplicate confirmation to avoid where clause -Evan Prodromou **20080913164333] -[only use MyISAM for tables with fulltext indices -Evan Prodromou **20080915053955] -[cache noticesWithFriends in memcached -Evan Prodromou **20080915065616 - - noticesWithFriends is turning out to be one of our most expensive - queries. The join is costly, and this method is hit over and over and - over by desktop clients and other API users. - - So, I've added a first pass at caching the results. I store a "window" - of notices -- equal to the first 3 pages of notices, plus one for - pagination -- in the memcached cache. If with-friends notices are - requests, I fetch the whole window out of the cache and grab the slice - requested. If the requested notices are outside the window, we just do - the query. If there's nothing in the cache, we request the window and - store it, then return a slice. - - I had to add a NoticeWrapper class that works like DB_DataObject - (well, just the fetch() part...) but just holds an array of notices - instead of a DB cursor. - - Finally, saving a new notice blows away the caches for subscribed users. - -] -[$INSTALLDIR -> INSTALLDIR -Evan Prodromou **20080915070413] -[array_count -> count -Evan Prodromou **20080915070951] -[subscriptions clear user with-friends cache, too -Evan Prodromou **20080915071500] -[compress window-getting to one function -Evan Prodromou **20080915071835] -[misused instance attribute in noticewrapper -Evan Prodromou **20080915072553] -[another attribute error -Evan Prodromou **20080915072738] -[make NoticeWrapper extend Notice so methods work -Evan Prodromou **20080915073006] -[fix cache deletion code -Evan Prodromou **20080915073215] -[fixup SQL code -Evan Prodromou **20080915073412] -[can actually take all the data in the window -Evan Prodromou **20080920174700] -[blow subscriptions cache when the user deletes a notice -Evan Prodromou **20080920175339] -[use common-config instead of $config in common_language -Evan Prodromou **20080922172631] -[data classes for invitations -Evan Prodromou **20080823191015] -[start the invite form -Evan Prodromou **20080825192946] -[add invite to htaccess.sample -Evan Prodromou **20080825193149] -[add invite to the nav menu -Evan Prodromou **20080825193235] -[invite fancy url -Evan Prodromou **20080825193333] -[fix the invite url -Evan Prodromou **20080825193450] -[fix instructions -Evan Prodromou **20080825193738] -[skip preview, just send the darn thing -Evan Prodromou **20080826021227] -[added a created timestamp to invitations -Evan Prodromou **20080826023116] -[clean up some whitespace in DB script -Evan Prodromou **20080826024015] -[helper functions that take a user object -Evan Prodromou **20080827001348] -[updates for invitations -Evan Prodromou **20080827001927 - - Add the code to registration to handle invitation codes. - - Some edge cases on invitations: is the user already subbed to this - person? Tell them. Is the person already on the system? Sub the user - to them, then, and tell the user. - - Add some code to User to auto-sub invitees whenever the email address - changes. Call it from a new registration with an invite code, and also - from confirmaddress. - - Some whitespace cleanup in the files touched. - -] -[correct output on invitations -Evan Prodromou **20080827003529] -[save invitation code and improve format of outgoing mail -Evan Prodromou **20080827004410] -[fix format for subject -Evan Prodromou **20080827004755] -[fix runon string in invites format -Evan Prodromou **20080827004854] -[send personal message through to send_invitation function -Evan Prodromou **20080827005155] -[lost the names when making a new function send_invitation -Evan Prodromou **20080827005418] -[fix format string, again again -Evan Prodromou **20080827010138] -[Invite -> Invitation -Evan Prodromou **20080827010515] -[removed the preview, so use "Send" for the button -Evan Prodromou **20080827011921] -[add a foreign_link table with prefs for the link -Evan Prodromou **20080827032423] -[update to translation -Evan Prodromou **20080827185817] -[Bounce oversized XMPP messages back to user (Ticket #112) -CiaranG **20080814083856] -[XMPP daemon updates including help, sub and subsub commands, plus subscribe/unsubcribe logic broken out into standalone module for sharing -CiaranG **20080816083422] -[Added missing subs.php -CiaranG **20080816153917] -[remove custom xmppdaemon error handler -Evan Prodromou **20080830162128] -[merge in changes for CSRF, too -Evan Prodromou **20080830162223] -[initial non-Ajax version of favorites -Evan Prodromou **20080908181624] -[change input buttons to submit buttons -Evan Prodromou **20080908182353] -[fix requires in dis/favor and correct url in form -Evan Prodromou **20080908182559] -[correct action for showfavorites in disfavor -Evan Prodromou **20080908182716] -[better styling for favor/disfavor buttons -Evan Prodromou **20080908183515] -[styling on the favor/disfavor forms to show inline -Evan Prodromou **20080908201751] -[write our own submit so there's no

-Evan Prodromou **20080908202226] -[move fave form, float right -Evan Prodromou **20080908202717] -[make favorites form use Ajax -Evan Prodromou **20080908211610] -[missed a closing curly -Evan Prodromou **20080908211656] -[enjitqueuehandler added -Evan Prodromou **20080916174105] -[rationalize with repository version -Evan Prodromou **20080916174400] -[change some more tables to InnoDB -Evan Prodromou **20080916174515] -[Database and classes for direct messages -Evan Prodromou **20080916185126] -[inbox and outbox for direct messages -Evan Prodromou **20080916195346 - - Added an inbox and outbox for direct messages. - - Factored common code to mailbox.php. Factored common code with - stream.php to personal.php. - -] -[fixup CSS for messages -Evan Prodromou **20080916195620] -[correctly show top -Evan Prodromou **20080916200445] -[instructions for inbox and outbox -Evan Prodromou **20080916200703] -[correct title on inbox and outbox -Evan Prodromou **20080916200942] -[Twitter integration - SQL ref data for Twitter -zach@controlyourself.ca**20080822034054] -[Twitter integration - Oh look, a Twitter settings tab. -zach@controlyourself.ca**20080822034157] -[Twitter-integration - Twitter settings tab now saves Twitter credentials -zach@controlyourself.ca**20080826225615] -[Twitter integration - Add and remove Twitter accnt now working -Zach Copley **20080827000327] -[Twitter integration - Foreign_user::getForeignUser() to retrieve -Zach Copley **20080827005444 - Foreign_user by multi-part key: user_id + service -] -[Twitter integration - decided to change Twitter to service ID #1 -Zach Copley **20080827021635] -[fork daemon -Evan Prodromou **20080626224011] -[fork daemon -Evan Prodromou *-20080626224011] -[translation updates -Evan Prodromou **20080817160451] -[Twitter integration - support for new foreign_link table and prefs now save/update -Zach Copley **20080828072205] -[Twitter integration - Notices now broadcast (directly) to Twitter from linked accts. -Zach Copley **20080828192509] -[CSRF protection for invites.php -Zach Copley **20080829045441] -[CSRF protection in twittersettings.php -Zach Copley **20080829045724] -[Conflated Avatar and Profile settings + removed a bunch of unnecessary whitespace -Zach Copley **20080905194732] -[Moved avatar upload down below timezone on profile settings -Zach Copley **20080906070651] -[Fold password form into profile settings -Zach Copley **20080907053604] -[Twitter integration - added $config option for source attribute when posting to Twitter -Zach Copley **20080907062118] -[Twitter integration - wording change -Zach Copley **20080907063339] -[Disallow 'api' nickname -Zach Copley **20080909000650] -[Twitter-compatible API - JSONP callbacks for all methods emitting JSON -Zach Copley **20080910025013] -[integrate local changes with Zach's -Evan Prodromou **20080916210813] -[Initial support for PostgreSQL -CiaranG **20080909072224] -[Fix remote sub when redirected via login (Ticket #618) -CiaranG **20080909202259] -[PostgreSQL - reply.modified needs a default -CiaranG **20080910073741] -[Fix unquoted array key, causes b0rkage on some php setups (via @bopuc) -CiaranG **20080911163558] -[PostgreSQL: Make tag cloud query work - also fixes what is surely an ignored error in the mysql query -CiaranG **20080911192348] -[PostgreSQL: support for full text searching (notice and people) -CiaranG **20080914201744] -[PostgreSQL: Quote table name in manually formed query - fixes profile settings update -CiaranG **20080915070256] -[Further updates to sample config -CiaranG **20080915081246] -[Fix missing nickname in rss replies to title -CiaranG **20080915190953] -[Get correct configured language when all else fails -CiaranG **20080916172706] -[rationalize with ciarang's pgsql changes -Evan Prodromou **20080916214134] -[add in ciarang's changes to config.php.sample -Evan Prodromou **20080916214206] -[use common_local_url() in tagging, add canonicalization function -Evan Prodromou **20080917112234] -[move rendering stuff that doesn't depend on notice to a separate function -Evan Prodromou **20080917112730] -[newmessage and showmessage -Evan Prodromou **20080917174741] -[add new message link to showstream -Evan Prodromou **20080917175356] -[don't show message link on your own page -Evan Prodromou **20080917175512] -[fancy urls for show message, new message -Evan Prodromou **20080917180244] -[to parameter is an ID not a nickname -Evan Prodromou **20080917185142] -[not a nickname so don't canonicalize -Evan Prodromou **20080917185723] -[correct urls from fancy url for show-message -Evan Prodromou **20080917185950] -[fix missing variable in save-new-message -Evan Prodromou **20080917190306] -[skip over Mailbox::handle to Action::handle -Evan Prodromou **20080917190445] -[fix titles in showmessage -Evan Prodromou **20080917190745] -[save created date -Evan Prodromou **20080917191652] -[some minor fixes for new messages -Evan Prodromou **20080917192121] -[style for message form -Evan Prodromou **20080918021421] -[rearrange paragraphs in message form -Evan Prodromou **20080918021727] -[change id of message textarea -Evan Prodromou **20080918021926] -[no instructions for 'to' dropdown -Evan Prodromou **20080918022410] -[set message form label to display inline -Evan Prodromou **20080918022558] -[try to move the message box up a bit -Evan Prodromou **20080918022756] -[scootch it down a bit again -Evan Prodromou **20080918022841] -[return correct data structure for messages in showmessage -Evan Prodromou **20080918023032] -[fetch -> find -Evan Prodromou **20080918025232] -[fix htaccess so pass message param correctly -Evan Prodromou **20080918025428] -[more id -> message shenanigans -Evan Prodromou **20080918025543] -[remove tabs from showmessage -Evan Prodromou **20080918025713] -[split favor forms code -Evan Prodromou **20080918032048] -[big changes to the README, part 1 -Evan Prodromou **20080918135502] -[if favor/disfavor submitted through ajax, return micro-html of form -Evan Prodromou **20080918135608] -[Gee, maybe I shouldn't try to write DOM code from memory -Evan Prodromou **20080918140533] -[ah, turns out each() stuff is called as a method -Evan Prodromou **20080918140756] -[get the zeroth form in the returned array -Evan Prodromou **20080918145545] -[replace -> replaceWith -Evan Prodromou **20080918150120] -[ajaxForm on returned forms -Evan Prodromou **20080918150438] -[have to add the ajaxHidden thing, too -Evan Prodromou **20080918150753] -[dis -> fav -Evan Prodromou **20080918151642] -[correct background of dis/favor form on hover -Evan Prodromou **20080918151907] -[input changes -Evan Prodromou **20080918152124] -[add favor/disfavor to profile -Evan Prodromou **20080918152612] -[don't notify you favor your own notice -Evan Prodromou **20080918152823] -[correct a couple of bugs -Evan Prodromou **20080922190937] -[clear and rebuild db scripts -Evan Prodromou **20080922195824] -[add additional licenses into extlib subdir -Evan Prodromou **20080922212120] -[hide IM settings if xmpp disabled -Evan Prodromou **20080922214003] -[finish the README file -Evan Prodromou **20080922223239] -[A working stopdaemons.sh, and no parameter needed for startdaemons.sh -CiaranG **20080906202242] -[merge CiaranG's changes for subs -Evan Prodromou **20080922225031] \ No newline at end of file diff --git a/_darcs/inventories/20080922225239-84dde-57e21338f073811b3ac3766f65e905849e1e9eb3.gz b/_darcs/inventories/20080922225239-84dde-57e21338f073811b3ac3766f65e905849e1e9eb3.gz deleted file mode 100644 index c50c7c90a8..0000000000 --- a/_darcs/inventories/20080922225239-84dde-57e21338f073811b3ac3766f65e905849e1e9eb3.gz +++ /dev/null @@ -1,3 +0,0 @@ -Starting with tag: -[TAG 0.6 -Evan Prodromou **20080922225224] \ No newline at end of file diff --git a/_darcs/inventories/20080923043110-5ed1f-f818e92c96b3c88598cea1fb53a95d4b1b9fb19d.gz b/_darcs/inventories/20080923043110-5ed1f-f818e92c96b3c88598cea1fb53a95d4b1b9fb19d.gz deleted file mode 100644 index b857a53219..0000000000 --- a/_darcs/inventories/20080923043110-5ed1f-f818e92c96b3c88598cea1fb53a95d4b1b9fb19d.gz +++ /dev/null @@ -1,9 +0,0 @@ -Starting with tag: -[TAG 0.6.0 -Evan Prodromou **20080922225239] -[check for cur before message link -Evan Prodromou **20080922225620] -[Fix quotes in favorite notification -Evan Prodromou **20080922232328] -[CSRF protection in newmessage.php -Evan Prodromou **20080923031419] \ No newline at end of file diff --git a/_darcs/inventories/20080923045458-5ed1f-348585c4e0f04a1715dc9f0c0092bcbf7af0a9ef.gz b/_darcs/inventories/20080923045458-5ed1f-348585c4e0f04a1715dc9f0c0092bcbf7af0a9ef.gz deleted file mode 100644 index 18dc5ac8fb..0000000000 --- a/_darcs/inventories/20080923045458-5ed1f-348585c4e0f04a1715dc9f0c0092bcbf7af0a9ef.gz +++ /dev/null @@ -1,5 +0,0 @@ -Starting with tag: -[TAG 0.6.0 -Evan Prodromou **20080923043110] -[version number -- doh! -Evan Prodromou **20080923045449] \ No newline at end of file diff --git a/_darcs/inventories/20081006040733-5ed1f-01bc3eb49157daccde21c5bbe3505df7b584dfde.gz b/_darcs/inventories/20081006040733-5ed1f-01bc3eb49157daccde21c5bbe3505df7b584dfde.gz deleted file mode 100644 index be0cab6f49..0000000000 --- a/_darcs/inventories/20081006040733-5ed1f-01bc3eb49157daccde21c5bbe3505df7b584dfde.gz +++ /dev/null @@ -1,352 +0,0 @@ -Starting with tag: -[TAG 0.6.0 -Evan Prodromou **20080923045458] -[403 for a message that isn't yours. -Evan Prodromou **20080923050637] -[change how Foreign_link fetches, and fix mixup between user-ids and foreign-ids in twittersettings -Evan Prodromou **20080923054413] -[change twitter username to allow uppercase letters and underscores -Evan Prodromou **20080923060314] -[incorrect message info shown in title -Evan Prodromou **20080923063029] -[append LACONICA_VERSION to css files to force reload -Evan Prodromou **20080923065021] -[make it look like a query -Evan Prodromou **20080923065211] -[try some fiddling to get message notification going out -Evan Prodromou **20080923072150] -[Twitter bridge - fix to allow linking to 'protected' Twitter users -Zach Copley **20080923074529] -[was notifying user name not object -Evan Prodromou **20080923080246] -[comma to dot -Evan Prodromou **20080923080855] -[Twitter bridge: Hack to get around PHP cURL's use of @ as a metachar, -Zach Copley **20080923083632 - which was keeping @reply messages from getting posted to Twitter. -] -[Twitter bridge - Changed Twitter username length check from 64 chars to Twitter max of 15. -Zach Copley **20080923084145] -[rationalize Zach's change of length with my added _ and caps -Evan Prodromou **20080923174302] -[user -> this -Evan Prodromou **20080923181648] -[better logic around protecting messages -Evan Prodromou **20080923182024] -[note privacy of login credentials and private messages -Evan Prodromou **20080923183035] -[Added option to add disable attr to common_checkbox() -Zach Copley **20080923213829] -[README - Added mbstring to the list of required PHP5 extensions -Zach Copley **20080923221439] -[Twitter bridge - Bugfix: You can now turn off brige via prefs -Zach Copley **20080923231921] -[Twitter bridge - pref setting to turn off sending @-replies to Twitter -Zach Copley **20080924023615] -[Twitter bridge - fixed another bug that kept prefs from saving properly -Zach Copley **20080924052431] -[Twitter bridge - Was using the wrong idiom to update foreign_link -Zach Copley **20080924060455 - objs, which was causing UI inconsistencies. Fixed. - -] -[change foreign links flags code to use bitmasks -Evan Prodromou **20080924150834 - - Zach was doing a lot of integer comparisons on the Foreign_link sync - fields. I switched them to use named bitmasks instead. I also switched - the semantics of bit 3 to be the opposite of what Zach had -- I find - lots of double-negatives in a checkbox to be hard to read. - -] -[Fix ticket 662 -mac65@mac65.com**20080922213314 - The user_timeline action for the Twitter API was not reading the page - argument. Added in one line to assign the page argument. Tested on local - install and it worked. - -] -[Fix ticket 460 -mac65@mac65.com**20080922223429 - The show action for the twitter user API was using subscribed instead of - subscriber to grab the friends_count. -] -[default sending local @ replies to Twitter -Evan Prodromou **20080924161708] -[change the rule for detecting replies. -Evan Prodromou **20080924200710] -[change handle() to use message-getting helper -Evan Prodromou **20080924202211] -[put message form on inbox and outbox -Evan Prodromou **20080924204131] -[correct url for new message form -Evan Prodromou **20080924210254] -[redirect to outbox after posting -Evan Prodromou **20080924210459] -[better redirect to outbox -Evan Prodromou **20080924210757] -[try to clean up user-without-profile errors -Evan Prodromou **20080926145008] -[caching layer for DB/DataObject -Evan Prodromou **20080926160941 - - I added a new class, Memcached_DataObject, that will (optionally) - fetch data out of a memcached server if it's available. This only - works on 'staticGet'. - - Methods that write to the database (insert, update, delete) will clear - and set the cache correctly, too. - -] -[prepend Memcached_DataObject require with INSTALLDIR -Evan Prodromou **20080926161540] -[rename cached object file -Evan Prodromou **20080926161652] -[path correct in require_once for memcached -Evan Prodromou **20080926161824] -[better handling of staticGet -Evan Prodromou **20080926161946] -[try to make some static/non-static stuff work right -Evan Prodromou **20080926162347] -[better deletes and key names -Evan Prodromou **20080926163030] -[handle one-argument calls to staticGet -Evan Prodromou **20080926163357] -[hack to make keys work -Evan Prodromou **20080926163555] -[don't record null key values -Evan Prodromou **20080926164021] -[Memcache returns false on cache miss -Evan Prodromou **20080926164413] -[another false-for-error -Evan Prodromou **20080926164532] -[log a db error for inserting the notice -Evan Prodromou **20080926165029] -[add some more info on notice update -Evan Prodromou **20080926165201] -[wasn't returning results of update -Evan Prodromou **20080926165310] -[handle multiple memcached servers -Evan Prodromou **20080926195501] -[move memcache connections to util.php -Evan Prodromou **20080926200102] -[slightly better check on $orig in update() -Evan Prodromou **20080927123507] -[single function for important streams, with memcached support -Evan Prodromou **20080928120119 - - I moved the 4 streams for a user (with friends, faves, replies, - personal) into functions on the User object. Added a helper function - in Notice for making notice streams. Also, will fetch notice streams - out of the memcached server, if possible. Made the API, RSS, and HTML - output all use the same streams (hopefully cached). - - Added some code to Notice to blow the cache when a notice is posted. - Also, added code to favor and disfavor actions to blow the faves - cache, too. - -] -[shownotices takes user rather than profile in showstream -Evan Prodromou **20080928120616] -[change arguments to Notice::publicStream -Evan Prodromou **20080928132747] -[lost paren in Notice -Evan Prodromou **20080928132846] -[add some debugging stuff to Notice -Evan Prodromou **20080928171407] -[move noticewrapper to classes -Evan Prodromou **20080928171538] -[remove noticewrapper -Evan Prodromou **20080928171634] -[another debug notice -Evan Prodromou **20080928172002] -[exact check on memcached results -Evan Prodromou **20080928173558] -[correct some SQL and add some spaces -Evan Prodromou **20080928174316] -[remove debugging code for notice streams -Evan Prodromou **20080928174814] -[remove unneeded find() in userrss.php -Evan Prodromou **20080928175156] -[fancy url for favorites rss -Evan Prodromou **20080928175626] -[add favoritesrss -Evan Prodromou **20080928180132] -[cache tag streams in Memcached, too -Evan Prodromou **20080928180904] -[sync function names -Evan Prodromou **20080928181017] -[add some whitespace to the qry for tags -Evan Prodromou **20080928181121] -[pass tag parameter along to stream query -Evan Prodromou **20080928181255] -[fixup tag display code -Evan Prodromou **20080928181503] -[blow the cached streams for tags on a new notice -Evan Prodromou **20080928181812] -[note about stream_select() bug in PHP 5.2.x -Evan Prodromou **20080928191022] -[guarded call to conn method in xmppqueuehandler -Evan Prodromou **20080929205504] -[blow cache in Notice for tags -Evan Prodromou **20080929222107] -[trying to fix up pages in tags -Evan Prodromou **20080929230047] -[log a warning on recovery of old recovery codes -Evan Prodromou **20080930124452] -[use two-arg constructor for confirmation code -Evan Prodromou **20080930130530] -[don't encache on insert; misses timestamps -Evan Prodromou **20080930130844] -[some extlibs that were missing from 0.6.0 -Evan Prodromou **20080930133847] -[Add Lithuanian to list of supported languages -CiaranG **20080923140710] -[Added Swedish to list of languages -CiaranG **20080923184851] -[PostgreSQL: New tables for private messages and invitations (untested) -CiaranG **20080923214601] -[PostgreSQL: Corrections to the two new table definitions -CiaranG **20080924113550] -[Add a sys_get_temp_dir substitute to extlib for easier installation on versions that lack it -CiaranG **20080924150828] -[A load of translations, including de_DE,es,it_IT,nl_NL,en_GB -CiaranG **20080924194608] -[Translations updates using script -CiaranG **20080924205318] -[More translations -CiaranG **20080924210153] -[Updates to the update_translations script -CiaranG **20080925092854] -[Latest translation updates -CiaranG **20080925113246] -[Another batch of translations -CiaranG **20080926104442] -[Fix error in xmpp help -CiaranG **20080926214627] -[Make stopdaemons.sh work no matter where it runs from -CiaranG **20080927210355] -[PostgreSQL: Put a default on confirm_address.address_extra to mimic mysql's behaviour when a not-null field is not set in a new record -CiaranG **20080929060227] -[Fix problem with tags in different locales (Ticket #679) -CiaranG **20080924092031] -[use profile URL instead of local URL -Evan Prodromou **20080930210542] -[Fix replies tab pagination issue -support@bambeeq.com**20081001010741 - Problem: - Before / After links in replies tab don't work. When clicked they show "No such user" error. - How to reproduce: - 1. Access http://identi.ca/evan/replies - 2. Click on Before button - -] -[remove unused helper function -Evan Prodromou **20081002144628] -[add methods to Memcached_DataObject for caching compound keys -Evan Prodromou **20081002144715] -[use pkeyGet for Avatar -Evan Prodromou **20081002144749] -[try to use caching functions where possible in User -Evan Prodromou **20081002162513] -[incorrect function call in Fave -Evan Prodromou **20081002162604] -[don't try to free faves in User -Evan Prodromou **20081002162739] -[only put notices that are local in the sitemap -Evan Prodromou **20081003192826] -[better instructions in the password recovery page -Evan Prodromou **20081004232554] -[more output in daemon.php -Evan Prodromou **20081005000851] -[explicitly load classes for queuehandler -Evan Prodromou **20081005191505] -[XMPP Direct Messaging / Last notice -nick@cloudspider.com**20081003011145 - - Direct messaging now works under XMPP, the command syntax is 'd $nick - $message'. Also, a command to fetch a users last notice is in there - ('last $nick'). Notification of the recipient of a message is not yet - supported. - -] -[more specific profile-get is slightly more efficient -Evan Prodromou **20081004021158] -[basics of the command interpreter -Evan Prodromou **20081004021442] -[move DB_DataObject ini files to more common name. -Evan Prodromou **20081004142205] -[move fave notification to mail library -Evan Prodromou **20081004154454] -[fill out commands, move to separate file -Evan Prodromou **20081004154846] -[add channels and use command interpreter in different channels -Evan Prodromou **20081004163213] -[text -> content in newnotice -Evan Prodromou **20081004170136] -[correct use of $user to $this->user -Evan Prodromou **20081004170342] -[correctly refer to notice as a notice -Evan Prodromou **20081004170550] -[different message source per command channel -Evan Prodromou **20081004173427] -[typo in message command -Evan Prodromou **20081004173609] -[common_client_error -> common_user_error -Evan Prodromou **20081004173734] -[FaveCommand -> FavCommand -Evan Prodromou **20081004173957] -[check for notification flags in FavCommand -Evan Prodromou **20081004174519] -[cleanup whitespace in lib/mail.php -Evan Prodromou **20081004174552] -[correct output for Get command -Evan Prodromou **20081004182028] -[Combined language patches that got missed due to repo dependencies -CiaranG **20081002181338] -[pt_BR translation now has a new file ID -CiaranG **20081004143747] -[New pt_BR translation, 100% complete -CiaranG **20081004144441] -[Update q-value for completed pt_BR translation -CiaranG **20081004144545] -[Twitter bridge -- more explicit checking of noticesync bits -Zach Copley **20080926190543] -[Twitter-API: Viewing direct msgs in xml and json now work -Zach Copley **20080924234857] -[Twitter-compatible API - rss and atom feeds for direct messages -Zach Copley **20080926012015] -[Twitter-compatible API: Direct messages work (everything but destroy()) -Zach Copley **20080929050826] -[Twitter-compatible API - added source links to statuses/notices -zach@controlyourself.ca**20080930175354] -[Twitter-compatible API - Favorites now working! -zach@controlyourself.ca**20080930194435] -[Twitter-compatible API - factored out redundant JSON printing functions -zach@controlyourself.ca**20080930212526] -[Add support for since_id and before_id to Twitter API. Ticket #540. -mac65@mac65.com**20081001001233] -[Twitter-compatible API - Added content-type checks to several methods. Calling an API -zach@controlyourself.ca**20081001020959 - method with a bad content type used to return a blank page. -] -[Twitter-compatible API - cleaned up sloppy control flow: exit() statements everywhere -zach@controlyourself.ca**20081001025421] -[fix deleted function after synch from Zach -Evan Prodromou **20081004194218] -[change stoica.ini to laconica.ini in config.php.sample -Evan Prodromou **20081004194611] -[Fixed up conflict (over white space) in User.php -Zach Copley **20081005181350] -[Another patch to fix up whitespace conflicts in User.php -Zach Copley **20081005181614] -[Twitter-compatible API - hooked in command interpreter -zach@controlyourself.ca**20081005030915] -[Added OnCommand and OffCommand to the list of cmds the Twitter API -zach@controlyourself.ca**20081005183850 - supports thru statuses/update -] -[update README with info about 0.6.1 plus some forgotten stuff -Evan Prodromou **20081006040646] -[increment the version -Evan Prodromou **20081006040713] \ No newline at end of file diff --git a/_darcs/inventories/20081006041249-5ed1f-33af2f1759aee066875182272fe0e175a1b8a516.gz b/_darcs/inventories/20081006041249-5ed1f-33af2f1759aee066875182272fe0e175a1b8a516.gz deleted file mode 100644 index 0301072b25..0000000000 --- a/_darcs/inventories/20081006041249-5ed1f-33af2f1759aee066875182272fe0e175a1b8a516.gz +++ /dev/null @@ -1,5 +0,0 @@ -Starting with tag: -[TAG 0.6.1 -Evan Prodromou **20081006040733] -[fix error and output in on and off commands -Evan Prodromou **20081006041232] \ No newline at end of file diff --git a/_darcs/inventories/20081114032959-84dde-ae883939976e69cc80fa0f15cd281cd0642e95fc.gz b/_darcs/inventories/20081114032959-84dde-ae883939976e69cc80fa0f15cd281cd0642e95fc.gz deleted file mode 100644 index 765ee00983..0000000000 --- a/_darcs/inventories/20081114032959-84dde-ae883939976e69cc80fa0f15cd281cd0642e95fc.gz +++ /dev/null @@ -1,205 +0,0 @@ -Starting with tag: -[TAG 0.6.1 -Evan Prodromou **20081006041249] -[fixup return value of XMPP channel on setting notification -Evan Prodromou **20081006054425] -[Twitter-compatible API - direct_messages/new.json was not answering -zach@controlyourself.ca**20081006153715] -[Twitter bridge - was checking the wrong bit (!) for reply sync preference -zach@controlyourself.ca**20081007004432] -[Adapted stoica theme for iPhone use -Ken Sheppardson **20080816181321] -[Adapted stoica theme for iphone use -Ken Sheppardson **20080816181845] -[Renamed 'mobile' theme to more appropriate 'iphone' -Ken Sheppardson **20080816200437] -[enjitqueuehandler -Ken Sheppardson **20080904215328] -[Skip remote notices -Ken Sheppardson **20080905032903] -[enjit queue handler (from kshep) -Evan Prodromou **20081008164624] -[add about 60px -Evan Prodromou **20081012155650] -[add about 60px to default theme, too -Evan Prodromou **20081012161211] -[fixup margins in stoica theme -Evan Prodromou **20081012162719] -[fixup margin and padding in default theme -Evan Prodromou **20081012162810] -[Twitter-compatible API - added favorites/favorites to list of methods only requiring bare auth -zach@controlyourself.ca**20081015163112] -[Twitter-compatible API: -zach@controlyourself.ca**20081017023638 - - Filled in favorites tags in statuses - - Filled in more tags in user/show, including undocumented features - - Better error handling and more consistent error messages - - Code clean-up and refactoring - - Removed huge obnoxious comments -] -[try to make replies point to the clicked-on notice -Evan Prodromou **20081020170245] -[don't overwrite replies in notices -Evan Prodromou **20081020170828] -[add a little debugging for replyto -Evan Prodromou **20081020171033] -[more specific selector for updating replies -Evan Prodromou **20081020172117] -[more value updates -Evan Prodromou **20081020172305] -[move update of replyto value to correct area -Evan Prodromou **20081020172549] -[correct number of args to saveNew in newnotice -Evan Prodromou **20081020173108] -[force util.js to reload on version change -Evan Prodromou **20081020174231] -[accidentally setting replies to 'false' -Evan Prodromou **20081020174956] -[add 'invite-only' mode for registration -Evan Prodromou **20081021182822] -[full sentence for invite-only error -Evan Prodromou **20081021183035] -[try to synch changes in stoica theme to default theme -Evan Prodromou **20081021192914] -[try to force background on favorite heart in default -Evan Prodromou **20081021193501] -[try to set correct background color on hover, too -Evan Prodromou **20081021193612] -[change "stoica" theme to "identica" -Evan Prodromou **20081021194440] -[move identica ie[67].css to default -Evan Prodromou **20081021194833] -[make identica theme use default theme, only include differences -Evan Prodromou **20081021201853] -[fix link color in identica theme -Evan Prodromou **20081021202455] -[add is_readonly() to api.php -Evan Prodromou **20081024201234] -[remove unused noticesWithFriendsWindow from User -Evan Prodromou **20081022210428] -[add atom and RSS 2.0 link elements to head of profile page -Evan Prodromou **20081023212659] -[Twitter-compatible API - checks for is_readonly() now work! -zach@controlyourself.ca**20081024213745] -[Twitter-compatible API - removed debugging statement -zach@controlyourself.ca**20081024215101] -[add an index to subscription token -Evan Prodromou **20081022192750] -[add SUP link to User RSS -Evan Prodromou **20081025022849] -[override initrss -Evan Prodromou **20081025023252] -[fixed use of header() -Evan Prodromou **20081025023347] -[a SUP action to product correct SUP json output -Evan Prodromou **20081026033353] -[add SUP links to RSS and Atom, too -Evan Prodromou **20081026145326] -[fix calls to show_rss_timeline -Evan Prodromou **20081026145749] -[handle seconds argument to SUP -Evan Prodromou **20081026150623] -[Twitter bridge - change regex to look for mb @-replies -zach@controlyourself.ca**20081027191629] -[heuristics for paren linking (thanks @brion!) -Evan Prodromou **20081102090241] -[Twitter-compatible API - properly encode and decode UTF-8 HTML entities -zach@controlyourself.ca**20081103211653] -[Better UTF-8 escaped entity handling. Fixed bad chars in all RSS feeds. -zach@controlyourself.ca**20081104084027] -[use correct class for avatar deletion so memcached is updated -Evan Prodromou **20081113063850] -[notice inbox -Evan Prodromou **20081022203600] -[save notice to inbox on saveNew -Evan Prodromou **20081022205621] -[better prefix for Notice_inbox.php -Evan Prodromou **20081022205823] -[change User to use notice inboxes rather than subscription -Evan Prodromou **20081022210445] -[blow inboxes -Evan Prodromou **20081023203505] -[Twitter-compatible API - since_id and before_id were polluting the cache and generating bad SQL -zach@controlyourself.ca**20081104053359 - (Also cleaned out some extra whitespace.) -] -[created timestamp on notice_inbox -Evan Prodromou **20081112172517] -[notice_inbox.id -> notice_inbox.notice_id -Evan Prodromou **20081112173627] -[add a script to populate notice inboxes -Evan Prodromou **20081112181117] -[correct method for querying -Evan Prodromou **20081112181327] -[some memory and execution time management -Evan Prodromou **20081112181533] -[add created to notice update -Evan Prodromou **20081112185117] -[check for errors in fixup_inboxes -Evan Prodromou **20081112185146] -[add LOW_PRIORITY and IGNORE extensions for INSERT -Evan Prodromou **20081112190828] -[Fix error when maildaemon tries to report a message parsing error -CiaranG **20081007083521] -[Only log locale sets that fail -CiaranG **20081007145232] -[Fix to previous fix :( -CiaranG **20081007155038] -[Script to update laconica.pot from source, and the results of running it -CiaranG **20081013200837] -[Twitter-compatible API - don't strip XML-illegal chars from JSON output -zach@controlyourself.ca**20081106225721] -[CSRF Protection for login and new notice. Ticket #503 -zach@controlyourself.ca**20081111022330] -[trac31 url_auto_shortening by sgmurphy -millette@controlyourself.ca**20081106205926] -[trac31 forgot actions/othersettings.php file -millette@controlyourself.ca**20081106210552] -[trac31 added othersettings fancy url -millette@controlyourself.ca**20081106224006] -[added Shorturl_api to add support for ur1, 2tu and other services lacking a native api - trac31 -millette@controlyourself.ca**20081107193831] -[trac31 added 3 more short url services: ur1.ca, 2tu.ru and ptiturl.com -millette@controlyourself.ca**20081107194735] -[trac31 added bit.ly support -millette@controlyourself.ca**20081107201926] -[trac31 don't shorten URLs prefixed with a * -millette@controlyourself.ca**20081107203039] -[trac31 revert the "don't shorten URLs prefixed with a *" patch since we automatically shorten in notices > 140 chars -millette@controlyourself.ca**20081107222100] -[trac31 pg support, fixing 2tu typo, set ur1.ca as default service -millette@controlyourself.ca**20081113152718] -[trac31 shorten all URLs even if notice is already <= 140 chars -millette@controlyourself.ca**20081113153216] -[trac31 forgot about twitapi, now fixed. -millette@controlyourself.ca**20081113164741] -[trac31 let * preceding a url prevent its shortening. -millette@controlyourself.ca**20081113170234] -[trac31 added longurl title to anchors when applicable. Also removed * url prefix feature to prevent short urls. -millette@controlyourself.ca**20081113182834] -[Conflict resolution patch for newnotice.php (zach vs. millette) -zach@controlyourself.ca**20081113195237] -[add inboxed and regenerate data objects -Evan Prodromou **20081113210209] -[add documentation on notice inboxes -Evan Prodromou **20081113214544] -[different query based on config var and user inbox status -Evan Prodromou **20081113215734] -[update inboxed flag in fixup inboxes -Evan Prodromou **20081113220335] -[Ticket 753 -tryggvib@hi.is**20081113024833] -[Bug fix for ticket 753 -tryggvib@hi.is**20081113212214] -[Ticket 753 bugfix, characters/digits only -tryggvib@hi.is**20081113213119] -[clear memcached cache in fixup_inboxes -Evan Prodromou **20081113223514] -[take a command-line argument to start with a particular user ID -Evan Prodromou **20081114015930] -[add Net Socket -Evan Prodromou **20081114021217] -[update README -Evan Prodromou **20081114025715] -[remove 'nudge' -- it won't be in this release -Evan Prodromou **20081114032817] \ No newline at end of file diff --git a/_darcs/inventories/20081118172328-34904-98eea66103c6acee66cb23933038efe8e56923e9.gz b/_darcs/inventories/20081118172328-34904-98eea66103c6acee66cb23933038efe8e56923e9.gz deleted file mode 100644 index 7060e83dc2..0000000000 --- a/_darcs/inventories/20081118172328-34904-98eea66103c6acee66cb23933038efe8e56923e9.gz +++ /dev/null @@ -1,29 +0,0 @@ -Starting with tag: -[TAG 0.6.2 -Evan Prodromou **20081114032959] -[don't ignore errors on inbox fixup; it messes up replication -Evan Prodromou **20081114065145] -[don't write notice to inbox if user isn't inboxed yet -Evan Prodromou **20081114074211] -[better code for only inserting inboxes that don't already exist -Evan Prodromou **20081114074511] -[threw out the baby with the bathwater -Evan Prodromou **20081114080853] -[add quotes to longurl title -Evan Prodromou **20081114142228] -[add start_at argument for notice rendering fixer -Evan Prodromou **20081114144014] -[silly escape problem with quotes, fixed. -millette@controlyourself.ca**20081114173242] -[RSS alternate link for tag pages -zach@controlyourself.ca**20081114052528] -[try to import new_form -Evan Prodromou **20081114194620] -[second argument to importNode -Evan Prodromou **20081114194727] -[fix longurl title attribute, removing extra backslashes. -millette@controlyourself.ca**20081114192649] -[escaping was not needed at all to process short urls. Real fix. -millette@controlyourself.ca**20081114195457] -[add inboxes for new users -Evan Prodromou **20081116062937] \ No newline at end of file diff --git a/_darcs/inventories/20081118173307-34904-426f45fb40129e75f9b251baecfec59e2b9cb6c9.gz b/_darcs/inventories/20081118173307-34904-426f45fb40129e75f9b251baecfec59e2b9cb6c9.gz deleted file mode 100644 index 4e9e98e7f5..0000000000 --- a/_darcs/inventories/20081118173307-34904-426f45fb40129e75f9b251baecfec59e2b9cb6c9.gz +++ /dev/null @@ -1,5 +0,0 @@ -Starting with tag: -[TAG 0.6.2 -Evan Prodromou **20081118172328] -[update version number in common.php -Evan Prodromou **20081118173250] \ No newline at end of file diff --git a/_darcs/inventories/20081124052429-5ed1f-0244f7dce1285a57198d87c6b11d906968193d64.gz b/_darcs/inventories/20081124052429-5ed1f-0244f7dce1285a57198d87c6b11d906968193d64.gz deleted file mode 100644 index eab2fc27d2..0000000000 --- a/_darcs/inventories/20081124052429-5ed1f-0244f7dce1285a57198d87c6b11d906968193d64.gz +++ /dev/null @@ -1,319 +0,0 @@ -Starting with tag: -[TAG 0.6.2 -Evan Prodromou **20081118173307] -[♫ Don't you forget about me ♫ -Evan Prodromou **20081118024947] -[add some extra checks to avoid remote subscriptions to local users -Evan Prodromou **20081118180644] -[check URI before sending -Evan Prodromou **20081118192227] -[hide certain users from the public stream -Evan Prodromou **20081120183722 - - On identi.ca, certain users (http://identi.ca/derricklo) publish 5-10 - automated notices every half hour or hour. This can flood the public - stream, making it unreadable for casual readers. - - We don't want to prevent anyone from using the site for personal use. - However, if their personal use clouds up the public space, we can - gently remove them from that public space without interfering with - their personal activity. - - So: this change prevents selected people's notices from appearing in - the public stream. It's hand-configured by an administrator, and - probably doesn't scale beyond 10-20 blacklisted users. It's a stopgap - measure. - -] -[clean up list of expected features in faq -Evan Prodromou **20081120210045] -[inbox particular users -Evan Prodromou **20081121162600] -[variable name change bug -Evan Prodromou **20081121162918] -[notice inbox only when not already exists -Evan Prodromou **20081121184132] -[double-cache to get newer items -Evan Prodromou **20081122124151] -[whitespace cleanup -Evan Prodromou **20081122124235] -[use cached fave stream to save DB hits for faves -Evan Prodromou **20081122163347] -[messed up logic for passing faves -Evan Prodromou **20081122163552] -[blow last cache for faves -Evan Prodromou **20081122165234] -[if all faves in cache, skip -Evan Prodromou **20081122192857] -[blow last caches on notice delete -Evan Prodromou **20081124003240 - - We do some extra caching of streams, at ';last'. If a notice is - deleted, we need to blow those caches, too. So, this deletes them. - -] -[trac626 Put a list of feed links -csarven@controlyourself.ca**20081114210506] -[trac626 Bugfix: Atom URL missing a dot -csarven@controlyourself.ca**20081114214315] -[trac626 Update: Moving illustrations to the default theme -csarven@controlyourself.ca**20081114220805] -[trac670 trac689 Favorites (duplicate id, background image, JavaScript) -csarven@controlyourself.ca**20081115033549] -[Favorite icons change -csarven@controlyourself.ca**20081115043955 - Favorite (heart) icon is from the Tango Icon Library: - http://tango.freedesktop.org/Tango_Icon_Library - - Disfavor (broken heart) icon is created by modifying the favorite icon. -] -[Nudge feature -csarven@controlyourself.ca**20081116022735] -[added nudge.php action file -csarven@controlyourself.ca**20081116033155] -[fix nudge typo and add emailnotifynudge to laconica.ini -millette@controlyourself.ca**20081117001644] -[emailnotifynudge added to User.php class manually (how to auto-gen?) -millette@controlyourself.ca**20081117003010] -[nudge: only show it when other person has enabled it. -millette@controlyourself.ca**20081117154147] -[nudge : added js code to enable ajax -millette@controlyourself.ca**20081117173144] -[nudge: better nudge email, better nudge disable language. -millette@controlyourself.ca**20081117175627] -[small nudge enhancements -millette@controlyourself.ca**20081118155643] -[Favorites icon changes -csarven@controlyourself.ca**20081117181511 - Favorite (full heart) is using the twotone icon library from - http://www.upstartblogger.com/free-twotone-icons - - Disfavor (empty heart with outline) is a modified version -] -[Feed icon change -csarven@controlyourself.ca**20081118185649] -[Checkmark icon change -csarven@controlyourself.ca**20081118190030] -[Favor icon states fixed -csarven@controlyourself.ca**20081118194444] -[Twitter bridge - don't delete Twitter users. Update them instead. -zach@controlyourself.ca**20081114053044] -[trac685 Twitter bridge - Sync Twitter friends -zach@controlyourself.ca**20081117024624] -[trac685 Twitter bridge - Shell script to sync all users' Twitter friends -Zach Copley **20081119011128] -[Twitter bridge - fixed a bad call to Foreign_user -Zach Copley **20081119200839] -[Twitter bridge - shell script wasn't checking FOREIGN_FRIEND_RECV bit -Zach Copley **20081119204501] -[abstract people lists from search results -Evan Prodromou **20081120105027] -[correct constructor for PeopleSearchResults -Evan Prodromou **20081120105223] -[better looping in profile list -Evan Prodromou **20081120105726] -[display subscriptions/subscribers as a list -Evan Prodromou **20081120113839] -[do page offsets correctly (depending on display type) -Evan Prodromou **20081120114137] -[increase PROFILES_PER_PAGE from 10 to 20 -Evan Prodromou **20081120114156] -[remove unnecessary variables from subs query -Evan Prodromou **20081120122352] -[correct pagination criteria -Evan Prodromou **20081120122411] -[fix empty results -Evan Prodromou **20081120122620] -[show error on empty gallery -Evan Prodromou **20081120122709] -[stop trying to get count from query -Evan Prodromou **20081120123146] -[links to different display options for subscriptions -Evan Prodromou **20081120142914] -[add nickname to list/icons links -Evan Prodromou **20081120143045] -[forgot my dollar sign -Evan Prodromou **20081120143203] -[more pagination math -Evan Prodromou **20081120143840] -[add all params to subscribers -Evan Prodromou **20081120144300] -[break ties using profile ID for order -Evan Prodromou **20081120145619] -[try to fix up pagination again -Evan Prodromou **20081120145814] -[New public tabs - Public, Recent tags, Featured, and Favorited -Zach Copley **20081120071930] -[add new config variables -Evan Prodromou **20081120201502] -[more ajax coming (un-sub) -millette@controlyourself.ca**20081118174857] -[Copy of (un)subscribe forms in util.php -csarven@controlyourself.ca**20081120202448 - Will remove the copies in showstream.php once everything is okay. -] -[common_(un)subscribe_form -Evan Prodromou **20081120203528] -[float subscribe button right in profile list -Evan Prodromou **20081120204022] -[fixup CSS for profile_single -Evan Prodromou **20081120204147] -[fixup this pointer -Evan Prodromou **20081120204347] -[don't show sub/unsub on your own record! -Evan Prodromou **20081120204725] -[whitespace diff on Notice_inbox -Evan Prodromou **20081120205319] -[whitespace diffs in User.php -Evan Prodromou **20081120205421] -[add profile tags to DB -Evan Prodromou **20081120205506] -[let users set their own profile tags from profilesettings -Evan Prodromou **20081120214821] -[fix require in Profile_tag.php -Evan Prodromou **20081120214945] -[correct tags method for user -Evan Prodromou **20081120215222] -[correct name for param -Evan Prodromou **20081120215508] -[show self-tags -Evan Prodromou **20081120215751] -[add peopletag action for tagged people -Evan Prodromou **20081120224207] -[fix instructions in peopletag -Evan Prodromou **20081120224429] -[p-wrapper for instructions -Evan Prodromou **20081120224540] -[bad page -Evan Prodromou **20081120224708] -[fix timestamp name -Evan Prodromou **20081120224918] -[links to people tags -Evan Prodromou **20081120225137] -[show self-tags in profile list -Evan Prodromou **20081120225917] -[sphinx search of people -millette@controlyourself.ca**20081120211347] -[Only show 'Recent tags' tab for tag cloud, not for tag streams -Zach Copley **20081120212142] -[Public tabs - only show 'Featured' tab when featured users are defined in config.php -Zach Copley **20081120213022] -[Public tabs - added instructions for 'Featured' and 'Favorited'; removed notice input boxes -Zach Copley **20081120214557] -[(Un)Subscribe form using ajaxForm() -csarven@controlyourself.ca**20081120232655] -[tag other users -Evan Prodromou **20081121002038] -[fix $profile in profilelist -Evan Prodromou **20081121002402] -[fix link to tagother -Evan Prodromou **20081121003108] -[fix some stuff with tagother link -Evan Prodromou **20081121003338] -[a little better presentation for tag-other -Evan Prodromou **20081121003608] -[missed $tags in setTags -Evan Prodromou **20081121003655] -[importNode bugfix for undefined node -csarven@controlyourself.ca**20081120234923] -[only show tags if there's a logged-in user -Evan Prodromou **20081121004336] -[Don't allow user to send a new message or nudge right after subscribing to another contact -csarven@controlyourself.ca**20081120235752] -[fancy url for tagother -Evan Prodromou **20081121005216] -[show tags that the owner added, not that the current user added -Evan Prodromou **20081121005631] -[Public 'Featured' tab now shows profiles instead of notices! -Zach Copley **20081121005338] -[Tag markup and styling for tag_self, tag_user, form#tag_user -csarven@controlyourself.ca**20081121023827] -[fancier urls for tagged subscriptions/subscribers -Evan Prodromou **20081121025749] -[fix tag links in subs -Evan Prodromou **20081121154218] -[Linking directly from Your tags instead of Tag user -csarven@controlyourself.ca**20081121031811] -[rel-bookmark not required because hAtom is not present -csarven@controlyourself.ca**20081121153517] -[Profile CSS bugfix -csarven@controlyourself.ca**20081121155829] -[Removing empty element no longer in use -csarven@controlyourself.ca**20081121160208] -[Fixing bio alignment -csarven@controlyourself.ca**20081121161645] -[sphinx search for notices -millette@controlyourself.ca**20081120215041] -[sphinx integration for notices and profiles -millette@controlyourself.ca**20081123185136] -[conflict resolution on people search -millette@controlyourself.ca**20081123190555] -[sphinx: fallback if no connection -millette@controlyourself.ca**20081123201616] -[EXPERIMENTAL PATCH #3 - ajax response for newnotice.php -Zach Copley **20081122043145] -[merge save and ajax save -Evan Prodromou **20081123014003] -[PostNotice AJAX working in all browsers except IE -csarven@controlyourself.ca**20081123015559] -[Don't display avatars when posting to personal streams via ajax -Zach Copley **20081123022902] -[Set encoding for xml response in newnotice.php to UTF-8 -Zach Copley **20081123183613] -[Send raw UTF-8 chars instead of escaped entities in newnotice.php's ajax response -Zach Copley **20081123193727] -[Allow the toggling of XMLWriter's indenting on and off -Zach Copley **20081123211348 - - IE needs and unindented XML response in for ajax calls. -] -[Added 'Help' menu item to the header menu (in addition to the footer menu) -Zach Copley **20081123212532] -[Removed JS alert and minor cleanup -csarven@controlyourself.ca**20081123213458] -[sphinx search config.php.sample defaults -millette@controlyourself.ca**20081124005402] -[filter galleries by tag -Evan Prodromou **20081124013928] -[show dropdown of tags only when tags are available and add tags function to profile -Evan Prodromou **20081124015802] -[don't get self-tags -Evan Prodromou **20081124015927] -[fix tag link -Evan Prodromou **20081124020029] -[better tag handling for profile lists -Evan Prodromou **20081124024434] -[sphinx documentation and sample config file -millette@controlyourself.ca**20081124023036] -[include action in tags -csarven@controlyourself.ca**20081124025308] -[only get tags for this profile list type -Evan Prodromou **20081124031549] -[Make replies to @# -Evan Prodromou **20081124034952] -[little better handling of @# -Evan Prodromou **20081124035814] -[incorrect use of match results -Evan Prodromou **20081124040224] -[nudge: added rule to htaccess.sample (and removed duplicate line) -millette@controlyourself.ca**20081124033659] -[Added stanza about Twitter friends syncing to the README -Zach Copley **20081124041832] -[README for new version -Evan Prodromou **20081124043723] -[sphinx scripts -millette@controlyourself.ca**20081124044435] -[Subscriptions tag filtering and views -csarven@controlyourself.ca**20081124045319] -[retain links in List and Icon switch -Evan Prodromou **20081124045924] -[sphinx documentation for the provided scripts -millette@controlyourself.ca**20081124050037] -[fixing README conflict -millette@controlyourself.ca**20081124050556] -[redirect on a post from tag dropdown -Evan Prodromou **20081124051429] -[correct self_url without cookie stuff -Evan Prodromou **20081124052250] -[Tag filtering CSS fixes for IE -csarven@controlyourself.ca**20081124052230] \ No newline at end of file diff --git a/_darcs/inventories/20081124053335-34904-1e8a1fe43c30f5b9c13bf58654f1af5f894d1501.gz b/_darcs/inventories/20081124053335-34904-1e8a1fe43c30f5b9c13bf58654f1af5f894d1501.gz deleted file mode 100644 index 15e9ab2828..0000000000 --- a/_darcs/inventories/20081124053335-34904-1e8a1fe43c30f5b9c13bf58654f1af5f894d1501.gz +++ /dev/null @@ -1,5 +0,0 @@ -Starting with tag: -[TAG 0.6.3 -Evan Prodromou **20081124052429] -[a couple more items, release nickname -Evan Prodromou **20081124053237] \ No newline at end of file diff --git a/_darcs/inventories/20081215205036-34904-6e03eddcd13c7c882a9e7286edf67a63f5b5124b.gz b/_darcs/inventories/20081215205036-34904-6e03eddcd13c7c882a9e7286edf67a63f5b5124b.gz deleted file mode 100644 index b0523d3067..0000000000 --- a/_darcs/inventories/20081215205036-34904-6e03eddcd13c7c882a9e7286edf67a63f5b5124b.gz +++ /dev/null @@ -1,440 +0,0 @@ -Starting with tag: -[TAG 0.6.3 -Evan Prodromou **20081124053335] -[small correction to sphinx scripts (path to sphinx.conf) -millette@controlyourself.ca**20081124053341] -[whitespace and fixup problem with blank string -Evan Prodromou **20081124150638] -[add gettext as a prereq -Evan Prodromou **20081124183054] -[support microsummaries -Evan Prodromou **20081124223533] -[microsummary doesn't need stream stuff -Evan Prodromou **20081124223733] -[better output for microsummary -Evan Prodromou **20081124223848] -[correct the output formats for api user timelines -Evan Prodromou **20081124234115] -[fix problems with blank tag strings (!) -Evan Prodromou **20081125000556] -[better link -Evan Prodromou **20081127162551] -[lost the URL -Evan Prodromou **20081127162720] -[don't use list display -- it's the default -Evan Prodromou **20081127162805] -[use full alphanum for incoming email addresses -Evan Prodromou **20081129233637] -[don't show self-subscriptions in FOAF -Evan Prodromou **20081130213755] -[change is_local flag for blacklisted users -Evan Prodromou **20081202184258 - - Changed the flag on notices that says whether the notice is local, so - that it's -1 for local-but-blacklisted. This should keep blacklisted - users off the public timeline. - -] -[check for blank email when rejecting a dupe -Evan Prodromou **20081202185343] -[whitespace in actions/register -Evan Prodromou **20081202185444] -[add instructions to the public page for people who aren't logged in -Evan Prodromou **20081202193857] -[better formatting for home page -Evan Prodromou **20081202194027] -[cleanup whitespace in public.php -Evan Prodromou **20081202194043] -[better registration instructions -Evan Prodromou **20081202194633] -[better instructions -Evan Prodromou **20081202194816] -[check for license compatibility -Evan Prodromou **20081203032632] -[whitespace fixup in userauthorization -Evan Prodromou **20081203032650] -[add common_compatible_license() function -Evan Prodromou **20081203032705] -[whitespace cleanup -Evan Prodromou **20081203032743] -[new auto-reply regexp (thanks @lilyhill!) -Evan Prodromou **20081204174754] -[use content namespace to add HTML to the notice output -Evan Prodromou **20081205152445] -[whitespace changes in rssaction -Evan Prodromou **20081205152521] -[HTML output in RSS 2.0 and Atom -Evan Prodromou **20081205160205] -[better error reporting for rememberme cookie handling -Evan Prodromou **20081209170413 - - rememberme cookies are probably the most complained-about parts of the - system. We use "weak", one-use, low-info cookies that don't allow - changing settings like passwords or email addresses. - - This change adds some better error-reporting to the rememberme - function. Hopefully we'll find out if there are other rm problem. - -] -[cache current user in a global variable -Evan Prodromou **20081209173402] -[common_warning() doesn't exist -Evan Prodromou **20081209174233] -[slightly better reporting when setting rememberme cookies -Evan Prodromou **20081209175446] -[slightly better rememberme logic in finishopenidlogin -Evan Prodromou **20081209180330] -[add some transaction voodoo to the insert for rememberme cookies -Evan Prodromou **20081209185424] -[lets an admin set the password for a user -Evan Prodromou **20081207192917 - - A small utility script for updating users' passwords. Since I have to - do this once in a while, I figured it was good to have a script for. - Will also (I think) update memcached. - -] -[edit throttling -Evan Prodromou **20081210174722] -[api posts cannot use one of the reserved sources: web, omb, mail or xmpp. -millette@controlyourself.ca**20081210173726] -[make sure passed profile_id is valid in Notice::saveNew -millette@controlyourself.ca**20081210181123] -[Ban certain users from posting by nickname and/or ID -Zach Copley **20081210191337] -[don't check edit throttle if throttle not enabled -Evan Prodromou **20081210194335] -[always return a variable by reference -Evan Prodromou **20081210233503] -[Remove a bunch of extraneous logging statements -Zach Copley **20081211024233] -[Twitter bridge: update to handle Twitter API changes to verify_credentials method -Zach Copley **20081211100106] -[only shorten >= 30 char links with some services. -millette@controlyourself.ca**20081125010332] -[fix text describe shortening service usage. -millette@controlyourself.ca**20081125010516] -[Dec/Increment user's number of Subscribers in Portfolio Un/Subscribe event. -csarven@controlyourself.ca**20081126182317] -[trac155 first step to delete account -millette@controlyourself.ca**20081123215059] -[a step closer to deleting a user and hosts posts from the db -millette@controlyourself.ca**20081124005054] -[only expand URLs we shortened ourselves + only shorten if notice > 140 chars -millette@controlyourself.ca**20081128200004] -[shorten urls for posts > 140 chars only, from anywhere. Only show long urls in title attributes for links we shortened ourselves. -millette@controlyourself.ca**20081128210114] -[use label tab for checkboxes -millette@controlyourself.ca**20081128223646] -[fix shorturl_api so it works even when 3rd party is down. -millette@controlyourself.ca**20081129012446] -[new upstream version of jquery form -Evan Prodromou **20081130231627] -[trac831 disables status_form input submit onsubmit -csarven@controlyourself.ca**20081201175028] -[add init, last_modified to actions -Evan Prodromou **20081202034736] -[init() returns boolean success value -Evan Prodromou **20081202040549] -[trim whitespace -Evan Prodromou **20081202041243] -[copy-and-paste typo -Evan Prodromou **20081202041508] -[whitespace changes in action.php -Evan Prodromou **20081202041532] -[better logic for if-modified-since -Evan Prodromou **20081202042159] -[better header for not-modified message -Evan Prodromou **20081202042334] -[add ETag handling -Evan Prodromou **20081202044211] -[better HTTP timestamp -Evan Prodromou **20081202044441] -[generate an etag for shownotice -Evan Prodromou **20081202045021] -[notices have a create stamp not a modified stamp -Evan Prodromou **20081202045320] -[end ETag with quotes -Evan Prodromou **20081202045544] -[remove init from rssaction -Evan Prodromou **20081202045825] -[cleanup whitespace in rssaction -Evan Prodromou **20081202045856] -[add attributes for shownotice -Evan Prodromou **20081202050200] -[better microformats from @singpolyma -Evan Prodromou **20081203035947] -[fix conflict with Robin's changes on trunk -Evan Prodromou **20081203041730] -[rollback removing init from rssaction -Evan Prodromou **20081203172856] -[change Action::init() to Action::prepare() to avoid conflict with RSS10Action::init() -Evan Prodromou **20081203173225] -[parent::init() -> parent::prepare() -Evan Prodromou **20081203173423] -[permanent redirect on non-canonical nickname -Evan Prodromou **20081203174646] -[unsubscribe from a remote profile -Evan Prodromou **20081203180945] -[if the site is marked as private, redirect anon users to login -Evan Prodromou **20081203182421] -[allow doc and api calls from private -Evan Prodromou **20081203182830] -[fine-tuning the privacy flag -Evan Prodromou **20081203183432] -[add finishopenidlogin to list of actions that anon users can do -Evan Prodromou **20081203183638] -[move checkbox label formatting from identica theme to default theme -Evan Prodromou **20081203184254] -[allow registrations even when site is private (for invites, etc.) -Evan Prodromou **20081203184748] -[don't allow new users if the site is closed or invite only in OpenID -Evan Prodromou **20081203185022] -[allow recoverpassword in private mode -Evan Prodromou **20081203185254] -[prepare the action obj for API -Evan Prodromou **20081203210358] -[Using abbr.published @title and ISO8601 -csarven@controlyourself.ca**20081203220637] -[add profile block data object -Evan Prodromou **20081203222619] -[whitespace in laconica.sql -Evan Prodromou **20081203222819] -[delete user and all traces from the db. -millette@controlyourself.ca**20081203164942] -[moving delete profile to its own space. -millette@controlyourself.ca**20081203192658] -[done delete own profile (see other settings) -millette@controlyourself.ca**20081204180233] -[trac768 keep transparency of resized avatar images. -millette@controlyourself.ca**20081204182953] -[trac494 email is now in recipient's language -millette@controlyourself.ca**20081204203433] -[send all emails in the destination's language. -millette@controlyourself.ca**20081204212455] -[set email content type to text/plain; utf-8 -millette@controlyourself.ca**20081204213414] -[trac855 trac856 and Feed list for the Favorited page -csarven@controlyourself.ca**20081205221402] -[fixup the problems with the repo patch -Evan Prodromou **20081205153325] -[remove favoritedrss -Evan Prodromou **20081207165900 - - I've removed the favoritedrss action, and removed the links from the - favorited page. - - Most-favorited is not a good candidate for an RSS format. RSS works - well for series that work sequentially -- new things always come in at - the top. - - This just isn't the case with "most favorited". The favorited notices - list on Identi.ca is sorted by how many times a message is favorited. - - What happens if a notice used to be on that list, then falls off - because other messages get more faves, then gets back on because it - gets faved again? Or if a notice moves "up" on the list? - -] -[(Un)Subscribed submit is disabled and greyed out while ajaxForm process -csarven@controlyourself.ca**20081208051212] -[Removed the "sun", process and checkmark icons from Nudge -csarven@controlyourself.ca**20081208053011] -[Favorited -> Popular -Evan Prodromou **20081208053543] -[add class to body element -Evan Prodromou **20081208055023] -[Nudge disabled and greyed out while ajaxForm process -csarven@controlyourself.ca**20081208055812] -[low-level management of blocks -Evan Prodromou **20081208031008] -[pass profile id for subscriptions rather than user name -Evan Prodromou **20081208031312] -[don't save replies from a blocked profile to the blocking user -Evan Prodromou **20081208031408] -[don't allow remote subscribes from blocked profiles -Evan Prodromou **20081208031532] -[remove unused code from profile list -Evan Prodromou **20081208033132] -[add block form to subscribers list and profile page -Evan Prodromou **20081208055511 - - I added a small form for blocking users to profiles in the profile - list, and also to the profile page. - - I also added an action to handle the results of blocking someone. - - This required some changes to the profile list class (so I could - add the block form), so I made them. And the gallery class lets its - subclasses return a subclass of ProfileList for their profile list. - -] -[fixup handle function in block action -Evan Prodromou **20081208062841] -[add header and footer -Evan Prodromou **20081208063056] -[add fancy url for block action -Evan Prodromou **20081208071521] -[return true from block action -Evan Prodromou **20081208071720] -[add block name to block form -Evan Prodromou **20081208072519] -[change element_start to element for instructions -Evan Prodromou **20081208072629] -[static to not static -Evan Prodromou **20081208072958] -[copyright block and better load for Memcached_DataObject in profile_block -Evan Prodromou **20081208073209] -[add returnto information to the block form -Evan Prodromou **20081208170931] -[error in figuring out actions to return to -Evan Prodromou **20081208172812] -[add an unblock form -Evan Prodromou **20081208173722] -[enable block API -Evan Prodromou **20081208185728] -[correctly init the document type for block API actions -Evan Prodromou **20081208193939] -[pass profile correctly to show_owner_controls -Evan Prodromou **20081208201351] -[pass returnto info from subscribers to block form -Evan Prodromou **20081208201453] -[Fixed duplicate @class assignment to element -csarven@controlyourself.ca**20081208215420] -[database changes to say whether to deliver messages for a subscription -Evan Prodromou **20081209033637] -[removed Profile_block::get, changed to use pkeyGet -Evan Prodromou **20081209041227] -[fix Profile_block::get() again -Evan Prodromou **20081209041648] -[trac540 - Add 'since' param to Twitter-compatible API calls -Zach Copley **20081209055345] -[trac750 - Exoskeleton of a nascent Facebook app -Zach Copley **20081206030132] -[trac750 - linked in CSS file and added CSS for profile box -Zach Copley **20081207235925 - - added button for adding a box to the profile on settings -] -[trac750 Remove foreign link when Facebook user removes our app -Zach Copley **20081208005522] -[trac750 added Facebook client libs for PHP to extlib dir -Zach Copley **20081208005816] -[trac750 Use Facebook dialogs for success and error messages during initial setup / login -Zach Copley **20081208015412] -[trac750 add timestamp to CSS file to keep Facebook's caching from ignoring our changes -Zach Copley **20081208051859] -[fix registration bug - fatal error when sending email confirmation -Zach Copley **20081209082750] -[New AjaxWebChannel for returning ajaxy responses to notice input box commands -Zach Copley **20081209210654] -[resolve conflicts -Evan Prodromou **20081210014619] -[set jabber and sms flags on subscriptions -Evan Prodromou **20081210024416] -[on broadcast jabber and sms to people with the flags set -Evan Prodromou **20081210024706] -[resolve conflicts in config.php.sample -Evan Prodromou **20081211162558] -[resolve whitespace changes in Notice.php -Evan Prodromou **20081211163150] -[whitespace conflicts in User.php -Evan Prodromou **20081211163434] -[missing argument -Evan Prodromou **20081211171353] -[Nudge JS process and image removal -Sarven Capadisli **20081211021755] -[add a menu to subs -Evan Prodromou **20081211180622] -[upgrade XMPPHP to upstream version -Evan Prodromou **20081211181500] -[xmppdaemon uses 'xml' rather than 'raw' accessor -Evan Prodromou **20081211183250] -[better output in subscribe -Evan Prodromou **20081211183756] -[add User-Agent to OMB requests -Evan Prodromou **20081211185525] -[Array needs initializing before it's returned. How did this code ever work? -Zach Copley **20081211022557] -[more places where required since param skipped for Notice::getStreamDirect -Evan Prodromou **20081211195259] -[fix id of common_unsubscribe_form -Evan Prodromou **20081211200239] -[Fix bad arguments that were throwing PHP warnings -Zach Copley **20081211203659] -[Profile block base style -Sarven Capadisli **20081211201717] -[Removal of unused processing style -Sarven Capadisli **20081211204814] -[Standardising XHR responses to utf-8 and indenting -Sarven Capadisli **20081211211814] -[Setting nudge XHR response to utf-8 and indenting -Sarven Capadisli **20081211212046] -[make a new NoticeList widget and call it from StreamAction -Evan Prodromou **20081211231252 - - I made a new notice-list widget (like the profile list) and call it - from StreamAction. This cleans up some of the mess in the various - notice-stream-showing classes. - - I also changed show-stream so it uses a subclass of NoticeList that - doesn't show author info (which is unnecessary). - -] -[don't use undefined source_link; instead, just link -Evan Prodromou **20081211231925] -[take out c&p code from newnotice, use noticelist classes instead -Evan Prodromou **20081211232000] -[remove unused $notice param from NoticeListItem::show() -Evan Prodromou **20081211232811] -[fixup function names for show_avatar() and show_nickname() -Evan Prodromou **20081211232921] -[$profile -> $this->profile in noticelistitem -Evan Prodromou **20081211233039] -[misspelled INSTALLDIR in newnotice.php -Evan Prodromou **20081211233515] -[switch labels for tabs on subs -Evan Prodromou **20081211234741] -[Alerting the direct message XHR response -Sarven Capadisli **20081211225808] -[Better titles and instructions for Featured and Popular tabs -Zach Copley **20081211235341 - (Do not be afraid of this patch!) -] -[Indenting the XML response -Sarven Capadisli **20081212030820] -[Block styles in Subscribers -Sarven Capadisli **20081212035117] -[Delivery method in Subscriptions -Sarven Capadisli **20081212035255] -[fix source name -Evan Prodromou **20081212041543] -[documentation and version number -Evan Prodromou **20081212043201] -[stub out facebook app and delete profile -Evan Prodromou **20081212044600] -[Using single id for both profile block and unblock -Sarven Capadisli **20081212043240] -[don't block yourself! -Evan Prodromou **20081212051830] -[link error with notice sources -Evan Prodromou **20081212054448] -[don't show form if subscription can't be found (weirdly) -Evan Prodromou **20081212055713] -[remove spaces from atlink for unfound name -Evan Prodromou **20081212174414] -[remove content:items from rss output -Evan Prodromou **20081212195520] -[trim the body of an incoming message -Evan Prodromou **20081214002239] -[trim some output to avoid excessive whitespace -Evan Prodromou **20081214161942] -[get rid of hcard in @-replies -Evan Prodromou **20081214204557] -[Setting font-weight to normal for nicknames within notices -Sarven Capadisli **20081212062337] -[Fixed Popular tab (hopefully) -Zach Copley **20081212075617] -[bug with remote subscriptions and blocks -Evan Prodromou **20081215132806] -[correctly handle remote re-subscribe -Evan Prodromou **20081215134824] \ No newline at end of file diff --git a/_darcs/inventories/20081220204906-34904-cc69d9afe4d4a20e9e07e3bb0b9562aa61e436e8.gz b/_darcs/inventories/20081220204906-34904-cc69d9afe4d4a20e9e07e3bb0b9562aa61e436e8.gz deleted file mode 100644 index 46412f53ab..0000000000 --- a/_darcs/inventories/20081220204906-34904-cc69d9afe4d4a20e9e07e3bb0b9562aa61e436e8.gz +++ /dev/null @@ -1,13 +0,0 @@ -Starting with tag: -[TAG 0.6.4 -Evan Prodromou **20081215205036] -[Twitter-compatible API - update verify_credentials to return profile -Zach Copley **20081216030455] -[XHR response fix for IE -Sarven Capadisli **20081216063751] -[Direct message XHR response fix for IE and minor tweaks -Sarven Capadisli **20081216071818] -[two undefined variables in noticelist.php -Evan Prodromou **20081220204320] -[bugpatch release code -Evan Prodromou **20081220204852] \ No newline at end of file diff --git a/_darcs/inventories/20081228190546-34904-7f0c38f5139a581f3a9e7fd21772b3601450a36b.gz b/_darcs/inventories/20081228190546-34904-7f0c38f5139a581f3a9e7fd21772b3601450a36b.gz deleted file mode 100644 index 10188700b1..0000000000 --- a/_darcs/inventories/20081228190546-34904-7f0c38f5139a581f3a9e7fd21772b3601450a36b.gz +++ /dev/null @@ -1,5 +0,0 @@ -Starting with tag: -[TAG 0.6.4.1 -Evan Prodromou **20081220204906] -[Twitter-bridge: fix for Twitter's new strict policy of rejecting HTTP POSTs with invalid "expect" headers (not the same patch as in trunk) -Zach Copley **20081226051716] \ No newline at end of file diff --git a/_darcs/inventory b/_darcs/inventory deleted file mode 100644 index 70a030e46f..0000000000 --- a/_darcs/inventory +++ /dev/null @@ -1,131 +0,0 @@ -Starting with tag: -[TAG 0.6.4.1 -Evan Prodromou **20081220204906] -[identica badge by Kent Brewster. For more information see: -Sarven Capadisli **20081218003302 - http://kentbrewster.com/identica-badge/ - - Copy and paste the following wherever you want the badge to show up: - - - - Substitute your own ID in the user parameter. - -] -[more information in subscription notices -Evan Prodromou **20081212171135] -[first step of phpcs-cleanup of index.php -Evan Prodromou **20081221002332] -[reformatting for phpcs in lib/util.php -Evan Prodromou **20081221003016] -[some modifications to assuage phpcs -Evan Prodromou **20081221003955] -[reformat lib/daemon.php for phpcs -Evan Prodromou **20081221004607] -[reformat for phpcs -Evan Prodromou **20081221005837] -[reformat lib/jabber.php for phpcs, including doc comments -Evan Prodromou **20081222173249] -[reformat lib/language.php for PEAR Coding Standards -Evan Prodromou **20081222193029] -[bring mailbox.php into line with PEAR Coding Standards (mostly) -Evan Prodromou **20081222195041] -[bring messaging section (inbox, outbox, mailbox) into PEAR Code Standards compliance -Evan Prodromou **20081222201304 - - Actually refactored the method names on these classes to come into - complete compliance with the code standards. Untested; maybe there are - some bad method names now. - -] -[reformat and document lib/mail.php for phpcs conformance -Evan Prodromou **20081223173330] -[bring lib/noticelist.php into line with PEAR code standards -Evan Prodromou **20081223190851] -[incorrect label on notice list file comment -Evan Prodromou **20081223191430] -[replace all tabs with four spaces -Evan Prodromou **20081223191907 - - The PEAR coding standards decree: no tabs, but indent by four spaces. - I've done a global search-and-replace on all tabs, replacing them by - four spaces. This is a huge change, but it will go a long way to - getting us towards phpcs-compliance. And that means better code - readability, and that means more participation. - -] -[replace NULL with null -Evan Prodromou **20081223192129 - - Another global search-and-replace update. Here, I've replaced the PHP - keyword 'NULL' with its lowercase version. This is another PEAR code - standards change. - -] -[change function headers to K&R style -Evan Prodromou **20081223193323 - - Another huge change, for PEAR code standards compliance. Function - headers have to be in K&R style (opening brace on its own line), - instead of having the opening brace on the same line as the function - and parameters. So, a little perl magic found all the function - definitions and move the opening brace to the next line (properly - indented... usually). - -] -[TRUE => true, FALSE => false -Evan Prodromou **20081223194428 - - More PEAR coding standards global changes. Here, I've changed all - instances of TRUE to true and FALSE to false. - -] -[move opening brace of class declaration to next line -Evan Prodromou **20081223194923 - - Another gigantor PEAR coding standards patch. Here, I've moved the - opening curly bracket on a class statement to the following line. - -] -[Twitter-bridge: fix for Twitter's new strict policy of rejecting HTTP POSTs with invalid "expect" headers -Zach Copley **20081225152207] -[whitespace changes in actions/register.php after global search-and-replace -Evan Prodromou **20081223195722] -[Laconica-specific extensions for Twitter API -Evan Prodromou **20081230202019] -[add laconica-specific methods to htaccess.sample -Evan Prodromou **20081230202513] -[add laconica methods to unauthed ones -Evan Prodromou **20081230203747] -[implement api/laconica/version method -Evan Prodromou **20081230205939] -[add some breaks so that switch statement works -Evan Prodromou **20081230210114] -[implement the api/laconica/config method -Evan Prodromou **20081230211444] -[better serialization of arrays and booleans in config output -Evan Prodromou **20081230211957] -[wrapper element for config.xml -Evan Prodromou **20081230212202] -[trac750 Automatically update linked Facebook users' statuses -Zach Copley **20090105010407] -[trac750 configurable sync flags for Facebook app (noticesync, replysync) -Zach Copley **20090105040212] -[trac750 added some output to the facebook_update.php script -Zach Copley **20090105045603] -[Jcrop v2 (POST cropping to be completed) -csarven@controlyourself.ca**20081210021607] -[Jcrop CSS updates to original/preview views -csarven@controlyourself.ca**20081210025922] -[Actually crop your avatar when hitting 'crop' button on profile -Zach Copley **20081212043018] -[Some fixups of patches not already migrated to trunk to bring inline with PEAR coding stds -Zach Copley **20081225144601] -[trac750 better settings tab workflow -Zach Copley **20090106205738] \ No newline at end of file diff --git a/_darcs/patches/20080505135019-84dde-f35cef3a6f3c990937376c21e5e6d70c8eb22f80.gz b/_darcs/patches/20080505135019-84dde-f35cef3a6f3c990937376c21e5e6d70c8eb22f80.gz deleted file mode 100644 index ad8b4e078a..0000000000 Binary files a/_darcs/patches/20080505135019-84dde-f35cef3a6f3c990937376c21e5e6d70c8eb22f80.gz and /dev/null differ diff --git a/_darcs/patches/20080505135228-84dde-b8675e97f4dd684f5c24c1def8daedea793ed113.gz b/_darcs/patches/20080505135228-84dde-b8675e97f4dd684f5c24c1def8daedea793ed113.gz deleted file mode 100644 index e71106d2af..0000000000 Binary files a/_darcs/patches/20080505135228-84dde-b8675e97f4dd684f5c24c1def8daedea793ed113.gz and /dev/null differ diff --git a/_darcs/patches/20080505150839-84dde-a301ab5d8e22447e0f4ed8c465aedccecf46546d.gz b/_darcs/patches/20080505150839-84dde-a301ab5d8e22447e0f4ed8c465aedccecf46546d.gz deleted file mode 100644 index 61b9ddf4f0..0000000000 Binary files a/_darcs/patches/20080505150839-84dde-a301ab5d8e22447e0f4ed8c465aedccecf46546d.gz and /dev/null differ diff --git a/_darcs/patches/20080506151729-84dde-563da8505e06a7302041c93ab157ced31165876c.gz b/_darcs/patches/20080506151729-84dde-563da8505e06a7302041c93ab157ced31165876c.gz deleted file mode 100644 index 6a8250e3ad..0000000000 Binary files a/_darcs/patches/20080506151729-84dde-563da8505e06a7302041c93ab157ced31165876c.gz and /dev/null differ diff --git a/_darcs/patches/20080507164807-84dde-ef7d205a0fedca42064a337786d2f203cdcc5a45.gz b/_darcs/patches/20080507164807-84dde-ef7d205a0fedca42064a337786d2f203cdcc5a45.gz deleted file mode 100644 index 9418af6a15..0000000000 Binary files a/_darcs/patches/20080507164807-84dde-ef7d205a0fedca42064a337786d2f203cdcc5a45.gz and /dev/null differ diff --git a/_darcs/patches/20080507171542-84dde-232baccc10f015e8c0e80edf0ceea4aa5c85b4b7.gz b/_darcs/patches/20080507171542-84dde-232baccc10f015e8c0e80edf0ceea4aa5c85b4b7.gz deleted file mode 100644 index e82fd90a34..0000000000 Binary files a/_darcs/patches/20080507171542-84dde-232baccc10f015e8c0e80edf0ceea4aa5c85b4b7.gz and /dev/null differ diff --git a/_darcs/patches/20080508162145-84dde-9ae0fdcc75d794df754708642d8786ccd95d9461.gz b/_darcs/patches/20080508162145-84dde-9ae0fdcc75d794df754708642d8786ccd95d9461.gz deleted file mode 100644 index 34c45c4ff8..0000000000 Binary files a/_darcs/patches/20080508162145-84dde-9ae0fdcc75d794df754708642d8786ccd95d9461.gz and /dev/null differ diff --git a/_darcs/patches/20080509021604-84dde-f785fc09dd435fc12741b3a75184e2425721d03d.gz b/_darcs/patches/20080509021604-84dde-f785fc09dd435fc12741b3a75184e2425721d03d.gz deleted file mode 100644 index d02912407e..0000000000 Binary files a/_darcs/patches/20080509021604-84dde-f785fc09dd435fc12741b3a75184e2425721d03d.gz and /dev/null differ diff --git a/_darcs/patches/20080514145436-84dde-d0994cb35d3fe8545d3f08abeec3cdfe7559c67d.gz b/_darcs/patches/20080514145436-84dde-d0994cb35d3fe8545d3f08abeec3cdfe7559c67d.gz deleted file mode 100644 index 430683300d..0000000000 Binary files a/_darcs/patches/20080514145436-84dde-d0994cb35d3fe8545d3f08abeec3cdfe7559c67d.gz and /dev/null differ diff --git a/_darcs/patches/20080514184702-84dde-b9291e08f3fd0ad31141e392cab26220b310a6d4.gz b/_darcs/patches/20080514184702-84dde-b9291e08f3fd0ad31141e392cab26220b310a6d4.gz deleted file mode 100644 index ef08394615..0000000000 Binary files a/_darcs/patches/20080514184702-84dde-b9291e08f3fd0ad31141e392cab26220b310a6d4.gz and /dev/null differ diff --git a/_darcs/patches/20080514190009-84dde-30f0f1b5955d71cd85563e12078ab02bf8645524.gz b/_darcs/patches/20080514190009-84dde-30f0f1b5955d71cd85563e12078ab02bf8645524.gz deleted file mode 100644 index 441591000b..0000000000 Binary files a/_darcs/patches/20080514190009-84dde-30f0f1b5955d71cd85563e12078ab02bf8645524.gz and /dev/null differ diff --git a/_darcs/patches/20080514190105-84dde-6a1e44520dd035f2203a08dab20f3008347ea53b.gz b/_darcs/patches/20080514190105-84dde-6a1e44520dd035f2203a08dab20f3008347ea53b.gz deleted file mode 100644 index 770d87e609..0000000000 Binary files a/_darcs/patches/20080514190105-84dde-6a1e44520dd035f2203a08dab20f3008347ea53b.gz and /dev/null differ diff --git a/_darcs/patches/20080514190300-84dde-626b88c9da510c8830d2eff2d36b72f18e6353d4.gz b/_darcs/patches/20080514190300-84dde-626b88c9da510c8830d2eff2d36b72f18e6353d4.gz deleted file mode 100644 index 2b4d47f66a..0000000000 Binary files a/_darcs/patches/20080514190300-84dde-626b88c9da510c8830d2eff2d36b72f18e6353d4.gz and /dev/null differ diff --git a/_darcs/patches/20080514190341-84dde-1c71549a150c1028dae0cb8421cf61e72ce3045c.gz b/_darcs/patches/20080514190341-84dde-1c71549a150c1028dae0cb8421cf61e72ce3045c.gz deleted file mode 100644 index d776b2761b..0000000000 Binary files a/_darcs/patches/20080514190341-84dde-1c71549a150c1028dae0cb8421cf61e72ce3045c.gz and /dev/null differ diff --git a/_darcs/patches/20080514190411-84dde-d7fd117f33a642c038408fb34fbfb3a35057b476.gz b/_darcs/patches/20080514190411-84dde-d7fd117f33a642c038408fb34fbfb3a35057b476.gz deleted file mode 100644 index e770ac25af..0000000000 Binary files a/_darcs/patches/20080514190411-84dde-d7fd117f33a642c038408fb34fbfb3a35057b476.gz and /dev/null differ diff --git a/_darcs/patches/20080514192648-84dde-a430dc438a4e3741c62ccf30ee7f85ecc968b159.gz b/_darcs/patches/20080514192648-84dde-a430dc438a4e3741c62ccf30ee7f85ecc968b159.gz deleted file mode 100644 index 6a8155fb5a..0000000000 Binary files a/_darcs/patches/20080514192648-84dde-a430dc438a4e3741c62ccf30ee7f85ecc968b159.gz and /dev/null differ diff --git a/_darcs/patches/20080515162844-84dde-fe0630366e247c02ca8ca9d1cc6b963cfce57a26.gz b/_darcs/patches/20080515162844-84dde-fe0630366e247c02ca8ca9d1cc6b963cfce57a26.gz deleted file mode 100644 index b8f611b8ac..0000000000 Binary files a/_darcs/patches/20080515162844-84dde-fe0630366e247c02ca8ca9d1cc6b963cfce57a26.gz and /dev/null differ diff --git a/_darcs/patches/20080517122045-84dde-8e13994e627805f29679c9533c2f62db81dc0925.gz b/_darcs/patches/20080517122045-84dde-8e13994e627805f29679c9533c2f62db81dc0925.gz deleted file mode 100644 index f38e2bb313..0000000000 Binary files a/_darcs/patches/20080517122045-84dde-8e13994e627805f29679c9533c2f62db81dc0925.gz and /dev/null differ diff --git a/_darcs/patches/20080517135138-84dde-3c69c89ee8080568e92f655cbb3171867a7b38ce.gz b/_darcs/patches/20080517135138-84dde-3c69c89ee8080568e92f655cbb3171867a7b38ce.gz deleted file mode 100644 index 3bc0806d27..0000000000 Binary files a/_darcs/patches/20080517135138-84dde-3c69c89ee8080568e92f655cbb3171867a7b38ce.gz and /dev/null differ diff --git a/_darcs/patches/20080517140532-84dde-b316b4b425cced5c31fc2ecd0dd81217d5f91365.gz b/_darcs/patches/20080517140532-84dde-b316b4b425cced5c31fc2ecd0dd81217d5f91365.gz deleted file mode 100644 index 9408009b55..0000000000 Binary files a/_darcs/patches/20080517140532-84dde-b316b4b425cced5c31fc2ecd0dd81217d5f91365.gz and /dev/null differ diff --git a/_darcs/patches/20080517144642-84dde-c267a6e3bb0717ad5a3a819a7cf65fdd5817ea8e.gz b/_darcs/patches/20080517144642-84dde-c267a6e3bb0717ad5a3a819a7cf65fdd5817ea8e.gz deleted file mode 100644 index 8489fe6b8c..0000000000 Binary files a/_darcs/patches/20080517144642-84dde-c267a6e3bb0717ad5a3a819a7cf65fdd5817ea8e.gz and /dev/null differ diff --git a/_darcs/patches/20080517152958-84dde-1170f017a6cf42845d74f75057c923be91404c29.gz b/_darcs/patches/20080517152958-84dde-1170f017a6cf42845d74f75057c923be91404c29.gz deleted file mode 100644 index 4110f5df30..0000000000 Binary files a/_darcs/patches/20080517152958-84dde-1170f017a6cf42845d74f75057c923be91404c29.gz and /dev/null differ diff --git a/_darcs/patches/20080517153127-84dde-0775d0606266158a488662dcd7377fcfc1c575c2.gz b/_darcs/patches/20080517153127-84dde-0775d0606266158a488662dcd7377fcfc1c575c2.gz deleted file mode 100644 index 5382bb87b6..0000000000 Binary files a/_darcs/patches/20080517153127-84dde-0775d0606266158a488662dcd7377fcfc1c575c2.gz and /dev/null differ diff --git a/_darcs/patches/20080517153140-84dde-9a66640ac27da548d82459183d14b60d9e0c241a.gz b/_darcs/patches/20080517153140-84dde-9a66640ac27da548d82459183d14b60d9e0c241a.gz deleted file mode 100644 index b84a7696f0..0000000000 Binary files a/_darcs/patches/20080517153140-84dde-9a66640ac27da548d82459183d14b60d9e0c241a.gz and /dev/null differ diff --git a/_darcs/patches/20080517154701-84dde-8d38da89c5b9cb3b40704adb04a4de880c204181.gz b/_darcs/patches/20080517154701-84dde-8d38da89c5b9cb3b40704adb04a4de880c204181.gz deleted file mode 100644 index b387f56f73..0000000000 Binary files a/_darcs/patches/20080517154701-84dde-8d38da89c5b9cb3b40704adb04a4de880c204181.gz and /dev/null differ diff --git a/_darcs/patches/20080517154942-84dde-d671f0805fc47c4321d84d3e1c1aea6a11d46395.gz b/_darcs/patches/20080517154942-84dde-d671f0805fc47c4321d84d3e1c1aea6a11d46395.gz deleted file mode 100644 index 81cf740b89..0000000000 Binary files a/_darcs/patches/20080517154942-84dde-d671f0805fc47c4321d84d3e1c1aea6a11d46395.gz and /dev/null differ diff --git a/_darcs/patches/20080517155326-84dde-2da05716ece2cce3c3f2f790d326c5333417ef9e.gz b/_darcs/patches/20080517155326-84dde-2da05716ece2cce3c3f2f790d326c5333417ef9e.gz deleted file mode 100644 index 536f4787a5..0000000000 Binary files a/_darcs/patches/20080517155326-84dde-2da05716ece2cce3c3f2f790d326c5333417ef9e.gz and /dev/null differ diff --git a/_darcs/patches/20080517155754-84dde-388126a2941bedd3b578e347e72b942404f6b6c0.gz b/_darcs/patches/20080517155754-84dde-388126a2941bedd3b578e347e72b942404f6b6c0.gz deleted file mode 100644 index 44d2dbe899..0000000000 Binary files a/_darcs/patches/20080517155754-84dde-388126a2941bedd3b578e347e72b942404f6b6c0.gz and /dev/null differ diff --git a/_darcs/patches/20080517160654-84dde-824b3aaf45639ff98e95c4b8011e32a74efd64a9.gz b/_darcs/patches/20080517160654-84dde-824b3aaf45639ff98e95c4b8011e32a74efd64a9.gz deleted file mode 100644 index ee9dd9c363..0000000000 Binary files a/_darcs/patches/20080517160654-84dde-824b3aaf45639ff98e95c4b8011e32a74efd64a9.gz and /dev/null differ diff --git a/_darcs/patches/20080517160908-84dde-c176f1fa4c4026a84efac994e65db0158935cb11.gz b/_darcs/patches/20080517160908-84dde-c176f1fa4c4026a84efac994e65db0158935cb11.gz deleted file mode 100644 index 4ce1a80961..0000000000 Binary files a/_darcs/patches/20080517160908-84dde-c176f1fa4c4026a84efac994e65db0158935cb11.gz and /dev/null differ diff --git a/_darcs/patches/20080517161332-84dde-fbb5728ec0e6825c145f110b09420c231c4b7973.gz b/_darcs/patches/20080517161332-84dde-fbb5728ec0e6825c145f110b09420c231c4b7973.gz deleted file mode 100644 index a66a668a18..0000000000 Binary files a/_darcs/patches/20080517161332-84dde-fbb5728ec0e6825c145f110b09420c231c4b7973.gz and /dev/null differ diff --git a/_darcs/patches/20080517161548-84dde-8b011466dcf6a0e95e5e0b9c6a5ddcf4cd4bd145.gz b/_darcs/patches/20080517161548-84dde-8b011466dcf6a0e95e5e0b9c6a5ddcf4cd4bd145.gz deleted file mode 100644 index 6a9bf262f6..0000000000 Binary files a/_darcs/patches/20080517161548-84dde-8b011466dcf6a0e95e5e0b9c6a5ddcf4cd4bd145.gz and /dev/null differ diff --git a/_darcs/patches/20080517161817-84dde-a28288b093f40eda0d8444f54eca818b2c65a735.gz b/_darcs/patches/20080517161817-84dde-a28288b093f40eda0d8444f54eca818b2c65a735.gz deleted file mode 100644 index 1086a8df4d..0000000000 Binary files a/_darcs/patches/20080517161817-84dde-a28288b093f40eda0d8444f54eca818b2c65a735.gz and /dev/null differ diff --git a/_darcs/patches/20080517162305-84dde-92b12e54f367528cc0d8454c14ca2f1616eeb8e4.gz b/_darcs/patches/20080517162305-84dde-92b12e54f367528cc0d8454c14ca2f1616eeb8e4.gz deleted file mode 100644 index 88912b0d6d..0000000000 Binary files a/_darcs/patches/20080517162305-84dde-92b12e54f367528cc0d8454c14ca2f1616eeb8e4.gz and /dev/null differ diff --git a/_darcs/patches/20080517162932-84dde-f087458cd090cc24d032a5d5e45ef1e13eb8be9d.gz b/_darcs/patches/20080517162932-84dde-f087458cd090cc24d032a5d5e45ef1e13eb8be9d.gz deleted file mode 100644 index f102102b47..0000000000 Binary files a/_darcs/patches/20080517162932-84dde-f087458cd090cc24d032a5d5e45ef1e13eb8be9d.gz and /dev/null differ diff --git a/_darcs/patches/20080517163749-84dde-a323b2b956a0912c5dc2cb93a83714dad64064a0.gz b/_darcs/patches/20080517163749-84dde-a323b2b956a0912c5dc2cb93a83714dad64064a0.gz deleted file mode 100644 index 49cabb33f9..0000000000 Binary files a/_darcs/patches/20080517163749-84dde-a323b2b956a0912c5dc2cb93a83714dad64064a0.gz and /dev/null differ diff --git a/_darcs/patches/20080517163917-84dde-c9e0953e6074e66d427164e7cfad1ca1cf27553b.gz b/_darcs/patches/20080517163917-84dde-c9e0953e6074e66d427164e7cfad1ca1cf27553b.gz deleted file mode 100644 index d438f73da8..0000000000 Binary files a/_darcs/patches/20080517163917-84dde-c9e0953e6074e66d427164e7cfad1ca1cf27553b.gz and /dev/null differ diff --git a/_darcs/patches/20080517164218-84dde-20ee8612a1d3cd913b1412d5ee56a72a2b741f2b.gz b/_darcs/patches/20080517164218-84dde-20ee8612a1d3cd913b1412d5ee56a72a2b741f2b.gz deleted file mode 100644 index 887619e690..0000000000 Binary files a/_darcs/patches/20080517164218-84dde-20ee8612a1d3cd913b1412d5ee56a72a2b741f2b.gz and /dev/null differ diff --git a/_darcs/patches/20080517164349-84dde-6931aabcabe26e327f6f139c6e374816fbb327fd.gz b/_darcs/patches/20080517164349-84dde-6931aabcabe26e327f6f139c6e374816fbb327fd.gz deleted file mode 100644 index 17a4a8b0b3..0000000000 Binary files a/_darcs/patches/20080517164349-84dde-6931aabcabe26e327f6f139c6e374816fbb327fd.gz and /dev/null differ diff --git a/_darcs/patches/20080517170430-84dde-74f42b52695699f646b65b939f78fbbe95a05c7e.gz b/_darcs/patches/20080517170430-84dde-74f42b52695699f646b65b939f78fbbe95a05c7e.gz deleted file mode 100644 index 5c226c8a95..0000000000 Binary files a/_darcs/patches/20080517170430-84dde-74f42b52695699f646b65b939f78fbbe95a05c7e.gz and /dev/null differ diff --git a/_darcs/patches/20080517170617-84dde-e9d708d6e04c748ac35a93e69b3ac7f0129c0585.gz b/_darcs/patches/20080517170617-84dde-e9d708d6e04c748ac35a93e69b3ac7f0129c0585.gz deleted file mode 100644 index 5cb2d43188..0000000000 Binary files a/_darcs/patches/20080517170617-84dde-e9d708d6e04c748ac35a93e69b3ac7f0129c0585.gz and /dev/null differ diff --git a/_darcs/patches/20080517170920-84dde-150c051a92f5af4189e55539d71c37b4f20e369d.gz b/_darcs/patches/20080517170920-84dde-150c051a92f5af4189e55539d71c37b4f20e369d.gz deleted file mode 100644 index f5bbf93e28..0000000000 Binary files a/_darcs/patches/20080517170920-84dde-150c051a92f5af4189e55539d71c37b4f20e369d.gz and /dev/null differ diff --git a/_darcs/patches/20080517171501-84dde-b8d6a1cc106372c9127d73442b4740f2de7e7b22.gz b/_darcs/patches/20080517171501-84dde-b8d6a1cc106372c9127d73442b4740f2de7e7b22.gz deleted file mode 100644 index ea40dadd5d..0000000000 Binary files a/_darcs/patches/20080517171501-84dde-b8d6a1cc106372c9127d73442b4740f2de7e7b22.gz and /dev/null differ diff --git a/_darcs/patches/20080517172110-84dde-d2c83cb5e88693100c444b0ed088eed327f8a77d.gz b/_darcs/patches/20080517172110-84dde-d2c83cb5e88693100c444b0ed088eed327f8a77d.gz deleted file mode 100644 index b052035f08..0000000000 Binary files a/_darcs/patches/20080517172110-84dde-d2c83cb5e88693100c444b0ed088eed327f8a77d.gz and /dev/null differ diff --git a/_darcs/patches/20080517172528-84dde-99ef7b8b71e3229d54697a84ac7f9f3d8cbd77db.gz b/_darcs/patches/20080517172528-84dde-99ef7b8b71e3229d54697a84ac7f9f3d8cbd77db.gz deleted file mode 100644 index 8dcc491af0..0000000000 Binary files a/_darcs/patches/20080517172528-84dde-99ef7b8b71e3229d54697a84ac7f9f3d8cbd77db.gz and /dev/null differ diff --git a/_darcs/patches/20080517172654-84dde-83b31bcf0f9497bf6a1d3d3bc498312e50b6b9da.gz b/_darcs/patches/20080517172654-84dde-83b31bcf0f9497bf6a1d3d3bc498312e50b6b9da.gz deleted file mode 100644 index 29df635a9b..0000000000 Binary files a/_darcs/patches/20080517172654-84dde-83b31bcf0f9497bf6a1d3d3bc498312e50b6b9da.gz and /dev/null differ diff --git a/_darcs/patches/20080517173424-84dde-6fe6df2e710f1a19db97a93682f41cf01034952f.gz b/_darcs/patches/20080517173424-84dde-6fe6df2e710f1a19db97a93682f41cf01034952f.gz deleted file mode 100644 index 631777670d..0000000000 Binary files a/_darcs/patches/20080517173424-84dde-6fe6df2e710f1a19db97a93682f41cf01034952f.gz and /dev/null differ diff --git a/_darcs/patches/20080517173626-84dde-da0e6057b127ef3578267bdbc425dcef36f29c2a.gz b/_darcs/patches/20080517173626-84dde-da0e6057b127ef3578267bdbc425dcef36f29c2a.gz deleted file mode 100644 index 1d871b6b6f..0000000000 Binary files a/_darcs/patches/20080517173626-84dde-da0e6057b127ef3578267bdbc425dcef36f29c2a.gz and /dev/null differ diff --git a/_darcs/patches/20080517174219-84dde-60a678b876bfe9ec9b93142734c21019ad5761bf.gz b/_darcs/patches/20080517174219-84dde-60a678b876bfe9ec9b93142734c21019ad5761bf.gz deleted file mode 100644 index d5c1afddde..0000000000 Binary files a/_darcs/patches/20080517174219-84dde-60a678b876bfe9ec9b93142734c21019ad5761bf.gz and /dev/null differ diff --git a/_darcs/patches/20080517175022-84dde-475a63e7f8d400c508d259fcbc9959588720316b.gz b/_darcs/patches/20080517175022-84dde-475a63e7f8d400c508d259fcbc9959588720316b.gz deleted file mode 100644 index 8aad3d8c6f..0000000000 Binary files a/_darcs/patches/20080517175022-84dde-475a63e7f8d400c508d259fcbc9959588720316b.gz and /dev/null differ diff --git a/_darcs/patches/20080517175416-84dde-b83a41de70a48671e0a251c645cf67b81c54bda6.gz b/_darcs/patches/20080517175416-84dde-b83a41de70a48671e0a251c645cf67b81c54bda6.gz deleted file mode 100644 index 88ad6946d1..0000000000 Binary files a/_darcs/patches/20080517175416-84dde-b83a41de70a48671e0a251c645cf67b81c54bda6.gz and /dev/null differ diff --git a/_darcs/patches/20080517190142-84dde-ec4cc3dc256c2daca29ffe6710507188829f04ba.gz b/_darcs/patches/20080517190142-84dde-ec4cc3dc256c2daca29ffe6710507188829f04ba.gz deleted file mode 100644 index 81f39133f6..0000000000 Binary files a/_darcs/patches/20080517190142-84dde-ec4cc3dc256c2daca29ffe6710507188829f04ba.gz and /dev/null differ diff --git a/_darcs/patches/20080517191034-84dde-eebc08698104692bd67e00b9feffb0dd19f5c2b9.gz b/_darcs/patches/20080517191034-84dde-eebc08698104692bd67e00b9feffb0dd19f5c2b9.gz deleted file mode 100644 index 4db0f4b4b0..0000000000 Binary files a/_darcs/patches/20080517191034-84dde-eebc08698104692bd67e00b9feffb0dd19f5c2b9.gz and /dev/null differ diff --git a/_darcs/patches/20080517191128-84dde-1bbcedf4c600b5faaca9a2c3f27feb1256cf7046.gz b/_darcs/patches/20080517191128-84dde-1bbcedf4c600b5faaca9a2c3f27feb1256cf7046.gz deleted file mode 100644 index 6ad0eec4c8..0000000000 Binary files a/_darcs/patches/20080517191128-84dde-1bbcedf4c600b5faaca9a2c3f27feb1256cf7046.gz and /dev/null differ diff --git a/_darcs/patches/20080517191430-84dde-bdaffcd7b2704a8a3636db7c7ebbc43c8d826198.gz b/_darcs/patches/20080517191430-84dde-bdaffcd7b2704a8a3636db7c7ebbc43c8d826198.gz deleted file mode 100644 index f5e154bd41..0000000000 Binary files a/_darcs/patches/20080517191430-84dde-bdaffcd7b2704a8a3636db7c7ebbc43c8d826198.gz and /dev/null differ diff --git a/_darcs/patches/20080517192001-84dde-fa2b16b7aeacab52c7697e14182fc72d2022bfcc.gz b/_darcs/patches/20080517192001-84dde-fa2b16b7aeacab52c7697e14182fc72d2022bfcc.gz deleted file mode 100644 index df145becec..0000000000 Binary files a/_darcs/patches/20080517192001-84dde-fa2b16b7aeacab52c7697e14182fc72d2022bfcc.gz and /dev/null differ diff --git a/_darcs/patches/20080517192151-84dde-d96af70740e7edd76fd1dd4cd9ea5f8e9bc5c060.gz b/_darcs/patches/20080517192151-84dde-d96af70740e7edd76fd1dd4cd9ea5f8e9bc5c060.gz deleted file mode 100644 index e7602406c7..0000000000 Binary files a/_darcs/patches/20080517192151-84dde-d96af70740e7edd76fd1dd4cd9ea5f8e9bc5c060.gz and /dev/null differ diff --git a/_darcs/patches/20080517192447-84dde-f8dc1f4befde5d7624887b13eb7f5730f693c72c.gz b/_darcs/patches/20080517192447-84dde-f8dc1f4befde5d7624887b13eb7f5730f693c72c.gz deleted file mode 100644 index 5ca772dcaa..0000000000 Binary files a/_darcs/patches/20080517192447-84dde-f8dc1f4befde5d7624887b13eb7f5730f693c72c.gz and /dev/null differ diff --git a/_darcs/patches/20080517193030-84dde-ecd85676afd34bd9eb4b42b84bb3b6a6b9ea6a9e.gz b/_darcs/patches/20080517193030-84dde-ecd85676afd34bd9eb4b42b84bb3b6a6b9ea6a9e.gz deleted file mode 100644 index ee7f016a74..0000000000 Binary files a/_darcs/patches/20080517193030-84dde-ecd85676afd34bd9eb4b42b84bb3b6a6b9ea6a9e.gz and /dev/null differ diff --git a/_darcs/patches/20080517193520-84dde-e0e0ad44fa0b87e7964fa36375b656e7cfabf865.gz b/_darcs/patches/20080517193520-84dde-e0e0ad44fa0b87e7964fa36375b656e7cfabf865.gz deleted file mode 100644 index a92b9209f2..0000000000 Binary files a/_darcs/patches/20080517193520-84dde-e0e0ad44fa0b87e7964fa36375b656e7cfabf865.gz and /dev/null differ diff --git a/_darcs/patches/20080517193833-84dde-6bd3630291a70a6ba6f5b37ba7397f320c4d6d5e.gz b/_darcs/patches/20080517193833-84dde-6bd3630291a70a6ba6f5b37ba7397f320c4d6d5e.gz deleted file mode 100644 index a3d5389495..0000000000 Binary files a/_darcs/patches/20080517193833-84dde-6bd3630291a70a6ba6f5b37ba7397f320c4d6d5e.gz and /dev/null differ diff --git a/_darcs/patches/20080517194003-84dde-fb9334c5cfa7654d09b770132d284d5fa8d7b4ca.gz b/_darcs/patches/20080517194003-84dde-fb9334c5cfa7654d09b770132d284d5fa8d7b4ca.gz deleted file mode 100644 index 01567baa66..0000000000 Binary files a/_darcs/patches/20080517194003-84dde-fb9334c5cfa7654d09b770132d284d5fa8d7b4ca.gz and /dev/null differ diff --git a/_darcs/patches/20080517194133-84dde-7fc79724a9036b6d98c44c3369aac6a5a3ee931f.gz b/_darcs/patches/20080517194133-84dde-7fc79724a9036b6d98c44c3369aac6a5a3ee931f.gz deleted file mode 100644 index 2629fc43da..0000000000 Binary files a/_darcs/patches/20080517194133-84dde-7fc79724a9036b6d98c44c3369aac6a5a3ee931f.gz and /dev/null differ diff --git a/_darcs/patches/20080517195201-84dde-8f8269284e5fc00e9f2a6d8187059d0f59eae007.gz b/_darcs/patches/20080517195201-84dde-8f8269284e5fc00e9f2a6d8187059d0f59eae007.gz deleted file mode 100644 index 835ec67bb3..0000000000 Binary files a/_darcs/patches/20080517195201-84dde-8f8269284e5fc00e9f2a6d8187059d0f59eae007.gz and /dev/null differ diff --git a/_darcs/patches/20080517195449-84dde-d08f3cad4fb79cdf81ef40f79aa30a29c9ddd9a7.gz b/_darcs/patches/20080517195449-84dde-d08f3cad4fb79cdf81ef40f79aa30a29c9ddd9a7.gz deleted file mode 100644 index ff654a9003..0000000000 Binary files a/_darcs/patches/20080517195449-84dde-d08f3cad4fb79cdf81ef40f79aa30a29c9ddd9a7.gz and /dev/null differ diff --git a/_darcs/patches/20080517195724-84dde-9a5bbde2f8be89dbeaf255e6ae8c5f392af63c64.gz b/_darcs/patches/20080517195724-84dde-9a5bbde2f8be89dbeaf255e6ae8c5f392af63c64.gz deleted file mode 100644 index 65e21d1680..0000000000 Binary files a/_darcs/patches/20080517195724-84dde-9a5bbde2f8be89dbeaf255e6ae8c5f392af63c64.gz and /dev/null differ diff --git a/_darcs/patches/20080517201411-84dde-7a6195517a5bded7b84266f61c035e2adbc49edd.gz b/_darcs/patches/20080517201411-84dde-7a6195517a5bded7b84266f61c035e2adbc49edd.gz deleted file mode 100644 index 55353e769b..0000000000 Binary files a/_darcs/patches/20080517201411-84dde-7a6195517a5bded7b84266f61c035e2adbc49edd.gz and /dev/null differ diff --git a/_darcs/patches/20080517201719-84dde-ad4d5d935f510bedbd965c9c4c93550c50820454.gz b/_darcs/patches/20080517201719-84dde-ad4d5d935f510bedbd965c9c4c93550c50820454.gz deleted file mode 100644 index 1b4628def0..0000000000 Binary files a/_darcs/patches/20080517201719-84dde-ad4d5d935f510bedbd965c9c4c93550c50820454.gz and /dev/null differ diff --git a/_darcs/patches/20080517202132-84dde-78c7fe9f22aa28f33e9e00432f5cf6436b64e6b5.gz b/_darcs/patches/20080517202132-84dde-78c7fe9f22aa28f33e9e00432f5cf6436b64e6b5.gz deleted file mode 100644 index a2444d103c..0000000000 Binary files a/_darcs/patches/20080517202132-84dde-78c7fe9f22aa28f33e9e00432f5cf6436b64e6b5.gz and /dev/null differ diff --git a/_darcs/patches/20080518011808-84dde-a379fa8baa2f3cc7e871e54d46ef025106aecc84.gz b/_darcs/patches/20080518011808-84dde-a379fa8baa2f3cc7e871e54d46ef025106aecc84.gz deleted file mode 100644 index 329c91e033..0000000000 Binary files a/_darcs/patches/20080518011808-84dde-a379fa8baa2f3cc7e871e54d46ef025106aecc84.gz and /dev/null differ diff --git a/_darcs/patches/20080518012850-84dde-31e2c255b661dc71201756b20763ab817df44d05.gz b/_darcs/patches/20080518012850-84dde-31e2c255b661dc71201756b20763ab817df44d05.gz deleted file mode 100644 index 5a3623d325..0000000000 Binary files a/_darcs/patches/20080518012850-84dde-31e2c255b661dc71201756b20763ab817df44d05.gz and /dev/null differ diff --git a/_darcs/patches/20080518013312-84dde-382047d577719dd4f0fd39768546b6bb43b1933c.gz b/_darcs/patches/20080518013312-84dde-382047d577719dd4f0fd39768546b6bb43b1933c.gz deleted file mode 100644 index 161d2f764b..0000000000 Binary files a/_darcs/patches/20080518013312-84dde-382047d577719dd4f0fd39768546b6bb43b1933c.gz and /dev/null differ diff --git a/_darcs/patches/20080518013747-84dde-e3e4f2bcd562f86e7c5460bc1bdbda8a1417dd31.gz b/_darcs/patches/20080518013747-84dde-e3e4f2bcd562f86e7c5460bc1bdbda8a1417dd31.gz deleted file mode 100644 index 074c48dc01..0000000000 Binary files a/_darcs/patches/20080518013747-84dde-e3e4f2bcd562f86e7c5460bc1bdbda8a1417dd31.gz and /dev/null differ diff --git a/_darcs/patches/20080518014207-84dde-8efb938e50bbd1c1008c3b8a1e09e17124d260b4.gz b/_darcs/patches/20080518014207-84dde-8efb938e50bbd1c1008c3b8a1e09e17124d260b4.gz deleted file mode 100644 index 33e1703e2d..0000000000 Binary files a/_darcs/patches/20080518014207-84dde-8efb938e50bbd1c1008c3b8a1e09e17124d260b4.gz and /dev/null differ diff --git a/_darcs/patches/20080518015551-84dde-65964e140ed0b6c23aeee368fcffccdc14d71c61.gz b/_darcs/patches/20080518015551-84dde-65964e140ed0b6c23aeee368fcffccdc14d71c61.gz deleted file mode 100644 index 58c720b264..0000000000 Binary files a/_darcs/patches/20080518015551-84dde-65964e140ed0b6c23aeee368fcffccdc14d71c61.gz and /dev/null differ diff --git a/_darcs/patches/20080518125253-84dde-590f37a4789b5fbf702a0cbacbd56087d94d51f9.gz b/_darcs/patches/20080518125253-84dde-590f37a4789b5fbf702a0cbacbd56087d94d51f9.gz deleted file mode 100644 index 375895467c..0000000000 Binary files a/_darcs/patches/20080518125253-84dde-590f37a4789b5fbf702a0cbacbd56087d94d51f9.gz and /dev/null differ diff --git a/_darcs/patches/20080518185940-84dde-fb7a3af877c67b5d7e9c59d32092c1392a0ecd58.gz b/_darcs/patches/20080518185940-84dde-fb7a3af877c67b5d7e9c59d32092c1392a0ecd58.gz deleted file mode 100644 index d634c588d7..0000000000 Binary files a/_darcs/patches/20080518185940-84dde-fb7a3af877c67b5d7e9c59d32092c1392a0ecd58.gz and /dev/null differ diff --git a/_darcs/patches/20080518190220-84dde-e1e3005a72a6913dd86fc9384e1083fb39203a73.gz b/_darcs/patches/20080518190220-84dde-e1e3005a72a6913dd86fc9384e1083fb39203a73.gz deleted file mode 100644 index cd4c6dc6de..0000000000 Binary files a/_darcs/patches/20080518190220-84dde-e1e3005a72a6913dd86fc9384e1083fb39203a73.gz and /dev/null differ diff --git a/_darcs/patches/20080518191056-84dde-c7b52e98b4b9642788c82f28cdf16ff6af9f45c3.gz b/_darcs/patches/20080518191056-84dde-c7b52e98b4b9642788c82f28cdf16ff6af9f45c3.gz deleted file mode 100644 index cadc364273..0000000000 Binary files a/_darcs/patches/20080518191056-84dde-c7b52e98b4b9642788c82f28cdf16ff6af9f45c3.gz and /dev/null differ diff --git a/_darcs/patches/20080518191326-84dde-29f6238550a5dc66e4de2c4e1e165be254609ce6.gz b/_darcs/patches/20080518191326-84dde-29f6238550a5dc66e4de2c4e1e165be254609ce6.gz deleted file mode 100644 index 973b059831..0000000000 Binary files a/_darcs/patches/20080518191326-84dde-29f6238550a5dc66e4de2c4e1e165be254609ce6.gz and /dev/null differ diff --git a/_darcs/patches/20080518191750-84dde-b8dc74908e66879d5746fd39a3e16a370fab08f2.gz b/_darcs/patches/20080518191750-84dde-b8dc74908e66879d5746fd39a3e16a370fab08f2.gz deleted file mode 100644 index d6c82b40b0..0000000000 Binary files a/_darcs/patches/20080518191750-84dde-b8dc74908e66879d5746fd39a3e16a370fab08f2.gz and /dev/null differ diff --git a/_darcs/patches/20080518191849-84dde-ecaf7a36d27378d707d0a08b3948bcc2af24374f.gz b/_darcs/patches/20080518191849-84dde-ecaf7a36d27378d707d0a08b3948bcc2af24374f.gz deleted file mode 100644 index b2e73337bd..0000000000 Binary files a/_darcs/patches/20080518191849-84dde-ecaf7a36d27378d707d0a08b3948bcc2af24374f.gz and /dev/null differ diff --git a/_darcs/patches/20080518193951-84dde-cc45fbfba1f11a4ae2f629cc862e02a14743f2c1.gz b/_darcs/patches/20080518193951-84dde-cc45fbfba1f11a4ae2f629cc862e02a14743f2c1.gz deleted file mode 100644 index 993ca9a044..0000000000 Binary files a/_darcs/patches/20080518193951-84dde-cc45fbfba1f11a4ae2f629cc862e02a14743f2c1.gz and /dev/null differ diff --git a/_darcs/patches/20080518194653-84dde-33205b1f2f6297006d63aec41fa91a8bcffda1ef.gz b/_darcs/patches/20080518194653-84dde-33205b1f2f6297006d63aec41fa91a8bcffda1ef.gz deleted file mode 100644 index 74e7185a11..0000000000 Binary files a/_darcs/patches/20080518194653-84dde-33205b1f2f6297006d63aec41fa91a8bcffda1ef.gz and /dev/null differ diff --git a/_darcs/patches/20080519122445-84dde-b6505e0b8ea310eee50eb6e638238fb7cf93bead.gz b/_darcs/patches/20080519122445-84dde-b6505e0b8ea310eee50eb6e638238fb7cf93bead.gz deleted file mode 100644 index 9f27581bba..0000000000 Binary files a/_darcs/patches/20080519122445-84dde-b6505e0b8ea310eee50eb6e638238fb7cf93bead.gz and /dev/null differ diff --git a/_darcs/patches/20080519122708-84dde-78ec2e47aeb4b33fb83c7d8f5e7f3735d66055ae.gz b/_darcs/patches/20080519122708-84dde-78ec2e47aeb4b33fb83c7d8f5e7f3735d66055ae.gz deleted file mode 100644 index f9bbd67110..0000000000 Binary files a/_darcs/patches/20080519122708-84dde-78ec2e47aeb4b33fb83c7d8f5e7f3735d66055ae.gz and /dev/null differ diff --git a/_darcs/patches/20080519131808-84dde-af9d0bf03a963f7b0bdaed3b973a38998f9e806e.gz b/_darcs/patches/20080519131808-84dde-af9d0bf03a963f7b0bdaed3b973a38998f9e806e.gz deleted file mode 100644 index b65744bd27..0000000000 Binary files a/_darcs/patches/20080519131808-84dde-af9d0bf03a963f7b0bdaed3b973a38998f9e806e.gz and /dev/null differ diff --git a/_darcs/patches/20080519132118-84dde-abb2cf71cc9f7f319c8a2a556bdb591f40221a5c.gz b/_darcs/patches/20080519132118-84dde-abb2cf71cc9f7f319c8a2a556bdb591f40221a5c.gz deleted file mode 100644 index b6ad6e3ec4..0000000000 Binary files a/_darcs/patches/20080519132118-84dde-abb2cf71cc9f7f319c8a2a556bdb591f40221a5c.gz and /dev/null differ diff --git a/_darcs/patches/20080519134057-84dde-d30a178de9e3e7d6ced21e9c395dfac545b3d343.gz b/_darcs/patches/20080519134057-84dde-d30a178de9e3e7d6ced21e9c395dfac545b3d343.gz deleted file mode 100644 index 3f702d00ff..0000000000 Binary files a/_darcs/patches/20080519134057-84dde-d30a178de9e3e7d6ced21e9c395dfac545b3d343.gz and /dev/null differ diff --git a/_darcs/patches/20080519141219-84dde-f9917a8351596060faa7ff5d231417773764a8fd.gz b/_darcs/patches/20080519141219-84dde-f9917a8351596060faa7ff5d231417773764a8fd.gz deleted file mode 100644 index 1e1b1b8e93..0000000000 Binary files a/_darcs/patches/20080519141219-84dde-f9917a8351596060faa7ff5d231417773764a8fd.gz and /dev/null differ diff --git a/_darcs/patches/20080519141351-84dde-98b442cb7275b94a5fc6198f9ef78a785ed7bf19.gz b/_darcs/patches/20080519141351-84dde-98b442cb7275b94a5fc6198f9ef78a785ed7bf19.gz deleted file mode 100644 index 488bc38bcb..0000000000 Binary files a/_darcs/patches/20080519141351-84dde-98b442cb7275b94a5fc6198f9ef78a785ed7bf19.gz and /dev/null differ diff --git a/_darcs/patches/20080519141736-84dde-20ee1ffc994ca10ae3ccd6ec765512ad0cd0385c.gz b/_darcs/patches/20080519141736-84dde-20ee1ffc994ca10ae3ccd6ec765512ad0cd0385c.gz deleted file mode 100644 index e44515521c..0000000000 Binary files a/_darcs/patches/20080519141736-84dde-20ee1ffc994ca10ae3ccd6ec765512ad0cd0385c.gz and /dev/null differ diff --git a/_darcs/patches/20080519141943-84dde-940b096ccb100a7f92eb0787dc7c1050d8184ad3.gz b/_darcs/patches/20080519141943-84dde-940b096ccb100a7f92eb0787dc7c1050d8184ad3.gz deleted file mode 100644 index 2d0595b8c8..0000000000 Binary files a/_darcs/patches/20080519141943-84dde-940b096ccb100a7f92eb0787dc7c1050d8184ad3.gz and /dev/null differ diff --git a/_darcs/patches/20080519142807-84dde-0d9a0a3d70e935a0264215fa1c18082d78057e36.gz b/_darcs/patches/20080519142807-84dde-0d9a0a3d70e935a0264215fa1c18082d78057e36.gz deleted file mode 100644 index 3cc0f9f1b0..0000000000 Binary files a/_darcs/patches/20080519142807-84dde-0d9a0a3d70e935a0264215fa1c18082d78057e36.gz and /dev/null differ diff --git a/_darcs/patches/20080520130535-84dde-5414005cdbd8d39bb548c75388893c7827f2fb16.gz b/_darcs/patches/20080520130535-84dde-5414005cdbd8d39bb548c75388893c7827f2fb16.gz deleted file mode 100644 index d6c3248dbf..0000000000 Binary files a/_darcs/patches/20080520130535-84dde-5414005cdbd8d39bb548c75388893c7827f2fb16.gz and /dev/null differ diff --git a/_darcs/patches/20080520132722-84dde-88a619005006dd032ac82c0e27d07c820843ab7e.gz b/_darcs/patches/20080520132722-84dde-88a619005006dd032ac82c0e27d07c820843ab7e.gz deleted file mode 100644 index 585c095d2c..0000000000 Binary files a/_darcs/patches/20080520132722-84dde-88a619005006dd032ac82c0e27d07c820843ab7e.gz and /dev/null differ diff --git a/_darcs/patches/20080520133008-84dde-efc5b05e3576a56dd692f404eb028d867a7981bf.gz b/_darcs/patches/20080520133008-84dde-efc5b05e3576a56dd692f404eb028d867a7981bf.gz deleted file mode 100644 index dc700daee7..0000000000 Binary files a/_darcs/patches/20080520133008-84dde-efc5b05e3576a56dd692f404eb028d867a7981bf.gz and /dev/null differ diff --git a/_darcs/patches/20080520133220-84dde-86eed983511b6e529b49212d10338d45d3e7691e.gz b/_darcs/patches/20080520133220-84dde-86eed983511b6e529b49212d10338d45d3e7691e.gz deleted file mode 100644 index 16444d2950..0000000000 Binary files a/_darcs/patches/20080520133220-84dde-86eed983511b6e529b49212d10338d45d3e7691e.gz and /dev/null differ diff --git a/_darcs/patches/20080520133640-84dde-5fe3c3079d12812fff09834754c3bc5f5610b5eb.gz b/_darcs/patches/20080520133640-84dde-5fe3c3079d12812fff09834754c3bc5f5610b5eb.gz deleted file mode 100644 index 36de3f3746..0000000000 Binary files a/_darcs/patches/20080520133640-84dde-5fe3c3079d12812fff09834754c3bc5f5610b5eb.gz and /dev/null differ diff --git a/_darcs/patches/20080520133825-84dde-10a3623b12380f12386a8bbbe06cb130902bff8e.gz b/_darcs/patches/20080520133825-84dde-10a3623b12380f12386a8bbbe06cb130902bff8e.gz deleted file mode 100644 index c8e11c8725..0000000000 Binary files a/_darcs/patches/20080520133825-84dde-10a3623b12380f12386a8bbbe06cb130902bff8e.gz and /dev/null differ diff --git a/_darcs/patches/20080520134631-84dde-249574ec7e16108cf47f3001c2bc726bdc6f8751.gz b/_darcs/patches/20080520134631-84dde-249574ec7e16108cf47f3001c2bc726bdc6f8751.gz deleted file mode 100644 index e145f9d116..0000000000 Binary files a/_darcs/patches/20080520134631-84dde-249574ec7e16108cf47f3001c2bc726bdc6f8751.gz and /dev/null differ diff --git a/_darcs/patches/20080520153629-84dde-bcbde039e19b50b75528e30881eb877c276068ee.gz b/_darcs/patches/20080520153629-84dde-bcbde039e19b50b75528e30881eb877c276068ee.gz deleted file mode 100644 index aba219a955..0000000000 Binary files a/_darcs/patches/20080520153629-84dde-bcbde039e19b50b75528e30881eb877c276068ee.gz and /dev/null differ diff --git a/_darcs/patches/20080520171353-84dde-5a04033ee8ef19da25ffa9e5c68d2cb18fc71b04.gz b/_darcs/patches/20080520171353-84dde-5a04033ee8ef19da25ffa9e5c68d2cb18fc71b04.gz deleted file mode 100644 index 79e3fe5cfd..0000000000 Binary files a/_darcs/patches/20080520171353-84dde-5a04033ee8ef19da25ffa9e5c68d2cb18fc71b04.gz and /dev/null differ diff --git a/_darcs/patches/20080520171711-84dde-37d126ca0ccc8658fe2806a8f7f97ee0807783ba.gz b/_darcs/patches/20080520171711-84dde-37d126ca0ccc8658fe2806a8f7f97ee0807783ba.gz deleted file mode 100644 index b3b26450be..0000000000 Binary files a/_darcs/patches/20080520171711-84dde-37d126ca0ccc8658fe2806a8f7f97ee0807783ba.gz and /dev/null differ diff --git a/_darcs/patches/20080520171809-84dde-629fe4850ab2d3efc5c323f0acee2ebab5f83106.gz b/_darcs/patches/20080520171809-84dde-629fe4850ab2d3efc5c323f0acee2ebab5f83106.gz deleted file mode 100644 index aefd597670..0000000000 Binary files a/_darcs/patches/20080520171809-84dde-629fe4850ab2d3efc5c323f0acee2ebab5f83106.gz and /dev/null differ diff --git a/_darcs/patches/20080520172241-84dde-c872445967ab5c3427e7138189be6ad67dbea780.gz b/_darcs/patches/20080520172241-84dde-c872445967ab5c3427e7138189be6ad67dbea780.gz deleted file mode 100644 index 2a8022911a..0000000000 Binary files a/_darcs/patches/20080520172241-84dde-c872445967ab5c3427e7138189be6ad67dbea780.gz and /dev/null differ diff --git a/_darcs/patches/20080520173427-84dde-890b794c42ab3c29c23aa542fee3232fd41463a3.gz b/_darcs/patches/20080520173427-84dde-890b794c42ab3c29c23aa542fee3232fd41463a3.gz deleted file mode 100644 index bb5f57f87c..0000000000 Binary files a/_darcs/patches/20080520173427-84dde-890b794c42ab3c29c23aa542fee3232fd41463a3.gz and /dev/null differ diff --git a/_darcs/patches/20080520174759-84dde-7206aeef3246b2304d463b121a6b17c7f3f2f6d5.gz b/_darcs/patches/20080520174759-84dde-7206aeef3246b2304d463b121a6b17c7f3f2f6d5.gz deleted file mode 100644 index 6c0f0d2a37..0000000000 Binary files a/_darcs/patches/20080520174759-84dde-7206aeef3246b2304d463b121a6b17c7f3f2f6d5.gz and /dev/null differ diff --git a/_darcs/patches/20080520175105-84dde-0f08b19d42ed6b5484ef763c3f6c819ae0156d6f.gz b/_darcs/patches/20080520175105-84dde-0f08b19d42ed6b5484ef763c3f6c819ae0156d6f.gz deleted file mode 100644 index d501f430fa..0000000000 Binary files a/_darcs/patches/20080520175105-84dde-0f08b19d42ed6b5484ef763c3f6c819ae0156d6f.gz and /dev/null differ diff --git a/_darcs/patches/20080520175906-84dde-3b4aec544d517b21344fa802ca00026c8362b573.gz b/_darcs/patches/20080520175906-84dde-3b4aec544d517b21344fa802ca00026c8362b573.gz deleted file mode 100644 index 35cb0cafa1..0000000000 Binary files a/_darcs/patches/20080520175906-84dde-3b4aec544d517b21344fa802ca00026c8362b573.gz and /dev/null differ diff --git a/_darcs/patches/20080520180640-84dde-ab6db22c62371f5b747c39a78d5296e2d2fce2f8.gz b/_darcs/patches/20080520180640-84dde-ab6db22c62371f5b747c39a78d5296e2d2fce2f8.gz deleted file mode 100644 index a326ae1732..0000000000 Binary files a/_darcs/patches/20080520180640-84dde-ab6db22c62371f5b747c39a78d5296e2d2fce2f8.gz and /dev/null differ diff --git a/_darcs/patches/20080520180750-84dde-bdf9cca691ea8386ff66a482f4d890ce9e836ca3.gz b/_darcs/patches/20080520180750-84dde-bdf9cca691ea8386ff66a482f4d890ce9e836ca3.gz deleted file mode 100644 index 7dc06ff803..0000000000 Binary files a/_darcs/patches/20080520180750-84dde-bdf9cca691ea8386ff66a482f4d890ce9e836ca3.gz and /dev/null differ diff --git a/_darcs/patches/20080520181040-84dde-eb1692baeb910ce86abc912e3196bae14ad3fd55.gz b/_darcs/patches/20080520181040-84dde-eb1692baeb910ce86abc912e3196bae14ad3fd55.gz deleted file mode 100644 index 7952f8e9b3..0000000000 Binary files a/_darcs/patches/20080520181040-84dde-eb1692baeb910ce86abc912e3196bae14ad3fd55.gz and /dev/null differ diff --git a/_darcs/patches/20080520181444-84dde-62756d5b151bfe0e607001aee7f176a6c47d5602.gz b/_darcs/patches/20080520181444-84dde-62756d5b151bfe0e607001aee7f176a6c47d5602.gz deleted file mode 100644 index 49317e5dcf..0000000000 Binary files a/_darcs/patches/20080520181444-84dde-62756d5b151bfe0e607001aee7f176a6c47d5602.gz and /dev/null differ diff --git a/_darcs/patches/20080520181906-84dde-fade37744a568d37bdcce69aa85edbd38370d1f1.gz b/_darcs/patches/20080520181906-84dde-fade37744a568d37bdcce69aa85edbd38370d1f1.gz deleted file mode 100644 index 8ab0084c15..0000000000 Binary files a/_darcs/patches/20080520181906-84dde-fade37744a568d37bdcce69aa85edbd38370d1f1.gz and /dev/null differ diff --git a/_darcs/patches/20080520185756-84dde-290bc12cddfc1738a96385e95821d466eff11196.gz b/_darcs/patches/20080520185756-84dde-290bc12cddfc1738a96385e95821d466eff11196.gz deleted file mode 100644 index 500d53b61a..0000000000 Binary files a/_darcs/patches/20080520185756-84dde-290bc12cddfc1738a96385e95821d466eff11196.gz and /dev/null differ diff --git a/_darcs/patches/20080520191032-84dde-64197121c93cd4cf3cbc614badff0bd44547f9f9.gz b/_darcs/patches/20080520191032-84dde-64197121c93cd4cf3cbc614badff0bd44547f9f9.gz deleted file mode 100644 index f86b5522c5..0000000000 Binary files a/_darcs/patches/20080520191032-84dde-64197121c93cd4cf3cbc614badff0bd44547f9f9.gz and /dev/null differ diff --git a/_darcs/patches/20080520191412-84dde-a607dbe848279639630edd1ab4616d05cc2318d1.gz b/_darcs/patches/20080520191412-84dde-a607dbe848279639630edd1ab4616d05cc2318d1.gz deleted file mode 100644 index e79d2e3b70..0000000000 Binary files a/_darcs/patches/20080520191412-84dde-a607dbe848279639630edd1ab4616d05cc2318d1.gz and /dev/null differ diff --git a/_darcs/patches/20080520192634-84dde-2394dbf8767ff886817a5f20f5c9064ea3a1bc79.gz b/_darcs/patches/20080520192634-84dde-2394dbf8767ff886817a5f20f5c9064ea3a1bc79.gz deleted file mode 100644 index cec02fff6e..0000000000 Binary files a/_darcs/patches/20080520192634-84dde-2394dbf8767ff886817a5f20f5c9064ea3a1bc79.gz and /dev/null differ diff --git a/_darcs/patches/20080520192901-84dde-a292a53eabbfad423f31d7c257875198321e322a.gz b/_darcs/patches/20080520192901-84dde-a292a53eabbfad423f31d7c257875198321e322a.gz deleted file mode 100644 index 6bb53025ab..0000000000 Binary files a/_darcs/patches/20080520192901-84dde-a292a53eabbfad423f31d7c257875198321e322a.gz and /dev/null differ diff --git a/_darcs/patches/20080520193636-84dde-a925a6c351e8f8800122f3e264c88478038bdf2d.gz b/_darcs/patches/20080520193636-84dde-a925a6c351e8f8800122f3e264c88478038bdf2d.gz deleted file mode 100644 index e1e49ef56c..0000000000 Binary files a/_darcs/patches/20080520193636-84dde-a925a6c351e8f8800122f3e264c88478038bdf2d.gz and /dev/null differ diff --git a/_darcs/patches/20080520194008-84dde-f032df10986fab4b1c421e58deefce56bf77e66a.gz b/_darcs/patches/20080520194008-84dde-f032df10986fab4b1c421e58deefce56bf77e66a.gz deleted file mode 100644 index 4c91b98e10..0000000000 Binary files a/_darcs/patches/20080520194008-84dde-f032df10986fab4b1c421e58deefce56bf77e66a.gz and /dev/null differ diff --git a/_darcs/patches/20080520194326-84dde-48b25c342111e354759263ccea2e2c9ad8345904.gz b/_darcs/patches/20080520194326-84dde-48b25c342111e354759263ccea2e2c9ad8345904.gz deleted file mode 100644 index 51c70e416f..0000000000 Binary files a/_darcs/patches/20080520194326-84dde-48b25c342111e354759263ccea2e2c9ad8345904.gz and /dev/null differ diff --git a/_darcs/patches/20080520201120-84dde-4b455d4e4854454cc78be8c636a3e0c7f730b93a.gz b/_darcs/patches/20080520201120-84dde-4b455d4e4854454cc78be8c636a3e0c7f730b93a.gz deleted file mode 100644 index 892f9301f0..0000000000 Binary files a/_darcs/patches/20080520201120-84dde-4b455d4e4854454cc78be8c636a3e0c7f730b93a.gz and /dev/null differ diff --git a/_darcs/patches/20080520201440-84dde-ce245ba4f2df693ca76a7378c001eb7645489bef.gz b/_darcs/patches/20080520201440-84dde-ce245ba4f2df693ca76a7378c001eb7645489bef.gz deleted file mode 100644 index b09e9ffd01..0000000000 Binary files a/_darcs/patches/20080520201440-84dde-ce245ba4f2df693ca76a7378c001eb7645489bef.gz and /dev/null differ diff --git a/_darcs/patches/20080520201738-84dde-8f2591a10e1a917c869c1f50eef28de7cf4b66c2.gz b/_darcs/patches/20080520201738-84dde-8f2591a10e1a917c869c1f50eef28de7cf4b66c2.gz deleted file mode 100644 index dac0feed9d..0000000000 Binary files a/_darcs/patches/20080520201738-84dde-8f2591a10e1a917c869c1f50eef28de7cf4b66c2.gz and /dev/null differ diff --git a/_darcs/patches/20080520202500-84dde-a4bb2b7c64122805a73c157f34acc8849e2421d2.gz b/_darcs/patches/20080520202500-84dde-a4bb2b7c64122805a73c157f34acc8849e2421d2.gz deleted file mode 100644 index d72afc980d..0000000000 Binary files a/_darcs/patches/20080520202500-84dde-a4bb2b7c64122805a73c157f34acc8849e2421d2.gz and /dev/null differ diff --git a/_darcs/patches/20080520202747-84dde-d0c7a1ac57b8caab5498978cc8108e92243e22fb.gz b/_darcs/patches/20080520202747-84dde-d0c7a1ac57b8caab5498978cc8108e92243e22fb.gz deleted file mode 100644 index 42d3aebeb5..0000000000 Binary files a/_darcs/patches/20080520202747-84dde-d0c7a1ac57b8caab5498978cc8108e92243e22fb.gz and /dev/null differ diff --git a/_darcs/patches/20080520203002-84dde-13b54cb7fe55641b735833d5c4a29349bf913c5e.gz b/_darcs/patches/20080520203002-84dde-13b54cb7fe55641b735833d5c4a29349bf913c5e.gz deleted file mode 100644 index dd2ead9909..0000000000 Binary files a/_darcs/patches/20080520203002-84dde-13b54cb7fe55641b735833d5c4a29349bf913c5e.gz and /dev/null differ diff --git a/_darcs/patches/20080520204259-84dde-46759945569225f25128ed4d18b635ecce3ba1ea.gz b/_darcs/patches/20080520204259-84dde-46759945569225f25128ed4d18b635ecce3ba1ea.gz deleted file mode 100644 index 839d9aef41..0000000000 Binary files a/_darcs/patches/20080520204259-84dde-46759945569225f25128ed4d18b635ecce3ba1ea.gz and /dev/null differ diff --git a/_darcs/patches/20080520204639-84dde-b97420b0d024772c5c9e51c7b55809977aa71870.gz b/_darcs/patches/20080520204639-84dde-b97420b0d024772c5c9e51c7b55809977aa71870.gz deleted file mode 100644 index e4a44d4e76..0000000000 Binary files a/_darcs/patches/20080520204639-84dde-b97420b0d024772c5c9e51c7b55809977aa71870.gz and /dev/null differ diff --git a/_darcs/patches/20080520205152-84dde-4261d3d07e172a365e383f75c646d46cdbfaeecb.gz b/_darcs/patches/20080520205152-84dde-4261d3d07e172a365e383f75c646d46cdbfaeecb.gz deleted file mode 100644 index c183fad7ed..0000000000 Binary files a/_darcs/patches/20080520205152-84dde-4261d3d07e172a365e383f75c646d46cdbfaeecb.gz and /dev/null differ diff --git a/_darcs/patches/20080520205756-84dde-1ee1cbaae42b5a0cb9c684849e43a7ffc1338f82.gz b/_darcs/patches/20080520205756-84dde-1ee1cbaae42b5a0cb9c684849e43a7ffc1338f82.gz deleted file mode 100644 index f620de88b9..0000000000 Binary files a/_darcs/patches/20080520205756-84dde-1ee1cbaae42b5a0cb9c684849e43a7ffc1338f82.gz and /dev/null differ diff --git a/_darcs/patches/20080520210119-84dde-a9b74a933bd45b2e6b2f96a53a1be55caa0f7912.gz b/_darcs/patches/20080520210119-84dde-a9b74a933bd45b2e6b2f96a53a1be55caa0f7912.gz deleted file mode 100644 index cd738bb3e8..0000000000 Binary files a/_darcs/patches/20080520210119-84dde-a9b74a933bd45b2e6b2f96a53a1be55caa0f7912.gz and /dev/null differ diff --git a/_darcs/patches/20080520210437-84dde-1a8472f5b5cdde042975d669b0fdca5d6984f330.gz b/_darcs/patches/20080520210437-84dde-1a8472f5b5cdde042975d669b0fdca5d6984f330.gz deleted file mode 100644 index 1677f926d4..0000000000 Binary files a/_darcs/patches/20080520210437-84dde-1a8472f5b5cdde042975d669b0fdca5d6984f330.gz and /dev/null differ diff --git a/_darcs/patches/20080520211945-84dde-06c9f0884b3dba3e01fe7e0d71662da162c34418.gz b/_darcs/patches/20080520211945-84dde-06c9f0884b3dba3e01fe7e0d71662da162c34418.gz deleted file mode 100644 index 879c772dd2..0000000000 Binary files a/_darcs/patches/20080520211945-84dde-06c9f0884b3dba3e01fe7e0d71662da162c34418.gz and /dev/null differ diff --git a/_darcs/patches/20080520212319-84dde-27601a4e11dd6a34834f4689c316dae594d8d7e8.gz b/_darcs/patches/20080520212319-84dde-27601a4e11dd6a34834f4689c316dae594d8d7e8.gz deleted file mode 100644 index a1edbaa04a..0000000000 Binary files a/_darcs/patches/20080520212319-84dde-27601a4e11dd6a34834f4689c316dae594d8d7e8.gz and /dev/null differ diff --git a/_darcs/patches/20080521110253-84dde-e8d6f62225bb56f5e08b28b35d23ccfbe56984fd.gz b/_darcs/patches/20080521110253-84dde-e8d6f62225bb56f5e08b28b35d23ccfbe56984fd.gz deleted file mode 100644 index 00c70b0fe4..0000000000 Binary files a/_darcs/patches/20080521110253-84dde-e8d6f62225bb56f5e08b28b35d23ccfbe56984fd.gz and /dev/null differ diff --git a/_darcs/patches/20080521112707-84dde-38e27199b977ae81171b8391fbdb93ebb54494f9.gz b/_darcs/patches/20080521112707-84dde-38e27199b977ae81171b8391fbdb93ebb54494f9.gz deleted file mode 100644 index a02cdd32df..0000000000 Binary files a/_darcs/patches/20080521112707-84dde-38e27199b977ae81171b8391fbdb93ebb54494f9.gz and /dev/null differ diff --git a/_darcs/patches/20080521114624-84dde-c881b9be27b797d98c004d549d5d42f0e84e1cf9.gz b/_darcs/patches/20080521114624-84dde-c881b9be27b797d98c004d549d5d42f0e84e1cf9.gz deleted file mode 100644 index ba07c57155..0000000000 Binary files a/_darcs/patches/20080521114624-84dde-c881b9be27b797d98c004d549d5d42f0e84e1cf9.gz and /dev/null differ diff --git a/_darcs/patches/20080521115727-84dde-73b58873e08c936139bd63cffab0c30883c9f8a5.gz b/_darcs/patches/20080521115727-84dde-73b58873e08c936139bd63cffab0c30883c9f8a5.gz deleted file mode 100644 index 059e0a22f9..0000000000 Binary files a/_darcs/patches/20080521115727-84dde-73b58873e08c936139bd63cffab0c30883c9f8a5.gz and /dev/null differ diff --git a/_darcs/patches/20080521121307-84dde-1a2908c4bb85e9e9e55524f591ba02d38c8ecbc2.gz b/_darcs/patches/20080521121307-84dde-1a2908c4bb85e9e9e55524f591ba02d38c8ecbc2.gz deleted file mode 100644 index 98778dea21..0000000000 Binary files a/_darcs/patches/20080521121307-84dde-1a2908c4bb85e9e9e55524f591ba02d38c8ecbc2.gz and /dev/null differ diff --git a/_darcs/patches/20080521122604-84dde-bfcfe7b2a254f19ce56054f6e4c80317ed8aaf86.gz b/_darcs/patches/20080521122604-84dde-bfcfe7b2a254f19ce56054f6e4c80317ed8aaf86.gz deleted file mode 100644 index f7c4ecc885..0000000000 Binary files a/_darcs/patches/20080521122604-84dde-bfcfe7b2a254f19ce56054f6e4c80317ed8aaf86.gz and /dev/null differ diff --git a/_darcs/patches/20080521123106-84dde-2ad51d79df069cdba4102a4545640260bf5aa8b1.gz b/_darcs/patches/20080521123106-84dde-2ad51d79df069cdba4102a4545640260bf5aa8b1.gz deleted file mode 100644 index fbdc5e8cb4..0000000000 Binary files a/_darcs/patches/20080521123106-84dde-2ad51d79df069cdba4102a4545640260bf5aa8b1.gz and /dev/null differ diff --git a/_darcs/patches/20080521133951-84dde-9d7ebbcc90086e94d1b48b33dfadcc9169f0f183.gz b/_darcs/patches/20080521133951-84dde-9d7ebbcc90086e94d1b48b33dfadcc9169f0f183.gz deleted file mode 100644 index 682dc06083..0000000000 Binary files a/_darcs/patches/20080521133951-84dde-9d7ebbcc90086e94d1b48b33dfadcc9169f0f183.gz and /dev/null differ diff --git a/_darcs/patches/20080521134849-84dde-7201729e692bccfc9649fb30a1d21a47a5eb4259.gz b/_darcs/patches/20080521134849-84dde-7201729e692bccfc9649fb30a1d21a47a5eb4259.gz deleted file mode 100644 index d872efa109..0000000000 Binary files a/_darcs/patches/20080521134849-84dde-7201729e692bccfc9649fb30a1d21a47a5eb4259.gz and /dev/null differ diff --git a/_darcs/patches/20080521143351-84dde-d191761c399d7f014b990585c21e916e887b3401.gz b/_darcs/patches/20080521143351-84dde-d191761c399d7f014b990585c21e916e887b3401.gz deleted file mode 100644 index 53e6b57baf..0000000000 Binary files a/_darcs/patches/20080521143351-84dde-d191761c399d7f014b990585c21e916e887b3401.gz and /dev/null differ diff --git a/_darcs/patches/20080521145916-84dde-4a5e04edb1bdcdb5e33bed7497dcf93be88636f8.gz b/_darcs/patches/20080521145916-84dde-4a5e04edb1bdcdb5e33bed7497dcf93be88636f8.gz deleted file mode 100644 index 8d5a8f2aa5..0000000000 Binary files a/_darcs/patches/20080521145916-84dde-4a5e04edb1bdcdb5e33bed7497dcf93be88636f8.gz and /dev/null differ diff --git a/_darcs/patches/20080521151227-84dde-a4fdacd42dc9be7aa83646f589942931542da73f.gz b/_darcs/patches/20080521151227-84dde-a4fdacd42dc9be7aa83646f589942931542da73f.gz deleted file mode 100644 index 63b7eb7a7b..0000000000 Binary files a/_darcs/patches/20080521151227-84dde-a4fdacd42dc9be7aa83646f589942931542da73f.gz and /dev/null differ diff --git a/_darcs/patches/20080521152404-84dde-bc5a2121ca9acddca9ed43c07935f713cf5c0b8e.gz b/_darcs/patches/20080521152404-84dde-bc5a2121ca9acddca9ed43c07935f713cf5c0b8e.gz deleted file mode 100644 index 20a61fa0af..0000000000 Binary files a/_darcs/patches/20080521152404-84dde-bc5a2121ca9acddca9ed43c07935f713cf5c0b8e.gz and /dev/null differ diff --git a/_darcs/patches/20080521153652-84dde-cf442ce24e278fc7c6b072785a8d0677bbc63e85.gz b/_darcs/patches/20080521153652-84dde-cf442ce24e278fc7c6b072785a8d0677bbc63e85.gz deleted file mode 100644 index 8485261508..0000000000 Binary files a/_darcs/patches/20080521153652-84dde-cf442ce24e278fc7c6b072785a8d0677bbc63e85.gz and /dev/null differ diff --git a/_darcs/patches/20080521154234-84dde-e83305636b6bc2bb158db8588838c8b62b1b7af0.gz b/_darcs/patches/20080521154234-84dde-e83305636b6bc2bb158db8588838c8b62b1b7af0.gz deleted file mode 100644 index 785901e90f..0000000000 Binary files a/_darcs/patches/20080521154234-84dde-e83305636b6bc2bb158db8588838c8b62b1b7af0.gz and /dev/null differ diff --git a/_darcs/patches/20080521155448-84dde-0e71fe5dccea49162911f80c65cd1e2a46043b14.gz b/_darcs/patches/20080521155448-84dde-0e71fe5dccea49162911f80c65cd1e2a46043b14.gz deleted file mode 100644 index e00cb7f378..0000000000 Binary files a/_darcs/patches/20080521155448-84dde-0e71fe5dccea49162911f80c65cd1e2a46043b14.gz and /dev/null differ diff --git a/_darcs/patches/20080521155611-84dde-9e661052d5d2faaa1601c7e023ae086cbf5e3ca1.gz b/_darcs/patches/20080521155611-84dde-9e661052d5d2faaa1601c7e023ae086cbf5e3ca1.gz deleted file mode 100644 index becd48359a..0000000000 Binary files a/_darcs/patches/20080521155611-84dde-9e661052d5d2faaa1601c7e023ae086cbf5e3ca1.gz and /dev/null differ diff --git a/_darcs/patches/20080521155849-84dde-97b8533a4c70f8f2494632bbb3044bb103270098.gz b/_darcs/patches/20080521155849-84dde-97b8533a4c70f8f2494632bbb3044bb103270098.gz deleted file mode 100644 index 250074e014..0000000000 Binary files a/_darcs/patches/20080521155849-84dde-97b8533a4c70f8f2494632bbb3044bb103270098.gz and /dev/null differ diff --git a/_darcs/patches/20080521183645-84dde-45d943f0d2b784aac372244fcf7d7e62143a76cf.gz b/_darcs/patches/20080521183645-84dde-45d943f0d2b784aac372244fcf7d7e62143a76cf.gz deleted file mode 100644 index b66cd0b967..0000000000 Binary files a/_darcs/patches/20080521183645-84dde-45d943f0d2b784aac372244fcf7d7e62143a76cf.gz and /dev/null differ diff --git a/_darcs/patches/20080521185602-84dde-9e058c34c251d96cf557c1dd459523aa434bed79.gz b/_darcs/patches/20080521185602-84dde-9e058c34c251d96cf557c1dd459523aa434bed79.gz deleted file mode 100644 index 9081dcd50a..0000000000 Binary files a/_darcs/patches/20080521185602-84dde-9e058c34c251d96cf557c1dd459523aa434bed79.gz and /dev/null differ diff --git a/_darcs/patches/20080521190640-84dde-04fc00048b044474488e7774053674231c96e355.gz b/_darcs/patches/20080521190640-84dde-04fc00048b044474488e7774053674231c96e355.gz deleted file mode 100644 index bb943da794..0000000000 Binary files a/_darcs/patches/20080521190640-84dde-04fc00048b044474488e7774053674231c96e355.gz and /dev/null differ diff --git a/_darcs/patches/20080521191135-84dde-11f89c88ef526ff41bfc1d0d3bfe774f5796c2da.gz b/_darcs/patches/20080521191135-84dde-11f89c88ef526ff41bfc1d0d3bfe774f5796c2da.gz deleted file mode 100644 index 7591ccb589..0000000000 Binary files a/_darcs/patches/20080521191135-84dde-11f89c88ef526ff41bfc1d0d3bfe774f5796c2da.gz and /dev/null differ diff --git a/_darcs/patches/20080521192048-84dde-45745601b743798b205c56a7d7f018d8b020275e.gz b/_darcs/patches/20080521192048-84dde-45745601b743798b205c56a7d7f018d8b020275e.gz deleted file mode 100644 index 5d4f993768..0000000000 Binary files a/_darcs/patches/20080521192048-84dde-45745601b743798b205c56a7d7f018d8b020275e.gz and /dev/null differ diff --git a/_darcs/patches/20080521192912-84dde-4bea2a463bfb357b5688e0f8faccac622770ac95.gz b/_darcs/patches/20080521192912-84dde-4bea2a463bfb357b5688e0f8faccac622770ac95.gz deleted file mode 100644 index 087876651f..0000000000 Binary files a/_darcs/patches/20080521192912-84dde-4bea2a463bfb357b5688e0f8faccac622770ac95.gz and /dev/null differ diff --git a/_darcs/patches/20080521193452-84dde-a1553941833cf3f11c53a6f493ad2dae975cc168.gz b/_darcs/patches/20080521193452-84dde-a1553941833cf3f11c53a6f493ad2dae975cc168.gz deleted file mode 100644 index 54d3b9e620..0000000000 Binary files a/_darcs/patches/20080521193452-84dde-a1553941833cf3f11c53a6f493ad2dae975cc168.gz and /dev/null differ diff --git a/_darcs/patches/20080521194238-84dde-725c85aa8c24f9160649ee1fa65aab7bd051ae20.gz b/_darcs/patches/20080521194238-84dde-725c85aa8c24f9160649ee1fa65aab7bd051ae20.gz deleted file mode 100644 index 01b2b65731..0000000000 Binary files a/_darcs/patches/20080521194238-84dde-725c85aa8c24f9160649ee1fa65aab7bd051ae20.gz and /dev/null differ diff --git a/_darcs/patches/20080522103630-84dde-4f6d10b6e6efff91a53c4af735040995ae947211.gz b/_darcs/patches/20080522103630-84dde-4f6d10b6e6efff91a53c4af735040995ae947211.gz deleted file mode 100644 index b2ac5f5c82..0000000000 Binary files a/_darcs/patches/20080522103630-84dde-4f6d10b6e6efff91a53c4af735040995ae947211.gz and /dev/null differ diff --git a/_darcs/patches/20080522112954-84dde-aa5087977298f5169148383e82e22241e613b1f2.gz b/_darcs/patches/20080522112954-84dde-aa5087977298f5169148383e82e22241e613b1f2.gz deleted file mode 100644 index 295681d117..0000000000 Binary files a/_darcs/patches/20080522112954-84dde-aa5087977298f5169148383e82e22241e613b1f2.gz and /dev/null differ diff --git a/_darcs/patches/20080522114152-84dde-7e9b6f465829fc71391613c93df112a7956deffc.gz b/_darcs/patches/20080522114152-84dde-7e9b6f465829fc71391613c93df112a7956deffc.gz deleted file mode 100644 index 1618ffc1d4..0000000000 Binary files a/_darcs/patches/20080522114152-84dde-7e9b6f465829fc71391613c93df112a7956deffc.gz and /dev/null differ diff --git a/_darcs/patches/20080522114839-84dde-bdf5f244766b198932a068d6c80a667943a03f54.gz b/_darcs/patches/20080522114839-84dde-bdf5f244766b198932a068d6c80a667943a03f54.gz deleted file mode 100644 index a7bb562341..0000000000 Binary files a/_darcs/patches/20080522114839-84dde-bdf5f244766b198932a068d6c80a667943a03f54.gz and /dev/null differ diff --git a/_darcs/patches/20080522172006-84dde-060372ec90444faf0e3453229cfd33aceaf28e4a.gz b/_darcs/patches/20080522172006-84dde-060372ec90444faf0e3453229cfd33aceaf28e4a.gz deleted file mode 100644 index 5d94763dbd..0000000000 Binary files a/_darcs/patches/20080522172006-84dde-060372ec90444faf0e3453229cfd33aceaf28e4a.gz and /dev/null differ diff --git a/_darcs/patches/20080522172530-84dde-f2c7db710bfd877d83d9162c0698bddd709a455c.gz b/_darcs/patches/20080522172530-84dde-f2c7db710bfd877d83d9162c0698bddd709a455c.gz deleted file mode 100644 index d67dc188f3..0000000000 Binary files a/_darcs/patches/20080522172530-84dde-f2c7db710bfd877d83d9162c0698bddd709a455c.gz and /dev/null differ diff --git a/_darcs/patches/20080522172623-84dde-81f0da83f977503dbeb718b9c9c8017fb6479f04.gz b/_darcs/patches/20080522172623-84dde-81f0da83f977503dbeb718b9c9c8017fb6479f04.gz deleted file mode 100644 index 122be2d792..0000000000 Binary files a/_darcs/patches/20080522172623-84dde-81f0da83f977503dbeb718b9c9c8017fb6479f04.gz and /dev/null differ diff --git a/_darcs/patches/20080522183421-84dde-fe46f32e4050f2c4b6c850334103007ed7feabf7.gz b/_darcs/patches/20080522183421-84dde-fe46f32e4050f2c4b6c850334103007ed7feabf7.gz deleted file mode 100644 index 4d3dea3988..0000000000 Binary files a/_darcs/patches/20080522183421-84dde-fe46f32e4050f2c4b6c850334103007ed7feabf7.gz and /dev/null differ diff --git a/_darcs/patches/20080522184027-84dde-f6e53502335b5cd14bc1a2323b3f3eeb99b33cd4.gz b/_darcs/patches/20080522184027-84dde-f6e53502335b5cd14bc1a2323b3f3eeb99b33cd4.gz deleted file mode 100644 index f28a1bfa23..0000000000 Binary files a/_darcs/patches/20080522184027-84dde-f6e53502335b5cd14bc1a2323b3f3eeb99b33cd4.gz and /dev/null differ diff --git a/_darcs/patches/20080522184109-84dde-0d13fc6890f85613554f5dd64b1baa67bbcaa8f6.gz b/_darcs/patches/20080522184109-84dde-0d13fc6890f85613554f5dd64b1baa67bbcaa8f6.gz deleted file mode 100644 index 0e12b78f69..0000000000 Binary files a/_darcs/patches/20080522184109-84dde-0d13fc6890f85613554f5dd64b1baa67bbcaa8f6.gz and /dev/null differ diff --git a/_darcs/patches/20080522184434-84dde-0d698f3e34301c2a5600ce5e828db4402d070808.gz b/_darcs/patches/20080522184434-84dde-0d698f3e34301c2a5600ce5e828db4402d070808.gz deleted file mode 100644 index f3d91cb7dd..0000000000 Binary files a/_darcs/patches/20080522184434-84dde-0d698f3e34301c2a5600ce5e828db4402d070808.gz and /dev/null differ diff --git a/_darcs/patches/20080522185500-84dde-39a66d36d2c80ff57e2ab2d0274548770c4d06f7.gz b/_darcs/patches/20080522185500-84dde-39a66d36d2c80ff57e2ab2d0274548770c4d06f7.gz deleted file mode 100644 index 460dfbbc1b..0000000000 Binary files a/_darcs/patches/20080522185500-84dde-39a66d36d2c80ff57e2ab2d0274548770c4d06f7.gz and /dev/null differ diff --git a/_darcs/patches/20080522191028-84dde-802a85a8838bfe04347c172dc7c7df51367e11e6.gz b/_darcs/patches/20080522191028-84dde-802a85a8838bfe04347c172dc7c7df51367e11e6.gz deleted file mode 100644 index 5536badc7c..0000000000 Binary files a/_darcs/patches/20080522191028-84dde-802a85a8838bfe04347c172dc7c7df51367e11e6.gz and /dev/null differ diff --git a/_darcs/patches/20080522191436-84dde-a24bd6fa5e9d5fc9af03d64d199ad827c8eb38ec.gz b/_darcs/patches/20080522191436-84dde-a24bd6fa5e9d5fc9af03d64d199ad827c8eb38ec.gz deleted file mode 100644 index 0c409ac011..0000000000 Binary files a/_darcs/patches/20080522191436-84dde-a24bd6fa5e9d5fc9af03d64d199ad827c8eb38ec.gz and /dev/null differ diff --git a/_darcs/patches/20080526112700-84dde-b1800fb4a5ab830be065e736d2a74b742b7eb0f6.gz b/_darcs/patches/20080526112700-84dde-b1800fb4a5ab830be065e736d2a74b742b7eb0f6.gz deleted file mode 100644 index 9df7874f8b..0000000000 Binary files a/_darcs/patches/20080526112700-84dde-b1800fb4a5ab830be065e736d2a74b742b7eb0f6.gz and /dev/null differ diff --git a/_darcs/patches/20080526130328-84dde-1c31294e251f22d197be95fcf113d2e05b2d6219.gz b/_darcs/patches/20080526130328-84dde-1c31294e251f22d197be95fcf113d2e05b2d6219.gz deleted file mode 100644 index cf4d8ba139..0000000000 Binary files a/_darcs/patches/20080526130328-84dde-1c31294e251f22d197be95fcf113d2e05b2d6219.gz and /dev/null differ diff --git a/_darcs/patches/20080526131551-84dde-ab31c6cbfe2bce62aa1573ad9be9a916984e37b3.gz b/_darcs/patches/20080526131551-84dde-ab31c6cbfe2bce62aa1573ad9be9a916984e37b3.gz deleted file mode 100644 index 978cb44503..0000000000 Binary files a/_darcs/patches/20080526131551-84dde-ab31c6cbfe2bce62aa1573ad9be9a916984e37b3.gz and /dev/null differ diff --git a/_darcs/patches/20080526131953-84dde-95770739bc0c5ea45efbc8b831c11448ea5d4b32.gz b/_darcs/patches/20080526131953-84dde-95770739bc0c5ea45efbc8b831c11448ea5d4b32.gz deleted file mode 100644 index 35930045f7..0000000000 Binary files a/_darcs/patches/20080526131953-84dde-95770739bc0c5ea45efbc8b831c11448ea5d4b32.gz and /dev/null differ diff --git a/_darcs/patches/20080526151332-84dde-286a22536e3b9168199200a7226cedd7b26dd073.gz b/_darcs/patches/20080526151332-84dde-286a22536e3b9168199200a7226cedd7b26dd073.gz deleted file mode 100644 index 7185659013..0000000000 Binary files a/_darcs/patches/20080526151332-84dde-286a22536e3b9168199200a7226cedd7b26dd073.gz and /dev/null differ diff --git a/_darcs/patches/20080527114219-84dde-784ddf4d4650c17bc7a1e3e01219c6948dfc9b3d.gz b/_darcs/patches/20080527114219-84dde-784ddf4d4650c17bc7a1e3e01219c6948dfc9b3d.gz deleted file mode 100644 index 7ae52cc107..0000000000 Binary files a/_darcs/patches/20080527114219-84dde-784ddf4d4650c17bc7a1e3e01219c6948dfc9b3d.gz and /dev/null differ diff --git a/_darcs/patches/20080527200721-84dde-308c047af2ebc2c4d753c1e1e24af20fef862a7e.gz b/_darcs/patches/20080527200721-84dde-308c047af2ebc2c4d753c1e1e24af20fef862a7e.gz deleted file mode 100644 index 536ab8d7a3..0000000000 Binary files a/_darcs/patches/20080527200721-84dde-308c047af2ebc2c4d753c1e1e24af20fef862a7e.gz and /dev/null differ diff --git a/_darcs/patches/20080528134804-84dde-994624cc82941094719670f78212c391127cc9a6.gz b/_darcs/patches/20080528134804-84dde-994624cc82941094719670f78212c391127cc9a6.gz deleted file mode 100644 index 3436aa813c..0000000000 Binary files a/_darcs/patches/20080528134804-84dde-994624cc82941094719670f78212c391127cc9a6.gz and /dev/null differ diff --git a/_darcs/patches/20080528140321-84dde-2dbeb6032e845a23bb1adde1cbc1788333b55156.gz b/_darcs/patches/20080528140321-84dde-2dbeb6032e845a23bb1adde1cbc1788333b55156.gz deleted file mode 100644 index 4cacca974a..0000000000 Binary files a/_darcs/patches/20080528140321-84dde-2dbeb6032e845a23bb1adde1cbc1788333b55156.gz and /dev/null differ diff --git a/_darcs/patches/20080528141432-84dde-df546c7e7d79cb753934cdb002859587b7ed2a81.gz b/_darcs/patches/20080528141432-84dde-df546c7e7d79cb753934cdb002859587b7ed2a81.gz deleted file mode 100644 index 8afa4a0d02..0000000000 Binary files a/_darcs/patches/20080528141432-84dde-df546c7e7d79cb753934cdb002859587b7ed2a81.gz and /dev/null differ diff --git a/_darcs/patches/20080528141555-84dde-deeaf974426d353c6e7573e5c532823001639f36.gz b/_darcs/patches/20080528141555-84dde-deeaf974426d353c6e7573e5c532823001639f36.gz deleted file mode 100644 index 181f73872c..0000000000 Binary files a/_darcs/patches/20080528141555-84dde-deeaf974426d353c6e7573e5c532823001639f36.gz and /dev/null differ diff --git a/_darcs/patches/20080528143030-84dde-c698588b2db9e36a576c402ba685b5d205396948.gz b/_darcs/patches/20080528143030-84dde-c698588b2db9e36a576c402ba685b5d205396948.gz deleted file mode 100644 index 720866407d..0000000000 Binary files a/_darcs/patches/20080528143030-84dde-c698588b2db9e36a576c402ba685b5d205396948.gz and /dev/null differ diff --git a/_darcs/patches/20080528144202-84dde-d0f15e4ad4c840816bfadf3b1b57faecdfd401b2.gz b/_darcs/patches/20080528144202-84dde-d0f15e4ad4c840816bfadf3b1b57faecdfd401b2.gz deleted file mode 100644 index c93e17bdab..0000000000 Binary files a/_darcs/patches/20080528144202-84dde-d0f15e4ad4c840816bfadf3b1b57faecdfd401b2.gz and /dev/null differ diff --git a/_darcs/patches/20080528164222-84dde-20fa91371bcd0116e8d38bb90e221b3edbc2179a.gz b/_darcs/patches/20080528164222-84dde-20fa91371bcd0116e8d38bb90e221b3edbc2179a.gz deleted file mode 100644 index bc1f8639bd..0000000000 Binary files a/_darcs/patches/20080528164222-84dde-20fa91371bcd0116e8d38bb90e221b3edbc2179a.gz and /dev/null differ diff --git a/_darcs/patches/20080528170438-84dde-90edcb9248823988f70d8dbedf9a694a7bb732f5.gz b/_darcs/patches/20080528170438-84dde-90edcb9248823988f70d8dbedf9a694a7bb732f5.gz deleted file mode 100644 index 747e16de93..0000000000 Binary files a/_darcs/patches/20080528170438-84dde-90edcb9248823988f70d8dbedf9a694a7bb732f5.gz and /dev/null differ diff --git a/_darcs/patches/20080528170556-84dde-5dd6fe94b31e2fb4387f0c7e8775122bd5c4965b.gz b/_darcs/patches/20080528170556-84dde-5dd6fe94b31e2fb4387f0c7e8775122bd5c4965b.gz deleted file mode 100644 index 254e424bd2..0000000000 Binary files a/_darcs/patches/20080528170556-84dde-5dd6fe94b31e2fb4387f0c7e8775122bd5c4965b.gz and /dev/null differ diff --git a/_darcs/patches/20080528170752-84dde-86f5965c108fffe703e62bd42f6bd0eda22f1931.gz b/_darcs/patches/20080528170752-84dde-86f5965c108fffe703e62bd42f6bd0eda22f1931.gz deleted file mode 100644 index d42cb30b71..0000000000 Binary files a/_darcs/patches/20080528170752-84dde-86f5965c108fffe703e62bd42f6bd0eda22f1931.gz and /dev/null differ diff --git a/_darcs/patches/20080528171012-84dde-bf66fac5e9ca78881d3d3dfd08d76b22aeb84a2f.gz b/_darcs/patches/20080528171012-84dde-bf66fac5e9ca78881d3d3dfd08d76b22aeb84a2f.gz deleted file mode 100644 index 4324f7ff3a..0000000000 Binary files a/_darcs/patches/20080528171012-84dde-bf66fac5e9ca78881d3d3dfd08d76b22aeb84a2f.gz and /dev/null differ diff --git a/_darcs/patches/20080528171232-84dde-3a8155054dacf2859c5544bfa8bc05c46e2115f7.gz b/_darcs/patches/20080528171232-84dde-3a8155054dacf2859c5544bfa8bc05c46e2115f7.gz deleted file mode 100644 index 6cd8ea4268..0000000000 Binary files a/_darcs/patches/20080528171232-84dde-3a8155054dacf2859c5544bfa8bc05c46e2115f7.gz and /dev/null differ diff --git a/_darcs/patches/20080528171434-84dde-5e0e37212b9de9809fd40304d31f9c8d08450ed0.gz b/_darcs/patches/20080528171434-84dde-5e0e37212b9de9809fd40304d31f9c8d08450ed0.gz deleted file mode 100644 index 04cd0f6dff..0000000000 Binary files a/_darcs/patches/20080528171434-84dde-5e0e37212b9de9809fd40304d31f9c8d08450ed0.gz and /dev/null differ diff --git a/_darcs/patches/20080528171543-84dde-3a2ef0070d8c6a64bda036db5a1efde185f78b80.gz b/_darcs/patches/20080528171543-84dde-3a2ef0070d8c6a64bda036db5a1efde185f78b80.gz deleted file mode 100644 index bba18babae..0000000000 Binary files a/_darcs/patches/20080528171543-84dde-3a2ef0070d8c6a64bda036db5a1efde185f78b80.gz and /dev/null differ diff --git a/_darcs/patches/20080528171626-84dde-860eb9185838f11ae7e68d5381ff3d26a0b71829.gz b/_darcs/patches/20080528171626-84dde-860eb9185838f11ae7e68d5381ff3d26a0b71829.gz deleted file mode 100644 index f627c7d075..0000000000 Binary files a/_darcs/patches/20080528171626-84dde-860eb9185838f11ae7e68d5381ff3d26a0b71829.gz and /dev/null differ diff --git a/_darcs/patches/20080528171758-84dde-6121afedbce9bbecea09386e347aa3d1c85c8f44.gz b/_darcs/patches/20080528171758-84dde-6121afedbce9bbecea09386e347aa3d1c85c8f44.gz deleted file mode 100644 index d6b01fb883..0000000000 Binary files a/_darcs/patches/20080528171758-84dde-6121afedbce9bbecea09386e347aa3d1c85c8f44.gz and /dev/null differ diff --git a/_darcs/patches/20080528171944-84dde-9de7d48ed96a7bd763a1720a472db1e7a7246000.gz b/_darcs/patches/20080528171944-84dde-9de7d48ed96a7bd763a1720a472db1e7a7246000.gz deleted file mode 100644 index 405ea28bca..0000000000 Binary files a/_darcs/patches/20080528171944-84dde-9de7d48ed96a7bd763a1720a472db1e7a7246000.gz and /dev/null differ diff --git a/_darcs/patches/20080528172041-84dde-afe59aa8a36d72bca5294c9919186b1ab3db268f.gz b/_darcs/patches/20080528172041-84dde-afe59aa8a36d72bca5294c9919186b1ab3db268f.gz deleted file mode 100644 index b56666ba09..0000000000 Binary files a/_darcs/patches/20080528172041-84dde-afe59aa8a36d72bca5294c9919186b1ab3db268f.gz and /dev/null differ diff --git a/_darcs/patches/20080528172149-84dde-5ccf267e5b97ad403cf87f4339258f3dda051728.gz b/_darcs/patches/20080528172149-84dde-5ccf267e5b97ad403cf87f4339258f3dda051728.gz deleted file mode 100644 index c1e50f7774..0000000000 Binary files a/_darcs/patches/20080528172149-84dde-5ccf267e5b97ad403cf87f4339258f3dda051728.gz and /dev/null differ diff --git a/_darcs/patches/20080528173129-84dde-8f0537b20173afa895aeb76e503d76cc24fdae41.gz b/_darcs/patches/20080528173129-84dde-8f0537b20173afa895aeb76e503d76cc24fdae41.gz deleted file mode 100644 index b34c2c29ed..0000000000 Binary files a/_darcs/patches/20080528173129-84dde-8f0537b20173afa895aeb76e503d76cc24fdae41.gz and /dev/null differ diff --git a/_darcs/patches/20080528173231-84dde-0fb59cf9ea19f025a2c840b44cf8d337c00231a3.gz b/_darcs/patches/20080528173231-84dde-0fb59cf9ea19f025a2c840b44cf8d337c00231a3.gz deleted file mode 100644 index 69e13e8ee0..0000000000 Binary files a/_darcs/patches/20080528173231-84dde-0fb59cf9ea19f025a2c840b44cf8d337c00231a3.gz and /dev/null differ diff --git a/_darcs/patches/20080528173417-84dde-033ab1f9a30c1b19c1f2b5a5b6ea652d94c226e7.gz b/_darcs/patches/20080528173417-84dde-033ab1f9a30c1b19c1f2b5a5b6ea652d94c226e7.gz deleted file mode 100644 index 99afe4f104..0000000000 Binary files a/_darcs/patches/20080528173417-84dde-033ab1f9a30c1b19c1f2b5a5b6ea652d94c226e7.gz and /dev/null differ diff --git a/_darcs/patches/20080528173917-84dde-b623d152de415de3790673b8a4eaafb584b23752.gz b/_darcs/patches/20080528173917-84dde-b623d152de415de3790673b8a4eaafb584b23752.gz deleted file mode 100644 index 802e491c8b..0000000000 Binary files a/_darcs/patches/20080528173917-84dde-b623d152de415de3790673b8a4eaafb584b23752.gz and /dev/null differ diff --git a/_darcs/patches/20080528174247-84dde-8b5e4cf4a750c25164bde2ee54a2178a9107dc11.gz b/_darcs/patches/20080528174247-84dde-8b5e4cf4a750c25164bde2ee54a2178a9107dc11.gz deleted file mode 100644 index d8d98f7506..0000000000 Binary files a/_darcs/patches/20080528174247-84dde-8b5e4cf4a750c25164bde2ee54a2178a9107dc11.gz and /dev/null differ diff --git a/_darcs/patches/20080528174412-84dde-4f4e39c1a4ad36dcbf06f022936a91ebf4955c52.gz b/_darcs/patches/20080528174412-84dde-4f4e39c1a4ad36dcbf06f022936a91ebf4955c52.gz deleted file mode 100644 index 3b6cd40991..0000000000 Binary files a/_darcs/patches/20080528174412-84dde-4f4e39c1a4ad36dcbf06f022936a91ebf4955c52.gz and /dev/null differ diff --git a/_darcs/patches/20080528174621-84dde-41b0575e8a937aa8504a67edde66a8fb84222304.gz b/_darcs/patches/20080528174621-84dde-41b0575e8a937aa8504a67edde66a8fb84222304.gz deleted file mode 100644 index 00f7728b0e..0000000000 Binary files a/_darcs/patches/20080528174621-84dde-41b0575e8a937aa8504a67edde66a8fb84222304.gz and /dev/null differ diff --git a/_darcs/patches/20080528174807-84dde-88318f09f55ec55f5f3c8933943edc7b4504a496.gz b/_darcs/patches/20080528174807-84dde-88318f09f55ec55f5f3c8933943edc7b4504a496.gz deleted file mode 100644 index 3413fd1161..0000000000 Binary files a/_darcs/patches/20080528174807-84dde-88318f09f55ec55f5f3c8933943edc7b4504a496.gz and /dev/null differ diff --git a/_darcs/patches/20080528174924-84dde-ed785a6704ed3ba402091f7f5539d5ced5756d69.gz b/_darcs/patches/20080528174924-84dde-ed785a6704ed3ba402091f7f5539d5ced5756d69.gz deleted file mode 100644 index 0c87881e93..0000000000 Binary files a/_darcs/patches/20080528174924-84dde-ed785a6704ed3ba402091f7f5539d5ced5756d69.gz and /dev/null differ diff --git a/_darcs/patches/20080528182707-84dde-5f15e83a1243ec29a890b3b258163d07db5fc329.gz b/_darcs/patches/20080528182707-84dde-5f15e83a1243ec29a890b3b258163d07db5fc329.gz deleted file mode 100644 index 08174c50ce..0000000000 Binary files a/_darcs/patches/20080528182707-84dde-5f15e83a1243ec29a890b3b258163d07db5fc329.gz and /dev/null differ diff --git a/_darcs/patches/20080528183022-84dde-f5362f0284be4969e930d93408bdb9d5dec1488c.gz b/_darcs/patches/20080528183022-84dde-f5362f0284be4969e930d93408bdb9d5dec1488c.gz deleted file mode 100644 index 6062ea17bf..0000000000 Binary files a/_darcs/patches/20080528183022-84dde-f5362f0284be4969e930d93408bdb9d5dec1488c.gz and /dev/null differ diff --git a/_darcs/patches/20080528183709-84dde-f6acf1d61590f2faf1d112fac3d0d0194d648403.gz b/_darcs/patches/20080528183709-84dde-f6acf1d61590f2faf1d112fac3d0d0194d648403.gz deleted file mode 100644 index c5033f5501..0000000000 Binary files a/_darcs/patches/20080528183709-84dde-f6acf1d61590f2faf1d112fac3d0d0194d648403.gz and /dev/null differ diff --git a/_darcs/patches/20080528185637-84dde-40919f110bf90de1fb927cacf44f4ab0a7c75475.gz b/_darcs/patches/20080528185637-84dde-40919f110bf90de1fb927cacf44f4ab0a7c75475.gz deleted file mode 100644 index 8f9a75875a..0000000000 Binary files a/_darcs/patches/20080528185637-84dde-40919f110bf90de1fb927cacf44f4ab0a7c75475.gz and /dev/null differ diff --git a/_darcs/patches/20080528193121-84dde-a46435df24aba369a1011feaf5be865795ed6c25.gz b/_darcs/patches/20080528193121-84dde-a46435df24aba369a1011feaf5be865795ed6c25.gz deleted file mode 100644 index 81022b2649..0000000000 Binary files a/_darcs/patches/20080528193121-84dde-a46435df24aba369a1011feaf5be865795ed6c25.gz and /dev/null differ diff --git a/_darcs/patches/20080529151317-84dde-046fffcfacea163bf14d5a0ee6838581e3a9ebe4.gz b/_darcs/patches/20080529151317-84dde-046fffcfacea163bf14d5a0ee6838581e3a9ebe4.gz deleted file mode 100644 index 29f3b31c70..0000000000 Binary files a/_darcs/patches/20080529151317-84dde-046fffcfacea163bf14d5a0ee6838581e3a9ebe4.gz and /dev/null differ diff --git a/_darcs/patches/20080529151602-84dde-f6bc3c41846d92c94008f721fa5115907fd9a7d3.gz b/_darcs/patches/20080529151602-84dde-f6bc3c41846d92c94008f721fa5115907fd9a7d3.gz deleted file mode 100644 index b695f2bb6c..0000000000 Binary files a/_darcs/patches/20080529151602-84dde-f6bc3c41846d92c94008f721fa5115907fd9a7d3.gz and /dev/null differ diff --git a/_darcs/patches/20080529152304-84dde-b0b0ea1f919701c2d821d9bf589a30db34dcc015.gz b/_darcs/patches/20080529152304-84dde-b0b0ea1f919701c2d821d9bf589a30db34dcc015.gz deleted file mode 100644 index 75a3dc4be5..0000000000 Binary files a/_darcs/patches/20080529152304-84dde-b0b0ea1f919701c2d821d9bf589a30db34dcc015.gz and /dev/null differ diff --git a/_darcs/patches/20080529163508-84dde-1213ebe19275ce354b218dbeb5d81f18e6db4769.gz b/_darcs/patches/20080529163508-84dde-1213ebe19275ce354b218dbeb5d81f18e6db4769.gz deleted file mode 100644 index 1358b656bb..0000000000 Binary files a/_darcs/patches/20080529163508-84dde-1213ebe19275ce354b218dbeb5d81f18e6db4769.gz and /dev/null differ diff --git a/_darcs/patches/20080529164139-84dde-85f6b27707af4c2f00f0d62c2fe4e209ab353e57.gz b/_darcs/patches/20080529164139-84dde-85f6b27707af4c2f00f0d62c2fe4e209ab353e57.gz deleted file mode 100644 index 4f9f00f5ac..0000000000 Binary files a/_darcs/patches/20080529164139-84dde-85f6b27707af4c2f00f0d62c2fe4e209ab353e57.gz and /dev/null differ diff --git a/_darcs/patches/20080529164411-84dde-1a54ecf1e6acec0e9a6105b8a7e68af2d1c18846.gz b/_darcs/patches/20080529164411-84dde-1a54ecf1e6acec0e9a6105b8a7e68af2d1c18846.gz deleted file mode 100644 index 0bae5fb05a..0000000000 Binary files a/_darcs/patches/20080529164411-84dde-1a54ecf1e6acec0e9a6105b8a7e68af2d1c18846.gz and /dev/null differ diff --git a/_darcs/patches/20080529170801-84dde-765f70013696c46bee65bf1408ff4a0b379711d7.gz b/_darcs/patches/20080529170801-84dde-765f70013696c46bee65bf1408ff4a0b379711d7.gz deleted file mode 100644 index af06a16c45..0000000000 Binary files a/_darcs/patches/20080529170801-84dde-765f70013696c46bee65bf1408ff4a0b379711d7.gz and /dev/null differ diff --git a/_darcs/patches/20080529171604-84dde-63bf0f261fe340df7bfec22a0b64daf2ca42615e.gz b/_darcs/patches/20080529171604-84dde-63bf0f261fe340df7bfec22a0b64daf2ca42615e.gz deleted file mode 100644 index 29b8868830..0000000000 Binary files a/_darcs/patches/20080529171604-84dde-63bf0f261fe340df7bfec22a0b64daf2ca42615e.gz and /dev/null differ diff --git a/_darcs/patches/20080529171853-84dde-3c7239cfb22c85b67946787e3cabf5a7583a8d4d.gz b/_darcs/patches/20080529171853-84dde-3c7239cfb22c85b67946787e3cabf5a7583a8d4d.gz deleted file mode 100644 index ffd07db4fd..0000000000 Binary files a/_darcs/patches/20080529171853-84dde-3c7239cfb22c85b67946787e3cabf5a7583a8d4d.gz and /dev/null differ diff --git a/_darcs/patches/20080529172107-84dde-5c4fd44c49340e1ef478e1582776a0310365e479.gz b/_darcs/patches/20080529172107-84dde-5c4fd44c49340e1ef478e1582776a0310365e479.gz deleted file mode 100644 index 423b222159..0000000000 Binary files a/_darcs/patches/20080529172107-84dde-5c4fd44c49340e1ef478e1582776a0310365e479.gz and /dev/null differ diff --git a/_darcs/patches/20080529172205-84dde-7f4fe045ae9bd93b501087a96dea61914f6eb05f.gz b/_darcs/patches/20080529172205-84dde-7f4fe045ae9bd93b501087a96dea61914f6eb05f.gz deleted file mode 100644 index 5ad1b2d01d..0000000000 Binary files a/_darcs/patches/20080529172205-84dde-7f4fe045ae9bd93b501087a96dea61914f6eb05f.gz and /dev/null differ diff --git a/_darcs/patches/20080529172258-84dde-5c413413103946838aaeed249019f168e8f5b601.gz b/_darcs/patches/20080529172258-84dde-5c413413103946838aaeed249019f168e8f5b601.gz deleted file mode 100644 index 70a3fc392f..0000000000 Binary files a/_darcs/patches/20080529172258-84dde-5c413413103946838aaeed249019f168e8f5b601.gz and /dev/null differ diff --git a/_darcs/patches/20080529172549-84dde-12c79e34baa6a19938350447f5939fb25febea21.gz b/_darcs/patches/20080529172549-84dde-12c79e34baa6a19938350447f5939fb25febea21.gz deleted file mode 100644 index 8dafde0346..0000000000 Binary files a/_darcs/patches/20080529172549-84dde-12c79e34baa6a19938350447f5939fb25febea21.gz and /dev/null differ diff --git a/_darcs/patches/20080529173234-84dde-7b1e8fa0af993edd74b11f88bdfbc24e970298a7.gz b/_darcs/patches/20080529173234-84dde-7b1e8fa0af993edd74b11f88bdfbc24e970298a7.gz deleted file mode 100644 index d02c91a5e9..0000000000 Binary files a/_darcs/patches/20080529173234-84dde-7b1e8fa0af993edd74b11f88bdfbc24e970298a7.gz and /dev/null differ diff --git a/_darcs/patches/20080529173400-84dde-f0883200a6dac50a3d9022cef82816339f9dd84c.gz b/_darcs/patches/20080529173400-84dde-f0883200a6dac50a3d9022cef82816339f9dd84c.gz deleted file mode 100644 index 614c7cb8cd..0000000000 Binary files a/_darcs/patches/20080529173400-84dde-f0883200a6dac50a3d9022cef82816339f9dd84c.gz and /dev/null differ diff --git a/_darcs/patches/20080529173527-84dde-968857bab4df3f26d8d135b00991838aa78210c0.gz b/_darcs/patches/20080529173527-84dde-968857bab4df3f26d8d135b00991838aa78210c0.gz deleted file mode 100644 index ca7d06f70b..0000000000 Binary files a/_darcs/patches/20080529173527-84dde-968857bab4df3f26d8d135b00991838aa78210c0.gz and /dev/null differ diff --git a/_darcs/patches/20080529173635-84dde-8152ddcd07e094f5478a470f5b1a3ea28ce5421e.gz b/_darcs/patches/20080529173635-84dde-8152ddcd07e094f5478a470f5b1a3ea28ce5421e.gz deleted file mode 100644 index 8470d92928..0000000000 Binary files a/_darcs/patches/20080529173635-84dde-8152ddcd07e094f5478a470f5b1a3ea28ce5421e.gz and /dev/null differ diff --git a/_darcs/patches/20080529181244-84dde-6b51042c5c92581d8aecfbb83630646afc078793.gz b/_darcs/patches/20080529181244-84dde-6b51042c5c92581d8aecfbb83630646afc078793.gz deleted file mode 100644 index 12c1b1fb1d..0000000000 Binary files a/_darcs/patches/20080529181244-84dde-6b51042c5c92581d8aecfbb83630646afc078793.gz and /dev/null differ diff --git a/_darcs/patches/20080529181321-84dde-ed6ab6e839787cacc82681617b152106150839aa.gz b/_darcs/patches/20080529181321-84dde-ed6ab6e839787cacc82681617b152106150839aa.gz deleted file mode 100644 index 0edb9cdf6c..0000000000 Binary files a/_darcs/patches/20080529181321-84dde-ed6ab6e839787cacc82681617b152106150839aa.gz and /dev/null differ diff --git a/_darcs/patches/20080529181549-84dde-bd4ce6c6101268a95aa95a8727c7aaa96f96cac3.gz b/_darcs/patches/20080529181549-84dde-bd4ce6c6101268a95aa95a8727c7aaa96f96cac3.gz deleted file mode 100644 index 30cee1405e..0000000000 Binary files a/_darcs/patches/20080529181549-84dde-bd4ce6c6101268a95aa95a8727c7aaa96f96cac3.gz and /dev/null differ diff --git a/_darcs/patches/20080529181623-84dde-90c4ce5306cdc9df2696064184aec122083519c8.gz b/_darcs/patches/20080529181623-84dde-90c4ce5306cdc9df2696064184aec122083519c8.gz deleted file mode 100644 index 1e8c203656..0000000000 Binary files a/_darcs/patches/20080529181623-84dde-90c4ce5306cdc9df2696064184aec122083519c8.gz and /dev/null differ diff --git a/_darcs/patches/20080529181942-84dde-60f2e659d4d67f085e4f8bc9a1c06753cf4b8924.gz b/_darcs/patches/20080529181942-84dde-60f2e659d4d67f085e4f8bc9a1c06753cf4b8924.gz deleted file mode 100644 index 7dee88c84a..0000000000 Binary files a/_darcs/patches/20080529181942-84dde-60f2e659d4d67f085e4f8bc9a1c06753cf4b8924.gz and /dev/null differ diff --git a/_darcs/patches/20080529182026-84dde-b4ac5b6326476e6913683149db32f1ff46283127.gz b/_darcs/patches/20080529182026-84dde-b4ac5b6326476e6913683149db32f1ff46283127.gz deleted file mode 100644 index 1d5b10df88..0000000000 Binary files a/_darcs/patches/20080529182026-84dde-b4ac5b6326476e6913683149db32f1ff46283127.gz and /dev/null differ diff --git a/_darcs/patches/20080529182725-84dde-aa343a6ecd3c6ac79adcd96198d1f18b6c56cb79.gz b/_darcs/patches/20080529182725-84dde-aa343a6ecd3c6ac79adcd96198d1f18b6c56cb79.gz deleted file mode 100644 index 0cbb308214..0000000000 Binary files a/_darcs/patches/20080529182725-84dde-aa343a6ecd3c6ac79adcd96198d1f18b6c56cb79.gz and /dev/null differ diff --git a/_darcs/patches/20080529182754-84dde-b5b0d1094b586602e62828995d75d8697ea52cbf.gz b/_darcs/patches/20080529182754-84dde-b5b0d1094b586602e62828995d75d8697ea52cbf.gz deleted file mode 100644 index 5807a94c79..0000000000 Binary files a/_darcs/patches/20080529182754-84dde-b5b0d1094b586602e62828995d75d8697ea52cbf.gz and /dev/null differ diff --git a/_darcs/patches/20080529190702-84dde-ef753ca1864b13e4c2ae0ebbd683c4f593f2f1f0.gz b/_darcs/patches/20080529190702-84dde-ef753ca1864b13e4c2ae0ebbd683c4f593f2f1f0.gz deleted file mode 100644 index 2cfedfd433..0000000000 Binary files a/_darcs/patches/20080529190702-84dde-ef753ca1864b13e4c2ae0ebbd683c4f593f2f1f0.gz and /dev/null differ diff --git a/_darcs/patches/20080529190743-84dde-849369c3c48006aaf6fcc523c9a952ea5d5bd999.gz b/_darcs/patches/20080529190743-84dde-849369c3c48006aaf6fcc523c9a952ea5d5bd999.gz deleted file mode 100644 index 03b3d56c38..0000000000 Binary files a/_darcs/patches/20080529190743-84dde-849369c3c48006aaf6fcc523c9a952ea5d5bd999.gz and /dev/null differ diff --git a/_darcs/patches/20080529192112-84dde-7de629e1d5449bb42539c10ef567e94322f97a38.gz b/_darcs/patches/20080529192112-84dde-7de629e1d5449bb42539c10ef567e94322f97a38.gz deleted file mode 100644 index 07c5a3250c..0000000000 Binary files a/_darcs/patches/20080529192112-84dde-7de629e1d5449bb42539c10ef567e94322f97a38.gz and /dev/null differ diff --git a/_darcs/patches/20080529192510-84dde-eedf578cb3cb06dd019b8a613192adb467cfab4a.gz b/_darcs/patches/20080529192510-84dde-eedf578cb3cb06dd019b8a613192adb467cfab4a.gz deleted file mode 100644 index 82fa111713..0000000000 Binary files a/_darcs/patches/20080529192510-84dde-eedf578cb3cb06dd019b8a613192adb467cfab4a.gz and /dev/null differ diff --git a/_darcs/patches/20080530142324-84dde-782c9f04f551447514f1557b9e80f8461a17771f.gz b/_darcs/patches/20080530142324-84dde-782c9f04f551447514f1557b9e80f8461a17771f.gz deleted file mode 100644 index a6554f60e2..0000000000 Binary files a/_darcs/patches/20080530142324-84dde-782c9f04f551447514f1557b9e80f8461a17771f.gz and /dev/null differ diff --git a/_darcs/patches/20080530162429-84dde-12336814d3a01b4937ab574741fa4987484be62d.gz b/_darcs/patches/20080530162429-84dde-12336814d3a01b4937ab574741fa4987484be62d.gz deleted file mode 100644 index 92b3c7b7f2..0000000000 Binary files a/_darcs/patches/20080530162429-84dde-12336814d3a01b4937ab574741fa4987484be62d.gz and /dev/null differ diff --git a/_darcs/patches/20080530174310-84dde-1e05966eb48573ced8e73acf3f3b59e7bc4f1170.gz b/_darcs/patches/20080530174310-84dde-1e05966eb48573ced8e73acf3f3b59e7bc4f1170.gz deleted file mode 100644 index facca2025d..0000000000 Binary files a/_darcs/patches/20080530174310-84dde-1e05966eb48573ced8e73acf3f3b59e7bc4f1170.gz and /dev/null differ diff --git a/_darcs/patches/20080530174616-84dde-8a7c90c83c04cd07d6dcbe2795dde03dbc63c0f2.gz b/_darcs/patches/20080530174616-84dde-8a7c90c83c04cd07d6dcbe2795dde03dbc63c0f2.gz deleted file mode 100644 index 3e17a55f84..0000000000 Binary files a/_darcs/patches/20080530174616-84dde-8a7c90c83c04cd07d6dcbe2795dde03dbc63c0f2.gz and /dev/null differ diff --git a/_darcs/patches/20080530175055-84dde-f0e231b4efc30a59d6111b749eb8340116be9f92.gz b/_darcs/patches/20080530175055-84dde-f0e231b4efc30a59d6111b749eb8340116be9f92.gz deleted file mode 100644 index 60e5a90305..0000000000 Binary files a/_darcs/patches/20080530175055-84dde-f0e231b4efc30a59d6111b749eb8340116be9f92.gz and /dev/null differ diff --git a/_darcs/patches/20080530175235-84dde-0eda227cdd5a8c3b5e20ba12dbedbfc9aba269f3.gz b/_darcs/patches/20080530175235-84dde-0eda227cdd5a8c3b5e20ba12dbedbfc9aba269f3.gz deleted file mode 100644 index 60f85b8725..0000000000 Binary files a/_darcs/patches/20080530175235-84dde-0eda227cdd5a8c3b5e20ba12dbedbfc9aba269f3.gz and /dev/null differ diff --git a/_darcs/patches/20080530175436-84dde-e55601349cf83ea504924ea3d3733cccf75838e4.gz b/_darcs/patches/20080530175436-84dde-e55601349cf83ea504924ea3d3733cccf75838e4.gz deleted file mode 100644 index 1d876b6018..0000000000 Binary files a/_darcs/patches/20080530175436-84dde-e55601349cf83ea504924ea3d3733cccf75838e4.gz and /dev/null differ diff --git a/_darcs/patches/20080530181029-84dde-58de78ad1bef7a5c540a0315470bc24ddc59b04b.gz b/_darcs/patches/20080530181029-84dde-58de78ad1bef7a5c540a0315470bc24ddc59b04b.gz deleted file mode 100644 index d151545bda..0000000000 Binary files a/_darcs/patches/20080530181029-84dde-58de78ad1bef7a5c540a0315470bc24ddc59b04b.gz and /dev/null differ diff --git a/_darcs/patches/20080530181103-84dde-55eb7fce80ae6a11639ec9748c0d02f7f72cbc4d.gz b/_darcs/patches/20080530181103-84dde-55eb7fce80ae6a11639ec9748c0d02f7f72cbc4d.gz deleted file mode 100644 index ce1154663f..0000000000 Binary files a/_darcs/patches/20080530181103-84dde-55eb7fce80ae6a11639ec9748c0d02f7f72cbc4d.gz and /dev/null differ diff --git a/_darcs/patches/20080530182230-84dde-b9b6f515affcd245abb5e199de02a8891138ff2a.gz b/_darcs/patches/20080530182230-84dde-b9b6f515affcd245abb5e199de02a8891138ff2a.gz deleted file mode 100644 index 02f56a8977..0000000000 Binary files a/_darcs/patches/20080530182230-84dde-b9b6f515affcd245abb5e199de02a8891138ff2a.gz and /dev/null differ diff --git a/_darcs/patches/20080530183528-84dde-c69c5d130c5951eec55613fc7ec7526c1fb13cfb.gz b/_darcs/patches/20080530183528-84dde-c69c5d130c5951eec55613fc7ec7526c1fb13cfb.gz deleted file mode 100644 index 08c20c9a25..0000000000 Binary files a/_darcs/patches/20080530183528-84dde-c69c5d130c5951eec55613fc7ec7526c1fb13cfb.gz and /dev/null differ diff --git a/_darcs/patches/20080530184105-84dde-6d55e2bf320ea5b71d657edb756c4ea330bd438f.gz b/_darcs/patches/20080530184105-84dde-6d55e2bf320ea5b71d657edb756c4ea330bd438f.gz deleted file mode 100644 index 5c48455757..0000000000 Binary files a/_darcs/patches/20080530184105-84dde-6d55e2bf320ea5b71d657edb756c4ea330bd438f.gz and /dev/null differ diff --git a/_darcs/patches/20080530184712-84dde-bcea123d79aff11585eacee8b85932543acfe072.gz b/_darcs/patches/20080530184712-84dde-bcea123d79aff11585eacee8b85932543acfe072.gz deleted file mode 100644 index bec6f90997..0000000000 Binary files a/_darcs/patches/20080530184712-84dde-bcea123d79aff11585eacee8b85932543acfe072.gz and /dev/null differ diff --git a/_darcs/patches/20080530184925-84dde-5888985ad083a6cff49c2efe1679e1246735608a.gz b/_darcs/patches/20080530184925-84dde-5888985ad083a6cff49c2efe1679e1246735608a.gz deleted file mode 100644 index 65cbbebbc0..0000000000 Binary files a/_darcs/patches/20080530184925-84dde-5888985ad083a6cff49c2efe1679e1246735608a.gz and /dev/null differ diff --git a/_darcs/patches/20080530185015-84dde-8b4a2f735a530f20a3fd8a2b07b2cc4f038e3846.gz b/_darcs/patches/20080530185015-84dde-8b4a2f735a530f20a3fd8a2b07b2cc4f038e3846.gz deleted file mode 100644 index 5d59121a35..0000000000 Binary files a/_darcs/patches/20080530185015-84dde-8b4a2f735a530f20a3fd8a2b07b2cc4f038e3846.gz and /dev/null differ diff --git a/_darcs/patches/20080530185343-84dde-90c12188656a29b0f34d8ffa27927f0f664fbd74.gz b/_darcs/patches/20080530185343-84dde-90c12188656a29b0f34d8ffa27927f0f664fbd74.gz deleted file mode 100644 index 438c53e31d..0000000000 Binary files a/_darcs/patches/20080530185343-84dde-90c12188656a29b0f34d8ffa27927f0f664fbd74.gz and /dev/null differ diff --git a/_darcs/patches/20080530190446-84dde-52e5220aa5b76bc443ed20a1d0e07e509a5522f8.gz b/_darcs/patches/20080530190446-84dde-52e5220aa5b76bc443ed20a1d0e07e509a5522f8.gz deleted file mode 100644 index 308fcf499a..0000000000 Binary files a/_darcs/patches/20080530190446-84dde-52e5220aa5b76bc443ed20a1d0e07e509a5522f8.gz and /dev/null differ diff --git a/_darcs/patches/20080530212555-84dde-213c04b9cf9048f48bf0b0b4234bcdf49546d4d9.gz b/_darcs/patches/20080530212555-84dde-213c04b9cf9048f48bf0b0b4234bcdf49546d4d9.gz deleted file mode 100644 index acaf52ee5c..0000000000 Binary files a/_darcs/patches/20080530212555-84dde-213c04b9cf9048f48bf0b0b4234bcdf49546d4d9.gz and /dev/null differ diff --git a/_darcs/patches/20080601020132-84dde-8559905f735c05e7274babc6a23440317cc4e587.gz b/_darcs/patches/20080601020132-84dde-8559905f735c05e7274babc6a23440317cc4e587.gz deleted file mode 100644 index ac4ffe480d..0000000000 Binary files a/_darcs/patches/20080601020132-84dde-8559905f735c05e7274babc6a23440317cc4e587.gz and /dev/null differ diff --git a/_darcs/patches/20080602174249-84dde-b7ffdf7f21afb5b734def70530fc305689da471d.gz b/_darcs/patches/20080602174249-84dde-b7ffdf7f21afb5b734def70530fc305689da471d.gz deleted file mode 100644 index 0c2957d66b..0000000000 Binary files a/_darcs/patches/20080602174249-84dde-b7ffdf7f21afb5b734def70530fc305689da471d.gz and /dev/null differ diff --git a/_darcs/patches/20080602175725-84dde-c8b3abaedcb8667130da2a080a09630d91969b5c.gz b/_darcs/patches/20080602175725-84dde-c8b3abaedcb8667130da2a080a09630d91969b5c.gz deleted file mode 100644 index eabae44956..0000000000 Binary files a/_darcs/patches/20080602175725-84dde-c8b3abaedcb8667130da2a080a09630d91969b5c.gz and /dev/null differ diff --git a/_darcs/patches/20080602175936-84dde-d21c8236ef5ffd788edc81d9d7a932b2eae0ec7d.gz b/_darcs/patches/20080602175936-84dde-d21c8236ef5ffd788edc81d9d7a932b2eae0ec7d.gz deleted file mode 100644 index 2aa6c44be4..0000000000 Binary files a/_darcs/patches/20080602175936-84dde-d21c8236ef5ffd788edc81d9d7a932b2eae0ec7d.gz and /dev/null differ diff --git a/_darcs/patches/20080602180108-84dde-c499dd9734e87081a3d7124c5b6ef885dc346670.gz b/_darcs/patches/20080602180108-84dde-c499dd9734e87081a3d7124c5b6ef885dc346670.gz deleted file mode 100644 index 2ed3dca658..0000000000 Binary files a/_darcs/patches/20080602180108-84dde-c499dd9734e87081a3d7124c5b6ef885dc346670.gz and /dev/null differ diff --git a/_darcs/patches/20080602181254-84dde-ac7f4a362754a66facfb06a7b41f9160a0eb5caf.gz b/_darcs/patches/20080602181254-84dde-ac7f4a362754a66facfb06a7b41f9160a0eb5caf.gz deleted file mode 100644 index aef970a057..0000000000 Binary files a/_darcs/patches/20080602181254-84dde-ac7f4a362754a66facfb06a7b41f9160a0eb5caf.gz and /dev/null differ diff --git a/_darcs/patches/20080602181759-84dde-97355611da9635d40f41eb9324731cfaa3c584e0.gz b/_darcs/patches/20080602181759-84dde-97355611da9635d40f41eb9324731cfaa3c584e0.gz deleted file mode 100644 index 0ba77f4b40..0000000000 Binary files a/_darcs/patches/20080602181759-84dde-97355611da9635d40f41eb9324731cfaa3c584e0.gz and /dev/null differ diff --git a/_darcs/patches/20080602181857-84dde-846a8899f9db1b244c946c94373c60058b48774e.gz b/_darcs/patches/20080602181857-84dde-846a8899f9db1b244c946c94373c60058b48774e.gz deleted file mode 100644 index 0cf26ee73c..0000000000 Binary files a/_darcs/patches/20080602181857-84dde-846a8899f9db1b244c946c94373c60058b48774e.gz and /dev/null differ diff --git a/_darcs/patches/20080602182153-84dde-4e5ac1c02e8e7a408d251ffa0aa2bbff190d1631.gz b/_darcs/patches/20080602182153-84dde-4e5ac1c02e8e7a408d251ffa0aa2bbff190d1631.gz deleted file mode 100644 index 14bbdfdb26..0000000000 Binary files a/_darcs/patches/20080602182153-84dde-4e5ac1c02e8e7a408d251ffa0aa2bbff190d1631.gz and /dev/null differ diff --git a/_darcs/patches/20080602183314-84dde-1f81609b2eb0d628c0e6dfe5fea7e21d799bdb3d.gz b/_darcs/patches/20080602183314-84dde-1f81609b2eb0d628c0e6dfe5fea7e21d799bdb3d.gz deleted file mode 100644 index a55e6951b1..0000000000 Binary files a/_darcs/patches/20080602183314-84dde-1f81609b2eb0d628c0e6dfe5fea7e21d799bdb3d.gz and /dev/null differ diff --git a/_darcs/patches/20080602183911-84dde-9b5629cd97b894875b33888195eacffabb2ebe54.gz b/_darcs/patches/20080602183911-84dde-9b5629cd97b894875b33888195eacffabb2ebe54.gz deleted file mode 100644 index a7fe32b312..0000000000 Binary files a/_darcs/patches/20080602183911-84dde-9b5629cd97b894875b33888195eacffabb2ebe54.gz and /dev/null differ diff --git a/_darcs/patches/20080602185137-84dde-0a3db0833eaf9361447559a6366e3820ae1f0694.gz b/_darcs/patches/20080602185137-84dde-0a3db0833eaf9361447559a6366e3820ae1f0694.gz deleted file mode 100644 index 59f8042553..0000000000 Binary files a/_darcs/patches/20080602185137-84dde-0a3db0833eaf9361447559a6366e3820ae1f0694.gz and /dev/null differ diff --git a/_darcs/patches/20080602185452-84dde-f9dc335ca69291d83e2a82ecce6e27055ee9e0e5.gz b/_darcs/patches/20080602185452-84dde-f9dc335ca69291d83e2a82ecce6e27055ee9e0e5.gz deleted file mode 100644 index 369246b7f2..0000000000 Binary files a/_darcs/patches/20080602185452-84dde-f9dc335ca69291d83e2a82ecce6e27055ee9e0e5.gz and /dev/null differ diff --git a/_darcs/patches/20080602185618-84dde-222f44fcdd6d085b9c3ef26f03738e120be55fae.gz b/_darcs/patches/20080602185618-84dde-222f44fcdd6d085b9c3ef26f03738e120be55fae.gz deleted file mode 100644 index 0555d36d20..0000000000 Binary files a/_darcs/patches/20080602185618-84dde-222f44fcdd6d085b9c3ef26f03738e120be55fae.gz and /dev/null differ diff --git a/_darcs/patches/20080602190357-84dde-fbfece18db8a6c4c916c1a58dca1b4a7998772f1.gz b/_darcs/patches/20080602190357-84dde-fbfece18db8a6c4c916c1a58dca1b4a7998772f1.gz deleted file mode 100644 index 9e0c9fd9e9..0000000000 Binary files a/_darcs/patches/20080602190357-84dde-fbfece18db8a6c4c916c1a58dca1b4a7998772f1.gz and /dev/null differ diff --git a/_darcs/patches/20080602191039-84dde-d4a119b5c6a0bff9648ee6a4445e373933f2c199.gz b/_darcs/patches/20080602191039-84dde-d4a119b5c6a0bff9648ee6a4445e373933f2c199.gz deleted file mode 100644 index 57327b72c9..0000000000 Binary files a/_darcs/patches/20080602191039-84dde-d4a119b5c6a0bff9648ee6a4445e373933f2c199.gz and /dev/null differ diff --git a/_darcs/patches/20080602192018-84dde-11f3092598ecd0d521e0243b5683eeb484180cbd.gz b/_darcs/patches/20080602192018-84dde-11f3092598ecd0d521e0243b5683eeb484180cbd.gz deleted file mode 100644 index 89ffd2385c..0000000000 Binary files a/_darcs/patches/20080602192018-84dde-11f3092598ecd0d521e0243b5683eeb484180cbd.gz and /dev/null differ diff --git a/_darcs/patches/20080602192242-84dde-e023e8f328ec7f6c283a0f436b2dd577659d9e10.gz b/_darcs/patches/20080602192242-84dde-e023e8f328ec7f6c283a0f436b2dd577659d9e10.gz deleted file mode 100644 index 851add7275..0000000000 Binary files a/_darcs/patches/20080602192242-84dde-e023e8f328ec7f6c283a0f436b2dd577659d9e10.gz and /dev/null differ diff --git a/_darcs/patches/20080602192526-84dde-f3416449cc8dcfc0ffe85d79d166d419aa2a5b0c.gz b/_darcs/patches/20080602192526-84dde-f3416449cc8dcfc0ffe85d79d166d419aa2a5b0c.gz deleted file mode 100644 index d19664f46b..0000000000 Binary files a/_darcs/patches/20080602192526-84dde-f3416449cc8dcfc0ffe85d79d166d419aa2a5b0c.gz and /dev/null differ diff --git a/_darcs/patches/20080602192820-84dde-6ac58e44cc0fb455e871053ace803194c76ccd00.gz b/_darcs/patches/20080602192820-84dde-6ac58e44cc0fb455e871053ace803194c76ccd00.gz deleted file mode 100644 index f351fc6403..0000000000 Binary files a/_darcs/patches/20080602192820-84dde-6ac58e44cc0fb455e871053ace803194c76ccd00.gz and /dev/null differ diff --git a/_darcs/patches/20080602193851-84dde-069af77a95bc89271b75b7e0c7ff965fefa1de34.gz b/_darcs/patches/20080602193851-84dde-069af77a95bc89271b75b7e0c7ff965fefa1de34.gz deleted file mode 100644 index 5ce783d167..0000000000 Binary files a/_darcs/patches/20080602193851-84dde-069af77a95bc89271b75b7e0c7ff965fefa1de34.gz and /dev/null differ diff --git a/_darcs/patches/20080602194333-84dde-3ebcd6250184952779a6e6fd7c8561cc6a3733ac.gz b/_darcs/patches/20080602194333-84dde-3ebcd6250184952779a6e6fd7c8561cc6a3733ac.gz deleted file mode 100644 index 73ddee6d93..0000000000 Binary files a/_darcs/patches/20080602194333-84dde-3ebcd6250184952779a6e6fd7c8561cc6a3733ac.gz and /dev/null differ diff --git a/_darcs/patches/20080602195138-84dde-d5106000f1496aac729685b65da8bb21c520f0a3.gz b/_darcs/patches/20080602195138-84dde-d5106000f1496aac729685b65da8bb21c520f0a3.gz deleted file mode 100644 index 9df2ae71ec..0000000000 Binary files a/_darcs/patches/20080602195138-84dde-d5106000f1496aac729685b65da8bb21c520f0a3.gz and /dev/null differ diff --git a/_darcs/patches/20080602200645-84dde-c72e2e98a955bdd7768fa39da30660dfcffd0f15.gz b/_darcs/patches/20080602200645-84dde-c72e2e98a955bdd7768fa39da30660dfcffd0f15.gz deleted file mode 100644 index 2262293822..0000000000 Binary files a/_darcs/patches/20080602200645-84dde-c72e2e98a955bdd7768fa39da30660dfcffd0f15.gz and /dev/null differ diff --git a/_darcs/patches/20080602201707-84dde-400855b57fcf01e597494143cc78092351043b91.gz b/_darcs/patches/20080602201707-84dde-400855b57fcf01e597494143cc78092351043b91.gz deleted file mode 100644 index 9d46ab26d8..0000000000 Binary files a/_darcs/patches/20080602201707-84dde-400855b57fcf01e597494143cc78092351043b91.gz and /dev/null differ diff --git a/_darcs/patches/20080602203142-84dde-6f68b40061d0af776d077be1b24b8adf84ee331b.gz b/_darcs/patches/20080602203142-84dde-6f68b40061d0af776d077be1b24b8adf84ee331b.gz deleted file mode 100644 index 479c985380..0000000000 Binary files a/_darcs/patches/20080602203142-84dde-6f68b40061d0af776d077be1b24b8adf84ee331b.gz and /dev/null differ diff --git a/_darcs/patches/20080602203802-84dde-f7f237da7c86fe38fd67629d0599c48929dfa619.gz b/_darcs/patches/20080602203802-84dde-f7f237da7c86fe38fd67629d0599c48929dfa619.gz deleted file mode 100644 index 8c4190ab66..0000000000 Binary files a/_darcs/patches/20080602203802-84dde-f7f237da7c86fe38fd67629d0599c48929dfa619.gz and /dev/null differ diff --git a/_darcs/patches/20080602205534-84dde-fc7d85d50b758bc73721a6aaa87c16c41237d14f.gz b/_darcs/patches/20080602205534-84dde-fc7d85d50b758bc73721a6aaa87c16c41237d14f.gz deleted file mode 100644 index aaf69dc7d4..0000000000 Binary files a/_darcs/patches/20080602205534-84dde-fc7d85d50b758bc73721a6aaa87c16c41237d14f.gz and /dev/null differ diff --git a/_darcs/patches/20080602205921-84dde-26945a4fb66489120115576ce1cb57a46c532e92.gz b/_darcs/patches/20080602205921-84dde-26945a4fb66489120115576ce1cb57a46c532e92.gz deleted file mode 100644 index e68d94db02..0000000000 Binary files a/_darcs/patches/20080602205921-84dde-26945a4fb66489120115576ce1cb57a46c532e92.gz and /dev/null differ diff --git a/_darcs/patches/20080603104859-84dde-3ed15e61feb0cef1a1d0d2dc8723951ac41b00d8.gz b/_darcs/patches/20080603104859-84dde-3ed15e61feb0cef1a1d0d2dc8723951ac41b00d8.gz deleted file mode 100644 index cce2e41911..0000000000 Binary files a/_darcs/patches/20080603104859-84dde-3ed15e61feb0cef1a1d0d2dc8723951ac41b00d8.gz and /dev/null differ diff --git a/_darcs/patches/20080603110749-84dde-e278a8ccf17e68735f6d5699dee5bb0e7444ec29.gz b/_darcs/patches/20080603110749-84dde-e278a8ccf17e68735f6d5699dee5bb0e7444ec29.gz deleted file mode 100644 index b6dc47e8da..0000000000 Binary files a/_darcs/patches/20080603110749-84dde-e278a8ccf17e68735f6d5699dee5bb0e7444ec29.gz and /dev/null differ diff --git a/_darcs/patches/20080603111750-84dde-5b3eb37cc05ceaec991951338d55d38a2e0a5f2d.gz b/_darcs/patches/20080603111750-84dde-5b3eb37cc05ceaec991951338d55d38a2e0a5f2d.gz deleted file mode 100644 index 1fe767d3c8..0000000000 Binary files a/_darcs/patches/20080603111750-84dde-5b3eb37cc05ceaec991951338d55d38a2e0a5f2d.gz and /dev/null differ diff --git a/_darcs/patches/20080603113626-84dde-99a92331e3875d05e68919acea46392a0128938e.gz b/_darcs/patches/20080603113626-84dde-99a92331e3875d05e68919acea46392a0128938e.gz deleted file mode 100644 index 8b9eaa3d9c..0000000000 Binary files a/_darcs/patches/20080603113626-84dde-99a92331e3875d05e68919acea46392a0128938e.gz and /dev/null differ diff --git a/_darcs/patches/20080603114317-84dde-04fe2734003fa8023708b6dbda6243d9fd15e9d8.gz b/_darcs/patches/20080603114317-84dde-04fe2734003fa8023708b6dbda6243d9fd15e9d8.gz deleted file mode 100644 index 55331abc1f..0000000000 Binary files a/_darcs/patches/20080603114317-84dde-04fe2734003fa8023708b6dbda6243d9fd15e9d8.gz and /dev/null differ diff --git a/_darcs/patches/20080603115218-84dde-f333d4541e1112487a5da1e3ad71064513e2228f.gz b/_darcs/patches/20080603115218-84dde-f333d4541e1112487a5da1e3ad71064513e2228f.gz deleted file mode 100644 index 8f74144c37..0000000000 Binary files a/_darcs/patches/20080603115218-84dde-f333d4541e1112487a5da1e3ad71064513e2228f.gz and /dev/null differ diff --git a/_darcs/patches/20080603115839-84dde-40da93a70e24274dcdc28ea2f4fd1e492fdb9e24.gz b/_darcs/patches/20080603115839-84dde-40da93a70e24274dcdc28ea2f4fd1e492fdb9e24.gz deleted file mode 100644 index a11125ef92..0000000000 Binary files a/_darcs/patches/20080603115839-84dde-40da93a70e24274dcdc28ea2f4fd1e492fdb9e24.gz and /dev/null differ diff --git a/_darcs/patches/20080604185131-84dde-2ff45e07ebba18c97803ed4a99121a6244ef1158.gz b/_darcs/patches/20080604185131-84dde-2ff45e07ebba18c97803ed4a99121a6244ef1158.gz deleted file mode 100644 index cf03c7062d..0000000000 Binary files a/_darcs/patches/20080604185131-84dde-2ff45e07ebba18c97803ed4a99121a6244ef1158.gz and /dev/null differ diff --git a/_darcs/patches/20080604191206-84dde-24d6a80c9e3886352d451ca0993ed0bb6baafd7a.gz b/_darcs/patches/20080604191206-84dde-24d6a80c9e3886352d451ca0993ed0bb6baafd7a.gz deleted file mode 100644 index c6b7b91815..0000000000 Binary files a/_darcs/patches/20080604191206-84dde-24d6a80c9e3886352d451ca0993ed0bb6baafd7a.gz and /dev/null differ diff --git a/_darcs/patches/20080604201123-84dde-ff9ec8530474e194eee5e6fcc6190f7cd6fc5b5c.gz b/_darcs/patches/20080604201123-84dde-ff9ec8530474e194eee5e6fcc6190f7cd6fc5b5c.gz deleted file mode 100644 index 94cd7ce1a0..0000000000 Binary files a/_darcs/patches/20080604201123-84dde-ff9ec8530474e194eee5e6fcc6190f7cd6fc5b5c.gz and /dev/null differ diff --git a/_darcs/patches/20080605024035-84dde-bc3abc4329f3181cffd26e83d37968ee6a02a26e.gz b/_darcs/patches/20080605024035-84dde-bc3abc4329f3181cffd26e83d37968ee6a02a26e.gz deleted file mode 100644 index bb3565945a..0000000000 Binary files a/_darcs/patches/20080605024035-84dde-bc3abc4329f3181cffd26e83d37968ee6a02a26e.gz and /dev/null differ diff --git a/_darcs/patches/20080605024717-84dde-dc897a855af13ea30bb670daf94749e9f14fa7ad.gz b/_darcs/patches/20080605024717-84dde-dc897a855af13ea30bb670daf94749e9f14fa7ad.gz deleted file mode 100644 index ac1514331c..0000000000 Binary files a/_darcs/patches/20080605024717-84dde-dc897a855af13ea30bb670daf94749e9f14fa7ad.gz and /dev/null differ diff --git a/_darcs/patches/20080605024807-84dde-b6b112fc71f6337bf2d3605944191454aaeb28e2.gz b/_darcs/patches/20080605024807-84dde-b6b112fc71f6337bf2d3605944191454aaeb28e2.gz deleted file mode 100644 index 1503f8988a..0000000000 Binary files a/_darcs/patches/20080605024807-84dde-b6b112fc71f6337bf2d3605944191454aaeb28e2.gz and /dev/null differ diff --git a/_darcs/patches/20080605025152-84dde-54da3eba220432b71d14ef7cfd4a8a7bf664316f.gz b/_darcs/patches/20080605025152-84dde-54da3eba220432b71d14ef7cfd4a8a7bf664316f.gz deleted file mode 100644 index d10cae48c5..0000000000 Binary files a/_darcs/patches/20080605025152-84dde-54da3eba220432b71d14ef7cfd4a8a7bf664316f.gz and /dev/null differ diff --git a/_darcs/patches/20080605025611-84dde-18fcf515bb9c727cafd3ca44454e7f18d8f8e752.gz b/_darcs/patches/20080605025611-84dde-18fcf515bb9c727cafd3ca44454e7f18d8f8e752.gz deleted file mode 100644 index a0b0c9cddf..0000000000 Binary files a/_darcs/patches/20080605025611-84dde-18fcf515bb9c727cafd3ca44454e7f18d8f8e752.gz and /dev/null differ diff --git a/_darcs/patches/20080605033911-84dde-0cf77fad66198a790450183eba11028e153f43d1.gz b/_darcs/patches/20080605033911-84dde-0cf77fad66198a790450183eba11028e153f43d1.gz deleted file mode 100644 index 49a6c554c8..0000000000 Binary files a/_darcs/patches/20080605033911-84dde-0cf77fad66198a790450183eba11028e153f43d1.gz and /dev/null differ diff --git a/_darcs/patches/20080605040153-84dde-5d180f0d8ead2fc7c5eaca3deaf035ba31d3512a.gz b/_darcs/patches/20080605040153-84dde-5d180f0d8ead2fc7c5eaca3deaf035ba31d3512a.gz deleted file mode 100644 index 4925ec28d9..0000000000 Binary files a/_darcs/patches/20080605040153-84dde-5d180f0d8ead2fc7c5eaca3deaf035ba31d3512a.gz and /dev/null differ diff --git a/_darcs/patches/20080605040358-84dde-b2018db43791d1cbed722d3320cd0b62d6da94eb.gz b/_darcs/patches/20080605040358-84dde-b2018db43791d1cbed722d3320cd0b62d6da94eb.gz deleted file mode 100644 index 95ad8f069d..0000000000 Binary files a/_darcs/patches/20080605040358-84dde-b2018db43791d1cbed722d3320cd0b62d6da94eb.gz and /dev/null differ diff --git a/_darcs/patches/20080605183419-84dde-debe7f18565c960ee6886ac1330833bc8ae1ca5f.gz b/_darcs/patches/20080605183419-84dde-debe7f18565c960ee6886ac1330833bc8ae1ca5f.gz deleted file mode 100644 index e8a3e244e9..0000000000 Binary files a/_darcs/patches/20080605183419-84dde-debe7f18565c960ee6886ac1330833bc8ae1ca5f.gz and /dev/null differ diff --git a/_darcs/patches/20080605190614-84dde-4684be45f62623ca4bb69a95b264414af88f2ac2.gz b/_darcs/patches/20080605190614-84dde-4684be45f62623ca4bb69a95b264414af88f2ac2.gz deleted file mode 100644 index 77ff8554a0..0000000000 Binary files a/_darcs/patches/20080605190614-84dde-4684be45f62623ca4bb69a95b264414af88f2ac2.gz and /dev/null differ diff --git a/_darcs/patches/20080605193708-84dde-a441cc0474951ce7f1a1da9310b5145c0b7c3070.gz b/_darcs/patches/20080605193708-84dde-a441cc0474951ce7f1a1da9310b5145c0b7c3070.gz deleted file mode 100644 index 39b458b456..0000000000 Binary files a/_darcs/patches/20080605193708-84dde-a441cc0474951ce7f1a1da9310b5145c0b7c3070.gz and /dev/null differ diff --git a/_darcs/patches/20080605195222-84dde-c9e00b0ef0f8fed4ea5d4c088d52e39589b6bb02.gz b/_darcs/patches/20080605195222-84dde-c9e00b0ef0f8fed4ea5d4c088d52e39589b6bb02.gz deleted file mode 100644 index 52a03db5f4..0000000000 Binary files a/_darcs/patches/20080605195222-84dde-c9e00b0ef0f8fed4ea5d4c088d52e39589b6bb02.gz and /dev/null differ diff --git a/_darcs/patches/20080605195500-84dde-307ed9c01b6efa0055908f408d3032ce7d7a9870.gz b/_darcs/patches/20080605195500-84dde-307ed9c01b6efa0055908f408d3032ce7d7a9870.gz deleted file mode 100644 index 24613046fe..0000000000 Binary files a/_darcs/patches/20080605195500-84dde-307ed9c01b6efa0055908f408d3032ce7d7a9870.gz and /dev/null differ diff --git a/_darcs/patches/20080605200759-84dde-a1e8cc5c2c6a22da80f03ef692de9d0a8dcb29fc.gz b/_darcs/patches/20080605200759-84dde-a1e8cc5c2c6a22da80f03ef692de9d0a8dcb29fc.gz deleted file mode 100644 index 5d3fd311b2..0000000000 Binary files a/_darcs/patches/20080605200759-84dde-a1e8cc5c2c6a22da80f03ef692de9d0a8dcb29fc.gz and /dev/null differ diff --git a/_darcs/patches/20080606040946-84dde-3a78ddbc700dcd2cb56ad3200b5658e07416096f.gz b/_darcs/patches/20080606040946-84dde-3a78ddbc700dcd2cb56ad3200b5658e07416096f.gz deleted file mode 100644 index 959f2e872a..0000000000 Binary files a/_darcs/patches/20080606040946-84dde-3a78ddbc700dcd2cb56ad3200b5658e07416096f.gz and /dev/null differ diff --git a/_darcs/patches/20080606043405-84dde-e365fd5a897990c446a4156ed3582081949fd891.gz b/_darcs/patches/20080606043405-84dde-e365fd5a897990c446a4156ed3582081949fd891.gz deleted file mode 100644 index 662d2aee11..0000000000 Binary files a/_darcs/patches/20080606043405-84dde-e365fd5a897990c446a4156ed3582081949fd891.gz and /dev/null differ diff --git a/_darcs/patches/20080606051331-84dde-1afe6e4a156cbb802b8b4231e065dc99ad07fef4.gz b/_darcs/patches/20080606051331-84dde-1afe6e4a156cbb802b8b4231e065dc99ad07fef4.gz deleted file mode 100644 index c530747de3..0000000000 Binary files a/_darcs/patches/20080606051331-84dde-1afe6e4a156cbb802b8b4231e065dc99ad07fef4.gz and /dev/null differ diff --git a/_darcs/patches/20080606051823-84dde-1ba6bdfe546b5307afd97c2c7715f8d35b464e83.gz b/_darcs/patches/20080606051823-84dde-1ba6bdfe546b5307afd97c2c7715f8d35b464e83.gz deleted file mode 100644 index 5abc155eb8..0000000000 Binary files a/_darcs/patches/20080606051823-84dde-1ba6bdfe546b5307afd97c2c7715f8d35b464e83.gz and /dev/null differ diff --git a/_darcs/patches/20080606052117-84dde-b9afe0037d9c75382f218f85eefec2a944e42dc6.gz b/_darcs/patches/20080606052117-84dde-b9afe0037d9c75382f218f85eefec2a944e42dc6.gz deleted file mode 100644 index 599feb289a..0000000000 Binary files a/_darcs/patches/20080606052117-84dde-b9afe0037d9c75382f218f85eefec2a944e42dc6.gz and /dev/null differ diff --git a/_darcs/patches/20080606052631-84dde-4a8b4d8f70b0148d0b98b62875099f7d9cca9026.gz b/_darcs/patches/20080606052631-84dde-4a8b4d8f70b0148d0b98b62875099f7d9cca9026.gz deleted file mode 100644 index e5d9690083..0000000000 Binary files a/_darcs/patches/20080606052631-84dde-4a8b4d8f70b0148d0b98b62875099f7d9cca9026.gz and /dev/null differ diff --git a/_darcs/patches/20080606053321-84dde-c6ee7a4565cce35873ad36890b609b90b65b472d.gz b/_darcs/patches/20080606053321-84dde-c6ee7a4565cce35873ad36890b609b90b65b472d.gz deleted file mode 100644 index eff45675a9..0000000000 Binary files a/_darcs/patches/20080606053321-84dde-c6ee7a4565cce35873ad36890b609b90b65b472d.gz and /dev/null differ diff --git a/_darcs/patches/20080606053914-84dde-e4bad8da4af7bed3ca8e8e84c5cc82ff2a82ad4c.gz b/_darcs/patches/20080606053914-84dde-e4bad8da4af7bed3ca8e8e84c5cc82ff2a82ad4c.gz deleted file mode 100644 index 96c59f636f..0000000000 Binary files a/_darcs/patches/20080606053914-84dde-e4bad8da4af7bed3ca8e8e84c5cc82ff2a82ad4c.gz and /dev/null differ diff --git a/_darcs/patches/20080606054549-84dde-9d90611b14fa441873fc4504548d46848dbdf5b4.gz b/_darcs/patches/20080606054549-84dde-9d90611b14fa441873fc4504548d46848dbdf5b4.gz deleted file mode 100644 index c19bbb000a..0000000000 Binary files a/_darcs/patches/20080606054549-84dde-9d90611b14fa441873fc4504548d46848dbdf5b4.gz and /dev/null differ diff --git a/_darcs/patches/20080606055439-84dde-3abda48583737e89a9c75b3cff6722e9444d13a9.gz b/_darcs/patches/20080606055439-84dde-3abda48583737e89a9c75b3cff6722e9444d13a9.gz deleted file mode 100644 index 46ed224969..0000000000 Binary files a/_darcs/patches/20080606055439-84dde-3abda48583737e89a9c75b3cff6722e9444d13a9.gz and /dev/null differ diff --git a/_darcs/patches/20080606060000-84dde-30573475c9721e7763deccac1359439887ae8add.gz b/_darcs/patches/20080606060000-84dde-30573475c9721e7763deccac1359439887ae8add.gz deleted file mode 100644 index 021c3897bc..0000000000 Binary files a/_darcs/patches/20080606060000-84dde-30573475c9721e7763deccac1359439887ae8add.gz and /dev/null differ diff --git a/_darcs/patches/20080606060601-84dde-a1ae6f677c2846f9d10af18cd7f001ae5e560403.gz b/_darcs/patches/20080606060601-84dde-a1ae6f677c2846f9d10af18cd7f001ae5e560403.gz deleted file mode 100644 index 5a677b2989..0000000000 Binary files a/_darcs/patches/20080606060601-84dde-a1ae6f677c2846f9d10af18cd7f001ae5e560403.gz and /dev/null differ diff --git a/_darcs/patches/20080606061556-84dde-21c46b2021b2ed63836111aa31a45b251c73a1bc.gz b/_darcs/patches/20080606061556-84dde-21c46b2021b2ed63836111aa31a45b251c73a1bc.gz deleted file mode 100644 index 72c34900d0..0000000000 Binary files a/_darcs/patches/20080606061556-84dde-21c46b2021b2ed63836111aa31a45b251c73a1bc.gz and /dev/null differ diff --git a/_darcs/patches/20080606062235-84dde-2af2ed6b90474beac139a740c49fa6eec6f61484.gz b/_darcs/patches/20080606062235-84dde-2af2ed6b90474beac139a740c49fa6eec6f61484.gz deleted file mode 100644 index ee64d0ae69..0000000000 Binary files a/_darcs/patches/20080606062235-84dde-2af2ed6b90474beac139a740c49fa6eec6f61484.gz and /dev/null differ diff --git a/_darcs/patches/20080606062958-84dde-3568ba98526687d81873bff77385d214c50cddfb.gz b/_darcs/patches/20080606062958-84dde-3568ba98526687d81873bff77385d214c50cddfb.gz deleted file mode 100644 index 0285c81c06..0000000000 Binary files a/_darcs/patches/20080606062958-84dde-3568ba98526687d81873bff77385d214c50cddfb.gz and /dev/null differ diff --git a/_darcs/patches/20080606063721-84dde-a843ac9ef5b48aa25d15125d4f0be3f0c2e6bfb1.gz b/_darcs/patches/20080606063721-84dde-a843ac9ef5b48aa25d15125d4f0be3f0c2e6bfb1.gz deleted file mode 100644 index 43fc4d4801..0000000000 Binary files a/_darcs/patches/20080606063721-84dde-a843ac9ef5b48aa25d15125d4f0be3f0c2e6bfb1.gz and /dev/null differ diff --git a/_darcs/patches/20080606064011-84dde-89cca620d3782dec77da804008ce391e17ec393e.gz b/_darcs/patches/20080606064011-84dde-89cca620d3782dec77da804008ce391e17ec393e.gz deleted file mode 100644 index bc901a2520..0000000000 Binary files a/_darcs/patches/20080606064011-84dde-89cca620d3782dec77da804008ce391e17ec393e.gz and /dev/null differ diff --git a/_darcs/patches/20080606065027-84dde-a4ac215010b76ef296976fdf8a94473bd80c7ffa.gz b/_darcs/patches/20080606065027-84dde-a4ac215010b76ef296976fdf8a94473bd80c7ffa.gz deleted file mode 100644 index b50d9fa755..0000000000 Binary files a/_darcs/patches/20080606065027-84dde-a4ac215010b76ef296976fdf8a94473bd80c7ffa.gz and /dev/null differ diff --git a/_darcs/patches/20080606160437-84dde-25d2db21e059159751a27fd77f47764346029dd8.gz b/_darcs/patches/20080606160437-84dde-25d2db21e059159751a27fd77f47764346029dd8.gz deleted file mode 100644 index 00eb918384..0000000000 Binary files a/_darcs/patches/20080606160437-84dde-25d2db21e059159751a27fd77f47764346029dd8.gz and /dev/null differ diff --git a/_darcs/patches/20080606162226-84dde-a794aede95d78913a21e7e2180d7d04cc47789f0.gz b/_darcs/patches/20080606162226-84dde-a794aede95d78913a21e7e2180d7d04cc47789f0.gz deleted file mode 100644 index dce54d4bde..0000000000 Binary files a/_darcs/patches/20080606162226-84dde-a794aede95d78913a21e7e2180d7d04cc47789f0.gz and /dev/null differ diff --git a/_darcs/patches/20080606162659-84dde-fd7d5e030aa6aeebf61d0ea7b143aa7cafce7c45.gz b/_darcs/patches/20080606162659-84dde-fd7d5e030aa6aeebf61d0ea7b143aa7cafce7c45.gz deleted file mode 100644 index 3879bf6743..0000000000 Binary files a/_darcs/patches/20080606162659-84dde-fd7d5e030aa6aeebf61d0ea7b143aa7cafce7c45.gz and /dev/null differ diff --git a/_darcs/patches/20080606171450-84dde-cd594e2cdb734a76e4dd6436a40ba900d4f64053.gz b/_darcs/patches/20080606171450-84dde-cd594e2cdb734a76e4dd6436a40ba900d4f64053.gz deleted file mode 100644 index fbe980dbc1..0000000000 Binary files a/_darcs/patches/20080606171450-84dde-cd594e2cdb734a76e4dd6436a40ba900d4f64053.gz and /dev/null differ diff --git a/_darcs/patches/20080606172239-84dde-383dd08b116b9238a8313dc2f117f5edac3a5905.gz b/_darcs/patches/20080606172239-84dde-383dd08b116b9238a8313dc2f117f5edac3a5905.gz deleted file mode 100644 index 04a585cefb..0000000000 Binary files a/_darcs/patches/20080606172239-84dde-383dd08b116b9238a8313dc2f117f5edac3a5905.gz and /dev/null differ diff --git a/_darcs/patches/20080606172638-84dde-191d9ef20462ec6edf2637c7b3f6d39ba5815a56.gz b/_darcs/patches/20080606172638-84dde-191d9ef20462ec6edf2637c7b3f6d39ba5815a56.gz deleted file mode 100644 index ce0f57ae96..0000000000 Binary files a/_darcs/patches/20080606172638-84dde-191d9ef20462ec6edf2637c7b3f6d39ba5815a56.gz and /dev/null differ diff --git a/_darcs/patches/20080606173804-84dde-16dfd378d370206ec5837a317bb986cfa57fbea5.gz b/_darcs/patches/20080606173804-84dde-16dfd378d370206ec5837a317bb986cfa57fbea5.gz deleted file mode 100644 index 7ee208185a..0000000000 Binary files a/_darcs/patches/20080606173804-84dde-16dfd378d370206ec5837a317bb986cfa57fbea5.gz and /dev/null differ diff --git a/_darcs/patches/20080606174822-84dde-2128b2a5a6e129b10741bb8a1b2cdcdacc4ca1ca.gz b/_darcs/patches/20080606174822-84dde-2128b2a5a6e129b10741bb8a1b2cdcdacc4ca1ca.gz deleted file mode 100644 index d55e9ad6fc..0000000000 Binary files a/_darcs/patches/20080606174822-84dde-2128b2a5a6e129b10741bb8a1b2cdcdacc4ca1ca.gz and /dev/null differ diff --git a/_darcs/patches/20080606175254-84dde-acf1bd42c7ca01bb811caec928abf6dfa338fd36.gz b/_darcs/patches/20080606175254-84dde-acf1bd42c7ca01bb811caec928abf6dfa338fd36.gz deleted file mode 100644 index 64a1a6912b..0000000000 Binary files a/_darcs/patches/20080606175254-84dde-acf1bd42c7ca01bb811caec928abf6dfa338fd36.gz and /dev/null differ diff --git a/_darcs/patches/20080606180035-84dde-d91a6540a33196a6b76b1d5ba473d79dbc961b93.gz b/_darcs/patches/20080606180035-84dde-d91a6540a33196a6b76b1d5ba473d79dbc961b93.gz deleted file mode 100644 index e9dff9bf99..0000000000 Binary files a/_darcs/patches/20080606180035-84dde-d91a6540a33196a6b76b1d5ba473d79dbc961b93.gz and /dev/null differ diff --git a/_darcs/patches/20080606180330-84dde-be0e84696cd5e7304cd8523c0d7de9d6e402b73e.gz b/_darcs/patches/20080606180330-84dde-be0e84696cd5e7304cd8523c0d7de9d6e402b73e.gz deleted file mode 100644 index 248b3d9883..0000000000 Binary files a/_darcs/patches/20080606180330-84dde-be0e84696cd5e7304cd8523c0d7de9d6e402b73e.gz and /dev/null differ diff --git a/_darcs/patches/20080606182044-84dde-1ef6f8b6edeaa2e9f3c28fd7dc1831e5d7381f26.gz b/_darcs/patches/20080606182044-84dde-1ef6f8b6edeaa2e9f3c28fd7dc1831e5d7381f26.gz deleted file mode 100644 index 148c304278..0000000000 Binary files a/_darcs/patches/20080606182044-84dde-1ef6f8b6edeaa2e9f3c28fd7dc1831e5d7381f26.gz and /dev/null differ diff --git a/_darcs/patches/20080606195136-84dde-c1839e332e9b7e1e36f693c1a0968535a8f2702f.gz b/_darcs/patches/20080606195136-84dde-c1839e332e9b7e1e36f693c1a0968535a8f2702f.gz deleted file mode 100644 index 83beeb92b0..0000000000 Binary files a/_darcs/patches/20080606195136-84dde-c1839e332e9b7e1e36f693c1a0968535a8f2702f.gz and /dev/null differ diff --git a/_darcs/patches/20080606200151-84dde-4ed7ae04c16441a431544c207effcfdea1c72a6c.gz b/_darcs/patches/20080606200151-84dde-4ed7ae04c16441a431544c207effcfdea1c72a6c.gz deleted file mode 100644 index e4f3211258..0000000000 Binary files a/_darcs/patches/20080606200151-84dde-4ed7ae04c16441a431544c207effcfdea1c72a6c.gz and /dev/null differ diff --git a/_darcs/patches/20080608201917-84dde-ba5c877c01c0200f379c4433799b1f752a9817df.gz b/_darcs/patches/20080608201917-84dde-ba5c877c01c0200f379c4433799b1f752a9817df.gz deleted file mode 100644 index 23d6249a0d..0000000000 Binary files a/_darcs/patches/20080608201917-84dde-ba5c877c01c0200f379c4433799b1f752a9817df.gz and /dev/null differ diff --git a/_darcs/patches/20080608201957-84dde-a092da20de695cfd6a910c38b24a607fe678159c.gz b/_darcs/patches/20080608201957-84dde-a092da20de695cfd6a910c38b24a607fe678159c.gz deleted file mode 100644 index 0bb1b90707..0000000000 Binary files a/_darcs/patches/20080608201957-84dde-a092da20de695cfd6a910c38b24a607fe678159c.gz and /dev/null differ diff --git a/_darcs/patches/20080608203314-84dde-6553bea647ce5e712a7615ece83840e1e14a33d4.gz b/_darcs/patches/20080608203314-84dde-6553bea647ce5e712a7615ece83840e1e14a33d4.gz deleted file mode 100644 index 7d293924d7..0000000000 Binary files a/_darcs/patches/20080608203314-84dde-6553bea647ce5e712a7615ece83840e1e14a33d4.gz and /dev/null differ diff --git a/_darcs/patches/20080608203731-84dde-b13b5ef0cee83cc102bef45ab0725ee0f99b9969.gz b/_darcs/patches/20080608203731-84dde-b13b5ef0cee83cc102bef45ab0725ee0f99b9969.gz deleted file mode 100644 index 11d5d2666c..0000000000 Binary files a/_darcs/patches/20080608203731-84dde-b13b5ef0cee83cc102bef45ab0725ee0f99b9969.gz and /dev/null differ diff --git a/_darcs/patches/20080610121132-84dde-f0f49c2e33c650e6cf91d3e31f595b0ee570e603.gz b/_darcs/patches/20080610121132-84dde-f0f49c2e33c650e6cf91d3e31f595b0ee570e603.gz deleted file mode 100644 index d63e3effbb..0000000000 Binary files a/_darcs/patches/20080610121132-84dde-f0f49c2e33c650e6cf91d3e31f595b0ee570e603.gz and /dev/null differ diff --git a/_darcs/patches/20080610121936-84dde-5e13dfc79beaac01ed795d37e11b02cad610051d.gz b/_darcs/patches/20080610121936-84dde-5e13dfc79beaac01ed795d37e11b02cad610051d.gz deleted file mode 100644 index c49716b9df..0000000000 Binary files a/_darcs/patches/20080610121936-84dde-5e13dfc79beaac01ed795d37e11b02cad610051d.gz and /dev/null differ diff --git a/_darcs/patches/20080610122707-84dde-403d9869ea32d629e60736822c6f06b0a56a070d.gz b/_darcs/patches/20080610122707-84dde-403d9869ea32d629e60736822c6f06b0a56a070d.gz deleted file mode 100644 index ad243bb28d..0000000000 Binary files a/_darcs/patches/20080610122707-84dde-403d9869ea32d629e60736822c6f06b0a56a070d.gz and /dev/null differ diff --git a/_darcs/patches/20080610123002-84dde-0bce005b77d053d22cfbba8e0743af1b49f151bb.gz b/_darcs/patches/20080610123002-84dde-0bce005b77d053d22cfbba8e0743af1b49f151bb.gz deleted file mode 100644 index 3df0c16b22..0000000000 Binary files a/_darcs/patches/20080610123002-84dde-0bce005b77d053d22cfbba8e0743af1b49f151bb.gz and /dev/null differ diff --git a/_darcs/patches/20080610142221-84dde-ad2d1dcfc151b330612b374c25700d81767e9ef7.gz b/_darcs/patches/20080610142221-84dde-ad2d1dcfc151b330612b374c25700d81767e9ef7.gz deleted file mode 100644 index 500122997b..0000000000 Binary files a/_darcs/patches/20080610142221-84dde-ad2d1dcfc151b330612b374c25700d81767e9ef7.gz and /dev/null differ diff --git a/_darcs/patches/20080610143709-84dde-ce586d1ca5bb73bdeef8b254f8835f599b769714.gz b/_darcs/patches/20080610143709-84dde-ce586d1ca5bb73bdeef8b254f8835f599b769714.gz deleted file mode 100644 index 965e23d972..0000000000 Binary files a/_darcs/patches/20080610143709-84dde-ce586d1ca5bb73bdeef8b254f8835f599b769714.gz and /dev/null differ diff --git a/_darcs/patches/20080610144420-84dde-b1904673a1afb56bef1a4f54e4432eb94aa03619.gz b/_darcs/patches/20080610144420-84dde-b1904673a1afb56bef1a4f54e4432eb94aa03619.gz deleted file mode 100644 index 45d892eb85..0000000000 Binary files a/_darcs/patches/20080610144420-84dde-b1904673a1afb56bef1a4f54e4432eb94aa03619.gz and /dev/null differ diff --git a/_darcs/patches/20080610144606-84dde-7c8b86d2954324e686eb5fe1ed9daeb4919a945c.gz b/_darcs/patches/20080610144606-84dde-7c8b86d2954324e686eb5fe1ed9daeb4919a945c.gz deleted file mode 100644 index dab8f4fca0..0000000000 Binary files a/_darcs/patches/20080610144606-84dde-7c8b86d2954324e686eb5fe1ed9daeb4919a945c.gz and /dev/null differ diff --git a/_darcs/patches/20080610145520-84dde-67e0480537053f7aacf18a8fb1f45e472e115493.gz b/_darcs/patches/20080610145520-84dde-67e0480537053f7aacf18a8fb1f45e472e115493.gz deleted file mode 100644 index 67db7f625c..0000000000 Binary files a/_darcs/patches/20080610145520-84dde-67e0480537053f7aacf18a8fb1f45e472e115493.gz and /dev/null differ diff --git a/_darcs/patches/20080610150113-84dde-00dbd7fb5079d990c7625902fa7fe9ca2dbbcc1e.gz b/_darcs/patches/20080610150113-84dde-00dbd7fb5079d990c7625902fa7fe9ca2dbbcc1e.gz deleted file mode 100644 index 60fee02769..0000000000 Binary files a/_darcs/patches/20080610150113-84dde-00dbd7fb5079d990c7625902fa7fe9ca2dbbcc1e.gz and /dev/null differ diff --git a/_darcs/patches/20080610150429-34904-c09bc4ef00a38bcdbf740f35291c8ea35869dcae.gz b/_darcs/patches/20080610150429-34904-c09bc4ef00a38bcdbf740f35291c8ea35869dcae.gz deleted file mode 100644 index a7c7fa0517..0000000000 Binary files a/_darcs/patches/20080610150429-34904-c09bc4ef00a38bcdbf740f35291c8ea35869dcae.gz and /dev/null differ diff --git a/_darcs/patches/20080610150957-84dde-2aff9cb5f23c593f524e4affb5c3f67a7f06ce34.gz b/_darcs/patches/20080610150957-84dde-2aff9cb5f23c593f524e4affb5c3f67a7f06ce34.gz deleted file mode 100644 index 6e80c8ff0b..0000000000 Binary files a/_darcs/patches/20080610150957-84dde-2aff9cb5f23c593f524e4affb5c3f67a7f06ce34.gz and /dev/null differ diff --git a/_darcs/patches/20080610171303-84dde-1b93542571121331623aa5379ac34ff05896a5d9.gz b/_darcs/patches/20080610171303-84dde-1b93542571121331623aa5379ac34ff05896a5d9.gz deleted file mode 100644 index be946f37f5..0000000000 Binary files a/_darcs/patches/20080610171303-84dde-1b93542571121331623aa5379ac34ff05896a5d9.gz and /dev/null differ diff --git a/_darcs/patches/20080610173718-84dde-4591c99e3ff5a414da524929a73b6ffca3b4f350.gz b/_darcs/patches/20080610173718-84dde-4591c99e3ff5a414da524929a73b6ffca3b4f350.gz deleted file mode 100644 index d0107708d4..0000000000 Binary files a/_darcs/patches/20080610173718-84dde-4591c99e3ff5a414da524929a73b6ffca3b4f350.gz and /dev/null differ diff --git a/_darcs/patches/20080610185238-84dde-c073065f5f802be39b97a23105613fac1eeb0bea.gz b/_darcs/patches/20080610185238-84dde-c073065f5f802be39b97a23105613fac1eeb0bea.gz deleted file mode 100644 index e3c62372e4..0000000000 Binary files a/_darcs/patches/20080610185238-84dde-c073065f5f802be39b97a23105613fac1eeb0bea.gz and /dev/null differ diff --git a/_darcs/patches/20080610185551-84dde-e8352c4f2632b1281684c37dcb27a9005acf22cb.gz b/_darcs/patches/20080610185551-84dde-e8352c4f2632b1281684c37dcb27a9005acf22cb.gz deleted file mode 100644 index 7c95c09ebc..0000000000 Binary files a/_darcs/patches/20080610185551-84dde-e8352c4f2632b1281684c37dcb27a9005acf22cb.gz and /dev/null differ diff --git a/_darcs/patches/20080610185759-84dde-dafb858d36f77cf295d2c869061723b018b4f002.gz b/_darcs/patches/20080610185759-84dde-dafb858d36f77cf295d2c869061723b018b4f002.gz deleted file mode 100644 index 82b3729541..0000000000 Binary files a/_darcs/patches/20080610185759-84dde-dafb858d36f77cf295d2c869061723b018b4f002.gz and /dev/null differ diff --git a/_darcs/patches/20080610192101-84dde-29ba2cc875b73131bbbbef4cbdfb17965df37677.gz b/_darcs/patches/20080610192101-84dde-29ba2cc875b73131bbbbef4cbdfb17965df37677.gz deleted file mode 100644 index e406063118..0000000000 Binary files a/_darcs/patches/20080610192101-84dde-29ba2cc875b73131bbbbef4cbdfb17965df37677.gz and /dev/null differ diff --git a/_darcs/patches/20080610193305-84dde-ef9bfe958f79d8668f14302b22e098f2f8232bc1.gz b/_darcs/patches/20080610193305-84dde-ef9bfe958f79d8668f14302b22e098f2f8232bc1.gz deleted file mode 100644 index 3fb6d15c3a..0000000000 Binary files a/_darcs/patches/20080610193305-84dde-ef9bfe958f79d8668f14302b22e098f2f8232bc1.gz and /dev/null differ diff --git a/_darcs/patches/20080610193520-84dde-300bbdf3d38a7f235ed7b073d8fb29aff76b9c85.gz b/_darcs/patches/20080610193520-84dde-300bbdf3d38a7f235ed7b073d8fb29aff76b9c85.gz deleted file mode 100644 index 5657ac87b0..0000000000 Binary files a/_darcs/patches/20080610193520-84dde-300bbdf3d38a7f235ed7b073d8fb29aff76b9c85.gz and /dev/null differ diff --git a/_darcs/patches/20080610193649-84dde-a735d4c6fdb6d808f727dc79215e7014523555ee.gz b/_darcs/patches/20080610193649-84dde-a735d4c6fdb6d808f727dc79215e7014523555ee.gz deleted file mode 100644 index 3541d4e9bc..0000000000 Binary files a/_darcs/patches/20080610193649-84dde-a735d4c6fdb6d808f727dc79215e7014523555ee.gz and /dev/null differ diff --git a/_darcs/patches/20080610193854-84dde-5abf4471581cd474bfcf68cab6b72b7a6a9d5930.gz b/_darcs/patches/20080610193854-84dde-5abf4471581cd474bfcf68cab6b72b7a6a9d5930.gz deleted file mode 100644 index 7f845c8d25..0000000000 Binary files a/_darcs/patches/20080610193854-84dde-5abf4471581cd474bfcf68cab6b72b7a6a9d5930.gz and /dev/null differ diff --git a/_darcs/patches/20080610194243-84dde-dad19548b794cc3d6d549e986bf17aa6b0421199.gz b/_darcs/patches/20080610194243-84dde-dad19548b794cc3d6d549e986bf17aa6b0421199.gz deleted file mode 100644 index f89d79b0aa..0000000000 Binary files a/_darcs/patches/20080610194243-84dde-dad19548b794cc3d6d549e986bf17aa6b0421199.gz and /dev/null differ diff --git a/_darcs/patches/20080610194553-84dde-adf2c70341bda9e3c06e2513426cddbfdf4c5d53.gz b/_darcs/patches/20080610194553-84dde-adf2c70341bda9e3c06e2513426cddbfdf4c5d53.gz deleted file mode 100644 index b1a18d8e81..0000000000 Binary files a/_darcs/patches/20080610194553-84dde-adf2c70341bda9e3c06e2513426cddbfdf4c5d53.gz and /dev/null differ diff --git a/_darcs/patches/20080610195134-84dde-48212ca46f4467ef1bf72a2d49e346dc03308c52.gz b/_darcs/patches/20080610195134-84dde-48212ca46f4467ef1bf72a2d49e346dc03308c52.gz deleted file mode 100644 index 4e987ae94c..0000000000 Binary files a/_darcs/patches/20080610195134-84dde-48212ca46f4467ef1bf72a2d49e346dc03308c52.gz and /dev/null differ diff --git a/_darcs/patches/20080610195502-84dde-7f88fbfc5accd6d91467ddec1356e193728ba059.gz b/_darcs/patches/20080610195502-84dde-7f88fbfc5accd6d91467ddec1356e193728ba059.gz deleted file mode 100644 index 120dbaeb34..0000000000 Binary files a/_darcs/patches/20080610195502-84dde-7f88fbfc5accd6d91467ddec1356e193728ba059.gz and /dev/null differ diff --git a/_darcs/patches/20080610195920-84dde-39012658cb5f4127d667ac23ddcabd795a337f7e.gz b/_darcs/patches/20080610195920-84dde-39012658cb5f4127d667ac23ddcabd795a337f7e.gz deleted file mode 100644 index 25ebd786fd..0000000000 Binary files a/_darcs/patches/20080610195920-84dde-39012658cb5f4127d667ac23ddcabd795a337f7e.gz and /dev/null differ diff --git a/_darcs/patches/20080610211316-84dde-5ce855db362f0837ddd7f8883471366adeed4c18.gz b/_darcs/patches/20080610211316-84dde-5ce855db362f0837ddd7f8883471366adeed4c18.gz deleted file mode 100644 index b7f5397ee9..0000000000 Binary files a/_darcs/patches/20080610211316-84dde-5ce855db362f0837ddd7f8883471366adeed4c18.gz and /dev/null differ diff --git a/_darcs/patches/20080610211614-84dde-34fe91876d37f1a5a6a1368f199378949c56c1b8.gz b/_darcs/patches/20080610211614-84dde-34fe91876d37f1a5a6a1368f199378949c56c1b8.gz deleted file mode 100644 index da12cb3704..0000000000 Binary files a/_darcs/patches/20080610211614-84dde-34fe91876d37f1a5a6a1368f199378949c56c1b8.gz and /dev/null differ diff --git a/_darcs/patches/20080610221910-84dde-a3b2252625ac5392ff60f1e975350ed5d2d1145f.gz b/_darcs/patches/20080610221910-84dde-a3b2252625ac5392ff60f1e975350ed5d2d1145f.gz deleted file mode 100644 index 0e5b0422bc..0000000000 Binary files a/_darcs/patches/20080610221910-84dde-a3b2252625ac5392ff60f1e975350ed5d2d1145f.gz and /dev/null differ diff --git a/_darcs/patches/20080610222222-84dde-f17190f0da05f65ba0d0030d39c97dfec701b624.gz b/_darcs/patches/20080610222222-84dde-f17190f0da05f65ba0d0030d39c97dfec701b624.gz deleted file mode 100644 index 14b5e482d7..0000000000 Binary files a/_darcs/patches/20080610222222-84dde-f17190f0da05f65ba0d0030d39c97dfec701b624.gz and /dev/null differ diff --git a/_darcs/patches/20080610222547-84dde-7606c2f575ba482fef17a9ef306789c047aaddec.gz b/_darcs/patches/20080610222547-84dde-7606c2f575ba482fef17a9ef306789c047aaddec.gz deleted file mode 100644 index b9110f8387..0000000000 Binary files a/_darcs/patches/20080610222547-84dde-7606c2f575ba482fef17a9ef306789c047aaddec.gz and /dev/null differ diff --git a/_darcs/patches/20080611014547-84dde-160f7b7711bc7e8a41fd2126f2f2ae8b499547cd.gz b/_darcs/patches/20080611014547-84dde-160f7b7711bc7e8a41fd2126f2f2ae8b499547cd.gz deleted file mode 100644 index 45301f7684..0000000000 Binary files a/_darcs/patches/20080611014547-84dde-160f7b7711bc7e8a41fd2126f2f2ae8b499547cd.gz and /dev/null differ diff --git a/_darcs/patches/20080611014616-84dde-49b6bdf4fde099282ea1b24da1091e8fe9a70f07.gz b/_darcs/patches/20080611014616-84dde-49b6bdf4fde099282ea1b24da1091e8fe9a70f07.gz deleted file mode 100644 index 6325e98ef0..0000000000 Binary files a/_darcs/patches/20080611014616-84dde-49b6bdf4fde099282ea1b24da1091e8fe9a70f07.gz and /dev/null differ diff --git a/_darcs/patches/20080611015609-84dde-e2789990adb9a166aa76d119b1e941dbf18fbcc9.gz b/_darcs/patches/20080611015609-84dde-e2789990adb9a166aa76d119b1e941dbf18fbcc9.gz deleted file mode 100644 index a56384f173..0000000000 Binary files a/_darcs/patches/20080611015609-84dde-e2789990adb9a166aa76d119b1e941dbf18fbcc9.gz and /dev/null differ diff --git a/_darcs/patches/20080611020810-84dde-32ab3b9e25532b92156d093dcf2ad24134cbcf4f.gz b/_darcs/patches/20080611020810-84dde-32ab3b9e25532b92156d093dcf2ad24134cbcf4f.gz deleted file mode 100644 index 4e0c5b4bc5..0000000000 Binary files a/_darcs/patches/20080611020810-84dde-32ab3b9e25532b92156d093dcf2ad24134cbcf4f.gz and /dev/null differ diff --git a/_darcs/patches/20080611022900-84dde-63cade69e8f65fd067b5e0c54caac080e03df979.gz b/_darcs/patches/20080611022900-84dde-63cade69e8f65fd067b5e0c54caac080e03df979.gz deleted file mode 100644 index c8e6a5d429..0000000000 Binary files a/_darcs/patches/20080611022900-84dde-63cade69e8f65fd067b5e0c54caac080e03df979.gz and /dev/null differ diff --git a/_darcs/patches/20080611023246-84dde-cd0a768e95af336cada91fc28246ae4d100bb854.gz b/_darcs/patches/20080611023246-84dde-cd0a768e95af336cada91fc28246ae4d100bb854.gz deleted file mode 100644 index 0fe7e36996..0000000000 Binary files a/_darcs/patches/20080611023246-84dde-cd0a768e95af336cada91fc28246ae4d100bb854.gz and /dev/null differ diff --git a/_darcs/patches/20080611141824-84dde-a1016e113f7ba0e32685d935cd57618c60db2265.gz b/_darcs/patches/20080611141824-84dde-a1016e113f7ba0e32685d935cd57618c60db2265.gz deleted file mode 100644 index 4a667867b5..0000000000 Binary files a/_darcs/patches/20080611141824-84dde-a1016e113f7ba0e32685d935cd57618c60db2265.gz and /dev/null differ diff --git a/_darcs/patches/20080611155258-84dde-7afab3908ff3464975f8478fcd41f065466170ae.gz b/_darcs/patches/20080611155258-84dde-7afab3908ff3464975f8478fcd41f065466170ae.gz deleted file mode 100644 index fe1587490e..0000000000 Binary files a/_darcs/patches/20080611155258-84dde-7afab3908ff3464975f8478fcd41f065466170ae.gz and /dev/null differ diff --git a/_darcs/patches/20080611155649-84dde-6200d33e93ed13278c22833d1225e3b9eb44b9b5.gz b/_darcs/patches/20080611155649-84dde-6200d33e93ed13278c22833d1225e3b9eb44b9b5.gz deleted file mode 100644 index d2f42cfe82..0000000000 Binary files a/_darcs/patches/20080611155649-84dde-6200d33e93ed13278c22833d1225e3b9eb44b9b5.gz and /dev/null differ diff --git a/_darcs/patches/20080611160318-84dde-d3c9a5c19651cc188420d7e0974e25e90d88c780.gz b/_darcs/patches/20080611160318-84dde-d3c9a5c19651cc188420d7e0974e25e90d88c780.gz deleted file mode 100644 index f46800b137..0000000000 Binary files a/_darcs/patches/20080611160318-84dde-d3c9a5c19651cc188420d7e0974e25e90d88c780.gz and /dev/null differ diff --git a/_darcs/patches/20080611160520-84dde-6e5b2d12cd9f0f601ffd57bc68246df738d6145a.gz b/_darcs/patches/20080611160520-84dde-6e5b2d12cd9f0f601ffd57bc68246df738d6145a.gz deleted file mode 100644 index 9890be2386..0000000000 Binary files a/_darcs/patches/20080611160520-84dde-6e5b2d12cd9f0f601ffd57bc68246df738d6145a.gz and /dev/null differ diff --git a/_darcs/patches/20080611162118-84dde-66a961cc25da36aad75652c5612b583247139eee.gz b/_darcs/patches/20080611162118-84dde-66a961cc25da36aad75652c5612b583247139eee.gz deleted file mode 100644 index 724f396581..0000000000 Binary files a/_darcs/patches/20080611162118-84dde-66a961cc25da36aad75652c5612b583247139eee.gz and /dev/null differ diff --git a/_darcs/patches/20080611163308-84dde-c918f04fe6bba3dd382b822ef59cb70a57bb9504.gz b/_darcs/patches/20080611163308-84dde-c918f04fe6bba3dd382b822ef59cb70a57bb9504.gz deleted file mode 100644 index 12c9f5b080..0000000000 Binary files a/_darcs/patches/20080611163308-84dde-c918f04fe6bba3dd382b822ef59cb70a57bb9504.gz and /dev/null differ diff --git a/_darcs/patches/20080611163645-84dde-f50f3f9b8230390565485d449a22dfddefd8f61d.gz b/_darcs/patches/20080611163645-84dde-f50f3f9b8230390565485d449a22dfddefd8f61d.gz deleted file mode 100644 index 65b6073308..0000000000 Binary files a/_darcs/patches/20080611163645-84dde-f50f3f9b8230390565485d449a22dfddefd8f61d.gz and /dev/null differ diff --git a/_darcs/patches/20080611170624-84dde-25c41cf9b285b65fecd67e8496c85c225df95ef9.gz b/_darcs/patches/20080611170624-84dde-25c41cf9b285b65fecd67e8496c85c225df95ef9.gz deleted file mode 100644 index 723e9c63d8..0000000000 Binary files a/_darcs/patches/20080611170624-84dde-25c41cf9b285b65fecd67e8496c85c225df95ef9.gz and /dev/null differ diff --git a/_darcs/patches/20080611170723-84dde-57fceb85b2db112733d0e90906765927277fd514.gz b/_darcs/patches/20080611170723-84dde-57fceb85b2db112733d0e90906765927277fd514.gz deleted file mode 100644 index 5f1433cb64..0000000000 Binary files a/_darcs/patches/20080611170723-84dde-57fceb85b2db112733d0e90906765927277fd514.gz and /dev/null differ diff --git a/_darcs/patches/20080611171009-84dde-54dc9de5d799d77950e09233fda6939e76c15247.gz b/_darcs/patches/20080611171009-84dde-54dc9de5d799d77950e09233fda6939e76c15247.gz deleted file mode 100644 index 576a753ce3..0000000000 Binary files a/_darcs/patches/20080611171009-84dde-54dc9de5d799d77950e09233fda6939e76c15247.gz and /dev/null differ diff --git a/_darcs/patches/20080611171351-84dde-1064792078b90c754de06132e610c8575663afb1.gz b/_darcs/patches/20080611171351-84dde-1064792078b90c754de06132e610c8575663afb1.gz deleted file mode 100644 index ec8657b23c..0000000000 Binary files a/_darcs/patches/20080611171351-84dde-1064792078b90c754de06132e610c8575663afb1.gz and /dev/null differ diff --git a/_darcs/patches/20080611181334-84dde-e9045179a94f8c78af9d660c57a37ce6f5fc9776.gz b/_darcs/patches/20080611181334-84dde-e9045179a94f8c78af9d660c57a37ce6f5fc9776.gz deleted file mode 100644 index da411ce21d..0000000000 Binary files a/_darcs/patches/20080611181334-84dde-e9045179a94f8c78af9d660c57a37ce6f5fc9776.gz and /dev/null differ diff --git a/_darcs/patches/20080611183634-84dde-97119e7ef1abb01f6ce8723955dc5d6e06e644a8.gz b/_darcs/patches/20080611183634-84dde-97119e7ef1abb01f6ce8723955dc5d6e06e644a8.gz deleted file mode 100644 index 622962338d..0000000000 Binary files a/_darcs/patches/20080611183634-84dde-97119e7ef1abb01f6ce8723955dc5d6e06e644a8.gz and /dev/null differ diff --git a/_darcs/patches/20080611184128-84dde-2671b7837a6285840cbc70d301241cbcd51bb711.gz b/_darcs/patches/20080611184128-84dde-2671b7837a6285840cbc70d301241cbcd51bb711.gz deleted file mode 100644 index 53c8e685dc..0000000000 Binary files a/_darcs/patches/20080611184128-84dde-2671b7837a6285840cbc70d301241cbcd51bb711.gz and /dev/null differ diff --git a/_darcs/patches/20080611190230-84dde-78ff0d6f6c370a33aabc4f0053651b6629f85499.gz b/_darcs/patches/20080611190230-84dde-78ff0d6f6c370a33aabc4f0053651b6629f85499.gz deleted file mode 100644 index 5faa894c0f..0000000000 Binary files a/_darcs/patches/20080611190230-84dde-78ff0d6f6c370a33aabc4f0053651b6629f85499.gz and /dev/null differ diff --git a/_darcs/patches/20080612015858-84dde-28a67b8a2204cd23ef2fe78ffa19ca1ded13887f.gz b/_darcs/patches/20080612015858-84dde-28a67b8a2204cd23ef2fe78ffa19ca1ded13887f.gz deleted file mode 100644 index 1407e709d2..0000000000 Binary files a/_darcs/patches/20080612015858-84dde-28a67b8a2204cd23ef2fe78ffa19ca1ded13887f.gz and /dev/null differ diff --git a/_darcs/patches/20080612020408-84dde-4a8518ea1c0a71b1b6268d47c70657ab52a2ab3f.gz b/_darcs/patches/20080612020408-84dde-4a8518ea1c0a71b1b6268d47c70657ab52a2ab3f.gz deleted file mode 100644 index 4a7e34f736..0000000000 Binary files a/_darcs/patches/20080612020408-84dde-4a8518ea1c0a71b1b6268d47c70657ab52a2ab3f.gz and /dev/null differ diff --git a/_darcs/patches/20080612165201-84dde-1abc45a0b2fd24002bc6f3449e9fc521d4f02eac.gz b/_darcs/patches/20080612165201-84dde-1abc45a0b2fd24002bc6f3449e9fc521d4f02eac.gz deleted file mode 100644 index 05b5fbd8b6..0000000000 Binary files a/_darcs/patches/20080612165201-84dde-1abc45a0b2fd24002bc6f3449e9fc521d4f02eac.gz and /dev/null differ diff --git a/_darcs/patches/20080612174453-84dde-035da48b74c9148d6dbdd4650c713f434419e9e6.gz b/_darcs/patches/20080612174453-84dde-035da48b74c9148d6dbdd4650c713f434419e9e6.gz deleted file mode 100644 index 63229b07ce..0000000000 Binary files a/_darcs/patches/20080612174453-84dde-035da48b74c9148d6dbdd4650c713f434419e9e6.gz and /dev/null differ diff --git a/_darcs/patches/20080612184028-84dde-1f919ab373e5731efd403986ae760116769566d9.gz b/_darcs/patches/20080612184028-84dde-1f919ab373e5731efd403986ae760116769566d9.gz deleted file mode 100644 index 4559346680..0000000000 Binary files a/_darcs/patches/20080612184028-84dde-1f919ab373e5731efd403986ae760116769566d9.gz and /dev/null differ diff --git a/_darcs/patches/20080612185322-84dde-b14d4cbc90f3b5b04931e4b5d3c20f027abb609c.gz b/_darcs/patches/20080612185322-84dde-b14d4cbc90f3b5b04931e4b5d3c20f027abb609c.gz deleted file mode 100644 index 142d52bf46..0000000000 Binary files a/_darcs/patches/20080612185322-84dde-b14d4cbc90f3b5b04931e4b5d3c20f027abb609c.gz and /dev/null differ diff --git a/_darcs/patches/20080612190447-84dde-f5752112cd129b44719114e56bec7f3745c665fd.gz b/_darcs/patches/20080612190447-84dde-f5752112cd129b44719114e56bec7f3745c665fd.gz deleted file mode 100644 index 80b605a73e..0000000000 Binary files a/_darcs/patches/20080612190447-84dde-f5752112cd129b44719114e56bec7f3745c665fd.gz and /dev/null differ diff --git a/_darcs/patches/20080612191606-84dde-653d6707f79b18c5e92defb6d35f7af088655137.gz b/_darcs/patches/20080612191606-84dde-653d6707f79b18c5e92defb6d35f7af088655137.gz deleted file mode 100644 index c8fce73847..0000000000 Binary files a/_darcs/patches/20080612191606-84dde-653d6707f79b18c5e92defb6d35f7af088655137.gz and /dev/null differ diff --git a/_darcs/patches/20080612192221-84dde-1c39a22068e64dc3dee8902a730a6f1264728874.gz b/_darcs/patches/20080612192221-84dde-1c39a22068e64dc3dee8902a730a6f1264728874.gz deleted file mode 100644 index a7bc3cad21..0000000000 Binary files a/_darcs/patches/20080612192221-84dde-1c39a22068e64dc3dee8902a730a6f1264728874.gz and /dev/null differ diff --git a/_darcs/patches/20080612192650-84dde-3bab08162d9e1e6def8712070c509306227ee645.gz b/_darcs/patches/20080612192650-84dde-3bab08162d9e1e6def8712070c509306227ee645.gz deleted file mode 100644 index 90219ac4d3..0000000000 Binary files a/_darcs/patches/20080612192650-84dde-3bab08162d9e1e6def8712070c509306227ee645.gz and /dev/null differ diff --git a/_darcs/patches/20080612193945-84dde-2c368ba1273814401f741ef79333c0cd8a43f90d.gz b/_darcs/patches/20080612193945-84dde-2c368ba1273814401f741ef79333c0cd8a43f90d.gz deleted file mode 100644 index 415c57f3bd..0000000000 Binary files a/_darcs/patches/20080612193945-84dde-2c368ba1273814401f741ef79333c0cd8a43f90d.gz and /dev/null differ diff --git a/_darcs/patches/20080612194656-84dde-d4cc2ac343b17502adf7c6190145d5041f554420.gz b/_darcs/patches/20080612194656-84dde-d4cc2ac343b17502adf7c6190145d5041f554420.gz deleted file mode 100644 index 036d24eb59..0000000000 Binary files a/_darcs/patches/20080612194656-84dde-d4cc2ac343b17502adf7c6190145d5041f554420.gz and /dev/null differ diff --git a/_darcs/patches/20080612195324-84dde-cab5efa3218f3cd3632ced1c819a5be2edb3c5a0.gz b/_darcs/patches/20080612195324-84dde-cab5efa3218f3cd3632ced1c819a5be2edb3c5a0.gz deleted file mode 100644 index e8c1e0977a..0000000000 Binary files a/_darcs/patches/20080612195324-84dde-cab5efa3218f3cd3632ced1c819a5be2edb3c5a0.gz and /dev/null differ diff --git a/_darcs/patches/20080612200424-84dde-b96bf533612308e0ecd695365802f3da3f2601a4.gz b/_darcs/patches/20080612200424-84dde-b96bf533612308e0ecd695365802f3da3f2601a4.gz deleted file mode 100644 index 471d72cc63..0000000000 Binary files a/_darcs/patches/20080612200424-84dde-b96bf533612308e0ecd695365802f3da3f2601a4.gz and /dev/null differ diff --git a/_darcs/patches/20080613144913-84dde-3e970b4e6f19ea1e0db09d7ab133a6c148be7a75.gz b/_darcs/patches/20080613144913-84dde-3e970b4e6f19ea1e0db09d7ab133a6c148be7a75.gz deleted file mode 100644 index 4e15894f03..0000000000 Binary files a/_darcs/patches/20080613144913-84dde-3e970b4e6f19ea1e0db09d7ab133a6c148be7a75.gz and /dev/null differ diff --git a/_darcs/patches/20080613152420-84dde-76da80c7345815986ee47fab45dcbde2bad895ab.gz b/_darcs/patches/20080613152420-84dde-76da80c7345815986ee47fab45dcbde2bad895ab.gz deleted file mode 100644 index 5d142ba5b0..0000000000 Binary files a/_darcs/patches/20080613152420-84dde-76da80c7345815986ee47fab45dcbde2bad895ab.gz and /dev/null differ diff --git a/_darcs/patches/20080613152520-84dde-20e2d44633ba9c3953db12ebd080a7bd0296e9d4.gz b/_darcs/patches/20080613152520-84dde-20e2d44633ba9c3953db12ebd080a7bd0296e9d4.gz deleted file mode 100644 index 2c3a80f31c..0000000000 Binary files a/_darcs/patches/20080613152520-84dde-20e2d44633ba9c3953db12ebd080a7bd0296e9d4.gz and /dev/null differ diff --git a/_darcs/patches/20080613153012-84dde-3b5b4670681fc40dc62d82a1609ebca69a921bda.gz b/_darcs/patches/20080613153012-84dde-3b5b4670681fc40dc62d82a1609ebca69a921bda.gz deleted file mode 100644 index 6d92e10297..0000000000 Binary files a/_darcs/patches/20080613153012-84dde-3b5b4670681fc40dc62d82a1609ebca69a921bda.gz and /dev/null differ diff --git a/_darcs/patches/20080613153303-84dde-556ed40d75c3701df3a3ce7b5415896f9ac66d12.gz b/_darcs/patches/20080613153303-84dde-556ed40d75c3701df3a3ce7b5415896f9ac66d12.gz deleted file mode 100644 index 5b72c0ec78..0000000000 Binary files a/_darcs/patches/20080613153303-84dde-556ed40d75c3701df3a3ce7b5415896f9ac66d12.gz and /dev/null differ diff --git a/_darcs/patches/20080613154632-84dde-d2eec5c1472d76eb5d3e8eb253b6a3572a8f721b.gz b/_darcs/patches/20080613154632-84dde-d2eec5c1472d76eb5d3e8eb253b6a3572a8f721b.gz deleted file mode 100644 index a724590897..0000000000 Binary files a/_darcs/patches/20080613154632-84dde-d2eec5c1472d76eb5d3e8eb253b6a3572a8f721b.gz and /dev/null differ diff --git a/_darcs/patches/20080613155540-84dde-5ce1ea63b57e3422f1f42f853ba34099d4b85992.gz b/_darcs/patches/20080613155540-84dde-5ce1ea63b57e3422f1f42f853ba34099d4b85992.gz deleted file mode 100644 index 6d6c0a1c65..0000000000 Binary files a/_darcs/patches/20080613155540-84dde-5ce1ea63b57e3422f1f42f853ba34099d4b85992.gz and /dev/null differ diff --git a/_darcs/patches/20080613171538-84dde-ffd6abee1ae304e55f4ff4224dfebf4be8fff0fd.gz b/_darcs/patches/20080613171538-84dde-ffd6abee1ae304e55f4ff4224dfebf4be8fff0fd.gz deleted file mode 100644 index 1d4dce6d70..0000000000 Binary files a/_darcs/patches/20080613171538-84dde-ffd6abee1ae304e55f4ff4224dfebf4be8fff0fd.gz and /dev/null differ diff --git a/_darcs/patches/20080613175344-84dde-253b5b55ea8ae85b807cba2e23ea885c6bbb0b8f.gz b/_darcs/patches/20080613175344-84dde-253b5b55ea8ae85b807cba2e23ea885c6bbb0b8f.gz deleted file mode 100644 index ed149c0656..0000000000 Binary files a/_darcs/patches/20080613175344-84dde-253b5b55ea8ae85b807cba2e23ea885c6bbb0b8f.gz and /dev/null differ diff --git a/_darcs/patches/20080613183325-84dde-cef08cb550ece879eae52008906cdf71bc6d5c17.gz b/_darcs/patches/20080613183325-84dde-cef08cb550ece879eae52008906cdf71bc6d5c17.gz deleted file mode 100644 index 1ae2fee607..0000000000 Binary files a/_darcs/patches/20080613183325-84dde-cef08cb550ece879eae52008906cdf71bc6d5c17.gz and /dev/null differ diff --git a/_darcs/patches/20080613184638-84dde-aa7059348899949f3e0c6cfa02d08c41458384a1.gz b/_darcs/patches/20080613184638-84dde-aa7059348899949f3e0c6cfa02d08c41458384a1.gz deleted file mode 100644 index d12ace08b0..0000000000 Binary files a/_darcs/patches/20080613184638-84dde-aa7059348899949f3e0c6cfa02d08c41458384a1.gz and /dev/null differ diff --git a/_darcs/patches/20080613184833-84dde-560f55c55492f909c3a5a0948e4ef3b072208bcd.gz b/_darcs/patches/20080613184833-84dde-560f55c55492f909c3a5a0948e4ef3b072208bcd.gz deleted file mode 100644 index 4784e76488..0000000000 Binary files a/_darcs/patches/20080613184833-84dde-560f55c55492f909c3a5a0948e4ef3b072208bcd.gz and /dev/null differ diff --git a/_darcs/patches/20080614122038-84dde-af7c2be04d41c1d85b62cf74724fe8e4a877a84a.gz b/_darcs/patches/20080614122038-84dde-af7c2be04d41c1d85b62cf74724fe8e4a877a84a.gz deleted file mode 100644 index 0a15918a12..0000000000 Binary files a/_darcs/patches/20080614122038-84dde-af7c2be04d41c1d85b62cf74724fe8e4a877a84a.gz and /dev/null differ diff --git a/_darcs/patches/20080614122155-84dde-81e6de701ce6e7171a252b0b8ad442373b3bb24a.gz b/_darcs/patches/20080614122155-84dde-81e6de701ce6e7171a252b0b8ad442373b3bb24a.gz deleted file mode 100644 index 7848ea2f61..0000000000 Binary files a/_darcs/patches/20080614122155-84dde-81e6de701ce6e7171a252b0b8ad442373b3bb24a.gz and /dev/null differ diff --git a/_darcs/patches/20080614122517-84dde-c78fbdd9c3329e87f405040e851650a81ab63d5c.gz b/_darcs/patches/20080614122517-84dde-c78fbdd9c3329e87f405040e851650a81ab63d5c.gz deleted file mode 100644 index 22faa01971..0000000000 Binary files a/_darcs/patches/20080614122517-84dde-c78fbdd9c3329e87f405040e851650a81ab63d5c.gz and /dev/null differ diff --git a/_darcs/patches/20080615014742-84dde-d39f4c7744dc430fdb4ad64a172ffe3e909ee4a0.gz b/_darcs/patches/20080615014742-84dde-d39f4c7744dc430fdb4ad64a172ffe3e909ee4a0.gz deleted file mode 100644 index be52963fe0..0000000000 Binary files a/_darcs/patches/20080615014742-84dde-d39f4c7744dc430fdb4ad64a172ffe3e909ee4a0.gz and /dev/null differ diff --git a/_darcs/patches/20080615021852-84dde-38b250ba3bf4c437e7151290c8de543b519722c6.gz b/_darcs/patches/20080615021852-84dde-38b250ba3bf4c437e7151290c8de543b519722c6.gz deleted file mode 100644 index 2b905f63ed..0000000000 Binary files a/_darcs/patches/20080615021852-84dde-38b250ba3bf4c437e7151290c8de543b519722c6.gz and /dev/null differ diff --git a/_darcs/patches/20080615030202-84dde-ebed7919c227ce280dc818f301e15001eb8b5926.gz b/_darcs/patches/20080615030202-84dde-ebed7919c227ce280dc818f301e15001eb8b5926.gz deleted file mode 100644 index 872b7e4402..0000000000 Binary files a/_darcs/patches/20080615030202-84dde-ebed7919c227ce280dc818f301e15001eb8b5926.gz and /dev/null differ diff --git a/_darcs/patches/20080615030319-84dde-3dc38d515b029424027c3160e06e62ce8b7dd29a.gz b/_darcs/patches/20080615030319-84dde-3dc38d515b029424027c3160e06e62ce8b7dd29a.gz deleted file mode 100644 index d49cdc139c..0000000000 Binary files a/_darcs/patches/20080615030319-84dde-3dc38d515b029424027c3160e06e62ce8b7dd29a.gz and /dev/null differ diff --git a/_darcs/patches/20080615035012-84dde-0450954528a270f46a4ac5d2b077af793ba8c1f3.gz b/_darcs/patches/20080615035012-84dde-0450954528a270f46a4ac5d2b077af793ba8c1f3.gz deleted file mode 100644 index e1bc94d177..0000000000 Binary files a/_darcs/patches/20080615035012-84dde-0450954528a270f46a4ac5d2b077af793ba8c1f3.gz and /dev/null differ diff --git a/_darcs/patches/20080615035510-84dde-3026b20678070004d8e8439d5e08e01ee6ef2b8b.gz b/_darcs/patches/20080615035510-84dde-3026b20678070004d8e8439d5e08e01ee6ef2b8b.gz deleted file mode 100644 index 0bf041a64f..0000000000 Binary files a/_darcs/patches/20080615035510-84dde-3026b20678070004d8e8439d5e08e01ee6ef2b8b.gz and /dev/null differ diff --git a/_darcs/patches/20080615152047-84dde-eca46b9a1e3e0adb81a29d1b43bf87ee93e4f535.gz b/_darcs/patches/20080615152047-84dde-eca46b9a1e3e0adb81a29d1b43bf87ee93e4f535.gz deleted file mode 100644 index fa0c299643..0000000000 Binary files a/_darcs/patches/20080615152047-84dde-eca46b9a1e3e0adb81a29d1b43bf87ee93e4f535.gz and /dev/null differ diff --git a/_darcs/patches/20080615153123-84dde-6153ed4ad0cce6908a103a507e6f6ffcf23620f2.gz b/_darcs/patches/20080615153123-84dde-6153ed4ad0cce6908a103a507e6f6ffcf23620f2.gz deleted file mode 100644 index 8805dfb4c8..0000000000 Binary files a/_darcs/patches/20080615153123-84dde-6153ed4ad0cce6908a103a507e6f6ffcf23620f2.gz and /dev/null differ diff --git a/_darcs/patches/20080617043650-84dde-cef7662e9dff3ac0a1187586fc4cdcfca1d08087.gz b/_darcs/patches/20080617043650-84dde-cef7662e9dff3ac0a1187586fc4cdcfca1d08087.gz deleted file mode 100644 index 4791647eae..0000000000 Binary files a/_darcs/patches/20080617043650-84dde-cef7662e9dff3ac0a1187586fc4cdcfca1d08087.gz and /dev/null differ diff --git a/_darcs/patches/20080617044054-84dde-67eb7cd429c8f5bef64273c73a58dcb43816de02.gz b/_darcs/patches/20080617044054-84dde-67eb7cd429c8f5bef64273c73a58dcb43816de02.gz deleted file mode 100644 index 71f7adf971..0000000000 Binary files a/_darcs/patches/20080617044054-84dde-67eb7cd429c8f5bef64273c73a58dcb43816de02.gz and /dev/null differ diff --git a/_darcs/patches/20080617121642-84dde-e4fc7c2887bbd759c8221063c6b9b3d09d219985.gz b/_darcs/patches/20080617121642-84dde-e4fc7c2887bbd759c8221063c6b9b3d09d219985.gz deleted file mode 100644 index 8e3b82ff5c..0000000000 Binary files a/_darcs/patches/20080617121642-84dde-e4fc7c2887bbd759c8221063c6b9b3d09d219985.gz and /dev/null differ diff --git a/_darcs/patches/20080617133501-84dde-adec156ac58b84cce41ae0e9bde58cf7637e6c42.gz b/_darcs/patches/20080617133501-84dde-adec156ac58b84cce41ae0e9bde58cf7637e6c42.gz deleted file mode 100644 index 012d35085f..0000000000 Binary files a/_darcs/patches/20080617133501-84dde-adec156ac58b84cce41ae0e9bde58cf7637e6c42.gz and /dev/null differ diff --git a/_darcs/patches/20080617133539-84dde-fdf6176d8c4f45de1c228224b0ea881b78c0c68a.gz b/_darcs/patches/20080617133539-84dde-fdf6176d8c4f45de1c228224b0ea881b78c0c68a.gz deleted file mode 100644 index df9948f5ee..0000000000 Binary files a/_darcs/patches/20080617133539-84dde-fdf6176d8c4f45de1c228224b0ea881b78c0c68a.gz and /dev/null differ diff --git a/_darcs/patches/20080617133941-84dde-556a7935411ba955d36f7eab90570dc8398aa5cf.gz b/_darcs/patches/20080617133941-84dde-556a7935411ba955d36f7eab90570dc8398aa5cf.gz deleted file mode 100644 index 2a2db80e6f..0000000000 Binary files a/_darcs/patches/20080617133941-84dde-556a7935411ba955d36f7eab90570dc8398aa5cf.gz and /dev/null differ diff --git a/_darcs/patches/20080617144942-84dde-a2a1040a42254903a64cff0aae3c1912ed951473.gz b/_darcs/patches/20080617144942-84dde-a2a1040a42254903a64cff0aae3c1912ed951473.gz deleted file mode 100644 index 340f0f73f9..0000000000 Binary files a/_darcs/patches/20080617144942-84dde-a2a1040a42254903a64cff0aae3c1912ed951473.gz and /dev/null differ diff --git a/_darcs/patches/20080617145140-84dde-76c88b7b9cc8caf54d8f8b60fe7fbd3bb0ad2c39.gz b/_darcs/patches/20080617145140-84dde-76c88b7b9cc8caf54d8f8b60fe7fbd3bb0ad2c39.gz deleted file mode 100644 index dfb4ea90dc..0000000000 Binary files a/_darcs/patches/20080617145140-84dde-76c88b7b9cc8caf54d8f8b60fe7fbd3bb0ad2c39.gz and /dev/null differ diff --git a/_darcs/patches/20080617150509-84dde-3534c0a188ee3c81ca5597e8f5eba75d5ed5383e.gz b/_darcs/patches/20080617150509-84dde-3534c0a188ee3c81ca5597e8f5eba75d5ed5383e.gz deleted file mode 100644 index 3eef1f00bf..0000000000 Binary files a/_darcs/patches/20080617150509-84dde-3534c0a188ee3c81ca5597e8f5eba75d5ed5383e.gz and /dev/null differ diff --git a/_darcs/patches/20080617150656-84dde-ebeaab4cd8c8c52ba27a2fc8cee177ede9b63246.gz b/_darcs/patches/20080617150656-84dde-ebeaab4cd8c8c52ba27a2fc8cee177ede9b63246.gz deleted file mode 100644 index 205b6b2b74..0000000000 Binary files a/_darcs/patches/20080617150656-84dde-ebeaab4cd8c8c52ba27a2fc8cee177ede9b63246.gz and /dev/null differ diff --git a/_darcs/patches/20080617151249-84dde-49ae79fe369b0a6917fa9d0f2abd907bb13ba389.gz b/_darcs/patches/20080617151249-84dde-49ae79fe369b0a6917fa9d0f2abd907bb13ba389.gz deleted file mode 100644 index 7777a9c6a6..0000000000 Binary files a/_darcs/patches/20080617151249-84dde-49ae79fe369b0a6917fa9d0f2abd907bb13ba389.gz and /dev/null differ diff --git a/_darcs/patches/20080617152051-84dde-bc311c05a6cb15cdc5ac52f56964fa98f42f3927.gz b/_darcs/patches/20080617152051-84dde-bc311c05a6cb15cdc5ac52f56964fa98f42f3927.gz deleted file mode 100644 index 5a14ea354b..0000000000 Binary files a/_darcs/patches/20080617152051-84dde-bc311c05a6cb15cdc5ac52f56964fa98f42f3927.gz and /dev/null differ diff --git a/_darcs/patches/20080617152444-84dde-726e19c7b503143b201b9008b21768729603c302.gz b/_darcs/patches/20080617152444-84dde-726e19c7b503143b201b9008b21768729603c302.gz deleted file mode 100644 index ed067b619b..0000000000 Binary files a/_darcs/patches/20080617152444-84dde-726e19c7b503143b201b9008b21768729603c302.gz and /dev/null differ diff --git a/_darcs/patches/20080618015146-84dde-9d08f680cf68bbb677d7944af2ffd2e7520c6997.gz b/_darcs/patches/20080618015146-84dde-9d08f680cf68bbb677d7944af2ffd2e7520c6997.gz deleted file mode 100644 index b79cf03504..0000000000 Binary files a/_darcs/patches/20080618015146-84dde-9d08f680cf68bbb677d7944af2ffd2e7520c6997.gz and /dev/null differ diff --git a/_darcs/patches/20080618015423-84dde-3644c6b25bf00333b5d2eb495b6740c1c26751b1.gz b/_darcs/patches/20080618015423-84dde-3644c6b25bf00333b5d2eb495b6740c1c26751b1.gz deleted file mode 100644 index 0597a3a0e3..0000000000 Binary files a/_darcs/patches/20080618015423-84dde-3644c6b25bf00333b5d2eb495b6740c1c26751b1.gz and /dev/null differ diff --git a/_darcs/patches/20080618025253-84dde-3a9f3dceccc366b069b931b4159d8160c1ad62ce.gz b/_darcs/patches/20080618025253-84dde-3a9f3dceccc366b069b931b4159d8160c1ad62ce.gz deleted file mode 100644 index 6eafc69120..0000000000 Binary files a/_darcs/patches/20080618025253-84dde-3a9f3dceccc366b069b931b4159d8160c1ad62ce.gz and /dev/null differ diff --git a/_darcs/patches/20080618030019-84dde-194b5591d9da98c74a513db540b802ed56455ae1.gz b/_darcs/patches/20080618030019-84dde-194b5591d9da98c74a513db540b802ed56455ae1.gz deleted file mode 100644 index f4eab8d2b0..0000000000 Binary files a/_darcs/patches/20080618030019-84dde-194b5591d9da98c74a513db540b802ed56455ae1.gz and /dev/null differ diff --git a/_darcs/patches/20080618035739-84dde-a562cffe186780d5f03cf53798ea249b2bda9fb1.gz b/_darcs/patches/20080618035739-84dde-a562cffe186780d5f03cf53798ea249b2bda9fb1.gz deleted file mode 100644 index ca2481eb0c..0000000000 Binary files a/_darcs/patches/20080618035739-84dde-a562cffe186780d5f03cf53798ea249b2bda9fb1.gz and /dev/null differ diff --git a/_darcs/patches/20080618052638-84dde-909e51dbd5b9eadadf18cd010868baa18ea2349a.gz b/_darcs/patches/20080618052638-84dde-909e51dbd5b9eadadf18cd010868baa18ea2349a.gz deleted file mode 100644 index 2d61eb343e..0000000000 Binary files a/_darcs/patches/20080618052638-84dde-909e51dbd5b9eadadf18cd010868baa18ea2349a.gz and /dev/null differ diff --git a/_darcs/patches/20080618054847-84dde-2057020f22c3179fb93d5a3a7377e4f04bb74c83.gz b/_darcs/patches/20080618054847-84dde-2057020f22c3179fb93d5a3a7377e4f04bb74c83.gz deleted file mode 100644 index 07def6b505..0000000000 Binary files a/_darcs/patches/20080618054847-84dde-2057020f22c3179fb93d5a3a7377e4f04bb74c83.gz and /dev/null differ diff --git a/_darcs/patches/20080618055349-84dde-8ac49632d06a7b271d13912d46d26c7c1f1ec793.gz b/_darcs/patches/20080618055349-84dde-8ac49632d06a7b271d13912d46d26c7c1f1ec793.gz deleted file mode 100644 index ee6eaa39b2..0000000000 Binary files a/_darcs/patches/20080618055349-84dde-8ac49632d06a7b271d13912d46d26c7c1f1ec793.gz and /dev/null differ diff --git a/_darcs/patches/20080618055657-84dde-269a234dd68867ca4f159031fe206e31131ef108.gz b/_darcs/patches/20080618055657-84dde-269a234dd68867ca4f159031fe206e31131ef108.gz deleted file mode 100644 index 25f7af80a6..0000000000 Binary files a/_darcs/patches/20080618055657-84dde-269a234dd68867ca4f159031fe206e31131ef108.gz and /dev/null differ diff --git a/_darcs/patches/20080618055836-84dde-7a0c460ec125581b659df39c8a079b9fcdc8dbaa.gz b/_darcs/patches/20080618055836-84dde-7a0c460ec125581b659df39c8a079b9fcdc8dbaa.gz deleted file mode 100644 index ecc4fb2d3a..0000000000 Binary files a/_darcs/patches/20080618055836-84dde-7a0c460ec125581b659df39c8a079b9fcdc8dbaa.gz and /dev/null differ diff --git a/_darcs/patches/20080618060549-84dde-d32f1f167a69ea4f98f6a4a2f2ac753675e8cafd.gz b/_darcs/patches/20080618060549-84dde-d32f1f167a69ea4f98f6a4a2f2ac753675e8cafd.gz deleted file mode 100644 index 826cbd9814..0000000000 Binary files a/_darcs/patches/20080618060549-84dde-d32f1f167a69ea4f98f6a4a2f2ac753675e8cafd.gz and /dev/null differ diff --git a/_darcs/patches/20080618061117-84dde-6983ed79c2d0e985fc8b00ac7c270b46d92bc20d.gz b/_darcs/patches/20080618061117-84dde-6983ed79c2d0e985fc8b00ac7c270b46d92bc20d.gz deleted file mode 100644 index 7eb6a65588..0000000000 Binary files a/_darcs/patches/20080618061117-84dde-6983ed79c2d0e985fc8b00ac7c270b46d92bc20d.gz and /dev/null differ diff --git a/_darcs/patches/20080618061833-84dde-e77ea989a6caaf1d6722d6e82c1bcd04da44f486.gz b/_darcs/patches/20080618061833-84dde-e77ea989a6caaf1d6722d6e82c1bcd04da44f486.gz deleted file mode 100644 index c8a010adbd..0000000000 Binary files a/_darcs/patches/20080618061833-84dde-e77ea989a6caaf1d6722d6e82c1bcd04da44f486.gz and /dev/null differ diff --git a/_darcs/patches/20080618062059-84dde-f3d27969a876fd89c5f01fb690ca367a51ec1b5e.gz b/_darcs/patches/20080618062059-84dde-f3d27969a876fd89c5f01fb690ca367a51ec1b5e.gz deleted file mode 100644 index 924f3bb41d..0000000000 Binary files a/_darcs/patches/20080618062059-84dde-f3d27969a876fd89c5f01fb690ca367a51ec1b5e.gz and /dev/null differ diff --git a/_darcs/patches/20080618065320-84dde-d013191a57a3de66a038feb88ad46ceff1e986ca.gz b/_darcs/patches/20080618065320-84dde-d013191a57a3de66a038feb88ad46ceff1e986ca.gz deleted file mode 100644 index 65aa470117..0000000000 Binary files a/_darcs/patches/20080618065320-84dde-d013191a57a3de66a038feb88ad46ceff1e986ca.gz and /dev/null differ diff --git a/_darcs/patches/20080618065508-84dde-855999e8433ac5882638635c43bd52b8940b59d4.gz b/_darcs/patches/20080618065508-84dde-855999e8433ac5882638635c43bd52b8940b59d4.gz deleted file mode 100644 index 42d7c74d66..0000000000 Binary files a/_darcs/patches/20080618065508-84dde-855999e8433ac5882638635c43bd52b8940b59d4.gz and /dev/null differ diff --git a/_darcs/patches/20080618070430-84dde-403d695209ab88f2d0c4e54da333698c6fe5883a.gz b/_darcs/patches/20080618070430-84dde-403d695209ab88f2d0c4e54da333698c6fe5883a.gz deleted file mode 100644 index e353d44e72..0000000000 Binary files a/_darcs/patches/20080618070430-84dde-403d695209ab88f2d0c4e54da333698c6fe5883a.gz and /dev/null differ diff --git a/_darcs/patches/20080618070710-84dde-bcf4cce6586cf22909659efefc410dded33204c3.gz b/_darcs/patches/20080618070710-84dde-bcf4cce6586cf22909659efefc410dded33204c3.gz deleted file mode 100644 index b9602d1990..0000000000 Binary files a/_darcs/patches/20080618070710-84dde-bcf4cce6586cf22909659efefc410dded33204c3.gz and /dev/null differ diff --git a/_darcs/patches/20080618071207-84dde-a7903c5a806e16a39101244ef721204a7ce2bd46.gz b/_darcs/patches/20080618071207-84dde-a7903c5a806e16a39101244ef721204a7ce2bd46.gz deleted file mode 100644 index cc09f98982..0000000000 Binary files a/_darcs/patches/20080618071207-84dde-a7903c5a806e16a39101244ef721204a7ce2bd46.gz and /dev/null differ diff --git a/_darcs/patches/20080618110126-84dde-4dd97a6e08fb95b0f9860edda45ccaedb3958b20.gz b/_darcs/patches/20080618110126-84dde-4dd97a6e08fb95b0f9860edda45ccaedb3958b20.gz deleted file mode 100644 index 422e0c9b1a..0000000000 Binary files a/_darcs/patches/20080618110126-84dde-4dd97a6e08fb95b0f9860edda45ccaedb3958b20.gz and /dev/null differ diff --git a/_darcs/patches/20080618110853-84dde-b24a19acffad53362a80c92f1dddafab37a457c6.gz b/_darcs/patches/20080618110853-84dde-b24a19acffad53362a80c92f1dddafab37a457c6.gz deleted file mode 100644 index 16928f2bc6..0000000000 Binary files a/_darcs/patches/20080618110853-84dde-b24a19acffad53362a80c92f1dddafab37a457c6.gz and /dev/null differ diff --git a/_darcs/patches/20080618111512-84dde-835a9d92386c5a5a5e51b0879c04575e9a80fdf5.gz b/_darcs/patches/20080618111512-84dde-835a9d92386c5a5a5e51b0879c04575e9a80fdf5.gz deleted file mode 100644 index aed79ed410..0000000000 Binary files a/_darcs/patches/20080618111512-84dde-835a9d92386c5a5a5e51b0879c04575e9a80fdf5.gz and /dev/null differ diff --git a/_darcs/patches/20080618112624-84dde-76bbb4338585852abef7ed6ced26784a77f01a34.gz b/_darcs/patches/20080618112624-84dde-76bbb4338585852abef7ed6ced26784a77f01a34.gz deleted file mode 100644 index 9a66bedd05..0000000000 Binary files a/_darcs/patches/20080618112624-84dde-76bbb4338585852abef7ed6ced26784a77f01a34.gz and /dev/null differ diff --git a/_darcs/patches/20080618113720-84dde-4483d18751e7f82480c925cce4d1f84095598742.gz b/_darcs/patches/20080618113720-84dde-4483d18751e7f82480c925cce4d1f84095598742.gz deleted file mode 100644 index 11fb3fd804..0000000000 Binary files a/_darcs/patches/20080618113720-84dde-4483d18751e7f82480c925cce4d1f84095598742.gz and /dev/null differ diff --git a/_darcs/patches/20080618114310-84dde-15b224bb16d434150af457bc3b08de58e3833abd.gz b/_darcs/patches/20080618114310-84dde-15b224bb16d434150af457bc3b08de58e3833abd.gz deleted file mode 100644 index f3afefbef8..0000000000 Binary files a/_darcs/patches/20080618114310-84dde-15b224bb16d434150af457bc3b08de58e3833abd.gz and /dev/null differ diff --git a/_darcs/patches/20080618123941-84dde-ec6e2fdef8c561714e509dc47e14aa47c58a9c44.gz b/_darcs/patches/20080618123941-84dde-ec6e2fdef8c561714e509dc47e14aa47c58a9c44.gz deleted file mode 100644 index 4a0e64ec61..0000000000 Binary files a/_darcs/patches/20080618123941-84dde-ec6e2fdef8c561714e509dc47e14aa47c58a9c44.gz and /dev/null differ diff --git a/_darcs/patches/20080618131519-84dde-a3af7c41be8d9606f39ce4be3029697f913ab053.gz b/_darcs/patches/20080618131519-84dde-a3af7c41be8d9606f39ce4be3029697f913ab053.gz deleted file mode 100644 index 713415c991..0000000000 Binary files a/_darcs/patches/20080618131519-84dde-a3af7c41be8d9606f39ce4be3029697f913ab053.gz and /dev/null differ diff --git a/_darcs/patches/20080618131636-84dde-ef33dcb94c630fdd8831d904caadb9e669ce6cb3.gz b/_darcs/patches/20080618131636-84dde-ef33dcb94c630fdd8831d904caadb9e669ce6cb3.gz deleted file mode 100644 index 3c773cd88a..0000000000 Binary files a/_darcs/patches/20080618131636-84dde-ef33dcb94c630fdd8831d904caadb9e669ce6cb3.gz and /dev/null differ diff --git a/_darcs/patches/20080618132613-84dde-a7d78778af37cf3f20bfeb70ae2d381bc9ae92d4.gz b/_darcs/patches/20080618132613-84dde-a7d78778af37cf3f20bfeb70ae2d381bc9ae92d4.gz deleted file mode 100644 index 7b315d9d5e..0000000000 Binary files a/_darcs/patches/20080618132613-84dde-a7d78778af37cf3f20bfeb70ae2d381bc9ae92d4.gz and /dev/null differ diff --git a/_darcs/patches/20080618133251-84dde-40c6326cb27ac20e52ef456a3f05e111c6fae97c.gz b/_darcs/patches/20080618133251-84dde-40c6326cb27ac20e52ef456a3f05e111c6fae97c.gz deleted file mode 100644 index 5aa83d9f97..0000000000 Binary files a/_darcs/patches/20080618133251-84dde-40c6326cb27ac20e52ef456a3f05e111c6fae97c.gz and /dev/null differ diff --git a/_darcs/patches/20080618150557-84dde-61120bcf12e9ecfaafda079d1a943c75f99f5930.gz b/_darcs/patches/20080618150557-84dde-61120bcf12e9ecfaafda079d1a943c75f99f5930.gz deleted file mode 100644 index 1a8829c61d..0000000000 Binary files a/_darcs/patches/20080618150557-84dde-61120bcf12e9ecfaafda079d1a943c75f99f5930.gz and /dev/null differ diff --git a/_darcs/patches/20080618151103-84dde-f3af75746f3f240c0fad2e0fec1d01459df9e48e.gz b/_darcs/patches/20080618151103-84dde-f3af75746f3f240c0fad2e0fec1d01459df9e48e.gz deleted file mode 100644 index e244fdcd48..0000000000 Binary files a/_darcs/patches/20080618151103-84dde-f3af75746f3f240c0fad2e0fec1d01459df9e48e.gz and /dev/null differ diff --git a/_darcs/patches/20080618152004-84dde-4d97997a9842ff1db550152266b51048df9e7281.gz b/_darcs/patches/20080618152004-84dde-4d97997a9842ff1db550152266b51048df9e7281.gz deleted file mode 100644 index 375fd12e51..0000000000 Binary files a/_darcs/patches/20080618152004-84dde-4d97997a9842ff1db550152266b51048df9e7281.gz and /dev/null differ diff --git a/_darcs/patches/20080618153036-84dde-06329e00661924826d6fd2b5b0682957c21c06d9.gz b/_darcs/patches/20080618153036-84dde-06329e00661924826d6fd2b5b0682957c21c06d9.gz deleted file mode 100644 index 7b0cb064c8..0000000000 Binary files a/_darcs/patches/20080618153036-84dde-06329e00661924826d6fd2b5b0682957c21c06d9.gz and /dev/null differ diff --git a/_darcs/patches/20080618153258-84dde-48204f3d9d3d6c710d73bad4b390877cb34e2991.gz b/_darcs/patches/20080618153258-84dde-48204f3d9d3d6c710d73bad4b390877cb34e2991.gz deleted file mode 100644 index ccc816f0de..0000000000 Binary files a/_darcs/patches/20080618153258-84dde-48204f3d9d3d6c710d73bad4b390877cb34e2991.gz and /dev/null differ diff --git a/_darcs/patches/20080618154643-84dde-e77d6bf486806725579cdfe922ccbe3e59e008e1.gz b/_darcs/patches/20080618154643-84dde-e77d6bf486806725579cdfe922ccbe3e59e008e1.gz deleted file mode 100644 index a7deda6e90..0000000000 Binary files a/_darcs/patches/20080618154643-84dde-e77d6bf486806725579cdfe922ccbe3e59e008e1.gz and /dev/null differ diff --git a/_darcs/patches/20080618160111-84dde-70cc4c0a40f14aa6a5f7b05f6b8a8947bb5025f7.gz b/_darcs/patches/20080618160111-84dde-70cc4c0a40f14aa6a5f7b05f6b8a8947bb5025f7.gz deleted file mode 100644 index e9d183481c..0000000000 Binary files a/_darcs/patches/20080618160111-84dde-70cc4c0a40f14aa6a5f7b05f6b8a8947bb5025f7.gz and /dev/null differ diff --git a/_darcs/patches/20080618160733-84dde-cb233a9b2073b6333f2944682bb3ab0c1a7a547a.gz b/_darcs/patches/20080618160733-84dde-cb233a9b2073b6333f2944682bb3ab0c1a7a547a.gz deleted file mode 100644 index 615be4e7af..0000000000 Binary files a/_darcs/patches/20080618160733-84dde-cb233a9b2073b6333f2944682bb3ab0c1a7a547a.gz and /dev/null differ diff --git a/_darcs/patches/20080618161321-84dde-366f585399c0dc0b8412596ebd0abcc61cfc904d.gz b/_darcs/patches/20080618161321-84dde-366f585399c0dc0b8412596ebd0abcc61cfc904d.gz deleted file mode 100644 index 1e0bcbb5ef..0000000000 Binary files a/_darcs/patches/20080618161321-84dde-366f585399c0dc0b8412596ebd0abcc61cfc904d.gz and /dev/null differ diff --git a/_darcs/patches/20080618162715-84dde-9a3213796a88cf4f28597553e1834896c7f201a7.gz b/_darcs/patches/20080618162715-84dde-9a3213796a88cf4f28597553e1834896c7f201a7.gz deleted file mode 100644 index d3406ff558..0000000000 Binary files a/_darcs/patches/20080618162715-84dde-9a3213796a88cf4f28597553e1834896c7f201a7.gz and /dev/null differ diff --git a/_darcs/patches/20080618162838-84dde-90e6950d9cdfcfee947f504512b7fb529d0db7de.gz b/_darcs/patches/20080618162838-84dde-90e6950d9cdfcfee947f504512b7fb529d0db7de.gz deleted file mode 100644 index f5e9a8500a..0000000000 Binary files a/_darcs/patches/20080618162838-84dde-90e6950d9cdfcfee947f504512b7fb529d0db7de.gz and /dev/null differ diff --git a/_darcs/patches/20080618163516-84dde-ab4d9daa4180d75da0813bed03f6c824577a87a0.gz b/_darcs/patches/20080618163516-84dde-ab4d9daa4180d75da0813bed03f6c824577a87a0.gz deleted file mode 100644 index 8296a3feb2..0000000000 Binary files a/_darcs/patches/20080618163516-84dde-ab4d9daa4180d75da0813bed03f6c824577a87a0.gz and /dev/null differ diff --git a/_darcs/patches/20080618165041-84dde-d98bebb8e74286993c582710ae385d5d7ef1b3fb.gz b/_darcs/patches/20080618165041-84dde-d98bebb8e74286993c582710ae385d5d7ef1b3fb.gz deleted file mode 100644 index 6dad1e7d4f..0000000000 Binary files a/_darcs/patches/20080618165041-84dde-d98bebb8e74286993c582710ae385d5d7ef1b3fb.gz and /dev/null differ diff --git a/_darcs/patches/20080618171313-84dde-3389db1f5110d3f47cd5a4ef17f6a7fc0fcf3b44.gz b/_darcs/patches/20080618171313-84dde-3389db1f5110d3f47cd5a4ef17f6a7fc0fcf3b44.gz deleted file mode 100644 index 4c1db2b167..0000000000 Binary files a/_darcs/patches/20080618171313-84dde-3389db1f5110d3f47cd5a4ef17f6a7fc0fcf3b44.gz and /dev/null differ diff --git a/_darcs/patches/20080618171622-84dde-abe0986279b106ff651913d759828d6d945adf0f.gz b/_darcs/patches/20080618171622-84dde-abe0986279b106ff651913d759828d6d945adf0f.gz deleted file mode 100644 index 3ceddde090..0000000000 Binary files a/_darcs/patches/20080618171622-84dde-abe0986279b106ff651913d759828d6d945adf0f.gz and /dev/null differ diff --git a/_darcs/patches/20080618172444-84dde-b886f6f8170370ae1aaf2e7f996aff288a471145.gz b/_darcs/patches/20080618172444-84dde-b886f6f8170370ae1aaf2e7f996aff288a471145.gz deleted file mode 100644 index 76a76555c2..0000000000 Binary files a/_darcs/patches/20080618172444-84dde-b886f6f8170370ae1aaf2e7f996aff288a471145.gz and /dev/null differ diff --git a/_darcs/patches/20080618175911-84dde-bc27789cef7d68d34f8cf33cd026928ce6f2fa18.gz b/_darcs/patches/20080618175911-84dde-bc27789cef7d68d34f8cf33cd026928ce6f2fa18.gz deleted file mode 100644 index 3660518df1..0000000000 Binary files a/_darcs/patches/20080618175911-84dde-bc27789cef7d68d34f8cf33cd026928ce6f2fa18.gz and /dev/null differ diff --git a/_darcs/patches/20080618180642-84dde-1e8ee16d2b6497c71854486a687545d948340d69.gz b/_darcs/patches/20080618180642-84dde-1e8ee16d2b6497c71854486a687545d948340d69.gz deleted file mode 100644 index 2b55ee91ef..0000000000 Binary files a/_darcs/patches/20080618180642-84dde-1e8ee16d2b6497c71854486a687545d948340d69.gz and /dev/null differ diff --git a/_darcs/patches/20080618182647-84dde-e75e2c3441e8441ad6602f36fd9b7bf6ca39e70d.gz b/_darcs/patches/20080618182647-84dde-e75e2c3441e8441ad6602f36fd9b7bf6ca39e70d.gz deleted file mode 100644 index 7696555af5..0000000000 Binary files a/_darcs/patches/20080618182647-84dde-e75e2c3441e8441ad6602f36fd9b7bf6ca39e70d.gz and /dev/null differ diff --git a/_darcs/patches/20080618182812-84dde-62e5442eb8f051e29f9a7b5134a7ba5a09cfe3a0.gz b/_darcs/patches/20080618182812-84dde-62e5442eb8f051e29f9a7b5134a7ba5a09cfe3a0.gz deleted file mode 100644 index c9377815d0..0000000000 Binary files a/_darcs/patches/20080618182812-84dde-62e5442eb8f051e29f9a7b5134a7ba5a09cfe3a0.gz and /dev/null differ diff --git a/_darcs/patches/20080618183606-84dde-d0843cd3f1656b8b547227eeef326d89d6c55adf.gz b/_darcs/patches/20080618183606-84dde-d0843cd3f1656b8b547227eeef326d89d6c55adf.gz deleted file mode 100644 index 4160b9bb73..0000000000 Binary files a/_darcs/patches/20080618183606-84dde-d0843cd3f1656b8b547227eeef326d89d6c55adf.gz and /dev/null differ diff --git a/_darcs/patches/20080618190202-84dde-20cc79646144076090c36fe25d78f2d0e399d5ad.gz b/_darcs/patches/20080618190202-84dde-20cc79646144076090c36fe25d78f2d0e399d5ad.gz deleted file mode 100644 index a83d744709..0000000000 Binary files a/_darcs/patches/20080618190202-84dde-20cc79646144076090c36fe25d78f2d0e399d5ad.gz and /dev/null differ diff --git a/_darcs/patches/20080618201123-84dde-3c6a131fafc0ba8922293c608173a6d7407ce8d0.gz b/_darcs/patches/20080618201123-84dde-3c6a131fafc0ba8922293c608173a6d7407ce8d0.gz deleted file mode 100644 index 7e3e3692a3..0000000000 Binary files a/_darcs/patches/20080618201123-84dde-3c6a131fafc0ba8922293c608173a6d7407ce8d0.gz and /dev/null differ diff --git a/_darcs/patches/20080618202500-84dde-66eeb8af0e26d9723b89831a6ba7bb82b09dbe09.gz b/_darcs/patches/20080618202500-84dde-66eeb8af0e26d9723b89831a6ba7bb82b09dbe09.gz deleted file mode 100644 index a719fc1533..0000000000 Binary files a/_darcs/patches/20080618202500-84dde-66eeb8af0e26d9723b89831a6ba7bb82b09dbe09.gz and /dev/null differ diff --git a/_darcs/patches/20080618204421-84dde-ba5ec861d68adf9179bb3907784156fb404d23ed.gz b/_darcs/patches/20080618204421-84dde-ba5ec861d68adf9179bb3907784156fb404d23ed.gz deleted file mode 100644 index d0218c5f39..0000000000 Binary files a/_darcs/patches/20080618204421-84dde-ba5ec861d68adf9179bb3907784156fb404d23ed.gz and /dev/null differ diff --git a/_darcs/patches/20080618204611-84dde-e8de48c6a7213787c09201f4007bfc57064bdeed.gz b/_darcs/patches/20080618204611-84dde-e8de48c6a7213787c09201f4007bfc57064bdeed.gz deleted file mode 100644 index c7f169a30d..0000000000 Binary files a/_darcs/patches/20080618204611-84dde-e8de48c6a7213787c09201f4007bfc57064bdeed.gz and /dev/null differ diff --git a/_darcs/patches/20080618210044-84dde-3b064b11117d4c785e4eba7902f1c0298dbbd8a7.gz b/_darcs/patches/20080618210044-84dde-3b064b11117d4c785e4eba7902f1c0298dbbd8a7.gz deleted file mode 100644 index ef3aec1bd6..0000000000 Binary files a/_darcs/patches/20080618210044-84dde-3b064b11117d4c785e4eba7902f1c0298dbbd8a7.gz and /dev/null differ diff --git a/_darcs/patches/20080618211454-84dde-4772135cc92f2a51faa072e4470da3c628e1510c.gz b/_darcs/patches/20080618211454-84dde-4772135cc92f2a51faa072e4470da3c628e1510c.gz deleted file mode 100644 index f905ebe5ca..0000000000 Binary files a/_darcs/patches/20080618211454-84dde-4772135cc92f2a51faa072e4470da3c628e1510c.gz and /dev/null differ diff --git a/_darcs/patches/20080619014802-84dde-186c526a0452e916775cdddef94357da1aacd6a5.gz b/_darcs/patches/20080619014802-84dde-186c526a0452e916775cdddef94357da1aacd6a5.gz deleted file mode 100644 index c9830b5f0f..0000000000 Binary files a/_darcs/patches/20080619014802-84dde-186c526a0452e916775cdddef94357da1aacd6a5.gz and /dev/null differ diff --git a/_darcs/patches/20080619020540-84dde-a177b25086c88071bd9933b54ba3ab52951c90cd.gz b/_darcs/patches/20080619020540-84dde-a177b25086c88071bd9933b54ba3ab52951c90cd.gz deleted file mode 100644 index 4b28eb3a52..0000000000 Binary files a/_darcs/patches/20080619020540-84dde-a177b25086c88071bd9933b54ba3ab52951c90cd.gz and /dev/null differ diff --git a/_darcs/patches/20080619020634-84dde-37a8f87b9f293534ed167e183fa2d08f6714c2ad.gz b/_darcs/patches/20080619020634-84dde-37a8f87b9f293534ed167e183fa2d08f6714c2ad.gz deleted file mode 100644 index 99fcb680c9..0000000000 Binary files a/_darcs/patches/20080619020634-84dde-37a8f87b9f293534ed167e183fa2d08f6714c2ad.gz and /dev/null differ diff --git a/_darcs/patches/20080619021449-84dde-773db884c6276622f3090ab02116410750200470.gz b/_darcs/patches/20080619021449-84dde-773db884c6276622f3090ab02116410750200470.gz deleted file mode 100644 index a74e0bc5e2..0000000000 Binary files a/_darcs/patches/20080619021449-84dde-773db884c6276622f3090ab02116410750200470.gz and /dev/null differ diff --git a/_darcs/patches/20080619033212-84dde-2f7227fe16c7015b03121424520ebd74d4b96762.gz b/_darcs/patches/20080619033212-84dde-2f7227fe16c7015b03121424520ebd74d4b96762.gz deleted file mode 100644 index 189c1bf174..0000000000 Binary files a/_darcs/patches/20080619033212-84dde-2f7227fe16c7015b03121424520ebd74d4b96762.gz and /dev/null differ diff --git a/_darcs/patches/20080619033619-84dde-e4fcc00f5d86cb0d11feff5f88f719ea72d3318e.gz b/_darcs/patches/20080619033619-84dde-e4fcc00f5d86cb0d11feff5f88f719ea72d3318e.gz deleted file mode 100644 index 02d373fb59..0000000000 Binary files a/_darcs/patches/20080619033619-84dde-e4fcc00f5d86cb0d11feff5f88f719ea72d3318e.gz and /dev/null differ diff --git a/_darcs/patches/20080619134710-84dde-6086a4ac7bbd72a251fe5ce6fe3156e3270ebd74.gz b/_darcs/patches/20080619134710-84dde-6086a4ac7bbd72a251fe5ce6fe3156e3270ebd74.gz deleted file mode 100644 index 1a426a8694..0000000000 Binary files a/_darcs/patches/20080619134710-84dde-6086a4ac7bbd72a251fe5ce6fe3156e3270ebd74.gz and /dev/null differ diff --git a/_darcs/patches/20080619135148-84dde-6caaa7f97d2405bc318bfa818c4ac9cbc31cab33.gz b/_darcs/patches/20080619135148-84dde-6caaa7f97d2405bc318bfa818c4ac9cbc31cab33.gz deleted file mode 100644 index 0f0ed8a040..0000000000 Binary files a/_darcs/patches/20080619135148-84dde-6caaa7f97d2405bc318bfa818c4ac9cbc31cab33.gz and /dev/null differ diff --git a/_darcs/patches/20080619135603-84dde-1bfd6606f34416eb6f1be4d5c926f6bb198427bd.gz b/_darcs/patches/20080619135603-84dde-1bfd6606f34416eb6f1be4d5c926f6bb198427bd.gz deleted file mode 100644 index 728c411d63..0000000000 Binary files a/_darcs/patches/20080619135603-84dde-1bfd6606f34416eb6f1be4d5c926f6bb198427bd.gz and /dev/null differ diff --git a/_darcs/patches/20080619135944-84dde-948447f0e5e7524c64a5538d145d8c52bf4206a9.gz b/_darcs/patches/20080619135944-84dde-948447f0e5e7524c64a5538d145d8c52bf4206a9.gz deleted file mode 100644 index 0285fa92c8..0000000000 Binary files a/_darcs/patches/20080619135944-84dde-948447f0e5e7524c64a5538d145d8c52bf4206a9.gz and /dev/null differ diff --git a/_darcs/patches/20080619140350-84dde-a9b640051f5b35a5f7907d49ab006e62d480b82a.gz b/_darcs/patches/20080619140350-84dde-a9b640051f5b35a5f7907d49ab006e62d480b82a.gz deleted file mode 100644 index 1b59a1c02d..0000000000 Binary files a/_darcs/patches/20080619140350-84dde-a9b640051f5b35a5f7907d49ab006e62d480b82a.gz and /dev/null differ diff --git a/_darcs/patches/20080619140505-84dde-d4006afa9507e29e58115f23c4acc5156a571930.gz b/_darcs/patches/20080619140505-84dde-d4006afa9507e29e58115f23c4acc5156a571930.gz deleted file mode 100644 index 7dab29cb4b..0000000000 Binary files a/_darcs/patches/20080619140505-84dde-d4006afa9507e29e58115f23c4acc5156a571930.gz and /dev/null differ diff --git a/_darcs/patches/20080619141107-84dde-a5e018fdac3f72eee13b3093fbd871299cda0739.gz b/_darcs/patches/20080619141107-84dde-a5e018fdac3f72eee13b3093fbd871299cda0739.gz deleted file mode 100644 index bc3a5e5775..0000000000 Binary files a/_darcs/patches/20080619141107-84dde-a5e018fdac3f72eee13b3093fbd871299cda0739.gz and /dev/null differ diff --git a/_darcs/patches/20080619141755-84dde-5bd550251842f9d18f7d80746d436198a030d7c8.gz b/_darcs/patches/20080619141755-84dde-5bd550251842f9d18f7d80746d436198a030d7c8.gz deleted file mode 100644 index 1c18f28f2d..0000000000 Binary files a/_darcs/patches/20080619141755-84dde-5bd550251842f9d18f7d80746d436198a030d7c8.gz and /dev/null differ diff --git a/_darcs/patches/20080619142224-c91fa-a666854bc81c00fc37350029c3c8682fcb108da3.gz b/_darcs/patches/20080619142224-c91fa-a666854bc81c00fc37350029c3c8682fcb108da3.gz deleted file mode 100644 index 3c5087b6b2..0000000000 Binary files a/_darcs/patches/20080619142224-c91fa-a666854bc81c00fc37350029c3c8682fcb108da3.gz and /dev/null differ diff --git a/_darcs/patches/20080619143610-5ed1f-fa3cbc67e273adc206808d7213baa8bf691ea149.gz b/_darcs/patches/20080619143610-5ed1f-fa3cbc67e273adc206808d7213baa8bf691ea149.gz deleted file mode 100644 index bc6745e526..0000000000 Binary files a/_darcs/patches/20080619143610-5ed1f-fa3cbc67e273adc206808d7213baa8bf691ea149.gz and /dev/null differ diff --git a/_darcs/patches/20080619143829-5ed1f-df0b08a87ba592b552cebd49745be480f0e46d56.gz b/_darcs/patches/20080619143829-5ed1f-df0b08a87ba592b552cebd49745be480f0e46d56.gz deleted file mode 100644 index 4297c515f2..0000000000 Binary files a/_darcs/patches/20080619143829-5ed1f-df0b08a87ba592b552cebd49745be480f0e46d56.gz and /dev/null differ diff --git a/_darcs/patches/20080619145124-8af03-fb5d4d79e34d76b7acddbd02e73f071a0a6fcc61.gz b/_darcs/patches/20080619145124-8af03-fb5d4d79e34d76b7acddbd02e73f071a0a6fcc61.gz deleted file mode 100644 index de889fd15a..0000000000 Binary files a/_darcs/patches/20080619145124-8af03-fb5d4d79e34d76b7acddbd02e73f071a0a6fcc61.gz and /dev/null differ diff --git a/_darcs/patches/20080619145838-5ed1f-c9c98e0df682a6ad4f1ec3028a985ff49b7c3e12.gz b/_darcs/patches/20080619145838-5ed1f-c9c98e0df682a6ad4f1ec3028a985ff49b7c3e12.gz deleted file mode 100644 index 91d6e4e7ef..0000000000 Binary files a/_darcs/patches/20080619145838-5ed1f-c9c98e0df682a6ad4f1ec3028a985ff49b7c3e12.gz and /dev/null differ diff --git a/_darcs/patches/20080619150158-5ed1f-e488de5630d8ca131b3ad95c6701bfb3c1e5d569.gz b/_darcs/patches/20080619150158-5ed1f-e488de5630d8ca131b3ad95c6701bfb3c1e5d569.gz deleted file mode 100644 index 9bff565814..0000000000 Binary files a/_darcs/patches/20080619150158-5ed1f-e488de5630d8ca131b3ad95c6701bfb3c1e5d569.gz and /dev/null differ diff --git a/_darcs/patches/20080619150208-5ed1f-f077ebe50180113779487263dded7d8b05262306.gz b/_darcs/patches/20080619150208-5ed1f-f077ebe50180113779487263dded7d8b05262306.gz deleted file mode 100644 index cae703b603..0000000000 Binary files a/_darcs/patches/20080619150208-5ed1f-f077ebe50180113779487263dded7d8b05262306.gz and /dev/null differ diff --git a/_darcs/patches/20080619150226-5ed1f-2c7ad753166708ede8c07e704953a5da888e4145.gz b/_darcs/patches/20080619150226-5ed1f-2c7ad753166708ede8c07e704953a5da888e4145.gz deleted file mode 100644 index 45e852c8c4..0000000000 Binary files a/_darcs/patches/20080619150226-5ed1f-2c7ad753166708ede8c07e704953a5da888e4145.gz and /dev/null differ diff --git a/_darcs/patches/20080619151803-5ed1f-53df3a53f1147233658397c3c6d2cd6a2202b199.gz b/_darcs/patches/20080619151803-5ed1f-53df3a53f1147233658397c3c6d2cd6a2202b199.gz deleted file mode 100644 index f1260d470e..0000000000 Binary files a/_darcs/patches/20080619151803-5ed1f-53df3a53f1147233658397c3c6d2cd6a2202b199.gz and /dev/null differ diff --git a/_darcs/patches/20080619153231-5ed1f-a5d784ff39b53afdfb0584689188dd78bdb90c41.gz b/_darcs/patches/20080619153231-5ed1f-a5d784ff39b53afdfb0584689188dd78bdb90c41.gz deleted file mode 100644 index 0e338cd3fa..0000000000 Binary files a/_darcs/patches/20080619153231-5ed1f-a5d784ff39b53afdfb0584689188dd78bdb90c41.gz and /dev/null differ diff --git a/_darcs/patches/20080619153719-5ed1f-da58c447643d24dbfd9d0076c74d8ce4f57c5be3.gz b/_darcs/patches/20080619153719-5ed1f-da58c447643d24dbfd9d0076c74d8ce4f57c5be3.gz deleted file mode 100644 index f03e5f10e8..0000000000 Binary files a/_darcs/patches/20080619153719-5ed1f-da58c447643d24dbfd9d0076c74d8ce4f57c5be3.gz and /dev/null differ diff --git a/_darcs/patches/20080619155042-5ed1f-d814e2ae7f565e7e5cd8c0389071491705117e73.gz b/_darcs/patches/20080619155042-5ed1f-d814e2ae7f565e7e5cd8c0389071491705117e73.gz deleted file mode 100644 index e7ac34c362..0000000000 Binary files a/_darcs/patches/20080619155042-5ed1f-d814e2ae7f565e7e5cd8c0389071491705117e73.gz and /dev/null differ diff --git a/_darcs/patches/20080619155154-5ed1f-0bd8ea0c1e7a7ead736483cd516bcf4f999e9deb.gz b/_darcs/patches/20080619155154-5ed1f-0bd8ea0c1e7a7ead736483cd516bcf4f999e9deb.gz deleted file mode 100644 index 5947146454..0000000000 Binary files a/_darcs/patches/20080619155154-5ed1f-0bd8ea0c1e7a7ead736483cd516bcf4f999e9deb.gz and /dev/null differ diff --git a/_darcs/patches/20080619161814-5ed1f-5add55346470e71a53a676d39617062acc0f19bf.gz b/_darcs/patches/20080619161814-5ed1f-5add55346470e71a53a676d39617062acc0f19bf.gz deleted file mode 100644 index 699bf7b34e..0000000000 Binary files a/_darcs/patches/20080619161814-5ed1f-5add55346470e71a53a676d39617062acc0f19bf.gz and /dev/null differ diff --git a/_darcs/patches/20080619162450-5ed1f-037e20d9adc391a309e7c27091d13a8a039e3f94.gz b/_darcs/patches/20080619162450-5ed1f-037e20d9adc391a309e7c27091d13a8a039e3f94.gz deleted file mode 100644 index 6a57bc1112..0000000000 Binary files a/_darcs/patches/20080619162450-5ed1f-037e20d9adc391a309e7c27091d13a8a039e3f94.gz and /dev/null differ diff --git a/_darcs/patches/20080619172031-84dde-6b97932d4d51541581c0b220df8ce53cbc51e2da.gz b/_darcs/patches/20080619172031-84dde-6b97932d4d51541581c0b220df8ce53cbc51e2da.gz deleted file mode 100644 index 53cbb3a320..0000000000 Binary files a/_darcs/patches/20080619172031-84dde-6b97932d4d51541581c0b220df8ce53cbc51e2da.gz and /dev/null differ diff --git a/_darcs/patches/20080619173225-84dde-d73961d047f75fa1e3ac4287d35e4c6afb391e84.gz b/_darcs/patches/20080619173225-84dde-d73961d047f75fa1e3ac4287d35e4c6afb391e84.gz deleted file mode 100644 index abe1cf800b..0000000000 Binary files a/_darcs/patches/20080619173225-84dde-d73961d047f75fa1e3ac4287d35e4c6afb391e84.gz and /dev/null differ diff --git a/_darcs/patches/20080619183238-84dde-dbe912a40894ec7414e6d5ea0bc40ec527385436.gz b/_darcs/patches/20080619183238-84dde-dbe912a40894ec7414e6d5ea0bc40ec527385436.gz deleted file mode 100644 index e1414fc5a6..0000000000 Binary files a/_darcs/patches/20080619183238-84dde-dbe912a40894ec7414e6d5ea0bc40ec527385436.gz and /dev/null differ diff --git a/_darcs/patches/20080619190357-84dde-f7e6e0741c5fc9c1bf99b4273ff1c0160056cf39.gz b/_darcs/patches/20080619190357-84dde-f7e6e0741c5fc9c1bf99b4273ff1c0160056cf39.gz deleted file mode 100644 index 88450196e4..0000000000 Binary files a/_darcs/patches/20080619190357-84dde-f7e6e0741c5fc9c1bf99b4273ff1c0160056cf39.gz and /dev/null differ diff --git a/_darcs/patches/20080620041012-5ed1f-20a7d4df375250f5c4eff90cdab80b22348b1088.gz b/_darcs/patches/20080620041012-5ed1f-20a7d4df375250f5c4eff90cdab80b22348b1088.gz deleted file mode 100644 index af02f058d5..0000000000 Binary files a/_darcs/patches/20080620041012-5ed1f-20a7d4df375250f5c4eff90cdab80b22348b1088.gz and /dev/null differ diff --git a/_darcs/patches/20080620051536-5ed1f-231e427832dd20c861eb7a6dc1171315e90f455b.gz b/_darcs/patches/20080620051536-5ed1f-231e427832dd20c861eb7a6dc1171315e90f455b.gz deleted file mode 100644 index 3cea846f30..0000000000 Binary files a/_darcs/patches/20080620051536-5ed1f-231e427832dd20c861eb7a6dc1171315e90f455b.gz and /dev/null differ diff --git a/_darcs/patches/20080620052453-5ed1f-4ce9b677b9010b3879bbae1ba9218036f0ad728f.gz b/_darcs/patches/20080620052453-5ed1f-4ce9b677b9010b3879bbae1ba9218036f0ad728f.gz deleted file mode 100644 index de16c30eb6..0000000000 Binary files a/_darcs/patches/20080620052453-5ed1f-4ce9b677b9010b3879bbae1ba9218036f0ad728f.gz and /dev/null differ diff --git a/_darcs/patches/20080620062606-84dde-59be3fd35a01d788f3953e2dba70baefefabfb76.gz b/_darcs/patches/20080620062606-84dde-59be3fd35a01d788f3953e2dba70baefefabfb76.gz deleted file mode 100644 index e4da9bf2f7..0000000000 Binary files a/_darcs/patches/20080620062606-84dde-59be3fd35a01d788f3953e2dba70baefefabfb76.gz and /dev/null differ diff --git a/_darcs/patches/20080620062847-84dde-e7dd5ea325b1cbbf3cb5e3668851750497242e64.gz b/_darcs/patches/20080620062847-84dde-e7dd5ea325b1cbbf3cb5e3668851750497242e64.gz deleted file mode 100644 index ff37881c9c..0000000000 Binary files a/_darcs/patches/20080620062847-84dde-e7dd5ea325b1cbbf3cb5e3668851750497242e64.gz and /dev/null differ diff --git a/_darcs/patches/20080620064824-84dde-1d349cf2add75fbffa7cc763fb5ac8776cce4d03.gz b/_darcs/patches/20080620064824-84dde-1d349cf2add75fbffa7cc763fb5ac8776cce4d03.gz deleted file mode 100644 index 535cf270e9..0000000000 Binary files a/_darcs/patches/20080620064824-84dde-1d349cf2add75fbffa7cc763fb5ac8776cce4d03.gz and /dev/null differ diff --git a/_darcs/patches/20080620065455-84dde-0c3bd495205e49ba2c5a8e040495339f35f9b215.gz b/_darcs/patches/20080620065455-84dde-0c3bd495205e49ba2c5a8e040495339f35f9b215.gz deleted file mode 100644 index 70390000cd..0000000000 Binary files a/_darcs/patches/20080620065455-84dde-0c3bd495205e49ba2c5a8e040495339f35f9b215.gz and /dev/null differ diff --git a/_darcs/patches/20080620065619-84dde-9c207b2a898ff0a16b45f5f1b28565aaa85f9e65.gz b/_darcs/patches/20080620065619-84dde-9c207b2a898ff0a16b45f5f1b28565aaa85f9e65.gz deleted file mode 100644 index 8925c37f9c..0000000000 Binary files a/_darcs/patches/20080620065619-84dde-9c207b2a898ff0a16b45f5f1b28565aaa85f9e65.gz and /dev/null differ diff --git a/_darcs/patches/20080620070256-84dde-215e2ccf2cc037208837353a3d979d69770301f6.gz b/_darcs/patches/20080620070256-84dde-215e2ccf2cc037208837353a3d979d69770301f6.gz deleted file mode 100644 index 3f5fcc30c5..0000000000 Binary files a/_darcs/patches/20080620070256-84dde-215e2ccf2cc037208837353a3d979d69770301f6.gz and /dev/null differ diff --git a/_darcs/patches/20080620071700-84dde-c6145243dc45dd2dff621aff421375d05796057e.gz b/_darcs/patches/20080620071700-84dde-c6145243dc45dd2dff621aff421375d05796057e.gz deleted file mode 100644 index f7886e171b..0000000000 Binary files a/_darcs/patches/20080620071700-84dde-c6145243dc45dd2dff621aff421375d05796057e.gz and /dev/null differ diff --git a/_darcs/patches/20080620072125-84dde-777b0a5405ea8ffc2436f711d60ab515d803b987.gz b/_darcs/patches/20080620072125-84dde-777b0a5405ea8ffc2436f711d60ab515d803b987.gz deleted file mode 100644 index e60c0188da..0000000000 Binary files a/_darcs/patches/20080620072125-84dde-777b0a5405ea8ffc2436f711d60ab515d803b987.gz and /dev/null differ diff --git a/_darcs/patches/20080620072632-84dde-d1e1b1593a882b6faa4fcd21c36200398ee49286.gz b/_darcs/patches/20080620072632-84dde-d1e1b1593a882b6faa4fcd21c36200398ee49286.gz deleted file mode 100644 index 2b490d3be0..0000000000 Binary files a/_darcs/patches/20080620072632-84dde-d1e1b1593a882b6faa4fcd21c36200398ee49286.gz and /dev/null differ diff --git a/_darcs/patches/20080620181136-982e4-ee4bb812b3db0f1d0e0b7961bc9aa6beec74096b.gz b/_darcs/patches/20080620181136-982e4-ee4bb812b3db0f1d0e0b7961bc9aa6beec74096b.gz deleted file mode 100644 index 5f4bf7c279..0000000000 Binary files a/_darcs/patches/20080620181136-982e4-ee4bb812b3db0f1d0e0b7961bc9aa6beec74096b.gz and /dev/null differ diff --git a/_darcs/patches/20080620195627-84dde-96d31837394eba6357e1134bc5a76b650dea42e6.gz b/_darcs/patches/20080620195627-84dde-96d31837394eba6357e1134bc5a76b650dea42e6.gz deleted file mode 100644 index af93389c47..0000000000 Binary files a/_darcs/patches/20080620195627-84dde-96d31837394eba6357e1134bc5a76b650dea42e6.gz and /dev/null differ diff --git a/_darcs/patches/20080620203449-84dde-b878277e0ad5a5478b7396fbca7e42feb39715f8.gz b/_darcs/patches/20080620203449-84dde-b878277e0ad5a5478b7396fbca7e42feb39715f8.gz deleted file mode 100644 index 9c991e66fc..0000000000 Binary files a/_darcs/patches/20080620203449-84dde-b878277e0ad5a5478b7396fbca7e42feb39715f8.gz and /dev/null differ diff --git a/_darcs/patches/20080622140941-34904-2a0eda21f6a374a9d26107a4bc627fc6de2a7063.gz b/_darcs/patches/20080622140941-34904-2a0eda21f6a374a9d26107a4bc627fc6de2a7063.gz deleted file mode 100644 index 5ecce89258..0000000000 Binary files a/_darcs/patches/20080622140941-34904-2a0eda21f6a374a9d26107a4bc627fc6de2a7063.gz and /dev/null differ diff --git a/_darcs/patches/20080622142015-34904-00feabce7fe73360319d8a9c1372478879bb203a.gz b/_darcs/patches/20080622142015-34904-00feabce7fe73360319d8a9c1372478879bb203a.gz deleted file mode 100644 index 87c5657d56..0000000000 Binary files a/_darcs/patches/20080622142015-34904-00feabce7fe73360319d8a9c1372478879bb203a.gz and /dev/null differ diff --git a/_darcs/patches/20080622142713-34904-1cee0bb3dbf54ad9ebb27b9c99fe4166dca3f9e2.gz b/_darcs/patches/20080622142713-34904-1cee0bb3dbf54ad9ebb27b9c99fe4166dca3f9e2.gz deleted file mode 100644 index ad1695c348..0000000000 Binary files a/_darcs/patches/20080622142713-34904-1cee0bb3dbf54ad9ebb27b9c99fe4166dca3f9e2.gz and /dev/null differ diff --git a/_darcs/patches/20080622142906-34904-0699374fa0a88a1e4c004deb2a2f96b775fb98e5.gz b/_darcs/patches/20080622142906-34904-0699374fa0a88a1e4c004deb2a2f96b775fb98e5.gz deleted file mode 100644 index 8a579c327a..0000000000 Binary files a/_darcs/patches/20080622142906-34904-0699374fa0a88a1e4c004deb2a2f96b775fb98e5.gz and /dev/null differ diff --git a/_darcs/patches/20080622145644-34904-92549d9bb68251214c4dc370f6e2a56f516ceecb.gz b/_darcs/patches/20080622145644-34904-92549d9bb68251214c4dc370f6e2a56f516ceecb.gz deleted file mode 100644 index 0a20a36f6e..0000000000 Binary files a/_darcs/patches/20080622145644-34904-92549d9bb68251214c4dc370f6e2a56f516ceecb.gz and /dev/null differ diff --git a/_darcs/patches/20080622150633-34904-2e26094807f989a62261f2247d0a53995eb5bac5.gz b/_darcs/patches/20080622150633-34904-2e26094807f989a62261f2247d0a53995eb5bac5.gz deleted file mode 100644 index fbefc7f67d..0000000000 Binary files a/_darcs/patches/20080622150633-34904-2e26094807f989a62261f2247d0a53995eb5bac5.gz and /dev/null differ diff --git a/_darcs/patches/20080622151611-34904-1d952df08b5247ab391bb76fd50d7b90498f0c96.gz b/_darcs/patches/20080622151611-34904-1d952df08b5247ab391bb76fd50d7b90498f0c96.gz deleted file mode 100644 index c4e5782562..0000000000 Binary files a/_darcs/patches/20080622151611-34904-1d952df08b5247ab391bb76fd50d7b90498f0c96.gz and /dev/null differ diff --git a/_darcs/patches/20080622152306-34904-3d3ab7c02c33efac17d02692a10b4fee2fb013f1.gz b/_darcs/patches/20080622152306-34904-3d3ab7c02c33efac17d02692a10b4fee2fb013f1.gz deleted file mode 100644 index 3506832436..0000000000 Binary files a/_darcs/patches/20080622152306-34904-3d3ab7c02c33efac17d02692a10b4fee2fb013f1.gz and /dev/null differ diff --git a/_darcs/patches/20080622152628-34904-9974209ebe964058d00337bc602ef20c10b83f66.gz b/_darcs/patches/20080622152628-34904-9974209ebe964058d00337bc602ef20c10b83f66.gz deleted file mode 100644 index 23c9d39f60..0000000000 Binary files a/_darcs/patches/20080622152628-34904-9974209ebe964058d00337bc602ef20c10b83f66.gz and /dev/null differ diff --git a/_darcs/patches/20080622153220-34904-119cea6c5dbe20e33569287cf9632c07e9768b10.gz b/_darcs/patches/20080622153220-34904-119cea6c5dbe20e33569287cf9632c07e9768b10.gz deleted file mode 100644 index b7e7132068..0000000000 Binary files a/_darcs/patches/20080622153220-34904-119cea6c5dbe20e33569287cf9632c07e9768b10.gz and /dev/null differ diff --git a/_darcs/patches/20080622153754-34904-b722aa6d0ffa52242b06a8eec1eaa5216d216a4f.gz b/_darcs/patches/20080622153754-34904-b722aa6d0ffa52242b06a8eec1eaa5216d216a4f.gz deleted file mode 100644 index dfd364af04..0000000000 Binary files a/_darcs/patches/20080622153754-34904-b722aa6d0ffa52242b06a8eec1eaa5216d216a4f.gz and /dev/null differ diff --git a/_darcs/patches/20080622154836-34904-0673a1ee33f35cdfd906251e50dadcbe8c4c90e7.gz b/_darcs/patches/20080622154836-34904-0673a1ee33f35cdfd906251e50dadcbe8c4c90e7.gz deleted file mode 100644 index cb2609bb26..0000000000 Binary files a/_darcs/patches/20080622154836-34904-0673a1ee33f35cdfd906251e50dadcbe8c4c90e7.gz and /dev/null differ diff --git a/_darcs/patches/20080622155028-34904-4861ffd6927b05c35614b1ce8c51eec73e0bc9ac.gz b/_darcs/patches/20080622155028-34904-4861ffd6927b05c35614b1ce8c51eec73e0bc9ac.gz deleted file mode 100644 index f91385397f..0000000000 Binary files a/_darcs/patches/20080622155028-34904-4861ffd6927b05c35614b1ce8c51eec73e0bc9ac.gz and /dev/null differ diff --git a/_darcs/patches/20080622155250-34904-0cbc2895c01769dfb5e7393e6534355b6f5c2ac3.gz b/_darcs/patches/20080622155250-34904-0cbc2895c01769dfb5e7393e6534355b6f5c2ac3.gz deleted file mode 100644 index 7c9daca433..0000000000 Binary files a/_darcs/patches/20080622155250-34904-0cbc2895c01769dfb5e7393e6534355b6f5c2ac3.gz and /dev/null differ diff --git a/_darcs/patches/20080622155454-34904-2598501f3d1788eb1ead9252e5925637e721a525.gz b/_darcs/patches/20080622155454-34904-2598501f3d1788eb1ead9252e5925637e721a525.gz deleted file mode 100644 index e6c86d8ec3..0000000000 Binary files a/_darcs/patches/20080622155454-34904-2598501f3d1788eb1ead9252e5925637e721a525.gz and /dev/null differ diff --git a/_darcs/patches/20080622161607-34904-d8e042b80fe6acd3cb6ad763216a0b1817752cac.gz b/_darcs/patches/20080622161607-34904-d8e042b80fe6acd3cb6ad763216a0b1817752cac.gz deleted file mode 100644 index a5d8b2d68f..0000000000 Binary files a/_darcs/patches/20080622161607-34904-d8e042b80fe6acd3cb6ad763216a0b1817752cac.gz and /dev/null differ diff --git a/_darcs/patches/20080622161749-34904-eb2e43aaa3f409accd94a2555f854fb22a297db7.gz b/_darcs/patches/20080622161749-34904-eb2e43aaa3f409accd94a2555f854fb22a297db7.gz deleted file mode 100644 index 06cc49380c..0000000000 Binary files a/_darcs/patches/20080622161749-34904-eb2e43aaa3f409accd94a2555f854fb22a297db7.gz and /dev/null differ diff --git a/_darcs/patches/20080622161917-34904-32528c78b43d501d5994c4f5c74b977ca4d9c618.gz b/_darcs/patches/20080622161917-34904-32528c78b43d501d5994c4f5c74b977ca4d9c618.gz deleted file mode 100644 index 9dc480127e..0000000000 Binary files a/_darcs/patches/20080622161917-34904-32528c78b43d501d5994c4f5c74b977ca4d9c618.gz and /dev/null differ diff --git a/_darcs/patches/20080622163241-34904-199b3654328d78c0b9fe2fa85a3ecc1ab0b1262a.gz b/_darcs/patches/20080622163241-34904-199b3654328d78c0b9fe2fa85a3ecc1ab0b1262a.gz deleted file mode 100644 index 34358c054d..0000000000 Binary files a/_darcs/patches/20080622163241-34904-199b3654328d78c0b9fe2fa85a3ecc1ab0b1262a.gz and /dev/null differ diff --git a/_darcs/patches/20080622163458-34904-1be378ff9765dcfdf491ea8d38ef6c157ebe99ce.gz b/_darcs/patches/20080622163458-34904-1be378ff9765dcfdf491ea8d38ef6c157ebe99ce.gz deleted file mode 100644 index e91d6c95ea..0000000000 Binary files a/_darcs/patches/20080622163458-34904-1be378ff9765dcfdf491ea8d38ef6c157ebe99ce.gz and /dev/null differ diff --git a/_darcs/patches/20080622164013-34904-4119be65edb5fc09dcbe11edf17c3401f1d19a33.gz b/_darcs/patches/20080622164013-34904-4119be65edb5fc09dcbe11edf17c3401f1d19a33.gz deleted file mode 100644 index 10a64d3939..0000000000 Binary files a/_darcs/patches/20080622164013-34904-4119be65edb5fc09dcbe11edf17c3401f1d19a33.gz and /dev/null differ diff --git a/_darcs/patches/20080622164542-34904-e6945828677580ee30b5fb85101928633708f605.gz b/_darcs/patches/20080622164542-34904-e6945828677580ee30b5fb85101928633708f605.gz deleted file mode 100644 index 152456013c..0000000000 Binary files a/_darcs/patches/20080622164542-34904-e6945828677580ee30b5fb85101928633708f605.gz and /dev/null differ diff --git a/_darcs/patches/20080622164928-34904-04e381d2ac562a31fb3ed3dce300e2c2c456b0d7.gz b/_darcs/patches/20080622164928-34904-04e381d2ac562a31fb3ed3dce300e2c2c456b0d7.gz deleted file mode 100644 index 2b55b6a740..0000000000 Binary files a/_darcs/patches/20080622164928-34904-04e381d2ac562a31fb3ed3dce300e2c2c456b0d7.gz and /dev/null differ diff --git a/_darcs/patches/20080622164928-34904-77df2f698c617e2788cc0db2d902238a5dd522d1.gz b/_darcs/patches/20080622164928-34904-77df2f698c617e2788cc0db2d902238a5dd522d1.gz deleted file mode 100644 index 2eb1e79ff4..0000000000 Binary files a/_darcs/patches/20080622164928-34904-77df2f698c617e2788cc0db2d902238a5dd522d1.gz and /dev/null differ diff --git a/_darcs/patches/20080622165453-34904-a3bdd2557622e6db3aef88371c22586e2d2fed07.gz b/_darcs/patches/20080622165453-34904-a3bdd2557622e6db3aef88371c22586e2d2fed07.gz deleted file mode 100644 index dcade81741..0000000000 Binary files a/_darcs/patches/20080622165453-34904-a3bdd2557622e6db3aef88371c22586e2d2fed07.gz and /dev/null differ diff --git a/_darcs/patches/20080622172309-34904-734a780cc39d8716ca998ece451fec8923d9cbe7.gz b/_darcs/patches/20080622172309-34904-734a780cc39d8716ca998ece451fec8923d9cbe7.gz deleted file mode 100644 index e0ce10d067..0000000000 Binary files a/_darcs/patches/20080622172309-34904-734a780cc39d8716ca998ece451fec8923d9cbe7.gz and /dev/null differ diff --git a/_darcs/patches/20080622172354-34904-6d09d8e6cceafb348b88528fe15e907bf1244347.gz b/_darcs/patches/20080622172354-34904-6d09d8e6cceafb348b88528fe15e907bf1244347.gz deleted file mode 100644 index bb6d3fff49..0000000000 Binary files a/_darcs/patches/20080622172354-34904-6d09d8e6cceafb348b88528fe15e907bf1244347.gz and /dev/null differ diff --git a/_darcs/patches/20080622172408-34904-76462f7172a89292a1f5125bd616fc789f1199d5.gz b/_darcs/patches/20080622172408-34904-76462f7172a89292a1f5125bd616fc789f1199d5.gz deleted file mode 100644 index f3cc237fbb..0000000000 Binary files a/_darcs/patches/20080622172408-34904-76462f7172a89292a1f5125bd616fc789f1199d5.gz and /dev/null differ diff --git a/_darcs/patches/20080622173341-34904-3c406ca9a33dbe3afeacebef1a63d0dd101669c4.gz b/_darcs/patches/20080622173341-34904-3c406ca9a33dbe3afeacebef1a63d0dd101669c4.gz deleted file mode 100644 index b19bf620b9..0000000000 Binary files a/_darcs/patches/20080622173341-34904-3c406ca9a33dbe3afeacebef1a63d0dd101669c4.gz and /dev/null differ diff --git a/_darcs/patches/20080622180437-34904-4b6313f6fd8845232031663c5c2df00dff725183.gz b/_darcs/patches/20080622180437-34904-4b6313f6fd8845232031663c5c2df00dff725183.gz deleted file mode 100644 index 6cce0bf952..0000000000 Binary files a/_darcs/patches/20080622180437-34904-4b6313f6fd8845232031663c5c2df00dff725183.gz and /dev/null differ diff --git a/_darcs/patches/20080622181550-34904-7970919db30ccfc3979fa6c118c29af9eac0c550.gz b/_darcs/patches/20080622181550-34904-7970919db30ccfc3979fa6c118c29af9eac0c550.gz deleted file mode 100644 index 352bba3837..0000000000 Binary files a/_darcs/patches/20080622181550-34904-7970919db30ccfc3979fa6c118c29af9eac0c550.gz and /dev/null differ diff --git a/_darcs/patches/20080623022710-84dde-bf3d3e3ce87957b9a91d38c16cf834d07b9933ea.gz b/_darcs/patches/20080623022710-84dde-bf3d3e3ce87957b9a91d38c16cf834d07b9933ea.gz deleted file mode 100644 index c2368e7ca4..0000000000 Binary files a/_darcs/patches/20080623022710-84dde-bf3d3e3ce87957b9a91d38c16cf834d07b9933ea.gz and /dev/null differ diff --git a/_darcs/patches/20080623023859-84dde-1c72985ee0a840e59d1fac88f27f929f3c637b65.gz b/_darcs/patches/20080623023859-84dde-1c72985ee0a840e59d1fac88f27f929f3c637b65.gz deleted file mode 100644 index 304f958c5b..0000000000 Binary files a/_darcs/patches/20080623023859-84dde-1c72985ee0a840e59d1fac88f27f929f3c637b65.gz and /dev/null differ diff --git a/_darcs/patches/20080623030150-84dde-d065378a7cf8371924ebf3a76bf9b25d0d50795e.gz b/_darcs/patches/20080623030150-84dde-d065378a7cf8371924ebf3a76bf9b25d0d50795e.gz deleted file mode 100644 index c0bddecc6c..0000000000 Binary files a/_darcs/patches/20080623030150-84dde-d065378a7cf8371924ebf3a76bf9b25d0d50795e.gz and /dev/null differ diff --git a/_darcs/patches/20080623030259-84dde-303fe8b38d237871861b5475c2b15b3d8605369b.gz b/_darcs/patches/20080623030259-84dde-303fe8b38d237871861b5475c2b15b3d8605369b.gz deleted file mode 100644 index e96d55bffb..0000000000 Binary files a/_darcs/patches/20080623030259-84dde-303fe8b38d237871861b5475c2b15b3d8605369b.gz and /dev/null differ diff --git a/_darcs/patches/20080623030523-84dde-d667f0e35b5719cee8496df4b0782dbb4afe5177.gz b/_darcs/patches/20080623030523-84dde-d667f0e35b5719cee8496df4b0782dbb4afe5177.gz deleted file mode 100644 index 83daf44797..0000000000 Binary files a/_darcs/patches/20080623030523-84dde-d667f0e35b5719cee8496df4b0782dbb4afe5177.gz and /dev/null differ diff --git a/_darcs/patches/20080623030837-982e4-532ccd8899fd8be00575f8840da0defb44cd56f8.gz b/_darcs/patches/20080623030837-982e4-532ccd8899fd8be00575f8840da0defb44cd56f8.gz deleted file mode 100644 index a2fc4bf48a..0000000000 Binary files a/_darcs/patches/20080623030837-982e4-532ccd8899fd8be00575f8840da0defb44cd56f8.gz and /dev/null differ diff --git a/_darcs/patches/20080623030930-84dde-9bfebd8ecec06f985fdb2a79536c652391855d13.gz b/_darcs/patches/20080623030930-84dde-9bfebd8ecec06f985fdb2a79536c652391855d13.gz deleted file mode 100644 index f1f23c6cb8..0000000000 Binary files a/_darcs/patches/20080623030930-84dde-9bfebd8ecec06f985fdb2a79536c652391855d13.gz and /dev/null differ diff --git a/_darcs/patches/20080623031058-84dde-60487882c7bc8a29742b0ebd75c32a213ec22a39.gz b/_darcs/patches/20080623031058-84dde-60487882c7bc8a29742b0ebd75c32a213ec22a39.gz deleted file mode 100644 index 4268cc88cd..0000000000 Binary files a/_darcs/patches/20080623031058-84dde-60487882c7bc8a29742b0ebd75c32a213ec22a39.gz and /dev/null differ diff --git a/_darcs/patches/20080623041816-34904-9a55d96a3e76e27b399706f7247bb715f396366b.gz b/_darcs/patches/20080623041816-34904-9a55d96a3e76e27b399706f7247bb715f396366b.gz deleted file mode 100644 index e52e283f99..0000000000 Binary files a/_darcs/patches/20080623041816-34904-9a55d96a3e76e27b399706f7247bb715f396366b.gz and /dev/null differ diff --git a/_darcs/patches/20080623173043-982e4-5951fba93a2aa28f3e8e622167f6b33c1abc6949.gz b/_darcs/patches/20080623173043-982e4-5951fba93a2aa28f3e8e622167f6b33c1abc6949.gz deleted file mode 100644 index 2f2a6086a2..0000000000 Binary files a/_darcs/patches/20080623173043-982e4-5951fba93a2aa28f3e8e622167f6b33c1abc6949.gz and /dev/null differ diff --git a/_darcs/patches/20080623223641-34904-2758e19c70026a0c169e99d86481d87b0b4bc79c.gz b/_darcs/patches/20080623223641-34904-2758e19c70026a0c169e99d86481d87b0b4bc79c.gz deleted file mode 100644 index 9f8f22a7f2..0000000000 Binary files a/_darcs/patches/20080623223641-34904-2758e19c70026a0c169e99d86481d87b0b4bc79c.gz and /dev/null differ diff --git a/_darcs/patches/20080624001523-34904-8d0c052f12301d86aeb9107149b34f22c94da1c4.gz b/_darcs/patches/20080624001523-34904-8d0c052f12301d86aeb9107149b34f22c94da1c4.gz deleted file mode 100644 index e97f1aef26..0000000000 Binary files a/_darcs/patches/20080624001523-34904-8d0c052f12301d86aeb9107149b34f22c94da1c4.gz and /dev/null differ diff --git a/_darcs/patches/20080624013203-34904-fe87dc6b3b991e9753512b8b7cc192f7610eb1dc.gz b/_darcs/patches/20080624013203-34904-fe87dc6b3b991e9753512b8b7cc192f7610eb1dc.gz deleted file mode 100644 index d8d0208715..0000000000 Binary files a/_darcs/patches/20080624013203-34904-fe87dc6b3b991e9753512b8b7cc192f7610eb1dc.gz and /dev/null differ diff --git a/_darcs/patches/20080624014241-34904-39ace8e82e50e5f50c5980b5fb3256184a7c9050.gz b/_darcs/patches/20080624014241-34904-39ace8e82e50e5f50c5980b5fb3256184a7c9050.gz deleted file mode 100644 index 73388fe6a4..0000000000 Binary files a/_darcs/patches/20080624014241-34904-39ace8e82e50e5f50c5980b5fb3256184a7c9050.gz and /dev/null differ diff --git a/_darcs/patches/20080624014625-34904-81e30387f4350499f83f12bb9f7eb460c6ebf6dc.gz b/_darcs/patches/20080624014625-34904-81e30387f4350499f83f12bb9f7eb460c6ebf6dc.gz deleted file mode 100644 index c6fc86b3b0..0000000000 Binary files a/_darcs/patches/20080624014625-34904-81e30387f4350499f83f12bb9f7eb460c6ebf6dc.gz and /dev/null differ diff --git a/_darcs/patches/20080624014642-34904-7d4b1b91a3163add6a99146f92360913e172a39a.gz b/_darcs/patches/20080624014642-34904-7d4b1b91a3163add6a99146f92360913e172a39a.gz deleted file mode 100644 index b8ea050c58..0000000000 Binary files a/_darcs/patches/20080624014642-34904-7d4b1b91a3163add6a99146f92360913e172a39a.gz and /dev/null differ diff --git a/_darcs/patches/20080624014843-34904-4626ab17bfcd320e06e6e5704491c74756b4028c.gz b/_darcs/patches/20080624014843-34904-4626ab17bfcd320e06e6e5704491c74756b4028c.gz deleted file mode 100644 index dd269c5d72..0000000000 Binary files a/_darcs/patches/20080624014843-34904-4626ab17bfcd320e06e6e5704491c74756b4028c.gz and /dev/null differ diff --git a/_darcs/patches/20080624015001-34904-5ce1e31677627baa3b4241530cfe2ae0e385c541.gz b/_darcs/patches/20080624015001-34904-5ce1e31677627baa3b4241530cfe2ae0e385c541.gz deleted file mode 100644 index da83cbe504..0000000000 Binary files a/_darcs/patches/20080624015001-34904-5ce1e31677627baa3b4241530cfe2ae0e385c541.gz and /dev/null differ diff --git a/_darcs/patches/20080624015616-34904-c1ff985257c8c57aacf68439488d628a8b4d2e38.gz b/_darcs/patches/20080624015616-34904-c1ff985257c8c57aacf68439488d628a8b4d2e38.gz deleted file mode 100644 index 1853a37d57..0000000000 Binary files a/_darcs/patches/20080624015616-34904-c1ff985257c8c57aacf68439488d628a8b4d2e38.gz and /dev/null differ diff --git a/_darcs/patches/20080624020205-34904-be536546e7058ed77a6d45be4f91ffe201b3448e.gz b/_darcs/patches/20080624020205-34904-be536546e7058ed77a6d45be4f91ffe201b3448e.gz deleted file mode 100644 index 1505b0b1f5..0000000000 Binary files a/_darcs/patches/20080624020205-34904-be536546e7058ed77a6d45be4f91ffe201b3448e.gz and /dev/null differ diff --git a/_darcs/patches/20080624025234-34904-ad20001bf35bf41fcb63a0c357fd929aacc55fdb.gz b/_darcs/patches/20080624025234-34904-ad20001bf35bf41fcb63a0c357fd929aacc55fdb.gz deleted file mode 100644 index c2ed6c328b..0000000000 Binary files a/_darcs/patches/20080624025234-34904-ad20001bf35bf41fcb63a0c357fd929aacc55fdb.gz and /dev/null differ diff --git a/_darcs/patches/20080624030034-34904-bdcb6197d2050bc37f9daaf6f849aed5890bce53.gz b/_darcs/patches/20080624030034-34904-bdcb6197d2050bc37f9daaf6f849aed5890bce53.gz deleted file mode 100644 index 44db75c999..0000000000 Binary files a/_darcs/patches/20080624030034-34904-bdcb6197d2050bc37f9daaf6f849aed5890bce53.gz and /dev/null differ diff --git a/_darcs/patches/20080624030741-34904-e5b601dd4d76b367ae09a61923b062f6a36702f7.gz b/_darcs/patches/20080624030741-34904-e5b601dd4d76b367ae09a61923b062f6a36702f7.gz deleted file mode 100644 index a09917b1f4..0000000000 Binary files a/_darcs/patches/20080624030741-34904-e5b601dd4d76b367ae09a61923b062f6a36702f7.gz and /dev/null differ diff --git a/_darcs/patches/20080624030834-34904-6efc827f64aebc23a1d2f3602c562fff69b9a0df.gz b/_darcs/patches/20080624030834-34904-6efc827f64aebc23a1d2f3602c562fff69b9a0df.gz deleted file mode 100644 index 3090b68824..0000000000 Binary files a/_darcs/patches/20080624030834-34904-6efc827f64aebc23a1d2f3602c562fff69b9a0df.gz and /dev/null differ diff --git a/_darcs/patches/20080624031057-34904-7a2597a8f56d9d49ad8f126c55058893a922c89f.gz b/_darcs/patches/20080624031057-34904-7a2597a8f56d9d49ad8f126c55058893a922c89f.gz deleted file mode 100644 index 0d1281e2d1..0000000000 Binary files a/_darcs/patches/20080624031057-34904-7a2597a8f56d9d49ad8f126c55058893a922c89f.gz and /dev/null differ diff --git a/_darcs/patches/20080624031746-34904-3719874e1e0afa201e5c81e267531f0768ddacd9.gz b/_darcs/patches/20080624031746-34904-3719874e1e0afa201e5c81e267531f0768ddacd9.gz deleted file mode 100644 index 5ff0c0049f..0000000000 Binary files a/_darcs/patches/20080624031746-34904-3719874e1e0afa201e5c81e267531f0768ddacd9.gz and /dev/null differ diff --git a/_darcs/patches/20080624031927-34904-4a0c4d5966c8dd840cf6c368bdbe47990a39c074.gz b/_darcs/patches/20080624031927-34904-4a0c4d5966c8dd840cf6c368bdbe47990a39c074.gz deleted file mode 100644 index c797453aec..0000000000 Binary files a/_darcs/patches/20080624031927-34904-4a0c4d5966c8dd840cf6c368bdbe47990a39c074.gz and /dev/null differ diff --git a/_darcs/patches/20080624032408-34904-1437e0359bd81c780e8ab12bdcbd1f9d8c87ef1c.gz b/_darcs/patches/20080624032408-34904-1437e0359bd81c780e8ab12bdcbd1f9d8c87ef1c.gz deleted file mode 100644 index fa50e48037..0000000000 Binary files a/_darcs/patches/20080624032408-34904-1437e0359bd81c780e8ab12bdcbd1f9d8c87ef1c.gz and /dev/null differ diff --git a/_darcs/patches/20080624032818-34904-bf8c5594c42c797820e080250c955645a5a84aa1.gz b/_darcs/patches/20080624032818-34904-bf8c5594c42c797820e080250c955645a5a84aa1.gz deleted file mode 100644 index fc013fdcd2..0000000000 Binary files a/_darcs/patches/20080624032818-34904-bf8c5594c42c797820e080250c955645a5a84aa1.gz and /dev/null differ diff --git a/_darcs/patches/20080624033223-34904-39ffa0aebcb9d173a7e5dd09870681ebb6e7313d.gz b/_darcs/patches/20080624033223-34904-39ffa0aebcb9d173a7e5dd09870681ebb6e7313d.gz deleted file mode 100644 index 0ef6198d11..0000000000 Binary files a/_darcs/patches/20080624033223-34904-39ffa0aebcb9d173a7e5dd09870681ebb6e7313d.gz and /dev/null differ diff --git a/_darcs/patches/20080624034906-34904-a21bab1db498d69c616606126f6b788a2188b1e2.gz b/_darcs/patches/20080624034906-34904-a21bab1db498d69c616606126f6b788a2188b1e2.gz deleted file mode 100644 index a9561cdf04..0000000000 Binary files a/_darcs/patches/20080624034906-34904-a21bab1db498d69c616606126f6b788a2188b1e2.gz and /dev/null differ diff --git a/_darcs/patches/20080624040058-34904-0f16041ec545e1a42384178f6cd52edcae967d2a.gz b/_darcs/patches/20080624040058-34904-0f16041ec545e1a42384178f6cd52edcae967d2a.gz deleted file mode 100644 index 4bc27e01ed..0000000000 Binary files a/_darcs/patches/20080624040058-34904-0f16041ec545e1a42384178f6cd52edcae967d2a.gz and /dev/null differ diff --git a/_darcs/patches/20080624040234-34904-bf5e87a55ee94c74b840c6a62e78e476c7b5f8d3.gz b/_darcs/patches/20080624040234-34904-bf5e87a55ee94c74b840c6a62e78e476c7b5f8d3.gz deleted file mode 100644 index 3f7f1917b3..0000000000 Binary files a/_darcs/patches/20080624040234-34904-bf5e87a55ee94c74b840c6a62e78e476c7b5f8d3.gz and /dev/null differ diff --git a/_darcs/patches/20080624040548-34904-3b5a78f4ed40db913c82e90fe6955f26aac0f92a.gz b/_darcs/patches/20080624040548-34904-3b5a78f4ed40db913c82e90fe6955f26aac0f92a.gz deleted file mode 100644 index 3eff76bc54..0000000000 Binary files a/_darcs/patches/20080624040548-34904-3b5a78f4ed40db913c82e90fe6955f26aac0f92a.gz and /dev/null differ diff --git a/_darcs/patches/20080624171305-982e4-732e5d4f9ad5d92145c6cbc7568ef9393e962dfb.gz b/_darcs/patches/20080624171305-982e4-732e5d4f9ad5d92145c6cbc7568ef9393e962dfb.gz deleted file mode 100644 index 25b180d19c..0000000000 Binary files a/_darcs/patches/20080624171305-982e4-732e5d4f9ad5d92145c6cbc7568ef9393e962dfb.gz and /dev/null differ diff --git a/_darcs/patches/20080624174613-982e4-1a6f11365957e6f4ed70b87ce64fb9938441f01f.gz b/_darcs/patches/20080624174613-982e4-1a6f11365957e6f4ed70b87ce64fb9938441f01f.gz deleted file mode 100644 index 849bfbbe1b..0000000000 Binary files a/_darcs/patches/20080624174613-982e4-1a6f11365957e6f4ed70b87ce64fb9938441f01f.gz and /dev/null differ diff --git a/_darcs/patches/20080624215033-34904-d5576bf55da26df44f0580c3759ed3edd8597506.gz b/_darcs/patches/20080624215033-34904-d5576bf55da26df44f0580c3759ed3edd8597506.gz deleted file mode 100644 index 45131caffa..0000000000 Binary files a/_darcs/patches/20080624215033-34904-d5576bf55da26df44f0580c3759ed3edd8597506.gz and /dev/null differ diff --git a/_darcs/patches/20080624215826-34904-045d8e8cc25195eb045d2a96a526a6d2a9f0c218.gz b/_darcs/patches/20080624215826-34904-045d8e8cc25195eb045d2a96a526a6d2a9f0c218.gz deleted file mode 100644 index b405f3e11e..0000000000 Binary files a/_darcs/patches/20080624215826-34904-045d8e8cc25195eb045d2a96a526a6d2a9f0c218.gz and /dev/null differ diff --git a/_darcs/patches/20080624220335-34904-2c4089bf6d1b37b6f613ce89c6fad104727e7487.gz b/_darcs/patches/20080624220335-34904-2c4089bf6d1b37b6f613ce89c6fad104727e7487.gz deleted file mode 100644 index 316103c3b3..0000000000 Binary files a/_darcs/patches/20080624220335-34904-2c4089bf6d1b37b6f613ce89c6fad104727e7487.gz and /dev/null differ diff --git a/_darcs/patches/20080624220626-34904-94cb8a4cd1f1a7a96e78ab57e760f8de42f4eaca.gz b/_darcs/patches/20080624220626-34904-94cb8a4cd1f1a7a96e78ab57e760f8de42f4eaca.gz deleted file mode 100644 index 78df24217c..0000000000 Binary files a/_darcs/patches/20080624220626-34904-94cb8a4cd1f1a7a96e78ab57e760f8de42f4eaca.gz and /dev/null differ diff --git a/_darcs/patches/20080624221054-34904-732acfe742c0b1c5e71b604660aa2e657c68a4d4.gz b/_darcs/patches/20080624221054-34904-732acfe742c0b1c5e71b604660aa2e657c68a4d4.gz deleted file mode 100644 index db4af1e4bc..0000000000 Binary files a/_darcs/patches/20080624221054-34904-732acfe742c0b1c5e71b604660aa2e657c68a4d4.gz and /dev/null differ diff --git a/_darcs/patches/20080624221437-34904-746bd79dbef949c16095b9b44a9a721288abb989.gz b/_darcs/patches/20080624221437-34904-746bd79dbef949c16095b9b44a9a721288abb989.gz deleted file mode 100644 index 719b09560e..0000000000 Binary files a/_darcs/patches/20080624221437-34904-746bd79dbef949c16095b9b44a9a721288abb989.gz and /dev/null differ diff --git a/_darcs/patches/20080624221758-34904-8ba5bbf95a2f16e9bfebb2c4dbd4d2d357cf958e.gz b/_darcs/patches/20080624221758-34904-8ba5bbf95a2f16e9bfebb2c4dbd4d2d357cf958e.gz deleted file mode 100644 index d2cf054540..0000000000 Binary files a/_darcs/patches/20080624221758-34904-8ba5bbf95a2f16e9bfebb2c4dbd4d2d357cf958e.gz and /dev/null differ diff --git a/_darcs/patches/20080624224030-34904-a2a50cfcadba05799094574201223907e6e423a6.gz b/_darcs/patches/20080624224030-34904-a2a50cfcadba05799094574201223907e6e423a6.gz deleted file mode 100644 index 53372945fd..0000000000 Binary files a/_darcs/patches/20080624224030-34904-a2a50cfcadba05799094574201223907e6e423a6.gz and /dev/null differ diff --git a/_darcs/patches/20080624225556-34904-2f31fbe0944374892005ea88977736bda59729fa.gz b/_darcs/patches/20080624225556-34904-2f31fbe0944374892005ea88977736bda59729fa.gz deleted file mode 100644 index 31971dfdfd..0000000000 Binary files a/_darcs/patches/20080624225556-34904-2f31fbe0944374892005ea88977736bda59729fa.gz and /dev/null differ diff --git a/_darcs/patches/20080625125847-982e4-b4c1c644fe07a43c61062ae3d9302148ab925088.gz b/_darcs/patches/20080625125847-982e4-b4c1c644fe07a43c61062ae3d9302148ab925088.gz deleted file mode 100644 index ee398a1f4e..0000000000 Binary files a/_darcs/patches/20080625125847-982e4-b4c1c644fe07a43c61062ae3d9302148ab925088.gz and /dev/null differ diff --git a/_darcs/patches/20080625142131-982e4-04a23e0c07cff075a3d0ad33f6d765d4eb8b5057.gz b/_darcs/patches/20080625142131-982e4-04a23e0c07cff075a3d0ad33f6d765d4eb8b5057.gz deleted file mode 100644 index 2c30708ae7..0000000000 Binary files a/_darcs/patches/20080625142131-982e4-04a23e0c07cff075a3d0ad33f6d765d4eb8b5057.gz and /dev/null differ diff --git a/_darcs/patches/20080626064646-34904-d9b9bba1994626cc242e1ed7222762e8e3a90543.gz b/_darcs/patches/20080626064646-34904-d9b9bba1994626cc242e1ed7222762e8e3a90543.gz deleted file mode 100644 index 6942bb2dc5..0000000000 Binary files a/_darcs/patches/20080626064646-34904-d9b9bba1994626cc242e1ed7222762e8e3a90543.gz and /dev/null differ diff --git a/_darcs/patches/20080626070703-34904-b6c6a9b1df39f09221c450dcb3d32f6da6e2df5e.gz b/_darcs/patches/20080626070703-34904-b6c6a9b1df39f09221c450dcb3d32f6da6e2df5e.gz deleted file mode 100644 index 08b82a8b6c..0000000000 Binary files a/_darcs/patches/20080626070703-34904-b6c6a9b1df39f09221c450dcb3d32f6da6e2df5e.gz and /dev/null differ diff --git a/_darcs/patches/20080626071213-34904-aefba28162aa3afb1b3e8152ee8210fe3108b841.gz b/_darcs/patches/20080626071213-34904-aefba28162aa3afb1b3e8152ee8210fe3108b841.gz deleted file mode 100644 index 22f37e7c3f..0000000000 Binary files a/_darcs/patches/20080626071213-34904-aefba28162aa3afb1b3e8152ee8210fe3108b841.gz and /dev/null differ diff --git a/_darcs/patches/20080626072159-34904-b025f2d626b3421ca0a658b5664504b4a261b993.gz b/_darcs/patches/20080626072159-34904-b025f2d626b3421ca0a658b5664504b4a261b993.gz deleted file mode 100644 index c51aec39a7..0000000000 Binary files a/_darcs/patches/20080626072159-34904-b025f2d626b3421ca0a658b5664504b4a261b993.gz and /dev/null differ diff --git a/_darcs/patches/20080626073530-34904-e56c156737db036b0de4bd6e396833bf044cb865.gz b/_darcs/patches/20080626073530-34904-e56c156737db036b0de4bd6e396833bf044cb865.gz deleted file mode 100644 index c61ebdc4d0..0000000000 Binary files a/_darcs/patches/20080626073530-34904-e56c156737db036b0de4bd6e396833bf044cb865.gz and /dev/null differ diff --git a/_darcs/patches/20080626075920-34904-0aad06d788f8dbf3a03d17752ba49d866322594e.gz b/_darcs/patches/20080626075920-34904-0aad06d788f8dbf3a03d17752ba49d866322594e.gz deleted file mode 100644 index 21012301ba..0000000000 Binary files a/_darcs/patches/20080626075920-34904-0aad06d788f8dbf3a03d17752ba49d866322594e.gz and /dev/null differ diff --git a/_darcs/patches/20080626080214-34904-88d67a23cbdde21dd74064e6e0c401fb7204699a.gz b/_darcs/patches/20080626080214-34904-88d67a23cbdde21dd74064e6e0c401fb7204699a.gz deleted file mode 100644 index cf8691365d..0000000000 Binary files a/_darcs/patches/20080626080214-34904-88d67a23cbdde21dd74064e6e0c401fb7204699a.gz and /dev/null differ diff --git a/_darcs/patches/20080626080626-34904-e6783597cc1317894d9f6a301edf3ef69c529ce9.gz b/_darcs/patches/20080626080626-34904-e6783597cc1317894d9f6a301edf3ef69c529ce9.gz deleted file mode 100644 index 9057ea62db..0000000000 Binary files a/_darcs/patches/20080626080626-34904-e6783597cc1317894d9f6a301edf3ef69c529ce9.gz and /dev/null differ diff --git a/_darcs/patches/20080626150336-34904-bfa5ec8740ba1edf60c34e1ef6aafdfd73fc99a2.gz b/_darcs/patches/20080626150336-34904-bfa5ec8740ba1edf60c34e1ef6aafdfd73fc99a2.gz deleted file mode 100644 index 82247d1a62..0000000000 Binary files a/_darcs/patches/20080626150336-34904-bfa5ec8740ba1edf60c34e1ef6aafdfd73fc99a2.gz and /dev/null differ diff --git a/_darcs/patches/20080626151202-34904-dbf62574fe1002a76002018ad1dfe8de8ec9774b.gz b/_darcs/patches/20080626151202-34904-dbf62574fe1002a76002018ad1dfe8de8ec9774b.gz deleted file mode 100644 index bf9f90962b..0000000000 Binary files a/_darcs/patches/20080626151202-34904-dbf62574fe1002a76002018ad1dfe8de8ec9774b.gz and /dev/null differ diff --git a/_darcs/patches/20080626152044-34904-2724922671149ab7ee40241d96199d80e2ecc1fe.gz b/_darcs/patches/20080626152044-34904-2724922671149ab7ee40241d96199d80e2ecc1fe.gz deleted file mode 100644 index 3a68bea20a..0000000000 Binary files a/_darcs/patches/20080626152044-34904-2724922671149ab7ee40241d96199d80e2ecc1fe.gz and /dev/null differ diff --git a/_darcs/patches/20080626181144-34904-87503e70e6705b06ebb6c19910583f4fba1b22e0.gz b/_darcs/patches/20080626181144-34904-87503e70e6705b06ebb6c19910583f4fba1b22e0.gz deleted file mode 100644 index d546bcf772..0000000000 Binary files a/_darcs/patches/20080626181144-34904-87503e70e6705b06ebb6c19910583f4fba1b22e0.gz and /dev/null differ diff --git a/_darcs/patches/20080626181726-34904-c21801c5f2a74b6e66130308cdc106429cf7f43c.gz b/_darcs/patches/20080626181726-34904-c21801c5f2a74b6e66130308cdc106429cf7f43c.gz deleted file mode 100644 index e039914fba..0000000000 Binary files a/_darcs/patches/20080626181726-34904-c21801c5f2a74b6e66130308cdc106429cf7f43c.gz and /dev/null differ diff --git a/_darcs/patches/20080626182231-34904-e8d139c2a8b5cd07fa0179b0bcf5cd41f1a1217b.gz b/_darcs/patches/20080626182231-34904-e8d139c2a8b5cd07fa0179b0bcf5cd41f1a1217b.gz deleted file mode 100644 index f9326fcd06..0000000000 Binary files a/_darcs/patches/20080626182231-34904-e8d139c2a8b5cd07fa0179b0bcf5cd41f1a1217b.gz and /dev/null differ diff --git a/_darcs/patches/20080626182705-34904-893d72f480c330beb2d8f871da0d2cd9b902ffbf.gz b/_darcs/patches/20080626182705-34904-893d72f480c330beb2d8f871da0d2cd9b902ffbf.gz deleted file mode 100644 index bbfd615e3e..0000000000 Binary files a/_darcs/patches/20080626182705-34904-893d72f480c330beb2d8f871da0d2cd9b902ffbf.gz and /dev/null differ diff --git a/_darcs/patches/20080626183117-34904-62bd1ba2aab5cf8a0d351b3b600369fec7956b3f.gz b/_darcs/patches/20080626183117-34904-62bd1ba2aab5cf8a0d351b3b600369fec7956b3f.gz deleted file mode 100644 index deb6e0cd0d..0000000000 Binary files a/_darcs/patches/20080626183117-34904-62bd1ba2aab5cf8a0d351b3b600369fec7956b3f.gz and /dev/null differ diff --git a/_darcs/patches/20080626183721-34904-7c03b34e911ddb0c4adba959402d49476be932c1.gz b/_darcs/patches/20080626183721-34904-7c03b34e911ddb0c4adba959402d49476be932c1.gz deleted file mode 100644 index 391ae7c6e1..0000000000 Binary files a/_darcs/patches/20080626183721-34904-7c03b34e911ddb0c4adba959402d49476be932c1.gz and /dev/null differ diff --git a/_darcs/patches/20080626184055-34904-05d1ef61bcf973b4b2c234b08708fd8c62805c2a.gz b/_darcs/patches/20080626184055-34904-05d1ef61bcf973b4b2c234b08708fd8c62805c2a.gz deleted file mode 100644 index 51ac7712ca..0000000000 Binary files a/_darcs/patches/20080626184055-34904-05d1ef61bcf973b4b2c234b08708fd8c62805c2a.gz and /dev/null differ diff --git a/_darcs/patches/20080626184811-34904-d5d7373acb89b06eb3f0854d83b0ac425a70d1e2.gz b/_darcs/patches/20080626184811-34904-d5d7373acb89b06eb3f0854d83b0ac425a70d1e2.gz deleted file mode 100644 index 238da4e5b5..0000000000 Binary files a/_darcs/patches/20080626184811-34904-d5d7373acb89b06eb3f0854d83b0ac425a70d1e2.gz and /dev/null differ diff --git a/_darcs/patches/20080626184931-34904-d83ce6fc0f3d126929e01804dafea466249b329b.gz b/_darcs/patches/20080626184931-34904-d83ce6fc0f3d126929e01804dafea466249b329b.gz deleted file mode 100644 index d6169aafa9..0000000000 Binary files a/_darcs/patches/20080626184931-34904-d83ce6fc0f3d126929e01804dafea466249b329b.gz and /dev/null differ diff --git a/_darcs/patches/20080626190307-34904-5aca9b62944d4e8f6170705dec822d30a1163401.gz b/_darcs/patches/20080626190307-34904-5aca9b62944d4e8f6170705dec822d30a1163401.gz deleted file mode 100644 index cbd39548d7..0000000000 Binary files a/_darcs/patches/20080626190307-34904-5aca9b62944d4e8f6170705dec822d30a1163401.gz and /dev/null differ diff --git a/_darcs/patches/20080626190538-34904-d160176208203bcc806e824874c75021b32b6f92.gz b/_darcs/patches/20080626190538-34904-d160176208203bcc806e824874c75021b32b6f92.gz deleted file mode 100644 index d09b797da1..0000000000 Binary files a/_darcs/patches/20080626190538-34904-d160176208203bcc806e824874c75021b32b6f92.gz and /dev/null differ diff --git a/_darcs/patches/20080626203103-34904-19ef53bc734622a310a705608f3e227e2f387904.gz b/_darcs/patches/20080626203103-34904-19ef53bc734622a310a705608f3e227e2f387904.gz deleted file mode 100644 index 6b434c1c94..0000000000 Binary files a/_darcs/patches/20080626203103-34904-19ef53bc734622a310a705608f3e227e2f387904.gz and /dev/null differ diff --git a/_darcs/patches/20080626203935-34904-bf73b91cc008b28a0d0d2187dfaa346784c23afd.gz b/_darcs/patches/20080626203935-34904-bf73b91cc008b28a0d0d2187dfaa346784c23afd.gz deleted file mode 100644 index 4c0fa9de7b..0000000000 Binary files a/_darcs/patches/20080626203935-34904-bf73b91cc008b28a0d0d2187dfaa346784c23afd.gz and /dev/null differ diff --git a/_darcs/patches/20080626205409-34904-62ff39380f8fc22085825d0cee5fe8cf356459e5.gz b/_darcs/patches/20080626205409-34904-62ff39380f8fc22085825d0cee5fe8cf356459e5.gz deleted file mode 100644 index e46c627a60..0000000000 Binary files a/_darcs/patches/20080626205409-34904-62ff39380f8fc22085825d0cee5fe8cf356459e5.gz and /dev/null differ diff --git a/_darcs/patches/20080626205418-34904-3c00363d01955e4df73b0ef730c23188f03b548f.gz b/_darcs/patches/20080626205418-34904-3c00363d01955e4df73b0ef730c23188f03b548f.gz deleted file mode 100644 index 28b833e703..0000000000 Binary files a/_darcs/patches/20080626205418-34904-3c00363d01955e4df73b0ef730c23188f03b548f.gz and /dev/null differ diff --git a/_darcs/patches/20080626213018-34904-d5efe7ae9489afa9f07e0336902c713ac731d948.gz b/_darcs/patches/20080626213018-34904-d5efe7ae9489afa9f07e0336902c713ac731d948.gz deleted file mode 100644 index 1ae4fbb2d7..0000000000 Binary files a/_darcs/patches/20080626213018-34904-d5efe7ae9489afa9f07e0336902c713ac731d948.gz and /dev/null differ diff --git a/_darcs/patches/20080626214654-34904-68a52888deaaca54fe39bcd77ae51997aa3a3959.gz b/_darcs/patches/20080626214654-34904-68a52888deaaca54fe39bcd77ae51997aa3a3959.gz deleted file mode 100644 index eeb614cfcc..0000000000 Binary files a/_darcs/patches/20080626214654-34904-68a52888deaaca54fe39bcd77ae51997aa3a3959.gz and /dev/null differ diff --git a/_darcs/patches/20080626215204-34904-04b3c1508c0265d47f7a01c5d0d99f9a4b1d1535.gz b/_darcs/patches/20080626215204-34904-04b3c1508c0265d47f7a01c5d0d99f9a4b1d1535.gz deleted file mode 100644 index a4a459585d..0000000000 Binary files a/_darcs/patches/20080626215204-34904-04b3c1508c0265d47f7a01c5d0d99f9a4b1d1535.gz and /dev/null differ diff --git a/_darcs/patches/20080626215308-34904-3dc92c082d793a92f3d3521f83ef38c009432d0b.gz b/_darcs/patches/20080626215308-34904-3dc92c082d793a92f3d3521f83ef38c009432d0b.gz deleted file mode 100644 index c354955732..0000000000 Binary files a/_darcs/patches/20080626215308-34904-3dc92c082d793a92f3d3521f83ef38c009432d0b.gz and /dev/null differ diff --git a/_darcs/patches/20080626215308-34904-872bd73f57b618e9f5670d47ee26da993f81a431.gz b/_darcs/patches/20080626215308-34904-872bd73f57b618e9f5670d47ee26da993f81a431.gz deleted file mode 100644 index 304bedb29c..0000000000 Binary files a/_darcs/patches/20080626215308-34904-872bd73f57b618e9f5670d47ee26da993f81a431.gz and /dev/null differ diff --git a/_darcs/patches/20080626215525-34904-6642f29eebddcdb52955017bdd69da9ee87c3d20.gz b/_darcs/patches/20080626215525-34904-6642f29eebddcdb52955017bdd69da9ee87c3d20.gz deleted file mode 100644 index 154c4f0977..0000000000 Binary files a/_darcs/patches/20080626215525-34904-6642f29eebddcdb52955017bdd69da9ee87c3d20.gz and /dev/null differ diff --git a/_darcs/patches/20080626224011-84dde-c6bbfcde6d0802ef3a2346524e0f883e6767c949.gz b/_darcs/patches/20080626224011-84dde-c6bbfcde6d0802ef3a2346524e0f883e6767c949.gz deleted file mode 100644 index c7e9b1e306..0000000000 Binary files a/_darcs/patches/20080626224011-84dde-c6bbfcde6d0802ef3a2346524e0f883e6767c949.gz and /dev/null differ diff --git a/_darcs/patches/20080626224011-84dde-fcdb8c079ad3aef9be51e46651b6a75ea45f5fe6.gz b/_darcs/patches/20080626224011-84dde-fcdb8c079ad3aef9be51e46651b6a75ea45f5fe6.gz deleted file mode 100644 index eaeb170c9c..0000000000 Binary files a/_darcs/patches/20080626224011-84dde-fcdb8c079ad3aef9be51e46651b6a75ea45f5fe6.gz and /dev/null differ diff --git a/_darcs/patches/20080626225002-84dde-898a118457577e321f426270f8c98072962341ab.gz b/_darcs/patches/20080626225002-84dde-898a118457577e321f426270f8c98072962341ab.gz deleted file mode 100644 index 8049733698..0000000000 Binary files a/_darcs/patches/20080626225002-84dde-898a118457577e321f426270f8c98072962341ab.gz and /dev/null differ diff --git a/_darcs/patches/20080627143025-84dde-fee234fbcdf825cccc2ce0c9c812dcb27ebe6433.gz b/_darcs/patches/20080627143025-84dde-fee234fbcdf825cccc2ce0c9c812dcb27ebe6433.gz deleted file mode 100644 index 32c3fac664..0000000000 Binary files a/_darcs/patches/20080627143025-84dde-fee234fbcdf825cccc2ce0c9c812dcb27ebe6433.gz and /dev/null differ diff --git a/_darcs/patches/20080627145553-84dde-31e52074c9b8327bcebc46372e4ee8f86b77ea20.gz b/_darcs/patches/20080627145553-84dde-31e52074c9b8327bcebc46372e4ee8f86b77ea20.gz deleted file mode 100644 index b4641f4f3d..0000000000 Binary files a/_darcs/patches/20080627145553-84dde-31e52074c9b8327bcebc46372e4ee8f86b77ea20.gz and /dev/null differ diff --git a/_darcs/patches/20080627154825-84dde-b876f7dff5e1b72b94432e26cf8af02e2c36d0cc.gz b/_darcs/patches/20080627154825-84dde-b876f7dff5e1b72b94432e26cf8af02e2c36d0cc.gz deleted file mode 100644 index 016e83d6bf..0000000000 Binary files a/_darcs/patches/20080627154825-84dde-b876f7dff5e1b72b94432e26cf8af02e2c36d0cc.gz and /dev/null differ diff --git a/_darcs/patches/20080627171700-e4794-114dafeabd05784a3440dca54f0d95edf374794d.gz b/_darcs/patches/20080627171700-e4794-114dafeabd05784a3440dca54f0d95edf374794d.gz deleted file mode 100644 index f31d3e8896..0000000000 Binary files a/_darcs/patches/20080627171700-e4794-114dafeabd05784a3440dca54f0d95edf374794d.gz and /dev/null differ diff --git a/_darcs/patches/20080627222522-84dde-9bef8dc543bbb945b1f05dbeed43924d27f704d1.gz b/_darcs/patches/20080627222522-84dde-9bef8dc543bbb945b1f05dbeed43924d27f704d1.gz deleted file mode 100644 index 1d6ccd33b5..0000000000 Binary files a/_darcs/patches/20080627222522-84dde-9bef8dc543bbb945b1f05dbeed43924d27f704d1.gz and /dev/null differ diff --git a/_darcs/patches/20080627222930-84dde-e54a369d91060b7ff2559af9ff08735b2eec43d9.gz b/_darcs/patches/20080627222930-84dde-e54a369d91060b7ff2559af9ff08735b2eec43d9.gz deleted file mode 100644 index 55f8f90a97..0000000000 Binary files a/_darcs/patches/20080627222930-84dde-e54a369d91060b7ff2559af9ff08735b2eec43d9.gz and /dev/null differ diff --git a/_darcs/patches/20080627223439-84dde-2d0a8a8284e2f6d6af8710a5b9a52f7d45658f81.gz b/_darcs/patches/20080627223439-84dde-2d0a8a8284e2f6d6af8710a5b9a52f7d45658f81.gz deleted file mode 100644 index b8bb63442b..0000000000 Binary files a/_darcs/patches/20080627223439-84dde-2d0a8a8284e2f6d6af8710a5b9a52f7d45658f81.gz and /dev/null differ diff --git a/_darcs/patches/20080630152415-84dde-7ee73e1b9b8684ebcfb957c2c33b20a8265e1e74.gz b/_darcs/patches/20080630152415-84dde-7ee73e1b9b8684ebcfb957c2c33b20a8265e1e74.gz deleted file mode 100644 index 8abd98a88b..0000000000 Binary files a/_darcs/patches/20080630152415-84dde-7ee73e1b9b8684ebcfb957c2c33b20a8265e1e74.gz and /dev/null differ diff --git a/_darcs/patches/20080630161024-84dde-6afe93a69b91af9270b9e0536dea0e6c17ae2297.gz b/_darcs/patches/20080630161024-84dde-6afe93a69b91af9270b9e0536dea0e6c17ae2297.gz deleted file mode 100644 index 675e1ea8c1..0000000000 Binary files a/_darcs/patches/20080630161024-84dde-6afe93a69b91af9270b9e0536dea0e6c17ae2297.gz and /dev/null differ diff --git a/_darcs/patches/20080630161201-84dde-835e66e9abb6e5c447bfc9b97b29bdd27962ac41.gz b/_darcs/patches/20080630161201-84dde-835e66e9abb6e5c447bfc9b97b29bdd27962ac41.gz deleted file mode 100644 index c467a2c8f3..0000000000 Binary files a/_darcs/patches/20080630161201-84dde-835e66e9abb6e5c447bfc9b97b29bdd27962ac41.gz and /dev/null differ diff --git a/_darcs/patches/20080630161304-84dde-c7f390e99502d6092a6597789a74a3f7790d38ed.gz b/_darcs/patches/20080630161304-84dde-c7f390e99502d6092a6597789a74a3f7790d38ed.gz deleted file mode 100644 index fca4307378..0000000000 Binary files a/_darcs/patches/20080630161304-84dde-c7f390e99502d6092a6597789a74a3f7790d38ed.gz and /dev/null differ diff --git a/_darcs/patches/20080630164341-84dde-0d62a56b3c23e722b0b703ade5aa4220b9f2996a.gz b/_darcs/patches/20080630164341-84dde-0d62a56b3c23e722b0b703ade5aa4220b9f2996a.gz deleted file mode 100644 index 0bc4e4af4d..0000000000 Binary files a/_darcs/patches/20080630164341-84dde-0d62a56b3c23e722b0b703ade5aa4220b9f2996a.gz and /dev/null differ diff --git a/_darcs/patches/20080630170342-84dde-5d7feb88a0a707b24c8070802a7ec99dd1f35687.gz b/_darcs/patches/20080630170342-84dde-5d7feb88a0a707b24c8070802a7ec99dd1f35687.gz deleted file mode 100644 index 74fae89cf0..0000000000 Binary files a/_darcs/patches/20080630170342-84dde-5d7feb88a0a707b24c8070802a7ec99dd1f35687.gz and /dev/null differ diff --git a/_darcs/patches/20080630170545-84dde-7bd95c43f3943e9cc5bf9ec6f57da0ff12204601.gz b/_darcs/patches/20080630170545-84dde-7bd95c43f3943e9cc5bf9ec6f57da0ff12204601.gz deleted file mode 100644 index 17f73e52df..0000000000 Binary files a/_darcs/patches/20080630170545-84dde-7bd95c43f3943e9cc5bf9ec6f57da0ff12204601.gz and /dev/null differ diff --git a/_darcs/patches/20080630170653-84dde-e13ebf4ea364a6f12bb2692bc0278491a804c0fc.gz b/_darcs/patches/20080630170653-84dde-e13ebf4ea364a6f12bb2692bc0278491a804c0fc.gz deleted file mode 100644 index a5d8b1de3a..0000000000 Binary files a/_darcs/patches/20080630170653-84dde-e13ebf4ea364a6f12bb2692bc0278491a804c0fc.gz and /dev/null differ diff --git a/_darcs/patches/20080630171317-84dde-90df9a852df935c50507cd6986583fd80c2b1fd6.gz b/_darcs/patches/20080630171317-84dde-90df9a852df935c50507cd6986583fd80c2b1fd6.gz deleted file mode 100644 index f0da600351..0000000000 Binary files a/_darcs/patches/20080630171317-84dde-90df9a852df935c50507cd6986583fd80c2b1fd6.gz and /dev/null differ diff --git a/_darcs/patches/20080630195032-84dde-941bafd039cd6483c5eee0ec9acde9df911a3d14.gz b/_darcs/patches/20080630195032-84dde-941bafd039cd6483c5eee0ec9acde9df911a3d14.gz deleted file mode 100644 index 68861ea3b6..0000000000 Binary files a/_darcs/patches/20080630195032-84dde-941bafd039cd6483c5eee0ec9acde9df911a3d14.gz and /dev/null differ diff --git a/_darcs/patches/20080630195139-84dde-d0d9297331f341f9fa0dda5c70ed574179de43c7.gz b/_darcs/patches/20080630195139-84dde-d0d9297331f341f9fa0dda5c70ed574179de43c7.gz deleted file mode 100644 index 8dd04f9ae1..0000000000 Binary files a/_darcs/patches/20080630195139-84dde-d0d9297331f341f9fa0dda5c70ed574179de43c7.gz and /dev/null differ diff --git a/_darcs/patches/20080701155442-84dde-948a31801bc639a0e5d7d9c04bee1fc0b1df7667.gz b/_darcs/patches/20080701155442-84dde-948a31801bc639a0e5d7d9c04bee1fc0b1df7667.gz deleted file mode 100644 index c10018558e..0000000000 Binary files a/_darcs/patches/20080701155442-84dde-948a31801bc639a0e5d7d9c04bee1fc0b1df7667.gz and /dev/null differ diff --git a/_darcs/patches/20080701155651-84dde-be2516b912927e565a518dbcddd8d071b006b501.gz b/_darcs/patches/20080701155651-84dde-be2516b912927e565a518dbcddd8d071b006b501.gz deleted file mode 100644 index 67ff0c55ca..0000000000 Binary files a/_darcs/patches/20080701155651-84dde-be2516b912927e565a518dbcddd8d071b006b501.gz and /dev/null differ diff --git a/_darcs/patches/20080701155809-84dde-9275267d10258d421416ab801116aabbb561212a.gz b/_darcs/patches/20080701155809-84dde-9275267d10258d421416ab801116aabbb561212a.gz deleted file mode 100644 index b554b04789..0000000000 Binary files a/_darcs/patches/20080701155809-84dde-9275267d10258d421416ab801116aabbb561212a.gz and /dev/null differ diff --git a/_darcs/patches/20080701163705-84dde-ee039de84a45080962671d15891f3f7f685a73a6.gz b/_darcs/patches/20080701163705-84dde-ee039de84a45080962671d15891f3f7f685a73a6.gz deleted file mode 100644 index c4fc3374ac..0000000000 Binary files a/_darcs/patches/20080701163705-84dde-ee039de84a45080962671d15891f3f7f685a73a6.gz and /dev/null differ diff --git a/_darcs/patches/20080701164058-84dde-9e3864ddd1174b771d0830bb77db7889c4e3def1.gz b/_darcs/patches/20080701164058-84dde-9e3864ddd1174b771d0830bb77db7889c4e3def1.gz deleted file mode 100644 index 726de68434..0000000000 Binary files a/_darcs/patches/20080701164058-84dde-9e3864ddd1174b771d0830bb77db7889c4e3def1.gz and /dev/null differ diff --git a/_darcs/patches/20080701165717-84dde-084a3dfe99e58e57c4bb9cf5dcbd6b1ffeff00bb.gz b/_darcs/patches/20080701165717-84dde-084a3dfe99e58e57c4bb9cf5dcbd6b1ffeff00bb.gz deleted file mode 100644 index b5d6df91ac..0000000000 Binary files a/_darcs/patches/20080701165717-84dde-084a3dfe99e58e57c4bb9cf5dcbd6b1ffeff00bb.gz and /dev/null differ diff --git a/_darcs/patches/20080701165927-84dde-04aaa82b971ec1e5799f4aad0d8d9b66e593f827.gz b/_darcs/patches/20080701165927-84dde-04aaa82b971ec1e5799f4aad0d8d9b66e593f827.gz deleted file mode 100644 index e87e231880..0000000000 Binary files a/_darcs/patches/20080701165927-84dde-04aaa82b971ec1e5799f4aad0d8d9b66e593f827.gz and /dev/null differ diff --git a/_darcs/patches/20080701170521-84dde-6bc929388018eefbe8a0d1de3a6a6a06154eadc7.gz b/_darcs/patches/20080701170521-84dde-6bc929388018eefbe8a0d1de3a6a6a06154eadc7.gz deleted file mode 100644 index 5125b0364e..0000000000 Binary files a/_darcs/patches/20080701170521-84dde-6bc929388018eefbe8a0d1de3a6a6a06154eadc7.gz and /dev/null differ diff --git a/_darcs/patches/20080701172429-84dde-94b70a726459e7309f179c18788f2a7de8d233f1.gz b/_darcs/patches/20080701172429-84dde-94b70a726459e7309f179c18788f2a7de8d233f1.gz deleted file mode 100644 index d14bb15b79..0000000000 Binary files a/_darcs/patches/20080701172429-84dde-94b70a726459e7309f179c18788f2a7de8d233f1.gz and /dev/null differ diff --git a/_darcs/patches/20080701172904-84dde-28ed1b9bbfe2a99fbcc10d8421b62eef9b052fff.gz b/_darcs/patches/20080701172904-84dde-28ed1b9bbfe2a99fbcc10d8421b62eef9b052fff.gz deleted file mode 100644 index 48d40dd2ba..0000000000 Binary files a/_darcs/patches/20080701172904-84dde-28ed1b9bbfe2a99fbcc10d8421b62eef9b052fff.gz and /dev/null differ diff --git a/_darcs/patches/20080701175611-84dde-59873964e036f3c9bc225ea8272e840535ea7643.gz b/_darcs/patches/20080701175611-84dde-59873964e036f3c9bc225ea8272e840535ea7643.gz deleted file mode 100644 index 83e1a30575..0000000000 Binary files a/_darcs/patches/20080701175611-84dde-59873964e036f3c9bc225ea8272e840535ea7643.gz and /dev/null differ diff --git a/_darcs/patches/20080701180205-84dde-a1540d8c6fdfb8496c9dd5a15fcf98c398ebdc57.gz b/_darcs/patches/20080701180205-84dde-a1540d8c6fdfb8496c9dd5a15fcf98c398ebdc57.gz deleted file mode 100644 index e333e6b312..0000000000 Binary files a/_darcs/patches/20080701180205-84dde-a1540d8c6fdfb8496c9dd5a15fcf98c398ebdc57.gz and /dev/null differ diff --git a/_darcs/patches/20080701180611-84dde-ca0ed035476469fea28edfb2e1b8cbc2aa3e9d41.gz b/_darcs/patches/20080701180611-84dde-ca0ed035476469fea28edfb2e1b8cbc2aa3e9d41.gz deleted file mode 100644 index 9df40f6986..0000000000 Binary files a/_darcs/patches/20080701180611-84dde-ca0ed035476469fea28edfb2e1b8cbc2aa3e9d41.gz and /dev/null differ diff --git a/_darcs/patches/20080701182758-84dde-0c80052ea50e6c1c6e8e173c98beb56bc516b2cf.gz b/_darcs/patches/20080701182758-84dde-0c80052ea50e6c1c6e8e173c98beb56bc516b2cf.gz deleted file mode 100644 index 26dca1ebc3..0000000000 Binary files a/_darcs/patches/20080701182758-84dde-0c80052ea50e6c1c6e8e173c98beb56bc516b2cf.gz and /dev/null differ diff --git a/_darcs/patches/20080701183016-84dde-f1aed06f7bd67a665ba55c03f036d98bd208c3b9.gz b/_darcs/patches/20080701183016-84dde-f1aed06f7bd67a665ba55c03f036d98bd208c3b9.gz deleted file mode 100644 index 84df852465..0000000000 Binary files a/_darcs/patches/20080701183016-84dde-f1aed06f7bd67a665ba55c03f036d98bd208c3b9.gz and /dev/null differ diff --git a/_darcs/patches/20080701185244-34904-63270def0bb343c20fd150490996e6d0e49f40b4.gz b/_darcs/patches/20080701185244-34904-63270def0bb343c20fd150490996e6d0e49f40b4.gz deleted file mode 100644 index 2f768f2811..0000000000 Binary files a/_darcs/patches/20080701185244-34904-63270def0bb343c20fd150490996e6d0e49f40b4.gz and /dev/null differ diff --git a/_darcs/patches/20080701185302-34904-46a593cdf2d9abf2d18e005cc3c861d563a3a48c.gz b/_darcs/patches/20080701185302-34904-46a593cdf2d9abf2d18e005cc3c861d563a3a48c.gz deleted file mode 100644 index 4c3eb79345..0000000000 Binary files a/_darcs/patches/20080701185302-34904-46a593cdf2d9abf2d18e005cc3c861d563a3a48c.gz and /dev/null differ diff --git a/_darcs/patches/20080701185305-34904-482a2392e60f26ca80147798cb39d955414050cb.gz b/_darcs/patches/20080701185305-34904-482a2392e60f26ca80147798cb39d955414050cb.gz deleted file mode 100644 index 4b300719e9..0000000000 Binary files a/_darcs/patches/20080701185305-34904-482a2392e60f26ca80147798cb39d955414050cb.gz and /dev/null differ diff --git a/_darcs/patches/20080701185323-34904-85f85b33132fc1aea00afb1ec5e3a16cbc638dc6.gz b/_darcs/patches/20080701185323-34904-85f85b33132fc1aea00afb1ec5e3a16cbc638dc6.gz deleted file mode 100644 index 90f4b75a1f..0000000000 Binary files a/_darcs/patches/20080701185323-34904-85f85b33132fc1aea00afb1ec5e3a16cbc638dc6.gz and /dev/null differ diff --git a/_darcs/patches/20080702125457-84dde-d27e405d7003c86886ad81b87bbbf20cbf6fba1c.gz b/_darcs/patches/20080702125457-84dde-d27e405d7003c86886ad81b87bbbf20cbf6fba1c.gz deleted file mode 100644 index 126df4dfe9..0000000000 Binary files a/_darcs/patches/20080702125457-84dde-d27e405d7003c86886ad81b87bbbf20cbf6fba1c.gz and /dev/null differ diff --git a/_darcs/patches/20080702130029-84dde-481fe1f3d7df5cc931010374a7eb8db4f179cf92.gz b/_darcs/patches/20080702130029-84dde-481fe1f3d7df5cc931010374a7eb8db4f179cf92.gz deleted file mode 100644 index e87a27742f..0000000000 Binary files a/_darcs/patches/20080702130029-84dde-481fe1f3d7df5cc931010374a7eb8db4f179cf92.gz and /dev/null differ diff --git a/_darcs/patches/20080702131507-84dde-507a6380fcab66c1fbcbaad6d1399c8a2f210acf.gz b/_darcs/patches/20080702131507-84dde-507a6380fcab66c1fbcbaad6d1399c8a2f210acf.gz deleted file mode 100644 index 3285e19cc7..0000000000 Binary files a/_darcs/patches/20080702131507-84dde-507a6380fcab66c1fbcbaad6d1399c8a2f210acf.gz and /dev/null differ diff --git a/_darcs/patches/20080702131911-84dde-aea1a69547187d3f66e435f14becb2e9013edb39.gz b/_darcs/patches/20080702131911-84dde-aea1a69547187d3f66e435f14becb2e9013edb39.gz deleted file mode 100644 index 3de67023c5..0000000000 Binary files a/_darcs/patches/20080702131911-84dde-aea1a69547187d3f66e435f14becb2e9013edb39.gz and /dev/null differ diff --git a/_darcs/patches/20080702183839-34904-540719c718ab29fc4d808e0d8b1b65b53c2f3b0b.gz b/_darcs/patches/20080702183839-34904-540719c718ab29fc4d808e0d8b1b65b53c2f3b0b.gz deleted file mode 100644 index a286374def..0000000000 Binary files a/_darcs/patches/20080702183839-34904-540719c718ab29fc4d808e0d8b1b65b53c2f3b0b.gz and /dev/null differ diff --git a/_darcs/patches/20080702183853-34904-59f0b9eeb79289f12e93db25f660e5b7b1a3e9db.gz b/_darcs/patches/20080702183853-34904-59f0b9eeb79289f12e93db25f660e5b7b1a3e9db.gz deleted file mode 100644 index 570399c4ee..0000000000 Binary files a/_darcs/patches/20080702183853-34904-59f0b9eeb79289f12e93db25f660e5b7b1a3e9db.gz and /dev/null differ diff --git a/_darcs/patches/20080702214011-84dde-a40f7dc3906e32b087023e5d7e593f80eb46a1e8.gz b/_darcs/patches/20080702214011-84dde-a40f7dc3906e32b087023e5d7e593f80eb46a1e8.gz deleted file mode 100644 index bd9c920a13..0000000000 Binary files a/_darcs/patches/20080702214011-84dde-a40f7dc3906e32b087023e5d7e593f80eb46a1e8.gz and /dev/null differ diff --git a/_darcs/patches/20080703124652-e4794-13ca56b1642c729b8213c64f26a5482ad4d63692.gz b/_darcs/patches/20080703124652-e4794-13ca56b1642c729b8213c64f26a5482ad4d63692.gz deleted file mode 100644 index 3231fe5ebc..0000000000 Binary files a/_darcs/patches/20080703124652-e4794-13ca56b1642c729b8213c64f26a5482ad4d63692.gz and /dev/null differ diff --git a/_darcs/patches/20080703165043-34904-1e63865bc37f34e5dbb6e194d22e4f35383861c2.gz b/_darcs/patches/20080703165043-34904-1e63865bc37f34e5dbb6e194d22e4f35383861c2.gz deleted file mode 100644 index 62467923e1..0000000000 Binary files a/_darcs/patches/20080703165043-34904-1e63865bc37f34e5dbb6e194d22e4f35383861c2.gz and /dev/null differ diff --git a/_darcs/patches/20080703170347-84dde-1ba2e178dd4051aa63e4073e472c73240e3d9fe8.gz b/_darcs/patches/20080703170347-84dde-1ba2e178dd4051aa63e4073e472c73240e3d9fe8.gz deleted file mode 100644 index cddd9b356c..0000000000 Binary files a/_darcs/patches/20080703170347-84dde-1ba2e178dd4051aa63e4073e472c73240e3d9fe8.gz and /dev/null differ diff --git a/_darcs/patches/20080704040746-84dde-36803f820ea7c238613cf5728c59a18ff1eb442d.gz b/_darcs/patches/20080704040746-84dde-36803f820ea7c238613cf5728c59a18ff1eb442d.gz deleted file mode 100644 index e3c375b011..0000000000 Binary files a/_darcs/patches/20080704040746-84dde-36803f820ea7c238613cf5728c59a18ff1eb442d.gz and /dev/null differ diff --git a/_darcs/patches/20080704050425-84dde-d0106845c7b16b80be8e0d5ee9ac93a457334df7.gz b/_darcs/patches/20080704050425-84dde-d0106845c7b16b80be8e0d5ee9ac93a457334df7.gz deleted file mode 100644 index c505ec7431..0000000000 Binary files a/_darcs/patches/20080704050425-84dde-d0106845c7b16b80be8e0d5ee9ac93a457334df7.gz and /dev/null differ diff --git a/_darcs/patches/20080704052240-34904-c6458bbd6842cd8a86929bba60fb0d4408b56345.gz b/_darcs/patches/20080704052240-34904-c6458bbd6842cd8a86929bba60fb0d4408b56345.gz deleted file mode 100644 index 03634db2f3..0000000000 Binary files a/_darcs/patches/20080704052240-34904-c6458bbd6842cd8a86929bba60fb0d4408b56345.gz and /dev/null differ diff --git a/_darcs/patches/20080704053846-84dde-11afd488ba31664be6cd6955d4198ae11670f6ae.gz b/_darcs/patches/20080704053846-84dde-11afd488ba31664be6cd6955d4198ae11670f6ae.gz deleted file mode 100644 index 97aa970adb..0000000000 Binary files a/_darcs/patches/20080704053846-84dde-11afd488ba31664be6cd6955d4198ae11670f6ae.gz and /dev/null differ diff --git a/_darcs/patches/20080704055259-84dde-1bc6947531632f0d9d93277f6138cc81c82196af.gz b/_darcs/patches/20080704055259-84dde-1bc6947531632f0d9d93277f6138cc81c82196af.gz deleted file mode 100644 index 94ae70853e..0000000000 Binary files a/_darcs/patches/20080704055259-84dde-1bc6947531632f0d9d93277f6138cc81c82196af.gz and /dev/null differ diff --git a/_darcs/patches/20080704060213-84dde-228a06885e49bc81bb8f0f681ff3dc788c97213c.gz b/_darcs/patches/20080704060213-84dde-228a06885e49bc81bb8f0f681ff3dc788c97213c.gz deleted file mode 100644 index 5581f1e5e1..0000000000 Binary files a/_darcs/patches/20080704060213-84dde-228a06885e49bc81bb8f0f681ff3dc788c97213c.gz and /dev/null differ diff --git a/_darcs/patches/20080704062056-84dde-6d5173a345be8fe3e9099e09b438fe69f3d2a1e2.gz b/_darcs/patches/20080704062056-84dde-6d5173a345be8fe3e9099e09b438fe69f3d2a1e2.gz deleted file mode 100644 index 71c11de142..0000000000 Binary files a/_darcs/patches/20080704062056-84dde-6d5173a345be8fe3e9099e09b438fe69f3d2a1e2.gz and /dev/null differ diff --git a/_darcs/patches/20080704071726-34904-bb327b11a8e38788c5d50b1af5e0df5a7feb9275.gz b/_darcs/patches/20080704071726-34904-bb327b11a8e38788c5d50b1af5e0df5a7feb9275.gz deleted file mode 100644 index c31772155b..0000000000 Binary files a/_darcs/patches/20080704071726-34904-bb327b11a8e38788c5d50b1af5e0df5a7feb9275.gz and /dev/null differ diff --git a/_darcs/patches/20080704072909-5a68a-098c1b44f4e188d101d0786730d2e41ddb359c9a.gz b/_darcs/patches/20080704072909-5a68a-098c1b44f4e188d101d0786730d2e41ddb359c9a.gz deleted file mode 100644 index 6d0cb33497..0000000000 Binary files a/_darcs/patches/20080704072909-5a68a-098c1b44f4e188d101d0786730d2e41ddb359c9a.gz and /dev/null differ diff --git a/_darcs/patches/20080704082418-84dde-5f314d3f0c72756f480599913a4aab6c0404dcc6.gz b/_darcs/patches/20080704082418-84dde-5f314d3f0c72756f480599913a4aab6c0404dcc6.gz deleted file mode 100644 index e0d2b0e3ca..0000000000 Binary files a/_darcs/patches/20080704082418-84dde-5f314d3f0c72756f480599913a4aab6c0404dcc6.gz and /dev/null differ diff --git a/_darcs/patches/20080704083216-34904-b1129dd872951f7659de01c991cc00a4c3d276d0.gz b/_darcs/patches/20080704083216-34904-b1129dd872951f7659de01c991cc00a4c3d276d0.gz deleted file mode 100644 index 94cee1400f..0000000000 Binary files a/_darcs/patches/20080704083216-34904-b1129dd872951f7659de01c991cc00a4c3d276d0.gz and /dev/null differ diff --git a/_darcs/patches/20080704083216-34904-b170843a5fa73cb36ffb900be6f1bb56a08515d6.gz b/_darcs/patches/20080704083216-34904-b170843a5fa73cb36ffb900be6f1bb56a08515d6.gz deleted file mode 100644 index cf1c6b2dc4..0000000000 Binary files a/_darcs/patches/20080704083216-34904-b170843a5fa73cb36ffb900be6f1bb56a08515d6.gz and /dev/null differ diff --git a/_darcs/patches/20080704194114-2b4f5-2bec30d7d40d7c7bd2c747ef3c805dbf720f6159.gz b/_darcs/patches/20080704194114-2b4f5-2bec30d7d40d7c7bd2c747ef3c805dbf720f6159.gz deleted file mode 100644 index 2c5f270fde..0000000000 Binary files a/_darcs/patches/20080704194114-2b4f5-2bec30d7d40d7c7bd2c747ef3c805dbf720f6159.gz and /dev/null differ diff --git a/_darcs/patches/20080704201716-84dde-97709a82225bf5a972d9462f692eff1675d50ceb.gz b/_darcs/patches/20080704201716-84dde-97709a82225bf5a972d9462f692eff1675d50ceb.gz deleted file mode 100644 index 4e00bb840a..0000000000 Binary files a/_darcs/patches/20080704201716-84dde-97709a82225bf5a972d9462f692eff1675d50ceb.gz and /dev/null differ diff --git a/_darcs/patches/20080704210954-84dde-3311555b173f7428939e66c4e2b7d1e994c05693.gz b/_darcs/patches/20080704210954-84dde-3311555b173f7428939e66c4e2b7d1e994c05693.gz deleted file mode 100644 index b08e58cd0b..0000000000 Binary files a/_darcs/patches/20080704210954-84dde-3311555b173f7428939e66c4e2b7d1e994c05693.gz and /dev/null differ diff --git a/_darcs/patches/20080704221336-84dde-910c073092eecda6ad2a62cb2aef720c8a14962b.gz b/_darcs/patches/20080704221336-84dde-910c073092eecda6ad2a62cb2aef720c8a14962b.gz deleted file mode 100644 index 2ccc5ea248..0000000000 Binary files a/_darcs/patches/20080704221336-84dde-910c073092eecda6ad2a62cb2aef720c8a14962b.gz and /dev/null differ diff --git a/_darcs/patches/20080705002207-84dde-c5bc4da7dbca8a32ea4126badb772e99bd4f8bf1.gz b/_darcs/patches/20080705002207-84dde-c5bc4da7dbca8a32ea4126badb772e99bd4f8bf1.gz deleted file mode 100644 index df21a1b5dc..0000000000 Binary files a/_darcs/patches/20080705002207-84dde-c5bc4da7dbca8a32ea4126badb772e99bd4f8bf1.gz and /dev/null differ diff --git a/_darcs/patches/20080705005602-84dde-3c99dbed5e431a9d4f1de124454296d4709eb115.gz b/_darcs/patches/20080705005602-84dde-3c99dbed5e431a9d4f1de124454296d4709eb115.gz deleted file mode 100644 index e8129f6eb8..0000000000 Binary files a/_darcs/patches/20080705005602-84dde-3c99dbed5e431a9d4f1de124454296d4709eb115.gz and /dev/null differ diff --git a/_darcs/patches/20080705064303-84dde-f5e07a71ae18805d3bd1e430d752d3e0e09998fd.gz b/_darcs/patches/20080705064303-84dde-f5e07a71ae18805d3bd1e430d752d3e0e09998fd.gz deleted file mode 100644 index 4cf5596880..0000000000 Binary files a/_darcs/patches/20080705064303-84dde-f5e07a71ae18805d3bd1e430d752d3e0e09998fd.gz and /dev/null differ diff --git a/_darcs/patches/20080705064618-84dde-11f2909f8d768f96673979f31a7ee914df1f5987.gz b/_darcs/patches/20080705064618-84dde-11f2909f8d768f96673979f31a7ee914df1f5987.gz deleted file mode 100644 index 98c022e9b4..0000000000 Binary files a/_darcs/patches/20080705064618-84dde-11f2909f8d768f96673979f31a7ee914df1f5987.gz and /dev/null differ diff --git a/_darcs/patches/20080705064900-34904-880679f81aa30564f23fbee3042847595c747a6d.gz b/_darcs/patches/20080705064900-34904-880679f81aa30564f23fbee3042847595c747a6d.gz deleted file mode 100644 index e1e692da74..0000000000 Binary files a/_darcs/patches/20080705064900-34904-880679f81aa30564f23fbee3042847595c747a6d.gz and /dev/null differ diff --git a/_darcs/patches/20080705161602-84dde-f046e62ed9af829c86ac967f83168933e6264deb.gz b/_darcs/patches/20080705161602-84dde-f046e62ed9af829c86ac967f83168933e6264deb.gz deleted file mode 100644 index 0a936f2d06..0000000000 Binary files a/_darcs/patches/20080705161602-84dde-f046e62ed9af829c86ac967f83168933e6264deb.gz and /dev/null differ diff --git a/_darcs/patches/20080705161801-84dde-b8ce7f1edcb18d7382b2690ff35f84e4b7cc7421.gz b/_darcs/patches/20080705161801-84dde-b8ce7f1edcb18d7382b2690ff35f84e4b7cc7421.gz deleted file mode 100644 index 9c1e16c1e8..0000000000 Binary files a/_darcs/patches/20080705161801-84dde-b8ce7f1edcb18d7382b2690ff35f84e4b7cc7421.gz and /dev/null differ diff --git a/_darcs/patches/20080705162142-84dde-6bc70413f43e0890e6372962eb14697ee6f88992.gz b/_darcs/patches/20080705162142-84dde-6bc70413f43e0890e6372962eb14697ee6f88992.gz deleted file mode 100644 index c7bc9c7101..0000000000 Binary files a/_darcs/patches/20080705162142-84dde-6bc70413f43e0890e6372962eb14697ee6f88992.gz and /dev/null differ diff --git a/_darcs/patches/20080705172837-84dde-89fa8f7e844417f8157a2ecc9b24efad267258ff.gz b/_darcs/patches/20080705172837-84dde-89fa8f7e844417f8157a2ecc9b24efad267258ff.gz deleted file mode 100644 index 7e300caa22..0000000000 Binary files a/_darcs/patches/20080705172837-84dde-89fa8f7e844417f8157a2ecc9b24efad267258ff.gz and /dev/null differ diff --git a/_darcs/patches/20080705174045-d018c-84a84f72a3f371fe767ccca890d67be3b8a127af.gz b/_darcs/patches/20080705174045-d018c-84a84f72a3f371fe767ccca890d67be3b8a127af.gz deleted file mode 100644 index be00e8674c..0000000000 Binary files a/_darcs/patches/20080705174045-d018c-84a84f72a3f371fe767ccca890d67be3b8a127af.gz and /dev/null differ diff --git a/_darcs/patches/20080705183955-84dde-50b515e9a3188919dff7b4f5ab7111d2a8e4d288.gz b/_darcs/patches/20080705183955-84dde-50b515e9a3188919dff7b4f5ab7111d2a8e4d288.gz deleted file mode 100644 index acfeb62972..0000000000 Binary files a/_darcs/patches/20080705183955-84dde-50b515e9a3188919dff7b4f5ab7111d2a8e4d288.gz and /dev/null differ diff --git a/_darcs/patches/20080705184729-84dde-8ed4e07c1694f0300bf5acf967e8c596b9c4d635.gz b/_darcs/patches/20080705184729-84dde-8ed4e07c1694f0300bf5acf967e8c596b9c4d635.gz deleted file mode 100644 index c98ab7dfae..0000000000 Binary files a/_darcs/patches/20080705184729-84dde-8ed4e07c1694f0300bf5acf967e8c596b9c4d635.gz and /dev/null differ diff --git a/_darcs/patches/20080705202412-5a68a-12ead3349425d70ec0a8349ebc3ce24b7a628dbc.gz b/_darcs/patches/20080705202412-5a68a-12ead3349425d70ec0a8349ebc3ce24b7a628dbc.gz deleted file mode 100644 index 25a3bf3fe8..0000000000 Binary files a/_darcs/patches/20080705202412-5a68a-12ead3349425d70ec0a8349ebc3ce24b7a628dbc.gz and /dev/null differ diff --git a/_darcs/patches/20080705213637-84dde-87ceb18bfc0db5248083bae1b9ce7ef088a68fe2.gz b/_darcs/patches/20080705213637-84dde-87ceb18bfc0db5248083bae1b9ce7ef088a68fe2.gz deleted file mode 100644 index 94ae920ae2..0000000000 Binary files a/_darcs/patches/20080705213637-84dde-87ceb18bfc0db5248083bae1b9ce7ef088a68fe2.gz and /dev/null differ diff --git a/_darcs/patches/20080706031234-84dde-42e06c969ef6e8a63c527c197d7f074f7346d223.gz b/_darcs/patches/20080706031234-84dde-42e06c969ef6e8a63c527c197d7f074f7346d223.gz deleted file mode 100644 index 2b4937b34e..0000000000 Binary files a/_darcs/patches/20080706031234-84dde-42e06c969ef6e8a63c527c197d7f074f7346d223.gz and /dev/null differ diff --git a/_darcs/patches/20080706035707-84dde-5403fe9bcb017c401fe5847527628df548e54499.gz b/_darcs/patches/20080706035707-84dde-5403fe9bcb017c401fe5847527628df548e54499.gz deleted file mode 100644 index bfdfd48684..0000000000 Binary files a/_darcs/patches/20080706035707-84dde-5403fe9bcb017c401fe5847527628df548e54499.gz and /dev/null differ diff --git a/_darcs/patches/20080706035838-84dde-abcea063c7d298b3332cf7401efecf3c6ba96ee5.gz b/_darcs/patches/20080706035838-84dde-abcea063c7d298b3332cf7401efecf3c6ba96ee5.gz deleted file mode 100644 index 26dc9f2dfa..0000000000 Binary files a/_darcs/patches/20080706035838-84dde-abcea063c7d298b3332cf7401efecf3c6ba96ee5.gz and /dev/null differ diff --git a/_darcs/patches/20080706061437-5a68a-734b7f7b7966e8091f1c6df3abaf10bed9b0f0f8.gz b/_darcs/patches/20080706061437-5a68a-734b7f7b7966e8091f1c6df3abaf10bed9b0f0f8.gz deleted file mode 100644 index 8090ebe880..0000000000 Binary files a/_darcs/patches/20080706061437-5a68a-734b7f7b7966e8091f1c6df3abaf10bed9b0f0f8.gz and /dev/null differ diff --git a/_darcs/patches/20080706071319-d018c-c2ad1a7672a53586d0232a205a62cf5c5ee10fcd.gz b/_darcs/patches/20080706071319-d018c-c2ad1a7672a53586d0232a205a62cf5c5ee10fcd.gz deleted file mode 100644 index 7559181fbc..0000000000 Binary files a/_darcs/patches/20080706071319-d018c-c2ad1a7672a53586d0232a205a62cf5c5ee10fcd.gz and /dev/null differ diff --git a/_darcs/patches/20080706090309-5a68a-188f45e295e43933595dadfa0c2cfa71b6573386.gz b/_darcs/patches/20080706090309-5a68a-188f45e295e43933595dadfa0c2cfa71b6573386.gz deleted file mode 100644 index c274fa4a2a..0000000000 Binary files a/_darcs/patches/20080706090309-5a68a-188f45e295e43933595dadfa0c2cfa71b6573386.gz and /dev/null differ diff --git a/_darcs/patches/20080706173453-84dde-bdd84aa8e9dc72eaea72247d03a8620a67a8cec2.gz b/_darcs/patches/20080706173453-84dde-bdd84aa8e9dc72eaea72247d03a8620a67a8cec2.gz deleted file mode 100644 index 5d4c1d4cbb..0000000000 Binary files a/_darcs/patches/20080706173453-84dde-bdd84aa8e9dc72eaea72247d03a8620a67a8cec2.gz and /dev/null differ diff --git a/_darcs/patches/20080706210809-84dde-84b674413c2ca6540176191cc5f1b5a2ef170cbc.gz b/_darcs/patches/20080706210809-84dde-84b674413c2ca6540176191cc5f1b5a2ef170cbc.gz deleted file mode 100644 index d4a6183bda..0000000000 Binary files a/_darcs/patches/20080706210809-84dde-84b674413c2ca6540176191cc5f1b5a2ef170cbc.gz and /dev/null differ diff --git a/_darcs/patches/20080706220020-84dde-7e700e953c18909edd05de240c0f989584417294.gz b/_darcs/patches/20080706220020-84dde-7e700e953c18909edd05de240c0f989584417294.gz deleted file mode 100644 index 2359cc189f..0000000000 Binary files a/_darcs/patches/20080706220020-84dde-7e700e953c18909edd05de240c0f989584417294.gz and /dev/null differ diff --git a/_darcs/patches/20080706221758-84dde-5e222a282f9a1bd242d2653700c444e93e21cc7f.gz b/_darcs/patches/20080706221758-84dde-5e222a282f9a1bd242d2653700c444e93e21cc7f.gz deleted file mode 100644 index b082217309..0000000000 Binary files a/_darcs/patches/20080706221758-84dde-5e222a282f9a1bd242d2653700c444e93e21cc7f.gz and /dev/null differ diff --git a/_darcs/patches/20080706223839-84dde-269eba758843e45265a08379356cdfd84701e2cd.gz b/_darcs/patches/20080706223839-84dde-269eba758843e45265a08379356cdfd84701e2cd.gz deleted file mode 100644 index de5153cf31..0000000000 Binary files a/_darcs/patches/20080706223839-84dde-269eba758843e45265a08379356cdfd84701e2cd.gz and /dev/null differ diff --git a/_darcs/patches/20080707032348-84dde-e217ed87ae6947d6fdda64dc105ac4a433c7793a.gz b/_darcs/patches/20080707032348-84dde-e217ed87ae6947d6fdda64dc105ac4a433c7793a.gz deleted file mode 100644 index 8df68fe35d..0000000000 Binary files a/_darcs/patches/20080707032348-84dde-e217ed87ae6947d6fdda64dc105ac4a433c7793a.gz and /dev/null differ diff --git a/_darcs/patches/20080707054358-84dde-916977a2af4f792e0dc9e02a9f5344ec60911319.gz b/_darcs/patches/20080707054358-84dde-916977a2af4f792e0dc9e02a9f5344ec60911319.gz deleted file mode 100644 index c2e1bce659..0000000000 Binary files a/_darcs/patches/20080707054358-84dde-916977a2af4f792e0dc9e02a9f5344ec60911319.gz and /dev/null differ diff --git a/_darcs/patches/20080707055428-84dde-30ce553505221694c1ee6fd99484c41508d47821.gz b/_darcs/patches/20080707055428-84dde-30ce553505221694c1ee6fd99484c41508d47821.gz deleted file mode 100644 index 80751cecb2..0000000000 Binary files a/_darcs/patches/20080707055428-84dde-30ce553505221694c1ee6fd99484c41508d47821.gz and /dev/null differ diff --git a/_darcs/patches/20080707060733-84dde-d0cd0a70aa94b124019378840de1e893ead912d7.gz b/_darcs/patches/20080707060733-84dde-d0cd0a70aa94b124019378840de1e893ead912d7.gz deleted file mode 100644 index 4e91e5b070..0000000000 Binary files a/_darcs/patches/20080707060733-84dde-d0cd0a70aa94b124019378840de1e893ead912d7.gz and /dev/null differ diff --git a/_darcs/patches/20080707061639-84dde-a52c5533d52841072acf50a013a89962e4eb644d.gz b/_darcs/patches/20080707061639-84dde-a52c5533d52841072acf50a013a89962e4eb644d.gz deleted file mode 100644 index 6537f3c682..0000000000 Binary files a/_darcs/patches/20080707061639-84dde-a52c5533d52841072acf50a013a89962e4eb644d.gz and /dev/null differ diff --git a/_darcs/patches/20080707061912-84dde-944b786092dbd40f784ee4c4698d9abf7eab4ffd.gz b/_darcs/patches/20080707061912-84dde-944b786092dbd40f784ee4c4698d9abf7eab4ffd.gz deleted file mode 100644 index 1f04c1483f..0000000000 Binary files a/_darcs/patches/20080707061912-84dde-944b786092dbd40f784ee4c4698d9abf7eab4ffd.gz and /dev/null differ diff --git a/_darcs/patches/20080707062347-84dde-fb13c5548d962092877fc374cea3f81ec2cca43e.gz b/_darcs/patches/20080707062347-84dde-fb13c5548d962092877fc374cea3f81ec2cca43e.gz deleted file mode 100644 index 63c570c4a7..0000000000 Binary files a/_darcs/patches/20080707062347-84dde-fb13c5548d962092877fc374cea3f81ec2cca43e.gz and /dev/null differ diff --git a/_darcs/patches/20080707062618-84dde-2bf8d7476a7b234d0f3bc88ce0a20024654c6625.gz b/_darcs/patches/20080707062618-84dde-2bf8d7476a7b234d0f3bc88ce0a20024654c6625.gz deleted file mode 100644 index 9cdfc92c90..0000000000 Binary files a/_darcs/patches/20080707062618-84dde-2bf8d7476a7b234d0f3bc88ce0a20024654c6625.gz and /dev/null differ diff --git a/_darcs/patches/20080707063731-84dde-0ce24e15c33d1d12e4e2ea1e05129ae6de84cb0e.gz b/_darcs/patches/20080707063731-84dde-0ce24e15c33d1d12e4e2ea1e05129ae6de84cb0e.gz deleted file mode 100644 index 7bc04a04e7..0000000000 Binary files a/_darcs/patches/20080707063731-84dde-0ce24e15c33d1d12e4e2ea1e05129ae6de84cb0e.gz and /dev/null differ diff --git a/_darcs/patches/20080707064155-84dde-fb6209b36ff8066335249c0602b2e78961f90c55.gz b/_darcs/patches/20080707064155-84dde-fb6209b36ff8066335249c0602b2e78961f90c55.gz deleted file mode 100644 index 40d7f43fee..0000000000 Binary files a/_darcs/patches/20080707064155-84dde-fb6209b36ff8066335249c0602b2e78961f90c55.gz and /dev/null differ diff --git a/_darcs/patches/20080707064430-84dde-42fe551e1bf503d492dec8c0e30c153655351b5f.gz b/_darcs/patches/20080707064430-84dde-42fe551e1bf503d492dec8c0e30c153655351b5f.gz deleted file mode 100644 index 8f85747c74..0000000000 Binary files a/_darcs/patches/20080707064430-84dde-42fe551e1bf503d492dec8c0e30c153655351b5f.gz and /dev/null differ diff --git a/_darcs/patches/20080707064607-84dde-140a88c6e08831ec2852001e174c7f0bc891a85d.gz b/_darcs/patches/20080707064607-84dde-140a88c6e08831ec2852001e174c7f0bc891a85d.gz deleted file mode 100644 index 8ddbec8b44..0000000000 Binary files a/_darcs/patches/20080707064607-84dde-140a88c6e08831ec2852001e174c7f0bc891a85d.gz and /dev/null differ diff --git a/_darcs/patches/20080707070545-84dde-581f5b8d356b5b7d27a9b0b331a0e40ddab28cbe.gz b/_darcs/patches/20080707070545-84dde-581f5b8d356b5b7d27a9b0b331a0e40ddab28cbe.gz deleted file mode 100644 index 06d2e2caa5..0000000000 Binary files a/_darcs/patches/20080707070545-84dde-581f5b8d356b5b7d27a9b0b331a0e40ddab28cbe.gz and /dev/null differ diff --git a/_darcs/patches/20080707070545-84dde-8034bf485a182ac86295c9a7831cfabac3cb2b55.gz b/_darcs/patches/20080707070545-84dde-8034bf485a182ac86295c9a7831cfabac3cb2b55.gz deleted file mode 100644 index 5ae3a853cc..0000000000 Binary files a/_darcs/patches/20080707070545-84dde-8034bf485a182ac86295c9a7831cfabac3cb2b55.gz and /dev/null differ diff --git a/_darcs/patches/20080707072454-84dde-218caf9132a0973465902418fc62abdbc49d6717.gz b/_darcs/patches/20080707072454-84dde-218caf9132a0973465902418fc62abdbc49d6717.gz deleted file mode 100644 index 870994a547..0000000000 Binary files a/_darcs/patches/20080707072454-84dde-218caf9132a0973465902418fc62abdbc49d6717.gz and /dev/null differ diff --git a/_darcs/patches/20080707072545-84dde-1f78764ef1c19f311fea9b8315e1081b4c2e6b0c.gz b/_darcs/patches/20080707072545-84dde-1f78764ef1c19f311fea9b8315e1081b4c2e6b0c.gz deleted file mode 100644 index d1529eaa2d..0000000000 Binary files a/_darcs/patches/20080707072545-84dde-1f78764ef1c19f311fea9b8315e1081b4c2e6b0c.gz and /dev/null differ diff --git a/_darcs/patches/20080707072754-84dde-861d5d2b0a75097042e8f8c13a80c68ba3a0edba.gz b/_darcs/patches/20080707072754-84dde-861d5d2b0a75097042e8f8c13a80c68ba3a0edba.gz deleted file mode 100644 index 072ac594fc..0000000000 Binary files a/_darcs/patches/20080707072754-84dde-861d5d2b0a75097042e8f8c13a80c68ba3a0edba.gz and /dev/null differ diff --git a/_darcs/patches/20080707073025-84dde-724deaf0db1c40a95296b53b895a60a04ff7f957.gz b/_darcs/patches/20080707073025-84dde-724deaf0db1c40a95296b53b895a60a04ff7f957.gz deleted file mode 100644 index 3a39e9e061..0000000000 Binary files a/_darcs/patches/20080707073025-84dde-724deaf0db1c40a95296b53b895a60a04ff7f957.gz and /dev/null differ diff --git a/_darcs/patches/20080707074434-84dde-ffc9b2caeef3e9fef9607511b425880986883d72.gz b/_darcs/patches/20080707074434-84dde-ffc9b2caeef3e9fef9607511b425880986883d72.gz deleted file mode 100644 index b929fbbe49..0000000000 Binary files a/_darcs/patches/20080707074434-84dde-ffc9b2caeef3e9fef9607511b425880986883d72.gz and /dev/null differ diff --git a/_darcs/patches/20080707074755-84dde-478a9a82c598c8d377ea64de50a3523defb34804.gz b/_darcs/patches/20080707074755-84dde-478a9a82c598c8d377ea64de50a3523defb34804.gz deleted file mode 100644 index 90ebde703b..0000000000 Binary files a/_darcs/patches/20080707074755-84dde-478a9a82c598c8d377ea64de50a3523defb34804.gz and /dev/null differ diff --git a/_darcs/patches/20080707173224-e4794-8cee424db46489a3fe0dbe53d2741bfb33de5a47.gz b/_darcs/patches/20080707173224-e4794-8cee424db46489a3fe0dbe53d2741bfb33de5a47.gz deleted file mode 100644 index ecbe6f93c1..0000000000 Binary files a/_darcs/patches/20080707173224-e4794-8cee424db46489a3fe0dbe53d2741bfb33de5a47.gz and /dev/null differ diff --git a/_darcs/patches/20080707181150-84dde-1e5f2259701fabda29fd5dee6fa276b01b23809f.gz b/_darcs/patches/20080707181150-84dde-1e5f2259701fabda29fd5dee6fa276b01b23809f.gz deleted file mode 100644 index 30b7a2fd21..0000000000 Binary files a/_darcs/patches/20080707181150-84dde-1e5f2259701fabda29fd5dee6fa276b01b23809f.gz and /dev/null differ diff --git a/_darcs/patches/20080707234033-84dde-cd840b31e7b8e678450462b8d09d5e035930dd50.gz b/_darcs/patches/20080707234033-84dde-cd840b31e7b8e678450462b8d09d5e035930dd50.gz deleted file mode 100644 index cc3890b2da..0000000000 Binary files a/_darcs/patches/20080707234033-84dde-cd840b31e7b8e678450462b8d09d5e035930dd50.gz and /dev/null differ diff --git a/_darcs/patches/20080707234050-84dde-b8bb3e4af8dad740e48372e8fa059cdba460a382.gz b/_darcs/patches/20080707234050-84dde-b8bb3e4af8dad740e48372e8fa059cdba460a382.gz deleted file mode 100644 index aa1d1bdce5..0000000000 Binary files a/_darcs/patches/20080707234050-84dde-b8bb3e4af8dad740e48372e8fa059cdba460a382.gz and /dev/null differ diff --git a/_darcs/patches/20080708003055-84dde-8ab47a05b658d2de9bf8e55f70f8a9fb9a77b23a.gz b/_darcs/patches/20080708003055-84dde-8ab47a05b658d2de9bf8e55f70f8a9fb9a77b23a.gz deleted file mode 100644 index 21dfb3e79c..0000000000 Binary files a/_darcs/patches/20080708003055-84dde-8ab47a05b658d2de9bf8e55f70f8a9fb9a77b23a.gz and /dev/null differ diff --git a/_darcs/patches/20080708041210-84dde-71118bdd00ace64af0aee5033bff69e638a1463c.gz b/_darcs/patches/20080708041210-84dde-71118bdd00ace64af0aee5033bff69e638a1463c.gz deleted file mode 100644 index 7a590c4ea9..0000000000 Binary files a/_darcs/patches/20080708041210-84dde-71118bdd00ace64af0aee5033bff69e638a1463c.gz and /dev/null differ diff --git a/_darcs/patches/20080708064241-84dde-6c72e4e5d5ec5675bdef027e1b241f0555ce8dd1.gz b/_darcs/patches/20080708064241-84dde-6c72e4e5d5ec5675bdef027e1b241f0555ce8dd1.gz deleted file mode 100644 index 9e8f278839..0000000000 Binary files a/_darcs/patches/20080708064241-84dde-6c72e4e5d5ec5675bdef027e1b241f0555ce8dd1.gz and /dev/null differ diff --git a/_darcs/patches/20080708070457-34904-8c6d51dc78b9ee08aca9890a833a0572de3b7f76.gz b/_darcs/patches/20080708070457-34904-8c6d51dc78b9ee08aca9890a833a0572de3b7f76.gz deleted file mode 100644 index 63e9d27778..0000000000 Binary files a/_darcs/patches/20080708070457-34904-8c6d51dc78b9ee08aca9890a833a0572de3b7f76.gz and /dev/null differ diff --git a/_darcs/patches/20080708090418-57001-e5c0f9e19666fb25a7fcb2e92e89ef83d159b5ab.gz b/_darcs/patches/20080708090418-57001-e5c0f9e19666fb25a7fcb2e92e89ef83d159b5ab.gz deleted file mode 100644 index aff9219bfc..0000000000 Binary files a/_darcs/patches/20080708090418-57001-e5c0f9e19666fb25a7fcb2e92e89ef83d159b5ab.gz and /dev/null differ diff --git a/_darcs/patches/20080708094531-533db-83399a46e6ec4c0fcc6249b0235961f969d1ae73.gz b/_darcs/patches/20080708094531-533db-83399a46e6ec4c0fcc6249b0235961f969d1ae73.gz deleted file mode 100644 index d455d61ba5..0000000000 Binary files a/_darcs/patches/20080708094531-533db-83399a46e6ec4c0fcc6249b0235961f969d1ae73.gz and /dev/null differ diff --git a/_darcs/patches/20080708095113-533db-ad63bbde67b6275fb7ae944cc9882adf6f3be517.gz b/_darcs/patches/20080708095113-533db-ad63bbde67b6275fb7ae944cc9882adf6f3be517.gz deleted file mode 100644 index 24716ee642..0000000000 Binary files a/_darcs/patches/20080708095113-533db-ad63bbde67b6275fb7ae944cc9882adf6f3be517.gz and /dev/null differ diff --git a/_darcs/patches/20080708100519-533db-b326ea0bb16ea6c8244cfd00a0dd639d0553dd21.gz b/_darcs/patches/20080708100519-533db-b326ea0bb16ea6c8244cfd00a0dd639d0553dd21.gz deleted file mode 100644 index ae3c791c81..0000000000 Binary files a/_darcs/patches/20080708100519-533db-b326ea0bb16ea6c8244cfd00a0dd639d0553dd21.gz and /dev/null differ diff --git a/_darcs/patches/20080708112016-f7d30-321142883159fa91338754140ac4ea37e54bb746.gz b/_darcs/patches/20080708112016-f7d30-321142883159fa91338754140ac4ea37e54bb746.gz deleted file mode 100644 index dc81341c30..0000000000 Binary files a/_darcs/patches/20080708112016-f7d30-321142883159fa91338754140ac4ea37e54bb746.gz and /dev/null differ diff --git a/_darcs/patches/20080708130408-533db-9e7fb996a7c37af9557f097d785a53ff77c7559f.gz b/_darcs/patches/20080708130408-533db-9e7fb996a7c37af9557f097d785a53ff77c7559f.gz deleted file mode 100644 index 1abbc382de..0000000000 Binary files a/_darcs/patches/20080708130408-533db-9e7fb996a7c37af9557f097d785a53ff77c7559f.gz and /dev/null differ diff --git a/_darcs/patches/20080708233218-84dde-45850157b8fce2ac1d5c1d16a4fdb4fbcc817b76.gz b/_darcs/patches/20080708233218-84dde-45850157b8fce2ac1d5c1d16a4fdb4fbcc817b76.gz deleted file mode 100644 index c298ecb0f2..0000000000 Binary files a/_darcs/patches/20080708233218-84dde-45850157b8fce2ac1d5c1d16a4fdb4fbcc817b76.gz and /dev/null differ diff --git a/_darcs/patches/20080708235004-84dde-bca47ff45828387ed256195ef5cf9051f99a5163.gz b/_darcs/patches/20080708235004-84dde-bca47ff45828387ed256195ef5cf9051f99a5163.gz deleted file mode 100644 index a3cd8e698f..0000000000 Binary files a/_darcs/patches/20080708235004-84dde-bca47ff45828387ed256195ef5cf9051f99a5163.gz and /dev/null differ diff --git a/_darcs/patches/20080709002242-84dde-1d7a2107079ab5d84592d280a19a253663f84b4f.gz b/_darcs/patches/20080709002242-84dde-1d7a2107079ab5d84592d280a19a253663f84b4f.gz deleted file mode 100644 index 71f7957961..0000000000 Binary files a/_darcs/patches/20080709002242-84dde-1d7a2107079ab5d84592d280a19a253663f84b4f.gz and /dev/null differ diff --git a/_darcs/patches/20080709004349-84dde-bb19f619819eac92df8b4e534bee2d66fc7258c9.gz b/_darcs/patches/20080709004349-84dde-bb19f619819eac92df8b4e534bee2d66fc7258c9.gz deleted file mode 100644 index 3275109963..0000000000 Binary files a/_darcs/patches/20080709004349-84dde-bb19f619819eac92df8b4e534bee2d66fc7258c9.gz and /dev/null differ diff --git a/_darcs/patches/20080709005342-84dde-de6e2ce487c54ac53ea60757f216e4ba6379f196.gz b/_darcs/patches/20080709005342-84dde-de6e2ce487c54ac53ea60757f216e4ba6379f196.gz deleted file mode 100644 index 4cc4539c7b..0000000000 Binary files a/_darcs/patches/20080709005342-84dde-de6e2ce487c54ac53ea60757f216e4ba6379f196.gz and /dev/null differ diff --git a/_darcs/patches/20080709010415-7f4fe-943321fd9ad9df3890599fc1b3f99e97db16e43d.gz b/_darcs/patches/20080709010415-7f4fe-943321fd9ad9df3890599fc1b3f99e97db16e43d.gz deleted file mode 100644 index 4dfe361737..0000000000 Binary files a/_darcs/patches/20080709010415-7f4fe-943321fd9ad9df3890599fc1b3f99e97db16e43d.gz and /dev/null differ diff --git a/_darcs/patches/20080709050022-84dde-b8b583c8d2c67bcf6bbe86b2ff26eec7af345d72.gz b/_darcs/patches/20080709050022-84dde-b8b583c8d2c67bcf6bbe86b2ff26eec7af345d72.gz deleted file mode 100644 index 8dc774d2af..0000000000 Binary files a/_darcs/patches/20080709050022-84dde-b8b583c8d2c67bcf6bbe86b2ff26eec7af345d72.gz and /dev/null differ diff --git a/_darcs/patches/20080709051943-84dde-1b866d62097c549f14fcf783f4404ae1b31cae18.gz b/_darcs/patches/20080709051943-84dde-1b866d62097c549f14fcf783f4404ae1b31cae18.gz deleted file mode 100644 index fc6213cacb..0000000000 Binary files a/_darcs/patches/20080709051943-84dde-1b866d62097c549f14fcf783f4404ae1b31cae18.gz and /dev/null differ diff --git a/_darcs/patches/20080709055343-84dde-ac550608a4736ce5daed70af19866c75a1cfb416.gz b/_darcs/patches/20080709055343-84dde-ac550608a4736ce5daed70af19866c75a1cfb416.gz deleted file mode 100644 index 3b6f17a8eb..0000000000 Binary files a/_darcs/patches/20080709055343-84dde-ac550608a4736ce5daed70af19866c75a1cfb416.gz and /dev/null differ diff --git a/_darcs/patches/20080709060928-84dde-14e8803a617d177739f5ee6b96f296dea80719c9.gz b/_darcs/patches/20080709060928-84dde-14e8803a617d177739f5ee6b96f296dea80719c9.gz deleted file mode 100644 index 4f5a58863f..0000000000 Binary files a/_darcs/patches/20080709060928-84dde-14e8803a617d177739f5ee6b96f296dea80719c9.gz and /dev/null differ diff --git a/_darcs/patches/20080709061118-84dde-b79745bf15dde9e95b46efd1e952d67d435eb1bf.gz b/_darcs/patches/20080709061118-84dde-b79745bf15dde9e95b46efd1e952d67d435eb1bf.gz deleted file mode 100644 index d7024cc329..0000000000 Binary files a/_darcs/patches/20080709061118-84dde-b79745bf15dde9e95b46efd1e952d67d435eb1bf.gz and /dev/null differ diff --git a/_darcs/patches/20080709062502-84dde-7e4c574dc0a710bcd0b662bfbab263308d1c9cd5.gz b/_darcs/patches/20080709062502-84dde-7e4c574dc0a710bcd0b662bfbab263308d1c9cd5.gz deleted file mode 100644 index a65cfc9b72..0000000000 Binary files a/_darcs/patches/20080709062502-84dde-7e4c574dc0a710bcd0b662bfbab263308d1c9cd5.gz and /dev/null differ diff --git a/_darcs/patches/20080709070012-84dde-5fa51b1dba00a6299170fd4b44eea34c01f388e0.gz b/_darcs/patches/20080709070012-84dde-5fa51b1dba00a6299170fd4b44eea34c01f388e0.gz deleted file mode 100644 index a1483184f7..0000000000 Binary files a/_darcs/patches/20080709070012-84dde-5fa51b1dba00a6299170fd4b44eea34c01f388e0.gz and /dev/null differ diff --git a/_darcs/patches/20080709071439-84dde-f85f0e97f7c14bb77b7174f281e3e9f75c23cac1.gz b/_darcs/patches/20080709071439-84dde-f85f0e97f7c14bb77b7174f281e3e9f75c23cac1.gz deleted file mode 100644 index 487a1e4740..0000000000 Binary files a/_darcs/patches/20080709071439-84dde-f85f0e97f7c14bb77b7174f281e3e9f75c23cac1.gz and /dev/null differ diff --git a/_darcs/patches/20080709072244-84dde-c7df8dbdf69b1307f7a41d45cde612a32f542ee2.gz b/_darcs/patches/20080709072244-84dde-c7df8dbdf69b1307f7a41d45cde612a32f542ee2.gz deleted file mode 100644 index c23b7e9391..0000000000 Binary files a/_darcs/patches/20080709072244-84dde-c7df8dbdf69b1307f7a41d45cde612a32f542ee2.gz and /dev/null differ diff --git a/_darcs/patches/20080709072429-84dde-86bd168e5d70b84cc471c74e349bd4e9a3ba0a70.gz b/_darcs/patches/20080709072429-84dde-86bd168e5d70b84cc471c74e349bd4e9a3ba0a70.gz deleted file mode 100644 index 65b4d1952b..0000000000 Binary files a/_darcs/patches/20080709072429-84dde-86bd168e5d70b84cc471c74e349bd4e9a3ba0a70.gz and /dev/null differ diff --git a/_darcs/patches/20080709072833-84dde-42c600c5facb073f502318cae389832bd2115927.gz b/_darcs/patches/20080709072833-84dde-42c600c5facb073f502318cae389832bd2115927.gz deleted file mode 100644 index 2cc13c1716..0000000000 Binary files a/_darcs/patches/20080709072833-84dde-42c600c5facb073f502318cae389832bd2115927.gz and /dev/null differ diff --git a/_darcs/patches/20080709072953-84dde-5ebea95c28e535c8bdd5255354910a6f92903b92.gz b/_darcs/patches/20080709072953-84dde-5ebea95c28e535c8bdd5255354910a6f92903b92.gz deleted file mode 100644 index 3e4a065ae1..0000000000 Binary files a/_darcs/patches/20080709072953-84dde-5ebea95c28e535c8bdd5255354910a6f92903b92.gz and /dev/null differ diff --git a/_darcs/patches/20080709073159-84dde-b149ae89135c1004d7d2a47843743e051672fa32.gz b/_darcs/patches/20080709073159-84dde-b149ae89135c1004d7d2a47843743e051672fa32.gz deleted file mode 100644 index 7cdf9bc003..0000000000 Binary files a/_darcs/patches/20080709073159-84dde-b149ae89135c1004d7d2a47843743e051672fa32.gz and /dev/null differ diff --git a/_darcs/patches/20080709073305-84dde-9e7f0d367ab9f3f762031501eb4c83f6410c6da7.gz b/_darcs/patches/20080709073305-84dde-9e7f0d367ab9f3f762031501eb4c83f6410c6da7.gz deleted file mode 100644 index 5587612bd3..0000000000 Binary files a/_darcs/patches/20080709073305-84dde-9e7f0d367ab9f3f762031501eb4c83f6410c6da7.gz and /dev/null differ diff --git a/_darcs/patches/20080709075045-84dde-c00a97cfed2eb1c560f3cc2581d29f29b2eb32b2.gz b/_darcs/patches/20080709075045-84dde-c00a97cfed2eb1c560f3cc2581d29f29b2eb32b2.gz deleted file mode 100644 index f99233d868..0000000000 Binary files a/_darcs/patches/20080709075045-84dde-c00a97cfed2eb1c560f3cc2581d29f29b2eb32b2.gz and /dev/null differ diff --git a/_darcs/patches/20080709080110-84dde-2d8169e2fbe28300d099090100547a19cb8c6a7d.gz b/_darcs/patches/20080709080110-84dde-2d8169e2fbe28300d099090100547a19cb8c6a7d.gz deleted file mode 100644 index 947705e6f1..0000000000 Binary files a/_darcs/patches/20080709080110-84dde-2d8169e2fbe28300d099090100547a19cb8c6a7d.gz and /dev/null differ diff --git a/_darcs/patches/20080709080206-84dde-b324eea8e6043397e09f41c099b9c2c821e192fb.gz b/_darcs/patches/20080709080206-84dde-b324eea8e6043397e09f41c099b9c2c821e192fb.gz deleted file mode 100644 index 496c82b9c0..0000000000 Binary files a/_darcs/patches/20080709080206-84dde-b324eea8e6043397e09f41c099b9c2c821e192fb.gz and /dev/null differ diff --git a/_darcs/patches/20080709183833-84dde-d349a733fafc1d9f6a6e534bcfd988c3694738a9.gz b/_darcs/patches/20080709183833-84dde-d349a733fafc1d9f6a6e534bcfd988c3694738a9.gz deleted file mode 100644 index 4b38b69028..0000000000 Binary files a/_darcs/patches/20080709183833-84dde-d349a733fafc1d9f6a6e534bcfd988c3694738a9.gz and /dev/null differ diff --git a/_darcs/patches/20080709193810-84dde-0ee9bd7b4783f5a66c2ffd6526728e4e267fb024.gz b/_darcs/patches/20080709193810-84dde-0ee9bd7b4783f5a66c2ffd6526728e4e267fb024.gz deleted file mode 100644 index 90114c45c5..0000000000 Binary files a/_darcs/patches/20080709193810-84dde-0ee9bd7b4783f5a66c2ffd6526728e4e267fb024.gz and /dev/null differ diff --git a/_darcs/patches/20080709195238-84dde-a5df98439faaf7058571b5e345f165adece9c7b8.gz b/_darcs/patches/20080709195238-84dde-a5df98439faaf7058571b5e345f165adece9c7b8.gz deleted file mode 100644 index 10ff163820..0000000000 Binary files a/_darcs/patches/20080709195238-84dde-a5df98439faaf7058571b5e345f165adece9c7b8.gz and /dev/null differ diff --git a/_darcs/patches/20080709200711-84dde-b6a9e403ab50ef5a6497a25a756ed63c373f0402.gz b/_darcs/patches/20080709200711-84dde-b6a9e403ab50ef5a6497a25a756ed63c373f0402.gz deleted file mode 100644 index d7c939de38..0000000000 Binary files a/_darcs/patches/20080709200711-84dde-b6a9e403ab50ef5a6497a25a756ed63c373f0402.gz and /dev/null differ diff --git a/_darcs/patches/20080709200750-84dde-1460fb58f84a16cdfff93b46afb13928cdd0a439.gz b/_darcs/patches/20080709200750-84dde-1460fb58f84a16cdfff93b46afb13928cdd0a439.gz deleted file mode 100644 index 14994d1f85..0000000000 Binary files a/_darcs/patches/20080709200750-84dde-1460fb58f84a16cdfff93b46afb13928cdd0a439.gz and /dev/null differ diff --git a/_darcs/patches/20080709202346-84dde-63561db24b55e98020c00707cc2c36e46bb8025f.gz b/_darcs/patches/20080709202346-84dde-63561db24b55e98020c00707cc2c36e46bb8025f.gz deleted file mode 100644 index 4948ed6a50..0000000000 Binary files a/_darcs/patches/20080709202346-84dde-63561db24b55e98020c00707cc2c36e46bb8025f.gz and /dev/null differ diff --git a/_darcs/patches/20080709202716-84dde-30ffe46b711ff108fa210757eeb856803b09de82.gz b/_darcs/patches/20080709202716-84dde-30ffe46b711ff108fa210757eeb856803b09de82.gz deleted file mode 100644 index bb9605ca7f..0000000000 Binary files a/_darcs/patches/20080709202716-84dde-30ffe46b711ff108fa210757eeb856803b09de82.gz and /dev/null differ diff --git a/_darcs/patches/20080709203237-84dde-f76ca017b4bc1f3c260aaefaaa5ffac5c0f08028.gz b/_darcs/patches/20080709203237-84dde-f76ca017b4bc1f3c260aaefaaa5ffac5c0f08028.gz deleted file mode 100644 index 7467bc8cf2..0000000000 Binary files a/_darcs/patches/20080709203237-84dde-f76ca017b4bc1f3c260aaefaaa5ffac5c0f08028.gz and /dev/null differ diff --git a/_darcs/patches/20080709203831-84dde-6f5f64f354a243ffefea8af8ef046d4bd0ec8e82.gz b/_darcs/patches/20080709203831-84dde-6f5f64f354a243ffefea8af8ef046d4bd0ec8e82.gz deleted file mode 100644 index c1dd234d7a..0000000000 Binary files a/_darcs/patches/20080709203831-84dde-6f5f64f354a243ffefea8af8ef046d4bd0ec8e82.gz and /dev/null differ diff --git a/_darcs/patches/20080709203910-84dde-85a0a36009b13cb57e2db9f051aa5864fdb723a2.gz b/_darcs/patches/20080709203910-84dde-85a0a36009b13cb57e2db9f051aa5864fdb723a2.gz deleted file mode 100644 index d36f81afb4..0000000000 Binary files a/_darcs/patches/20080709203910-84dde-85a0a36009b13cb57e2db9f051aa5864fdb723a2.gz and /dev/null differ diff --git a/_darcs/patches/20080709203925-84dde-d494ddd0188bea229ca75391949ec2f4c6a7bdb3.gz b/_darcs/patches/20080709203925-84dde-d494ddd0188bea229ca75391949ec2f4c6a7bdb3.gz deleted file mode 100644 index 01c976bb49..0000000000 Binary files a/_darcs/patches/20080709203925-84dde-d494ddd0188bea229ca75391949ec2f4c6a7bdb3.gz and /dev/null differ diff --git a/_darcs/patches/20080709204050-84dde-b7ed70cb1820e8257f47d5cae23fbc1e1ff5a52f.gz b/_darcs/patches/20080709204050-84dde-b7ed70cb1820e8257f47d5cae23fbc1e1ff5a52f.gz deleted file mode 100644 index f10780b0d8..0000000000 Binary files a/_darcs/patches/20080709204050-84dde-b7ed70cb1820e8257f47d5cae23fbc1e1ff5a52f.gz and /dev/null differ diff --git a/_darcs/patches/20080709214433-84dde-4cb9de9ca054c54ebeb028bc3382ae07f4b7f5e1.gz b/_darcs/patches/20080709214433-84dde-4cb9de9ca054c54ebeb028bc3382ae07f4b7f5e1.gz deleted file mode 100644 index 253244fd11..0000000000 Binary files a/_darcs/patches/20080709214433-84dde-4cb9de9ca054c54ebeb028bc3382ae07f4b7f5e1.gz and /dev/null differ diff --git a/_darcs/patches/20080709214455-84dde-6757b0252963e49f2790831ac4d31b2aafffca17.gz b/_darcs/patches/20080709214455-84dde-6757b0252963e49f2790831ac4d31b2aafffca17.gz deleted file mode 100644 index 161a414b24..0000000000 Binary files a/_darcs/patches/20080709214455-84dde-6757b0252963e49f2790831ac4d31b2aafffca17.gz and /dev/null differ diff --git a/_darcs/patches/20080709214659-84dde-86ff362aa1b7e7fd7194e9d7dd33cff78c2f05c9.gz b/_darcs/patches/20080709214659-84dde-86ff362aa1b7e7fd7194e9d7dd33cff78c2f05c9.gz deleted file mode 100644 index c4ec10d2c1..0000000000 Binary files a/_darcs/patches/20080709214659-84dde-86ff362aa1b7e7fd7194e9d7dd33cff78c2f05c9.gz and /dev/null differ diff --git a/_darcs/patches/20080709214713-84dde-c8549c7837d6bc18e1cd35cc64b84a97fff9c05f.gz b/_darcs/patches/20080709214713-84dde-c8549c7837d6bc18e1cd35cc64b84a97fff9c05f.gz deleted file mode 100644 index fc2e87d973..0000000000 Binary files a/_darcs/patches/20080709214713-84dde-c8549c7837d6bc18e1cd35cc64b84a97fff9c05f.gz and /dev/null differ diff --git a/_darcs/patches/20080709214821-84dde-88aee48526993768ede96dc9cb245b65472d8dbe.gz b/_darcs/patches/20080709214821-84dde-88aee48526993768ede96dc9cb245b65472d8dbe.gz deleted file mode 100644 index 061adef04f..0000000000 Binary files a/_darcs/patches/20080709214821-84dde-88aee48526993768ede96dc9cb245b65472d8dbe.gz and /dev/null differ diff --git a/_darcs/patches/20080709215011-84dde-29c80d3210e337614980b647c58b5720b7bfc35f.gz b/_darcs/patches/20080709215011-84dde-29c80d3210e337614980b647c58b5720b7bfc35f.gz deleted file mode 100644 index f494ff8e55..0000000000 Binary files a/_darcs/patches/20080709215011-84dde-29c80d3210e337614980b647c58b5720b7bfc35f.gz and /dev/null differ diff --git a/_darcs/patches/20080709215632-84dde-fc2270bcebc64e3a616e681868f44bff26f7540e.gz b/_darcs/patches/20080709215632-84dde-fc2270bcebc64e3a616e681868f44bff26f7540e.gz deleted file mode 100644 index ee53bbaf54..0000000000 Binary files a/_darcs/patches/20080709215632-84dde-fc2270bcebc64e3a616e681868f44bff26f7540e.gz and /dev/null differ diff --git a/_darcs/patches/20080709220045-84dde-b81ebf4e5f9c8c0eef17e785de28d93e2987979f.gz b/_darcs/patches/20080709220045-84dde-b81ebf4e5f9c8c0eef17e785de28d93e2987979f.gz deleted file mode 100644 index e83293a41d..0000000000 Binary files a/_darcs/patches/20080709220045-84dde-b81ebf4e5f9c8c0eef17e785de28d93e2987979f.gz and /dev/null differ diff --git a/_darcs/patches/20080709220446-84dde-2cc813b2a781a641cc73482599479c3be6496a09.gz b/_darcs/patches/20080709220446-84dde-2cc813b2a781a641cc73482599479c3be6496a09.gz deleted file mode 100644 index 44ffcc98fd..0000000000 Binary files a/_darcs/patches/20080709220446-84dde-2cc813b2a781a641cc73482599479c3be6496a09.gz and /dev/null differ diff --git a/_darcs/patches/20080709220656-84dde-c094a14100363a98407ec622c1bba967fc75c51e.gz b/_darcs/patches/20080709220656-84dde-c094a14100363a98407ec622c1bba967fc75c51e.gz deleted file mode 100644 index 4fd1528688..0000000000 Binary files a/_darcs/patches/20080709220656-84dde-c094a14100363a98407ec622c1bba967fc75c51e.gz and /dev/null differ diff --git a/_darcs/patches/20080709220856-84dde-f3fc0fa4c5c37c66cf4d27b2d9e8f50d696e94ce.gz b/_darcs/patches/20080709220856-84dde-f3fc0fa4c5c37c66cf4d27b2d9e8f50d696e94ce.gz deleted file mode 100644 index e07cb773e7..0000000000 Binary files a/_darcs/patches/20080709220856-84dde-f3fc0fa4c5c37c66cf4d27b2d9e8f50d696e94ce.gz and /dev/null differ diff --git a/_darcs/patches/20080709221735-84dde-f3fb10d2a3ef832b8528db92cc914d31a474c5d3.gz b/_darcs/patches/20080709221735-84dde-f3fb10d2a3ef832b8528db92cc914d31a474c5d3.gz deleted file mode 100644 index 0b91622f36..0000000000 Binary files a/_darcs/patches/20080709221735-84dde-f3fb10d2a3ef832b8528db92cc914d31a474c5d3.gz and /dev/null differ diff --git a/_darcs/patches/20080709221754-84dde-1ad060768f3d4cd9ac8238474e1e418482c15843.gz b/_darcs/patches/20080709221754-84dde-1ad060768f3d4cd9ac8238474e1e418482c15843.gz deleted file mode 100644 index 1301eeb464..0000000000 Binary files a/_darcs/patches/20080709221754-84dde-1ad060768f3d4cd9ac8238474e1e418482c15843.gz and /dev/null differ diff --git a/_darcs/patches/20080709221826-84dde-e218ebeadd8c17fc6612159f2cb7fefa9174ba67.gz b/_darcs/patches/20080709221826-84dde-e218ebeadd8c17fc6612159f2cb7fefa9174ba67.gz deleted file mode 100644 index cb1adeeb61..0000000000 Binary files a/_darcs/patches/20080709221826-84dde-e218ebeadd8c17fc6612159f2cb7fefa9174ba67.gz and /dev/null differ diff --git a/_darcs/patches/20080709223144-84dde-10f7f9db7dc5ba200fdeea4d6c1f277e71c54c16.gz b/_darcs/patches/20080709223144-84dde-10f7f9db7dc5ba200fdeea4d6c1f277e71c54c16.gz deleted file mode 100644 index bf438770ba..0000000000 Binary files a/_darcs/patches/20080709223144-84dde-10f7f9db7dc5ba200fdeea4d6c1f277e71c54c16.gz and /dev/null differ diff --git a/_darcs/patches/20080709223409-84dde-809bfe5eb294f24cb3a99faf6436e57ff054cd16.gz b/_darcs/patches/20080709223409-84dde-809bfe5eb294f24cb3a99faf6436e57ff054cd16.gz deleted file mode 100644 index 293679bf50..0000000000 Binary files a/_darcs/patches/20080709223409-84dde-809bfe5eb294f24cb3a99faf6436e57ff054cd16.gz and /dev/null differ diff --git a/_darcs/patches/20080709223701-84dde-a2bc25d65eeb70d24d4c598ef962e17062390fc4.gz b/_darcs/patches/20080709223701-84dde-a2bc25d65eeb70d24d4c598ef962e17062390fc4.gz deleted file mode 100644 index 23ab2b14db..0000000000 Binary files a/_darcs/patches/20080709223701-84dde-a2bc25d65eeb70d24d4c598ef962e17062390fc4.gz and /dev/null differ diff --git a/_darcs/patches/20080709223803-84dde-c04d91be4d0a39d173297633cf5cad464ea52c4e.gz b/_darcs/patches/20080709223803-84dde-c04d91be4d0a39d173297633cf5cad464ea52c4e.gz deleted file mode 100644 index 6b9cc84d61..0000000000 Binary files a/_darcs/patches/20080709223803-84dde-c04d91be4d0a39d173297633cf5cad464ea52c4e.gz and /dev/null differ diff --git a/_darcs/patches/20080709223910-84dde-dc2e01e3fddb335b84cbee1e4979eb07b978988f.gz b/_darcs/patches/20080709223910-84dde-dc2e01e3fddb335b84cbee1e4979eb07b978988f.gz deleted file mode 100644 index a3d52ae8ea..0000000000 Binary files a/_darcs/patches/20080709223910-84dde-dc2e01e3fddb335b84cbee1e4979eb07b978988f.gz and /dev/null differ diff --git a/_darcs/patches/20080709224630-533db-b5399baef280133858dac9b89c2cd6a2aba9f861.gz b/_darcs/patches/20080709224630-533db-b5399baef280133858dac9b89c2cd6a2aba9f861.gz deleted file mode 100644 index d3f1e7fc3a..0000000000 Binary files a/_darcs/patches/20080709224630-533db-b5399baef280133858dac9b89c2cd6a2aba9f861.gz and /dev/null differ diff --git a/_darcs/patches/20080709225929-84dde-ddc83a90cb56f9abdd596561eeebb6ce078e5e5a.gz b/_darcs/patches/20080709225929-84dde-ddc83a90cb56f9abdd596561eeebb6ce078e5e5a.gz deleted file mode 100644 index 4e0c9b0b4c..0000000000 Binary files a/_darcs/patches/20080709225929-84dde-ddc83a90cb56f9abdd596561eeebb6ce078e5e5a.gz and /dev/null differ diff --git a/_darcs/patches/20080709225942-84dde-80c201825f566af717456f13d17e7382ce234692.gz b/_darcs/patches/20080709225942-84dde-80c201825f566af717456f13d17e7382ce234692.gz deleted file mode 100644 index f8cd0e1ba2..0000000000 Binary files a/_darcs/patches/20080709225942-84dde-80c201825f566af717456f13d17e7382ce234692.gz and /dev/null differ diff --git a/_darcs/patches/20080709230017-84dde-28e4d9d9dcc4dfe2c9f9e08e3123fe4e0bd5a8c0.gz b/_darcs/patches/20080709230017-84dde-28e4d9d9dcc4dfe2c9f9e08e3123fe4e0bd5a8c0.gz deleted file mode 100644 index 01187bdcaf..0000000000 Binary files a/_darcs/patches/20080709230017-84dde-28e4d9d9dcc4dfe2c9f9e08e3123fe4e0bd5a8c0.gz and /dev/null differ diff --git a/_darcs/patches/20080709231031-84dde-929095ca3844ed6fe7ebd535fc9696678a5fcb0f.gz b/_darcs/patches/20080709231031-84dde-929095ca3844ed6fe7ebd535fc9696678a5fcb0f.gz deleted file mode 100644 index 8211a9448a..0000000000 Binary files a/_darcs/patches/20080709231031-84dde-929095ca3844ed6fe7ebd535fc9696678a5fcb0f.gz and /dev/null differ diff --git a/_darcs/patches/20080709231217-84dde-2df00042fd1a0c571f232ad0815b191af043c5a0.gz b/_darcs/patches/20080709231217-84dde-2df00042fd1a0c571f232ad0815b191af043c5a0.gz deleted file mode 100644 index 5942da3bf5..0000000000 Binary files a/_darcs/patches/20080709231217-84dde-2df00042fd1a0c571f232ad0815b191af043c5a0.gz and /dev/null differ diff --git a/_darcs/patches/20080709231503-84dde-e9a00ec6b5c038c8ea7fab62a61f3d9de2dbe2c8.gz b/_darcs/patches/20080709231503-84dde-e9a00ec6b5c038c8ea7fab62a61f3d9de2dbe2c8.gz deleted file mode 100644 index 4d27cf1de6..0000000000 Binary files a/_darcs/patches/20080709231503-84dde-e9a00ec6b5c038c8ea7fab62a61f3d9de2dbe2c8.gz and /dev/null differ diff --git a/_darcs/patches/20080709231539-84dde-4414d122b3b396d31d393ab2f74b0d51758afbc2.gz b/_darcs/patches/20080709231539-84dde-4414d122b3b396d31d393ab2f74b0d51758afbc2.gz deleted file mode 100644 index 4024f9c06c..0000000000 Binary files a/_darcs/patches/20080709231539-84dde-4414d122b3b396d31d393ab2f74b0d51758afbc2.gz and /dev/null differ diff --git a/_darcs/patches/20080709231638-84dde-91dd99af8fbeae8b2400543913efedec3938b2aa.gz b/_darcs/patches/20080709231638-84dde-91dd99af8fbeae8b2400543913efedec3938b2aa.gz deleted file mode 100644 index 92384022f9..0000000000 Binary files a/_darcs/patches/20080709231638-84dde-91dd99af8fbeae8b2400543913efedec3938b2aa.gz and /dev/null differ diff --git a/_darcs/patches/20080709231821-84dde-ecbcbed7e856a92b74c1bd9ba11c4c9be4ecb79f.gz b/_darcs/patches/20080709231821-84dde-ecbcbed7e856a92b74c1bd9ba11c4c9be4ecb79f.gz deleted file mode 100644 index 769c64022f..0000000000 Binary files a/_darcs/patches/20080709231821-84dde-ecbcbed7e856a92b74c1bd9ba11c4c9be4ecb79f.gz and /dev/null differ diff --git a/_darcs/patches/20080709231948-84dde-feb7d677238eaa0b80f263337a1833d9b3ec7d2f.gz b/_darcs/patches/20080709231948-84dde-feb7d677238eaa0b80f263337a1833d9b3ec7d2f.gz deleted file mode 100644 index 3351ddad99..0000000000 Binary files a/_darcs/patches/20080709231948-84dde-feb7d677238eaa0b80f263337a1833d9b3ec7d2f.gz and /dev/null differ diff --git a/_darcs/patches/20080709232350-84dde-3e33baad97a5f39f601d8fc5b117a37e182f3ef3.gz b/_darcs/patches/20080709232350-84dde-3e33baad97a5f39f601d8fc5b117a37e182f3ef3.gz deleted file mode 100644 index aff3902d17..0000000000 Binary files a/_darcs/patches/20080709232350-84dde-3e33baad97a5f39f601d8fc5b117a37e182f3ef3.gz and /dev/null differ diff --git a/_darcs/patches/20080709234228-84dde-f24d277947ab49031a1b6d74184568fe2f50a685.gz b/_darcs/patches/20080709234228-84dde-f24d277947ab49031a1b6d74184568fe2f50a685.gz deleted file mode 100644 index 3056813122..0000000000 Binary files a/_darcs/patches/20080709234228-84dde-f24d277947ab49031a1b6d74184568fe2f50a685.gz and /dev/null differ diff --git a/_darcs/patches/20080710032835-84dde-dc8534409c6ba05fd9390ff965ab9f7aea0a04eb.gz b/_darcs/patches/20080710032835-84dde-dc8534409c6ba05fd9390ff965ab9f7aea0a04eb.gz deleted file mode 100644 index a03849ac12..0000000000 Binary files a/_darcs/patches/20080710032835-84dde-dc8534409c6ba05fd9390ff965ab9f7aea0a04eb.gz and /dev/null differ diff --git a/_darcs/patches/20080710032953-e4794-beb1a282ccfa8f3bf977d2ed28a863ba9084d86c.gz b/_darcs/patches/20080710032953-e4794-beb1a282ccfa8f3bf977d2ed28a863ba9084d86c.gz deleted file mode 100644 index 40eb0c43ab..0000000000 Binary files a/_darcs/patches/20080710032953-e4794-beb1a282ccfa8f3bf977d2ed28a863ba9084d86c.gz and /dev/null differ diff --git a/_darcs/patches/20080710033108-84dde-4a362790f0386d1553a50df8adab680b5b17d0f3.gz b/_darcs/patches/20080710033108-84dde-4a362790f0386d1553a50df8adab680b5b17d0f3.gz deleted file mode 100644 index 00b2edf3b8..0000000000 Binary files a/_darcs/patches/20080710033108-84dde-4a362790f0386d1553a50df8adab680b5b17d0f3.gz and /dev/null differ diff --git a/_darcs/patches/20080710042324-84dde-9d26f10470fa0e9614717c2f2b976d6d9e6f4361.gz b/_darcs/patches/20080710042324-84dde-9d26f10470fa0e9614717c2f2b976d6d9e6f4361.gz deleted file mode 100644 index 5a056c9a81..0000000000 Binary files a/_darcs/patches/20080710042324-84dde-9d26f10470fa0e9614717c2f2b976d6d9e6f4361.gz and /dev/null differ diff --git a/_darcs/patches/20080710042333-84dde-55b87a5f8cba7992b5c2ca1eeb87838c20ef6a61.gz b/_darcs/patches/20080710042333-84dde-55b87a5f8cba7992b5c2ca1eeb87838c20ef6a61.gz deleted file mode 100644 index ba87e7584a..0000000000 Binary files a/_darcs/patches/20080710042333-84dde-55b87a5f8cba7992b5c2ca1eeb87838c20ef6a61.gz and /dev/null differ diff --git a/_darcs/patches/20080710042930-84dde-e8caef45ae3efb095c81f62736d2cf888b2b85ef.gz b/_darcs/patches/20080710042930-84dde-e8caef45ae3efb095c81f62736d2cf888b2b85ef.gz deleted file mode 100644 index d41c53f3ce..0000000000 Binary files a/_darcs/patches/20080710042930-84dde-e8caef45ae3efb095c81f62736d2cf888b2b85ef.gz and /dev/null differ diff --git a/_darcs/patches/20080710045126-533db-ffd9bcfe1295b3a376579ed7cd2278d5597b1884.gz b/_darcs/patches/20080710045126-533db-ffd9bcfe1295b3a376579ed7cd2278d5597b1884.gz deleted file mode 100644 index 81669cd0a2..0000000000 Binary files a/_darcs/patches/20080710045126-533db-ffd9bcfe1295b3a376579ed7cd2278d5597b1884.gz and /dev/null differ diff --git a/_darcs/patches/20080710045454-84dde-4f33e8ca41dcbd0bf0a69c28c56d7ec716f1c48a.gz b/_darcs/patches/20080710045454-84dde-4f33e8ca41dcbd0bf0a69c28c56d7ec716f1c48a.gz deleted file mode 100644 index 488d3eb44c..0000000000 Binary files a/_darcs/patches/20080710045454-84dde-4f33e8ca41dcbd0bf0a69c28c56d7ec716f1c48a.gz and /dev/null differ diff --git a/_darcs/patches/20080710045942-533db-209fce2e2e89dfc809c9b25e93fb428c585f29e4.gz b/_darcs/patches/20080710045942-533db-209fce2e2e89dfc809c9b25e93fb428c585f29e4.gz deleted file mode 100644 index ebafe0c8df..0000000000 Binary files a/_darcs/patches/20080710045942-533db-209fce2e2e89dfc809c9b25e93fb428c585f29e4.gz and /dev/null differ diff --git a/_darcs/patches/20080710050202-533db-31739e6dc9d57058df99c8e6592249563f484179.gz b/_darcs/patches/20080710050202-533db-31739e6dc9d57058df99c8e6592249563f484179.gz deleted file mode 100644 index 88c3504655..0000000000 Binary files a/_darcs/patches/20080710050202-533db-31739e6dc9d57058df99c8e6592249563f484179.gz and /dev/null differ diff --git a/_darcs/patches/20080710050459-533db-251d9fec6b700628e3e56607f25e551381f2fad2.gz b/_darcs/patches/20080710050459-533db-251d9fec6b700628e3e56607f25e551381f2fad2.gz deleted file mode 100644 index dfddd3374b..0000000000 Binary files a/_darcs/patches/20080710050459-533db-251d9fec6b700628e3e56607f25e551381f2fad2.gz and /dev/null differ diff --git a/_darcs/patches/20080710051035-533db-4a3d824a50545b8a291a81059dcbb97487a13630.gz b/_darcs/patches/20080710051035-533db-4a3d824a50545b8a291a81059dcbb97487a13630.gz deleted file mode 100644 index 62da9104ab..0000000000 Binary files a/_darcs/patches/20080710051035-533db-4a3d824a50545b8a291a81059dcbb97487a13630.gz and /dev/null differ diff --git a/_darcs/patches/20080710051201-533db-2d5fb38710ce1dedcb6e161b08e31611dbaba666.gz b/_darcs/patches/20080710051201-533db-2d5fb38710ce1dedcb6e161b08e31611dbaba666.gz deleted file mode 100644 index 94596e838e..0000000000 Binary files a/_darcs/patches/20080710051201-533db-2d5fb38710ce1dedcb6e161b08e31611dbaba666.gz and /dev/null differ diff --git a/_darcs/patches/20080710051331-533db-a687146f02d399ae1f3368e1b94476bd7e74cc5f.gz b/_darcs/patches/20080710051331-533db-a687146f02d399ae1f3368e1b94476bd7e74cc5f.gz deleted file mode 100644 index 257cf9d896..0000000000 Binary files a/_darcs/patches/20080710051331-533db-a687146f02d399ae1f3368e1b94476bd7e74cc5f.gz and /dev/null differ diff --git a/_darcs/patches/20080710055726-533db-4b96201b090970f390d62b305256a786a1a96d44.gz b/_darcs/patches/20080710055726-533db-4b96201b090970f390d62b305256a786a1a96d44.gz deleted file mode 100644 index c887fd1cba..0000000000 Binary files a/_darcs/patches/20080710055726-533db-4b96201b090970f390d62b305256a786a1a96d44.gz and /dev/null differ diff --git a/_darcs/patches/20080710151842-84dde-ad2159088ed05830e4feba88880863c84c4728c8.gz b/_darcs/patches/20080710151842-84dde-ad2159088ed05830e4feba88880863c84c4728c8.gz deleted file mode 100644 index b9502abaa7..0000000000 Binary files a/_darcs/patches/20080710151842-84dde-ad2159088ed05830e4feba88880863c84c4728c8.gz and /dev/null differ diff --git a/_darcs/patches/20080711042022-84dde-a29b769e1c032cb1b8bf13a2e6c69671169c032f.gz b/_darcs/patches/20080711042022-84dde-a29b769e1c032cb1b8bf13a2e6c69671169c032f.gz deleted file mode 100644 index 7723c1bd33..0000000000 Binary files a/_darcs/patches/20080711042022-84dde-a29b769e1c032cb1b8bf13a2e6c69671169c032f.gz and /dev/null differ diff --git a/_darcs/patches/20080711060045-84dde-08b0072de764d5b67ce7abe73fa0553f32de4ab3.gz b/_darcs/patches/20080711060045-84dde-08b0072de764d5b67ce7abe73fa0553f32de4ab3.gz deleted file mode 100644 index 336be8fd09..0000000000 Binary files a/_darcs/patches/20080711060045-84dde-08b0072de764d5b67ce7abe73fa0553f32de4ab3.gz and /dev/null differ diff --git a/_darcs/patches/20080711070021-ca946-8f8f385ddacc098c8a0c2627e3a8690a9f3aa2c7.gz b/_darcs/patches/20080711070021-ca946-8f8f385ddacc098c8a0c2627e3a8690a9f3aa2c7.gz deleted file mode 100644 index e251c73bd4..0000000000 Binary files a/_darcs/patches/20080711070021-ca946-8f8f385ddacc098c8a0c2627e3a8690a9f3aa2c7.gz and /dev/null differ diff --git a/_darcs/patches/20080711171113-84dde-56b61d305e207bdb7d1fa844356fbc41e5bd43b9.gz b/_darcs/patches/20080711171113-84dde-56b61d305e207bdb7d1fa844356fbc41e5bd43b9.gz deleted file mode 100644 index 9e5da764e1..0000000000 Binary files a/_darcs/patches/20080711171113-84dde-56b61d305e207bdb7d1fa844356fbc41e5bd43b9.gz and /dev/null differ diff --git a/_darcs/patches/20080711171345-84dde-790e24f1d31a716cc52857229087469cd84ad65e.gz b/_darcs/patches/20080711171345-84dde-790e24f1d31a716cc52857229087469cd84ad65e.gz deleted file mode 100644 index 263e5b5af1..0000000000 Binary files a/_darcs/patches/20080711171345-84dde-790e24f1d31a716cc52857229087469cd84ad65e.gz and /dev/null differ diff --git a/_darcs/patches/20080712051738-84dde-70b1dbc5aa034c6aa9151eac5a216701b7860a72.gz b/_darcs/patches/20080712051738-84dde-70b1dbc5aa034c6aa9151eac5a216701b7860a72.gz deleted file mode 100644 index 7cb79cc9b9..0000000000 Binary files a/_darcs/patches/20080712051738-84dde-70b1dbc5aa034c6aa9151eac5a216701b7860a72.gz and /dev/null differ diff --git a/_darcs/patches/20080712081247-ca946-acd3e0e2762c7d9ff0cb3cd7a53cfdfcc5b26660.gz b/_darcs/patches/20080712081247-ca946-acd3e0e2762c7d9ff0cb3cd7a53cfdfcc5b26660.gz deleted file mode 100644 index 7f041eeca7..0000000000 Binary files a/_darcs/patches/20080712081247-ca946-acd3e0e2762c7d9ff0cb3cd7a53cfdfcc5b26660.gz and /dev/null differ diff --git a/_darcs/patches/20080712115300-533db-7426faac9059437c2a06a45ed5c87998f998aada.gz b/_darcs/patches/20080712115300-533db-7426faac9059437c2a06a45ed5c87998f998aada.gz deleted file mode 100644 index 6135d68645..0000000000 Binary files a/_darcs/patches/20080712115300-533db-7426faac9059437c2a06a45ed5c87998f998aada.gz and /dev/null differ diff --git a/_darcs/patches/20080712123942-533db-21fa41076dd7b57935f49462423f247ccbb01e8f.gz b/_darcs/patches/20080712123942-533db-21fa41076dd7b57935f49462423f247ccbb01e8f.gz deleted file mode 100644 index dba9de041c..0000000000 Binary files a/_darcs/patches/20080712123942-533db-21fa41076dd7b57935f49462423f247ccbb01e8f.gz and /dev/null differ diff --git a/_darcs/patches/20080712151521-84dde-a81c53bacbe15e77b70fc460ad9143e7e4f8402c.gz b/_darcs/patches/20080712151521-84dde-a81c53bacbe15e77b70fc460ad9143e7e4f8402c.gz deleted file mode 100644 index 1fe2ae0e93..0000000000 Binary files a/_darcs/patches/20080712151521-84dde-a81c53bacbe15e77b70fc460ad9143e7e4f8402c.gz and /dev/null differ diff --git a/_darcs/patches/20080712200909-84dde-c248fe1d44072c40db59eed592166e3f529cfbb0.gz b/_darcs/patches/20080712200909-84dde-c248fe1d44072c40db59eed592166e3f529cfbb0.gz deleted file mode 100644 index 30503888f7..0000000000 Binary files a/_darcs/patches/20080712200909-84dde-c248fe1d44072c40db59eed592166e3f529cfbb0.gz and /dev/null differ diff --git a/_darcs/patches/20080712202017-84dde-db9bb7d4db42514215cccf76f12ffae4f853dbdc.gz b/_darcs/patches/20080712202017-84dde-db9bb7d4db42514215cccf76f12ffae4f853dbdc.gz deleted file mode 100644 index 3845dde417..0000000000 Binary files a/_darcs/patches/20080712202017-84dde-db9bb7d4db42514215cccf76f12ffae4f853dbdc.gz and /dev/null differ diff --git a/_darcs/patches/20080712202903-84dde-e210b42815db5601579a0a890385762c3a54fe5e.gz b/_darcs/patches/20080712202903-84dde-e210b42815db5601579a0a890385762c3a54fe5e.gz deleted file mode 100644 index 8910a57836..0000000000 Binary files a/_darcs/patches/20080712202903-84dde-e210b42815db5601579a0a890385762c3a54fe5e.gz and /dev/null differ diff --git a/_darcs/patches/20080712204923-84dde-627704bb3a0bb95af3b8fa9ba281a38913e0bbcf.gz b/_darcs/patches/20080712204923-84dde-627704bb3a0bb95af3b8fa9ba281a38913e0bbcf.gz deleted file mode 100644 index 4ddb524165..0000000000 Binary files a/_darcs/patches/20080712204923-84dde-627704bb3a0bb95af3b8fa9ba281a38913e0bbcf.gz and /dev/null differ diff --git a/_darcs/patches/20080712205220-84dde-c58df22d58fa4d483a0ca09c3d9c74e4e22eb6a7.gz b/_darcs/patches/20080712205220-84dde-c58df22d58fa4d483a0ca09c3d9c74e4e22eb6a7.gz deleted file mode 100644 index 2f0718ca4e..0000000000 Binary files a/_darcs/patches/20080712205220-84dde-c58df22d58fa4d483a0ca09c3d9c74e4e22eb6a7.gz and /dev/null differ diff --git a/_darcs/patches/20080712214610-84dde-bbba589edff6a627e9e131d938c75f4665a9722f.gz b/_darcs/patches/20080712214610-84dde-bbba589edff6a627e9e131d938c75f4665a9722f.gz deleted file mode 100644 index 1ee2f47142..0000000000 Binary files a/_darcs/patches/20080712214610-84dde-bbba589edff6a627e9e131d938c75f4665a9722f.gz and /dev/null differ diff --git a/_darcs/patches/20080713003932-84dde-cb681331aae0d3351bbeb8bed0744933a462c1d5.gz b/_darcs/patches/20080713003932-84dde-cb681331aae0d3351bbeb8bed0744933a462c1d5.gz deleted file mode 100644 index 3a9bc731bf..0000000000 Binary files a/_darcs/patches/20080713003932-84dde-cb681331aae0d3351bbeb8bed0744933a462c1d5.gz and /dev/null differ diff --git a/_darcs/patches/20080713004936-84dde-52aaffede10321b54abab6b9b91aa41e9395b3eb.gz b/_darcs/patches/20080713004936-84dde-52aaffede10321b54abab6b9b91aa41e9395b3eb.gz deleted file mode 100644 index 2e58fc8a44..0000000000 Binary files a/_darcs/patches/20080713004936-84dde-52aaffede10321b54abab6b9b91aa41e9395b3eb.gz and /dev/null differ diff --git a/_darcs/patches/20080713024754-533db-af3dbd6186df4ce27caa7c25d0752d3e7afa184a.gz b/_darcs/patches/20080713024754-533db-af3dbd6186df4ce27caa7c25d0752d3e7afa184a.gz deleted file mode 100644 index 947de8c5e7..0000000000 Binary files a/_darcs/patches/20080713024754-533db-af3dbd6186df4ce27caa7c25d0752d3e7afa184a.gz and /dev/null differ diff --git a/_darcs/patches/20080713042238-533db-d55470e31ebaf8cda8c1ccee0cdc1bd5c58bd69a.gz b/_darcs/patches/20080713042238-533db-d55470e31ebaf8cda8c1ccee0cdc1bd5c58bd69a.gz deleted file mode 100644 index a191aa8dcd..0000000000 Binary files a/_darcs/patches/20080713042238-533db-d55470e31ebaf8cda8c1ccee0cdc1bd5c58bd69a.gz and /dev/null differ diff --git a/_darcs/patches/20080713044608-533db-ee16aecee9b6d82b22ce6a25f6a9573c23eee9f8.gz b/_darcs/patches/20080713044608-533db-ee16aecee9b6d82b22ce6a25f6a9573c23eee9f8.gz deleted file mode 100644 index 316953c4e0..0000000000 Binary files a/_darcs/patches/20080713044608-533db-ee16aecee9b6d82b22ce6a25f6a9573c23eee9f8.gz and /dev/null differ diff --git a/_darcs/patches/20080713053033-533db-c1b4e827abd764dc173173556ec889290b0643bf.gz b/_darcs/patches/20080713053033-533db-c1b4e827abd764dc173173556ec889290b0643bf.gz deleted file mode 100644 index 91d9d22eca..0000000000 Binary files a/_darcs/patches/20080713053033-533db-c1b4e827abd764dc173173556ec889290b0643bf.gz and /dev/null differ diff --git a/_darcs/patches/20080713053748-533db-1cdb0cf3a9e4102eb139b74a7a9d4f97dadb20b8.gz b/_darcs/patches/20080713053748-533db-1cdb0cf3a9e4102eb139b74a7a9d4f97dadb20b8.gz deleted file mode 100644 index 3c214d6d0e..0000000000 Binary files a/_darcs/patches/20080713053748-533db-1cdb0cf3a9e4102eb139b74a7a9d4f97dadb20b8.gz and /dev/null differ diff --git a/_darcs/patches/20080713060055-533db-ad45b43abeeab1e2b4326b15597c4f67ea921a56.gz b/_darcs/patches/20080713060055-533db-ad45b43abeeab1e2b4326b15597c4f67ea921a56.gz deleted file mode 100644 index 7cf5106c3a..0000000000 Binary files a/_darcs/patches/20080713060055-533db-ad45b43abeeab1e2b4326b15597c4f67ea921a56.gz and /dev/null differ diff --git a/_darcs/patches/20080713065009-533db-69d7f21d152552d7e994a0c7c7615b61a8ea592c.gz b/_darcs/patches/20080713065009-533db-69d7f21d152552d7e994a0c7c7615b61a8ea592c.gz deleted file mode 100644 index 5876d71792..0000000000 Binary files a/_darcs/patches/20080713065009-533db-69d7f21d152552d7e994a0c7c7615b61a8ea592c.gz and /dev/null differ diff --git a/_darcs/patches/20080713083853-ca946-f4454aa5da08c870a11398a6ed2d8d5e0762b043.gz b/_darcs/patches/20080713083853-ca946-f4454aa5da08c870a11398a6ed2d8d5e0762b043.gz deleted file mode 100644 index cfd12c4471..0000000000 Binary files a/_darcs/patches/20080713083853-ca946-f4454aa5da08c870a11398a6ed2d8d5e0762b043.gz and /dev/null differ diff --git a/_darcs/patches/20080713130112-84dde-b3727f84de7db3bbe96b9d1003380b89402495de.gz b/_darcs/patches/20080713130112-84dde-b3727f84de7db3bbe96b9d1003380b89402495de.gz deleted file mode 100644 index 455dafb724..0000000000 Binary files a/_darcs/patches/20080713130112-84dde-b3727f84de7db3bbe96b9d1003380b89402495de.gz and /dev/null differ diff --git a/_darcs/patches/20080713151004-84dde-6818a5392e8d78e6672399dfbc183b571751953a.gz b/_darcs/patches/20080713151004-84dde-6818a5392e8d78e6672399dfbc183b571751953a.gz deleted file mode 100644 index 71c32f69a9..0000000000 Binary files a/_darcs/patches/20080713151004-84dde-6818a5392e8d78e6672399dfbc183b571751953a.gz and /dev/null differ diff --git a/_darcs/patches/20080713151035-84dde-8561acc3546efa741e2d927ffb3167fd8efeb7e1.gz b/_darcs/patches/20080713151035-84dde-8561acc3546efa741e2d927ffb3167fd8efeb7e1.gz deleted file mode 100644 index 019d0a3c08..0000000000 Binary files a/_darcs/patches/20080713151035-84dde-8561acc3546efa741e2d927ffb3167fd8efeb7e1.gz and /dev/null differ diff --git a/_darcs/patches/20080713215601-84dde-371d54221d9ffbed500e8d3c9e0ad4bb15bd5c30.gz b/_darcs/patches/20080713215601-84dde-371d54221d9ffbed500e8d3c9e0ad4bb15bd5c30.gz deleted file mode 100644 index 2b03fe8b48..0000000000 Binary files a/_darcs/patches/20080713215601-84dde-371d54221d9ffbed500e8d3c9e0ad4bb15bd5c30.gz and /dev/null differ diff --git a/_darcs/patches/20080713220114-84dde-7f489c6de0921a13fc3a5b3b497f60dd46983749.gz b/_darcs/patches/20080713220114-84dde-7f489c6de0921a13fc3a5b3b497f60dd46983749.gz deleted file mode 100644 index da69e633cc..0000000000 Binary files a/_darcs/patches/20080713220114-84dde-7f489c6de0921a13fc3a5b3b497f60dd46983749.gz and /dev/null differ diff --git a/_darcs/patches/20080713222006-84dde-a56a5125414499a9bfb6d1d8002470bb77f5dd94.gz b/_darcs/patches/20080713222006-84dde-a56a5125414499a9bfb6d1d8002470bb77f5dd94.gz deleted file mode 100644 index e4c0d8225b..0000000000 Binary files a/_darcs/patches/20080713222006-84dde-a56a5125414499a9bfb6d1d8002470bb77f5dd94.gz and /dev/null differ diff --git a/_darcs/patches/20080713222056-84dde-71d72b60af252a2240000b50dbb80c371c5dc96a.gz b/_darcs/patches/20080713222056-84dde-71d72b60af252a2240000b50dbb80c371c5dc96a.gz deleted file mode 100644 index 42cad87098..0000000000 Binary files a/_darcs/patches/20080713222056-84dde-71d72b60af252a2240000b50dbb80c371c5dc96a.gz and /dev/null differ diff --git a/_darcs/patches/20080714000833-68ac8-388a8a23336cd08b7e5e5984834aef3d57c3b7bc.gz b/_darcs/patches/20080714000833-68ac8-388a8a23336cd08b7e5e5984834aef3d57c3b7bc.gz deleted file mode 100644 index e7fdfe2469..0000000000 Binary files a/_darcs/patches/20080714000833-68ac8-388a8a23336cd08b7e5e5984834aef3d57c3b7bc.gz and /dev/null differ diff --git a/_darcs/patches/20080714022055-84dde-385e62dcea9c692262556d4e78b52f95212b512a.gz b/_darcs/patches/20080714022055-84dde-385e62dcea9c692262556d4e78b52f95212b512a.gz deleted file mode 100644 index 47ce56ce0e..0000000000 Binary files a/_darcs/patches/20080714022055-84dde-385e62dcea9c692262556d4e78b52f95212b512a.gz and /dev/null differ diff --git a/_darcs/patches/20080714025853-533db-e215a2ab0277acafc1c01d2c12c20ec452ed53e2.gz b/_darcs/patches/20080714025853-533db-e215a2ab0277acafc1c01d2c12c20ec452ed53e2.gz deleted file mode 100644 index 148b746081..0000000000 Binary files a/_darcs/patches/20080714025853-533db-e215a2ab0277acafc1c01d2c12c20ec452ed53e2.gz and /dev/null differ diff --git a/_darcs/patches/20080714034443-84dde-f443b04e6733b22709d746a700c0ba032d7afb60.gz b/_darcs/patches/20080714034443-84dde-f443b04e6733b22709d746a700c0ba032d7afb60.gz deleted file mode 100644 index ffd544d43d..0000000000 Binary files a/_darcs/patches/20080714034443-84dde-f443b04e6733b22709d746a700c0ba032d7afb60.gz and /dev/null differ diff --git a/_darcs/patches/20080714034503-84dde-c06198f9d7b8b1c11f6c57e518dcf49b863ee6f3.gz b/_darcs/patches/20080714034503-84dde-c06198f9d7b8b1c11f6c57e518dcf49b863ee6f3.gz deleted file mode 100644 index da344c3140..0000000000 Binary files a/_darcs/patches/20080714034503-84dde-c06198f9d7b8b1c11f6c57e518dcf49b863ee6f3.gz and /dev/null differ diff --git a/_darcs/patches/20080714034647-84dde-8cee5c041927eb7d3f47cf14410c6ce09752dd2f.gz b/_darcs/patches/20080714034647-84dde-8cee5c041927eb7d3f47cf14410c6ce09752dd2f.gz deleted file mode 100644 index f0586e11b8..0000000000 Binary files a/_darcs/patches/20080714034647-84dde-8cee5c041927eb7d3f47cf14410c6ce09752dd2f.gz and /dev/null differ diff --git a/_darcs/patches/20080714043459-84dde-cd80f2558432b901944d32e71234eb95f6dc47fb.gz b/_darcs/patches/20080714043459-84dde-cd80f2558432b901944d32e71234eb95f6dc47fb.gz deleted file mode 100644 index bfbb9972d4..0000000000 Binary files a/_darcs/patches/20080714043459-84dde-cd80f2558432b901944d32e71234eb95f6dc47fb.gz and /dev/null differ diff --git a/_darcs/patches/20080714044153-84dde-8043ee7e32936f468b2cfa096a1a1846eddfba88.gz b/_darcs/patches/20080714044153-84dde-8043ee7e32936f468b2cfa096a1a1846eddfba88.gz deleted file mode 100644 index ee5f2fc54d..0000000000 Binary files a/_darcs/patches/20080714044153-84dde-8043ee7e32936f468b2cfa096a1a1846eddfba88.gz and /dev/null differ diff --git a/_darcs/patches/20080714050037-08d49-b00c6370c4eed918eee94f828e2d6098b922ba69.gz b/_darcs/patches/20080714050037-08d49-b00c6370c4eed918eee94f828e2d6098b922ba69.gz deleted file mode 100644 index c885c7e376..0000000000 Binary files a/_darcs/patches/20080714050037-08d49-b00c6370c4eed918eee94f828e2d6098b922ba69.gz and /dev/null differ diff --git a/_darcs/patches/20080714060517-84dde-7ff9417a790ded358d7fc5fe0d565fc5f3591906.gz b/_darcs/patches/20080714060517-84dde-7ff9417a790ded358d7fc5fe0d565fc5f3591906.gz deleted file mode 100644 index 4cc60e4db5..0000000000 Binary files a/_darcs/patches/20080714060517-84dde-7ff9417a790ded358d7fc5fe0d565fc5f3591906.gz and /dev/null differ diff --git a/_darcs/patches/20080714080741-ca946-1b2f8c026f433e27a30abc104ca2dba11b9b662e.gz b/_darcs/patches/20080714080741-ca946-1b2f8c026f433e27a30abc104ca2dba11b9b662e.gz deleted file mode 100644 index a20c8f33a5..0000000000 Binary files a/_darcs/patches/20080714080741-ca946-1b2f8c026f433e27a30abc104ca2dba11b9b662e.gz and /dev/null differ diff --git a/_darcs/patches/20080714080949-ca946-7372d114c1db9f48aa79f7bd8a5f67042da37ac4.gz b/_darcs/patches/20080714080949-ca946-7372d114c1db9f48aa79f7bd8a5f67042da37ac4.gz deleted file mode 100644 index e7ccf0bae8..0000000000 Binary files a/_darcs/patches/20080714080949-ca946-7372d114c1db9f48aa79f7bd8a5f67042da37ac4.gz and /dev/null differ diff --git a/_darcs/patches/20080714091337-533db-86af7bdde30397459299e4604ee6f38f473d4b9e.gz b/_darcs/patches/20080714091337-533db-86af7bdde30397459299e4604ee6f38f473d4b9e.gz deleted file mode 100644 index 26bacb1033..0000000000 Binary files a/_darcs/patches/20080714091337-533db-86af7bdde30397459299e4604ee6f38f473d4b9e.gz and /dev/null differ diff --git a/_darcs/patches/20080714091448-533db-d87b53ea5c270d41449fb2dfa1c0bd0680262eea.gz b/_darcs/patches/20080714091448-533db-d87b53ea5c270d41449fb2dfa1c0bd0680262eea.gz deleted file mode 100644 index 00fb13ce44..0000000000 Binary files a/_darcs/patches/20080714091448-533db-d87b53ea5c270d41449fb2dfa1c0bd0680262eea.gz and /dev/null differ diff --git a/_darcs/patches/20080714124733-84dde-a931815975c1e98cc6b8a5d4ebfabb7554d64402.gz b/_darcs/patches/20080714124733-84dde-a931815975c1e98cc6b8a5d4ebfabb7554d64402.gz deleted file mode 100644 index d3187cf3c0..0000000000 Binary files a/_darcs/patches/20080714124733-84dde-a931815975c1e98cc6b8a5d4ebfabb7554d64402.gz and /dev/null differ diff --git a/_darcs/patches/20080714140209-d018c-02b3372603f4a012c230f0fffb6e7f29e43e013a.gz b/_darcs/patches/20080714140209-d018c-02b3372603f4a012c230f0fffb6e7f29e43e013a.gz deleted file mode 100644 index 0eaf2ead20..0000000000 Binary files a/_darcs/patches/20080714140209-d018c-02b3372603f4a012c230f0fffb6e7f29e43e013a.gz and /dev/null differ diff --git a/_darcs/patches/20080714143042-84dde-8da6275ea2bf0e0ce4691d8f56e1b932727efcd8.gz b/_darcs/patches/20080714143042-84dde-8da6275ea2bf0e0ce4691d8f56e1b932727efcd8.gz deleted file mode 100644 index 587e42c892..0000000000 Binary files a/_darcs/patches/20080714143042-84dde-8da6275ea2bf0e0ce4691d8f56e1b932727efcd8.gz and /dev/null differ diff --git a/_darcs/patches/20080714153859-68ac8-8c370d385fd060d2fcebc118c3000f3c383fb4dc.gz b/_darcs/patches/20080714153859-68ac8-8c370d385fd060d2fcebc118c3000f3c383fb4dc.gz deleted file mode 100644 index 9296978529..0000000000 Binary files a/_darcs/patches/20080714153859-68ac8-8c370d385fd060d2fcebc118c3000f3c383fb4dc.gz and /dev/null differ diff --git a/_darcs/patches/20080714190300-ca946-80e4dbdd0b5278d03cb00b0922cd69c695a166cb.gz b/_darcs/patches/20080714190300-ca946-80e4dbdd0b5278d03cb00b0922cd69c695a166cb.gz deleted file mode 100644 index 3c0a6941f5..0000000000 Binary files a/_darcs/patches/20080714190300-ca946-80e4dbdd0b5278d03cb00b0922cd69c695a166cb.gz and /dev/null differ diff --git a/_darcs/patches/20080714191328-68ac8-7b525eb8d85ed77599231b7d7456eaccc8a5ff15.gz b/_darcs/patches/20080714191328-68ac8-7b525eb8d85ed77599231b7d7456eaccc8a5ff15.gz deleted file mode 100644 index 5dd7dc63c6..0000000000 Binary files a/_darcs/patches/20080714191328-68ac8-7b525eb8d85ed77599231b7d7456eaccc8a5ff15.gz and /dev/null differ diff --git a/_darcs/patches/20080714202728-ca946-fed9631e283e00019aad61a87d7c4f51530327d1.gz b/_darcs/patches/20080714202728-ca946-fed9631e283e00019aad61a87d7c4f51530327d1.gz deleted file mode 100644 index 1ab2ba6ef5..0000000000 Binary files a/_darcs/patches/20080714202728-ca946-fed9631e283e00019aad61a87d7c4f51530327d1.gz and /dev/null differ diff --git a/_darcs/patches/20080715022045-68ac8-8f8222e7a97009297bed6ff88b6c020192fe6dd2.gz b/_darcs/patches/20080715022045-68ac8-8f8222e7a97009297bed6ff88b6c020192fe6dd2.gz deleted file mode 100644 index 94774e6375..0000000000 Binary files a/_darcs/patches/20080715022045-68ac8-8f8222e7a97009297bed6ff88b6c020192fe6dd2.gz and /dev/null differ diff --git a/_darcs/patches/20080715031812-ca946-10a94dd3cd96039ad76adc36f0f23d7402768fbe.gz b/_darcs/patches/20080715031812-ca946-10a94dd3cd96039ad76adc36f0f23d7402768fbe.gz deleted file mode 100644 index 13ca9f2c8a..0000000000 Binary files a/_darcs/patches/20080715031812-ca946-10a94dd3cd96039ad76adc36f0f23d7402768fbe.gz and /dev/null differ diff --git a/_darcs/patches/20080715033711-84dde-f4a4583d8182dc18fec6f7ea7e2e27ff4958cb90.gz b/_darcs/patches/20080715033711-84dde-f4a4583d8182dc18fec6f7ea7e2e27ff4958cb90.gz deleted file mode 100644 index ed46e43482..0000000000 Binary files a/_darcs/patches/20080715033711-84dde-f4a4583d8182dc18fec6f7ea7e2e27ff4958cb90.gz and /dev/null differ diff --git a/_darcs/patches/20080715043121-ca946-bb7acd42271117dbb77d5e16292673a4b8cfad53.gz b/_darcs/patches/20080715043121-ca946-bb7acd42271117dbb77d5e16292673a4b8cfad53.gz deleted file mode 100644 index 16f7d686dd..0000000000 Binary files a/_darcs/patches/20080715043121-ca946-bb7acd42271117dbb77d5e16292673a4b8cfad53.gz and /dev/null differ diff --git a/_darcs/patches/20080715065850-ca946-6d0e490957830d2f837fd304f70599a636597f9c.gz b/_darcs/patches/20080715065850-ca946-6d0e490957830d2f837fd304f70599a636597f9c.gz deleted file mode 100644 index 4a5d31d63d..0000000000 Binary files a/_darcs/patches/20080715065850-ca946-6d0e490957830d2f837fd304f70599a636597f9c.gz and /dev/null differ diff --git a/_darcs/patches/20080715190519-84dde-766a45bc05fff8682843323145c1bd2460f8c308.gz b/_darcs/patches/20080715190519-84dde-766a45bc05fff8682843323145c1bd2460f8c308.gz deleted file mode 100644 index cfb62c655a..0000000000 Binary files a/_darcs/patches/20080715190519-84dde-766a45bc05fff8682843323145c1bd2460f8c308.gz and /dev/null differ diff --git a/_darcs/patches/20080715195513-84dde-454419c971015be385d9c4c35f7acbee419031f9.gz b/_darcs/patches/20080715195513-84dde-454419c971015be385d9c4c35f7acbee419031f9.gz deleted file mode 100644 index 8fe2b3192f..0000000000 Binary files a/_darcs/patches/20080715195513-84dde-454419c971015be385d9c4c35f7acbee419031f9.gz and /dev/null differ diff --git a/_darcs/patches/20080715213202-84dde-7a6a8fadfccc76bda12f3de01d17a1d95daf18b8.gz b/_darcs/patches/20080715213202-84dde-7a6a8fadfccc76bda12f3de01d17a1d95daf18b8.gz deleted file mode 100644 index 3a12435ccc..0000000000 Binary files a/_darcs/patches/20080715213202-84dde-7a6a8fadfccc76bda12f3de01d17a1d95daf18b8.gz and /dev/null differ diff --git a/_darcs/patches/20080715214249-84dde-ed5f9b38a93e9fcfd5c6772fb1c784696d3a435a.gz b/_darcs/patches/20080715214249-84dde-ed5f9b38a93e9fcfd5c6772fb1c784696d3a435a.gz deleted file mode 100644 index e091051c69..0000000000 Binary files a/_darcs/patches/20080715214249-84dde-ed5f9b38a93e9fcfd5c6772fb1c784696d3a435a.gz and /dev/null differ diff --git a/_darcs/patches/20080715214612-84dde-779ae3816488bdc1e0754fd807fde39c293db61e.gz b/_darcs/patches/20080715214612-84dde-779ae3816488bdc1e0754fd807fde39c293db61e.gz deleted file mode 100644 index b208738bc9..0000000000 Binary files a/_darcs/patches/20080715214612-84dde-779ae3816488bdc1e0754fd807fde39c293db61e.gz and /dev/null differ diff --git a/_darcs/patches/20080715214934-84dde-f0a20191b3e833d0660affc944a527e3d06d2f69.gz b/_darcs/patches/20080715214934-84dde-f0a20191b3e833d0660affc944a527e3d06d2f69.gz deleted file mode 100644 index bc6e6f06e3..0000000000 Binary files a/_darcs/patches/20080715214934-84dde-f0a20191b3e833d0660affc944a527e3d06d2f69.gz and /dev/null differ diff --git a/_darcs/patches/20080715215407-84dde-6e75d2a138152a2f5dd71fc2813096b4d66ba831.gz b/_darcs/patches/20080715215407-84dde-6e75d2a138152a2f5dd71fc2813096b4d66ba831.gz deleted file mode 100644 index 3307ad7321..0000000000 Binary files a/_darcs/patches/20080715215407-84dde-6e75d2a138152a2f5dd71fc2813096b4d66ba831.gz and /dev/null differ diff --git a/_darcs/patches/20080715215556-84dde-e41b099910bd11698b0148c6bd4f4d98cc883fb3.gz b/_darcs/patches/20080715215556-84dde-e41b099910bd11698b0148c6bd4f4d98cc883fb3.gz deleted file mode 100644 index 2ebb2a1030..0000000000 Binary files a/_darcs/patches/20080715215556-84dde-e41b099910bd11698b0148c6bd4f4d98cc883fb3.gz and /dev/null differ diff --git a/_darcs/patches/20080715220144-84dde-9b4c8338b8acf0c1268947cb4a9b8cbdb9751a7f.gz b/_darcs/patches/20080715220144-84dde-9b4c8338b8acf0c1268947cb4a9b8cbdb9751a7f.gz deleted file mode 100644 index 95ae940a53..0000000000 Binary files a/_darcs/patches/20080715220144-84dde-9b4c8338b8acf0c1268947cb4a9b8cbdb9751a7f.gz and /dev/null differ diff --git a/_darcs/patches/20080715221826-84dde-8a3692f95199818c11dbb0be159d07f1ab10cf6a.gz b/_darcs/patches/20080715221826-84dde-8a3692f95199818c11dbb0be159d07f1ab10cf6a.gz deleted file mode 100644 index e08730b448..0000000000 Binary files a/_darcs/patches/20080715221826-84dde-8a3692f95199818c11dbb0be159d07f1ab10cf6a.gz and /dev/null differ diff --git a/_darcs/patches/20080715221946-84dde-cd843d283da019b102073bc64732f4abb89a6456.gz b/_darcs/patches/20080715221946-84dde-cd843d283da019b102073bc64732f4abb89a6456.gz deleted file mode 100644 index cf8abfa40a..0000000000 Binary files a/_darcs/patches/20080715221946-84dde-cd843d283da019b102073bc64732f4abb89a6456.gz and /dev/null differ diff --git a/_darcs/patches/20080715222026-84dde-6ceebbb94455aec41907896ab65294ce3f79492f.gz b/_darcs/patches/20080715222026-84dde-6ceebbb94455aec41907896ab65294ce3f79492f.gz deleted file mode 100644 index 09c849c549..0000000000 Binary files a/_darcs/patches/20080715222026-84dde-6ceebbb94455aec41907896ab65294ce3f79492f.gz and /dev/null differ diff --git a/_darcs/patches/20080715222342-84dde-448f6f06f3a596aac279f88f8f14a47f584139e0.gz b/_darcs/patches/20080715222342-84dde-448f6f06f3a596aac279f88f8f14a47f584139e0.gz deleted file mode 100644 index a9ef94545b..0000000000 Binary files a/_darcs/patches/20080715222342-84dde-448f6f06f3a596aac279f88f8f14a47f584139e0.gz and /dev/null differ diff --git a/_darcs/patches/20080715222554-84dde-8aed1c8c6d30b4a3645fa2563a9368f8e3859fbf.gz b/_darcs/patches/20080715222554-84dde-8aed1c8c6d30b4a3645fa2563a9368f8e3859fbf.gz deleted file mode 100644 index 369399d6b8..0000000000 Binary files a/_darcs/patches/20080715222554-84dde-8aed1c8c6d30b4a3645fa2563a9368f8e3859fbf.gz and /dev/null differ diff --git a/_darcs/patches/20080715223149-84dde-7159a4db6c0e09c4e616ae45d25ec734a60d36ae.gz b/_darcs/patches/20080715223149-84dde-7159a4db6c0e09c4e616ae45d25ec734a60d36ae.gz deleted file mode 100644 index c20501fe7f..0000000000 Binary files a/_darcs/patches/20080715223149-84dde-7159a4db6c0e09c4e616ae45d25ec734a60d36ae.gz and /dev/null differ diff --git a/_darcs/patches/20080715234131-ca946-8c277e9f5980953b5037af40db38c0546222304d.gz b/_darcs/patches/20080715234131-ca946-8c277e9f5980953b5037af40db38c0546222304d.gz deleted file mode 100644 index 3df696cf04..0000000000 Binary files a/_darcs/patches/20080715234131-ca946-8c277e9f5980953b5037af40db38c0546222304d.gz and /dev/null differ diff --git a/_darcs/patches/20080716004414-d018c-dad819f8c5881271f494dd27a073baa05bb7e7bc.gz b/_darcs/patches/20080716004414-d018c-dad819f8c5881271f494dd27a073baa05bb7e7bc.gz deleted file mode 100644 index 5a85dc49a9..0000000000 Binary files a/_darcs/patches/20080716004414-d018c-dad819f8c5881271f494dd27a073baa05bb7e7bc.gz and /dev/null differ diff --git a/_darcs/patches/20080716025842-84dde-b4100ca8cec891d34d14c1bc66912cbd3762bdfb.gz b/_darcs/patches/20080716025842-84dde-b4100ca8cec891d34d14c1bc66912cbd3762bdfb.gz deleted file mode 100644 index 7f6af8b386..0000000000 Binary files a/_darcs/patches/20080716025842-84dde-b4100ca8cec891d34d14c1bc66912cbd3762bdfb.gz and /dev/null differ diff --git a/_darcs/patches/20080716030022-84dde-d24e4881e143163031a7b6c077d3eed77a58b579.gz b/_darcs/patches/20080716030022-84dde-d24e4881e143163031a7b6c077d3eed77a58b579.gz deleted file mode 100644 index b95ddba697..0000000000 Binary files a/_darcs/patches/20080716030022-84dde-d24e4881e143163031a7b6c077d3eed77a58b579.gz and /dev/null differ diff --git a/_darcs/patches/20080716030200-84dde-eaff2cdf00d9268594b5ecf7913a6746a516af62.gz b/_darcs/patches/20080716030200-84dde-eaff2cdf00d9268594b5ecf7913a6746a516af62.gz deleted file mode 100644 index 624edaf3a6..0000000000 Binary files a/_darcs/patches/20080716030200-84dde-eaff2cdf00d9268594b5ecf7913a6746a516af62.gz and /dev/null differ diff --git a/_darcs/patches/20080716031346-84dde-2aa160254fd80537ba89df2b39b4560c044d1bab.gz b/_darcs/patches/20080716031346-84dde-2aa160254fd80537ba89df2b39b4560c044d1bab.gz deleted file mode 100644 index e100a4f3d1..0000000000 Binary files a/_darcs/patches/20080716031346-84dde-2aa160254fd80537ba89df2b39b4560c044d1bab.gz and /dev/null differ diff --git a/_darcs/patches/20080716031459-84dde-ccb707bb9059bbc95eabb48cf32edf6dfe803108.gz b/_darcs/patches/20080716031459-84dde-ccb707bb9059bbc95eabb48cf32edf6dfe803108.gz deleted file mode 100644 index e0f6e37065..0000000000 Binary files a/_darcs/patches/20080716031459-84dde-ccb707bb9059bbc95eabb48cf32edf6dfe803108.gz and /dev/null differ diff --git a/_darcs/patches/20080716031544-84dde-a04b4057e5d7aa394ae061daac47f38089ff5343.gz b/_darcs/patches/20080716031544-84dde-a04b4057e5d7aa394ae061daac47f38089ff5343.gz deleted file mode 100644 index 273c45b975..0000000000 Binary files a/_darcs/patches/20080716031544-84dde-a04b4057e5d7aa394ae061daac47f38089ff5343.gz and /dev/null differ diff --git a/_darcs/patches/20080716031718-84dde-74ce45fdb3be03ae7974f76698d43ecf78730f23.gz b/_darcs/patches/20080716031718-84dde-74ce45fdb3be03ae7974f76698d43ecf78730f23.gz deleted file mode 100644 index 7cc3e53ac5..0000000000 Binary files a/_darcs/patches/20080716031718-84dde-74ce45fdb3be03ae7974f76698d43ecf78730f23.gz and /dev/null differ diff --git a/_darcs/patches/20080716032045-982e4-a0b5d37ecfa84796f1681dda54110094ad1424c6.gz b/_darcs/patches/20080716032045-982e4-a0b5d37ecfa84796f1681dda54110094ad1424c6.gz deleted file mode 100644 index 518b04123f..0000000000 Binary files a/_darcs/patches/20080716032045-982e4-a0b5d37ecfa84796f1681dda54110094ad1424c6.gz and /dev/null differ diff --git a/_darcs/patches/20080716053532-84dde-0a53cc573ee9a0c20ff88e011d83f15e60f7c825.gz b/_darcs/patches/20080716053532-84dde-0a53cc573ee9a0c20ff88e011d83f15e60f7c825.gz deleted file mode 100644 index f8026f6d1b..0000000000 Binary files a/_darcs/patches/20080716053532-84dde-0a53cc573ee9a0c20ff88e011d83f15e60f7c825.gz and /dev/null differ diff --git a/_darcs/patches/20080716054932-84dde-4c7c65cb1b5fb1d3b1b15409e092b40285d6cfd0.gz b/_darcs/patches/20080716054932-84dde-4c7c65cb1b5fb1d3b1b15409e092b40285d6cfd0.gz deleted file mode 100644 index 6c64b8d78f..0000000000 Binary files a/_darcs/patches/20080716054932-84dde-4c7c65cb1b5fb1d3b1b15409e092b40285d6cfd0.gz and /dev/null differ diff --git a/_darcs/patches/20080716055326-5a68a-368860d9a9dfd071e7855c3d05a24b7004f59912.gz b/_darcs/patches/20080716055326-5a68a-368860d9a9dfd071e7855c3d05a24b7004f59912.gz deleted file mode 100644 index 220e0ed35a..0000000000 Binary files a/_darcs/patches/20080716055326-5a68a-368860d9a9dfd071e7855c3d05a24b7004f59912.gz and /dev/null differ diff --git a/_darcs/patches/20080716060922-ca946-6e973c6fb40ab8c8c930b6dfd916e20f40545471.gz b/_darcs/patches/20080716060922-ca946-6e973c6fb40ab8c8c930b6dfd916e20f40545471.gz deleted file mode 100644 index a416d2b5d5..0000000000 Binary files a/_darcs/patches/20080716060922-ca946-6e973c6fb40ab8c8c930b6dfd916e20f40545471.gz and /dev/null differ diff --git a/_darcs/patches/20080716061933-84dde-7bb5f28c9263782bc0535cd8303a9fcad3820134.gz b/_darcs/patches/20080716061933-84dde-7bb5f28c9263782bc0535cd8303a9fcad3820134.gz deleted file mode 100644 index aa7c132e1c..0000000000 Binary files a/_darcs/patches/20080716061933-84dde-7bb5f28c9263782bc0535cd8303a9fcad3820134.gz and /dev/null differ diff --git a/_darcs/patches/20080716064736-5a68a-b57c978702037f380e31d2d8825109821a01cef5.gz b/_darcs/patches/20080716064736-5a68a-b57c978702037f380e31d2d8825109821a01cef5.gz deleted file mode 100644 index 488b3d8593..0000000000 Binary files a/_darcs/patches/20080716064736-5a68a-b57c978702037f380e31d2d8825109821a01cef5.gz and /dev/null differ diff --git a/_darcs/patches/20080716072124-ca946-6714d13d6801eddf84800b884721aac37852993d.gz b/_darcs/patches/20080716072124-ca946-6714d13d6801eddf84800b884721aac37852993d.gz deleted file mode 100644 index a16a03146f..0000000000 Binary files a/_darcs/patches/20080716072124-ca946-6714d13d6801eddf84800b884721aac37852993d.gz and /dev/null differ diff --git a/_darcs/patches/20080716134408-84dde-17022943bba55b6108fb015b0166e10f2529d632.gz b/_darcs/patches/20080716134408-84dde-17022943bba55b6108fb015b0166e10f2529d632.gz deleted file mode 100644 index 4b68794c0e..0000000000 Binary files a/_darcs/patches/20080716134408-84dde-17022943bba55b6108fb015b0166e10f2529d632.gz and /dev/null differ diff --git a/_darcs/patches/20080716152009-84dde-8d077ab92d1252c252ab722ba887a57b177c8f65.gz b/_darcs/patches/20080716152009-84dde-8d077ab92d1252c252ab722ba887a57b177c8f65.gz deleted file mode 100644 index 1769081bf7..0000000000 Binary files a/_darcs/patches/20080716152009-84dde-8d077ab92d1252c252ab722ba887a57b177c8f65.gz and /dev/null differ diff --git a/_darcs/patches/20080716152511-84dde-6f73d947d11083e7235756fde635e145f02e2483.gz b/_darcs/patches/20080716152511-84dde-6f73d947d11083e7235756fde635e145f02e2483.gz deleted file mode 100644 index c5c87d1e80..0000000000 Binary files a/_darcs/patches/20080716152511-84dde-6f73d947d11083e7235756fde635e145f02e2483.gz and /dev/null differ diff --git a/_darcs/patches/20080716152906-84dde-6b28a9c29901274ecef255f8b34839445d6e3d7b.gz b/_darcs/patches/20080716152906-84dde-6b28a9c29901274ecef255f8b34839445d6e3d7b.gz deleted file mode 100644 index 621f29b030..0000000000 Binary files a/_darcs/patches/20080716152906-84dde-6b28a9c29901274ecef255f8b34839445d6e3d7b.gz and /dev/null differ diff --git a/_darcs/patches/20080716163339-84dde-b6d10e042e3168afa07eb6738dae9714b402dbe2.gz b/_darcs/patches/20080716163339-84dde-b6d10e042e3168afa07eb6738dae9714b402dbe2.gz deleted file mode 100644 index 71e46792d1..0000000000 Binary files a/_darcs/patches/20080716163339-84dde-b6d10e042e3168afa07eb6738dae9714b402dbe2.gz and /dev/null differ diff --git a/_darcs/patches/20080716183052-68ac8-ad94d5e0195ea861cd65b9b3abf8b56824906794.gz b/_darcs/patches/20080716183052-68ac8-ad94d5e0195ea861cd65b9b3abf8b56824906794.gz deleted file mode 100644 index 7e29654def..0000000000 Binary files a/_darcs/patches/20080716183052-68ac8-ad94d5e0195ea861cd65b9b3abf8b56824906794.gz and /dev/null differ diff --git a/_darcs/patches/20080716191847-ca946-9a75dd3aa07974408b269b31d1de3e49c5ae2a72.gz b/_darcs/patches/20080716191847-ca946-9a75dd3aa07974408b269b31d1de3e49c5ae2a72.gz deleted file mode 100644 index 7bdec58df4..0000000000 Binary files a/_darcs/patches/20080716191847-ca946-9a75dd3aa07974408b269b31d1de3e49c5ae2a72.gz and /dev/null differ diff --git a/_darcs/patches/20080716205218-ca946-98e53e29ed364ea4254ed90303c04b93511877f9.gz b/_darcs/patches/20080716205218-ca946-98e53e29ed364ea4254ed90303c04b93511877f9.gz deleted file mode 100644 index 981f9aae89..0000000000 Binary files a/_darcs/patches/20080716205218-ca946-98e53e29ed364ea4254ed90303c04b93511877f9.gz and /dev/null differ diff --git a/_darcs/patches/20080716205359-84dde-590916f8812c7c03a2b81b3e7aeb021194ac0f25.gz b/_darcs/patches/20080716205359-84dde-590916f8812c7c03a2b81b3e7aeb021194ac0f25.gz deleted file mode 100644 index 37fff58cb6..0000000000 Binary files a/_darcs/patches/20080716205359-84dde-590916f8812c7c03a2b81b3e7aeb021194ac0f25.gz and /dev/null differ diff --git a/_darcs/patches/20080716205541-84dde-1c98befb2d53613fe1b161d479b8f91adbfb7f6c.gz b/_darcs/patches/20080716205541-84dde-1c98befb2d53613fe1b161d479b8f91adbfb7f6c.gz deleted file mode 100644 index ffe05fb56e..0000000000 Binary files a/_darcs/patches/20080716205541-84dde-1c98befb2d53613fe1b161d479b8f91adbfb7f6c.gz and /dev/null differ diff --git a/_darcs/patches/20080716205947-84dde-fa57c8fc140cc479e14b50479df13447abaef31b.gz b/_darcs/patches/20080716205947-84dde-fa57c8fc140cc479e14b50479df13447abaef31b.gz deleted file mode 100644 index 4377c95fc2..0000000000 Binary files a/_darcs/patches/20080716205947-84dde-fa57c8fc140cc479e14b50479df13447abaef31b.gz and /dev/null differ diff --git a/_darcs/patches/20080716210949-84dde-b12d95acdf6f15887fe83fea8f968c972b862be5.gz b/_darcs/patches/20080716210949-84dde-b12d95acdf6f15887fe83fea8f968c972b862be5.gz deleted file mode 100644 index 139f101c05..0000000000 Binary files a/_darcs/patches/20080716210949-84dde-b12d95acdf6f15887fe83fea8f968c972b862be5.gz and /dev/null differ diff --git a/_darcs/patches/20080716220223-ca946-e3eed117cded61eb9c2d2805fd07758f883fb85b.gz b/_darcs/patches/20080716220223-ca946-e3eed117cded61eb9c2d2805fd07758f883fb85b.gz deleted file mode 100644 index e122e39379..0000000000 Binary files a/_darcs/patches/20080716220223-ca946-e3eed117cded61eb9c2d2805fd07758f883fb85b.gz and /dev/null differ diff --git a/_darcs/patches/20080716230047-ca946-b9ff940ab05b29ed88b209f5ca9b446fbe25eab0.gz b/_darcs/patches/20080716230047-ca946-b9ff940ab05b29ed88b209f5ca9b446fbe25eab0.gz deleted file mode 100644 index 943dfd188f..0000000000 Binary files a/_darcs/patches/20080716230047-ca946-b9ff940ab05b29ed88b209f5ca9b446fbe25eab0.gz and /dev/null differ diff --git a/_darcs/patches/20080717054411-ca946-e839882ebec3f6d6a12a3f5ecdc1cc403e8afe51.gz b/_darcs/patches/20080717054411-ca946-e839882ebec3f6d6a12a3f5ecdc1cc403e8afe51.gz deleted file mode 100644 index 91d349b666..0000000000 Binary files a/_darcs/patches/20080717054411-ca946-e839882ebec3f6d6a12a3f5ecdc1cc403e8afe51.gz and /dev/null differ diff --git a/_darcs/patches/20080717124215-84dde-83c2c5ec54a50bb5aa7a5adc23321dadc48083ad.gz b/_darcs/patches/20080717124215-84dde-83c2c5ec54a50bb5aa7a5adc23321dadc48083ad.gz deleted file mode 100644 index df3087851d..0000000000 Binary files a/_darcs/patches/20080717124215-84dde-83c2c5ec54a50bb5aa7a5adc23321dadc48083ad.gz and /dev/null differ diff --git a/_darcs/patches/20080717124719-84dde-192dd0799905c6fde3bf503c08951d4a308e1e12.gz b/_darcs/patches/20080717124719-84dde-192dd0799905c6fde3bf503c08951d4a308e1e12.gz deleted file mode 100644 index 568c9f9267..0000000000 Binary files a/_darcs/patches/20080717124719-84dde-192dd0799905c6fde3bf503c08951d4a308e1e12.gz and /dev/null differ diff --git a/_darcs/patches/20080717132452-84dde-47017a07fa6a141062d50e7cd1b4473c20f4d25f.gz b/_darcs/patches/20080717132452-84dde-47017a07fa6a141062d50e7cd1b4473c20f4d25f.gz deleted file mode 100644 index 8005a8ae91..0000000000 Binary files a/_darcs/patches/20080717132452-84dde-47017a07fa6a141062d50e7cd1b4473c20f4d25f.gz and /dev/null differ diff --git a/_darcs/patches/20080717132533-84dde-4ada5d4a103d92b9767726e723b26246205b9cbd.gz b/_darcs/patches/20080717132533-84dde-4ada5d4a103d92b9767726e723b26246205b9cbd.gz deleted file mode 100644 index 43365645cf..0000000000 Binary files a/_darcs/patches/20080717132533-84dde-4ada5d4a103d92b9767726e723b26246205b9cbd.gz and /dev/null differ diff --git a/_darcs/patches/20080717134331-84dde-b63c9b7e318d74e2cfea14cc962ec2d519f20d43.gz b/_darcs/patches/20080717134331-84dde-b63c9b7e318d74e2cfea14cc962ec2d519f20d43.gz deleted file mode 100644 index a62365849b..0000000000 Binary files a/_darcs/patches/20080717134331-84dde-b63c9b7e318d74e2cfea14cc962ec2d519f20d43.gz and /dev/null differ diff --git a/_darcs/patches/20080717153657-84dde-bbd0179305b8080911be123ffec26cee03bc1153.gz b/_darcs/patches/20080717153657-84dde-bbd0179305b8080911be123ffec26cee03bc1153.gz deleted file mode 100644 index 1c370a34fe..0000000000 Binary files a/_darcs/patches/20080717153657-84dde-bbd0179305b8080911be123ffec26cee03bc1153.gz and /dev/null differ diff --git a/_darcs/patches/20080717155212-84dde-15d39c28e6b502767c1deaf838f6a65136baeda9.gz b/_darcs/patches/20080717155212-84dde-15d39c28e6b502767c1deaf838f6a65136baeda9.gz deleted file mode 100644 index ac6f2fe90b..0000000000 Binary files a/_darcs/patches/20080717155212-84dde-15d39c28e6b502767c1deaf838f6a65136baeda9.gz and /dev/null differ diff --git a/_darcs/patches/20080717155438-84dde-7fbe7230ab50e076216d4def65b87a38d7e4edb3.gz b/_darcs/patches/20080717155438-84dde-7fbe7230ab50e076216d4def65b87a38d7e4edb3.gz deleted file mode 100644 index 52c7dded55..0000000000 Binary files a/_darcs/patches/20080717155438-84dde-7fbe7230ab50e076216d4def65b87a38d7e4edb3.gz and /dev/null differ diff --git a/_darcs/patches/20080717160257-84dde-8c4f78582ef0d590102c078a045826951ffcbb28.gz b/_darcs/patches/20080717160257-84dde-8c4f78582ef0d590102c078a045826951ffcbb28.gz deleted file mode 100644 index f80d8374e6..0000000000 Binary files a/_darcs/patches/20080717160257-84dde-8c4f78582ef0d590102c078a045826951ffcbb28.gz and /dev/null differ diff --git a/_darcs/patches/20080717160531-84dde-1a44025c9cf5b2da1f62714cc82ccdb490a8bb63.gz b/_darcs/patches/20080717160531-84dde-1a44025c9cf5b2da1f62714cc82ccdb490a8bb63.gz deleted file mode 100644 index 7b3e353dee..0000000000 Binary files a/_darcs/patches/20080717160531-84dde-1a44025c9cf5b2da1f62714cc82ccdb490a8bb63.gz and /dev/null differ diff --git a/_darcs/patches/20080717163211-84dde-6fceee14b023a44bd44311528c8a74a9ca3917e8.gz b/_darcs/patches/20080717163211-84dde-6fceee14b023a44bd44311528c8a74a9ca3917e8.gz deleted file mode 100644 index b0f567ad85..0000000000 Binary files a/_darcs/patches/20080717163211-84dde-6fceee14b023a44bd44311528c8a74a9ca3917e8.gz and /dev/null differ diff --git a/_darcs/patches/20080717163613-84dde-2684415a03d1a2754e148e4921ce39ad075bbc5b.gz b/_darcs/patches/20080717163613-84dde-2684415a03d1a2754e148e4921ce39ad075bbc5b.gz deleted file mode 100644 index eec7d088db..0000000000 Binary files a/_darcs/patches/20080717163613-84dde-2684415a03d1a2754e148e4921ce39ad075bbc5b.gz and /dev/null differ diff --git a/_darcs/patches/20080717164042-84dde-191bc47dc302911e4ceae0d3b1e74116bb95bcba.gz b/_darcs/patches/20080717164042-84dde-191bc47dc302911e4ceae0d3b1e74116bb95bcba.gz deleted file mode 100644 index bfc76e0c72..0000000000 Binary files a/_darcs/patches/20080717164042-84dde-191bc47dc302911e4ceae0d3b1e74116bb95bcba.gz and /dev/null differ diff --git a/_darcs/patches/20080717210519-84dde-4a2e4caa23d793e74208dcf5c21221e4166366f2.gz b/_darcs/patches/20080717210519-84dde-4a2e4caa23d793e74208dcf5c21221e4166366f2.gz deleted file mode 100644 index 5851ea6153..0000000000 Binary files a/_darcs/patches/20080717210519-84dde-4a2e4caa23d793e74208dcf5c21221e4166366f2.gz and /dev/null differ diff --git a/_darcs/patches/20080717211942-84dde-3e8fcffc2c4def3088389ed5c1720919458d6f54.gz b/_darcs/patches/20080717211942-84dde-3e8fcffc2c4def3088389ed5c1720919458d6f54.gz deleted file mode 100644 index 9cbd1815c4..0000000000 Binary files a/_darcs/patches/20080717211942-84dde-3e8fcffc2c4def3088389ed5c1720919458d6f54.gz and /dev/null differ diff --git a/_darcs/patches/20080717213214-84dde-9e7226c5b33d704398e250ad37653b30effaa069.gz b/_darcs/patches/20080717213214-84dde-9e7226c5b33d704398e250ad37653b30effaa069.gz deleted file mode 100644 index f98ceda7c0..0000000000 Binary files a/_darcs/patches/20080717213214-84dde-9e7226c5b33d704398e250ad37653b30effaa069.gz and /dev/null differ diff --git a/_darcs/patches/20080717222845-ca946-f2644317a144157aaba7a38d4effb216a9c5f650.gz b/_darcs/patches/20080717222845-ca946-f2644317a144157aaba7a38d4effb216a9c5f650.gz deleted file mode 100644 index 82c9947aff..0000000000 Binary files a/_darcs/patches/20080717222845-ca946-f2644317a144157aaba7a38d4effb216a9c5f650.gz and /dev/null differ diff --git a/_darcs/patches/20080717223521-ca946-cd043e9430956dde56907181896a16133333d905.gz b/_darcs/patches/20080717223521-ca946-cd043e9430956dde56907181896a16133333d905.gz deleted file mode 100644 index e6fee64a3a..0000000000 Binary files a/_darcs/patches/20080717223521-ca946-cd043e9430956dde56907181896a16133333d905.gz and /dev/null differ diff --git a/_darcs/patches/20080717235306-533db-499c63251966a404081c8b0aa1c92a18c28cc27d.gz b/_darcs/patches/20080717235306-533db-499c63251966a404081c8b0aa1c92a18c28cc27d.gz deleted file mode 100644 index e3b6b4e4a0..0000000000 Binary files a/_darcs/patches/20080717235306-533db-499c63251966a404081c8b0aa1c92a18c28cc27d.gz and /dev/null differ diff --git a/_darcs/patches/20080718002131-ca946-d34d4554dadbdfc1cff6648e989a73d4b3b24271.gz b/_darcs/patches/20080718002131-ca946-d34d4554dadbdfc1cff6648e989a73d4b3b24271.gz deleted file mode 100644 index 8bfe728fae..0000000000 Binary files a/_darcs/patches/20080718002131-ca946-d34d4554dadbdfc1cff6648e989a73d4b3b24271.gz and /dev/null differ diff --git a/_darcs/patches/20080718002324-ca946-6b30ea6e3941b0f1278712edc02d9eeef00a3cc2.gz b/_darcs/patches/20080718002324-ca946-6b30ea6e3941b0f1278712edc02d9eeef00a3cc2.gz deleted file mode 100644 index a201c5a732..0000000000 Binary files a/_darcs/patches/20080718002324-ca946-6b30ea6e3941b0f1278712edc02d9eeef00a3cc2.gz and /dev/null differ diff --git a/_darcs/patches/20080718013444-84dde-7076bec8ccdf34ef5d31efd7bbbbfd29a1f3dab3.gz b/_darcs/patches/20080718013444-84dde-7076bec8ccdf34ef5d31efd7bbbbfd29a1f3dab3.gz deleted file mode 100644 index 77076ec282..0000000000 Binary files a/_darcs/patches/20080718013444-84dde-7076bec8ccdf34ef5d31efd7bbbbfd29a1f3dab3.gz and /dev/null differ diff --git a/_darcs/patches/20080718023334-ca946-5d158ade124318f7f846d1f8e0f35ccf1a234027.gz b/_darcs/patches/20080718023334-ca946-5d158ade124318f7f846d1f8e0f35ccf1a234027.gz deleted file mode 100644 index 8e2af09df4..0000000000 Binary files a/_darcs/patches/20080718023334-ca946-5d158ade124318f7f846d1f8e0f35ccf1a234027.gz and /dev/null differ diff --git a/_darcs/patches/20080718025554-ca946-1e4b5aa5570c15f4e71df58c41d16f6ece1e359b.gz b/_darcs/patches/20080718025554-ca946-1e4b5aa5570c15f4e71df58c41d16f6ece1e359b.gz deleted file mode 100644 index bb89eb797d..0000000000 Binary files a/_darcs/patches/20080718025554-ca946-1e4b5aa5570c15f4e71df58c41d16f6ece1e359b.gz and /dev/null differ diff --git a/_darcs/patches/20080718040332-ca946-0c8da4f5e98355ccbb1ee929693fa74bff3c2481.gz b/_darcs/patches/20080718040332-ca946-0c8da4f5e98355ccbb1ee929693fa74bff3c2481.gz deleted file mode 100644 index 751b72cd50..0000000000 Binary files a/_darcs/patches/20080718040332-ca946-0c8da4f5e98355ccbb1ee929693fa74bff3c2481.gz and /dev/null differ diff --git a/_darcs/patches/20080718041231-84dde-5953d417b76ae538fd501db11af9ff4a32bfbc9f.gz b/_darcs/patches/20080718041231-84dde-5953d417b76ae538fd501db11af9ff4a32bfbc9f.gz deleted file mode 100644 index a13c976926..0000000000 Binary files a/_darcs/patches/20080718041231-84dde-5953d417b76ae538fd501db11af9ff4a32bfbc9f.gz and /dev/null differ diff --git a/_darcs/patches/20080718041323-84dde-2cc93bd2ced792797db634c4c4cd2a72a6ae61be.gz b/_darcs/patches/20080718041323-84dde-2cc93bd2ced792797db634c4c4cd2a72a6ae61be.gz deleted file mode 100644 index 63b55b7ca7..0000000000 Binary files a/_darcs/patches/20080718041323-84dde-2cc93bd2ced792797db634c4c4cd2a72a6ae61be.gz and /dev/null differ diff --git a/_darcs/patches/20080718041549-84dde-fbf9fe830b5f4be5cce5124522f923b83de3a582.gz b/_darcs/patches/20080718041549-84dde-fbf9fe830b5f4be5cce5124522f923b83de3a582.gz deleted file mode 100644 index 0db392fbde..0000000000 Binary files a/_darcs/patches/20080718041549-84dde-fbf9fe830b5f4be5cce5124522f923b83de3a582.gz and /dev/null differ diff --git a/_darcs/patches/20080718041633-84dde-4fb8e5738b6594334e42d21c4ed104039da62abb.gz b/_darcs/patches/20080718041633-84dde-4fb8e5738b6594334e42d21c4ed104039da62abb.gz deleted file mode 100644 index 5ec0d79afc..0000000000 Binary files a/_darcs/patches/20080718041633-84dde-4fb8e5738b6594334e42d21c4ed104039da62abb.gz and /dev/null differ diff --git a/_darcs/patches/20080718042030-84dde-78e056f1e47335556d353cdf2940651f59291efd.gz b/_darcs/patches/20080718042030-84dde-78e056f1e47335556d353cdf2940651f59291efd.gz deleted file mode 100644 index fc0e6e9fb7..0000000000 Binary files a/_darcs/patches/20080718042030-84dde-78e056f1e47335556d353cdf2940651f59291efd.gz and /dev/null differ diff --git a/_darcs/patches/20080718042352-84dde-6326cd8c68b73ccf801b93314e3f5352ff744544.gz b/_darcs/patches/20080718042352-84dde-6326cd8c68b73ccf801b93314e3f5352ff744544.gz deleted file mode 100644 index a431333d3a..0000000000 Binary files a/_darcs/patches/20080718042352-84dde-6326cd8c68b73ccf801b93314e3f5352ff744544.gz and /dev/null differ diff --git a/_darcs/patches/20080718042511-84dde-577d462b1441a30d1d88cc8e26dde32bde79c9fd.gz b/_darcs/patches/20080718042511-84dde-577d462b1441a30d1d88cc8e26dde32bde79c9fd.gz deleted file mode 100644 index ace17060f5..0000000000 Binary files a/_darcs/patches/20080718042511-84dde-577d462b1441a30d1d88cc8e26dde32bde79c9fd.gz and /dev/null differ diff --git a/_darcs/patches/20080718043456-84dde-ffe825e8021e0f803fbbecacdc93d26309853daa.gz b/_darcs/patches/20080718043456-84dde-ffe825e8021e0f803fbbecacdc93d26309853daa.gz deleted file mode 100644 index add96f2c55..0000000000 Binary files a/_darcs/patches/20080718043456-84dde-ffe825e8021e0f803fbbecacdc93d26309853daa.gz and /dev/null differ diff --git a/_darcs/patches/20080718043735-84dde-8c74ccaf2560716209b8518e77e6a0f357d881af.gz b/_darcs/patches/20080718043735-84dde-8c74ccaf2560716209b8518e77e6a0f357d881af.gz deleted file mode 100644 index d91aacbb93..0000000000 Binary files a/_darcs/patches/20080718043735-84dde-8c74ccaf2560716209b8518e77e6a0f357d881af.gz and /dev/null differ diff --git a/_darcs/patches/20080718044905-84dde-2d447d7ec4e6d6a56075c8238f357ecb48fd295c.gz b/_darcs/patches/20080718044905-84dde-2d447d7ec4e6d6a56075c8238f357ecb48fd295c.gz deleted file mode 100644 index d8f2cc2e42..0000000000 Binary files a/_darcs/patches/20080718044905-84dde-2d447d7ec4e6d6a56075c8238f357ecb48fd295c.gz and /dev/null differ diff --git a/_darcs/patches/20080718045150-84dde-8fda088ea35c20d23ae86a9c61189545754403b2.gz b/_darcs/patches/20080718045150-84dde-8fda088ea35c20d23ae86a9c61189545754403b2.gz deleted file mode 100644 index fc29c8713f..0000000000 Binary files a/_darcs/patches/20080718045150-84dde-8fda088ea35c20d23ae86a9c61189545754403b2.gz and /dev/null differ diff --git a/_darcs/patches/20080718045204-84dde-1fb4fe473c9dd64867920ec8e5a1b0c15661e9e6.gz b/_darcs/patches/20080718045204-84dde-1fb4fe473c9dd64867920ec8e5a1b0c15661e9e6.gz deleted file mode 100644 index 1f39edb15d..0000000000 Binary files a/_darcs/patches/20080718045204-84dde-1fb4fe473c9dd64867920ec8e5a1b0c15661e9e6.gz and /dev/null differ diff --git a/_darcs/patches/20080718050845-84dde-ab587c6b35c0366f8bd8f4dc27fe868bc69703be.gz b/_darcs/patches/20080718050845-84dde-ab587c6b35c0366f8bd8f4dc27fe868bc69703be.gz deleted file mode 100644 index 68c2ff682e..0000000000 Binary files a/_darcs/patches/20080718050845-84dde-ab587c6b35c0366f8bd8f4dc27fe868bc69703be.gz and /dev/null differ diff --git a/_darcs/patches/20080718051318-84dde-6776fb3ce4bb69b7abc377532857cd916ac56a29.gz b/_darcs/patches/20080718051318-84dde-6776fb3ce4bb69b7abc377532857cd916ac56a29.gz deleted file mode 100644 index 93453dd0d9..0000000000 Binary files a/_darcs/patches/20080718051318-84dde-6776fb3ce4bb69b7abc377532857cd916ac56a29.gz and /dev/null differ diff --git a/_darcs/patches/20080718051404-84dde-fc6a1b93f8e1f4faf6dd15d79372709f6493776e.gz b/_darcs/patches/20080718051404-84dde-fc6a1b93f8e1f4faf6dd15d79372709f6493776e.gz deleted file mode 100644 index f3fdd7510f..0000000000 Binary files a/_darcs/patches/20080718051404-84dde-fc6a1b93f8e1f4faf6dd15d79372709f6493776e.gz and /dev/null differ diff --git a/_darcs/patches/20080718051841-84dde-32da4237ac89bc6dd953a1e73cab63e8aa718746.gz b/_darcs/patches/20080718051841-84dde-32da4237ac89bc6dd953a1e73cab63e8aa718746.gz deleted file mode 100644 index 96583470d2..0000000000 Binary files a/_darcs/patches/20080718051841-84dde-32da4237ac89bc6dd953a1e73cab63e8aa718746.gz and /dev/null differ diff --git a/_darcs/patches/20080718052557-84dde-65d7411377b866a66474584e90dc08ea3eb432b0.gz b/_darcs/patches/20080718052557-84dde-65d7411377b866a66474584e90dc08ea3eb432b0.gz deleted file mode 100644 index 633a9f0360..0000000000 Binary files a/_darcs/patches/20080718052557-84dde-65d7411377b866a66474584e90dc08ea3eb432b0.gz and /dev/null differ diff --git a/_darcs/patches/20080718063130-84dde-01cc0d9d9cf92e5ad9f5c079c771e2ea64c8d5f2.gz b/_darcs/patches/20080718063130-84dde-01cc0d9d9cf92e5ad9f5c079c771e2ea64c8d5f2.gz deleted file mode 100644 index e3ad5c8138..0000000000 Binary files a/_darcs/patches/20080718063130-84dde-01cc0d9d9cf92e5ad9f5c079c771e2ea64c8d5f2.gz and /dev/null differ diff --git a/_darcs/patches/20080718070252-84dde-27b01cd01b309ba079c38e9bd09a97b1626d479b.gz b/_darcs/patches/20080718070252-84dde-27b01cd01b309ba079c38e9bd09a97b1626d479b.gz deleted file mode 100644 index 508a6615cb..0000000000 Binary files a/_darcs/patches/20080718070252-84dde-27b01cd01b309ba079c38e9bd09a97b1626d479b.gz and /dev/null differ diff --git a/_darcs/patches/20080718164120-84dde-b5fa39b14b26d4d6ed0a0452692744b1c3cbf64b.gz b/_darcs/patches/20080718164120-84dde-b5fa39b14b26d4d6ed0a0452692744b1c3cbf64b.gz deleted file mode 100644 index 93b9221ab7..0000000000 Binary files a/_darcs/patches/20080718164120-84dde-b5fa39b14b26d4d6ed0a0452692744b1c3cbf64b.gz and /dev/null differ diff --git a/_darcs/patches/20080718164317-34904-693c42830fa5682f49ac2213b31153172815b9a5.gz b/_darcs/patches/20080718164317-34904-693c42830fa5682f49ac2213b31153172815b9a5.gz deleted file mode 100644 index d6f22afb32..0000000000 Binary files a/_darcs/patches/20080718164317-34904-693c42830fa5682f49ac2213b31153172815b9a5.gz and /dev/null differ diff --git a/_darcs/patches/20080718164332-34904-c590580bef21d90072f988d2597154b954823299.gz b/_darcs/patches/20080718164332-34904-c590580bef21d90072f988d2597154b954823299.gz deleted file mode 100644 index 1c67536043..0000000000 Binary files a/_darcs/patches/20080718164332-34904-c590580bef21d90072f988d2597154b954823299.gz and /dev/null differ diff --git a/_darcs/patches/20080718180951-84dde-322895309c13697b30832bd463f55a49f5e9d964.gz b/_darcs/patches/20080718180951-84dde-322895309c13697b30832bd463f55a49f5e9d964.gz deleted file mode 100644 index 7088e0734c..0000000000 Binary files a/_darcs/patches/20080718180951-84dde-322895309c13697b30832bd463f55a49f5e9d964.gz and /dev/null differ diff --git a/_darcs/patches/20080718181612-84dde-4934733cdeeb331e2c71e14626dc6f6e51097824.gz b/_darcs/patches/20080718181612-84dde-4934733cdeeb331e2c71e14626dc6f6e51097824.gz deleted file mode 100644 index dcf67127d2..0000000000 Binary files a/_darcs/patches/20080718181612-84dde-4934733cdeeb331e2c71e14626dc6f6e51097824.gz and /dev/null differ diff --git a/_darcs/patches/20080718183534-84dde-a8cdb4cbcb3eb67152eb74179e3b00061e2287cf.gz b/_darcs/patches/20080718183534-84dde-a8cdb4cbcb3eb67152eb74179e3b00061e2287cf.gz deleted file mode 100644 index 6b99c73574..0000000000 Binary files a/_darcs/patches/20080718183534-84dde-a8cdb4cbcb3eb67152eb74179e3b00061e2287cf.gz and /dev/null differ diff --git a/_darcs/patches/20080718185027-84dde-f349b9772ec091d8b09bc09405a9ff5660902a2c.gz b/_darcs/patches/20080718185027-84dde-f349b9772ec091d8b09bc09405a9ff5660902a2c.gz deleted file mode 100644 index 509b9afcf8..0000000000 Binary files a/_darcs/patches/20080718185027-84dde-f349b9772ec091d8b09bc09405a9ff5660902a2c.gz and /dev/null differ diff --git a/_darcs/patches/20080718185053-ca946-457b1ce5261abeb067bbbaba43b707ad4751aeef.gz b/_darcs/patches/20080718185053-ca946-457b1ce5261abeb067bbbaba43b707ad4751aeef.gz deleted file mode 100644 index 4cd7922658..0000000000 Binary files a/_darcs/patches/20080718185053-ca946-457b1ce5261abeb067bbbaba43b707ad4751aeef.gz and /dev/null differ diff --git a/_darcs/patches/20080718190835-84dde-1ce20cb3ac604f0e9fa9e4ed86118bca7bec3a06.gz b/_darcs/patches/20080718190835-84dde-1ce20cb3ac604f0e9fa9e4ed86118bca7bec3a06.gz deleted file mode 100644 index 06cba9891d..0000000000 Binary files a/_darcs/patches/20080718190835-84dde-1ce20cb3ac604f0e9fa9e4ed86118bca7bec3a06.gz and /dev/null differ diff --git a/_darcs/patches/20080718191019-84dde-8b16ec097fedfb3a4366e4c4317248452b368bfc.gz b/_darcs/patches/20080718191019-84dde-8b16ec097fedfb3a4366e4c4317248452b368bfc.gz deleted file mode 100644 index 3353c45950..0000000000 Binary files a/_darcs/patches/20080718191019-84dde-8b16ec097fedfb3a4366e4c4317248452b368bfc.gz and /dev/null differ diff --git a/_darcs/patches/20080718202052-84dde-cf788df7bcf76f971229d18041823a9483a164cc.gz b/_darcs/patches/20080718202052-84dde-cf788df7bcf76f971229d18041823a9483a164cc.gz deleted file mode 100644 index cd280d9bbe..0000000000 Binary files a/_darcs/patches/20080718202052-84dde-cf788df7bcf76f971229d18041823a9483a164cc.gz and /dev/null differ diff --git a/_darcs/patches/20080718202124-84dde-42b9c1d73c51c9bb98cb3896bb03716067762c48.gz b/_darcs/patches/20080718202124-84dde-42b9c1d73c51c9bb98cb3896bb03716067762c48.gz deleted file mode 100644 index 2873cffc82..0000000000 Binary files a/_darcs/patches/20080718202124-84dde-42b9c1d73c51c9bb98cb3896bb03716067762c48.gz and /dev/null differ diff --git a/_darcs/patches/20080718202702-84dde-7a7e8223323c93cfae74f497cef1cf55e8a75c47.gz b/_darcs/patches/20080718202702-84dde-7a7e8223323c93cfae74f497cef1cf55e8a75c47.gz deleted file mode 100644 index ac4e2681f6..0000000000 Binary files a/_darcs/patches/20080718202702-84dde-7a7e8223323c93cfae74f497cef1cf55e8a75c47.gz and /dev/null differ diff --git a/_darcs/patches/20080719003417-982e4-7004f8a4dfb447f941457c30b0b2289eee5582e6.gz b/_darcs/patches/20080719003417-982e4-7004f8a4dfb447f941457c30b0b2289eee5582e6.gz deleted file mode 100644 index a20a597ba1..0000000000 Binary files a/_darcs/patches/20080719003417-982e4-7004f8a4dfb447f941457c30b0b2289eee5582e6.gz and /dev/null differ diff --git a/_darcs/patches/20080719140906-84dde-9fcac26ee544ad53091808256f70b1745ac27a70.gz b/_darcs/patches/20080719140906-84dde-9fcac26ee544ad53091808256f70b1745ac27a70.gz deleted file mode 100644 index ea054d9599..0000000000 Binary files a/_darcs/patches/20080719140906-84dde-9fcac26ee544ad53091808256f70b1745ac27a70.gz and /dev/null differ diff --git a/_darcs/patches/20080719142058-84dde-60908b20612ee8965015b96d7e279de28cd9b112.gz b/_darcs/patches/20080719142058-84dde-60908b20612ee8965015b96d7e279de28cd9b112.gz deleted file mode 100644 index a391e05977..0000000000 Binary files a/_darcs/patches/20080719142058-84dde-60908b20612ee8965015b96d7e279de28cd9b112.gz and /dev/null differ diff --git a/_darcs/patches/20080719154753-84dde-9b0da984d03ed4010abddbc77858d86986c075b0.gz b/_darcs/patches/20080719154753-84dde-9b0da984d03ed4010abddbc77858d86986c075b0.gz deleted file mode 100644 index 063c9cf83a..0000000000 Binary files a/_darcs/patches/20080719154753-84dde-9b0da984d03ed4010abddbc77858d86986c075b0.gz and /dev/null differ diff --git a/_darcs/patches/20080719155526-84dde-5157cd11d2f96128321b46cb2bea8ff27ce4478f.gz b/_darcs/patches/20080719155526-84dde-5157cd11d2f96128321b46cb2bea8ff27ce4478f.gz deleted file mode 100644 index 26b7a62043..0000000000 Binary files a/_darcs/patches/20080719155526-84dde-5157cd11d2f96128321b46cb2bea8ff27ce4478f.gz and /dev/null differ diff --git a/_darcs/patches/20080719162355-0dc29-8ad0a40a93697853117c4a85c7e3e66bec564abb.gz b/_darcs/patches/20080719162355-0dc29-8ad0a40a93697853117c4a85c7e3e66bec564abb.gz deleted file mode 100644 index bd5bd74c1c..0000000000 Binary files a/_darcs/patches/20080719162355-0dc29-8ad0a40a93697853117c4a85c7e3e66bec564abb.gz and /dev/null differ diff --git a/_darcs/patches/20080719171023-84dde-4d562898d10a2342db271640951fcf0ba552cc01.gz b/_darcs/patches/20080719171023-84dde-4d562898d10a2342db271640951fcf0ba552cc01.gz deleted file mode 100644 index 154c9b1c3d..0000000000 Binary files a/_darcs/patches/20080719171023-84dde-4d562898d10a2342db271640951fcf0ba552cc01.gz and /dev/null differ diff --git a/_darcs/patches/20080719171605-84dde-4b23eb6896d9bb6e57ce65de374acaf1703b7463.gz b/_darcs/patches/20080719171605-84dde-4b23eb6896d9bb6e57ce65de374acaf1703b7463.gz deleted file mode 100644 index 52f2a186b5..0000000000 Binary files a/_darcs/patches/20080719171605-84dde-4b23eb6896d9bb6e57ce65de374acaf1703b7463.gz and /dev/null differ diff --git a/_darcs/patches/20080719202625-84dde-52b3d6710302f55e35ef57ea0aa4aff07cbeafaa.gz b/_darcs/patches/20080719202625-84dde-52b3d6710302f55e35ef57ea0aa4aff07cbeafaa.gz deleted file mode 100644 index c154eff4e1..0000000000 Binary files a/_darcs/patches/20080719202625-84dde-52b3d6710302f55e35ef57ea0aa4aff07cbeafaa.gz and /dev/null differ diff --git a/_darcs/patches/20080720015823-982e4-b33e1ef01cd071e958c9c51625190513b86594f3.gz b/_darcs/patches/20080720015823-982e4-b33e1ef01cd071e958c9c51625190513b86594f3.gz deleted file mode 100644 index b3a8ae61d9..0000000000 Binary files a/_darcs/patches/20080720015823-982e4-b33e1ef01cd071e958c9c51625190513b86594f3.gz and /dev/null differ diff --git a/_darcs/patches/20080720023259-533db-6a4e8abb730b2192fcf2887a665dee2e1048529a.gz b/_darcs/patches/20080720023259-533db-6a4e8abb730b2192fcf2887a665dee2e1048529a.gz deleted file mode 100644 index 7270f629ef..0000000000 Binary files a/_darcs/patches/20080720023259-533db-6a4e8abb730b2192fcf2887a665dee2e1048529a.gz and /dev/null differ diff --git a/_darcs/patches/20080720023510-533db-74cdcbc59c5956c1bd1ce3b01921fd4cd1c7376c.gz b/_darcs/patches/20080720023510-533db-74cdcbc59c5956c1bd1ce3b01921fd4cd1c7376c.gz deleted file mode 100644 index 24c267fdb5..0000000000 Binary files a/_darcs/patches/20080720023510-533db-74cdcbc59c5956c1bd1ce3b01921fd4cd1c7376c.gz and /dev/null differ diff --git a/_darcs/patches/20080720025546-533db-7044949bfaa6676c86f3e1d84d20ecb85aab0937.gz b/_darcs/patches/20080720025546-533db-7044949bfaa6676c86f3e1d84d20ecb85aab0937.gz deleted file mode 100644 index bd27f403ba..0000000000 Binary files a/_darcs/patches/20080720025546-533db-7044949bfaa6676c86f3e1d84d20ecb85aab0937.gz and /dev/null differ diff --git a/_darcs/patches/20080720033236-533db-95f6a169f73e69549a8ff0eefb0e4c8ba21f090e.gz b/_darcs/patches/20080720033236-533db-95f6a169f73e69549a8ff0eefb0e4c8ba21f090e.gz deleted file mode 100644 index a7fe4d6ae3..0000000000 Binary files a/_darcs/patches/20080720033236-533db-95f6a169f73e69549a8ff0eefb0e4c8ba21f090e.gz and /dev/null differ diff --git a/_darcs/patches/20080720033401-533db-05bf2c9ebe988ebda6a295447a958af66571a088.gz b/_darcs/patches/20080720033401-533db-05bf2c9ebe988ebda6a295447a958af66571a088.gz deleted file mode 100644 index 68d0458b27..0000000000 Binary files a/_darcs/patches/20080720033401-533db-05bf2c9ebe988ebda6a295447a958af66571a088.gz and /dev/null differ diff --git a/_darcs/patches/20080720040351-533db-a0924ce6cd6e472c7001a167ce36452adf99b038.gz b/_darcs/patches/20080720040351-533db-a0924ce6cd6e472c7001a167ce36452adf99b038.gz deleted file mode 100644 index a6078d8be5..0000000000 Binary files a/_darcs/patches/20080720040351-533db-a0924ce6cd6e472c7001a167ce36452adf99b038.gz and /dev/null differ diff --git a/_darcs/patches/20080720044756-ca946-2e0823506b352d8364f84b77af644b8fc7f1a00d.gz b/_darcs/patches/20080720044756-ca946-2e0823506b352d8364f84b77af644b8fc7f1a00d.gz deleted file mode 100644 index eca468f515..0000000000 Binary files a/_darcs/patches/20080720044756-ca946-2e0823506b352d8364f84b77af644b8fc7f1a00d.gz and /dev/null differ diff --git a/_darcs/patches/20080720053431-84dde-2a46f89bcb18ecbb2b151f5d86a98fb016c851dd.gz b/_darcs/patches/20080720053431-84dde-2a46f89bcb18ecbb2b151f5d86a98fb016c851dd.gz deleted file mode 100644 index 1f540043ea..0000000000 Binary files a/_darcs/patches/20080720053431-84dde-2a46f89bcb18ecbb2b151f5d86a98fb016c851dd.gz and /dev/null differ diff --git a/_darcs/patches/20080720053458-84dde-1b1d4db642ef350d1f2c94f35ce7c685378bd9f5.gz b/_darcs/patches/20080720053458-84dde-1b1d4db642ef350d1f2c94f35ce7c685378bd9f5.gz deleted file mode 100644 index 24855efc87..0000000000 Binary files a/_darcs/patches/20080720053458-84dde-1b1d4db642ef350d1f2c94f35ce7c685378bd9f5.gz and /dev/null differ diff --git a/_darcs/patches/20080720055558-533db-781488916e178921f1bcd6ea141df10c1a0ace55.gz b/_darcs/patches/20080720055558-533db-781488916e178921f1bcd6ea141df10c1a0ace55.gz deleted file mode 100644 index 9b5ee3249b..0000000000 Binary files a/_darcs/patches/20080720055558-533db-781488916e178921f1bcd6ea141df10c1a0ace55.gz and /dev/null differ diff --git a/_darcs/patches/20080720055702-533db-193ed842b0d0a952bef71a3c5287213ada0ef15c.gz b/_darcs/patches/20080720055702-533db-193ed842b0d0a952bef71a3c5287213ada0ef15c.gz deleted file mode 100644 index 4554f11a9d..0000000000 Binary files a/_darcs/patches/20080720055702-533db-193ed842b0d0a952bef71a3c5287213ada0ef15c.gz and /dev/null differ diff --git a/_darcs/patches/20080720070905-ca946-dda57dd92210461361fd58b7a3244bf24c01e801.gz b/_darcs/patches/20080720070905-ca946-dda57dd92210461361fd58b7a3244bf24c01e801.gz deleted file mode 100644 index 2f53a8474f..0000000000 Binary files a/_darcs/patches/20080720070905-ca946-dda57dd92210461361fd58b7a3244bf24c01e801.gz and /dev/null differ diff --git a/_darcs/patches/20080720080801-533db-ac529a873885e7142e6e0450479bf59aafb6c058.gz b/_darcs/patches/20080720080801-533db-ac529a873885e7142e6e0450479bf59aafb6c058.gz deleted file mode 100644 index b3d9318b0e..0000000000 Binary files a/_darcs/patches/20080720080801-533db-ac529a873885e7142e6e0450479bf59aafb6c058.gz and /dev/null differ diff --git a/_darcs/patches/20080720081021-533db-c5610ba4b0bb7f1999582ee4f9220ff2e5595949.gz b/_darcs/patches/20080720081021-533db-c5610ba4b0bb7f1999582ee4f9220ff2e5595949.gz deleted file mode 100644 index 598ff75ac0..0000000000 Binary files a/_darcs/patches/20080720081021-533db-c5610ba4b0bb7f1999582ee4f9220ff2e5595949.gz and /dev/null differ diff --git a/_darcs/patches/20080720081838-533db-bfe217657f0c3327fa8facc66b41b00f6c8f1948.gz b/_darcs/patches/20080720081838-533db-bfe217657f0c3327fa8facc66b41b00f6c8f1948.gz deleted file mode 100644 index 7cec95c939..0000000000 Binary files a/_darcs/patches/20080720081838-533db-bfe217657f0c3327fa8facc66b41b00f6c8f1948.gz and /dev/null differ diff --git a/_darcs/patches/20080720082641-533db-fa5b327a6670fd77f55cc028fc3a3a66664d4bb3.gz b/_darcs/patches/20080720082641-533db-fa5b327a6670fd77f55cc028fc3a3a66664d4bb3.gz deleted file mode 100644 index a4ae332c25..0000000000 Binary files a/_darcs/patches/20080720082641-533db-fa5b327a6670fd77f55cc028fc3a3a66664d4bb3.gz and /dev/null differ diff --git a/_darcs/patches/20080720083428-ca946-c14a92345366f2105b3c452a3899714d89692daa.gz b/_darcs/patches/20080720083428-ca946-c14a92345366f2105b3c452a3899714d89692daa.gz deleted file mode 100644 index 18532faf90..0000000000 Binary files a/_darcs/patches/20080720083428-ca946-c14a92345366f2105b3c452a3899714d89692daa.gz and /dev/null differ diff --git a/_darcs/patches/20080720083948-ca946-14b4ef6a5fe387f1e147546be156fafb7d665275.gz b/_darcs/patches/20080720083948-ca946-14b4ef6a5fe387f1e147546be156fafb7d665275.gz deleted file mode 100644 index 415638f8a8..0000000000 Binary files a/_darcs/patches/20080720083948-ca946-14b4ef6a5fe387f1e147546be156fafb7d665275.gz and /dev/null differ diff --git a/_darcs/patches/20080720094832-533db-91b0cf2e0589ca4008b3011d5acd41449caa0904.gz b/_darcs/patches/20080720094832-533db-91b0cf2e0589ca4008b3011d5acd41449caa0904.gz deleted file mode 100644 index 6bbfd4fe13..0000000000 Binary files a/_darcs/patches/20080720094832-533db-91b0cf2e0589ca4008b3011d5acd41449caa0904.gz and /dev/null differ diff --git a/_darcs/patches/20080720094917-533db-386e12dbeabcfb9bc74cdce11e6bc197964929b7.gz b/_darcs/patches/20080720094917-533db-386e12dbeabcfb9bc74cdce11e6bc197964929b7.gz deleted file mode 100644 index 8820dbda95..0000000000 Binary files a/_darcs/patches/20080720094917-533db-386e12dbeabcfb9bc74cdce11e6bc197964929b7.gz and /dev/null differ diff --git a/_darcs/patches/20080720094954-533db-1096bf464e37a9c380afc15ac1b33b1f2f43cf91.gz b/_darcs/patches/20080720094954-533db-1096bf464e37a9c380afc15ac1b33b1f2f43cf91.gz deleted file mode 100644 index e3d908edf4..0000000000 Binary files a/_darcs/patches/20080720094954-533db-1096bf464e37a9c380afc15ac1b33b1f2f43cf91.gz and /dev/null differ diff --git a/_darcs/patches/20080720095651-533db-fc0ab9f07e9d354c3b73a1f90bdc3224209651f2.gz b/_darcs/patches/20080720095651-533db-fc0ab9f07e9d354c3b73a1f90bdc3224209651f2.gz deleted file mode 100644 index ed666a8e12..0000000000 Binary files a/_darcs/patches/20080720095651-533db-fc0ab9f07e9d354c3b73a1f90bdc3224209651f2.gz and /dev/null differ diff --git a/_darcs/patches/20080720100024-533db-d2b5b63f169b6e16e08e81c8da63b7f9f69e7521.gz b/_darcs/patches/20080720100024-533db-d2b5b63f169b6e16e08e81c8da63b7f9f69e7521.gz deleted file mode 100644 index 79d4a4a1ff..0000000000 Binary files a/_darcs/patches/20080720100024-533db-d2b5b63f169b6e16e08e81c8da63b7f9f69e7521.gz and /dev/null differ diff --git a/_darcs/patches/20080720100253-533db-bc2605d57e265cfa4e38866b977c81302d4fb1c5.gz b/_darcs/patches/20080720100253-533db-bc2605d57e265cfa4e38866b977c81302d4fb1c5.gz deleted file mode 100644 index bb1550f2a0..0000000000 Binary files a/_darcs/patches/20080720100253-533db-bc2605d57e265cfa4e38866b977c81302d4fb1c5.gz and /dev/null differ diff --git a/_darcs/patches/20080720101553-533db-3ebe6e3cd4b9e1b937df076b876bc3f9b826f476.gz b/_darcs/patches/20080720101553-533db-3ebe6e3cd4b9e1b937df076b876bc3f9b826f476.gz deleted file mode 100644 index 27bacb3a0c..0000000000 Binary files a/_darcs/patches/20080720101553-533db-3ebe6e3cd4b9e1b937df076b876bc3f9b826f476.gz and /dev/null differ diff --git a/_darcs/patches/20080720101947-533db-a7ddbd4d33b492196cf9a4287dfbfa3e341d6f40.gz b/_darcs/patches/20080720101947-533db-a7ddbd4d33b492196cf9a4287dfbfa3e341d6f40.gz deleted file mode 100644 index 7071105a4f..0000000000 Binary files a/_darcs/patches/20080720101947-533db-a7ddbd4d33b492196cf9a4287dfbfa3e341d6f40.gz and /dev/null differ diff --git a/_darcs/patches/20080720105659-533db-35a71fab668a7ea692f7b51557b4f84addb796bb.gz b/_darcs/patches/20080720105659-533db-35a71fab668a7ea692f7b51557b4f84addb796bb.gz deleted file mode 100644 index 03a39a8623..0000000000 Binary files a/_darcs/patches/20080720105659-533db-35a71fab668a7ea692f7b51557b4f84addb796bb.gz and /dev/null differ diff --git a/_darcs/patches/20080720112032-533db-e7bd1e7faaf3f1580b90faf425997de034f1a0cc.gz b/_darcs/patches/20080720112032-533db-e7bd1e7faaf3f1580b90faf425997de034f1a0cc.gz deleted file mode 100644 index 1dc6f13fab..0000000000 Binary files a/_darcs/patches/20080720112032-533db-e7bd1e7faaf3f1580b90faf425997de034f1a0cc.gz and /dev/null differ diff --git a/_darcs/patches/20080720113458-533db-0b0c2736c464195476562fb52f5a5bb1591d3d82.gz b/_darcs/patches/20080720113458-533db-0b0c2736c464195476562fb52f5a5bb1591d3d82.gz deleted file mode 100644 index 58f0935086..0000000000 Binary files a/_darcs/patches/20080720113458-533db-0b0c2736c464195476562fb52f5a5bb1591d3d82.gz and /dev/null differ diff --git a/_darcs/patches/20080720122715-533db-64247879e336666835880cd3de10bc2ef27e46c7.gz b/_darcs/patches/20080720122715-533db-64247879e336666835880cd3de10bc2ef27e46c7.gz deleted file mode 100644 index e7e22d6fbf..0000000000 Binary files a/_darcs/patches/20080720122715-533db-64247879e336666835880cd3de10bc2ef27e46c7.gz and /dev/null differ diff --git a/_darcs/patches/20080720122832-533db-7fda43b257160b90788f0d860d50df995d463ee8.gz b/_darcs/patches/20080720122832-533db-7fda43b257160b90788f0d860d50df995d463ee8.gz deleted file mode 100644 index 0ed1ef0388..0000000000 Binary files a/_darcs/patches/20080720122832-533db-7fda43b257160b90788f0d860d50df995d463ee8.gz and /dev/null differ diff --git a/_darcs/patches/20080720124552-533db-81be2c04445f146e477b1bb7e6e8e7d0eb27431d.gz b/_darcs/patches/20080720124552-533db-81be2c04445f146e477b1bb7e6e8e7d0eb27431d.gz deleted file mode 100644 index 27b7fd476b..0000000000 Binary files a/_darcs/patches/20080720124552-533db-81be2c04445f146e477b1bb7e6e8e7d0eb27431d.gz and /dev/null differ diff --git a/_darcs/patches/20080720141325-533db-87cb60501434c9dc0ac13716ba5d8b17754431f5.gz b/_darcs/patches/20080720141325-533db-87cb60501434c9dc0ac13716ba5d8b17754431f5.gz deleted file mode 100644 index b40102e48f..0000000000 Binary files a/_darcs/patches/20080720141325-533db-87cb60501434c9dc0ac13716ba5d8b17754431f5.gz and /dev/null differ diff --git a/_darcs/patches/20080720141543-533db-f9d9eb94cd9f770be5f912a838a7e5f462c04809.gz b/_darcs/patches/20080720141543-533db-f9d9eb94cd9f770be5f912a838a7e5f462c04809.gz deleted file mode 100644 index 664bf58043..0000000000 Binary files a/_darcs/patches/20080720141543-533db-f9d9eb94cd9f770be5f912a838a7e5f462c04809.gz and /dev/null differ diff --git a/_darcs/patches/20080720193005-84dde-97e098996309550dc98b658923d84620e7715c69.gz b/_darcs/patches/20080720193005-84dde-97e098996309550dc98b658923d84620e7715c69.gz deleted file mode 100644 index 988c4eedbc..0000000000 Binary files a/_darcs/patches/20080720193005-84dde-97e098996309550dc98b658923d84620e7715c69.gz and /dev/null differ diff --git a/_darcs/patches/20080720193132-84dde-89bc231a00934484cbaf0d91d4336cc790db1a21.gz b/_darcs/patches/20080720193132-84dde-89bc231a00934484cbaf0d91d4336cc790db1a21.gz deleted file mode 100644 index e0d17b5d46..0000000000 Binary files a/_darcs/patches/20080720193132-84dde-89bc231a00934484cbaf0d91d4336cc790db1a21.gz and /dev/null differ diff --git a/_darcs/patches/20080720193228-84dde-00e82ee00a1c94f6adb079ea3ac6affa5aad280c.gz b/_darcs/patches/20080720193228-84dde-00e82ee00a1c94f6adb079ea3ac6affa5aad280c.gz deleted file mode 100644 index f9e8881e1b..0000000000 Binary files a/_darcs/patches/20080720193228-84dde-00e82ee00a1c94f6adb079ea3ac6affa5aad280c.gz and /dev/null differ diff --git a/_darcs/patches/20080720193712-84dde-1b862531df5250752cd7046a2588fe39b24ece45.gz b/_darcs/patches/20080720193712-84dde-1b862531df5250752cd7046a2588fe39b24ece45.gz deleted file mode 100644 index 5dcef10c5c..0000000000 Binary files a/_darcs/patches/20080720193712-84dde-1b862531df5250752cd7046a2588fe39b24ece45.gz and /dev/null differ diff --git a/_darcs/patches/20080720195505-982e4-3f03e6ab4c466ae131e025b6a3c26c7bb9a99c03.gz b/_darcs/patches/20080720195505-982e4-3f03e6ab4c466ae131e025b6a3c26c7bb9a99c03.gz deleted file mode 100644 index 2afb85d543..0000000000 Binary files a/_darcs/patches/20080720195505-982e4-3f03e6ab4c466ae131e025b6a3c26c7bb9a99c03.gz and /dev/null differ diff --git a/_darcs/patches/20080720195549-84dde-4193f27f8efda497fbe55f1c514fe30e4dd8a69d.gz b/_darcs/patches/20080720195549-84dde-4193f27f8efda497fbe55f1c514fe30e4dd8a69d.gz deleted file mode 100644 index 129fde984d..0000000000 Binary files a/_darcs/patches/20080720195549-84dde-4193f27f8efda497fbe55f1c514fe30e4dd8a69d.gz and /dev/null differ diff --git a/_darcs/patches/20080720195834-84dde-3183d0cc0b93777649c03b2ded962af16ffd9bab.gz b/_darcs/patches/20080720195834-84dde-3183d0cc0b93777649c03b2ded962af16ffd9bab.gz deleted file mode 100644 index a29b263f06..0000000000 Binary files a/_darcs/patches/20080720195834-84dde-3183d0cc0b93777649c03b2ded962af16ffd9bab.gz and /dev/null differ diff --git a/_darcs/patches/20080720200039-84dde-62412804de2802de9f032bd4e00c8e32373d56a8.gz b/_darcs/patches/20080720200039-84dde-62412804de2802de9f032bd4e00c8e32373d56a8.gz deleted file mode 100644 index b53738630c..0000000000 Binary files a/_darcs/patches/20080720200039-84dde-62412804de2802de9f032bd4e00c8e32373d56a8.gz and /dev/null differ diff --git a/_darcs/patches/20080720200530-84dde-dade3117bdf510c1880d35f27bd9352995725175.gz b/_darcs/patches/20080720200530-84dde-dade3117bdf510c1880d35f27bd9352995725175.gz deleted file mode 100644 index cfa99589c8..0000000000 Binary files a/_darcs/patches/20080720200530-84dde-dade3117bdf510c1880d35f27bd9352995725175.gz and /dev/null differ diff --git a/_darcs/patches/20080720201620-84dde-f782e01bdf7f267b3b02e20e851aa7b643ed8590.gz b/_darcs/patches/20080720201620-84dde-f782e01bdf7f267b3b02e20e851aa7b643ed8590.gz deleted file mode 100644 index 4f2861990a..0000000000 Binary files a/_darcs/patches/20080720201620-84dde-f782e01bdf7f267b3b02e20e851aa7b643ed8590.gz and /dev/null differ diff --git a/_darcs/patches/20080720202705-84dde-da40ebc8bcb9bd438e891c5a103211ebd67fd2c7.gz b/_darcs/patches/20080720202705-84dde-da40ebc8bcb9bd438e891c5a103211ebd67fd2c7.gz deleted file mode 100644 index 5154328d95..0000000000 Binary files a/_darcs/patches/20080720202705-84dde-da40ebc8bcb9bd438e891c5a103211ebd67fd2c7.gz and /dev/null differ diff --git a/_darcs/patches/20080720202832-84dde-918fb1d27d1dd1f06e3bceeb5217c136e6d78ac5.gz b/_darcs/patches/20080720202832-84dde-918fb1d27d1dd1f06e3bceeb5217c136e6d78ac5.gz deleted file mode 100644 index 5f611ef8c9..0000000000 Binary files a/_darcs/patches/20080720202832-84dde-918fb1d27d1dd1f06e3bceeb5217c136e6d78ac5.gz and /dev/null differ diff --git a/_darcs/patches/20080720233308-84dde-f9de49360dd366690bd6e3bb55cb5fe632dd7298.gz b/_darcs/patches/20080720233308-84dde-f9de49360dd366690bd6e3bb55cb5fe632dd7298.gz deleted file mode 100644 index ce255ec23a..0000000000 Binary files a/_darcs/patches/20080720233308-84dde-f9de49360dd366690bd6e3bb55cb5fe632dd7298.gz and /dev/null differ diff --git a/_darcs/patches/20080720233712-84dde-dda5de6fec9d1d48f61139c1cce8a6e8aa2e0055.gz b/_darcs/patches/20080720233712-84dde-dda5de6fec9d1d48f61139c1cce8a6e8aa2e0055.gz deleted file mode 100644 index 0507ae4e8a..0000000000 Binary files a/_darcs/patches/20080720233712-84dde-dda5de6fec9d1d48f61139c1cce8a6e8aa2e0055.gz and /dev/null differ diff --git a/_darcs/patches/20080721011128-84dde-0b3af6237c2c07bf7f573d9e609c19e6538c2859.gz b/_darcs/patches/20080721011128-84dde-0b3af6237c2c07bf7f573d9e609c19e6538c2859.gz deleted file mode 100644 index 9cec3af153..0000000000 Binary files a/_darcs/patches/20080721011128-84dde-0b3af6237c2c07bf7f573d9e609c19e6538c2859.gz and /dev/null differ diff --git a/_darcs/patches/20080721012301-84dde-b4848c9336562042268abb3373d5c60babdc4e7b.gz b/_darcs/patches/20080721012301-84dde-b4848c9336562042268abb3373d5c60babdc4e7b.gz deleted file mode 100644 index 925a847166..0000000000 Binary files a/_darcs/patches/20080721012301-84dde-b4848c9336562042268abb3373d5c60babdc4e7b.gz and /dev/null differ diff --git a/_darcs/patches/20080721012405-84dde-f320413d02473f2a1ee6c64ade0357fa6d089ee3.gz b/_darcs/patches/20080721012405-84dde-f320413d02473f2a1ee6c64ade0357fa6d089ee3.gz deleted file mode 100644 index d440b0153e..0000000000 Binary files a/_darcs/patches/20080721012405-84dde-f320413d02473f2a1ee6c64ade0357fa6d089ee3.gz and /dev/null differ diff --git a/_darcs/patches/20080721035853-84dde-5c95b6b06a2f82b9f9170bd02bc3fd5a1bdb231b.gz b/_darcs/patches/20080721035853-84dde-5c95b6b06a2f82b9f9170bd02bc3fd5a1bdb231b.gz deleted file mode 100644 index 8607486be7..0000000000 Binary files a/_darcs/patches/20080721035853-84dde-5c95b6b06a2f82b9f9170bd02bc3fd5a1bdb231b.gz and /dev/null differ diff --git a/_darcs/patches/20080721035919-84dde-e06f9094902522d2cd0ad71d65d565293f19db4a.gz b/_darcs/patches/20080721035919-84dde-e06f9094902522d2cd0ad71d65d565293f19db4a.gz deleted file mode 100644 index f9358cca48..0000000000 Binary files a/_darcs/patches/20080721035919-84dde-e06f9094902522d2cd0ad71d65d565293f19db4a.gz and /dev/null differ diff --git a/_darcs/patches/20080721040551-84dde-f6c76d806969ccaa772da31235baaf7d9b065c15.gz b/_darcs/patches/20080721040551-84dde-f6c76d806969ccaa772da31235baaf7d9b065c15.gz deleted file mode 100644 index 1c565d0d66..0000000000 Binary files a/_darcs/patches/20080721040551-84dde-f6c76d806969ccaa772da31235baaf7d9b065c15.gz and /dev/null differ diff --git a/_darcs/patches/20080721040614-84dde-431def35d4e3c163df2b4f4e78bef7b3521be40a.gz b/_darcs/patches/20080721040614-84dde-431def35d4e3c163df2b4f4e78bef7b3521be40a.gz deleted file mode 100644 index f7b4c8953c..0000000000 Binary files a/_darcs/patches/20080721040614-84dde-431def35d4e3c163df2b4f4e78bef7b3521be40a.gz and /dev/null differ diff --git a/_darcs/patches/20080721042302-84dde-b077675affa13a761ba07b4c5ac4ff667cf00eb2.gz b/_darcs/patches/20080721042302-84dde-b077675affa13a761ba07b4c5ac4ff667cf00eb2.gz deleted file mode 100644 index de143a1be2..0000000000 Binary files a/_darcs/patches/20080721042302-84dde-b077675affa13a761ba07b4c5ac4ff667cf00eb2.gz and /dev/null differ diff --git a/_darcs/patches/20080721042333-84dde-f3331569171b33f16322bd6b2999a21cefb718c0.gz b/_darcs/patches/20080721042333-84dde-f3331569171b33f16322bd6b2999a21cefb718c0.gz deleted file mode 100644 index 96155b0008..0000000000 Binary files a/_darcs/patches/20080721042333-84dde-f3331569171b33f16322bd6b2999a21cefb718c0.gz and /dev/null differ diff --git a/_darcs/patches/20080721043734-84dde-de49b283d468334abd4ee4375042b7f2d003823c.gz b/_darcs/patches/20080721043734-84dde-de49b283d468334abd4ee4375042b7f2d003823c.gz deleted file mode 100644 index 496e6492e0..0000000000 Binary files a/_darcs/patches/20080721043734-84dde-de49b283d468334abd4ee4375042b7f2d003823c.gz and /dev/null differ diff --git a/_darcs/patches/20080721044015-84dde-e933bf93ff744cfa25d0aaa496002d3b8857d250.gz b/_darcs/patches/20080721044015-84dde-e933bf93ff744cfa25d0aaa496002d3b8857d250.gz deleted file mode 100644 index d0dd8ff56b..0000000000 Binary files a/_darcs/patches/20080721044015-84dde-e933bf93ff744cfa25d0aaa496002d3b8857d250.gz and /dev/null differ diff --git a/_darcs/patches/20080721044135-84dde-6af27ed89647ca276750024b32b5004fa104c037.gz b/_darcs/patches/20080721044135-84dde-6af27ed89647ca276750024b32b5004fa104c037.gz deleted file mode 100644 index ce76889638..0000000000 Binary files a/_darcs/patches/20080721044135-84dde-6af27ed89647ca276750024b32b5004fa104c037.gz and /dev/null differ diff --git a/_darcs/patches/20080721044604-84dde-c3e920bd56992c4e6a77625767b4599bacc74434.gz b/_darcs/patches/20080721044604-84dde-c3e920bd56992c4e6a77625767b4599bacc74434.gz deleted file mode 100644 index f805308a16..0000000000 Binary files a/_darcs/patches/20080721044604-84dde-c3e920bd56992c4e6a77625767b4599bacc74434.gz and /dev/null differ diff --git a/_darcs/patches/20080721045119-84dde-fc65941017d3731ec925e4a410c52f756e91d507.gz b/_darcs/patches/20080721045119-84dde-fc65941017d3731ec925e4a410c52f756e91d507.gz deleted file mode 100644 index 29abc7dbf1..0000000000 Binary files a/_darcs/patches/20080721045119-84dde-fc65941017d3731ec925e4a410c52f756e91d507.gz and /dev/null differ diff --git a/_darcs/patches/20080721050508-84dde-5e6d8121b403e9b81f8f46a2f5c7de5908b9593a.gz b/_darcs/patches/20080721050508-84dde-5e6d8121b403e9b81f8f46a2f5c7de5908b9593a.gz deleted file mode 100644 index bedf9f3485..0000000000 Binary files a/_darcs/patches/20080721050508-84dde-5e6d8121b403e9b81f8f46a2f5c7de5908b9593a.gz and /dev/null differ diff --git a/_darcs/patches/20080721083758-84dde-76534893df215e9754c00c1e0a6d6351f64f1818.gz b/_darcs/patches/20080721083758-84dde-76534893df215e9754c00c1e0a6d6351f64f1818.gz deleted file mode 100644 index 6a4f831602..0000000000 Binary files a/_darcs/patches/20080721083758-84dde-76534893df215e9754c00c1e0a6d6351f64f1818.gz and /dev/null differ diff --git a/_darcs/patches/20080721084801-84dde-ea8722deb8760cc9f7f83766e4e6167a338f5742.gz b/_darcs/patches/20080721084801-84dde-ea8722deb8760cc9f7f83766e4e6167a338f5742.gz deleted file mode 100644 index 645d99afba..0000000000 Binary files a/_darcs/patches/20080721084801-84dde-ea8722deb8760cc9f7f83766e4e6167a338f5742.gz and /dev/null differ diff --git a/_darcs/patches/20080721085641-84dde-9b29902977f78714188ba5fe8c37b4d603c3c63b.gz b/_darcs/patches/20080721085641-84dde-9b29902977f78714188ba5fe8c37b4d603c3c63b.gz deleted file mode 100644 index 64a8aeae11..0000000000 Binary files a/_darcs/patches/20080721085641-84dde-9b29902977f78714188ba5fe8c37b4d603c3c63b.gz and /dev/null differ diff --git a/_darcs/patches/20080721090110-edabd-aea47e1cbcc2527fdb0274cb29638d2abc108a35.gz b/_darcs/patches/20080721090110-edabd-aea47e1cbcc2527fdb0274cb29638d2abc108a35.gz deleted file mode 100644 index 65cc0bc707..0000000000 Binary files a/_darcs/patches/20080721090110-edabd-aea47e1cbcc2527fdb0274cb29638d2abc108a35.gz and /dev/null differ diff --git a/_darcs/patches/20080721090819-84dde-34f1d1a0c448296e124c172d234976fd5cdad32c.gz b/_darcs/patches/20080721090819-84dde-34f1d1a0c448296e124c172d234976fd5cdad32c.gz deleted file mode 100644 index aec11c1353..0000000000 Binary files a/_darcs/patches/20080721090819-84dde-34f1d1a0c448296e124c172d234976fd5cdad32c.gz and /dev/null differ diff --git a/_darcs/patches/20080721091702-ca946-e114030e33e4e1237006c7e64d8a0de8f8d9e7fc.gz b/_darcs/patches/20080721091702-ca946-e114030e33e4e1237006c7e64d8a0de8f8d9e7fc.gz deleted file mode 100644 index 894dc24758..0000000000 Binary files a/_darcs/patches/20080721091702-ca946-e114030e33e4e1237006c7e64d8a0de8f8d9e7fc.gz and /dev/null differ diff --git a/_darcs/patches/20080721091854-84dde-98b2bc313f23694a92c6f3ce92fd8f6beafe01fd.gz b/_darcs/patches/20080721091854-84dde-98b2bc313f23694a92c6f3ce92fd8f6beafe01fd.gz deleted file mode 100644 index 1ff8ac4095..0000000000 Binary files a/_darcs/patches/20080721091854-84dde-98b2bc313f23694a92c6f3ce92fd8f6beafe01fd.gz and /dev/null differ diff --git a/_darcs/patches/20080721092813-84dde-ac19bbdd85bbf796ecf8ffbc8c0cb05d0d1667ab.gz b/_darcs/patches/20080721092813-84dde-ac19bbdd85bbf796ecf8ffbc8c0cb05d0d1667ab.gz deleted file mode 100644 index 875b2d351c..0000000000 Binary files a/_darcs/patches/20080721092813-84dde-ac19bbdd85bbf796ecf8ffbc8c0cb05d0d1667ab.gz and /dev/null differ diff --git a/_darcs/patches/20080721093401-84dde-6c370b1901ea3f548bec0d7e69cf21e63c3ade97.gz b/_darcs/patches/20080721093401-84dde-6c370b1901ea3f548bec0d7e69cf21e63c3ade97.gz deleted file mode 100644 index a5d1d394c0..0000000000 Binary files a/_darcs/patches/20080721093401-84dde-6c370b1901ea3f548bec0d7e69cf21e63c3ade97.gz and /dev/null differ diff --git a/_darcs/patches/20080721093457-84dde-b9c735bef0d279b92e23743a5d96bcaa6b7f8444.gz b/_darcs/patches/20080721093457-84dde-b9c735bef0d279b92e23743a5d96bcaa6b7f8444.gz deleted file mode 100644 index 14c35fec29..0000000000 Binary files a/_darcs/patches/20080721093457-84dde-b9c735bef0d279b92e23743a5d96bcaa6b7f8444.gz and /dev/null differ diff --git a/_darcs/patches/20080721120036-edabd-838335c0e23c80a657d353955b25b52a9a8624b2.gz b/_darcs/patches/20080721120036-edabd-838335c0e23c80a657d353955b25b52a9a8624b2.gz deleted file mode 100644 index af756197d5..0000000000 Binary files a/_darcs/patches/20080721120036-edabd-838335c0e23c80a657d353955b25b52a9a8624b2.gz and /dev/null differ diff --git a/_darcs/patches/20080721123243-533db-bf3664c2cb9d2cd37c633e13ab918994c57d01a0.gz b/_darcs/patches/20080721123243-533db-bf3664c2cb9d2cd37c633e13ab918994c57d01a0.gz deleted file mode 100644 index b7e32b5236..0000000000 Binary files a/_darcs/patches/20080721123243-533db-bf3664c2cb9d2cd37c633e13ab918994c57d01a0.gz and /dev/null differ diff --git a/_darcs/patches/20080721123519-533db-d3977a69493f5a57e202c80fd6ecaa2445d111d7.gz b/_darcs/patches/20080721123519-533db-d3977a69493f5a57e202c80fd6ecaa2445d111d7.gz deleted file mode 100644 index e2ea92aeda..0000000000 Binary files a/_darcs/patches/20080721123519-533db-d3977a69493f5a57e202c80fd6ecaa2445d111d7.gz and /dev/null differ diff --git a/_darcs/patches/20080721133337-84dde-ab0bb78d0dcb1c2d45c0dcc56f3b470ab55efb45.gz b/_darcs/patches/20080721133337-84dde-ab0bb78d0dcb1c2d45c0dcc56f3b470ab55efb45.gz deleted file mode 100644 index 34c2577e1a..0000000000 Binary files a/_darcs/patches/20080721133337-84dde-ab0bb78d0dcb1c2d45c0dcc56f3b470ab55efb45.gz and /dev/null differ diff --git a/_darcs/patches/20080721135637-edabd-cca33bc0a0936423b9fd2ffdf9413236123d680e.gz b/_darcs/patches/20080721135637-edabd-cca33bc0a0936423b9fd2ffdf9413236123d680e.gz deleted file mode 100644 index 97aca2356c..0000000000 Binary files a/_darcs/patches/20080721135637-edabd-cca33bc0a0936423b9fd2ffdf9413236123d680e.gz and /dev/null differ diff --git a/_darcs/patches/20080721162434-84dde-1302ff7dc970e663fc21b336b3da821793b62d86.gz b/_darcs/patches/20080721162434-84dde-1302ff7dc970e663fc21b336b3da821793b62d86.gz deleted file mode 100644 index c71b2a5f0a..0000000000 Binary files a/_darcs/patches/20080721162434-84dde-1302ff7dc970e663fc21b336b3da821793b62d86.gz and /dev/null differ diff --git a/_darcs/patches/20080721162857-84dde-50f206d20718ddb9805961da2dd2daaea8fc2f8d.gz b/_darcs/patches/20080721162857-84dde-50f206d20718ddb9805961da2dd2daaea8fc2f8d.gz deleted file mode 100644 index 840917585d..0000000000 Binary files a/_darcs/patches/20080721162857-84dde-50f206d20718ddb9805961da2dd2daaea8fc2f8d.gz and /dev/null differ diff --git a/_darcs/patches/20080721174438-ca946-1f1ddc79f8117561e98a17b143714f5daae1283e.gz b/_darcs/patches/20080721174438-ca946-1f1ddc79f8117561e98a17b143714f5daae1283e.gz deleted file mode 100644 index 683337d586..0000000000 Binary files a/_darcs/patches/20080721174438-ca946-1f1ddc79f8117561e98a17b143714f5daae1283e.gz and /dev/null differ diff --git a/_darcs/patches/20080722064607-533db-c902d49bc97b74064e5a7ca2b91c4577f5256fbd.gz b/_darcs/patches/20080722064607-533db-c902d49bc97b74064e5a7ca2b91c4577f5256fbd.gz deleted file mode 100644 index d1e406231f..0000000000 Binary files a/_darcs/patches/20080722064607-533db-c902d49bc97b74064e5a7ca2b91c4577f5256fbd.gz and /dev/null differ diff --git a/_darcs/patches/20080722082526-533db-7405614141475c597847d2eab6b6b96231254ed4.gz b/_darcs/patches/20080722082526-533db-7405614141475c597847d2eab6b6b96231254ed4.gz deleted file mode 100644 index d5b654c882..0000000000 Binary files a/_darcs/patches/20080722082526-533db-7405614141475c597847d2eab6b6b96231254ed4.gz and /dev/null differ diff --git a/_darcs/patches/20080722082653-533db-14e277869986f0c4f0df0f84eec9c5d39626956d.gz b/_darcs/patches/20080722082653-533db-14e277869986f0c4f0df0f84eec9c5d39626956d.gz deleted file mode 100644 index cc6fc0387e..0000000000 Binary files a/_darcs/patches/20080722082653-533db-14e277869986f0c4f0df0f84eec9c5d39626956d.gz and /dev/null differ diff --git a/_darcs/patches/20080722082724-533db-ead12f037aa716dc548d6a4b04493ada5049ec96.gz b/_darcs/patches/20080722082724-533db-ead12f037aa716dc548d6a4b04493ada5049ec96.gz deleted file mode 100644 index 3b55d8c43a..0000000000 Binary files a/_darcs/patches/20080722082724-533db-ead12f037aa716dc548d6a4b04493ada5049ec96.gz and /dev/null differ diff --git a/_darcs/patches/20080722082840-533db-6df7b1fe05bbcaef6862d3e9b5ee3bcd277523e7.gz b/_darcs/patches/20080722082840-533db-6df7b1fe05bbcaef6862d3e9b5ee3bcd277523e7.gz deleted file mode 100644 index 9a31009afc..0000000000 Binary files a/_darcs/patches/20080722082840-533db-6df7b1fe05bbcaef6862d3e9b5ee3bcd277523e7.gz and /dev/null differ diff --git a/_darcs/patches/20080722100828-533db-4a2b61a204b2e7c7696e839c43f09c6974d49d91.gz b/_darcs/patches/20080722100828-533db-4a2b61a204b2e7c7696e839c43f09c6974d49d91.gz deleted file mode 100644 index 9941f105fe..0000000000 Binary files a/_darcs/patches/20080722100828-533db-4a2b61a204b2e7c7696e839c43f09c6974d49d91.gz and /dev/null differ diff --git a/_darcs/patches/20080722141614-84dde-b80c6945fdb90a5f67acaba65a1e4c2b306b1f8e.gz b/_darcs/patches/20080722141614-84dde-b80c6945fdb90a5f67acaba65a1e4c2b306b1f8e.gz deleted file mode 100644 index 147a96566f..0000000000 Binary files a/_darcs/patches/20080722141614-84dde-b80c6945fdb90a5f67acaba65a1e4c2b306b1f8e.gz and /dev/null differ diff --git a/_darcs/patches/20080722141828-84dde-160fe4582c1949af1f6b049b3336cad493e30510.gz b/_darcs/patches/20080722141828-84dde-160fe4582c1949af1f6b049b3336cad493e30510.gz deleted file mode 100644 index 3cad891c60..0000000000 Binary files a/_darcs/patches/20080722141828-84dde-160fe4582c1949af1f6b049b3336cad493e30510.gz and /dev/null differ diff --git a/_darcs/patches/20080722142050-84dde-b948048b7f85e24c59dc063ef298bcc4c386d33a.gz b/_darcs/patches/20080722142050-84dde-b948048b7f85e24c59dc063ef298bcc4c386d33a.gz deleted file mode 100644 index d6a3a81bca..0000000000 Binary files a/_darcs/patches/20080722142050-84dde-b948048b7f85e24c59dc063ef298bcc4c386d33a.gz and /dev/null differ diff --git a/_darcs/patches/20080722144154-84dde-80beabad9a681f2e12edb34ceb4ac249f4ce6705.gz b/_darcs/patches/20080722144154-84dde-80beabad9a681f2e12edb34ceb4ac249f4ce6705.gz deleted file mode 100644 index 954f0d812d..0000000000 Binary files a/_darcs/patches/20080722144154-84dde-80beabad9a681f2e12edb34ceb4ac249f4ce6705.gz and /dev/null differ diff --git a/_darcs/patches/20080722160213-84dde-2e466b9cc4601a8cb7237770a7df17a2f9dcadb9.gz b/_darcs/patches/20080722160213-84dde-2e466b9cc4601a8cb7237770a7df17a2f9dcadb9.gz deleted file mode 100644 index 4c6aaf034a..0000000000 Binary files a/_darcs/patches/20080722160213-84dde-2e466b9cc4601a8cb7237770a7df17a2f9dcadb9.gz and /dev/null differ diff --git a/_darcs/patches/20080722161549-84dde-fedeed101bdef172f4a7aabf2278f1a2277a6d88.gz b/_darcs/patches/20080722161549-84dde-fedeed101bdef172f4a7aabf2278f1a2277a6d88.gz deleted file mode 100644 index 6aa50763dd..0000000000 Binary files a/_darcs/patches/20080722161549-84dde-fedeed101bdef172f4a7aabf2278f1a2277a6d88.gz and /dev/null differ diff --git a/_darcs/patches/20080722161712-84dde-58d69d8861ad6be471ab2403cd5d23942c27eac6.gz b/_darcs/patches/20080722161712-84dde-58d69d8861ad6be471ab2403cd5d23942c27eac6.gz deleted file mode 100644 index 8521d21d7e..0000000000 Binary files a/_darcs/patches/20080722161712-84dde-58d69d8861ad6be471ab2403cd5d23942c27eac6.gz and /dev/null differ diff --git a/_darcs/patches/20080722161752-84dde-aaf5762ef3d376f0e8f335ff8f7811e3162d33fb.gz b/_darcs/patches/20080722161752-84dde-aaf5762ef3d376f0e8f335ff8f7811e3162d33fb.gz deleted file mode 100644 index 7bde5b73d4..0000000000 Binary files a/_darcs/patches/20080722161752-84dde-aaf5762ef3d376f0e8f335ff8f7811e3162d33fb.gz and /dev/null differ diff --git a/_darcs/patches/20080722162332-84dde-75801a271f50789377aa7a3467223286c372ec6c.gz b/_darcs/patches/20080722162332-84dde-75801a271f50789377aa7a3467223286c372ec6c.gz deleted file mode 100644 index 324a0cbf94..0000000000 Binary files a/_darcs/patches/20080722162332-84dde-75801a271f50789377aa7a3467223286c372ec6c.gz and /dev/null differ diff --git a/_darcs/patches/20080722163116-84dde-3b17b13022b3d97483e911a99ebd23cc4b8da784.gz b/_darcs/patches/20080722163116-84dde-3b17b13022b3d97483e911a99ebd23cc4b8da784.gz deleted file mode 100644 index ee945c4f88..0000000000 Binary files a/_darcs/patches/20080722163116-84dde-3b17b13022b3d97483e911a99ebd23cc4b8da784.gz and /dev/null differ diff --git a/_darcs/patches/20080722163200-84dde-736d11972503a37c062fe51c38c58eaf38a11862.gz b/_darcs/patches/20080722163200-84dde-736d11972503a37c062fe51c38c58eaf38a11862.gz deleted file mode 100644 index 9e85ae75c9..0000000000 Binary files a/_darcs/patches/20080722163200-84dde-736d11972503a37c062fe51c38c58eaf38a11862.gz and /dev/null differ diff --git a/_darcs/patches/20080722163511-84dde-3ac60595640e545335cc13d120f3e99ba5d1f513.gz b/_darcs/patches/20080722163511-84dde-3ac60595640e545335cc13d120f3e99ba5d1f513.gz deleted file mode 100644 index de09a70f9c..0000000000 Binary files a/_darcs/patches/20080722163511-84dde-3ac60595640e545335cc13d120f3e99ba5d1f513.gz and /dev/null differ diff --git a/_darcs/patches/20080722163618-84dde-5a519a92a84bb94de225fbb3da61af51cfdfdef4.gz b/_darcs/patches/20080722163618-84dde-5a519a92a84bb94de225fbb3da61af51cfdfdef4.gz deleted file mode 100644 index 7ba6cd857d..0000000000 Binary files a/_darcs/patches/20080722163618-84dde-5a519a92a84bb94de225fbb3da61af51cfdfdef4.gz and /dev/null differ diff --git a/_darcs/patches/20080722164129-84dde-be64fd4d2fff5951f2d182e44ec1eb457bddd51c.gz b/_darcs/patches/20080722164129-84dde-be64fd4d2fff5951f2d182e44ec1eb457bddd51c.gz deleted file mode 100644 index 6d4f9fa4c9..0000000000 Binary files a/_darcs/patches/20080722164129-84dde-be64fd4d2fff5951f2d182e44ec1eb457bddd51c.gz and /dev/null differ diff --git a/_darcs/patches/20080722164639-84dde-19c6300516443862da016120cf9eed40e5972b6d.gz b/_darcs/patches/20080722164639-84dde-19c6300516443862da016120cf9eed40e5972b6d.gz deleted file mode 100644 index 60ee0d4d56..0000000000 Binary files a/_darcs/patches/20080722164639-84dde-19c6300516443862da016120cf9eed40e5972b6d.gz and /dev/null differ diff --git a/_darcs/patches/20080722171501-ca946-160bad6c4f80be2b3b105ea9b913f1c0f9edb0ef.gz b/_darcs/patches/20080722171501-ca946-160bad6c4f80be2b3b105ea9b913f1c0f9edb0ef.gz deleted file mode 100644 index 2759dcd98f..0000000000 Binary files a/_darcs/patches/20080722171501-ca946-160bad6c4f80be2b3b105ea9b913f1c0f9edb0ef.gz and /dev/null differ diff --git a/_darcs/patches/20080722173613-84dde-f074a753a46f36e4e174ea85b66c472d436efd62.gz b/_darcs/patches/20080722173613-84dde-f074a753a46f36e4e174ea85b66c472d436efd62.gz deleted file mode 100644 index 8c10609655..0000000000 Binary files a/_darcs/patches/20080722173613-84dde-f074a753a46f36e4e174ea85b66c472d436efd62.gz and /dev/null differ diff --git a/_darcs/patches/20080722182919-ca946-dce04d84290711066154567458da2dd3253dd957.gz b/_darcs/patches/20080722182919-ca946-dce04d84290711066154567458da2dd3253dd957.gz deleted file mode 100644 index 3ea78dc82d..0000000000 Binary files a/_darcs/patches/20080722182919-ca946-dce04d84290711066154567458da2dd3253dd957.gz and /dev/null differ diff --git a/_darcs/patches/20080722205315-533db-7ebf783855b8f1b302c52ec431b4025ef0983c82.gz b/_darcs/patches/20080722205315-533db-7ebf783855b8f1b302c52ec431b4025ef0983c82.gz deleted file mode 100644 index 78522e1cdd..0000000000 Binary files a/_darcs/patches/20080722205315-533db-7ebf783855b8f1b302c52ec431b4025ef0983c82.gz and /dev/null differ diff --git a/_darcs/patches/20080722205335-533db-d7b4a6c727305cffedc443b5bfa15779a685d03a.gz b/_darcs/patches/20080722205335-533db-d7b4a6c727305cffedc443b5bfa15779a685d03a.gz deleted file mode 100644 index 69fe76ef6a..0000000000 Binary files a/_darcs/patches/20080722205335-533db-d7b4a6c727305cffedc443b5bfa15779a685d03a.gz and /dev/null differ diff --git a/_darcs/patches/20080722212056-ca946-e4bd9eef8e3d8991414932e9fc7b8c9a31f818c0.gz b/_darcs/patches/20080722212056-ca946-e4bd9eef8e3d8991414932e9fc7b8c9a31f818c0.gz deleted file mode 100644 index 9f96c8a722..0000000000 Binary files a/_darcs/patches/20080722212056-ca946-e4bd9eef8e3d8991414932e9fc7b8c9a31f818c0.gz and /dev/null differ diff --git a/_darcs/patches/20080724171213-84dde-4668d0e57ce1766da7df22a5372aa94466b2fae5.gz b/_darcs/patches/20080724171213-84dde-4668d0e57ce1766da7df22a5372aa94466b2fae5.gz deleted file mode 100644 index d9758a85c1..0000000000 Binary files a/_darcs/patches/20080724171213-84dde-4668d0e57ce1766da7df22a5372aa94466b2fae5.gz and /dev/null differ diff --git a/_darcs/patches/20080724205456-84dde-855e907d68c9548e99efe1068b5a53733e5555bf.gz b/_darcs/patches/20080724205456-84dde-855e907d68c9548e99efe1068b5a53733e5555bf.gz deleted file mode 100644 index 3422399018..0000000000 Binary files a/_darcs/patches/20080724205456-84dde-855e907d68c9548e99efe1068b5a53733e5555bf.gz and /dev/null differ diff --git a/_darcs/patches/20080724231833-84dde-965c41484ecf9b85b1979e8ac76314a6b0d951ee.gz b/_darcs/patches/20080724231833-84dde-965c41484ecf9b85b1979e8ac76314a6b0d951ee.gz deleted file mode 100644 index 5b042d78fa..0000000000 Binary files a/_darcs/patches/20080724231833-84dde-965c41484ecf9b85b1979e8ac76314a6b0d951ee.gz and /dev/null differ diff --git a/_darcs/patches/20080724234533-533db-ec2e235401e7f670ee8094ba8d70dc95c3e6dd63.gz b/_darcs/patches/20080724234533-533db-ec2e235401e7f670ee8094ba8d70dc95c3e6dd63.gz deleted file mode 100644 index 256de7b818..0000000000 Binary files a/_darcs/patches/20080724234533-533db-ec2e235401e7f670ee8094ba8d70dc95c3e6dd63.gz and /dev/null differ diff --git a/_darcs/patches/20080724234601-533db-c9fe139144a5ec9f58b8ab612331fa31bd55967b.gz b/_darcs/patches/20080724234601-533db-c9fe139144a5ec9f58b8ab612331fa31bd55967b.gz deleted file mode 100644 index ce25d94aee..0000000000 Binary files a/_darcs/patches/20080724234601-533db-c9fe139144a5ec9f58b8ab612331fa31bd55967b.gz and /dev/null differ diff --git a/_darcs/patches/20080724234619-533db-015a2751ade3b5b8befb8a735fe89acd4742c4b9.gz b/_darcs/patches/20080724234619-533db-015a2751ade3b5b8befb8a735fe89acd4742c4b9.gz deleted file mode 100644 index 58fb0ba0d3..0000000000 Binary files a/_darcs/patches/20080724234619-533db-015a2751ade3b5b8befb8a735fe89acd4742c4b9.gz and /dev/null differ diff --git a/_darcs/patches/20080724234701-533db-ceab005e4c418a62d49af04e7835e963b67b03e0.gz b/_darcs/patches/20080724234701-533db-ceab005e4c418a62d49af04e7835e963b67b03e0.gz deleted file mode 100644 index 09fdd50ca1..0000000000 Binary files a/_darcs/patches/20080724234701-533db-ceab005e4c418a62d49af04e7835e963b67b03e0.gz and /dev/null differ diff --git a/_darcs/patches/20080724235508-84dde-8bac4d9dd772adb9f27d083b3d0b6ed5b7526dbf.gz b/_darcs/patches/20080724235508-84dde-8bac4d9dd772adb9f27d083b3d0b6ed5b7526dbf.gz deleted file mode 100644 index cdf5715f0a..0000000000 Binary files a/_darcs/patches/20080724235508-84dde-8bac4d9dd772adb9f27d083b3d0b6ed5b7526dbf.gz and /dev/null differ diff --git a/_darcs/patches/20080724235804-84dde-daf159e938289ad2d593d3825ce845bcbecac053.gz b/_darcs/patches/20080724235804-84dde-daf159e938289ad2d593d3825ce845bcbecac053.gz deleted file mode 100644 index ecdd1399ef..0000000000 Binary files a/_darcs/patches/20080724235804-84dde-daf159e938289ad2d593d3825ce845bcbecac053.gz and /dev/null differ diff --git a/_darcs/patches/20080726033958-84dde-09d117b3e5bb997ddfd6548806ce7a51a38434e7.gz b/_darcs/patches/20080726033958-84dde-09d117b3e5bb997ddfd6548806ce7a51a38434e7.gz deleted file mode 100644 index e93a567a5a..0000000000 Binary files a/_darcs/patches/20080726033958-84dde-09d117b3e5bb997ddfd6548806ce7a51a38434e7.gz and /dev/null differ diff --git a/_darcs/patches/20080726034209-84dde-02b25960aeb361319f8037b17aed6290d477cf7b.gz b/_darcs/patches/20080726034209-84dde-02b25960aeb361319f8037b17aed6290d477cf7b.gz deleted file mode 100644 index 7ab55c1346..0000000000 Binary files a/_darcs/patches/20080726034209-84dde-02b25960aeb361319f8037b17aed6290d477cf7b.gz and /dev/null differ diff --git a/_darcs/patches/20080727023516-84dde-7ebc4ccc8065dd1df9a414d5c39df70dbfebf487.gz b/_darcs/patches/20080727023516-84dde-7ebc4ccc8065dd1df9a414d5c39df70dbfebf487.gz deleted file mode 100644 index 5d3f41fc40..0000000000 Binary files a/_darcs/patches/20080727023516-84dde-7ebc4ccc8065dd1df9a414d5c39df70dbfebf487.gz and /dev/null differ diff --git a/_darcs/patches/20080728230221-ca946-68253052cfcd800a6da979e2a615d4847b1b05f3.gz b/_darcs/patches/20080728230221-ca946-68253052cfcd800a6da979e2a615d4847b1b05f3.gz deleted file mode 100644 index 02bec3fb8e..0000000000 Binary files a/_darcs/patches/20080728230221-ca946-68253052cfcd800a6da979e2a615d4847b1b05f3.gz and /dev/null differ diff --git a/_darcs/patches/20080729025156-84dde-f3d9d26db3a500ff04f3a4ce3a3ff1846b6eca08.gz b/_darcs/patches/20080729025156-84dde-f3d9d26db3a500ff04f3a4ce3a3ff1846b6eca08.gz deleted file mode 100644 index 046cbbb3ce..0000000000 Binary files a/_darcs/patches/20080729025156-84dde-f3d9d26db3a500ff04f3a4ce3a3ff1846b6eca08.gz and /dev/null differ diff --git a/_darcs/patches/20080729032845-84dde-9582cfd621142d99cddc8b91d2b619e984e263a9.gz b/_darcs/patches/20080729032845-84dde-9582cfd621142d99cddc8b91d2b619e984e263a9.gz deleted file mode 100644 index 7d8274c030..0000000000 Binary files a/_darcs/patches/20080729032845-84dde-9582cfd621142d99cddc8b91d2b619e984e263a9.gz and /dev/null differ diff --git a/_darcs/patches/20080729080641-533db-560337e226a02dd6fc671f090883d4bedd50eaaa.gz b/_darcs/patches/20080729080641-533db-560337e226a02dd6fc671f090883d4bedd50eaaa.gz deleted file mode 100644 index 40fb6b4fde..0000000000 Binary files a/_darcs/patches/20080729080641-533db-560337e226a02dd6fc671f090883d4bedd50eaaa.gz and /dev/null differ diff --git a/_darcs/patches/20080729182534-84dde-cd91e6914464a577208d569c2ff3f730f2deaf4a.gz b/_darcs/patches/20080729182534-84dde-cd91e6914464a577208d569c2ff3f730f2deaf4a.gz deleted file mode 100644 index 31d6d38249..0000000000 Binary files a/_darcs/patches/20080729182534-84dde-cd91e6914464a577208d569c2ff3f730f2deaf4a.gz and /dev/null differ diff --git a/_darcs/patches/20080729182558-84dde-3f3eab4da119cf57fb55896b114146fd72007824.gz b/_darcs/patches/20080729182558-84dde-3f3eab4da119cf57fb55896b114146fd72007824.gz deleted file mode 100644 index d774e66c40..0000000000 Binary files a/_darcs/patches/20080729182558-84dde-3f3eab4da119cf57fb55896b114146fd72007824.gz and /dev/null differ diff --git a/_darcs/patches/20080729183154-84dde-680e676d3f1f953ed0a8259598aaee04c012dc60.gz b/_darcs/patches/20080729183154-84dde-680e676d3f1f953ed0a8259598aaee04c012dc60.gz deleted file mode 100644 index 992fa13917..0000000000 Binary files a/_darcs/patches/20080729183154-84dde-680e676d3f1f953ed0a8259598aaee04c012dc60.gz and /dev/null differ diff --git a/_darcs/patches/20080729193533-84dde-1e7deeb0c7d7fb7686653be17d197e871aded8be.gz b/_darcs/patches/20080729193533-84dde-1e7deeb0c7d7fb7686653be17d197e871aded8be.gz deleted file mode 100644 index 784b44993c..0000000000 Binary files a/_darcs/patches/20080729193533-84dde-1e7deeb0c7d7fb7686653be17d197e871aded8be.gz and /dev/null differ diff --git a/_darcs/patches/20080729194246-84dde-4a47578d8727720097dab9362cb356bd8f4d2a7d.gz b/_darcs/patches/20080729194246-84dde-4a47578d8727720097dab9362cb356bd8f4d2a7d.gz deleted file mode 100644 index 811bef3a3f..0000000000 Binary files a/_darcs/patches/20080729194246-84dde-4a47578d8727720097dab9362cb356bd8f4d2a7d.gz and /dev/null differ diff --git a/_darcs/patches/20080729194457-84dde-fd0545edb3af519ccc43ee3ac50ad5eb14c35dad.gz b/_darcs/patches/20080729194457-84dde-fd0545edb3af519ccc43ee3ac50ad5eb14c35dad.gz deleted file mode 100644 index 1a54d7c183..0000000000 Binary files a/_darcs/patches/20080729194457-84dde-fd0545edb3af519ccc43ee3ac50ad5eb14c35dad.gz and /dev/null differ diff --git a/_darcs/patches/20080729194735-84dde-246582a47d4a384375d153bff0e724c778c4b3af.gz b/_darcs/patches/20080729194735-84dde-246582a47d4a384375d153bff0e724c778c4b3af.gz deleted file mode 100644 index 312879f034..0000000000 Binary files a/_darcs/patches/20080729194735-84dde-246582a47d4a384375d153bff0e724c778c4b3af.gz and /dev/null differ diff --git a/_darcs/patches/20080729195055-84dde-f7e6200cc81deea2399ce7c5d5cb8cddcc32ae2d.gz b/_darcs/patches/20080729195055-84dde-f7e6200cc81deea2399ce7c5d5cb8cddcc32ae2d.gz deleted file mode 100644 index 704d64d5ea..0000000000 Binary files a/_darcs/patches/20080729195055-84dde-f7e6200cc81deea2399ce7c5d5cb8cddcc32ae2d.gz and /dev/null differ diff --git a/_darcs/patches/20080729195204-84dde-fbea8ce57aa1c76816f72c4a20fabbbb2d37045d.gz b/_darcs/patches/20080729195204-84dde-fbea8ce57aa1c76816f72c4a20fabbbb2d37045d.gz deleted file mode 100644 index 3e2998b1d7..0000000000 Binary files a/_darcs/patches/20080729195204-84dde-fbea8ce57aa1c76816f72c4a20fabbbb2d37045d.gz and /dev/null differ diff --git a/_darcs/patches/20080729195307-84dde-8e9100be281e32f38c75d5872489505805b44a2a.gz b/_darcs/patches/20080729195307-84dde-8e9100be281e32f38c75d5872489505805b44a2a.gz deleted file mode 100644 index b08a93182b..0000000000 Binary files a/_darcs/patches/20080729195307-84dde-8e9100be281e32f38c75d5872489505805b44a2a.gz and /dev/null differ diff --git a/_darcs/patches/20080729195405-84dde-101cca52afaacf38b64282aebb07e5698fd02b11.gz b/_darcs/patches/20080729195405-84dde-101cca52afaacf38b64282aebb07e5698fd02b11.gz deleted file mode 100644 index 1e10c93a2b..0000000000 Binary files a/_darcs/patches/20080729195405-84dde-101cca52afaacf38b64282aebb07e5698fd02b11.gz and /dev/null differ diff --git a/_darcs/patches/20080729195512-84dde-acff6fb05edfb88bfdb2aaa482792cac1f975d94.gz b/_darcs/patches/20080729195512-84dde-acff6fb05edfb88bfdb2aaa482792cac1f975d94.gz deleted file mode 100644 index ab3cd64588..0000000000 Binary files a/_darcs/patches/20080729195512-84dde-acff6fb05edfb88bfdb2aaa482792cac1f975d94.gz and /dev/null differ diff --git a/_darcs/patches/20080730022856-84dde-f19e4ff5d5ae2603b63b8aebd8f878ec90b3ce22.gz b/_darcs/patches/20080730022856-84dde-f19e4ff5d5ae2603b63b8aebd8f878ec90b3ce22.gz deleted file mode 100644 index 3035c988e0..0000000000 Binary files a/_darcs/patches/20080730022856-84dde-f19e4ff5d5ae2603b63b8aebd8f878ec90b3ce22.gz and /dev/null differ diff --git a/_darcs/patches/20080730025052-84dde-9669e6a7df50bf5762bd3e175ed1471bff9d446c.gz b/_darcs/patches/20080730025052-84dde-9669e6a7df50bf5762bd3e175ed1471bff9d446c.gz deleted file mode 100644 index a52b36b5df..0000000000 Binary files a/_darcs/patches/20080730025052-84dde-9669e6a7df50bf5762bd3e175ed1471bff9d446c.gz and /dev/null differ diff --git a/_darcs/patches/20080730030012-84dde-9ceea12e90a4b4b4bbe35cb6cb50b6bcbb6085b7.gz b/_darcs/patches/20080730030012-84dde-9ceea12e90a4b4b4bbe35cb6cb50b6bcbb6085b7.gz deleted file mode 100644 index 86ce5f64e9..0000000000 Binary files a/_darcs/patches/20080730030012-84dde-9ceea12e90a4b4b4bbe35cb6cb50b6bcbb6085b7.gz and /dev/null differ diff --git a/_darcs/patches/20080730032651-84dde-0685ec5f899129bc75745ca8d1d083f56f3f1ff5.gz b/_darcs/patches/20080730032651-84dde-0685ec5f899129bc75745ca8d1d083f56f3f1ff5.gz deleted file mode 100644 index f55c58dd68..0000000000 Binary files a/_darcs/patches/20080730032651-84dde-0685ec5f899129bc75745ca8d1d083f56f3f1ff5.gz and /dev/null differ diff --git a/_darcs/patches/20080730032918-84dde-a38f8731840e0dcc82a4ced768bf85069e15a133.gz b/_darcs/patches/20080730032918-84dde-a38f8731840e0dcc82a4ced768bf85069e15a133.gz deleted file mode 100644 index 729b2c861a..0000000000 Binary files a/_darcs/patches/20080730032918-84dde-a38f8731840e0dcc82a4ced768bf85069e15a133.gz and /dev/null differ diff --git a/_darcs/patches/20080730033304-84dde-159bd4582731d2adfb8b7306ee6eb44ce25d256a.gz b/_darcs/patches/20080730033304-84dde-159bd4582731d2adfb8b7306ee6eb44ce25d256a.gz deleted file mode 100644 index 1354f04a8e..0000000000 Binary files a/_darcs/patches/20080730033304-84dde-159bd4582731d2adfb8b7306ee6eb44ce25d256a.gz and /dev/null differ diff --git a/_darcs/patches/20080730033804-84dde-1c747a7a6ee85f885926a42905b0b910fd1dec50.gz b/_darcs/patches/20080730033804-84dde-1c747a7a6ee85f885926a42905b0b910fd1dec50.gz deleted file mode 100644 index 25d445a9d1..0000000000 Binary files a/_darcs/patches/20080730033804-84dde-1c747a7a6ee85f885926a42905b0b910fd1dec50.gz and /dev/null differ diff --git a/_darcs/patches/20080730033939-84dde-21b90f9c8b5fcede12a71f12fee20a4faaf1c549.gz b/_darcs/patches/20080730033939-84dde-21b90f9c8b5fcede12a71f12fee20a4faaf1c549.gz deleted file mode 100644 index ee8a86d2f0..0000000000 Binary files a/_darcs/patches/20080730033939-84dde-21b90f9c8b5fcede12a71f12fee20a4faaf1c549.gz and /dev/null differ diff --git a/_darcs/patches/20080730035446-84dde-8ce202ea6956bb49e1be98307136fc299862ab9b.gz b/_darcs/patches/20080730035446-84dde-8ce202ea6956bb49e1be98307136fc299862ab9b.gz deleted file mode 100644 index 4d5e92a0a1..0000000000 Binary files a/_darcs/patches/20080730035446-84dde-8ce202ea6956bb49e1be98307136fc299862ab9b.gz and /dev/null differ diff --git a/_darcs/patches/20080730191753-84dde-488f6ec3593072996a5227d2a02c079d9ba14032.gz b/_darcs/patches/20080730191753-84dde-488f6ec3593072996a5227d2a02c079d9ba14032.gz deleted file mode 100644 index d3177062f0..0000000000 Binary files a/_darcs/patches/20080730191753-84dde-488f6ec3593072996a5227d2a02c079d9ba14032.gz and /dev/null differ diff --git a/_darcs/patches/20080730213226-ca946-eb89bad91eee630ac286d537ba42f0042b8d2109.gz b/_darcs/patches/20080730213226-ca946-eb89bad91eee630ac286d537ba42f0042b8d2109.gz deleted file mode 100644 index e6aeee3122..0000000000 Binary files a/_darcs/patches/20080730213226-ca946-eb89bad91eee630ac286d537ba42f0042b8d2109.gz and /dev/null differ diff --git a/_darcs/patches/20080731004922-533db-96d62078f226ffc18db71d222d1c47524ac1319d.gz b/_darcs/patches/20080731004922-533db-96d62078f226ffc18db71d222d1c47524ac1319d.gz deleted file mode 100644 index ecfb6aaf42..0000000000 Binary files a/_darcs/patches/20080731004922-533db-96d62078f226ffc18db71d222d1c47524ac1319d.gz and /dev/null differ diff --git a/_darcs/patches/20080731020433-84dde-641127c2de488087c1525fc773d544ba5b136550.gz b/_darcs/patches/20080731020433-84dde-641127c2de488087c1525fc773d544ba5b136550.gz deleted file mode 100644 index 10d1e39170..0000000000 Binary files a/_darcs/patches/20080731020433-84dde-641127c2de488087c1525fc773d544ba5b136550.gz and /dev/null differ diff --git a/_darcs/patches/20080731020933-84dde-80d7abb2d681a9f748b16f6245d33396e1f899b2.gz b/_darcs/patches/20080731020933-84dde-80d7abb2d681a9f748b16f6245d33396e1f899b2.gz deleted file mode 100644 index 9ce9d452cb..0000000000 Binary files a/_darcs/patches/20080731020933-84dde-80d7abb2d681a9f748b16f6245d33396e1f899b2.gz and /dev/null differ diff --git a/_darcs/patches/20080731031652-d018c-23797e9624816572114e2e497e3618d03fac6968.gz b/_darcs/patches/20080731031652-d018c-23797e9624816572114e2e497e3618d03fac6968.gz deleted file mode 100644 index 847b2703e2..0000000000 Binary files a/_darcs/patches/20080731031652-d018c-23797e9624816572114e2e497e3618d03fac6968.gz and /dev/null differ diff --git a/_darcs/patches/20080731033641-84dde-188b32028a6a44ee0582f50b373338ec61593560.gz b/_darcs/patches/20080731033641-84dde-188b32028a6a44ee0582f50b373338ec61593560.gz deleted file mode 100644 index 3cbe6e9e82..0000000000 Binary files a/_darcs/patches/20080731033641-84dde-188b32028a6a44ee0582f50b373338ec61593560.gz and /dev/null differ diff --git a/_darcs/patches/20080731040703-84dde-c90f3afa2b15474331edb39f38ab1123978b4b09.gz b/_darcs/patches/20080731040703-84dde-c90f3afa2b15474331edb39f38ab1123978b4b09.gz deleted file mode 100644 index 43233fa631..0000000000 Binary files a/_darcs/patches/20080731040703-84dde-c90f3afa2b15474331edb39f38ab1123978b4b09.gz and /dev/null differ diff --git a/_darcs/patches/20080731041000-84dde-09a4b1d69cc42b7380582d1a2f5d718b6e57dcd2.gz b/_darcs/patches/20080731041000-84dde-09a4b1d69cc42b7380582d1a2f5d718b6e57dcd2.gz deleted file mode 100644 index 916fd48e3e..0000000000 Binary files a/_darcs/patches/20080731041000-84dde-09a4b1d69cc42b7380582d1a2f5d718b6e57dcd2.gz and /dev/null differ diff --git a/_darcs/patches/20080731050632-34904-db9fc10c55321b81a33732a2062bf72914927cec.gz b/_darcs/patches/20080731050632-34904-db9fc10c55321b81a33732a2062bf72914927cec.gz deleted file mode 100644 index e87cfb5415..0000000000 Binary files a/_darcs/patches/20080731050632-34904-db9fc10c55321b81a33732a2062bf72914927cec.gz and /dev/null differ diff --git a/_darcs/patches/20080731050646-34904-b17417e7a20088b81fd47484c29bb0922de94acf.gz b/_darcs/patches/20080731050646-34904-b17417e7a20088b81fd47484c29bb0922de94acf.gz deleted file mode 100644 index 336d3dd437..0000000000 Binary files a/_darcs/patches/20080731050646-34904-b17417e7a20088b81fd47484c29bb0922de94acf.gz and /dev/null differ diff --git a/_darcs/patches/20080731132302-84dde-4b5512a19202fb055338a0463ce2ecfac1c78778.gz b/_darcs/patches/20080731132302-84dde-4b5512a19202fb055338a0463ce2ecfac1c78778.gz deleted file mode 100644 index ff5cb343ac..0000000000 Binary files a/_darcs/patches/20080731132302-84dde-4b5512a19202fb055338a0463ce2ecfac1c78778.gz and /dev/null differ diff --git a/_darcs/patches/20080731152731-84dde-dc6bf652c38ae9a52950e65d7cb310f870a70640.gz b/_darcs/patches/20080731152731-84dde-dc6bf652c38ae9a52950e65d7cb310f870a70640.gz deleted file mode 100644 index 6b85e2091a..0000000000 Binary files a/_darcs/patches/20080731152731-84dde-dc6bf652c38ae9a52950e65d7cb310f870a70640.gz and /dev/null differ diff --git a/_darcs/patches/20080731224911-ca946-1cb52c7592d48174437c1896c41a4dd853a9e5c7.gz b/_darcs/patches/20080731224911-ca946-1cb52c7592d48174437c1896c41a4dd853a9e5c7.gz deleted file mode 100644 index 2037ae02da..0000000000 Binary files a/_darcs/patches/20080731224911-ca946-1cb52c7592d48174437c1896c41a4dd853a9e5c7.gz and /dev/null differ diff --git a/_darcs/patches/20080801164623-b1e77-1e8786743cc02e3d6f2320edff0f2f474f4ed76b.gz b/_darcs/patches/20080801164623-b1e77-1e8786743cc02e3d6f2320edff0f2f474f4ed76b.gz deleted file mode 100644 index aae1e450f1..0000000000 Binary files a/_darcs/patches/20080801164623-b1e77-1e8786743cc02e3d6f2320edff0f2f474f4ed76b.gz and /dev/null differ diff --git a/_darcs/patches/20080803232102-84dde-6a070b8ff0d7fe25b8a69e0e9e4f8caa2c335f9b.gz b/_darcs/patches/20080803232102-84dde-6a070b8ff0d7fe25b8a69e0e9e4f8caa2c335f9b.gz deleted file mode 100644 index eba955ce05..0000000000 Binary files a/_darcs/patches/20080803232102-84dde-6a070b8ff0d7fe25b8a69e0e9e4f8caa2c335f9b.gz and /dev/null differ diff --git a/_darcs/patches/20080804130914-84dde-77e1683ec76b26e9a3838d82cbe7827246db22dd.gz b/_darcs/patches/20080804130914-84dde-77e1683ec76b26e9a3838d82cbe7827246db22dd.gz deleted file mode 100644 index ca12eef2c6..0000000000 Binary files a/_darcs/patches/20080804130914-84dde-77e1683ec76b26e9a3838d82cbe7827246db22dd.gz and /dev/null differ diff --git a/_darcs/patches/20080804132001-84dde-e6fae9837f87d80356317e4815516dd9ff03e674.gz b/_darcs/patches/20080804132001-84dde-e6fae9837f87d80356317e4815516dd9ff03e674.gz deleted file mode 100644 index 1ce6c897d0..0000000000 Binary files a/_darcs/patches/20080804132001-84dde-e6fae9837f87d80356317e4815516dd9ff03e674.gz and /dev/null differ diff --git a/_darcs/patches/20080804133253-84dde-4b1ceb6feabaaad503f8777d6f21545b2bb87e85.gz b/_darcs/patches/20080804133253-84dde-4b1ceb6feabaaad503f8777d6f21545b2bb87e85.gz deleted file mode 100644 index 4a395cc35f..0000000000 Binary files a/_darcs/patches/20080804133253-84dde-4b1ceb6feabaaad503f8777d6f21545b2bb87e85.gz and /dev/null differ diff --git a/_darcs/patches/20080804133727-edabd-4bd34431d0ab8519ec512b59be354720925da9a0.gz b/_darcs/patches/20080804133727-edabd-4bd34431d0ab8519ec512b59be354720925da9a0.gz deleted file mode 100644 index e5142acc2f..0000000000 Binary files a/_darcs/patches/20080804133727-edabd-4bd34431d0ab8519ec512b59be354720925da9a0.gz and /dev/null differ diff --git a/_darcs/patches/20080804133933-84dde-189f0ee39bf1000fbb648144fadcf9a9263c4b38.gz b/_darcs/patches/20080804133933-84dde-189f0ee39bf1000fbb648144fadcf9a9263c4b38.gz deleted file mode 100644 index fee856c722..0000000000 Binary files a/_darcs/patches/20080804133933-84dde-189f0ee39bf1000fbb648144fadcf9a9263c4b38.gz and /dev/null differ diff --git a/_darcs/patches/20080804190749-84dde-0b6d007e3da6d468e7dbe1c859f2c5c753726e8a.gz b/_darcs/patches/20080804190749-84dde-0b6d007e3da6d468e7dbe1c859f2c5c753726e8a.gz deleted file mode 100644 index b2b482166f..0000000000 Binary files a/_darcs/patches/20080804190749-84dde-0b6d007e3da6d468e7dbe1c859f2c5c753726e8a.gz and /dev/null differ diff --git a/_darcs/patches/20080805020520-533db-774b253ac10ae71e7d8d9b48e654736039fa5ae3.gz b/_darcs/patches/20080805020520-533db-774b253ac10ae71e7d8d9b48e654736039fa5ae3.gz deleted file mode 100644 index 78dc74e2a0..0000000000 Binary files a/_darcs/patches/20080805020520-533db-774b253ac10ae71e7d8d9b48e654736039fa5ae3.gz and /dev/null differ diff --git a/_darcs/patches/20080806002134-84dde-1674375f840a61ce469be784805a969beff35f43.gz b/_darcs/patches/20080806002134-84dde-1674375f840a61ce469be784805a969beff35f43.gz deleted file mode 100644 index a4cddeda58..0000000000 Binary files a/_darcs/patches/20080806002134-84dde-1674375f840a61ce469be784805a969beff35f43.gz and /dev/null differ diff --git a/_darcs/patches/20080806034515-84dde-e32cbfec2890f50b610d0441659180038b060473.gz b/_darcs/patches/20080806034515-84dde-e32cbfec2890f50b610d0441659180038b060473.gz deleted file mode 100644 index 9f05b0fdac..0000000000 Binary files a/_darcs/patches/20080806034515-84dde-e32cbfec2890f50b610d0441659180038b060473.gz and /dev/null differ diff --git a/_darcs/patches/20080806040433-84dde-a504751a8a0329a37d866e68a9ecda6a5d629c55.gz b/_darcs/patches/20080806040433-84dde-a504751a8a0329a37d866e68a9ecda6a5d629c55.gz deleted file mode 100644 index c420ccd88c..0000000000 Binary files a/_darcs/patches/20080806040433-84dde-a504751a8a0329a37d866e68a9ecda6a5d629c55.gz and /dev/null differ diff --git a/_darcs/patches/20080806122119-84dde-41fb0645db58ac5ce74b485c8cb68f7275e74915.gz b/_darcs/patches/20080806122119-84dde-41fb0645db58ac5ce74b485c8cb68f7275e74915.gz deleted file mode 100644 index 47f872b092..0000000000 Binary files a/_darcs/patches/20080806122119-84dde-41fb0645db58ac5ce74b485c8cb68f7275e74915.gz and /dev/null differ diff --git a/_darcs/patches/20080806161748-84dde-2d2e6a3ed224abfc440fa6dd2533dd6c4b8231d0.gz b/_darcs/patches/20080806161748-84dde-2d2e6a3ed224abfc440fa6dd2533dd6c4b8231d0.gz deleted file mode 100644 index fb5a3c46a1..0000000000 Binary files a/_darcs/patches/20080806161748-84dde-2d2e6a3ed224abfc440fa6dd2533dd6c4b8231d0.gz and /dev/null differ diff --git a/_darcs/patches/20080807234227-84dde-a64619c71de020aa2284ca1a36ea2a71ff8b29a6.gz b/_darcs/patches/20080807234227-84dde-a64619c71de020aa2284ca1a36ea2a71ff8b29a6.gz deleted file mode 100644 index 5e59aea219..0000000000 Binary files a/_darcs/patches/20080807234227-84dde-a64619c71de020aa2284ca1a36ea2a71ff8b29a6.gz and /dev/null differ diff --git a/_darcs/patches/20080809001240-ca946-0a8ec8b965876e1da90c675ad596b32906a21d93.gz b/_darcs/patches/20080809001240-ca946-0a8ec8b965876e1da90c675ad596b32906a21d93.gz deleted file mode 100644 index 3664ca6019..0000000000 Binary files a/_darcs/patches/20080809001240-ca946-0a8ec8b965876e1da90c675ad596b32906a21d93.gz and /dev/null differ diff --git a/_darcs/patches/20080811175318-84dde-080db6e81589e794761daab868706704d39e2f1b.gz b/_darcs/patches/20080811175318-84dde-080db6e81589e794761daab868706704d39e2f1b.gz deleted file mode 100644 index 005e496a32..0000000000 Binary files a/_darcs/patches/20080811175318-84dde-080db6e81589e794761daab868706704d39e2f1b.gz and /dev/null differ diff --git a/_darcs/patches/20080811175820-84dde-f3d934495fa90fadde5f7d5d0c37c5f2a575a9d8.gz b/_darcs/patches/20080811175820-84dde-f3d934495fa90fadde5f7d5d0c37c5f2a575a9d8.gz deleted file mode 100644 index 42dc2e6147..0000000000 Binary files a/_darcs/patches/20080811175820-84dde-f3d934495fa90fadde5f7d5d0c37c5f2a575a9d8.gz and /dev/null differ diff --git a/_darcs/patches/20080811181158-84dde-338f926bd4c161ea55ef8600fac254f216413ad4.gz b/_darcs/patches/20080811181158-84dde-338f926bd4c161ea55ef8600fac254f216413ad4.gz deleted file mode 100644 index 186d360ff2..0000000000 Binary files a/_darcs/patches/20080811181158-84dde-338f926bd4c161ea55ef8600fac254f216413ad4.gz and /dev/null differ diff --git a/_darcs/patches/20080811200058-84dde-8a45ed98a331d3b53ba8e50494e44f52928c7a04.gz b/_darcs/patches/20080811200058-84dde-8a45ed98a331d3b53ba8e50494e44f52928c7a04.gz deleted file mode 100644 index cb51988a5f..0000000000 Binary files a/_darcs/patches/20080811200058-84dde-8a45ed98a331d3b53ba8e50494e44f52928c7a04.gz and /dev/null differ diff --git a/_darcs/patches/20080812011600-84dde-680d39ef8379605febd16ed52c529711e8e1ccc9.gz b/_darcs/patches/20080812011600-84dde-680d39ef8379605febd16ed52c529711e8e1ccc9.gz deleted file mode 100644 index f6a91a00a4..0000000000 Binary files a/_darcs/patches/20080812011600-84dde-680d39ef8379605febd16ed52c529711e8e1ccc9.gz and /dev/null differ diff --git a/_darcs/patches/20080812121832-84dde-dad220ddc4c67e017aa10e47e3aed85392d606ca.gz b/_darcs/patches/20080812121832-84dde-dad220ddc4c67e017aa10e47e3aed85392d606ca.gz deleted file mode 100644 index 0604686929..0000000000 Binary files a/_darcs/patches/20080812121832-84dde-dad220ddc4c67e017aa10e47e3aed85392d606ca.gz and /dev/null differ diff --git a/_darcs/patches/20080813142637-84dde-9530d153eceb6bbedbb692755aa5c96d65d8e071.gz b/_darcs/patches/20080813142637-84dde-9530d153eceb6bbedbb692755aa5c96d65d8e071.gz deleted file mode 100644 index 594eef85e5..0000000000 Binary files a/_darcs/patches/20080813142637-84dde-9530d153eceb6bbedbb692755aa5c96d65d8e071.gz and /dev/null differ diff --git a/_darcs/patches/20080813154603-84dde-fc1cf32ab5617c11b6cbe9ad084dac32b0db315a.gz b/_darcs/patches/20080813154603-84dde-fc1cf32ab5617c11b6cbe9ad084dac32b0db315a.gz deleted file mode 100644 index e860d0ab04..0000000000 Binary files a/_darcs/patches/20080813154603-84dde-fc1cf32ab5617c11b6cbe9ad084dac32b0db315a.gz and /dev/null differ diff --git a/_darcs/patches/20080813180239-84dde-535ac9147c988e3617a68e4638367bdcef8fe5be.gz b/_darcs/patches/20080813180239-84dde-535ac9147c988e3617a68e4638367bdcef8fe5be.gz deleted file mode 100644 index 460fa43638..0000000000 Binary files a/_darcs/patches/20080813180239-84dde-535ac9147c988e3617a68e4638367bdcef8fe5be.gz and /dev/null differ diff --git a/_darcs/patches/20080813193327-ca946-c0160fbcc04771e39e303470d3418e84973a8189.gz b/_darcs/patches/20080813193327-ca946-c0160fbcc04771e39e303470d3418e84973a8189.gz deleted file mode 100644 index 48e95b4ec6..0000000000 Binary files a/_darcs/patches/20080813193327-ca946-c0160fbcc04771e39e303470d3418e84973a8189.gz and /dev/null differ diff --git a/_darcs/patches/20080813195408-84dde-a1de441ce50759f50b2c88b45d626dc4e0892d31.gz b/_darcs/patches/20080813195408-84dde-a1de441ce50759f50b2c88b45d626dc4e0892d31.gz deleted file mode 100644 index 561643db37..0000000000 Binary files a/_darcs/patches/20080813195408-84dde-a1de441ce50759f50b2c88b45d626dc4e0892d31.gz and /dev/null differ diff --git a/_darcs/patches/20080814002038-84dde-8505d4e083056b770db128129a95be639d8e7f0a.gz b/_darcs/patches/20080814002038-84dde-8505d4e083056b770db128129a95be639d8e7f0a.gz deleted file mode 100644 index 499d0a23ec..0000000000 Binary files a/_darcs/patches/20080814002038-84dde-8505d4e083056b770db128129a95be639d8e7f0a.gz and /dev/null differ diff --git a/_darcs/patches/20080814083856-f6e2c-0e56895260fb96dedaa6a663db7e906fee2f7b05.gz b/_darcs/patches/20080814083856-f6e2c-0e56895260fb96dedaa6a663db7e906fee2f7b05.gz deleted file mode 100644 index fe2ba6c674..0000000000 Binary files a/_darcs/patches/20080814083856-f6e2c-0e56895260fb96dedaa6a663db7e906fee2f7b05.gz and /dev/null differ diff --git a/_darcs/patches/20080815185317-ca946-11c3f9f7255180d5d6ea7b115b3e33b2abb7fe93.gz b/_darcs/patches/20080815185317-ca946-11c3f9f7255180d5d6ea7b115b3e33b2abb7fe93.gz deleted file mode 100644 index 80f44b8764..0000000000 Binary files a/_darcs/patches/20080815185317-ca946-11c3f9f7255180d5d6ea7b115b3e33b2abb7fe93.gz and /dev/null differ diff --git a/_darcs/patches/20080816083422-f6e2c-fb8b4e0581719bd8c3f433e661ec9742e1b84cbc.gz b/_darcs/patches/20080816083422-f6e2c-fb8b4e0581719bd8c3f433e661ec9742e1b84cbc.gz deleted file mode 100644 index b8cd5e8b3d..0000000000 Binary files a/_darcs/patches/20080816083422-f6e2c-fb8b4e0581719bd8c3f433e661ec9742e1b84cbc.gz and /dev/null differ diff --git a/_darcs/patches/20080816151057-84dde-e9df2c91a2711b235aa936a28e250715fc7c6d50.gz b/_darcs/patches/20080816151057-84dde-e9df2c91a2711b235aa936a28e250715fc7c6d50.gz deleted file mode 100644 index 978d9bcdfb..0000000000 Binary files a/_darcs/patches/20080816151057-84dde-e9df2c91a2711b235aa936a28e250715fc7c6d50.gz and /dev/null differ diff --git a/_darcs/patches/20080816153917-f6e2c-e9a3111a80dfda5755c5fa3a4ea00d880afb08c2.gz b/_darcs/patches/20080816153917-f6e2c-e9a3111a80dfda5755c5fa3a4ea00d880afb08c2.gz deleted file mode 100644 index b12ee4c3c8..0000000000 Binary files a/_darcs/patches/20080816153917-f6e2c-e9a3111a80dfda5755c5fa3a4ea00d880afb08c2.gz and /dev/null differ diff --git a/_darcs/patches/20080816181321-18f16-f9e3f6a71141232c019bf5290f6acbd747fa20df.gz b/_darcs/patches/20080816181321-18f16-f9e3f6a71141232c019bf5290f6acbd747fa20df.gz deleted file mode 100644 index 6172ce1b6e..0000000000 Binary files a/_darcs/patches/20080816181321-18f16-f9e3f6a71141232c019bf5290f6acbd747fa20df.gz and /dev/null differ diff --git a/_darcs/patches/20080816181845-18f16-5f7a91b4ea706605d1890513b8a44fcb0182d66b.gz b/_darcs/patches/20080816181845-18f16-5f7a91b4ea706605d1890513b8a44fcb0182d66b.gz deleted file mode 100644 index 6f8281dbf5..0000000000 Binary files a/_darcs/patches/20080816181845-18f16-5f7a91b4ea706605d1890513b8a44fcb0182d66b.gz and /dev/null differ diff --git a/_darcs/patches/20080816200437-18f16-360a19784be7e063015fa71580e09d740d6a72b5.gz b/_darcs/patches/20080816200437-18f16-360a19784be7e063015fa71580e09d740d6a72b5.gz deleted file mode 100644 index b8f745b429..0000000000 Binary files a/_darcs/patches/20080816200437-18f16-360a19784be7e063015fa71580e09d740d6a72b5.gz and /dev/null differ diff --git a/_darcs/patches/20080817150244-84dde-7f2e4dec226aa9754dfc970386e62076f952db72.gz b/_darcs/patches/20080817150244-84dde-7f2e4dec226aa9754dfc970386e62076f952db72.gz deleted file mode 100644 index d29c5c7cec..0000000000 Binary files a/_darcs/patches/20080817150244-84dde-7f2e4dec226aa9754dfc970386e62076f952db72.gz and /dev/null differ diff --git a/_darcs/patches/20080817151728-84dde-6d5557db098a1273c0b9e3451b814e8d57759e57.gz b/_darcs/patches/20080817151728-84dde-6d5557db098a1273c0b9e3451b814e8d57759e57.gz deleted file mode 100644 index 0e8e92768f..0000000000 Binary files a/_darcs/patches/20080817151728-84dde-6d5557db098a1273c0b9e3451b814e8d57759e57.gz and /dev/null differ diff --git a/_darcs/patches/20080817151751-84dde-b3fc3ee57872f53a465fd9b45f4255e5e3be3450.gz b/_darcs/patches/20080817151751-84dde-b3fc3ee57872f53a465fd9b45f4255e5e3be3450.gz deleted file mode 100644 index 0c7feb3e0a..0000000000 Binary files a/_darcs/patches/20080817151751-84dde-b3fc3ee57872f53a465fd9b45f4255e5e3be3450.gz and /dev/null differ diff --git a/_darcs/patches/20080817152108-84dde-9ca19fbe374ad021771f175f587f19902b3f927b.gz b/_darcs/patches/20080817152108-84dde-9ca19fbe374ad021771f175f587f19902b3f927b.gz deleted file mode 100644 index 7c9d079f65..0000000000 Binary files a/_darcs/patches/20080817152108-84dde-9ca19fbe374ad021771f175f587f19902b3f927b.gz and /dev/null differ diff --git a/_darcs/patches/20080817152133-84dde-36313e2aa0f37dd43ae8ed17c1194e4a2289a2eb.gz b/_darcs/patches/20080817152133-84dde-36313e2aa0f37dd43ae8ed17c1194e4a2289a2eb.gz deleted file mode 100644 index d1647b1e17..0000000000 Binary files a/_darcs/patches/20080817152133-84dde-36313e2aa0f37dd43ae8ed17c1194e4a2289a2eb.gz and /dev/null differ diff --git a/_darcs/patches/20080817152419-84dde-5df1554695bd8560e5affa0ff74f7d0ab7c7c3ff.gz b/_darcs/patches/20080817152419-84dde-5df1554695bd8560e5affa0ff74f7d0ab7c7c3ff.gz deleted file mode 100644 index 8dc2b9af66..0000000000 Binary files a/_darcs/patches/20080817152419-84dde-5df1554695bd8560e5affa0ff74f7d0ab7c7c3ff.gz and /dev/null differ diff --git a/_darcs/patches/20080817153024-84dde-ca566d665fff08d52f1f9796e2731417585d4c6f.gz b/_darcs/patches/20080817153024-84dde-ca566d665fff08d52f1f9796e2731417585d4c6f.gz deleted file mode 100644 index 7c069bde91..0000000000 Binary files a/_darcs/patches/20080817153024-84dde-ca566d665fff08d52f1f9796e2731417585d4c6f.gz and /dev/null differ diff --git a/_darcs/patches/20080817153143-84dde-1ff56e4066c0905e8846876bc9de22eca999f826.gz b/_darcs/patches/20080817153143-84dde-1ff56e4066c0905e8846876bc9de22eca999f826.gz deleted file mode 100644 index 5cbfd94867..0000000000 Binary files a/_darcs/patches/20080817153143-84dde-1ff56e4066c0905e8846876bc9de22eca999f826.gz and /dev/null differ diff --git a/_darcs/patches/20080817160451-84dde-dc1813f3c555e25f796596128fed4344c296ec58.gz b/_darcs/patches/20080817160451-84dde-dc1813f3c555e25f796596128fed4344c296ec58.gz deleted file mode 100644 index 2fd36f27f0..0000000000 Binary files a/_darcs/patches/20080817160451-84dde-dc1813f3c555e25f796596128fed4344c296ec58.gz and /dev/null differ diff --git a/_darcs/patches/20080817163324-84dde-0b7f3449b7f6e96704518340351ada9ec0e56bbb.gz b/_darcs/patches/20080817163324-84dde-0b7f3449b7f6e96704518340351ada9ec0e56bbb.gz deleted file mode 100644 index 51d3eebd22..0000000000 Binary files a/_darcs/patches/20080817163324-84dde-0b7f3449b7f6e96704518340351ada9ec0e56bbb.gz and /dev/null differ diff --git a/_darcs/patches/20080817192710-84dde-47e8da809c930c7c4528e3cb920d9a448e56d4c0.gz b/_darcs/patches/20080817192710-84dde-47e8da809c930c7c4528e3cb920d9a448e56d4c0.gz deleted file mode 100644 index beba7c1693..0000000000 Binary files a/_darcs/patches/20080817192710-84dde-47e8da809c930c7c4528e3cb920d9a448e56d4c0.gz and /dev/null differ diff --git a/_darcs/patches/20080818025549-84dde-0277e3c0b58a6d223f892376cfc9f5aa9df9714b.gz b/_darcs/patches/20080818025549-84dde-0277e3c0b58a6d223f892376cfc9f5aa9df9714b.gz deleted file mode 100644 index b5e180cc52..0000000000 Binary files a/_darcs/patches/20080818025549-84dde-0277e3c0b58a6d223f892376cfc9f5aa9df9714b.gz and /dev/null differ diff --git a/_darcs/patches/20080818033049-84dde-eb6098e0ae84d081418536ceb6964a65bcbf4953.gz b/_darcs/patches/20080818033049-84dde-eb6098e0ae84d081418536ceb6964a65bcbf4953.gz deleted file mode 100644 index 0a89554eea..0000000000 Binary files a/_darcs/patches/20080818033049-84dde-eb6098e0ae84d081418536ceb6964a65bcbf4953.gz and /dev/null differ diff --git a/_darcs/patches/20080818213031-f6e2c-760cbb6f91485bbb8b29156c06a16e9ad6cd0acf.gz b/_darcs/patches/20080818213031-f6e2c-760cbb6f91485bbb8b29156c06a16e9ad6cd0acf.gz deleted file mode 100644 index 660d8574a4..0000000000 Binary files a/_darcs/patches/20080818213031-f6e2c-760cbb6f91485bbb8b29156c06a16e9ad6cd0acf.gz and /dev/null differ diff --git a/_darcs/patches/20080819002903-462f3-94e62891db9b9de049a918034742e545f663e840.gz b/_darcs/patches/20080819002903-462f3-94e62891db9b9de049a918034742e545f663e840.gz deleted file mode 100644 index 195d49bd26..0000000000 Binary files a/_darcs/patches/20080819002903-462f3-94e62891db9b9de049a918034742e545f663e840.gz and /dev/null differ diff --git a/_darcs/patches/20080819003931-462f3-4b5b838a2fc5f872391581a189d33abdd8eeb744.gz b/_darcs/patches/20080819003931-462f3-4b5b838a2fc5f872391581a189d33abdd8eeb744.gz deleted file mode 100644 index 3494f689f5..0000000000 Binary files a/_darcs/patches/20080819003931-462f3-4b5b838a2fc5f872391581a189d33abdd8eeb744.gz and /dev/null differ diff --git a/_darcs/patches/20080819071321-f6e2c-a7ee326669eba917fff8dd37c85c13db46c93f19.gz b/_darcs/patches/20080819071321-f6e2c-a7ee326669eba917fff8dd37c85c13db46c93f19.gz deleted file mode 100644 index 74e824b188..0000000000 Binary files a/_darcs/patches/20080819071321-f6e2c-a7ee326669eba917fff8dd37c85c13db46c93f19.gz and /dev/null differ diff --git a/_darcs/patches/20080819182724-84dde-d2cece72dfb7f4f9f5b5cb4574812fdd32daa601.gz b/_darcs/patches/20080819182724-84dde-d2cece72dfb7f4f9f5b5cb4574812fdd32daa601.gz deleted file mode 100644 index 92a470d99e..0000000000 Binary files a/_darcs/patches/20080819182724-84dde-d2cece72dfb7f4f9f5b5cb4574812fdd32daa601.gz and /dev/null differ diff --git a/_darcs/patches/20080819182824-84dde-84d93fae2c4b0d6acee646999bad8e8bb9752c7b.gz b/_darcs/patches/20080819182824-84dde-84d93fae2c4b0d6acee646999bad8e8bb9752c7b.gz deleted file mode 100644 index 37ba724932..0000000000 Binary files a/_darcs/patches/20080819182824-84dde-84d93fae2c4b0d6acee646999bad8e8bb9752c7b.gz and /dev/null differ diff --git a/_darcs/patches/20080819194610-462f3-eb736e4cfc817b479e1e8e52db03b5f44cdb3d2a.gz b/_darcs/patches/20080819194610-462f3-eb736e4cfc817b479e1e8e52db03b5f44cdb3d2a.gz deleted file mode 100644 index 12aa6ae300..0000000000 Binary files a/_darcs/patches/20080819194610-462f3-eb736e4cfc817b479e1e8e52db03b5f44cdb3d2a.gz and /dev/null differ diff --git a/_darcs/patches/20080819195431-462f3-93d27cf980fd09aeb30ea741639c1650baecad60.gz b/_darcs/patches/20080819195431-462f3-93d27cf980fd09aeb30ea741639c1650baecad60.gz deleted file mode 100644 index b92cc3831a..0000000000 Binary files a/_darcs/patches/20080819195431-462f3-93d27cf980fd09aeb30ea741639c1650baecad60.gz and /dev/null differ diff --git a/_darcs/patches/20080819202318-462f3-bc08a105c6b41b6a89a2358962440f68a9a79c7f.gz b/_darcs/patches/20080819202318-462f3-bc08a105c6b41b6a89a2358962440f68a9a79c7f.gz deleted file mode 100644 index fa4cacc4a8..0000000000 Binary files a/_darcs/patches/20080819202318-462f3-bc08a105c6b41b6a89a2358962440f68a9a79c7f.gz and /dev/null differ diff --git a/_darcs/patches/20080819214923-462f3-83ab492cb93c1ba643beb70853578cbd7ac35d61.gz b/_darcs/patches/20080819214923-462f3-83ab492cb93c1ba643beb70853578cbd7ac35d61.gz deleted file mode 100644 index 5d0b7892dc..0000000000 Binary files a/_darcs/patches/20080819214923-462f3-83ab492cb93c1ba643beb70853578cbd7ac35d61.gz and /dev/null differ diff --git a/_darcs/patches/20080819221214-84dde-15683b1e146b9e29064aa8ae04bc7daebfaf2e92.gz b/_darcs/patches/20080819221214-84dde-15683b1e146b9e29064aa8ae04bc7daebfaf2e92.gz deleted file mode 100644 index d3873033c7..0000000000 Binary files a/_darcs/patches/20080819221214-84dde-15683b1e146b9e29064aa8ae04bc7daebfaf2e92.gz and /dev/null differ diff --git a/_darcs/patches/20080821125306-84dde-58acb80666ed3a2b1ef4db3290aa3c5f0de12a9a.gz b/_darcs/patches/20080821125306-84dde-58acb80666ed3a2b1ef4db3290aa3c5f0de12a9a.gz deleted file mode 100644 index c9e1e2213b..0000000000 Binary files a/_darcs/patches/20080821125306-84dde-58acb80666ed3a2b1ef4db3290aa3c5f0de12a9a.gz and /dev/null differ diff --git a/_darcs/patches/20080822034054-462f3-3211b5a9a412f9496d46a9fb64b26d62a3b28d1f.gz b/_darcs/patches/20080822034054-462f3-3211b5a9a412f9496d46a9fb64b26d62a3b28d1f.gz deleted file mode 100644 index 04d9f8cc8e..0000000000 Binary files a/_darcs/patches/20080822034054-462f3-3211b5a9a412f9496d46a9fb64b26d62a3b28d1f.gz and /dev/null differ diff --git a/_darcs/patches/20080822034157-462f3-398e2ba92d9c38520ea6518c3ff614b41f3cc7ec.gz b/_darcs/patches/20080822034157-462f3-398e2ba92d9c38520ea6518c3ff614b41f3cc7ec.gz deleted file mode 100644 index 19dc5f196a..0000000000 Binary files a/_darcs/patches/20080822034157-462f3-398e2ba92d9c38520ea6518c3ff614b41f3cc7ec.gz and /dev/null differ diff --git a/_darcs/patches/20080822131714-84dde-6978424ded2ed1041a65142a25560654ac717fcd.gz b/_darcs/patches/20080822131714-84dde-6978424ded2ed1041a65142a25560654ac717fcd.gz deleted file mode 100644 index a675e592cb..0000000000 Binary files a/_darcs/patches/20080822131714-84dde-6978424ded2ed1041a65142a25560654ac717fcd.gz and /dev/null differ diff --git a/_darcs/patches/20080822185955-f6e2c-569bc9d304e904fd26e3cc976e8246e3eb7f93bd.gz b/_darcs/patches/20080822185955-f6e2c-569bc9d304e904fd26e3cc976e8246e3eb7f93bd.gz deleted file mode 100644 index 16e4a60856..0000000000 Binary files a/_darcs/patches/20080822185955-f6e2c-569bc9d304e904fd26e3cc976e8246e3eb7f93bd.gz and /dev/null differ diff --git a/_darcs/patches/20080822191032-f6e2c-a3a7efbbaad1ec7c48ef132a8ba34fc8b8651969.gz b/_darcs/patches/20080822191032-f6e2c-a3a7efbbaad1ec7c48ef132a8ba34fc8b8651969.gz deleted file mode 100644 index a02ed68112..0000000000 Binary files a/_darcs/patches/20080822191032-f6e2c-a3a7efbbaad1ec7c48ef132a8ba34fc8b8651969.gz and /dev/null differ diff --git a/_darcs/patches/20080822191751-f6e2c-578869b8524e3238c461872981a5dd8c285937e3.gz b/_darcs/patches/20080822191751-f6e2c-578869b8524e3238c461872981a5dd8c285937e3.gz deleted file mode 100644 index 02b9467374..0000000000 Binary files a/_darcs/patches/20080822191751-f6e2c-578869b8524e3238c461872981a5dd8c285937e3.gz and /dev/null differ diff --git a/_darcs/patches/20080822210307-84dde-c90f6e7953d11c5b12c7a084ac23e5578412932c.gz b/_darcs/patches/20080822210307-84dde-c90f6e7953d11c5b12c7a084ac23e5578412932c.gz deleted file mode 100644 index 93682e3730..0000000000 Binary files a/_darcs/patches/20080822210307-84dde-c90f6e7953d11c5b12c7a084ac23e5578412932c.gz and /dev/null differ diff --git a/_darcs/patches/20080822210415-84dde-1a00e3090d52bbeeb5f40b0640cb561992ff0d1e.gz b/_darcs/patches/20080822210415-84dde-1a00e3090d52bbeeb5f40b0640cb561992ff0d1e.gz deleted file mode 100644 index cf14876fb9..0000000000 Binary files a/_darcs/patches/20080822210415-84dde-1a00e3090d52bbeeb5f40b0640cb561992ff0d1e.gz and /dev/null differ diff --git a/_darcs/patches/20080822210654-84dde-68595effcfc11d5e4497c72b189b5f046a8b3ca6.gz b/_darcs/patches/20080822210654-84dde-68595effcfc11d5e4497c72b189b5f046a8b3ca6.gz deleted file mode 100644 index 548590a415..0000000000 Binary files a/_darcs/patches/20080822210654-84dde-68595effcfc11d5e4497c72b189b5f046a8b3ca6.gz and /dev/null differ diff --git a/_darcs/patches/20080822212111-84dde-2770093fcfaa6fe03abb1143d3828f0622382b45.gz b/_darcs/patches/20080822212111-84dde-2770093fcfaa6fe03abb1143d3828f0622382b45.gz deleted file mode 100644 index 32b22bd03a..0000000000 Binary files a/_darcs/patches/20080822212111-84dde-2770093fcfaa6fe03abb1143d3828f0622382b45.gz and /dev/null differ diff --git a/_darcs/patches/20080823052534-f6e2c-aa452a8c2c6ee33399f4079d0bf2224847e1450a.gz b/_darcs/patches/20080823052534-f6e2c-aa452a8c2c6ee33399f4079d0bf2224847e1450a.gz deleted file mode 100644 index 53390be0fe..0000000000 Binary files a/_darcs/patches/20080823052534-f6e2c-aa452a8c2c6ee33399f4079d0bf2224847e1450a.gz and /dev/null differ diff --git a/_darcs/patches/20080823053548-f6e2c-dfc8a0acd9fb8589ed37e54c7d0d3d38afff34f5.gz b/_darcs/patches/20080823053548-f6e2c-dfc8a0acd9fb8589ed37e54c7d0d3d38afff34f5.gz deleted file mode 100644 index 73755d4252..0000000000 Binary files a/_darcs/patches/20080823053548-f6e2c-dfc8a0acd9fb8589ed37e54c7d0d3d38afff34f5.gz and /dev/null differ diff --git a/_darcs/patches/20080823191015-84dde-05263d6e9a2535c726b98aacc5f3269f66fe22bd.gz b/_darcs/patches/20080823191015-84dde-05263d6e9a2535c726b98aacc5f3269f66fe22bd.gz deleted file mode 100644 index d342b0acbf..0000000000 Binary files a/_darcs/patches/20080823191015-84dde-05263d6e9a2535c726b98aacc5f3269f66fe22bd.gz and /dev/null differ diff --git a/_darcs/patches/20080824011706-84dde-bf35373c3bfc631f8285f8630155195c3c5cc304.gz b/_darcs/patches/20080824011706-84dde-bf35373c3bfc631f8285f8630155195c3c5cc304.gz deleted file mode 100644 index f97adf0aa0..0000000000 Binary files a/_darcs/patches/20080824011706-84dde-bf35373c3bfc631f8285f8630155195c3c5cc304.gz and /dev/null differ diff --git a/_darcs/patches/20080824013803-84dde-9c5d9ce9c588cfb9baddae64366e3417f0a5fee9.gz b/_darcs/patches/20080824013803-84dde-9c5d9ce9c588cfb9baddae64366e3417f0a5fee9.gz deleted file mode 100644 index f0827893b0..0000000000 Binary files a/_darcs/patches/20080824013803-84dde-9c5d9ce9c588cfb9baddae64366e3417f0a5fee9.gz and /dev/null differ diff --git a/_darcs/patches/20080824113719-84dde-fce2da5de5de7cd76c001ac2c48b99edbedb80a8.gz b/_darcs/patches/20080824113719-84dde-fce2da5de5de7cd76c001ac2c48b99edbedb80a8.gz deleted file mode 100644 index 3ffe9f8554..0000000000 Binary files a/_darcs/patches/20080824113719-84dde-fce2da5de5de7cd76c001ac2c48b99edbedb80a8.gz and /dev/null differ diff --git a/_darcs/patches/20080824171202-84dde-fd3ed2b9645f2c2ec5439824dbc6f6a765c0a622.gz b/_darcs/patches/20080824171202-84dde-fd3ed2b9645f2c2ec5439824dbc6f6a765c0a622.gz deleted file mode 100644 index de69b955a2..0000000000 Binary files a/_darcs/patches/20080824171202-84dde-fd3ed2b9645f2c2ec5439824dbc6f6a765c0a622.gz and /dev/null differ diff --git a/_darcs/patches/20080824200517-84dde-9662d89dbcd948e3ef7b7f8d4e82d90b4891c684.gz b/_darcs/patches/20080824200517-84dde-9662d89dbcd948e3ef7b7f8d4e82d90b4891c684.gz deleted file mode 100644 index 1e1cb55d77..0000000000 Binary files a/_darcs/patches/20080824200517-84dde-9662d89dbcd948e3ef7b7f8d4e82d90b4891c684.gz and /dev/null differ diff --git a/_darcs/patches/20080825173105-84dde-ea607521c78694fe558514b423f1c6dc0e70241e.gz b/_darcs/patches/20080825173105-84dde-ea607521c78694fe558514b423f1c6dc0e70241e.gz deleted file mode 100644 index a275497eb9..0000000000 Binary files a/_darcs/patches/20080825173105-84dde-ea607521c78694fe558514b423f1c6dc0e70241e.gz and /dev/null differ diff --git a/_darcs/patches/20080825182338-84dde-ec0edef9469b294b7e23945f1bc7d810da988ed7.gz b/_darcs/patches/20080825182338-84dde-ec0edef9469b294b7e23945f1bc7d810da988ed7.gz deleted file mode 100644 index a63d282ba2..0000000000 Binary files a/_darcs/patches/20080825182338-84dde-ec0edef9469b294b7e23945f1bc7d810da988ed7.gz and /dev/null differ diff --git a/_darcs/patches/20080825183005-84dde-c1d24a057d9545cc6d1f0dc21c5af4ea7316d8e9.gz b/_darcs/patches/20080825183005-84dde-c1d24a057d9545cc6d1f0dc21c5af4ea7316d8e9.gz deleted file mode 100644 index b28645809b..0000000000 Binary files a/_darcs/patches/20080825183005-84dde-c1d24a057d9545cc6d1f0dc21c5af4ea7316d8e9.gz and /dev/null differ diff --git a/_darcs/patches/20080825184104-84dde-5735c1791002a12c3417603dc85da31ea868f263.gz b/_darcs/patches/20080825184104-84dde-5735c1791002a12c3417603dc85da31ea868f263.gz deleted file mode 100644 index 21c55bf927..0000000000 Binary files a/_darcs/patches/20080825184104-84dde-5735c1791002a12c3417603dc85da31ea868f263.gz and /dev/null differ diff --git a/_darcs/patches/20080825185245-84dde-f2ad86c1aedc2a42f7b468775234be53a7e84d5b.gz b/_darcs/patches/20080825185245-84dde-f2ad86c1aedc2a42f7b468775234be53a7e84d5b.gz deleted file mode 100644 index 8930056025..0000000000 Binary files a/_darcs/patches/20080825185245-84dde-f2ad86c1aedc2a42f7b468775234be53a7e84d5b.gz and /dev/null differ diff --git a/_darcs/patches/20080825192946-84dde-c48e79699e5c0bc51ce5ab1fa921c49abbf2c4f5.gz b/_darcs/patches/20080825192946-84dde-c48e79699e5c0bc51ce5ab1fa921c49abbf2c4f5.gz deleted file mode 100644 index d8c715d933..0000000000 Binary files a/_darcs/patches/20080825192946-84dde-c48e79699e5c0bc51ce5ab1fa921c49abbf2c4f5.gz and /dev/null differ diff --git a/_darcs/patches/20080825193149-84dde-dcb4fd0fbe5cba621d02dd3436daa69505200ccd.gz b/_darcs/patches/20080825193149-84dde-dcb4fd0fbe5cba621d02dd3436daa69505200ccd.gz deleted file mode 100644 index df2a69ee09..0000000000 Binary files a/_darcs/patches/20080825193149-84dde-dcb4fd0fbe5cba621d02dd3436daa69505200ccd.gz and /dev/null differ diff --git a/_darcs/patches/20080825193235-84dde-fb91c560029b3aa7c73709dba57e00d3cc7f5122.gz b/_darcs/patches/20080825193235-84dde-fb91c560029b3aa7c73709dba57e00d3cc7f5122.gz deleted file mode 100644 index 91ac001d8b..0000000000 Binary files a/_darcs/patches/20080825193235-84dde-fb91c560029b3aa7c73709dba57e00d3cc7f5122.gz and /dev/null differ diff --git a/_darcs/patches/20080825193333-84dde-d02930a6e8c2333cbaa3ec4cddb7e31d1cbaf3eb.gz b/_darcs/patches/20080825193333-84dde-d02930a6e8c2333cbaa3ec4cddb7e31d1cbaf3eb.gz deleted file mode 100644 index 4b3bc5ec9a..0000000000 Binary files a/_darcs/patches/20080825193333-84dde-d02930a6e8c2333cbaa3ec4cddb7e31d1cbaf3eb.gz and /dev/null differ diff --git a/_darcs/patches/20080825193450-84dde-a9a2e16b65c21a22adcb5574c4040d401513e961.gz b/_darcs/patches/20080825193450-84dde-a9a2e16b65c21a22adcb5574c4040d401513e961.gz deleted file mode 100644 index 599e8954ff..0000000000 Binary files a/_darcs/patches/20080825193450-84dde-a9a2e16b65c21a22adcb5574c4040d401513e961.gz and /dev/null differ diff --git a/_darcs/patches/20080825193738-84dde-d58e63ee015a52ccf065d17a2fc16d2d1899f805.gz b/_darcs/patches/20080825193738-84dde-d58e63ee015a52ccf065d17a2fc16d2d1899f805.gz deleted file mode 100644 index 0844f9e7f5..0000000000 Binary files a/_darcs/patches/20080825193738-84dde-d58e63ee015a52ccf065d17a2fc16d2d1899f805.gz and /dev/null differ diff --git a/_darcs/patches/20080826021227-84dde-22f709bf330bcfa46b93eadd11700723bf640a6b.gz b/_darcs/patches/20080826021227-84dde-22f709bf330bcfa46b93eadd11700723bf640a6b.gz deleted file mode 100644 index bc5dd263de..0000000000 Binary files a/_darcs/patches/20080826021227-84dde-22f709bf330bcfa46b93eadd11700723bf640a6b.gz and /dev/null differ diff --git a/_darcs/patches/20080826023116-84dde-7d80c624b2dcfa637f58509c1d5ff7eca371512c.gz b/_darcs/patches/20080826023116-84dde-7d80c624b2dcfa637f58509c1d5ff7eca371512c.gz deleted file mode 100644 index 810323b27b..0000000000 Binary files a/_darcs/patches/20080826023116-84dde-7d80c624b2dcfa637f58509c1d5ff7eca371512c.gz and /dev/null differ diff --git a/_darcs/patches/20080826024015-84dde-4258c99348f5d665d99a82cf50444fab9391336c.gz b/_darcs/patches/20080826024015-84dde-4258c99348f5d665d99a82cf50444fab9391336c.gz deleted file mode 100644 index a370244082..0000000000 Binary files a/_darcs/patches/20080826024015-84dde-4258c99348f5d665d99a82cf50444fab9391336c.gz and /dev/null differ diff --git a/_darcs/patches/20080826131814-84dde-2c4a809c6fb666dfb4b96d0d61205fe418f4e4b4.gz b/_darcs/patches/20080826131814-84dde-2c4a809c6fb666dfb4b96d0d61205fe418f4e4b4.gz deleted file mode 100644 index d1594fc960..0000000000 Binary files a/_darcs/patches/20080826131814-84dde-2c4a809c6fb666dfb4b96d0d61205fe418f4e4b4.gz and /dev/null differ diff --git a/_darcs/patches/20080826200057-f6e2c-fb9a88251d034824218d20b3fefcde96ddaef827.gz b/_darcs/patches/20080826200057-f6e2c-fb9a88251d034824218d20b3fefcde96ddaef827.gz deleted file mode 100644 index 2e2eb66f61..0000000000 Binary files a/_darcs/patches/20080826200057-f6e2c-fb9a88251d034824218d20b3fefcde96ddaef827.gz and /dev/null differ diff --git a/_darcs/patches/20080826205341-84dde-04c1641f4b9c5aa5318b76512664ee9df170d779.gz b/_darcs/patches/20080826205341-84dde-04c1641f4b9c5aa5318b76512664ee9df170d779.gz deleted file mode 100644 index 8e6bae54ab..0000000000 Binary files a/_darcs/patches/20080826205341-84dde-04c1641f4b9c5aa5318b76512664ee9df170d779.gz and /dev/null differ diff --git a/_darcs/patches/20080826210314-84dde-34d4eb71c7d74b65c0c4b486f345ed7d9301af15.gz b/_darcs/patches/20080826210314-84dde-34d4eb71c7d74b65c0c4b486f345ed7d9301af15.gz deleted file mode 100644 index c3a90e922b..0000000000 Binary files a/_darcs/patches/20080826210314-84dde-34d4eb71c7d74b65c0c4b486f345ed7d9301af15.gz and /dev/null differ diff --git a/_darcs/patches/20080826211108-84dde-b277bdb1476b9cec0c0d93fa8d565c4642ba16c8.gz b/_darcs/patches/20080826211108-84dde-b277bdb1476b9cec0c0d93fa8d565c4642ba16c8.gz deleted file mode 100644 index d33353b794..0000000000 Binary files a/_darcs/patches/20080826211108-84dde-b277bdb1476b9cec0c0d93fa8d565c4642ba16c8.gz and /dev/null differ diff --git a/_darcs/patches/20080826225615-462f3-8d881eda7be43623e10b83e8d1e157f4096734cd.gz b/_darcs/patches/20080826225615-462f3-8d881eda7be43623e10b83e8d1e157f4096734cd.gz deleted file mode 100644 index bf83795123..0000000000 Binary files a/_darcs/patches/20080826225615-462f3-8d881eda7be43623e10b83e8d1e157f4096734cd.gz and /dev/null differ diff --git a/_darcs/patches/20080827000327-7b5ce-453aad833576b9c76e19b8aa3ba34b24203dd377.gz b/_darcs/patches/20080827000327-7b5ce-453aad833576b9c76e19b8aa3ba34b24203dd377.gz deleted file mode 100644 index 349a0f9c4c..0000000000 Binary files a/_darcs/patches/20080827000327-7b5ce-453aad833576b9c76e19b8aa3ba34b24203dd377.gz and /dev/null differ diff --git a/_darcs/patches/20080827001348-84dde-de452a1120aba995355aa616cf416bb6b617566c.gz b/_darcs/patches/20080827001348-84dde-de452a1120aba995355aa616cf416bb6b617566c.gz deleted file mode 100644 index 8ab220a6b6..0000000000 Binary files a/_darcs/patches/20080827001348-84dde-de452a1120aba995355aa616cf416bb6b617566c.gz and /dev/null differ diff --git a/_darcs/patches/20080827001927-84dde-b50e5d921ca3f2fb894821730ff93cac09d2ba66.gz b/_darcs/patches/20080827001927-84dde-b50e5d921ca3f2fb894821730ff93cac09d2ba66.gz deleted file mode 100644 index 16fe4dad3c..0000000000 Binary files a/_darcs/patches/20080827001927-84dde-b50e5d921ca3f2fb894821730ff93cac09d2ba66.gz and /dev/null differ diff --git a/_darcs/patches/20080827003529-84dde-614dc517061e76d180823c0aaf3fc9f434f6480c.gz b/_darcs/patches/20080827003529-84dde-614dc517061e76d180823c0aaf3fc9f434f6480c.gz deleted file mode 100644 index b0f709acbd..0000000000 Binary files a/_darcs/patches/20080827003529-84dde-614dc517061e76d180823c0aaf3fc9f434f6480c.gz and /dev/null differ diff --git a/_darcs/patches/20080827004410-84dde-226101a8482f511ff9df7546342f84dd94ceca54.gz b/_darcs/patches/20080827004410-84dde-226101a8482f511ff9df7546342f84dd94ceca54.gz deleted file mode 100644 index 25fd16f67a..0000000000 Binary files a/_darcs/patches/20080827004410-84dde-226101a8482f511ff9df7546342f84dd94ceca54.gz and /dev/null differ diff --git a/_darcs/patches/20080827004755-84dde-d3275abf281b1d4790806357d3d0bcba634f28f3.gz b/_darcs/patches/20080827004755-84dde-d3275abf281b1d4790806357d3d0bcba634f28f3.gz deleted file mode 100644 index 40cd00bc8b..0000000000 Binary files a/_darcs/patches/20080827004755-84dde-d3275abf281b1d4790806357d3d0bcba634f28f3.gz and /dev/null differ diff --git a/_darcs/patches/20080827004854-84dde-a558664ac7f02ff319e3c29ac4516f491abef29a.gz b/_darcs/patches/20080827004854-84dde-a558664ac7f02ff319e3c29ac4516f491abef29a.gz deleted file mode 100644 index d8059e218f..0000000000 Binary files a/_darcs/patches/20080827004854-84dde-a558664ac7f02ff319e3c29ac4516f491abef29a.gz and /dev/null differ diff --git a/_darcs/patches/20080827005155-84dde-02a097e286800519fe5294cb7005ead533db478f.gz b/_darcs/patches/20080827005155-84dde-02a097e286800519fe5294cb7005ead533db478f.gz deleted file mode 100644 index 7df31ee04e..0000000000 Binary files a/_darcs/patches/20080827005155-84dde-02a097e286800519fe5294cb7005ead533db478f.gz and /dev/null differ diff --git a/_darcs/patches/20080827005418-84dde-7e7a4be646c520542e8c065ba90ba759c100b481.gz b/_darcs/patches/20080827005418-84dde-7e7a4be646c520542e8c065ba90ba759c100b481.gz deleted file mode 100644 index 26a1f06eac..0000000000 Binary files a/_darcs/patches/20080827005418-84dde-7e7a4be646c520542e8c065ba90ba759c100b481.gz and /dev/null differ diff --git a/_darcs/patches/20080827005444-7b5ce-2b53a2c1a917539248b68f21f94e0f9f5fe810f2.gz b/_darcs/patches/20080827005444-7b5ce-2b53a2c1a917539248b68f21f94e0f9f5fe810f2.gz deleted file mode 100644 index c8661f20f8..0000000000 Binary files a/_darcs/patches/20080827005444-7b5ce-2b53a2c1a917539248b68f21f94e0f9f5fe810f2.gz and /dev/null differ diff --git a/_darcs/patches/20080827010138-84dde-db15d5a4408a9cca08822b4c4946e2dfc60ea3db.gz b/_darcs/patches/20080827010138-84dde-db15d5a4408a9cca08822b4c4946e2dfc60ea3db.gz deleted file mode 100644 index fa9375d212..0000000000 Binary files a/_darcs/patches/20080827010138-84dde-db15d5a4408a9cca08822b4c4946e2dfc60ea3db.gz and /dev/null differ diff --git a/_darcs/patches/20080827010515-84dde-f4dd776209a0aa4f6a7e9d6ac1de46d83ff54650.gz b/_darcs/patches/20080827010515-84dde-f4dd776209a0aa4f6a7e9d6ac1de46d83ff54650.gz deleted file mode 100644 index 589493a3e4..0000000000 Binary files a/_darcs/patches/20080827010515-84dde-f4dd776209a0aa4f6a7e9d6ac1de46d83ff54650.gz and /dev/null differ diff --git a/_darcs/patches/20080827011921-84dde-622d4c8eab1b05ce999bba4554b85c08a5840c79.gz b/_darcs/patches/20080827011921-84dde-622d4c8eab1b05ce999bba4554b85c08a5840c79.gz deleted file mode 100644 index dfbe8f0d84..0000000000 Binary files a/_darcs/patches/20080827011921-84dde-622d4c8eab1b05ce999bba4554b85c08a5840c79.gz and /dev/null differ diff --git a/_darcs/patches/20080827013835-84dde-f112bbda4d8d00f47147098ff6140f355610843c.gz b/_darcs/patches/20080827013835-84dde-f112bbda4d8d00f47147098ff6140f355610843c.gz deleted file mode 100644 index d77c4c1d99..0000000000 Binary files a/_darcs/patches/20080827013835-84dde-f112bbda4d8d00f47147098ff6140f355610843c.gz and /dev/null differ diff --git a/_darcs/patches/20080827015010-84dde-d5ed6a0a290273e400b71e4623a54ac88ee29173.gz b/_darcs/patches/20080827015010-84dde-d5ed6a0a290273e400b71e4623a54ac88ee29173.gz deleted file mode 100644 index db7f35f455..0000000000 Binary files a/_darcs/patches/20080827015010-84dde-d5ed6a0a290273e400b71e4623a54ac88ee29173.gz and /dev/null differ diff --git a/_darcs/patches/20080827021635-7b5ce-9b96743999aa85a505aecd5f25867937f0c34434.gz b/_darcs/patches/20080827021635-7b5ce-9b96743999aa85a505aecd5f25867937f0c34434.gz deleted file mode 100644 index 5a57787bc8..0000000000 Binary files a/_darcs/patches/20080827021635-7b5ce-9b96743999aa85a505aecd5f25867937f0c34434.gz and /dev/null differ diff --git a/_darcs/patches/20080827032423-84dde-90a4d5931c2292c9ec5febd0c90ed18f6ab93e90.gz b/_darcs/patches/20080827032423-84dde-90a4d5931c2292c9ec5febd0c90ed18f6ab93e90.gz deleted file mode 100644 index 197d2fa396..0000000000 Binary files a/_darcs/patches/20080827032423-84dde-90a4d5931c2292c9ec5febd0c90ed18f6ab93e90.gz and /dev/null differ diff --git a/_darcs/patches/20080827124430-84dde-654751781702f5518153a01aa3dae4a8580b7f35.gz b/_darcs/patches/20080827124430-84dde-654751781702f5518153a01aa3dae4a8580b7f35.gz deleted file mode 100644 index c961c2d6dc..0000000000 Binary files a/_darcs/patches/20080827124430-84dde-654751781702f5518153a01aa3dae4a8580b7f35.gz and /dev/null differ diff --git a/_darcs/patches/20080827131603-84dde-7be64f28840a29c5833bc625aaf6cb8f07b891e5.gz b/_darcs/patches/20080827131603-84dde-7be64f28840a29c5833bc625aaf6cb8f07b891e5.gz deleted file mode 100644 index ae4dcc5ba9..0000000000 Binary files a/_darcs/patches/20080827131603-84dde-7be64f28840a29c5833bc625aaf6cb8f07b891e5.gz and /dev/null differ diff --git a/_darcs/patches/20080827132346-84dde-c5499ac960fbb28bced28ff9355846f7183fcb5c.gz b/_darcs/patches/20080827132346-84dde-c5499ac960fbb28bced28ff9355846f7183fcb5c.gz deleted file mode 100644 index 9b7c7603f1..0000000000 Binary files a/_darcs/patches/20080827132346-84dde-c5499ac960fbb28bced28ff9355846f7183fcb5c.gz and /dev/null differ diff --git a/_darcs/patches/20080827133048-84dde-cb99ac89c65008a8832395684386518718247887.gz b/_darcs/patches/20080827133048-84dde-cb99ac89c65008a8832395684386518718247887.gz deleted file mode 100644 index c923bea053..0000000000 Binary files a/_darcs/patches/20080827133048-84dde-cb99ac89c65008a8832395684386518718247887.gz and /dev/null differ diff --git a/_darcs/patches/20080827135422-84dde-857d6e980e18803186d080a60eea60f1362bb348.gz b/_darcs/patches/20080827135422-84dde-857d6e980e18803186d080a60eea60f1362bb348.gz deleted file mode 100644 index 0ef8534f3d..0000000000 Binary files a/_darcs/patches/20080827135422-84dde-857d6e980e18803186d080a60eea60f1362bb348.gz and /dev/null differ diff --git a/_darcs/patches/20080827142336-84dde-2bec2149d86900fd0291f8c00f85aa756842bbe1.gz b/_darcs/patches/20080827142336-84dde-2bec2149d86900fd0291f8c00f85aa756842bbe1.gz deleted file mode 100644 index 9c2a411f5d..0000000000 Binary files a/_darcs/patches/20080827142336-84dde-2bec2149d86900fd0291f8c00f85aa756842bbe1.gz and /dev/null differ diff --git a/_darcs/patches/20080827185817-84dde-d6de1bcb00d1e3e49f6e669a921feadb6f27d672.gz b/_darcs/patches/20080827185817-84dde-d6de1bcb00d1e3e49f6e669a921feadb6f27d672.gz deleted file mode 100644 index 6e74ff3227..0000000000 Binary files a/_darcs/patches/20080827185817-84dde-d6de1bcb00d1e3e49f6e669a921feadb6f27d672.gz and /dev/null differ diff --git a/_darcs/patches/20080827205407-84dde-97884a12f5f4e54c93bc785bd280683d1ee7e749.gz b/_darcs/patches/20080827205407-84dde-97884a12f5f4e54c93bc785bd280683d1ee7e749.gz deleted file mode 100644 index fd09b47441..0000000000 Binary files a/_darcs/patches/20080827205407-84dde-97884a12f5f4e54c93bc785bd280683d1ee7e749.gz and /dev/null differ diff --git a/_darcs/patches/20080827210429-84dde-90c22dbee16f74f53464dcd538a6dbcf49db4f28.gz b/_darcs/patches/20080827210429-84dde-90c22dbee16f74f53464dcd538a6dbcf49db4f28.gz deleted file mode 100644 index 9b6c4422e5..0000000000 Binary files a/_darcs/patches/20080827210429-84dde-90c22dbee16f74f53464dcd538a6dbcf49db4f28.gz and /dev/null differ diff --git a/_darcs/patches/20080827211239-84dde-db118799bfd43be62fb02380829c64813c9334f8.gz b/_darcs/patches/20080827211239-84dde-db118799bfd43be62fb02380829c64813c9334f8.gz deleted file mode 100644 index a8226748df..0000000000 Binary files a/_darcs/patches/20080827211239-84dde-db118799bfd43be62fb02380829c64813c9334f8.gz and /dev/null differ diff --git a/_darcs/patches/20080827211940-84dde-d5b404023a2fb6b74b6255dd91910c9ec7df3cc6.gz b/_darcs/patches/20080827211940-84dde-d5b404023a2fb6b74b6255dd91910c9ec7df3cc6.gz deleted file mode 100644 index 9c4e42778e..0000000000 Binary files a/_darcs/patches/20080827211940-84dde-d5b404023a2fb6b74b6255dd91910c9ec7df3cc6.gz and /dev/null differ diff --git a/_darcs/patches/20080828001414-d018c-fa900f60f0af20c01e8b83a74834ddf46829f4b2.gz b/_darcs/patches/20080828001414-d018c-fa900f60f0af20c01e8b83a74834ddf46829f4b2.gz deleted file mode 100644 index bf11fc5e6d..0000000000 Binary files a/_darcs/patches/20080828001414-d018c-fa900f60f0af20c01e8b83a74834ddf46829f4b2.gz and /dev/null differ diff --git a/_darcs/patches/20080828001936-84dde-e4ec2fef30c49d1254d5358624a4391930811832.gz b/_darcs/patches/20080828001936-84dde-e4ec2fef30c49d1254d5358624a4391930811832.gz deleted file mode 100644 index c70b6635c1..0000000000 Binary files a/_darcs/patches/20080828001936-84dde-e4ec2fef30c49d1254d5358624a4391930811832.gz and /dev/null differ diff --git a/_darcs/patches/20080828002610-84dde-d9cb46cb08ac50b8efbdf5683baeb2de168fc4b1.gz b/_darcs/patches/20080828002610-84dde-d9cb46cb08ac50b8efbdf5683baeb2de168fc4b1.gz deleted file mode 100644 index 0b8e994403..0000000000 Binary files a/_darcs/patches/20080828002610-84dde-d9cb46cb08ac50b8efbdf5683baeb2de168fc4b1.gz and /dev/null differ diff --git a/_darcs/patches/20080828003013-84dde-7c8323ef348960f58590e872b2c4ab37107ba60a.gz b/_darcs/patches/20080828003013-84dde-7c8323ef348960f58590e872b2c4ab37107ba60a.gz deleted file mode 100644 index 12db4d1df6..0000000000 Binary files a/_darcs/patches/20080828003013-84dde-7c8323ef348960f58590e872b2c4ab37107ba60a.gz and /dev/null differ diff --git a/_darcs/patches/20080828003829-84dde-dc44674785f853ebf37861e5e91fb0e0366258e9.gz b/_darcs/patches/20080828003829-84dde-dc44674785f853ebf37861e5e91fb0e0366258e9.gz deleted file mode 100644 index 0de1c09e58..0000000000 Binary files a/_darcs/patches/20080828003829-84dde-dc44674785f853ebf37861e5e91fb0e0366258e9.gz and /dev/null differ diff --git a/_darcs/patches/20080828004224-84dde-01ba0a7b9105629b1eb8a28a1a9702912e7e9da6.gz b/_darcs/patches/20080828004224-84dde-01ba0a7b9105629b1eb8a28a1a9702912e7e9da6.gz deleted file mode 100644 index e7c9065c6c..0000000000 Binary files a/_darcs/patches/20080828004224-84dde-01ba0a7b9105629b1eb8a28a1a9702912e7e9da6.gz and /dev/null differ diff --git a/_darcs/patches/20080828004503-84dde-c406172d750d0a5452d5cc62ecd7b27db381c575.gz b/_darcs/patches/20080828004503-84dde-c406172d750d0a5452d5cc62ecd7b27db381c575.gz deleted file mode 100644 index eb323a751e..0000000000 Binary files a/_darcs/patches/20080828004503-84dde-c406172d750d0a5452d5cc62ecd7b27db381c575.gz and /dev/null differ diff --git a/_darcs/patches/20080828005323-84dde-8f69e1e6115faa544c22436539148dac53ed6f65.gz b/_darcs/patches/20080828005323-84dde-8f69e1e6115faa544c22436539148dac53ed6f65.gz deleted file mode 100644 index 0f7e03cc5c..0000000000 Binary files a/_darcs/patches/20080828005323-84dde-8f69e1e6115faa544c22436539148dac53ed6f65.gz and /dev/null differ diff --git a/_darcs/patches/20080828011002-84dde-8099da64841ab137e915249025857f34084c0f34.gz b/_darcs/patches/20080828011002-84dde-8099da64841ab137e915249025857f34084c0f34.gz deleted file mode 100644 index 68b6757506..0000000000 Binary files a/_darcs/patches/20080828011002-84dde-8099da64841ab137e915249025857f34084c0f34.gz and /dev/null differ diff --git a/_darcs/patches/20080828012619-84dde-f7e993f345220d3642743e9f2567d7f8e6e4b6ce.gz b/_darcs/patches/20080828012619-84dde-f7e993f345220d3642743e9f2567d7f8e6e4b6ce.gz deleted file mode 100644 index 5db286a83e..0000000000 Binary files a/_darcs/patches/20080828012619-84dde-f7e993f345220d3642743e9f2567d7f8e6e4b6ce.gz and /dev/null differ diff --git a/_darcs/patches/20080828012635-84dde-166baf7800333ee79a6bad2e5427ac7623c7614f.gz b/_darcs/patches/20080828012635-84dde-166baf7800333ee79a6bad2e5427ac7623c7614f.gz deleted file mode 100644 index 0873c9f4cb..0000000000 Binary files a/_darcs/patches/20080828012635-84dde-166baf7800333ee79a6bad2e5427ac7623c7614f.gz and /dev/null differ diff --git a/_darcs/patches/20080828072205-7b5ce-16510357343f1d9a3acc696f39a28a723005f3a4.gz b/_darcs/patches/20080828072205-7b5ce-16510357343f1d9a3acc696f39a28a723005f3a4.gz deleted file mode 100644 index f533402550..0000000000 Binary files a/_darcs/patches/20080828072205-7b5ce-16510357343f1d9a3acc696f39a28a723005f3a4.gz and /dev/null differ diff --git a/_darcs/patches/20080828134856-84dde-271585ac7d76f8f0d615e9f641dfbc25c61bfb28.gz b/_darcs/patches/20080828134856-84dde-271585ac7d76f8f0d615e9f641dfbc25c61bfb28.gz deleted file mode 100644 index 24817235b2..0000000000 Binary files a/_darcs/patches/20080828134856-84dde-271585ac7d76f8f0d615e9f641dfbc25c61bfb28.gz and /dev/null differ diff --git a/_darcs/patches/20080828135011-84dde-40b44db4416cf83b8929bb0ed77741ed0f177f14.gz b/_darcs/patches/20080828135011-84dde-40b44db4416cf83b8929bb0ed77741ed0f177f14.gz deleted file mode 100644 index 45c8f4b321..0000000000 Binary files a/_darcs/patches/20080828135011-84dde-40b44db4416cf83b8929bb0ed77741ed0f177f14.gz and /dev/null differ diff --git a/_darcs/patches/20080828192509-7b5ce-8387c67500c082eb5a0107c0f78d4cf5620825af.gz b/_darcs/patches/20080828192509-7b5ce-8387c67500c082eb5a0107c0f78d4cf5620825af.gz deleted file mode 100644 index 5082f4b950..0000000000 Binary files a/_darcs/patches/20080828192509-7b5ce-8387c67500c082eb5a0107c0f78d4cf5620825af.gz and /dev/null differ diff --git a/_darcs/patches/20080828221420-84dde-713f564d28d2e548a09a325443b37d6dc1e9a7e7.gz b/_darcs/patches/20080828221420-84dde-713f564d28d2e548a09a325443b37d6dc1e9a7e7.gz deleted file mode 100644 index bade02c84a..0000000000 Binary files a/_darcs/patches/20080828221420-84dde-713f564d28d2e548a09a325443b37d6dc1e9a7e7.gz and /dev/null differ diff --git a/_darcs/patches/20080829014515-84dde-bce51f66ba0b3b4347a55a70b2b266b72c242304.gz b/_darcs/patches/20080829014515-84dde-bce51f66ba0b3b4347a55a70b2b266b72c242304.gz deleted file mode 100644 index fcf9d599e3..0000000000 Binary files a/_darcs/patches/20080829014515-84dde-bce51f66ba0b3b4347a55a70b2b266b72c242304.gz and /dev/null differ diff --git a/_darcs/patches/20080829015304-84dde-1c93203bdfbd4c1696cdd3c07212ff16a9f727dd.gz b/_darcs/patches/20080829015304-84dde-1c93203bdfbd4c1696cdd3c07212ff16a9f727dd.gz deleted file mode 100644 index d54b709997..0000000000 Binary files a/_darcs/patches/20080829015304-84dde-1c93203bdfbd4c1696cdd3c07212ff16a9f727dd.gz and /dev/null differ diff --git a/_darcs/patches/20080829021854-84dde-818492a31c07dd0921c2a693095ca7ac901b6d35.gz b/_darcs/patches/20080829021854-84dde-818492a31c07dd0921c2a693095ca7ac901b6d35.gz deleted file mode 100644 index 3f48766f0f..0000000000 Binary files a/_darcs/patches/20080829021854-84dde-818492a31c07dd0921c2a693095ca7ac901b6d35.gz and /dev/null differ diff --git a/_darcs/patches/20080829023731-84dde-8920bbaf1e1f171829d0acff3f89ec987deb6368.gz b/_darcs/patches/20080829023731-84dde-8920bbaf1e1f171829d0acff3f89ec987deb6368.gz deleted file mode 100644 index ada2f15e3c..0000000000 Binary files a/_darcs/patches/20080829023731-84dde-8920bbaf1e1f171829d0acff3f89ec987deb6368.gz and /dev/null differ diff --git a/_darcs/patches/20080829023919-84dde-38e4bf6bddc120a221af5f856d9f88b7a532096b.gz b/_darcs/patches/20080829023919-84dde-38e4bf6bddc120a221af5f856d9f88b7a532096b.gz deleted file mode 100644 index 20c44a775c..0000000000 Binary files a/_darcs/patches/20080829023919-84dde-38e4bf6bddc120a221af5f856d9f88b7a532096b.gz and /dev/null differ diff --git a/_darcs/patches/20080829025127-84dde-b3e2eb64b7dd8302037f471f6dba6949e2e15ecc.gz b/_darcs/patches/20080829025127-84dde-b3e2eb64b7dd8302037f471f6dba6949e2e15ecc.gz deleted file mode 100644 index da40702d27..0000000000 Binary files a/_darcs/patches/20080829025127-84dde-b3e2eb64b7dd8302037f471f6dba6949e2e15ecc.gz and /dev/null differ diff --git a/_darcs/patches/20080829025559-84dde-bd29b5e6750a1ff72bd39e8e76bde325b0313fb8.gz b/_darcs/patches/20080829025559-84dde-bd29b5e6750a1ff72bd39e8e76bde325b0313fb8.gz deleted file mode 100644 index 0e8180fddd..0000000000 Binary files a/_darcs/patches/20080829025559-84dde-bd29b5e6750a1ff72bd39e8e76bde325b0313fb8.gz and /dev/null differ diff --git a/_darcs/patches/20080829034854-84dde-a636b446dc254aaa77ac65f63be01e49c192bf32.gz b/_darcs/patches/20080829034854-84dde-a636b446dc254aaa77ac65f63be01e49c192bf32.gz deleted file mode 100644 index 0ab76b71c7..0000000000 Binary files a/_darcs/patches/20080829034854-84dde-a636b446dc254aaa77ac65f63be01e49c192bf32.gz and /dev/null differ diff --git a/_darcs/patches/20080829035118-7b5ce-57613e88b29617ea422c7f7003e81ef885e3debb.gz b/_darcs/patches/20080829035118-7b5ce-57613e88b29617ea422c7f7003e81ef885e3debb.gz deleted file mode 100644 index 5d2db8484b..0000000000 Binary files a/_darcs/patches/20080829035118-7b5ce-57613e88b29617ea422c7f7003e81ef885e3debb.gz and /dev/null differ diff --git a/_darcs/patches/20080829035707-7b5ce-69a9ff98390ff8b9671ede948d78fdb37371aac6.gz b/_darcs/patches/20080829035707-7b5ce-69a9ff98390ff8b9671ede948d78fdb37371aac6.gz deleted file mode 100644 index 84ee1c4d4f..0000000000 Binary files a/_darcs/patches/20080829035707-7b5ce-69a9ff98390ff8b9671ede948d78fdb37371aac6.gz and /dev/null differ diff --git a/_darcs/patches/20080829035934-84dde-cf36fd802bed76fdf15ac39b838494a414d5cc1e.gz b/_darcs/patches/20080829035934-84dde-cf36fd802bed76fdf15ac39b838494a414d5cc1e.gz deleted file mode 100644 index 23e028a49f..0000000000 Binary files a/_darcs/patches/20080829035934-84dde-cf36fd802bed76fdf15ac39b838494a414d5cc1e.gz and /dev/null differ diff --git a/_darcs/patches/20080829040925-84dde-7195734eeb3df6439c099c1139caf77e2c2ea3c1.gz b/_darcs/patches/20080829040925-84dde-7195734eeb3df6439c099c1139caf77e2c2ea3c1.gz deleted file mode 100644 index b6305fdda1..0000000000 Binary files a/_darcs/patches/20080829040925-84dde-7195734eeb3df6439c099c1139caf77e2c2ea3c1.gz and /dev/null differ diff --git a/_darcs/patches/20080829042908-84dde-1d1a22dfd3d89c5521aeb9069dc64c5f6dad3a27.gz b/_darcs/patches/20080829042908-84dde-1d1a22dfd3d89c5521aeb9069dc64c5f6dad3a27.gz deleted file mode 100644 index dd7c5ea249..0000000000 Binary files a/_darcs/patches/20080829042908-84dde-1d1a22dfd3d89c5521aeb9069dc64c5f6dad3a27.gz and /dev/null differ diff --git a/_darcs/patches/20080829043909-84dde-c70a633c93ab89560bc300817bda66eebf6176cf.gz b/_darcs/patches/20080829043909-84dde-c70a633c93ab89560bc300817bda66eebf6176cf.gz deleted file mode 100644 index dc2986fb3c..0000000000 Binary files a/_darcs/patches/20080829043909-84dde-c70a633c93ab89560bc300817bda66eebf6176cf.gz and /dev/null differ diff --git a/_darcs/patches/20080829045441-7b5ce-a1382496d8d6b043a1a72c0fb32051f1b43163c8.gz b/_darcs/patches/20080829045441-7b5ce-a1382496d8d6b043a1a72c0fb32051f1b43163c8.gz deleted file mode 100644 index 2f4ee3c7c5..0000000000 Binary files a/_darcs/patches/20080829045441-7b5ce-a1382496d8d6b043a1a72c0fb32051f1b43163c8.gz and /dev/null differ diff --git a/_darcs/patches/20080829045724-7b5ce-66fdc5e54155012e41eb09c6a41bc94619bf520f.gz b/_darcs/patches/20080829045724-7b5ce-66fdc5e54155012e41eb09c6a41bc94619bf520f.gz deleted file mode 100644 index 116257dc99..0000000000 Binary files a/_darcs/patches/20080829045724-7b5ce-66fdc5e54155012e41eb09c6a41bc94619bf520f.gz and /dev/null differ diff --git a/_darcs/patches/20080829051104-84dde-9bd23c28c2c8a720046060a33ff3e5f246c47116.gz b/_darcs/patches/20080829051104-84dde-9bd23c28c2c8a720046060a33ff3e5f246c47116.gz deleted file mode 100644 index 44d59b6446..0000000000 Binary files a/_darcs/patches/20080829051104-84dde-9bd23c28c2c8a720046060a33ff3e5f246c47116.gz and /dev/null differ diff --git a/_darcs/patches/20080829051628-84dde-2a339a35c422afb9ec04f757771764ed43b2c28b.gz b/_darcs/patches/20080829051628-84dde-2a339a35c422afb9ec04f757771764ed43b2c28b.gz deleted file mode 100644 index 7e16f2f208..0000000000 Binary files a/_darcs/patches/20080829051628-84dde-2a339a35c422afb9ec04f757771764ed43b2c28b.gz and /dev/null differ diff --git a/_darcs/patches/20080829052732-84dde-0ebb7e32236b480cc3aa2eb7a4bb2b41ff6177d6.gz b/_darcs/patches/20080829052732-84dde-0ebb7e32236b480cc3aa2eb7a4bb2b41ff6177d6.gz deleted file mode 100644 index 2dd159b13e..0000000000 Binary files a/_darcs/patches/20080829052732-84dde-0ebb7e32236b480cc3aa2eb7a4bb2b41ff6177d6.gz and /dev/null differ diff --git a/_darcs/patches/20080829052824-7b5ce-39a8fd299b7a85793ad7a19fe00c93813ca882b6.gz b/_darcs/patches/20080829052824-7b5ce-39a8fd299b7a85793ad7a19fe00c93813ca882b6.gz deleted file mode 100644 index 300581f063..0000000000 Binary files a/_darcs/patches/20080829052824-7b5ce-39a8fd299b7a85793ad7a19fe00c93813ca882b6.gz and /dev/null differ diff --git a/_darcs/patches/20080829052847-84dde-a64918a75f8300ec8fb230202881691066147652.gz b/_darcs/patches/20080829052847-84dde-a64918a75f8300ec8fb230202881691066147652.gz deleted file mode 100644 index 274a93aa27..0000000000 Binary files a/_darcs/patches/20080829052847-84dde-a64918a75f8300ec8fb230202881691066147652.gz and /dev/null differ diff --git a/_darcs/patches/20080829053337-7b5ce-6d94638c57d185e5d44e02ad458593a3f4de36d9.gz b/_darcs/patches/20080829053337-7b5ce-6d94638c57d185e5d44e02ad458593a3f4de36d9.gz deleted file mode 100644 index 5de47fd821..0000000000 Binary files a/_darcs/patches/20080829053337-7b5ce-6d94638c57d185e5d44e02ad458593a3f4de36d9.gz and /dev/null differ diff --git a/_darcs/patches/20080829054017-84dde-c9268e5c815934dcbca2451dd6c9016f2ac4a03a.gz b/_darcs/patches/20080829054017-84dde-c9268e5c815934dcbca2451dd6c9016f2ac4a03a.gz deleted file mode 100644 index 57d0cd34d8..0000000000 Binary files a/_darcs/patches/20080829054017-84dde-c9268e5c815934dcbca2451dd6c9016f2ac4a03a.gz and /dev/null differ diff --git a/_darcs/patches/20080829054038-7b5ce-d0503a8eb7f89a9d2de4aadd4550f4342b943b09.gz b/_darcs/patches/20080829054038-7b5ce-d0503a8eb7f89a9d2de4aadd4550f4342b943b09.gz deleted file mode 100644 index 6456d58ba2..0000000000 Binary files a/_darcs/patches/20080829054038-7b5ce-d0503a8eb7f89a9d2de4aadd4550f4342b943b09.gz and /dev/null differ diff --git a/_darcs/patches/20080829174012-84dde-4859ce0a34a50080f8376fa3278c3aa3e3a3046d.gz b/_darcs/patches/20080829174012-84dde-4859ce0a34a50080f8376fa3278c3aa3e3a3046d.gz deleted file mode 100644 index 81ca3dfc87..0000000000 Binary files a/_darcs/patches/20080829174012-84dde-4859ce0a34a50080f8376fa3278c3aa3e3a3046d.gz and /dev/null differ diff --git a/_darcs/patches/20080829181702-84dde-594505aa73d2380b13bd98917b70b02bac597d12.gz b/_darcs/patches/20080829181702-84dde-594505aa73d2380b13bd98917b70b02bac597d12.gz deleted file mode 100644 index 6f6560096f..0000000000 Binary files a/_darcs/patches/20080829181702-84dde-594505aa73d2380b13bd98917b70b02bac597d12.gz and /dev/null differ diff --git a/_darcs/patches/20080829182112-84dde-c29ccd959e19e18cc2ceac1ba701f351f914c26b.gz b/_darcs/patches/20080829182112-84dde-c29ccd959e19e18cc2ceac1ba701f351f914c26b.gz deleted file mode 100644 index 59e86a6ad8..0000000000 Binary files a/_darcs/patches/20080829182112-84dde-c29ccd959e19e18cc2ceac1ba701f351f914c26b.gz and /dev/null differ diff --git a/_darcs/patches/20080829182349-84dde-a6d4056d6fa2ecb4c5ed07f3a3a40576315ec4d9.gz b/_darcs/patches/20080829182349-84dde-a6d4056d6fa2ecb4c5ed07f3a3a40576315ec4d9.gz deleted file mode 100644 index 7bb865bb73..0000000000 Binary files a/_darcs/patches/20080829182349-84dde-a6d4056d6fa2ecb4c5ed07f3a3a40576315ec4d9.gz and /dev/null differ diff --git a/_darcs/patches/20080829200352-84dde-427e4ca8c81d4222a36f78e7c580b611ff0bf765.gz b/_darcs/patches/20080829200352-84dde-427e4ca8c81d4222a36f78e7c580b611ff0bf765.gz deleted file mode 100644 index e9ce15af6e..0000000000 Binary files a/_darcs/patches/20080829200352-84dde-427e4ca8c81d4222a36f78e7c580b611ff0bf765.gz and /dev/null differ diff --git a/_darcs/patches/20080829200859-84dde-d1c4c5897096a06dec8be14e81499d70a79c78d2.gz b/_darcs/patches/20080829200859-84dde-d1c4c5897096a06dec8be14e81499d70a79c78d2.gz deleted file mode 100644 index 1f8942d673..0000000000 Binary files a/_darcs/patches/20080829200859-84dde-d1c4c5897096a06dec8be14e81499d70a79c78d2.gz and /dev/null differ diff --git a/_darcs/patches/20080829202613-84dde-58f58a315ea0093c5b029b01492fd71d2fed014c.gz b/_darcs/patches/20080829202613-84dde-58f58a315ea0093c5b029b01492fd71d2fed014c.gz deleted file mode 100644 index c71fbf9c1a..0000000000 Binary files a/_darcs/patches/20080829202613-84dde-58f58a315ea0093c5b029b01492fd71d2fed014c.gz and /dev/null differ diff --git a/_darcs/patches/20080829225258-84dde-6fee5f0beea62f023c13436b8d7044241bc0d01a.gz b/_darcs/patches/20080829225258-84dde-6fee5f0beea62f023c13436b8d7044241bc0d01a.gz deleted file mode 100644 index bbb4f75932..0000000000 Binary files a/_darcs/patches/20080829225258-84dde-6fee5f0beea62f023c13436b8d7044241bc0d01a.gz and /dev/null differ diff --git a/_darcs/patches/20080830000314-84dde-c83d970dbaf046fa37b4af13a23795abcc20e33b.gz b/_darcs/patches/20080830000314-84dde-c83d970dbaf046fa37b4af13a23795abcc20e33b.gz deleted file mode 100644 index d5ddb9be8d..0000000000 Binary files a/_darcs/patches/20080830000314-84dde-c83d970dbaf046fa37b4af13a23795abcc20e33b.gz and /dev/null differ diff --git a/_darcs/patches/20080830040717-84dde-59c75bfb107a1dd5fd531106751b4544bfd15656.gz b/_darcs/patches/20080830040717-84dde-59c75bfb107a1dd5fd531106751b4544bfd15656.gz deleted file mode 100644 index 86525ba551..0000000000 Binary files a/_darcs/patches/20080830040717-84dde-59c75bfb107a1dd5fd531106751b4544bfd15656.gz and /dev/null differ diff --git a/_darcs/patches/20080830052143-84dde-81ba3f1e687605d23e9bdc2c3672ac7ae36f9b60.gz b/_darcs/patches/20080830052143-84dde-81ba3f1e687605d23e9bdc2c3672ac7ae36f9b60.gz deleted file mode 100644 index a6fe1d37ea..0000000000 Binary files a/_darcs/patches/20080830052143-84dde-81ba3f1e687605d23e9bdc2c3672ac7ae36f9b60.gz and /dev/null differ diff --git a/_darcs/patches/20080830052810-84dde-e90c46cc8d9a48a91098efd123c45108ce2903b6.gz b/_darcs/patches/20080830052810-84dde-e90c46cc8d9a48a91098efd123c45108ce2903b6.gz deleted file mode 100644 index e567cf79a9..0000000000 Binary files a/_darcs/patches/20080830052810-84dde-e90c46cc8d9a48a91098efd123c45108ce2903b6.gz and /dev/null differ diff --git a/_darcs/patches/20080830053052-84dde-279d1c52e9b8696079ba686009ce2d71725a690e.gz b/_darcs/patches/20080830053052-84dde-279d1c52e9b8696079ba686009ce2d71725a690e.gz deleted file mode 100644 index f8bb58c13e..0000000000 Binary files a/_darcs/patches/20080830053052-84dde-279d1c52e9b8696079ba686009ce2d71725a690e.gz and /dev/null differ diff --git a/_darcs/patches/20080830054933-84dde-58cc7aa6947612cda9987d532d85d9dd81e32410.gz b/_darcs/patches/20080830054933-84dde-58cc7aa6947612cda9987d532d85d9dd81e32410.gz deleted file mode 100644 index 8b8b925c5f..0000000000 Binary files a/_darcs/patches/20080830054933-84dde-58cc7aa6947612cda9987d532d85d9dd81e32410.gz and /dev/null differ diff --git a/_darcs/patches/20080830055416-84dde-fad0303b1d4b7265e7f01faf90e088e409c7d8b3.gz b/_darcs/patches/20080830055416-84dde-fad0303b1d4b7265e7f01faf90e088e409c7d8b3.gz deleted file mode 100644 index b52f3b9280..0000000000 Binary files a/_darcs/patches/20080830055416-84dde-fad0303b1d4b7265e7f01faf90e088e409c7d8b3.gz and /dev/null differ diff --git a/_darcs/patches/20080830055640-84dde-2cd151d876f6586d827ecfc38e1b72d1cfb4950d.gz b/_darcs/patches/20080830055640-84dde-2cd151d876f6586d827ecfc38e1b72d1cfb4950d.gz deleted file mode 100644 index 7bee7f78e2..0000000000 Binary files a/_darcs/patches/20080830055640-84dde-2cd151d876f6586d827ecfc38e1b72d1cfb4950d.gz and /dev/null differ diff --git a/_darcs/patches/20080830055938-84dde-d0c6b241502b674f974f75f6c22b13f9dca8134c.gz b/_darcs/patches/20080830055938-84dde-d0c6b241502b674f974f75f6c22b13f9dca8134c.gz deleted file mode 100644 index 14f3aa5ce1..0000000000 Binary files a/_darcs/patches/20080830055938-84dde-d0c6b241502b674f974f75f6c22b13f9dca8134c.gz and /dev/null differ diff --git a/_darcs/patches/20080830060732-84dde-54d5d4c4a8747215bd5b224e4216f9fc1eb349a6.gz b/_darcs/patches/20080830060732-84dde-54d5d4c4a8747215bd5b224e4216f9fc1eb349a6.gz deleted file mode 100644 index 448776d8fd..0000000000 Binary files a/_darcs/patches/20080830060732-84dde-54d5d4c4a8747215bd5b224e4216f9fc1eb349a6.gz and /dev/null differ diff --git a/_darcs/patches/20080830062246-84dde-823ceafa203aa034c52e0df55c21f241e35363fa.gz b/_darcs/patches/20080830062246-84dde-823ceafa203aa034c52e0df55c21f241e35363fa.gz deleted file mode 100644 index 22a0b199bf..0000000000 Binary files a/_darcs/patches/20080830062246-84dde-823ceafa203aa034c52e0df55c21f241e35363fa.gz and /dev/null differ diff --git a/_darcs/patches/20080830062744-84dde-98c6419f4b66a570e9ef9de34d8d07e40aa1177d.gz b/_darcs/patches/20080830062744-84dde-98c6419f4b66a570e9ef9de34d8d07e40aa1177d.gz deleted file mode 100644 index 4c77b03db7..0000000000 Binary files a/_darcs/patches/20080830062744-84dde-98c6419f4b66a570e9ef9de34d8d07e40aa1177d.gz and /dev/null differ diff --git a/_darcs/patches/20080830064431-84dde-42629109de11f65da9d876aee168abdf7c4ced3d.gz b/_darcs/patches/20080830064431-84dde-42629109de11f65da9d876aee168abdf7c4ced3d.gz deleted file mode 100644 index 317bd0ef60..0000000000 Binary files a/_darcs/patches/20080830064431-84dde-42629109de11f65da9d876aee168abdf7c4ced3d.gz and /dev/null differ diff --git a/_darcs/patches/20080830070135-84dde-dc0cfc8e23c31c33617aa167f7c97d443b10539d.gz b/_darcs/patches/20080830070135-84dde-dc0cfc8e23c31c33617aa167f7c97d443b10539d.gz deleted file mode 100644 index aeba7ccd47..0000000000 Binary files a/_darcs/patches/20080830070135-84dde-dc0cfc8e23c31c33617aa167f7c97d443b10539d.gz and /dev/null differ diff --git a/_darcs/patches/20080830070309-84dde-14a3492cb8132f6a8008d482caa753df2c79ff46.gz b/_darcs/patches/20080830070309-84dde-14a3492cb8132f6a8008d482caa753df2c79ff46.gz deleted file mode 100644 index a0f7efb0d0..0000000000 Binary files a/_darcs/patches/20080830070309-84dde-14a3492cb8132f6a8008d482caa753df2c79ff46.gz and /dev/null differ diff --git a/_darcs/patches/20080830071007-84dde-7e7e52c858e3dd33d0efd02abe86e2eaa7111e4b.gz b/_darcs/patches/20080830071007-84dde-7e7e52c858e3dd33d0efd02abe86e2eaa7111e4b.gz deleted file mode 100644 index bc0a0fdc3e..0000000000 Binary files a/_darcs/patches/20080830071007-84dde-7e7e52c858e3dd33d0efd02abe86e2eaa7111e4b.gz and /dev/null differ diff --git a/_darcs/patches/20080830071232-84dde-90bad1be7a7e141927175e42d39cb21d7bba337e.gz b/_darcs/patches/20080830071232-84dde-90bad1be7a7e141927175e42d39cb21d7bba337e.gz deleted file mode 100644 index f53d4fe05f..0000000000 Binary files a/_darcs/patches/20080830071232-84dde-90bad1be7a7e141927175e42d39cb21d7bba337e.gz and /dev/null differ diff --git a/_darcs/patches/20080830083502-5b646-d6a66157d86ca84cfa6cf6280bb2eb17bc20e02d.gz b/_darcs/patches/20080830083502-5b646-d6a66157d86ca84cfa6cf6280bb2eb17bc20e02d.gz deleted file mode 100644 index 52243a2a9b..0000000000 Binary files a/_darcs/patches/20080830083502-5b646-d6a66157d86ca84cfa6cf6280bb2eb17bc20e02d.gz and /dev/null differ diff --git a/_darcs/patches/20080830084423-84dde-7749d00c4c2fcada9e0f30af044637c48c0512c3.gz b/_darcs/patches/20080830084423-84dde-7749d00c4c2fcada9e0f30af044637c48c0512c3.gz deleted file mode 100644 index 1955f9ea65..0000000000 Binary files a/_darcs/patches/20080830084423-84dde-7749d00c4c2fcada9e0f30af044637c48c0512c3.gz and /dev/null differ diff --git a/_darcs/patches/20080830085607-84dde-83e95d40d4d8a64a6bc223a0e91fec53022422c6.gz b/_darcs/patches/20080830085607-84dde-83e95d40d4d8a64a6bc223a0e91fec53022422c6.gz deleted file mode 100644 index 64d8d23ee5..0000000000 Binary files a/_darcs/patches/20080830085607-84dde-83e95d40d4d8a64a6bc223a0e91fec53022422c6.gz and /dev/null differ diff --git a/_darcs/patches/20080830090148-84dde-2f5711a22c7e5a868005bb3188a966c0cdde30ab.gz b/_darcs/patches/20080830090148-84dde-2f5711a22c7e5a868005bb3188a966c0cdde30ab.gz deleted file mode 100644 index 4ff8b3a530..0000000000 Binary files a/_darcs/patches/20080830090148-84dde-2f5711a22c7e5a868005bb3188a966c0cdde30ab.gz and /dev/null differ diff --git a/_darcs/patches/20080830091430-84dde-cb0bc7d8957fd295c823298b137c4cf4b285f689.gz b/_darcs/patches/20080830091430-84dde-cb0bc7d8957fd295c823298b137c4cf4b285f689.gz deleted file mode 100644 index 5ac709d4db..0000000000 Binary files a/_darcs/patches/20080830091430-84dde-cb0bc7d8957fd295c823298b137c4cf4b285f689.gz and /dev/null differ diff --git a/_darcs/patches/20080830091522-84dde-75121e8794f2a43b8a4c5bff7ec42cac40d5520c.gz b/_darcs/patches/20080830091522-84dde-75121e8794f2a43b8a4c5bff7ec42cac40d5520c.gz deleted file mode 100644 index ec183bb311..0000000000 Binary files a/_darcs/patches/20080830091522-84dde-75121e8794f2a43b8a4c5bff7ec42cac40d5520c.gz and /dev/null differ diff --git a/_darcs/patches/20080830094252-84dde-bf6c17d7036c84bfeaf41d2fc704cc8656a083c1.gz b/_darcs/patches/20080830094252-84dde-bf6c17d7036c84bfeaf41d2fc704cc8656a083c1.gz deleted file mode 100644 index ffaed973e9..0000000000 Binary files a/_darcs/patches/20080830094252-84dde-bf6c17d7036c84bfeaf41d2fc704cc8656a083c1.gz and /dev/null differ diff --git a/_darcs/patches/20080830095709-84dde-a64262c1b32e506cb2c43f8b4fb55ab88effc22f.gz b/_darcs/patches/20080830095709-84dde-a64262c1b32e506cb2c43f8b4fb55ab88effc22f.gz deleted file mode 100644 index f2f3c63b69..0000000000 Binary files a/_darcs/patches/20080830095709-84dde-a64262c1b32e506cb2c43f8b4fb55ab88effc22f.gz and /dev/null differ diff --git a/_darcs/patches/20080830162128-84dde-430fae5f1a0be77db2860c4e6e1c68b961b0944d.gz b/_darcs/patches/20080830162128-84dde-430fae5f1a0be77db2860c4e6e1c68b961b0944d.gz deleted file mode 100644 index e74dd66297..0000000000 Binary files a/_darcs/patches/20080830162128-84dde-430fae5f1a0be77db2860c4e6e1c68b961b0944d.gz and /dev/null differ diff --git a/_darcs/patches/20080830162223-84dde-573e490dc4fde68512ea4ec28599019d2740cfcf.gz b/_darcs/patches/20080830162223-84dde-573e490dc4fde68512ea4ec28599019d2740cfcf.gz deleted file mode 100644 index c23d756df9..0000000000 Binary files a/_darcs/patches/20080830162223-84dde-573e490dc4fde68512ea4ec28599019d2740cfcf.gz and /dev/null differ diff --git a/_darcs/patches/20080830171441-84dde-bb5373c4af2ae223d7b4b150f5a76404247a7570.gz b/_darcs/patches/20080830171441-84dde-bb5373c4af2ae223d7b4b150f5a76404247a7570.gz deleted file mode 100644 index 211ce3b908..0000000000 Binary files a/_darcs/patches/20080830171441-84dde-bb5373c4af2ae223d7b4b150f5a76404247a7570.gz and /dev/null differ diff --git a/_darcs/patches/20080830172217-84dde-b5501719421b84ea1ee8346cf8a5ad170fd1db88.gz b/_darcs/patches/20080830172217-84dde-b5501719421b84ea1ee8346cf8a5ad170fd1db88.gz deleted file mode 100644 index 7839a25cf6..0000000000 Binary files a/_darcs/patches/20080830172217-84dde-b5501719421b84ea1ee8346cf8a5ad170fd1db88.gz and /dev/null differ diff --git a/_darcs/patches/20080830195036-e3c0d-6b4cac221674240e1a8383675b69863f54dd2525.gz b/_darcs/patches/20080830195036-e3c0d-6b4cac221674240e1a8383675b69863f54dd2525.gz deleted file mode 100644 index 6641747094..0000000000 Binary files a/_darcs/patches/20080830195036-e3c0d-6b4cac221674240e1a8383675b69863f54dd2525.gz and /dev/null differ diff --git a/_darcs/patches/20080831003210-84dde-92ccffd5b2e1d50963b18babd93c70fb1d20cdba.gz b/_darcs/patches/20080831003210-84dde-92ccffd5b2e1d50963b18babd93c70fb1d20cdba.gz deleted file mode 100644 index 60cc2d08d9..0000000000 Binary files a/_darcs/patches/20080831003210-84dde-92ccffd5b2e1d50963b18babd93c70fb1d20cdba.gz and /dev/null differ diff --git a/_darcs/patches/20080831012136-84dde-801afb153d5f5c761336394647788e99e845f4a6.gz b/_darcs/patches/20080831012136-84dde-801afb153d5f5c761336394647788e99e845f4a6.gz deleted file mode 100644 index bcb79364b7..0000000000 Binary files a/_darcs/patches/20080831012136-84dde-801afb153d5f5c761336394647788e99e845f4a6.gz and /dev/null differ diff --git a/_darcs/patches/20080831013132-84dde-dc51363f8f6c6a0fece8b4acf7088b64acedc5f9.gz b/_darcs/patches/20080831013132-84dde-dc51363f8f6c6a0fece8b4acf7088b64acedc5f9.gz deleted file mode 100644 index 7be2b05e38..0000000000 Binary files a/_darcs/patches/20080831013132-84dde-dc51363f8f6c6a0fece8b4acf7088b64acedc5f9.gz and /dev/null differ diff --git a/_darcs/patches/20080831013603-84dde-e4e04c8bbb97cf9ed300a9c07dc4e33f8a5edd05.gz b/_darcs/patches/20080831013603-84dde-e4e04c8bbb97cf9ed300a9c07dc4e33f8a5edd05.gz deleted file mode 100644 index f9cd67d6d6..0000000000 Binary files a/_darcs/patches/20080831013603-84dde-e4e04c8bbb97cf9ed300a9c07dc4e33f8a5edd05.gz and /dev/null differ diff --git a/_darcs/patches/20080831014404-84dde-ef3f9aa997b6d0727958f56d68c9b6738e20225e.gz b/_darcs/patches/20080831014404-84dde-ef3f9aa997b6d0727958f56d68c9b6738e20225e.gz deleted file mode 100644 index 0b5a593218..0000000000 Binary files a/_darcs/patches/20080831014404-84dde-ef3f9aa997b6d0727958f56d68c9b6738e20225e.gz and /dev/null differ diff --git a/_darcs/patches/20080831020325-84dde-606d52b08146d4c226f812a9f47b5a3ec1abc743.gz b/_darcs/patches/20080831020325-84dde-606d52b08146d4c226f812a9f47b5a3ec1abc743.gz deleted file mode 100644 index 625d16bf0d..0000000000 Binary files a/_darcs/patches/20080831020325-84dde-606d52b08146d4c226f812a9f47b5a3ec1abc743.gz and /dev/null differ diff --git a/_darcs/patches/20080831023844-84dde-b8c9ce5f38d33c7fd8a42dc0d3640d500e653011.gz b/_darcs/patches/20080831023844-84dde-b8c9ce5f38d33c7fd8a42dc0d3640d500e653011.gz deleted file mode 100644 index a9f3915919..0000000000 Binary files a/_darcs/patches/20080831023844-84dde-b8c9ce5f38d33c7fd8a42dc0d3640d500e653011.gz and /dev/null differ diff --git a/_darcs/patches/20080831114642-84dde-c1e486fe03752882e212bd6e3930477042f993be.gz b/_darcs/patches/20080831114642-84dde-c1e486fe03752882e212bd6e3930477042f993be.gz deleted file mode 100644 index baaebc5373..0000000000 Binary files a/_darcs/patches/20080831114642-84dde-c1e486fe03752882e212bd6e3930477042f993be.gz and /dev/null differ diff --git a/_darcs/patches/20080831233401-e3c0d-4e0e43f5a53a6659c49d65a2b1f2a47c5cdec228.gz b/_darcs/patches/20080831233401-e3c0d-4e0e43f5a53a6659c49d65a2b1f2a47c5cdec228.gz deleted file mode 100644 index 997a4beec7..0000000000 Binary files a/_darcs/patches/20080831233401-e3c0d-4e0e43f5a53a6659c49d65a2b1f2a47c5cdec228.gz and /dev/null differ diff --git a/_darcs/patches/20080901001241-e3c0d-b466f35f4f023c6c90a6d2817487c97be9a1bbca.gz b/_darcs/patches/20080901001241-e3c0d-b466f35f4f023c6c90a6d2817487c97be9a1bbca.gz deleted file mode 100644 index 62bd6c8208..0000000000 Binary files a/_darcs/patches/20080901001241-e3c0d-b466f35f4f023c6c90a6d2817487c97be9a1bbca.gz and /dev/null differ diff --git a/_darcs/patches/20080901025932-e3c0d-c0a939eaf7e242d88cbcb0d651c9d53718c60a9d.gz b/_darcs/patches/20080901025932-e3c0d-c0a939eaf7e242d88cbcb0d651c9d53718c60a9d.gz deleted file mode 100644 index 62bce6d9bd..0000000000 Binary files a/_darcs/patches/20080901025932-e3c0d-c0a939eaf7e242d88cbcb0d651c9d53718c60a9d.gz and /dev/null differ diff --git a/_darcs/patches/20080902012604-84dde-073a583da9b09c80e5e9a47a5eddd144fad8e87a.gz b/_darcs/patches/20080902012604-84dde-073a583da9b09c80e5e9a47a5eddd144fad8e87a.gz deleted file mode 100644 index f8894667a2..0000000000 Binary files a/_darcs/patches/20080902012604-84dde-073a583da9b09c80e5e9a47a5eddd144fad8e87a.gz and /dev/null differ diff --git a/_darcs/patches/20080902030331-84dde-bb2db886d90623785f930bb7c5c3c406d407f808.gz b/_darcs/patches/20080902030331-84dde-bb2db886d90623785f930bb7c5c3c406d407f808.gz deleted file mode 100644 index 323d4dc50a..0000000000 Binary files a/_darcs/patches/20080902030331-84dde-bb2db886d90623785f930bb7c5c3c406d407f808.gz and /dev/null differ diff --git a/_darcs/patches/20080902030403-84dde-5f1576104104ea57d3e23401b59493c03d5a84d4.gz b/_darcs/patches/20080902030403-84dde-5f1576104104ea57d3e23401b59493c03d5a84d4.gz deleted file mode 100644 index b4c82d10c0..0000000000 Binary files a/_darcs/patches/20080902030403-84dde-5f1576104104ea57d3e23401b59493c03d5a84d4.gz and /dev/null differ diff --git a/_darcs/patches/20080902030910-84dde-01fa58c8c1ab359a077c7a5498973235954be085.gz b/_darcs/patches/20080902030910-84dde-01fa58c8c1ab359a077c7a5498973235954be085.gz deleted file mode 100644 index acc3e9f682..0000000000 Binary files a/_darcs/patches/20080902030910-84dde-01fa58c8c1ab359a077c7a5498973235954be085.gz and /dev/null differ diff --git a/_darcs/patches/20080902163718-84dde-80ccca8a5ad66b9993ced2419aa76f686d098334.gz b/_darcs/patches/20080902163718-84dde-80ccca8a5ad66b9993ced2419aa76f686d098334.gz deleted file mode 100644 index 0fa57f73bd..0000000000 Binary files a/_darcs/patches/20080902163718-84dde-80ccca8a5ad66b9993ced2419aa76f686d098334.gz and /dev/null differ diff --git a/_darcs/patches/20080902165319-84dde-b6cc255f014e6c5c059905c37c258a6c7a53b39a.gz b/_darcs/patches/20080902165319-84dde-b6cc255f014e6c5c059905c37c258a6c7a53b39a.gz deleted file mode 100644 index 078516d0ff..0000000000 Binary files a/_darcs/patches/20080902165319-84dde-b6cc255f014e6c5c059905c37c258a6c7a53b39a.gz and /dev/null differ diff --git a/_darcs/patches/20080902165735-84dde-e522711214832e6f992b9897aaf8904b1d5c6a2e.gz b/_darcs/patches/20080902165735-84dde-e522711214832e6f992b9897aaf8904b1d5c6a2e.gz deleted file mode 100644 index 46f7b80a60..0000000000 Binary files a/_darcs/patches/20080902165735-84dde-e522711214832e6f992b9897aaf8904b1d5c6a2e.gz and /dev/null differ diff --git a/_darcs/patches/20080902171740-84dde-ee629f4b5dbcf712cd350c37d0f1814ca1b7f237.gz b/_darcs/patches/20080902171740-84dde-ee629f4b5dbcf712cd350c37d0f1814ca1b7f237.gz deleted file mode 100644 index e52a7c8c26..0000000000 Binary files a/_darcs/patches/20080902171740-84dde-ee629f4b5dbcf712cd350c37d0f1814ca1b7f237.gz and /dev/null differ diff --git a/_darcs/patches/20080902172039-84dde-2b1bbac407959af2a5ca0c764aa503f0cb05c785.gz b/_darcs/patches/20080902172039-84dde-2b1bbac407959af2a5ca0c764aa503f0cb05c785.gz deleted file mode 100644 index c8011b2ddb..0000000000 Binary files a/_darcs/patches/20080902172039-84dde-2b1bbac407959af2a5ca0c764aa503f0cb05c785.gz and /dev/null differ diff --git a/_darcs/patches/20080902172256-84dde-fa354cc9cb21361074553ad099827fdff84e8048.gz b/_darcs/patches/20080902172256-84dde-fa354cc9cb21361074553ad099827fdff84e8048.gz deleted file mode 100644 index d4c2c3539e..0000000000 Binary files a/_darcs/patches/20080902172256-84dde-fa354cc9cb21361074553ad099827fdff84e8048.gz and /dev/null differ diff --git a/_darcs/patches/20080902173804-57fc3-496ceaf8192694db43e62f7af1f57785a1a16a01.gz b/_darcs/patches/20080902173804-57fc3-496ceaf8192694db43e62f7af1f57785a1a16a01.gz deleted file mode 100644 index 1921406747..0000000000 Binary files a/_darcs/patches/20080902173804-57fc3-496ceaf8192694db43e62f7af1f57785a1a16a01.gz and /dev/null differ diff --git a/_darcs/patches/20080904065504-f6e2c-f0c770f52624e7151a93f2ed2b8813657ca88c14.gz b/_darcs/patches/20080904065504-f6e2c-f0c770f52624e7151a93f2ed2b8813657ca88c14.gz deleted file mode 100644 index 0d74e6ba75..0000000000 Binary files a/_darcs/patches/20080904065504-f6e2c-f0c770f52624e7151a93f2ed2b8813657ca88c14.gz and /dev/null differ diff --git a/_darcs/patches/20080904081542-f6e2c-33b65962d067d142cbdca727625a1b6cc0b30ba4.gz b/_darcs/patches/20080904081542-f6e2c-33b65962d067d142cbdca727625a1b6cc0b30ba4.gz deleted file mode 100644 index 8100a6bf67..0000000000 Binary files a/_darcs/patches/20080904081542-f6e2c-33b65962d067d142cbdca727625a1b6cc0b30ba4.gz and /dev/null differ diff --git a/_darcs/patches/20080904184031-84dde-eba2061f3aa898d0c791ffeb70837f759778c567.gz b/_darcs/patches/20080904184031-84dde-eba2061f3aa898d0c791ffeb70837f759778c567.gz deleted file mode 100644 index f66a0d6a4f..0000000000 Binary files a/_darcs/patches/20080904184031-84dde-eba2061f3aa898d0c791ffeb70837f759778c567.gz and /dev/null differ diff --git a/_darcs/patches/20080904190254-84dde-57d24d7a82e4c7eabef87d60ebb69292832e31ac.gz b/_darcs/patches/20080904190254-84dde-57d24d7a82e4c7eabef87d60ebb69292832e31ac.gz deleted file mode 100644 index 36fe061143..0000000000 Binary files a/_darcs/patches/20080904190254-84dde-57d24d7a82e4c7eabef87d60ebb69292832e31ac.gz and /dev/null differ diff --git a/_darcs/patches/20080904191031-84dde-bb457c429c76eedb9bd4ea838b7ccad28844effd.gz b/_darcs/patches/20080904191031-84dde-bb457c429c76eedb9bd4ea838b7ccad28844effd.gz deleted file mode 100644 index 9d10ce2219..0000000000 Binary files a/_darcs/patches/20080904191031-84dde-bb457c429c76eedb9bd4ea838b7ccad28844effd.gz and /dev/null differ diff --git a/_darcs/patches/20080904191517-84dde-7bc5b62f26d10c7e865b483df90356a5eaea0205.gz b/_darcs/patches/20080904191517-84dde-7bc5b62f26d10c7e865b483df90356a5eaea0205.gz deleted file mode 100644 index 264f8a91e3..0000000000 Binary files a/_darcs/patches/20080904191517-84dde-7bc5b62f26d10c7e865b483df90356a5eaea0205.gz and /dev/null differ diff --git a/_darcs/patches/20080904192220-84dde-e852271817361bd00fd89c31c7e4b684edf5f029.gz b/_darcs/patches/20080904192220-84dde-e852271817361bd00fd89c31c7e4b684edf5f029.gz deleted file mode 100644 index c0f1866ee6..0000000000 Binary files a/_darcs/patches/20080904192220-84dde-e852271817361bd00fd89c31c7e4b684edf5f029.gz and /dev/null differ diff --git a/_darcs/patches/20080904192851-84dde-91b7e3bd9cadb760224fee14418fc37c44e2b7c7.gz b/_darcs/patches/20080904192851-84dde-91b7e3bd9cadb760224fee14418fc37c44e2b7c7.gz deleted file mode 100644 index 65098095a8..0000000000 Binary files a/_darcs/patches/20080904192851-84dde-91b7e3bd9cadb760224fee14418fc37c44e2b7c7.gz and /dev/null differ diff --git a/_darcs/patches/20080904193118-84dde-a33d0db712c51177c3f5a5f36483e873aca81532.gz b/_darcs/patches/20080904193118-84dde-a33d0db712c51177c3f5a5f36483e873aca81532.gz deleted file mode 100644 index bc7036b77e..0000000000 Binary files a/_darcs/patches/20080904193118-84dde-a33d0db712c51177c3f5a5f36483e873aca81532.gz and /dev/null differ diff --git a/_darcs/patches/20080904194035-84dde-480b3605862d26eff6a2cac6eec02775628287e4.gz b/_darcs/patches/20080904194035-84dde-480b3605862d26eff6a2cac6eec02775628287e4.gz deleted file mode 100644 index 6e6d04732d..0000000000 Binary files a/_darcs/patches/20080904194035-84dde-480b3605862d26eff6a2cac6eec02775628287e4.gz and /dev/null differ diff --git a/_darcs/patches/20080904194346-84dde-93705711bbaab5ac10195a9ef1c855115e545b26.gz b/_darcs/patches/20080904194346-84dde-93705711bbaab5ac10195a9ef1c855115e545b26.gz deleted file mode 100644 index 0b5d826b72..0000000000 Binary files a/_darcs/patches/20080904194346-84dde-93705711bbaab5ac10195a9ef1c855115e545b26.gz and /dev/null differ diff --git a/_darcs/patches/20080904194456-84dde-16fa43e8158134dcc91b4ecbe04ebf10ad85605a.gz b/_darcs/patches/20080904194456-84dde-16fa43e8158134dcc91b4ecbe04ebf10ad85605a.gz deleted file mode 100644 index 80c924f4eb..0000000000 Binary files a/_darcs/patches/20080904194456-84dde-16fa43e8158134dcc91b4ecbe04ebf10ad85605a.gz and /dev/null differ diff --git a/_darcs/patches/20080904195720-84dde-f286bfe898ef3e08f07fd977bfe692e9cff6c375.gz b/_darcs/patches/20080904195720-84dde-f286bfe898ef3e08f07fd977bfe692e9cff6c375.gz deleted file mode 100644 index dbff6efb3b..0000000000 Binary files a/_darcs/patches/20080904195720-84dde-f286bfe898ef3e08f07fd977bfe692e9cff6c375.gz and /dev/null differ diff --git a/_darcs/patches/20080904201921-f6e2c-44a5fc1dbf699b9c2b6919eaabd7db12c7c65ef8.gz b/_darcs/patches/20080904201921-f6e2c-44a5fc1dbf699b9c2b6919eaabd7db12c7c65ef8.gz deleted file mode 100644 index aa182909ad..0000000000 Binary files a/_darcs/patches/20080904201921-f6e2c-44a5fc1dbf699b9c2b6919eaabd7db12c7c65ef8.gz and /dev/null differ diff --git a/_darcs/patches/20080904203502-84dde-b95f4c3564a0ccc8dbfec8da7e2ff5b8c57e1ed2.gz b/_darcs/patches/20080904203502-84dde-b95f4c3564a0ccc8dbfec8da7e2ff5b8c57e1ed2.gz deleted file mode 100644 index 3bbde9025f..0000000000 Binary files a/_darcs/patches/20080904203502-84dde-b95f4c3564a0ccc8dbfec8da7e2ff5b8c57e1ed2.gz and /dev/null differ diff --git a/_darcs/patches/20080904213257-84dde-c046a708c6ac9f8f7ed2135f29241d70abe4104f.gz b/_darcs/patches/20080904213257-84dde-c046a708c6ac9f8f7ed2135f29241d70abe4104f.gz deleted file mode 100644 index 1f646cc491..0000000000 Binary files a/_darcs/patches/20080904213257-84dde-c046a708c6ac9f8f7ed2135f29241d70abe4104f.gz and /dev/null differ diff --git a/_darcs/patches/20080904215328-18f16-53f338eda04f3f61d85eaf177d0fb9b69113f87a.gz b/_darcs/patches/20080904215328-18f16-53f338eda04f3f61d85eaf177d0fb9b69113f87a.gz deleted file mode 100644 index a4b19fb6d2..0000000000 Binary files a/_darcs/patches/20080904215328-18f16-53f338eda04f3f61d85eaf177d0fb9b69113f87a.gz and /dev/null differ diff --git a/_darcs/patches/20080904224129-84dde-6844b29ab1818954aacaf6d9ef11371dbb11812a.gz b/_darcs/patches/20080904224129-84dde-6844b29ab1818954aacaf6d9ef11371dbb11812a.gz deleted file mode 100644 index 80b0530123..0000000000 Binary files a/_darcs/patches/20080904224129-84dde-6844b29ab1818954aacaf6d9ef11371dbb11812a.gz and /dev/null differ diff --git a/_darcs/patches/20080905004701-84dde-c8b27c6b3b4ad634cd954ec51d45a92d2ad32389.gz b/_darcs/patches/20080905004701-84dde-c8b27c6b3b4ad634cd954ec51d45a92d2ad32389.gz deleted file mode 100644 index 41b79be132..0000000000 Binary files a/_darcs/patches/20080905004701-84dde-c8b27c6b3b4ad634cd954ec51d45a92d2ad32389.gz and /dev/null differ diff --git a/_darcs/patches/20080905022019-84dde-d53b1dda2cd0ec996b8dda99a00d01e6da000d3f.gz b/_darcs/patches/20080905022019-84dde-d53b1dda2cd0ec996b8dda99a00d01e6da000d3f.gz deleted file mode 100644 index 7eae914615..0000000000 Binary files a/_darcs/patches/20080905022019-84dde-d53b1dda2cd0ec996b8dda99a00d01e6da000d3f.gz and /dev/null differ diff --git a/_darcs/patches/20080905032903-18f16-939f998d8f52212827c2734e34f83587a645f8c0.gz b/_darcs/patches/20080905032903-18f16-939f998d8f52212827c2734e34f83587a645f8c0.gz deleted file mode 100644 index c093c6f319..0000000000 Binary files a/_darcs/patches/20080905032903-18f16-939f998d8f52212827c2734e34f83587a645f8c0.gz and /dev/null differ diff --git a/_darcs/patches/20080905045415-84dde-bbb6947b53479c2b0f3060094431835784fa686b.gz b/_darcs/patches/20080905045415-84dde-bbb6947b53479c2b0f3060094431835784fa686b.gz deleted file mode 100644 index a7e0a18967..0000000000 Binary files a/_darcs/patches/20080905045415-84dde-bbb6947b53479c2b0f3060094431835784fa686b.gz and /dev/null differ diff --git a/_darcs/patches/20080905045736-84dde-7232813dafb70b75309f5cb9e58831fb49497918.gz b/_darcs/patches/20080905045736-84dde-7232813dafb70b75309f5cb9e58831fb49497918.gz deleted file mode 100644 index 7e64bd4ea0..0000000000 Binary files a/_darcs/patches/20080905045736-84dde-7232813dafb70b75309f5cb9e58831fb49497918.gz and /dev/null differ diff --git a/_darcs/patches/20080905050356-84dde-6e8b359848ff43b97097cc96943d829a8c9d3f5c.gz b/_darcs/patches/20080905050356-84dde-6e8b359848ff43b97097cc96943d829a8c9d3f5c.gz deleted file mode 100644 index e697a4ee2b..0000000000 Binary files a/_darcs/patches/20080905050356-84dde-6e8b359848ff43b97097cc96943d829a8c9d3f5c.gz and /dev/null differ diff --git a/_darcs/patches/20080905050824-84dde-6a58a72c28d79cc5b754ee0498fcb3dadccd555a.gz b/_darcs/patches/20080905050824-84dde-6a58a72c28d79cc5b754ee0498fcb3dadccd555a.gz deleted file mode 100644 index 51d6fc1898..0000000000 Binary files a/_darcs/patches/20080905050824-84dde-6a58a72c28d79cc5b754ee0498fcb3dadccd555a.gz and /dev/null differ diff --git a/_darcs/patches/20080905090848-58978-6b47e2b4b30fccc02df7cf3aa43fede33379c1ee.gz b/_darcs/patches/20080905090848-58978-6b47e2b4b30fccc02df7cf3aa43fede33379c1ee.gz deleted file mode 100644 index f447c2cec1..0000000000 Binary files a/_darcs/patches/20080905090848-58978-6b47e2b4b30fccc02df7cf3aa43fede33379c1ee.gz and /dev/null differ diff --git a/_darcs/patches/20080905114534-57fc3-feee793696ddf3d5bbb1ae7f326d9d88dc961e60.gz b/_darcs/patches/20080905114534-57fc3-feee793696ddf3d5bbb1ae7f326d9d88dc961e60.gz deleted file mode 100644 index da8e1f871b..0000000000 Binary files a/_darcs/patches/20080905114534-57fc3-feee793696ddf3d5bbb1ae7f326d9d88dc961e60.gz and /dev/null differ diff --git a/_darcs/patches/20080905162732-f6e2c-21c056ba2f211cee9d6ba720b40b5a1ab1186341.gz b/_darcs/patches/20080905162732-f6e2c-21c056ba2f211cee9d6ba720b40b5a1ab1186341.gz deleted file mode 100644 index 52a3d0b24c..0000000000 Binary files a/_darcs/patches/20080905162732-f6e2c-21c056ba2f211cee9d6ba720b40b5a1ab1186341.gz and /dev/null differ diff --git a/_darcs/patches/20080905194732-7b5ce-2797acd4d04f3b02c4ad67be629badbae469e8ed.gz b/_darcs/patches/20080905194732-7b5ce-2797acd4d04f3b02c4ad67be629badbae469e8ed.gz deleted file mode 100644 index 6b2b3a719e..0000000000 Binary files a/_darcs/patches/20080905194732-7b5ce-2797acd4d04f3b02c4ad67be629badbae469e8ed.gz and /dev/null differ diff --git a/_darcs/patches/20080906015501-84dde-e787962b9805759224389dd42a211dfa21da3473.gz b/_darcs/patches/20080906015501-84dde-e787962b9805759224389dd42a211dfa21da3473.gz deleted file mode 100644 index e2f5aea2a5..0000000000 Binary files a/_darcs/patches/20080906015501-84dde-e787962b9805759224389dd42a211dfa21da3473.gz and /dev/null differ diff --git a/_darcs/patches/20080906015621-84dde-ae1a53e6757a743f82f3078947212b7bbe984dde.gz b/_darcs/patches/20080906015621-84dde-ae1a53e6757a743f82f3078947212b7bbe984dde.gz deleted file mode 100644 index 536a9092a8..0000000000 Binary files a/_darcs/patches/20080906015621-84dde-ae1a53e6757a743f82f3078947212b7bbe984dde.gz and /dev/null differ diff --git a/_darcs/patches/20080906070651-7b5ce-23c17932cc9c474dfbeb530d29b1bd1adb3a4260.gz b/_darcs/patches/20080906070651-7b5ce-23c17932cc9c474dfbeb530d29b1bd1adb3a4260.gz deleted file mode 100644 index 5ee079a0a5..0000000000 Binary files a/_darcs/patches/20080906070651-7b5ce-23c17932cc9c474dfbeb530d29b1bd1adb3a4260.gz and /dev/null differ diff --git a/_darcs/patches/20080906202242-f6e2c-8f3d04c181ef4bffc1727f3333a3bfe5766bda6b.gz b/_darcs/patches/20080906202242-f6e2c-8f3d04c181ef4bffc1727f3333a3bfe5766bda6b.gz deleted file mode 100644 index 061eddceb3..0000000000 Binary files a/_darcs/patches/20080906202242-f6e2c-8f3d04c181ef4bffc1727f3333a3bfe5766bda6b.gz and /dev/null differ diff --git a/_darcs/patches/20080907053604-7b5ce-4e01cefdbab4cc73a28960b265c23abf5e2f2b0a.gz b/_darcs/patches/20080907053604-7b5ce-4e01cefdbab4cc73a28960b265c23abf5e2f2b0a.gz deleted file mode 100644 index 3a4a1b464f..0000000000 Binary files a/_darcs/patches/20080907053604-7b5ce-4e01cefdbab4cc73a28960b265c23abf5e2f2b0a.gz and /dev/null differ diff --git a/_darcs/patches/20080907062118-7b5ce-b4412446bbf245b1d14a78b01ecde0f71f621185.gz b/_darcs/patches/20080907062118-7b5ce-b4412446bbf245b1d14a78b01ecde0f71f621185.gz deleted file mode 100644 index 4570603c15..0000000000 Binary files a/_darcs/patches/20080907062118-7b5ce-b4412446bbf245b1d14a78b01ecde0f71f621185.gz and /dev/null differ diff --git a/_darcs/patches/20080907063339-7b5ce-bce7b96763adcac5746b1b4d930b636ae0852491.gz b/_darcs/patches/20080907063339-7b5ce-bce7b96763adcac5746b1b4d930b636ae0852491.gz deleted file mode 100644 index e12c06588a..0000000000 Binary files a/_darcs/patches/20080907063339-7b5ce-bce7b96763adcac5746b1b4d930b636ae0852491.gz and /dev/null differ diff --git a/_darcs/patches/20080907193402-84dde-cc5ecd5d02a00e3dfb7523f93d7f0a9ddbe6fb1b.gz b/_darcs/patches/20080907193402-84dde-cc5ecd5d02a00e3dfb7523f93d7f0a9ddbe6fb1b.gz deleted file mode 100644 index ce809b72aa..0000000000 Binary files a/_darcs/patches/20080907193402-84dde-cc5ecd5d02a00e3dfb7523f93d7f0a9ddbe6fb1b.gz and /dev/null differ diff --git a/_darcs/patches/20080907195242-84dde-b2adc3cd10cfe516c4635d26830ed43b8151d6f0.gz b/_darcs/patches/20080907195242-84dde-b2adc3cd10cfe516c4635d26830ed43b8151d6f0.gz deleted file mode 100644 index 8ebb434d29..0000000000 Binary files a/_darcs/patches/20080907195242-84dde-b2adc3cd10cfe516c4635d26830ed43b8151d6f0.gz and /dev/null differ diff --git a/_darcs/patches/20080907200344-84dde-3cc68af343e2da1ae852df07bdc1738865c122f0.gz b/_darcs/patches/20080907200344-84dde-3cc68af343e2da1ae852df07bdc1738865c122f0.gz deleted file mode 100644 index f2e2f98c27..0000000000 Binary files a/_darcs/patches/20080907200344-84dde-3cc68af343e2da1ae852df07bdc1738865c122f0.gz and /dev/null differ diff --git a/_darcs/patches/20080908181624-84dde-8200e1d91eb5f560ef0f296c9e1c56f93ef1b0c5.gz b/_darcs/patches/20080908181624-84dde-8200e1d91eb5f560ef0f296c9e1c56f93ef1b0c5.gz deleted file mode 100644 index 997eb166b8..0000000000 Binary files a/_darcs/patches/20080908181624-84dde-8200e1d91eb5f560ef0f296c9e1c56f93ef1b0c5.gz and /dev/null differ diff --git a/_darcs/patches/20080908182353-84dde-c2825731b071e140b8bf8f633246eddc7c5b1f3c.gz b/_darcs/patches/20080908182353-84dde-c2825731b071e140b8bf8f633246eddc7c5b1f3c.gz deleted file mode 100644 index a69d72f3cc..0000000000 Binary files a/_darcs/patches/20080908182353-84dde-c2825731b071e140b8bf8f633246eddc7c5b1f3c.gz and /dev/null differ diff --git a/_darcs/patches/20080908182559-84dde-27b288efd341a4dd148abb641064d9e48ca2aa11.gz b/_darcs/patches/20080908182559-84dde-27b288efd341a4dd148abb641064d9e48ca2aa11.gz deleted file mode 100644 index 168dcde892..0000000000 Binary files a/_darcs/patches/20080908182559-84dde-27b288efd341a4dd148abb641064d9e48ca2aa11.gz and /dev/null differ diff --git a/_darcs/patches/20080908182716-84dde-fad2159212dd427d596a8ace7aa4032be8446799.gz b/_darcs/patches/20080908182716-84dde-fad2159212dd427d596a8ace7aa4032be8446799.gz deleted file mode 100644 index 0aa7a8e624..0000000000 Binary files a/_darcs/patches/20080908182716-84dde-fad2159212dd427d596a8ace7aa4032be8446799.gz and /dev/null differ diff --git a/_darcs/patches/20080908183515-84dde-7630e2185aa2f0a4e95e3eb8502294361d9879e5.gz b/_darcs/patches/20080908183515-84dde-7630e2185aa2f0a4e95e3eb8502294361d9879e5.gz deleted file mode 100644 index a9361c6b73..0000000000 Binary files a/_darcs/patches/20080908183515-84dde-7630e2185aa2f0a4e95e3eb8502294361d9879e5.gz and /dev/null differ diff --git a/_darcs/patches/20080908201020-84dde-233d38e3cb65f1778a34456193cd3f013e8d94a8.gz b/_darcs/patches/20080908201020-84dde-233d38e3cb65f1778a34456193cd3f013e8d94a8.gz deleted file mode 100644 index 98445cd6b1..0000000000 Binary files a/_darcs/patches/20080908201020-84dde-233d38e3cb65f1778a34456193cd3f013e8d94a8.gz and /dev/null differ diff --git a/_darcs/patches/20080908201751-84dde-a498395d26b957b72350d8075d056b661a1f77c7.gz b/_darcs/patches/20080908201751-84dde-a498395d26b957b72350d8075d056b661a1f77c7.gz deleted file mode 100644 index 44d7299f4c..0000000000 Binary files a/_darcs/patches/20080908201751-84dde-a498395d26b957b72350d8075d056b661a1f77c7.gz and /dev/null differ diff --git a/_darcs/patches/20080908202226-84dde-bf0bf0d67f1f9a9e4cf70bc20fb12b4ca736b594.gz b/_darcs/patches/20080908202226-84dde-bf0bf0d67f1f9a9e4cf70bc20fb12b4ca736b594.gz deleted file mode 100644 index 56b0d2324c..0000000000 Binary files a/_darcs/patches/20080908202226-84dde-bf0bf0d67f1f9a9e4cf70bc20fb12b4ca736b594.gz and /dev/null differ diff --git a/_darcs/patches/20080908202717-84dde-4f89d50c07dfd16ff71f80c4115159eb8b01e9ce.gz b/_darcs/patches/20080908202717-84dde-4f89d50c07dfd16ff71f80c4115159eb8b01e9ce.gz deleted file mode 100644 index dd6e29e4ca..0000000000 Binary files a/_darcs/patches/20080908202717-84dde-4f89d50c07dfd16ff71f80c4115159eb8b01e9ce.gz and /dev/null differ diff --git a/_darcs/patches/20080908211610-84dde-8a7819ee8733cf73a778c2448c93974e2adecca7.gz b/_darcs/patches/20080908211610-84dde-8a7819ee8733cf73a778c2448c93974e2adecca7.gz deleted file mode 100644 index 965ac5cd94..0000000000 Binary files a/_darcs/patches/20080908211610-84dde-8a7819ee8733cf73a778c2448c93974e2adecca7.gz and /dev/null differ diff --git a/_darcs/patches/20080908211656-84dde-d903b28745503166b8d94b0d86836860b6b0fbbe.gz b/_darcs/patches/20080908211656-84dde-d903b28745503166b8d94b0d86836860b6b0fbbe.gz deleted file mode 100644 index d1b9036fc8..0000000000 Binary files a/_darcs/patches/20080908211656-84dde-d903b28745503166b8d94b0d86836860b6b0fbbe.gz and /dev/null differ diff --git a/_darcs/patches/20080909000650-7b5ce-c7eb990db81620b83201c0e361af9dfcdd9c2b89.gz b/_darcs/patches/20080909000650-7b5ce-c7eb990db81620b83201c0e361af9dfcdd9c2b89.gz deleted file mode 100644 index 8540d1a8dc..0000000000 Binary files a/_darcs/patches/20080909000650-7b5ce-c7eb990db81620b83201c0e361af9dfcdd9c2b89.gz and /dev/null differ diff --git a/_darcs/patches/20080909072224-f6e2c-881bd2e7fb032f336fecae9ca5ce527dd821d3dc.gz b/_darcs/patches/20080909072224-f6e2c-881bd2e7fb032f336fecae9ca5ce527dd821d3dc.gz deleted file mode 100644 index 12441c6d6c..0000000000 Binary files a/_darcs/patches/20080909072224-f6e2c-881bd2e7fb032f336fecae9ca5ce527dd821d3dc.gz and /dev/null differ diff --git a/_darcs/patches/20080909202259-f6e2c-8c7e836fd1f0ce9de3ea3802161e1068e346e5dd.gz b/_darcs/patches/20080909202259-f6e2c-8c7e836fd1f0ce9de3ea3802161e1068e346e5dd.gz deleted file mode 100644 index 9a12d3bf92..0000000000 Binary files a/_darcs/patches/20080909202259-f6e2c-8c7e836fd1f0ce9de3ea3802161e1068e346e5dd.gz and /dev/null differ diff --git a/_darcs/patches/20080910025013-7b5ce-95c8dd7eaf83e98e5ee0da5dee8ef07fe4ae5041.gz b/_darcs/patches/20080910025013-7b5ce-95c8dd7eaf83e98e5ee0da5dee8ef07fe4ae5041.gz deleted file mode 100644 index a6e91aa0cc..0000000000 Binary files a/_darcs/patches/20080910025013-7b5ce-95c8dd7eaf83e98e5ee0da5dee8ef07fe4ae5041.gz and /dev/null differ diff --git a/_darcs/patches/20080910073741-f6e2c-fe856e1acbc14f77e8ad6502cf5e16de768e0e5f.gz b/_darcs/patches/20080910073741-f6e2c-fe856e1acbc14f77e8ad6502cf5e16de768e0e5f.gz deleted file mode 100644 index b2ccfa122b..0000000000 Binary files a/_darcs/patches/20080910073741-f6e2c-fe856e1acbc14f77e8ad6502cf5e16de768e0e5f.gz and /dev/null differ diff --git a/_darcs/patches/20080910154632-84dde-6aecbcc8c61f52273a62a2ea3fd3fd305227e2f7.gz b/_darcs/patches/20080910154632-84dde-6aecbcc8c61f52273a62a2ea3fd3fd305227e2f7.gz deleted file mode 100644 index f29d420223..0000000000 Binary files a/_darcs/patches/20080910154632-84dde-6aecbcc8c61f52273a62a2ea3fd3fd305227e2f7.gz and /dev/null differ diff --git a/_darcs/patches/20080910154754-84dde-899822c61fb3e8be563341ca54fe2a61fcdee31f.gz b/_darcs/patches/20080910154754-84dde-899822c61fb3e8be563341ca54fe2a61fcdee31f.gz deleted file mode 100644 index 303c797b0d..0000000000 Binary files a/_darcs/patches/20080910154754-84dde-899822c61fb3e8be563341ca54fe2a61fcdee31f.gz and /dev/null differ diff --git a/_darcs/patches/20080910180050-84dde-8c00e9add17b0c545a36d38ee7c4554135bc5f54.gz b/_darcs/patches/20080910180050-84dde-8c00e9add17b0c545a36d38ee7c4554135bc5f54.gz deleted file mode 100644 index 6c81cf6e46..0000000000 Binary files a/_darcs/patches/20080910180050-84dde-8c00e9add17b0c545a36d38ee7c4554135bc5f54.gz and /dev/null differ diff --git a/_darcs/patches/20080911144742-84dde-235a1af2d958500b1f1c503f21785284ca4b5c8a.gz b/_darcs/patches/20080911144742-84dde-235a1af2d958500b1f1c503f21785284ca4b5c8a.gz deleted file mode 100644 index 3029938fc8..0000000000 Binary files a/_darcs/patches/20080911144742-84dde-235a1af2d958500b1f1c503f21785284ca4b5c8a.gz and /dev/null differ diff --git a/_darcs/patches/20080911163558-f6e2c-ae857f68936ed4328d4e38323f7e77ce25a0236a.gz b/_darcs/patches/20080911163558-f6e2c-ae857f68936ed4328d4e38323f7e77ce25a0236a.gz deleted file mode 100644 index b5f4e73566..0000000000 Binary files a/_darcs/patches/20080911163558-f6e2c-ae857f68936ed4328d4e38323f7e77ce25a0236a.gz and /dev/null differ diff --git a/_darcs/patches/20080911192348-f6e2c-b846b777b382386de56ca01d957dc5e55161fced.gz b/_darcs/patches/20080911192348-f6e2c-b846b777b382386de56ca01d957dc5e55161fced.gz deleted file mode 100644 index d583adcca1..0000000000 Binary files a/_darcs/patches/20080911192348-f6e2c-b846b777b382386de56ca01d957dc5e55161fced.gz and /dev/null differ diff --git a/_darcs/patches/20080913161107-84dde-30b694455d509a7ec2d12e8418f54ce695aa0993.gz b/_darcs/patches/20080913161107-84dde-30b694455d509a7ec2d12e8418f54ce695aa0993.gz deleted file mode 100644 index 6e67ef5453..0000000000 Binary files a/_darcs/patches/20080913161107-84dde-30b694455d509a7ec2d12e8418f54ce695aa0993.gz and /dev/null differ diff --git a/_darcs/patches/20080913164333-84dde-ef4f3363e045aabd52173ea9be34b2f59f64d084.gz b/_darcs/patches/20080913164333-84dde-ef4f3363e045aabd52173ea9be34b2f59f64d084.gz deleted file mode 100644 index 60bbde3ce3..0000000000 Binary files a/_darcs/patches/20080913164333-84dde-ef4f3363e045aabd52173ea9be34b2f59f64d084.gz and /dev/null differ diff --git a/_darcs/patches/20080914201744-f6e2c-71b2a3aec4c0b91557465323d79645e7eab2bfd1.gz b/_darcs/patches/20080914201744-f6e2c-71b2a3aec4c0b91557465323d79645e7eab2bfd1.gz deleted file mode 100644 index de6c11343f..0000000000 Binary files a/_darcs/patches/20080914201744-f6e2c-71b2a3aec4c0b91557465323d79645e7eab2bfd1.gz and /dev/null differ diff --git a/_darcs/patches/20080915053955-84dde-0bcb883b0075cfb3835aae5043c827aaa0b7099e.gz b/_darcs/patches/20080915053955-84dde-0bcb883b0075cfb3835aae5043c827aaa0b7099e.gz deleted file mode 100644 index 3951df8ced..0000000000 Binary files a/_darcs/patches/20080915053955-84dde-0bcb883b0075cfb3835aae5043c827aaa0b7099e.gz and /dev/null differ diff --git a/_darcs/patches/20080915065616-84dde-1b1e814c2294498a10b763b779cbb62c3f96aa84.gz b/_darcs/patches/20080915065616-84dde-1b1e814c2294498a10b763b779cbb62c3f96aa84.gz deleted file mode 100644 index e676dd6f41..0000000000 Binary files a/_darcs/patches/20080915065616-84dde-1b1e814c2294498a10b763b779cbb62c3f96aa84.gz and /dev/null differ diff --git a/_darcs/patches/20080915070256-f6e2c-344d1ca1ca158b9ab5f558804ad129c1ef9d6a7a.gz b/_darcs/patches/20080915070256-f6e2c-344d1ca1ca158b9ab5f558804ad129c1ef9d6a7a.gz deleted file mode 100644 index c88ef14f2f..0000000000 Binary files a/_darcs/patches/20080915070256-f6e2c-344d1ca1ca158b9ab5f558804ad129c1ef9d6a7a.gz and /dev/null differ diff --git a/_darcs/patches/20080915070413-84dde-5e942675dec105b297889a58ea770fb4b337307d.gz b/_darcs/patches/20080915070413-84dde-5e942675dec105b297889a58ea770fb4b337307d.gz deleted file mode 100644 index 56c55a0ed2..0000000000 Binary files a/_darcs/patches/20080915070413-84dde-5e942675dec105b297889a58ea770fb4b337307d.gz and /dev/null differ diff --git a/_darcs/patches/20080915070951-84dde-be26f8844c884b0210cfd6165fd3403ce760195e.gz b/_darcs/patches/20080915070951-84dde-be26f8844c884b0210cfd6165fd3403ce760195e.gz deleted file mode 100644 index c8818a022c..0000000000 Binary files a/_darcs/patches/20080915070951-84dde-be26f8844c884b0210cfd6165fd3403ce760195e.gz and /dev/null differ diff --git a/_darcs/patches/20080915071500-84dde-765c8c289d5cf7f71c2a49967bde4ecda28d9ea8.gz b/_darcs/patches/20080915071500-84dde-765c8c289d5cf7f71c2a49967bde4ecda28d9ea8.gz deleted file mode 100644 index 324b0b9903..0000000000 Binary files a/_darcs/patches/20080915071500-84dde-765c8c289d5cf7f71c2a49967bde4ecda28d9ea8.gz and /dev/null differ diff --git a/_darcs/patches/20080915071835-84dde-173e6afde44c3348c3314c638e2a67dfb333c011.gz b/_darcs/patches/20080915071835-84dde-173e6afde44c3348c3314c638e2a67dfb333c011.gz deleted file mode 100644 index 987d9e4a88..0000000000 Binary files a/_darcs/patches/20080915071835-84dde-173e6afde44c3348c3314c638e2a67dfb333c011.gz and /dev/null differ diff --git a/_darcs/patches/20080915072553-84dde-6de01a486dfcf3440643584d1f698fe1b188f351.gz b/_darcs/patches/20080915072553-84dde-6de01a486dfcf3440643584d1f698fe1b188f351.gz deleted file mode 100644 index becfed0cae..0000000000 Binary files a/_darcs/patches/20080915072553-84dde-6de01a486dfcf3440643584d1f698fe1b188f351.gz and /dev/null differ diff --git a/_darcs/patches/20080915072738-84dde-377131613c91dcb353bc6aaf55bae8ce1b7f13e5.gz b/_darcs/patches/20080915072738-84dde-377131613c91dcb353bc6aaf55bae8ce1b7f13e5.gz deleted file mode 100644 index 0389e9ff76..0000000000 Binary files a/_darcs/patches/20080915072738-84dde-377131613c91dcb353bc6aaf55bae8ce1b7f13e5.gz and /dev/null differ diff --git a/_darcs/patches/20080915073006-84dde-8ea7daa73743647711a8c1d7389894b25f2b077d.gz b/_darcs/patches/20080915073006-84dde-8ea7daa73743647711a8c1d7389894b25f2b077d.gz deleted file mode 100644 index e708d61a86..0000000000 Binary files a/_darcs/patches/20080915073006-84dde-8ea7daa73743647711a8c1d7389894b25f2b077d.gz and /dev/null differ diff --git a/_darcs/patches/20080915073215-84dde-34bdd1a40ce310bca5bbb6f11ed4df79c7915cb2.gz b/_darcs/patches/20080915073215-84dde-34bdd1a40ce310bca5bbb6f11ed4df79c7915cb2.gz deleted file mode 100644 index d96f616e20..0000000000 Binary files a/_darcs/patches/20080915073215-84dde-34bdd1a40ce310bca5bbb6f11ed4df79c7915cb2.gz and /dev/null differ diff --git a/_darcs/patches/20080915073412-84dde-3c9cfb1d2d4933dbaff002b30fffb9e7d3d5e1d7.gz b/_darcs/patches/20080915073412-84dde-3c9cfb1d2d4933dbaff002b30fffb9e7d3d5e1d7.gz deleted file mode 100644 index 1c24bf1113..0000000000 Binary files a/_darcs/patches/20080915073412-84dde-3c9cfb1d2d4933dbaff002b30fffb9e7d3d5e1d7.gz and /dev/null differ diff --git a/_darcs/patches/20080915081246-f6e2c-79e1f7258954bf649560aeaf7b220cdd6e156317.gz b/_darcs/patches/20080915081246-f6e2c-79e1f7258954bf649560aeaf7b220cdd6e156317.gz deleted file mode 100644 index 4abef1d464..0000000000 Binary files a/_darcs/patches/20080915081246-f6e2c-79e1f7258954bf649560aeaf7b220cdd6e156317.gz and /dev/null differ diff --git a/_darcs/patches/20080915190953-f6e2c-40510d7407ccb621680489780dec79e581e59d1c.gz b/_darcs/patches/20080915190953-f6e2c-40510d7407ccb621680489780dec79e581e59d1c.gz deleted file mode 100644 index 2919848db7..0000000000 Binary files a/_darcs/patches/20080915190953-f6e2c-40510d7407ccb621680489780dec79e581e59d1c.gz and /dev/null differ diff --git a/_darcs/patches/20080916172706-f6e2c-762079233fd311ac6f1995415beb36d60484c496.gz b/_darcs/patches/20080916172706-f6e2c-762079233fd311ac6f1995415beb36d60484c496.gz deleted file mode 100644 index 834eefee02..0000000000 Binary files a/_darcs/patches/20080916172706-f6e2c-762079233fd311ac6f1995415beb36d60484c496.gz and /dev/null differ diff --git a/_darcs/patches/20080916174105-84dde-708b2a6f00b2f9d379972c0140446377b625a74f.gz b/_darcs/patches/20080916174105-84dde-708b2a6f00b2f9d379972c0140446377b625a74f.gz deleted file mode 100644 index 5b07672671..0000000000 Binary files a/_darcs/patches/20080916174105-84dde-708b2a6f00b2f9d379972c0140446377b625a74f.gz and /dev/null differ diff --git a/_darcs/patches/20080916174400-84dde-63781c5cd6a7c9a3dbc765dfa15084e3372effd5.gz b/_darcs/patches/20080916174400-84dde-63781c5cd6a7c9a3dbc765dfa15084e3372effd5.gz deleted file mode 100644 index 83f80b329f..0000000000 Binary files a/_darcs/patches/20080916174400-84dde-63781c5cd6a7c9a3dbc765dfa15084e3372effd5.gz and /dev/null differ diff --git a/_darcs/patches/20080916174515-84dde-f0adac3444809b2f3bfc145eaf8e6f394124e9cc.gz b/_darcs/patches/20080916174515-84dde-f0adac3444809b2f3bfc145eaf8e6f394124e9cc.gz deleted file mode 100644 index f16f7ec708..0000000000 Binary files a/_darcs/patches/20080916174515-84dde-f0adac3444809b2f3bfc145eaf8e6f394124e9cc.gz and /dev/null differ diff --git a/_darcs/patches/20080916185126-84dde-2983718fc2ab11874c839489290b8a827985274d.gz b/_darcs/patches/20080916185126-84dde-2983718fc2ab11874c839489290b8a827985274d.gz deleted file mode 100644 index 938eabe6bf..0000000000 Binary files a/_darcs/patches/20080916185126-84dde-2983718fc2ab11874c839489290b8a827985274d.gz and /dev/null differ diff --git a/_darcs/patches/20080916195346-84dde-b5c846f713a970c41fd1b0671cb333e91f3cb920.gz b/_darcs/patches/20080916195346-84dde-b5c846f713a970c41fd1b0671cb333e91f3cb920.gz deleted file mode 100644 index bbac20342f..0000000000 Binary files a/_darcs/patches/20080916195346-84dde-b5c846f713a970c41fd1b0671cb333e91f3cb920.gz and /dev/null differ diff --git a/_darcs/patches/20080916195620-84dde-ebb6079fd08ba464ea0c11b792564f0bed27f09e.gz b/_darcs/patches/20080916195620-84dde-ebb6079fd08ba464ea0c11b792564f0bed27f09e.gz deleted file mode 100644 index ab7ed7d017..0000000000 Binary files a/_darcs/patches/20080916195620-84dde-ebb6079fd08ba464ea0c11b792564f0bed27f09e.gz and /dev/null differ diff --git a/_darcs/patches/20080916200445-84dde-6c552453c98d82a00e0f0fbb82a42fc8b7f89d46.gz b/_darcs/patches/20080916200445-84dde-6c552453c98d82a00e0f0fbb82a42fc8b7f89d46.gz deleted file mode 100644 index 94ca404944..0000000000 Binary files a/_darcs/patches/20080916200445-84dde-6c552453c98d82a00e0f0fbb82a42fc8b7f89d46.gz and /dev/null differ diff --git a/_darcs/patches/20080916200703-84dde-4984552dfc6865f6660d45670af6e3dc56395ff5.gz b/_darcs/patches/20080916200703-84dde-4984552dfc6865f6660d45670af6e3dc56395ff5.gz deleted file mode 100644 index 49d1527f34..0000000000 Binary files a/_darcs/patches/20080916200703-84dde-4984552dfc6865f6660d45670af6e3dc56395ff5.gz and /dev/null differ diff --git a/_darcs/patches/20080916200942-84dde-257499b7cbc4553d3f4cf5c0eafc891b860a53b8.gz b/_darcs/patches/20080916200942-84dde-257499b7cbc4553d3f4cf5c0eafc891b860a53b8.gz deleted file mode 100644 index b31361ecc7..0000000000 Binary files a/_darcs/patches/20080916200942-84dde-257499b7cbc4553d3f4cf5c0eafc891b860a53b8.gz and /dev/null differ diff --git a/_darcs/patches/20080916210813-84dde-c2cadb63b09f59ac6c76dc1205a56687de9483ce.gz b/_darcs/patches/20080916210813-84dde-c2cadb63b09f59ac6c76dc1205a56687de9483ce.gz deleted file mode 100644 index 4afae891b8..0000000000 Binary files a/_darcs/patches/20080916210813-84dde-c2cadb63b09f59ac6c76dc1205a56687de9483ce.gz and /dev/null differ diff --git a/_darcs/patches/20080916214134-84dde-ba11f44676d876cf0f29773c60fa95676ad07ebd.gz b/_darcs/patches/20080916214134-84dde-ba11f44676d876cf0f29773c60fa95676ad07ebd.gz deleted file mode 100644 index ad7777d9f4..0000000000 Binary files a/_darcs/patches/20080916214134-84dde-ba11f44676d876cf0f29773c60fa95676ad07ebd.gz and /dev/null differ diff --git a/_darcs/patches/20080916214206-84dde-7ef1668240b2838461d4adc255070e90e90ed9f1.gz b/_darcs/patches/20080916214206-84dde-7ef1668240b2838461d4adc255070e90e90ed9f1.gz deleted file mode 100644 index 1590d177d2..0000000000 Binary files a/_darcs/patches/20080916214206-84dde-7ef1668240b2838461d4adc255070e90e90ed9f1.gz and /dev/null differ diff --git a/_darcs/patches/20080917112234-84dde-69fb6c2dc279b8fffd5c524673808d8991e99429.gz b/_darcs/patches/20080917112234-84dde-69fb6c2dc279b8fffd5c524673808d8991e99429.gz deleted file mode 100644 index 2b62ea2a49..0000000000 Binary files a/_darcs/patches/20080917112234-84dde-69fb6c2dc279b8fffd5c524673808d8991e99429.gz and /dev/null differ diff --git a/_darcs/patches/20080917112730-84dde-d8bf234bf2a0bf0aca17d653c3cdf57a76ad1a00.gz b/_darcs/patches/20080917112730-84dde-d8bf234bf2a0bf0aca17d653c3cdf57a76ad1a00.gz deleted file mode 100644 index e8442a76ab..0000000000 Binary files a/_darcs/patches/20080917112730-84dde-d8bf234bf2a0bf0aca17d653c3cdf57a76ad1a00.gz and /dev/null differ diff --git a/_darcs/patches/20080917174741-5ed1f-c090055487bab0df52d25ad6550d3850ef5f7661.gz b/_darcs/patches/20080917174741-5ed1f-c090055487bab0df52d25ad6550d3850ef5f7661.gz deleted file mode 100644 index 6c7d3a79e7..0000000000 Binary files a/_darcs/patches/20080917174741-5ed1f-c090055487bab0df52d25ad6550d3850ef5f7661.gz and /dev/null differ diff --git a/_darcs/patches/20080917175356-5ed1f-5a84dc8363d7c1dbf60a82782aefe5a0bd6f3d59.gz b/_darcs/patches/20080917175356-5ed1f-5a84dc8363d7c1dbf60a82782aefe5a0bd6f3d59.gz deleted file mode 100644 index 3ec8448f47..0000000000 Binary files a/_darcs/patches/20080917175356-5ed1f-5a84dc8363d7c1dbf60a82782aefe5a0bd6f3d59.gz and /dev/null differ diff --git a/_darcs/patches/20080917175512-5ed1f-0242ead7766806165266e424ed6d1cb9dd19abca.gz b/_darcs/patches/20080917175512-5ed1f-0242ead7766806165266e424ed6d1cb9dd19abca.gz deleted file mode 100644 index ac731459f6..0000000000 Binary files a/_darcs/patches/20080917175512-5ed1f-0242ead7766806165266e424ed6d1cb9dd19abca.gz and /dev/null differ diff --git a/_darcs/patches/20080917180244-5ed1f-06e2ac2d8f094eacd12b316794b0599b57d76596.gz b/_darcs/patches/20080917180244-5ed1f-06e2ac2d8f094eacd12b316794b0599b57d76596.gz deleted file mode 100644 index 30605d7859..0000000000 Binary files a/_darcs/patches/20080917180244-5ed1f-06e2ac2d8f094eacd12b316794b0599b57d76596.gz and /dev/null differ diff --git a/_darcs/patches/20080917185142-5ed1f-1f87afb283161609bfc202824a39c53f3239b716.gz b/_darcs/patches/20080917185142-5ed1f-1f87afb283161609bfc202824a39c53f3239b716.gz deleted file mode 100644 index 179b6fed7e..0000000000 Binary files a/_darcs/patches/20080917185142-5ed1f-1f87afb283161609bfc202824a39c53f3239b716.gz and /dev/null differ diff --git a/_darcs/patches/20080917185723-5ed1f-1795b591692f804df3140012af69560aa8204b77.gz b/_darcs/patches/20080917185723-5ed1f-1795b591692f804df3140012af69560aa8204b77.gz deleted file mode 100644 index 453d3de621..0000000000 Binary files a/_darcs/patches/20080917185723-5ed1f-1795b591692f804df3140012af69560aa8204b77.gz and /dev/null differ diff --git a/_darcs/patches/20080917185950-5ed1f-27fc1ee8d68df57b8dd687eb4e701beba2269924.gz b/_darcs/patches/20080917185950-5ed1f-27fc1ee8d68df57b8dd687eb4e701beba2269924.gz deleted file mode 100644 index d1e6224d62..0000000000 Binary files a/_darcs/patches/20080917185950-5ed1f-27fc1ee8d68df57b8dd687eb4e701beba2269924.gz and /dev/null differ diff --git a/_darcs/patches/20080917190306-5ed1f-f2d339ce6d5c7c32940046012a0d4702be6eade2.gz b/_darcs/patches/20080917190306-5ed1f-f2d339ce6d5c7c32940046012a0d4702be6eade2.gz deleted file mode 100644 index 71c18965f8..0000000000 Binary files a/_darcs/patches/20080917190306-5ed1f-f2d339ce6d5c7c32940046012a0d4702be6eade2.gz and /dev/null differ diff --git a/_darcs/patches/20080917190445-5ed1f-4fdf97356c40eb076185eff790ce0d34b5117699.gz b/_darcs/patches/20080917190445-5ed1f-4fdf97356c40eb076185eff790ce0d34b5117699.gz deleted file mode 100644 index 1a2bb1cb8e..0000000000 Binary files a/_darcs/patches/20080917190445-5ed1f-4fdf97356c40eb076185eff790ce0d34b5117699.gz and /dev/null differ diff --git a/_darcs/patches/20080917190745-5ed1f-c9305b7ee5f4cd79524491e8e0d676cf42f6ebc1.gz b/_darcs/patches/20080917190745-5ed1f-c9305b7ee5f4cd79524491e8e0d676cf42f6ebc1.gz deleted file mode 100644 index 2d9d0c4d72..0000000000 Binary files a/_darcs/patches/20080917190745-5ed1f-c9305b7ee5f4cd79524491e8e0d676cf42f6ebc1.gz and /dev/null differ diff --git a/_darcs/patches/20080917191652-5ed1f-f066e906146146cfe0ffb80055ea15d71f491f3c.gz b/_darcs/patches/20080917191652-5ed1f-f066e906146146cfe0ffb80055ea15d71f491f3c.gz deleted file mode 100644 index 2105c5ab9b..0000000000 Binary files a/_darcs/patches/20080917191652-5ed1f-f066e906146146cfe0ffb80055ea15d71f491f3c.gz and /dev/null differ diff --git a/_darcs/patches/20080917192121-5ed1f-15603b7f7d5246caed3e1633cc3361e1288d8653.gz b/_darcs/patches/20080917192121-5ed1f-15603b7f7d5246caed3e1633cc3361e1288d8653.gz deleted file mode 100644 index 8a94f880da..0000000000 Binary files a/_darcs/patches/20080917192121-5ed1f-15603b7f7d5246caed3e1633cc3361e1288d8653.gz and /dev/null differ diff --git a/_darcs/patches/20080918021421-5ed1f-bb52217316014fc7873acd6dd8696056ad69a7a1.gz b/_darcs/patches/20080918021421-5ed1f-bb52217316014fc7873acd6dd8696056ad69a7a1.gz deleted file mode 100644 index 06d7de58cb..0000000000 Binary files a/_darcs/patches/20080918021421-5ed1f-bb52217316014fc7873acd6dd8696056ad69a7a1.gz and /dev/null differ diff --git a/_darcs/patches/20080918021727-5ed1f-ad74f71450db27e587b04fe19dfbbaf51f4d0300.gz b/_darcs/patches/20080918021727-5ed1f-ad74f71450db27e587b04fe19dfbbaf51f4d0300.gz deleted file mode 100644 index 5dbe3dca66..0000000000 Binary files a/_darcs/patches/20080918021727-5ed1f-ad74f71450db27e587b04fe19dfbbaf51f4d0300.gz and /dev/null differ diff --git a/_darcs/patches/20080918021926-5ed1f-93d05fdd25606664a619e027178d188a46cbde83.gz b/_darcs/patches/20080918021926-5ed1f-93d05fdd25606664a619e027178d188a46cbde83.gz deleted file mode 100644 index 2ee0531e82..0000000000 Binary files a/_darcs/patches/20080918021926-5ed1f-93d05fdd25606664a619e027178d188a46cbde83.gz and /dev/null differ diff --git a/_darcs/patches/20080918022410-5ed1f-0c4f5ca478246d4d8e56a0b71419d179ea66ff2b.gz b/_darcs/patches/20080918022410-5ed1f-0c4f5ca478246d4d8e56a0b71419d179ea66ff2b.gz deleted file mode 100644 index a587b19b3b..0000000000 Binary files a/_darcs/patches/20080918022410-5ed1f-0c4f5ca478246d4d8e56a0b71419d179ea66ff2b.gz and /dev/null differ diff --git a/_darcs/patches/20080918022558-5ed1f-d1be18fc2e383ab0f0482e2ea8903a6bc4f05bf8.gz b/_darcs/patches/20080918022558-5ed1f-d1be18fc2e383ab0f0482e2ea8903a6bc4f05bf8.gz deleted file mode 100644 index 128f433710..0000000000 Binary files a/_darcs/patches/20080918022558-5ed1f-d1be18fc2e383ab0f0482e2ea8903a6bc4f05bf8.gz and /dev/null differ diff --git a/_darcs/patches/20080918022756-5ed1f-c51413846aefe2e1308969376733433c9c4de222.gz b/_darcs/patches/20080918022756-5ed1f-c51413846aefe2e1308969376733433c9c4de222.gz deleted file mode 100644 index 2e8e9a8006..0000000000 Binary files a/_darcs/patches/20080918022756-5ed1f-c51413846aefe2e1308969376733433c9c4de222.gz and /dev/null differ diff --git a/_darcs/patches/20080918022841-5ed1f-73233547e9d09c32a6140c023b024cc5ad5c0f54.gz b/_darcs/patches/20080918022841-5ed1f-73233547e9d09c32a6140c023b024cc5ad5c0f54.gz deleted file mode 100644 index d16fa74673..0000000000 Binary files a/_darcs/patches/20080918022841-5ed1f-73233547e9d09c32a6140c023b024cc5ad5c0f54.gz and /dev/null differ diff --git a/_darcs/patches/20080918023032-5ed1f-e8789b391eb88a181bb6232a5e5f199b0ccb2098.gz b/_darcs/patches/20080918023032-5ed1f-e8789b391eb88a181bb6232a5e5f199b0ccb2098.gz deleted file mode 100644 index 14b44c8e2f..0000000000 Binary files a/_darcs/patches/20080918023032-5ed1f-e8789b391eb88a181bb6232a5e5f199b0ccb2098.gz and /dev/null differ diff --git a/_darcs/patches/20080918025232-5ed1f-825b72c981ee5e03391d5c84eca5dc4f9805227c.gz b/_darcs/patches/20080918025232-5ed1f-825b72c981ee5e03391d5c84eca5dc4f9805227c.gz deleted file mode 100644 index 1269738926..0000000000 Binary files a/_darcs/patches/20080918025232-5ed1f-825b72c981ee5e03391d5c84eca5dc4f9805227c.gz and /dev/null differ diff --git a/_darcs/patches/20080918025428-5ed1f-863296cf8f17d97b415e3ec78e7cc592ebb18b5d.gz b/_darcs/patches/20080918025428-5ed1f-863296cf8f17d97b415e3ec78e7cc592ebb18b5d.gz deleted file mode 100644 index 42448c78ba..0000000000 Binary files a/_darcs/patches/20080918025428-5ed1f-863296cf8f17d97b415e3ec78e7cc592ebb18b5d.gz and /dev/null differ diff --git a/_darcs/patches/20080918025543-5ed1f-c017a351fce611516b18d64724ee2d7977a0bd47.gz b/_darcs/patches/20080918025543-5ed1f-c017a351fce611516b18d64724ee2d7977a0bd47.gz deleted file mode 100644 index 1b0cff11ac..0000000000 Binary files a/_darcs/patches/20080918025543-5ed1f-c017a351fce611516b18d64724ee2d7977a0bd47.gz and /dev/null differ diff --git a/_darcs/patches/20080918025713-5ed1f-8bb2f106a567ef657a314f800da32efb7409ce2b.gz b/_darcs/patches/20080918025713-5ed1f-8bb2f106a567ef657a314f800da32efb7409ce2b.gz deleted file mode 100644 index 808304c93c..0000000000 Binary files a/_darcs/patches/20080918025713-5ed1f-8bb2f106a567ef657a314f800da32efb7409ce2b.gz and /dev/null differ diff --git a/_darcs/patches/20080918032048-5ed1f-90a55a52e5444d9ae85c0d52af204b44fb895f58.gz b/_darcs/patches/20080918032048-5ed1f-90a55a52e5444d9ae85c0d52af204b44fb895f58.gz deleted file mode 100644 index 7af0c74fdc..0000000000 Binary files a/_darcs/patches/20080918032048-5ed1f-90a55a52e5444d9ae85c0d52af204b44fb895f58.gz and /dev/null differ diff --git a/_darcs/patches/20080918135502-5ed1f-c13d8015d6784fbec259cfd62811661cd7b7c79f.gz b/_darcs/patches/20080918135502-5ed1f-c13d8015d6784fbec259cfd62811661cd7b7c79f.gz deleted file mode 100644 index 3f9a0f63c9..0000000000 Binary files a/_darcs/patches/20080918135502-5ed1f-c13d8015d6784fbec259cfd62811661cd7b7c79f.gz and /dev/null differ diff --git a/_darcs/patches/20080918135608-5ed1f-d753cb01f96e04871eb4f503ccd258674a03623a.gz b/_darcs/patches/20080918135608-5ed1f-d753cb01f96e04871eb4f503ccd258674a03623a.gz deleted file mode 100644 index 252a48d9e1..0000000000 Binary files a/_darcs/patches/20080918135608-5ed1f-d753cb01f96e04871eb4f503ccd258674a03623a.gz and /dev/null differ diff --git a/_darcs/patches/20080918140533-5ed1f-429c55bd99e468dc1e9d1ba4c8823f4027e94477.gz b/_darcs/patches/20080918140533-5ed1f-429c55bd99e468dc1e9d1ba4c8823f4027e94477.gz deleted file mode 100644 index d95dfb7891..0000000000 Binary files a/_darcs/patches/20080918140533-5ed1f-429c55bd99e468dc1e9d1ba4c8823f4027e94477.gz and /dev/null differ diff --git a/_darcs/patches/20080918140756-5ed1f-800912781c9b34d4490cef462ad32a6afa7e799c.gz b/_darcs/patches/20080918140756-5ed1f-800912781c9b34d4490cef462ad32a6afa7e799c.gz deleted file mode 100644 index 962d4a4905..0000000000 Binary files a/_darcs/patches/20080918140756-5ed1f-800912781c9b34d4490cef462ad32a6afa7e799c.gz and /dev/null differ diff --git a/_darcs/patches/20080918145545-5ed1f-11100b4bd89ef289f31bbfd37a58c4395469f808.gz b/_darcs/patches/20080918145545-5ed1f-11100b4bd89ef289f31bbfd37a58c4395469f808.gz deleted file mode 100644 index 8ac1b29f5a..0000000000 Binary files a/_darcs/patches/20080918145545-5ed1f-11100b4bd89ef289f31bbfd37a58c4395469f808.gz and /dev/null differ diff --git a/_darcs/patches/20080918150120-5ed1f-aaa30e8817bc1653fb5c28a6cd7697f960f9ef2c.gz b/_darcs/patches/20080918150120-5ed1f-aaa30e8817bc1653fb5c28a6cd7697f960f9ef2c.gz deleted file mode 100644 index 2b45c63f31..0000000000 Binary files a/_darcs/patches/20080918150120-5ed1f-aaa30e8817bc1653fb5c28a6cd7697f960f9ef2c.gz and /dev/null differ diff --git a/_darcs/patches/20080918150438-5ed1f-72853ffa3b2d4a3719ba72a1aedb7191f7213e4e.gz b/_darcs/patches/20080918150438-5ed1f-72853ffa3b2d4a3719ba72a1aedb7191f7213e4e.gz deleted file mode 100644 index e6a02a3710..0000000000 Binary files a/_darcs/patches/20080918150438-5ed1f-72853ffa3b2d4a3719ba72a1aedb7191f7213e4e.gz and /dev/null differ diff --git a/_darcs/patches/20080918150753-5ed1f-ffb32e350a24e7a425f5ce2b46b3248f22523d2a.gz b/_darcs/patches/20080918150753-5ed1f-ffb32e350a24e7a425f5ce2b46b3248f22523d2a.gz deleted file mode 100644 index d6e1866317..0000000000 Binary files a/_darcs/patches/20080918150753-5ed1f-ffb32e350a24e7a425f5ce2b46b3248f22523d2a.gz and /dev/null differ diff --git a/_darcs/patches/20080918151642-5ed1f-ceb2678a7818cadf3928257504f3e14eb179c749.gz b/_darcs/patches/20080918151642-5ed1f-ceb2678a7818cadf3928257504f3e14eb179c749.gz deleted file mode 100644 index e7b65ac783..0000000000 Binary files a/_darcs/patches/20080918151642-5ed1f-ceb2678a7818cadf3928257504f3e14eb179c749.gz and /dev/null differ diff --git a/_darcs/patches/20080918151907-5ed1f-e747294fbd1545c622ae743de92cd7ff2bda1557.gz b/_darcs/patches/20080918151907-5ed1f-e747294fbd1545c622ae743de92cd7ff2bda1557.gz deleted file mode 100644 index 9df1d10271..0000000000 Binary files a/_darcs/patches/20080918151907-5ed1f-e747294fbd1545c622ae743de92cd7ff2bda1557.gz and /dev/null differ diff --git a/_darcs/patches/20080918152124-5ed1f-6792db4298b9edae8ce4607467cdbcae9faaa4f8.gz b/_darcs/patches/20080918152124-5ed1f-6792db4298b9edae8ce4607467cdbcae9faaa4f8.gz deleted file mode 100644 index 0629d5b094..0000000000 Binary files a/_darcs/patches/20080918152124-5ed1f-6792db4298b9edae8ce4607467cdbcae9faaa4f8.gz and /dev/null differ diff --git a/_darcs/patches/20080918152612-5ed1f-5ce8b0a834ffa50e04d6b47d1cac4c4b94f28e9e.gz b/_darcs/patches/20080918152612-5ed1f-5ce8b0a834ffa50e04d6b47d1cac4c4b94f28e9e.gz deleted file mode 100644 index a7614e2572..0000000000 Binary files a/_darcs/patches/20080918152612-5ed1f-5ce8b0a834ffa50e04d6b47d1cac4c4b94f28e9e.gz and /dev/null differ diff --git a/_darcs/patches/20080918152823-5ed1f-bc7bea3305c39cfbc41f4a116b9a602ada556365.gz b/_darcs/patches/20080918152823-5ed1f-bc7bea3305c39cfbc41f4a116b9a602ada556365.gz deleted file mode 100644 index e11250bb4d..0000000000 Binary files a/_darcs/patches/20080918152823-5ed1f-bc7bea3305c39cfbc41f4a116b9a602ada556365.gz and /dev/null differ diff --git a/_darcs/patches/20080920174700-84dde-a00751e0eafd9adc4580924bb41c11b0649b7fe5.gz b/_darcs/patches/20080920174700-84dde-a00751e0eafd9adc4580924bb41c11b0649b7fe5.gz deleted file mode 100644 index 2a99d9e963..0000000000 Binary files a/_darcs/patches/20080920174700-84dde-a00751e0eafd9adc4580924bb41c11b0649b7fe5.gz and /dev/null differ diff --git a/_darcs/patches/20080920175339-84dde-e46d0e7b86e0752e8331cdfba26257b3ff9e601c.gz b/_darcs/patches/20080920175339-84dde-e46d0e7b86e0752e8331cdfba26257b3ff9e601c.gz deleted file mode 100644 index 47e43118cc..0000000000 Binary files a/_darcs/patches/20080920175339-84dde-e46d0e7b86e0752e8331cdfba26257b3ff9e601c.gz and /dev/null differ diff --git a/_darcs/patches/20080922172631-84dde-357c532ac1fb1e2fec54680eb9d294a2ede23ab0.gz b/_darcs/patches/20080922172631-84dde-357c532ac1fb1e2fec54680eb9d294a2ede23ab0.gz deleted file mode 100644 index 8fc9cfa937..0000000000 Binary files a/_darcs/patches/20080922172631-84dde-357c532ac1fb1e2fec54680eb9d294a2ede23ab0.gz and /dev/null differ diff --git a/_darcs/patches/20080922190937-5ed1f-9439cd9cff178323ac1445f33e2520260b4b267e.gz b/_darcs/patches/20080922190937-5ed1f-9439cd9cff178323ac1445f33e2520260b4b267e.gz deleted file mode 100644 index 93b2404f16..0000000000 Binary files a/_darcs/patches/20080922190937-5ed1f-9439cd9cff178323ac1445f33e2520260b4b267e.gz and /dev/null differ diff --git a/_darcs/patches/20080922195824-5ed1f-f95ae048209e44e4de7698d98eb8a01121a2231d.gz b/_darcs/patches/20080922195824-5ed1f-f95ae048209e44e4de7698d98eb8a01121a2231d.gz deleted file mode 100644 index f07c9c3bb8..0000000000 Binary files a/_darcs/patches/20080922195824-5ed1f-f95ae048209e44e4de7698d98eb8a01121a2231d.gz and /dev/null differ diff --git a/_darcs/patches/20080922212120-5ed1f-951b3a20590bbbb317909953287f6afb5354afa6.gz b/_darcs/patches/20080922212120-5ed1f-951b3a20590bbbb317909953287f6afb5354afa6.gz deleted file mode 100644 index c83cc0dc40..0000000000 Binary files a/_darcs/patches/20080922212120-5ed1f-951b3a20590bbbb317909953287f6afb5354afa6.gz and /dev/null differ diff --git a/_darcs/patches/20080922213314-e558a-1e429af6660de21990236b2bb444f2b6f36e08df.gz b/_darcs/patches/20080922213314-e558a-1e429af6660de21990236b2bb444f2b6f36e08df.gz deleted file mode 100644 index 7a5dfcb414..0000000000 Binary files a/_darcs/patches/20080922213314-e558a-1e429af6660de21990236b2bb444f2b6f36e08df.gz and /dev/null differ diff --git a/_darcs/patches/20080922214003-5ed1f-f183262f41a430710946470133f61694e322fcad.gz b/_darcs/patches/20080922214003-5ed1f-f183262f41a430710946470133f61694e322fcad.gz deleted file mode 100644 index 9fdeff392d..0000000000 Binary files a/_darcs/patches/20080922214003-5ed1f-f183262f41a430710946470133f61694e322fcad.gz and /dev/null differ diff --git a/_darcs/patches/20080922223239-5ed1f-1d34d37c75b2fc321e00063a788e9ca0c8baa359.gz b/_darcs/patches/20080922223239-5ed1f-1d34d37c75b2fc321e00063a788e9ca0c8baa359.gz deleted file mode 100644 index 62b314ef11..0000000000 Binary files a/_darcs/patches/20080922223239-5ed1f-1d34d37c75b2fc321e00063a788e9ca0c8baa359.gz and /dev/null differ diff --git a/_darcs/patches/20080922223429-e558a-4b456954f475c022be288e85a186ffa8794fad03.gz b/_darcs/patches/20080922223429-e558a-4b456954f475c022be288e85a186ffa8794fad03.gz deleted file mode 100644 index 8106323c60..0000000000 Binary files a/_darcs/patches/20080922223429-e558a-4b456954f475c022be288e85a186ffa8794fad03.gz and /dev/null differ diff --git a/_darcs/patches/20080922225031-84dde-c6967f46ae642f8943b0de77d9a82892ecadb4ce.gz b/_darcs/patches/20080922225031-84dde-c6967f46ae642f8943b0de77d9a82892ecadb4ce.gz deleted file mode 100644 index a37a65348b..0000000000 Binary files a/_darcs/patches/20080922225031-84dde-c6967f46ae642f8943b0de77d9a82892ecadb4ce.gz and /dev/null differ diff --git a/_darcs/patches/20080922225224-84dde-625df932503bbcfc34e4eecc6aec09c5a0509315.gz b/_darcs/patches/20080922225224-84dde-625df932503bbcfc34e4eecc6aec09c5a0509315.gz deleted file mode 100644 index a5bdba304b..0000000000 Binary files a/_darcs/patches/20080922225224-84dde-625df932503bbcfc34e4eecc6aec09c5a0509315.gz and /dev/null differ diff --git a/_darcs/patches/20080922225239-84dde-57e21338f073811b3ac3766f65e905849e1e9eb3.gz b/_darcs/patches/20080922225239-84dde-57e21338f073811b3ac3766f65e905849e1e9eb3.gz deleted file mode 100644 index cdedfa0d4d..0000000000 Binary files a/_darcs/patches/20080922225239-84dde-57e21338f073811b3ac3766f65e905849e1e9eb3.gz and /dev/null differ diff --git a/_darcs/patches/20080922225620-5ed1f-0dd8e76bcb8850744040e234e04b3182a0e13add.gz b/_darcs/patches/20080922225620-5ed1f-0dd8e76bcb8850744040e234e04b3182a0e13add.gz deleted file mode 100644 index 2b65de146c..0000000000 Binary files a/_darcs/patches/20080922225620-5ed1f-0dd8e76bcb8850744040e234e04b3182a0e13add.gz and /dev/null differ diff --git a/_darcs/patches/20080922232328-5ed1f-846910a5f0bb379130055d035c3686e3e639912d.gz b/_darcs/patches/20080922232328-5ed1f-846910a5f0bb379130055d035c3686e3e639912d.gz deleted file mode 100644 index 6417ffe6a4..0000000000 Binary files a/_darcs/patches/20080922232328-5ed1f-846910a5f0bb379130055d035c3686e3e639912d.gz and /dev/null differ diff --git a/_darcs/patches/20080923031419-5ed1f-5435509496b882de27d4c3acca4697cc410ee7be.gz b/_darcs/patches/20080923031419-5ed1f-5435509496b882de27d4c3acca4697cc410ee7be.gz deleted file mode 100644 index bfaa0d4525..0000000000 Binary files a/_darcs/patches/20080923031419-5ed1f-5435509496b882de27d4c3acca4697cc410ee7be.gz and /dev/null differ diff --git a/_darcs/patches/20080923043110-5ed1f-f818e92c96b3c88598cea1fb53a95d4b1b9fb19d.gz b/_darcs/patches/20080923043110-5ed1f-f818e92c96b3c88598cea1fb53a95d4b1b9fb19d.gz deleted file mode 100644 index 0b79af095d..0000000000 Binary files a/_darcs/patches/20080923043110-5ed1f-f818e92c96b3c88598cea1fb53a95d4b1b9fb19d.gz and /dev/null differ diff --git a/_darcs/patches/20080923045449-5ed1f-073632fdff95f4869730d01d57cfdb83b31401a9.gz b/_darcs/patches/20080923045449-5ed1f-073632fdff95f4869730d01d57cfdb83b31401a9.gz deleted file mode 100644 index f783df7c24..0000000000 Binary files a/_darcs/patches/20080923045449-5ed1f-073632fdff95f4869730d01d57cfdb83b31401a9.gz and /dev/null differ diff --git a/_darcs/patches/20080923045458-5ed1f-348585c4e0f04a1715dc9f0c0092bcbf7af0a9ef.gz b/_darcs/patches/20080923045458-5ed1f-348585c4e0f04a1715dc9f0c0092bcbf7af0a9ef.gz deleted file mode 100644 index 043b8715a0..0000000000 Binary files a/_darcs/patches/20080923045458-5ed1f-348585c4e0f04a1715dc9f0c0092bcbf7af0a9ef.gz and /dev/null differ diff --git a/_darcs/patches/20080923050637-5ed1f-c568033b5c00ac32d9ad63b5a4d18a81c09ad525.gz b/_darcs/patches/20080923050637-5ed1f-c568033b5c00ac32d9ad63b5a4d18a81c09ad525.gz deleted file mode 100644 index 7a0a2a7620..0000000000 Binary files a/_darcs/patches/20080923050637-5ed1f-c568033b5c00ac32d9ad63b5a4d18a81c09ad525.gz and /dev/null differ diff --git a/_darcs/patches/20080923054413-5ed1f-a317e07925101215e87d2db0c574d20c1cfac665.gz b/_darcs/patches/20080923054413-5ed1f-a317e07925101215e87d2db0c574d20c1cfac665.gz deleted file mode 100644 index c3a42d8d1f..0000000000 Binary files a/_darcs/patches/20080923054413-5ed1f-a317e07925101215e87d2db0c574d20c1cfac665.gz and /dev/null differ diff --git a/_darcs/patches/20080923060314-5ed1f-2ec4894251b99a2f9e9763ecc41659533bfab2eb.gz b/_darcs/patches/20080923060314-5ed1f-2ec4894251b99a2f9e9763ecc41659533bfab2eb.gz deleted file mode 100644 index 6a1f939826..0000000000 Binary files a/_darcs/patches/20080923060314-5ed1f-2ec4894251b99a2f9e9763ecc41659533bfab2eb.gz and /dev/null differ diff --git a/_darcs/patches/20080923063029-5ed1f-de15e9af49acb7e402127b45cd5b6c2814f559bb.gz b/_darcs/patches/20080923063029-5ed1f-de15e9af49acb7e402127b45cd5b6c2814f559bb.gz deleted file mode 100644 index c2dac5e07c..0000000000 Binary files a/_darcs/patches/20080923063029-5ed1f-de15e9af49acb7e402127b45cd5b6c2814f559bb.gz and /dev/null differ diff --git a/_darcs/patches/20080923065021-5ed1f-cef0ed94149b862aa4bf3b1d0189d6fb6d15aaf7.gz b/_darcs/patches/20080923065021-5ed1f-cef0ed94149b862aa4bf3b1d0189d6fb6d15aaf7.gz deleted file mode 100644 index 982a216fd9..0000000000 Binary files a/_darcs/patches/20080923065021-5ed1f-cef0ed94149b862aa4bf3b1d0189d6fb6d15aaf7.gz and /dev/null differ diff --git a/_darcs/patches/20080923065211-5ed1f-7d028a9e42be5ba1151a172d0a4e81f4c618dd2e.gz b/_darcs/patches/20080923065211-5ed1f-7d028a9e42be5ba1151a172d0a4e81f4c618dd2e.gz deleted file mode 100644 index caa651f976..0000000000 Binary files a/_darcs/patches/20080923065211-5ed1f-7d028a9e42be5ba1151a172d0a4e81f4c618dd2e.gz and /dev/null differ diff --git a/_darcs/patches/20080923072150-5ed1f-e885ab238ccf5bb4b21486b37cf8449812cae7ee.gz b/_darcs/patches/20080923072150-5ed1f-e885ab238ccf5bb4b21486b37cf8449812cae7ee.gz deleted file mode 100644 index 70dd15fd4c..0000000000 Binary files a/_darcs/patches/20080923072150-5ed1f-e885ab238ccf5bb4b21486b37cf8449812cae7ee.gz and /dev/null differ diff --git a/_darcs/patches/20080923074529-7b5ce-818fc75dd3a59ae2f1de1b73e1884dd8a826bd6e.gz b/_darcs/patches/20080923074529-7b5ce-818fc75dd3a59ae2f1de1b73e1884dd8a826bd6e.gz deleted file mode 100644 index ab7ddea352..0000000000 Binary files a/_darcs/patches/20080923074529-7b5ce-818fc75dd3a59ae2f1de1b73e1884dd8a826bd6e.gz and /dev/null differ diff --git a/_darcs/patches/20080923080246-5ed1f-a14a101fe2c8cb436ba278dc1b1af9ca3a02f634.gz b/_darcs/patches/20080923080246-5ed1f-a14a101fe2c8cb436ba278dc1b1af9ca3a02f634.gz deleted file mode 100644 index fee82a61c5..0000000000 Binary files a/_darcs/patches/20080923080246-5ed1f-a14a101fe2c8cb436ba278dc1b1af9ca3a02f634.gz and /dev/null differ diff --git a/_darcs/patches/20080923080855-5ed1f-1c19826896f247e9d4f88da07a6fc2134726b4ed.gz b/_darcs/patches/20080923080855-5ed1f-1c19826896f247e9d4f88da07a6fc2134726b4ed.gz deleted file mode 100644 index 098c53da35..0000000000 Binary files a/_darcs/patches/20080923080855-5ed1f-1c19826896f247e9d4f88da07a6fc2134726b4ed.gz and /dev/null differ diff --git a/_darcs/patches/20080923083632-7b5ce-02498acc9fba3070b984eb473ec7825a5eaa2a77.gz b/_darcs/patches/20080923083632-7b5ce-02498acc9fba3070b984eb473ec7825a5eaa2a77.gz deleted file mode 100644 index 9e580552c4..0000000000 Binary files a/_darcs/patches/20080923083632-7b5ce-02498acc9fba3070b984eb473ec7825a5eaa2a77.gz and /dev/null differ diff --git a/_darcs/patches/20080923084145-7b5ce-25cfef64778010135234046be25294a3c7860419.gz b/_darcs/patches/20080923084145-7b5ce-25cfef64778010135234046be25294a3c7860419.gz deleted file mode 100644 index cc7bec25aa..0000000000 Binary files a/_darcs/patches/20080923084145-7b5ce-25cfef64778010135234046be25294a3c7860419.gz and /dev/null differ diff --git a/_darcs/patches/20080923140710-f6e2c-9389f76d0e512c97b44c9d0d52ef3a15cb89d795.gz b/_darcs/patches/20080923140710-f6e2c-9389f76d0e512c97b44c9d0d52ef3a15cb89d795.gz deleted file mode 100644 index 85713ec91e..0000000000 Binary files a/_darcs/patches/20080923140710-f6e2c-9389f76d0e512c97b44c9d0d52ef3a15cb89d795.gz and /dev/null differ diff --git a/_darcs/patches/20080923174302-5ed1f-bf1e3339745eb497523912c2e58298b25ebe89d5.gz b/_darcs/patches/20080923174302-5ed1f-bf1e3339745eb497523912c2e58298b25ebe89d5.gz deleted file mode 100644 index 9f341dd288..0000000000 Binary files a/_darcs/patches/20080923174302-5ed1f-bf1e3339745eb497523912c2e58298b25ebe89d5.gz and /dev/null differ diff --git a/_darcs/patches/20080923181648-5ed1f-a30ef5c24b8b9e49e5c8ba8e023574bb7d9b1ef3.gz b/_darcs/patches/20080923181648-5ed1f-a30ef5c24b8b9e49e5c8ba8e023574bb7d9b1ef3.gz deleted file mode 100644 index ff8ded243d..0000000000 Binary files a/_darcs/patches/20080923181648-5ed1f-a30ef5c24b8b9e49e5c8ba8e023574bb7d9b1ef3.gz and /dev/null differ diff --git a/_darcs/patches/20080923182024-5ed1f-cd751ae81cde929ab377734a41e0cdad321ffec5.gz b/_darcs/patches/20080923182024-5ed1f-cd751ae81cde929ab377734a41e0cdad321ffec5.gz deleted file mode 100644 index 2d85f5dfdf..0000000000 Binary files a/_darcs/patches/20080923182024-5ed1f-cd751ae81cde929ab377734a41e0cdad321ffec5.gz and /dev/null differ diff --git a/_darcs/patches/20080923183035-5ed1f-3a121f45bb373c25cf56fd83c37b552b522844dd.gz b/_darcs/patches/20080923183035-5ed1f-3a121f45bb373c25cf56fd83c37b552b522844dd.gz deleted file mode 100644 index 79946154c5..0000000000 Binary files a/_darcs/patches/20080923183035-5ed1f-3a121f45bb373c25cf56fd83c37b552b522844dd.gz and /dev/null differ diff --git a/_darcs/patches/20080923184851-f6e2c-736ba9b33f02ae5429df6ce8f27418cfbc09db25.gz b/_darcs/patches/20080923184851-f6e2c-736ba9b33f02ae5429df6ce8f27418cfbc09db25.gz deleted file mode 100644 index 15b8c56c13..0000000000 Binary files a/_darcs/patches/20080923184851-f6e2c-736ba9b33f02ae5429df6ce8f27418cfbc09db25.gz and /dev/null differ diff --git a/_darcs/patches/20080923213829-7b5ce-da5c5d25639812403eb59787c4c429cc9931d08a.gz b/_darcs/patches/20080923213829-7b5ce-da5c5d25639812403eb59787c4c429cc9931d08a.gz deleted file mode 100644 index d716fd5726..0000000000 Binary files a/_darcs/patches/20080923213829-7b5ce-da5c5d25639812403eb59787c4c429cc9931d08a.gz and /dev/null differ diff --git a/_darcs/patches/20080923214601-f6e2c-350de6e8df8bb6e9e5f3dbb1ea43360fc55ee847.gz b/_darcs/patches/20080923214601-f6e2c-350de6e8df8bb6e9e5f3dbb1ea43360fc55ee847.gz deleted file mode 100644 index 4aab7a385a..0000000000 Binary files a/_darcs/patches/20080923214601-f6e2c-350de6e8df8bb6e9e5f3dbb1ea43360fc55ee847.gz and /dev/null differ diff --git a/_darcs/patches/20080923221439-7b5ce-be8cfce3a34039bd665348a66812b3a3859a0561.gz b/_darcs/patches/20080923221439-7b5ce-be8cfce3a34039bd665348a66812b3a3859a0561.gz deleted file mode 100644 index 34ab4b3725..0000000000 Binary files a/_darcs/patches/20080923221439-7b5ce-be8cfce3a34039bd665348a66812b3a3859a0561.gz and /dev/null differ diff --git a/_darcs/patches/20080923231921-7b5ce-751490e59ae0a76cebf83eea98da902a63e39645.gz b/_darcs/patches/20080923231921-7b5ce-751490e59ae0a76cebf83eea98da902a63e39645.gz deleted file mode 100644 index 237dd569f5..0000000000 Binary files a/_darcs/patches/20080923231921-7b5ce-751490e59ae0a76cebf83eea98da902a63e39645.gz and /dev/null differ diff --git a/_darcs/patches/20080924023615-7b5ce-c747e8236b3967824ed93f18285e1b6e0b46c3f0.gz b/_darcs/patches/20080924023615-7b5ce-c747e8236b3967824ed93f18285e1b6e0b46c3f0.gz deleted file mode 100644 index 71833a7743..0000000000 Binary files a/_darcs/patches/20080924023615-7b5ce-c747e8236b3967824ed93f18285e1b6e0b46c3f0.gz and /dev/null differ diff --git a/_darcs/patches/20080924052431-7b5ce-589a3f5352f241c5c938ed855601d971e8d69fff.gz b/_darcs/patches/20080924052431-7b5ce-589a3f5352f241c5c938ed855601d971e8d69fff.gz deleted file mode 100644 index b697d224cb..0000000000 Binary files a/_darcs/patches/20080924052431-7b5ce-589a3f5352f241c5c938ed855601d971e8d69fff.gz and /dev/null differ diff --git a/_darcs/patches/20080924060455-7b5ce-71ac4bb3a80ca44e6ae758d2287d50c918d1d908.gz b/_darcs/patches/20080924060455-7b5ce-71ac4bb3a80ca44e6ae758d2287d50c918d1d908.gz deleted file mode 100644 index 176446ae07..0000000000 Binary files a/_darcs/patches/20080924060455-7b5ce-71ac4bb3a80ca44e6ae758d2287d50c918d1d908.gz and /dev/null differ diff --git a/_darcs/patches/20080924092031-f6e2c-8def504406ee1a13273bb67faafe3a3327ae4a44.gz b/_darcs/patches/20080924092031-f6e2c-8def504406ee1a13273bb67faafe3a3327ae4a44.gz deleted file mode 100644 index 52bec04aa9..0000000000 Binary files a/_darcs/patches/20080924092031-f6e2c-8def504406ee1a13273bb67faafe3a3327ae4a44.gz and /dev/null differ diff --git a/_darcs/patches/20080924113550-f6e2c-8791d68684424ef028049ee9ed95b3853dd8f770.gz b/_darcs/patches/20080924113550-f6e2c-8791d68684424ef028049ee9ed95b3853dd8f770.gz deleted file mode 100644 index ace88c4f4a..0000000000 Binary files a/_darcs/patches/20080924113550-f6e2c-8791d68684424ef028049ee9ed95b3853dd8f770.gz and /dev/null differ diff --git a/_darcs/patches/20080924150828-f6e2c-4c592c60b7ff6b0cae5a222a5d871fc875217e13.gz b/_darcs/patches/20080924150828-f6e2c-4c592c60b7ff6b0cae5a222a5d871fc875217e13.gz deleted file mode 100644 index 02f3756b47..0000000000 Binary files a/_darcs/patches/20080924150828-f6e2c-4c592c60b7ff6b0cae5a222a5d871fc875217e13.gz and /dev/null differ diff --git a/_darcs/patches/20080924150834-5ed1f-54cd945f61e43bc06768037c60c1e6180a8feead.gz b/_darcs/patches/20080924150834-5ed1f-54cd945f61e43bc06768037c60c1e6180a8feead.gz deleted file mode 100644 index 96ee20701a..0000000000 Binary files a/_darcs/patches/20080924150834-5ed1f-54cd945f61e43bc06768037c60c1e6180a8feead.gz and /dev/null differ diff --git a/_darcs/patches/20080924161708-5ed1f-c215f149abc11b07c34fda59c90a26d8b7603d38.gz b/_darcs/patches/20080924161708-5ed1f-c215f149abc11b07c34fda59c90a26d8b7603d38.gz deleted file mode 100644 index d9e67df82d..0000000000 Binary files a/_darcs/patches/20080924161708-5ed1f-c215f149abc11b07c34fda59c90a26d8b7603d38.gz and /dev/null differ diff --git a/_darcs/patches/20080924194608-f6e2c-cb28d1df4a79b8bb47e22f4c323e90b00a6917ae.gz b/_darcs/patches/20080924194608-f6e2c-cb28d1df4a79b8bb47e22f4c323e90b00a6917ae.gz deleted file mode 100644 index 7b162bf2b1..0000000000 Binary files a/_darcs/patches/20080924194608-f6e2c-cb28d1df4a79b8bb47e22f4c323e90b00a6917ae.gz and /dev/null differ diff --git a/_darcs/patches/20080924200710-5ed1f-be75fac6babb59469a1967436c32f0d8c8271680.gz b/_darcs/patches/20080924200710-5ed1f-be75fac6babb59469a1967436c32f0d8c8271680.gz deleted file mode 100644 index ec178290c5..0000000000 Binary files a/_darcs/patches/20080924200710-5ed1f-be75fac6babb59469a1967436c32f0d8c8271680.gz and /dev/null differ diff --git a/_darcs/patches/20080924202211-5ed1f-a39e520b113a843bee6dd9e2e56c1a7afb2bb896.gz b/_darcs/patches/20080924202211-5ed1f-a39e520b113a843bee6dd9e2e56c1a7afb2bb896.gz deleted file mode 100644 index 13dc34cf7e..0000000000 Binary files a/_darcs/patches/20080924202211-5ed1f-a39e520b113a843bee6dd9e2e56c1a7afb2bb896.gz and /dev/null differ diff --git a/_darcs/patches/20080924204131-5ed1f-099c73720b3a4f2263ca28566fcd6b4c809fd4ab.gz b/_darcs/patches/20080924204131-5ed1f-099c73720b3a4f2263ca28566fcd6b4c809fd4ab.gz deleted file mode 100644 index 5592d74346..0000000000 Binary files a/_darcs/patches/20080924204131-5ed1f-099c73720b3a4f2263ca28566fcd6b4c809fd4ab.gz and /dev/null differ diff --git a/_darcs/patches/20080924205318-f6e2c-fd8ae92a29a3f915cce45dd6797a8c294713d65b.gz b/_darcs/patches/20080924205318-f6e2c-fd8ae92a29a3f915cce45dd6797a8c294713d65b.gz deleted file mode 100644 index 6d9b440431..0000000000 Binary files a/_darcs/patches/20080924205318-f6e2c-fd8ae92a29a3f915cce45dd6797a8c294713d65b.gz and /dev/null differ diff --git a/_darcs/patches/20080924210153-f6e2c-77281b7f449435bd0129addb4850860b6e85739b.gz b/_darcs/patches/20080924210153-f6e2c-77281b7f449435bd0129addb4850860b6e85739b.gz deleted file mode 100644 index cd859eff7e..0000000000 Binary files a/_darcs/patches/20080924210153-f6e2c-77281b7f449435bd0129addb4850860b6e85739b.gz and /dev/null differ diff --git a/_darcs/patches/20080924210254-5ed1f-2c6fd16b9be0dafb3b72ef23b53193db5e188b46.gz b/_darcs/patches/20080924210254-5ed1f-2c6fd16b9be0dafb3b72ef23b53193db5e188b46.gz deleted file mode 100644 index 8dcb71ec27..0000000000 Binary files a/_darcs/patches/20080924210254-5ed1f-2c6fd16b9be0dafb3b72ef23b53193db5e188b46.gz and /dev/null differ diff --git a/_darcs/patches/20080924210459-5ed1f-8fb83a73373b4077a47a7f78b26161adcbe1f977.gz b/_darcs/patches/20080924210459-5ed1f-8fb83a73373b4077a47a7f78b26161adcbe1f977.gz deleted file mode 100644 index 6825538dee..0000000000 Binary files a/_darcs/patches/20080924210459-5ed1f-8fb83a73373b4077a47a7f78b26161adcbe1f977.gz and /dev/null differ diff --git a/_darcs/patches/20080924210757-5ed1f-beca326b5c38b086f5ab195b7478c944881ca469.gz b/_darcs/patches/20080924210757-5ed1f-beca326b5c38b086f5ab195b7478c944881ca469.gz deleted file mode 100644 index 4d67a6d01a..0000000000 Binary files a/_darcs/patches/20080924210757-5ed1f-beca326b5c38b086f5ab195b7478c944881ca469.gz and /dev/null differ diff --git a/_darcs/patches/20080924234857-7b5ce-2f0c60901ee582bdd76ae9596253c2efcc6dc50d.gz b/_darcs/patches/20080924234857-7b5ce-2f0c60901ee582bdd76ae9596253c2efcc6dc50d.gz deleted file mode 100644 index 616ffd19f2..0000000000 Binary files a/_darcs/patches/20080924234857-7b5ce-2f0c60901ee582bdd76ae9596253c2efcc6dc50d.gz and /dev/null differ diff --git a/_darcs/patches/20080925092854-f6e2c-b1b73a1f01e8541cd354edfd9b879447a52b928e.gz b/_darcs/patches/20080925092854-f6e2c-b1b73a1f01e8541cd354edfd9b879447a52b928e.gz deleted file mode 100644 index 5157d7191e..0000000000 Binary files a/_darcs/patches/20080925092854-f6e2c-b1b73a1f01e8541cd354edfd9b879447a52b928e.gz and /dev/null differ diff --git a/_darcs/patches/20080925113246-f6e2c-3791dad4a43f3c5f295f3cb7d629eaddc8b44a28.gz b/_darcs/patches/20080925113246-f6e2c-3791dad4a43f3c5f295f3cb7d629eaddc8b44a28.gz deleted file mode 100644 index 51f6fe44d8..0000000000 Binary files a/_darcs/patches/20080925113246-f6e2c-3791dad4a43f3c5f295f3cb7d629eaddc8b44a28.gz and /dev/null differ diff --git a/_darcs/patches/20080926012015-7b5ce-da94465ff9c027183e0e674b6152902c302d0131.gz b/_darcs/patches/20080926012015-7b5ce-da94465ff9c027183e0e674b6152902c302d0131.gz deleted file mode 100644 index 47f50476d2..0000000000 Binary files a/_darcs/patches/20080926012015-7b5ce-da94465ff9c027183e0e674b6152902c302d0131.gz and /dev/null differ diff --git a/_darcs/patches/20080926104442-f6e2c-6684c535eef665f6196f160f02e4763957c3613c.gz b/_darcs/patches/20080926104442-f6e2c-6684c535eef665f6196f160f02e4763957c3613c.gz deleted file mode 100644 index 804c153d53..0000000000 Binary files a/_darcs/patches/20080926104442-f6e2c-6684c535eef665f6196f160f02e4763957c3613c.gz and /dev/null differ diff --git a/_darcs/patches/20080926145008-5ed1f-8a60ed3c5adbfe75aa044732e8d10dbdb9b93089.gz b/_darcs/patches/20080926145008-5ed1f-8a60ed3c5adbfe75aa044732e8d10dbdb9b93089.gz deleted file mode 100644 index 28e2569556..0000000000 Binary files a/_darcs/patches/20080926145008-5ed1f-8a60ed3c5adbfe75aa044732e8d10dbdb9b93089.gz and /dev/null differ diff --git a/_darcs/patches/20080926160941-5ed1f-922de078b4c1941853ad014edf9a17fae486f8cf.gz b/_darcs/patches/20080926160941-5ed1f-922de078b4c1941853ad014edf9a17fae486f8cf.gz deleted file mode 100644 index 28a3fbf79a..0000000000 Binary files a/_darcs/patches/20080926160941-5ed1f-922de078b4c1941853ad014edf9a17fae486f8cf.gz and /dev/null differ diff --git a/_darcs/patches/20080926161540-5ed1f-2e9dc6f2297c612208214a6d52f36ce0dd7aa4de.gz b/_darcs/patches/20080926161540-5ed1f-2e9dc6f2297c612208214a6d52f36ce0dd7aa4de.gz deleted file mode 100644 index 92f73078dc..0000000000 Binary files a/_darcs/patches/20080926161540-5ed1f-2e9dc6f2297c612208214a6d52f36ce0dd7aa4de.gz and /dev/null differ diff --git a/_darcs/patches/20080926161652-5ed1f-45aee985c6755642d346b864926b2346900c4055.gz b/_darcs/patches/20080926161652-5ed1f-45aee985c6755642d346b864926b2346900c4055.gz deleted file mode 100644 index 6055292e66..0000000000 Binary files a/_darcs/patches/20080926161652-5ed1f-45aee985c6755642d346b864926b2346900c4055.gz and /dev/null differ diff --git a/_darcs/patches/20080926161824-5ed1f-b4fb53e5ca65bb099aabbba6ea60a13496f669a2.gz b/_darcs/patches/20080926161824-5ed1f-b4fb53e5ca65bb099aabbba6ea60a13496f669a2.gz deleted file mode 100644 index 5902cd7bc3..0000000000 Binary files a/_darcs/patches/20080926161824-5ed1f-b4fb53e5ca65bb099aabbba6ea60a13496f669a2.gz and /dev/null differ diff --git a/_darcs/patches/20080926161946-5ed1f-496b47c72a77fb26610af465af9d9e26c488d315.gz b/_darcs/patches/20080926161946-5ed1f-496b47c72a77fb26610af465af9d9e26c488d315.gz deleted file mode 100644 index 8109b491cb..0000000000 Binary files a/_darcs/patches/20080926161946-5ed1f-496b47c72a77fb26610af465af9d9e26c488d315.gz and /dev/null differ diff --git a/_darcs/patches/20080926162347-5ed1f-ddb17266f5a60ee85db5fdfb9c8bd12311da3c73.gz b/_darcs/patches/20080926162347-5ed1f-ddb17266f5a60ee85db5fdfb9c8bd12311da3c73.gz deleted file mode 100644 index a5698cb11e..0000000000 Binary files a/_darcs/patches/20080926162347-5ed1f-ddb17266f5a60ee85db5fdfb9c8bd12311da3c73.gz and /dev/null differ diff --git a/_darcs/patches/20080926163030-5ed1f-c2d375d8a8c2097456ffb3e09e55daacae2cc903.gz b/_darcs/patches/20080926163030-5ed1f-c2d375d8a8c2097456ffb3e09e55daacae2cc903.gz deleted file mode 100644 index 7fb8e5468f..0000000000 Binary files a/_darcs/patches/20080926163030-5ed1f-c2d375d8a8c2097456ffb3e09e55daacae2cc903.gz and /dev/null differ diff --git a/_darcs/patches/20080926163357-5ed1f-49bd6d85d34d0e6ac3514c06d99e5b5b9a78b0fc.gz b/_darcs/patches/20080926163357-5ed1f-49bd6d85d34d0e6ac3514c06d99e5b5b9a78b0fc.gz deleted file mode 100644 index b0ea1487b4..0000000000 Binary files a/_darcs/patches/20080926163357-5ed1f-49bd6d85d34d0e6ac3514c06d99e5b5b9a78b0fc.gz and /dev/null differ diff --git a/_darcs/patches/20080926163555-5ed1f-b2c7f8b9fde0af801e33dc92e4177d1ed4f80159.gz b/_darcs/patches/20080926163555-5ed1f-b2c7f8b9fde0af801e33dc92e4177d1ed4f80159.gz deleted file mode 100644 index fa9359ab8f..0000000000 Binary files a/_darcs/patches/20080926163555-5ed1f-b2c7f8b9fde0af801e33dc92e4177d1ed4f80159.gz and /dev/null differ diff --git a/_darcs/patches/20080926164021-5ed1f-833db670e260c68fc02b0a2a60a2829f247742a1.gz b/_darcs/patches/20080926164021-5ed1f-833db670e260c68fc02b0a2a60a2829f247742a1.gz deleted file mode 100644 index 0e05032245..0000000000 Binary files a/_darcs/patches/20080926164021-5ed1f-833db670e260c68fc02b0a2a60a2829f247742a1.gz and /dev/null differ diff --git a/_darcs/patches/20080926164413-5ed1f-d0bbbab5215e43d182e8807fc9fec6cc86dae1ae.gz b/_darcs/patches/20080926164413-5ed1f-d0bbbab5215e43d182e8807fc9fec6cc86dae1ae.gz deleted file mode 100644 index 705deeca72..0000000000 Binary files a/_darcs/patches/20080926164413-5ed1f-d0bbbab5215e43d182e8807fc9fec6cc86dae1ae.gz and /dev/null differ diff --git a/_darcs/patches/20080926164532-5ed1f-1ed3922f205dea0805c7a77618fdf8c9e1a4de02.gz b/_darcs/patches/20080926164532-5ed1f-1ed3922f205dea0805c7a77618fdf8c9e1a4de02.gz deleted file mode 100644 index 2c407d32cb..0000000000 Binary files a/_darcs/patches/20080926164532-5ed1f-1ed3922f205dea0805c7a77618fdf8c9e1a4de02.gz and /dev/null differ diff --git a/_darcs/patches/20080926165029-5ed1f-60059ffeac9a39326fc6286faf4ac13c35127f25.gz b/_darcs/patches/20080926165029-5ed1f-60059ffeac9a39326fc6286faf4ac13c35127f25.gz deleted file mode 100644 index 613d51547b..0000000000 Binary files a/_darcs/patches/20080926165029-5ed1f-60059ffeac9a39326fc6286faf4ac13c35127f25.gz and /dev/null differ diff --git a/_darcs/patches/20080926165201-5ed1f-8efd0369f1f367dacca450ac3bffd755ea841f6f.gz b/_darcs/patches/20080926165201-5ed1f-8efd0369f1f367dacca450ac3bffd755ea841f6f.gz deleted file mode 100644 index 590e8f4183..0000000000 Binary files a/_darcs/patches/20080926165201-5ed1f-8efd0369f1f367dacca450ac3bffd755ea841f6f.gz and /dev/null differ diff --git a/_darcs/patches/20080926165310-5ed1f-e6d17801c4e9f58cbbbfa774e79583221fdca01f.gz b/_darcs/patches/20080926165310-5ed1f-e6d17801c4e9f58cbbbfa774e79583221fdca01f.gz deleted file mode 100644 index 4f958754c0..0000000000 Binary files a/_darcs/patches/20080926165310-5ed1f-e6d17801c4e9f58cbbbfa774e79583221fdca01f.gz and /dev/null differ diff --git a/_darcs/patches/20080926190543-7b5ce-b67b1f2a27825a38782ea8a7a11cc5f50e49725a.gz b/_darcs/patches/20080926190543-7b5ce-b67b1f2a27825a38782ea8a7a11cc5f50e49725a.gz deleted file mode 100644 index e4208038dd..0000000000 Binary files a/_darcs/patches/20080926190543-7b5ce-b67b1f2a27825a38782ea8a7a11cc5f50e49725a.gz and /dev/null differ diff --git a/_darcs/patches/20080926195501-5ed1f-b811fac3320a0b6d8002771caa9463ba9a0889a1.gz b/_darcs/patches/20080926195501-5ed1f-b811fac3320a0b6d8002771caa9463ba9a0889a1.gz deleted file mode 100644 index e2fefe974f..0000000000 Binary files a/_darcs/patches/20080926195501-5ed1f-b811fac3320a0b6d8002771caa9463ba9a0889a1.gz and /dev/null differ diff --git a/_darcs/patches/20080926200102-5ed1f-debbc18981424d7724277ac82e5fbfd5e797090e.gz b/_darcs/patches/20080926200102-5ed1f-debbc18981424d7724277ac82e5fbfd5e797090e.gz deleted file mode 100644 index 197063095e..0000000000 Binary files a/_darcs/patches/20080926200102-5ed1f-debbc18981424d7724277ac82e5fbfd5e797090e.gz and /dev/null differ diff --git a/_darcs/patches/20080926214627-f6e2c-f0aa98fe5e76c4aaa3bbaeb400fe85704a31a8c9.gz b/_darcs/patches/20080926214627-f6e2c-f0aa98fe5e76c4aaa3bbaeb400fe85704a31a8c9.gz deleted file mode 100644 index ee906ff723..0000000000 Binary files a/_darcs/patches/20080926214627-f6e2c-f0aa98fe5e76c4aaa3bbaeb400fe85704a31a8c9.gz and /dev/null differ diff --git a/_darcs/patches/20080927123507-5ed1f-57bc3843352007ae47689a94483d315984276b45.gz b/_darcs/patches/20080927123507-5ed1f-57bc3843352007ae47689a94483d315984276b45.gz deleted file mode 100644 index 370938e112..0000000000 Binary files a/_darcs/patches/20080927123507-5ed1f-57bc3843352007ae47689a94483d315984276b45.gz and /dev/null differ diff --git a/_darcs/patches/20080927210355-f6e2c-e434c363a6d849215ceb7ee366f35c0a3cd92c8e.gz b/_darcs/patches/20080927210355-f6e2c-e434c363a6d849215ceb7ee366f35c0a3cd92c8e.gz deleted file mode 100644 index f04e8cf149..0000000000 Binary files a/_darcs/patches/20080927210355-f6e2c-e434c363a6d849215ceb7ee366f35c0a3cd92c8e.gz and /dev/null differ diff --git a/_darcs/patches/20080928120119-5ed1f-ead542348bcd3cf315be6f42934353154402eb16.gz b/_darcs/patches/20080928120119-5ed1f-ead542348bcd3cf315be6f42934353154402eb16.gz deleted file mode 100644 index 13d5972ac5..0000000000 Binary files a/_darcs/patches/20080928120119-5ed1f-ead542348bcd3cf315be6f42934353154402eb16.gz and /dev/null differ diff --git a/_darcs/patches/20080928120616-5ed1f-fc0b136afff897a2d69f88dd83b6fc5df4f675b6.gz b/_darcs/patches/20080928120616-5ed1f-fc0b136afff897a2d69f88dd83b6fc5df4f675b6.gz deleted file mode 100644 index 1702905505..0000000000 Binary files a/_darcs/patches/20080928120616-5ed1f-fc0b136afff897a2d69f88dd83b6fc5df4f675b6.gz and /dev/null differ diff --git a/_darcs/patches/20080928132747-5ed1f-9e9b6d8b91f855758ca4b269418f6d5d6e4a2ae0.gz b/_darcs/patches/20080928132747-5ed1f-9e9b6d8b91f855758ca4b269418f6d5d6e4a2ae0.gz deleted file mode 100644 index 90b0129fd4..0000000000 Binary files a/_darcs/patches/20080928132747-5ed1f-9e9b6d8b91f855758ca4b269418f6d5d6e4a2ae0.gz and /dev/null differ diff --git a/_darcs/patches/20080928132846-5ed1f-cb542b90cdebcb2af95e6e225c3da157a5526741.gz b/_darcs/patches/20080928132846-5ed1f-cb542b90cdebcb2af95e6e225c3da157a5526741.gz deleted file mode 100644 index 824f22e579..0000000000 Binary files a/_darcs/patches/20080928132846-5ed1f-cb542b90cdebcb2af95e6e225c3da157a5526741.gz and /dev/null differ diff --git a/_darcs/patches/20080928171407-84dde-9c6944a42a6e8e7f2fc90138336a86ae81c33763.gz b/_darcs/patches/20080928171407-84dde-9c6944a42a6e8e7f2fc90138336a86ae81c33763.gz deleted file mode 100644 index 4a4ea2003f..0000000000 Binary files a/_darcs/patches/20080928171407-84dde-9c6944a42a6e8e7f2fc90138336a86ae81c33763.gz and /dev/null differ diff --git a/_darcs/patches/20080928171538-5ed1f-a4e930adcc9aa5d25f47a04952b181a1546c22d3.gz b/_darcs/patches/20080928171538-5ed1f-a4e930adcc9aa5d25f47a04952b181a1546c22d3.gz deleted file mode 100644 index eee341b0df..0000000000 Binary files a/_darcs/patches/20080928171538-5ed1f-a4e930adcc9aa5d25f47a04952b181a1546c22d3.gz and /dev/null differ diff --git a/_darcs/patches/20080928171634-5ed1f-5a62d8a16dedeff8a9ed5677b2288c9890a008e7.gz b/_darcs/patches/20080928171634-5ed1f-5a62d8a16dedeff8a9ed5677b2288c9890a008e7.gz deleted file mode 100644 index 54833f9414..0000000000 Binary files a/_darcs/patches/20080928171634-5ed1f-5a62d8a16dedeff8a9ed5677b2288c9890a008e7.gz and /dev/null differ diff --git a/_darcs/patches/20080928172002-5ed1f-a81ae374b920e222183cf9de86e5fed732a0ed5b.gz b/_darcs/patches/20080928172002-5ed1f-a81ae374b920e222183cf9de86e5fed732a0ed5b.gz deleted file mode 100644 index c0fab0b284..0000000000 Binary files a/_darcs/patches/20080928172002-5ed1f-a81ae374b920e222183cf9de86e5fed732a0ed5b.gz and /dev/null differ diff --git a/_darcs/patches/20080928173558-5ed1f-0949a60e3c7edb9ad58f818c3121896637033abe.gz b/_darcs/patches/20080928173558-5ed1f-0949a60e3c7edb9ad58f818c3121896637033abe.gz deleted file mode 100644 index 0b88d63d64..0000000000 Binary files a/_darcs/patches/20080928173558-5ed1f-0949a60e3c7edb9ad58f818c3121896637033abe.gz and /dev/null differ diff --git a/_darcs/patches/20080928174316-5ed1f-73bc071fed0aff359c94b4213816e8830eba6c50.gz b/_darcs/patches/20080928174316-5ed1f-73bc071fed0aff359c94b4213816e8830eba6c50.gz deleted file mode 100644 index b571bbad49..0000000000 Binary files a/_darcs/patches/20080928174316-5ed1f-73bc071fed0aff359c94b4213816e8830eba6c50.gz and /dev/null differ diff --git a/_darcs/patches/20080928174814-5ed1f-3e431670e52096669e26f6a26edc6ae903763411.gz b/_darcs/patches/20080928174814-5ed1f-3e431670e52096669e26f6a26edc6ae903763411.gz deleted file mode 100644 index 8bcd3ce5b7..0000000000 Binary files a/_darcs/patches/20080928174814-5ed1f-3e431670e52096669e26f6a26edc6ae903763411.gz and /dev/null differ diff --git a/_darcs/patches/20080928175156-5ed1f-f33007b9dd9ee73632e48fc4bf45f29fb63ae494.gz b/_darcs/patches/20080928175156-5ed1f-f33007b9dd9ee73632e48fc4bf45f29fb63ae494.gz deleted file mode 100644 index afe5a0d62b..0000000000 Binary files a/_darcs/patches/20080928175156-5ed1f-f33007b9dd9ee73632e48fc4bf45f29fb63ae494.gz and /dev/null differ diff --git a/_darcs/patches/20080928175626-5ed1f-cb8775fbff6825e56378f4b900f496cbc6cb3678.gz b/_darcs/patches/20080928175626-5ed1f-cb8775fbff6825e56378f4b900f496cbc6cb3678.gz deleted file mode 100644 index 353d0411ee..0000000000 Binary files a/_darcs/patches/20080928175626-5ed1f-cb8775fbff6825e56378f4b900f496cbc6cb3678.gz and /dev/null differ diff --git a/_darcs/patches/20080928180132-5ed1f-6e8ab82b22e71ad59b83579f17b9c3d01fcc29e2.gz b/_darcs/patches/20080928180132-5ed1f-6e8ab82b22e71ad59b83579f17b9c3d01fcc29e2.gz deleted file mode 100644 index 3017a5c431..0000000000 Binary files a/_darcs/patches/20080928180132-5ed1f-6e8ab82b22e71ad59b83579f17b9c3d01fcc29e2.gz and /dev/null differ diff --git a/_darcs/patches/20080928180904-5ed1f-ebf95f6f04ee4128a1ab2bb9a6a06a946926665d.gz b/_darcs/patches/20080928180904-5ed1f-ebf95f6f04ee4128a1ab2bb9a6a06a946926665d.gz deleted file mode 100644 index e1542f1220..0000000000 Binary files a/_darcs/patches/20080928180904-5ed1f-ebf95f6f04ee4128a1ab2bb9a6a06a946926665d.gz and /dev/null differ diff --git a/_darcs/patches/20080928181017-5ed1f-0a55e69f2b3c12fa182954855c1f5a5f25812d1b.gz b/_darcs/patches/20080928181017-5ed1f-0a55e69f2b3c12fa182954855c1f5a5f25812d1b.gz deleted file mode 100644 index f00b051cac..0000000000 Binary files a/_darcs/patches/20080928181017-5ed1f-0a55e69f2b3c12fa182954855c1f5a5f25812d1b.gz and /dev/null differ diff --git a/_darcs/patches/20080928181121-5ed1f-b8fc9b65bf1180b9a360422caf584d65a5db63c3.gz b/_darcs/patches/20080928181121-5ed1f-b8fc9b65bf1180b9a360422caf584d65a5db63c3.gz deleted file mode 100644 index d76efc1538..0000000000 Binary files a/_darcs/patches/20080928181121-5ed1f-b8fc9b65bf1180b9a360422caf584d65a5db63c3.gz and /dev/null differ diff --git a/_darcs/patches/20080928181255-5ed1f-fd49afc180bda9ae7875ad7b70a337e4cd5771d2.gz b/_darcs/patches/20080928181255-5ed1f-fd49afc180bda9ae7875ad7b70a337e4cd5771d2.gz deleted file mode 100644 index 2ee7ae0874..0000000000 Binary files a/_darcs/patches/20080928181255-5ed1f-fd49afc180bda9ae7875ad7b70a337e4cd5771d2.gz and /dev/null differ diff --git a/_darcs/patches/20080928181503-5ed1f-4a4046000646530b8462f06d0cfc0d2fe862dc48.gz b/_darcs/patches/20080928181503-5ed1f-4a4046000646530b8462f06d0cfc0d2fe862dc48.gz deleted file mode 100644 index da136a8b5f..0000000000 Binary files a/_darcs/patches/20080928181503-5ed1f-4a4046000646530b8462f06d0cfc0d2fe862dc48.gz and /dev/null differ diff --git a/_darcs/patches/20080928181812-5ed1f-708380f239b17b2a53b7279aa4a55af11156a5e8.gz b/_darcs/patches/20080928181812-5ed1f-708380f239b17b2a53b7279aa4a55af11156a5e8.gz deleted file mode 100644 index cff5ae3abf..0000000000 Binary files a/_darcs/patches/20080928181812-5ed1f-708380f239b17b2a53b7279aa4a55af11156a5e8.gz and /dev/null differ diff --git a/_darcs/patches/20080928191022-5ed1f-5adceb2deb208be787f8f32eb8c11b27b7a4fd29.gz b/_darcs/patches/20080928191022-5ed1f-5adceb2deb208be787f8f32eb8c11b27b7a4fd29.gz deleted file mode 100644 index 6fb212732b..0000000000 Binary files a/_darcs/patches/20080928191022-5ed1f-5adceb2deb208be787f8f32eb8c11b27b7a4fd29.gz and /dev/null differ diff --git a/_darcs/patches/20080929050826-7b5ce-201624b32e174ae85b906b92353e39aa043838fa.gz b/_darcs/patches/20080929050826-7b5ce-201624b32e174ae85b906b92353e39aa043838fa.gz deleted file mode 100644 index b04a67f5bc..0000000000 Binary files a/_darcs/patches/20080929050826-7b5ce-201624b32e174ae85b906b92353e39aa043838fa.gz and /dev/null differ diff --git a/_darcs/patches/20080929060227-f6e2c-5996ad74cb5c89052417e36634a22b6e219bd92d.gz b/_darcs/patches/20080929060227-f6e2c-5996ad74cb5c89052417e36634a22b6e219bd92d.gz deleted file mode 100644 index 790864b8cf..0000000000 Binary files a/_darcs/patches/20080929060227-f6e2c-5996ad74cb5c89052417e36634a22b6e219bd92d.gz and /dev/null differ diff --git a/_darcs/patches/20080929205504-5ed1f-fa0ddfe8e78b854eb99e5ab92060320a1d399a2a.gz b/_darcs/patches/20080929205504-5ed1f-fa0ddfe8e78b854eb99e5ab92060320a1d399a2a.gz deleted file mode 100644 index baec9bea5c..0000000000 Binary files a/_darcs/patches/20080929205504-5ed1f-fa0ddfe8e78b854eb99e5ab92060320a1d399a2a.gz and /dev/null differ diff --git a/_darcs/patches/20080929222107-5ed1f-37f079239b11b8ab13d8d33c850351f703d51371.gz b/_darcs/patches/20080929222107-5ed1f-37f079239b11b8ab13d8d33c850351f703d51371.gz deleted file mode 100644 index 8d79ad62e9..0000000000 Binary files a/_darcs/patches/20080929222107-5ed1f-37f079239b11b8ab13d8d33c850351f703d51371.gz and /dev/null differ diff --git a/_darcs/patches/20080929230047-5ed1f-1fee58a5bb18c71de7abeef67d89b087d84cc853.gz b/_darcs/patches/20080929230047-5ed1f-1fee58a5bb18c71de7abeef67d89b087d84cc853.gz deleted file mode 100644 index 941657dd0c..0000000000 Binary files a/_darcs/patches/20080929230047-5ed1f-1fee58a5bb18c71de7abeef67d89b087d84cc853.gz and /dev/null differ diff --git a/_darcs/patches/20080930124452-5ed1f-31cc4ff18994880f9ab36b57cdfc6d9fb19b99d1.gz b/_darcs/patches/20080930124452-5ed1f-31cc4ff18994880f9ab36b57cdfc6d9fb19b99d1.gz deleted file mode 100644 index 5bf0fb78e7..0000000000 Binary files a/_darcs/patches/20080930124452-5ed1f-31cc4ff18994880f9ab36b57cdfc6d9fb19b99d1.gz and /dev/null differ diff --git a/_darcs/patches/20080930130530-5ed1f-48d4d4a503a6bb37c91d828139d652a272b9734a.gz b/_darcs/patches/20080930130530-5ed1f-48d4d4a503a6bb37c91d828139d652a272b9734a.gz deleted file mode 100644 index b29c6e50de..0000000000 Binary files a/_darcs/patches/20080930130530-5ed1f-48d4d4a503a6bb37c91d828139d652a272b9734a.gz and /dev/null differ diff --git a/_darcs/patches/20080930130844-5ed1f-217eb0d62fcac4a287ef3e3f213f2ac6bbc70778.gz b/_darcs/patches/20080930130844-5ed1f-217eb0d62fcac4a287ef3e3f213f2ac6bbc70778.gz deleted file mode 100644 index 5666a29f02..0000000000 Binary files a/_darcs/patches/20080930130844-5ed1f-217eb0d62fcac4a287ef3e3f213f2ac6bbc70778.gz and /dev/null differ diff --git a/_darcs/patches/20080930133847-5ed1f-429b4b3c6ff4f56f50e2dad19de76066589b9e05.gz b/_darcs/patches/20080930133847-5ed1f-429b4b3c6ff4f56f50e2dad19de76066589b9e05.gz deleted file mode 100644 index 75c3f55df1..0000000000 Binary files a/_darcs/patches/20080930133847-5ed1f-429b4b3c6ff4f56f50e2dad19de76066589b9e05.gz and /dev/null differ diff --git a/_darcs/patches/20080930175354-462f3-b49bef0e1b91ef1b94c01426c4c54900a43554d3.gz b/_darcs/patches/20080930175354-462f3-b49bef0e1b91ef1b94c01426c4c54900a43554d3.gz deleted file mode 100644 index ed2000621b..0000000000 Binary files a/_darcs/patches/20080930175354-462f3-b49bef0e1b91ef1b94c01426c4c54900a43554d3.gz and /dev/null differ diff --git a/_darcs/patches/20080930194435-462f3-a0a7fec3f0d05dc3b1fe8a9219155f4d59092e43.gz b/_darcs/patches/20080930194435-462f3-a0a7fec3f0d05dc3b1fe8a9219155f4d59092e43.gz deleted file mode 100644 index 619955860f..0000000000 Binary files a/_darcs/patches/20080930194435-462f3-a0a7fec3f0d05dc3b1fe8a9219155f4d59092e43.gz and /dev/null differ diff --git a/_darcs/patches/20080930210542-5ed1f-7432cf920da782ea220ef6b9e156cf1ea650a5b8.gz b/_darcs/patches/20080930210542-5ed1f-7432cf920da782ea220ef6b9e156cf1ea650a5b8.gz deleted file mode 100644 index b86f44e935..0000000000 Binary files a/_darcs/patches/20080930210542-5ed1f-7432cf920da782ea220ef6b9e156cf1ea650a5b8.gz and /dev/null differ diff --git a/_darcs/patches/20080930212526-462f3-abe9f1f2fc395c751b2861e686d638ea0a8ca001.gz b/_darcs/patches/20080930212526-462f3-abe9f1f2fc395c751b2861e686d638ea0a8ca001.gz deleted file mode 100644 index 2275a73aa6..0000000000 Binary files a/_darcs/patches/20080930212526-462f3-abe9f1f2fc395c751b2861e686d638ea0a8ca001.gz and /dev/null differ diff --git a/_darcs/patches/20081001001233-e558a-3fcc269985050021ec9b44c052206c731cc4689d.gz b/_darcs/patches/20081001001233-e558a-3fcc269985050021ec9b44c052206c731cc4689d.gz deleted file mode 100644 index b03b0a4760..0000000000 Binary files a/_darcs/patches/20081001001233-e558a-3fcc269985050021ec9b44c052206c731cc4689d.gz and /dev/null differ diff --git a/_darcs/patches/20081001010741-352e0-4cbf4afc0f12aa850c1cc7145324477157f24d98.gz b/_darcs/patches/20081001010741-352e0-4cbf4afc0f12aa850c1cc7145324477157f24d98.gz deleted file mode 100644 index b743a104ae..0000000000 Binary files a/_darcs/patches/20081001010741-352e0-4cbf4afc0f12aa850c1cc7145324477157f24d98.gz and /dev/null differ diff --git a/_darcs/patches/20081001020959-462f3-83b0241ba7dc99c4e3a52148a46deb8182e005b0.gz b/_darcs/patches/20081001020959-462f3-83b0241ba7dc99c4e3a52148a46deb8182e005b0.gz deleted file mode 100644 index 564a5eb45f..0000000000 Binary files a/_darcs/patches/20081001020959-462f3-83b0241ba7dc99c4e3a52148a46deb8182e005b0.gz and /dev/null differ diff --git a/_darcs/patches/20081001025421-462f3-3bf666327de3a3c5ea506b2c387741dc3d0e82bf.gz b/_darcs/patches/20081001025421-462f3-3bf666327de3a3c5ea506b2c387741dc3d0e82bf.gz deleted file mode 100644 index 50e75f7ed5..0000000000 Binary files a/_darcs/patches/20081001025421-462f3-3bf666327de3a3c5ea506b2c387741dc3d0e82bf.gz and /dev/null differ diff --git a/_darcs/patches/20081002144628-5ed1f-0cf7909fd15d5361d391a9bcde723585d83e5ed3.gz b/_darcs/patches/20081002144628-5ed1f-0cf7909fd15d5361d391a9bcde723585d83e5ed3.gz deleted file mode 100644 index 9018e1887f..0000000000 Binary files a/_darcs/patches/20081002144628-5ed1f-0cf7909fd15d5361d391a9bcde723585d83e5ed3.gz and /dev/null differ diff --git a/_darcs/patches/20081002144715-5ed1f-97c8362c4fb4f6a761250b68e2f3311bcc5cba4f.gz b/_darcs/patches/20081002144715-5ed1f-97c8362c4fb4f6a761250b68e2f3311bcc5cba4f.gz deleted file mode 100644 index 64ab84b14a..0000000000 Binary files a/_darcs/patches/20081002144715-5ed1f-97c8362c4fb4f6a761250b68e2f3311bcc5cba4f.gz and /dev/null differ diff --git a/_darcs/patches/20081002144749-5ed1f-a5503625b811f28a853712d4ddd4a76813f24bc1.gz b/_darcs/patches/20081002144749-5ed1f-a5503625b811f28a853712d4ddd4a76813f24bc1.gz deleted file mode 100644 index d8be20d079..0000000000 Binary files a/_darcs/patches/20081002144749-5ed1f-a5503625b811f28a853712d4ddd4a76813f24bc1.gz and /dev/null differ diff --git a/_darcs/patches/20081002162513-5ed1f-fff718be660fa4a8abf58df402a3db30d72d11db.gz b/_darcs/patches/20081002162513-5ed1f-fff718be660fa4a8abf58df402a3db30d72d11db.gz deleted file mode 100644 index ded535fc2e..0000000000 Binary files a/_darcs/patches/20081002162513-5ed1f-fff718be660fa4a8abf58df402a3db30d72d11db.gz and /dev/null differ diff --git a/_darcs/patches/20081002162604-5ed1f-45e9f43e3dbe778462377ebe22f994bdafb4bcdd.gz b/_darcs/patches/20081002162604-5ed1f-45e9f43e3dbe778462377ebe22f994bdafb4bcdd.gz deleted file mode 100644 index a28a5395bd..0000000000 Binary files a/_darcs/patches/20081002162604-5ed1f-45e9f43e3dbe778462377ebe22f994bdafb4bcdd.gz and /dev/null differ diff --git a/_darcs/patches/20081002162739-5ed1f-7d83c69d986cc704ef1bb9703a105ac04ad38d06.gz b/_darcs/patches/20081002162739-5ed1f-7d83c69d986cc704ef1bb9703a105ac04ad38d06.gz deleted file mode 100644 index d8f5d3a513..0000000000 Binary files a/_darcs/patches/20081002162739-5ed1f-7d83c69d986cc704ef1bb9703a105ac04ad38d06.gz and /dev/null differ diff --git a/_darcs/patches/20081002181338-f6e2c-cf9cf3791680634fa457cb83dc2e4f933073a9b1.gz b/_darcs/patches/20081002181338-f6e2c-cf9cf3791680634fa457cb83dc2e4f933073a9b1.gz deleted file mode 100644 index 83353774e8..0000000000 Binary files a/_darcs/patches/20081002181338-f6e2c-cf9cf3791680634fa457cb83dc2e4f933073a9b1.gz and /dev/null differ diff --git a/_darcs/patches/20081003011145-29929-9fce5057066d0d223a0d01c1708df072d91b0e63.gz b/_darcs/patches/20081003011145-29929-9fce5057066d0d223a0d01c1708df072d91b0e63.gz deleted file mode 100644 index 0220dbf591..0000000000 Binary files a/_darcs/patches/20081003011145-29929-9fce5057066d0d223a0d01c1708df072d91b0e63.gz and /dev/null differ diff --git a/_darcs/patches/20081003192826-5ed1f-3ec4ebe13d3e9297f99c90f4da3d469805ddc722.gz b/_darcs/patches/20081003192826-5ed1f-3ec4ebe13d3e9297f99c90f4da3d469805ddc722.gz deleted file mode 100644 index a357fad9cc..0000000000 Binary files a/_darcs/patches/20081003192826-5ed1f-3ec4ebe13d3e9297f99c90f4da3d469805ddc722.gz and /dev/null differ diff --git a/_darcs/patches/20081004021158-5ed1f-c8f5e68dd411a5fe7a01ae35398914469c377794.gz b/_darcs/patches/20081004021158-5ed1f-c8f5e68dd411a5fe7a01ae35398914469c377794.gz deleted file mode 100644 index 81f3b1f237..0000000000 Binary files a/_darcs/patches/20081004021158-5ed1f-c8f5e68dd411a5fe7a01ae35398914469c377794.gz and /dev/null differ diff --git a/_darcs/patches/20081004021442-5ed1f-2f60065150426995707e7cf48ca08d59ec175905.gz b/_darcs/patches/20081004021442-5ed1f-2f60065150426995707e7cf48ca08d59ec175905.gz deleted file mode 100644 index 337116af94..0000000000 Binary files a/_darcs/patches/20081004021442-5ed1f-2f60065150426995707e7cf48ca08d59ec175905.gz and /dev/null differ diff --git a/_darcs/patches/20081004142205-5ed1f-7da60ab5a596906acb2fcac2b0a732579d61352a.gz b/_darcs/patches/20081004142205-5ed1f-7da60ab5a596906acb2fcac2b0a732579d61352a.gz deleted file mode 100644 index b36688ea2a..0000000000 Binary files a/_darcs/patches/20081004142205-5ed1f-7da60ab5a596906acb2fcac2b0a732579d61352a.gz and /dev/null differ diff --git a/_darcs/patches/20081004143747-f6e2c-041d44b5375e6c35badbc9748627620fa1092a9a.gz b/_darcs/patches/20081004143747-f6e2c-041d44b5375e6c35badbc9748627620fa1092a9a.gz deleted file mode 100644 index 71d1f462db..0000000000 Binary files a/_darcs/patches/20081004143747-f6e2c-041d44b5375e6c35badbc9748627620fa1092a9a.gz and /dev/null differ diff --git a/_darcs/patches/20081004144441-f6e2c-9a7855e35331f1330d582927c4314a6e5553ff41.gz b/_darcs/patches/20081004144441-f6e2c-9a7855e35331f1330d582927c4314a6e5553ff41.gz deleted file mode 100644 index b8b87a3a2a..0000000000 Binary files a/_darcs/patches/20081004144441-f6e2c-9a7855e35331f1330d582927c4314a6e5553ff41.gz and /dev/null differ diff --git a/_darcs/patches/20081004144545-f6e2c-ec48b90428e224a664080fde72d869b9f941bb90.gz b/_darcs/patches/20081004144545-f6e2c-ec48b90428e224a664080fde72d869b9f941bb90.gz deleted file mode 100644 index ddab6e57aa..0000000000 Binary files a/_darcs/patches/20081004144545-f6e2c-ec48b90428e224a664080fde72d869b9f941bb90.gz and /dev/null differ diff --git a/_darcs/patches/20081004154454-5ed1f-6b5b66945d415690f4cac5e66c1edad71ec031a5.gz b/_darcs/patches/20081004154454-5ed1f-6b5b66945d415690f4cac5e66c1edad71ec031a5.gz deleted file mode 100644 index 9ad4f5b696..0000000000 Binary files a/_darcs/patches/20081004154454-5ed1f-6b5b66945d415690f4cac5e66c1edad71ec031a5.gz and /dev/null differ diff --git a/_darcs/patches/20081004154846-5ed1f-02f7c93248af00fd22e7bb3520179ef1f31da121.gz b/_darcs/patches/20081004154846-5ed1f-02f7c93248af00fd22e7bb3520179ef1f31da121.gz deleted file mode 100644 index fedcfab85b..0000000000 Binary files a/_darcs/patches/20081004154846-5ed1f-02f7c93248af00fd22e7bb3520179ef1f31da121.gz and /dev/null differ diff --git a/_darcs/patches/20081004163213-5ed1f-684ecb464e843b1bbe456c348e56b40a39a83ecd.gz b/_darcs/patches/20081004163213-5ed1f-684ecb464e843b1bbe456c348e56b40a39a83ecd.gz deleted file mode 100644 index b83a7fc638..0000000000 Binary files a/_darcs/patches/20081004163213-5ed1f-684ecb464e843b1bbe456c348e56b40a39a83ecd.gz and /dev/null differ diff --git a/_darcs/patches/20081004170136-5ed1f-4eca2ee2c7ebb7f2d3c6b49ecd634a8ceee28054.gz b/_darcs/patches/20081004170136-5ed1f-4eca2ee2c7ebb7f2d3c6b49ecd634a8ceee28054.gz deleted file mode 100644 index 640b366749..0000000000 Binary files a/_darcs/patches/20081004170136-5ed1f-4eca2ee2c7ebb7f2d3c6b49ecd634a8ceee28054.gz and /dev/null differ diff --git a/_darcs/patches/20081004170342-5ed1f-f4b4656d765c67cf95ca3a9193ff64e3220c1526.gz b/_darcs/patches/20081004170342-5ed1f-f4b4656d765c67cf95ca3a9193ff64e3220c1526.gz deleted file mode 100644 index 7066607ad7..0000000000 Binary files a/_darcs/patches/20081004170342-5ed1f-f4b4656d765c67cf95ca3a9193ff64e3220c1526.gz and /dev/null differ diff --git a/_darcs/patches/20081004170550-5ed1f-69aadc2b9c26d71a1ba039eb92647f4e53c83de9.gz b/_darcs/patches/20081004170550-5ed1f-69aadc2b9c26d71a1ba039eb92647f4e53c83de9.gz deleted file mode 100644 index dbcfb15619..0000000000 Binary files a/_darcs/patches/20081004170550-5ed1f-69aadc2b9c26d71a1ba039eb92647f4e53c83de9.gz and /dev/null differ diff --git a/_darcs/patches/20081004173427-5ed1f-2a818562f5aa7143b68a0eab3e9f26cd02926c0b.gz b/_darcs/patches/20081004173427-5ed1f-2a818562f5aa7143b68a0eab3e9f26cd02926c0b.gz deleted file mode 100644 index feea24130d..0000000000 Binary files a/_darcs/patches/20081004173427-5ed1f-2a818562f5aa7143b68a0eab3e9f26cd02926c0b.gz and /dev/null differ diff --git a/_darcs/patches/20081004173609-5ed1f-e5c7fe78c409e9e073634c0bb5ede0f6d46e2f4f.gz b/_darcs/patches/20081004173609-5ed1f-e5c7fe78c409e9e073634c0bb5ede0f6d46e2f4f.gz deleted file mode 100644 index 33fa9dc5f8..0000000000 Binary files a/_darcs/patches/20081004173609-5ed1f-e5c7fe78c409e9e073634c0bb5ede0f6d46e2f4f.gz and /dev/null differ diff --git a/_darcs/patches/20081004173734-5ed1f-fbb4c09bc9acd26971d0a7ff58769cb77299b371.gz b/_darcs/patches/20081004173734-5ed1f-fbb4c09bc9acd26971d0a7ff58769cb77299b371.gz deleted file mode 100644 index 247a93c6b2..0000000000 Binary files a/_darcs/patches/20081004173734-5ed1f-fbb4c09bc9acd26971d0a7ff58769cb77299b371.gz and /dev/null differ diff --git a/_darcs/patches/20081004173957-5ed1f-dd460b4208c1c7c72b92db6cb85f03accfc1d610.gz b/_darcs/patches/20081004173957-5ed1f-dd460b4208c1c7c72b92db6cb85f03accfc1d610.gz deleted file mode 100644 index bf131ad80d..0000000000 Binary files a/_darcs/patches/20081004173957-5ed1f-dd460b4208c1c7c72b92db6cb85f03accfc1d610.gz and /dev/null differ diff --git a/_darcs/patches/20081004174519-5ed1f-1b9f8d1f12c895eacead8703cbfb088a135e810c.gz b/_darcs/patches/20081004174519-5ed1f-1b9f8d1f12c895eacead8703cbfb088a135e810c.gz deleted file mode 100644 index 3f456e6ba1..0000000000 Binary files a/_darcs/patches/20081004174519-5ed1f-1b9f8d1f12c895eacead8703cbfb088a135e810c.gz and /dev/null differ diff --git a/_darcs/patches/20081004174552-5ed1f-058eb6b0b12d96afa9c2cd635467f0fd6ff4e704.gz b/_darcs/patches/20081004174552-5ed1f-058eb6b0b12d96afa9c2cd635467f0fd6ff4e704.gz deleted file mode 100644 index a289c6e1c5..0000000000 Binary files a/_darcs/patches/20081004174552-5ed1f-058eb6b0b12d96afa9c2cd635467f0fd6ff4e704.gz and /dev/null differ diff --git a/_darcs/patches/20081004182028-5ed1f-18e89922d7f59bcb11c784d36f4ed0a104a1c903.gz b/_darcs/patches/20081004182028-5ed1f-18e89922d7f59bcb11c784d36f4ed0a104a1c903.gz deleted file mode 100644 index 2e1d820fd0..0000000000 Binary files a/_darcs/patches/20081004182028-5ed1f-18e89922d7f59bcb11c784d36f4ed0a104a1c903.gz and /dev/null differ diff --git a/_darcs/patches/20081004194218-5ed1f-efd9e82c9f78e19185d8ef6b626f46c5ae6613db.gz b/_darcs/patches/20081004194218-5ed1f-efd9e82c9f78e19185d8ef6b626f46c5ae6613db.gz deleted file mode 100644 index ad9f769b65..0000000000 Binary files a/_darcs/patches/20081004194218-5ed1f-efd9e82c9f78e19185d8ef6b626f46c5ae6613db.gz and /dev/null differ diff --git a/_darcs/patches/20081004194611-5ed1f-7731a6105f0501ef8cbaf866c52eb9a051e51d9e.gz b/_darcs/patches/20081004194611-5ed1f-7731a6105f0501ef8cbaf866c52eb9a051e51d9e.gz deleted file mode 100644 index 717dc358a1..0000000000 Binary files a/_darcs/patches/20081004194611-5ed1f-7731a6105f0501ef8cbaf866c52eb9a051e51d9e.gz and /dev/null differ diff --git a/_darcs/patches/20081004232554-5ed1f-06b3464638a6dbd6d4090afafa600578ad151b39.gz b/_darcs/patches/20081004232554-5ed1f-06b3464638a6dbd6d4090afafa600578ad151b39.gz deleted file mode 100644 index 2deb2e9643..0000000000 Binary files a/_darcs/patches/20081004232554-5ed1f-06b3464638a6dbd6d4090afafa600578ad151b39.gz and /dev/null differ diff --git a/_darcs/patches/20081005000851-34904-9d4db52b2b9aaf7567f3c0762a68c3e192740bdf.gz b/_darcs/patches/20081005000851-34904-9d4db52b2b9aaf7567f3c0762a68c3e192740bdf.gz deleted file mode 100644 index 9a65611f1c..0000000000 Binary files a/_darcs/patches/20081005000851-34904-9d4db52b2b9aaf7567f3c0762a68c3e192740bdf.gz and /dev/null differ diff --git a/_darcs/patches/20081005030915-462f3-0c0541f062020ee958f1df0361e27f44d6c35e95.gz b/_darcs/patches/20081005030915-462f3-0c0541f062020ee958f1df0361e27f44d6c35e95.gz deleted file mode 100644 index c9143202cd..0000000000 Binary files a/_darcs/patches/20081005030915-462f3-0c0541f062020ee958f1df0361e27f44d6c35e95.gz and /dev/null differ diff --git a/_darcs/patches/20081005181350-7b5ce-1e722af0bd3677b27dd6d100456131a42072dd91.gz b/_darcs/patches/20081005181350-7b5ce-1e722af0bd3677b27dd6d100456131a42072dd91.gz deleted file mode 100644 index e3a873f1c8..0000000000 Binary files a/_darcs/patches/20081005181350-7b5ce-1e722af0bd3677b27dd6d100456131a42072dd91.gz and /dev/null differ diff --git a/_darcs/patches/20081005181614-7b5ce-4ab236108fe2570a199120317120d921715fbd19.gz b/_darcs/patches/20081005181614-7b5ce-4ab236108fe2570a199120317120d921715fbd19.gz deleted file mode 100644 index 5e529c7578..0000000000 Binary files a/_darcs/patches/20081005181614-7b5ce-4ab236108fe2570a199120317120d921715fbd19.gz and /dev/null differ diff --git a/_darcs/patches/20081005183850-462f3-1fcbf873c14f1048ba7c3ac23f6cd394066170c7.gz b/_darcs/patches/20081005183850-462f3-1fcbf873c14f1048ba7c3ac23f6cd394066170c7.gz deleted file mode 100644 index 8c01085879..0000000000 Binary files a/_darcs/patches/20081005183850-462f3-1fcbf873c14f1048ba7c3ac23f6cd394066170c7.gz and /dev/null differ diff --git a/_darcs/patches/20081005191505-5ed1f-f0783711adae8381c5ca987f3f7299393ed435e1.gz b/_darcs/patches/20081005191505-5ed1f-f0783711adae8381c5ca987f3f7299393ed435e1.gz deleted file mode 100644 index ac83855bc1..0000000000 Binary files a/_darcs/patches/20081005191505-5ed1f-f0783711adae8381c5ca987f3f7299393ed435e1.gz and /dev/null differ diff --git a/_darcs/patches/20081006040646-5ed1f-309d137a65e16b6baa022bb2ee7115836bf502a2.gz b/_darcs/patches/20081006040646-5ed1f-309d137a65e16b6baa022bb2ee7115836bf502a2.gz deleted file mode 100644 index c593d29ded..0000000000 Binary files a/_darcs/patches/20081006040646-5ed1f-309d137a65e16b6baa022bb2ee7115836bf502a2.gz and /dev/null differ diff --git a/_darcs/patches/20081006040713-5ed1f-da7f2235b5301c1889922f5c133c01920a316c57.gz b/_darcs/patches/20081006040713-5ed1f-da7f2235b5301c1889922f5c133c01920a316c57.gz deleted file mode 100644 index 7792cc768c..0000000000 Binary files a/_darcs/patches/20081006040713-5ed1f-da7f2235b5301c1889922f5c133c01920a316c57.gz and /dev/null differ diff --git a/_darcs/patches/20081006040733-5ed1f-01bc3eb49157daccde21c5bbe3505df7b584dfde.gz b/_darcs/patches/20081006040733-5ed1f-01bc3eb49157daccde21c5bbe3505df7b584dfde.gz deleted file mode 100644 index f528c38cbf..0000000000 Binary files a/_darcs/patches/20081006040733-5ed1f-01bc3eb49157daccde21c5bbe3505df7b584dfde.gz and /dev/null differ diff --git a/_darcs/patches/20081006041232-5ed1f-830c7ebc8141fae002fead026407f1499126e021.gz b/_darcs/patches/20081006041232-5ed1f-830c7ebc8141fae002fead026407f1499126e021.gz deleted file mode 100644 index 8d4359e12b..0000000000 Binary files a/_darcs/patches/20081006041232-5ed1f-830c7ebc8141fae002fead026407f1499126e021.gz and /dev/null differ diff --git a/_darcs/patches/20081006041249-5ed1f-33af2f1759aee066875182272fe0e175a1b8a516.gz b/_darcs/patches/20081006041249-5ed1f-33af2f1759aee066875182272fe0e175a1b8a516.gz deleted file mode 100644 index 05dcbac4f6..0000000000 Binary files a/_darcs/patches/20081006041249-5ed1f-33af2f1759aee066875182272fe0e175a1b8a516.gz and /dev/null differ diff --git a/_darcs/patches/20081006054425-5ed1f-a241327bad9f5918606543f329a78a6832564f18.gz b/_darcs/patches/20081006054425-5ed1f-a241327bad9f5918606543f329a78a6832564f18.gz deleted file mode 100644 index 698848c43a..0000000000 Binary files a/_darcs/patches/20081006054425-5ed1f-a241327bad9f5918606543f329a78a6832564f18.gz and /dev/null differ diff --git a/_darcs/patches/20081006153715-462f3-395d230824398e7aa50aeba200b9b716c64f00c9.gz b/_darcs/patches/20081006153715-462f3-395d230824398e7aa50aeba200b9b716c64f00c9.gz deleted file mode 100644 index 48867f83bc..0000000000 Binary files a/_darcs/patches/20081006153715-462f3-395d230824398e7aa50aeba200b9b716c64f00c9.gz and /dev/null differ diff --git a/_darcs/patches/20081007004432-462f3-6385dcaf69cbcf18ce36a45dc17f5e8b9a19ba31.gz b/_darcs/patches/20081007004432-462f3-6385dcaf69cbcf18ce36a45dc17f5e8b9a19ba31.gz deleted file mode 100644 index def9eab2c3..0000000000 Binary files a/_darcs/patches/20081007004432-462f3-6385dcaf69cbcf18ce36a45dc17f5e8b9a19ba31.gz and /dev/null differ diff --git a/_darcs/patches/20081007083521-f6e2c-00bd73ab4df406188713e7a652b0bd5a7012bf6d.gz b/_darcs/patches/20081007083521-f6e2c-00bd73ab4df406188713e7a652b0bd5a7012bf6d.gz deleted file mode 100644 index d395d618ff..0000000000 Binary files a/_darcs/patches/20081007083521-f6e2c-00bd73ab4df406188713e7a652b0bd5a7012bf6d.gz and /dev/null differ diff --git a/_darcs/patches/20081007145232-f6e2c-15812a2576e1ec270e26dcd61bbec5d07b2b7f05.gz b/_darcs/patches/20081007145232-f6e2c-15812a2576e1ec270e26dcd61bbec5d07b2b7f05.gz deleted file mode 100644 index 96a669a03e..0000000000 Binary files a/_darcs/patches/20081007145232-f6e2c-15812a2576e1ec270e26dcd61bbec5d07b2b7f05.gz and /dev/null differ diff --git a/_darcs/patches/20081007155038-f6e2c-edf0c68026daa174123533af92edc5318a611ba0.gz b/_darcs/patches/20081007155038-f6e2c-edf0c68026daa174123533af92edc5318a611ba0.gz deleted file mode 100644 index 96bc393d0b..0000000000 Binary files a/_darcs/patches/20081007155038-f6e2c-edf0c68026daa174123533af92edc5318a611ba0.gz and /dev/null differ diff --git a/_darcs/patches/20081008164624-5ed1f-aa8d7648df9cd1d554879286dcdd9390bea5a198.gz b/_darcs/patches/20081008164624-5ed1f-aa8d7648df9cd1d554879286dcdd9390bea5a198.gz deleted file mode 100644 index 51d6ba4dc6..0000000000 Binary files a/_darcs/patches/20081008164624-5ed1f-aa8d7648df9cd1d554879286dcdd9390bea5a198.gz and /dev/null differ diff --git a/_darcs/patches/20081012155650-5ed1f-d1bc1f9636c75290c460defe45024e903d0f6930.gz b/_darcs/patches/20081012155650-5ed1f-d1bc1f9636c75290c460defe45024e903d0f6930.gz deleted file mode 100644 index cd48af69a0..0000000000 Binary files a/_darcs/patches/20081012155650-5ed1f-d1bc1f9636c75290c460defe45024e903d0f6930.gz and /dev/null differ diff --git a/_darcs/patches/20081012161211-5ed1f-a813eef14d6c5ec9585e27cde27b3c774e35ceb5.gz b/_darcs/patches/20081012161211-5ed1f-a813eef14d6c5ec9585e27cde27b3c774e35ceb5.gz deleted file mode 100644 index 94493f1461..0000000000 Binary files a/_darcs/patches/20081012161211-5ed1f-a813eef14d6c5ec9585e27cde27b3c774e35ceb5.gz and /dev/null differ diff --git a/_darcs/patches/20081012162719-84dde-37c59c8ce953bb4e0b24a60e75785d3236750a81.gz b/_darcs/patches/20081012162719-84dde-37c59c8ce953bb4e0b24a60e75785d3236750a81.gz deleted file mode 100644 index 092844e80c..0000000000 Binary files a/_darcs/patches/20081012162719-84dde-37c59c8ce953bb4e0b24a60e75785d3236750a81.gz and /dev/null differ diff --git a/_darcs/patches/20081012162810-5ed1f-d2bb39f95e6bf429c3b0a5fea72e8984de78b1bb.gz b/_darcs/patches/20081012162810-5ed1f-d2bb39f95e6bf429c3b0a5fea72e8984de78b1bb.gz deleted file mode 100644 index 81dc15616d..0000000000 Binary files a/_darcs/patches/20081012162810-5ed1f-d2bb39f95e6bf429c3b0a5fea72e8984de78b1bb.gz and /dev/null differ diff --git a/_darcs/patches/20081013200837-f6e2c-201363fdb98e3dff815eb3ac76125dc6b060db68.gz b/_darcs/patches/20081013200837-f6e2c-201363fdb98e3dff815eb3ac76125dc6b060db68.gz deleted file mode 100644 index ca5a97d77c..0000000000 Binary files a/_darcs/patches/20081013200837-f6e2c-201363fdb98e3dff815eb3ac76125dc6b060db68.gz and /dev/null differ diff --git a/_darcs/patches/20081015163112-462f3-ca22e3fcf4a5d3ad4613dd08c4bf7ce59e296385.gz b/_darcs/patches/20081015163112-462f3-ca22e3fcf4a5d3ad4613dd08c4bf7ce59e296385.gz deleted file mode 100644 index 9048387a59..0000000000 Binary files a/_darcs/patches/20081015163112-462f3-ca22e3fcf4a5d3ad4613dd08c4bf7ce59e296385.gz and /dev/null differ diff --git a/_darcs/patches/20081017023638-462f3-27b5d2709e423c616723d4bcfbc9d7d30a4ad161.gz b/_darcs/patches/20081017023638-462f3-27b5d2709e423c616723d4bcfbc9d7d30a4ad161.gz deleted file mode 100644 index ac70ca0962..0000000000 Binary files a/_darcs/patches/20081017023638-462f3-27b5d2709e423c616723d4bcfbc9d7d30a4ad161.gz and /dev/null differ diff --git a/_darcs/patches/20081020170245-5ed1f-b84f63d9d9b589bd18f97924db547e348beb6647.gz b/_darcs/patches/20081020170245-5ed1f-b84f63d9d9b589bd18f97924db547e348beb6647.gz deleted file mode 100644 index 272a77d0b6..0000000000 Binary files a/_darcs/patches/20081020170245-5ed1f-b84f63d9d9b589bd18f97924db547e348beb6647.gz and /dev/null differ diff --git a/_darcs/patches/20081020170828-5ed1f-9172e6ee88e1e70bfbd6695b44bfb82eef690c4b.gz b/_darcs/patches/20081020170828-5ed1f-9172e6ee88e1e70bfbd6695b44bfb82eef690c4b.gz deleted file mode 100644 index aaf2a3431b..0000000000 Binary files a/_darcs/patches/20081020170828-5ed1f-9172e6ee88e1e70bfbd6695b44bfb82eef690c4b.gz and /dev/null differ diff --git a/_darcs/patches/20081020171033-5ed1f-00bdf131a25c86ae1d400a238eee070cb19ebec9.gz b/_darcs/patches/20081020171033-5ed1f-00bdf131a25c86ae1d400a238eee070cb19ebec9.gz deleted file mode 100644 index 8c1fe3fae0..0000000000 Binary files a/_darcs/patches/20081020171033-5ed1f-00bdf131a25c86ae1d400a238eee070cb19ebec9.gz and /dev/null differ diff --git a/_darcs/patches/20081020172117-5ed1f-29177ae6f4439707b20732cccb83ef12f8478f85.gz b/_darcs/patches/20081020172117-5ed1f-29177ae6f4439707b20732cccb83ef12f8478f85.gz deleted file mode 100644 index e4276fb511..0000000000 Binary files a/_darcs/patches/20081020172117-5ed1f-29177ae6f4439707b20732cccb83ef12f8478f85.gz and /dev/null differ diff --git a/_darcs/patches/20081020172305-5ed1f-8d2d9ba64faa0e12ac14fc7c92f0dcdd283f48fc.gz b/_darcs/patches/20081020172305-5ed1f-8d2d9ba64faa0e12ac14fc7c92f0dcdd283f48fc.gz deleted file mode 100644 index 355a05753a..0000000000 Binary files a/_darcs/patches/20081020172305-5ed1f-8d2d9ba64faa0e12ac14fc7c92f0dcdd283f48fc.gz and /dev/null differ diff --git a/_darcs/patches/20081020172549-5ed1f-9ae91cf6d0af250275921b48831999269fd8d3dd.gz b/_darcs/patches/20081020172549-5ed1f-9ae91cf6d0af250275921b48831999269fd8d3dd.gz deleted file mode 100644 index 6e5c524513..0000000000 Binary files a/_darcs/patches/20081020172549-5ed1f-9ae91cf6d0af250275921b48831999269fd8d3dd.gz and /dev/null differ diff --git a/_darcs/patches/20081020173108-5ed1f-06b346f0f341bf8401d29dcf725db69c5d26cc14.gz b/_darcs/patches/20081020173108-5ed1f-06b346f0f341bf8401d29dcf725db69c5d26cc14.gz deleted file mode 100644 index 36e2fb38e1..0000000000 Binary files a/_darcs/patches/20081020173108-5ed1f-06b346f0f341bf8401d29dcf725db69c5d26cc14.gz and /dev/null differ diff --git a/_darcs/patches/20081020174231-5ed1f-03ae9fa6cfde7d224fbf7fa81f8d9a577b89a7b5.gz b/_darcs/patches/20081020174231-5ed1f-03ae9fa6cfde7d224fbf7fa81f8d9a577b89a7b5.gz deleted file mode 100644 index 0846806d70..0000000000 Binary files a/_darcs/patches/20081020174231-5ed1f-03ae9fa6cfde7d224fbf7fa81f8d9a577b89a7b5.gz and /dev/null differ diff --git a/_darcs/patches/20081020174956-5ed1f-f0a632482ab9d2f2d15baa3a524bc312d7be5755.gz b/_darcs/patches/20081020174956-5ed1f-f0a632482ab9d2f2d15baa3a524bc312d7be5755.gz deleted file mode 100644 index 37755c6cf8..0000000000 Binary files a/_darcs/patches/20081020174956-5ed1f-f0a632482ab9d2f2d15baa3a524bc312d7be5755.gz and /dev/null differ diff --git a/_darcs/patches/20081021182822-5ed1f-9a8ee3960f82d115d43e35baac646f69bc702533.gz b/_darcs/patches/20081021182822-5ed1f-9a8ee3960f82d115d43e35baac646f69bc702533.gz deleted file mode 100644 index 71b200e6db..0000000000 Binary files a/_darcs/patches/20081021182822-5ed1f-9a8ee3960f82d115d43e35baac646f69bc702533.gz and /dev/null differ diff --git a/_darcs/patches/20081021183035-5ed1f-c40445017094a3f6c0e89fa8744ede28fd5ab20a.gz b/_darcs/patches/20081021183035-5ed1f-c40445017094a3f6c0e89fa8744ede28fd5ab20a.gz deleted file mode 100644 index e8eca3f4bf..0000000000 Binary files a/_darcs/patches/20081021183035-5ed1f-c40445017094a3f6c0e89fa8744ede28fd5ab20a.gz and /dev/null differ diff --git a/_darcs/patches/20081021192914-5ed1f-58bb42251a6df7979bd91c8f230d78e963d67ccc.gz b/_darcs/patches/20081021192914-5ed1f-58bb42251a6df7979bd91c8f230d78e963d67ccc.gz deleted file mode 100644 index eb6fde7b0d..0000000000 Binary files a/_darcs/patches/20081021192914-5ed1f-58bb42251a6df7979bd91c8f230d78e963d67ccc.gz and /dev/null differ diff --git a/_darcs/patches/20081021193501-5ed1f-19b398272e49fd3e5b9bebdcdef95572396e4ad7.gz b/_darcs/patches/20081021193501-5ed1f-19b398272e49fd3e5b9bebdcdef95572396e4ad7.gz deleted file mode 100644 index 5e30bd55c2..0000000000 Binary files a/_darcs/patches/20081021193501-5ed1f-19b398272e49fd3e5b9bebdcdef95572396e4ad7.gz and /dev/null differ diff --git a/_darcs/patches/20081021193612-5ed1f-67caf8945c3745d432f95ced1b92c7c03770b664.gz b/_darcs/patches/20081021193612-5ed1f-67caf8945c3745d432f95ced1b92c7c03770b664.gz deleted file mode 100644 index 083741378b..0000000000 Binary files a/_darcs/patches/20081021193612-5ed1f-67caf8945c3745d432f95ced1b92c7c03770b664.gz and /dev/null differ diff --git a/_darcs/patches/20081021194440-5ed1f-d1a2590f89e9a7318f4920160d4e7d44a8ff0c9f.gz b/_darcs/patches/20081021194440-5ed1f-d1a2590f89e9a7318f4920160d4e7d44a8ff0c9f.gz deleted file mode 100644 index ca3c12bd10..0000000000 Binary files a/_darcs/patches/20081021194440-5ed1f-d1a2590f89e9a7318f4920160d4e7d44a8ff0c9f.gz and /dev/null differ diff --git a/_darcs/patches/20081021194833-5ed1f-f5b4c246fd461f0e0a82ce8ee52985183b4577f1.gz b/_darcs/patches/20081021194833-5ed1f-f5b4c246fd461f0e0a82ce8ee52985183b4577f1.gz deleted file mode 100644 index 1bdb0495f5..0000000000 Binary files a/_darcs/patches/20081021194833-5ed1f-f5b4c246fd461f0e0a82ce8ee52985183b4577f1.gz and /dev/null differ diff --git a/_darcs/patches/20081021201853-5ed1f-1d61285996c5fca73b0d302e7fb4a45000a3d1e0.gz b/_darcs/patches/20081021201853-5ed1f-1d61285996c5fca73b0d302e7fb4a45000a3d1e0.gz deleted file mode 100644 index e83aa5f417..0000000000 Binary files a/_darcs/patches/20081021201853-5ed1f-1d61285996c5fca73b0d302e7fb4a45000a3d1e0.gz and /dev/null differ diff --git a/_darcs/patches/20081021202455-5ed1f-6263bfe811298349028c5cfe4e1c86ebaab161b4.gz b/_darcs/patches/20081021202455-5ed1f-6263bfe811298349028c5cfe4e1c86ebaab161b4.gz deleted file mode 100644 index 588dfaf39f..0000000000 Binary files a/_darcs/patches/20081021202455-5ed1f-6263bfe811298349028c5cfe4e1c86ebaab161b4.gz and /dev/null differ diff --git a/_darcs/patches/20081022192750-5ed1f-3265f9f4954cff431a0c276c16a98b9c22d8d40b.gz b/_darcs/patches/20081022192750-5ed1f-3265f9f4954cff431a0c276c16a98b9c22d8d40b.gz deleted file mode 100644 index fcdcf10a26..0000000000 Binary files a/_darcs/patches/20081022192750-5ed1f-3265f9f4954cff431a0c276c16a98b9c22d8d40b.gz and /dev/null differ diff --git a/_darcs/patches/20081022203600-5ed1f-344e77e348655806a27db2de043b55ba67afc73a.gz b/_darcs/patches/20081022203600-5ed1f-344e77e348655806a27db2de043b55ba67afc73a.gz deleted file mode 100644 index 6e43871d02..0000000000 Binary files a/_darcs/patches/20081022203600-5ed1f-344e77e348655806a27db2de043b55ba67afc73a.gz and /dev/null differ diff --git a/_darcs/patches/20081022205621-5ed1f-4103d4db9713f4e6e65647f71cc788cbee56a240.gz b/_darcs/patches/20081022205621-5ed1f-4103d4db9713f4e6e65647f71cc788cbee56a240.gz deleted file mode 100644 index 84f3b8a439..0000000000 Binary files a/_darcs/patches/20081022205621-5ed1f-4103d4db9713f4e6e65647f71cc788cbee56a240.gz and /dev/null differ diff --git a/_darcs/patches/20081022205823-5ed1f-4dd1c7ef62a20a62e2be06abb6c4f1f1fdf902f9.gz b/_darcs/patches/20081022205823-5ed1f-4dd1c7ef62a20a62e2be06abb6c4f1f1fdf902f9.gz deleted file mode 100644 index 72ee527987..0000000000 Binary files a/_darcs/patches/20081022205823-5ed1f-4dd1c7ef62a20a62e2be06abb6c4f1f1fdf902f9.gz and /dev/null differ diff --git a/_darcs/patches/20081022210428-5ed1f-8de35689bfee3b38e6da83328137fb457a0bfdb0.gz b/_darcs/patches/20081022210428-5ed1f-8de35689bfee3b38e6da83328137fb457a0bfdb0.gz deleted file mode 100644 index 05e6a4b021..0000000000 Binary files a/_darcs/patches/20081022210428-5ed1f-8de35689bfee3b38e6da83328137fb457a0bfdb0.gz and /dev/null differ diff --git a/_darcs/patches/20081022210445-5ed1f-94a7b172f33411dfa8d1faaf7dc72169f57d6b39.gz b/_darcs/patches/20081022210445-5ed1f-94a7b172f33411dfa8d1faaf7dc72169f57d6b39.gz deleted file mode 100644 index a5bbe35917..0000000000 Binary files a/_darcs/patches/20081022210445-5ed1f-94a7b172f33411dfa8d1faaf7dc72169f57d6b39.gz and /dev/null differ diff --git a/_darcs/patches/20081023203505-5ed1f-9fda1f30a6eb271966b7eaf42968103761b33b22.gz b/_darcs/patches/20081023203505-5ed1f-9fda1f30a6eb271966b7eaf42968103761b33b22.gz deleted file mode 100644 index f810399a5b..0000000000 Binary files a/_darcs/patches/20081023203505-5ed1f-9fda1f30a6eb271966b7eaf42968103761b33b22.gz and /dev/null differ diff --git a/_darcs/patches/20081023212659-5ed1f-0efa86cf7fbcc7bae4cb468fc514f33adf15ba0d.gz b/_darcs/patches/20081023212659-5ed1f-0efa86cf7fbcc7bae4cb468fc514f33adf15ba0d.gz deleted file mode 100644 index 690e5f834c..0000000000 Binary files a/_darcs/patches/20081023212659-5ed1f-0efa86cf7fbcc7bae4cb468fc514f33adf15ba0d.gz and /dev/null differ diff --git a/_darcs/patches/20081024201234-84dde-06d2c147ec967cb8123ee0639a76f00a5f44e5c5.gz b/_darcs/patches/20081024201234-84dde-06d2c147ec967cb8123ee0639a76f00a5f44e5c5.gz deleted file mode 100644 index bd3d9276e6..0000000000 Binary files a/_darcs/patches/20081024201234-84dde-06d2c147ec967cb8123ee0639a76f00a5f44e5c5.gz and /dev/null differ diff --git a/_darcs/patches/20081024213745-462f3-7c26611e7f75265affafd471c3d66e02ec7e686e.gz b/_darcs/patches/20081024213745-462f3-7c26611e7f75265affafd471c3d66e02ec7e686e.gz deleted file mode 100644 index 7b2010f9c4..0000000000 Binary files a/_darcs/patches/20081024213745-462f3-7c26611e7f75265affafd471c3d66e02ec7e686e.gz and /dev/null differ diff --git a/_darcs/patches/20081024215101-462f3-cef62f04283d58538dd7aab621668ce2274593f7.gz b/_darcs/patches/20081024215101-462f3-cef62f04283d58538dd7aab621668ce2274593f7.gz deleted file mode 100644 index 5207aa24b2..0000000000 Binary files a/_darcs/patches/20081024215101-462f3-cef62f04283d58538dd7aab621668ce2274593f7.gz and /dev/null differ diff --git a/_darcs/patches/20081025022849-5ed1f-edd99a830ff285f4d0468e0e9ce3ceba4a885352.gz b/_darcs/patches/20081025022849-5ed1f-edd99a830ff285f4d0468e0e9ce3ceba4a885352.gz deleted file mode 100644 index 2232fdec0b..0000000000 Binary files a/_darcs/patches/20081025022849-5ed1f-edd99a830ff285f4d0468e0e9ce3ceba4a885352.gz and /dev/null differ diff --git a/_darcs/patches/20081025023252-5ed1f-ce96bbd6374b28a6380383ccfc6f78fb8ee67854.gz b/_darcs/patches/20081025023252-5ed1f-ce96bbd6374b28a6380383ccfc6f78fb8ee67854.gz deleted file mode 100644 index 7811b523ea..0000000000 Binary files a/_darcs/patches/20081025023252-5ed1f-ce96bbd6374b28a6380383ccfc6f78fb8ee67854.gz and /dev/null differ diff --git a/_darcs/patches/20081025023347-5ed1f-b8dbb87a4dff048e9cab136c54564413c63ad4d4.gz b/_darcs/patches/20081025023347-5ed1f-b8dbb87a4dff048e9cab136c54564413c63ad4d4.gz deleted file mode 100644 index 5a6ec388da..0000000000 Binary files a/_darcs/patches/20081025023347-5ed1f-b8dbb87a4dff048e9cab136c54564413c63ad4d4.gz and /dev/null differ diff --git a/_darcs/patches/20081026033353-5ed1f-f449572d9069add47dd88749be73e7550d260a0f.gz b/_darcs/patches/20081026033353-5ed1f-f449572d9069add47dd88749be73e7550d260a0f.gz deleted file mode 100644 index f77c62612f..0000000000 Binary files a/_darcs/patches/20081026033353-5ed1f-f449572d9069add47dd88749be73e7550d260a0f.gz and /dev/null differ diff --git a/_darcs/patches/20081026145326-5ed1f-430b98eedef21903caaae47e3355482ae7bfa616.gz b/_darcs/patches/20081026145326-5ed1f-430b98eedef21903caaae47e3355482ae7bfa616.gz deleted file mode 100644 index 4fb32ae49d..0000000000 Binary files a/_darcs/patches/20081026145326-5ed1f-430b98eedef21903caaae47e3355482ae7bfa616.gz and /dev/null differ diff --git a/_darcs/patches/20081026145749-5ed1f-f2e566947ee5724aeb9c6e91922477cbfc60e144.gz b/_darcs/patches/20081026145749-5ed1f-f2e566947ee5724aeb9c6e91922477cbfc60e144.gz deleted file mode 100644 index dbc59ff509..0000000000 Binary files a/_darcs/patches/20081026145749-5ed1f-f2e566947ee5724aeb9c6e91922477cbfc60e144.gz and /dev/null differ diff --git a/_darcs/patches/20081026150623-5ed1f-2aff71bf8faf4957b09d968d60851b4f74f738c4.gz b/_darcs/patches/20081026150623-5ed1f-2aff71bf8faf4957b09d968d60851b4f74f738c4.gz deleted file mode 100644 index fd10f506a7..0000000000 Binary files a/_darcs/patches/20081026150623-5ed1f-2aff71bf8faf4957b09d968d60851b4f74f738c4.gz and /dev/null differ diff --git a/_darcs/patches/20081027191629-462f3-ff16a45754e2370f62ebac06dc38c51981bb6ee6.gz b/_darcs/patches/20081027191629-462f3-ff16a45754e2370f62ebac06dc38c51981bb6ee6.gz deleted file mode 100644 index b1db519043..0000000000 Binary files a/_darcs/patches/20081027191629-462f3-ff16a45754e2370f62ebac06dc38c51981bb6ee6.gz and /dev/null differ diff --git a/_darcs/patches/20081102090241-5ed1f-f5278c69aa0c7427294b40b91f8957530b07062f.gz b/_darcs/patches/20081102090241-5ed1f-f5278c69aa0c7427294b40b91f8957530b07062f.gz deleted file mode 100644 index 99724bbc34..0000000000 Binary files a/_darcs/patches/20081102090241-5ed1f-f5278c69aa0c7427294b40b91f8957530b07062f.gz and /dev/null differ diff --git a/_darcs/patches/20081103211653-462f3-58a0ad41ab0426c21aceb04b4a91dc52559018d0.gz b/_darcs/patches/20081103211653-462f3-58a0ad41ab0426c21aceb04b4a91dc52559018d0.gz deleted file mode 100644 index 7273841e00..0000000000 Binary files a/_darcs/patches/20081103211653-462f3-58a0ad41ab0426c21aceb04b4a91dc52559018d0.gz and /dev/null differ diff --git a/_darcs/patches/20081104053359-462f3-2f6619bb942aa34b38dd82cb427878f83d4c332c.gz b/_darcs/patches/20081104053359-462f3-2f6619bb942aa34b38dd82cb427878f83d4c332c.gz deleted file mode 100644 index c2bb7a878c..0000000000 Binary files a/_darcs/patches/20081104053359-462f3-2f6619bb942aa34b38dd82cb427878f83d4c332c.gz and /dev/null differ diff --git a/_darcs/patches/20081104084027-462f3-ea7ab93938358bf90a1c1851d6f665973beae767.gz b/_darcs/patches/20081104084027-462f3-ea7ab93938358bf90a1c1851d6f665973beae767.gz deleted file mode 100644 index 9b933894ab..0000000000 Binary files a/_darcs/patches/20081104084027-462f3-ea7ab93938358bf90a1c1851d6f665973beae767.gz and /dev/null differ diff --git a/_darcs/patches/20081106205926-099f7-6bcfd7969a159a12b1ba6a9ee254e44a07b94761.gz b/_darcs/patches/20081106205926-099f7-6bcfd7969a159a12b1ba6a9ee254e44a07b94761.gz deleted file mode 100644 index 66be772499..0000000000 Binary files a/_darcs/patches/20081106205926-099f7-6bcfd7969a159a12b1ba6a9ee254e44a07b94761.gz and /dev/null differ diff --git a/_darcs/patches/20081106210552-099f7-c5275ef0cc17622b60cb6e04ef7d1f420379f768.gz b/_darcs/patches/20081106210552-099f7-c5275ef0cc17622b60cb6e04ef7d1f420379f768.gz deleted file mode 100644 index b9bcd282de..0000000000 Binary files a/_darcs/patches/20081106210552-099f7-c5275ef0cc17622b60cb6e04ef7d1f420379f768.gz and /dev/null differ diff --git a/_darcs/patches/20081106224006-099f7-b1dee734b54c8426f386fd1eb0bf2f45bee302f9.gz b/_darcs/patches/20081106224006-099f7-b1dee734b54c8426f386fd1eb0bf2f45bee302f9.gz deleted file mode 100644 index 5d48f0ddfe..0000000000 Binary files a/_darcs/patches/20081106224006-099f7-b1dee734b54c8426f386fd1eb0bf2f45bee302f9.gz and /dev/null differ diff --git a/_darcs/patches/20081106225721-462f3-b80ba75f87a4b36b803868653c956c393a236626.gz b/_darcs/patches/20081106225721-462f3-b80ba75f87a4b36b803868653c956c393a236626.gz deleted file mode 100644 index cff6e748c2..0000000000 Binary files a/_darcs/patches/20081106225721-462f3-b80ba75f87a4b36b803868653c956c393a236626.gz and /dev/null differ diff --git a/_darcs/patches/20081107193831-099f7-e340280ba9d2abb4dca05733bc04bb5a5069b62b.gz b/_darcs/patches/20081107193831-099f7-e340280ba9d2abb4dca05733bc04bb5a5069b62b.gz deleted file mode 100644 index 4496225bcd..0000000000 Binary files a/_darcs/patches/20081107193831-099f7-e340280ba9d2abb4dca05733bc04bb5a5069b62b.gz and /dev/null differ diff --git a/_darcs/patches/20081107194735-099f7-fe1ef28b4d36e5dde9e6addc287ad22946b060cd.gz b/_darcs/patches/20081107194735-099f7-fe1ef28b4d36e5dde9e6addc287ad22946b060cd.gz deleted file mode 100644 index 83c5803dde..0000000000 Binary files a/_darcs/patches/20081107194735-099f7-fe1ef28b4d36e5dde9e6addc287ad22946b060cd.gz and /dev/null differ diff --git a/_darcs/patches/20081107201926-099f7-bee53da36841b7dc048591ed91ea35d3e3522d34.gz b/_darcs/patches/20081107201926-099f7-bee53da36841b7dc048591ed91ea35d3e3522d34.gz deleted file mode 100644 index fbb0b2e8b3..0000000000 Binary files a/_darcs/patches/20081107201926-099f7-bee53da36841b7dc048591ed91ea35d3e3522d34.gz and /dev/null differ diff --git a/_darcs/patches/20081107203039-099f7-a059dab8d6b7909c309eacf5ef929408c3c6c6e0.gz b/_darcs/patches/20081107203039-099f7-a059dab8d6b7909c309eacf5ef929408c3c6c6e0.gz deleted file mode 100644 index a6956371c7..0000000000 Binary files a/_darcs/patches/20081107203039-099f7-a059dab8d6b7909c309eacf5ef929408c3c6c6e0.gz and /dev/null differ diff --git a/_darcs/patches/20081107222100-099f7-18b3fc1c4e6939cdbc7a811a7df6f0e08068ea01.gz b/_darcs/patches/20081107222100-099f7-18b3fc1c4e6939cdbc7a811a7df6f0e08068ea01.gz deleted file mode 100644 index ecc5e7ab65..0000000000 Binary files a/_darcs/patches/20081107222100-099f7-18b3fc1c4e6939cdbc7a811a7df6f0e08068ea01.gz and /dev/null differ diff --git a/_darcs/patches/20081111022330-462f3-810b2a86e6e209330ade628fc0e97df96151d496.gz b/_darcs/patches/20081111022330-462f3-810b2a86e6e209330ade628fc0e97df96151d496.gz deleted file mode 100644 index a2f7af888e..0000000000 Binary files a/_darcs/patches/20081111022330-462f3-810b2a86e6e209330ade628fc0e97df96151d496.gz and /dev/null differ diff --git a/_darcs/patches/20081112172517-5ed1f-4e8534d7898e2134edf4c0a28417b4a5274617d4.gz b/_darcs/patches/20081112172517-5ed1f-4e8534d7898e2134edf4c0a28417b4a5274617d4.gz deleted file mode 100644 index fb4c6cef54..0000000000 Binary files a/_darcs/patches/20081112172517-5ed1f-4e8534d7898e2134edf4c0a28417b4a5274617d4.gz and /dev/null differ diff --git a/_darcs/patches/20081112173627-5ed1f-7cee5b6f25ab654f066c8902492ed531fb1ea091.gz b/_darcs/patches/20081112173627-5ed1f-7cee5b6f25ab654f066c8902492ed531fb1ea091.gz deleted file mode 100644 index 14efe20c6d..0000000000 Binary files a/_darcs/patches/20081112173627-5ed1f-7cee5b6f25ab654f066c8902492ed531fb1ea091.gz and /dev/null differ diff --git a/_darcs/patches/20081112181117-5ed1f-47585440302995dc33a4accc35a76fc750495709.gz b/_darcs/patches/20081112181117-5ed1f-47585440302995dc33a4accc35a76fc750495709.gz deleted file mode 100644 index 481fcee495..0000000000 Binary files a/_darcs/patches/20081112181117-5ed1f-47585440302995dc33a4accc35a76fc750495709.gz and /dev/null differ diff --git a/_darcs/patches/20081112181327-5ed1f-b9703dc936c8d99b226055053b02e4ba177b240d.gz b/_darcs/patches/20081112181327-5ed1f-b9703dc936c8d99b226055053b02e4ba177b240d.gz deleted file mode 100644 index d9afeb57bd..0000000000 Binary files a/_darcs/patches/20081112181327-5ed1f-b9703dc936c8d99b226055053b02e4ba177b240d.gz and /dev/null differ diff --git a/_darcs/patches/20081112181533-5ed1f-d1c2d3ff28153afaf640eb127e9bcf4867952d36.gz b/_darcs/patches/20081112181533-5ed1f-d1c2d3ff28153afaf640eb127e9bcf4867952d36.gz deleted file mode 100644 index 821f78fb17..0000000000 Binary files a/_darcs/patches/20081112181533-5ed1f-d1c2d3ff28153afaf640eb127e9bcf4867952d36.gz and /dev/null differ diff --git a/_darcs/patches/20081112185117-5ed1f-3b2373620581d123182dc951c528276541f4ab68.gz b/_darcs/patches/20081112185117-5ed1f-3b2373620581d123182dc951c528276541f4ab68.gz deleted file mode 100644 index 3acce37ef0..0000000000 Binary files a/_darcs/patches/20081112185117-5ed1f-3b2373620581d123182dc951c528276541f4ab68.gz and /dev/null differ diff --git a/_darcs/patches/20081112185146-5ed1f-fbef54f5eac30f26b999cd2347583f7d867535bf.gz b/_darcs/patches/20081112185146-5ed1f-fbef54f5eac30f26b999cd2347583f7d867535bf.gz deleted file mode 100644 index bc9b43b261..0000000000 Binary files a/_darcs/patches/20081112185146-5ed1f-fbef54f5eac30f26b999cd2347583f7d867535bf.gz and /dev/null differ diff --git a/_darcs/patches/20081112190828-5ed1f-a9537a2e4542fbbbec555ed43792c6a5236e6029.gz b/_darcs/patches/20081112190828-5ed1f-a9537a2e4542fbbbec555ed43792c6a5236e6029.gz deleted file mode 100644 index d72ef649fd..0000000000 Binary files a/_darcs/patches/20081112190828-5ed1f-a9537a2e4542fbbbec555ed43792c6a5236e6029.gz and /dev/null differ diff --git a/_darcs/patches/20081113024833-0aa81-27d1d08708ddc96fb37b30d3547c1e54108fe409.gz b/_darcs/patches/20081113024833-0aa81-27d1d08708ddc96fb37b30d3547c1e54108fe409.gz deleted file mode 100644 index 4b61223a9f..0000000000 Binary files a/_darcs/patches/20081113024833-0aa81-27d1d08708ddc96fb37b30d3547c1e54108fe409.gz and /dev/null differ diff --git a/_darcs/patches/20081113063850-5ed1f-15c314239e2114b52beb7c83b7006b69a48ec5c3.gz b/_darcs/patches/20081113063850-5ed1f-15c314239e2114b52beb7c83b7006b69a48ec5c3.gz deleted file mode 100644 index 244ecb0046..0000000000 Binary files a/_darcs/patches/20081113063850-5ed1f-15c314239e2114b52beb7c83b7006b69a48ec5c3.gz and /dev/null differ diff --git a/_darcs/patches/20081113152718-099f7-42b60d02395f016c54c5f3c301f9dbe987c1283f.gz b/_darcs/patches/20081113152718-099f7-42b60d02395f016c54c5f3c301f9dbe987c1283f.gz deleted file mode 100644 index 6b66b806f5..0000000000 Binary files a/_darcs/patches/20081113152718-099f7-42b60d02395f016c54c5f3c301f9dbe987c1283f.gz and /dev/null differ diff --git a/_darcs/patches/20081113153216-099f7-81c4aba01babca97edeaf55b230dee300dbeb57a.gz b/_darcs/patches/20081113153216-099f7-81c4aba01babca97edeaf55b230dee300dbeb57a.gz deleted file mode 100644 index e07b7bd838..0000000000 Binary files a/_darcs/patches/20081113153216-099f7-81c4aba01babca97edeaf55b230dee300dbeb57a.gz and /dev/null differ diff --git a/_darcs/patches/20081113164741-099f7-c8994bc8902df1cfc9fe62bf6d556a5c3f521b8f.gz b/_darcs/patches/20081113164741-099f7-c8994bc8902df1cfc9fe62bf6d556a5c3f521b8f.gz deleted file mode 100644 index 18231c8cb4..0000000000 Binary files a/_darcs/patches/20081113164741-099f7-c8994bc8902df1cfc9fe62bf6d556a5c3f521b8f.gz and /dev/null differ diff --git a/_darcs/patches/20081113170234-099f7-b714b0640370b8ecf37aa422455831dae5ce4c5e.gz b/_darcs/patches/20081113170234-099f7-b714b0640370b8ecf37aa422455831dae5ce4c5e.gz deleted file mode 100644 index 5ed7a700c3..0000000000 Binary files a/_darcs/patches/20081113170234-099f7-b714b0640370b8ecf37aa422455831dae5ce4c5e.gz and /dev/null differ diff --git a/_darcs/patches/20081113182834-099f7-f55adc95eb8fb46f8cee1c176653c88f65e27ab6.gz b/_darcs/patches/20081113182834-099f7-f55adc95eb8fb46f8cee1c176653c88f65e27ab6.gz deleted file mode 100644 index c5dbd75dbb..0000000000 Binary files a/_darcs/patches/20081113182834-099f7-f55adc95eb8fb46f8cee1c176653c88f65e27ab6.gz and /dev/null differ diff --git a/_darcs/patches/20081113195237-462f3-35c44753490c57e30d0adf661ae4c8a08af7e39c.gz b/_darcs/patches/20081113195237-462f3-35c44753490c57e30d0adf661ae4c8a08af7e39c.gz deleted file mode 100644 index 90e8dfb943..0000000000 Binary files a/_darcs/patches/20081113195237-462f3-35c44753490c57e30d0adf661ae4c8a08af7e39c.gz and /dev/null differ diff --git a/_darcs/patches/20081113210209-84dde-56052bac5ce490d54f3220baaa13f5bfc0e7618d.gz b/_darcs/patches/20081113210209-84dde-56052bac5ce490d54f3220baaa13f5bfc0e7618d.gz deleted file mode 100644 index a0054912f9..0000000000 Binary files a/_darcs/patches/20081113210209-84dde-56052bac5ce490d54f3220baaa13f5bfc0e7618d.gz and /dev/null differ diff --git a/_darcs/patches/20081113212214-0aa81-542425ff91428f38985c0acd36c15319bd2f5ec7.gz b/_darcs/patches/20081113212214-0aa81-542425ff91428f38985c0acd36c15319bd2f5ec7.gz deleted file mode 100644 index 7bcc7153b8..0000000000 Binary files a/_darcs/patches/20081113212214-0aa81-542425ff91428f38985c0acd36c15319bd2f5ec7.gz and /dev/null differ diff --git a/_darcs/patches/20081113213119-0aa81-0f484f48bfe5cceb443d36c90dbd8ad7ca554be4.gz b/_darcs/patches/20081113213119-0aa81-0f484f48bfe5cceb443d36c90dbd8ad7ca554be4.gz deleted file mode 100644 index 57ba559d73..0000000000 Binary files a/_darcs/patches/20081113213119-0aa81-0f484f48bfe5cceb443d36c90dbd8ad7ca554be4.gz and /dev/null differ diff --git a/_darcs/patches/20081113214544-84dde-a6de7a968847a7043aecdf0201abca648dd15e70.gz b/_darcs/patches/20081113214544-84dde-a6de7a968847a7043aecdf0201abca648dd15e70.gz deleted file mode 100644 index 5fa8cdae94..0000000000 Binary files a/_darcs/patches/20081113214544-84dde-a6de7a968847a7043aecdf0201abca648dd15e70.gz and /dev/null differ diff --git a/_darcs/patches/20081113215734-84dde-badae0579fb70a6760dc6fdf0289b76356e479f6.gz b/_darcs/patches/20081113215734-84dde-badae0579fb70a6760dc6fdf0289b76356e479f6.gz deleted file mode 100644 index d24acc4e5b..0000000000 Binary files a/_darcs/patches/20081113215734-84dde-badae0579fb70a6760dc6fdf0289b76356e479f6.gz and /dev/null differ diff --git a/_darcs/patches/20081113220335-84dde-27009ae22f0994709046b6681d3139455a4e9c22.gz b/_darcs/patches/20081113220335-84dde-27009ae22f0994709046b6681d3139455a4e9c22.gz deleted file mode 100644 index ec6ef95a05..0000000000 Binary files a/_darcs/patches/20081113220335-84dde-27009ae22f0994709046b6681d3139455a4e9c22.gz and /dev/null differ diff --git a/_darcs/patches/20081113223514-84dde-be89824e7986a9af30bd42e89228a0f7ce949240.gz b/_darcs/patches/20081113223514-84dde-be89824e7986a9af30bd42e89228a0f7ce949240.gz deleted file mode 100644 index 9a952ab603..0000000000 Binary files a/_darcs/patches/20081113223514-84dde-be89824e7986a9af30bd42e89228a0f7ce949240.gz and /dev/null differ diff --git a/_darcs/patches/20081114015930-84dde-c2556e2dd409f4c13f9063d77ad15974e6d0f3c4.gz b/_darcs/patches/20081114015930-84dde-c2556e2dd409f4c13f9063d77ad15974e6d0f3c4.gz deleted file mode 100644 index af29b85763..0000000000 Binary files a/_darcs/patches/20081114015930-84dde-c2556e2dd409f4c13f9063d77ad15974e6d0f3c4.gz and /dev/null differ diff --git a/_darcs/patches/20081114021217-84dde-e3758114435b794b0d1be0c135419390ab06be13.gz b/_darcs/patches/20081114021217-84dde-e3758114435b794b0d1be0c135419390ab06be13.gz deleted file mode 100644 index 23dc9f58d5..0000000000 Binary files a/_darcs/patches/20081114021217-84dde-e3758114435b794b0d1be0c135419390ab06be13.gz and /dev/null differ diff --git a/_darcs/patches/20081114025715-84dde-f281521adee0c81cde88261a6a539495310ed927.gz b/_darcs/patches/20081114025715-84dde-f281521adee0c81cde88261a6a539495310ed927.gz deleted file mode 100644 index f8a1aafdb3..0000000000 Binary files a/_darcs/patches/20081114025715-84dde-f281521adee0c81cde88261a6a539495310ed927.gz and /dev/null differ diff --git a/_darcs/patches/20081114032817-84dde-149e8f70877ea10bd853f473898e6ba898f12d46.gz b/_darcs/patches/20081114032817-84dde-149e8f70877ea10bd853f473898e6ba898f12d46.gz deleted file mode 100644 index e01c926828..0000000000 Binary files a/_darcs/patches/20081114032817-84dde-149e8f70877ea10bd853f473898e6ba898f12d46.gz and /dev/null differ diff --git a/_darcs/patches/20081114032959-84dde-ae883939976e69cc80fa0f15cd281cd0642e95fc.gz b/_darcs/patches/20081114032959-84dde-ae883939976e69cc80fa0f15cd281cd0642e95fc.gz deleted file mode 100644 index 2136ac33bb..0000000000 Binary files a/_darcs/patches/20081114032959-84dde-ae883939976e69cc80fa0f15cd281cd0642e95fc.gz and /dev/null differ diff --git a/_darcs/patches/20081114052528-462f3-741f881a49934cb5a3ef9196ad6df872f387a748.gz b/_darcs/patches/20081114052528-462f3-741f881a49934cb5a3ef9196ad6df872f387a748.gz deleted file mode 100644 index e2030fe09f..0000000000 Binary files a/_darcs/patches/20081114052528-462f3-741f881a49934cb5a3ef9196ad6df872f387a748.gz and /dev/null differ diff --git a/_darcs/patches/20081114053044-462f3-30e2d27261bca1977b89dee409383e178f446149.gz b/_darcs/patches/20081114053044-462f3-30e2d27261bca1977b89dee409383e178f446149.gz deleted file mode 100644 index d898ddff67..0000000000 Binary files a/_darcs/patches/20081114053044-462f3-30e2d27261bca1977b89dee409383e178f446149.gz and /dev/null differ diff --git a/_darcs/patches/20081114065145-84dde-869571e84951470ab40f5b5191d099d23e68b27b.gz b/_darcs/patches/20081114065145-84dde-869571e84951470ab40f5b5191d099d23e68b27b.gz deleted file mode 100644 index 3e39e394e3..0000000000 Binary files a/_darcs/patches/20081114065145-84dde-869571e84951470ab40f5b5191d099d23e68b27b.gz and /dev/null differ diff --git a/_darcs/patches/20081114074211-84dde-77dbee17b2eb5848a0aa012c6ebe352135f5e7c1.gz b/_darcs/patches/20081114074211-84dde-77dbee17b2eb5848a0aa012c6ebe352135f5e7c1.gz deleted file mode 100644 index 0edae17e4b..0000000000 Binary files a/_darcs/patches/20081114074211-84dde-77dbee17b2eb5848a0aa012c6ebe352135f5e7c1.gz and /dev/null differ diff --git a/_darcs/patches/20081114074511-84dde-af2b2e5deee20bdf1ea72559411716cb756d2866.gz b/_darcs/patches/20081114074511-84dde-af2b2e5deee20bdf1ea72559411716cb756d2866.gz deleted file mode 100644 index f65cbb6422..0000000000 Binary files a/_darcs/patches/20081114074511-84dde-af2b2e5deee20bdf1ea72559411716cb756d2866.gz and /dev/null differ diff --git a/_darcs/patches/20081114080853-84dde-5e9d1e2fa3af671036be98d79a82ddc4e8a52a05.gz b/_darcs/patches/20081114080853-84dde-5e9d1e2fa3af671036be98d79a82ddc4e8a52a05.gz deleted file mode 100644 index 0f65f46451..0000000000 Binary files a/_darcs/patches/20081114080853-84dde-5e9d1e2fa3af671036be98d79a82ddc4e8a52a05.gz and /dev/null differ diff --git a/_darcs/patches/20081114142228-84dde-cc4a966817a1977282ef9a6845613ed5ec6c4e88.gz b/_darcs/patches/20081114142228-84dde-cc4a966817a1977282ef9a6845613ed5ec6c4e88.gz deleted file mode 100644 index 1e9220ffac..0000000000 Binary files a/_darcs/patches/20081114142228-84dde-cc4a966817a1977282ef9a6845613ed5ec6c4e88.gz and /dev/null differ diff --git a/_darcs/patches/20081114144014-84dde-b75b44b8bb485c4122655e38b8201736fb3f64ed.gz b/_darcs/patches/20081114144014-84dde-b75b44b8bb485c4122655e38b8201736fb3f64ed.gz deleted file mode 100644 index 807fbc15e2..0000000000 Binary files a/_darcs/patches/20081114144014-84dde-b75b44b8bb485c4122655e38b8201736fb3f64ed.gz and /dev/null differ diff --git a/_darcs/patches/20081114173242-099f7-7cc37f036cc564ecde029bfce00b313eb047232c.gz b/_darcs/patches/20081114173242-099f7-7cc37f036cc564ecde029bfce00b313eb047232c.gz deleted file mode 100644 index 934b042ab4..0000000000 Binary files a/_darcs/patches/20081114173242-099f7-7cc37f036cc564ecde029bfce00b313eb047232c.gz and /dev/null differ diff --git a/_darcs/patches/20081114192649-099f7-338368278173f5fa130e508316f5b8b252d90214.gz b/_darcs/patches/20081114192649-099f7-338368278173f5fa130e508316f5b8b252d90214.gz deleted file mode 100644 index 17eeee6188..0000000000 Binary files a/_darcs/patches/20081114192649-099f7-338368278173f5fa130e508316f5b8b252d90214.gz and /dev/null differ diff --git a/_darcs/patches/20081114194620-84dde-8349db3358c547889ec9b095dc340fdd0cd31210.gz b/_darcs/patches/20081114194620-84dde-8349db3358c547889ec9b095dc340fdd0cd31210.gz deleted file mode 100644 index 885f2c8525..0000000000 Binary files a/_darcs/patches/20081114194620-84dde-8349db3358c547889ec9b095dc340fdd0cd31210.gz and /dev/null differ diff --git a/_darcs/patches/20081114194727-84dde-8dba6a82efe1deafc77e07f17685cf2cd0f8eeb2.gz b/_darcs/patches/20081114194727-84dde-8dba6a82efe1deafc77e07f17685cf2cd0f8eeb2.gz deleted file mode 100644 index 86fdab478f..0000000000 Binary files a/_darcs/patches/20081114194727-84dde-8dba6a82efe1deafc77e07f17685cf2cd0f8eeb2.gz and /dev/null differ diff --git a/_darcs/patches/20081114195457-099f7-45f4f39d5f2eff980d903ca156170576323ec4a7.gz b/_darcs/patches/20081114195457-099f7-45f4f39d5f2eff980d903ca156170576323ec4a7.gz deleted file mode 100644 index 4580c95149..0000000000 Binary files a/_darcs/patches/20081114195457-099f7-45f4f39d5f2eff980d903ca156170576323ec4a7.gz and /dev/null differ diff --git a/_darcs/patches/20081114210506-eefa4-ba7e9bdd794ddfcacc397d732073abf99e97f3a5.gz b/_darcs/patches/20081114210506-eefa4-ba7e9bdd794ddfcacc397d732073abf99e97f3a5.gz deleted file mode 100644 index 87fcbe5149..0000000000 Binary files a/_darcs/patches/20081114210506-eefa4-ba7e9bdd794ddfcacc397d732073abf99e97f3a5.gz and /dev/null differ diff --git a/_darcs/patches/20081114214315-eefa4-f21edae797a7c9c685dd00c858731b173337bf85.gz b/_darcs/patches/20081114214315-eefa4-f21edae797a7c9c685dd00c858731b173337bf85.gz deleted file mode 100644 index 2c53fa1c0a..0000000000 Binary files a/_darcs/patches/20081114214315-eefa4-f21edae797a7c9c685dd00c858731b173337bf85.gz and /dev/null differ diff --git a/_darcs/patches/20081114220805-eefa4-3d8a8eaf21cd219e25186ec2f956a8442580109e.gz b/_darcs/patches/20081114220805-eefa4-3d8a8eaf21cd219e25186ec2f956a8442580109e.gz deleted file mode 100644 index b1244a925a..0000000000 Binary files a/_darcs/patches/20081114220805-eefa4-3d8a8eaf21cd219e25186ec2f956a8442580109e.gz and /dev/null differ diff --git a/_darcs/patches/20081115033549-eefa4-cfbca6f9c723aa63869c39d6851de7a7803f0703.gz b/_darcs/patches/20081115033549-eefa4-cfbca6f9c723aa63869c39d6851de7a7803f0703.gz deleted file mode 100644 index 237c6122a5..0000000000 Binary files a/_darcs/patches/20081115033549-eefa4-cfbca6f9c723aa63869c39d6851de7a7803f0703.gz and /dev/null differ diff --git a/_darcs/patches/20081115043955-eefa4-907cf3fd3533f193496bc608fd0cd1573405de35.gz b/_darcs/patches/20081115043955-eefa4-907cf3fd3533f193496bc608fd0cd1573405de35.gz deleted file mode 100644 index 36bfa72068..0000000000 Binary files a/_darcs/patches/20081115043955-eefa4-907cf3fd3533f193496bc608fd0cd1573405de35.gz and /dev/null differ diff --git a/_darcs/patches/20081116022735-eefa4-366f6deb85942f859ebd532e477b57737bcafbf8.gz b/_darcs/patches/20081116022735-eefa4-366f6deb85942f859ebd532e477b57737bcafbf8.gz deleted file mode 100644 index f38cb1ef04..0000000000 Binary files a/_darcs/patches/20081116022735-eefa4-366f6deb85942f859ebd532e477b57737bcafbf8.gz and /dev/null differ diff --git a/_darcs/patches/20081116033155-eefa4-3fedb1932819520c6b35b2a543f4dcfd5014e872.gz b/_darcs/patches/20081116033155-eefa4-3fedb1932819520c6b35b2a543f4dcfd5014e872.gz deleted file mode 100644 index d2be971299..0000000000 Binary files a/_darcs/patches/20081116033155-eefa4-3fedb1932819520c6b35b2a543f4dcfd5014e872.gz and /dev/null differ diff --git a/_darcs/patches/20081116062937-84dde-2c2369d0513dba49514a6800f67324803d0fe335.gz b/_darcs/patches/20081116062937-84dde-2c2369d0513dba49514a6800f67324803d0fe335.gz deleted file mode 100644 index 289ad31d1b..0000000000 Binary files a/_darcs/patches/20081116062937-84dde-2c2369d0513dba49514a6800f67324803d0fe335.gz and /dev/null differ diff --git a/_darcs/patches/20081117001644-099f7-9b086e032d0bc4d74da426c7dd363bb9a4f9aed4.gz b/_darcs/patches/20081117001644-099f7-9b086e032d0bc4d74da426c7dd363bb9a4f9aed4.gz deleted file mode 100644 index b34f0c3f25..0000000000 Binary files a/_darcs/patches/20081117001644-099f7-9b086e032d0bc4d74da426c7dd363bb9a4f9aed4.gz and /dev/null differ diff --git a/_darcs/patches/20081117003010-099f7-dd605b41a28ab99c2fadde38d9c7341bfdae0312.gz b/_darcs/patches/20081117003010-099f7-dd605b41a28ab99c2fadde38d9c7341bfdae0312.gz deleted file mode 100644 index 1859b4d114..0000000000 Binary files a/_darcs/patches/20081117003010-099f7-dd605b41a28ab99c2fadde38d9c7341bfdae0312.gz and /dev/null differ diff --git a/_darcs/patches/20081117024624-462f3-91f148111c2c43ddd302fc63cfa8c8ef14e1f38e.gz b/_darcs/patches/20081117024624-462f3-91f148111c2c43ddd302fc63cfa8c8ef14e1f38e.gz deleted file mode 100644 index 862aa096e8..0000000000 Binary files a/_darcs/patches/20081117024624-462f3-91f148111c2c43ddd302fc63cfa8c8ef14e1f38e.gz and /dev/null differ diff --git a/_darcs/patches/20081117154147-099f7-cf844aabcc3866eaf42312050a959dbc7cb10ed9.gz b/_darcs/patches/20081117154147-099f7-cf844aabcc3866eaf42312050a959dbc7cb10ed9.gz deleted file mode 100644 index 59531b0b67..0000000000 Binary files a/_darcs/patches/20081117154147-099f7-cf844aabcc3866eaf42312050a959dbc7cb10ed9.gz and /dev/null differ diff --git a/_darcs/patches/20081117173144-099f7-b475f072ddc36e03143e05698e86186955566db9.gz b/_darcs/patches/20081117173144-099f7-b475f072ddc36e03143e05698e86186955566db9.gz deleted file mode 100644 index b4f1925c18..0000000000 Binary files a/_darcs/patches/20081117173144-099f7-b475f072ddc36e03143e05698e86186955566db9.gz and /dev/null differ diff --git a/_darcs/patches/20081117175627-099f7-59da80fe33257fa736a354c0a422a227e534ab2c.gz b/_darcs/patches/20081117175627-099f7-59da80fe33257fa736a354c0a422a227e534ab2c.gz deleted file mode 100644 index a923a45b8e..0000000000 Binary files a/_darcs/patches/20081117175627-099f7-59da80fe33257fa736a354c0a422a227e534ab2c.gz and /dev/null differ diff --git a/_darcs/patches/20081117181511-eefa4-9b2e11a65022b71259ca15ea9b02d94a128ca459.gz b/_darcs/patches/20081117181511-eefa4-9b2e11a65022b71259ca15ea9b02d94a128ca459.gz deleted file mode 100644 index 145391cc3c..0000000000 Binary files a/_darcs/patches/20081117181511-eefa4-9b2e11a65022b71259ca15ea9b02d94a128ca459.gz and /dev/null differ diff --git a/_darcs/patches/20081118024947-84dde-46f68dff10cd2b5665fbd482f90ac83601df4228.gz b/_darcs/patches/20081118024947-84dde-46f68dff10cd2b5665fbd482f90ac83601df4228.gz deleted file mode 100644 index f956488273..0000000000 Binary files a/_darcs/patches/20081118024947-84dde-46f68dff10cd2b5665fbd482f90ac83601df4228.gz and /dev/null differ diff --git a/_darcs/patches/20081118155643-099f7-df2d332253d9acc007966b28f5afc2edcd7cc9ac.gz b/_darcs/patches/20081118155643-099f7-df2d332253d9acc007966b28f5afc2edcd7cc9ac.gz deleted file mode 100644 index 5dad8c5f30..0000000000 Binary files a/_darcs/patches/20081118155643-099f7-df2d332253d9acc007966b28f5afc2edcd7cc9ac.gz and /dev/null differ diff --git a/_darcs/patches/20081118172328-34904-98eea66103c6acee66cb23933038efe8e56923e9.gz b/_darcs/patches/20081118172328-34904-98eea66103c6acee66cb23933038efe8e56923e9.gz deleted file mode 100644 index ed8f0c8dcb..0000000000 Binary files a/_darcs/patches/20081118172328-34904-98eea66103c6acee66cb23933038efe8e56923e9.gz and /dev/null differ diff --git a/_darcs/patches/20081118173250-34904-ebde2dda47e743d5728a3ff9f556a8945b734009.gz b/_darcs/patches/20081118173250-34904-ebde2dda47e743d5728a3ff9f556a8945b734009.gz deleted file mode 100644 index f085444877..0000000000 Binary files a/_darcs/patches/20081118173250-34904-ebde2dda47e743d5728a3ff9f556a8945b734009.gz and /dev/null differ diff --git a/_darcs/patches/20081118173307-34904-426f45fb40129e75f9b251baecfec59e2b9cb6c9.gz b/_darcs/patches/20081118173307-34904-426f45fb40129e75f9b251baecfec59e2b9cb6c9.gz deleted file mode 100644 index be06339b20..0000000000 Binary files a/_darcs/patches/20081118173307-34904-426f45fb40129e75f9b251baecfec59e2b9cb6c9.gz and /dev/null differ diff --git a/_darcs/patches/20081118174857-099f7-bb67199062174a41433c34434f4832a8f48898ee.gz b/_darcs/patches/20081118174857-099f7-bb67199062174a41433c34434f4832a8f48898ee.gz deleted file mode 100644 index 16e86c9bf8..0000000000 Binary files a/_darcs/patches/20081118174857-099f7-bb67199062174a41433c34434f4832a8f48898ee.gz and /dev/null differ diff --git a/_darcs/patches/20081118180644-84dde-ab152249ac0844a482029b7e0f8db2780a0f15d6.gz b/_darcs/patches/20081118180644-84dde-ab152249ac0844a482029b7e0f8db2780a0f15d6.gz deleted file mode 100644 index 7af7f2904b..0000000000 Binary files a/_darcs/patches/20081118180644-84dde-ab152249ac0844a482029b7e0f8db2780a0f15d6.gz and /dev/null differ diff --git a/_darcs/patches/20081118185649-eefa4-72d485513ea9052cb02e2f8f79e36109491f1446.gz b/_darcs/patches/20081118185649-eefa4-72d485513ea9052cb02e2f8f79e36109491f1446.gz deleted file mode 100644 index b62cb58ba6..0000000000 Binary files a/_darcs/patches/20081118185649-eefa4-72d485513ea9052cb02e2f8f79e36109491f1446.gz and /dev/null differ diff --git a/_darcs/patches/20081118190030-eefa4-6fdd5c61412555628a2a4d62941605e9e08bdcc5.gz b/_darcs/patches/20081118190030-eefa4-6fdd5c61412555628a2a4d62941605e9e08bdcc5.gz deleted file mode 100644 index 7042bc21d2..0000000000 Binary files a/_darcs/patches/20081118190030-eefa4-6fdd5c61412555628a2a4d62941605e9e08bdcc5.gz and /dev/null differ diff --git a/_darcs/patches/20081118192227-84dde-3318e91d2366f3cb70bc795e313072f8e81a190c.gz b/_darcs/patches/20081118192227-84dde-3318e91d2366f3cb70bc795e313072f8e81a190c.gz deleted file mode 100644 index 86a1fa2028..0000000000 Binary files a/_darcs/patches/20081118192227-84dde-3318e91d2366f3cb70bc795e313072f8e81a190c.gz and /dev/null differ diff --git a/_darcs/patches/20081118194444-eefa4-ed631080a17ecddaaf32950ab190d071e2461ed7.gz b/_darcs/patches/20081118194444-eefa4-ed631080a17ecddaaf32950ab190d071e2461ed7.gz deleted file mode 100644 index 287dc4f359..0000000000 Binary files a/_darcs/patches/20081118194444-eefa4-ed631080a17ecddaaf32950ab190d071e2461ed7.gz and /dev/null differ diff --git a/_darcs/patches/20081119011128-7b5ce-74471277443b44d0075f66131028447cfda3b1e4.gz b/_darcs/patches/20081119011128-7b5ce-74471277443b44d0075f66131028447cfda3b1e4.gz deleted file mode 100644 index e99592b0f0..0000000000 Binary files a/_darcs/patches/20081119011128-7b5ce-74471277443b44d0075f66131028447cfda3b1e4.gz and /dev/null differ diff --git a/_darcs/patches/20081119200839-7b5ce-5f4a689dde7cbed392f598d3a2fbbf7f44bb0bd9.gz b/_darcs/patches/20081119200839-7b5ce-5f4a689dde7cbed392f598d3a2fbbf7f44bb0bd9.gz deleted file mode 100644 index 83506dd015..0000000000 Binary files a/_darcs/patches/20081119200839-7b5ce-5f4a689dde7cbed392f598d3a2fbbf7f44bb0bd9.gz and /dev/null differ diff --git a/_darcs/patches/20081119204501-7b5ce-c501f29e754d667ba680c19ef4e5db5c0125316e.gz b/_darcs/patches/20081119204501-7b5ce-c501f29e754d667ba680c19ef4e5db5c0125316e.gz deleted file mode 100644 index 623bea046f..0000000000 Binary files a/_darcs/patches/20081119204501-7b5ce-c501f29e754d667ba680c19ef4e5db5c0125316e.gz and /dev/null differ diff --git a/_darcs/patches/20081120071930-7b5ce-a15d7308bde085f03aa335c98ecd0aaa3833bc35.gz b/_darcs/patches/20081120071930-7b5ce-a15d7308bde085f03aa335c98ecd0aaa3833bc35.gz deleted file mode 100644 index 5e8dc23453..0000000000 Binary files a/_darcs/patches/20081120071930-7b5ce-a15d7308bde085f03aa335c98ecd0aaa3833bc35.gz and /dev/null differ diff --git a/_darcs/patches/20081120105027-84dde-e1c0faace07d9f2439d3a51a42cfe83464da5319.gz b/_darcs/patches/20081120105027-84dde-e1c0faace07d9f2439d3a51a42cfe83464da5319.gz deleted file mode 100644 index 3bf01d2ed5..0000000000 Binary files a/_darcs/patches/20081120105027-84dde-e1c0faace07d9f2439d3a51a42cfe83464da5319.gz and /dev/null differ diff --git a/_darcs/patches/20081120105223-84dde-d4b44f20e9bd0e3ce96e6834e04ad05cb451ba6a.gz b/_darcs/patches/20081120105223-84dde-d4b44f20e9bd0e3ce96e6834e04ad05cb451ba6a.gz deleted file mode 100644 index b951d97aad..0000000000 Binary files a/_darcs/patches/20081120105223-84dde-d4b44f20e9bd0e3ce96e6834e04ad05cb451ba6a.gz and /dev/null differ diff --git a/_darcs/patches/20081120105726-84dde-bc863f49370dca492d46a5f46c65f46d01862acb.gz b/_darcs/patches/20081120105726-84dde-bc863f49370dca492d46a5f46c65f46d01862acb.gz deleted file mode 100644 index b921860110..0000000000 Binary files a/_darcs/patches/20081120105726-84dde-bc863f49370dca492d46a5f46c65f46d01862acb.gz and /dev/null differ diff --git a/_darcs/patches/20081120113839-84dde-169dceadab4d365c81282e8a68a744b7c1aa6a94.gz b/_darcs/patches/20081120113839-84dde-169dceadab4d365c81282e8a68a744b7c1aa6a94.gz deleted file mode 100644 index 1c91888446..0000000000 Binary files a/_darcs/patches/20081120113839-84dde-169dceadab4d365c81282e8a68a744b7c1aa6a94.gz and /dev/null differ diff --git a/_darcs/patches/20081120114137-84dde-6d55cab81e0b23628cf9aa0360b9de2f866ba186.gz b/_darcs/patches/20081120114137-84dde-6d55cab81e0b23628cf9aa0360b9de2f866ba186.gz deleted file mode 100644 index 18d868bb4b..0000000000 Binary files a/_darcs/patches/20081120114137-84dde-6d55cab81e0b23628cf9aa0360b9de2f866ba186.gz and /dev/null differ diff --git a/_darcs/patches/20081120114156-84dde-90c360afbf3812d27262ac5c3e921bbc8e550627.gz b/_darcs/patches/20081120114156-84dde-90c360afbf3812d27262ac5c3e921bbc8e550627.gz deleted file mode 100644 index 8f13337636..0000000000 Binary files a/_darcs/patches/20081120114156-84dde-90c360afbf3812d27262ac5c3e921bbc8e550627.gz and /dev/null differ diff --git a/_darcs/patches/20081120122352-84dde-2bc356e446abb061ac1d7e9e9bd4f8d53d688509.gz b/_darcs/patches/20081120122352-84dde-2bc356e446abb061ac1d7e9e9bd4f8d53d688509.gz deleted file mode 100644 index 8c470b4938..0000000000 Binary files a/_darcs/patches/20081120122352-84dde-2bc356e446abb061ac1d7e9e9bd4f8d53d688509.gz and /dev/null differ diff --git a/_darcs/patches/20081120122411-84dde-86319f13b241ebe4557561106014035653d5e197.gz b/_darcs/patches/20081120122411-84dde-86319f13b241ebe4557561106014035653d5e197.gz deleted file mode 100644 index e9d2326b72..0000000000 Binary files a/_darcs/patches/20081120122411-84dde-86319f13b241ebe4557561106014035653d5e197.gz and /dev/null differ diff --git a/_darcs/patches/20081120122620-84dde-ac84012a563247b3074be50662b2879b7519c3d3.gz b/_darcs/patches/20081120122620-84dde-ac84012a563247b3074be50662b2879b7519c3d3.gz deleted file mode 100644 index 3335e3eadc..0000000000 Binary files a/_darcs/patches/20081120122620-84dde-ac84012a563247b3074be50662b2879b7519c3d3.gz and /dev/null differ diff --git a/_darcs/patches/20081120122709-84dde-3af930fcea7788753517537afd762999cc4e0a93.gz b/_darcs/patches/20081120122709-84dde-3af930fcea7788753517537afd762999cc4e0a93.gz deleted file mode 100644 index 3d3d213909..0000000000 Binary files a/_darcs/patches/20081120122709-84dde-3af930fcea7788753517537afd762999cc4e0a93.gz and /dev/null differ diff --git a/_darcs/patches/20081120123146-84dde-299808e2ed7a793a8240ab1c54e71b27f51307c4.gz b/_darcs/patches/20081120123146-84dde-299808e2ed7a793a8240ab1c54e71b27f51307c4.gz deleted file mode 100644 index cd971a915f..0000000000 Binary files a/_darcs/patches/20081120123146-84dde-299808e2ed7a793a8240ab1c54e71b27f51307c4.gz and /dev/null differ diff --git a/_darcs/patches/20081120142914-84dde-293e068ab92d9174bc270c35700809a1be9f19e1.gz b/_darcs/patches/20081120142914-84dde-293e068ab92d9174bc270c35700809a1be9f19e1.gz deleted file mode 100644 index f3586507d6..0000000000 Binary files a/_darcs/patches/20081120142914-84dde-293e068ab92d9174bc270c35700809a1be9f19e1.gz and /dev/null differ diff --git a/_darcs/patches/20081120143045-84dde-aab1cead676f41ed0703d830e7d4a7a08a2b3568.gz b/_darcs/patches/20081120143045-84dde-aab1cead676f41ed0703d830e7d4a7a08a2b3568.gz deleted file mode 100644 index c0e6059b11..0000000000 Binary files a/_darcs/patches/20081120143045-84dde-aab1cead676f41ed0703d830e7d4a7a08a2b3568.gz and /dev/null differ diff --git a/_darcs/patches/20081120143203-84dde-035efce34357338429aebb6dfbdd4da84810dc0f.gz b/_darcs/patches/20081120143203-84dde-035efce34357338429aebb6dfbdd4da84810dc0f.gz deleted file mode 100644 index bc1aeff985..0000000000 Binary files a/_darcs/patches/20081120143203-84dde-035efce34357338429aebb6dfbdd4da84810dc0f.gz and /dev/null differ diff --git a/_darcs/patches/20081120143840-84dde-af7dd6ad2dd3b6d8181d9554b1866cabdfcb7285.gz b/_darcs/patches/20081120143840-84dde-af7dd6ad2dd3b6d8181d9554b1866cabdfcb7285.gz deleted file mode 100644 index 82d6352105..0000000000 Binary files a/_darcs/patches/20081120143840-84dde-af7dd6ad2dd3b6d8181d9554b1866cabdfcb7285.gz and /dev/null differ diff --git a/_darcs/patches/20081120144300-84dde-bb02bac8053dacb470eeb357cdd43007c361cc9a.gz b/_darcs/patches/20081120144300-84dde-bb02bac8053dacb470eeb357cdd43007c361cc9a.gz deleted file mode 100644 index 5e9603555d..0000000000 Binary files a/_darcs/patches/20081120144300-84dde-bb02bac8053dacb470eeb357cdd43007c361cc9a.gz and /dev/null differ diff --git a/_darcs/patches/20081120145619-84dde-e9c2c367102090425800ca78e893772a5023560a.gz b/_darcs/patches/20081120145619-84dde-e9c2c367102090425800ca78e893772a5023560a.gz deleted file mode 100644 index df57368da2..0000000000 Binary files a/_darcs/patches/20081120145619-84dde-e9c2c367102090425800ca78e893772a5023560a.gz and /dev/null differ diff --git a/_darcs/patches/20081120145814-84dde-f0d8fb0756935e16516778c521eb263064c5bd96.gz b/_darcs/patches/20081120145814-84dde-f0d8fb0756935e16516778c521eb263064c5bd96.gz deleted file mode 100644 index a91dede909..0000000000 Binary files a/_darcs/patches/20081120145814-84dde-f0d8fb0756935e16516778c521eb263064c5bd96.gz and /dev/null differ diff --git a/_darcs/patches/20081120183722-84dde-8a8401fbcbb6abb60a8b36de249323586ea0b22c.gz b/_darcs/patches/20081120183722-84dde-8a8401fbcbb6abb60a8b36de249323586ea0b22c.gz deleted file mode 100644 index 7a810b38ea..0000000000 Binary files a/_darcs/patches/20081120183722-84dde-8a8401fbcbb6abb60a8b36de249323586ea0b22c.gz and /dev/null differ diff --git a/_darcs/patches/20081120201502-84dde-ff65f1962ab94474cfafe8717ea6a9d7d9f302bd.gz b/_darcs/patches/20081120201502-84dde-ff65f1962ab94474cfafe8717ea6a9d7d9f302bd.gz deleted file mode 100644 index 3ec86711f2..0000000000 Binary files a/_darcs/patches/20081120201502-84dde-ff65f1962ab94474cfafe8717ea6a9d7d9f302bd.gz and /dev/null differ diff --git a/_darcs/patches/20081120202448-eefa4-e2d294d906b0ff90f9977606d18ea6655a944452.gz b/_darcs/patches/20081120202448-eefa4-e2d294d906b0ff90f9977606d18ea6655a944452.gz deleted file mode 100644 index 37acc8f113..0000000000 Binary files a/_darcs/patches/20081120202448-eefa4-e2d294d906b0ff90f9977606d18ea6655a944452.gz and /dev/null differ diff --git a/_darcs/patches/20081120203528-84dde-2b8d14a491ea4d44bebfdd4e4a3041dde3b375c1.gz b/_darcs/patches/20081120203528-84dde-2b8d14a491ea4d44bebfdd4e4a3041dde3b375c1.gz deleted file mode 100644 index c5c89feed9..0000000000 Binary files a/_darcs/patches/20081120203528-84dde-2b8d14a491ea4d44bebfdd4e4a3041dde3b375c1.gz and /dev/null differ diff --git a/_darcs/patches/20081120204022-84dde-c238f7b51e43e81ce267ec65112f006f928676bf.gz b/_darcs/patches/20081120204022-84dde-c238f7b51e43e81ce267ec65112f006f928676bf.gz deleted file mode 100644 index 3833da0d1d..0000000000 Binary files a/_darcs/patches/20081120204022-84dde-c238f7b51e43e81ce267ec65112f006f928676bf.gz and /dev/null differ diff --git a/_darcs/patches/20081120204147-84dde-2205d6b49262c8a89287331129a6ffb90622a3be.gz b/_darcs/patches/20081120204147-84dde-2205d6b49262c8a89287331129a6ffb90622a3be.gz deleted file mode 100644 index 199df22a8e..0000000000 Binary files a/_darcs/patches/20081120204147-84dde-2205d6b49262c8a89287331129a6ffb90622a3be.gz and /dev/null differ diff --git a/_darcs/patches/20081120204347-84dde-5efd1a69aaecfa8c5cbde17b60017922a6888839.gz b/_darcs/patches/20081120204347-84dde-5efd1a69aaecfa8c5cbde17b60017922a6888839.gz deleted file mode 100644 index 7298fcf94d..0000000000 Binary files a/_darcs/patches/20081120204347-84dde-5efd1a69aaecfa8c5cbde17b60017922a6888839.gz and /dev/null differ diff --git a/_darcs/patches/20081120204725-84dde-1b126328b7c5a62b59146824139dfff4914879cb.gz b/_darcs/patches/20081120204725-84dde-1b126328b7c5a62b59146824139dfff4914879cb.gz deleted file mode 100644 index 67fc60f1ef..0000000000 Binary files a/_darcs/patches/20081120204725-84dde-1b126328b7c5a62b59146824139dfff4914879cb.gz and /dev/null differ diff --git a/_darcs/patches/20081120205319-84dde-c8ea8a1ae5e1e22c48fa89bd1b8f486345b3e13b.gz b/_darcs/patches/20081120205319-84dde-c8ea8a1ae5e1e22c48fa89bd1b8f486345b3e13b.gz deleted file mode 100644 index 3b925bc984..0000000000 Binary files a/_darcs/patches/20081120205319-84dde-c8ea8a1ae5e1e22c48fa89bd1b8f486345b3e13b.gz and /dev/null differ diff --git a/_darcs/patches/20081120205421-84dde-b41e50386ce3ec5f887c87cd83258c2e0e86f713.gz b/_darcs/patches/20081120205421-84dde-b41e50386ce3ec5f887c87cd83258c2e0e86f713.gz deleted file mode 100644 index 1a51e27322..0000000000 Binary files a/_darcs/patches/20081120205421-84dde-b41e50386ce3ec5f887c87cd83258c2e0e86f713.gz and /dev/null differ diff --git a/_darcs/patches/20081120205506-84dde-e9aa0a70d3529f91909dbe29f03a46b40ef18fff.gz b/_darcs/patches/20081120205506-84dde-e9aa0a70d3529f91909dbe29f03a46b40ef18fff.gz deleted file mode 100644 index f83e79556b..0000000000 Binary files a/_darcs/patches/20081120205506-84dde-e9aa0a70d3529f91909dbe29f03a46b40ef18fff.gz and /dev/null differ diff --git a/_darcs/patches/20081120210045-84dde-87d77f45937eca796477fb9e18ca84e31a5dfa3b.gz b/_darcs/patches/20081120210045-84dde-87d77f45937eca796477fb9e18ca84e31a5dfa3b.gz deleted file mode 100644 index fab7d49cef..0000000000 Binary files a/_darcs/patches/20081120210045-84dde-87d77f45937eca796477fb9e18ca84e31a5dfa3b.gz and /dev/null differ diff --git a/_darcs/patches/20081120211347-099f7-d5588788dcd9a16cf72ece59da3d2bf9b8171b85.gz b/_darcs/patches/20081120211347-099f7-d5588788dcd9a16cf72ece59da3d2bf9b8171b85.gz deleted file mode 100644 index 2705e4f485..0000000000 Binary files a/_darcs/patches/20081120211347-099f7-d5588788dcd9a16cf72ece59da3d2bf9b8171b85.gz and /dev/null differ diff --git a/_darcs/patches/20081120212142-7b5ce-9b0325c43a423de108b221325446969dc240d916.gz b/_darcs/patches/20081120212142-7b5ce-9b0325c43a423de108b221325446969dc240d916.gz deleted file mode 100644 index 3f3e004251..0000000000 Binary files a/_darcs/patches/20081120212142-7b5ce-9b0325c43a423de108b221325446969dc240d916.gz and /dev/null differ diff --git a/_darcs/patches/20081120213022-7b5ce-df10d289e8c0e1d06f6e10d5ff642eb93752be19.gz b/_darcs/patches/20081120213022-7b5ce-df10d289e8c0e1d06f6e10d5ff642eb93752be19.gz deleted file mode 100644 index 9d00c8fe55..0000000000 Binary files a/_darcs/patches/20081120213022-7b5ce-df10d289e8c0e1d06f6e10d5ff642eb93752be19.gz and /dev/null differ diff --git a/_darcs/patches/20081120214557-7b5ce-df1993ee7a761d109e9346d9817ead147d015962.gz b/_darcs/patches/20081120214557-7b5ce-df1993ee7a761d109e9346d9817ead147d015962.gz deleted file mode 100644 index fa35e15596..0000000000 Binary files a/_darcs/patches/20081120214557-7b5ce-df1993ee7a761d109e9346d9817ead147d015962.gz and /dev/null differ diff --git a/_darcs/patches/20081120214821-84dde-c8569ef645b389de545f78bf01a270f28b871f02.gz b/_darcs/patches/20081120214821-84dde-c8569ef645b389de545f78bf01a270f28b871f02.gz deleted file mode 100644 index fb5babeb52..0000000000 Binary files a/_darcs/patches/20081120214821-84dde-c8569ef645b389de545f78bf01a270f28b871f02.gz and /dev/null differ diff --git a/_darcs/patches/20081120214945-84dde-f15f2512f3998e7dd7bf7216ecc9ef0f5f37ea87.gz b/_darcs/patches/20081120214945-84dde-f15f2512f3998e7dd7bf7216ecc9ef0f5f37ea87.gz deleted file mode 100644 index f6bd53df49..0000000000 Binary files a/_darcs/patches/20081120214945-84dde-f15f2512f3998e7dd7bf7216ecc9ef0f5f37ea87.gz and /dev/null differ diff --git a/_darcs/patches/20081120215041-099f7-db396a60755d551099122b58634b7550d5606d88.gz b/_darcs/patches/20081120215041-099f7-db396a60755d551099122b58634b7550d5606d88.gz deleted file mode 100644 index 35026c2cc4..0000000000 Binary files a/_darcs/patches/20081120215041-099f7-db396a60755d551099122b58634b7550d5606d88.gz and /dev/null differ diff --git a/_darcs/patches/20081120215222-84dde-340269eb99daff7815bb2e17a04341f603eef438.gz b/_darcs/patches/20081120215222-84dde-340269eb99daff7815bb2e17a04341f603eef438.gz deleted file mode 100644 index 8d2cfb9b66..0000000000 Binary files a/_darcs/patches/20081120215222-84dde-340269eb99daff7815bb2e17a04341f603eef438.gz and /dev/null differ diff --git a/_darcs/patches/20081120215508-84dde-1f38247dae1b196cbf2c32df4f2733e4cffa3ef6.gz b/_darcs/patches/20081120215508-84dde-1f38247dae1b196cbf2c32df4f2733e4cffa3ef6.gz deleted file mode 100644 index b7a9042bad..0000000000 Binary files a/_darcs/patches/20081120215508-84dde-1f38247dae1b196cbf2c32df4f2733e4cffa3ef6.gz and /dev/null differ diff --git a/_darcs/patches/20081120215751-84dde-8954f2dd5be0a333329d035a649676193c8844e9.gz b/_darcs/patches/20081120215751-84dde-8954f2dd5be0a333329d035a649676193c8844e9.gz deleted file mode 100644 index 198fe02d97..0000000000 Binary files a/_darcs/patches/20081120215751-84dde-8954f2dd5be0a333329d035a649676193c8844e9.gz and /dev/null differ diff --git a/_darcs/patches/20081120224207-84dde-3fe1c8936ca93fc8c65e9a9b4680e8a7b3dd38b8.gz b/_darcs/patches/20081120224207-84dde-3fe1c8936ca93fc8c65e9a9b4680e8a7b3dd38b8.gz deleted file mode 100644 index 65f1c05442..0000000000 Binary files a/_darcs/patches/20081120224207-84dde-3fe1c8936ca93fc8c65e9a9b4680e8a7b3dd38b8.gz and /dev/null differ diff --git a/_darcs/patches/20081120224429-84dde-e9f2abbb6dba5576f21ee02ca9e5371d468c9249.gz b/_darcs/patches/20081120224429-84dde-e9f2abbb6dba5576f21ee02ca9e5371d468c9249.gz deleted file mode 100644 index 7907bd69fc..0000000000 Binary files a/_darcs/patches/20081120224429-84dde-e9f2abbb6dba5576f21ee02ca9e5371d468c9249.gz and /dev/null differ diff --git a/_darcs/patches/20081120224540-84dde-adc442888ce7e5faacffb062ed07b4508aed4538.gz b/_darcs/patches/20081120224540-84dde-adc442888ce7e5faacffb062ed07b4508aed4538.gz deleted file mode 100644 index ba61432c3f..0000000000 Binary files a/_darcs/patches/20081120224540-84dde-adc442888ce7e5faacffb062ed07b4508aed4538.gz and /dev/null differ diff --git a/_darcs/patches/20081120224708-84dde-2c259c12a3ac553f431430e016074e02ad5ae3b9.gz b/_darcs/patches/20081120224708-84dde-2c259c12a3ac553f431430e016074e02ad5ae3b9.gz deleted file mode 100644 index b7644fef10..0000000000 Binary files a/_darcs/patches/20081120224708-84dde-2c259c12a3ac553f431430e016074e02ad5ae3b9.gz and /dev/null differ diff --git a/_darcs/patches/20081120224918-84dde-c964bdb77618d6a208efe581dd570b6ea1e23e7d.gz b/_darcs/patches/20081120224918-84dde-c964bdb77618d6a208efe581dd570b6ea1e23e7d.gz deleted file mode 100644 index 8b5ae9eb6c..0000000000 Binary files a/_darcs/patches/20081120224918-84dde-c964bdb77618d6a208efe581dd570b6ea1e23e7d.gz and /dev/null differ diff --git a/_darcs/patches/20081120225137-84dde-03ae7562e67c825bb7bf29805d32a351f8b095c5.gz b/_darcs/patches/20081120225137-84dde-03ae7562e67c825bb7bf29805d32a351f8b095c5.gz deleted file mode 100644 index bf726efc63..0000000000 Binary files a/_darcs/patches/20081120225137-84dde-03ae7562e67c825bb7bf29805d32a351f8b095c5.gz and /dev/null differ diff --git a/_darcs/patches/20081120225917-84dde-f9813a891a6547264817ed289b9899382abd8c60.gz b/_darcs/patches/20081120225917-84dde-f9813a891a6547264817ed289b9899382abd8c60.gz deleted file mode 100644 index ee08213112..0000000000 Binary files a/_darcs/patches/20081120225917-84dde-f9813a891a6547264817ed289b9899382abd8c60.gz and /dev/null differ diff --git a/_darcs/patches/20081120232655-eefa4-cf6a71e246828793d3bfa413db724ab33bc58bcf.gz b/_darcs/patches/20081120232655-eefa4-cf6a71e246828793d3bfa413db724ab33bc58bcf.gz deleted file mode 100644 index 076bc44729..0000000000 Binary files a/_darcs/patches/20081120232655-eefa4-cf6a71e246828793d3bfa413db724ab33bc58bcf.gz and /dev/null differ diff --git a/_darcs/patches/20081120234923-eefa4-952f059fdda781d3f223a1f26af4741b59bb9421.gz b/_darcs/patches/20081120234923-eefa4-952f059fdda781d3f223a1f26af4741b59bb9421.gz deleted file mode 100644 index ecc8b09c67..0000000000 Binary files a/_darcs/patches/20081120234923-eefa4-952f059fdda781d3f223a1f26af4741b59bb9421.gz and /dev/null differ diff --git a/_darcs/patches/20081120235752-eefa4-42e67140086035ae57c4db38aea48cabb0486d75.gz b/_darcs/patches/20081120235752-eefa4-42e67140086035ae57c4db38aea48cabb0486d75.gz deleted file mode 100644 index 4797662c2f..0000000000 Binary files a/_darcs/patches/20081120235752-eefa4-42e67140086035ae57c4db38aea48cabb0486d75.gz and /dev/null differ diff --git a/_darcs/patches/20081121002038-84dde-2d9800f8c0ad3d22d13ca7b497f2914c9d9719fd.gz b/_darcs/patches/20081121002038-84dde-2d9800f8c0ad3d22d13ca7b497f2914c9d9719fd.gz deleted file mode 100644 index 42d45a166c..0000000000 Binary files a/_darcs/patches/20081121002038-84dde-2d9800f8c0ad3d22d13ca7b497f2914c9d9719fd.gz and /dev/null differ diff --git a/_darcs/patches/20081121002402-84dde-867316d44fdc6ab363045540174b69297ea2f183.gz b/_darcs/patches/20081121002402-84dde-867316d44fdc6ab363045540174b69297ea2f183.gz deleted file mode 100644 index 6422c86c24..0000000000 Binary files a/_darcs/patches/20081121002402-84dde-867316d44fdc6ab363045540174b69297ea2f183.gz and /dev/null differ diff --git a/_darcs/patches/20081121003108-84dde-d305637fa58f6e7edb8bb79dfb7c721a16f8aeed.gz b/_darcs/patches/20081121003108-84dde-d305637fa58f6e7edb8bb79dfb7c721a16f8aeed.gz deleted file mode 100644 index af187ebfe3..0000000000 Binary files a/_darcs/patches/20081121003108-84dde-d305637fa58f6e7edb8bb79dfb7c721a16f8aeed.gz and /dev/null differ diff --git a/_darcs/patches/20081121003338-84dde-45745ca353eb5a68627335115d2993fd15a38498.gz b/_darcs/patches/20081121003338-84dde-45745ca353eb5a68627335115d2993fd15a38498.gz deleted file mode 100644 index 766e7378f1..0000000000 Binary files a/_darcs/patches/20081121003338-84dde-45745ca353eb5a68627335115d2993fd15a38498.gz and /dev/null differ diff --git a/_darcs/patches/20081121003608-84dde-1bae74a9d4635423965c8f18a7555c2b0eab982e.gz b/_darcs/patches/20081121003608-84dde-1bae74a9d4635423965c8f18a7555c2b0eab982e.gz deleted file mode 100644 index 663b4c8d14..0000000000 Binary files a/_darcs/patches/20081121003608-84dde-1bae74a9d4635423965c8f18a7555c2b0eab982e.gz and /dev/null differ diff --git a/_darcs/patches/20081121003655-84dde-56051867f44c63546a972dd55d364e3dc43f799c.gz b/_darcs/patches/20081121003655-84dde-56051867f44c63546a972dd55d364e3dc43f799c.gz deleted file mode 100644 index 7267841e30..0000000000 Binary files a/_darcs/patches/20081121003655-84dde-56051867f44c63546a972dd55d364e3dc43f799c.gz and /dev/null differ diff --git a/_darcs/patches/20081121004336-84dde-8fc36b38b9f35d9058118efebd509098f6ce8230.gz b/_darcs/patches/20081121004336-84dde-8fc36b38b9f35d9058118efebd509098f6ce8230.gz deleted file mode 100644 index 260be7eb3e..0000000000 Binary files a/_darcs/patches/20081121004336-84dde-8fc36b38b9f35d9058118efebd509098f6ce8230.gz and /dev/null differ diff --git a/_darcs/patches/20081121005216-84dde-5dea247b1c64f276cf2b2b5d3d6ce51ba3d9d615.gz b/_darcs/patches/20081121005216-84dde-5dea247b1c64f276cf2b2b5d3d6ce51ba3d9d615.gz deleted file mode 100644 index b058cbd401..0000000000 Binary files a/_darcs/patches/20081121005216-84dde-5dea247b1c64f276cf2b2b5d3d6ce51ba3d9d615.gz and /dev/null differ diff --git a/_darcs/patches/20081121005338-7b5ce-1e2b30a5f7de6900cdc865246c1ed65d0dfe29f6.gz b/_darcs/patches/20081121005338-7b5ce-1e2b30a5f7de6900cdc865246c1ed65d0dfe29f6.gz deleted file mode 100644 index f666f71cae..0000000000 Binary files a/_darcs/patches/20081121005338-7b5ce-1e2b30a5f7de6900cdc865246c1ed65d0dfe29f6.gz and /dev/null differ diff --git a/_darcs/patches/20081121005631-84dde-2dbb716ef054bba7dfbdda3d0374c30718affd29.gz b/_darcs/patches/20081121005631-84dde-2dbb716ef054bba7dfbdda3d0374c30718affd29.gz deleted file mode 100644 index bb41d0aa54..0000000000 Binary files a/_darcs/patches/20081121005631-84dde-2dbb716ef054bba7dfbdda3d0374c30718affd29.gz and /dev/null differ diff --git a/_darcs/patches/20081121023827-eefa4-ed91f63cac35c078dc385546a69209cbef2a0d5e.gz b/_darcs/patches/20081121023827-eefa4-ed91f63cac35c078dc385546a69209cbef2a0d5e.gz deleted file mode 100644 index ed91205a03..0000000000 Binary files a/_darcs/patches/20081121023827-eefa4-ed91f63cac35c078dc385546a69209cbef2a0d5e.gz and /dev/null differ diff --git a/_darcs/patches/20081121025749-84dde-9fd9a98c23ecabd1c1615dec938edbd4be884aec.gz b/_darcs/patches/20081121025749-84dde-9fd9a98c23ecabd1c1615dec938edbd4be884aec.gz deleted file mode 100644 index 0252c6f235..0000000000 Binary files a/_darcs/patches/20081121025749-84dde-9fd9a98c23ecabd1c1615dec938edbd4be884aec.gz and /dev/null differ diff --git a/_darcs/patches/20081121031811-eefa4-80ec886c93a3357baffe332a5bf19214e8b64e93.gz b/_darcs/patches/20081121031811-eefa4-80ec886c93a3357baffe332a5bf19214e8b64e93.gz deleted file mode 100644 index 13566bfafc..0000000000 Binary files a/_darcs/patches/20081121031811-eefa4-80ec886c93a3357baffe332a5bf19214e8b64e93.gz and /dev/null differ diff --git a/_darcs/patches/20081121153517-eefa4-66e38c8b447da35b616db156d73cdbb24871823d.gz b/_darcs/patches/20081121153517-eefa4-66e38c8b447da35b616db156d73cdbb24871823d.gz deleted file mode 100644 index 0137077b2c..0000000000 Binary files a/_darcs/patches/20081121153517-eefa4-66e38c8b447da35b616db156d73cdbb24871823d.gz and /dev/null differ diff --git a/_darcs/patches/20081121154218-84dde-3c805fe52692950edd397ac184f68c09095419a7.gz b/_darcs/patches/20081121154218-84dde-3c805fe52692950edd397ac184f68c09095419a7.gz deleted file mode 100644 index fcb0fd5076..0000000000 Binary files a/_darcs/patches/20081121154218-84dde-3c805fe52692950edd397ac184f68c09095419a7.gz and /dev/null differ diff --git a/_darcs/patches/20081121155829-eefa4-d7bfe7c9faf5d4464b017dea43806207883ad74e.gz b/_darcs/patches/20081121155829-eefa4-d7bfe7c9faf5d4464b017dea43806207883ad74e.gz deleted file mode 100644 index 3074e993ad..0000000000 Binary files a/_darcs/patches/20081121155829-eefa4-d7bfe7c9faf5d4464b017dea43806207883ad74e.gz and /dev/null differ diff --git a/_darcs/patches/20081121160208-eefa4-33005f2d8c3e5e668c928f7c8425ac2731ed153b.gz b/_darcs/patches/20081121160208-eefa4-33005f2d8c3e5e668c928f7c8425ac2731ed153b.gz deleted file mode 100644 index 9eb1635aa4..0000000000 Binary files a/_darcs/patches/20081121160208-eefa4-33005f2d8c3e5e668c928f7c8425ac2731ed153b.gz and /dev/null differ diff --git a/_darcs/patches/20081121161645-eefa4-6e4af82adb69e89ada3fdd5eee8f02bc3aefeed1.gz b/_darcs/patches/20081121161645-eefa4-6e4af82adb69e89ada3fdd5eee8f02bc3aefeed1.gz deleted file mode 100644 index f7a27b8b2b..0000000000 Binary files a/_darcs/patches/20081121161645-eefa4-6e4af82adb69e89ada3fdd5eee8f02bc3aefeed1.gz and /dev/null differ diff --git a/_darcs/patches/20081121162600-84dde-c6223f113b55a83e98b4d761a4c29d2518e0079a.gz b/_darcs/patches/20081121162600-84dde-c6223f113b55a83e98b4d761a4c29d2518e0079a.gz deleted file mode 100644 index 8479207177..0000000000 Binary files a/_darcs/patches/20081121162600-84dde-c6223f113b55a83e98b4d761a4c29d2518e0079a.gz and /dev/null differ diff --git a/_darcs/patches/20081121162918-84dde-76a765414ccc036371cc747b6323a555df8fc6c4.gz b/_darcs/patches/20081121162918-84dde-76a765414ccc036371cc747b6323a555df8fc6c4.gz deleted file mode 100644 index 57cf92f1bc..0000000000 Binary files a/_darcs/patches/20081121162918-84dde-76a765414ccc036371cc747b6323a555df8fc6c4.gz and /dev/null differ diff --git a/_darcs/patches/20081121184132-84dde-39d090e8bf82d10f3aa3a55ada3f4170c01e11d1.gz b/_darcs/patches/20081121184132-84dde-39d090e8bf82d10f3aa3a55ada3f4170c01e11d1.gz deleted file mode 100644 index cd51c7b6ff..0000000000 Binary files a/_darcs/patches/20081121184132-84dde-39d090e8bf82d10f3aa3a55ada3f4170c01e11d1.gz and /dev/null differ diff --git a/_darcs/patches/20081122043145-7b5ce-0fc4b2ed06e29437c54e3c2f1a64b6d0fbeb9058.gz b/_darcs/patches/20081122043145-7b5ce-0fc4b2ed06e29437c54e3c2f1a64b6d0fbeb9058.gz deleted file mode 100644 index ebc9acb335..0000000000 Binary files a/_darcs/patches/20081122043145-7b5ce-0fc4b2ed06e29437c54e3c2f1a64b6d0fbeb9058.gz and /dev/null differ diff --git a/_darcs/patches/20081122124151-84dde-3e942c9ab172444bd28afb84a452b8bfb5e3574a.gz b/_darcs/patches/20081122124151-84dde-3e942c9ab172444bd28afb84a452b8bfb5e3574a.gz deleted file mode 100644 index 89c8350325..0000000000 Binary files a/_darcs/patches/20081122124151-84dde-3e942c9ab172444bd28afb84a452b8bfb5e3574a.gz and /dev/null differ diff --git a/_darcs/patches/20081122124235-84dde-680b2d2c8caff26d40dec4fe8e926a61668c47a0.gz b/_darcs/patches/20081122124235-84dde-680b2d2c8caff26d40dec4fe8e926a61668c47a0.gz deleted file mode 100644 index b233353ffa..0000000000 Binary files a/_darcs/patches/20081122124235-84dde-680b2d2c8caff26d40dec4fe8e926a61668c47a0.gz and /dev/null differ diff --git a/_darcs/patches/20081122163347-84dde-abb0dfc800f65f50951c5517af3bfda48013c6ed.gz b/_darcs/patches/20081122163347-84dde-abb0dfc800f65f50951c5517af3bfda48013c6ed.gz deleted file mode 100644 index 153215c6c0..0000000000 Binary files a/_darcs/patches/20081122163347-84dde-abb0dfc800f65f50951c5517af3bfda48013c6ed.gz and /dev/null differ diff --git a/_darcs/patches/20081122163552-84dde-9171c5e24ae90a430f2abd78437073656af9e5ec.gz b/_darcs/patches/20081122163552-84dde-9171c5e24ae90a430f2abd78437073656af9e5ec.gz deleted file mode 100644 index 48af00a7b0..0000000000 Binary files a/_darcs/patches/20081122163552-84dde-9171c5e24ae90a430f2abd78437073656af9e5ec.gz and /dev/null differ diff --git a/_darcs/patches/20081122165234-84dde-d9d6a608434502cb3d5fb09f04d0c641900c3134.gz b/_darcs/patches/20081122165234-84dde-d9d6a608434502cb3d5fb09f04d0c641900c3134.gz deleted file mode 100644 index f7904ed818..0000000000 Binary files a/_darcs/patches/20081122165234-84dde-d9d6a608434502cb3d5fb09f04d0c641900c3134.gz and /dev/null differ diff --git a/_darcs/patches/20081122192857-84dde-c8fcddd794a8339a53e6a0224bd07f6f86ef3896.gz b/_darcs/patches/20081122192857-84dde-c8fcddd794a8339a53e6a0224bd07f6f86ef3896.gz deleted file mode 100644 index 471392da61..0000000000 Binary files a/_darcs/patches/20081122192857-84dde-c8fcddd794a8339a53e6a0224bd07f6f86ef3896.gz and /dev/null differ diff --git a/_darcs/patches/20081123014003-84dde-ea8f5d167a544617efb22bb0c553f18d718a65c6.gz b/_darcs/patches/20081123014003-84dde-ea8f5d167a544617efb22bb0c553f18d718a65c6.gz deleted file mode 100644 index f53f0fa377..0000000000 Binary files a/_darcs/patches/20081123014003-84dde-ea8f5d167a544617efb22bb0c553f18d718a65c6.gz and /dev/null differ diff --git a/_darcs/patches/20081123015559-eefa4-5ce05e6e79236c6d5ebc87f0aa3ec4de51bae130.gz b/_darcs/patches/20081123015559-eefa4-5ce05e6e79236c6d5ebc87f0aa3ec4de51bae130.gz deleted file mode 100644 index 372b97ef0d..0000000000 Binary files a/_darcs/patches/20081123015559-eefa4-5ce05e6e79236c6d5ebc87f0aa3ec4de51bae130.gz and /dev/null differ diff --git a/_darcs/patches/20081123022902-7b5ce-fbdd4e9a3df3e206caec0ca37c10a2e0a58cef85.gz b/_darcs/patches/20081123022902-7b5ce-fbdd4e9a3df3e206caec0ca37c10a2e0a58cef85.gz deleted file mode 100644 index 5cf3c139f0..0000000000 Binary files a/_darcs/patches/20081123022902-7b5ce-fbdd4e9a3df3e206caec0ca37c10a2e0a58cef85.gz and /dev/null differ diff --git a/_darcs/patches/20081123183613-7b5ce-9c6bd2b2efb679bce9f710f5f5ad9c48bf652e29.gz b/_darcs/patches/20081123183613-7b5ce-9c6bd2b2efb679bce9f710f5f5ad9c48bf652e29.gz deleted file mode 100644 index 99e6df4794..0000000000 Binary files a/_darcs/patches/20081123183613-7b5ce-9c6bd2b2efb679bce9f710f5f5ad9c48bf652e29.gz and /dev/null differ diff --git a/_darcs/patches/20081123185136-099f7-ca600dbdfff09762802e1cc58cf8777c45a24402.gz b/_darcs/patches/20081123185136-099f7-ca600dbdfff09762802e1cc58cf8777c45a24402.gz deleted file mode 100644 index 3a5778e32d..0000000000 Binary files a/_darcs/patches/20081123185136-099f7-ca600dbdfff09762802e1cc58cf8777c45a24402.gz and /dev/null differ diff --git a/_darcs/patches/20081123190555-099f7-cd09b07e99355e2f61562324221840f869fea5bb.gz b/_darcs/patches/20081123190555-099f7-cd09b07e99355e2f61562324221840f869fea5bb.gz deleted file mode 100644 index e2dd774e34..0000000000 Binary files a/_darcs/patches/20081123190555-099f7-cd09b07e99355e2f61562324221840f869fea5bb.gz and /dev/null differ diff --git a/_darcs/patches/20081123193727-7b5ce-0771232a9771e1325f937ccc87e6ba319dd97590.gz b/_darcs/patches/20081123193727-7b5ce-0771232a9771e1325f937ccc87e6ba319dd97590.gz deleted file mode 100644 index 0d70ff2160..0000000000 Binary files a/_darcs/patches/20081123193727-7b5ce-0771232a9771e1325f937ccc87e6ba319dd97590.gz and /dev/null differ diff --git a/_darcs/patches/20081123201616-099f7-54ac0134e38e145b99a81336ae0b51a8ecd560a8.gz b/_darcs/patches/20081123201616-099f7-54ac0134e38e145b99a81336ae0b51a8ecd560a8.gz deleted file mode 100644 index 927d6fdd64..0000000000 Binary files a/_darcs/patches/20081123201616-099f7-54ac0134e38e145b99a81336ae0b51a8ecd560a8.gz and /dev/null differ diff --git a/_darcs/patches/20081123211348-7b5ce-426c07ee1d1884c691b659e8a9b359bb95afc61e.gz b/_darcs/patches/20081123211348-7b5ce-426c07ee1d1884c691b659e8a9b359bb95afc61e.gz deleted file mode 100644 index e4d51c42e3..0000000000 Binary files a/_darcs/patches/20081123211348-7b5ce-426c07ee1d1884c691b659e8a9b359bb95afc61e.gz and /dev/null differ diff --git a/_darcs/patches/20081123212532-7b5ce-0d5f6761f232975d721f02d16e90ad6d5dcf02d6.gz b/_darcs/patches/20081123212532-7b5ce-0d5f6761f232975d721f02d16e90ad6d5dcf02d6.gz deleted file mode 100644 index 3068009125..0000000000 Binary files a/_darcs/patches/20081123212532-7b5ce-0d5f6761f232975d721f02d16e90ad6d5dcf02d6.gz and /dev/null differ diff --git a/_darcs/patches/20081123213458-eefa4-51ef75c757915e5d4eb0dd69fcdcada3b0ccb150.gz b/_darcs/patches/20081123213458-eefa4-51ef75c757915e5d4eb0dd69fcdcada3b0ccb150.gz deleted file mode 100644 index c005cd3b45..0000000000 Binary files a/_darcs/patches/20081123213458-eefa4-51ef75c757915e5d4eb0dd69fcdcada3b0ccb150.gz and /dev/null differ diff --git a/_darcs/patches/20081123215059-099f7-a0a969229b20fc01ca54f15b166333b3e5a32137.gz b/_darcs/patches/20081123215059-099f7-a0a969229b20fc01ca54f15b166333b3e5a32137.gz deleted file mode 100644 index 05eb17ad7e..0000000000 Binary files a/_darcs/patches/20081123215059-099f7-a0a969229b20fc01ca54f15b166333b3e5a32137.gz and /dev/null differ diff --git a/_darcs/patches/20081124003240-84dde-aa4561e5e68b0ccc0598ac86294ea54f9be5775a.gz b/_darcs/patches/20081124003240-84dde-aa4561e5e68b0ccc0598ac86294ea54f9be5775a.gz deleted file mode 100644 index c55a47b435..0000000000 Binary files a/_darcs/patches/20081124003240-84dde-aa4561e5e68b0ccc0598ac86294ea54f9be5775a.gz and /dev/null differ diff --git a/_darcs/patches/20081124005054-099f7-a7b20c1e15900e1c696a33902a6612b8be2387fa.gz b/_darcs/patches/20081124005054-099f7-a7b20c1e15900e1c696a33902a6612b8be2387fa.gz deleted file mode 100644 index f4aea42456..0000000000 Binary files a/_darcs/patches/20081124005054-099f7-a7b20c1e15900e1c696a33902a6612b8be2387fa.gz and /dev/null differ diff --git a/_darcs/patches/20081124005402-099f7-00c1482cdb297db98d6419479afdd825d3494c89.gz b/_darcs/patches/20081124005402-099f7-00c1482cdb297db98d6419479afdd825d3494c89.gz deleted file mode 100644 index a98d6e5aac..0000000000 Binary files a/_darcs/patches/20081124005402-099f7-00c1482cdb297db98d6419479afdd825d3494c89.gz and /dev/null differ diff --git a/_darcs/patches/20081124013928-84dde-c5f08e23edcf6873af04bd7f0d8aa1b64cb5c902.gz b/_darcs/patches/20081124013928-84dde-c5f08e23edcf6873af04bd7f0d8aa1b64cb5c902.gz deleted file mode 100644 index 52ff7e67c2..0000000000 Binary files a/_darcs/patches/20081124013928-84dde-c5f08e23edcf6873af04bd7f0d8aa1b64cb5c902.gz and /dev/null differ diff --git a/_darcs/patches/20081124015802-84dde-d72651ff0c466d15835fe263e96bdd9b34162849.gz b/_darcs/patches/20081124015802-84dde-d72651ff0c466d15835fe263e96bdd9b34162849.gz deleted file mode 100644 index 1ac360fc10..0000000000 Binary files a/_darcs/patches/20081124015802-84dde-d72651ff0c466d15835fe263e96bdd9b34162849.gz and /dev/null differ diff --git a/_darcs/patches/20081124015927-84dde-525625c0341e62d3939879430743d0a976d0d8d2.gz b/_darcs/patches/20081124015927-84dde-525625c0341e62d3939879430743d0a976d0d8d2.gz deleted file mode 100644 index 863e48ff65..0000000000 Binary files a/_darcs/patches/20081124015927-84dde-525625c0341e62d3939879430743d0a976d0d8d2.gz and /dev/null differ diff --git a/_darcs/patches/20081124020029-84dde-2778ef961b5f900c7abe2cb18550f5e013b5579a.gz b/_darcs/patches/20081124020029-84dde-2778ef961b5f900c7abe2cb18550f5e013b5579a.gz deleted file mode 100644 index f2079e7469..0000000000 Binary files a/_darcs/patches/20081124020029-84dde-2778ef961b5f900c7abe2cb18550f5e013b5579a.gz and /dev/null differ diff --git a/_darcs/patches/20081124023036-099f7-d2c32538e8a81170032ba0bc9fc5caf79e2b59a9.gz b/_darcs/patches/20081124023036-099f7-d2c32538e8a81170032ba0bc9fc5caf79e2b59a9.gz deleted file mode 100644 index f78bdc5a99..0000000000 Binary files a/_darcs/patches/20081124023036-099f7-d2c32538e8a81170032ba0bc9fc5caf79e2b59a9.gz and /dev/null differ diff --git a/_darcs/patches/20081124024434-84dde-e68f54652c2d0dfb802b1abcafba53556c1f057a.gz b/_darcs/patches/20081124024434-84dde-e68f54652c2d0dfb802b1abcafba53556c1f057a.gz deleted file mode 100644 index 63fd05fe6d..0000000000 Binary files a/_darcs/patches/20081124024434-84dde-e68f54652c2d0dfb802b1abcafba53556c1f057a.gz and /dev/null differ diff --git a/_darcs/patches/20081124025308-eefa4-b4523d386c1dd36d4856949abba1dc8bd8099da0.gz b/_darcs/patches/20081124025308-eefa4-b4523d386c1dd36d4856949abba1dc8bd8099da0.gz deleted file mode 100644 index f99064b8bf..0000000000 Binary files a/_darcs/patches/20081124025308-eefa4-b4523d386c1dd36d4856949abba1dc8bd8099da0.gz and /dev/null differ diff --git a/_darcs/patches/20081124031549-84dde-c537cb25f301ac3368440d4d5f583ea3d713ac2c.gz b/_darcs/patches/20081124031549-84dde-c537cb25f301ac3368440d4d5f583ea3d713ac2c.gz deleted file mode 100644 index ee91a6a4b9..0000000000 Binary files a/_darcs/patches/20081124031549-84dde-c537cb25f301ac3368440d4d5f583ea3d713ac2c.gz and /dev/null differ diff --git a/_darcs/patches/20081124033659-099f7-65aea696c71be9bcc71b0b507d14fd2a645608b2.gz b/_darcs/patches/20081124033659-099f7-65aea696c71be9bcc71b0b507d14fd2a645608b2.gz deleted file mode 100644 index ec7258bba8..0000000000 Binary files a/_darcs/patches/20081124033659-099f7-65aea696c71be9bcc71b0b507d14fd2a645608b2.gz and /dev/null differ diff --git a/_darcs/patches/20081124034952-84dde-e059f0800780de879ffa922e5ce379682a4f275a.gz b/_darcs/patches/20081124034952-84dde-e059f0800780de879ffa922e5ce379682a4f275a.gz deleted file mode 100644 index 16ecf6e995..0000000000 Binary files a/_darcs/patches/20081124034952-84dde-e059f0800780de879ffa922e5ce379682a4f275a.gz and /dev/null differ diff --git a/_darcs/patches/20081124035814-84dde-a0ccc1b19cd1dc1d3fed16d2dbe3ac712a0a986b.gz b/_darcs/patches/20081124035814-84dde-a0ccc1b19cd1dc1d3fed16d2dbe3ac712a0a986b.gz deleted file mode 100644 index 71862a22ff..0000000000 Binary files a/_darcs/patches/20081124035814-84dde-a0ccc1b19cd1dc1d3fed16d2dbe3ac712a0a986b.gz and /dev/null differ diff --git a/_darcs/patches/20081124040224-84dde-ca5e732949bf2f837b4d99f7fe705f0fd74b9a48.gz b/_darcs/patches/20081124040224-84dde-ca5e732949bf2f837b4d99f7fe705f0fd74b9a48.gz deleted file mode 100644 index d1425f968b..0000000000 Binary files a/_darcs/patches/20081124040224-84dde-ca5e732949bf2f837b4d99f7fe705f0fd74b9a48.gz and /dev/null differ diff --git a/_darcs/patches/20081124041832-7b5ce-5b127b4a2c556d5083f0030341556478cc8fb875.gz b/_darcs/patches/20081124041832-7b5ce-5b127b4a2c556d5083f0030341556478cc8fb875.gz deleted file mode 100644 index d00238eaba..0000000000 Binary files a/_darcs/patches/20081124041832-7b5ce-5b127b4a2c556d5083f0030341556478cc8fb875.gz and /dev/null differ diff --git a/_darcs/patches/20081124043723-84dde-289b6415c59eb6955d0a8d3c74bbbdb225b01a02.gz b/_darcs/patches/20081124043723-84dde-289b6415c59eb6955d0a8d3c74bbbdb225b01a02.gz deleted file mode 100644 index 45f7eeee35..0000000000 Binary files a/_darcs/patches/20081124043723-84dde-289b6415c59eb6955d0a8d3c74bbbdb225b01a02.gz and /dev/null differ diff --git a/_darcs/patches/20081124044435-099f7-9d7413f0eb27d20dc1bbf912ffd9eccaec17422a.gz b/_darcs/patches/20081124044435-099f7-9d7413f0eb27d20dc1bbf912ffd9eccaec17422a.gz deleted file mode 100644 index 10b1ae5970..0000000000 Binary files a/_darcs/patches/20081124044435-099f7-9d7413f0eb27d20dc1bbf912ffd9eccaec17422a.gz and /dev/null differ diff --git a/_darcs/patches/20081124045319-eefa4-58036c236467323d7437ad7d88ce7b7b0552d266.gz b/_darcs/patches/20081124045319-eefa4-58036c236467323d7437ad7d88ce7b7b0552d266.gz deleted file mode 100644 index 14e94e400b..0000000000 Binary files a/_darcs/patches/20081124045319-eefa4-58036c236467323d7437ad7d88ce7b7b0552d266.gz and /dev/null differ diff --git a/_darcs/patches/20081124045924-5ed1f-2a8c374362334914fe37aad1fc8be2a661d54675.gz b/_darcs/patches/20081124045924-5ed1f-2a8c374362334914fe37aad1fc8be2a661d54675.gz deleted file mode 100644 index 5df3e9228e..0000000000 Binary files a/_darcs/patches/20081124045924-5ed1f-2a8c374362334914fe37aad1fc8be2a661d54675.gz and /dev/null differ diff --git a/_darcs/patches/20081124050037-099f7-6a9675c51df88ee416f34b5c93ba4568462dd99f.gz b/_darcs/patches/20081124050037-099f7-6a9675c51df88ee416f34b5c93ba4568462dd99f.gz deleted file mode 100644 index 2a2278c549..0000000000 Binary files a/_darcs/patches/20081124050037-099f7-6a9675c51df88ee416f34b5c93ba4568462dd99f.gz and /dev/null differ diff --git a/_darcs/patches/20081124050556-099f7-3f0df19cfc3ecbf128cfff6db6f364110eff61d9.gz b/_darcs/patches/20081124050556-099f7-3f0df19cfc3ecbf128cfff6db6f364110eff61d9.gz deleted file mode 100644 index 9d07975bb7..0000000000 Binary files a/_darcs/patches/20081124050556-099f7-3f0df19cfc3ecbf128cfff6db6f364110eff61d9.gz and /dev/null differ diff --git a/_darcs/patches/20081124051429-5ed1f-f47de55517ac9762ad6f1b7520c758359b0958bc.gz b/_darcs/patches/20081124051429-5ed1f-f47de55517ac9762ad6f1b7520c758359b0958bc.gz deleted file mode 100644 index fff4242d3a..0000000000 Binary files a/_darcs/patches/20081124051429-5ed1f-f47de55517ac9762ad6f1b7520c758359b0958bc.gz and /dev/null differ diff --git a/_darcs/patches/20081124052230-eefa4-0b17fc8872d7f4cc765fc4f3fd6abd3288120c08.gz b/_darcs/patches/20081124052230-eefa4-0b17fc8872d7f4cc765fc4f3fd6abd3288120c08.gz deleted file mode 100644 index 6625f7179b..0000000000 Binary files a/_darcs/patches/20081124052230-eefa4-0b17fc8872d7f4cc765fc4f3fd6abd3288120c08.gz and /dev/null differ diff --git a/_darcs/patches/20081124052250-5ed1f-158956ba8a735e5bfe4f7199c17596e13357cf5f.gz b/_darcs/patches/20081124052250-5ed1f-158956ba8a735e5bfe4f7199c17596e13357cf5f.gz deleted file mode 100644 index b2ef51d269..0000000000 Binary files a/_darcs/patches/20081124052250-5ed1f-158956ba8a735e5bfe4f7199c17596e13357cf5f.gz and /dev/null differ diff --git a/_darcs/patches/20081124052429-5ed1f-0244f7dce1285a57198d87c6b11d906968193d64.gz b/_darcs/patches/20081124052429-5ed1f-0244f7dce1285a57198d87c6b11d906968193d64.gz deleted file mode 100644 index 63bed6c390..0000000000 Binary files a/_darcs/patches/20081124052429-5ed1f-0244f7dce1285a57198d87c6b11d906968193d64.gz and /dev/null differ diff --git a/_darcs/patches/20081124053237-5ed1f-aa6deee920c77d0084373ecb9605b6370139284b.gz b/_darcs/patches/20081124053237-5ed1f-aa6deee920c77d0084373ecb9605b6370139284b.gz deleted file mode 100644 index e3e754d562..0000000000 Binary files a/_darcs/patches/20081124053237-5ed1f-aa6deee920c77d0084373ecb9605b6370139284b.gz and /dev/null differ diff --git a/_darcs/patches/20081124053335-34904-1e8a1fe43c30f5b9c13bf58654f1af5f894d1501.gz b/_darcs/patches/20081124053335-34904-1e8a1fe43c30f5b9c13bf58654f1af5f894d1501.gz deleted file mode 100644 index 042dbc7c31..0000000000 Binary files a/_darcs/patches/20081124053335-34904-1e8a1fe43c30f5b9c13bf58654f1af5f894d1501.gz and /dev/null differ diff --git a/_darcs/patches/20081124053341-099f7-46d7061034668e06e13626cada88a1a6ac87e163.gz b/_darcs/patches/20081124053341-099f7-46d7061034668e06e13626cada88a1a6ac87e163.gz deleted file mode 100644 index 86005f5b6f..0000000000 Binary files a/_darcs/patches/20081124053341-099f7-46d7061034668e06e13626cada88a1a6ac87e163.gz and /dev/null differ diff --git a/_darcs/patches/20081124150638-5ed1f-994af62567660c7f09985bf449a344df104548eb.gz b/_darcs/patches/20081124150638-5ed1f-994af62567660c7f09985bf449a344df104548eb.gz deleted file mode 100644 index 5d43da5772..0000000000 Binary files a/_darcs/patches/20081124150638-5ed1f-994af62567660c7f09985bf449a344df104548eb.gz and /dev/null differ diff --git a/_darcs/patches/20081124183054-5ed1f-653824bb6345aecfe5dbc6d3e3b8ad0df9194b42.gz b/_darcs/patches/20081124183054-5ed1f-653824bb6345aecfe5dbc6d3e3b8ad0df9194b42.gz deleted file mode 100644 index ca136e5a69..0000000000 Binary files a/_darcs/patches/20081124183054-5ed1f-653824bb6345aecfe5dbc6d3e3b8ad0df9194b42.gz and /dev/null differ diff --git a/_darcs/patches/20081124223533-5ed1f-1ae78e694043cef14d528dcd4201301eec8ad61b.gz b/_darcs/patches/20081124223533-5ed1f-1ae78e694043cef14d528dcd4201301eec8ad61b.gz deleted file mode 100644 index e08c392923..0000000000 Binary files a/_darcs/patches/20081124223533-5ed1f-1ae78e694043cef14d528dcd4201301eec8ad61b.gz and /dev/null differ diff --git a/_darcs/patches/20081124223733-5ed1f-48a17c80c49f5d35b1f45b113b863913cdd703ae.gz b/_darcs/patches/20081124223733-5ed1f-48a17c80c49f5d35b1f45b113b863913cdd703ae.gz deleted file mode 100644 index 1bf814d6c9..0000000000 Binary files a/_darcs/patches/20081124223733-5ed1f-48a17c80c49f5d35b1f45b113b863913cdd703ae.gz and /dev/null differ diff --git a/_darcs/patches/20081124223848-5ed1f-754db592b88dfc577370c77415ae1c96e09a188a.gz b/_darcs/patches/20081124223848-5ed1f-754db592b88dfc577370c77415ae1c96e09a188a.gz deleted file mode 100644 index 669320a945..0000000000 Binary files a/_darcs/patches/20081124223848-5ed1f-754db592b88dfc577370c77415ae1c96e09a188a.gz and /dev/null differ diff --git a/_darcs/patches/20081124234115-5ed1f-4a136027fddd625c39f14b5ec2e3e9d0fd0a6b3b.gz b/_darcs/patches/20081124234115-5ed1f-4a136027fddd625c39f14b5ec2e3e9d0fd0a6b3b.gz deleted file mode 100644 index 031adca6df..0000000000 Binary files a/_darcs/patches/20081124234115-5ed1f-4a136027fddd625c39f14b5ec2e3e9d0fd0a6b3b.gz and /dev/null differ diff --git a/_darcs/patches/20081125000556-5ed1f-d19f3a1e723695122a8e75fb881846bcbc48ebda.gz b/_darcs/patches/20081125000556-5ed1f-d19f3a1e723695122a8e75fb881846bcbc48ebda.gz deleted file mode 100644 index 09c1f00e89..0000000000 Binary files a/_darcs/patches/20081125000556-5ed1f-d19f3a1e723695122a8e75fb881846bcbc48ebda.gz and /dev/null differ diff --git a/_darcs/patches/20081125010332-099f7-f851f7c6217a1a2c65cd0f8ca28a9b6eb8c19764.gz b/_darcs/patches/20081125010332-099f7-f851f7c6217a1a2c65cd0f8ca28a9b6eb8c19764.gz deleted file mode 100644 index 11852117a8..0000000000 Binary files a/_darcs/patches/20081125010332-099f7-f851f7c6217a1a2c65cd0f8ca28a9b6eb8c19764.gz and /dev/null differ diff --git a/_darcs/patches/20081125010516-099f7-626c76d9f09efee56a713518a32b0f8e89670dd1.gz b/_darcs/patches/20081125010516-099f7-626c76d9f09efee56a713518a32b0f8e89670dd1.gz deleted file mode 100644 index 8f474f28f1..0000000000 Binary files a/_darcs/patches/20081125010516-099f7-626c76d9f09efee56a713518a32b0f8e89670dd1.gz and /dev/null differ diff --git a/_darcs/patches/20081126182317-eefa4-837600d917ec3fbe4c806fb2c5fad2daff0713cb.gz b/_darcs/patches/20081126182317-eefa4-837600d917ec3fbe4c806fb2c5fad2daff0713cb.gz deleted file mode 100644 index 6583ea2df4..0000000000 Binary files a/_darcs/patches/20081126182317-eefa4-837600d917ec3fbe4c806fb2c5fad2daff0713cb.gz and /dev/null differ diff --git a/_darcs/patches/20081127162551-5ed1f-7ccfe9c5d84149c5d5aa507e70d555003c200b39.gz b/_darcs/patches/20081127162551-5ed1f-7ccfe9c5d84149c5d5aa507e70d555003c200b39.gz deleted file mode 100644 index cf9aeaf363..0000000000 Binary files a/_darcs/patches/20081127162551-5ed1f-7ccfe9c5d84149c5d5aa507e70d555003c200b39.gz and /dev/null differ diff --git a/_darcs/patches/20081127162720-5ed1f-3962aa9b288ab8aedf81c2c7c743147f3cf3122b.gz b/_darcs/patches/20081127162720-5ed1f-3962aa9b288ab8aedf81c2c7c743147f3cf3122b.gz deleted file mode 100644 index 9a68a4e218..0000000000 Binary files a/_darcs/patches/20081127162720-5ed1f-3962aa9b288ab8aedf81c2c7c743147f3cf3122b.gz and /dev/null differ diff --git a/_darcs/patches/20081127162805-5ed1f-0342777b88a70a734c4cdd35cbece8c37d83407a.gz b/_darcs/patches/20081127162805-5ed1f-0342777b88a70a734c4cdd35cbece8c37d83407a.gz deleted file mode 100644 index d44e31e899..0000000000 Binary files a/_darcs/patches/20081127162805-5ed1f-0342777b88a70a734c4cdd35cbece8c37d83407a.gz and /dev/null differ diff --git a/_darcs/patches/20081128200004-099f7-085c833e3e34b2a13b5b3ec3b1316e7948ff196f.gz b/_darcs/patches/20081128200004-099f7-085c833e3e34b2a13b5b3ec3b1316e7948ff196f.gz deleted file mode 100644 index 36c29e98da..0000000000 Binary files a/_darcs/patches/20081128200004-099f7-085c833e3e34b2a13b5b3ec3b1316e7948ff196f.gz and /dev/null differ diff --git a/_darcs/patches/20081128210114-099f7-4e4cde0a983c2ac6d41efb59b46cb7dbf45dc7a6.gz b/_darcs/patches/20081128210114-099f7-4e4cde0a983c2ac6d41efb59b46cb7dbf45dc7a6.gz deleted file mode 100644 index 291c01d592..0000000000 Binary files a/_darcs/patches/20081128210114-099f7-4e4cde0a983c2ac6d41efb59b46cb7dbf45dc7a6.gz and /dev/null differ diff --git a/_darcs/patches/20081128223646-099f7-79b7c961b4494ff7430bd3c0a0f4742888098ede.gz b/_darcs/patches/20081128223646-099f7-79b7c961b4494ff7430bd3c0a0f4742888098ede.gz deleted file mode 100644 index 225dc2d4a4..0000000000 Binary files a/_darcs/patches/20081128223646-099f7-79b7c961b4494ff7430bd3c0a0f4742888098ede.gz and /dev/null differ diff --git a/_darcs/patches/20081129012446-099f7-e2d0398dc22fc3e83398920f46da6cf1691544b3.gz b/_darcs/patches/20081129012446-099f7-e2d0398dc22fc3e83398920f46da6cf1691544b3.gz deleted file mode 100644 index 5edc05af6c..0000000000 Binary files a/_darcs/patches/20081129012446-099f7-e2d0398dc22fc3e83398920f46da6cf1691544b3.gz and /dev/null differ diff --git a/_darcs/patches/20081129233637-5ed1f-2f428e859daebe6e1e68a9ce2c5fa7f5de12d2fb.gz b/_darcs/patches/20081129233637-5ed1f-2f428e859daebe6e1e68a9ce2c5fa7f5de12d2fb.gz deleted file mode 100644 index 2b48e6dd53..0000000000 Binary files a/_darcs/patches/20081129233637-5ed1f-2f428e859daebe6e1e68a9ce2c5fa7f5de12d2fb.gz and /dev/null differ diff --git a/_darcs/patches/20081130213755-5ed1f-bfece58a97ae85f959eb27a38d9bbb622e178793.gz b/_darcs/patches/20081130213755-5ed1f-bfece58a97ae85f959eb27a38d9bbb622e178793.gz deleted file mode 100644 index 2b54a4be7f..0000000000 Binary files a/_darcs/patches/20081130213755-5ed1f-bfece58a97ae85f959eb27a38d9bbb622e178793.gz and /dev/null differ diff --git a/_darcs/patches/20081130231627-5ed1f-7ee35664bf6cf3a35157bd861016a1210dfca79c.gz b/_darcs/patches/20081130231627-5ed1f-7ee35664bf6cf3a35157bd861016a1210dfca79c.gz deleted file mode 100644 index edf7d9950c..0000000000 Binary files a/_darcs/patches/20081130231627-5ed1f-7ee35664bf6cf3a35157bd861016a1210dfca79c.gz and /dev/null differ diff --git a/_darcs/patches/20081201175028-eefa4-f67a2bd15bf052d62c36b1ff666f37ca98983f31.gz b/_darcs/patches/20081201175028-eefa4-f67a2bd15bf052d62c36b1ff666f37ca98983f31.gz deleted file mode 100644 index e325013e45..0000000000 Binary files a/_darcs/patches/20081201175028-eefa4-f67a2bd15bf052d62c36b1ff666f37ca98983f31.gz and /dev/null differ diff --git a/_darcs/patches/20081202034736-5ed1f-e096ab5e9a77d2bb74c949659966d400cbc9a149.gz b/_darcs/patches/20081202034736-5ed1f-e096ab5e9a77d2bb74c949659966d400cbc9a149.gz deleted file mode 100644 index d98b9ed69a..0000000000 Binary files a/_darcs/patches/20081202034736-5ed1f-e096ab5e9a77d2bb74c949659966d400cbc9a149.gz and /dev/null differ diff --git a/_darcs/patches/20081202040549-5ed1f-b23a6b80b6e1823a97a7b446d9c4e59f8744b904.gz b/_darcs/patches/20081202040549-5ed1f-b23a6b80b6e1823a97a7b446d9c4e59f8744b904.gz deleted file mode 100644 index 8f0129a276..0000000000 Binary files a/_darcs/patches/20081202040549-5ed1f-b23a6b80b6e1823a97a7b446d9c4e59f8744b904.gz and /dev/null differ diff --git a/_darcs/patches/20081202041243-5ed1f-7f30aeaa43160bddacc7d5300627964417aff3ec.gz b/_darcs/patches/20081202041243-5ed1f-7f30aeaa43160bddacc7d5300627964417aff3ec.gz deleted file mode 100644 index 81b44b445c..0000000000 Binary files a/_darcs/patches/20081202041243-5ed1f-7f30aeaa43160bddacc7d5300627964417aff3ec.gz and /dev/null differ diff --git a/_darcs/patches/20081202041508-5ed1f-d54be6a7ec9aedebf10b813ee7e102c0c053f6cf.gz b/_darcs/patches/20081202041508-5ed1f-d54be6a7ec9aedebf10b813ee7e102c0c053f6cf.gz deleted file mode 100644 index a098961a7a..0000000000 Binary files a/_darcs/patches/20081202041508-5ed1f-d54be6a7ec9aedebf10b813ee7e102c0c053f6cf.gz and /dev/null differ diff --git a/_darcs/patches/20081202041532-5ed1f-8c392967eb14d726bc1b761a39c6dce0097879c0.gz b/_darcs/patches/20081202041532-5ed1f-8c392967eb14d726bc1b761a39c6dce0097879c0.gz deleted file mode 100644 index e8dea14984..0000000000 Binary files a/_darcs/patches/20081202041532-5ed1f-8c392967eb14d726bc1b761a39c6dce0097879c0.gz and /dev/null differ diff --git a/_darcs/patches/20081202042159-5ed1f-16cbaa0253b6b60033bf842dff88b097a41ea328.gz b/_darcs/patches/20081202042159-5ed1f-16cbaa0253b6b60033bf842dff88b097a41ea328.gz deleted file mode 100644 index 7e13727842..0000000000 Binary files a/_darcs/patches/20081202042159-5ed1f-16cbaa0253b6b60033bf842dff88b097a41ea328.gz and /dev/null differ diff --git a/_darcs/patches/20081202042334-5ed1f-47957bc0ad54d0250a0638b4e6e5a200dac1d335.gz b/_darcs/patches/20081202042334-5ed1f-47957bc0ad54d0250a0638b4e6e5a200dac1d335.gz deleted file mode 100644 index 59e9ac6905..0000000000 Binary files a/_darcs/patches/20081202042334-5ed1f-47957bc0ad54d0250a0638b4e6e5a200dac1d335.gz and /dev/null differ diff --git a/_darcs/patches/20081202044211-5ed1f-d8779be7681fc21eebff3c0c56fdde892c2fa3da.gz b/_darcs/patches/20081202044211-5ed1f-d8779be7681fc21eebff3c0c56fdde892c2fa3da.gz deleted file mode 100644 index e50980cf15..0000000000 Binary files a/_darcs/patches/20081202044211-5ed1f-d8779be7681fc21eebff3c0c56fdde892c2fa3da.gz and /dev/null differ diff --git a/_darcs/patches/20081202044441-5ed1f-63025fde108bff917253995f448f841160c8e394.gz b/_darcs/patches/20081202044441-5ed1f-63025fde108bff917253995f448f841160c8e394.gz deleted file mode 100644 index 0c1caa129d..0000000000 Binary files a/_darcs/patches/20081202044441-5ed1f-63025fde108bff917253995f448f841160c8e394.gz and /dev/null differ diff --git a/_darcs/patches/20081202045021-5ed1f-ca0f14051507602bab8898e1e99d9cdb69f2eadc.gz b/_darcs/patches/20081202045021-5ed1f-ca0f14051507602bab8898e1e99d9cdb69f2eadc.gz deleted file mode 100644 index 9a2e5699c6..0000000000 Binary files a/_darcs/patches/20081202045021-5ed1f-ca0f14051507602bab8898e1e99d9cdb69f2eadc.gz and /dev/null differ diff --git a/_darcs/patches/20081202045320-5ed1f-583091191425d10b695107ddc2e1a5e72b60130d.gz b/_darcs/patches/20081202045320-5ed1f-583091191425d10b695107ddc2e1a5e72b60130d.gz deleted file mode 100644 index ca8ad4f8f4..0000000000 Binary files a/_darcs/patches/20081202045320-5ed1f-583091191425d10b695107ddc2e1a5e72b60130d.gz and /dev/null differ diff --git a/_darcs/patches/20081202045544-5ed1f-ac8df1a1c8ae9b2cd72e952144a8c2cb001868c4.gz b/_darcs/patches/20081202045544-5ed1f-ac8df1a1c8ae9b2cd72e952144a8c2cb001868c4.gz deleted file mode 100644 index ee795cceef..0000000000 Binary files a/_darcs/patches/20081202045544-5ed1f-ac8df1a1c8ae9b2cd72e952144a8c2cb001868c4.gz and /dev/null differ diff --git a/_darcs/patches/20081202045825-5ed1f-5bbbf3954610442bdd123f720b1c85ec85c4449e.gz b/_darcs/patches/20081202045825-5ed1f-5bbbf3954610442bdd123f720b1c85ec85c4449e.gz deleted file mode 100644 index 6ba74ba184..0000000000 Binary files a/_darcs/patches/20081202045825-5ed1f-5bbbf3954610442bdd123f720b1c85ec85c4449e.gz and /dev/null differ diff --git a/_darcs/patches/20081202045856-5ed1f-3b14fafd709eb5f4e1c4ea74bce067a1429f03d7.gz b/_darcs/patches/20081202045856-5ed1f-3b14fafd709eb5f4e1c4ea74bce067a1429f03d7.gz deleted file mode 100644 index 683754bdc3..0000000000 Binary files a/_darcs/patches/20081202045856-5ed1f-3b14fafd709eb5f4e1c4ea74bce067a1429f03d7.gz and /dev/null differ diff --git a/_darcs/patches/20081202050200-5ed1f-1ba5a3573e2276eac22a018ce26cc76b1ed7275f.gz b/_darcs/patches/20081202050200-5ed1f-1ba5a3573e2276eac22a018ce26cc76b1ed7275f.gz deleted file mode 100644 index f68b0f909b..0000000000 Binary files a/_darcs/patches/20081202050200-5ed1f-1ba5a3573e2276eac22a018ce26cc76b1ed7275f.gz and /dev/null differ diff --git a/_darcs/patches/20081202184258-5ed1f-cd87ea5c528ea0c90cb31eeb59d4d1ba4f85e9ad.gz b/_darcs/patches/20081202184258-5ed1f-cd87ea5c528ea0c90cb31eeb59d4d1ba4f85e9ad.gz deleted file mode 100644 index 4870e9587c..0000000000 Binary files a/_darcs/patches/20081202184258-5ed1f-cd87ea5c528ea0c90cb31eeb59d4d1ba4f85e9ad.gz and /dev/null differ diff --git a/_darcs/patches/20081202185343-5ed1f-99c314aac9e59ddbddd59ee403d4111c3639aa98.gz b/_darcs/patches/20081202185343-5ed1f-99c314aac9e59ddbddd59ee403d4111c3639aa98.gz deleted file mode 100644 index 7eee105f19..0000000000 Binary files a/_darcs/patches/20081202185343-5ed1f-99c314aac9e59ddbddd59ee403d4111c3639aa98.gz and /dev/null differ diff --git a/_darcs/patches/20081202185444-5ed1f-a84761dfb4ffb40d6e90c79d92dcd4b029745300.gz b/_darcs/patches/20081202185444-5ed1f-a84761dfb4ffb40d6e90c79d92dcd4b029745300.gz deleted file mode 100644 index 28356607b6..0000000000 Binary files a/_darcs/patches/20081202185444-5ed1f-a84761dfb4ffb40d6e90c79d92dcd4b029745300.gz and /dev/null differ diff --git a/_darcs/patches/20081202193857-5ed1f-1705c3f615b96790dcae30ec240c25721ea443cc.gz b/_darcs/patches/20081202193857-5ed1f-1705c3f615b96790dcae30ec240c25721ea443cc.gz deleted file mode 100644 index 01b8f4255b..0000000000 Binary files a/_darcs/patches/20081202193857-5ed1f-1705c3f615b96790dcae30ec240c25721ea443cc.gz and /dev/null differ diff --git a/_darcs/patches/20081202194027-5ed1f-5ebbc762496b6f6675a98271acbdd1851439471b.gz b/_darcs/patches/20081202194027-5ed1f-5ebbc762496b6f6675a98271acbdd1851439471b.gz deleted file mode 100644 index e9b76a5259..0000000000 Binary files a/_darcs/patches/20081202194027-5ed1f-5ebbc762496b6f6675a98271acbdd1851439471b.gz and /dev/null differ diff --git a/_darcs/patches/20081202194043-5ed1f-35ee3a57c08febe282082d829063489b51a8fb96.gz b/_darcs/patches/20081202194043-5ed1f-35ee3a57c08febe282082d829063489b51a8fb96.gz deleted file mode 100644 index 2487fc0b8b..0000000000 Binary files a/_darcs/patches/20081202194043-5ed1f-35ee3a57c08febe282082d829063489b51a8fb96.gz and /dev/null differ diff --git a/_darcs/patches/20081202194633-5ed1f-ebf0c5f54f4080dc70489d58777ad66d4f1b9bc8.gz b/_darcs/patches/20081202194633-5ed1f-ebf0c5f54f4080dc70489d58777ad66d4f1b9bc8.gz deleted file mode 100644 index 96f45461b7..0000000000 Binary files a/_darcs/patches/20081202194633-5ed1f-ebf0c5f54f4080dc70489d58777ad66d4f1b9bc8.gz and /dev/null differ diff --git a/_darcs/patches/20081202194816-5ed1f-93a18c7b978950a770b833e7dea9e1fd5bb71de8.gz b/_darcs/patches/20081202194816-5ed1f-93a18c7b978950a770b833e7dea9e1fd5bb71de8.gz deleted file mode 100644 index 9e4a8e60a6..0000000000 Binary files a/_darcs/patches/20081202194816-5ed1f-93a18c7b978950a770b833e7dea9e1fd5bb71de8.gz and /dev/null differ diff --git a/_darcs/patches/20081203032632-5ed1f-2213efd018913e3253082dbe83d7b906c4f0ff76.gz b/_darcs/patches/20081203032632-5ed1f-2213efd018913e3253082dbe83d7b906c4f0ff76.gz deleted file mode 100644 index 441de16a82..0000000000 Binary files a/_darcs/patches/20081203032632-5ed1f-2213efd018913e3253082dbe83d7b906c4f0ff76.gz and /dev/null differ diff --git a/_darcs/patches/20081203032650-5ed1f-1f9affd557cf958cdfe7ed224433199b22e1c56a.gz b/_darcs/patches/20081203032650-5ed1f-1f9affd557cf958cdfe7ed224433199b22e1c56a.gz deleted file mode 100644 index cd5dc63340..0000000000 Binary files a/_darcs/patches/20081203032650-5ed1f-1f9affd557cf958cdfe7ed224433199b22e1c56a.gz and /dev/null differ diff --git a/_darcs/patches/20081203032705-5ed1f-c425d8aef897b4223db3f2cb0250ed6fbe816f67.gz b/_darcs/patches/20081203032705-5ed1f-c425d8aef897b4223db3f2cb0250ed6fbe816f67.gz deleted file mode 100644 index f58dd02f64..0000000000 Binary files a/_darcs/patches/20081203032705-5ed1f-c425d8aef897b4223db3f2cb0250ed6fbe816f67.gz and /dev/null differ diff --git a/_darcs/patches/20081203032743-5ed1f-87f9b170e87d5e010564b6f3c6dc7b3ca2b9c719.gz b/_darcs/patches/20081203032743-5ed1f-87f9b170e87d5e010564b6f3c6dc7b3ca2b9c719.gz deleted file mode 100644 index 104f295f87..0000000000 Binary files a/_darcs/patches/20081203032743-5ed1f-87f9b170e87d5e010564b6f3c6dc7b3ca2b9c719.gz and /dev/null differ diff --git a/_darcs/patches/20081203035947-84dde-68ce5b3ba2b49bd76e9ef8572cea7857cd05a659.gz b/_darcs/patches/20081203035947-84dde-68ce5b3ba2b49bd76e9ef8572cea7857cd05a659.gz deleted file mode 100644 index e658350020..0000000000 Binary files a/_darcs/patches/20081203035947-84dde-68ce5b3ba2b49bd76e9ef8572cea7857cd05a659.gz and /dev/null differ diff --git a/_darcs/patches/20081203041730-5ed1f-1e1910cec75546291b14386d91f3bd22ae06b750.gz b/_darcs/patches/20081203041730-5ed1f-1e1910cec75546291b14386d91f3bd22ae06b750.gz deleted file mode 100644 index f116a16429..0000000000 Binary files a/_darcs/patches/20081203041730-5ed1f-1e1910cec75546291b14386d91f3bd22ae06b750.gz and /dev/null differ diff --git a/_darcs/patches/20081203164942-099f7-ea511948139c9c18b1c8b7de018aa4f0ee5ff624.gz b/_darcs/patches/20081203164942-099f7-ea511948139c9c18b1c8b7de018aa4f0ee5ff624.gz deleted file mode 100644 index d9ec005626..0000000000 Binary files a/_darcs/patches/20081203164942-099f7-ea511948139c9c18b1c8b7de018aa4f0ee5ff624.gz and /dev/null differ diff --git a/_darcs/patches/20081203172856-5ed1f-78a27cd47a2b5733bd55d0acfd7c399c5818ba08.gz b/_darcs/patches/20081203172856-5ed1f-78a27cd47a2b5733bd55d0acfd7c399c5818ba08.gz deleted file mode 100644 index 2ad1f6d986..0000000000 Binary files a/_darcs/patches/20081203172856-5ed1f-78a27cd47a2b5733bd55d0acfd7c399c5818ba08.gz and /dev/null differ diff --git a/_darcs/patches/20081203173225-5ed1f-e5ebfb202ed4a84c90851d0faa025ad09774d2c3.gz b/_darcs/patches/20081203173225-5ed1f-e5ebfb202ed4a84c90851d0faa025ad09774d2c3.gz deleted file mode 100644 index e2e941d67c..0000000000 Binary files a/_darcs/patches/20081203173225-5ed1f-e5ebfb202ed4a84c90851d0faa025ad09774d2c3.gz and /dev/null differ diff --git a/_darcs/patches/20081203173423-5ed1f-95de0f98aba4be527cd59d7297bc4f7b712713bd.gz b/_darcs/patches/20081203173423-5ed1f-95de0f98aba4be527cd59d7297bc4f7b712713bd.gz deleted file mode 100644 index 174d1d1af3..0000000000 Binary files a/_darcs/patches/20081203173423-5ed1f-95de0f98aba4be527cd59d7297bc4f7b712713bd.gz and /dev/null differ diff --git a/_darcs/patches/20081203174646-5ed1f-8f9f050a7e8c217872c283f299d790252c205920.gz b/_darcs/patches/20081203174646-5ed1f-8f9f050a7e8c217872c283f299d790252c205920.gz deleted file mode 100644 index 1050226c75..0000000000 Binary files a/_darcs/patches/20081203174646-5ed1f-8f9f050a7e8c217872c283f299d790252c205920.gz and /dev/null differ diff --git a/_darcs/patches/20081203180945-5ed1f-747b3c0e00ced81c02953e1095a9b866a7876c43.gz b/_darcs/patches/20081203180945-5ed1f-747b3c0e00ced81c02953e1095a9b866a7876c43.gz deleted file mode 100644 index d9f6f9cdd1..0000000000 Binary files a/_darcs/patches/20081203180945-5ed1f-747b3c0e00ced81c02953e1095a9b866a7876c43.gz and /dev/null differ diff --git a/_darcs/patches/20081203182421-5ed1f-9a8569a5b38ca15c7ae83438a59a05f8b07215bd.gz b/_darcs/patches/20081203182421-5ed1f-9a8569a5b38ca15c7ae83438a59a05f8b07215bd.gz deleted file mode 100644 index 8146a089e3..0000000000 Binary files a/_darcs/patches/20081203182421-5ed1f-9a8569a5b38ca15c7ae83438a59a05f8b07215bd.gz and /dev/null differ diff --git a/_darcs/patches/20081203182830-5ed1f-ad1c3c585984cb4e27b078964d6f96bd7d8e05d8.gz b/_darcs/patches/20081203182830-5ed1f-ad1c3c585984cb4e27b078964d6f96bd7d8e05d8.gz deleted file mode 100644 index 1e332c2292..0000000000 Binary files a/_darcs/patches/20081203182830-5ed1f-ad1c3c585984cb4e27b078964d6f96bd7d8e05d8.gz and /dev/null differ diff --git a/_darcs/patches/20081203183432-5ed1f-7626661b797f64594f990ee06d9e13b73b265b49.gz b/_darcs/patches/20081203183432-5ed1f-7626661b797f64594f990ee06d9e13b73b265b49.gz deleted file mode 100644 index 813d14723e..0000000000 Binary files a/_darcs/patches/20081203183432-5ed1f-7626661b797f64594f990ee06d9e13b73b265b49.gz and /dev/null differ diff --git a/_darcs/patches/20081203183638-5ed1f-f54d43e62dca66d9ebbd1203549e63c165510b22.gz b/_darcs/patches/20081203183638-5ed1f-f54d43e62dca66d9ebbd1203549e63c165510b22.gz deleted file mode 100644 index f3c384477b..0000000000 Binary files a/_darcs/patches/20081203183638-5ed1f-f54d43e62dca66d9ebbd1203549e63c165510b22.gz and /dev/null differ diff --git a/_darcs/patches/20081203184254-5ed1f-844aa013d72f5100ea5f100b252321760121cb17.gz b/_darcs/patches/20081203184254-5ed1f-844aa013d72f5100ea5f100b252321760121cb17.gz deleted file mode 100644 index 6a125820bf..0000000000 Binary files a/_darcs/patches/20081203184254-5ed1f-844aa013d72f5100ea5f100b252321760121cb17.gz and /dev/null differ diff --git a/_darcs/patches/20081203184748-5ed1f-b3c3236d17457a112db53595d64c5a41e9a9d2a2.gz b/_darcs/patches/20081203184748-5ed1f-b3c3236d17457a112db53595d64c5a41e9a9d2a2.gz deleted file mode 100644 index 18339e9b88..0000000000 Binary files a/_darcs/patches/20081203184748-5ed1f-b3c3236d17457a112db53595d64c5a41e9a9d2a2.gz and /dev/null differ diff --git a/_darcs/patches/20081203185022-5ed1f-a618527f069301c34b3fd6a75ae5676f45e64d39.gz b/_darcs/patches/20081203185022-5ed1f-a618527f069301c34b3fd6a75ae5676f45e64d39.gz deleted file mode 100644 index 3b94d515e6..0000000000 Binary files a/_darcs/patches/20081203185022-5ed1f-a618527f069301c34b3fd6a75ae5676f45e64d39.gz and /dev/null differ diff --git a/_darcs/patches/20081203185254-5ed1f-3dea8c6396ee3a05e2fff7ec02023f50c3d38515.gz b/_darcs/patches/20081203185254-5ed1f-3dea8c6396ee3a05e2fff7ec02023f50c3d38515.gz deleted file mode 100644 index fd972db652..0000000000 Binary files a/_darcs/patches/20081203185254-5ed1f-3dea8c6396ee3a05e2fff7ec02023f50c3d38515.gz and /dev/null differ diff --git a/_darcs/patches/20081203192658-099f7-37d26abf7409ab2996a22de4aa71cb7a5f68d205.gz b/_darcs/patches/20081203192658-099f7-37d26abf7409ab2996a22de4aa71cb7a5f68d205.gz deleted file mode 100644 index c07e9fcd89..0000000000 Binary files a/_darcs/patches/20081203192658-099f7-37d26abf7409ab2996a22de4aa71cb7a5f68d205.gz and /dev/null differ diff --git a/_darcs/patches/20081203210358-5ed1f-3ff0de9c00c72de6bde703b150b24597ff8fadf4.gz b/_darcs/patches/20081203210358-5ed1f-3ff0de9c00c72de6bde703b150b24597ff8fadf4.gz deleted file mode 100644 index a6660200b3..0000000000 Binary files a/_darcs/patches/20081203210358-5ed1f-3ff0de9c00c72de6bde703b150b24597ff8fadf4.gz and /dev/null differ diff --git a/_darcs/patches/20081203220637-eefa4-5a9db2b3b178c6a7e4edb43b72c392215ed3e004.gz b/_darcs/patches/20081203220637-eefa4-5a9db2b3b178c6a7e4edb43b72c392215ed3e004.gz deleted file mode 100644 index 966759909b..0000000000 Binary files a/_darcs/patches/20081203220637-eefa4-5a9db2b3b178c6a7e4edb43b72c392215ed3e004.gz and /dev/null differ diff --git a/_darcs/patches/20081203222619-5ed1f-b313092893c67a3ec1dc92a79aa7fed4ab583729.gz b/_darcs/patches/20081203222619-5ed1f-b313092893c67a3ec1dc92a79aa7fed4ab583729.gz deleted file mode 100644 index db6eab374c..0000000000 Binary files a/_darcs/patches/20081203222619-5ed1f-b313092893c67a3ec1dc92a79aa7fed4ab583729.gz and /dev/null differ diff --git a/_darcs/patches/20081203222819-5ed1f-49d1657730072be304ea6455ac96637ab47191f3.gz b/_darcs/patches/20081203222819-5ed1f-49d1657730072be304ea6455ac96637ab47191f3.gz deleted file mode 100644 index b6607cc0f2..0000000000 Binary files a/_darcs/patches/20081203222819-5ed1f-49d1657730072be304ea6455ac96637ab47191f3.gz and /dev/null differ diff --git a/_darcs/patches/20081204174754-5ed1f-dcce210332c55a544c35d535c3f3008aa8c165d3.gz b/_darcs/patches/20081204174754-5ed1f-dcce210332c55a544c35d535c3f3008aa8c165d3.gz deleted file mode 100644 index 0f976b8e0d..0000000000 Binary files a/_darcs/patches/20081204174754-5ed1f-dcce210332c55a544c35d535c3f3008aa8c165d3.gz and /dev/null differ diff --git a/_darcs/patches/20081204180233-099f7-7728ee57876b789278aa1cc35f54e0a422593e5d.gz b/_darcs/patches/20081204180233-099f7-7728ee57876b789278aa1cc35f54e0a422593e5d.gz deleted file mode 100644 index 8478be46af..0000000000 Binary files a/_darcs/patches/20081204180233-099f7-7728ee57876b789278aa1cc35f54e0a422593e5d.gz and /dev/null differ diff --git a/_darcs/patches/20081204182953-099f7-b47315607d937da4d648b200a733c715a97d9bc2.gz b/_darcs/patches/20081204182953-099f7-b47315607d937da4d648b200a733c715a97d9bc2.gz deleted file mode 100644 index 1f6579f1c2..0000000000 Binary files a/_darcs/patches/20081204182953-099f7-b47315607d937da4d648b200a733c715a97d9bc2.gz and /dev/null differ diff --git a/_darcs/patches/20081204203433-099f7-41be8f47b2a8e647414225f26318da005144006d.gz b/_darcs/patches/20081204203433-099f7-41be8f47b2a8e647414225f26318da005144006d.gz deleted file mode 100644 index 7d9da79523..0000000000 Binary files a/_darcs/patches/20081204203433-099f7-41be8f47b2a8e647414225f26318da005144006d.gz and /dev/null differ diff --git a/_darcs/patches/20081204212455-099f7-a3a325852f55b94e4b81c84dbb301ae2eebf48b4.gz b/_darcs/patches/20081204212455-099f7-a3a325852f55b94e4b81c84dbb301ae2eebf48b4.gz deleted file mode 100644 index 51405a3dae..0000000000 Binary files a/_darcs/patches/20081204212455-099f7-a3a325852f55b94e4b81c84dbb301ae2eebf48b4.gz and /dev/null differ diff --git a/_darcs/patches/20081204213414-099f7-631e8aecc8ce2d8725b93e23e15e6e97f06a6bac.gz b/_darcs/patches/20081204213414-099f7-631e8aecc8ce2d8725b93e23e15e6e97f06a6bac.gz deleted file mode 100644 index c357e17cc8..0000000000 Binary files a/_darcs/patches/20081204213414-099f7-631e8aecc8ce2d8725b93e23e15e6e97f06a6bac.gz and /dev/null differ diff --git a/_darcs/patches/20081205152445-84dde-62b3560fae1b1505528826e91939af89b8afd971.gz b/_darcs/patches/20081205152445-84dde-62b3560fae1b1505528826e91939af89b8afd971.gz deleted file mode 100644 index d3d72f99ba..0000000000 Binary files a/_darcs/patches/20081205152445-84dde-62b3560fae1b1505528826e91939af89b8afd971.gz and /dev/null differ diff --git a/_darcs/patches/20081205152521-84dde-6487a2769943da5dc70b9425d00c17d2c53270d0.gz b/_darcs/patches/20081205152521-84dde-6487a2769943da5dc70b9425d00c17d2c53270d0.gz deleted file mode 100644 index 05255a3f26..0000000000 Binary files a/_darcs/patches/20081205152521-84dde-6487a2769943da5dc70b9425d00c17d2c53270d0.gz and /dev/null differ diff --git a/_darcs/patches/20081205153325-5ed1f-f663ec459d8d5067505ff28be39dee8c382e5814.gz b/_darcs/patches/20081205153325-5ed1f-f663ec459d8d5067505ff28be39dee8c382e5814.gz deleted file mode 100644 index f26a005cc6..0000000000 Binary files a/_darcs/patches/20081205153325-5ed1f-f663ec459d8d5067505ff28be39dee8c382e5814.gz and /dev/null differ diff --git a/_darcs/patches/20081205160205-84dde-68363153ee7f4f75a7c25ca6546816b648406b8b.gz b/_darcs/patches/20081205160205-84dde-68363153ee7f4f75a7c25ca6546816b648406b8b.gz deleted file mode 100644 index ffe0712518..0000000000 Binary files a/_darcs/patches/20081205160205-84dde-68363153ee7f4f75a7c25ca6546816b648406b8b.gz and /dev/null differ diff --git a/_darcs/patches/20081205221402-eefa4-9c765fe3c7a6e0cf9cdee1749ed2bebb24d3deaf.gz b/_darcs/patches/20081205221402-eefa4-9c765fe3c7a6e0cf9cdee1749ed2bebb24d3deaf.gz deleted file mode 100644 index adcb29dd5e..0000000000 Binary files a/_darcs/patches/20081205221402-eefa4-9c765fe3c7a6e0cf9cdee1749ed2bebb24d3deaf.gz and /dev/null differ diff --git a/_darcs/patches/20081206030132-7b5ce-96c38ab67edd3d58f8722ef25852a6143f05a86b.gz b/_darcs/patches/20081206030132-7b5ce-96c38ab67edd3d58f8722ef25852a6143f05a86b.gz deleted file mode 100644 index dab820496f..0000000000 Binary files a/_darcs/patches/20081206030132-7b5ce-96c38ab67edd3d58f8722ef25852a6143f05a86b.gz and /dev/null differ diff --git a/_darcs/patches/20081207165900-84dde-23afe73c9c61cfb259ec5dc0cac5030643b31f2c.gz b/_darcs/patches/20081207165900-84dde-23afe73c9c61cfb259ec5dc0cac5030643b31f2c.gz deleted file mode 100644 index 6204ac38d5..0000000000 Binary files a/_darcs/patches/20081207165900-84dde-23afe73c9c61cfb259ec5dc0cac5030643b31f2c.gz and /dev/null differ diff --git a/_darcs/patches/20081207192917-84dde-6a24da9dae18bb003944d9044eaa2631bde07902.gz b/_darcs/patches/20081207192917-84dde-6a24da9dae18bb003944d9044eaa2631bde07902.gz deleted file mode 100644 index 669df9c9bd..0000000000 Binary files a/_darcs/patches/20081207192917-84dde-6a24da9dae18bb003944d9044eaa2631bde07902.gz and /dev/null differ diff --git a/_darcs/patches/20081207235925-7b5ce-224fd2482f66c2c9ac9da9ce72c1c0da0243bd83.gz b/_darcs/patches/20081207235925-7b5ce-224fd2482f66c2c9ac9da9ce72c1c0da0243bd83.gz deleted file mode 100644 index dc9aa5b8ab..0000000000 Binary files a/_darcs/patches/20081207235925-7b5ce-224fd2482f66c2c9ac9da9ce72c1c0da0243bd83.gz and /dev/null differ diff --git a/_darcs/patches/20081208005522-7b5ce-84325ed13fd5e59ac07640089806a507c7168170.gz b/_darcs/patches/20081208005522-7b5ce-84325ed13fd5e59ac07640089806a507c7168170.gz deleted file mode 100644 index 0452400ae2..0000000000 Binary files a/_darcs/patches/20081208005522-7b5ce-84325ed13fd5e59ac07640089806a507c7168170.gz and /dev/null differ diff --git a/_darcs/patches/20081208005816-7b5ce-b7ec90e310ddc609fe88d54cfac5ec7bc67da6ca.gz b/_darcs/patches/20081208005816-7b5ce-b7ec90e310ddc609fe88d54cfac5ec7bc67da6ca.gz deleted file mode 100644 index 2c090f5561..0000000000 Binary files a/_darcs/patches/20081208005816-7b5ce-b7ec90e310ddc609fe88d54cfac5ec7bc67da6ca.gz and /dev/null differ diff --git a/_darcs/patches/20081208015412-7b5ce-c899a3b743621f7d003b93f383b78a2c8ba9fb52.gz b/_darcs/patches/20081208015412-7b5ce-c899a3b743621f7d003b93f383b78a2c8ba9fb52.gz deleted file mode 100644 index c005e449e7..0000000000 Binary files a/_darcs/patches/20081208015412-7b5ce-c899a3b743621f7d003b93f383b78a2c8ba9fb52.gz and /dev/null differ diff --git a/_darcs/patches/20081208031008-5ed1f-c96006b5c05fa0e68f9adaacd0518016aedfee2a.gz b/_darcs/patches/20081208031008-5ed1f-c96006b5c05fa0e68f9adaacd0518016aedfee2a.gz deleted file mode 100644 index b910fd50a6..0000000000 Binary files a/_darcs/patches/20081208031008-5ed1f-c96006b5c05fa0e68f9adaacd0518016aedfee2a.gz and /dev/null differ diff --git a/_darcs/patches/20081208031312-5ed1f-b570b86b28e8eda763c51be1ae091034f76bd984.gz b/_darcs/patches/20081208031312-5ed1f-b570b86b28e8eda763c51be1ae091034f76bd984.gz deleted file mode 100644 index bd5024271d..0000000000 Binary files a/_darcs/patches/20081208031312-5ed1f-b570b86b28e8eda763c51be1ae091034f76bd984.gz and /dev/null differ diff --git a/_darcs/patches/20081208031408-5ed1f-dfdb46fbcf5390d890b4db47c64da0b70ace8096.gz b/_darcs/patches/20081208031408-5ed1f-dfdb46fbcf5390d890b4db47c64da0b70ace8096.gz deleted file mode 100644 index 1d0dd8fe9d..0000000000 Binary files a/_darcs/patches/20081208031408-5ed1f-dfdb46fbcf5390d890b4db47c64da0b70ace8096.gz and /dev/null differ diff --git a/_darcs/patches/20081208031532-5ed1f-6094c6425b73e45589de282fa482b912fb686fae.gz b/_darcs/patches/20081208031532-5ed1f-6094c6425b73e45589de282fa482b912fb686fae.gz deleted file mode 100644 index 853c78838a..0000000000 Binary files a/_darcs/patches/20081208031532-5ed1f-6094c6425b73e45589de282fa482b912fb686fae.gz and /dev/null differ diff --git a/_darcs/patches/20081208033132-5ed1f-ee93e5b26353c097ee1bdb8d3e4cedad5763548e.gz b/_darcs/patches/20081208033132-5ed1f-ee93e5b26353c097ee1bdb8d3e4cedad5763548e.gz deleted file mode 100644 index 6435fa1c1a..0000000000 Binary files a/_darcs/patches/20081208033132-5ed1f-ee93e5b26353c097ee1bdb8d3e4cedad5763548e.gz and /dev/null differ diff --git a/_darcs/patches/20081208051212-eefa4-13c2cc5bab8c8da38dff51bce7fe89c2debdb781.gz b/_darcs/patches/20081208051212-eefa4-13c2cc5bab8c8da38dff51bce7fe89c2debdb781.gz deleted file mode 100644 index 1a038decc4..0000000000 Binary files a/_darcs/patches/20081208051212-eefa4-13c2cc5bab8c8da38dff51bce7fe89c2debdb781.gz and /dev/null differ diff --git a/_darcs/patches/20081208051859-7b5ce-5d777044f81edd562a4fe825cfcc12233e2bc5dc.gz b/_darcs/patches/20081208051859-7b5ce-5d777044f81edd562a4fe825cfcc12233e2bc5dc.gz deleted file mode 100644 index c22798ef3e..0000000000 Binary files a/_darcs/patches/20081208051859-7b5ce-5d777044f81edd562a4fe825cfcc12233e2bc5dc.gz and /dev/null differ diff --git a/_darcs/patches/20081208053011-eefa4-aa5f115efa26653f1cd56101637cee40eedb27e7.gz b/_darcs/patches/20081208053011-eefa4-aa5f115efa26653f1cd56101637cee40eedb27e7.gz deleted file mode 100644 index 5fd358c5d0..0000000000 Binary files a/_darcs/patches/20081208053011-eefa4-aa5f115efa26653f1cd56101637cee40eedb27e7.gz and /dev/null differ diff --git a/_darcs/patches/20081208053543-84dde-039dcb947f0c6c2cd01ab7065b8c807000f59b3a.gz b/_darcs/patches/20081208053543-84dde-039dcb947f0c6c2cd01ab7065b8c807000f59b3a.gz deleted file mode 100644 index 22b7b17e7e..0000000000 Binary files a/_darcs/patches/20081208053543-84dde-039dcb947f0c6c2cd01ab7065b8c807000f59b3a.gz and /dev/null differ diff --git a/_darcs/patches/20081208055023-84dde-5ae95497ae63584f7b86e63eb62ed13607ee1ee8.gz b/_darcs/patches/20081208055023-84dde-5ae95497ae63584f7b86e63eb62ed13607ee1ee8.gz deleted file mode 100644 index 583dc3570f..0000000000 Binary files a/_darcs/patches/20081208055023-84dde-5ae95497ae63584f7b86e63eb62ed13607ee1ee8.gz and /dev/null differ diff --git a/_darcs/patches/20081208055511-5ed1f-e2e09986bd3b9cbb6a00a0c6b94f49ea78b7bdab.gz b/_darcs/patches/20081208055511-5ed1f-e2e09986bd3b9cbb6a00a0c6b94f49ea78b7bdab.gz deleted file mode 100644 index f0a1805fb5..0000000000 Binary files a/_darcs/patches/20081208055511-5ed1f-e2e09986bd3b9cbb6a00a0c6b94f49ea78b7bdab.gz and /dev/null differ diff --git a/_darcs/patches/20081208055812-eefa4-719bb1b630a7d0764b286d67488313627b5180c8.gz b/_darcs/patches/20081208055812-eefa4-719bb1b630a7d0764b286d67488313627b5180c8.gz deleted file mode 100644 index 5699f6dc6b..0000000000 Binary files a/_darcs/patches/20081208055812-eefa4-719bb1b630a7d0764b286d67488313627b5180c8.gz and /dev/null differ diff --git a/_darcs/patches/20081208062841-5ed1f-be70623070712b4877c8d2fd8aaadba33ebd2180.gz b/_darcs/patches/20081208062841-5ed1f-be70623070712b4877c8d2fd8aaadba33ebd2180.gz deleted file mode 100644 index d716ec518d..0000000000 Binary files a/_darcs/patches/20081208062841-5ed1f-be70623070712b4877c8d2fd8aaadba33ebd2180.gz and /dev/null differ diff --git a/_darcs/patches/20081208063056-5ed1f-ff1fdbc345395661c19699c6c76cc1d1f6ea8d25.gz b/_darcs/patches/20081208063056-5ed1f-ff1fdbc345395661c19699c6c76cc1d1f6ea8d25.gz deleted file mode 100644 index 4799fc8844..0000000000 Binary files a/_darcs/patches/20081208063056-5ed1f-ff1fdbc345395661c19699c6c76cc1d1f6ea8d25.gz and /dev/null differ diff --git a/_darcs/patches/20081208071521-5ed1f-1178a3c50f94c039d98112620e8bf78836e659bc.gz b/_darcs/patches/20081208071521-5ed1f-1178a3c50f94c039d98112620e8bf78836e659bc.gz deleted file mode 100644 index de3476151e..0000000000 Binary files a/_darcs/patches/20081208071521-5ed1f-1178a3c50f94c039d98112620e8bf78836e659bc.gz and /dev/null differ diff --git a/_darcs/patches/20081208071720-5ed1f-82ff38a26edc9254883bd22e055b7a883b07081c.gz b/_darcs/patches/20081208071720-5ed1f-82ff38a26edc9254883bd22e055b7a883b07081c.gz deleted file mode 100644 index b0f1ccd702..0000000000 Binary files a/_darcs/patches/20081208071720-5ed1f-82ff38a26edc9254883bd22e055b7a883b07081c.gz and /dev/null differ diff --git a/_darcs/patches/20081208072519-5ed1f-10e7d3e14e54f0d67c58504adbc4c81f3228944a.gz b/_darcs/patches/20081208072519-5ed1f-10e7d3e14e54f0d67c58504adbc4c81f3228944a.gz deleted file mode 100644 index bd1a31aa2c..0000000000 Binary files a/_darcs/patches/20081208072519-5ed1f-10e7d3e14e54f0d67c58504adbc4c81f3228944a.gz and /dev/null differ diff --git a/_darcs/patches/20081208072629-5ed1f-90935f7a2a3d99a4c21b6390eb3fc941117c2580.gz b/_darcs/patches/20081208072629-5ed1f-90935f7a2a3d99a4c21b6390eb3fc941117c2580.gz deleted file mode 100644 index a5906e8caa..0000000000 Binary files a/_darcs/patches/20081208072629-5ed1f-90935f7a2a3d99a4c21b6390eb3fc941117c2580.gz and /dev/null differ diff --git a/_darcs/patches/20081208072958-5ed1f-3476745ea503bb234d81a7513cd84db789239871.gz b/_darcs/patches/20081208072958-5ed1f-3476745ea503bb234d81a7513cd84db789239871.gz deleted file mode 100644 index a67ad03dd5..0000000000 Binary files a/_darcs/patches/20081208072958-5ed1f-3476745ea503bb234d81a7513cd84db789239871.gz and /dev/null differ diff --git a/_darcs/patches/20081208073209-5ed1f-0fca508e15833517f6c61f16d5f9979624c27b40.gz b/_darcs/patches/20081208073209-5ed1f-0fca508e15833517f6c61f16d5f9979624c27b40.gz deleted file mode 100644 index 46f459ba67..0000000000 Binary files a/_darcs/patches/20081208073209-5ed1f-0fca508e15833517f6c61f16d5f9979624c27b40.gz and /dev/null differ diff --git a/_darcs/patches/20081208170931-5ed1f-e7c5853e6a222b04723f20c01ebaae15eeab3687.gz b/_darcs/patches/20081208170931-5ed1f-e7c5853e6a222b04723f20c01ebaae15eeab3687.gz deleted file mode 100644 index d41e98196f..0000000000 Binary files a/_darcs/patches/20081208170931-5ed1f-e7c5853e6a222b04723f20c01ebaae15eeab3687.gz and /dev/null differ diff --git a/_darcs/patches/20081208172812-5ed1f-58ce42160f0ea5330de578c310897906d0012c5c.gz b/_darcs/patches/20081208172812-5ed1f-58ce42160f0ea5330de578c310897906d0012c5c.gz deleted file mode 100644 index eac617e65c..0000000000 Binary files a/_darcs/patches/20081208172812-5ed1f-58ce42160f0ea5330de578c310897906d0012c5c.gz and /dev/null differ diff --git a/_darcs/patches/20081208173722-5ed1f-fcdcb49e4958854ce9872beecee409737cacecb5.gz b/_darcs/patches/20081208173722-5ed1f-fcdcb49e4958854ce9872beecee409737cacecb5.gz deleted file mode 100644 index 04d18283a2..0000000000 Binary files a/_darcs/patches/20081208173722-5ed1f-fcdcb49e4958854ce9872beecee409737cacecb5.gz and /dev/null differ diff --git a/_darcs/patches/20081208185728-5ed1f-8d5f6be6decfbb50deb4ca50bee13404d0c51b72.gz b/_darcs/patches/20081208185728-5ed1f-8d5f6be6decfbb50deb4ca50bee13404d0c51b72.gz deleted file mode 100644 index 28fd773860..0000000000 Binary files a/_darcs/patches/20081208185728-5ed1f-8d5f6be6decfbb50deb4ca50bee13404d0c51b72.gz and /dev/null differ diff --git a/_darcs/patches/20081208193939-5ed1f-3275ec50dd2dbb23689710f9e52a071bcba94cc9.gz b/_darcs/patches/20081208193939-5ed1f-3275ec50dd2dbb23689710f9e52a071bcba94cc9.gz deleted file mode 100644 index 6819d5c943..0000000000 Binary files a/_darcs/patches/20081208193939-5ed1f-3275ec50dd2dbb23689710f9e52a071bcba94cc9.gz and /dev/null differ diff --git a/_darcs/patches/20081208201351-5ed1f-e74df1c59589816c24a0ccd867cbae714cd7daec.gz b/_darcs/patches/20081208201351-5ed1f-e74df1c59589816c24a0ccd867cbae714cd7daec.gz deleted file mode 100644 index 7585dc9640..0000000000 Binary files a/_darcs/patches/20081208201351-5ed1f-e74df1c59589816c24a0ccd867cbae714cd7daec.gz and /dev/null differ diff --git a/_darcs/patches/20081208201453-5ed1f-fe423d57a54d482b95c0dc22ab46e6e0a5ea060a.gz b/_darcs/patches/20081208201453-5ed1f-fe423d57a54d482b95c0dc22ab46e6e0a5ea060a.gz deleted file mode 100644 index 225290db18..0000000000 Binary files a/_darcs/patches/20081208201453-5ed1f-fe423d57a54d482b95c0dc22ab46e6e0a5ea060a.gz and /dev/null differ diff --git a/_darcs/patches/20081208215420-eefa4-25bc0ed6c14d9031e8343e89c2cf6bde6ce35521.gz b/_darcs/patches/20081208215420-eefa4-25bc0ed6c14d9031e8343e89c2cf6bde6ce35521.gz deleted file mode 100644 index 5c9da8313c..0000000000 Binary files a/_darcs/patches/20081208215420-eefa4-25bc0ed6c14d9031e8343e89c2cf6bde6ce35521.gz and /dev/null differ diff --git a/_darcs/patches/20081209033637-5ed1f-df5ef40e57cc0e9485e34e2f5e46249dcb0d9130.gz b/_darcs/patches/20081209033637-5ed1f-df5ef40e57cc0e9485e34e2f5e46249dcb0d9130.gz deleted file mode 100644 index 2002876962..0000000000 Binary files a/_darcs/patches/20081209033637-5ed1f-df5ef40e57cc0e9485e34e2f5e46249dcb0d9130.gz and /dev/null differ diff --git a/_darcs/patches/20081209041227-5ed1f-2edefdc79545da646a6fd40b15fd72809c15831c.gz b/_darcs/patches/20081209041227-5ed1f-2edefdc79545da646a6fd40b15fd72809c15831c.gz deleted file mode 100644 index a53f178557..0000000000 Binary files a/_darcs/patches/20081209041227-5ed1f-2edefdc79545da646a6fd40b15fd72809c15831c.gz and /dev/null differ diff --git a/_darcs/patches/20081209041648-5ed1f-fb6ed96047ebfbbe769a11cc3171ce8a5a1440a7.gz b/_darcs/patches/20081209041648-5ed1f-fb6ed96047ebfbbe769a11cc3171ce8a5a1440a7.gz deleted file mode 100644 index bb6437c08e..0000000000 Binary files a/_darcs/patches/20081209041648-5ed1f-fb6ed96047ebfbbe769a11cc3171ce8a5a1440a7.gz and /dev/null differ diff --git a/_darcs/patches/20081209055345-7b5ce-e48fd4c87963b8ae15859fd03d2f1f86a16f3a2b.gz b/_darcs/patches/20081209055345-7b5ce-e48fd4c87963b8ae15859fd03d2f1f86a16f3a2b.gz deleted file mode 100644 index da4e8104bc..0000000000 Binary files a/_darcs/patches/20081209055345-7b5ce-e48fd4c87963b8ae15859fd03d2f1f86a16f3a2b.gz and /dev/null differ diff --git a/_darcs/patches/20081209082750-7b5ce-6d06a7b1cda2a9afb6ce8ea64d65df81cc063139.gz b/_darcs/patches/20081209082750-7b5ce-6d06a7b1cda2a9afb6ce8ea64d65df81cc063139.gz deleted file mode 100644 index 75db9133d6..0000000000 Binary files a/_darcs/patches/20081209082750-7b5ce-6d06a7b1cda2a9afb6ce8ea64d65df81cc063139.gz and /dev/null differ diff --git a/_darcs/patches/20081209170413-84dde-6845ae5524d3ee1d1a491548bb22386f11f0e867.gz b/_darcs/patches/20081209170413-84dde-6845ae5524d3ee1d1a491548bb22386f11f0e867.gz deleted file mode 100644 index 8eb93e7cea..0000000000 Binary files a/_darcs/patches/20081209170413-84dde-6845ae5524d3ee1d1a491548bb22386f11f0e867.gz and /dev/null differ diff --git a/_darcs/patches/20081209173402-84dde-eb1c47ddbf45a831379f6571729187267411ed07.gz b/_darcs/patches/20081209173402-84dde-eb1c47ddbf45a831379f6571729187267411ed07.gz deleted file mode 100644 index 0b9da44b4d..0000000000 Binary files a/_darcs/patches/20081209173402-84dde-eb1c47ddbf45a831379f6571729187267411ed07.gz and /dev/null differ diff --git a/_darcs/patches/20081209174233-84dde-a5593f20cce3af07909ef9b3af7497ff61565fd3.gz b/_darcs/patches/20081209174233-84dde-a5593f20cce3af07909ef9b3af7497ff61565fd3.gz deleted file mode 100644 index 9f2bed9c4a..0000000000 Binary files a/_darcs/patches/20081209174233-84dde-a5593f20cce3af07909ef9b3af7497ff61565fd3.gz and /dev/null differ diff --git a/_darcs/patches/20081209175446-84dde-ae63433fa42debe8fb2eb3862cac0b9f81f1e6de.gz b/_darcs/patches/20081209175446-84dde-ae63433fa42debe8fb2eb3862cac0b9f81f1e6de.gz deleted file mode 100644 index 2941652e35..0000000000 Binary files a/_darcs/patches/20081209175446-84dde-ae63433fa42debe8fb2eb3862cac0b9f81f1e6de.gz and /dev/null differ diff --git a/_darcs/patches/20081209180330-84dde-ba48eed8a9a557bac90d3869d60b24a4b9683e61.gz b/_darcs/patches/20081209180330-84dde-ba48eed8a9a557bac90d3869d60b24a4b9683e61.gz deleted file mode 100644 index 5e30471526..0000000000 Binary files a/_darcs/patches/20081209180330-84dde-ba48eed8a9a557bac90d3869d60b24a4b9683e61.gz and /dev/null differ diff --git a/_darcs/patches/20081209185424-84dde-d439346477811043ae471c5e68644b326b016713.gz b/_darcs/patches/20081209185424-84dde-d439346477811043ae471c5e68644b326b016713.gz deleted file mode 100644 index 285111903e..0000000000 Binary files a/_darcs/patches/20081209185424-84dde-d439346477811043ae471c5e68644b326b016713.gz and /dev/null differ diff --git a/_darcs/patches/20081209210654-7b5ce-2ef432aa8cb7bf5cc1a973a71eb70e6b2aae4ab6.gz b/_darcs/patches/20081209210654-7b5ce-2ef432aa8cb7bf5cc1a973a71eb70e6b2aae4ab6.gz deleted file mode 100644 index bf8823a8da..0000000000 Binary files a/_darcs/patches/20081209210654-7b5ce-2ef432aa8cb7bf5cc1a973a71eb70e6b2aae4ab6.gz and /dev/null differ diff --git a/_darcs/patches/20081210014619-5ed1f-b78d0990f80f7fee6f31424bc1e366d08767af9d.gz b/_darcs/patches/20081210014619-5ed1f-b78d0990f80f7fee6f31424bc1e366d08767af9d.gz deleted file mode 100644 index c28c031470..0000000000 Binary files a/_darcs/patches/20081210014619-5ed1f-b78d0990f80f7fee6f31424bc1e366d08767af9d.gz and /dev/null differ diff --git a/_darcs/patches/20081210021607-eefa4-c3590f3e734255faf098bf5ca09fc17901a6db70.gz b/_darcs/patches/20081210021607-eefa4-c3590f3e734255faf098bf5ca09fc17901a6db70.gz deleted file mode 100644 index 575df96185..0000000000 Binary files a/_darcs/patches/20081210021607-eefa4-c3590f3e734255faf098bf5ca09fc17901a6db70.gz and /dev/null differ diff --git a/_darcs/patches/20081210024416-5ed1f-ec3b22136883f66c49473a10e09c06b6b9573a22.gz b/_darcs/patches/20081210024416-5ed1f-ec3b22136883f66c49473a10e09c06b6b9573a22.gz deleted file mode 100644 index 075d988b31..0000000000 Binary files a/_darcs/patches/20081210024416-5ed1f-ec3b22136883f66c49473a10e09c06b6b9573a22.gz and /dev/null differ diff --git a/_darcs/patches/20081210024706-5ed1f-fd54b76630656f7d4f7617309d2e4f87f25b006b.gz b/_darcs/patches/20081210024706-5ed1f-fd54b76630656f7d4f7617309d2e4f87f25b006b.gz deleted file mode 100644 index 204e7e2e20..0000000000 Binary files a/_darcs/patches/20081210024706-5ed1f-fd54b76630656f7d4f7617309d2e4f87f25b006b.gz and /dev/null differ diff --git a/_darcs/patches/20081210025922-eefa4-20d87784a350ccc94ee8cb2d69ad44b1b0c92539.gz b/_darcs/patches/20081210025922-eefa4-20d87784a350ccc94ee8cb2d69ad44b1b0c92539.gz deleted file mode 100644 index d56e89497b..0000000000 Binary files a/_darcs/patches/20081210025922-eefa4-20d87784a350ccc94ee8cb2d69ad44b1b0c92539.gz and /dev/null differ diff --git a/_darcs/patches/20081210173726-099f7-5fc908c7330ec8b21d101c1498d5b78ab09ee490.gz b/_darcs/patches/20081210173726-099f7-5fc908c7330ec8b21d101c1498d5b78ab09ee490.gz deleted file mode 100644 index 9e00484fd7..0000000000 Binary files a/_darcs/patches/20081210173726-099f7-5fc908c7330ec8b21d101c1498d5b78ab09ee490.gz and /dev/null differ diff --git a/_darcs/patches/20081210174722-84dde-4c79d7f73230d008195bd19738bc9a6017b940e9.gz b/_darcs/patches/20081210174722-84dde-4c79d7f73230d008195bd19738bc9a6017b940e9.gz deleted file mode 100644 index 7a4c389a1b..0000000000 Binary files a/_darcs/patches/20081210174722-84dde-4c79d7f73230d008195bd19738bc9a6017b940e9.gz and /dev/null differ diff --git a/_darcs/patches/20081210181123-099f7-b13ae11d136512655fc5ba4bb314c80256244593.gz b/_darcs/patches/20081210181123-099f7-b13ae11d136512655fc5ba4bb314c80256244593.gz deleted file mode 100644 index 40c1c55e94..0000000000 Binary files a/_darcs/patches/20081210181123-099f7-b13ae11d136512655fc5ba4bb314c80256244593.gz and /dev/null differ diff --git a/_darcs/patches/20081210191337-7b5ce-f9a083596b3f5627405c9e233c1994d8338f5731.gz b/_darcs/patches/20081210191337-7b5ce-f9a083596b3f5627405c9e233c1994d8338f5731.gz deleted file mode 100644 index 63585b25c0..0000000000 Binary files a/_darcs/patches/20081210191337-7b5ce-f9a083596b3f5627405c9e233c1994d8338f5731.gz and /dev/null differ diff --git a/_darcs/patches/20081210194335-84dde-a74fe65acfa707eae5499cdf47850d353562ccb8.gz b/_darcs/patches/20081210194335-84dde-a74fe65acfa707eae5499cdf47850d353562ccb8.gz deleted file mode 100644 index be2ee84925..0000000000 Binary files a/_darcs/patches/20081210194335-84dde-a74fe65acfa707eae5499cdf47850d353562ccb8.gz and /dev/null differ diff --git a/_darcs/patches/20081210233503-84dde-ae7e4acd0d5e42d6d743b545688ad4ad51bc5014.gz b/_darcs/patches/20081210233503-84dde-ae7e4acd0d5e42d6d743b545688ad4ad51bc5014.gz deleted file mode 100644 index 7ab281170b..0000000000 Binary files a/_darcs/patches/20081210233503-84dde-ae7e4acd0d5e42d6d743b545688ad4ad51bc5014.gz and /dev/null differ diff --git a/_darcs/patches/20081211021755-efd22-5b2f406b22a87c81cc02f92fee8a0ed64572e113.gz b/_darcs/patches/20081211021755-efd22-5b2f406b22a87c81cc02f92fee8a0ed64572e113.gz deleted file mode 100644 index 3dc13e9ede..0000000000 Binary files a/_darcs/patches/20081211021755-efd22-5b2f406b22a87c81cc02f92fee8a0ed64572e113.gz and /dev/null differ diff --git a/_darcs/patches/20081211022557-7b5ce-8040947f258db638bd68fe2620381b3c078a4c31.gz b/_darcs/patches/20081211022557-7b5ce-8040947f258db638bd68fe2620381b3c078a4c31.gz deleted file mode 100644 index 2242a2bf15..0000000000 Binary files a/_darcs/patches/20081211022557-7b5ce-8040947f258db638bd68fe2620381b3c078a4c31.gz and /dev/null differ diff --git a/_darcs/patches/20081211024233-7b5ce-e4911c049adf067f24821f868a27bdf67c324caf.gz b/_darcs/patches/20081211024233-7b5ce-e4911c049adf067f24821f868a27bdf67c324caf.gz deleted file mode 100644 index 80b20be62c..0000000000 Binary files a/_darcs/patches/20081211024233-7b5ce-e4911c049adf067f24821f868a27bdf67c324caf.gz and /dev/null differ diff --git a/_darcs/patches/20081211100106-7b5ce-c8dfd1f3ded2b9f1258d11457a1c2669a4858185.gz b/_darcs/patches/20081211100106-7b5ce-c8dfd1f3ded2b9f1258d11457a1c2669a4858185.gz deleted file mode 100644 index 1589b317cb..0000000000 Binary files a/_darcs/patches/20081211100106-7b5ce-c8dfd1f3ded2b9f1258d11457a1c2669a4858185.gz and /dev/null differ diff --git a/_darcs/patches/20081211162558-5ed1f-1eb8afbadbaa5f84140cbd255b1c01dc456577fd.gz b/_darcs/patches/20081211162558-5ed1f-1eb8afbadbaa5f84140cbd255b1c01dc456577fd.gz deleted file mode 100644 index 54b403b918..0000000000 Binary files a/_darcs/patches/20081211162558-5ed1f-1eb8afbadbaa5f84140cbd255b1c01dc456577fd.gz and /dev/null differ diff --git a/_darcs/patches/20081211163150-5ed1f-10ff4c4863145909c1d541e39dc4bf69d945cfd7.gz b/_darcs/patches/20081211163150-5ed1f-10ff4c4863145909c1d541e39dc4bf69d945cfd7.gz deleted file mode 100644 index 134654feb1..0000000000 Binary files a/_darcs/patches/20081211163150-5ed1f-10ff4c4863145909c1d541e39dc4bf69d945cfd7.gz and /dev/null differ diff --git a/_darcs/patches/20081211163434-5ed1f-38d9bf093db72d27837cbfe76d46fd518adc3bb6.gz b/_darcs/patches/20081211163434-5ed1f-38d9bf093db72d27837cbfe76d46fd518adc3bb6.gz deleted file mode 100644 index 30e09171d9..0000000000 Binary files a/_darcs/patches/20081211163434-5ed1f-38d9bf093db72d27837cbfe76d46fd518adc3bb6.gz and /dev/null differ diff --git a/_darcs/patches/20081211171353-84dde-31b2858e361f62e13ca8ca8784b1aac4209ef04c.gz b/_darcs/patches/20081211171353-84dde-31b2858e361f62e13ca8ca8784b1aac4209ef04c.gz deleted file mode 100644 index ffc7411585..0000000000 Binary files a/_darcs/patches/20081211171353-84dde-31b2858e361f62e13ca8ca8784b1aac4209ef04c.gz and /dev/null differ diff --git a/_darcs/patches/20081211180622-5ed1f-ab61ae0e19506b9686cd560ff262d29a6d0ac267.gz b/_darcs/patches/20081211180622-5ed1f-ab61ae0e19506b9686cd560ff262d29a6d0ac267.gz deleted file mode 100644 index d6a668be85..0000000000 Binary files a/_darcs/patches/20081211180622-5ed1f-ab61ae0e19506b9686cd560ff262d29a6d0ac267.gz and /dev/null differ diff --git a/_darcs/patches/20081211181500-5ed1f-5042b1ff2ed5de36500200f3ea2aa91108f1f853.gz b/_darcs/patches/20081211181500-5ed1f-5042b1ff2ed5de36500200f3ea2aa91108f1f853.gz deleted file mode 100644 index cebb1309ad..0000000000 Binary files a/_darcs/patches/20081211181500-5ed1f-5042b1ff2ed5de36500200f3ea2aa91108f1f853.gz and /dev/null differ diff --git a/_darcs/patches/20081211183250-5ed1f-73f542de534be2931508841a2c85162e2fe15160.gz b/_darcs/patches/20081211183250-5ed1f-73f542de534be2931508841a2c85162e2fe15160.gz deleted file mode 100644 index 5ac9022783..0000000000 Binary files a/_darcs/patches/20081211183250-5ed1f-73f542de534be2931508841a2c85162e2fe15160.gz and /dev/null differ diff --git a/_darcs/patches/20081211183756-5ed1f-d4c430397d6356ede7873d3790a61fd822a96e60.gz b/_darcs/patches/20081211183756-5ed1f-d4c430397d6356ede7873d3790a61fd822a96e60.gz deleted file mode 100644 index 09a11e7c6a..0000000000 Binary files a/_darcs/patches/20081211183756-5ed1f-d4c430397d6356ede7873d3790a61fd822a96e60.gz and /dev/null differ diff --git a/_darcs/patches/20081211185525-5ed1f-ea300a9f824163ea7989baae4e4b439e58fd0881.gz b/_darcs/patches/20081211185525-5ed1f-ea300a9f824163ea7989baae4e4b439e58fd0881.gz deleted file mode 100644 index f6000feeca..0000000000 Binary files a/_darcs/patches/20081211185525-5ed1f-ea300a9f824163ea7989baae4e4b439e58fd0881.gz and /dev/null differ diff --git a/_darcs/patches/20081211195259-5ed1f-c52136c07bdad5521184bd1990313030a8e1e831.gz b/_darcs/patches/20081211195259-5ed1f-c52136c07bdad5521184bd1990313030a8e1e831.gz deleted file mode 100644 index 07f5dddf56..0000000000 Binary files a/_darcs/patches/20081211195259-5ed1f-c52136c07bdad5521184bd1990313030a8e1e831.gz and /dev/null differ diff --git a/_darcs/patches/20081211200239-5ed1f-b8829a657dcb6b9f1ec6134d61de5340414a10d4.gz b/_darcs/patches/20081211200239-5ed1f-b8829a657dcb6b9f1ec6134d61de5340414a10d4.gz deleted file mode 100644 index ac07eb3b51..0000000000 Binary files a/_darcs/patches/20081211200239-5ed1f-b8829a657dcb6b9f1ec6134d61de5340414a10d4.gz and /dev/null differ diff --git a/_darcs/patches/20081211201717-efd22-850db00fab62a80773b5c6b9b5e4008059ee6b17.gz b/_darcs/patches/20081211201717-efd22-850db00fab62a80773b5c6b9b5e4008059ee6b17.gz deleted file mode 100644 index 4dd6c6e216..0000000000 Binary files a/_darcs/patches/20081211201717-efd22-850db00fab62a80773b5c6b9b5e4008059ee6b17.gz and /dev/null differ diff --git a/_darcs/patches/20081211203659-7b5ce-43cfb2067c296374779a532410f186c42e8d2f99.gz b/_darcs/patches/20081211203659-7b5ce-43cfb2067c296374779a532410f186c42e8d2f99.gz deleted file mode 100644 index 6eb06c7e43..0000000000 Binary files a/_darcs/patches/20081211203659-7b5ce-43cfb2067c296374779a532410f186c42e8d2f99.gz and /dev/null differ diff --git a/_darcs/patches/20081211204814-efd22-9882cf51d2a62c7018babfc2cfc3ef582e8dc8a4.gz b/_darcs/patches/20081211204814-efd22-9882cf51d2a62c7018babfc2cfc3ef582e8dc8a4.gz deleted file mode 100644 index 4d91364e3a..0000000000 Binary files a/_darcs/patches/20081211204814-efd22-9882cf51d2a62c7018babfc2cfc3ef582e8dc8a4.gz and /dev/null differ diff --git a/_darcs/patches/20081211211814-efd22-a41a2b123fcd08945370e868431dc1b2feda4dfe.gz b/_darcs/patches/20081211211814-efd22-a41a2b123fcd08945370e868431dc1b2feda4dfe.gz deleted file mode 100644 index 8e38ce3643..0000000000 Binary files a/_darcs/patches/20081211211814-efd22-a41a2b123fcd08945370e868431dc1b2feda4dfe.gz and /dev/null differ diff --git a/_darcs/patches/20081211212046-efd22-5face1c2bfaf0dd43dc7ffcc4eec639fdb4b5fe5.gz b/_darcs/patches/20081211212046-efd22-5face1c2bfaf0dd43dc7ffcc4eec639fdb4b5fe5.gz deleted file mode 100644 index 72da828f49..0000000000 Binary files a/_darcs/patches/20081211212046-efd22-5face1c2bfaf0dd43dc7ffcc4eec639fdb4b5fe5.gz and /dev/null differ diff --git a/_darcs/patches/20081211225808-efd22-7f21b4588aad028766516f76173cf62cdf560855.gz b/_darcs/patches/20081211225808-efd22-7f21b4588aad028766516f76173cf62cdf560855.gz deleted file mode 100644 index 6d2058be91..0000000000 Binary files a/_darcs/patches/20081211225808-efd22-7f21b4588aad028766516f76173cf62cdf560855.gz and /dev/null differ diff --git a/_darcs/patches/20081211231252-5ed1f-ee6e551ed5a029406748120f12e2ff57c4a86493.gz b/_darcs/patches/20081211231252-5ed1f-ee6e551ed5a029406748120f12e2ff57c4a86493.gz deleted file mode 100644 index 9c9694a734..0000000000 Binary files a/_darcs/patches/20081211231252-5ed1f-ee6e551ed5a029406748120f12e2ff57c4a86493.gz and /dev/null differ diff --git a/_darcs/patches/20081211231925-5ed1f-b01d6ef925de540f4a671c0814d8715127a4c98d.gz b/_darcs/patches/20081211231925-5ed1f-b01d6ef925de540f4a671c0814d8715127a4c98d.gz deleted file mode 100644 index c62af28ace..0000000000 Binary files a/_darcs/patches/20081211231925-5ed1f-b01d6ef925de540f4a671c0814d8715127a4c98d.gz and /dev/null differ diff --git a/_darcs/patches/20081211232000-5ed1f-5ed2008f6c8273b7fa653396bff090afb10b030e.gz b/_darcs/patches/20081211232000-5ed1f-5ed2008f6c8273b7fa653396bff090afb10b030e.gz deleted file mode 100644 index f6953ff73e..0000000000 Binary files a/_darcs/patches/20081211232000-5ed1f-5ed2008f6c8273b7fa653396bff090afb10b030e.gz and /dev/null differ diff --git a/_darcs/patches/20081211232811-84dde-658ffc41153b3ffcf7243baa0faa0c3b09a493f0.gz b/_darcs/patches/20081211232811-84dde-658ffc41153b3ffcf7243baa0faa0c3b09a493f0.gz deleted file mode 100644 index abe3d7faf2..0000000000 Binary files a/_darcs/patches/20081211232811-84dde-658ffc41153b3ffcf7243baa0faa0c3b09a493f0.gz and /dev/null differ diff --git a/_darcs/patches/20081211232921-84dde-9dba2a8d0fe3aa970f433973ef8c4ddf7c5e8928.gz b/_darcs/patches/20081211232921-84dde-9dba2a8d0fe3aa970f433973ef8c4ddf7c5e8928.gz deleted file mode 100644 index 36957f1543..0000000000 Binary files a/_darcs/patches/20081211232921-84dde-9dba2a8d0fe3aa970f433973ef8c4ddf7c5e8928.gz and /dev/null differ diff --git a/_darcs/patches/20081211233039-84dde-9bcacf8f114025052a208e1068e58d570db05f15.gz b/_darcs/patches/20081211233039-84dde-9bcacf8f114025052a208e1068e58d570db05f15.gz deleted file mode 100644 index 998e0c8e4a..0000000000 Binary files a/_darcs/patches/20081211233039-84dde-9bcacf8f114025052a208e1068e58d570db05f15.gz and /dev/null differ diff --git a/_darcs/patches/20081211233515-84dde-184e46fdee817baa3df8e066ca49d759f3b1a899.gz b/_darcs/patches/20081211233515-84dde-184e46fdee817baa3df8e066ca49d759f3b1a899.gz deleted file mode 100644 index 30bdaf604c..0000000000 Binary files a/_darcs/patches/20081211233515-84dde-184e46fdee817baa3df8e066ca49d759f3b1a899.gz and /dev/null differ diff --git a/_darcs/patches/20081211234741-84dde-d20d0f7e5e850a2d045fb95f5b75157076f7b7b6.gz b/_darcs/patches/20081211234741-84dde-d20d0f7e5e850a2d045fb95f5b75157076f7b7b6.gz deleted file mode 100644 index 97670ff900..0000000000 Binary files a/_darcs/patches/20081211234741-84dde-d20d0f7e5e850a2d045fb95f5b75157076f7b7b6.gz and /dev/null differ diff --git a/_darcs/patches/20081211235341-7b5ce-98bae58e267b4e4b0adb5835e5a05e19cd910363.gz b/_darcs/patches/20081211235341-7b5ce-98bae58e267b4e4b0adb5835e5a05e19cd910363.gz deleted file mode 100644 index 0272572402..0000000000 Binary files a/_darcs/patches/20081211235341-7b5ce-98bae58e267b4e4b0adb5835e5a05e19cd910363.gz and /dev/null differ diff --git a/_darcs/patches/20081212030820-efd22-3ee6f5ab50c821e3da5dd6785abb765af168058a.gz b/_darcs/patches/20081212030820-efd22-3ee6f5ab50c821e3da5dd6785abb765af168058a.gz deleted file mode 100644 index 2ff9676a15..0000000000 Binary files a/_darcs/patches/20081212030820-efd22-3ee6f5ab50c821e3da5dd6785abb765af168058a.gz and /dev/null differ diff --git a/_darcs/patches/20081212035117-efd22-f829f9470e64ed2e5560f6272db5d1d099bf28cc.gz b/_darcs/patches/20081212035117-efd22-f829f9470e64ed2e5560f6272db5d1d099bf28cc.gz deleted file mode 100644 index e61a26d2b9..0000000000 Binary files a/_darcs/patches/20081212035117-efd22-f829f9470e64ed2e5560f6272db5d1d099bf28cc.gz and /dev/null differ diff --git a/_darcs/patches/20081212035255-efd22-534581fa42c74785dcf4333ae4b8513d96718bdd.gz b/_darcs/patches/20081212035255-efd22-534581fa42c74785dcf4333ae4b8513d96718bdd.gz deleted file mode 100644 index eb3f30c178..0000000000 Binary files a/_darcs/patches/20081212035255-efd22-534581fa42c74785dcf4333ae4b8513d96718bdd.gz and /dev/null differ diff --git a/_darcs/patches/20081212041543-84dde-47540bac9f755be3101b7e403ae8940c90003f33.gz b/_darcs/patches/20081212041543-84dde-47540bac9f755be3101b7e403ae8940c90003f33.gz deleted file mode 100644 index 2592a7b7b4..0000000000 Binary files a/_darcs/patches/20081212041543-84dde-47540bac9f755be3101b7e403ae8940c90003f33.gz and /dev/null differ diff --git a/_darcs/patches/20081212043018-7b5ce-bc83b66e19007aa0a04fbb40053217ef92c44779.gz b/_darcs/patches/20081212043018-7b5ce-bc83b66e19007aa0a04fbb40053217ef92c44779.gz deleted file mode 100644 index 51acb509bd..0000000000 Binary files a/_darcs/patches/20081212043018-7b5ce-bc83b66e19007aa0a04fbb40053217ef92c44779.gz and /dev/null differ diff --git a/_darcs/patches/20081212043201-84dde-1bf07467f85f743fb5cb4ec92e5b8934bfb49578.gz b/_darcs/patches/20081212043201-84dde-1bf07467f85f743fb5cb4ec92e5b8934bfb49578.gz deleted file mode 100644 index 0a89ca9d7a..0000000000 Binary files a/_darcs/patches/20081212043201-84dde-1bf07467f85f743fb5cb4ec92e5b8934bfb49578.gz and /dev/null differ diff --git a/_darcs/patches/20081212043240-efd22-99f6754e2b76eed06237414955d6c01b4137cba5.gz b/_darcs/patches/20081212043240-efd22-99f6754e2b76eed06237414955d6c01b4137cba5.gz deleted file mode 100644 index 97ef676d44..0000000000 Binary files a/_darcs/patches/20081212043240-efd22-99f6754e2b76eed06237414955d6c01b4137cba5.gz and /dev/null differ diff --git a/_darcs/patches/20081212044600-84dde-b9fa8240a83457f9ed41c0bcdac4b20aff1f8aed.gz b/_darcs/patches/20081212044600-84dde-b9fa8240a83457f9ed41c0bcdac4b20aff1f8aed.gz deleted file mode 100644 index c64a2668a8..0000000000 Binary files a/_darcs/patches/20081212044600-84dde-b9fa8240a83457f9ed41c0bcdac4b20aff1f8aed.gz and /dev/null differ diff --git a/_darcs/patches/20081212051830-84dde-4db7b40c27b20bd37bac261a68bd11051d263c25.gz b/_darcs/patches/20081212051830-84dde-4db7b40c27b20bd37bac261a68bd11051d263c25.gz deleted file mode 100644 index 72d6708348..0000000000 Binary files a/_darcs/patches/20081212051830-84dde-4db7b40c27b20bd37bac261a68bd11051d263c25.gz and /dev/null differ diff --git a/_darcs/patches/20081212054448-84dde-14b0bdbd5ce2848a171d565bc0b17902ddb10ed3.gz b/_darcs/patches/20081212054448-84dde-14b0bdbd5ce2848a171d565bc0b17902ddb10ed3.gz deleted file mode 100644 index e96dbe3461..0000000000 Binary files a/_darcs/patches/20081212054448-84dde-14b0bdbd5ce2848a171d565bc0b17902ddb10ed3.gz and /dev/null differ diff --git a/_darcs/patches/20081212055713-84dde-1b2aa99861ee0ab7c63a48152a5590b4d2f360d9.gz b/_darcs/patches/20081212055713-84dde-1b2aa99861ee0ab7c63a48152a5590b4d2f360d9.gz deleted file mode 100644 index 67b1e0341c..0000000000 Binary files a/_darcs/patches/20081212055713-84dde-1b2aa99861ee0ab7c63a48152a5590b4d2f360d9.gz and /dev/null differ diff --git a/_darcs/patches/20081212062337-efd22-8adadf1810c253e27b573727c2ff5372d264fcd2.gz b/_darcs/patches/20081212062337-efd22-8adadf1810c253e27b573727c2ff5372d264fcd2.gz deleted file mode 100644 index 519d7ea61d..0000000000 Binary files a/_darcs/patches/20081212062337-efd22-8adadf1810c253e27b573727c2ff5372d264fcd2.gz and /dev/null differ diff --git a/_darcs/patches/20081212075617-7b5ce-c56db92d928c58eaa3fed7e4f226e0fca62e2bbf.gz b/_darcs/patches/20081212075617-7b5ce-c56db92d928c58eaa3fed7e4f226e0fca62e2bbf.gz deleted file mode 100644 index 6e0382348d..0000000000 Binary files a/_darcs/patches/20081212075617-7b5ce-c56db92d928c58eaa3fed7e4f226e0fca62e2bbf.gz and /dev/null differ diff --git a/_darcs/patches/20081212171135-84dde-543176e3a8190699e44fc896ba90f6ea776057d4.gz b/_darcs/patches/20081212171135-84dde-543176e3a8190699e44fc896ba90f6ea776057d4.gz deleted file mode 100644 index ae18dc6dce..0000000000 Binary files a/_darcs/patches/20081212171135-84dde-543176e3a8190699e44fc896ba90f6ea776057d4.gz and /dev/null differ diff --git a/_darcs/patches/20081212174414-84dde-03713508050c326904594057e6e2d3f3b1ca6437.gz b/_darcs/patches/20081212174414-84dde-03713508050c326904594057e6e2d3f3b1ca6437.gz deleted file mode 100644 index 9c738aa429..0000000000 Binary files a/_darcs/patches/20081212174414-84dde-03713508050c326904594057e6e2d3f3b1ca6437.gz and /dev/null differ diff --git a/_darcs/patches/20081212195520-84dde-d464ee28ab9a9757b889fad437e310056f4c576a.gz b/_darcs/patches/20081212195520-84dde-d464ee28ab9a9757b889fad437e310056f4c576a.gz deleted file mode 100644 index 2307963fc6..0000000000 Binary files a/_darcs/patches/20081212195520-84dde-d464ee28ab9a9757b889fad437e310056f4c576a.gz and /dev/null differ diff --git a/_darcs/patches/20081214002239-84dde-9d4d15f37b48ed1830c0423e7e34cb11c7cf9c2d.gz b/_darcs/patches/20081214002239-84dde-9d4d15f37b48ed1830c0423e7e34cb11c7cf9c2d.gz deleted file mode 100644 index c4e119c82b..0000000000 Binary files a/_darcs/patches/20081214002239-84dde-9d4d15f37b48ed1830c0423e7e34cb11c7cf9c2d.gz and /dev/null differ diff --git a/_darcs/patches/20081214161942-84dde-bfb91a534eb01d3e16b364937dcf405277e75a6a.gz b/_darcs/patches/20081214161942-84dde-bfb91a534eb01d3e16b364937dcf405277e75a6a.gz deleted file mode 100644 index 32ac4711f2..0000000000 Binary files a/_darcs/patches/20081214161942-84dde-bfb91a534eb01d3e16b364937dcf405277e75a6a.gz and /dev/null differ diff --git a/_darcs/patches/20081214204557-84dde-92dbf80aa81d55c9ef23faa14bc209183fdcf883.gz b/_darcs/patches/20081214204557-84dde-92dbf80aa81d55c9ef23faa14bc209183fdcf883.gz deleted file mode 100644 index 0f8feb7f7c..0000000000 Binary files a/_darcs/patches/20081214204557-84dde-92dbf80aa81d55c9ef23faa14bc209183fdcf883.gz and /dev/null differ diff --git a/_darcs/patches/20081215132806-84dde-0319e95259047d652214c151326aff64e746d532.gz b/_darcs/patches/20081215132806-84dde-0319e95259047d652214c151326aff64e746d532.gz deleted file mode 100644 index ae6b36175f..0000000000 Binary files a/_darcs/patches/20081215132806-84dde-0319e95259047d652214c151326aff64e746d532.gz and /dev/null differ diff --git a/_darcs/patches/20081215134824-84dde-de48c99b6cb45cc461125a7f8f382eb57de0bf28.gz b/_darcs/patches/20081215134824-84dde-de48c99b6cb45cc461125a7f8f382eb57de0bf28.gz deleted file mode 100644 index 7522b79016..0000000000 Binary files a/_darcs/patches/20081215134824-84dde-de48c99b6cb45cc461125a7f8f382eb57de0bf28.gz and /dev/null differ diff --git a/_darcs/patches/20081215205036-34904-6e03eddcd13c7c882a9e7286edf67a63f5b5124b.gz b/_darcs/patches/20081215205036-34904-6e03eddcd13c7c882a9e7286edf67a63f5b5124b.gz deleted file mode 100644 index 9ccb3fe188..0000000000 Binary files a/_darcs/patches/20081215205036-34904-6e03eddcd13c7c882a9e7286edf67a63f5b5124b.gz and /dev/null differ diff --git a/_darcs/patches/20081216030455-7b5ce-552516bfb34cb0ae1550787813feb4a4514d6c53.gz b/_darcs/patches/20081216030455-7b5ce-552516bfb34cb0ae1550787813feb4a4514d6c53.gz deleted file mode 100644 index 7ef4940306..0000000000 Binary files a/_darcs/patches/20081216030455-7b5ce-552516bfb34cb0ae1550787813feb4a4514d6c53.gz and /dev/null differ diff --git a/_darcs/patches/20081216063751-efd22-42fa56ae88c444b80d96c25236733e90f8609fc5.gz b/_darcs/patches/20081216063751-efd22-42fa56ae88c444b80d96c25236733e90f8609fc5.gz deleted file mode 100644 index b782786a99..0000000000 Binary files a/_darcs/patches/20081216063751-efd22-42fa56ae88c444b80d96c25236733e90f8609fc5.gz and /dev/null differ diff --git a/_darcs/patches/20081216071818-efd22-d2e59bb60a236538452be356f38d0974f35f0107.gz b/_darcs/patches/20081216071818-efd22-d2e59bb60a236538452be356f38d0974f35f0107.gz deleted file mode 100644 index 0c715eee87..0000000000 Binary files a/_darcs/patches/20081216071818-efd22-d2e59bb60a236538452be356f38d0974f35f0107.gz and /dev/null differ diff --git a/_darcs/patches/20081218003302-efd22-9423c6317fe60a3c288c713333f7b16a84228c3e.gz b/_darcs/patches/20081218003302-efd22-9423c6317fe60a3c288c713333f7b16a84228c3e.gz deleted file mode 100644 index aa5e9dc7c9..0000000000 Binary files a/_darcs/patches/20081218003302-efd22-9423c6317fe60a3c288c713333f7b16a84228c3e.gz and /dev/null differ diff --git a/_darcs/patches/20081220204320-84dde-cc64afc5ad47f07ace499fe932f59f898dd8f0dd.gz b/_darcs/patches/20081220204320-84dde-cc64afc5ad47f07ace499fe932f59f898dd8f0dd.gz deleted file mode 100644 index 2e8a9244e5..0000000000 Binary files a/_darcs/patches/20081220204320-84dde-cc64afc5ad47f07ace499fe932f59f898dd8f0dd.gz and /dev/null differ diff --git a/_darcs/patches/20081220204852-34904-d63d2050408db9eeaea0af8e81c5b5c9e0c8f227.gz b/_darcs/patches/20081220204852-34904-d63d2050408db9eeaea0af8e81c5b5c9e0c8f227.gz deleted file mode 100644 index 5aa5ab8053..0000000000 Binary files a/_darcs/patches/20081220204852-34904-d63d2050408db9eeaea0af8e81c5b5c9e0c8f227.gz and /dev/null differ diff --git a/_darcs/patches/20081220204906-34904-cc69d9afe4d4a20e9e07e3bb0b9562aa61e436e8.gz b/_darcs/patches/20081220204906-34904-cc69d9afe4d4a20e9e07e3bb0b9562aa61e436e8.gz deleted file mode 100644 index bf92d42f76..0000000000 Binary files a/_darcs/patches/20081220204906-34904-cc69d9afe4d4a20e9e07e3bb0b9562aa61e436e8.gz and /dev/null differ diff --git a/_darcs/patches/20081221002332-84dde-5834e12499fff0a23a8a6a76018f8beaa5ea8a96.gz b/_darcs/patches/20081221002332-84dde-5834e12499fff0a23a8a6a76018f8beaa5ea8a96.gz deleted file mode 100644 index ae9dc79627..0000000000 Binary files a/_darcs/patches/20081221002332-84dde-5834e12499fff0a23a8a6a76018f8beaa5ea8a96.gz and /dev/null differ diff --git a/_darcs/patches/20081221003016-84dde-0e80268e95235462e069d4d1e6b949bc891ccdbd.gz b/_darcs/patches/20081221003016-84dde-0e80268e95235462e069d4d1e6b949bc891ccdbd.gz deleted file mode 100644 index 344e0693f4..0000000000 Binary files a/_darcs/patches/20081221003016-84dde-0e80268e95235462e069d4d1e6b949bc891ccdbd.gz and /dev/null differ diff --git a/_darcs/patches/20081221003955-84dde-d6e8067a579f70dcb707f4525e588920a2375f5c.gz b/_darcs/patches/20081221003955-84dde-d6e8067a579f70dcb707f4525e588920a2375f5c.gz deleted file mode 100644 index c3d9f20700..0000000000 Binary files a/_darcs/patches/20081221003955-84dde-d6e8067a579f70dcb707f4525e588920a2375f5c.gz and /dev/null differ diff --git a/_darcs/patches/20081221004607-84dde-d83d0661b29e532b8842b7ae45c961446669fb74.gz b/_darcs/patches/20081221004607-84dde-d83d0661b29e532b8842b7ae45c961446669fb74.gz deleted file mode 100644 index 9e51eb2f73..0000000000 Binary files a/_darcs/patches/20081221004607-84dde-d83d0661b29e532b8842b7ae45c961446669fb74.gz and /dev/null differ diff --git a/_darcs/patches/20081221005837-84dde-07cd6bb27d5f601360a686538dd76f1dca9af3c4.gz b/_darcs/patches/20081221005837-84dde-07cd6bb27d5f601360a686538dd76f1dca9af3c4.gz deleted file mode 100644 index 34fd52db4b..0000000000 Binary files a/_darcs/patches/20081221005837-84dde-07cd6bb27d5f601360a686538dd76f1dca9af3c4.gz and /dev/null differ diff --git a/_darcs/patches/20081222173249-84dde-202ba409e32e2b27089a1bc5431507c9d8a2782e.gz b/_darcs/patches/20081222173249-84dde-202ba409e32e2b27089a1bc5431507c9d8a2782e.gz deleted file mode 100644 index 908bf57697..0000000000 Binary files a/_darcs/patches/20081222173249-84dde-202ba409e32e2b27089a1bc5431507c9d8a2782e.gz and /dev/null differ diff --git a/_darcs/patches/20081222193029-84dde-8d0f64d0fad2a2854d1a3a294a30e74d73fd1bd1.gz b/_darcs/patches/20081222193029-84dde-8d0f64d0fad2a2854d1a3a294a30e74d73fd1bd1.gz deleted file mode 100644 index 14fdbabbf7..0000000000 Binary files a/_darcs/patches/20081222193029-84dde-8d0f64d0fad2a2854d1a3a294a30e74d73fd1bd1.gz and /dev/null differ diff --git a/_darcs/patches/20081222195041-84dde-3cc82f6b0f3e4e753c9525aa9a881cfb0c25830c.gz b/_darcs/patches/20081222195041-84dde-3cc82f6b0f3e4e753c9525aa9a881cfb0c25830c.gz deleted file mode 100644 index 502586ee8b..0000000000 Binary files a/_darcs/patches/20081222195041-84dde-3cc82f6b0f3e4e753c9525aa9a881cfb0c25830c.gz and /dev/null differ diff --git a/_darcs/patches/20081222201304-84dde-3effcce0f9ef25fbe0bfebd505037d9ff37252fa.gz b/_darcs/patches/20081222201304-84dde-3effcce0f9ef25fbe0bfebd505037d9ff37252fa.gz deleted file mode 100644 index 60517eb793..0000000000 Binary files a/_darcs/patches/20081222201304-84dde-3effcce0f9ef25fbe0bfebd505037d9ff37252fa.gz and /dev/null differ diff --git a/_darcs/patches/20081223173330-84dde-8cbbfd3953e8a67d5e58679431f93651ddf3122a.gz b/_darcs/patches/20081223173330-84dde-8cbbfd3953e8a67d5e58679431f93651ddf3122a.gz deleted file mode 100644 index 30dd86a195..0000000000 Binary files a/_darcs/patches/20081223173330-84dde-8cbbfd3953e8a67d5e58679431f93651ddf3122a.gz and /dev/null differ diff --git a/_darcs/patches/20081223190851-84dde-ecad63595159aca2ae014325c9af29a9ace21c3d.gz b/_darcs/patches/20081223190851-84dde-ecad63595159aca2ae014325c9af29a9ace21c3d.gz deleted file mode 100644 index 7f3254cbbe..0000000000 Binary files a/_darcs/patches/20081223190851-84dde-ecad63595159aca2ae014325c9af29a9ace21c3d.gz and /dev/null differ diff --git a/_darcs/patches/20081223191430-84dde-7f50fbf9c39c3f397196ffca318d51de6624d7c9.gz b/_darcs/patches/20081223191430-84dde-7f50fbf9c39c3f397196ffca318d51de6624d7c9.gz deleted file mode 100644 index 1d39cc7a1d..0000000000 Binary files a/_darcs/patches/20081223191430-84dde-7f50fbf9c39c3f397196ffca318d51de6624d7c9.gz and /dev/null differ diff --git a/_darcs/patches/20081223191907-84dde-21e8efe210e6d5d54e935a22d0cee5c7bbfc007d.gz b/_darcs/patches/20081223191907-84dde-21e8efe210e6d5d54e935a22d0cee5c7bbfc007d.gz deleted file mode 100644 index 0ce001299a..0000000000 Binary files a/_darcs/patches/20081223191907-84dde-21e8efe210e6d5d54e935a22d0cee5c7bbfc007d.gz and /dev/null differ diff --git a/_darcs/patches/20081223192129-84dde-4a0182e0ec16a01ad88745ad3e08f7cb501aee0b.gz b/_darcs/patches/20081223192129-84dde-4a0182e0ec16a01ad88745ad3e08f7cb501aee0b.gz deleted file mode 100644 index cc317a43e7..0000000000 Binary files a/_darcs/patches/20081223192129-84dde-4a0182e0ec16a01ad88745ad3e08f7cb501aee0b.gz and /dev/null differ diff --git a/_darcs/patches/20081223193323-84dde-a28e36ecc66672c783c2842d12fc11043c13ab28.gz b/_darcs/patches/20081223193323-84dde-a28e36ecc66672c783c2842d12fc11043c13ab28.gz deleted file mode 100644 index 5319bc0875..0000000000 Binary files a/_darcs/patches/20081223193323-84dde-a28e36ecc66672c783c2842d12fc11043c13ab28.gz and /dev/null differ diff --git a/_darcs/patches/20081223194428-84dde-cb1a1e6f679acd68e864545c4d4dd8752d6a6257.gz b/_darcs/patches/20081223194428-84dde-cb1a1e6f679acd68e864545c4d4dd8752d6a6257.gz deleted file mode 100644 index 82d8fb3cc8..0000000000 Binary files a/_darcs/patches/20081223194428-84dde-cb1a1e6f679acd68e864545c4d4dd8752d6a6257.gz and /dev/null differ diff --git a/_darcs/patches/20081223194923-84dde-77a93de314caadbcb5b70bf346a4648be77a864e.gz b/_darcs/patches/20081223194923-84dde-77a93de314caadbcb5b70bf346a4648be77a864e.gz deleted file mode 100644 index 6675082793..0000000000 Binary files a/_darcs/patches/20081223194923-84dde-77a93de314caadbcb5b70bf346a4648be77a864e.gz and /dev/null differ diff --git a/_darcs/patches/20081223195722-84dde-7416c826728867e431511266ce18699d129a60ed.gz b/_darcs/patches/20081223195722-84dde-7416c826728867e431511266ce18699d129a60ed.gz deleted file mode 100644 index 94503d354f..0000000000 Binary files a/_darcs/patches/20081223195722-84dde-7416c826728867e431511266ce18699d129a60ed.gz and /dev/null differ diff --git a/_darcs/patches/20081225144601-7b5ce-4846f3d036c36037836d15ed672c10ba33f9f84c.gz b/_darcs/patches/20081225144601-7b5ce-4846f3d036c36037836d15ed672c10ba33f9f84c.gz deleted file mode 100644 index 6a5d9a9db0..0000000000 Binary files a/_darcs/patches/20081225144601-7b5ce-4846f3d036c36037836d15ed672c10ba33f9f84c.gz and /dev/null differ diff --git a/_darcs/patches/20081225152207-7b5ce-fe890baabaa8f0bf60b05f7558c1ece3544d9906.gz b/_darcs/patches/20081225152207-7b5ce-fe890baabaa8f0bf60b05f7558c1ece3544d9906.gz deleted file mode 100644 index af4dca4fa9..0000000000 Binary files a/_darcs/patches/20081225152207-7b5ce-fe890baabaa8f0bf60b05f7558c1ece3544d9906.gz and /dev/null differ diff --git a/_darcs/patches/20081226051716-7b5ce-82040320785bab9438aa11cf5efa63fa4cba10ae.gz b/_darcs/patches/20081226051716-7b5ce-82040320785bab9438aa11cf5efa63fa4cba10ae.gz deleted file mode 100644 index 11d42fc5b1..0000000000 Binary files a/_darcs/patches/20081226051716-7b5ce-82040320785bab9438aa11cf5efa63fa4cba10ae.gz and /dev/null differ diff --git a/_darcs/patches/20081228190546-34904-7f0c38f5139a581f3a9e7fd21772b3601450a36b.gz b/_darcs/patches/20081228190546-34904-7f0c38f5139a581f3a9e7fd21772b3601450a36b.gz deleted file mode 100644 index 7bb23cd87f..0000000000 Binary files a/_darcs/patches/20081228190546-34904-7f0c38f5139a581f3a9e7fd21772b3601450a36b.gz and /dev/null differ diff --git a/_darcs/patches/20081230202019-84dde-0aab26044f990fc1039c669cd36860b5389fab64.gz b/_darcs/patches/20081230202019-84dde-0aab26044f990fc1039c669cd36860b5389fab64.gz deleted file mode 100644 index a2f4c4b2fb..0000000000 Binary files a/_darcs/patches/20081230202019-84dde-0aab26044f990fc1039c669cd36860b5389fab64.gz and /dev/null differ diff --git a/_darcs/patches/20081230202513-84dde-47ab363eae62e1b9fc9280e579d348520c1233cc.gz b/_darcs/patches/20081230202513-84dde-47ab363eae62e1b9fc9280e579d348520c1233cc.gz deleted file mode 100644 index 7ce4f582f8..0000000000 Binary files a/_darcs/patches/20081230202513-84dde-47ab363eae62e1b9fc9280e579d348520c1233cc.gz and /dev/null differ diff --git a/_darcs/patches/20081230203747-84dde-dbdb783c8883097af0f69b4c06c2425c54964773.gz b/_darcs/patches/20081230203747-84dde-dbdb783c8883097af0f69b4c06c2425c54964773.gz deleted file mode 100644 index 2cc757c0a8..0000000000 Binary files a/_darcs/patches/20081230203747-84dde-dbdb783c8883097af0f69b4c06c2425c54964773.gz and /dev/null differ diff --git a/_darcs/patches/20081230205939-84dde-4b6096859c6b44169dd3d809442fab15337061b2.gz b/_darcs/patches/20081230205939-84dde-4b6096859c6b44169dd3d809442fab15337061b2.gz deleted file mode 100644 index b44138c6cb..0000000000 Binary files a/_darcs/patches/20081230205939-84dde-4b6096859c6b44169dd3d809442fab15337061b2.gz and /dev/null differ diff --git a/_darcs/patches/20081230210114-84dde-4fbf5b718841ae1c46129a6b58d6b4e239d8be09.gz b/_darcs/patches/20081230210114-84dde-4fbf5b718841ae1c46129a6b58d6b4e239d8be09.gz deleted file mode 100644 index 1374e3b1b3..0000000000 Binary files a/_darcs/patches/20081230210114-84dde-4fbf5b718841ae1c46129a6b58d6b4e239d8be09.gz and /dev/null differ diff --git a/_darcs/patches/20081230211444-84dde-d36ece807afedfa6f918923ba9074f774cbcb5ec.gz b/_darcs/patches/20081230211444-84dde-d36ece807afedfa6f918923ba9074f774cbcb5ec.gz deleted file mode 100644 index 3a9d1d17dd..0000000000 Binary files a/_darcs/patches/20081230211444-84dde-d36ece807afedfa6f918923ba9074f774cbcb5ec.gz and /dev/null differ diff --git a/_darcs/patches/20081230211957-84dde-ea044934e16bb8ef89e762159ecea1fa008b65b9.gz b/_darcs/patches/20081230211957-84dde-ea044934e16bb8ef89e762159ecea1fa008b65b9.gz deleted file mode 100644 index a998181417..0000000000 Binary files a/_darcs/patches/20081230211957-84dde-ea044934e16bb8ef89e762159ecea1fa008b65b9.gz and /dev/null differ diff --git a/_darcs/patches/20081230212202-84dde-d6439ad7061a56c9de0168ced3d95436ca20cb59.gz b/_darcs/patches/20081230212202-84dde-d6439ad7061a56c9de0168ced3d95436ca20cb59.gz deleted file mode 100644 index 2fbd4fe4fd..0000000000 Binary files a/_darcs/patches/20081230212202-84dde-d6439ad7061a56c9de0168ced3d95436ca20cb59.gz and /dev/null differ diff --git a/_darcs/patches/20081231032227-84dde-671346360e569522d5384663d4b808e329d4cf0c.gz b/_darcs/patches/20081231032227-84dde-671346360e569522d5384663d4b808e329d4cf0c.gz deleted file mode 100644 index a98c1e2011..0000000000 Binary files a/_darcs/patches/20081231032227-84dde-671346360e569522d5384663d4b808e329d4cf0c.gz and /dev/null differ diff --git a/_darcs/patches/20090105010407-7b5ce-559da13720b18e3c570e730326f5e5ef2b2dc1ab.gz b/_darcs/patches/20090105010407-7b5ce-559da13720b18e3c570e730326f5e5ef2b2dc1ab.gz deleted file mode 100644 index 5eb98e9e0e..0000000000 Binary files a/_darcs/patches/20090105010407-7b5ce-559da13720b18e3c570e730326f5e5ef2b2dc1ab.gz and /dev/null differ diff --git a/_darcs/patches/20090105040212-7b5ce-37f6195649dc673241e4566a93183b13e428d98f.gz b/_darcs/patches/20090105040212-7b5ce-37f6195649dc673241e4566a93183b13e428d98f.gz deleted file mode 100644 index d497340bd9..0000000000 Binary files a/_darcs/patches/20090105040212-7b5ce-37f6195649dc673241e4566a93183b13e428d98f.gz and /dev/null differ diff --git a/_darcs/patches/20090105045603-7b5ce-2cef1b92d9c91b0db70269d94f42ae06076229b2.gz b/_darcs/patches/20090105045603-7b5ce-2cef1b92d9c91b0db70269d94f42ae06076229b2.gz deleted file mode 100644 index 9c59202f9e..0000000000 Binary files a/_darcs/patches/20090105045603-7b5ce-2cef1b92d9c91b0db70269d94f42ae06076229b2.gz and /dev/null differ diff --git a/_darcs/patches/20090106205738-7b5ce-e80f73130a1f699e8d33f31c63cf90ee259b72cd.gz b/_darcs/patches/20090106205738-7b5ce-e80f73130a1f699e8d33f31c63cf90ee259b72cd.gz deleted file mode 100644 index 74db175f1c..0000000000 Binary files a/_darcs/patches/20090106205738-7b5ce-e80f73130a1f699e8d33f31c63cf90ee259b72cd.gz and /dev/null differ diff --git a/_darcs/patches/pending b/_darcs/patches/pending deleted file mode 100644 index 2c63c08510..0000000000 --- a/_darcs/patches/pending +++ /dev/null @@ -1,2 +0,0 @@ -{ -} diff --git a/_darcs/patches/pending.tentative b/_darcs/patches/pending.tentative deleted file mode 100644 index 2c63c08510..0000000000 --- a/_darcs/patches/pending.tentative +++ /dev/null @@ -1,2 +0,0 @@ -{ -} diff --git a/_darcs/patches/unrevert b/_darcs/patches/unrevert deleted file mode 100644 index f112ac9a51..0000000000 --- a/_darcs/patches/unrevert +++ /dev/null @@ -1,367 +0,0 @@ - -New patches: - -[unrevert -anonymous**20090106212613] { -hunk ./actions/profilesettings.php 57 - return; - } - -+v v v v v v v - if ($this->arg('save')) { - $this->save_profile(); - } else if ($this->arg('upload')) { -hunk ./actions/profilesettings.php 62 - $this->upload_avatar(); -+ } else if ($this->arg('crop')) { -+ $this->crop_avatar(); - } else if ($this->arg('changepass')) { - $this->change_password(); -hunk ./actions/profilesettings.php 66 -+ } else { -+ $this->show_form(_('Unexpected form submission.')); - } -hunk ./actions/profilesettings.php 69 -+************* -+ if ($this->arg('save')) { -+ $this->save_profile(); -+ } else if ($this->arg('upload')) { -+ $this->upload_avatar(); -+ } else if ($this->arg('changepass')) { -+ $this->change_password(); -+ } -+^ ^ ^ ^ ^ ^ ^ - - } - -hunk ./actions/profilesettings.php 164 - - $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); - -+v v v v v v v - if ($avatar) { -hunk ./actions/profilesettings.php 166 -- common_element('img', array('src' => $avatar->url, -+ common_element_start('div', array('id'=>'avatar_preview', 'class'=>'avatar_view')); -+ common_element('h3', null, _("Preview:")); -+ common_element_start('div', array('id'=>'avatar_preview_view')); -+ common_element('img', array('src' => $original->url,//$avatar->url, - 'class' => 'avatar profile', - 'width' => AVATAR_PROFILE_SIZE, - 'height' => AVATAR_PROFILE_SIZE, -hunk ./actions/profilesettings.php 174 - 'alt' => $user->nickname)); -+ common_element_end('div'); -+ common_element_end('div'); -+ -+ foreach(array('avatar_crop_x', 'avatar_crop_y', 'avatar_crop_w', 'avatar_crop_h') as $crop_info) { -+ common_element('input', array('name' => $crop_info, -+ 'type' => 'hidden', -+ 'id' => $crop_info)); -+ } -+ common_submit('crop', _('Crop')); - } -hunk ./actions/profilesettings.php 184 -+************* -+ if ($avatar) { -+ common_element('img', array('src' => $avatar->url, -+ 'class' => 'avatar profile', -+ 'width' => AVATAR_PROFILE_SIZE, -+ 'height' => AVATAR_PROFILE_SIZE, -+ 'alt' => $user->nickname)); -+ } -+^ ^ ^ ^ ^ ^ ^ - - - common_element('input', array('name' => 'MAX_FILE_SIZE', -hunk ./actions/profilesettings.php 429 - $this->show_form(_('Failed updating avatar.')); - } - -+v v v v v v v - @unlink($_FILES['avatarfile']['tmp_name']); - } - -hunk ./actions/profilesettings.php 433 -+ function crop_avatar() { -+ -+ $user = common_current_user(); -+ $profile = $user->getProfile(); -+ -+ $x = $this->arg('avatar_crop_x'); -+ $y = $this->arg('avatar_crop_y'); -+ $w = $this->arg('avatar_crop_w'); -+ $h = $this->arg('avatar_crop_h'); -+ -+ if ($profile->crop_avatars($x, $y, $w, $h)) { -+ $this->show_form(_('Avatar updated.'), true); -+ } else { -+ $this->show_form(_('Failed updating avatar.')); -+ } -+ } -+************* -+ @unlink($_FILES['avatarfile']['tmp_name']); -+ } -+^ ^ ^ ^ ^ ^ ^ -+ - function nickname_exists($nickname) - { - $user = common_current_user(); -hunk ./classes/Avatar.php 82 - } - } - -+v v v v v v v -+ function scale_and_crop($size, $x, $y, $w, $h) { -+ -+ $image_s = imagecreatetruecolor($size, $size); -+ $image_a = $this->to_image(); -+ -+ # Retain alpha channel info if possible for .pngs -+ $background = imagecolorallocate($image_s, 0, 0, 0); -+ ImageColorTransparent($image_s, $background); -+ imagealphablending($image_s, false); -+ -+ imagecopyresized($image_s, $image_a, 0, 0, $x, $y, $size, $size, $w, $h); -+ -+ $ext = ($this->mediattype == 'image/jpeg') ? ".jpeg" : ".png"; -+ -+ $filename = common_avatar_filename($this->profile_id, $ext, $size, common_timestamp()); -+ -+ if ($this->mediatype == 'image/jpeg') { -+ imagejpeg($image_s, common_avatar_path($filename)); -+ } else { -+ imagepng($image_s, common_avatar_path($filename)); -+ } -+ -+ $cropped = DB_DataObject::factory('avatar'); -+ $cropped->profile_id = $this->profile_id; -+ $cropped->width = $size; -+ $cropped->height = $size; -+ $cropped->original = false; -+ $cropped->mediatype = ($this->mediattype == 'image/jpeg') ? 'image/jpeg' : 'image/png'; -+ $cropped->filename = $filename; -+ $cropped->url = common_avatar_url($filename); -+ $cropped->created = DB_DataObject_Cast::dateTime(); # current time -+ -+ if ($cropped->insert()) { -+ return $cropped; -+ } else { -+ return NULL; -+ } -+ } -+ - function to_image() { - $filepath = common_avatar_path($this->filename); - if ($this->mediatype == 'image/gif') { -hunk ./classes/Avatar.php 138 - function &pkeyGet($kv) { - return Memcached_DataObject::pkeyGet('Avatar', $kv); - } -+************* -+ function to_image() -+ { -+ $filepath = common_avatar_path($this->filename); -+ if ($this->mediatype == 'image/gif') { -+ return imagecreatefromgif($filepath); -+ } else if ($this->mediatype == 'image/jpeg') { -+ return imagecreatefromjpeg($filepath); -+ } else if ($this->mediatype == 'image/png') { -+ return imagecreatefrompng($filepath); -+ } else { -+ return null; -+ } -+ } -+ -+ function &pkeyGet($kv) -+ { -+ return Memcached_DataObject::pkeyGet('Avatar', $kv); -+ } -+^ ^ ^ ^ ^ ^ ^ - } -hunk ./classes/Profile.php 124 - return $avatar; - } - -- function delete_avatars() { -+v v v v v v v -+ function crop_avatars($x, $y, $w, $h) { -+ -+ $avatar = $this->getOriginalAvatar(); -+ $this->delete_avatars(false); # don't delete original -+ -+ foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) { -+ # We don't do a scaled one if original is our scaled size -+ if (!($avatar->width == $size && $avatar->height == $size)) { -+ $s = $avatar->scale_and_crop($size, $x, $y, $w, $h); -+ if (!$s) { -+ return NULL; -+ } -+ } -+ } -+ return true; -+ } -+ -+ function delete_avatars($original=true) { - $avatar = new Avatar(); - $avatar->profile_id = $this->id; - $avatar->find(); -hunk ./classes/Profile.php 147 - while ($avatar->fetch()) { -+ if ($avatar->original) { -+ if ($original == false) { -+ continue; -+ } -+ } - $avatar->delete(); - } - return true; -hunk ./classes/Profile.php 156 - } -+************* -+ function delete_avatars() -+ { -+ $avatar = new Avatar(); -+ $avatar->profile_id = $this->id; -+ $avatar->find(); -+ while ($avatar->fetch()) { -+ $avatar->delete(); -+ } -+ return true; -+ } -+^ ^ ^ ^ ^ ^ ^ - - function getBestName() - { -} - -Context: - -[Actually crop your avatar when hitting 'crop' button on profile -Zach Copley **20081212043018] -[Jcrop CSS updates to original/preview views -csarven@controlyourself.ca**20081210025922] -[Jcrop v2 (POST cropping to be completed) -csarven@controlyourself.ca**20081210021607] -[trac750 added some output to the facebook_update.php script -Zach Copley **20090105045603] -[trac750 configurable sync flags for Facebook app (noticesync, replysync) -Zach Copley **20090105040212] -[trac750 Automatically update linked Facebook users' statuses -Zach Copley **20090105010407] -[wrapper element for config.xml -Evan Prodromou **20081230212202] -[better serialization of arrays and booleans in config output -Evan Prodromou **20081230211957] -[implement the api/laconica/config method -Evan Prodromou **20081230211444] -[add some breaks so that switch statement works -Evan Prodromou **20081230210114] -[implement api/laconica/version method -Evan Prodromou **20081230205939] -[add laconica methods to unauthed ones -Evan Prodromou **20081230203747] -[add laconica-specific methods to htaccess.sample -Evan Prodromou **20081230202513] -[Laconica-specific extensions for Twitter API -Evan Prodromou **20081230202019] -[whitespace changes in actions/register.php after global search-and-replace -Evan Prodromou **20081223195722] -[Twitter-bridge: fix for Twitter's new strict policy of rejecting HTTP POSTs with invalid "expect" headers -Zach Copley **20081225152207] -[move opening brace of class declaration to next line -Evan Prodromou **20081223194923 - - Another gigantor PEAR coding standards patch. Here, I've moved the - opening curly bracket on a class statement to the following line. - -] -[TRUE => true, FALSE => false -Evan Prodromou **20081223194428 - - More PEAR coding standards global changes. Here, I've changed all - instances of TRUE to true and FALSE to false. - -] -[change function headers to K&R style -Evan Prodromou **20081223193323 - - Another huge change, for PEAR code standards compliance. Function - headers have to be in K&R style (opening brace on its own line), - instead of having the opening brace on the same line as the function - and parameters. So, a little perl magic found all the function - definitions and move the opening brace to the next line (properly - indented... usually). - -] -[replace NULL with null -Evan Prodromou **20081223192129 - - Another global search-and-replace update. Here, I've replaced the PHP - keyword 'NULL' with its lowercase version. This is another PEAR code - standards change. - -] -[replace all tabs with four spaces -Evan Prodromou **20081223191907 - - The PEAR coding standards decree: no tabs, but indent by four spaces. - I've done a global search-and-replace on all tabs, replacing them by - four spaces. This is a huge change, but it will go a long way to - getting us towards phpcs-compliance. And that means better code - readability, and that means more participation. - -] -[incorrect label on notice list file comment -Evan Prodromou **20081223191430] -[bring lib/noticelist.php into line with PEAR code standards -Evan Prodromou **20081223190851] -[reformat and document lib/mail.php for phpcs conformance -Evan Prodromou **20081223173330] -[bring messaging section (inbox, outbox, mailbox) into PEAR Code Standards compliance -Evan Prodromou **20081222201304 - - Actually refactored the method names on these classes to come into - complete compliance with the code standards. Untested; maybe there are - some bad method names now. - -] -[bring mailbox.php into line with PEAR Coding Standards (mostly) -Evan Prodromou **20081222195041] -[reformat lib/language.php for PEAR Coding Standards -Evan Prodromou **20081222193029] -[reformat lib/jabber.php for phpcs, including doc comments -Evan Prodromou **20081222173249] -[reformat for phpcs -Evan Prodromou **20081221005837] -[reformat lib/daemon.php for phpcs -Evan Prodromou **20081221004607] -[some modifications to assuage phpcs -Evan Prodromou **20081221003955] -[reformatting for phpcs in lib/util.php -Evan Prodromou **20081221003016] -[first step of phpcs-cleanup of index.php -Evan Prodromou **20081221002332] -[more information in subscription notices -Evan Prodromou **20081212171135] -[identica badge by Kent Brewster. For more information see: -Sarven Capadisli **20081218003302 - http://kentbrewster.com/identica-badge/ - - Copy and paste the following wherever you want the badge to show up: - - - - Substitute your own ID in the user parameter. - -] -[TAG 0.6.4.1 -Evan Prodromou **20081220204906] -Patch bundle hash: -316173068f974bea2f9537d45d347f45c12050bc diff --git a/_darcs/prefs/binaries b/_darcs/prefs/binaries deleted file mode 100644 index 94e7f4b469..0000000000 --- a/_darcs/prefs/binaries +++ /dev/null @@ -1,59 +0,0 @@ -# Binary file regexps: -\.png$ -\.PNG$ -\.gz$ -\.GZ$ -\.pdf$ -\.PDF$ -\.jpg$ -\.JPG$ -\.jpeg$ -\.JPEG$ -\.gif$ -\.GIF$ -\.tif$ -\.TIF$ -\.tiff$ -\.TIFF$ -\.pnm$ -\.PNM$ -\.pbm$ -\.PBM$ -\.pgm$ -\.PGM$ -\.ppm$ -\.PPM$ -\.bmp$ -\.BMP$ -\.mng$ -\.MNG$ -\.tar$ -\.TAR$ -\.bz2$ -\.BZ2$ -\.z$ -\.Z$ -\.zip$ -\.ZIP$ -\.jar$ -\.JAR$ -\.so$ -\.SO$ -\.a$ -\.A$ -\.tgz$ -\.TGZ$ -\.mpg$ -\.MPG$ -\.mpeg$ -\.MPEG$ -\.iso$ -\.ISO$ -\.exe$ -\.EXE$ -\.doc$ -\.DOC$ -\.elc$ -\.ELC$ -\.pyc$ -\.PYC$ diff --git a/_darcs/prefs/boring b/_darcs/prefs/boring deleted file mode 100644 index d37927b8c2..0000000000 --- a/_darcs/prefs/boring +++ /dev/null @@ -1,71 +0,0 @@ -# Boring file regexps: -\.hi$ -\.hi-boot$ -\.o-boot$ -\.o$ -\.o\.cmd$ -\.p_hi$ -\.p_o$ -\.tix$ -\.mod$ -\.installed-pkg-config -\.setup-config -\.setup-config -# *.ko files aren't boring by default because they might -# be Korean translations rather than kernel modules. -# \.ko$ -\.ko\.cmd$ -\.mod\.c$ -(^|/)\.tmp_versions($|/) -(^|/)CVS($|/) -\.cvsignore$ -^\.# -(^|/)RCS($|/) -,v$ -(^|/)\.svn($|/) -(^|/)\.hg($|/) -(^|/)\.git($|/) -\.bzr$ -(^|/)SCCS($|/) -~$ -(^|/)_darcs($|/) -(^|/)\.darcsrepo($|/) -\.bak$ -\.BAK$ -\.orig$ -\.rej$ -(^|/)vssver\.scc$ -\.swp$ -(^|/)MT($|/) -(^|/)\{arch\}($|/) -(^|/).arch-ids($|/) -(^|/), -\.prof$ -(^|/)\.DS_Store$ -(^|/)BitKeeper($|/) -(^|/)ChangeSet($|/) -\.py[co]$ -\.elc$ -\.class$ -\.zwc$ -\.revdep-rebuild.* -\..serverauth.* -\# -(^|/)Thumbs\.db$ -(^|/)autom4te\.cache($|/) -(^|/)config\.(log|status)$ -^\.depend$ -(^|/)(tags|TAGS)$ -#(^|/)\.[^/] -(^|/|\.)core$ -\.(obj|a|exe|so|lo|la)$ -^\.darcs-temp-mail$ --darcs-backup[[:digit:]]+$ -\.(fas|fasl|sparcf|x86f)$ -\.part$ -(^|/)\.waf-[[:digit:].]+-[[:digit:]]+($|/) -(^|/)\.lock-wscript$ -^\.darcs-temp-mail$ -\_vti_cnf$ -\_vti_pvt$ -\.gitignore$ diff --git a/_darcs/prefs/boring~ b/_darcs/prefs/boring~ deleted file mode 100644 index 6582fbff3b..0000000000 --- a/_darcs/prefs/boring~ +++ /dev/null @@ -1,70 +0,0 @@ -# Boring file regexps: -\.hi$ -\.hi-boot$ -\.o-boot$ -\.o$ -\.o\.cmd$ -\.p_hi$ -\.p_o$ -\.tix$ -\.mod$ -\.installed-pkg-config -\.setup-config -\.setup-config -# *.ko files aren't boring by default because they might -# be Korean translations rather than kernel modules. -# \.ko$ -\.ko\.cmd$ -\.mod\.c$ -(^|/)\.tmp_versions($|/) -(^|/)CVS($|/) -\.cvsignore$ -^\.# -(^|/)RCS($|/) -,v$ -(^|/)\.svn($|/) -(^|/)\.hg($|/) -(^|/)\.git($|/) -\.bzr$ -(^|/)SCCS($|/) -~$ -(^|/)_darcs($|/) -(^|/)\.darcsrepo($|/) -\.bak$ -\.BAK$ -\.orig$ -\.rej$ -(^|/)vssver\.scc$ -\.swp$ -(^|/)MT($|/) -(^|/)\{arch\}($|/) -(^|/).arch-ids($|/) -(^|/), -\.prof$ -(^|/)\.DS_Store$ -(^|/)BitKeeper($|/) -(^|/)ChangeSet($|/) -\.py[co]$ -\.elc$ -\.class$ -\.zwc$ -\.revdep-rebuild.* -\..serverauth.* -\# -(^|/)Thumbs\.db$ -(^|/)autom4te\.cache($|/) -(^|/)config\.(log|status)$ -^\.depend$ -(^|/)(tags|TAGS)$ -#(^|/)\.[^/] -(^|/|\.)core$ -\.(obj|a|exe|so|lo|la)$ -^\.darcs-temp-mail$ --darcs-backup[[:digit:]]+$ -\.(fas|fasl|sparcf|x86f)$ -\.part$ -(^|/)\.waf-[[:digit:].]+-[[:digit:]]+($|/) -(^|/)\.lock-wscript$ -^\.darcs-temp-mail$ -\_vti_cnf$ -\_vti_pvt$ diff --git a/_darcs/prefs/defaultrepo b/_darcs/prefs/defaultrepo deleted file mode 100644 index cd3b343a74..0000000000 --- a/_darcs/prefs/defaultrepo +++ /dev/null @@ -1 +0,0 @@ -/home/evan/Code/laconica.trunk diff --git a/_darcs/prefs/motd b/_darcs/prefs/motd deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/_darcs/prefs/repos b/_darcs/prefs/repos deleted file mode 100644 index 86caa0b256..0000000000 --- a/_darcs/prefs/repos +++ /dev/null @@ -1,2 +0,0 @@ -/home/evan/Code/laconica.repo -/home/evan/Code/laconica.trunk diff --git a/_darcs/pristine/COPYING b/_darcs/pristine/COPYING deleted file mode 100644 index dba13ed2dd..0000000000 --- a/_darcs/pristine/COPYING +++ /dev/null @@ -1,661 +0,0 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. diff --git a/_darcs/pristine/README b/_darcs/pristine/README deleted file mode 100644 index a3ea5fa585..0000000000 --- a/_darcs/pristine/README +++ /dev/null @@ -1,1162 +0,0 @@ ------- -README ------- - -Laconica 0.6.4 ("Catapult") -11 December 2008 - -This is the README file for Laconica, the Open Source microblogging -platform. It includes installation instructions, descriptions of -options you can set, warnings, tips, and general info for -administrators. Information on using Laconica can be found in the -"doc" subdirectory or in the "help" section on-line. - -About -===== - -Laconica (pronounced "luh-KAWN-ih-kuh") is a Free and Open Source -microblogging platform. It helps people in a community, company or -group to exchange short (140 character) messages over the Web. Users -can choose which people to "follow" and receive only their friends' or -colleagues' status messages. It provides a similar service to sites -like Twitter, Jaiku, Pownce and Plurk. - -With a little work, status messages can be sent to mobile phones, -instant messenger programs (GTalk/Jabber), and specially-designed -desktop clients that support the Twitter API. - -Laconica supports an open standard called OpenMicroBlogging -(http://openmicroblogging.org/) that lets users on different Web sites -or in different companies subscribe to each others' notices. It -enables a distributed social network spread all across the Web. - -Laconica was originally developed for the Open Software Service, -Identi.ca (http://identi.ca/). It is shared with you in hope that you -too make an Open Software Service available to your users. To learn -more, please see the Open Software Service Definition 1.0: - - http://www.openknowledge.org/ossd - -License -======= - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public -License along with this program, in the file "COPYING". If not, see -. - - IMPORTANT NOTE: The GNU Affero General Public License (AGPL) has - *different requirements* from the "regular" GPL. In particular, if - you make modifications to the Laconica source code on your server, - you *MUST MAKE AVAILABLE* the modified version of the source code - to your users under the same license. This is a legal requirement - of using the software, and if you do not wish to share your - modifications, *YOU MAY NOT INSTALL LACONICA*. - -Additional library software has been made available in the 'extlib' -directory. All of it is Free Software and can be distributed under -liberal terms, but those terms may differ in detail from the AGPL's -particulars. See each package's license file in the extlib directory -for additional terms. - -New this version -================ - -This is a minor feature and security improvement version from version -0.6.3 (release 24 Nov 2008). Notable features of version 0.6.4 include: - -- "private" installs won't show any data to the outside world; redirect - non-logged-in users to login. (See "Private" below) -- Ability to "block" a subscriber, which forces them to unsubscribe, - doesn't allow them to subscribe again, and doesn't allow them to send - @-replies -- Fine-grained control of subscriptions; users can choose not to receive - notices from other users over SMS, or IM, or both -- support for Mozilla microsummaries - (https://wiki.mozilla.org/Microsummaries) -- more efficient support for blacklisting users from the public page -- instructions on the public page for people who aren't logged in -- better registration instructions -- a check for license compatibility in receiving OMB notices -- HTML output in RSS 1.0, 2.0, and Atom feeds -- tuned and more reliable 'rememberme' cookies for username/password - and OpenID logins -- a utility for setting user passwords -- a "ban" configuration variable to ban certain users from posting - notices -- an configurable posting throttle to keep any one user from flooding - the site with messages. -- fine-tuned url-shortening: only shorten if it's needed, only expand - certain URLs, and handle failure of URL-shortening services reliably -- disable Ajax input for notices, subscribe, nudge, while the - request is processing -- early implementation of support for Last-Modified and ETag-based - caching -- initial microformats support -- redirect on bad nicknames in URLs -- correctly send emails in recipient's, not sender's, language -- correct email content type -- Change "Most Favorited" page to "Popular" -- properly support the "since" parameter in API calls -- Fix for changes in validate_credentials API call for the Twitter - bridge -- Fix for fatal error when sending email confirmation on registration -- Better replies for commands sent through the Ajax channel -- Add a User-Agent string for OMB requests -- Upgrade upstream library XMPPHP -- Upgrade upstream library JQuery Forms -- Code cleanup: checkboxes have proper

    '; - - $cnt = 0; - - while ($notice->fetch() && $cnt <= NOTICES_PER_PAGE) { - $cnt++; - - if ($cnt > NOTICES_PER_PAGE) { - break; - } - - echo $this->render_notice($notice); - } - - echo '
      '; - - $this->pagination($page > 1, $cnt > NOTICES_PER_PAGE, - $page, 'index.php', array('nickname' => $user->nickname)); - - } - -} diff --git a/_darcs/pristine/actions/facebookinvite.php b/_darcs/pristine/actions/facebookinvite.php deleted file mode 100644 index 00efa654b1..0000000000 --- a/_darcs/pristine/actions/facebookinvite.php +++ /dev/null @@ -1,49 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/facebookaction.php'); - -class FacebookinviteAction extends FacebookAction -{ - - function handle($args) - { - parent::handle($args); - - $this->display(); - } - - function display() - { - - $facebook = get_facebook(); - - $fbuid = $facebook->require_login(); - - $this->show_header('Invite'); - - echo '

      Coming soon...

      '; - - $this->show_footer(); - - } - -} diff --git a/_darcs/pristine/actions/facebookremove.php b/_darcs/pristine/actions/facebookremove.php deleted file mode 100644 index a200fefbfe..0000000000 --- a/_darcs/pristine/actions/facebookremove.php +++ /dev/null @@ -1,67 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/facebookaction.php'); - -class FacebookremoveAction extends FacebookAction -{ - - function handle($args) - { - parent::handle($args); - - $secret = common_config('facebook', 'secret'); - - $sig = ''; - - ksort($_POST); - - foreach ($_POST as $key => $val) { - if (substr($key, 0, 7) == 'fb_sig_') { - $sig .= substr($key, 7) . '=' . $val; - } - } - - $sig .= $secret; - $verify = md5($sig); - - if ($verify == $this->arg('fb_sig')) { - - $flink = Foreign_link::getByForeignID($this->arg('fb_sig_user'), 2); - - common_debug("Removing foreign link to Facebook - local user ID: $flink->user_id, Facebook ID: $flink->foreign_id"); - - $result = $flink->delete(); - - if (!$result) { - common_log_db_error($flink, 'DELETE', __FILE__); - common_server_error(_('Couldn\'t remove Facebook user.')); - return; - } - - } else { - # Someone bad tried to remove facebook link? - common_log(LOG_ERR, "Someone from $_SERVER[REMOTE_ADDR] " . - 'unsuccessfully tried to remove a foreign link to Facebook!'); - } - } - -} diff --git a/_darcs/pristine/actions/facebooksettings.php b/_darcs/pristine/actions/facebooksettings.php deleted file mode 100644 index d28b1aa5ca..0000000000 --- a/_darcs/pristine/actions/facebooksettings.php +++ /dev/null @@ -1,113 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/facebookaction.php'); - -class FacebooksettingsAction extends FacebookAction -{ - - function handle($args) - { - parent::handle($args); - - if ($this->arg('save')) { - $this->save_settings(); - } else { - $this->show_form(); - } - } - - - function save_settings() { - - $noticesync = $this->arg('noticesync'); - $replysync = $this->arg('replysync'); - - $facebook = get_facebook(); - $fbuid = $facebook->require_login(); - - $flink = Foreign_link::getByForeignID($fbuid, 2); // 2 == Facebook - - $original = clone($flink); - $flink->set_flags($noticesync, $replysync, false); - $result = $flink->update($original); - - if ($result) { - echo ''; - } - - $this->show_form(); - - } - - function show_form() { - - $facebook = get_facebook(); - $fbuid = $facebook->require_login(); - - $flink = Foreign_link::getByForeignID($fbuid, 2); // 2 == Facebook - - $this->show_header('Settings'); - - $fbml = '' - .'

      Add an Identi.ca box to my profile

      ' - .'

      ' - .'
      '; - - $fbml .= '

      Allow Identi.ca to update my Facebook status

      '; - - if ($facebook->api_client->users_hasAppPermission('status_update')) { - - $fbml .= '
      ' - .'

      Sync preferences

      ' - .'

      '; - - if ($flink->noticesync & FOREIGN_NOTICE_SEND) { - $fbml .= ''; - } else { - $fbml .= ''; - } - - $fbml .= '' - .'

      ' - .'

      '; - - if ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) { - $fbml .= ''; - } else { - $fbml .= ''; - } - - $fbml .= '' - .'

      ' - .'

      ' - .'' - .'

      ' - .'
      '; - - } - - echo $fbml; - - $this->show_footer(); - } - -} diff --git a/_darcs/pristine/actions/favor.php b/_darcs/pristine/actions/favor.php deleted file mode 100644 index 8103f8181b..0000000000 --- a/_darcs/pristine/actions/favor.php +++ /dev/null @@ -1,97 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/mail.php'); - -class FavorAction extends Action -{ - - function handle($args) - { - parent::handle($args); - - if (!common_logged_in()) { - common_user_error(_('Not logged in.')); - return; - } - - $user = common_current_user(); - - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - common_redirect(common_local_url('showfavorites', array('nickname' => $user->nickname))); - return; - } - - $id = $this->trimmed('notice'); - - $notice = Notice::staticGet($id); - - # CSRF protection - - $token = $this->trimmed('token-'.$notice->id); - if (!$token || $token != common_session_token()) { - $this->client_error(_("There was a problem with your session token. Try again, please.")); - return; - } - - if ($user->hasFave($notice)) { - $this->client_error(_('This notice is already a favorite!')); - return; - } - - $fave = Fave::addNew($user, $notice); - - if (!$fave) { - $this->server_error(_('Could not create favorite.')); - return; - } - - $this->notify($fave, $notice, $user); - $user->blowFavesCache(); - - if ($this->boolean('ajax')) { - common_start_html('text/xml;charset=utf-8', true); - common_element_start('head'); - common_element('title', null, _('Disfavor favorite')); - common_element_end('head'); - common_element_start('body'); - common_disfavor_form($notice); - common_element_end('body'); - common_element_end('html'); - } else { - common_redirect(common_local_url('showfavorites', - array('nickname' => $user->nickname))); - } - } - - function notify($fave, $notice, $user) - { - $other = User::staticGet('id', $notice->profile_id); - if ($other && $other->id != $user->id) { - if ($other->email && $other->emailnotifyfav) { - mail_notify_fave($other, $user, $notice); - } - # XXX: notify by IM - # XXX: notify by SMS - } - } - -} diff --git a/_darcs/pristine/actions/favorited.php b/_darcs/pristine/actions/favorited.php deleted file mode 100644 index 71a9e026e5..0000000000 --- a/_darcs/pristine/actions/favorited.php +++ /dev/null @@ -1,105 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/stream.php'); - -class FavoritedAction extends StreamAction -{ - - function handle($args) - { - parent::handle($args); - - $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - - common_show_header(_('Popular notices'), - array($this, 'show_header'), null, - array($this, 'show_top')); - - $this->show_notices($page); - - common_show_footer(); - } - - function show_top() - { - $instr = $this->get_instructions(); - $output = common_markup_to_html($instr); - common_element_start('div', 'instructions'); - common_raw($output); - common_element_end('div'); - $this->public_views_menu(); - } - - function show_header() - { - return; - } - - function get_instructions() - { - return _('Showing recently popular notices'); - } - - function show_notices($page) - { - - $qry = 'SELECT notice.*, sum(exp(-(now() - fave.modified) / %s)) as weight ' . - 'FROM notice JOIN fave ON notice.id = fave.notice_id ' . - 'GROUP BY fave.notice_id ' . - 'ORDER BY weight DESC'; - - $offset = ($page - 1) * NOTICES_PER_PAGE; - $limit = NOTICES_PER_PAGE + 1; - - if (common_config('db','type') == 'pgsql') { - $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; - } else { - $qry .= ' LIMIT ' . $offset . ', ' . $limit; - } - - # Figure out how to cache this query - - $notice = new Notice; - $notice->query(sprintf($qry, common_config('popular', 'dropoff'))); - - common_element_start('ul', array('id' => 'notices')); - - $cnt = 0; - - while ($notice->fetch() && $cnt <= NOTICES_PER_PAGE) { - $cnt++; - - if ($cnt > NOTICES_PER_PAGE) { - break; - } - - $item = new NoticeListItem($notice); - $item->show(); - } - - common_element_end('ul'); - - common_pagination($page > 1, $cnt > NOTICES_PER_PAGE, - $page, 'favorited'); - } - -} diff --git a/_darcs/pristine/actions/favoritesrss.php b/_darcs/pristine/actions/favoritesrss.php deleted file mode 100644 index 8c7ce52bf1..0000000000 --- a/_darcs/pristine/actions/favoritesrss.php +++ /dev/null @@ -1,78 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/rssaction.php'); - -// Formatting of RSS handled by Rss10Action - -class FavoritesrssAction extends Rss10Action -{ - - var $user = null; - - function init() - { - $nickname = $this->trimmed('nickname'); - $this->user = User::staticGet('nickname', $nickname); - - if (!$this->user) { - common_user_error(_('No such user.')); - return false; - } else { - return true; - } - } - - function get_notices($limit=0) - { - - $user = $this->user; - - $notice = $user->favoriteNotices(0, $limit); - - $notices = array(); - - while ($notice->fetch()) { - $notices[] = clone($notice); - } - - return $notices; - } - - function get_channel() - { - $user = $this->user; - $c = array('url' => common_local_url('favoritesrss', - array('nickname' => - $user->nickname)), - 'title' => sprintf(_("%s favorite notices"), $user->nickname), - 'link' => common_local_url('showfavorites', - array('nickname' => - $user->nickname)), - 'description' => sprintf(_('Feed of favorite notices of %s'), $user->nickname)); - return $c; - } - - function get_image() - { - return null; - } -} \ No newline at end of file diff --git a/_darcs/pristine/actions/featured.php b/_darcs/pristine/actions/featured.php deleted file mode 100644 index 2bf8b0b815..0000000000 --- a/_darcs/pristine/actions/featured.php +++ /dev/null @@ -1,108 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/stream.php'); -require_once(INSTALLDIR.'/lib/profilelist.php'); - -class FeaturedAction extends StreamAction -{ - - function handle($args) - { - parent::handle($args); - - $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - - common_show_header(_('Featured users'), - array($this, 'show_header'), null, - array($this, 'show_top')); - - $this->show_notices($page); - - common_show_footer(); - } - - function show_top() - { - $instr = $this->get_instructions(); - $output = common_markup_to_html($instr); - common_element_start('div', 'instructions'); - common_raw($output); - common_element_end('div'); - $this->public_views_menu(); - } - - function show_header() - { - } - - function get_instructions() - { - return _('Featured users'); - } - - function show_notices($page) - { - - // XXX: Note I'm doing it this two-stage way because a raw query - // with a JOIN was *not* working. --Zach - - $featured_nicks = common_config('nickname', 'featured'); - - if (count($featured_nicks) > 0) { - - $quoted = array(); - - foreach ($featured_nicks as $nick) { - $quoted[] = "'$nick'"; - } - - $user = new User; - $user->whereAdd(sprintf('nickname IN (%s)', implode(',', $quoted))); - $user->limit(($page - 1) * PROFILES_PER_PAGE, PROFILES_PER_PAGE + 1); - $user->orderBy('user.nickname ASC'); - - $user->find(); - - $profile_ids = array(); - - while ($user->fetch()) { - $profile_ids[] = $user->id; - } - - $profile = new Profile; - $profile->whereAdd(sprintf('profile.id IN (%s)', implode(',', $profile_ids))); - $profile->orderBy('nickname ASC'); - - $cnt = $profile->find(); - - if ($cnt > 0) { - $featured = new ProfileList($profile); - $featured->show_list(); - } - - $profile->free(); - - common_pagination($page > 1, $cnt > PROFILES_PER_PAGE, $page, 'featured'); - } - } - -} \ No newline at end of file diff --git a/_darcs/pristine/actions/finishaddopenid.php b/_darcs/pristine/actions/finishaddopenid.php deleted file mode 100644 index 0ce1680aa6..0000000000 --- a/_darcs/pristine/actions/finishaddopenid.php +++ /dev/null @@ -1,107 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/openid.php'); - -class FinishaddopenidAction extends Action -{ - - function handle($args) - { - parent::handle($args); - if (!common_logged_in()) { - common_user_error(_('Not logged in.')); - } else { - $this->try_login(); - } - } - - function try_login() - { - - $consumer =& oid_consumer(); - - $response = $consumer->complete(common_local_url('finishaddopenid')); - - if ($response->status == Auth_OpenID_CANCEL) { - $this->message(_('OpenID authentication cancelled.')); - return; - } else if ($response->status == Auth_OpenID_FAILURE) { - // Authentication failed; display the error message. - $this->message(sprintf(_('OpenID authentication failed: %s'), $response->message)); - } else if ($response->status == Auth_OpenID_SUCCESS) { - - $display = $response->getDisplayIdentifier(); - $canonical = ($response->endpoint && $response->endpoint->canonicalID) ? - $response->endpoint->canonicalID : $display; - - $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response); - - if ($sreg_resp) { - $sreg = $sreg_resp->contents(); - } - - $cur =& common_current_user(); - $other = oid_get_user($canonical); - - if ($other) { - if ($other->id == $cur->id) { - $this->message(_('You already have this OpenID!')); - } else { - $this->message(_('Someone else already has this OpenID.')); - } - return; - } - - # start a transaction - - $cur->query('BEGIN'); - - $result = oid_link_user($cur->id, $canonical, $display); - - if (!$result) { - $this->message(_('Error connecting user.')); - return; - } - if ($sreg) { - if (!oid_update_user($cur, $sreg)) { - $this->message(_('Error updating profile')); - return; - } - } - - # success! - - $cur->query('COMMIT'); - - oid_set_last($display); - - common_redirect(common_local_url('openidsettings')); - } - } - - function message($msg) - { - common_show_header(_('OpenID Login')); - common_element('p', null, $msg); - common_show_footer(); - } -} diff --git a/_darcs/pristine/actions/finishimmediate.php b/_darcs/pristine/actions/finishimmediate.php deleted file mode 100644 index 0964c39f44..0000000000 --- a/_darcs/pristine/actions/finishimmediate.php +++ /dev/null @@ -1,68 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/openid.php'); - -class FinishimmediateAction extends Action -{ - - function handle($args) - { - parent::handle($args); - - $consumer = oid_consumer(); - - $response = $consumer->complete(common_local_url('finishimmediate')); - - if ($response->status == Auth_OpenID_SUCCESS) { - $display = $response->getDisplayIdentifier(); - $canonical = ($response->endpoint->canonicalID) ? - $response->endpoint->canonicalID : $response->getDisplayIdentifier(); - - $user = oid_get_user($canonical); - - if ($user) { - oid_update_user($user, $sreg); - oid_set_last($display); # refresh for another year - common_set_user($user->nickname); - $this->go_backto(); - return; - } - } - - # Failure! Clear openid so we don't try it again - - oid_clear_last(); - $this->go_backto(); - return; - } - - function go_backto() - { - common_ensure_session(); - $backto = $_SESSION['openid_immediate_backto']; - if (!$backto) { - # gar. Well, push them to the public page - $backto = common_local_url('public'); - } - common_redirect($backto); - } -} diff --git a/_darcs/pristine/actions/finishopenidlogin.php b/_darcs/pristine/actions/finishopenidlogin.php deleted file mode 100644 index bdb8516a32..0000000000 --- a/_darcs/pristine/actions/finishopenidlogin.php +++ /dev/null @@ -1,454 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/openid.php'); - -class FinishopenidloginAction extends Action -{ - - function handle($args) - { - parent::handle($args); - if (common_logged_in()) { - common_user_error(_('Already logged in.')); - } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - if ($this->arg('create')) { - if (!$this->boolean('license')) { - $this->show_form(_('You can\'t register if you don\'t agree to the license.'), - $this->trimmed('newname')); - return; - } - $this->create_new_user(); - } else if ($this->arg('connect')) { - $this->connect_user(); - } else { - common_debug(print_r($this->args, true), __FILE__); - $this->show_form(_('Something weird happened.'), - $this->trimmed('newname')); - } - } else { - $this->try_login(); - } - } - - function show_top($error=null) - { - if ($error) { - common_element('div', array('class' => 'error'), $error); - } else { - global $config; - common_element('div', 'instructions', - sprintf(_('This is the first time you\'ve logged into %s so we must connect your OpenID to a local account. You can either create a new account, or connect with your existing account, if you have one.'), $config['site']['name'])); - } - } - - function show_form($error=null, $username=null) - { - common_show_header(_('OpenID Account Setup'), null, $error, - array($this, 'show_top')); - - common_element_start('form', array('method' => 'post', - 'id' => 'account_connect', - 'action' => common_local_url('finishopenidlogin'))); - common_hidden('token', common_session_token()); - common_element('h2', null, - _('Create new account')); - common_element('p', null, - _('Create a new user with this nickname.')); - common_input('newname', _('New nickname'), - ($username) ? $username : '', - _('1-64 lowercase letters or numbers, no punctuation or spaces')); - common_element_start('p'); - common_element('input', array('type' => 'checkbox', - 'id' => 'license', - 'name' => 'license', - 'value' => 'true')); - common_text(_('My text and files are available under ')); - common_element('a', array(href => common_config('license', 'url')), - common_config('license', 'title')); - common_text(_(' except this private data: password, email address, IM address, phone number.')); - common_element_end('p'); - common_submit('create', _('Create')); - common_element('h2', null, - _('Connect existing account')); - common_element('p', null, - _('If you already have an account, login with your username and password to connect it to your OpenID.')); - common_input('nickname', _('Existing nickname')); - common_password('password', _('Password')); - common_submit('connect', _('Connect')); - common_element_end('form'); - common_show_footer(); - } - - function try_login() - { - - $consumer = oid_consumer(); - - $response = $consumer->complete(common_local_url('finishopenidlogin')); - - if ($response->status == Auth_OpenID_CANCEL) { - $this->message(_('OpenID authentication cancelled.')); - return; - } else if ($response->status == Auth_OpenID_FAILURE) { - // Authentication failed; display the error message. - $this->message(sprintf(_('OpenID authentication failed: %s'), $response->message)); - } else if ($response->status == Auth_OpenID_SUCCESS) { - // This means the authentication succeeded; extract the - // identity URL and Simple Registration data (if it was - // returned). - $display = $response->getDisplayIdentifier(); - $canonical = ($response->endpoint->canonicalID) ? - $response->endpoint->canonicalID : $response->getDisplayIdentifier(); - - $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response); - - if ($sreg_resp) { - $sreg = $sreg_resp->contents(); - } - - $user = oid_get_user($canonical); - - if ($user) { - oid_set_last($display); - # XXX: commented out at @edd's request until better - # control over how data flows from OpenID provider. - # oid_update_user($user, $sreg); - common_set_user($user); - common_real_login(true); - if (isset($_SESSION['openid_rememberme']) && $_SESSION['openid_rememberme']) { - common_rememberme($user); - } - unset($_SESSION['openid_rememberme']); - $this->go_home($user->nickname); - } else { - $this->save_values($display, $canonical, $sreg); - $this->show_form(null, $this->best_new_nickname($display, $sreg)); - } - } - } - - function message($msg) - { - common_show_header(_('OpenID Login')); - common_element('p', null, $msg); - common_show_footer(); - } - - function save_values($display, $canonical, $sreg) - { - common_ensure_session(); - $_SESSION['openid_display'] = $display; - $_SESSION['openid_canonical'] = $canonical; - $_SESSION['openid_sreg'] = $sreg; - } - - function get_saved_values() - { - return array($_SESSION['openid_display'], - $_SESSION['openid_canonical'], - $_SESSION['openid_sreg']); - } - - function create_new_user() - { - - # FIXME: save invite code before redirect, and check here - - if (common_config('site', 'closed') || common_config('site', 'inviteonly')) { - common_user_error(_('Registration not allowed.')); - return; - } - - $nickname = $this->trimmed('newname'); - - if (!Validate::string($nickname, array('min_length' => 1, - 'max_length' => 64, - 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) { - $this->show_form(_('Nickname must have only lowercase letters and numbers and no spaces.')); - return; - } - - if (!User::allowed_nickname($nickname)) { - $this->show_form(_('Nickname not allowed.')); - return; - } - - if (User::staticGet('nickname', $nickname)) { - $this->show_form(_('Nickname already in use. Try another one.')); - return; - } - - list($display, $canonical, $sreg) = $this->get_saved_values(); - - if (!$display || !$canonical) { - common_server_error(_('Stored OpenID not found.')); - return; - } - - # Possible race condition... let's be paranoid - - $other = oid_get_user($canonical); - - if ($other) { - common_server_error(_('Creating new account for OpenID that already has a user.')); - return; - } - - if ($sreg['country']) { - if ($sreg['postcode']) { - # XXX: use postcode to get city and region - # XXX: also, store postcode somewhere -- it's valuable! - $location = $sreg['postcode'] . ', ' . $sreg['country']; - } else { - $location = $sreg['country']; - } - } - - if ($sreg['fullname'] && strlen($sreg['fullname']) <= 255) { - $fullname = $sreg['fullname']; - } - - if ($sreg['email'] && Validate::email($sreg['email'], true)) { - $email = $sreg['email']; - } - - # XXX: add language - # XXX: add timezone - - $user = User::register(array('nickname' => $nickname, - 'email' => $email, - 'fullname' => $fullname, - 'location' => $location)); - - $result = oid_link_user($user->id, $canonical, $display); - - oid_set_last($display); - common_set_user($user); - common_real_login(true); - if (isset($_SESSION['openid_rememberme']) && $_SESSION['openid_rememberme']) { - common_rememberme($user); - } - unset($_SESSION['openid_rememberme']); - common_redirect(common_local_url('showstream', array('nickname' => $user->nickname))); - } - - function connect_user() - { - - $nickname = $this->trimmed('nickname'); - $password = $this->trimmed('password'); - - if (!common_check_user($nickname, $password)) { - $this->show_form(_('Invalid username or password.')); - return; - } - - # They're legit! - - $user = User::staticGet('nickname', $nickname); - - list($display, $canonical, $sreg) = $this->get_saved_values(); - - if (!$display || !$canonical) { - common_server_error(_('Stored OpenID not found.')); - return; - } - - $result = oid_link_user($user->id, $canonical, $display); - - if (!$result) { - common_server_error(_('Error connecting user to OpenID.')); - return; - } - - oid_update_user($user, $sreg); - oid_set_last($display); - common_set_user($user); - common_real_login(true); - if (isset($_SESSION['openid_rememberme']) && $_SESSION['openid_rememberme']) { - common_rememberme($user); - } - unset($_SESSION['openid_rememberme']); - $this->go_home($user->nickname); - } - - function go_home($nickname) - { - $url = common_get_returnto(); - if ($url) { - # We don't have to return to it again - common_set_returnto(null); - } else { - $url = common_local_url('all', - array('nickname' => - $nickname)); - } - common_redirect($url); - } - - function best_new_nickname($display, $sreg) - { - - # Try the passed-in nickname - - if ($sreg['nickname']) { - $nickname = $this->nicknamize($sreg['nickname']); - if ($this->is_new_nickname($nickname)) { - return $nickname; - } - } - - # Try the full name - - if ($sreg['fullname']) { - $fullname = $this->nicknamize($sreg['fullname']); - if ($this->is_new_nickname($fullname)) { - return $fullname; - } - } - - # Try the URL - - $from_url = $this->openid_to_nickname($display); - - if ($from_url && $this->is_new_nickname($from_url)) { - return $from_url; - } - - # XXX: others? - - return null; - } - - function is_new_nickname($str) - { - if (!Validate::string($str, array('min_length' => 1, - 'max_length' => 64, - 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) { - return false; - } - if (!User::allowed_nickname($str)) { - return false; - } - if (User::staticGet('nickname', $str)) { - return false; - } - return true; - } - - function openid_to_nickname($openid) - { - if (Auth_Yadis_identifierScheme($openid) == 'XRI') { - return $this->xri_to_nickname($openid); - } else { - return $this->url_to_nickname($openid); - } - } - - # We try to use an OpenID URL as a legal Laconica user name in this order - # 1. Plain hostname, like http://evanp.myopenid.com/ - # 2. One element in path, like http://profile.typekey.com/EvanProdromou/ - # or http://getopenid.com/evanprodromou - - function url_to_nickname($openid) - { - static $bad = array('query', 'user', 'password', 'port', 'fragment'); - - $parts = parse_url($openid); - - # If any of these parts exist, this won't work - - foreach ($bad as $badpart) { - if (array_key_exists($badpart, $parts)) { - return null; - } - } - - # We just have host and/or path - - # If it's just a host... - if (array_key_exists('host', $parts) && - (!array_key_exists('path', $parts) || strcmp($parts['path'], '/') == 0)) - { - $hostparts = explode('.', $parts['host']); - - # Try to catch common idiom of nickname.service.tld - - if ((count($hostparts) > 2) && - (strlen($hostparts[count($hostparts) - 2]) > 3) && # try to skip .co.uk, .com.au - (strcmp($hostparts[0], 'www') != 0)) - { - return $this->nicknamize($hostparts[0]); - } else { - # Do the whole hostname - return $this->nicknamize($parts['host']); - } - } else { - if (array_key_exists('path', $parts)) { - # Strip starting, ending slashes - $path = preg_replace('@/$@', '', $parts['path']); - $path = preg_replace('@^/@', '', $path); - if (strpos($path, '/') === false) { - return $this->nicknamize($path); - } - } - } - - return null; - } - - function xri_to_nickname($xri) - { - $base = $this->xri_base($xri); - - if (!$base) { - return null; - } else { - # =evan.prodromou - # or @gratis*evan.prodromou - $parts = explode('*', substr($base, 1)); - return $this->nicknamize(array_pop($parts)); - } - } - - function xri_base($xri) - { - if (substr($xri, 0, 6) == 'xri://') { - return substr($xri, 6); - } else { - return $xri; - } - } - - # Given a string, try to make it work as a nickname - - function nicknamize($str) - { - $str = preg_replace('/\W/', '', $str); - return strtolower($str); - } -} diff --git a/_darcs/pristine/actions/finishremotesubscribe.php b/_darcs/pristine/actions/finishremotesubscribe.php deleted file mode 100644 index cee3a18187..0000000000 --- a/_darcs/pristine/actions/finishremotesubscribe.php +++ /dev/null @@ -1,292 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/omb.php'); - -class FinishremotesubscribeAction extends Action -{ - - function handle($args) - { - - parent::handle($args); - - if (common_logged_in()) { - common_user_error(_('You can use the local subscription!')); - return; - } - - $omb = $_SESSION['oauth_authorization_request']; - - if (!$omb) { - common_user_error(_('Not expecting this response!')); - return; - } - - common_debug('stored request: '.print_r($omb,true), __FILE__); - - common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); - - $token = $req->get_parameter('oauth_token'); - - # I think this is the success metric - - if ($token != $omb['token']) { - common_user_error(_('Not authorized.')); - return; - } - - $version = $req->get_parameter('omb_version'); - - if ($version != OMB_VERSION_01) { - common_user_error(_('Unknown version of OMB protocol.')); - return; - } - - $nickname = $req->get_parameter('omb_listener_nickname'); - - if (!$nickname) { - common_user_error(_('No nickname provided by remote server.')); - return; - } - - $profile_url = $req->get_parameter('omb_listener_profile'); - - if (!$profile_url) { - common_user_error(_('No profile URL returned by server.')); - return; - } - - if (!Validate::uri($profile_url, array('allowed_schemes' => array('http', 'https')))) { - common_user_error(_('Invalid profile URL returned by server.')); - return; - } - - if ($profile_url == common_local_url('showstream', array('nickname' => $nickname))) { - common_user_error(_('You can use the local subscription!')); - return; - } - - common_debug('listenee: "'.$omb['listenee'].'"', __FILE__); - - $user = User::staticGet('nickname', $omb['listenee']); - - if (!$user) { - common_user_error(_('User being listened to doesn\'t exist.')); - return; - } - - $other = User::staticGet('uri', $omb['listener']); - - if ($other) { - common_user_error(_('You can use the local subscription!')); - return; - } - - $fullname = $req->get_parameter('omb_listener_fullname'); - $homepage = $req->get_parameter('omb_listener_homepage'); - $bio = $req->get_parameter('omb_listener_bio'); - $location = $req->get_parameter('omb_listener_location'); - $avatar_url = $req->get_parameter('omb_listener_avatar'); - - list($newtok, $newsecret) = $this->access_token($omb); - - if (!$newtok || !$newsecret) { - common_user_error(_('Couldn\'t convert request tokens to access tokens.')); - return; - } - - # XXX: possible attack point; subscribe and return someone else's profile URI - - $remote = Remote_profile::staticGet('uri', $omb['listener']); - - if ($remote) { - $exists = true; - $profile = Profile::staticGet($remote->id); - $orig_remote = clone($remote); - $orig_profile = clone($profile); - # XXX: compare current postNotice and updateProfile URLs to the ones - # stored in the DB to avoid (possibly...) above attack - } else { - $exists = false; - $remote = new Remote_profile(); - $remote->uri = $omb['listener']; - $profile = new Profile(); - } - - $profile->nickname = $nickname; - $profile->profileurl = $profile_url; - - if ($fullname) { - $profile->fullname = $fullname; - } - if ($homepage) { - $profile->homepage = $homepage; - } - if ($bio) { - $profile->bio = $bio; - } - if ($location) { - $profile->location = $location; - } - - if ($exists) { - $profile->update($orig_profile); - } else { - $profile->created = DB_DataObject_Cast::dateTime(); # current time - $id = $profile->insert(); - if (!$id) { - common_server_error(_('Error inserting new profile')); - return; - } - $remote->id = $id; - } - - if ($avatar_url) { - if (!$this->add_avatar($profile, $avatar_url)) { - common_server_error(_('Error inserting avatar')); - return; - } - } - - $remote->postnoticeurl = $omb['post_notice_url']; - $remote->updateprofileurl = $omb['update_profile_url']; - - if ($exists) { - if (!$remote->update($orig_remote)) { - common_server_error(_('Error updating remote profile')); - return; - } - } else { - $remote->created = DB_DataObject_Cast::dateTime(); # current time - if (!$remote->insert()) { - common_server_error(_('Error inserting remote profile')); - return; - } - } - - if ($user->hasBlocked($profile)) { - $this->client_error(_('That user has blocked you from subscribing.')); - return; - } - - $sub = new Subscription(); - - $sub->subscriber = $remote->id; - $sub->subscribed = $user->id; - - $sub_exists = false; - - if ($sub->find(true)) { - $sub_exists = true; - $orig_sub = clone($sub); - } else { - $sub_exists = false; - $sub->created = DB_DataObject_Cast::dateTime(); # current time - } - - $sub->token = $newtok; - $sub->secret = $newsecret; - - if ($sub_exists) { - $result = $sub->update($orig_sub); - } else { - $result = $sub->insert(); - } - - if (!$result) { - common_log_db_error($sub, ($sub_exists) ? 'UPDATE' : 'INSERT', __FILE__); - common_user_error(_('Couldn\'t insert new subscription.')); - return; - } - - # Notify user, if necessary - - mail_subscribe_notify_profile($user, $profile); - - # Clear the data - unset($_SESSION['oauth_authorization_request']); - - # If we show subscriptions in reverse chron order, this should - # show up close to the top of the page - - common_redirect(common_local_url('subscribers', array('nickname' => - $user->nickname))); - } - - function add_avatar($profile, $url) - { - $temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar'); - copy($url, $temp_filename); - return $profile->setOriginal($temp_filename); - } - - function access_token($omb) - { - - common_debug('starting request for access token', __FILE__); - - $con = omb_oauth_consumer(); - $tok = new OAuthToken($omb['token'], $omb['secret']); - - common_debug('using request token "'.$tok.'"', __FILE__); - - $url = $omb['access_token_url']; - - common_debug('using access token url "'.$url.'"', __FILE__); - - # XXX: Is this the right thing to do? Strip off GET params and make them - # POST params? Seems wrong to me. - - $parsed = parse_url($url); - $params = array(); - parse_str($parsed['query'], $params); - - $req = OAuthRequest::from_consumer_and_token($con, $tok, "POST", $url, $params); - - $req->set_parameter('omb_version', OMB_VERSION_01); - - # XXX: test to see if endpoint accepts this signature method - - $req->sign_request(omb_hmac_sha1(), $con, $tok); - - # We re-use this tool's fetcher, since it's pretty good - - common_debug('posting to access token url "'.$req->get_normalized_http_url().'"', __FILE__); - common_debug('posting request data "'.$req->to_postdata().'"', __FILE__); - - $fetcher = Auth_Yadis_Yadis::getHTTPFetcher(); - $result = $fetcher->post($req->get_normalized_http_url(), - $req->to_postdata(), - array('User-Agent' => 'Laconica/' . LACONICA_VERSION)); - - common_debug('got result: "'.print_r($result,true).'"', __FILE__); - - if ($result->status != 200) { - return null; - } - - parse_str($result->body, $return); - - return array($return['oauth_token'], $return['oauth_token_secret']); - } -} diff --git a/_darcs/pristine/actions/foaf.php b/_darcs/pristine/actions/foaf.php deleted file mode 100644 index 30e98960c1..0000000000 --- a/_darcs/pristine/actions/foaf.php +++ /dev/null @@ -1,207 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -define('LISTENER', 1); -define('LISTENEE', -1); -define('BOTH', 0); - -class FoafAction extends Action -{ - - function is_readonly() - { - return true; - } - - function handle($args) - { - parent::handle($args); - - $nickname = $this->trimmed('nickname'); - - $user = User::staticGet('nickname', $nickname); - - if (!$user) { - common_user_error(_('No such user.'), 404); - return; - } - - $profile = $user->getProfile(); - - if (!$profile) { - common_server_error(_('User has no profile.'), 500); - return; - } - - header('Content-Type: application/rdf+xml'); - - common_start_xml(); - common_element_start('rdf:RDF', array('xmlns:rdf' => - 'http://www.w3.org/1999/02/22-rdf-syntax-ns#', - 'xmlns:rdfs' => - 'http://www.w3.org/2000/01/rdf-schema#', - 'xmlns:geo' => - 'http://www.w3.org/2003/01/geo/wgs84_pos#', - 'xmlns' => 'http://xmlns.com/foaf/0.1/')); - - # This is the document about the user - - $this->show_ppd('', $user->uri); - - # XXX: might not be a person - common_element_start('Person', array('rdf:about' => - $user->uri)); - common_element('mbox_sha1sum', null, sha1('mailto:' . $user->email)); - if ($profile->fullname) { - common_element('name', null, $profile->fullname); - } - if ($profile->homepage) { - common_element('homepage', array('rdf:resource' => $profile->homepage)); - } - if ($profile->bio) { - common_element('rdfs:comment', null, $profile->bio); - } - # XXX: more structured location data - if ($profile->location) { - common_element_start('based_near'); - common_element_start('geo:SpatialThing'); - common_element('name', null, $profile->location); - common_element_end('geo:SpatialThing'); - common_element_end('based_near'); - } - - $this->show_microblogging_account($profile, common_root_url()); - - $avatar = $profile->getOriginalAvatar(); - - if ($avatar) { - common_element_start('img'); - common_element_start('Image', array('rdf:about' => $avatar->url)); - foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) { - $scaled = $profile->getAvatar($size); - if (!$scaled->original) { # sometimes the original has one of our scaled sizes - common_element_start('thumbnail'); - common_element('Image', array('rdf:about' => $scaled->url)); - common_element_end('thumbnail'); - } - } - common_element_end('Image'); - common_element_end('img'); - } - - # Get people user is subscribed to - - $person = array(); - - $sub = new Subscription(); - $sub->subscriber = $profile->id; - $sub->whereAdd('subscriber != subscribed'); - - if ($sub->find()) { - while ($sub->fetch()) { - if ($sub->token) { - $other = Remote_profile::staticGet('id', $sub->subscribed); - } else { - $other = User::staticGet('id', $sub->subscribed); - } - if (!$other) { - common_debug('Got a bad subscription: '.print_r($sub,true)); - continue; - } - common_element('knows', array('rdf:resource' => $other->uri)); - $person[$other->uri] = array(LISTENEE, $other); - } - } - - # Get people who subscribe to user - - $sub = new Subscription(); - $sub->subscribed = $profile->id; - $sub->whereAdd('subscriber != subscribed'); - - if ($sub->find()) { - while ($sub->fetch()) { - if ($sub->token) { - $other = Remote_profile::staticGet('id', $sub->subscriber); - } else { - $other = User::staticGet('id', $sub->subscriber); - } - if (!$other) { - common_debug('Got a bad subscription: '.print_r($sub,true)); - continue; - } - if (array_key_exists($other->uri, $person)) { - $person[$other->uri][0] = BOTH; - } else { - $person[$other->uri] = array(LISTENER, $other); - } - } - } - - common_element_end('Person'); - - foreach ($person as $uri => $p) { - $foaf_url = null; - if ($p[1] instanceof User) { - $foaf_url = common_local_url('foaf', array('nickname' => $p[1]->nickname)); - } - $profile = Profile::staticGet($p[1]->id); - common_element_start('Person', array('rdf:about' => $uri)); - if ($p[0] == LISTENER || $p[0] == BOTH) { - common_element('knows', array('rdf:resource' => $user->uri)); - } - $this->show_microblogging_account($profile, ($p[1] instanceof User) ? - common_root_url() : null); - if ($foaf_url) { - common_element('rdfs:seeAlso', array('rdf:resource' => $foaf_url)); - } - common_element_end('Person'); - if ($foaf_url) { - $this->show_ppd($foaf_url, $uri); - } - } - - common_element_end('rdf:RDF'); - } - - function show_ppd($foaf_url, $person_uri) - { - common_element_start('PersonalProfileDocument', array('rdf:about' => $foaf_url)); - common_element('maker', array('rdf:resource' => $person_uri)); - common_element('primaryTopic', array('rdf:resource' => $person_uri)); - common_element_end('PersonalProfileDocument'); - } - - function show_microblogging_account($profile, $service=null) - { - # Their account - common_element_start('holdsAccount'); - common_element_start('OnlineAccount'); - if ($service) { - common_element('accountServiceHomepage', array('rdf:resource' => - $service)); - } - common_element('accountName', null, $profile->nickname); - common_element('homepage', array('rdf:resource' => $profile->profileurl)); - common_element_end('OnlineAccount'); - common_element_end('holdsAccount'); - } -} diff --git a/_darcs/pristine/actions/imsettings.php b/_darcs/pristine/actions/imsettings.php deleted file mode 100644 index 8ecf200ec9..0000000000 --- a/_darcs/pristine/actions/imsettings.php +++ /dev/null @@ -1,280 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/settingsaction.php'); -require_once(INSTALLDIR.'/lib/jabber.php'); - -class ImsettingsAction extends SettingsAction -{ - - function get_instructions() - { - return _('You can send and receive notices through Jabber/GTalk [instant messages](%%doc.im%%). Configure your address and settings below.'); - } - - function show_form($msg=null, $success=false) - { - $user = common_current_user(); - $this->form_header(_('IM Settings'), $msg, $success); - common_element_start('form', array('method' => 'post', - 'id' => 'imsettings', - 'action' => - common_local_url('imsettings'))); - common_hidden('token', common_session_token()); - - common_element('h2', null, _('Address')); - - if ($user->jabber) { - common_element_start('p'); - common_element('span', 'address confirmed', $user->jabber); - common_element('span', 'input_instructions', - _('Current confirmed Jabber/GTalk address.')); - common_hidden('jabber', $user->jabber); - common_element_end('p'); - common_submit('remove', _('Remove')); - } else { - $confirm = $this->get_confirmation(); - if ($confirm) { - common_element_start('p'); - common_element('span', 'address unconfirmed', $confirm->address); - common_element('span', 'input_instructions', - sprintf(_('Awaiting confirmation on this address. Check your Jabber/GTalk account for a message with further instructions. (Did you add %s to your buddy list?)'), jabber_daemon_address())); - common_hidden('jabber', $confirm->address); - common_element_end('p'); - common_submit('cancel', _('Cancel')); - } else { - common_input('jabber', _('IM Address'), - ($this->arg('jabber')) ? $this->arg('jabber') : null, - sprintf(_('Jabber or GTalk address, like "UserName@example.org". First, make sure to add %s to your buddy list in your IM client or on GTalk.'), jabber_daemon_address())); - common_submit('add', _('Add')); - } - } - - common_element('h2', null, _('Preferences')); - - common_checkbox('jabbernotify', - _('Send me notices through Jabber/GTalk.'), - $user->jabbernotify); - common_checkbox('updatefrompresence', - _('Post a notice when my Jabber/GTalk status changes.'), - $user->updatefrompresence); - common_checkbox('jabberreplies', - _('Send me replies through Jabber/GTalk from people I\'m not subscribed to.'), - $user->jabberreplies); - common_checkbox('jabbermicroid', - _('Publish a MicroID for my Jabber/GTalk address.'), - $user->jabbermicroid); - common_submit('save', _('Save')); - - common_element_end('form'); - common_show_footer(); - } - - function get_confirmation() - { - $user = common_current_user(); - $confirm = new Confirm_address(); - $confirm->user_id = $user->id; - $confirm->address_type = 'jabber'; - if ($confirm->find(true)) { - return $confirm; - } else { - return null; - } - } - - function handle_post() - { - - # CSRF protection - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - - if ($this->arg('save')) { - $this->save_preferences(); - } else if ($this->arg('add')) { - $this->add_address(); - } else if ($this->arg('cancel')) { - $this->cancel_confirmation(); - } else if ($this->arg('remove')) { - $this->remove_address(); - } else { - $this->show_form(_('Unexpected form submission.')); - } - } - - function save_preferences() - { - - $jabbernotify = $this->boolean('jabbernotify'); - $updatefrompresence = $this->boolean('updatefrompresence'); - $jabberreplies = $this->boolean('jabberreplies'); - $jabbermicroid = $this->boolean('jabbermicroid'); - - $user = common_current_user(); - - assert(!is_null($user)); # should already be checked - - $user->query('BEGIN'); - - $original = clone($user); - - $user->jabbernotify = $jabbernotify; - $user->updatefrompresence = $updatefrompresence; - $user->jabberreplies = $jabberreplies; - $user->jabbermicroid = $jabbermicroid; - - $result = $user->update($original); - - if ($result === false) { - common_log_db_error($user, 'UPDATE', __FILE__); - common_server_error(_('Couldn\'t update user.')); - return; - } - - $user->query('COMMIT'); - - $this->show_form(_('Preferences saved.'), true); - } - - function add_address() - { - - $user = common_current_user(); - - $jabber = $this->trimmed('jabber'); - - # Some validation - - if (!$jabber) { - $this->show_form(_('No Jabber ID.')); - return; - } - - $jabber = jabber_normalize_jid($jabber); - - if (!$jabber) { - $this->show_form(_('Cannot normalize that Jabber ID')); - return; - } - if (!jabber_valid_base_jid($jabber)) { - $this->show_form(_('Not a valid Jabber ID')); - return; - } else if ($user->jabber == $jabber) { - $this->show_form(_('That is already your Jabber ID.')); - return; - } else if ($this->jabber_exists($jabber)) { - $this->show_form(_('Jabber ID already belongs to another user.')); - return; - } - - $confirm = new Confirm_address(); - $confirm->address = $jabber; - $confirm->address_type = 'jabber'; - $confirm->user_id = $user->id; - $confirm->code = common_confirmation_code(64); - - $result = $confirm->insert(); - - if ($result === false) { - common_log_db_error($confirm, 'INSERT', __FILE__); - common_server_error(_('Couldn\'t insert confirmation code.')); - return; - } - - if (!common_config('queue', 'enabled')) { - jabber_confirm_address($confirm->code, - $user->nickname, - $jabber); - } - - $msg = sprintf(_('A confirmation code was sent to the IM address you added. You must approve %s for sending messages to you.'), jabber_daemon_address()); - - $this->show_form($msg, true); - } - - function cancel_confirmation() - { - $jabber = $this->arg('jabber'); - $confirm = $this->get_confirmation(); - if (!$confirm) { - $this->show_form(_('No pending confirmation to cancel.')); - return; - } - if ($confirm->address != $jabber) { - $this->show_form(_('That is the wrong IM address.')); - return; - } - - $result = $confirm->delete(); - - if (!$result) { - common_log_db_error($confirm, 'DELETE', __FILE__); - $this->server_error(_('Couldn\'t delete email confirmation.')); - return; - } - - $this->show_form(_('Confirmation cancelled.'), true); - } - - function remove_address() - { - - $user = common_current_user(); - $jabber = $this->arg('jabber'); - - # Maybe an old tab open...? - - if ($user->jabber != $jabber) { - $this->show_form(_('That is not your Jabber ID.')); - return; - } - - $user->query('BEGIN'); - $original = clone($user); - $user->jabber = null; - $result = $user->updateKeys($original); - if (!$result) { - common_log_db_error($user, 'UPDATE', __FILE__); - common_server_error(_('Couldn\'t update user.')); - return; - } - $user->query('COMMIT'); - - # XXX: unsubscribe to the old address - - $this->show_form(_('The address was removed.'), true); - } - - function jabber_exists($jabber) - { - $user = common_current_user(); - $other = User::staticGet('jabber', $jabber); - if (!$other) { - return false; - } else { - return $other->id != $user->id; - } - } -} diff --git a/_darcs/pristine/actions/inbox.php b/_darcs/pristine/actions/inbox.php deleted file mode 100644 index da27814a6e..0000000000 --- a/_darcs/pristine/actions/inbox.php +++ /dev/null @@ -1,126 +0,0 @@ -. - * - * @category Message - * @package Laconica - * @author Evan Prodromou - * @copyright 2008 Control Yourself, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ - */ - -if (!defined('LACONICA')) { - exit(1); -} - -require_once INSTALLDIR.'/lib/mailbox.php'; - -/** - * action handler for message inbox - * - * @category Message - * @package Laconica - * @author Evan Prodromou - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ - * @see MailboxAction - */ - -class InboxAction extends MailboxAction -{ - /** - * returns the title of the page - * - * @param User $user current user - * @param int $page current page - * - * @return string localised title of the page - * - * @see MailboxAction::getTitle() - */ - - function getTitle($user, $page) - { - if ($page > 1) { - $title = sprintf(_("Inbox for %s - page %d"), $user->nickname, $page); - } else { - $title = sprintf(_("Inbox for %s"), $user->nickname); - } - return $title; - } - - /** - * retrieve the messages for this user and this page - * - * Does a query for the right messages - * - * @param User $user The current user - * @param int $page The page the user is on - * - * @return Message data object with stream for messages - * - * @see MailboxAction::getMessages() - */ - - function getMessages($user, $page) - { - $message = new Message(); - - $message->to_profile = $user->id; - - $message->orderBy('created DESC, id DESC'); - $message->limit((($page-1)*MESSAGES_PER_PAGE), MESSAGES_PER_PAGE + 1); - - if ($message->find()) { - return $message; - } else { - return null; - } - } - - /** - * returns the profile we want to show with the message - * - * For inboxes, we show the sender. - * - * @param Message $message The message to get the profile for - * - * @return Profile The profile of the message sender - * - * @see MailboxAction::getMessageProfile() - */ - - function getMessageProfile($message) - { - return $message->getFrom(); - } - - /** - * instructions for using this page - * - * @return string localised instructions for using the page - */ - - function getInstructions() - { - return _('This is your inbox, which lists your incoming private messages.'); - } -} diff --git a/_darcs/pristine/actions/invite.php b/_darcs/pristine/actions/invite.php deleted file mode 100644 index 80e022a3df..0000000000 --- a/_darcs/pristine/actions/invite.php +++ /dev/null @@ -1,206 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -class InviteAction extends Action -{ - - function is_readonly() - { - return false; - } - - function handle($args) - { - parent::handle($args); - if (!common_logged_in()) { - $this->client_error(sprintf(_('You must be logged in to invite other users to use %s'), - common_config('site', 'name'))); - return; - } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $this->send_invitations(); - } else { - $this->show_form(); - } - } - - function send_invitations() - { - - # CSRF protection - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - - $user = common_current_user(); - $profile = $user->getProfile(); - - $bestname = $profile->getBestName(); - $sitename = common_config('site', 'name'); - $personal = $this->trimmed('personal'); - - $addresses = explode("\n", $this->trimmed('addresses')); - - foreach ($addresses as $email) { - $email = trim($email); - if (!Validate::email($email, true)) { - $this->show_form(sprintf(_('Invalid email address: %s'), $email)); - return; - } - } - - $already = array(); - $subbed = array(); - - foreach ($addresses as $email) { - $email = common_canonical_email($email); - $other = User::staticGet('email', $email); - if ($other) { - if ($user->isSubscribed($other)) { - $already[] = $other; - } else { - subs_subscribe_to($user, $other); - $subbed[] = $other; - } - } else { - $sent[] = $email; - $this->send_invitation($email, $user, $personal); - } - } - - common_show_header(_('Invitation(s) sent')); - if ($already) { - common_element('p', null, _('You are already subscribed to these users:')); - common_element_start('ul'); - foreach ($already as $other) { - common_element('li', null, sprintf(_('%s (%s)'), $other->nickname, $other->email)); - } - common_element_end('ul'); - } - if ($subbed) { - common_element('p', null, _('These people are already users and you were automatically subscribed to them:')); - common_element_start('ul'); - foreach ($subbed as $other) { - common_element('li', null, sprintf(_('%s (%s)'), $other->nickname, $other->email)); - } - common_element_end('ul'); - } - if ($sent) { - common_element('p', null, _('Invitation(s) sent to the following people:')); - common_element_start('ul'); - foreach ($sent as $other) { - common_element('li', null, $other); - } - common_element_end('ul'); - common_element('p', null, _('You will be notified when your invitees accept the invitation and register on the site. Thanks for growing the community!')); - } - common_show_footer(); - } - - function show_top($error=null) - { - if ($error) { - common_element('p', 'error', $error); - } else { - common_element_start('div', 'instructions'); - common_element('p', null, - _('Use this form to invite your friends and colleagues to use this service.')); - common_element_end('div'); - } - } - - function show_form($error=null) - { - - global $config; - - common_show_header(_('Invite new users'), null, $error, array($this, 'show_top')); - - common_element_start('form', array('method' => 'post', - 'id' => 'invite', - 'action' => common_local_url('invite'))); - common_hidden('token', common_session_token()); - - common_textarea('addresses', _('Email addresses'), - $this->trimmed('addresses'), - _('Addresses of friends to invite (one per line)')); - - common_textarea('personal', _('Personal message'), - $this->trimmed('personal'), - _('Optionally add a personal message to the invitation.')); - - common_submit('send', _('Send')); - - common_element_end('form'); - - common_show_footer(); - } - - function send_invitation($email, $user, $personal) - { - - $profile = $user->getProfile(); - $bestname = $profile->getBestName(); - - $sitename = common_config('site', 'name'); - - $invite = new Invitation(); - - $invite->address = $email; - $invite->address_type = 'email'; - $invite->code = common_confirmation_code(128); - $invite->user_id = $user->id; - $invite->created = common_sql_now(); - - if (!$invite->insert()) { - common_log_db_error($invite, 'INSERT', __FILE__); - return false; - } - - $recipients = array($email); - - $headers['From'] = mail_notify_from(); - $headers['To'] = $email; - $headers['Subject'] = sprintf(_('%1$s has invited you to join them on %2$s'), $bestname, $sitename); - - $body = sprintf(_("%1\$s has invited you to join them on %2\$s (%3\$s).\n\n". - "%2\$s is a micro-blogging service that lets you keep up-to-date with people you know and people who interest you.\n\n". - "You can also share news about yourself, your thoughts, or your life online with people who know about you. ". - "It's also great for meeting new people who share your interests.\n\n". - "%1\$s said:\n\n%4\$s\n\n". - "You can see %1\$s's profile page on %2\$s here:\n\n". - "%5\$s\n\n". - "If you'd like to try the service, click on the link below to accept the invitation.\n\n". - "%6\$s\n\n". - "If not, you can ignore this message. Thanks for your patience and your time.\n\n". - "Sincerely, %2\$s\n"), - $bestname, - $sitename, - common_root_url(), - $personal, - common_local_url('showstream', array('nickname' => $user->nickname)), - common_local_url('register', array('code' => $invite->code))); - - mail_send($recipients, $headers, $body); - } - -} diff --git a/_darcs/pristine/actions/login.php b/_darcs/pristine/actions/login.php deleted file mode 100644 index 8600d44fd3..0000000000 --- a/_darcs/pristine/actions/login.php +++ /dev/null @@ -1,159 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -class LoginAction extends Action -{ - - function is_readonly() - { - return true; - } - - function handle($args) - { - parent::handle($args); - if (common_is_real_login()) { - common_user_error(_('Already logged in.')); - } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $this->check_login(); - } else { - $this->show_form(); - } - } - - function check_login() - { - # XXX: login throttle - - # CSRF protection - token set in common_notice_form() - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->client_error(_('There was a problem with your session token. Try again, please.')); - return; - } - - $nickname = common_canonical_nickname($this->trimmed('nickname')); - $password = $this->arg('password'); - if (common_check_user($nickname, $password)) { - # success! - if (!common_set_user($nickname)) { - common_server_error(_('Error setting user.')); - return; - } - common_real_login(true); - if ($this->boolean('rememberme')) { - common_debug('Adding rememberme cookie for ' . $nickname); - common_rememberme(); - } - # success! - $url = common_get_returnto(); - if ($url) { - # We don't have to return to it again - common_set_returnto(null); - } else { - $url = common_local_url('all', - array('nickname' => - $nickname)); - } - common_redirect($url); - } else { - $this->show_form(_('Incorrect username or password.')); - return; - } - - # success! - if (!common_set_user($user)) { - common_server_error(_('Error setting user.')); - return; - } - - common_real_login(true); - - if ($this->boolean('rememberme')) { - common_debug('Adding rememberme cookie for ' . $nickname); - common_rememberme($user); - } - # success! - $url = common_get_returnto(); - if ($url) { - # We don't have to return to it again - common_set_returnto(null); - } else { - $url = common_local_url('all', - array('nickname' => - $nickname)); - } - common_redirect($url); - } - - function show_form($error=null) - { - common_show_header(_('Login'), null, $error, array($this, 'show_top')); - common_element_start('form', array('method' => 'post', - 'id' => 'login', - 'action' => common_local_url('login'))); - common_input('nickname', _('Nickname')); - common_password('password', _('Password')); - common_checkbox('rememberme', _('Remember me'), false, - _('Automatically login in the future; ' . - 'not for shared computers!')); - common_submit('submit', _('Login')); - common_hidden('token', common_session_token()); - common_element_end('form'); - common_element_start('p'); - common_element('a', array('href' => common_local_url('recoverpassword')), - _('Lost or forgotten password?')); - common_element_end('p'); - common_show_footer(); - } - - function get_instructions() - { - if (common_logged_in() && - !common_is_real_login() && - common_get_returnto()) - { - # rememberme logins have to reauthenticate before - # changing any profile settings (cookie-stealing protection) - return _('For security reasons, please re-enter your ' . - 'user name and password ' . - 'before changing your settings.'); - } else { - return _('Login with your username and password. ' . - 'Don\'t have a username yet? ' . - '[Register](%%action.register%%) a new account, or ' . - 'try [OpenID](%%action.openidlogin%%). '); - } - } - - function show_top($error=null) - { - if ($error) { - common_element('p', 'error', $error); - } else { - $instr = $this->get_instructions(); - $output = common_markup_to_html($instr); - common_element_start('div', 'instructions'); - common_raw($output); - common_element_end('div'); - } - } -} diff --git a/_darcs/pristine/actions/logout.php b/_darcs/pristine/actions/logout.php deleted file mode 100644 index 201378730d..0000000000 --- a/_darcs/pristine/actions/logout.php +++ /dev/null @@ -1,44 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/openid.php'); - -class LogoutAction extends Action -{ - - function is_readonly() - { - return true; - } - - function handle($args) - { - parent::handle($args); - if (!common_logged_in()) { - common_user_error(_('Not logged in.')); - } else { - common_set_user(null); - common_real_login(false); # not logged in - common_forgetme(); # don't log back in! - common_redirect(common_local_url('public')); - } - } -} diff --git a/_darcs/pristine/actions/microsummary.php b/_darcs/pristine/actions/microsummary.php deleted file mode 100644 index 13ddc4e3ed..0000000000 --- a/_darcs/pristine/actions/microsummary.php +++ /dev/null @@ -1,48 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -class MicrosummaryAction extends Action -{ - - function handle($args) - { - - parent::handle($args); - - $nickname = common_canonical_nickname($this->arg('nickname')); - $user = User::staticGet('nickname', $nickname); - - if (!$user) { - $this->client_error(_('No such user'), 404); - return; - } - - $notice = $user->getCurrentNotice(); - - if (!$notice) { - $this->client_error(_('No current status'), 404); - } - - header('Content-Type: text/plain'); - - print $user->nickname . ': ' . $notice->content; - } -} diff --git a/_darcs/pristine/actions/newmessage.php b/_darcs/pristine/actions/newmessage.php deleted file mode 100644 index 27fa9d5182..0000000000 --- a/_darcs/pristine/actions/newmessage.php +++ /dev/null @@ -1,141 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -class NewmessageAction extends Action -{ - - function handle($args) - { - parent::handle($args); - - if (!common_logged_in()) { - $this->client_error(_('Not logged in.'), 403); - } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $this->save_new_message(); - } else { - $this->show_form(); - } - } - - function save_new_message() - { - $user = common_current_user(); - assert($user); # XXX: maybe an error instead... - - # CSRF protection - - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - - $content = $this->trimmed('content'); - $to = $this->trimmed('to'); - - if (!$content) { - $this->show_form(_('No content!')); - return; - } else { - $content_shortened = common_shorten_links($content); - - if (mb_strlen($content_shortened) > 140) { - common_debug("Content = '$content_shortened'", __FILE__); - common_debug("mb_strlen(\$content) = " . mb_strlen($content_shortened), __FILE__); - $this->show_form(_('That\'s too long. Max message size is 140 chars.')); - return; - } - } - - $other = User::staticGet('id', $to); - - if (!$other) { - $this->show_form(_('No recipient specified.')); - return; - } else if (!$user->mutuallySubscribed($other)) { - $this->client_error(_('You can\'t send a message to this user.'), 404); - return; - } else if ($user->id == $other->id) { - $this->client_error(_('Don\'t send a message to yourself; just say it to yourself quietly instead.'), 403); - return; - } - - $message = Message::saveNew($user->id, $other->id, $content, 'web'); - - if (is_string($message)) { - $this->show_form($message); - return; - } - - $this->notify($user, $other, $message); - - $url = common_local_url('outbox', array('nickname' => $user->nickname)); - - common_redirect($url, 303); - } - - function show_top($params) - { - - list($content, $user, $to) = $params; - - assert(!is_null($user)); - - common_message_form($content, $user, $to); - } - - function show_form($msg=null) - { - - $content = $this->trimmed('content'); - $user = common_current_user(); - - $to = $this->trimmed('to'); - - $other = User::staticGet('id', $to); - - if (!$other) { - $this->client_error(_('No such user'), 404); - return; - } - - if (!$user->mutuallySubscribed($other)) { - $this->client_error(_('You can\'t send a message to this user.'), 404); - return; - } - - common_show_header(_('New message'), null, - array($content, $user, $other), - array($this, 'show_top')); - - if ($msg) { - common_element('p', array('id'=>'error'), $msg); - } - - common_show_footer(); - } - - function notify($from, $to, $message) - { - mail_notify_message($message, $from, $to); - # XXX: Jabber, SMS notifications... probably queued - } -} diff --git a/_darcs/pristine/actions/newnotice.php b/_darcs/pristine/actions/newnotice.php deleted file mode 100644 index c412e893de..0000000000 --- a/_darcs/pristine/actions/newnotice.php +++ /dev/null @@ -1,161 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once INSTALLDIR . '/lib/noticelist.php'; - -class NewnoticeAction extends Action -{ - - function handle($args) - { - parent::handle($args); - - if (!common_logged_in()) { - common_user_error(_('Not logged in.')); - } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { - - # CSRF protection - token set in common_notice_form() - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->client_error(_('There was a problem with your session token. Try again, please.')); - return; - } - - $this->save_new_notice(); - } else { - $this->show_form(); - } - } - - function save_new_notice() - { - - $user = common_current_user(); - assert($user); # XXX: maybe an error instead... - $content = $this->trimmed('status_textarea'); - - if (!$content) { - $this->show_form(_('No content!')); - return; - } else { - $content_shortened = common_shorten_links($content); - - if (mb_strlen($content_shortened) > 140) { - common_debug("Content = '$content_shortened'", __FILE__); - common_debug("mb_strlen(\$content) = " . mb_strlen($content_shortened), __FILE__); - $this->show_form(_('That\'s too long. Max notice size is 140 chars.')); - return; - } - } - - $inter = new CommandInterpreter(); - - $cmd = $inter->handle_command($user, $content_shortened); - - if ($cmd) { - if ($this->boolean('ajax')) { - $cmd->execute(new AjaxWebChannel()); - } else { - $cmd->execute(new WebChannel()); - } - return; - } - - $replyto = $this->trimmed('inreplyto'); - - $notice = Notice::saveNew($user->id, $content, 'web', 1, ($replyto == 'false') ? null : $replyto); - - if (is_string($notice)) { - $this->show_form($notice); - return; - } - - common_broadcast_notice($notice); - - if ($this->boolean('ajax')) { - common_start_html('text/xml;charset=utf-8', true); - common_element_start('head'); - common_element('title', null, _('Notice posted')); - common_element_end('head'); - common_element_start('body'); - $this->show_notice($notice); - common_element_end('body'); - common_element_end('html'); - } else { - $returnto = $this->trimmed('returnto'); - - if ($returnto) { - $url = common_local_url($returnto, - array('nickname' => $user->nickname)); - } else { - $url = common_local_url('shownotice', - array('notice' => $notice->id)); - } - common_redirect($url, 303); - } - } - - function ajax_error_msg($msg) - { - common_start_html('text/xml;charset=utf-8', true); - common_element_start('head'); - common_element('title', null, _('Ajax Error')); - common_element_end('head'); - common_element_start('body'); - common_element('p', array('id' => 'error'), $msg); - common_element_end('body'); - common_element_end('html'); - } - - function show_top($content=null) - { - common_notice_form(null, $content); - } - - function show_form($msg=null) - { - if ($msg && $this->boolean('ajax')) { - $this->ajax_error_msg($msg); - return; - } - $content = $this->trimmed('status_textarea'); - if (!$content) { - $replyto = $this->trimmed('replyto'); - $profile = Profile::staticGet('nickname', $replyto); - if ($profile) { - $content = '@' . $profile->nickname . ' '; - } - } - common_show_header(_('New notice'), null, $content, - array($this, 'show_top')); - if ($msg) { - common_element('p', array('id' => 'error'), $msg); - } - common_show_footer(); - } - - function show_notice($notice) - { - $nli = new NoticeListItem($notice); - $nli->show(); - } - -} diff --git a/_darcs/pristine/actions/noticesearch.php b/_darcs/pristine/actions/noticesearch.php deleted file mode 100644 index b36fc8ad20..0000000000 --- a/_darcs/pristine/actions/noticesearch.php +++ /dev/null @@ -1,171 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/searchaction.php'); - -# XXX common parent for people and content search? - -class NoticesearchAction extends SearchAction -{ - - function get_instructions() - { - return _('Search for notices on %%site.name%% by their contents. Separate search terms by spaces; they must be 3 characters or more.'); - } - - function get_title() - { - return _('Text search'); - } - - function show_results($q, $page) - { - - $notice = new Notice(); - - # lcase it for comparison - $q = strtolower($q); - - $search_engine = $notice->getSearchEngine('identica_notices'); - - $search_engine->set_sort_mode('chron'); - # Ask for an extra to see if there's more. - $search_engine->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1); - - if (false === $search_engine->query($q)) { - $cnt = 0; - } - else { - $cnt = $notice->find(); - } - if ($cnt > 0) { - $terms = preg_split('/[\s,]+/', $q); - common_element_start('ul', array('id' => 'notices')); - for ($i = 0; $i < min($cnt, NOTICES_PER_PAGE); $i++) { - if ($notice->fetch()) { - $this->show_notice($notice, $terms); - } else { - // shouldn't happen! - break; - } - } - common_element_end('ul'); - } else { - common_element('p', 'error', _('No results')); - } - - common_pagination($page > 1, $cnt > NOTICES_PER_PAGE, - $page, 'noticesearch', array('q' => $q)); - } - - function show_header($arr) - { - if ($arr) { - $q = $arr[0]; - } - if ($q) { - common_element('link', array('rel' => 'alternate', - 'href' => common_local_url('noticesearchrss', - array('q' => $q)), - 'type' => 'application/rss+xml', - 'title' => _('Search Stream Feed'))); - } - } - - # XXX: refactor and combine with StreamAction::show_notice() - - function show_notice($notice, $terms) - { - $profile = $notice->getProfile(); - if (!$profile) { - common_log_db_error($notice, 'SELECT', __FILE__); - $this->server_error(_('Notice without matching profile')); - return; - } - # XXX: RDFa - common_element_start('li', array('class' => 'notice_single', - 'id' => 'notice-' . $notice->id)); - $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE); - common_element_start('a', array('href' => $profile->profileurl)); - common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_STREAM_SIZE), - 'class' => 'avatar stream', - 'width' => AVATAR_STREAM_SIZE, - 'height' => AVATAR_STREAM_SIZE, - 'alt' => - ($profile->fullname) ? $profile->fullname : - $profile->nickname)); - common_element_end('a'); - common_element('a', array('href' => $profile->profileurl, - 'class' => 'nickname'), - $profile->nickname); - # FIXME: URL, image, video, audio - common_element_start('p', array('class' => 'content')); - if ($notice->rendered) { - common_raw($this->highlight($notice->rendered, $terms)); - } else { - # XXX: may be some uncooked notices in the DB, - # we cook them right now. This should probably disappear in future - # versions (>> 0.4.x) - common_raw($this->highlight(common_render_content($notice->content, $notice), $terms)); - } - common_element_end('p'); - $noticeurl = common_local_url('shownotice', array('notice' => $notice->id)); - common_element_start('p', 'time'); - common_element('a', array('class' => 'permalink', - 'href' => $noticeurl, - 'title' => common_exact_date($notice->created)), - common_date_string($notice->created)); - if ($notice->reply_to) { - $replyurl = common_local_url('shownotice', array('notice' => $notice->reply_to)); - common_text(' ('); - common_element('a', array('class' => 'inreplyto', - 'href' => $replyurl), - _('in reply to...')); - common_text(')'); - } - common_element_start('a', - array('href' => common_local_url('newnotice', - array('replyto' => $profile->nickname)), - 'onclick' => 'doreply("'.$profile->nickname.'"); return false', - 'title' => _('reply'), - 'class' => 'replybutton')); - common_hidden('posttoken', common_session_token()); - - common_raw('→'); - common_element_end('a'); - common_element_end('p'); - common_element_end('li'); - } - - function highlight($text, $terms) - { - /* Highligh serach terms */ - $pattern = '/('.implode('|',array_map('htmlspecialchars', $terms)).')/i'; - $result = preg_replace($pattern, '\\1', $text); - - /* Remove highlighting from inside links, loop incase multiple highlights in links */ - $pattern = '/(href="[^"]*)('.implode('|',array_map('htmlspecialchars', $terms)).')<\/strong>([^"]*")/iU'; - do { - $result = preg_replace($pattern, '\\1\\2\\3', $result, -1, $count); - } while ($count); - return $result; - } -} diff --git a/_darcs/pristine/actions/noticesearchrss.php b/_darcs/pristine/actions/noticesearchrss.php deleted file mode 100644 index 20fe0ff2ab..0000000000 --- a/_darcs/pristine/actions/noticesearchrss.php +++ /dev/null @@ -1,75 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/rssaction.php'); - -// Formatting of RSS handled by Rss10Action - -class NoticesearchrssAction extends Rss10Action -{ - - function init() - { - return true; - } - - function get_notices($limit=0) - { - - $q = $this->trimmed('q'); - $notices = array(); - - $notice = new Notice(); - - # lcase it for comparison - $q = strtolower($q); - - $search_engine = $notice->getSearchEngine('identica_notices'); - $search_engine->set_sort_mode('chron'); - - if (!$limit) $limit = 20; - $search_engine->limit(0, $limit, true); - $search_engine->query($q); - $notice->find(); - - while ($notice->fetch()) { - $notices[] = clone($notice); - } - - return $notices; - } - - function get_channel() - { - global $config; - $q = $this->trimmed('q'); - $c = array('url' => common_local_url('noticesearchrss', array('q' => $q)), - 'title' => $config['site']['name'] . sprintf(_(' Search Stream for "%s"'), $q), - 'link' => common_local_url('noticesearch', array('q' => $q)), - 'description' => sprintf(_('All updates matching search term "%s"'), $q)); - return $c; - } - - function get_image() - { - return null; - } -} diff --git a/_darcs/pristine/actions/nudge.php b/_darcs/pristine/actions/nudge.php deleted file mode 100644 index a6480a5827..0000000000 --- a/_darcs/pristine/actions/nudge.php +++ /dev/null @@ -1,87 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/mail.php'); - -class NudgeAction extends Action -{ - - function handle($args) - { - parent::handle($args); - - if (!common_logged_in()) { - $this->client_error(_('Not logged in.')); - return; - } - - $user = common_current_user(); - $other = User::staticGet('nickname', $this->arg('nickname')); - - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - common_redirect(common_local_url('showstream', array('nickname' => $other->nickname))); - return; - } - - # CSRF protection - - $token = $this->trimmed('token'); - - if (!$token || $token != common_session_token()) { - $this->client_error(_('There was a problem with your session token. Try again, please.')); - return; - } - - if (!$other->email || !$other->emailnotifynudge) { - $this->client_error(_('This user doesn\'t allow nudges or hasn\'t confirmed or set his email yet.')); - return; - } - - $this->notify($user, $other); - - if ($this->boolean('ajax')) { - common_start_html('text/xml;charset=utf-8', true); - common_element_start('head'); - common_element('title', null, _('Nudge sent')); - common_element_end('head'); - common_element_start('body'); - common_nudge_response(); - common_element_end('body'); - common_element_end('html'); - } else { - // display a confirmation to the user - common_redirect(common_local_url('showstream', - array('nickname' => $other->nickname))); - } - } - - function notify($user, $other) - { - if ($other->id != $user->id) { - if ($other->email && $other->emailnotifynudge) { - mail_notify_nudge($user, $other); - } - # XXX: notify by IM - # XXX: notify by SMS - } - } -} - diff --git a/_darcs/pristine/actions/openidlogin.php b/_darcs/pristine/actions/openidlogin.php deleted file mode 100644 index 09679e372e..0000000000 --- a/_darcs/pristine/actions/openidlogin.php +++ /dev/null @@ -1,97 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/openid.php'); - -class OpenidloginAction extends Action -{ - - function handle($args) - { - parent::handle($args); - if (common_logged_in()) { - common_user_error(_('Already logged in.')); - } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $openid_url = $this->trimmed('openid_url'); - - # CSRF protection - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.'), $openid_url); - return; - } - - $rememberme = $this->boolean('rememberme'); - - common_ensure_session(); - - $_SESSION['openid_rememberme'] = $rememberme; - - $result = oid_authenticate($openid_url, - 'finishopenidlogin'); - - if (is_string($result)) { # error message - unset($_SESSION['openid_rememberme']); - $this->show_form($result, $openid_url); - } - } else { - $openid_url = oid_get_last(); - $this->show_form(null, $openid_url); - } - } - - function get_instructions() - { - return _('Login with an [OpenID](%%doc.openid%%) account.'); - } - - function show_top($error=null) - { - if ($error) { - common_element('div', array('class' => 'error'), $error); - } else { - $instr = $this->get_instructions(); - $output = common_markup_to_html($instr); - common_element_start('div', 'instructions'); - common_raw($output); - common_element_end('div'); - } - } - - function show_form($error=null, $openid_url) - { - common_show_header(_('OpenID Login'), null, $error, array($this, 'show_top')); - $formaction = common_local_url('openidlogin'); - common_element_start('form', array('method' => 'post', - 'id' => 'openidlogin', - 'action' => $formaction)); - common_hidden('token', common_session_token()); - common_input('openid_url', _('OpenID URL'), - $openid_url, - _('Your OpenID URL')); - common_checkbox('rememberme', _('Remember me'), false, - _('Automatically login in the future; ' . - 'not for shared computers!')); - common_submit('submit', _('Login')); - common_element_end('form'); - common_show_footer(); - } -} diff --git a/_darcs/pristine/actions/openidsettings.php b/_darcs/pristine/actions/openidsettings.php deleted file mode 100644 index 039236048a..0000000000 --- a/_darcs/pristine/actions/openidsettings.php +++ /dev/null @@ -1,161 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/settingsaction.php'); -require_once(INSTALLDIR.'/lib/openid.php'); - -class OpenidsettingsAction extends SettingsAction -{ - - function get_instructions() - { - return _('[OpenID](%%doc.openid%%) lets you log into many sites ' . - ' with the same user account. '. - ' Manage your associated OpenIDs from here.'); - } - - function show_form($msg=null, $success=false) - { - - $user = common_current_user(); - - $this->form_header(_('OpenID settings'), $msg, $success); - - common_element_start('form', array('method' => 'post', - 'id' => 'openidadd', - 'action' => - common_local_url('openidsettings'))); - common_hidden('token', common_session_token()); - common_element('h2', null, _('Add OpenID')); - common_element('p', null, - _('If you want to add an OpenID to your account, ' . - 'enter it in the box below and click "Add".')); - common_element_start('p'); - common_element('label', array('for' => 'openid_url'), - _('OpenID URL')); - common_element('input', array('name' => 'openid_url', - 'type' => 'text', - 'id' => 'openid_url')); - common_element('input', array('type' => 'submit', - 'id' => 'add', - 'name' => 'add', - 'class' => 'submit', - 'value' => _('Add'))); - common_element_end('p'); - common_element_end('form'); - - $oid = new User_openid(); - $oid->user_id = $user->id; - - $cnt = $oid->find(); - - if ($cnt > 0) { - - common_element('h2', null, _('Remove OpenID')); - - if ($cnt == 1 && !$user->password) { - - common_element('p', null, - _('Removing your only OpenID would make it impossible to log in! ' . - 'If you need to remove it, add another OpenID first.')); - - if ($oid->fetch()) { - common_element_start('p'); - common_element('a', array('href' => $oid->canonical), - $oid->display); - common_element_end('p'); - } - - } else { - - common_element('p', null, - _('You can remove an OpenID from your account '. - 'by clicking the button marked "Remove".')); - $idx = 0; - - while ($oid->fetch()) { - common_element_start('form', array('method' => 'POST', - 'id' => 'openiddelete' . $idx, - 'action' => - common_local_url('openidsettings'))); - common_element_start('p'); - common_hidden('token', common_session_token()); - common_element('a', array('href' => $oid->canonical), - $oid->display); - common_element('input', array('type' => 'hidden', - 'id' => 'openid_url'.$idx, - 'name' => 'openid_url', - 'value' => $oid->canonical)); - common_element('input', array('type' => 'submit', - 'id' => 'remove'.$idx, - 'name' => 'remove', - 'class' => 'submit', - 'value' => _('Remove'))); - common_element_end('p'); - common_element_end('form'); - $idx++; - } - } - } - - common_show_footer(); - } - - function handle_post() - { - # CSRF protection - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - - if ($this->arg('add')) { - $result = oid_authenticate($this->trimmed('openid_url'), 'finishaddopenid'); - if (is_string($result)) { # error message - $this->show_form($result); - } - } else if ($this->arg('remove')) { - $this->remove_openid(); - } else { - $this->show_form(_('Something weird happened.')); - } - } - - function remove_openid() - { - - $openid_url = $this->trimmed('openid_url'); - $oid = User_openid::staticGet('canonical', $openid_url); - if (!$oid) { - $this->show_form(_('No such OpenID.')); - return; - } - $cur = common_current_user(); - if (!$cur || $oid->user_id != $cur->id) { - $this->show_form(_('That OpenID does not belong to you.')); - return; - } - $oid->delete(); - $this->show_form(_('OpenID removed.'), true); - return; - } -} diff --git a/_darcs/pristine/actions/opensearch.php b/_darcs/pristine/actions/opensearch.php deleted file mode 100644 index 96691fa6f3..0000000000 --- a/_darcs/pristine/actions/opensearch.php +++ /dev/null @@ -1,61 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -class OpensearchAction extends Action -{ - - function handle($args) - { - - parent::handle($args); - - $type = $this->trimmed('type'); - - $short_name = ''; - if ($type == 'people') { - $type = 'peoplesearch'; - $short_name = _('People Search'); - } else { - $short_name = _('Notice Search'); - $type = 'noticesearch'; - } - - header('Content-Type: text/html'); - - common_start_xml(); - common_element_start('OpenSearchDescription', array('xmlns' => 'http://a9.com/-/spec/opensearch/1.1/')); - - $short_name = common_config('site', 'name').' '.$short_name; - common_element('ShortName', null, $short_name); - common_element('Contact', null, common_config('site', 'email')); - common_element('Url', array('type' => 'text/html', 'method' => 'get', - 'template' => str_replace('---', '{searchTerms}', common_local_url($type, array('q' => '---'))))); - common_element('Image', array('height' => 16, 'width' => 16, 'type' => 'image/vnd.microsoft.icon'), common_path('favicon.ico')); - common_element('Image', array('height' => 50, 'width' => 50, 'type' => 'image/png'), theme_path('logo.png')); - common_element('AdultContent', null, 'false'); - common_element('Language', null, common_language()); - common_element('OutputEncoding', null, 'UTF-8'); - common_element('InputEncoding', null, 'UTF-8'); - - common_element_end('OpenSearchDescription'); - common_end_xml(); - } -} diff --git a/_darcs/pristine/actions/othersettings.php b/_darcs/pristine/actions/othersettings.php deleted file mode 100644 index c2f08934c0..0000000000 --- a/_darcs/pristine/actions/othersettings.php +++ /dev/null @@ -1,188 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/settingsaction.php'); - -class OthersettingsAction extends SettingsAction -{ - - function get_instructions() - { - return _('Manage various other options.'); - } - - function show_form($msg=null, $success=false) - { - $user = common_current_user(); - - $this->form_header(_('Other Settings'), $msg, $success); - - common_element('h2', null, _('URL Auto-shortening')); - common_element_start('form', array('method' => 'post', - 'id' => 'othersettings', - 'action' => - common_local_url('othersettings'))); - common_hidden('token', common_session_token()); - - $services = array( - '' => 'None', - 'ur1.ca' => 'ur1.ca (free service)', - '2tu.us' => '2tu.us (free service)', - 'ptiturl.com' => 'ptiturl.com', - 'bit.ly' => 'bit.ly', - 'tinyurl.com' => 'tinyurl.com', - 'is.gd' => 'is.gd', - 'snipr.com' => 'snipr.com', - 'metamark.net' => 'metamark.net' - ); - - common_dropdown('urlshorteningservice', _('Service'), $services, _('Automatic shortening service to use.'), false, $user->urlshorteningservice); - - common_submit('save', _('Save')); - - common_element_end('form'); - -// common_element('h2', null, _('Delete my account')); -// $this->show_delete_form(); - - common_show_footer(); - } - - function show_feeds_list($feeds) - { - common_element_start('div', array('class' => 'feedsdel')); - common_element('p', null, 'Feeds:'); - common_element_start('ul', array('class' => 'xoxo')); - - foreach ($feeds as $key => $value) { - $this->common_feed_item($feeds[$key]); - } - common_element_end('ul'); - common_element_end('div'); - } - - //TODO move to common.php (and retrace its origin) - function common_feed_item($feed) - { - $user = common_current_user(); - $nickname = $user->nickname; - - switch($feed['item']) { - case 'notices': default: - $feed_classname = $feed['type']; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = "$nickname's ".$feed['version']." notice feed"; - $feed['textContent'] = "RSS"; - break; - - case 'foaf': - $feed_classname = "foaf"; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = "$nickname's FOAF file"; - $feed['textContent'] = "FOAF"; - break; - } - common_element_start('li'); - common_element('a', array('href' => $feed['href'], - 'class' => $feed_classname, - 'type' => $feed_mimetype, - 'title' => $feed_title), - $feed['textContent']); - common_element_end('li'); - } - -// function show_delete_form() { -// $user = common_current_user(); -// $notices = DB_DataObject::factory('notice'); -// $notices->profile_id = $user->id; -// $notice_count = (int) $notices->count(); -// -// common_element_start('form', array('method' => 'POST', -// 'id' => 'delete', -// 'action' => -// common_local_url('deleteprofile'))); -// -// common_hidden('token', common_session_token()); -// common_element('p', null, "You can copy your notices and contacts by saving the two links below before deleting your account. Be careful, this operation cannot be undone."); -// -// $this->show_feeds_list(array(0=>array('href'=>common_local_url('userrss', array('limit' => $notice_count, 'nickname' => $user->nickname)), -// 'type' => 'rss', -// 'version' => 'RSS 1.0', -// 'item' => 'notices'), -// 1=>array('href'=>common_local_url('foaf',array('nickname' => $user->nickname)), -// 'type' => 'rdf', -// 'version' => 'FOAF', -// 'item' => 'foaf'))); -// -// common_submit('deleteaccount', _('Delete my account')); -// common_element_end('form'); -// } - - function handle_post() - { - - # CSRF protection - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - - if ($this->arg('save')) { - $this->save_preferences(); - }else { - $this->show_form(_('Unexpected form submission.')); - } - } - - function save_preferences() - { - - $urlshorteningservice = $this->trimmed('urlshorteningservice'); - - if (!is_null($urlshorteningservice) && strlen($urlshorteningservice) > 50) { - $this->show_form(_('URL shortening service is too long (max 50 chars).')); - return; - } - - $user = common_current_user(); - - assert(!is_null($user)); # should already be checked - - $user->query('BEGIN'); - - $original = clone($user); - - $user->urlshorteningservice = $urlshorteningservice; - - $result = $user->update($original); - - if ($result === false) { - common_log_db_error($user, 'UPDATE', __FILE__); - common_server_error(_('Couldn\'t update user.')); - return; - } - - $user->query('COMMIT'); - - $this->show_form(_('Preferences saved.'), true); - } -} diff --git a/_darcs/pristine/actions/outbox.php b/_darcs/pristine/actions/outbox.php deleted file mode 100644 index 9fb6dbf9f8..0000000000 --- a/_darcs/pristine/actions/outbox.php +++ /dev/null @@ -1,125 +0,0 @@ -. - * - * @category Message - * @package Laconica - * @author Evan Prodromou - * @copyright 2008 Control Yourself, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ - */ - -if (!defined('LACONICA')) { - exit(1); -} - -require_once INSTALLDIR.'/lib/mailbox.php'; - -/** - * action handler for message outbox - * - * @category Message - * @package Laconica - * @author Evan Prodromou - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ - * @see MailboxAction - */ - -class OutboxAction extends MailboxAction -{ - /** - * returns the title of the page - * - * @param User $user current user - * @param int $page current page - * - * @return string localised title of the page - * - * @see MailboxAction::getTitle() - */ - - function getTitle($user, $page) - { - if ($page > 1) { - $title = sprintf(_("Outbox for %s - page %d"), $user->nickname, $page); - } else { - $title = sprintf(_("Outbox for %s"), $user->nickname); - } - return $title; - } - - /** - * retrieve the messages for this user and this page - * - * Does a query for the right messages - * - * @param User $user The current user - * @param int $page The page the user is on - * - * @return Message data object with stream for messages - * - * @see MailboxAction::getMessages() - */ - - function getMessages($user, $page) - { - $message = new Message(); - - $message->from_profile = $user->id; - $message->orderBy('created DESC, id DESC'); - $message->limit((($page-1)*MESSAGES_PER_PAGE), MESSAGES_PER_PAGE + 1); - - if ($message->find()) { - return $message; - } else { - return null; - } - } - - /** - * returns the profile we want to show with the message - * - * For outboxes, we show the recipient. - * - * @param Message $message The message to get the profile for - * - * @return Profile The profile of the message recipient - * - * @see MailboxAction::getMessageProfile() - */ - - function getMessageProfile($message) - { - return $message->getTo(); - } - - /** - * instructions for using this page - * - * @return string localised instructions for using the page - */ - - function getInstructions() - { - return _('This is your outbox, which lists private messages you have sent.'); - } -} diff --git a/_darcs/pristine/actions/peoplesearch.php b/_darcs/pristine/actions/peoplesearch.php deleted file mode 100644 index 0d0fae4e5c..0000000000 --- a/_darcs/pristine/actions/peoplesearch.php +++ /dev/null @@ -1,91 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/searchaction.php'); -require_once(INSTALLDIR.'/lib/profilelist.php'); - -class PeoplesearchAction extends SearchAction -{ - - function get_instructions() - { - return _('Search for people on %%site.name%% by their name, location, or interests. ' . - 'Separate the terms by spaces; they must be 3 characters or more.'); - } - - function get_title() - { - return _('People search'); - } - - function show_results($q, $page) - { - - $profile = new Profile(); - - # lcase it for comparison - $q = strtolower($q); - - $search_engine = $profile->getSearchEngine('identica_people'); - - $search_engine->set_sort_mode('chron'); - # Ask for an extra to see if there's more. - $search_engine->limit((($page-1)*PROFILES_PER_PAGE), PROFILES_PER_PAGE + 1); - if (false === $search_engine->query($q)) { - $cnt = 0; - } - else { - $cnt = $profile->find(); - } - if ($cnt > 0) { - $terms = preg_split('/[\s,]+/', $q); - $results = new PeopleSearchResults($profile, $terms); - $results->show_list(); - } else { - common_element('p', 'error', _('No results')); - } - - $profile->free(); - - common_pagination($page > 1, $cnt > PROFILES_PER_PAGE, - $page, 'peoplesearch', array('q' => $q)); - } -} - -class PeopleSearchResults extends ProfileList -{ - - var $terms = null; - var $pattern = null; - - function __construct($profile, $terms) - { - parent::__construct($profile); - $this->terms = array_map('preg_quote', - array_map('htmlspecialchars', $terms)); - $this->pattern = '/('.implode('|',$terms).')/i'; - } - - function highlight($text) - { - return preg_replace($this->pattern, '\\1', htmlspecialchars($text)); - } -} diff --git a/_darcs/pristine/actions/peopletag.php b/_darcs/pristine/actions/peopletag.php deleted file mode 100644 index 13a0b7a413..0000000000 --- a/_darcs/pristine/actions/peopletag.php +++ /dev/null @@ -1,109 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/profilelist.php'); - -class PeopletagAction extends Action -{ - - function handle($args) - { - - parent::handle($args); - - $tag = $this->trimmed('tag'); - - if (!common_valid_profile_tag($tag)) { - $this->client_error(sprintf(_('Not a valid people tag: %s'), $tag)); - return; - } - - $page = $this->trimmed('page'); - - if (!$page) { - $page = 1; - } - - # Looks like we're good; show the header - - common_show_header(sprintf(_('Users self-tagged with %s - page %d'), $tag, $page), - null, $tag, array($this, 'show_top')); - - $this->show_people($tag, $page); - - common_show_footer(); - } - - function show_people($tag, $page) - { - - $profile = new Profile(); - - $offset = ($page-1)*PROFILES_PER_PAGE; - $limit = PROFILES_PER_PAGE + 1; - - if (common_config('db','type') == 'pgsql') { - $lim = ' LIMIT ' . $limit . ' OFFSET ' . $offset; - } else { - $lim = ' LIMIT ' . $offset . ', ' . $limit; - } - - # XXX: memcached this - - $profile->query(sprintf('SELECT profile.* ' . - 'FROM profile JOIN profile_tag ' . - 'ON profile.id = profile_tag.tagger ' . - 'WHERE profile_tag.tagger = profile_tag.tagged ' . - 'AND tag = "%s" ' . - 'ORDER BY profile_tag.modified DESC ' . - $lim, $tag)); - - $pl = new ProfileList($profile); - $cnt = $pl->show_list(); - - common_pagination($page > 1, - $cnt > PROFILES_PER_PAGE, - $page, - $this->trimmed('action'), - array('tag' => $tag)); - } - - function show_top($tag) - { - $instr = sprintf(_('These are users who have tagged themselves "%s" ' . - 'to show a common interest, characteristic, hobby or job.'), $tag); - common_element_start('div', 'instructions'); - common_element_start('p'); - common_text($instr); - common_element_end('p'); - common_element_end('div'); - } - - function get_title() - { - return null; - } - - function show_header($arr) - { - return; - } -} diff --git a/_darcs/pristine/actions/postnotice.php b/_darcs/pristine/actions/postnotice.php deleted file mode 100644 index dec62a678f..0000000000 --- a/_darcs/pristine/actions/postnotice.php +++ /dev/null @@ -1,91 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/omb.php'); - -class PostnoticeAction extends Action -{ - function handle($args) - { - parent::handle($args); - try { - common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); - # Note: server-to-server function! - $server = omb_oauth_server(); - list($consumer, $token) = $server->verify_request($req); - if ($this->save_notice($req, $consumer, $token)) { - print "omb_version=".OMB_VERSION_01; - } - } catch (OAuthException $e) { - common_server_error($e->getMessage()); - return; - } - } - - function save_notice(&$req, &$consumer, &$token) - { - $version = $req->get_parameter('omb_version'); - if ($version != OMB_VERSION_01) { - common_user_error(_('Unsupported OMB version'), 400); - return false; - } - # First, check to see - $listenee = $req->get_parameter('omb_listenee'); - $remote_profile = Remote_profile::staticGet('uri', $listenee); - if (!$remote_profile) { - common_user_error(_('Profile unknown'), 403); - return false; - } - $sub = Subscription::staticGet('token', $token->key); - if (!$sub) { - common_user_error(_('No such subscription'), 403); - return false; - } - $content = $req->get_parameter('omb_notice_content'); - $content_shortened = common_shorten_links($content); - if (mb_strlen($content_shortened) > 140) { - common_user_error(_('Invalid notice content'), 400); - return false; - } - $notice_uri = $req->get_parameter('omb_notice'); - if (!Validate::uri($notice_uri) && - !common_valid_tag($notice_uri)) { - common_user_error(_('Invalid notice uri'), 400); - return false; - } - $notice_url = $req->get_parameter('omb_notice_url'); - if ($notice_url && !common_valid_http_url($notice_url)) { - common_user_error(_('Invalid notice url'), 400); - return false; - } - $notice = Notice::staticGet('uri', $notice_uri); - if (!$notice) { - $notice = Notice::saveNew($remote_profile->id, $content, 'omb', false, 0, $notice_uri); - if (is_string($notice)) { - common_server_serror($notice, 500); - return false; - } - common_broadcast_notice($notice, true); - } - return true; - } -} diff --git a/_darcs/pristine/actions/profilesettings.php b/_darcs/pristine/actions/profilesettings.php deleted file mode 100644 index d861919b92..0000000000 --- a/_darcs/pristine/actions/profilesettings.php +++ /dev/null @@ -1,484 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/settingsaction.php'); - -class ProfilesettingsAction extends SettingsAction -{ - - function get_instructions() - { - return _('You can update your personal profile info here '. - 'so people know more about you.'); - } - - function show_form($msg=null, $success=false) - { - $this->form_header(_('Profile settings'), $msg, $success); - $this->show_settings_form(); - common_element('h2', null, _('Avatar')); - $this->show_avatar_form(); - common_element('h2', null, _('Change password')); - $this->show_password_form(); -// common_element('h2', null, _('Delete my account')); -// $this->show_delete_form(); - common_show_footer(); - } - - function handle_post() - { - - # CSRF protection - - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - - if ($this->arg('save')) { - $this->save_profile(); - } else if ($this->arg('upload')) { - $this->upload_avatar(); - } else if ($this->arg('crop')) { - $this->crop_avatar(); - } else if ($this->arg('changepass')) { - $this->change_password(); - } else { - $this->show_form(_('Unexpected form submission.')); - } - - } - - function show_settings_form() - { - - $user = common_current_user(); - $profile = $user->getProfile(); - - common_element_start('form', array('method' => 'POST', - 'id' => 'profilesettings', - 'action' => common_local_url('profilesettings'))); - common_hidden('token', common_session_token()); - - # too much common patterns here... abstractable? - - common_input('nickname', _('Nickname'), - ($this->arg('nickname')) ? $this->arg('nickname') : $profile->nickname, - _('1-64 lowercase letters or numbers, no punctuation or spaces')); - common_input('fullname', _('Full name'), - ($this->arg('fullname')) ? $this->arg('fullname') : $profile->fullname); - common_input('homepage', _('Homepage'), - ($this->arg('homepage')) ? $this->arg('homepage') : $profile->homepage, - _('URL of your homepage, blog, or profile on another site')); - common_textarea('bio', _('Bio'), - ($this->arg('bio')) ? $this->arg('bio') : $profile->bio, - _('Describe yourself and your interests in 140 chars')); - common_input('location', _('Location'), - ($this->arg('location')) ? $this->arg('location') : $profile->location, - _('Where you are, like "City, State (or Region), Country"')); - common_input('tags', _('Tags'), - ($this->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()), - _('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated')); - - $language = common_language(); - common_dropdown('language', _('Language'), get_nice_language_list(), _('Preferred language'), true, $language); - $timezone = common_timezone(); - $timezones = array(); - foreach(DateTimeZone::listIdentifiers() as $k => $v) { - $timezones[$v] = $v; - } - common_dropdown('timezone', _('Timezone'), $timezones, _('What timezone are you normally in?'), true, $timezone); - - common_checkbox('autosubscribe', _('Automatically subscribe to whoever subscribes to me (best for non-humans)'), - ($this->arg('autosubscribe')) ? $this->boolean('autosubscribe') : $user->autosubscribe); - - common_submit('save', _('Save')); - - common_element_end('form'); - - } - - function show_avatar_form() - { - - $user = common_current_user(); - $profile = $user->getProfile(); - - if (!$profile) { - common_log_db_error($user, 'SELECT', __FILE__); - $this->server_error(_('User without matching profile')); - return; - } - - $original = $profile->getOriginalAvatar(); - - - common_element_start('form', array('enctype' => 'multipart/form-data', - 'method' => 'POST', - 'id' => 'avatar', - 'action' => - common_local_url('profilesettings'))); - common_hidden('token', common_session_token()); - - if ($original) { - common_element_start('div', array('id'=>'avatar_original', 'class'=>'avatar_view')); - common_element('h3', null, _("Original:")); - common_element_start('div', array('id'=>'avatar_original_view')); - common_element('img', array('src' => $original->url, - 'class' => 'avatar original', - 'width' => $original->width, - 'height' => $original->height, - 'alt' => $user->nickname)); - common_element_end('div'); - common_element_end('div'); - } - - $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); - - if ($avatar) { - common_element_start('div', array('id'=>'avatar_preview', 'class'=>'avatar_view')); - common_element('h3', null, _("Preview:")); - common_element_start('div', array('id'=>'avatar_preview_view')); - common_element('img', array('src' => $original->url,//$avatar->url, - 'class' => 'avatar profile', - 'width' => AVATAR_PROFILE_SIZE, - 'height' => AVATAR_PROFILE_SIZE, - 'alt' => $user->nickname)); - common_element_end('div'); - common_element_end('div'); - - foreach(array('avatar_crop_x', 'avatar_crop_y', 'avatar_crop_w', 'avatar_crop_h') as $crop_info) { - common_element('input', array('name' => $crop_info, - 'type' => 'hidden', - 'id' => $crop_info)); - } - common_submit('crop', _('Crop')); - } - - common_element('input', array('name' => 'MAX_FILE_SIZE', - 'type' => 'hidden', - 'id' => 'MAX_FILE_SIZE', - 'value' => MAX_AVATAR_SIZE)); - - common_element_start('p'); - - common_element('input', array('name' => 'avatarfile', - 'type' => 'file', - 'id' => 'avatarfile')); - common_element_end('p'); - - common_submit('upload', _('Upload')); - common_element_end('form'); - - } - - function show_password_form() - { - - $user = common_current_user(); - common_element_start('form', array('method' => 'POST', - 'id' => 'password', - 'action' => - common_local_url('profilesettings'))); - - common_hidden('token', common_session_token()); - - # Users who logged in with OpenID won't have a pwd - if ($user->password) { - common_password('oldpassword', _('Old password')); - } - common_password('newpassword', _('New password'), - _('6 or more characters')); - common_password('confirm', _('Confirm'), - _('same as password above')); - common_submit('changepass', _('Change')); - common_element_end('form'); - } - - function save_profile() - { - $nickname = $this->trimmed('nickname'); - $fullname = $this->trimmed('fullname'); - $homepage = $this->trimmed('homepage'); - $bio = $this->trimmed('bio'); - $location = $this->trimmed('location'); - $autosubscribe = $this->boolean('autosubscribe'); - $language = $this->trimmed('language'); - $timezone = $this->trimmed('timezone'); - $tagstring = $this->trimmed('tags'); - - # Some validation - - if (!Validate::string($nickname, array('min_length' => 1, - 'max_length' => 64, - 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) { - $this->show_form(_('Nickname must have only lowercase letters and numbers and no spaces.')); - return; - } else if (!User::allowed_nickname($nickname)) { - $this->show_form(_('Not a valid nickname.')); - return; - } else if (!is_null($homepage) && (strlen($homepage) > 0) && - !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) { - $this->show_form(_('Homepage is not a valid URL.')); - return; - } else if (!is_null($fullname) && strlen($fullname) > 255) { - $this->show_form(_('Full name is too long (max 255 chars).')); - return; - } else if (!is_null($bio) && strlen($bio) > 140) { - $this->show_form(_('Bio is too long (max 140 chars).')); - return; - } else if (!is_null($location) && strlen($location) > 255) { - $this->show_form(_('Location is too long (max 255 chars).')); - return; - } else if (is_null($timezone) || !in_array($timezone, DateTimeZone::listIdentifiers())) { - $this->show_form(_('Timezone not selected.')); - return; - } else if ($this->nickname_exists($nickname)) { - $this->show_form(_('Nickname already in use. Try another one.')); - return; - } else if (!is_null($language) && strlen($language) > 50) { - $this->show_form(_('Language is too long (max 50 chars).')); - return; - } - - if ($tagstring) { - $tags = array_map('common_canonical_tag', preg_split('/[\s,]+/', $tagstring)); - } else { - $tags = array(); - } - - foreach ($tags as $tag) { - if (!common_valid_profile_tag($tag)) { - $this->show_form(sprintf(_('Invalid tag: "%s"'), $tag)); - return; - } - } - - $user = common_current_user(); - - $user->query('BEGIN'); - - if ($user->nickname != $nickname || - $user->language != $language || - $user->timezone != $timezone) { - - common_debug('Updating user nickname from ' . $user->nickname . ' to ' . $nickname, - __FILE__); - common_debug('Updating user language from ' . $user->language . ' to ' . $language, - __FILE__); - common_debug('Updating user timezone from ' . $user->timezone . ' to ' . $timezone, - __FILE__); - - $original = clone($user); - - $user->nickname = $nickname; - $user->language = $language; - $user->timezone = $timezone; - - $result = $user->updateKeys($original); - - if ($result === false) { - common_log_db_error($user, 'UPDATE', __FILE__); - common_server_error(_('Couldn\'t update user.')); - return; - } else { - # Re-initialize language environment if it changed - common_init_language(); - } - } - - # XXX: XOR - - if ($user->autosubscribe ^ $autosubscribe) { - - $original = clone($user); - - $user->autosubscribe = $autosubscribe; - - $result = $user->update($original); - - if ($result === false) { - common_log_db_error($user, 'UPDATE', __FILE__); - common_server_error(_('Couldn\'t update user for autosubscribe.')); - return; - } - } - - $profile = $user->getProfile(); - - $orig_profile = clone($profile); - - $profile->nickname = $user->nickname; - $profile->fullname = $fullname; - $profile->homepage = $homepage; - $profile->bio = $bio; - $profile->location = $location; - $profile->profileurl = common_profile_url($nickname); - - common_debug('Old profile: ' . common_log_objstring($orig_profile), __FILE__); - common_debug('New profile: ' . common_log_objstring($profile), __FILE__); - - $result = $profile->update($orig_profile); - - if (!$result) { - common_log_db_error($profile, 'UPDATE', __FILE__); - common_server_error(_('Couldn\'t save profile.')); - return; - } - - # Set the user tags - - $result = $user->setSelfTags($tags); - - if (!$result) { - common_server_error(_('Couldn\'t save tags.')); - return; - } - - $user->query('COMMIT'); - - common_broadcast_profile($profile); - - $this->show_form(_('Settings saved.'), true); - } - - - function upload_avatar() - { - switch ($_FILES['avatarfile']['error']) { - case UPLOAD_ERR_OK: # success, jump out - break; - case UPLOAD_ERR_INI_SIZE: - case UPLOAD_ERR_FORM_SIZE: - $this->show_form(_('That file is too big.')); - return; - case UPLOAD_ERR_PARTIAL: - @unlink($_FILES['avatarfile']['tmp_name']); - $this->show_form(_('Partial upload.')); - return; - default: - $this->show_form(_('System error uploading file.')); - return; - } - - $info = @getimagesize($_FILES['avatarfile']['tmp_name']); - - if (!$info) { - @unlink($_FILES['avatarfile']['tmp_name']); - $this->show_form(_('Not an image or corrupt file.')); - return; - } - - switch ($info[2]) { - case IMAGETYPE_GIF: - case IMAGETYPE_JPEG: - case IMAGETYPE_PNG: - break; - default: - $this->show_form(_('Unsupported image file format.')); - return; - } - - $user = common_current_user(); - $profile = $user->getProfile(); - - if ($profile->setOriginal($_FILES['avatarfile']['tmp_name'])) { - $this->show_form(_('Avatar updated.'), true); - } else { - $this->show_form(_('Failed updating avatar.')); - } - - @unlink($_FILES['avatarfile']['tmp_name']); - } - - function crop_avatar() { - - $user = common_current_user(); - $profile = $user->getProfile(); - - $x = $this->arg('avatar_crop_x'); - $y = $this->arg('avatar_crop_y'); - $w = $this->arg('avatar_crop_w'); - $h = $this->arg('avatar_crop_h'); - - if ($profile->crop_avatars($x, $y, $w, $h)) { - $this->show_form(_('Avatar updated.'), true); - } else { - $this->show_form(_('Failed updating avatar.')); - } - } - - function nickname_exists($nickname) - { - $user = common_current_user(); - $other = User::staticGet('nickname', $nickname); - if (!$other) { - return false; - } else { - return $other->id != $user->id; - } - } - - function change_password() - { - - $user = common_current_user(); - assert(!is_null($user)); # should already be checked - - # FIXME: scrub input - - $newpassword = $this->arg('newpassword'); - $confirm = $this->arg('confirm'); - $token = $this->arg('token'); - - if (0 != strcmp($newpassword, $confirm)) { - $this->show_form(_('Passwords don\'t match.')); - return; - } - - if ($user->password) { - $oldpassword = $this->arg('oldpassword'); - - if (!common_check_user($user->nickname, $oldpassword)) { - $this->show_form(_('Incorrect old password')); - return; - } - } - - $original = clone($user); - - $user->password = common_munge_password($newpassword, $user->id); - - $val = $user->validate(); - if ($val !== true) { - $this->show_form(_('Error saving user; invalid.')); - return; - } - - if (!$user->update($original)) { - common_server_error(_('Can\'t save new password.')); - return; - } - - $this->show_form(_('Password saved.'), true); - } -} diff --git a/_darcs/pristine/actions/public.php b/_darcs/pristine/actions/public.php deleted file mode 100644 index 039e885e6b..0000000000 --- a/_darcs/pristine/actions/public.php +++ /dev/null @@ -1,105 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/stream.php'); - -class PublicAction extends StreamAction -{ - - function handle($args) - { - parent::handle($args); - - $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - - header('X-XRDS-Location: '. common_local_url('publicxrds')); - - common_show_header(_('Public timeline'), - array($this, 'show_header'), null, - array($this, 'show_top')); - - # XXX: Public sidebar here? - - $this->show_notices($page); - - common_show_footer(); - } - - function show_top() - { - if (common_logged_in()) { - common_notice_form('public'); - } else { - $instr = $this->get_instructions(); - $output = common_markup_to_html($instr); - common_element_start('div', 'instructions'); - common_raw($output); - common_element_end('div'); - } - - $this->public_views_menu(); - - $this->show_feeds_list(array(0=>array('href'=>common_local_url('publicrss'), - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'publicrss'), - 1=>array('href'=>common_local_url('publicatom'), - 'type' => 'atom', - 'version' => 'Atom 1.0', - 'item' => 'publicatom'))); - } - - function get_instructions() - { - return _('This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . - 'based on the Free Software [Laconica](http://laconi.ca/) tool. ' . - '[Join now](%%action.register%%) to share notices about yourself with friends, family, and colleagues! ([Read more](%%doc.help%%))'); - } - - function show_header() - { - common_element('link', array('rel' => 'alternate', - 'href' => common_local_url('publicrss'), - 'type' => 'application/rss+xml', - 'title' => _('Public Stream Feed'))); - # for client side of OpenID authentication - common_element('meta', array('http-equiv' => 'X-XRDS-Location', - 'content' => common_local_url('publicxrds'))); - } - - function show_notices($page) - { - - $cnt = 0; - $notice = Notice::publicStream(($page-1)*NOTICES_PER_PAGE, - NOTICES_PER_PAGE + 1); - - if (!$notice) { - $this->server_error(_('Could not retrieve public stream.')); - return; - } - - $cnt = $this->show_notice_list($notice); - - common_pagination($page > 1, $cnt > NOTICES_PER_PAGE, - $page, 'public'); - } -} diff --git a/_darcs/pristine/actions/publicrss.php b/_darcs/pristine/actions/publicrss.php deleted file mode 100644 index 822bc2db76..0000000000 --- a/_darcs/pristine/actions/publicrss.php +++ /dev/null @@ -1,62 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/rssaction.php'); - -// Formatting of RSS handled by Rss10Action - -class PublicrssAction extends Rss10Action -{ - - function init() - { - return true; - } - - function get_notices($limit=0) - { - - $notices = array(); - - $notice = Notice::publicStream(0, ($limit == 0) ? 48 : $limit); - - while ($notice->fetch()) { - $notices[] = clone($notice); - } - - return $notices; - } - - function get_channel() - { - global $config; - $c = array('url' => common_local_url('publicrss'), - 'title' => sprintf(_('%s Public Stream'), $config['site']['name']), - 'link' => common_local_url('public'), - 'description' => sprintf(_('All updates for %s'), $config['site']['name'])); - return $c; - } - - function get_image() - { - return null; - } -} \ No newline at end of file diff --git a/_darcs/pristine/actions/publicxrds.php b/_darcs/pristine/actions/publicxrds.php deleted file mode 100644 index 3d731d79fa..0000000000 --- a/_darcs/pristine/actions/publicxrds.php +++ /dev/null @@ -1,83 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/openid.php'); - -# XXX: factor out similarities with XrdsAction - -class PublicxrdsAction extends Action -{ - - function is_readonly() - { - return true; - } - - function handle($args) - { - - parent::handle($args); - - header('Content-Type: application/xrds+xml'); - - common_start_xml(); - common_element_start('XRDS', array('xmlns' => 'xri://$xrds')); - - common_element_start('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', - 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', - 'version' => '2.0')); - - common_element('Type', null, 'xri://$xrds*simple'); - - foreach (array('finishopenidlogin', 'finishaddopenid', 'finishimmediate') as $finish) { - $this->show_service(Auth_OpenID_RP_RETURN_TO_URL_TYPE, - common_local_url($finish)); - } - - common_element_end('XRD'); - - common_element_end('XRDS'); - common_end_xml(); - } - - function show_service($type, $uri, $params=null, $sigs=null, $localId=null) - { - common_element_start('Service'); - if ($uri) { - common_element('URI', null, $uri); - } - common_element('Type', null, $type); - if ($params) { - foreach ($params as $param) { - common_element('Type', null, $param); - } - } - if ($sigs) { - foreach ($sigs as $sig) { - common_element('Type', null, $sig); - } - } - if ($localId) { - common_element('LocalID', null, $localId); - } - common_element_end('Service'); - } -} \ No newline at end of file diff --git a/_darcs/pristine/actions/recoverpassword.php b/_darcs/pristine/actions/recoverpassword.php deleted file mode 100644 index bb6ef81d60..0000000000 --- a/_darcs/pristine/actions/recoverpassword.php +++ /dev/null @@ -1,343 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -# You have 24 hours to claim your password - -define(MAX_RECOVERY_TIME, 24 * 60 * 60); - -class RecoverpasswordAction extends Action -{ - - function handle($args) - { - parent::handle($args); - if (common_logged_in()) { - $this->client_error(_('You are already logged in!')); - return; - } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { - if ($this->arg('recover')) { - $this->recover_password(); - } else if ($this->arg('reset')) { - $this->reset_password(); - } else { - $this->client_error(_('Unexpected form submission.')); - } - } else { - if ($this->trimmed('code')) { - $this->check_code(); - } else { - $this->show_form(); - } - } - } - - function check_code() - { - - $code = $this->trimmed('code'); - $confirm = Confirm_address::staticGet('code', $code); - - if (!$confirm) { - $this->client_error(_('No such recovery code.')); - return; - } - if ($confirm->address_type != 'recover') { - $this->client_error(_('Not a recovery code.')); - return; - } - - $user = User::staticGet($confirm->user_id); - - if (!$user) { - $this->server_error(_('Recovery code for unknown user.')); - return; - } - - $touched = strtotime($confirm->modified); - $email = $confirm->address; - - # Burn this code - - $result = $confirm->delete(); - - if (!$result) { - common_log_db_error($confirm, 'DELETE', __FILE__); - common_server_error(_('Error with confirmation code.')); - return; - } - - # These should be reaped, but for now we just check mod time - # Note: it's still deleted; let's avoid a second attempt! - - if ((time() - $touched) > MAX_RECOVERY_TIME) { - common_log(LOG_WARNING, - 'Attempted redemption on recovery code ' . - 'that is ' . $touched . ' seconds old. '); - $this->client_error(_('This confirmation code is too old. ' . - 'Please start again.')); - return; - } - - # If we used an outstanding confirmation to send the email, - # it's been confirmed at this point. - - if (!$user->email) { - $orig = clone($user); - $user->email = $email; - $result = $user->updateKeys($orig); - if (!$result) { - common_log_db_error($user, 'UPDATE', __FILE__); - $this->server_error(_('Could not update user with confirmed email address.')); - return; - } - } - - # Success! - - $this->set_temp_user($user); - $this->show_password_form(); - } - - function set_temp_user(&$user) - { - common_ensure_session(); - $_SESSION['tempuser'] = $user->id; - } - - function get_temp_user() - { - common_ensure_session(); - $user_id = $_SESSION['tempuser']; - if ($user_id) { - $user = User::staticGet($user_id); - } - return $user; - } - - function clear_temp_user() - { - common_ensure_session(); - unset($_SESSION['tempuser']); - } - - function show_top($msg=null) - { - if ($msg) { - common_element('div', 'error', $msg); - } else { - common_element_start('div', 'instructions'); - common_element('p', null, - _('If you\'ve forgotten or lost your' . - ' password, you can get a new one sent to' . - ' the email address you have stored ' . - ' in your account.')); - common_element_end('div'); - } - } - - function show_password_top($msg=null) - { - if ($msg) { - common_element('div', 'error', $msg); - } else { - common_element('div', 'instructions', - _('You\'ve been identified. Enter a ' . - ' new password below. ')); - } - } - - function show_form($msg=null) - { - - common_show_header(_('Recover password'), null, - $msg, array($this, 'show_top')); - - common_element_start('form', array('method' => 'post', - 'id' => 'recoverpassword', - 'action' => common_local_url('recoverpassword'))); - common_input('nicknameoremail', _('Nickname or email'), - $this->trimmed('nicknameoremail'), - _('Your nickname on this server, ' . - 'or your registered email address.')); - common_submit('recover', _('Recover')); - common_element_end('form'); - common_show_footer(); - } - - function show_password_form($msg=null) - { - - common_show_header(_('Reset password'), null, - $msg, array($this, 'show_password_top')); - - common_element_start('form', array('method' => 'post', - 'id' => 'recoverpassword', - 'action' => common_local_url('recoverpassword'))); - common_hidden('token', common_session_token()); - common_password('newpassword', _('New password'), - _('6 or more characters, and don\'t forget it!')); - common_password('confirm', _('Confirm'), - _('Same as password above')); - common_submit('reset', _('Reset')); - common_element_end('form'); - common_show_footer(); - } - - function recover_password() - { - $nore = $this->trimmed('nicknameoremail'); - if (!$nore) { - $this->show_form(_('Enter a nickname or email address.')); - return; - } - - $user = User::staticGet('email', common_canonical_email($nore)); - - if (!$user) { - $user = User::staticGet('nickname', common_canonical_nickname($nore)); - } - - # See if it's an unconfirmed email address - - if (!$user) { - $confirm_email = Confirm_address::staticGet('address', common_canonical_email($nore)); - if ($confirm_email && $confirm_email->address_type == 'email') { - $user = User::staticGet($confirm_email->user_id); - } - } - - if (!$user) { - $this->show_form(_('No user with that email address or username.')); - return; - } - - # Try to get an unconfirmed email address if they used a user name - - if (!$user->email && !$confirm_email) { - $confirm_email = Confirm_address::staticGet('user_id', $user->id); - if ($confirm_email && $confirm_email->address_type != 'email') { - # Skip non-email confirmations - $confirm_email = null; - } - } - - if (!$user->email && !$confirm_email) { - $this->client_error(_('No registered email address for that user.')); - return; - } - - # Success! We have a valid user and a confirmed or unconfirmed email address - - $confirm = new Confirm_address(); - $confirm->code = common_confirmation_code(128); - $confirm->address_type = 'recover'; - $confirm->user_id = $user->id; - $confirm->address = (isset($user->email)) ? $user->email : $confirm_email->address; - - if (!$confirm->insert()) { - common_log_db_error($confirm, 'INSERT', __FILE__); - $this->server_error(_('Error saving address confirmation.')); - return; - } - - $body = "Hey, $user->nickname."; - $body .= "\n\n"; - $body .= 'Someone just asked for a new password ' . - 'for this account on ' . common_config('site', 'name') . '.'; - $body .= "\n\n"; - $body .= 'If it was you, and you want to confirm, use the URL below:'; - $body .= "\n\n"; - $body .= "\t".common_local_url('recoverpassword', - array('code' => $confirm->code)); - $body .= "\n\n"; - $body .= 'If not, just ignore this message.'; - $body .= "\n\n"; - $body .= 'Thanks for your time, '; - $body .= "\n"; - $body .= common_config('site', 'name'); - $body .= "\n"; - - mail_to_user($user, _('Password recovery requested'), $body, $confirm->address); - - common_show_header(_('Password recovery requested')); - common_element('p', null, - _('Instructions for recovering your password ' . - 'have been sent to the email address registered to your ' . - 'account.')); - common_show_footer(); - } - - function reset_password() - { - - # CSRF protection - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - - $user = $this->get_temp_user(); - - if (!$user) { - $this->client_error(_('Unexpected password reset.')); - return; - } - - $newpassword = $this->trimmed('newpassword'); - $confirm = $this->trimmed('confirm'); - - if (!$newpassword || strlen($newpassword) < 6) { - $this->show_password_form(_('Password must be 6 chars or more.')); - return; - } - if ($newpassword != $confirm) { - $this->show_password_form(_('Password and confirmation do not match.')); - return; - } - - # OK, we're ready to go - - $original = clone($user); - - $user->password = common_munge_password($newpassword, $user->id); - - if (!$user->update($original)) { - common_log_db_error($user, 'UPDATE', __FILE__); - common_server_error(_('Can\'t save new password.')); - return; - } - - $this->clear_temp_user(); - - if (!common_set_user($user->nickname)) { - common_server_error(_('Error setting user.')); - return; - } - - common_real_login(true); - - common_show_header(_('Password saved.')); - common_element('p', null, _('New password successfully saved. ' . - 'You are now logged in.')); - common_show_footer(); - } -} diff --git a/_darcs/pristine/actions/register.php b/_darcs/pristine/actions/register.php deleted file mode 100644 index c479816ef5..0000000000 --- a/_darcs/pristine/actions/register.php +++ /dev/null @@ -1,268 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -class RegisterAction extends Action -{ - function handle($args) - { - parent::handle($args); - - if (common_config('site', 'closed')) { - common_user_error(_('Registration not allowed.')); - } else if (common_logged_in()) { - common_user_error(_('Already logged in.')); - } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $this->try_register(); - } else { - $this->show_form(); - } - } - - function try_register() - { - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - - $nickname = $this->trimmed('nickname'); - $email = $this->trimmed('email'); - $fullname = $this->trimmed('fullname'); - $homepage = $this->trimmed('homepage'); - $bio = $this->trimmed('bio'); - $location = $this->trimmed('location'); - - # We don't trim these... whitespace is OK in a password! - - $password = $this->arg('password'); - $confirm = $this->arg('confirm'); - - # invitation code, if any - - $code = $this->trimmed('code'); - - if ($code) { - $invite = Invitation::staticGet($code); - } - - if (common_config('site', 'inviteonly') && !($code && $invite)) { - $this->client_error(_('Sorry, only invited people can register.')); - return; - } - - # Input scrubbing - - $nickname = common_canonical_nickname($nickname); - $email = common_canonical_email($email); - - if (!$this->boolean('license')) { - $this->show_form(_('You can\'t register if you don\'t agree to the license.')); - } else if ($email && !Validate::email($email, true)) { - $this->show_form(_('Not a valid email address.')); - } else if (!Validate::string($nickname, array('min_length' => 1, - 'max_length' => 64, - 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) { - $this->show_form(_('Nickname must have only lowercase letters and numbers and no spaces.')); - } else if ($this->nickname_exists($nickname)) { - $this->show_form(_('Nickname already in use. Try another one.')); - } else if (!User::allowed_nickname($nickname)) { - $this->show_form(_('Not a valid nickname.')); - } else if ($this->email_exists($email)) { - $this->show_form(_('Email address already exists.')); - } else if (!is_null($homepage) && (strlen($homepage) > 0) && - !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) { - $this->show_form(_('Homepage is not a valid URL.')); - return; - } else if (!is_null($fullname) && strlen($fullname) > 255) { - $this->show_form(_('Full name is too long (max 255 chars).')); - return; - } else if (!is_null($bio) && strlen($bio) > 140) { - $this->show_form(_('Bio is too long (max 140 chars).')); - return; - } else if (!is_null($location) && strlen($location) > 255) { - $this->show_form(_('Location is too long (max 255 chars).')); - return; - } else if (strlen($password) < 6) { - $this->show_form(_('Password must be 6 or more characters.')); - return; - } else if ($password != $confirm) { - $this->show_form(_('Passwords don\'t match.')); - } else if ($user = User::register(array('nickname' => $nickname, 'password' => $password, 'email' => $email, - 'fullname' => $fullname, 'homepage' => $homepage, 'bio' => $bio, - 'location' => $location, 'code' => $code))) { - if (!$user) { - $this->show_form(_('Invalid username or password.')); - return; - } - # success! - if (!common_set_user($user)) { - common_server_error(_('Error setting user.')); - return; - } - # this is a real login - common_real_login(true); - if ($this->boolean('rememberme')) { - common_debug('Adding rememberme cookie for ' . $nickname); - common_rememberme($user); - } - # Re-init language env in case it changed (not yet, but soon) - common_init_language(); - $this->show_success(); - } else { - $this->show_form(_('Invalid username or password.')); - } - } - - # checks if *CANONICAL* nickname exists - - function nickname_exists($nickname) - { - $user = User::staticGet('nickname', $nickname); - return ($user !== false); - } - - # checks if *CANONICAL* email exists - - function email_exists($email) - { - $email = common_canonical_email($email); - if (!$email || strlen($email) == 0) { - return false; - } - $user = User::staticGet('email', $email); - return ($user !== false); - } - - function show_top($error=null) - { - if ($error) { - common_element('p', 'error', $error); - } else { - $instr = common_markup_to_html(_('With this form you can create a new account. ' . - 'You can then post notices and link up to friends and colleagues. '. - '(Have an [OpenID](http://openid.net/)? ' . - 'Try our [OpenID registration](%%action.openidlogin%%)!)')); - - common_element_start('div', 'instructions'); - common_raw($instr); - common_element_end('div'); - } - } - - function show_form($error=null) - { - global $config; - - $code = $this->trimmed('code'); - - if ($code) { - $invite = Invitation::staticGet($code); - } - - if (common_config('site', 'inviteonly') && !($code && $invite)) { - $this->client_error(_('Sorry, only invited people can register.')); - return; - } - - common_show_header(_('Register'), null, $error, array($this, 'show_top')); - common_element_start('form', array('method' => 'post', - 'id' => 'login', - 'action' => common_local_url('register'))); - - common_hidden('token', common_session_token()); - - if ($code) { - common_hidden('code', $code); - } - - common_input('nickname', _('Nickname'), $this->trimmed('nickname'), - _('1-64 lowercase letters or numbers, no punctuation or spaces. Required.')); - common_password('password', _('Password'), - _('6 or more characters. Required.')); - common_password('confirm', _('Confirm'), - _('Same as password above. Required.')); - if ($invite && $invite->address_type == 'email') { - common_input('email', _('Email'), $invite->address, - _('Used only for updates, announcements, and password recovery')); - } else { - common_input('email', _('Email'), $this->trimmed('email'), - _('Used only for updates, announcements, and password recovery')); - } - common_input('fullname', _('Full name'), - $this->trimmed('fullname'), - _('Longer name, preferably your "real" name')); - common_input('homepage', _('Homepage'), - $this->trimmed('homepage'), - _('URL of your homepage, blog, or profile on another site')); - common_textarea('bio', _('Bio'), - $this->trimmed('bio'), - _('Describe yourself and your interests in 140 chars')); - common_input('location', _('Location'), - $this->trimmed('location'), - _('Where you are, like "City, State (or Region), Country"')); - common_checkbox('rememberme', _('Remember me'), - $this->boolean('rememberme'), - _('Automatically login in the future; not for shared computers!')); - common_element_start('p'); - $attrs = array('type' => 'checkbox', - 'id' => 'license', - 'name' => 'license', - 'value' => 'true'); - if ($this->boolean('license')) { - $attrs['checked'] = 'checked'; - } - common_element('input', $attrs); - common_text(_('My text and files are available under ')); - common_element('a', array('href' => $config['license']['url']), - $config['license']['title']); - common_text(_(' except this private data: password, email address, IM address, phone number.')); - common_element_end('p'); - common_submit('submit', _('Register')); - common_element_end('form'); - common_show_footer(); - } - - function show_success() - { - $nickname = $this->arg('nickname'); - common_show_header(_('Registration successful')); - common_element_start('div', 'success'); - $instr = sprintf(_('Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may want to...'. "\n\n" . - '* Go to [your profile](%s) and post your first message.' . "\n" . - '* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send notices through instant messages.' . "\n" . - '* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that share your interests. ' . "\n" . - '* Update your [profile settings](%%%%action.profilesettings%%%%) to tell others more about you. ' . "\n" . - '* Read over the [online docs](%%%%doc.help%%%%) for features you may have missed. ' . "\n\n" . - 'Thanks for signing up and we hope you enjoy using this service.'), - $nickname, common_local_url('showstream', array('nickname' => $nickname))); - common_raw(common_markup_to_html($instr)); - $have_email = $this->trimmed('email'); - if ($have_email) { - $emailinstr = _('(You should receive a message by email momentarily, with ' . - 'instructions on how to confirm your email address.)'); - common_raw(common_markup_to_html($emailinstr)); - } - common_element_end('div'); - common_show_footer(); - } - -} diff --git a/_darcs/pristine/actions/remotesubscribe.php b/_darcs/pristine/actions/remotesubscribe.php deleted file mode 100644 index a9494772eb..0000000000 --- a/_darcs/pristine/actions/remotesubscribe.php +++ /dev/null @@ -1,399 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/omb.php'); - -class RemotesubscribeAction extends Action -{ - - function handle($args) - { - - parent::handle($args); - - if (common_logged_in()) { - common_user_error(_('You can use the local subscription!')); - return; - } - - if ($_SERVER['REQUEST_METHOD'] == 'POST') { - - # CSRF protection - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - - $this->remote_subscription(); - } else { - $this->show_form(); - } - } - - function get_instructions() - { - return _('To subscribe, you can [login](%%action.login%%),' . - ' or [register](%%action.register%%) a new ' . - ' account. If you already have an account ' . - ' on a [compatible microblogging site](%%doc.openmublog%%), ' . - ' enter your profile URL below.'); - } - - function show_top($err=null) - { - if ($err) { - common_element('div', 'error', $err); - } else { - $instructions = $this->get_instructions(); - $output = common_markup_to_html($instructions); - common_element_start('div', 'instructions'); - common_raw($output); - common_element_end('p'); - } - } - - function show_form($err=null) - { - $nickname = $this->trimmed('nickname'); - $profile = $this->trimmed('profile_url'); - common_show_header(_('Remote subscribe'), null, $err, - array($this, 'show_top')); - # id = remotesubscribe conflicts with the - # button on profile page - common_element_start('form', array('id' => 'remsub', 'method' => 'post', - 'action' => common_local_url('remotesubscribe'))); - common_hidden('token', common_session_token()); - common_input('nickname', _('User nickname'), $nickname, - _('Nickname of the user you want to follow')); - common_input('profile_url', _('Profile URL'), $profile, - _('URL of your profile on another compatible microblogging service')); - common_submit('submit', _('Subscribe')); - common_element_end('form'); - common_show_footer(); - } - - function remote_subscription() - { - $user = $this->get_user(); - - if (!$user) { - $this->show_form(_('No such user.')); - return; - } - - $profile = $this->trimmed('profile_url'); - - if (!$profile) { - $this->show_form(_('No such user.')); - return; - } - - if (!Validate::uri($profile, array('allowed_schemes' => array('http', 'https')))) { - $this->show_form(_('Invalid profile URL (bad format)')); - return; - } - - $fetcher = Auth_Yadis_Yadis::getHTTPFetcher(); - $yadis = Auth_Yadis_Yadis::discover($profile, $fetcher); - - if (!$yadis || $yadis->failed) { - $this->show_form(_('Not a valid profile URL (no YADIS document).')); - return; - } - - # XXX: a little liberal for sites that accidentally put whitespace before the xml declaration - - $xrds =& Auth_Yadis_XRDS::parseXRDS(trim($yadis->response_text)); - - if (!$xrds) { - $this->show_form(_('Not a valid profile URL (no XRDS defined).')); - return; - } - - $omb = $this->getOmb($xrds); - - if (!$omb) { - $this->show_form(_('Not a valid profile URL (incorrect services).')); - return; - } - - if (omb_service_uri($omb[OAUTH_ENDPOINT_REQUEST]) == - common_local_url('requesttoken')) - { - $this->show_form(_('That\'s a local profile! Login to subscribe.')); - return; - } - - if (User::staticGet('uri', omb_local_id($omb[OAUTH_ENDPOINT_REQUEST]))) { - $this->show_form(_('That\'s a local profile! Login to subscribe.')); - return; - } - - list($token, $secret) = $this->request_token($omb); - - if (!$token || !$secret) { - $this->show_form(_('Couldn\'t get a request token.')); - return; - } - - $this->request_authorization($user, $omb, $token, $secret); - } - - function get_user() - { - $user = null; - $nickname = $this->trimmed('nickname'); - if ($nickname) { - $user = User::staticGet('nickname', $nickname); - } - return $user; - } - - function getOmb($xrds) - { - - static $omb_endpoints = array(OMB_ENDPOINT_UPDATEPROFILE, OMB_ENDPOINT_POSTNOTICE); - static $oauth_endpoints = array(OAUTH_ENDPOINT_REQUEST, OAUTH_ENDPOINT_AUTHORIZE, - OAUTH_ENDPOINT_ACCESS); - $omb = array(); - - # XXX: the following code could probably be refactored to eliminate dupes - - $oauth_services = omb_get_services($xrds, OAUTH_DISCOVERY); - - if (!$oauth_services) { - return null; - } - - $oauth_service = $oauth_services[0]; - - $oauth_xrd = $this->getXRD($oauth_service, $xrds); - - if (!$oauth_xrd) { - return null; - } - - if (!$this->addServices($oauth_xrd, $oauth_endpoints, $omb)) { - return null; - } - - $omb_services = omb_get_services($xrds, OMB_NAMESPACE); - - if (!$omb_services) { - return null; - } - - $omb_service = $omb_services[0]; - - $omb_xrd = $this->getXRD($omb_service, $xrds); - - if (!$omb_xrd) { - return null; - } - - if (!$this->addServices($omb_xrd, $omb_endpoints, $omb)) { - return null; - } - - # XXX: check that we got all the services we needed - - foreach (array_merge($omb_endpoints, $oauth_endpoints) as $type) { - if (!array_key_exists($type, $omb) || !$omb[$type]) { - return null; - } - } - - if (!omb_local_id($omb[OAUTH_ENDPOINT_REQUEST])) { - return null; - } - - return $omb; - } - - function getXRD($main_service, $main_xrds) - { - $uri = omb_service_uri($main_service); - if (strpos($uri, "#") !== 0) { - # FIXME: more rigorous handling of external service definitions - return null; - } - $id = substr($uri, 1); - $nodes = $main_xrds->allXrdNodes; - $parser = $main_xrds->parser; - foreach ($nodes as $node) { - $attrs = $parser->attributes($node); - if (array_key_exists('xml:id', $attrs) && - $attrs['xml:id'] == $id) { - # XXX: trick the constructor into thinking this is the only node - $bogus_nodes = array($node); - return new Auth_Yadis_XRDS($parser, $bogus_nodes); - } - } - return null; - } - - function addServices($xrd, $types, &$omb) - { - foreach ($types as $type) { - $matches = omb_get_services($xrd, $type); - if ($matches) { - $omb[$type] = $matches[0]; - } else { - # no match for type - return false; - } - } - return true; - } - - function request_token($omb) - { - $con = omb_oauth_consumer(); - - $url = omb_service_uri($omb[OAUTH_ENDPOINT_REQUEST]); - - # XXX: Is this the right thing to do? Strip off GET params and make them - # POST params? Seems wrong to me. - - $parsed = parse_url($url); - $params = array(); - parse_str($parsed['query'], $params); - - $req = OAuthRequest::from_consumer_and_token($con, null, "POST", $url, $params); - - $listener = omb_local_id($omb[OAUTH_ENDPOINT_REQUEST]); - - if (!$listener) { - return null; - } - - $req->set_parameter('omb_listener', $listener); - $req->set_parameter('omb_version', OMB_VERSION_01); - - # XXX: test to see if endpoint accepts this signature method - - $req->sign_request(omb_hmac_sha1(), $con, null); - - # We re-use this tool's fetcher, since it's pretty good - - $fetcher = Auth_Yadis_Yadis::getHTTPFetcher(); - - $result = $fetcher->post($req->get_normalized_http_url(), - $req->to_postdata(), - array('User-Agent' => 'Laconica/' . LACONICA_VERSION)); - - if ($result->status != 200) { - return null; - } - - parse_str($result->body, $return); - - return array($return['oauth_token'], $return['oauth_token_secret']); - } - - function request_authorization($user, $omb, $token, $secret) - { - global $config; # for license URL - - $con = omb_oauth_consumer(); - $tok = new OAuthToken($token, $secret); - - $url = omb_service_uri($omb[OAUTH_ENDPOINT_AUTHORIZE]); - - # XXX: Is this the right thing to do? Strip off GET params and make them - # POST params? Seems wrong to me. - - $parsed = parse_url($url); - $params = array(); - parse_str($parsed['query'], $params); - - $req = OAuthRequest::from_consumer_and_token($con, $tok, 'GET', $url, $params); - - # We send over a ton of information. This lets the other - # server store info about our user, and it lets the current - # user decide if they really want to authorize the subscription. - - $req->set_parameter('omb_version', OMB_VERSION_01); - $req->set_parameter('omb_listener', omb_local_id($omb[OAUTH_ENDPOINT_REQUEST])); - $req->set_parameter('omb_listenee', $user->uri); - $req->set_parameter('omb_listenee_profile', common_profile_url($user->nickname)); - $req->set_parameter('omb_listenee_nickname', $user->nickname); - $req->set_parameter('omb_listenee_license', $config['license']['url']); - - $profile = $user->getProfile(); - if (!$profile) { - common_log_db_error($user, 'SELECT', __FILE__); - $this->server_error(_('User without matching profile')); - return; - } - - if ($profile->fullname) { - $req->set_parameter('omb_listenee_fullname', $profile->fullname); - } - if ($profile->homepage) { - $req->set_parameter('omb_listenee_homepage', $profile->homepage); - } - if ($profile->bio) { - $req->set_parameter('omb_listenee_bio', $profile->bio); - } - if ($profile->location) { - $req->set_parameter('omb_listenee_location', $profile->location); - } - $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); - if ($avatar) { - $req->set_parameter('omb_listenee_avatar', $avatar->url); - } - - # XXX: add a nonce to prevent replay attacks - - $req->set_parameter('oauth_callback', common_local_url('finishremotesubscribe')); - - # XXX: test to see if endpoint accepts this signature method - - $req->sign_request(omb_hmac_sha1(), $con, $tok); - - # store all our info here - - $omb['listenee'] = $user->nickname; - $omb['listener'] = omb_local_id($omb[OAUTH_ENDPOINT_REQUEST]); - $omb['token'] = $token; - $omb['secret'] = $secret; - # call doesn't work after bounce back so we cache; maybe serialization issue...? - $omb['access_token_url'] = omb_service_uri($omb[OAUTH_ENDPOINT_ACCESS]); - $omb['post_notice_url'] = omb_service_uri($omb[OMB_ENDPOINT_POSTNOTICE]); - $omb['update_profile_url'] = omb_service_uri($omb[OMB_ENDPOINT_UPDATEPROFILE]); - - common_ensure_session(); - - $_SESSION['oauth_authorization_request'] = $omb; - - # Redirect to authorization service - - common_redirect($req->to_url()); - return; - } - - function make_nonce() - { - return common_good_rand(16); - } -} diff --git a/_darcs/pristine/actions/replies.php b/_darcs/pristine/actions/replies.php deleted file mode 100644 index eceeb4d650..0000000000 --- a/_darcs/pristine/actions/replies.php +++ /dev/null @@ -1,100 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/actions/showstream.php'); - -class RepliesAction extends StreamAction -{ - - function handle($args) - { - - parent::handle($args); - - $nickname = common_canonical_nickname($this->arg('nickname')); - $user = User::staticGet('nickname', $nickname); - - if (!$user) { - $this->no_such_user(); - return; - } - - $profile = $user->getProfile(); - - if (!$profile) { - common_server_error(_('User has no profile.')); - return; - } - - # Looks like we're good; show the header - - common_show_header(sprintf(_("Replies to %s"), $profile->nickname), - array($this, 'show_header'), $user, - array($this, 'show_top')); - - $this->show_replies($user); - - common_show_footer(); - } - - function no_such_user() - { - common_user_error(_('No such user.')); - } - - function show_header($user) - { - common_element('link', array('rel' => 'alternate', - 'href' => common_local_url('repliesrss', array('nickname' => - $user->nickname)), - 'type' => 'application/rss+xml', - 'title' => sprintf(_('Feed for replies to %s'), $user->nickname))); - } - - function show_top($user) - { - $cur = common_current_user(); - - if ($cur && $cur->id == $user->id) { - common_notice_form('replies'); - } - - $this->views_menu(); - - $this->show_feeds_list(array(0=>array('href'=>common_local_url('repliesrss', array('nickname' => $user->nickname)), - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'repliesrss'))); - } - - function show_replies($user) - { - - $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - - $notice = $user->getReplies(($page-1) * NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); - - $cnt = $this->show_notice_list($notice); - - common_pagination($page > 1, $cnt > NOTICES_PER_PAGE, - $page, 'replies', array('nickname' => $user->nickname)); - } -} diff --git a/_darcs/pristine/actions/repliesrss.php b/_darcs/pristine/actions/repliesrss.php deleted file mode 100644 index 5f85f8d2e8..0000000000 --- a/_darcs/pristine/actions/repliesrss.php +++ /dev/null @@ -1,84 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/rssaction.php'); - -// Formatting of RSS handled by Rss10Action - -class RepliesrssAction extends Rss10Action -{ - - var $user = null; - - function init() - { - $nickname = $this->trimmed('nickname'); - $this->user = User::staticGet('nickname', $nickname); - - if (!$this->user) { - common_user_error(_('No such user.')); - return false; - } else { - return true; - } - } - - function get_notices($limit=0) - { - - $user = $this->user; - - $notice = $user->getReplies(0, ($limit == 0) ? 48 : $limit); - - $notices = array(); - - while ($notice->fetch()) { - $notices[] = clone($notice); - } - - return $notices; - } - - function get_channel() - { - $user = $this->user; - $c = array('url' => common_local_url('repliesrss', - array('nickname' => - $user->nickname)), - 'title' => sprintf(_("Replies to %s"), $user->nickname), - 'link' => common_local_url('replies', - array('nickname' => - $user->nickname)), - 'description' => sprintf(_('Feed for replies to %s'), $user->nickname)); - return $c; - } - - function get_image() - { - $user = $this->user; - $profile = $user->getProfile(); - if (!$profile) { - return null; - } - $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); - return ($avatar) ? $avatar->url : null; - } -} \ No newline at end of file diff --git a/_darcs/pristine/actions/requesttoken.php b/_darcs/pristine/actions/requesttoken.php deleted file mode 100644 index a745487393..0000000000 --- a/_darcs/pristine/actions/requesttoken.php +++ /dev/null @@ -1,45 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/omb.php'); - -class RequesttokenAction extends Action -{ - - function is_readonly() - { - return false; - } - - function handle($args) - { - parent::handle($args); - try { - common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); - $server = omb_oauth_server(); - $token = $server->fetch_request_token($req); - print $token; - } catch (OAuthException $e) { - common_server_error($e->getMessage()); - } - } -} diff --git a/_darcs/pristine/actions/showfavorites.php b/_darcs/pristine/actions/showfavorites.php deleted file mode 100644 index f4344833d9..0000000000 --- a/_darcs/pristine/actions/showfavorites.php +++ /dev/null @@ -1,102 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/actions/showstream.php'); - -class ShowfavoritesAction extends StreamAction -{ - - function handle($args) - { - - parent::handle($args); - - $nickname = common_canonical_nickname($this->arg('nickname')); - $user = User::staticGet('nickname', $nickname); - - if (!$user) { - $this->client_error(_('No such user.')); - return; - } - - $profile = $user->getProfile(); - - if (!$profile) { - common_server_error(_('User has no profile.')); - return; - } - - # Looks like we're good; show the header - - common_show_header(sprintf(_("%s favorite notices"), $profile->nickname), - array($this, 'show_header'), $user, - array($this, 'show_top')); - - $this->show_notices($user); - - common_show_footer(); - } - - function show_header($user) - { - common_element('link', array('rel' => 'alternate', - 'href' => common_local_url('favoritesrss', array('nickname' => - $user->nickname)), - 'type' => 'application/rss+xml', - 'title' => sprintf(_('Feed for favorites of %s'), $user->nickname))); - } - - function show_top($user) - { - $cur = common_current_user(); - - if ($cur && $cur->id == $user->id) { - common_notice_form('all'); - } - - $this->show_feeds_list(array(0=>array('href'=>common_local_url('favoritesrss', array('nickname' => $user->nickname)), - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'Favorites'))); - $this->views_menu(); - } - - function show_notices($user) - { - - $page = $this->trimmed('page'); - if (!$page) { - $page = 1; - } - - $notice = $user->favoriteNotices(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); - - if (!$notice) { - $this->server_error(_('Could not retrieve favorite notices.')); - return; - } - - $cnt = $this->show_notice_list($notice); - - common_pagination($page > 1, $cnt > NOTICES_PER_PAGE, - $page, 'showfavorites', array('nickname' => $user->nickname)); - } -} diff --git a/_darcs/pristine/actions/showmessage.php b/_darcs/pristine/actions/showmessage.php deleted file mode 100644 index 25330a568f..0000000000 --- a/_darcs/pristine/actions/showmessage.php +++ /dev/null @@ -1,108 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/mailbox.php'); - -class ShowmessageAction extends MailboxAction -{ - - function handle($args) - { - - Action::handle($args); - - $message = $this->get_message(); - - if (!$message) { - $this->client_error(_('No such message.'), 404); - return; - } - - $cur = common_current_user(); - - if ($cur && ($cur->id == $message->from_profile || $cur->id == $message->to_profile)) { - $this->show_page($cur, 1); - } else { - $this->client_error(_('Only the sender and recipient may read this message.'), 403); - return; - } - } - - function get_message() - { - $id = $this->trimmed('message'); - $message = Message::staticGet('id', $id); - return $message; - } - - function get_title($user, $page) - { - $message = $this->get_message(); - if (!$message) { - return null; - } - - if ($user->id == $message->from_profile) { - $to = $message->getTo(); - $title = sprintf(_("Message to %1\$s on %2\$s"), - $to->nickname, - common_exact_date($message->created)); - } else if ($user->id == $message->to_profile) { - $from = $message->getFrom(); - $title = sprintf(_("Message from %1\$s on %2\$s"), - $from->nickname, - common_exact_date($message->created)); - } - return $title; - } - - function get_messages($user, $page) - { - $message = new Message(); - $message->id = $this->trimmed('message'); - $message->find(); - return $message; - } - - function get_message_profile($message) - { - $user = common_current_user(); - if ($user->id == $message->from_profile) { - return $message->getTo(); - } else if ($user->id == $message->to_profile) { - return $message->getFrom(); - } else { - # This shouldn't happen - return null; - } - } - - function get_instructions() - { - return ''; - } - - function views_menu() - { - return; - } -} - \ No newline at end of file diff --git a/_darcs/pristine/actions/shownotice.php b/_darcs/pristine/actions/shownotice.php deleted file mode 100644 index 2df09cb3fc..0000000000 --- a/_darcs/pristine/actions/shownotice.php +++ /dev/null @@ -1,124 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/stream.php'); - -class ShownoticeAction extends StreamAction -{ - - var $notice = null; - var $profile = null; - var $avatar = null; - - function prepare($args) - { - - parent::prepare($args); - - $id = $this->arg('notice'); - $this->notice = Notice::staticGet($id); - - if (!$this->notice) { - $this->client_error(_('No such notice.'), 404); - return false; - } - - $this->profile = $this->notice->getProfile(); - - if (!$this->profile) { - $this->server_error(_('Notice has no profile'), 500); - return false; - } - - $this->avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE); - - return true; - } - - function last_modified() - { - return max(strtotime($this->notice->created), - strtotime($this->profile->modified), - ($this->avatar) ? strtotime($this->avatar->modified) : 0); - } - - function etag() - { - return 'W/"' . implode(':', array($this->arg('action'), - common_language(), - $this->notice->id, - strtotime($this->notice->created), - strtotime($this->profile->modified), - ($this->avatar) ? strtotime($this->avatar->modified) : 0)) . '"'; - } - - function handle($args) - { - - parent::handle($args); - - common_show_header(sprintf(_('%1$s\'s status on %2$s'), - $this->profile->nickname, - common_exact_date($this->notice->created)), - array($this, 'show_header'), null, - array($this, 'show_top')); - - common_element_start('ul', array('id' => 'notices')); - $nli = new NoticeListItem($this->notice); - $nli->show(); - common_element_end('ul'); - - common_show_footer(); - } - - function show_header() - { - - $user = User::staticGet($this->profile->id); - - if (!$user) { - return; - } - - if ($user->emailmicroid && $user->email && $this->notice->uri) { - common_element('meta', array('name' => 'microid', - 'content' => "mailto+http:sha1:" . sha1(sha1('mailto:' . $user->email) . sha1($this->notice->uri)))); - } - - if ($user->jabbermicroid && $user->jabber && $this->notice->uri) { - common_element('meta', array('name' => 'microid', - 'content' => "xmpp+http:sha1:" . sha1(sha1('xmpp:' . $user->jabber) . sha1($this->notice->uri)))); - } - } - - function show_top() - { - $cur = common_current_user(); - if ($cur && $cur->id == $this->profile->id) { - common_notice_form(); - } - } - - function no_such_notice() - { - common_user_error(_('No such notice.')); - } -} diff --git a/_darcs/pristine/actions/showstream.php b/_darcs/pristine/actions/showstream.php deleted file mode 100644 index e4e5d96d15..0000000000 --- a/_darcs/pristine/actions/showstream.php +++ /dev/null @@ -1,467 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/stream.php'); - -define('SUBSCRIPTIONS_PER_ROW', 4); -define('SUBSCRIPTIONS', 80); - -class ShowstreamAction extends StreamAction -{ - - function handle($args) - { - - parent::handle($args); - - $nickname_arg = $this->arg('nickname'); - $nickname = common_canonical_nickname($nickname_arg); - - # Permanent redirect on non-canonical nickname - - if ($nickname_arg != $nickname) { - $args = array('nickname' => $nickname); - if ($this->arg('page') && $this->arg('page') != 1) { - $args['page'] = $this->arg['page']; - } - common_redirect(common_local_url('showstream', $args), 301); - return; - } - - $user = User::staticGet('nickname', $nickname); - - if (!$user) { - $this->no_such_user(); - return; - } - - $profile = $user->getProfile(); - - if (!$profile) { - common_server_error(_('User has no profile.')); - return; - } - - # Looks like we're good; start output - - # For YADIS discovery, we also have a tag - - header('X-XRDS-Location: '. common_local_url('xrds', array('nickname' => - $user->nickname))); - - common_show_header($profile->nickname, - array($this, 'show_header'), $user, - array($this, 'show_top')); - - $this->show_profile($profile); - - $this->show_notices($user); - - common_show_footer(); - } - - function show_top($user) - { - $cur = common_current_user(); - - if ($cur && $cur->id == $user->id) { - common_notice_form('showstream'); - } - - $this->views_menu(); - - $this->show_feeds_list(array(0=>array('href'=>common_local_url('userrss', array('nickname' => $user->nickname)), - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'notices'), - 1=>array('href'=>common_local_url('usertimeline', array('nickname' => $user->nickname)), - 'type' => 'atom', - 'version' => 'Atom 1.0', - 'item' => 'usertimeline'), - - 2=>array('href'=>common_local_url('foaf',array('nickname' => $user->nickname)), - 'type' => 'rdf', - 'version' => 'FOAF', - 'item' => 'foaf'))); - } - - function show_header($user) - { - # Feeds - common_element('link', array('rel' => 'alternate', - 'href' => common_local_url('api', - array('apiaction' => 'statuses', - 'method' => 'user_timeline.rss', - 'argument' => $user->nickname)), - 'type' => 'application/rss+xml', - 'title' => sprintf(_('Notice feed for %s'), $user->nickname))); - common_element('link', array('rel' => 'alternate feed', - 'href' => common_local_url('api', - array('apiaction' => 'statuses', - 'method' => 'user_timeline.atom', - 'argument' => $user->nickname)), - 'type' => 'application/atom+xml', - 'title' => sprintf(_('Notice feed for %s'), $user->nickname))); - common_element('link', array('rel' => 'alternate', - 'href' => common_local_url('userrss', array('nickname' => - $user->nickname)), - 'type' => 'application/rdf+xml', - 'title' => sprintf(_('Notice feed for %s'), $user->nickname))); - # FOAF - common_element('link', array('rel' => 'meta', - 'href' => common_local_url('foaf', array('nickname' => - $user->nickname)), - 'type' => 'application/rdf+xml', - 'title' => 'FOAF')); - # for remote subscriptions etc. - common_element('meta', array('http-equiv' => 'X-XRDS-Location', - 'content' => common_local_url('xrds', array('nickname' => - $user->nickname)))); - $profile = $user->getProfile(); - if ($profile->bio) { - common_element('meta', array('name' => 'description', - 'content' => $profile->bio)); - } - - if ($user->emailmicroid && $user->email && $profile->profileurl) { - common_element('meta', array('name' => 'microid', - 'content' => "mailto+http:sha1:" . sha1(sha1('mailto:' . $user->email) . sha1($profile->profileurl)))); - } - if ($user->jabbermicroid && $user->jabber && $profile->profileurl) { - common_element('meta', array('name' => 'microid', - 'content' => "xmpp+http:sha1:" . sha1(sha1('xmpp:' . $user->jabber) . sha1($profile->profileurl)))); - } - - # See https://wiki.mozilla.org/Microsummaries - - common_element('link', array('rel' => 'microsummary', - 'href' => common_local_url('microsummary', - array('nickname' => $profile->nickname)))); - } - - function no_such_user() - { - $this->client_error(_('No such user.'), 404); - } - - function show_profile($profile) - { - - common_element_start('div', array('id' => 'profile', 'class' => 'vcard')); - - $this->show_personal($profile); - - $this->show_last_notice($profile); - - $cur = common_current_user(); - - $this->show_subscriptions($profile); - - common_element_end('div'); - } - - function show_personal($profile) - { - - $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); - common_element_start('div', array('id' => 'profile_avatar')); - common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_PROFILE_SIZE), - 'class' => 'avatar profile photo', - 'width' => AVATAR_PROFILE_SIZE, - 'height' => AVATAR_PROFILE_SIZE, - 'alt' => $profile->nickname)); - - common_element_start('ul', array('id' => 'profile_actions')); - - common_element_start('li', array('id' => 'profile_subscribe')); - $cur = common_current_user(); - if ($cur) { - if ($cur->id != $profile->id) { - if ($cur->isSubscribed($profile)) { - common_unsubscribe_form($profile); - } else { - common_subscribe_form($profile); - } - } - } else { - $this->show_remote_subscribe_link($profile); - } - common_element_end('li'); - - $user = User::staticGet('id', $profile->id); - common_profile_new_message_nudge($cur, $user, $profile); - - if ($cur && $cur->id != $profile->id) { - $blocked = $cur->hasBlocked($profile); - common_element_start('li', array('id' => 'profile_block')); - if ($blocked) { - common_unblock_form($profile, array('action' => 'showstream', - 'nickname' => $profile->nickname)); - } else { - common_block_form($profile, array('action' => 'showstream', - 'nickname' => $profile->nickname)); - } - common_element_end('li'); - } - - common_element_end('ul'); - - common_element_end('div'); - - common_element_start('div', array('id' => 'profile_information')); - - if ($profile->fullname) { - common_element('h1', array('class' => 'fn'), $profile->fullname . ' (' . $profile->nickname . ')'); - } else { - common_element('h1', array('class' => 'fn nickname'), $profile->nickname); - } - - if ($profile->location) { - common_element('p', 'location', $profile->location); - } - if ($profile->bio) { - common_element('p', 'description note', $profile->bio); - } - if ($profile->homepage) { - common_element_start('p', 'website'); - common_element('a', array('href' => $profile->homepage, - 'rel' => 'me', 'class' => 'url'), - $profile->homepage); - common_element_end('p'); - } - - $this->show_statistics($profile); - - common_element_end('div'); - } - - function show_remote_subscribe_link($profile) - { - $url = common_local_url('remotesubscribe', - array('nickname' => $profile->nickname)); - common_element('a', array('href' => $url, - 'id' => 'remotesubscribe'), - _('Subscribe')); - } - - function show_unsubscribe_form($profile) - { - common_element_start('form', array('id' => 'unsubscribe', 'method' => 'post', - 'action' => common_local_url('unsubscribe'))); - common_hidden('token', common_session_token()); - common_element('input', array('id' => 'unsubscribeto', - 'name' => 'unsubscribeto', - 'type' => 'hidden', - 'value' => $profile->nickname)); - common_element('input', array('type' => 'submit', - 'class' => 'submit', - 'value' => _('Unsubscribe'))); - common_element_end('form'); - } - - function show_subscriptions($profile) - { - global $config; - - $subs = DB_DataObject::factory('subscription'); - $subs->subscriber = $profile->id; - $subs->whereAdd('subscribed != ' . $profile->id); - - $subs->orderBy('created DESC'); - - # We ask for an extra one to know if we need to do another page - - $subs->limit(0, SUBSCRIPTIONS + 1); - - $subs_count = $subs->find(); - - common_element_start('div', array('id' => 'subscriptions')); - - common_element('h2', null, _('Subscriptions')); - - if ($subs_count > 0) { - - common_element_start('ul', array('id' => 'subscriptions_avatars')); - - for ($i = 0; $i < min($subs_count, SUBSCRIPTIONS); $i++) { - - if (!$subs->fetch()) { - common_debug('Weirdly, broke out of subscriptions loop early', __FILE__); - break; - } - - $other = Profile::staticGet($subs->subscribed); - - if (!$other) { - common_log_db_error($subs, 'SELECT', __FILE__); - continue; - } - - common_element_start('li', 'vcard'); - common_element_start('a', array('title' => ($other->fullname) ? - $other->fullname : - $other->nickname, - 'href' => $other->profileurl, - 'rel' => 'contact', - 'class' => 'subscription fn url')); - $avatar = $other->getAvatar(AVATAR_MINI_SIZE); - common_element('img', array('src' => (($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_MINI_SIZE)), - 'width' => AVATAR_MINI_SIZE, - 'height' => AVATAR_MINI_SIZE, - 'class' => 'avatar mini photo', - 'alt' => ($other->fullname) ? - $other->fullname : - $other->nickname)); - common_element_end('a'); - common_element_end('li'); - } - - common_element_end('ul'); - } - - if ($subs_count > SUBSCRIPTIONS) { - common_element_start('p', array('id' => 'subscriptions_viewall')); - - common_element('a', array('href' => common_local_url('subscriptions', - array('nickname' => $profile->nickname)), - 'class' => 'moresubscriptions'), - _('All subscriptions')); - common_element_end('p'); - } - - common_element_end('div'); - } - - function show_statistics($profile) - { - - // XXX: WORM cache this - $subs = DB_DataObject::factory('subscription'); - $subs->subscriber = $profile->id; - $subs_count = (int) $subs->count() - 1; - - $subbed = DB_DataObject::factory('subscription'); - $subbed->subscribed = $profile->id; - $subbed_count = (int) $subbed->count() - 1; - - $notices = DB_DataObject::factory('notice'); - $notices->profile_id = $profile->id; - $notice_count = (int) $notices->count(); - - common_element_start('div', 'statistics'); - common_element('h2', 'statistics', _('Statistics')); - - # Other stats...? - common_element_start('dl', 'statistics'); - common_element('dt', 'membersince', _('Member since')); - common_element('dd', 'membersince', date('j M Y', - strtotime($profile->created))); - - common_element_start('dt', 'subscriptions'); - common_element('a', array('href' => common_local_url('subscriptions', - array('nickname' => $profile->nickname))), - _('Subscriptions')); - common_element_end('dt'); - common_element('dd', 'subscriptions', (is_int($subs_count)) ? $subs_count : '0'); - common_element_start('dt', 'subscribers'); - common_element('a', array('href' => common_local_url('subscribers', - array('nickname' => $profile->nickname))), - _('Subscribers')); - common_element_end('dt'); - common_element('dd', 'subscribers', (is_int($subbed_count)) ? $subbed_count : '0'); - common_element('dt', 'notices', _('Notices')); - common_element('dd', 'notices', (is_int($notice_count)) ? $notice_count : '0'); - # XXX: link these to something - common_element('dt', 'tags', _('Tags')); - common_element_start('dd', 'tags'); - $tags = Profile_tag::getTags($profile->id, $profile->id); - - common_element_start('ul', 'tags xoxo'); - foreach ($tags as $tag) { - common_element_start('li'); - common_element('a', array('rel' => 'bookmark tag', - 'href' => common_local_url('peopletag', - array('tag' => $tag))), - $tag); - common_element_end('li'); - } - common_element_end('ul'); - common_element_end('dd'); - - common_element_end('dl'); - - common_element_end('div'); - } - - function show_notices($user) - { - - $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - - $notice = $user->getNotices(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); - - $pnl = new ProfileNoticeList($notice); - $cnt = $pnl->show(); - - common_pagination($page>1, $cnt>NOTICES_PER_PAGE, $page, - 'showstream', array('nickname' => $user->nickname)); - } - - function show_last_notice($profile) - { - - common_element('h2', null, _('Currently')); - - $notice = $profile->getCurrentNotice(); - - if ($notice) { - # FIXME: URL, image, video, audio - common_element_start('p', array('class' => 'notice_current')); - if ($notice->rendered) { - common_raw($notice->rendered); - } else { - # XXX: may be some uncooked notices in the DB, - # we cook them right now. This can probably disappear in future - # versions (>> 0.4.x) - common_raw(common_render_content($notice->content, $notice)); - } - common_element_end('p'); - } - } -} - -# We don't show the author for a profile, since we already know who it is! - -class ProfileNoticeList extends NoticeList -{ - function newListItem($notice) - { - return new ProfileNoticeListItem($notice); - } -} - -class ProfileNoticeListItem extends NoticeListItem -{ - function showAuthor() - { - return; - } -} diff --git a/_darcs/pristine/actions/smssettings.php b/_darcs/pristine/actions/smssettings.php deleted file mode 100644 index fad71135cc..0000000000 --- a/_darcs/pristine/actions/smssettings.php +++ /dev/null @@ -1,343 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/settingsaction.php'); -require_once(INSTALLDIR.'/actions/emailsettings.php'); - -class SmssettingsAction extends EmailsettingsAction -{ - - function get_instructions() - { - return _('You can receive SMS messages through email from %%site.name%%.'); - } - - function show_form($msg=null, $success=false) - { - $user = common_current_user(); - $this->form_header(_('SMS Settings'), $msg, $success); - common_element_start('form', array('method' => 'post', - 'id' => 'smssettings', - 'action' => - common_local_url('smssettings'))); - common_hidden('token', common_session_token()); - common_element('h2', null, _('Address')); - - if ($user->sms) { - common_element_start('p'); - $carrier = $user->getCarrier(); - common_element('span', 'address confirmed', $user->sms . ' (' . $carrier->name . ')'); - common_element('span', 'input_instructions', - _('Current confirmed SMS-enabled phone number.')); - common_hidden('sms', $user->sms); - common_hidden('carrier', $user->carrier); - common_element_end('p'); - common_submit('remove', _('Remove')); - } else { - $confirm = $this->get_confirmation(); - if ($confirm) { - $carrier = Sms_carrier::staticGet($confirm->address_extra); - common_element_start('p'); - common_element('span', 'address unconfirmed', $confirm->address . ' (' . $carrier->name . ')'); - common_element('span', 'input_instructions', - _('Awaiting confirmation on this phone number.')); - common_hidden('sms', $confirm->address); - common_hidden('carrier', $confirm->address_extra); - common_element_end('p'); - common_submit('cancel', _('Cancel')); - common_input('code', _('Confirmation code'), null, - _('Enter the code you received on your phone.')); - common_submit('confirm', _('Confirm')); - } else { - common_input('sms', _('SMS Phone number'), - ($this->arg('sms')) ? $this->arg('sms') : null, - _('Phone number, no punctuation or spaces, with area code')); - $this->carrier_select(); - common_submit('add', _('Add')); - } - } - - if ($user->sms) { - common_element('h2', null, _('Incoming email')); - - if ($user->incomingemail) { - common_element_start('p'); - common_element('span', 'address', $user->incomingemail); - common_element('span', 'input_instructions', - _('Send email to this address to post new notices.')); - common_element_end('p'); - common_submit('removeincoming', _('Remove')); - } - - common_element_start('p'); - common_element('span', 'input_instructions', - _('Make a new email address for posting to; cancels the old one.')); - common_element_end('p'); - common_submit('newincoming', _('New')); - } - - common_element('h2', null, _('Preferences')); - - common_checkbox('smsnotify', - _('Send me notices through SMS; I understand I may incur exorbitant charges from my carrier.'), - $user->smsnotify); - - common_submit('save', _('Save')); - - common_element_end('form'); - common_show_footer(); - } - - function get_confirmation() - { - $user = common_current_user(); - $confirm = new Confirm_address(); - $confirm->user_id = $user->id; - $confirm->address_type = 'sms'; - if ($confirm->find(true)) { - return $confirm; - } else { - return null; - } - } - - function handle_post() - { - - # CSRF protection - - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - - if ($this->arg('save')) { - $this->save_preferences(); - } else if ($this->arg('add')) { - $this->add_address(); - } else if ($this->arg('cancel')) { - $this->cancel_confirmation(); - } else if ($this->arg('remove')) { - $this->remove_address(); - } else if ($this->arg('removeincoming')) { - $this->remove_incoming(); - } else if ($this->arg('newincoming')) { - $this->new_incoming(); - } else if ($this->arg('confirm')) { - $this->confirm_code(); - } else { - $this->show_form(_('Unexpected form submission.')); - } - } - - function save_preferences() - { - - $smsnotify = $this->boolean('smsnotify'); - - $user = common_current_user(); - - assert(!is_null($user)); # should already be checked - - $user->query('BEGIN'); - - $original = clone($user); - - $user->smsnotify = $smsnotify; - - $result = $user->update($original); - - if ($result === false) { - common_log_db_error($user, 'UPDATE', __FILE__); - common_server_error(_('Couldn\'t update user.')); - return; - } - - $user->query('COMMIT'); - - $this->show_form(_('Preferences saved.'), true); - } - - function add_address() - { - - $user = common_current_user(); - - $sms = $this->trimmed('sms'); - $carrier_id = $this->trimmed('carrier'); - - # Some validation - - if (!$sms) { - $this->show_form(_('No phone number.')); - return; - } - - if (!$carrier_id) { - $this->show_form(_('No carrier selected.')); - return; - } - - $sms = common_canonical_sms($sms); - - if ($user->sms == $sms) { - $this->show_form(_('That is already your phone number.')); - return; - } else if ($this->sms_exists($sms)) { - $this->show_form(_('That phone number already belongs to another user.')); - return; - } - - $confirm = new Confirm_address(); - $confirm->address = $sms; - $confirm->address_extra = $carrier_id; - $confirm->address_type = 'sms'; - $confirm->user_id = $user->id; - $confirm->code = common_confirmation_code(40); - - $result = $confirm->insert(); - - if ($result === false) { - common_log_db_error($confirm, 'INSERT', __FILE__); - common_server_error(_('Couldn\'t insert confirmation code.')); - return; - } - - $carrier = Sms_carrier::staticGet($carrier_id); - - mail_confirm_sms($confirm->code, - $user->nickname, - $carrier->toEmailAddress($sms)); - - $msg = _('A confirmation code was sent to the phone number you added. Check your inbox (and spam box!) for the code and instructions on how to use it.'); - - $this->show_form($msg, true); - } - - function cancel_confirmation() - { - - $sms = $this->trimmed('sms'); - $carrier = $this->trimmed('carrier'); - - $confirm = $this->get_confirmation(); - - if (!$confirm) { - $this->show_form(_('No pending confirmation to cancel.')); - return; - } - if ($confirm->address != $sms) { - $this->show_form(_('That is the wrong confirmation number.')); - return; - } - - $result = $confirm->delete(); - - if (!$result) { - common_log_db_error($confirm, 'DELETE', __FILE__); - $this->server_error(_('Couldn\'t delete email confirmation.')); - return; - } - - $this->show_form(_('Confirmation cancelled.'), true); - } - - function remove_address() - { - - $user = common_current_user(); - $sms = $this->arg('sms'); - $carrier = $this->arg('carrier'); - - # Maybe an old tab open...? - - if ($user->sms != $sms) { - $this->show_form(_('That is not your phone number.')); - return; - } - - $user->query('BEGIN'); - $original = clone($user); - $user->sms = null; - $user->carrier = null; - $user->smsemail = null; - $result = $user->updateKeys($original); - if (!$result) { - common_log_db_error($user, 'UPDATE', __FILE__); - common_server_error(_('Couldn\'t update user.')); - return; - } - $user->query('COMMIT'); - - $this->show_form(_('The address was removed.'), true); - } - - function sms_exists($sms) - { - $user = common_current_user(); - $other = User::staticGet('sms', $sms); - if (!$other) { - return false; - } else { - return $other->id != $user->id; - } - } - - function carrier_select() - { - $carrier = new Sms_carrier(); - $cnt = $carrier->find(); - - common_element_start('p'); - common_element('label', array('for' => 'carrier')); - common_element_start('select', array('name' => 'carrier', - 'id' => 'carrier')); - common_element('option', array('value' => 0), - _('Select a carrier')); - while ($carrier->fetch()) { - common_element('option', array('value' => $carrier->id), - $carrier->name); - } - common_element_end('select'); - common_element_end('p'); - common_element('span', 'input_instructions', - sprintf(_('Mobile carrier for your phone. '. - 'If you know a carrier that accepts ' . - 'SMS over email but isn\'t listed here, ' . - 'send email to let us know at %s.'), - common_config('site', 'email'))); - } - - function confirm_code() - { - - $code = $this->trimmed('code'); - - if (!$code) { - $this->show_form(_('No code entered')); - return; - } - - common_redirect(common_local_url('confirmaddress', - array('code' => $code))); - } -} diff --git a/_darcs/pristine/actions/subedit.php b/_darcs/pristine/actions/subedit.php deleted file mode 100644 index 1142b7a032..0000000000 --- a/_darcs/pristine/actions/subedit.php +++ /dev/null @@ -1,92 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -class SubeditAction extends Action -{ - - var $profile = null; - - function prepare($args) - { - - parent::prepare($args); - - if (!common_logged_in()) { - $this->client_error(_('Not logged in.')); - return false; - } - - $token = $this->trimmed('token'); - - if (!$token || $token != common_session_token()) { - $this->client_error(_('There was a problem with your session token. Try again, please.')); - return; - } - - $id = $this->trimmed('profile'); - - if (!$id) { - $this->client_error(_('No profile specified.')); - return false; - } - - $this->profile = Profile::staticGet('id', $id); - - if (!$this->profile) { - $this->client_error(_('No profile with that ID.')); - return false; - } - - return true; - } - - function handle($args) - { - parent::handle($args); - if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $cur = common_current_user(); - - $sub = Subscription::pkeyGet(array('subscriber' => $cur->id, - 'subscribed' => $this->profile->id)); - - if (!$sub) { - $this->client_error(_('You are not subscribed to that profile.')); - return false; - } - - $orig = clone($sub); - - $sub->jabber = $this->boolean('jabber'); - $sub->sms = $this->boolean('sms'); - - $result = $sub->update($orig); - - if (!$result) { - common_log_db_error($sub, 'UPDATE', __FILE__); - $this->server_error(_('Could not save subscription.')); - return false; - } - - common_redirect(common_local_url('subscriptions', - array('nickname' => $cur->nickname))); - } - } -} diff --git a/_darcs/pristine/actions/subscribe.php b/_darcs/pristine/actions/subscribe.php deleted file mode 100644 index f33d1d2077..0000000000 --- a/_darcs/pristine/actions/subscribe.php +++ /dev/null @@ -1,80 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -class SubscribeAction extends Action -{ - - function handle($args) - { - parent::handle($args); - - if (!common_logged_in()) { - common_user_error(_('Not logged in.')); - return; - } - - $user = common_current_user(); - - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - common_redirect(common_local_url('subscriptions', array('nickname' => $user->nickname))); - return; - } - - # CSRF protection - - $token = $this->trimmed('token'); - - if (!$token || $token != common_session_token()) { - $this->client_error(_('There was a problem with your session token. Try again, please.')); - return; - } - - $other_id = $this->arg('subscribeto'); - - $other = User::staticGet('id', $other_id); - - if (!$other) { - $this->client_error(_('Not a local user.')); - return; - } - - $result = subs_subscribe_to($user, $other); - - if($result != true) { - common_user_error($result); - return; - } - - if ($this->boolean('ajax')) { - common_start_html('text/xml;charset=utf-8', true); - common_element_start('head'); - common_element('title', null, _('Subscribed')); - common_element_end('head'); - common_element_start('body'); - common_unsubscribe_form($other->getProfile()); - common_element_end('body'); - common_element_end('html'); - } else { - common_redirect(common_local_url('subscriptions', array('nickname' => - $user->nickname))); - } - } -} diff --git a/_darcs/pristine/actions/subscribers.php b/_darcs/pristine/actions/subscribers.php deleted file mode 100644 index 31d0468d90..0000000000 --- a/_darcs/pristine/actions/subscribers.php +++ /dev/null @@ -1,70 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/gallery.php'); - -class SubscribersAction extends GalleryAction -{ - - function gallery_type() - { - return _('Subscribers'); - } - - function get_instructions(&$profile) - { - $user =& common_current_user(); - if ($user && ($user->id == $profile->id)) { - return _('These are the people who listen to your notices.'); - } else { - return sprintf(_('These are the people who listen to %s\'s notices.'), $profile->nickname); - } - } - - function fields() - { - return array('subscriber', 'subscribed'); - } - - function div_class() - { - return 'subscribers'; - } - - function get_other(&$subs) - { - return $subs->subscriber; - } - - function profile_list_class() - { - return 'SubscribersList'; - } -} - -class SubscribersList extends ProfileList -{ - function show_owner_controls($profile) - { - common_block_form($profile, array('action' => 'subscribers', - 'nickname' => $this->owner->nickname)); - } -} diff --git a/_darcs/pristine/actions/subscriptions.php b/_darcs/pristine/actions/subscriptions.php deleted file mode 100644 index afe8fb2609..0000000000 --- a/_darcs/pristine/actions/subscriptions.php +++ /dev/null @@ -1,87 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/gallery.php'); - -class SubscriptionsAction extends GalleryAction -{ - - function gallery_type() - { - return _('Subscriptions'); - } - - function get_instructions(&$profile) - { - $user =& common_current_user(); - if ($user && ($user->id == $profile->id)) { - return _('These are the people whose notices you listen to.'); - } else { - return sprintf(_('These are the people whose notices %s listens to.'), $profile->nickname); - } - } - - function fields() - { - return array('subscribed', 'subscriber'); - } - - function div_class() - { - return 'subscriptions'; - } - - function get_other(&$subs) - { - return $subs->subscribed; - } - - function profile_list_class() - { - return 'SubscriptionsList'; - } -} - -class SubscriptionsList extends ProfileList -{ - - function show_owner_controls($profile) - { - - $sub = Subscription::pkeyGet(array('subscriber' => $this->owner->id, - 'subscribed' => $profile->id)); - if (!$sub) { - return; - } - - common_element_start('form', array('id' => 'subedit-' . $profile->id, - 'method' => 'post', - 'class' => 'subedit', - 'action' => common_local_url('subedit'))); - common_hidden('token', common_session_token()); - common_hidden('profile', $profile->id); - common_checkbox('jabber', _('Jabber'), $sub->jabber); - common_checkbox('sms', _('SMS'), $sub->sms); - common_submit('save', _('Save')); - common_element_end('form'); - return; - } -} diff --git a/_darcs/pristine/actions/sup.php b/_darcs/pristine/actions/sup.php deleted file mode 100644 index 6a1897585a..0000000000 --- a/_darcs/pristine/actions/sup.php +++ /dev/null @@ -1,86 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -class SupAction extends Action -{ - - function handle($args) - { - - parent::handle($args); - - $seconds = $this->trimmed('seconds'); - - if (!$seconds) { - $seconds = 15; - } - - $updates = $this->get_updates($seconds); - - header('Content-Type: application/json; charset=utf-8'); - - print json_encode(array('updated_time' => date('c'), - 'since_time' => date('c', time() - $seconds), - 'available_periods' => $this->available_periods(), - 'period' => $seconds, - 'updates' => $updates)); - } - - function available_periods() - { - static $periods = array(86400, 43200, 21600, 7200, - 3600, 1800, 600, 300, 120, - 60, 30, 15); - $available = array(); - foreach ($periods as $period) { - $available[$period] = common_local_url('sup', - array('seconds' => $period)); - } - - return $available; - } - - function get_updates($seconds) - { - $notice = new Notice(); - - # XXX: cache this. Depends on how big this protocol becomes; - # Re-doing this query every 15 seconds isn't the end of the world. - - $notice->query('SELECT profile_id, max(id) AS max_id ' . - 'FROM notice ' . - 'WHERE created > (now() - ' . $seconds . ') ' . - 'GROUP BY profile_id'); - - $updates = array(); - - while ($notice->fetch()) { - $updates[] = array($notice->profile_id, $notice->max_id); - } - - return $updates; - } - - function is_readonly() - { - return true; - } -} diff --git a/_darcs/pristine/actions/tag.php b/_darcs/pristine/actions/tag.php deleted file mode 100644 index 8a3f90c16a..0000000000 --- a/_darcs/pristine/actions/tag.php +++ /dev/null @@ -1,172 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/actions/showstream.php'); -define('TAGS_PER_PAGE', 100); - -class TagAction extends StreamAction -{ - - function handle($args) - { - - parent::handle($args); - - # Looks like we're good; show the header - - if (isset($args['tag']) && $args['tag']) { - $tag = $args['tag']; - common_show_header(sprintf(_("Notices tagged with %s"), $tag), - array($this, 'show_header'), $tag, - array($this, 'show_top')); - $this->show_notices($tag); - } else { - common_show_header(_("Tags"), - array($this, 'show_header'), '', - array($this, 'show_top')); - $this->show_tags(); - } - - common_show_footer(); - } - - function show_header($tag = false) - { - if ($tag) { - common_element('link', array('rel' => 'alternate', - 'href' => common_local_url('tagrss', array('tag' => $tag)), - 'type' => 'application/rss+xml', - 'title' => sprintf(_('Feed for tag %s'), $tag))); - } - } - - function get_instructions() - { - return _('Showing most popular tags from the last week'); - } - - function show_top($tag = false) - { - if (!$tag) { - $instr = $this->get_instructions(); - $output = common_markup_to_html($instr); - common_element_start('div', 'instructions'); - common_raw($output); - common_element_end('div'); - $this->public_views_menu(); - } - else { - $this->show_feeds_list(array(0=>array('href'=>common_local_url('tagrss'), - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'tagrss'))); - } - } - - function show_tags() - { - # This should probably be cached rather than recalculated - $tags = DB_DataObject::factory('Notice_tag'); - - #Need to clear the selection and then only re-add the field - #we are grouping by, otherwise it's not a valid 'group by' - #even though MySQL seems to let it slide... - $tags->selectAdd(); - $tags->selectAdd('tag'); - - #Add the aggregated columns... - $tags->selectAdd('max(notice_id) as last_notice_id'); - if(common_config('db','type')=='pgsql') { - $calc='sum(exp(-extract(epoch from (now()-created))/%s)) as weight'; - } else { - $calc='sum(exp(-(now() - created)/%s)) as weight'; - } - $tags->selectAdd(sprintf($calc, common_config('tag', 'dropoff'))); - $tags->groupBy('tag'); - $tags->orderBy('weight DESC'); - - # $tags->whereAdd('created > "' . strftime('%Y-%m-%d %H:%M:%S', strtotime('-1 MONTH')) . '"'); - - $tags->limit(TAGS_PER_PAGE); - - $cnt = $tags->find(); - - if ($cnt > 0) { - common_element_start('p', 'tagcloud'); - - $tw = array(); - $sum = 0; - while ($tags->fetch()) { - $tw[$tags->tag] = $tags->weight; - $sum += $tags->weight; - } - - ksort($tw); - - foreach ($tw as $tag => $weight) { - $this->show_tag($tag, $weight, $weight/$sum); - } - - common_element_end('p'); - } - } - - function show_tag($tag, $weight, $relative) - { - - # XXX: these should probably tune to the size of the site - if ($relative > 0.1) { - $cls = 'largest'; - } else if ($relative > 0.05) { - $cls = 'verylarge'; - } else if ($relative > 0.02) { - $cls = 'large'; - } else if ($relative > 0.01) { - $cls = 'medium'; - } else if ($relative > 0.005) { - $cls = 'small'; - } else if ($relative > 0.002) { - $cls = 'verysmall'; - } else { - $cls = 'smallest'; - } - - common_element('a', array('class' => "$cls weight-$weight relative-$relative", - 'href' => common_local_url('tag', array('tag' => $tag))), - $tag); - common_text(' '); - } - - function show_notices($tag) - { - - $cnt = 0; - - $page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - - $notice = Notice_tag::getStream($tag, (($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1); - - $cnt = $this->show_notice_list($notice); - - common_pagination($page > 1, $cnt > NOTICES_PER_PAGE, - $page, 'tag', array('tag' => $tag)); - } -} diff --git a/_darcs/pristine/actions/tagother.php b/_darcs/pristine/actions/tagother.php deleted file mode 100644 index ff6788cc62..0000000000 --- a/_darcs/pristine/actions/tagother.php +++ /dev/null @@ -1,198 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/settingsaction.php'); - -class TagotherAction extends Action -{ - - function handle($args) - { - - parent::handle($args); - - if (!common_logged_in()) { - $this->client_error(_('Not logged in'), 403); - return; - } - - if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $this->save_tags(); - } else { - $id = $this->trimmed('id'); - if (!$id) { - $this->client_error(_('No id argument.')); - return; - } - $profile = Profile::staticGet('id', $id); - if (!$profile) { - $this->client_error(_('No profile with that ID.')); - return; - } - $this->show_form($profile); - } - } - - function show_form($profile, $error=null) - { - - $user = common_current_user(); - - common_show_header(_('Tag a person'), - null, array($profile, $error), array($this, 'show_top')); - - $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); - - common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_PROFILE_SIZE), - 'class' => 'avatar stream', - 'width' => AVATAR_PROFILE_SIZE, - 'height' => AVATAR_PROFILE_SIZE, - 'alt' => - ($profile->fullname) ? $profile->fullname : - $profile->nickname)); - - common_element('a', array('href' => $profile->profileurl, - 'class' => 'external profile nickname'), - $profile->nickname); - - if ($profile->fullname) { - common_element_start('div', 'fullname'); - if ($profile->homepage) { - common_element('a', array('href' => $profile->homepage), - $profile->fullname); - } else { - common_text($profile->fullname); - } - common_element_end('div'); - } - if ($profile->location) { - common_element('div', 'location', $profile->location); - } - if ($profile->bio) { - common_element('div', 'bio', $profile->bio); - } - - common_element_start('form', array('method' => 'post', - 'id' => 'tag_user', - 'name' => 'tagother', - 'action' => $this->self_url())); - common_hidden('token', common_session_token()); - common_hidden('id', $profile->id); - common_input('tags', _('Tags'), - ($this->arg('tags')) ? $this->arg('tags') : implode(' ', Profile_tag::getTags($user->id, $profile->id)), - _('Tags for this user (letters, numbers, -, ., and _), comma- or space- separated')); - - common_submit('save', _('Save')); - common_element_end('form'); - common_show_footer(); - - } - - function save_tags() - { - - $id = $this->trimmed('id'); - $tagstring = $this->trimmed('tags'); - $token = $this->trimmed('token'); - - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - - $profile = Profile::staticGet('id', $id); - - if (!$profile) { - $this->client_error(_('No such profile.')); - return; - } - - if (is_string($tagstring) && strlen($tagstring) > 0) { - - $tags = array_map('common_canonical_tag', - preg_split('/[\s,]+/', $tagstring)); - - foreach ($tags as $tag) { - if (!common_valid_profile_tag($tag)) { - $this->show_form($profile, sprintf(_('Invalid tag: "%s"'), $tag)); - return; - } - } - } else { - $tags = array(); - } - - $user = common_current_user(); - - if (!Subscription::pkeyGet(array('subscriber' => $user->id, - 'subscribed' => $profile->id)) && - !Subscription::pkeyGet(array('subscriber' => $profile->id, - 'subscribed' => $user->id))) - { - $this->client_error(_('You can only tag people you are subscribed to or who are subscribed to you.')); - return; - } - - $result = Profile_tag::setTags($user->id, $profile->id, $tags); - - if (!$result) { - $this->client_error(_('Could not save tags.')); - return; - } - - $action = $user->isSubscribed($profile) ? 'subscriptions' : 'subscribers'; - - if ($this->boolean('ajax')) { - common_start_html('text/xml'); - common_element_start('head'); - common_element('title', null, _('Tags')); - common_element_end('head'); - common_element_start('body'); - common_element_start('p', 'subtags'); - foreach ($tags as $tag) { - common_element('a', array('href' => common_local_url($action, - array('nickname' => $user->nickname, - 'tag' => $tag))), - $tag); - } - common_element_end('p'); - common_element_end('body'); - common_element_end('html'); - } else { - common_redirect(common_local_url($action, array('nickname' => - $user->nickname))); - } - } - - function show_top($arr = null) - { - list($profile, $error) = $arr; - if ($error) { - common_element('p', 'error', $error); - } else { - common_element_start('div', 'instructions'); - common_element('p', null, - _('Use this form to add tags to your subscribers or subscriptions.')); - common_element_end('div'); - } - } -} - diff --git a/_darcs/pristine/actions/tagrss.php b/_darcs/pristine/actions/tagrss.php deleted file mode 100644 index 912d71413d..0000000000 --- a/_darcs/pristine/actions/tagrss.php +++ /dev/null @@ -1,69 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/rssaction.php'); - -// Formatting of RSS handled by Rss10Action - -class TagrssAction extends Rss10Action -{ - - function init() - { - $tag = $this->trimmed('tag'); - $this->tag = Notice_tag::staticGet('tag', $tag); - - if (!$this->tag) { - common_user_error(_('No such tag.')); - return false; - } else { - return true; - } - } - - function get_notices($limit=0) - { - $tag = $this->tag; - - if (is_null($tag)) { - return null; - } - - $notice = Notice_tag::getStream($tag->tag, 0, ($limit == 0) ? NOTICES_PER_PAGE : $limit); - - while ($notice->fetch()) { - $notices[] = clone($notice); - } - - return $notices; - } - - function get_channel() - { - $tag = $this->tag->tag; - - $c = array('url' => common_local_url('tagrss', array('tag' => $tagname)), - 'title' => $tagname, - 'link' => common_local_url('tagrss', array('tag' => $tagname)), - 'description' => sprintf(_('Microblog tagged with %s'), $tagname)); - return $c; - } -} diff --git a/_darcs/pristine/actions/twitapiaccount.php b/_darcs/pristine/actions/twitapiaccount.php deleted file mode 100644 index 79e1ed990d..0000000000 --- a/_darcs/pristine/actions/twitapiaccount.php +++ /dev/null @@ -1,102 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/twitterapi.php'); - -class TwitapiaccountAction extends TwitterapiAction -{ - - function verify_credentials($args, $apidata) - { - parent::handle($args); - - if (!in_array($apidata['content-type'], array('xml', 'json'))) { - common_user_error(_('API method not found!'), $code = 404); - return; - } - - $this->show_extended_profile($apidata['user'], $apidata); - } - - function end_session($args, $apidata) - { - parent::handle($args); - common_server_error(_('API method under construction.'), $code=501); - } - - function update_location($args, $apidata) - { - parent::handle($args); - - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - $this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']); - return; - } - - $location = trim($this->arg('location')); - - if (!is_null($location) && strlen($location) > 255) { - - // XXX: But Twitter just truncates and runs with it. -- Zach - $this->client_error(_('That\'s too long. Max notice size is 255 chars.'), 406, $apidate['content-type']); - return; - } - - $user = $apidata['user']; - $profile = $user->getProfile(); - - if (!$profile) { - common_server_error(_('User has no profile.')); - return; - } - - $orig_profile = clone($profile); - $profile->location = $location; - - $result = $profile->update($orig_profile); - - if (!$result) { - common_log_db_error($profile, 'UPDATE', __FILE__); - common_server_error(_('Couldn\'t save profile.')); - return; - } - - common_broadcast_profile($profile); - $type = $apidata['content-type']; - - $this->init_document($type); - $this->show_profile($profile, $type); - $this->end_document($type); - } - - - function update_delivery_device($args, $apidata) - { - parent::handle($args); - common_server_error(_('API method under construction.'), $code=501); - } - - function rate_limit_status($args, $apidata) - { - parent::handle($args); - common_server_error(_('API method under construction.'), $code=501); - } -} \ No newline at end of file diff --git a/_darcs/pristine/actions/twitapiblocks.php b/_darcs/pristine/actions/twitapiblocks.php deleted file mode 100644 index 5d64f2f7d8..0000000000 --- a/_darcs/pristine/actions/twitapiblocks.php +++ /dev/null @@ -1,72 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/twitterapi.php'); - -class TwitapiblocksAction extends TwitterapiAction -{ - - function create($args, $apidata) - { - - parent::handle($args); - - $blockee = $this->get_user($apidata['api_arg'], $apidata); - - if (!$blockee) { - $this->client_error('Not Found', 404, $apidata['content-type']); - return; - } - - $user = $apidata['user']; - - if ($user->hasBlocked($blockee) || $user->block($blockee)) { - $type = $apidata['content-type']; - $this->init_document($type); - $this->show_profile($blockee, $type); - $this->end_document($type); - } else { - common_server_error(_('Block user failed.')); - } - } - - function destroy($args, $apidata) - { - parent::handle($args); - $blockee = $this->get_user($apidata['api_arg'], $apidata); - - if (!$blockee) { - $this->client_error('Not Found', 404, $apidata['content-type']); - return; - } - - $user = $apidata['user']; - - if (!$user->hasBlocked($blockee) || $user->unblock($blockee)) { - $type = $apidata['content-type']; - $this->init_document($type); - $this->show_profile($blockee, $type); - $this->end_document($type); - } else { - common_server_error(_('Unblock user failed.')); - } - } -} \ No newline at end of file diff --git a/_darcs/pristine/actions/twitapidirect_messages.php b/_darcs/pristine/actions/twitapidirect_messages.php deleted file mode 100644 index e0731f66fb..0000000000 --- a/_darcs/pristine/actions/twitapidirect_messages.php +++ /dev/null @@ -1,298 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/twitterapi.php'); - -class Twitapidirect_messagesAction extends TwitterapiAction -{ - - function direct_messages($args, $apidata) - { - parent::handle($args); - return $this->show_messages($args, $apidata, 'received'); - } - - function sent($args, $apidata) - { - parent::handle($args); - return $this->show_messages($args, $apidata, 'sent'); - } - - function show_messages($args, $apidata, $type) - { - - $user = $apidata['user']; - - $count = $this->arg('count'); - $since = $this->arg('since'); - $since_id = $this->arg('since_id'); - $before_id = $this->arg('before_id'); - - $page = $this->arg('page'); - - if (!$page) { - $page = 1; - } - - if (!$count) { - $count = 20; - } - - $message = new Message(); - - $title = null; - $subtitle = null; - $link = null; - $server = common_root_url(); - - if ($type == 'received') { - $message->to_profile = $user->id; - $title = sprintf(_("Direct messages to %s"), $user->nickname); - $subtitle = sprintf(_("All the direct messages sent to %s"), $user->nickname); - $link = $server . $user->nickname . '/inbox'; - } else { - $message->from_profile = $user->id; - $title = _('Direct Messages You\'ve Sent'); - $subtitle = sprintf(_("All the direct messages sent from %s"), $user->nickname); - $link = $server . $user->nickname . '/outbox'; - } - - if ($before_id) { - $message->whereAdd("id < $before_id"); - } - - if ($since_id) { - $message->whereAdd("id > $since_id"); - } - - $since = strtotime($this->arg('since')); - - if ($since) { - $d = date('Y-m-d H:i:s', $since); - $message->whereAdd("created > '$d'"); - } - - $message->orderBy('created DESC, id DESC'); - $message->limit((($page-1)*20), $count); - $message->find(); - - switch($apidata['content-type']) { - case 'xml': - $this->show_xml_dmsgs($message); - break; - case 'rss': - $this->show_rss_dmsgs($message, $title, $link, $subtitle); - break; - case 'atom': - $this->show_atom_dmsgs($message, $title, $link, $subtitle); - break; - case 'json': - $this->show_json_dmsgs($message); - break; - default: - common_user_error(_('API method not found!'), $code = 404); - } - - } - - // had to change this from "new" to "create" to avoid PHP reserved word - function create($args, $apidata) - { - parent::handle($args); - - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - $this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']); - return; - } - - $user = $apidata['user']; - $source = $this->trimmed('source'); // Not supported by Twitter. - - $reserved_sources = array('web', 'omb', 'mail', 'xmpp', 'api'); - if (!$source || in_array($source, $reserved_sources)) { - $source = 'api'; - } - - $content = $this->trimmed('text'); - - if (!$content) { - $this->client_error(_('No message text!'), $code = 406, $apidata['content-type']); - } else { - $content_shortened = common_shorten_links($content); - if (mb_strlen($content_shortened) > 140) { - $this->client_error(_('That\'s too long. Max message size is 140 chars.'), - $code = 406, $apidata['content-type']); - return; - } - } - - $other = $this->get_user($this->trimmed('user')); - - if (!$other) { - $this->client_error(_('Recipient user not found.'), $code = 403, $apidata['content-type']); - return; - } else if (!$user->mutuallySubscribed($other)) { - $this->client_error(_('Can\'t send direct messages to users who aren\'t your friend.'), - $code = 403, $apidata['content-type']); - return; - } else if ($user->id == $other->id) { - // Sending msgs to yourself is allowed by Twitter - $this->client_error(_('Don\'t send a message to yourself; just say it to yourself quietly instead.'), - $code = 403, $apidata['content-type']); - return; - } - - $message = Message::saveNew($user->id, $other->id, - html_entity_decode($content, ENT_NOQUOTES, 'UTF-8'), $source); - - if (is_string($message)) { - $this->server_error($message); - return; - } - - $this->notify($user, $other, $message); - - if ($apidata['content-type'] == 'xml') { - $this->show_single_xml_dmsg($message); - } elseif ($apidata['content-type'] == 'json') { - $this->show_single_json_dmsg($message); - } - - } - - function destroy($args, $apidata) - { - parent::handle($args); - common_server_error(_('API method under construction.'), $code=501); - } - - function show_xml_dmsgs($message) - { - - $this->init_document('xml'); - common_element_start('direct-messages', array('type' => 'array')); - - if (is_array($messages)) { - foreach ($message as $m) { - $twitter_dm = $this->twitter_dmsg_array($m); - $this->show_twitter_xml_dmsg($twitter_dm); - } - } else { - while ($message->fetch()) { - $twitter_dm = $this->twitter_dmsg_array($message); - $this->show_twitter_xml_dmsg($twitter_dm); - } - } - - common_element_end('direct-messages'); - $this->end_document('xml'); - - } - - function show_json_dmsgs($message) - { - - $this->init_document('json'); - - $dmsgs = array(); - - if (is_array($message)) { - foreach ($message as $m) { - $twitter_dm = $this->twitter_dmsg_array($m); - array_push($dmsgs, $twitter_dm); - } - } else { - while ($message->fetch()) { - $twitter_dm = $this->twitter_dmsg_array($message); - array_push($dmsgs, $twitter_dm); - } - } - - $this->show_json_objects($dmsgs); - $this->end_document('json'); - - } - - function show_rss_dmsgs($message, $title, $link, $subtitle) - { - - $this->init_document('rss'); - - common_element_start('channel'); - common_element('title', null, $title); - - common_element('link', null, $link); - common_element('description', null, $subtitle); - common_element('language', null, 'en-us'); - common_element('ttl', null, '40'); - - if (is_array($message)) { - foreach ($message as $m) { - $entry = $this->twitter_rss_dmsg_array($m); - $this->show_twitter_rss_item($entry); - } - } else { - while ($message->fetch()) { - $entry = $this->twitter_rss_dmsg_array($message); - $this->show_twitter_rss_item($entry); - } - } - - common_element_end('channel'); - $this->end_twitter_rss(); - - } - - function show_atom_dmsgs($message, $title, $link, $subtitle) - { - - $this->init_document('atom'); - - common_element('title', null, $title); - $siteserver = common_config('site', 'server'); - common_element('id', null, "tag:$siteserver,2008:DirectMessage"); - common_element('link', array('href' => $link, 'rel' => 'alternate', 'type' => 'text/html'), null); - common_element('updated', null, common_date_iso8601(strftime('%c'))); - common_element('subtitle', null, $subtitle); - - if (is_array($message)) { - foreach ($message as $m) { - $entry = $this->twitter_rss_dmsg_array($m); - $this->show_twitter_atom_entry($entry); - } - } else { - while ($message->fetch()) { - $entry = $this->twitter_rss_dmsg_array($message); - $this->show_twitter_atom_entry($entry); - } - } - - $this->end_document('atom'); - } - - // swiped from MessageAction. Should it be place in util.php? - function notify($from, $to, $message) - { - mail_notify_message($message, $from, $to); - # XXX: Jabber, SMS notifications... probably queued - } - -} diff --git a/_darcs/pristine/actions/twitapifavorites.php b/_darcs/pristine/actions/twitapifavorites.php deleted file mode 100644 index 55e04732f5..0000000000 --- a/_darcs/pristine/actions/twitapifavorites.php +++ /dev/null @@ -1,181 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/twitterapi.php'); - -class TwitapifavoritesAction extends TwitterapiAction -{ - - function favorites($args, $apidata) - { - parent::handle($args); - - $this->auth_user = $apidata['user']; - $user = $this->get_user($apidata['api_arg'], $apidata); - - if (!$user) { - $this->client_error('Not Found', 404, $apidata['content-type']); - return; - } - - $profile = $user->getProfile(); - - if (!$profile) { - common_server_error(_('User has no profile.')); - return; - } - - $page = $this->arg('page'); - - if (!$page) { - $page = 1; - } - - if (!$count) { - $count = 20; - } - - $notice = $user->favoriteNotices((($page-1)*20), $count); - - if (!$notice) { - common_server_error(_('Could not retrieve favorite notices.')); - return; - } - - $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); - - $title = sprintf(_('%s / Favorites from %s'), $sitename, $user->nickname); - $id = "tag:$siteserver:favorites:".$user->id; - $link = common_local_url('favorites', array('nickname' => $user->nickname)); - $subtitle = sprintf(_('%s updates favorited by %s / %s.'), $sitename, $profile->getBestName(), $user->nickname); - - switch($apidata['content-type']) { - case 'xml': - $this->show_xml_timeline($notice); - break; - case 'rss': - $this->show_rss_timeline($notice, $title, $link, $subtitle); - break; - case 'atom': - $this->show_atom_timeline($notice, $title, $id, $link, $subtitle); - break; - case 'json': - $this->show_json_timeline($notice); - break; - default: - common_user_error(_('API method not found!'), $code = 404); - } - - } - - function create($args, $apidata) - { - parent::handle($args); - - // Check for RESTfulness - if (!in_array($_SERVER['REQUEST_METHOD'], array('POST', 'DELETE'))) { - // XXX: Twitter just prints the err msg, no XML / JSON. - $this->client_error(_('This method requires a POST or DELETE.'), 400, $apidata['content-type']); - return; - } - - if (!in_array($apidata['content-type'], array('xml', 'json'))) { - common_user_error(_('API method not found!'), $code = 404); - return; - } - - $this->auth_user = $apidata['user']; - $user = $this->auth_user; - $notice_id = $apidata['api_arg']; - $notice = Notice::staticGet($notice_id); - - if (!$notice) { - $this->client_error(_('No status found with that ID.'), 404, $apidata['content-type']); - return; - } - - // XXX: Twitter lets you fave things repeatedly via api. - if ($user->hasFave($notice)) { - $this->client_error(_('This notice is already a favorite!'), 403, $apidata['content-type']); - return; - } - - $fave = Fave::addNew($user, $notice); - - if (!$fave) { - common_server_error(_('Could not create favorite.')); - return; - } - - $this->notify($fave, $notice, $user); - $user->blowFavesCache(); - - if ($apidata['content-type'] == 'xml') { - $this->show_single_xml_status($notice); - } elseif ($apidata['content-type'] == 'json') { - $this->show_single_json_status($notice); - } - - } - - function destroy($args, $apidata) - { - parent::handle($args); - common_server_error(_('API method under construction.'), $code=501); - } - - // XXX: these two funcs swiped from faves. Maybe put in util.php, or some common base class? - - function notify($fave, $notice, $user) - { - $other = User::staticGet('id', $notice->profile_id); - if ($other && $other->id != $user->id) { - if ($other->email && $other->emailnotifyfav) { - $this->notify_mail($other, $user, $notice); - } - # XXX: notify by IM - # XXX: notify by SMS - } - } - - function notify_mail($other, $user, $notice) - { - $profile = $user->getProfile(); - $bestname = $profile->getBestName(); - $subject = sprintf(_('%s added your notice as a favorite'), $bestname); - $body = sprintf(_("%1\$s just added your notice from %2\$s as one of their favorites.\n\n" . - "In case you forgot, you can see the text of your notice here:\n\n" . - "%3\$s\n\n" . - "You can see the list of %1\$s's favorites here:\n\n" . - "%4\$s\n\n" . - "Faithfully yours,\n" . - "%5\$s\n"), - $bestname, - common_exact_date($notice->created), - common_local_url('shownotice', array('notice' => $notice->id)), - common_local_url('showfavorites', array('nickname' => $user->nickname)), - common_config('site', 'name')); - - mail_to_user($other, $subject, $body); - } - -} \ No newline at end of file diff --git a/_darcs/pristine/actions/twitapifriendships.php b/_darcs/pristine/actions/twitapifriendships.php deleted file mode 100644 index ba4afe441e..0000000000 --- a/_darcs/pristine/actions/twitapifriendships.php +++ /dev/null @@ -1,159 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/twitterapi.php'); - -class TwitapifriendshipsAction extends TwitterapiAction -{ - - function create($args, $apidata) - { - parent::handle($args); - - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - $this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']); - return; - } - - $id = $apidata['api_arg']; - - $other = $this->get_user($id); - - if (!$other) { - $this->client_error(_('Could not follow user: User not found.'), 403, $apidata['content-type']); - return; - } - - $user = $apidata['user']; - - if ($user->isSubscribed($other)) { - $errmsg = sprintf(_('Could not follow user: %s is already on your list.'), $other->nickname); - $this->client_error($errmsg, 403, $apidata['content-type']); - return; - } - - $sub = new Subscription(); - - $sub->query('BEGIN'); - - $sub->subscriber = $user->id; - $sub->subscribed = $other->id; - $sub->created = DB_DataObject_Cast::dateTime(); # current time - - $result = $sub->insert(); - - if (!$result) { - $errmsg = sprintf(_('Could not follow user: %s is already on your list.'), $other->nickname); - $this->client_error($errmsg, 400, $apidata['content-type']); - return; - } - - $sub->query('COMMIT'); - - mail_subscribe_notify($other, $user); - - $type = $apidata['content-type']; - $this->init_document($type); - $this->show_profile($other, $type); - $this->end_document($type); - - } - - function destroy($args, $apidata) - { - parent::handle($args); - - if (!in_array($_SERVER['REQUEST_METHOD'], array('POST', 'DELETE'))) { - $this->client_error(_('This method requires a POST or DELETE.'), 400, $apidata['content-type']); - return; - } - - $id = $apidata['api_arg']; - - # We can't subscribe to a remote person, but we can unsub - - $other = $this->get_profile($id); - $user = $apidata['user']; - - $sub = new Subscription(); - $sub->subscriber = $user->id; - $sub->subscribed = $other->id; - - if ($sub->find(true)) { - $sub->query('BEGIN'); - $sub->delete(); - $sub->query('COMMIT'); - } else { - $this->client_error(_('You are not friends with the specified user.'), 403, $apidata['content-type']); - return; - } - - $type = $apidata['content-type']; - $this->init_document($type); - $this->show_profile($other, $type); - $this->end_document($type); - - } - - function exists($args, $apidata) - { - parent::handle($args); - - if (!in_array($apidata['content-type'], array('xml', 'json'))) { - common_user_error(_('API method not found!'), $code = 404); - return; - } - - $user_a_id = $this->trimmed('user_a'); - $user_b_id = $this->trimmed('user_b'); - - $user_a = $this->get_user($user_a_id); - $user_b = $this->get_user($user_b_id); - - if (!$user_a || !$user_b) { - $this->client_error(_('Two user ids or screen_names must be supplied.'), 400, $apidata['content-type']); - return; - } - - if ($user_a->isSubscribed($user_b)) { - $result = 'true'; - } else { - $result = 'false'; - } - - switch ($apidata['content-type']) { - case 'xml': - $this->init_document('xml'); - common_element('friends', null, $result); - $this->end_document('xml'); - break; - case 'json': - $this->init_document('json'); - print json_encode($result); - $this->end_document('json'); - break; - default: - break; - } - - } - -} \ No newline at end of file diff --git a/_darcs/pristine/actions/twitapihelp.php b/_darcs/pristine/actions/twitapihelp.php deleted file mode 100644 index 1b84cb11bb..0000000000 --- a/_darcs/pristine/actions/twitapihelp.php +++ /dev/null @@ -1,55 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/twitterapi.php'); - -class TwitapihelpAction extends TwitterapiAction -{ - - /* Returns the string "ok" in the requested format with a 200 OK HTTP status code. - * URL:http://identi.ca/api/help/test.format - * Formats: xml, json - */ - function test($args, $apidata) - { - parent::handle($args); - - if ($apidata['content-type'] == 'xml') { - $this->init_document('xml'); - common_element('ok', null, 'true'); - $this->end_document('xml'); - } elseif ($apidata['content-type'] == 'json') { - $this->init_document('json'); - print '"ok"'; - $this->end_document('json'); - } else { - common_user_error(_('API method not found!'), $code=404); - } - - } - - function downtime_schedule($args, $apidata) - { - parent::handle($args); - common_server_error(_('API method under construction.'), $code=501); - } - -} \ No newline at end of file diff --git a/_darcs/pristine/actions/twitapilaconica.php b/_darcs/pristine/actions/twitapilaconica.php deleted file mode 100644 index 722423faec..0000000000 --- a/_darcs/pristine/actions/twitapilaconica.php +++ /dev/null @@ -1,174 +0,0 @@ -. - * - * @category Twitter - * @package Laconica - * @author Evan Prodromou - * @copyright 2008 Control Yourself, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ - */ - -if (!defined('LACONICA')) { - exit(1); -} - -require_once INSTALLDIR.'/lib/twitterapi.php'; - -/** - * Laconica-specific API methods - * - * This class handles all /laconica/ API methods. - * - * @category Twitter - * @package Laconica - * @author Evan Prodromou - * @copyright 2008 Control Yourself, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ - */ - -class TwitapilaconicaAction extends TwitterapiAction -{ - /** - * A version stamp for the API - * - * Returns a version number for this version of Laconica, which - * should make things a bit easier for upgrades. - * URL: http://identi.ca/api/laconica/version.(xml|json) - * Formats: xml, json - * - * @param array $args Web arguments - * @param array $apidata Twitter API data - * - * @return void - * - * @see ApiAction::process_command() - */ - - function version($args, $apidata) - { - parent::handle($args); - switch ($apidata['content-type']) { - case 'xml': - $this->init_document('xml'); - common_element('version', null, LACONICA_VERSION); - $this->end_document('xml'); - break; - case 'json': - $this->init_document('json'); - print '"'.LACONICA_VERSION.'"'; - $this->end_document('json'); - break; - default: - $this->client_error(_('API method not found!'), $code=404); - } - } - - /** - * Dump of configuration variables - * - * Gives a full dump of configuration variables for this instance - * of Laconica, minus variables that may be security-sensitive (like - * passwords). - * URL: http://identi.ca/api/laconica/config.(xml|json) - * Formats: xml, json - * - * @param array $args Web arguments - * @param array $apidata Twitter API data - * - * @return void - * - * @see ApiAction::process_command() - */ - - function config($args, $apidata) - { - static $keys = array('site' => array('name', 'server', 'theme', 'path', 'fancy', 'language', - 'email', 'broughtby', 'broughtbyurl', 'closed', - 'inviteonly', 'private'), - 'license' => array('url', 'title', 'image'), - 'nickname' => array('featured'), - 'throttle' => array('enabled', 'count', 'timespan'), - 'xmpp' => array('enabled', 'server', 'user')); - - parent::handle($args); - - switch ($apidata['content-type']) { - case 'xml': - $this->init_document('xml'); - common_element_start('config'); - // XXX: check that all sections and settings are legal XML elements - foreach ($keys as $section => $settings) { - common_element_start($section); - foreach ($settings as $setting) { - $value = common_config($section, $setting); - if (is_array($value)) { - $value = implode(',', $value); - } else if ($value === false) { - $value = 'false'; - } else if ($value === true) { - $value = 'true'; - } - common_element($setting, null, $value); - } - common_element_end($section); - } - common_element_end('config'); - $this->end_document('xml'); - break; - case 'json': - $result = array(); - foreach ($keys as $section => $settings) { - $result[$section] = array(); - foreach ($settings as $setting) { - $result[$section][$setting] = common_config($section, $setting); - } - } - $this->init_document('json'); - $this->show_json_objects($result); - $this->end_document('json'); - break; - default: - $this->client_error(_('API method not found!'), $code=404); - } - } - - /** - * WADL description of the API - * - * Gives a WADL description of the API provided by this version of the - * software. - * - * @param array $args Web arguments - * @param array $apidata Twitter API data - * - * @return void - * - * @see ApiAction::process_command() - */ - - function wadl($args, $apidata) - { - parent::handle($args); - common_server_error(_('API method under construction.'), 501); - } -} diff --git a/_darcs/pristine/actions/twitapinotifications.php b/_darcs/pristine/actions/twitapinotifications.php deleted file mode 100644 index a19d652c3d..0000000000 --- a/_darcs/pristine/actions/twitapinotifications.php +++ /dev/null @@ -1,40 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/twitterapi.php'); - -# This naming convention looks real sick -class TwitapinotificationsAction extends TwitterapiAction -{ - - function follow($args, $apidata) - { - parent::handle($args); - common_server_error(_('API method under construction.'), $code=501); - } - - function leave($args, $apidata) - { - parent::handle($args); - common_server_error(_('API method under construction.'), $code=501); - } - -} \ No newline at end of file diff --git a/_darcs/pristine/actions/twitapistatuses.php b/_darcs/pristine/actions/twitapistatuses.php deleted file mode 100644 index e629d5cc41..0000000000 --- a/_darcs/pristine/actions/twitapistatuses.php +++ /dev/null @@ -1,577 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/twitterapi.php'); - -class TwitapistatusesAction extends TwitterapiAction -{ - - function public_timeline($args, $apidata) - { - parent::handle($args); - - $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); - $title = sprintf(_("%s public timeline"), $sitename); - $id = "tag:$siteserver:Statuses"; - $link = common_root_url(); - $subtitle = sprintf(_("%s updates from everyone!"), $sitename); - - // Number of public statuses to return by default -- Twitter sends 20 - $MAX_PUBSTATUSES = 20; - - // FIXME: To really live up to the spec we need to build a list - // of notices by users who have custom avatars, so fix this SQL -- Zach - - $page = $this->arg('page'); - $since_id = $this->arg('since_id'); - $before_id = $this->arg('before_id'); - - // NOTE: page, since_id, and before_id are extensions to Twitter API -- TB - if (!$page) { - $page = 1; - } - if (!$since_id) { - $since_id = 0; - } - if (!$before_id) { - $before_id = 0; - } - - $since = strtotime($this->arg('since')); - - $notice = Notice::publicStream((($page-1)*$MAX_PUBSTATUSES), $MAX_PUBSTATUSES, $since_id, $before_id, $since); - - if ($notice) { - - switch($apidata['content-type']) { - case 'xml': - $this->show_xml_timeline($notice); - break; - case 'rss': - $this->show_rss_timeline($notice, $title, $link, $subtitle); - break; - case 'atom': - $this->show_atom_timeline($notice, $title, $id, $link, $subtitle); - break; - case 'json': - $this->show_json_timeline($notice); - break; - default: - common_user_error(_('API method not found!'), $code = 404); - break; - } - - } else { - common_server_error(_('Couldn\'t find any statuses.'), $code = 503); - } - - } - - function friends_timeline($args, $apidata) - { - parent::handle($args); - - $since = $this->arg('since'); - $since_id = $this->arg('since_id'); - $count = $this->arg('count'); - $page = $this->arg('page'); - $before_id = $this->arg('before_id'); - - if (!$page) { - $page = 1; - } - - if (!$count) { - $count = 20; - } - - if (!$since_id) { - $since_id = 0; - } - - // NOTE: before_id is an extension to Twitter API -- TB - if (!$before_id) { - $before_id = 0; - } - - $since = strtotime($this->arg('since')); - - $user = $this->get_user(null, $apidata); - $this->auth_user = $user; - - $profile = $user->getProfile(); - - $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); - - $title = sprintf(_("%s and friends"), $user->nickname); - $id = "tag:$siteserver:friends:" . $user->id; - $link = common_local_url('all', array('nickname' => $user->nickname)); - $subtitle = sprintf(_('Updates from %1$s and friends on %2$s!'), $user->nickname, $sitename); - - $notice = $user->noticesWithFriends(($page-1)*20, $count, $since_id, $before_id, $since); - - switch($apidata['content-type']) { - case 'xml': - $this->show_xml_timeline($notice); - break; - case 'rss': - $this->show_rss_timeline($notice, $title, $link, $subtitle); - break; - case 'atom': - $this->show_atom_timeline($notice, $title, $id, $link, $subtitle); - break; - case 'json': - $this->show_json_timeline($notice); - break; - default: - common_user_error(_('API method not found!'), $code = 404); - } - - } - - function user_timeline($args, $apidata) - { - parent::handle($args); - - $this->auth_user = $apidata['user']; - $user = $this->get_user($apidata['api_arg'], $apidata); - - if (!$user) { - $this->client_error('Not Found', 404, $apidata['content-type']); - return; - } - - $profile = $user->getProfile(); - - if (!$profile) { - common_server_error(_('User has no profile.')); - return; - } - - $count = $this->arg('count'); - $since = $this->arg('since'); - $since_id = $this->arg('since_id'); - $page = $this->arg('page'); - $before_id = $this->arg('before_id'); - - if (!$page) { - $page = 1; - } - - if (!$count) { - $count = 20; - } - - if (!$since_id) { - $since_id = 0; - } - - // NOTE: before_id is an extensions to Twitter API -- TB - if (!$before_id) { - $before_id = 0; - } - - $since = strtotime($this->arg('since')); - - $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); - - $title = sprintf(_("%s timeline"), $user->nickname); - $id = "tag:$siteserver:user:".$user->id; - $link = common_local_url('showstream', array('nickname' => $user->nickname)); - $subtitle = sprintf(_('Updates from %1$s on %2$s!'), $user->nickname, $sitename); - - # FriendFeed's SUP protocol - # Also added RSS and Atom feeds - - $suplink = common_local_url('sup', null, $user->id); - header('X-SUP-ID: '.$suplink); - - # XXX: since - - $notice = $user->getNotices((($page-1)*20), $count, $since_id, $before_id, $since); - - switch($apidata['content-type']) { - case 'xml': - $this->show_xml_timeline($notice); - break; - case 'rss': - $this->show_rss_timeline($notice, $title, $link, $subtitle, $suplink); - break; - case 'atom': - $this->show_atom_timeline($notice, $title, $id, $link, $subtitle, $suplink); - break; - case 'json': - $this->show_json_timeline($notice); - break; - default: - common_user_error(_('API method not found!'), $code = 404); - } - - } - - function update($args, $apidata) - { - - parent::handle($args); - - if (!in_array($apidata['content-type'], array('xml', 'json'))) { - common_user_error(_('API method not found!'), $code = 404); - return; - } - - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - $this->client_error(_('This method requires a POST.'), 400, $apidata['content-type']); - return; - } - - $this->auth_user = $apidata['user']; - $user = $this->auth_user; - $status = $this->trimmed('status'); - $source = $this->trimmed('source'); - $in_reply_to_status_id = intval($this->trimmed('in_reply_to_status_id')); - $reserved_sources = array('web', 'omb', 'mail', 'xmpp', 'api'); - if (!$source || in_array($source, $reserved_sources)) { - $source = 'api'; - } - - if (!$status) { - - // XXX: Note: In this case, Twitter simply returns '200 OK' - // No error is given, but the status is not posted to the - // user's timeline. Seems bad. Shouldn't we throw an - // errror? -- Zach - return; - - } else { - - $status_shortened = common_shorten_links($status); - - if (mb_strlen($status_shortened) > 140) { - - // XXX: Twitter truncates anything over 140, flags the status - // as "truncated." Sending this error may screw up some clients - // that assume Twitter will truncate for them. Should we just - // truncate too? -- Zach - $this->client_error(_('That\'s too long. Max notice size is 140 chars.'), $code = 406, $apidata['content-type']); - return; - - } - } - - // Check for commands - $inter = new CommandInterpreter(); - $cmd = $inter->handle_command($user, $status_shortened); - - if ($cmd) { - - if ($this->supported($cmd)) { - $cmd->execute(new Channel()); - } - - // cmd not supported? Twitter just returns your latest status. - // And, it returns your last status whether the cmd was successful - // or not! - $n = $user->getCurrentNotice(); - $apidata['api_arg'] = $n->id; - } else { - - $reply_to = null; - - if ($in_reply_to_status_id) { - - // check whether notice actually exists - $reply = Notice::staticGet($in_reply_to_status_id); - - if ($reply) { - $reply_to = $in_reply_to_status_id; - } else { - $this->client_error(_('Not found'), $code = 404, $apidata['content-type']); - return; - } - } - - $notice = Notice::saveNew($user->id, html_entity_decode($status, ENT_NOQUOTES, 'UTF-8'), - $source, 1, $reply_to); - - if (is_string($notice)) { - $this->server_error($notice); - return; - } - - common_broadcast_notice($notice); - $apidata['api_arg'] = $notice->id; - } - - $this->show($args, $apidata); - } - - function replies($args, $apidata) - { - - parent::handle($args); - - $since = $this->arg('since'); - $count = $this->arg('count'); - $page = $this->arg('page'); - $since_id = $this->arg('since_id'); - $before_id = $this->arg('before_id'); - - $this->auth_user = $apidata['user']; - $user = $this->auth_user; - $profile = $user->getProfile(); - - $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); - - $title = sprintf(_('%1$s / Updates replying to %2$s'), $sitename, $user->nickname); - $id = "tag:$siteserver:replies:".$user->id; - $link = common_local_url('replies', array('nickname' => $user->nickname)); - $subtitle = sprintf(_('%1$s updates that reply to updates from %2$s / %3$s.'), $sitename, $user->nickname, $profile->getBestName()); - - if (!$page) { - $page = 1; - } - - if (!$count) { - $count = 20; - } - - if (!$since_id) { - $since_id = 0; - } - - // NOTE: before_id is an extension to Twitter API -- TB - if (!$before_id) { - $before_id = 0; - } - - $since = strtotime($this->arg('since')); - - $notice = $user->getReplies((($page-1)*20), $count, $since_id, $before_id, $since); - $notices = array(); - - while ($notice->fetch()) { - $notices[] = clone($notice); - } - - switch($apidata['content-type']) { - case 'xml': - $this->show_xml_timeline($notices); - break; - case 'rss': - $this->show_rss_timeline($notices, $title, $link, $subtitle); - break; - case 'atom': - $this->show_atom_timeline($notices, $title, $id, $link, $subtitle); - break; - case 'json': - $this->show_json_timeline($notices); - break; - default: - common_user_error(_('API method not found!'), $code = 404); - } - - } - - function show($args, $apidata) - { - parent::handle($args); - - if (!in_array($apidata['content-type'], array('xml', 'json'))) { - common_user_error(_('API method not found!'), $code = 404); - return; - } - - $this->auth_user = $apidata['user']; - $notice_id = $apidata['api_arg']; - $notice = Notice::staticGet($notice_id); - - if ($notice) { - if ($apidata['content-type'] == 'xml') { - $this->show_single_xml_status($notice); - } elseif ($apidata['content-type'] == 'json') { - $this->show_single_json_status($notice); - } - } else { - // XXX: Twitter just sets a 404 header and doens't bother to return an err msg - $this->client_error(_('No status with that ID found.'), 404, $apidata['content-type']); - } - - } - - function destroy($args, $apidata) - { - - parent::handle($args); - - if (!in_array($apidata['content-type'], array('xml', 'json'))) { - common_user_error(_('API method not found!'), $code = 404); - return; - } - - // Check for RESTfulness - if (!in_array($_SERVER['REQUEST_METHOD'], array('POST', 'DELETE'))) { - // XXX: Twitter just prints the err msg, no XML / JSON. - $this->client_error(_('This method requires a POST or DELETE.'), 400, $apidata['content-type']); - return; - } - - $this->auth_user = $apidata['user']; - $user = $this->auth_user; - $notice_id = $apidata['api_arg']; - $notice = Notice::staticGet($notice_id); - - if (!$notice) { - $this->client_error(_('No status found with that ID.'), 404, $apidata['content-type']); - return; - } - - if ($user->id == $notice->profile_id) { - $replies = new Reply; - $replies->get('notice_id', $notice_id); - common_dequeue_notice($notice); - $replies->delete(); - $notice->delete(); - - if ($apidata['content-type'] == 'xml') { - $this->show_single_xml_status($notice); - } elseif ($apidata['content-type'] == 'json') { - $this->show_single_json_status($notice); - } - } else { - $this->client_error(_('You may not delete another user\'s status.'), 403, $apidata['content-type']); - } - - } - - function friends($args, $apidata) - { - parent::handle($args); - return $this->subscriptions($apidata, 'subscribed', 'subscriber'); - } - - function followers($args, $apidata) - { - parent::handle($args); - - return $this->subscriptions($apidata, 'subscriber', 'subscribed'); - } - - function subscriptions($apidata, $other_attr, $user_attr) - { - - # XXX: lite - - $this->auth_user = $apidate['user']; - $user = $this->get_user($apidata['api_arg'], $apidata); - - if (!$user) { - $this->client_error('Not Found', 404, $apidata['content-type']); - return; - } - - $page = $this->trimmed('page'); - - if (!$page || !is_numeric($page)) { - $page = 1; - } - - $profile = $user->getProfile(); - - if (!$profile) { - common_server_error(_('User has no profile.')); - return; - } - - $sub = new Subscription(); - $sub->$user_attr = $profile->id; - - $since = strtotime($this->trimmed('since')); - - if ($since) { - $d = date('Y-m-d H:i:s', $since); - $sub->whereAdd("created > '$d'"); - } - - $sub->orderBy('created DESC'); - $sub->limit(($page-1)*100, 100); - - $others = array(); - - if ($sub->find()) { - while ($sub->fetch()) { - $others[] = Profile::staticGet($sub->$other_attr); - } - } else { - // user has no followers - } - - $type = $apidata['content-type']; - - $this->init_document($type); - $this->show_profiles($others, $type); - $this->end_document($type); - } - - function show_profiles($profiles, $type) - { - switch ($type) { - case 'xml': - common_element_start('users', array('type' => 'array')); - foreach ($profiles as $profile) { - $this->show_profile($profile); - } - common_element_end('users'); - break; - case 'json': - $arrays = array(); - foreach ($profiles as $profile) { - $arrays[] = $this->twitter_user_array($profile, true); - } - print json_encode($arrays); - break; - default: - $this->client_error(_('unsupported file type')); - } - } - - function featured($args, $apidata) - { - parent::handle($args); - common_server_error(_('API method under construction.'), $code=501); - } - - function supported($cmd) - { - - $cmdlist = array('MessageCommand', 'SubCommand', 'UnsubCommand', 'FavCommand', 'OnCommand', 'OffCommand'); - - if (in_array(get_class($cmd), $cmdlist)) { - return true; - } - - return false; - } - -} diff --git a/_darcs/pristine/actions/twitapiusers.php b/_darcs/pristine/actions/twitapiusers.php deleted file mode 100644 index 409986985c..0000000000 --- a/_darcs/pristine/actions/twitapiusers.php +++ /dev/null @@ -1,54 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/twitterapi.php'); - -class TwitapiusersAction extends TwitterapiAction -{ - - function show($args, $apidata) - { - parent::handle($args); - - if (!in_array($apidata['content-type'], array('xml', 'json'))) { - common_user_error(_('API method not found!'), $code = 404); - return; - } - - $user = null; - $email = $this->arg('email'); - - if ($email) { - $user = User::staticGet('email', $email); - } elseif (isset($apidata['api_arg'])) { - $user = $this->get_user($apidata['api_arg']); - } - - if (!$user) { - // XXX: Twitter returns a random(?) user instead of throwing and err! -- Zach - $this->client_error(_('Not found.'), 404, $apidata['content-type']); - return; - } - - $this->show_extended_profile($user, $apidata); - } - -} diff --git a/_darcs/pristine/actions/twittersettings.php b/_darcs/pristine/actions/twittersettings.php deleted file mode 100644 index d664273397..0000000000 --- a/_darcs/pristine/actions/twittersettings.php +++ /dev/null @@ -1,367 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/settingsaction.php'); - -define('SUBSCRIPTIONS', 80); - -class TwittersettingsAction extends SettingsAction -{ - - function get_instructions() - { - return _('Add your Twitter account to automatically send your notices to Twitter, ' . - 'and subscribe to Twitter friends already here.'); - } - - function show_form($msg=null, $success=false) - { - $user = common_current_user(); - $profile = $user->getProfile(); - $fuser = null; - $flink = Foreign_link::getByUserID($user->id, 1); // 1 == Twitter - - if ($flink) { - $fuser = $flink->getForeignUser(); - } - - $this->form_header(_('Twitter settings'), $msg, $success); - common_element_start('form', array('method' => 'post', - 'id' => 'twittersettings', - 'action' => - common_local_url('twittersettings'))); - common_hidden('token', common_session_token()); - - common_element('h2', null, _('Twitter Account')); - - if ($fuser) { - common_element_start('p'); - - common_element('span', 'twitter_user', $fuser->nickname); - common_element('a', array('href' => $fuser->uri), $fuser->uri); - common_element('span', 'input_instructions', - _('Current verified Twitter account.')); - common_hidden('flink_foreign_id', $flink->foreign_id); - common_element_end('p'); - common_submit('remove', _('Remove')); - } else { - common_input('twitter_username', _('Twitter user name'), - ($this->arg('twitter_username')) ? $this->arg('twitter_username') : $profile->nickname, - _('No spaces, please.')); // hey, it's what Twitter says - - common_password('twitter_password', _('Twitter password')); - } - - common_element('h2', null, _('Preferences')); - - common_checkbox('noticesync', _('Automatically send my notices to Twitter.'), - ($flink) ? ($flink->noticesync & FOREIGN_NOTICE_SEND) : true); - - common_checkbox('replysync', _('Send local "@" replies to Twitter.'), - ($flink) ? ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) : true); - - common_checkbox('friendsync', _('Subscribe to my Twitter friends here.'), - ($flink) ? ($flink->friendsync & FOREIGN_FRIEND_RECV) : false); - - if ($flink) { - common_submit('save', _('Save')); - } else { - common_submit('add', _('Add')); - } - - $this->show_twitter_subscriptions(); - - common_element_end('form'); - - common_show_footer(); - } - - function subscribed_twitter_users() - { - - $current_user = common_current_user(); - - $qry = 'SELECT user.* ' . - 'FROM subscription ' . - 'JOIN user ON subscription.subscribed = user.id ' . - 'JOIN foreign_link ON foreign_link.user_id = user.id ' . - 'WHERE subscriber = %d ' . - 'ORDER BY user.nickname'; - - $user = new User(); - - $user->query(sprintf($qry, $current_user->id)); - - $users = array(); - - while ($user->fetch()) { - - // Don't include the user's own self-subscription - if ($user->id != $current_user->id) { - $users[] = clone($user); - } - } - - return $users; - } - - function show_twitter_subscriptions() - { - - $friends = $this->subscribed_twitter_users(); - $friends_count = count($friends); - - if ($friends_count > 0) { - - common_element('h3', null, _('Twitter Friends')); - common_element_start('div', array('id' => 'subscriptions')); - common_element_start('ul', array('id' => 'subscriptions_avatars')); - - for ($i = 0; $i < min($friends_count, SUBSCRIPTIONS); $i++) { - - $other = Profile::staticGet($friends[$i]->id); - - if (!$other) { - common_log_db_error($subs, 'SELECT', __FILE__); - continue; - } - - common_element_start('li'); - common_element_start('a', array('title' => ($other->fullname) ? - $other->fullname : - $other->nickname, - 'href' => $other->profileurl, - 'rel' => 'contact', - 'class' => 'subscription')); - $avatar = $other->getAvatar(AVATAR_MINI_SIZE); - common_element('img', array('src' => (($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_MINI_SIZE)), - 'width' => AVATAR_MINI_SIZE, - 'height' => AVATAR_MINI_SIZE, - 'class' => 'avatar mini', - 'alt' => ($other->fullname) ? - $other->fullname : - $other->nickname)); - common_element_end('a'); - common_element_end('li'); - - } - - common_element_end('ul'); - common_element_end('div'); - - } - - // XXX Figure out a way to show all Twitter friends... ? - - /* - if ($subs_count > SUBSCRIPTIONS) { - common_element_start('p', array('id' => 'subscriptions_viewall')); - - common_element('a', array('href' => common_local_url('subscriptions', - array('nickname' => $profile->nickname)), - 'class' => 'moresubscriptions'), - _('All subscriptions')); - common_element_end('p'); - } - */ - - } - - function handle_post() - { - - # CSRF protection - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->show_form(_('There was a problem with your session token. Try again, please.')); - return; - } - - if ($this->arg('save')) { - $this->save_preferences(); - } else if ($this->arg('add')) { - $this->add_twitter_acct(); - } else if ($this->arg('remove')) { - $this->remove_twitter_acct(); - } else { - $this->show_form(_('Unexpected form submission.')); - } - } - - function add_twitter_acct() - { - - $screen_name = $this->trimmed('twitter_username'); - $password = $this->trimmed('twitter_password'); - $noticesync = $this->boolean('noticesync'); - $replysync = $this->boolean('replysync'); - $friendsync = $this->boolean('friendsync'); - - if (!Validate::string($screen_name, - array( 'min_length' => 1, - 'max_length' => 15, - 'format' => VALIDATE_NUM . VALIDATE_ALPHA . '_'))) { - $this->show_form( - _('Username must have only numbers, upper- and lowercase letters, and underscore (_). 15 chars max.')); - return; - } - - if (!$this->verify_credentials($screen_name, $password)) { - $this->show_form(_('Could not verify your Twitter credentials!')); - return; - } - - $twit_user = twitter_user_info($screen_name, $password); - - if (!$twit_user) { - $this->show_form(sprintf(_('Unable to retrieve account information for "%s" from Twitter.'), - $screen_name)); - return; - } - - if (!save_twitter_user($twit_user->id, $screen_name)) { - $this->show_form(_('Unable to save your Twitter settings!')); - return; - } - - $user = common_current_user(); - - $flink = DB_DataObject::factory('foreign_link'); - $flink->user_id = $user->id; - $flink->foreign_id = $twit_user->id; - $flink->service = 1; // Twitter - $flink->credentials = $password; - $flink->created = common_sql_now(); - - $flink->set_flags($noticesync, $replysync, $friendsync); - - $flink_id = $flink->insert(); - - if (!$flink_id) { - common_log_db_error($flink, 'INSERT', __FILE__); - $this->show_form(_('Unable to save your Twitter settings!')); - return; - } - - if ($friendsync) { - save_twitter_friends($user, $twit_user->id, $screen_name, $password); - } - - $this->show_form(_('Twitter settings saved.'), true); - } - - function remove_twitter_acct() - { - - $user = common_current_user(); - $flink = Foreign_link::getByUserID($user->id, 1); - $flink_foreign_id = $this->arg('flink_foreign_id'); - - # Maybe an old tab open...? - if ($flink->foreign_id != $flink_foreign_id) { - $this->show_form(_('That is not your Twitter account.')); - return; - } - - $result = $flink->delete(); - - if (!$result) { - common_log_db_error($flink, 'DELETE', __FILE__); - common_server_error(_('Couldn\'t remove Twitter user.')); - return; - } - - $this->show_form(_('Twitter account removed.'), true); - } - - function save_preferences() - { - - $noticesync = $this->boolean('noticesync'); - $friendsync = $this->boolean('friendsync'); - $replysync = $this->boolean('replysync'); - - $user = common_current_user(); - - $flink = Foreign_link::getByUserID($user->id, 1); - - if (!$flink) { - common_log_db_error($flink, 'SELECT', __FILE__); - $this->show_form(_('Couldn\'t save Twitter preferences.')); - return; - } - - $twitter_id = $flink->foreign_id; - $password = $flink->credentials; - - $fuser = $flink->getForeignUser(); - - if (!$fuser) { - common_log_db_error($fuser, 'SELECT', __FILE__); - $this->show_form(_('Couldn\'t save Twitter preferences.')); - return; - } - - $screen_name = $fuser->nickname; - - $original = clone($flink); - $flink->set_flags($noticesync, $replysync, $friendsync); - $result = $flink->update($original); - - if ($result === false) { - common_log_db_error($flink, 'UPDATE', __FILE__); - $this->show_form(_('Couldn\'t save Twitter preferences.')); - return; - } - - if ($friendsync) { - save_twitter_friends($user, $flink->foreign_id, $screen_name, $password); - } - - $this->show_form(_('Twitter preferences saved.')); - } - - function verify_credentials($screen_name, $password) - { - $uri = 'http://twitter.com/account/verify_credentials.json'; - $data = get_twitter_data($uri, $screen_name, $password); - - if (!$data) { - return false; - } - - $user = json_decode($data); - - if (!$user) { - return false; - } - - $twitter_id = $user->status->id; - - if ($twitter_id) { - return $twitter_id; - } - - return false; - } - - -} \ No newline at end of file diff --git a/_darcs/pristine/actions/unblock.php b/_darcs/pristine/actions/unblock.php deleted file mode 100644 index 112304f71b..0000000000 --- a/_darcs/pristine/actions/unblock.php +++ /dev/null @@ -1,96 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -class UnblockAction extends Action -{ - - var $profile = null; - - function prepare($args) - { - - parent::prepare($args); - - if (!common_logged_in()) { - $this->client_error(_('Not logged in.')); - return false; - } - - $token = $this->trimmed('token'); - - if (!$token || $token != common_session_token()) { - $this->client_error(_('There was a problem with your session token. Try again, please.')); - return; - } - - $id = $this->trimmed('unblockto'); - - if (!$id) { - $this->client_error(_('No profile specified.')); - return false; - } - - $this->profile = Profile::staticGet('id', $id); - - if (!$this->profile) { - $this->client_error(_('No profile with that ID.')); - return false; - } - - return true; - } - - function handle($args) - { - parent::handle($args); - if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $this->unblock_profile(); - } - } - - function unblock_profile() - { - - $cur = common_current_user(); - - $result = $cur->unblock($this->profile); - - if (!$result) { - $this->server_error(_('Error removing the block.')); - return; - } - - foreach ($this->args as $k => $v) { - if ($k == 'returnto-action') { - $action = $v; - } else if (substr($k, 0, 9) == 'returnto-') { - $args[substr($k, 9)] = $v; - } - } - - if ($action) { - common_redirect(common_local_url($action, $args)); - } else { - common_redirect(common_local_url('subscriptions', - array('nickname' => $cur->nickname))); - } - } -} diff --git a/_darcs/pristine/actions/unsubscribe.php b/_darcs/pristine/actions/unsubscribe.php deleted file mode 100644 index 1c2e136359..0000000000 --- a/_darcs/pristine/actions/unsubscribe.php +++ /dev/null @@ -1,82 +0,0 @@ -. - */ - -class UnsubscribeAction extends Action -{ - - function handle($args) - { - parent::handle($args); - if (!common_logged_in()) { - common_user_error(_('Not logged in.')); - return; - } - - $user = common_current_user(); - - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - common_redirect(common_local_url('subscriptions', array('nickname' => $user->nickname))); - return; - } - - # CSRF protection - - $token = $this->trimmed('token'); - - if (!$token || $token != common_session_token()) { - $this->client_error(_('There was a problem with your session token. Try again, please.')); - return; - } - - $other_id = $this->arg('unsubscribeto'); - - if (!$other_id) { - $this->client_error(_('No profile id in request.')); - return; - } - - $other = Profile::staticGet('id', $other_id); - - if (!$other_id) { - $this->client_error(_('No profile with that id.')); - return; - } - - $result = subs_unsubscribe_to($user, $other); - - if ($result != true) { - common_user_error($result); - return; - } - - if ($this->boolean('ajax')) { - common_start_html('text/xml;charset=utf-8', true); - common_element_start('head'); - common_element('title', null, _('Unsubscribed')); - common_element_end('head'); - common_element_start('body'); - common_subscribe_form($other); - common_element_end('body'); - common_element_end('html'); - } else { - common_redirect(common_local_url('subscriptions', array('nickname' => - $user->nickname))); - } - } -} diff --git a/_darcs/pristine/actions/updateprofile.php b/_darcs/pristine/actions/updateprofile.php deleted file mode 100644 index abb034c81e..0000000000 --- a/_darcs/pristine/actions/updateprofile.php +++ /dev/null @@ -1,177 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/omb.php'); - -class UpdateprofileAction extends Action -{ - - function handle($args) - { - parent::handle($args); - try { - common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); - # Note: server-to-server function! - $server = omb_oauth_server(); - list($consumer, $token) = $server->verify_request($req); - if ($this->update_profile($req, $consumer, $token)) { - print "omb_version=".OMB_VERSION_01; - } - } catch (OAuthException $e) { - $this->server_error($e->getMessage()); - return; - } - } - - function update_profile($req, $consumer, $token) - { - $version = $req->get_parameter('omb_version'); - if ($version != OMB_VERSION_01) { - $this->client_error(_('Unsupported OMB version'), 400); - return false; - } - # First, check to see if listenee exists - $listenee = $req->get_parameter('omb_listenee'); - $remote = Remote_profile::staticGet('uri', $listenee); - if (!$remote) { - $this->client_error(_('Profile unknown'), 404); - return false; - } - # Second, check to see if they should be able to post updates! - # We see if there are any subscriptions to that remote user with - # the given token. - - $sub = new Subscription(); - $sub->subscribed = $remote->id; - $sub->token = $token->key; - if (!$sub->find(true)) { - $this->client_error(_('You did not send us that profile'), 403); - return false; - } - - $profile = Profile::staticGet('id', $remote->id); - if (!$profile) { - # This one is our fault - $this->server_error(_('Remote profile with no matching profile'), 500); - return false; - } - $nickname = $req->get_parameter('omb_listenee_nickname'); - if ($nickname && !Validate::string($nickname, array('min_length' => 1, - 'max_length' => 64, - 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) { - $this->client_error(_('Nickname must have only lowercase letters and numbers and no spaces.')); - return false; - } - $license = $req->get_parameter('omb_listenee_license'); - if ($license && !common_valid_http_url($license)) { - $this->client_error(sprintf(_("Invalid license URL '%s'"), $license)); - return false; - } - $profile_url = $req->get_parameter('omb_listenee_profile'); - if ($profile_url && !common_valid_http_url($profile_url)) { - $this->client_error(sprintf(_("Invalid profile URL '%s'."), $profile_url)); - return false; - } - # optional stuff - $fullname = $req->get_parameter('omb_listenee_fullname'); - if ($fullname && strlen($fullname) > 255) { - $this->client_error(_("Full name is too long (max 255 chars).")); - return false; - } - $homepage = $req->get_parameter('omb_listenee_homepage'); - if ($homepage && (!common_valid_http_url($homepage) || strlen($homepage) > 255)) { - $this->client_error(sprintf(_("Invalid homepage '%s'"), $homepage)); - return false; - } - $bio = $req->get_parameter('omb_listenee_bio'); - if ($bio && strlen($bio) > 140) { - $this->client_error(_("Bio is too long (max 140 chars).")); - return false; - } - $location = $req->get_parameter('omb_listenee_location'); - if ($location && strlen($location) > 255) { - $this->client_error(_("Location is too long (max 255 chars).")); - return false; - } - $avatar = $req->get_parameter('omb_listenee_avatar'); - if ($avatar) { - if (!common_valid_http_url($avatar) || strlen($avatar) > 255) { - $this->client_error(sprintf(_("Invalid avatar URL '%s'"), $avatar)); - return false; - } - $size = @getimagesize($avatar); - if (!$size) { - $this->client_error(sprintf(_("Can't read avatar URL '%s'"), $avatar)); - return false; - } - if ($size[0] != AVATAR_PROFILE_SIZE || $size[1] != AVATAR_PROFILE_SIZE) { - $this->client_error(sprintf(_("Wrong size image at '%s'"), $avatar)); - return false; - } - if (!in_array($size[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG, - IMAGETYPE_PNG))) { - $this->client_error(sprintf(_("Wrong image type for '%s'"), $avatar)); - return false; - } - } - - $orig_profile = clone($profile); - - if ($nickname) { - $profile->nickname = $nickname; - } - if ($profile_url) { - $profile->profileurl = $profile_url; - } - if ($fullname) { - $profile->fullname = $fullname; - } - if ($homepage) { - $profile->homepage = $homepage; - } - if ($bio) { - $profile->bio = $bio; - } - if ($location) { - $profile->location = $location; - } - - if (!$profile->update($orig_profile)) { - $this->server_error(_('Could not save new profile info'), 500); - return false; - } else { - if ($avatar) { - $temp_filename = tempnam(sys_get_temp_dir(), 'listenee_avatar'); - copy($avatar, $temp_filename); - if (!$profile->setOriginal($temp_filename)) { - $this->server_error(_('Could not save avatar info'), 500); - return false; - } - } - header('HTTP/1.1 200 OK'); - header('Content-type: text/plain'); - print 'Updated profile'; - print "\n"; - return true; - } - } -} diff --git a/_darcs/pristine/actions/userauthorization.php b/_darcs/pristine/actions/userauthorization.php deleted file mode 100644 index 05efbc16c7..0000000000 --- a/_darcs/pristine/actions/userauthorization.php +++ /dev/null @@ -1,601 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/omb.php'); -define('TIMESTAMP_THRESHOLD', 300); - -class UserauthorizationAction extends Action -{ - - function handle($args) - { - parent::handle($args); - - if ($_SERVER['REQUEST_METHOD'] == 'POST') { - # CSRF protection - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $req = $this->get_stored_request(); - $this->show_form(_('There was a problem with your session token. Try again, please.'), $req); - return; - } - # We've shown the form, now post user's choice - $this->send_authorization(); - } else { - if (!common_logged_in()) { - # Go log in, and then come back - common_debug('saving URL for returnto', __FILE__); - common_set_returnto($_SERVER['REQUEST_URI']); - - common_debug('redirecting to login', __FILE__); - common_redirect(common_local_url('login')); - return; - } - try { - # this must be a new request - common_debug('getting new request', __FILE__); - $req = $this->get_new_request(); - if (!$req) { - $this->client_error(_('No request found!')); - } - common_debug('validating request', __FILE__); - # XXX: only validate new requests, since nonce is one-time use - $this->validate_request($req); - common_debug('showing form', __FILE__); - $this->store_request($req); - $this->show_form($req); - } catch (OAuthException $e) { - $this->clear_request(); - $this->client_error($e->getMessage()); - return; - } - - } - } - - function show_form($req) - { - - $nickname = $req->get_parameter('omb_listenee_nickname'); - $profile = $req->get_parameter('omb_listenee_profile'); - $license = $req->get_parameter('omb_listenee_license'); - $fullname = $req->get_parameter('omb_listenee_fullname'); - $homepage = $req->get_parameter('omb_listenee_homepage'); - $bio = $req->get_parameter('omb_listenee_bio'); - $location = $req->get_parameter('omb_listenee_location'); - $avatar = $req->get_parameter('omb_listenee_avatar'); - - common_show_header(_('Authorize subscription')); - common_element('p', null, _('Please check these details to make sure '. - 'that you want to subscribe to this user\'s notices. '. - 'If you didn\'t just ask to subscribe to someone\'s notices, '. - 'click "Cancel".')); - common_element_start('div', 'profile'); - if ($avatar) { - common_element('img', array('src' => $avatar, - 'class' => 'avatar profile', - 'width' => AVATAR_PROFILE_SIZE, - 'height' => AVATAR_PROFILE_SIZE, - 'alt' => $nickname)); - } - common_element('a', array('href' => $profile, - 'class' => 'external profile nickname'), - $nickname); - if ($fullname) { - common_element_start('div', 'fullname'); - if ($homepage) { - common_element('a', array('href' => $homepage), - $fullname); - } else { - common_text($fullname); - } - common_element_end('div'); - } - if ($location) { - common_element('div', 'location', $location); - } - if ($bio) { - common_element('div', 'bio', $bio); - } - common_element_start('div', 'license'); - common_element('a', array('href' => $license, - 'class' => 'license'), - $license); - common_element_end('div'); - common_element_end('div'); - common_element_start('form', array('method' => 'post', - 'id' => 'userauthorization', - 'name' => 'userauthorization', - 'action' => common_local_url('userauthorization'))); - common_hidden('token', common_session_token()); - common_submit('accept', _('Accept')); - common_submit('reject', _('Reject')); - common_element_end('form'); - common_show_footer(); - } - - function send_authorization() - { - $req = $this->get_stored_request(); - - if (!$req) { - common_user_error(_('No authorization request!')); - return; - } - - $callback = $req->get_parameter('oauth_callback'); - - if ($this->arg('accept')) { - if (!$this->authorize_token($req)) { - $this->client_error(_('Error authorizing token')); - } - if (!$this->save_remote_profile($req)) { - $this->client_error(_('Error saving remote profile')); - } - if (!$callback) { - $this->show_accept_message($req->get_parameter('oauth_token')); - } else { - $params = array(); - $params['oauth_token'] = $req->get_parameter('oauth_token'); - $params['omb_version'] = OMB_VERSION_01; - $user = User::staticGet('uri', $req->get_parameter('omb_listener')); - $profile = $user->getProfile(); - if (!$profile) { - common_log_db_error($user, 'SELECT', __FILE__); - $this->server_error(_('User without matching profile')); - return; - } - $params['omb_listener_nickname'] = $user->nickname; - $params['omb_listener_profile'] = common_local_url('showstream', - array('nickname' => $user->nickname)); - if ($profile->fullname) { - $params['omb_listener_fullname'] = $profile->fullname; - } - if ($profile->homepage) { - $params['omb_listener_homepage'] = $profile->homepage; - } - if ($profile->bio) { - $params['omb_listener_bio'] = $profile->bio; - } - if ($profile->location) { - $params['omb_listener_location'] = $profile->location; - } - $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); - if ($avatar) { - $params['omb_listener_avatar'] = $avatar->url; - } - $parts = array(); - foreach ($params as $k => $v) { - $parts[] = $k . '=' . OAuthUtil::urlencodeRFC3986($v); - } - $query_string = implode('&', $parts); - $parsed = parse_url($callback); - $url = $callback . (($parsed['query']) ? '&' : '?') . $query_string; - common_redirect($url, 303); - } - } else { - if (!$callback) { - $this->show_reject_message(); - } else { - # XXX: not 100% sure how to signal failure... just redirect without token? - common_redirect($callback, 303); - } - } - } - - function authorize_token(&$req) - { - $consumer_key = $req->get_parameter('oauth_consumer_key'); - $token_field = $req->get_parameter('oauth_token'); - common_debug('consumer key = "'.$consumer_key.'"', __FILE__); - common_debug('token field = "'.$token_field.'"', __FILE__); - $rt = new Token(); - $rt->consumer_key = $consumer_key; - $rt->tok = $token_field; - $rt->type = 0; - $rt->state = 0; - common_debug('request token to look up: "'.print_r($rt,true).'"'); - if ($rt->find(true)) { - common_debug('found request token to authorize', __FILE__); - $orig_rt = clone($rt); - $rt->state = 1; # Authorized but not used - if ($rt->update($orig_rt)) { - common_debug('updated request token so it is authorized', __FILE__); - return true; - } - } - return false; - } - - # XXX: refactor with similar code in finishremotesubscribe.php - - function save_remote_profile(&$req) - { - # FIXME: we should really do this when the consumer comes - # back for an access token. If they never do, we've got stuff in a - # weird state. - - $nickname = $req->get_parameter('omb_listenee_nickname'); - $fullname = $req->get_parameter('omb_listenee_fullname'); - $profile_url = $req->get_parameter('omb_listenee_profile'); - $homepage = $req->get_parameter('omb_listenee_homepage'); - $bio = $req->get_parameter('omb_listenee_bio'); - $location = $req->get_parameter('omb_listenee_location'); - $avatar_url = $req->get_parameter('omb_listenee_avatar'); - - $listenee = $req->get_parameter('omb_listenee'); - $remote = Remote_profile::staticGet('uri', $listenee); - - if ($remote) { - $exists = true; - $profile = Profile::staticGet($remote->id); - $orig_remote = clone($remote); - $orig_profile = clone($profile); - } else { - $exists = false; - $remote = new Remote_profile(); - $remote->uri = $listenee; - $profile = new Profile(); - } - - $profile->nickname = $nickname; - $profile->profileurl = $profile_url; - - if ($fullname) { - $profile->fullname = $fullname; - } - if ($homepage) { - $profile->homepage = $homepage; - } - if ($bio) { - $profile->bio = $bio; - } - if ($location) { - $profile->location = $location; - } - - if ($exists) { - $profile->update($orig_profile); - } else { - $profile->created = DB_DataObject_Cast::dateTime(); # current time - $id = $profile->insert(); - if (!$id) { - return false; - } - $remote->id = $id; - } - - if ($exists) { - if (!$remote->update($orig_remote)) { - return false; - } - } else { - $remote->created = DB_DataObject_Cast::dateTime(); # current time - if (!$remote->insert()) { - return false; - } - } - - if ($avatar_url) { - if (!$this->add_avatar($profile, $avatar_url)) { - return false; - } - } - - $user = common_current_user(); - $datastore = omb_oauth_datastore(); - $consumer = $this->get_consumer($datastore, $req); - $token = $this->get_token($datastore, $req, $consumer); - - $sub = new Subscription(); - $sub->subscriber = $user->id; - $sub->subscribed = $remote->id; - $sub->token = $token->key; # NOTE: request token, not valid for use! - $sub->created = DB_DataObject_Cast::dateTime(); # current time - - if (!$sub->insert()) { - return false; - } - - return true; - } - - function add_avatar($profile, $url) - { - $temp_filename = tempnam(sys_get_temp_dir(), 'listenee_avatar'); - copy($url, $temp_filename); - return $profile->setOriginal($temp_filename); - } - - function show_accept_message($tok) - { - common_show_header(_('Subscription authorized')); - common_element('p', null, - _('The subscription has been authorized, but no '. - 'callback URL was passed. Check with the site\'s instructions for '. - 'details on how to authorize the subscription. Your subscription token is:')); - common_element('blockquote', 'token', $tok); - common_show_footer(); - } - - function show_reject_message($tok) - { - common_show_header(_('Subscription rejected')); - common_element('p', null, - _('The subscription has been rejected, but no '. - 'callback URL was passed. Check with the site\'s instructions for '. - 'details on how to fully reject the subscription.')); - common_show_footer(); - } - - function store_request($req) - { - common_ensure_session(); - $_SESSION['userauthorizationrequest'] = $req; - } - - function clear_request() - { - common_ensure_session(); - unset($_SESSION['userauthorizationrequest']); - } - - function get_stored_request() - { - common_ensure_session(); - $req = $_SESSION['userauthorizationrequest']; - return $req; - } - - function get_new_request() - { - common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); - return $req; - } - - # Throws an OAuthException if anything goes wrong - - function validate_request(&$req) - { - # OAuth stuff -- have to copy from OAuth.php since they're - # all private methods, and there's no user-authentication method - common_debug('checking version', __FILE__); - $this->check_version($req); - common_debug('getting datastore', __FILE__); - $datastore = omb_oauth_datastore(); - common_debug('getting consumer', __FILE__); - $consumer = $this->get_consumer($datastore, $req); - common_debug('getting token', __FILE__); - $token = $this->get_token($datastore, $req, $consumer); - common_debug('checking timestamp', __FILE__); - $this->check_timestamp($req); - common_debug('checking nonce', __FILE__); - $this->check_nonce($datastore, $req, $consumer, $token); - common_debug('checking signature', __FILE__); - $this->check_signature($req, $consumer, $token); - common_debug('validating omb stuff', __FILE__); - $this->validate_omb($req); - common_debug('done validating', __FILE__); - return true; - } - - function validate_omb(&$req) - { - foreach (array('omb_version', 'omb_listener', 'omb_listenee', - 'omb_listenee_profile', 'omb_listenee_nickname', - 'omb_listenee_license') as $param) - { - if (!$req->get_parameter($param)) { - throw new OAuthException("Required parameter '$param' not found"); - } - } - # Now, OMB stuff - $version = $req->get_parameter('omb_version'); - if ($version != OMB_VERSION_01) { - throw new OAuthException("OpenMicroBlogging version '$version' not supported"); - } - $listener = $req->get_parameter('omb_listener'); - $user = User::staticGet('uri', $listener); - if (!$user) { - throw new OAuthException("Listener URI '$listener' not found here"); - } - $cur = common_current_user(); - if ($cur->id != $user->id) { - throw new OAuthException("Can't add for another user!"); - } - $listenee = $req->get_parameter('omb_listenee'); - if (!Validate::uri($listenee) && - !common_valid_tag($listenee)) { - throw new OAuthException("Listenee URI '$listenee' not a recognizable URI"); - } - if (strlen($listenee) > 255) { - throw new OAuthException("Listenee URI '$listenee' too long"); - } - - $other = User::staticGet('uri', $listenee); - if ($other) { - throw new OAuthException("Listenee URI '$listenee' is local user"); - } - - $remote = Remote_profile::staticGet('uri', $listenee); - if ($remote) { - $sub = new Subscription(); - $sub->subscriber = $user->id; - $sub->subscribed = $remote->id; - if ($sub->find(true)) { - throw new OAuthException("Already subscribed to user!"); - } - } - $nickname = $req->get_parameter('omb_listenee_nickname'); - if (!Validate::string($nickname, array('min_length' => 1, - 'max_length' => 64, - 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) { - throw new OAuthException('Nickname must have only letters and numbers and no spaces.'); - } - $profile = $req->get_parameter('omb_listenee_profile'); - if (!common_valid_http_url($profile)) { - throw new OAuthException("Invalid profile URL '$profile'."); - } - - if ($profile == common_local_url('showstream', array('nickname' => $nickname))) { - throw new OAuthException("Profile URL '$profile' is for a local user."); - } - - $license = $req->get_parameter('omb_listenee_license'); - if (!common_valid_http_url($license)) { - throw new OAuthException("Invalid license URL '$license'."); - } - $site_license = common_config('license', 'url'); - if (!common_compatible_license($license, $site_license)) { - throw new OAuthException("Listenee stream license '$license' not compatible with site license '$site_license'."); - } - # optional stuff - $fullname = $req->get_parameter('omb_listenee_fullname'); - if ($fullname && strlen($fullname) > 255) { - throw new OAuthException("Full name '$fullname' too long."); - } - $homepage = $req->get_parameter('omb_listenee_homepage'); - if ($homepage && (!common_valid_http_url($homepage) || strlen($homepage) > 255)) { - throw new OAuthException("Invalid homepage '$homepage'"); - } - $bio = $req->get_parameter('omb_listenee_bio'); - if ($bio && strlen($bio) > 140) { - throw new OAuthException("Bio too long '$bio'"); - } - $location = $req->get_parameter('omb_listenee_location'); - if ($location && strlen($location) > 255) { - throw new OAuthException("Location too long '$location'"); - } - $avatar = $req->get_parameter('omb_listenee_avatar'); - if ($avatar) { - if (!common_valid_http_url($avatar) || strlen($avatar) > 255) { - throw new OAuthException("Invalid avatar URL '$avatar'"); - } - $size = @getimagesize($avatar); - if (!$size) { - throw new OAuthException("Can't read avatar URL '$avatar'"); - } - if ($size[0] != AVATAR_PROFILE_SIZE || $size[1] != AVATAR_PROFILE_SIZE) { - throw new OAuthException("Wrong size image at '$avatar'"); - } - if (!in_array($size[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG, - IMAGETYPE_PNG))) { - throw new OAuthException("Wrong image type for '$avatar'"); - } - } - $callback = $req->get_parameter('oauth_callback'); - if ($callback && !common_valid_http_url($callback)) { - throw new OAuthException("Invalid callback URL '$callback'"); - } - if ($callback && $callback == common_local_url('finishremotesubscribe')) { - throw new OAuthException("Callback URL '$callback' is for local site."); - } - } - - # Snagged from OAuthServer - - function check_version(&$req) - { - $version = $req->get_parameter("oauth_version"); - if (!$version) { - $version = 1.0; - } - if ($version != 1.0) { - throw new OAuthException("OAuth version '$version' not supported"); - } - return $version; - } - - # Snagged from OAuthServer - - function get_consumer($datastore, $req) - { - $consumer_key = @$req->get_parameter("oauth_consumer_key"); - if (!$consumer_key) { - throw new OAuthException("Invalid consumer key"); - } - - $consumer = $datastore->lookup_consumer($consumer_key); - if (!$consumer) { - throw new OAuthException("Invalid consumer"); - } - return $consumer; - } - - # Mostly cadged from OAuthServer - - function get_token($datastore, &$req, $consumer) - {/*{{{*/ - $token_field = @$req->get_parameter('oauth_token'); - $token = $datastore->lookup_token($consumer, 'request', $token_field); - if (!$token) { - throw new OAuthException("Invalid $token_type token: $token_field"); - } - return $token; - } - - function check_timestamp(&$req) - { - $timestamp = @$req->get_parameter('oauth_timestamp'); - $now = time(); - if ($now - $timestamp > TIMESTAMP_THRESHOLD) { - throw new OAuthException("Expired timestamp, yours $timestamp, ours $now"); - } - } - - # NOTE: don't call twice on the same request; will fail! - function check_nonce(&$datastore, &$req, $consumer, $token) - { - $timestamp = @$req->get_parameter('oauth_timestamp'); - $nonce = @$req->get_parameter('oauth_nonce'); - $found = $datastore->lookup_nonce($consumer, $token, $nonce, $timestamp); - if ($found) { - throw new OAuthException("Nonce already used"); - } - return true; - } - - function check_signature(&$req, $consumer, $token) - { - $signature_method = $this->get_signature_method($req); - $signature = $req->get_parameter('oauth_signature'); - $valid_sig = $signature_method->check_signature($req, - $consumer, - $token, - $signature); - if (!$valid_sig) { - throw new OAuthException("Invalid signature"); - } - } - - function get_signature_method(&$req) - { - $signature_method = @$req->get_parameter("oauth_signature_method"); - if (!$signature_method) { - $signature_method = "PLAINTEXT"; - } - if ($signature_method != 'HMAC-SHA1') { - throw new OAuthException("Signature method '$signature_method' not supported."); - } - return omb_hmac_sha1(); - } -} diff --git a/_darcs/pristine/actions/userbyid.php b/_darcs/pristine/actions/userbyid.php deleted file mode 100644 index d57ed21a54..0000000000 --- a/_darcs/pristine/actions/userbyid.php +++ /dev/null @@ -1,52 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -class UserbyidAction extends Action -{ - - function is_readonly() - { - return true; - } - - function handle($args) - { - parent::handle($args); - $id = $this->trimmed('id'); - if (!$id) { - $this->client_error(_('No id.')); - } - $user =& User::staticGet($id); - if (!$user) { - $this->client_error(_('No such user.')); - } - - // support redirecting to FOAF rdf/xml if the agent prefers it - $page_prefs = 'application/rdf+xml,text/html,application/xhtml+xml,application/xml;q=0.3,text/xml;q=0.2'; - $httpaccept = isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : null; - $type = common_negotiate_type(common_accept_to_prefs($httpaccept), - common_accept_to_prefs($page_prefs)); - $page = $type == 'application/rdf+xml' ? 'foaf' : 'showstream'; - - $url = common_local_url($page, array('nickname' => $user->nickname)); - common_redirect($url, 303); - } -} diff --git a/_darcs/pristine/actions/userrss.php b/_darcs/pristine/actions/userrss.php deleted file mode 100644 index 1e9fe121f0..0000000000 --- a/_darcs/pristine/actions/userrss.php +++ /dev/null @@ -1,96 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/rssaction.php'); - -// Formatting of RSS handled by Rss10Action - -class UserrssAction extends Rss10Action -{ - - var $user = null; - - function init() - { - $nickname = $this->trimmed('nickname'); - $this->user = User::staticGet('nickname', $nickname); - - if (!$this->user) { - common_user_error(_('No such user.')); - return false; - } else { - return true; - } - } - - function get_notices($limit=0) - { - - $user = $this->user; - - if (is_null($user)) { - return null; - } - - $notice = $user->getNotices(0, ($limit == 0) ? NOTICES_PER_PAGE : $limit); - - while ($notice->fetch()) { - $notices[] = clone($notice); - } - - return $notices; - } - - function get_channel() - { - $user = $this->user; - $profile = $user->getProfile(); - $c = array('url' => common_local_url('userrss', - array('nickname' => - $user->nickname)), - 'title' => $user->nickname, - 'link' => $profile->profileurl, - 'description' => sprintf(_('Microblog by %s'), $user->nickname)); - return $c; - } - - function get_image() - { - $user = $this->user; - $profile = $user->getProfile(); - if (!$profile) { - common_log_db_error($user, 'SELECT', __FILE__); - $this->server_error(_('User without matching profile')); - return null; - } - $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); - return ($avatar) ? $avatar->url : null; - } - - # override parent to add X-SUP-ID URL - - function init_rss($limit=0) - { - $url = common_local_url('sup', null, $this->user->id); - header('X-SUP-ID: '.$url); - parent::init_rss($limit); - } -} \ No newline at end of file diff --git a/_darcs/pristine/actions/xrds.php b/_darcs/pristine/actions/xrds.php deleted file mode 100644 index 7edc6aa39c..0000000000 --- a/_darcs/pristine/actions/xrds.php +++ /dev/null @@ -1,137 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/omb.php'); - -class XrdsAction extends Action -{ - - function is_readonly() - { - return true; - } - - function handle($args) - { - parent::handle($args); - $nickname = $this->trimmed('nickname'); - $user = User::staticGet('nickname', $nickname); - if (!$user) { - common_user_error(_('No such user.')); - return; - } - $this->show_xrds($user); - } - - function show_xrds($user) - { - - header('Content-Type: application/xrds+xml'); - - common_start_xml(); - common_element_start('XRDS', array('xmlns' => 'xri://$xrds')); - - common_element_start('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', - 'xml:id' => 'oauth', - 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', - 'version' => '2.0')); - - common_element('Type', null, 'xri://$xrds*simple'); - - $this->show_service(OAUTH_ENDPOINT_REQUEST, - common_local_url('requesttoken'), - array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY), - array(OAUTH_HMAC_SHA1), - $user->uri); - - $this->show_service(OAUTH_ENDPOINT_AUTHORIZE, - common_local_url('userauthorization'), - array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY), - array(OAUTH_HMAC_SHA1)); - - $this->show_service(OAUTH_ENDPOINT_ACCESS, - common_local_url('accesstoken'), - array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY), - array(OAUTH_HMAC_SHA1)); - - $this->show_service(OAUTH_ENDPOINT_RESOURCE, - null, - array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY), - array(OAUTH_HMAC_SHA1)); - - common_element_end('XRD'); - - # XXX: decide whether to include user's ID/nickname in postNotice URL - - common_element_start('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', - 'xml:id' => 'omb', - 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', - 'version' => '2.0')); - - common_element('Type', null, 'xri://$xrds*simple'); - - $this->show_service(OMB_ENDPOINT_POSTNOTICE, - common_local_url('postnotice')); - - $this->show_service(OMB_ENDPOINT_UPDATEPROFILE, - common_local_url('updateprofile')); - - common_element_end('XRD'); - - common_element_start('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', - 'version' => '2.0')); - - common_element('Type', null, 'xri://$xrds*simple'); - - $this->show_service(OAUTH_DISCOVERY, - '#oauth'); - $this->show_service(OMB_NAMESPACE, - '#omb'); - - common_element_end('XRD'); - - common_element_end('XRDS'); - common_end_xml(); - } - - function show_service($type, $uri, $params=null, $sigs=null, $localId=null) - { - common_element_start('Service'); - if ($uri) { - common_element('URI', null, $uri); - } - common_element('Type', null, $type); - if ($params) { - foreach ($params as $param) { - common_element('Type', null, $param); - } - } - if ($sigs) { - foreach ($sigs as $sig) { - common_element('Type', null, $sig); - } - } - if ($localId) { - common_element('LocalID', null, $localId); - } - common_element_end('Service'); - } -} \ No newline at end of file diff --git a/_darcs/pristine/classes/Avatar.php b/_darcs/pristine/classes/Avatar.php deleted file mode 100644 index 9ae920647a..0000000000 --- a/_darcs/pristine/classes/Avatar.php +++ /dev/null @@ -1,141 +0,0 @@ -filename; - if (parent::delete()) { - @unlink(common_avatar_path($filename)); - } - } - - # Create and save scaled version of this avatar - # XXX: maybe break into different methods - - function scale($size) - { - - $image_s = imagecreatetruecolor($size, $size); - $image_a = $this->to_image(); - $square = min($this->width, $this->height); - imagecolortransparent($image_s, imagecolorallocate($image_s, 0, 0, 0)); - imagealphablending($image_s, false); - imagesavealpha($image_s, true); - imagecopyresampled($image_s, $image_a, 0, 0, 0, 0, - $size, $size, $square, $square); - - $ext = ($this->mediattype == 'image/jpeg') ? ".jpeg" : ".png"; - - $filename = common_avatar_filename($this->profile_id, $ext, $size, common_timestamp()); - - if ($this->mediatype == 'image/jpeg') { - imagejpeg($image_s, common_avatar_path($filename)); - } else { - imagepng($image_s, common_avatar_path($filename)); - } - - $scaled = DB_DataObject::factory('avatar'); - $scaled->profile_id = $this->profile_id; - $scaled->width = $size; - $scaled->height = $size; - $scaled->original = false; - $scaled->mediatype = ($this->mediattype == 'image/jpeg') ? 'image/jpeg' : 'image/png'; - $scaled->filename = $filename; - $scaled->url = common_avatar_url($filename); - $scaled->created = DB_DataObject_Cast::dateTime(); # current time - - if ($scaled->insert()) { - return $scaled; - } else { - return null; - } - } - - function scale_and_crop($size, $x, $y, $w, $h) - { - - $image_s = imagecreatetruecolor($size, $size); - $image_a = $this->to_image(); - - # Retain alpha channel info if possible for .pngs - $background = imagecolorallocate($image_s, 0, 0, 0); - ImageColorTransparent($image_s, $background); - imagealphablending($image_s, false); - - imagecopyresized($image_s, $image_a, 0, 0, $x, $y, $size, $size, $w, $h); - - $ext = ($this->mediattype == 'image/jpeg') ? ".jpeg" : ".png"; - - $filename = common_avatar_filename($this->profile_id, $ext, $size, common_timestamp()); - - if ($this->mediatype == 'image/jpeg') { - imagejpeg($image_s, common_avatar_path($filename)); - } else { - imagepng($image_s, common_avatar_path($filename)); - } - - $cropped = DB_DataObject::factory('avatar'); - $cropped->profile_id = $this->profile_id; - $cropped->width = $size; - $cropped->height = $size; - $cropped->original = false; - $cropped->mediatype = ($this->mediattype == 'image/jpeg') ? 'image/jpeg' : 'image/png'; - $cropped->filename = $filename; - $cropped->url = common_avatar_url($filename); - $cropped->created = DB_DataObject_Cast::dateTime(); # current time - - if ($cropped->insert()) { - return $cropped; - } else { - return NULL; - } - } - - function to_image() - { - $filepath = common_avatar_path($this->filename); - if ($this->mediatype == 'image/gif') { - return imagecreatefromgif($filepath); - } else if ($this->mediatype == 'image/jpeg') { - return imagecreatefromjpeg($filepath); - } else if ($this->mediatype == 'image/png') { - return imagecreatefrompng($filepath); - } else { - return NULL; - } - } - - function &pkeyGet($kv) - { - return Memcached_DataObject::pkeyGet('Avatar', $kv); - } - -} diff --git a/_darcs/pristine/classes/Channel.php b/_darcs/pristine/classes/Channel.php deleted file mode 100644 index 2e3e4e8d4a..0000000000 --- a/_darcs/pristine/classes/Channel.php +++ /dev/null @@ -1,231 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -class Channel -{ - - function on($user) - { - return false; - } - - function off($user) - { - return false; - } - - function output($user, $text) - { - return false; - } - - function error($user, $text) - { - return false; - } - - function source() - { - return null; - } -} - -class XMPPChannel extends Channel -{ - - var $conn = null; - - function source() - { - return 'xmpp'; - } - - function __construct($conn) - { - $this->conn = $conn; - } - - function on($user) - { - return $this->set_notify($user, 1); - } - - function off($user) - { - return $this->set_notify($user, 0); - } - - function output($user, $text) - { - $text = '['.common_config('site', 'name') . '] ' . $text; - jabber_send_message($user->jabber, $text); - } - - function error($user, $text) - { - $text = '['.common_config('site', 'name') . '] ' . $text; - jabber_send_message($user->jabber, $text); - } - - function set_notify(&$user, $notify) - { - $orig = clone($user); - $user->jabbernotify = $notify; - $result = $user->update($orig); - if (!$result) { - $last_error = &PEAR::getStaticProperty('DB_DataObject','lastError'); - common_log(LOG_ERR, - 'Could not set notify flag to ' . $notify . - ' for user ' . common_log_objstring($user) . - ': ' . $last_error->message); - return false; - } else { - common_log(LOG_INFO, - 'User ' . $user->nickname . ' set notify flag to ' . $notify); - return true; - } - } -} - - -class WebChannel extends Channel -{ - - function source() - { - return 'web'; - } - - function on($user) - { - return false; - } - - function off($user) - { - return false; - } - - function output($user, $text) - { - # XXX: buffer all output and send it at the end - # XXX: even better, redirect to appropriate page - # depending on what command was run - common_show_header(_('Command results')); - common_element('p', null, $text); - common_show_footer(); - } - - function error($user, $text) - { - common_user_error($text); - } -} - - -class AjaxWebChannel extends WebChannel -{ - - function output($user, $text) - { - common_start_html('text/xml;charset=utf-8', true); - common_element_start('head'); - common_element('title', null, _('Command results')); - common_element_end('head'); - common_element_start('body'); - common_element('p', array('id' => 'command_result'), $text); - common_element_end('body'); - common_element_end('html'); - } - - function error($user, $text) - { - common_start_html('text/xml;charset=utf-8', true); - common_element_start('head'); - common_element('title', null, _('Ajax Error')); - common_element_end('head'); - common_element_start('body'); - common_element('p', array('id' => 'error'), $text); - common_element_end('body'); - common_element_end('html'); - } -} - - -class MailChannel extends Channel -{ - - var $addr = null; - - function source() - { - return 'mail'; - } - - function __construct($addr=null) - { - $this->addr = $addr; - } - - function on($user) - { - return $this->set_notify($user, 1); - } - - function off($user) - { - return $this->set_notify($user, 0); - } - - function output($user, $text) - { - - $headers['From'] = $user->incomingemail; - $headers['To'] = $this->addr; - - $headers['Subject'] = _('Command complete'); - - return mail_send(array($this->addr), $headers, $text); - } - - function error($user, $text) - { - - $headers['From'] = $user->incomingemail; - $headers['To'] = $this->addr; - - $headers['Subject'] = _('Command failed'); - - return mail_send(array($this->addr), $headers, $text); - } - - function set_notify($user, $value) - { - $orig = clone($user); - $user->smsnotify = $value; - $result = $user->update($orig); - if (!$result) { - common_log_db_error($user, 'UPDATE', __FILE__); - return false; - } - return true; - } -} diff --git a/_darcs/pristine/classes/Command.php b/_darcs/pristine/classes/Command.php deleted file mode 100644 index eacbdacb36..0000000000 --- a/_darcs/pristine/classes/Command.php +++ /dev/null @@ -1,419 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/classes/Channel.php'); - -class Command -{ - - var $user = null; - - function __construct($user=null) - { - $this->user = $user; - } - - function execute($channel) - { - return false; - } -} - -class UnimplementedCommand extends Command -{ - function execute($channel) - { - $channel->error($this->user, _("Sorry, this command is not yet implemented.")); - } -} - -class TrackingCommand extends UnimplementedCommand -{ -} - -class TrackOffCommand extends UnimplementedCommand -{ -} - -class TrackCommand extends UnimplementedCommand -{ - var $word = null; - function __construct($user, $word) - { - parent::__construct($user); - $this->word = $word; - } -} - -class UntrackCommand extends UnimplementedCommand -{ - var $word = null; - function __construct($user, $word) - { - parent::__construct($user); - $this->word = $word; - } -} - -class NudgeCommand extends UnimplementedCommand -{ - var $other = null; - function __construct($user, $other) - { - parent::__construct($user); - $this->other = $other; - } -} - -class InviteCommand extends UnimplementedCommand -{ - var $other = null; - function __construct($user, $other) - { - parent::__construct($user); - $this->other = $other; - } -} - -class StatsCommand extends Command -{ - function execute($channel) - { - - $subs = new Subscription(); - $subs->subscriber = $this->user->id; - $subs_count = (int) $subs->count() - 1; - - $subbed = new Subscription(); - $subbed->subscribed = $this->user->id; - $subbed_count = (int) $subbed->count() - 1; - - $notices = new Notice(); - $notices->profile_id = $this->user->id; - $notice_count = (int) $notices->count(); - - $channel->output($this->user, sprintf(_("Subscriptions: %1\$s\n". - "Subscribers: %2\$s\n". - "Notices: %3\$s"), - $subs_count, - $subbed_count, - $notice_count)); - } -} - -class FavCommand extends Command -{ - - var $other = null; - - function __construct($user, $other) - { - parent::__construct($user); - $this->other = $other; - } - - function execute($channel) - { - - $recipient = - common_relative_profile($this->user, common_canonical_nickname($this->other)); - - if (!$recipient) { - $channel->error($this->user, _('No such user.')); - return; - } - $notice = $recipient->getCurrentNotice(); - if (!$notice) { - $channel->error($this->user, _('User has no last notice')); - return; - } - - $fave = Fave::addNew($this->user, $notice); - - if (!$fave) { - $channel->error($this->user, _('Could not create favorite.')); - return; - } - - $other = User::staticGet('id', $recipient->id); - - if ($other && $other->id != $user->id) { - if ($other->email && $other->emailnotifyfav) { - mail_notify_fave($other, $this->user, $notice); - } - } - - $this->user->blowFavesCache(); - - $channel->output($this->user, _('Notice marked as fave.')); - } -} - -class WhoisCommand extends Command -{ - var $other = null; - function __construct($user, $other) - { - parent::__construct($user); - $this->other = $other; - } - - function execute($channel) - { - $recipient = - common_relative_profile($this->user, common_canonical_nickname($this->other)); - - if (!$recipient) { - $channel->error($this->user, _('No such user.')); - return; - } - - $whois = sprintf(_("%1\$s (%2\$s)"), $recipient->nickname, - $recipient->profileurl); - if ($recipient->fullname) { - $whois .= "\n" . sprintf(_('Fullname: %s'), $recipient->fullname); - } - if ($recipient->location) { - $whois .= "\n" . sprintf(_('Location: %s'), $recipient->location); - } - if ($recipient->homepage) { - $whois .= "\n" . sprintf(_('Homepage: %s'), $recipient->homepage); - } - if ($recipient->bio) { - $whois .= "\n" . sprintf(_('About: %s'), $recipient->bio); - } - $channel->output($this->user, $whois); - } -} - -class MessageCommand extends Command -{ - var $other = null; - var $text = null; - function __construct($user, $other, $text) - { - parent::__construct($user); - $this->other = $other; - $this->text = $text; - } - - function execute($channel) - { - $other = User::staticGet('nickname', common_canonical_nickname($this->other)); - $len = mb_strlen($this->text); - if ($len == 0) { - $channel->error($this->user, _('No content!')); - return; - } else if ($len > 140) { - $content = common_shorten_links($content); - if (mb_strlen($content) > 140) { - $channel->error($this->user, sprintf(_('Message too long - maximum is 140 characters, you sent %d'), $len)); - return; - } - } - - if (!$other) { - $channel->error($this->user, _('No such user.')); - return; - } else if (!$this->user->mutuallySubscribed($other)) { - $channel->error($this->user, _('You can\'t send a message to this user.')); - return; - } else if ($this->user->id == $other->id) { - $channel->error($this->user, _('Don\'t send a message to yourself; just say it to yourself quietly instead.')); - return; - } - $message = Message::saveNew($this->user->id, $other->id, $this->text, $channel->source()); - if ($message) { - $channel->output($this->user, sprintf(_('Direct message to %s sent'), $this->other)); - } else { - $channel->error($this->user, _('Error sending direct message.')); - } - } -} - -class GetCommand extends Command -{ - - var $other = null; - - function __construct($user, $other) - { - parent::__construct($user); - $this->other = $other; - } - - function execute($channel) - { - $target_nickname = common_canonical_nickname($this->other); - - $target = - common_relative_profile($this->user, $target_nickname); - - if (!$target) { - $channel->error($this->user, _('No such user.')); - return; - } - $notice = $target->getCurrentNotice(); - if (!$notice) { - $channel->error($this->user, _('User has no last notice')); - return; - } - $notice_content = $notice->content; - - $channel->output($this->user, $target_nickname . ": " . $notice_content); - } -} - -class SubCommand extends Command -{ - - var $other = null; - - function __construct($user, $other) - { - parent::__construct($user); - $this->other = $other; - } - - function execute($channel) - { - - if (!$this->other) { - $channel->error($this->user, _('Specify the name of the user to subscribe to')); - return; - } - - $result = subs_subscribe_user($this->user, $this->other); - - if ($result == 'true') { - $channel->output($this->user, sprintf(_('Subscribed to %s'), $this->other)); - } else { - $channel->error($this->user, $result); - } - } -} - -class UnsubCommand extends Command -{ - - var $other = null; - - function __construct($user, $other) - { - parent::__construct($user); - $this->other = $other; - } - - function execute($channel) - { - if(!$this->other) { - $channel->error($this->user, _('Specify the name of the user to unsubscribe from')); - return; - } - - $result=subs_unsubscribe_user($this->user, $this->other); - - if ($result) { - $channel->output($this->user, sprintf(_('Unsubscribed from %s'), $this->other)); - } else { - $channel->error($this->user, $result); - } - } -} - -class OffCommand extends Command -{ - var $other = null; - function __construct($user, $other=null) - { - parent::__construct($user); - $this->other = $other; - } - function execute($channel) - { - if ($other) { - $channel->error($this->user, _("Command not yet implemented.")); - } else { - if ($channel->off($this->user)) { - $channel->output($this->user, _('Notification off.')); - } else { - $channel->error($this->user, _('Can\'t turn off notification.')); - } - } - } -} - -class OnCommand extends Command -{ - var $other = null; - function __construct($user, $other=null) - { - parent::__construct($user); - $this->other = $other; - } - - function execute($channel) - { - if ($other) { - $channel->error($this->user, _("Command not yet implemented.")); - } else { - if ($channel->on($this->user)) { - $channel->output($this->user, _('Notification on.')); - } else { - $channel->error($this->user, _('Can\'t turn on notification.')); - } - } - } -} - -class HelpCommand extends Command -{ - function execute($channel) - { - $channel->output($this->user, - _("Commands:\n". - "on - turn on notifications\n". - "off - turn off notifications\n". - "help - show this help\n". - "follow - subscribe to user\n". - "leave - unsubscribe from user\n". - "d - direct message to user\n". - "get - get last notice from user\n". - "whois - get profile info on user\n". - "fav - add user's last notice as a 'fave'\n". - "stats - get your stats\n". - "stop - same as 'off'\n". - "quit - same as 'off'\n". - "sub - same as 'follow'\n". - "unsub - same as 'leave'\n". - "last - same as 'get'\n". - "on - not yet implemented.\n". - "off - not yet implemented.\n". - "nudge - not yet implemented.\n". - "invite - not yet implemented.\n". - "track - not yet implemented.\n". - "untrack - not yet implemented.\n". - "track off - not yet implemented.\n". - "untrack all - not yet implemented.\n". - "tracks - not yet implemented.\n". - "tracking - not yet implemented.\n")); - } -} diff --git a/_darcs/pristine/classes/CommandInterpreter.php b/_darcs/pristine/classes/CommandInterpreter.php deleted file mode 100644 index f409ed07f0..0000000000 --- a/_darcs/pristine/classes/CommandInterpreter.php +++ /dev/null @@ -1,197 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/classes/Command.php'); - -class CommandInterpreter -{ - - function handle_command($user, $text) - { - # XXX: localise - - $text = preg_replace('/\s+/', ' ', trim($text)); - list($cmd, $arg) = explode(' ', $text, 2); - - # We try to support all the same commands as Twitter, see - # http://getsatisfaction.com/twitter/topics/what_are_the_twitter_commands - # There are a few compatibility commands from earlier versions of - # Laconica - - switch(strtolower($cmd)) { - case 'help': - if ($arg) { - return null; - } - return new HelpCommand($user); - case 'on': - if ($arg) { - list($other, $extra) = explode(' ', $arg, 2); - if ($extra) { - return null; - } else { - return new OnCommand($user, $other); - } - } else { - return new OnCommand($user); - } - case 'off': - if ($arg) { - list($other, $extra) = explode(' ', $arg, 2); - if ($extra) { - return null; - } else { - return new OffCommand($user, $other); - } - } else { - return new OffCommand($user); - } - case 'stop': - case 'quit': - if ($arg) { - return null; - } else { - return new OffCommand($user); - } - case 'follow': - case 'sub': - if (!$arg) { - return null; - } - list($other, $extra) = explode(' ', $arg, 2); - if ($extra) { - return null; - } else { - return new SubCommand($user, $other); - } - case 'leave': - case 'unsub': - if (!$arg) { - return null; - } - list($other, $extra) = explode(' ', $arg, 2); - if ($extra) { - return null; - } else { - return new UnsubCommand($user, $other); - } - case 'get': - case 'last': - if (!$arg) { - return null; - } - list($other, $extra) = explode(' ', $arg, 2); - if ($extra) { - return null; - } else { - return new GetCommand($user, $other); - } - case 'd': - if (!$arg) { - return null; - } - list($other, $extra) = explode(' ', $arg, 2); - if (!$extra) { - return null; - } else { - return new MessageCommand($user, $other, $extra); - } - case 'whois': - if (!$arg) { - return null; - } - list($other, $extra) = explode(' ', $arg, 2); - if ($extra) { - return null; - } else { - return new WhoisCommand($user, $other); - } - case 'fav': - if (!$arg) { - return null; - } - list($other, $extra) = explode(' ', $arg, 2); - if ($extra) { - return null; - } else { - return new FavCommand($user, $other); - } - case 'nudge': - if (!$arg) { - return null; - } - list($other, $extra) = explode(' ', $arg, 2); - if ($extra) { - return null; - } else { - return new NudgeCommand($user, $other); - } - case 'stats': - if ($arg) { - return null; - } - return new StatsCommand($user); - case 'invite': - if (!$arg) { - return null; - } - list($other, $extra) = explode(' ', $arg, 2); - if ($extra) { - return null; - } else { - return new InviteCommand($user, $other); - } - case 'track': - if (!$arg) { - return null; - } - list($word, $extra) = explode(' ', $arg, 2); - if ($extra) { - return null; - } else if ($word == 'off') { - return new TrackOffCommand($user); - } else { - return new TrackCommand($user, $word); - } - case 'untrack': - if (!$arg) { - return null; - } - list($word, $extra) = explode(' ', $arg, 2); - if ($extra) { - return null; - } else if ($word == 'all') { - return new TrackOffCommand($user); - } else { - return new UntrackCommand($user, $word); - } - case 'tracks': - case 'tracking': - if ($arg) { - return null; - } - return new TrackingCommand($user); - default: - return false; - } - } -} - diff --git a/_darcs/pristine/classes/Confirm_address.php b/_darcs/pristine/classes/Confirm_address.php deleted file mode 100644 index ed3875d223..0000000000 --- a/_darcs/pristine/classes/Confirm_address.php +++ /dev/null @@ -1,31 +0,0 @@ -user_id = $user->id; - $fave->notice_id = $notice->id; - if (!$fave->insert()) { - common_log_db_error($fave, 'INSERT', __FILE__); - return false; - } - return $fave; - } - - function &pkeyGet($kv) - { - return Memcached_DataObject::pkeyGet('Fave', $kv); - } -} diff --git a/_darcs/pristine/classes/Foreign_link.php b/_darcs/pristine/classes/Foreign_link.php deleted file mode 100644 index afc0e21804..0000000000 --- a/_darcs/pristine/classes/Foreign_link.php +++ /dev/null @@ -1,104 +0,0 @@ -1 single obj mapping. Change? Or make - // a getForeignUsers() that returns more than one? --Zach - static function getByUserID($user_id, $service) - { - $flink = new Foreign_link(); - $flink->service = $service; - $flink->user_id = $user_id; - $flink->limit(1); - - if ($flink->find(true)) { - return $flink; - } - - return null; - } - - static function getByForeignID($foreign_id, $service) - { - $flink = new Foreign_link(); - $flink->service = $service; - $flink->foreign_id = $foreign_id; - $flink->limit(1); - - if ($flink->find(true)) { - return $flink; - } - - return null; - } - - function set_flags($noticesync, $replysync, $friendsync) - { - if ($noticesync) { - $this->noticesync |= FOREIGN_NOTICE_SEND; - } else { - $this->noticesync &= ~FOREIGN_NOTICE_SEND; - } - - if ($replysync) { - $this->noticesync |= FOREIGN_NOTICE_SEND_REPLY; - } else { - $this->noticesync &= ~FOREIGN_NOTICE_SEND_REPLY; - } - - if ($friendsync) { - $this->friendsync |= FOREIGN_FRIEND_RECV; - } else { - $this->friendsync &= ~FOREIGN_FRIEND_RECV; - } - - $this->profilesync = 0; - } - - # Convenience methods - function getForeignUser() - { - $fuser = new Foreign_user(); - $fuser->service = $this->service; - $fuser->id = $this->foreign_id; - - $fuser->limit(1); - - if ($fuser->find(true)) { - return $fuser; - } - - return null; - } - - function getUser() - { - return User::staticGet($this->user_id); - } - -} diff --git a/_darcs/pristine/classes/Foreign_service.php b/_darcs/pristine/classes/Foreign_service.php deleted file mode 100644 index ef614dbd6e..0000000000 --- a/_darcs/pristine/classes/Foreign_service.php +++ /dev/null @@ -1,25 +0,0 @@ -1 single obj mapping. Change? Or make - // a getForeignUsers() that returns more than one? --Zach - static function getForeignUser($id, $service) { - $fuser = new Foreign_user(); - $fuser->whereAdd("service = $service"); - $fuser->whereAdd("id = $id"); - $fuser->limit(1); - - if ($fuser->find()) { - $fuser->fetch(); - return $fuser; - } - - return null; - } - - function updateKeys(&$orig) - { - $parts = array(); - foreach (array('id', 'service', 'uri', 'nickname') as $k) { - if (strcmp($this->$k, $orig->$k) != 0) { - $parts[] = $k . ' = ' . $this->_quote($this->$k); - } - } - if (count($parts) == 0) { - # No changes - return true; - } - $toupdate = implode(', ', $parts); - - $table = $this->tableName(); - if(common_config('db','quote_identifiers')) { - $table = '"' . $table . '"'; - } - $qry = 'UPDATE ' . $table . ' SET ' . $toupdate . - ' WHERE id = ' . $this->id; - $orig->decache(); - $result = $this->query($qry); - if ($result) { - $this->encache(); - } - return $result; - } - - -} diff --git a/_darcs/pristine/classes/Invitation.php b/_darcs/pristine/classes/Invitation.php deleted file mode 100644 index 8a36fd8df1..0000000000 --- a/_darcs/pristine/classes/Invitation.php +++ /dev/null @@ -1,25 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - -class Memcached_DataObject extends DB_DataObject -{ - function &staticGet($cls, $k, $v=null) - { - if (is_null($v)) { - $v = $k; - # XXX: HACK! - $i = new $cls; - $keys = $i->keys(); - $k = $keys[0]; - unset($i); - } - $i = Memcached_DataObject::getcached($cls, $k, $v); - if ($i) { - return $i; - } else { - $i = DB_DataObject::staticGet($cls, $k, $v); - if ($i) { - $i->encache(); - } - return $i; - } - } - - function &pkeyGet($cls, $kv) - { - $i = Memcached_DataObject::multicache($cls, $kv); - if ($i) { - return $i; - } else { - $i = new $cls(); - foreach ($kv as $k => $v) { - $i->$k = $v; - } - if ($i->find(true)) { - $i->encache(); - } else { - $i = null; - } - return $i; - } - } - - function insert() - { - $result = parent::insert(); - return $result; - } - - function update($orig=null) - { - if (is_object($orig) && $orig instanceof Memcached_DataObject) { - $orig->decache(); # might be different keys - } - $result = parent::update($orig); - if ($result) { - $this->encache(); - } - return $result; - } - - function delete() - { - $this->decache(); # while we still have the values! - return parent::delete(); - } - - static function memcache() { - return common_memcache(); - } - - static function cacheKey($cls, $k, $v) { - return common_cache_key(strtolower($cls).':'.$k.':'.$v); - } - - static function getcached($cls, $k, $v) { - $c = Memcached_DataObject::memcache(); - if (!$c) { - return false; - } else { - return $c->get(Memcached_DataObject::cacheKey($cls, $k, $v)); - } - } - - function keyTypes() - { - global $_DB_DATAOBJECT; - if (!isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"])) { - $this->databaseStructure(); - - } - return $_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"]; - } - - function encache() - { - $c = $this->memcache(); - if (!$c) { - return false; - } else { - $pkey = array(); - $pval = array(); - $types = $this->keyTypes(); - ksort($types); - foreach ($types as $key => $type) { - if ($type == 'K') { - $pkey[] = $key; - $pval[] = $this->$key; - } else { - $c->set($this->cacheKey($this->tableName(), $key, $this->$key), $this); - } - } - # XXX: should work for both compound and scalar pkeys - $pvals = implode(',', $pval); - $pkeys = implode(',', $pkey); - $c->set($this->cacheKey($this->tableName(), $pkeys, $pvals), $this); - } - } - - function decache() - { - $c = $this->memcache(); - if (!$c) { - return false; - } else { - $pkey = array(); - $pval = array(); - $types = $this->keyTypes(); - ksort($types); - foreach ($types as $key => $type) { - if ($type == 'K') { - $pkey[] = $key; - $pval[] = $this->$key; - } else { - $c->delete($this->cacheKey($this->tableName(), $key, $this->$key)); - } - } - # should work for both compound and scalar pkeys - # XXX: comma works for now but may not be safe separator for future keys - $pvals = implode(',', $pval); - $pkeys = implode(',', $pkey); - $c->delete($this->cacheKey($this->tableName(), $pkeys, $pvals)); - } - } - - function multicache($cls, $kv) - { - ksort($kv); - $c = Memcached_DataObject::memcache(); - if (!$c) { - return false; - } else { - $pkeys = implode(',', array_keys($kv)); - $pvals = implode(',', array_values($kv)); - return $c->get(Memcached_DataObject::cacheKey($cls, $pkeys, $pvals)); - } - } - - function getSearchEngine($table) - { - require_once INSTALLDIR.'/lib/search_engines.php'; - static $search_engine; - if (!isset($search_engine)) { - $connected = false; - if (common_config('sphinx', 'enabled')) { - $search_engine = new SphinxSearch($this, $table); - $connected = $search_engine->is_connected(); - } - - // unable to connect to sphinx' search daemon - if (!$connected) { - if ('mysql' === common_config('db', 'type')) { - $search_engine = new MySQLSearch($this, $table); - } else { - $search_engine = new PGSearch($this, $table); - } - } - } - return $search_engine; - } -} diff --git a/_darcs/pristine/classes/Message.php b/_darcs/pristine/classes/Message.php deleted file mode 100644 index 4806057b4c..0000000000 --- a/_darcs/pristine/classes/Message.php +++ /dev/null @@ -1,71 +0,0 @@ -from_profile); - } - - function getTo() - { - return Profile::staticGet('id', $this->to_profile); - } - - static function saveNew($from, $to, $content, $source) { - - $msg = new Message(); - - $msg->from_profile = $from; - $msg->to_profile = $to; - $msg->content = common_shorten_links($content); - $msg->rendered = common_render_text($content); - $msg->created = common_sql_now(); - $msg->source = $source; - - $result = $msg->insert(); - - if (!$result) { - common_log_db_error($msg, 'INSERT', __FILE__); - return _('Could not insert message.'); - } - - $orig = clone($msg); - $msg->uri = common_local_url('showmessage', array('message' => $msg->id)); - - $result = $msg->update($orig); - - if (!$result) { - common_log_db_error($msg, 'UPDATE', __FILE__); - return _('Could not update message with new URI.'); - } - - return $msg; - } -} diff --git a/_darcs/pristine/classes/Nonce.php b/_darcs/pristine/classes/Nonce.php deleted file mode 100644 index 2c0edfa14d..0000000000 --- a/_darcs/pristine/classes/Nonce.php +++ /dev/null @@ -1,26 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -/** - * Table Definition for notice - */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - -/* We keep the first three 20-notice pages, plus one for pagination check, - * in the memcached cache. */ - -define('NOTICE_CACHE_WINDOW', 61); - -class Notice extends Memcached_DataObject -{ - ###START_AUTOCODE - /* the code below is auto generated do not remove the above tag */ - - public $__table = 'notice'; // table name - public $id; // int(4) primary_key not_null - public $profile_id; // int(4) not_null - public $uri; // varchar(255) unique_key - public $content; // varchar(140) - public $rendered; // text() - public $url; // varchar(255) - public $created; // datetime() not_null - public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP - public $reply_to; // int(4) - public $is_local; // tinyint(1) - public $source; // varchar(32) - - /* Static get */ - function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('Notice',$k,$v); } - - /* the code above is auto generated do not remove the tag below */ - ###END_AUTOCODE - - function getProfile() - { - return Profile::staticGet('id', $this->profile_id); - } - - function delete() - { - $this->blowCaches(true); - $this->blowFavesCache(true); - $this->blowInboxes(); - return parent::delete(); - } - - function saveTags() - { - /* extract all #hastags */ - $count = preg_match_all('/(?:^|\s)#([A-Za-z0-9_\-\.]{1,64})/', strtolower($this->content), $match); - if (!$count) { - return true; - } - - /* elide characters we don't want in the tag */ - $match[1] = str_replace(array('-', '_', '.'), '', $match[1]); - - /* Add them to the database */ - foreach(array_unique($match[1]) as $hashtag) { - $tag = DB_DataObject::factory('Notice_tag'); - $tag->notice_id = $this->id; - $tag->tag = $hashtag; - $tag->created = $this->created; - $id = $tag->insert(); - if (!$id) { - $last_error = PEAR::getStaticProperty('DB_DataObject','lastError'); - common_log(LOG_ERR, 'DB error inserting hashtag: ' . $last_error->message); - common_server_error(sprintf(_('DB error inserting hashtag: %s'), $last_error->message)); - return; - } - } - return true; - } - - static function saveNew($profile_id, $content, $source=null, $is_local=1, $reply_to=null, $uri=null) { - - $profile = Profile::staticGet($profile_id); - - if (!$profile) { - common_log(LOG_ERR, 'Problem saving notice. Unknown user.'); - return _('Problem saving notice. Unknown user.'); - } - - if (common_config('throttle', 'enabled') && !Notice::checkEditThrottle($profile_id)) { - common_log(LOG_WARNING, 'Excessive posting by profile #' . $profile_id . '; throttled.'); - return _('Too many notices too fast; take a breather and post again in a few minutes.'); - } - - $banned = common_config('profile', 'banned'); - - if ( in_array($profile_id, $banned) || in_array($profile->nickname, $banned)) { - common_log(LOG_WARNING, "Attempted post from banned user: $profile->nickname (user id = $profile_id)."); - return _('You are banned from posting notices on this site.'); - } - - $notice = new Notice(); - $notice->profile_id = $profile_id; - - $blacklist = common_config('public', 'blacklist'); - - # Blacklisted are non-false, but not 1, either - - if ($blacklist && in_array($profile_id, $blacklist)) { - $notice->is_local = -1; - } else { - $notice->is_local = $is_local; - } - - $notice->reply_to = $reply_to; - $notice->created = common_sql_now(); - $notice->content = common_shorten_links($content); - $notice->rendered = common_render_content($notice->content, $notice); - $notice->source = $source; - $notice->uri = $uri; - - $id = $notice->insert(); - - if (!$id) { - common_log_db_error($notice, 'INSERT', __FILE__); - return _('Problem saving notice.'); - } - - # Update the URI after the notice is in the database - if (!$uri) { - $orig = clone($notice); - $notice->uri = common_notice_uri($notice); - - if (!$notice->update($orig)) { - common_log_db_error($notice, 'UPDATE', __FILE__); - return _('Problem saving notice.'); - } - } - - # XXX: do we need to change this for remote users? - - common_save_replies($notice); - $notice->saveTags(); - - # Clear the cache for subscribed users, so they'll update at next request - # XXX: someone clever could prepend instead of clearing the cache - - if (common_config('memcached', 'enabled')) { - $notice->blowCaches(); - } - - $notice->addToInboxes(); - return $notice; - } - - static function checkEditThrottle($profile_id) { - $profile = Profile::staticGet($profile_id); - if (!$profile) { - return false; - } - # Get the Nth notice - $notice = $profile->getNotices(common_config('throttle', 'count') - 1, 1); - if ($notice && $notice->fetch()) { - # If the Nth notice was posted less than timespan seconds ago - if (time() - strtotime($notice->created) <= common_config('throttle', 'timespan')) { - # Then we throttle - return false; - } - } - # Either not N notices in the stream, OR the Nth was not posted within timespan seconds - return true; - } - - function blowCaches($blowLast=false) - { - $this->blowSubsCache($blowLast); - $this->blowNoticeCache($blowLast); - $this->blowRepliesCache($blowLast); - $this->blowPublicCache($blowLast); - $this->blowTagCache($blowLast); - } - - function blowTagCache($blowLast=false) - { - $cache = common_memcache(); - if ($cache) { - $tag = new Notice_tag(); - $tag->notice_id = $this->id; - if ($tag->find()) { - while ($tag->fetch()) { - $cache->delete(common_cache_key('notice_tag:notice_stream:' . $tag->tag)); - if ($blowLast) { - $cache->delete(common_cache_key('notice_tag:notice_stream:' . $tag->tag . ';last')); - } - } - } - $tag->free(); - unset($tag); - } - } - - function blowSubsCache($blowLast=false) - { - $cache = common_memcache(); - if ($cache) { - $user = new User(); - - $user->query('SELECT id ' . - 'FROM user JOIN subscription ON user.id = subscription.subscriber ' . - 'WHERE subscription.subscribed = ' . $this->profile_id); - - while ($user->fetch()) { - $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id)); - if ($blowLast) { - $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id . ';last')); - } - } - $user->free(); - unset($user); - } - } - - function blowNoticeCache($blowLast=false) - { - if ($this->is_local) { - $cache = common_memcache(); - if ($cache) { - $cache->delete(common_cache_key('profile:notices:'.$this->profile_id)); - if ($blowLast) { - $cache->delete(common_cache_key('profile:notices:'.$this->profile_id.';last')); - } - } - } - } - - function blowRepliesCache($blowLast=false) - { - $cache = common_memcache(); - if ($cache) { - $reply = new Reply(); - $reply->notice_id = $this->id; - if ($reply->find()) { - while ($reply->fetch()) { - $cache->delete(common_cache_key('user:replies:'.$reply->profile_id)); - if ($blowLast) { - $cache->delete(common_cache_key('user:replies:'.$reply->profile_id.';last')); - } - } - } - $reply->free(); - unset($reply); - } - } - - function blowPublicCache($blowLast=false) - { - if ($this->is_local == 1) { - $cache = common_memcache(); - if ($cache) { - $cache->delete(common_cache_key('public')); - if ($blowLast) { - $cache->delete(common_cache_key('public').';last'); - } - } - } - } - - function blowFavesCache($blowLast=false) - { - $cache = common_memcache(); - if ($cache) { - $fave = new Fave(); - $fave->notice_id = $this->id; - if ($fave->find()) { - while ($fave->fetch()) { - $cache->delete(common_cache_key('user:faves:'.$fave->user_id)); - if ($blowLast) { - $cache->delete(common_cache_key('user:faves:'.$fave->user_id.';last')); - } - } - } - $fave->free(); - unset($fave); - } - } - - # XXX: too many args; we need to move to named params or even a separate - # class for notice streams - - static function getStream($qry, $cachekey, $offset=0, $limit=20, $since_id=0, $before_id=0, $order=null, $since=null) { - - if (common_config('memcached', 'enabled')) { - - # Skip the cache if this is a since, since_id or before_id qry - if ($since_id > 0 || $before_id > 0 || $since) { - return Notice::getStreamDirect($qry, $offset, $limit, $since_id, $before_id, $order, $since); - } else { - return Notice::getCachedStream($qry, $cachekey, $offset, $limit, $order); - } - } - - return Notice::getStreamDirect($qry, $offset, $limit, $since_id, $before_id, $order, $since); - } - - static function getStreamDirect($qry, $offset, $limit, $since_id, $before_id, $order, $since) { - - $needAnd = false; - $needWhere = true; - - if (preg_match('/\bWHERE\b/i', $qry)) { - $needWhere = false; - $needAnd = true; - } - - if ($since_id > 0) { - - if ($needWhere) { - $qry .= ' WHERE '; - $needWhere = false; - } else { - $qry .= ' AND '; - } - - $qry .= ' notice.id > ' . $since_id; - } - - if ($before_id > 0) { - - if ($needWhere) { - $qry .= ' WHERE '; - $needWhere = false; - } else { - $qry .= ' AND '; - } - - $qry .= ' notice.id < ' . $before_id; - } - - if ($since) { - - if ($needWhere) { - $qry .= ' WHERE '; - $needWhere = false; - } else { - $qry .= ' AND '; - } - - $qry .= ' notice.created > \'' . date('Y-m-d H:i:s', $since) . '\''; - } - - # Allow ORDER override - - if ($order) { - $qry .= $order; - } else { - $qry .= ' ORDER BY notice.created DESC, notice.id DESC '; - } - - if (common_config('db','type') == 'pgsql') { - $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; - } else { - $qry .= ' LIMIT ' . $offset . ', ' . $limit; - } - - $notice = new Notice(); - - $notice->query($qry); - - return $notice; - } - - # XXX: this is pretty long and should probably be broken up into - # some helper functions - - static function getCachedStream($qry, $cachekey, $offset, $limit, $order) { - - # If outside our cache window, just go to the DB - - if ($offset + $limit > NOTICE_CACHE_WINDOW) { - return Notice::getStreamDirect($qry, $offset, $limit, null, null, $order, null); - } - - # Get the cache; if we can't, just go to the DB - - $cache = common_memcache(); - - if (!$cache) { - return Notice::getStreamDirect($qry, $offset, $limit, null, null, $order, null); - } - - # Get the notices out of the cache - - $notices = $cache->get(common_cache_key($cachekey)); - - # On a cache hit, return a DB-object-like wrapper - - if ($notices !== false) { - $wrapper = new NoticeWrapper(array_slice($notices, $offset, $limit)); - return $wrapper; - } - - # If the cache was invalidated because of new data being - # added, we can try and just get the new stuff. We keep an additional - # copy of the data at the key + ';last' - - # No cache hit. Try to get the *last* cached version - - $last_notices = $cache->get(common_cache_key($cachekey) . ';last'); - - if ($last_notices) { - - # Reverse-chron order, so last ID is last. - - $last_id = $last_notices[0]->id; - - # XXX: this assumes monotonically increasing IDs; a fair - # bet with our DB. - - $new_notice = Notice::getStreamDirect($qry, 0, NOTICE_CACHE_WINDOW, - $last_id, null, $order, null); - - if ($new_notice) { - $new_notices = array(); - while ($new_notice->fetch()) { - $new_notices[] = clone($new_notice); - } - $new_notice->free(); - $notices = array_slice(array_merge($new_notices, $last_notices), - 0, NOTICE_CACHE_WINDOW); - - # Store the array in the cache for next time - - $result = $cache->set(common_cache_key($cachekey), $notices); - $result = $cache->set(common_cache_key($cachekey) . ';last', $notices); - - # return a wrapper of the array for use now - - return new NoticeWrapper(array_slice($notices, $offset, $limit)); - } - } - - # Otherwise, get the full cache window out of the DB - - $notice = Notice::getStreamDirect($qry, 0, NOTICE_CACHE_WINDOW, null, null, $order, null); - - # If there are no hits, just return the value - - if (!$notice) { - return $notice; - } - - # Pack results into an array - - $notices = array(); - - while ($notice->fetch()) { - $notices[] = clone($notice); - } - - $notice->free(); - - # Store the array in the cache for next time - - $result = $cache->set(common_cache_key($cachekey), $notices); - $result = $cache->set(common_cache_key($cachekey) . ';last', $notices); - - # return a wrapper of the array for use now - - $wrapper = new NoticeWrapper(array_slice($notices, $offset, $limit)); - - return $wrapper; - } - - function publicStream($offset=0, $limit=20, $since_id=0, $before_id=0, $since=null) - { - - $parts = array(); - - $qry = 'SELECT * FROM notice '; - - if (common_config('public', 'localonly')) { - $parts[] = 'is_local = 1'; - } else { - # -1 == blacklisted - $parts[] = 'is_local != -1'; - } - - if ($parts) { - $qry .= ' WHERE ' . implode(' AND ', $parts); - } - - return Notice::getStream($qry, - 'public', - $offset, $limit, $since_id, $before_id, null, $since); - } - - function addToInboxes() - { - $enabled = common_config('inboxes', 'enabled'); - - if ($enabled === true || $enabled === 'transitional') { - $inbox = new Notice_inbox(); - $qry = 'INSERT INTO notice_inbox (user_id, notice_id, created) ' . - 'SELECT user.id, ' . $this->id . ', "' . $this->created . '" ' . - 'FROM user JOIN subscription ON user.id = subscription.subscriber ' . - 'WHERE subscription.subscribed = ' . $this->profile_id . ' ' . - 'AND NOT EXISTS (SELECT user_id, notice_id ' . - 'FROM notice_inbox ' . - 'WHERE user_id = user.id ' . - 'AND notice_id = ' . $this->id . ' )'; - if ($enabled === 'transitional') { - $qry .= ' AND user.inboxed = 1'; - } - $inbox->query($qry); - } - return; - } - - # Delete from inboxes if we're deleted. - - function blowInboxes() - { - - $enabled = common_config('inboxes', 'enabled'); - - if ($enabled === true || $enabled === 'transitional') { - $inbox = new Notice_inbox(); - $inbox->notice_id = $this->id; - $inbox->delete(); - } - - return; - } - -} - diff --git a/_darcs/pristine/classes/NoticeWrapper.php b/_darcs/pristine/classes/NoticeWrapper.php deleted file mode 100644 index 233340ccd6..0000000000 --- a/_darcs/pristine/classes/NoticeWrapper.php +++ /dev/null @@ -1,62 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/classes/Notice.php'); - -class NoticeWrapper extends Notice -{ - - public $id; // int(4) primary_key not_null - public $profile_id; // int(4) not_null - public $uri; // varchar(255) unique_key - public $content; // varchar(140) - public $rendered; // text() - public $url; // varchar(255) - public $created; // datetime() not_null - public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP - public $reply_to; // int(4) - public $is_local; // tinyint(1) - public $source; // varchar(32) - - var $notices = null; - var $i = -1; - - function __construct($arr) - { - $this->notices = $arr; - } - - function fetch() - { - static $fields = array('id', 'profile_id', 'uri', 'content', 'rendered', - 'url', 'created', 'modified', 'reply_to', 'is_local', 'source'); - $this->i++; - if ($this->i >= count($this->notices)) { - return false; - } else { - $n = $this->notices[$this->i]; - foreach ($fields as $f) { - $this->$f = $n->$f; - } - return true; - } - } -} \ No newline at end of file diff --git a/_darcs/pristine/classes/Notice_inbox.php b/_darcs/pristine/classes/Notice_inbox.php deleted file mode 100644 index 81ddb45385..0000000000 --- a/_darcs/pristine/classes/Notice_inbox.php +++ /dev/null @@ -1,41 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - -class Notice_inbox extends Memcached_DataObject -{ - ###START_AUTOCODE - /* the code below is auto generated do not remove the above tag */ - - public $__table = 'notice_inbox'; // table name - public $user_id; // int(4) primary_key not_null - public $notice_id; // int(4) primary_key not_null - public $created; // datetime() not_null - public $source; // tinyint(1) default_1 - - /* Static get */ - function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('Notice_inbox',$k,$v); } - - /* the code above is auto generated do not remove the tag below */ - ###END_AUTOCODE -} diff --git a/_darcs/pristine/classes/Notice_source.php b/_darcs/pristine/classes/Notice_source.php deleted file mode 100644 index e7568bbca2..0000000000 --- a/_darcs/pristine/classes/Notice_source.php +++ /dev/null @@ -1,25 +0,0 @@ -. - */ - -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - -class Notice_tag extends Memcached_DataObject -{ - ###START_AUTOCODE - /* the code below is auto generated do not remove the above tag */ - - public $__table = 'notice_tag'; // table name - public $tag; // varchar(64) primary_key not_null - public $notice_id; // int(4) primary_key not_null - public $created; // datetime() not_null - - /* Static get */ - function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('Notice_tag',$k,$v); } - - /* the code above is auto generated do not remove the tag below */ - ###END_AUTOCODE - - static function getStream($tag, $offset=0, $limit=20) { - $qry = - 'SELECT notice.* ' . - 'FROM notice JOIN notice_tag ON notice.id = notice_tag.notice_id ' . - 'WHERE notice_tag.tag = "%s" '; - - return Notice::getStream(sprintf($qry, $tag), - 'notice_tag:notice_stream:' . common_keyize($tag), - $offset, $limit); - } - - function blowCache() - { - $cache = common_memcache(); - if ($cache) { - $cache->delete(common_cache_key('notice_tag:notice_stream:' . $this->tag)); - } - } -} diff --git a/_darcs/pristine/classes/Profile.php b/_darcs/pristine/classes/Profile.php deleted file mode 100644 index 31bdf71d59..0000000000 --- a/_darcs/pristine/classes/Profile.php +++ /dev/null @@ -1,190 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -/** - * Table Definition for profile - */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - -class Profile extends Memcached_DataObject -{ - ###START_AUTOCODE - /* the code below is auto generated do not remove the above tag */ - - public $__table = 'profile'; // table name - public $id; // int(4) primary_key not_null - public $nickname; // varchar(64) multiple_key not_null - public $fullname; // varchar(255) multiple_key - public $profileurl; // varchar(255) - public $homepage; // varchar(255) multiple_key - public $bio; // varchar(140) multiple_key - public $location; // varchar(255) multiple_key - public $created; // datetime() not_null - public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP - - /* Static get */ - function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('Profile',$k,$v); } - - /* the code above is auto generated do not remove the tag below */ - ###END_AUTOCODE - - function getAvatar($width, $height=null) - { - if (is_null($height)) { - $height = $width; - } - return Avatar::pkeyGet(array('profile_id' => $this->id, - 'width' => $width, - 'height' => $height)); - } - - function getOriginalAvatar() - { - $avatar = DB_DataObject::factory('avatar'); - $avatar->profile_id = $this->id; - $avatar->original = true; - if ($avatar->find(true)) { - return $avatar; - } else { - return null; - } - } - - function setOriginal($source) - { - - $info = @getimagesize($source); - - if (!$info) { - return null; - } - - $filename = common_avatar_filename($this->id, - image_type_to_extension($info[2]), - null, common_timestamp()); - $filepath = common_avatar_path($filename); - - copy($source, $filepath); - - $avatar = new Avatar(); - - $avatar->profile_id = $this->id; - $avatar->width = $info[0]; - $avatar->height = $info[1]; - $avatar->mediatype = image_type_to_mime_type($info[2]); - $avatar->filename = $filename; - $avatar->original = true; - $avatar->url = common_avatar_url($filename); - $avatar->created = DB_DataObject_Cast::dateTime(); # current time - - # XXX: start a transaction here - - if (!$this->delete_avatars()) { - @unlink($filepath); - return null; - } - - if (!$avatar->insert()) { - @unlink($filepath); - return null; - } - - foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) { - # We don't do a scaled one if original is our scaled size - if (!($avatar->width == $size && $avatar->height == $size)) { - $s = $avatar->scale($size); - if (!$s) { - return null; - } - } - } - - return $avatar; - } - - function crop_avatars($x, $y, $w, $h) - { - - $avatar = $this->getOriginalAvatar(); - $this->delete_avatars(false); # don't delete original - - foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) { - # We don't do a scaled one if original is our scaled size - if (!($avatar->width == $size && $avatar->height == $size)) { - $s = $avatar->scale_and_crop($size, $x, $y, $w, $h); - if (!$s) { - return NULL; - } - } - } - return true; - } - - function delete_avatars($original=true) - { - $avatar = new Avatar(); - $avatar->profile_id = $this->id; - $avatar->find(); - while ($avatar->fetch()) { - if ($avatar->original) { - if ($original == false) { - continue; - } - } - $avatar->delete(); - } - return true; - } - - function getBestName() - { - return ($this->fullname) ? $this->fullname : $this->nickname; - } - - # Get latest notice on or before date; default now - function getCurrentNotice($dt=null) - { - $notice = new Notice(); - $notice->profile_id = $this->id; - if ($dt) { - $notice->whereAdd('created < "' . $dt . '"'); - } - $notice->orderBy('created DESC, notice.id DESC'); - $notice->limit(1); - if ($notice->find(true)) { - return $notice; - } - return null; - } - - function getNotices($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0) - { - $qry = - 'SELECT * ' . - 'FROM notice ' . - 'WHERE profile_id = %d '; - - return Notice::getStream(sprintf($qry, $this->id), - 'profile:notices:'.$this->id, - $offset, $limit, $since_id, $before_id); - } -} diff --git a/_darcs/pristine/classes/Profile_block.php b/_darcs/pristine/classes/Profile_block.php deleted file mode 100644 index 551e690e24..0000000000 --- a/_darcs/pristine/classes/Profile_block.php +++ /dev/null @@ -1,51 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -/** - * Table Definition for profile_block - */ - -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - -class Profile_block extends Memcached_DataObject -{ - ###START_AUTOCODE - /* the code below is auto generated do not remove the above tag */ - - public $__table = 'profile_block'; // table name - public $blocker; // int(4) primary_key not_null - public $blocked; // int(4) primary_key not_null - public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP - - /* Static get */ - function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('Profile_block',$k,$v); } - - /* the code above is auto generated do not remove the tag below */ - ###END_AUTOCODE - - function get($blocker, $blocked) - { - return Memcached_DataObject::pkeyGet('Profile_block', - array('blocker' => $blocker, - 'blocked' => $blocked)); - } -} diff --git a/_darcs/pristine/classes/Profile_tag.php b/_darcs/pristine/classes/Profile_tag.php deleted file mode 100644 index cb60cbaec9..0000000000 --- a/_darcs/pristine/classes/Profile_tag.php +++ /dev/null @@ -1,102 +0,0 @@ -tagger = $tagger; - $profile_tag->tagged = $tagged; - - $profile_tag->find(); - - while ($profile_tag->fetch()) { - $tags[] = $profile_tag->tag; - } - - $profile_tag->free(); - - return $tags; - } - - static function setTags($tagger, $tagged, $newtags) { - - $oldtags = Profile_tag::getTags($tagger, $tagged); - - # Delete stuff that's old that not in new - - $to_delete = array_diff($oldtags, $newtags); - - # Insert stuff that's in new and not in old - - $to_insert = array_diff($newtags, $oldtags); - - $profile_tag = new Profile_tag(); - - $profile_tag->tagger = $tagger; - $profile_tag->tagged = $tagged; - - $profile_tag->query('BEGIN'); - - foreach ($to_delete as $deltag) { - $profile_tag->tag = $deltag; - $result = $profile_tag->delete(); - if (!$result) { - common_log_db_error($profile_tag, 'DELETE', __FILE__); - return false; - } - } - - foreach ($to_insert as $instag) { - $profile_tag->tag = $instag; - $result = $profile_tag->insert(); - if (!$result) { - common_log_db_error($profile_tag, 'INSERT', __FILE__); - return false; - } - } - - $profile_tag->query('COMMIT'); - - return true; - } - - # Return profiles with a given tag - static function getTagged($tagger, $tag) { - $profile = new Profile(); - $profile->query('SELECT profile.* ' . - 'FROM profile JOIN profile_tag ' . - 'ON profile.id = profile_tag.tagged ' . - 'WHERE profile_tag.tagger = ' . $tagger . ' ' . - 'AND profile_tag.tag = "' . $tag . '" '); - $tagged = array(); - while ($profile->fetch()) { - $tagged[] = clone($profile); - } - return $tagged; - } -} diff --git a/_darcs/pristine/classes/Queue_item.php b/_darcs/pristine/classes/Queue_item.php deleted file mode 100644 index 9b909ec22b..0000000000 --- a/_darcs/pristine/classes/Queue_item.php +++ /dev/null @@ -1,57 +0,0 @@ -transport = $transport; - $qi->orderBy('created'); - $qi->whereAdd('claimed is null'); - - $qi->limit(1); - - $cnt = $qi->find(true); - - if ($cnt) { - # XXX: potential race condition - # can we force it to only update if claimed is still null - # (or old)? - common_log(LOG_INFO, 'claiming queue item = ' . $qi->notice_id . ' for transport ' . $transport); - $orig = clone($qi); - $qi->claimed = common_sql_now(); - $result = $qi->update($orig); - if ($result) { - common_log(LOG_INFO, 'claim succeeded.'); - return $qi; - } else { - common_log(LOG_INFO, 'claim failed.'); - } - } - $qi = null; - return null; - } -} diff --git a/_darcs/pristine/classes/Remember_me.php b/_darcs/pristine/classes/Remember_me.php deleted file mode 100644 index 8dc29bfa39..0000000000 --- a/_darcs/pristine/classes/Remember_me.php +++ /dev/null @@ -1,26 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -/** - * Table Definition for remote_profile - */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - -class Remote_profile extends Memcached_DataObject -{ - ###START_AUTOCODE - /* the code below is auto generated do not remove the above tag */ - - public $__table = 'remote_profile'; // table name - public $id; // int(4) primary_key not_null - public $uri; // varchar(255) unique_key - public $postnoticeurl; // varchar(255) - public $updateprofileurl; // varchar(255) - public $created; // datetime() not_null - public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP - - /* Static get */ - function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('Remote_profile',$k,$v); } - - /* the code above is auto generated do not remove the tag below */ - ###END_AUTOCODE -} diff --git a/_darcs/pristine/classes/Reply.php b/_darcs/pristine/classes/Reply.php deleted file mode 100644 index af86aaf878..0000000000 --- a/_darcs/pristine/classes/Reply.php +++ /dev/null @@ -1,24 +0,0 @@ -email_pattern, $sms); - } -} diff --git a/_darcs/pristine/classes/Subscription.php b/_darcs/pristine/classes/Subscription.php deleted file mode 100644 index 3fe0d167f1..0000000000 --- a/_darcs/pristine/classes/Subscription.php +++ /dev/null @@ -1,53 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -/** - * Table Definition for subscription - */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - -class Subscription extends Memcached_DataObject -{ - ###START_AUTOCODE - /* the code below is auto generated do not remove the above tag */ - - public $__table = 'subscription'; // table name - public $subscriber; // int(4) primary_key not_null - public $subscribed; // int(4) primary_key not_null - public $jabber; // tinyint(1) default_1 - public $sms; // tinyint(1) default_1 - public $token; // varchar(255) - public $secret; // varchar(255) - public $created; // datetime() not_null - public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP - - /* Static get */ - function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('Subscription',$k,$v); } - - /* the code above is auto generated do not remove the tag below */ - ###END_AUTOCODE - - function &pkeyGet($kv) - { - return Memcached_DataObject::pkeyGet('Subscription', $kv); - } -} diff --git a/_darcs/pristine/classes/Token.php b/_darcs/pristine/classes/Token.php deleted file mode 100644 index 1fabd72f13..0000000000 --- a/_darcs/pristine/classes/Token.php +++ /dev/null @@ -1,27 +0,0 @@ -. - */ - -if (!defined('LACONICA')) { exit(1); } - -/** - * Table Definition for user - */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -require_once 'Validate.php'; - -class User extends Memcached_DataObject -{ - ###START_AUTOCODE - /* the code below is auto generated do not remove the above tag */ - - public $__table = 'user'; // table name - public $id; // int(4) primary_key not_null - public $nickname; // varchar(64) unique_key - public $password; // varchar(255) - public $email; // varchar(255) unique_key - public $incomingemail; // varchar(255) unique_key - public $emailnotifysub; // tinyint(1) default_1 - public $emailnotifyfav; // tinyint(1) default_1 - public $emailnotifynudge; // tinyint(1) default_1 - public $emailnotifymsg; // tinyint(1) default_1 - public $emailmicroid; // tinyint(1) default_1 - public $language; // varchar(50) - public $timezone; // varchar(50) - public $emailpost; // tinyint(1) default_1 - public $jabber; // varchar(255) unique_key - public $jabbernotify; // tinyint(1) - public $jabberreplies; // tinyint(1) - public $jabbermicroid; // tinyint(1) default_1 - public $updatefrompresence; // tinyint(1) - public $sms; // varchar(64) unique_key - public $carrier; // int(4) - public $smsnotify; // tinyint(1) - public $smsreplies; // tinyint(1) - public $smsemail; // varchar(255) - public $uri; // varchar(255) unique_key - public $autosubscribe; // tinyint(1) - public $urlshorteningservice; // varchar(50) default_ur1.ca - public $inboxed; // tinyint(1) - public $created; // datetime() not_null - public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP - - /* Static get */ - function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('User',$k,$v); } - - /* the code above is auto generated do not remove the tag below */ - ###END_AUTOCODE - - function getProfile() - { - return Profile::staticGet('id', $this->id); - } - - function isSubscribed($other) - { - assert(!is_null($other)); - # XXX: cache results of this query - $sub = Subscription::pkeyGet(array('subscriber' => $this->id, - 'subscribed' => $other->id)); - return (is_null($sub)) ? false : true; - } - - # 'update' won't write key columns, so we have to do it ourselves. - - function updateKeys(&$orig) - { - $parts = array(); - foreach (array('nickname', 'email', 'jabber', 'incomingemail', 'sms', 'carrier', 'smsemail', 'language', 'timezone') as $k) { - if (strcmp($this->$k, $orig->$k) != 0) { - $parts[] = $k . ' = ' . $this->_quote($this->$k); - } - } - if (count($parts) == 0) { - # No changes - return true; - } - $toupdate = implode(', ', $parts); - - $table = $this->tableName(); - if(common_config('db','quote_identifiers')) { - $table = '"' . $table . '"'; - } - $qry = 'UPDATE ' . $table . ' SET ' . $toupdate . - ' WHERE id = ' . $this->id; - $orig->decache(); - $result = $this->query($qry); - if ($result) { - $this->encache(); - } - return $result; - } - - function allowed_nickname($nickname) - { - # XXX: should already be validated for size, content, etc. - static $blacklist = array('rss', 'xrds', 'doc', 'main', - 'settings', 'notice', 'user', - 'search', 'avatar', 'tag', 'tags', - 'api', 'message'); - $merged = array_merge($blacklist, common_config('nickname', 'blacklist')); - return !in_array($nickname, $merged); - } - - function getCurrentNotice($dt=null) - { - $profile = $this->getProfile(); - if (!$profile) { - return null; - } - return $profile->getCurrentNotice($dt); - } - - function getCarrier() - { - return Sms_carrier::staticGet('id', $this->carrier); - } - - function subscribeTo($other) - { - $sub = new Subscription(); - $sub->subscriber = $this->id; - $sub->subscribed = $other->id; - - $sub->created = common_sql_now(); # current time - - if (!$sub->insert()) { - return false; - } - - return true; - } - - function hasBlocked($other) - { - - $block = Profile_block::get($this->id, $other->id); - - if (is_null($block)) { - $result = false; - } else { - $result = true; - $block->free(); - } - - return $result; - } - - static function register($fields) { - - # MAGICALLY put fields into current scope - - extract($fields); - - $profile = new Profile(); - - $profile->query('BEGIN'); - - $profile->nickname = $nickname; - $profile->profileurl = common_profile_url($nickname); - - if ($fullname) { - $profile->fullname = $fullname; - } - if ($homepage) { - $profile->homepage = $homepage; - } - if ($bio) { - $profile->bio = $bio; - } - if ($location) { - $profile->location = $location; - } - - $profile->created = common_sql_now(); - - $id = $profile->insert(); - - if (!$id) { - common_log_db_error($profile, 'INSERT', __FILE__); - return false; - } - - $user = new User(); - - $user->id = $id; - $user->nickname = $nickname; - - if ($password) { # may not have a password for OpenID users - $user->password = common_munge_password($password, $id); - } - - # Users who respond to invite email have proven their ownership of that address - - if ($code) { - $invite = Invitation::staticGet($code); - if ($invite && $invite->address && $invite->address_type == 'email' && $invite->address == $email) { - $user->email = $invite->address; - } - } - - $inboxes = common_config('inboxes', 'enabled'); - - if ($inboxes === true || $inboxes == 'transitional') { - $user->inboxed = 1; - } - - $user->created = common_sql_now(); - $user->uri = common_user_uri($user); - - $result = $user->insert(); - - if (!$result) { - common_log_db_error($user, 'INSERT', __FILE__); - return false; - } - - # Everyone is subscribed to themself - - $subscription = new Subscription(); - $subscription->subscriber = $user->id; - $subscription->subscribed = $user->id; - $subscription->created = $user->created; - - $result = $subscription->insert(); - - if (!$result) { - common_log_db_error($subscription, 'INSERT', __FILE__); - return false; - } - - if ($email && !$user->email) { - - $confirm = new Confirm_address(); - $confirm->code = common_confirmation_code(128); - $confirm->user_id = $user->id; - $confirm->address = $email; - $confirm->address_type = 'email'; - - $result = $confirm->insert(); - if (!$result) { - common_log_db_error($confirm, 'INSERT', __FILE__); - return false; - } - } - - if ($code && $user->email) { - $user->emailChanged(); - } - - $profile->query('COMMIT'); - - if ($email && !$user->email) { - mail_confirm_address($user, $confirm->code, $profile->nickname, $email); - } - - return $user; - } - - # Things we do when the email changes - - function emailChanged() - { - - $invites = new Invitation(); - $invites->address = $this->email; - $invites->address_type = 'email'; - - if ($invites->find()) { - while ($invites->fetch()) { - $other = User::staticGet($invites->user_id); - subs_subscribe_to($other, $this); - } - } - } - - function hasFave($notice) - { - $cache = common_memcache(); - - # XXX: Kind of a hack. - if ($cache) { - # This is the stream of favorite notices, in rev chron - # order. This forces it into cache. - $faves = $this->favoriteNotices(0, NOTICE_CACHE_WINDOW); - $cnt = 0; - while ($faves->fetch()) { - if ($faves->id < $notice->id) { - # If we passed it, it's not a fave - return false; - } else if ($faves->id == $notice->id) { - # If it matches a cached notice, then it's a fave - return true; - } - $cnt++; - } - # If we're not past the end of the cache window, - # then the cache has all available faves, so this one - # is not a fave. - if ($cnt < NOTICE_CACHE_WINDOW) { - return false; - } - # Otherwise, cache doesn't have all faves; - # fall through to the default - } - $fave = Fave::pkeyGet(array('user_id' => $this->id, - 'notice_id' => $notice->id)); - return ((is_null($fave)) ? false : true); - } - function mutuallySubscribed($other) - { - return $this->isSubscribed($other) && - $other->isSubscribed($this); - } - - function mutuallySubscribedUsers() - { - - # 3-way join; probably should get cached - $qry = 'SELECT user.* ' . - 'FROM subscription sub1 JOIN user ON sub1.subscribed = user.id ' . - 'JOIN subscription sub2 ON user.id = sub2.subscriber ' . - 'WHERE sub1.subscriber = %d and sub2.subscribed = %d ' . - 'ORDER BY user.nickname'; - $user = new User(); - $user->query(sprintf($qry, $this->id, $this->id)); - - return $user; - } - - function getReplies($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null) - { - $qry = - 'SELECT notice.* ' . - 'FROM notice JOIN reply ON notice.id = reply.notice_id ' . - 'WHERE reply.profile_id = %d '; - return Notice::getStream(sprintf($qry, $this->id), - 'user:replies:'.$this->id, - $offset, $limit, $since_id, $before_id, null, $since); - } - - function getNotices($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null) - { - $profile = $this->getProfile(); - if (!$profile) { - return null; - } else { - return $profile->getNotices($offset, $limit, $since_id, $before_id); - } - } - - function favoriteNotices($offset=0, $limit=NOTICES_PER_PAGE) - { - $qry = - 'SELECT notice.* ' . - 'FROM notice JOIN fave ON notice.id = fave.notice_id ' . - 'WHERE fave.user_id = %d '; - return Notice::getStream(sprintf($qry, $this->id), - 'user:faves:'.$this->id, - $offset, $limit); - } - - function noticesWithFriends($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null) - { - $enabled = common_config('inboxes', 'enabled'); - - # Complicated code, depending on whether we support inboxes yet - # XXX: make this go away when inboxes become mandatory - - if ($enabled === false || - ($enabled == 'transitional' && $this->inboxed == 0)) { - $qry = - 'SELECT notice.* ' . - 'FROM notice JOIN subscription ON notice.profile_id = subscription.subscribed ' . - 'WHERE subscription.subscriber = %d '; - $order = null; - } else if ($enabled === true || - ($enabled == 'transitional' && $this->inboxed == 1)) { - - $qry = - 'SELECT notice.* ' . - 'FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id ' . - 'WHERE notice_inbox.user_id = %d '; - # NOTE: we override ORDER - $order = 'ORDER BY notice_inbox.created DESC, notice_inbox.notice_id DESC '; - } - return Notice::getStream(sprintf($qry, $this->id), - 'user:notices_with_friends:' . $this->id, - $offset, $limit, $since_id, $before_id, - $order, $since); - } - - function blowFavesCache() - { - $cache = common_memcache(); - if ($cache) { - # Faves don't happen chronologically, so we need to blow - # ;last cache, too - $cache->delete(common_cache_key('user:faves:'.$this->id)); - $cache->delete(common_cache_key('user:faves:'.$this->id).';last'); - } - } - - function getSelfTags() - { - return Profile_tag::getTags($this->id, $this->id); - } - - function setSelfTags($newtags) - { - return Profile_tag::setTags($this->id, $this->id, $newtags); - } - - function block($other) - { - - # Add a new block record - - $block = new Profile_block(); - - # Begin a transaction - - $block->query('BEGIN'); - - $block->blocker = $this->id; - $block->blocked = $other->id; - - $result = $block->insert(); - - if (!$result) { - common_log_db_error($block, 'INSERT', __FILE__); - return false; - } - - # Cancel their subscription, if it exists - - $sub = Subscription::pkeyGet(array('subscriber' => $other->id, - 'subscribed' => $this->id)); - - if ($sub) { - $result = $sub->delete(); - if (!$result) { - common_log_db_error($sub, 'DELETE', __FILE__); - return false; - } - } - - $block->query('COMMIT'); - - return true; - } - - function unblock($other) - { - - # Get the block record - - $block = Profile_block::get($this->id, $other->id); - - if (!$block) { - return false; - } - - $result = $block->delete(); - - if (!$result) { - common_log_db_error($block, 'DELETE', __FILE__); - return false; - } - - return true; - } - -} diff --git a/_darcs/pristine/classes/User_openid.php b/_darcs/pristine/classes/User_openid.php deleted file mode 100644 index f4fda1c72e..0000000000 --- a/_darcs/pristine/classes/User_openid.php +++ /dev/null @@ -1,25 +0,0 @@ - 'localhost', -# 'port' => 25, -# ); -#For incoming email, if enabled. Defaults to site server name. -#$config['mail']['domain'] = 'incoming.example.net'; - -#exponential decay factor for tags, default 10 days -#raise this if traffic is slow, lower it if it's fast -#$config['tag']['dropoff'] = 86400.0 * 10; - -#exponential decay factor for popular (most favorited notices) -#default 10 days -- similar to tag dropoff -#$config['popular']['dropoff'] = 86400.0 * 10; - -#optionally show non-local messages in public timeline -#$config['public']['localonly'] = false; - -#hide certain users from public pages, by ID -#$config['public']['blacklist'][] = 123; -#$config['public']['blacklist'][] = 2307; - -#Do notice broadcasts offline -#If you use this, you must run the six offline daemons in the -#background. See the README for details. -#$config['queue']['enabled'] = true; - -#The following customise the behaviour of the various daemons: -#$config['daemon']['piddir'] = '/var/run'; -#$config['daemon']['user'] = false; -#$config['daemon']['group'] = false; - -#For installations with high traffic, laconica can use MemCached to cache -#frequently requested information. Only enable the following if you have -#MemCached up and running: -#$config['memcached']['enabled'] = false; -#$config['memcached']['server'] = 'localhost'; -#$config['memcached']['port'] = 11211; - -#Twitter integration source attribute. Note: default is Laconica -#$config['integration']['source'] = 'Laconica'; - -# Edit throttling. Off by default. If turned on, you can only post 20 notices -# every 10 minutes. Admins may want to play with the settings to minimize inconvenience for -# real users without getting uncontrollable floods from spammers or runaway bots. - -#$config['throttle']['enabled'] = true; -#$config['throttle']['count'] = 100; -#$config['throttle']['timespan'] = 3600; - -# List of users banned from posting (nicknames and/or IDs) -#$config['profile']['banned'][] = 'hacker'; -#$config['profile']['banned'][] = 12345; - -# config section for the built-in Facebook application -#$config['facebook']['apikey'] = 'APIKEY'; -#$config['facebook']['secret'] = 'SECRET'; diff --git a/_darcs/pristine/db/carrier.sql b/_darcs/pristine/db/carrier.sql deleted file mode 100644 index 932f7c8bb0..0000000000 --- a/_darcs/pristine/db/carrier.sql +++ /dev/null @@ -1,61 +0,0 @@ -insert into sms_carrier - (name, email_pattern, created) -values - ('3 River Wireless', '%s@sms.3rivers.net', now()), - ('7-11 Speakout', '%s@cingularme.com', now()), - ('Airtel (Karnataka, India)', '%s@airtelkk.com', now()), - ('Alaska Communications Systems', '%s@msg.acsalaska.com', now()), - ('Alltel Wireless', '%s@message.alltel.com', now()), - ('AT&T Wireless', '%s@txt.att.net', now()), - ('Bell Mobility (Canada)', '%s@txt.bell.ca', now()), - ('Boost Mobile', '%s@myboostmobile.com', now()), - ('Cellular One (Dobson)', '%s@mobile.celloneusa.com', now()), - ('Cincinnati Bell Wireless', '%s@gocbw.com', now()), - ('Cingular (Postpaid)', '%s@cingularme.com', now()), - ('Centennial Wireless', '%s@cwemail.com', now()), - ('Cingular (GoPhone prepaid)', '%s@cingularme.com', now()), - ('Claro (Nicaragua)', '%s@ideasclaro-ca.com', now()), - ('Comcel', '%s@comcel.com.co', now()), - ('Cricket', '%s@sms.mycricket.com', now()), - ('CTI', '%s@sms.ctimovil.com.ar', now()), - ('Emtel (Mauritius)', '%s@emtelworld.net', now()), - ('Fido (Canada)', '%s@fido.ca', now()), - ('General Communications Inc.', '%s@msg.gci.net', now()), - ('Globalstar', '%s@msg.globalstarusa.com', now()), - ('Helio', '%s@myhelio.com', now()), - ('Illinois Valley Cellular', '%s@ivctext.com', now()), - ('i wireless', '%s.iws@iwspcs.net', now()), - ('Meteor (Ireland)', '%s@sms.mymeteor.ie', now()), - ('Mero Mobile (Nepal)', '%s@sms.spicenepal.com', now()), - ('MetroPCS', '%s@mymetropcs.com', now()), - ('Movicom', '%s@movimensaje.com.ar', now()), - ('Mobitel (Sri Lanka)', '%s@sms.mobitel.lk', now()), - ('Movistar (Colombia)', '%s@movistar.com.co', now()), - ('MTN (South Africa)', '%s@sms.co.za', now()), - ('MTS (Canada)', '%s@text.mtsmobility.com', now()), - ('Nextel (Argentina)', '%s@nextel.net.ar', now()), - ('Orange (Poland)', '%s@orange.pl', now()), - ('Orange (UK)', '%s@orange.net', now()), - ('Personal (Argentina)', '%s@personal-net.com.ar', now()), - ('Plus GSM (Poland)', '%s@text.plusgsm.pl', now()), - ('President''s Choice (Canada)', '%s@txt.bell.ca', now()), - ('Qwest', '%s@qwestmp.com', now()), - ('Rogers (Canada)', '%s@pcs.rogers.com', now()), - ('Sasktel (Canada)', '%s@sms.sasktel.com', now()), - ('Setar Mobile email (Aruba)', '%s@mas.aw', now()), - ('Solo Mobile', '%s@txt.bell.ca', now()), - ('Sprint (PCS)', '%s@messaging.sprintpcs.com', now()), - ('Sprint (Nextel)', '%s@page.nextel.com', now()), - ('Suncom', '%s@tms.suncom.com', now()), - ('T-Mobile', '%s@tmomail.net', now()), - ('T-Mobile (Austria)', '%s@sms.t-mobile.at', now()), - ('Telus Mobility (Canada)', '%s@msg.telus.com', now()), - ('Thumb Cellular', '%s@sms.thumbcellular.com', now()), - ('Tigo (Formerly Ola)', '%s@sms.tigo.com.co', now()), - ('Unicel', '%s@utext.com', now()), - ('US Cellular', '%s@email.uscc.net', now()), - ('Verizon', '%s@vtext.com', now()), - ('Virgin Mobile (Canada)', '%s@vmobile.ca', now()), - ('Virgin Mobile (USA)', '%s@vmobl.com', now()), - ('Vodafone NZ (txt ''R'' to 901 to enable first)', '%s@sms.vodafone.net.nz', now()), - ('YCC', '%s@sms.ycc.ru', now()); diff --git a/_darcs/pristine/db/foreign_services.sql b/_darcs/pristine/db/foreign_services.sql deleted file mode 100644 index 512d425138..0000000000 --- a/_darcs/pristine/db/foreign_services.sql +++ /dev/null @@ -1,8 +0,0 @@ -insert into foreign_service - (id, name, description, created) -values - ('1','Twitter', 'Twitter Micro-blogging service', now()); -insert into foreign_service - (id, name, description, created) -values - ('2','Facebook', 'Facebook', now()); diff --git a/_darcs/pristine/db/laconica.sql b/_darcs/pristine/db/laconica.sql deleted file mode 100644 index a366a6bcbb..0000000000 --- a/_darcs/pristine/db/laconica.sql +++ /dev/null @@ -1,370 +0,0 @@ -/* local and remote users have profiles */ - -create table profile ( - id integer auto_increment primary key comment 'unique identifier', - nickname varchar(64) not null comment 'nickname or username', - fullname varchar(255) comment 'display name', - profileurl varchar(255) comment 'URL, cached so we dont regenerate', - homepage varchar(255) comment 'identifying URL', - bio varchar(140) comment 'descriptive biography', - location varchar(255) comment 'physical location', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - index profile_nickname_idx (nickname), - FULLTEXT(nickname, fullname, location, bio, homepage) -) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin; - -create table avatar ( - profile_id integer not null comment 'foreign key to profile table' references profile (id), - original boolean default false comment 'uploaded by user or generated?', - width integer not null comment 'image width', - height integer not null comment 'image height', - mediatype varchar(32) not null comment 'file type', - filename varchar(255) null comment 'local filename, if local', - url varchar(255) unique key comment 'avatar location', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (profile_id, width, height), - index avatar_profile_id_idx (profile_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table sms_carrier ( - id integer auto_increment primary key comment 'primary key for SMS carrier', - name varchar(64) unique key comment 'name of the carrier', - email_pattern varchar(255) not null comment 'sprintf pattern for making an email address from a phone number', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* local users */ - -create table user ( - id integer primary key comment 'foreign key to profile table' references profile (id), - nickname varchar(64) unique key comment 'nickname or username, duped in profile', - password varchar(255) comment 'salted password, can be null for OpenID users', - email varchar(255) unique key comment 'email address for password recovery etc.', - incomingemail varchar(255) unique key comment 'email address for post-by-email', - emailnotifysub tinyint default 1 comment 'Notify by email of subscriptions', - emailnotifyfav tinyint default 1 comment 'Notify by email of favorites', - emailnotifynudge tinyint default 1 comment 'Notify by email of nudges', - emailnotifymsg tinyint default 1 comment 'Notify by email of direct messages', - emailmicroid tinyint default 1 comment 'whether to publish email microid', - language varchar(50) comment 'preferred language', - timezone varchar(50) comment 'timezone', - emailpost tinyint default 1 comment 'Post by email', - jabber varchar(255) unique key comment 'jabber ID for notices', - jabbernotify tinyint default 0 comment 'whether to send notices to jabber', - jabberreplies tinyint default 0 comment 'whether to send notices to jabber on replies', - jabbermicroid tinyint default 1 comment 'whether to publish xmpp microid', - updatefrompresence tinyint default 0 comment 'whether to record updates from Jabber presence notices', - sms varchar(64) unique key comment 'sms phone number', - carrier integer comment 'foreign key to sms_carrier' references sms_carrier (id), - smsnotify tinyint default 0 comment 'whether to send notices to SMS', - smsreplies tinyint default 0 comment 'whether to send notices to SMS on replies', - smsemail varchar(255) comment 'built from sms and carrier', - uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', - autosubscribe tinyint default 0 comment 'automatically subscribe to users who subscribe to us', - urlshorteningservice varchar(50) default 'ur1.ca' comment 'service to use for auto-shortening URLs', - inboxed tinyint default 0 comment 'has an inbox been created for this user?', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - index user_smsemail_idx (smsemail) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* remote people */ - -create table remote_profile ( - id integer primary key comment 'foreign key to profile table' references profile (id), - uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', - postnoticeurl varchar(255) comment 'URL we use for posting notices', - updateprofileurl varchar(255) comment 'URL we use for updates to this profile', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table subscription ( - subscriber integer not null comment 'profile listening', - subscribed integer not null comment 'profile being listened to', - jabber tinyint default 1 comment 'deliver jabber messages', - sms tinyint default 1 comment 'deliver sms messages', - token varchar(255) comment 'authorization token', - secret varchar(255) comment 'token secret', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (subscriber, subscribed), - index subscription_subscriber_idx (subscriber), - index subscription_subscribed_idx (subscribed), - index subscription_token_idx (token) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table notice ( - - id integer auto_increment primary key comment 'unique identifier', - profile_id integer not null comment 'who made the update' references profile (id), - uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', - content varchar(140) comment 'update content', - rendered text comment 'HTML version of the content', - url varchar(255) comment 'URL of any attachment (image, video, bookmark, whatever)', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - reply_to integer comment 'notice replied to (usually a guess)' references notice (id), - is_local tinyint default 0 comment 'notice was generated by a user', - source varchar(32) comment 'source of comment, like "web", "im", or "clientname"', - - index notice_profile_id_idx (profile_id), - index notice_created_idx (created), - FULLTEXT(content) -) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin; - -create table notice_source ( - code varchar(32) primary key not null comment 'source code', - name varchar(255) not null comment 'name of the source', - url varchar(255) not null comment 'url to link to', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table reply ( - - notice_id integer not null comment 'notice that is the reply' references notice (id), - profile_id integer not null comment 'profile replied to' references profile (id), - modified timestamp not null comment 'date this record was modified', - replied_id integer comment 'notice replied to (not used, see notice.reply_to)', - - constraint primary key (notice_id, profile_id), - index reply_notice_id_idx (notice_id), - index reply_profile_id_idx (profile_id), - index reply_replied_id_idx (replied_id) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table fave ( - - notice_id integer not null comment 'notice that is the favorite' references notice (id), - user_id integer not null comment 'user who likes this notice' references user (id), - modified timestamp not null comment 'date this record was modified', - - constraint primary key (notice_id, user_id), - index fave_notice_id_idx (notice_id), - index fave_user_id_idx (user_id), - index fave_modified_idx (modified) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* tables for OAuth */ - -create table consumer ( - consumer_key varchar(255) primary key comment 'unique identifier, root URL', - seed char(32) not null comment 'seed for new tokens by this consumer', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table token ( - consumer_key varchar(255) not null comment 'unique identifier, root URL' references consumer (consumer_key), - tok char(32) not null comment 'identifying value', - secret char(32) not null comment 'secret value', - type tinyint not null default 0 comment 'request or access', - state tinyint default 0 comment 'for requests; 0 = initial, 1 = authorized, 2 = used', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (consumer_key, tok) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table nonce ( - consumer_key varchar(255) not null comment 'unique identifier, root URL', - tok char(32) not null comment 'identifying value', - nonce char(32) not null comment 'nonce', - ts datetime not null comment 'timestamp sent', - - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (consumer_key, tok, nonce), - constraint foreign key (consumer_key, tok) references token (consumer_key, tok) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* One-to-many relationship of user to openid_url */ - -create table user_openid ( - canonical varchar(255) primary key comment 'Canonical true URL', - display varchar(255) not null unique key comment 'URL for viewing, may be different from canonical', - user_id integer not null comment 'user owning this URL' references user (id), - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - index user_openid_user_id_idx (user_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* These are used by JanRain OpenID library */ - -create table oid_associations ( - server_url BLOB, - handle VARCHAR(255) character set latin1, - secret BLOB, - issued INTEGER, - lifetime INTEGER, - assoc_type VARCHAR(64), - PRIMARY KEY (server_url(255), handle) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table oid_nonces ( - server_url VARCHAR(2047), - timestamp INTEGER, - salt CHAR(40), - UNIQUE (server_url(255), timestamp, salt) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table confirm_address ( - code varchar(32) not null primary key comment 'good random code', - user_id integer not null comment 'user who requested confirmation' references user (id), - address varchar(255) not null comment 'address (email, Jabber, SMS, etc.)', - address_extra varchar(255) not null comment 'carrier ID, for SMS', - address_type varchar(8) not null comment 'address type ("email", "jabber", "sms")', - claimed datetime comment 'date this was claimed for queueing', - sent datetime comment 'date this was sent for queueing', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table remember_me ( - code varchar(32) not null primary key comment 'good random code', - user_id integer not null comment 'user who is logged in' references user (id), - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table queue_item ( - - notice_id integer not null comment 'notice queued' references notice (id), - transport varchar(8) not null comment 'queue for what? "email", "jabber", "sms", "irc", ...', - created datetime not null comment 'date this record was created', - claimed datetime comment 'date this item was claimed', - - constraint primary key (notice_id, transport), - index queue_item_created_idx (created) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* Hash tags */ -create table notice_tag ( - tag varchar( 64 ) not null comment 'hash tag associated with this notice', - notice_id integer not null comment 'notice tagged' references notice (id), - created datetime not null comment 'date this record was created', - - constraint primary key (tag, notice_id), - index notice_tag_created_idx (created) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -/* Synching with foreign services */ - -create table foreign_service ( - id int not null primary key comment 'numeric key for service', - name varchar(32) not null unique key comment 'name of the service', - description varchar(255) comment 'description', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified' -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table foreign_user ( - id int not null comment 'unique numeric key on foreign service', - service int not null comment 'foreign key to service' references foreign_service(id), - uri varchar(255) not null unique key comment 'identifying URI', - nickname varchar(255) comment 'nickname on foreign service', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (id, service) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table foreign_link ( - user_id int comment 'link to user on this system, if exists' references user (id), - foreign_id int comment 'link ' references foreign_user(id), - service int not null comment 'foreign key to service' references foreign_service(id), - credentials varchar(255) comment 'authc credentials, typically a password', - noticesync tinyint not null default 1 comment 'notice synchronization, bit 1 = sync outgoing, bit 2 = sync incoming, bit 3 = filter local replies', - friendsync tinyint not null default 2 comment 'friend synchronization, bit 1 = sync outgoing, bit 2 = sync incoming', - profilesync tinyint not null default 1 comment 'profile synchronization, bit 1 = sync outgoing, bit 2 = sync incoming', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - - constraint primary key (user_id, foreign_id, service), - index foreign_user_user_id_idx (user_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table foreign_subscription ( - service int not null comment 'service where relationship happens' references foreign_service(id), - subscriber int not null comment 'subscriber on foreign service' references foreign_user (id), - subscribed int not null comment 'subscribed user' references foreign_user (id), - created datetime not null comment 'date this record was created', - - constraint primary key (service, subscriber, subscribed), - index foreign_subscription_subscriber_idx (subscriber), - index foreign_subscription_subscribed_idx (subscribed) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table invitation ( - code varchar(32) not null primary key comment 'random code for an invitation', - user_id int not null comment 'who sent the invitation' references user (id), - address varchar(255) not null comment 'invitation sent to', - address_type varchar(8) not null comment 'address type ("email", "jabber", "sms")', - created datetime not null comment 'date this record was created', - - index invitation_address_idx (address, address_type), - index invitation_user_id_idx (user_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table message ( - - id integer auto_increment primary key comment 'unique identifier', - uri varchar(255) unique key comment 'universally unique identifier', - from_profile integer not null comment 'who the message is from' references profile (id), - to_profile integer not null comment 'who the message is to' references profile (id), - content varchar(140) comment 'message content', - rendered text comment 'HTML version of the content', - url varchar(255) comment 'URL of any attachment (image, video, bookmark, whatever)', - created datetime not null comment 'date this record was created', - modified timestamp comment 'date this record was modified', - source varchar(32) comment 'source of comment, like "web", "im", or "clientname"', - - index message_from_idx (from_profile), - index message_to_idx (to_profile), - index message_created_idx (created) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table notice_inbox ( - - user_id integer not null comment 'user receiving the message' references user (id), - notice_id integer not null comment 'notice received' references notice (id), - created datetime not null comment 'date the notice was created', - source tinyint default 1 comment 'reason it is in the inbox; 1=subscription', - - constraint primary key (user_id, notice_id), - index notice_inbox_notice_id_idx (notice_id) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table profile_tag ( - tagger integer not null comment 'user making the tag' references user (id), - tagged integer not null comment 'profile tagged' references profile (id), - tag varchar(64) not null comment 'hash tag associated with this notice', - modified timestamp comment 'date the tag was added', - - constraint primary key (tagger, tagged, tag), - index profile_tag_modified_idx (modified), - index profile_tag_tagger_tag_idx (tagger, tag) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; - -create table profile_block ( - - blocker integer not null comment 'user making the block' references user (id), - blocked integer not null comment 'profile that is blocked' references profile (id), - modified timestamp comment 'date of blocking', - - constraint primary key (blocker, blocked) - -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; diff --git a/_darcs/pristine/db/laconica_pg.sql b/_darcs/pristine/db/laconica_pg.sql deleted file mode 100644 index e784bb1699..0000000000 --- a/_darcs/pristine/db/laconica_pg.sql +++ /dev/null @@ -1,329 +0,0 @@ -/* local and remote users have profiles */ - -create table profile ( - id serial primary key /* comment 'unique identifier' */, - nickname varchar(64) not null /* comment 'nickname or username' */, - fullname varchar(255) /* comment 'display name' */, - profileurl varchar(255) /* comment 'URL, cached so we dont regenerate' */, - homepage varchar(255) /* comment 'identifying URL' */, - bio varchar(140) /* comment 'descriptive biography' */, - location varchar(255) /* comment 'physical location' */, - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - textsearch tsvector -); -create index profile_nickname_idx on profile using btree(nickname); - -create table avatar ( - profile_id integer not null /* comment 'foreign key to profile table' */ references profile (id) , - original integer default 0 /* comment 'uploaded by user or generated?' */, - width integer not null /* comment 'image width' */, - height integer not null /* comment 'image height' */, - mediatype varchar(32) not null /* comment 'file type' */, - filename varchar(255) null /* comment 'local filename, if local' */, - url varchar(255) unique /* comment 'avatar location' */, - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key(profile_id, width, height) -); -create index avatar_profile_id_idx on avatar using btree(profile_id); - -create table sms_carrier ( - id serial primary key /* comment 'primary key for SMS carrier' */, - name varchar(64) unique /* comment 'name of the carrier' */, - email_pattern varchar(255) not null /* comment 'sprintf pattern for making an email address from a phone number' */, - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified ' */ -); - -/* local users */ - -create table "user" ( - id integer primary key /* comment 'foreign key to profile table' */ references profile (id) , - nickname varchar(64) unique /* comment 'nickname or username, duped in profile' */, - password varchar(255) /* comment 'salted password, can be null for OpenID users' */, - email varchar(255) unique /* comment 'email address for password recovery etc.' */, - incomingemail varchar(255) unique /* comment 'email address for post-by-email' */, - emailnotifysub integer default 1 /* comment 'Notify by email of subscriptions' */, - emailnotifyfav integer default 1 /* comment 'Notify by email of favorites' */, - emailnotifynudge integer default 1 /* comment 'Notify by email of nudges' */, - emailmicroid integer default 1 /* comment 'whether to publish email microid' */, - language varchar(50) /* comment 'preferred language' */, - timezone varchar(50) /* comment 'timezone' */, - emailpost integer default 1 /* comment 'Post by email' */, - jabber varchar(255) unique /* comment 'jabber ID for notices' */, - jabbernotify integer default 0 /* comment 'whether to send notices to jabber' */, - jabberreplies integer default 0 /* comment 'whether to send notices to jabber on replies' */, - jabbermicroid integer default 1 /* comment 'whether to publish xmpp microid' */, - updatefrompresence integer default 0 /* comment 'whether to record updates from Jabber presence notices' */, - sms varchar(64) unique /* comment 'sms phone number' */, - carrier integer /* comment 'foreign key to sms_carrier' */ references sms_carrier (id) , - smsnotify integer default 0 /* comment 'whether to send notices to SMS' */, - smsreplies integer default 0 /* comment 'whether to send notices to SMS on replies' */, - smsemail varchar(255) /* comment 'built from sms and carrier' */, - uri varchar(255) unique /* comment 'universally unique identifier, usually a tag URI' */, - autosubscribe integer default 0 /* comment 'automatically subscribe to users who subscribe to us' */, - urlshorteningservice varchar(50) default 'ur1.ca' /* comment 'service to use for auto-shortening URLs' */, - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ - -); -create index user_smsemail_idx on "user" using btree(smsemail); - -/* remote people */ - -create table remote_profile ( - id integer primary key /* comment 'foreign key to profile table' */ references profile (id) , - uri varchar(255) unique /* comment 'universally unique identifier, usually a tag URI' */, - postnoticeurl varchar(255) /* comment 'URL we use for posting notices' */, - updateprofileurl varchar(255) /* comment 'URL we use for updates to this profile' */, - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ -); - -create table subscription ( - subscriber integer not null /* comment 'profile listening' */, - subscribed integer not null /* comment 'profile being listened to' */, - token varchar(255) /* comment 'authorization token' */, - secret varchar(255) /* comment 'token secret' */, - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key (subscriber, subscribed) -); -create index subscription_subscriber_idx on subscription using btree(subscriber); -create index subscription_subscribed_idx on subscription using btree(subscribed); - -create table notice ( - - id serial primary key /* comment 'unique identifier' */, - profile_id integer not null /* comment 'who made the update' */ references profile (id) , - uri varchar(255) unique /* comment 'universally unique identifier, usually a tag URI' */, - content varchar(140) /* comment 'update content' */, - rendered text /* comment 'HTML version of the content' */, - url varchar(255) /* comment 'URL of any attachment (image, video, bookmark, whatever)' */, - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - reply_to integer /* comment 'notice replied to (usually a guess)' */ references notice (id) , - is_local integer default 0 /* comment 'notice was generated by a user' */, - source varchar(32) /* comment 'source of comment, like "web", "im", or "clientname"' */ - -/* FULLTEXT(content) */ -); -create index notice_profile_id_idx on notice using btree(profile_id); -create index notice_created_idx on notice using btree(created); - -create table notice_source ( - code varchar(32) primary key not null /* comment 'source code' */, - name varchar(255) not null /* comment 'name of the source' */, - url varchar(255) not null /* comment 'url to link to' */, - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ -); - -create table reply ( - - notice_id integer not null /* comment 'notice that is the reply' */ references notice (id) , - profile_id integer not null /* comment 'profile replied to' */ references profile (id) , - modified timestamp not null default 'now' /* comment 'date this record was modified' */, - replied_id integer /* comment 'notice replied to (not used, see notice.reply_to)' */, - - primary key (notice_id, profile_id) - -); -create index reply_notice_id_idx on reply using btree(notice_id); -create index reply_profile_id_idx on reply using btree(profile_id); -create index reply_replied_id_idx on reply using btree(replied_id); - -create table fave ( - - notice_id integer not null /* comment 'notice that is the favorite' */ references notice (id), - user_id integer not null /* comment 'user who likes this notice' */ references "user" (id) , - modified timestamp not null /* comment 'date this record was modified' */, - - primary key (notice_id, user_id) - -); -create index fave_notice_id_idx on fave using btree(notice_id); -create index fave_user_id_idx on fave using btree(user_id); -create index fave_modified_idx on fave using btree(modified); - -/* tables for OAuth */ - -create table consumer ( - consumer_key varchar(255) primary key /* comment 'unique identifier, root URL' */, - seed char(32) not null /* comment 'seed for new tokens by this consumer' */, - - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ -); - -create table token ( - consumer_key varchar(255) not null /* comment 'unique identifier, root URL' */ references consumer (consumer_key), - tok char(32) not null /* comment 'identifying value' */, - secret char(32) not null /* comment 'secret value' */, - type integer not null default 0 /* comment 'request or access' */, - state integer default 0 /* comment 'for requests; 0 = initial, 1 = authorized, 2 = used' */, - - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key (consumer_key, tok) -); - -create table nonce ( - consumer_key varchar(255) not null /* comment 'unique identifier, root URL' */, - tok char(32) not null /* comment 'identifying value' */, - nonce char(32) not null /* comment 'nonce' */, - ts timestamp not null /* comment 'timestamp sent' */, - - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key (consumer_key, tok, nonce), - foreign key (consumer_key, tok) references token (consumer_key, tok) -); - -/* One-to-many relationship of user to openid_url */ - -create table user_openid ( - canonical varchar(255) primary key /* comment 'Canonical true URL' */, - display varchar(255) not null unique /* comment 'URL for viewing, may be different from canonical' */, - user_id integer not null /* comment 'user owning this URL' */ references "user" (id) , - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ - -); -create index user_openid_user_id_idx on user_openid using btree(user_id); - -/* These are used by JanRain OpenID library */ - -create table oid_associations ( - server_url varchar(2047), - handle varchar(255), - secret bytea, - issued integer, - lifetime integer, - assoc_type varchar(64), - primary key (server_url, handle) -); - -create table oid_nonces ( - server_url varchar(2047), - "timestamp" integer, - salt character(40), - unique (server_url, "timestamp", salt) -); - -create table confirm_address ( - code varchar(32) not null primary key /* comment 'good random code' */, - user_id integer not null /* comment 'user who requested confirmation' */ references "user" (id), - address varchar(255) not null /* comment 'address (email, Jabber, SMS, etc.)' */, - address_extra varchar(255) not null default '' /* comment 'carrier ID, for SMS' */, - address_type varchar(8) not null /* comment 'address type ("email", "jabber", "sms")' */, - claimed timestamp /* comment 'date this was claimed for queueing' */, - sent timestamp /* comment 'date this was sent for queueing' */, - modified timestamp /* comment 'date this record was modified' */ -); - -create table remember_me ( - code varchar(32) not null primary key /* comment 'good random code' */, - user_id integer not null /* comment 'user who is logged in' */ references "user" (id), - modified timestamp /* comment 'date this record was modified' */ -); - -create table queue_item ( - - notice_id integer not null /* comment 'notice queued' */ references notice (id) , - transport varchar(8) not null /* comment 'queue for what? "email", "jabber", "sms", "irc", ...' */, - created timestamp not null /* comment 'date this record was created' */, - claimed timestamp /* comment 'date this item was claimed' */, - - primary key (notice_id, transport) - -); -create index queue_item_created_idx on queue_item using btree(created); - -/* Hash tags */ -create table notice_tag ( - tag varchar( 64 ) not null /* comment 'hash tag associated with this notice' */, - notice_id integer not null /* comment 'notice tagged' */ references notice (id) , - created timestamp not null /* comment 'date this record was created' */, - - primary key (tag, notice_id) -); -create index notice_tag_created_idx on notice_tag using btree(created); - -/* Synching with foreign services */ - -create table foreign_service ( - id int not null primary key /* comment 'numeric key for service' */, - name varchar(32) not null unique /* comment 'name of the service' */, - description varchar(255) /* comment 'description' */, - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */ -); - -create table foreign_user ( - id int not null /* comment 'unique numeric key on foreign service' */, - service int not null /* comment 'foreign key to service' */ references foreign_service(id) , - uri varchar(255) not null unique /* comment 'identifying URI' */, - nickname varchar(255) /* comment 'nickname on foreign service' */, - user_id int /* comment 'link to user on this system, if exists' */ references "user" (id), - credentials varchar(255) /* comment 'authc credentials, typically a password' */, - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - - primary key (id, service) -); -create index foreign_user_user_id_idx on foreign_user using btree(user_id); - -create table foreign_subscription ( - service int not null /* comment 'service where relationship happens' */ references foreign_service(id) , - subscriber int not null /* comment 'subscriber on foreign service' */ , - subscribed int not null /* comment 'subscribed user' */ , - created timestamp not null /* comment 'date this record was created' */, - - primary key (service, subscriber, subscribed) -); -create index foreign_subscription_subscriber_idx on foreign_subscription using btree(subscriber); -create index foreign_subscription_subscribed_idx on foreign_subscription using btree(subscribed); - -create table invitation ( - code varchar(32) not null primary key /* comment 'random code for an invitation' */, - user_id int not null /* comment 'who sent the invitation' */ references "user" (id), - address varchar(255) not null /* comment 'invitation sent to' */, - address_type varchar(8) not null /* comment 'address type ("email", "jabber", "sms") '*/, - created timestamp not null /* comment 'date this record was created' */ - -); -create index invitation_address_idx on invitation using btree(address,address_type); -create index invitation_user_id_idx on invitation using btree(user_id); - -create table message ( - - id serial primary key /* comment 'unique identifier' */, - uri varchar(255) unique /* comment 'universally unique identifier' */, - from_profile integer not null /* comment 'who the message is from' */ references profile (id), - to_profile integer not null /* comment 'who the message is to' */ references profile (id), - content varchar(140) /* comment 'message content' */, - rendered text /* comment 'HTML version of the content' */, - url varchar(255) /* comment 'URL of any attachment (image, video, bookmark, whatever)' */, - created timestamp not null /* comment 'date this record was created' */, - modified timestamp /* comment 'date this record was modified' */, - source varchar(32) /* comment 'source of comment, like "web", "im", or "clientname"' */ - -); -create index message_from_idx on message using btree(from_profile); -create index message_to_idx on message using btree(to_profile); -create index message_created_idx on message using btree(created); - -/* Textsearch stuff */ - -create index textsearch_idx on profile using gist(textsearch); -create index noticecontent_idx on notice using gist(to_tsvector('english',content)); -create trigger textsearchupdate before insert or update on profile for each row -execute procedure tsvector_update_trigger(textsearch, 'pg_catalog.english', nickname, fullname, location, bio, homepage); - diff --git a/_darcs/pristine/doc/about b/_darcs/pristine/doc/about deleted file mode 100644 index 3036a51b96..0000000000 --- a/_darcs/pristine/doc/about +++ /dev/null @@ -1,10 +0,0 @@ -%%site.name%% is a -[micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service -based on the Free Software [Laconica](http://laconi.ca/) tool. - -If you [register](%%action.register%%) for an account, -you can post small (140 chars or less) text notices -about yourself, where you are, what you're doing, or practically -anything you want. You can also subscribe to the notices of your -friends, or other people you're interested in, and follow them on the -Web or in an [RSS](http://en.wikipedia.org/wiki/RSS) feed. diff --git a/_darcs/pristine/doc/contact b/_darcs/pristine/doc/contact deleted file mode 100644 index a8efc456a1..0000000000 --- a/_darcs/pristine/doc/contact +++ /dev/null @@ -1,24 +0,0 @@ -There are a number of options for getting in contact with responsible -people for %%site.name%%. - -Post a notice -------------- - -If you have a question about how to do something, just post a notice -with your question. People here like to answer messages. Watch the -[public timeline](%%action.public%%) for answers; they'll usually start -with "@" plus your user name. - -Bugs ----- - -If you think you've found a bug in the [Laconica](http://laconi.ca/) software, -or if there's a new feature you'd like to see, add it into the [Laconica bug database](http://laconi.ca/PITS/HomePage). Don't forget to check the list of -existing bugs to make sure it hasn't already been reported! - -Email ------ - -You can reach the responsible party for this server at [%%site.email%%](mailto:%%site.email%%). - - diff --git a/_darcs/pristine/doc/faq b/_darcs/pristine/doc/faq deleted file mode 100644 index 5699f3635d..0000000000 --- a/_darcs/pristine/doc/faq +++ /dev/null @@ -1,42 +0,0 @@ -These are some *Frequently Asked Questions* about this service, with -some answers. - -What is %%site.name%%? ----------------------- - -%%site.name%% is a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service. -You can use it to write short notices about yourself, where you are, -and what you're doing, and those notices will be sent to all your friends -and fans. - -How is %%site.name%% different from Twitter, Jaiku, Pownce, Plurk, others? --------------------------------------------------------------------------- - -%%site.name%% is an [Open Network Service](http://opendefinition.org/osd). Our main -goal is to provide a fair and transparent service that preserves users' autonomy. In -particular, all the software used for %%site.name%% is [Free Software](http://en.wikipedia.org/wiki/Free_Software), and all the data is available -under the [%%license.title%%](%%license.url%%) license, making it Open Data. - -The software also implements the [OpenMicroBlogging](http://openmicroblogging.org/) protocol, meaning that you can have friends on other microblogging services -that can receive your notices. - -The goal here is *autonomy* -- you deserve the right to manage your own on-line -presence. If you don't like how %%site.name%% works, you can take your data and the source code and set up your own server (or move your account to another one). - -Where is feature X? -------------------- - -The software we run, [Laconica](http://laconi.ca/), is still in its early stages, -and many features people expect from microblogging sites are not yet implemented. Some important ones that are expected "soon": - -* More [AJAX](http://en.wikipedia.org/wiki/AJAX)-y interface -* Maps -* Cross-post to Pownce, Jaiku, etc. -* Pull messages from Twitter, Pownce, Jaiku, etc. -* [Facebook](http://www.facebook.com/) integration -* Image, video, audio notices - -There is [a list of bugs and features](http://laconi.ca/trac/) that you may find -interesting. New ideas or complaints are very welcome. - - diff --git a/_darcs/pristine/doc/help b/_darcs/pristine/doc/help deleted file mode 100644 index 5b60072e26..0000000000 --- a/_darcs/pristine/doc/help +++ /dev/null @@ -1,29 +0,0 @@ -%%site.name%% is a **microblogging service**. Users post short (140 -character) notices which are broadcast to their friends and fans using -the Web, RSS, or instant messages. - -If you'd like to try it out, first [register](%%action.register%%) a new account. -Then, on the [public timeline](%%action.public%%), enter your message into -the textbox at the top of the page, and click "Send". It will go out on the -public timeline and to anyone who is subscribed to your notices (probably nobody, -at first). - -To subscribe to other people's notifications, go to their profile page -and click the "subscribe" button. They'll get a notice that you're now -subscribed to their notifications, and, who knows?, they might subscribe -back. - -More help ---------- - -Here are some documents that you might find helpful in understanding -%%site.name%% and how to use it. - -* [About](%%doc.about%%) - an overview of the service -* [FAQ](%%doc.faq%%) - frequently-asked questions about %%site.name%% -* [Contact](%%doc.contact%%) - who to contact with questions about the service -* [IM](%%doc.im%%) - using the instant-message (IM) features of %%site.name%% -* [OpenID](%%doc.openid%%) - what OpenID is and how to use it with this service -* [OpenMicroBlogging](%%doc.openmublog%%) - subscribing to remote users -* [Privacy](%%doc.privacy%%) - %%site.name%%'s privacy policy -* [Source](%%doc.source%%) - How to get the Laconica source code diff --git a/_darcs/pristine/doc/im b/_darcs/pristine/doc/im deleted file mode 100644 index da07f9fe7b..0000000000 --- a/_darcs/pristine/doc/im +++ /dev/null @@ -1,35 +0,0 @@ -You can post messages to %%site.name%% using a [Jabber](http://jabber.org/) client -on your computer, mobile phone, or other platform. ([GTalk](http://talk.google.com/), -Google's Jabber program, will also work.) This can be a convenient way to keep -up with your friends on %%site.name%%. - -If you don't already have a Jabber account, you can use GTalk or one of the other -[public Jabber services](http://www.jabber.org/im-services). You'll probably also -need an IM client like [Pidgin](http://www.pidgin.im/). - -Managing your IM settings -------------------------- - -Use the [IM settings](%%action.imsettings%%) page to set your IM preferences. You can add or change your Jabber address and set the flags for Jabber update. - -When you add or change your address, you'll receive a message from **%%xmpp.user%%@%%xmpp.server%%** asking you to confirm the change. (You may need to -add %%xmpp.user%%@%%xmpp.server%% to your buddy list *before* changing your IM -settings; this is definitely true for GTalk.) - -Sending updates ---------------- - -You send updates by sending messages to %%xmpp.user%%@%%xmpp.server%%. Messages -should be less than 140 characters; longer messages will be truncated. - -Commands --------- - -You can do some minor management of your account through Jabber. These are the -currently-implemented commands: - -* **on**: Turn on notifications. You'll receive copies of messages by people - you subscribe to. -* **off**: Turn off notifications. You'll no longer receive Jabber - notifications. - diff --git a/_darcs/pristine/doc/openid b/_darcs/pristine/doc/openid deleted file mode 100644 index c741e36741..0000000000 --- a/_darcs/pristine/doc/openid +++ /dev/null @@ -1,11 +0,0 @@ -%%site.name%% supports the [OpenID](http://openid.net/) standard for single signon between Web sites. OpenID lets you log into many different Web sites without using a different password for each. (See [Wikipedia's OpenID article](http://en.wikipedia.org/wiki/OpenID) for more information.) - -If you already have an account on %%site.name%%, you can [login](%%action.login%%) with your username and password as usual. -To use OpenID in the future, you can [add an OpenID to your account](%%action.openidsettings%%) after you have logged in normally. - -There are many [Public OpenID providers](http://wiki.openid.net/Public_OpenID_providers), and you may already have an OpenID-enabled account on another service. - -* On wikis: If you have an account on an OpenID-enabled wiki, like [Wikitravel](http://wikitravel.org/), [wikiHow](http://www.wikihow.com/), [Vinismo](http://vinismo.com/), [AboutUs](http://aboutus.org/) or [Keiki](http://kei.ki/), you can log in to %%site.name%% by entering the **full URL** of your user page on that other wiki in the box above. For example, *http://kei.ki/en/User:Evan*. -* [Yahoo!](http://openid.yahoo.com/) : If you have an account with Yahoo!, you can log in to this site by entering your Yahoo!-provided OpenID in the box above. Yahoo! OpenID URLs have the form *https://me.yahoo.com/yourusername*. -* [AOL](http://dev.aol.com/aol-and-63-million-openids) : If you have an account with [AOL](http://www.aol.com/), like an [AIM](http://www.aim.com/) account, you can log in to %%site.name%% by entering your AOL-provided OpenID in the box above. AOL OpenID URLs have the form *http://openid.aol.com/yourusername*. Your username should be all lowercase, no spaces. -* [Blogger](http://bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html), [Wordpress.com](http://faq.wordpress.com/2007/03/06/what-is-openid/), [LiveJournal](http://www.livejournal.com/openid/about.bml), [Vox](http://bradfitz.vox.com/library/post/openid-for-vox.html) : If you have a blog on any of these services, enter your blog URL in the box above. For example, *http://yourusername.blogspot.com/*, *http://yourusername.wordpress.com/*, *http://yourusername.livejournal.com/*, or *http://yourusername.vox.com/*. diff --git a/_darcs/pristine/doc/openmicroblogging.txt b/_darcs/pristine/doc/openmicroblogging.txt deleted file mode 100644 index a0df04035e..0000000000 --- a/_darcs/pristine/doc/openmicroblogging.txt +++ /dev/null @@ -1,325 +0,0 @@ -=============================== -OpenMicroBlogging specification -=============================== - -:Author: Evan Prodromou (Control Yourself, Inc.) -:Contact: evan@controlezvous.ca -:Revision: 0.1.1 -:Date: 2008-07-07 -:Copyright: To the extent possible under law, Control Yourself, Inc - has waived all copyright, moral rights, database rights, - and any other rights that might be asserted over - The OpenMicroBlogging specification. - -Purpose -======= - -To allow users of one microblogging service to publish notices to -users of another service, given the other users' permission. - -Enabling technologies -===================== - -Depends on OAuth 1.0, OAuth Discovery 1.0, YADIS 1.0. - -We piggy-back additional information onto these protocols to pass -microblogging information back and forth. - -Terminology -=========== - -microblogging service - undefined. -user - undefined. -listen - to allow a remote service to send notices to the user's local - service on a remote user's behalf. -listener - the person listening. -listenee - the user sending notices. -remote service - the listenee's microblogging service. -local service - the listener's microblogging service. -profile URL - "home" URL for the listener, typically their profile page on a - microblogging site. -nickname - An alphanumeric short name for a person, 1-64 characters. -identifier URI - A globally unique and unchanging identifying URI for a user. - Need not be an URL. [*]_ -notice URI - A unique and unchanging identifier for a notice. Need not be an - URL. [*]_ - -.. [*] May be the profile URL, if it's defined not to change or be - re-used. The profile URL of some services includes the nickname, - and some let the user change his/her nickname. This user's profile - URL may change from 'http://example.net/~john' to - 'http://example.net/~johnsmith' A tag URI, like - 'tag:example.net,2008:user:1' may be more appropriate here. -.. [*] IWBNI the notice URI is used everywhere the notice is - published; for example, in any RSS feeds. - -Initiation -========== - -The user submits their profile URL [*]_ to the remote service somehow -- -for example, with an HTML form on the remote service's Web site. - -.. [*] For OAuth Discovery, this is the "protected resource". It may - be more correct that the protected resource is the postNotice URL - (see below), but the listener will be more familiar with their own - profile URL. So there will have to be discovery of the postNotice - URL anyways, and it might as well all be done in one step. - -Discovery -========= - -The remote service recovers a YADIS document from the profile URL, as -described in OAuth Discovery. - -The request token service must have a LocalID associated with it, -containing the identifier URI for the listener. - -The following two extra services must be included in the YADIS -document, with accompanying URIs. - -http://openmicroblogging.org/protocol/0.1/postNotice - Post Notice URL, as defined below. - -http://openmicroblogging.org/protocol/0.1/updateProfile - Update Profile URL, as defined below. - -If any of the URIs is unavailable, the remote service MUST stop -processing. - -Authorization -============= - -The remote service must go through the OAuth 1.0 dance to get -authorization to post notices and update profiles. - -In all OAuth, the consumer key should be the root URL for the -microblogging service, if available. The secret should be the blank -string (''), unless the remote server and local service have negotiated -another key. Such negotiation is out-of-scope for this document, and we -assume an "open" network of microblogging services. But if you want to -have that kind of network, do it with this key. - -The remote service MUST do OAuth for every new listener, regardless of -whether they've already received authorization for posting to the -given postNotice URL. See `Posting a Notice`_ below. - -Request token -------------- - -The remote service uses the defined requestToken URL to get a request -token. - -In the request token HTTP request, the remote service MUST send the -following additional parameter(s): - -omb_version - 'http://openmicroblogging.org/protocol/0.1' -omb_listener - The identifier URI for the listener. - -In the results for the request token request, the local service MUST -send the following additional parameters: - -omb_version - 'http://openmicroblogging.org/protocol/0.1' - -User authorization ------------------- - -In requesting user authorization, the remote service must send the -following parameters: - -omb_version - 'http://openmicroblogging.org/protocol/0.1'. -omb_listener - The identifier URI for the listener. -omb_listenee - The identifier URI for the listenee. -omb_listenee_profile - The profile URL of the listenee. -omb_listenee_nickname - The nickname of the listenee. -omb_listenee_license - The default license URL for the listenee's stream. Typically the - URL of a Creative Commons license, with the Attribution license - being heavily encouraged. CC0 quitclaim also pretty good. The - local service MAY reject listenees if their licenses are - incompatible with the service. - -The remote service should send as many of the following parameters as -possible. This will help the user decide if they really want to allow -the listening to happen, and allow the local service to store a copy -of the listenee's profile. - -omb_listenee_fullname - The full name of the listenee. Up to 255 chars. -omb_listenee_homepage - The home page of the listenee (may be distinct from the profile - URL). -omb_listenee_bio - A brief biography of the listenee; less than 140 chars. -omb_listenee_location - Physical location of the listenee; less that 255 chars. No fixed - structure, but "Locality, Region, Country" or "Locality, Country" - or "Locality, Region" recommended. -omb_listenee_avatar - URL of a 96px by 96px image in PNG, GIF or JPEG format representing - the listenee. - -The local service, in a successful response, must return the -following additional parameters: - -omb_version - 'http://openmicroblogging.org/protocol/0.1'. -omb_listener_nickname - A nickname for the listener. -omb_listener_profile - The profile URL for the listener, possibly cleaned up or - canonicalized. - -It should return as many of the following as possible: - -omb_listener_fullname - The full name of the listener. Up to 255 chars. -omb_listener_homepage - The home page of the listener (may be distinct from the profile - URL). -omb_listener_bio - A brief biography of the listener; less than 140 chars. -omb_listener_location - Physical location of the listener; less that 255 chars. No fixed - structure, but "Locality, Region, Country" or "Locality, Country" - or "Locality, Region" recommended. -omb_listener_avatar - URL of a 96px by 96px image in PNG, GIF or JPEG format representing - the listener. - -This will allow the remote service to display information about the -listener in the listenee's "listeners" or "subscribers" list. - -Access token ------------- - -The access token step of the OAuth protocol requires no additional -parameters. - -Posting a Notice -================ - -To post a notice to the local service, the remote service sends an HTTP -POST message to the postNotice URL discovered above. The message must -use OAuth authorization. The message must also include the following -parameters: - -omb_version - 'http://openmicroblogging.org/protocol/0.1'. -omb_listenee - The identifier URI for the listenee. -omb_notice - The notice URI. -omb_notice_content - The content of the notice. No maximum, but 140 chars is recommended. - -The message may include the following parameters: - -omb_notice_url - The URL of the notice, if the notice is retrievable. -omb_notice_license - The URL of the license for the notice, if different from the - listenee's default license. -omb_seealso - URL of additional content for the notice; for example, an image, - video, or audio file. -omb_seealso_disposition - One of 'link' or 'inline', to recommend how the extra data should - be shown. Default 'link'. -omb_seealso_mediatype - Internet Media Type of the see-also data. Advisory, probably - shouldn't be trusted. -omb_seealso_license - License for the attached data. May be distinct from the notice's - license (if they're passing along someone else's content). - -The local service should include the following parameters in its -response: - -omb_version - 'http://openmicroblogging.org/protocol/0.1'. - -The local service makes no guarantees about the delivery of the notice -to anyone. - -The remote service SHOULD NOT send a message with the same notice URL -to the same postNotice URL more than once. [*]_ If the request returns -a 403 Unauthorized message, the remote service SHOULD NOT post -messages to the same URL again with the same listenee, until another -listener has gone through the OAuth dance. [*]_ - -.. [*] A half-assed optimization. A local service may have a lot of - listeners listening to the same listenee. It would be pointless to - have the remote service post the same notice 100 times to the same - service. However, if the local service wants fine-grained control, - it can have a different postNotice URL for each listener. -.. [*] If there's one postNotice URL per listener, the 403 message - means the listener has told the local service not to allow posting - any more ("unsubscribed"). If there's one postNotice URL per local - service, it means that the count of listeners has dropped to 0. - -Updating a profile -================== - -If the listenee's profile information changes, the remote service MAY -send an HTTP POST message to to the updateProfile URL to tell the -local service about the change. - -The message must use OAuth authorization. The message must also -include the following parameters: - -omb_version - 'http://openmicroblogging.org/protocol/0.1'. -omb_listenee - The identifier URI for the listenee. - -The message may include any of the following parameters: - -omb_listenee_profile - The profile URL of the listenee. -omb_listenee_nickname - The nickname of the listenee. -omb_listenee_license - The default license URL for the listenee's stream. A change in the - default license only applies to future notices; notices previous - to the update SHOULD be treated as under the old license. -omb_listenee_fullname - The full name of the listenee. Up to 255 chars. -omb_listenee_homepage - The home page of the listenee. -omb_listenee_bio - A brief biography of the listenee; less than 140 chars. -omb_listenee_location - Physical location of the listenee; less that 255 chars. -omb_listenee_avatar - URL of a 96px by 96px image in PNG, GIF or JPEG format representing - the listenee. - -Missing parameters should not be construed to mean that the profile -field has been blanked. The remote service MUST set the parameter to -an empty string to show that the field is blank. - -References -========== - -* OAuth: http://oauth.net/ -* OAuth Discovery: http://oauth.net/discovery/1.0 -* XRDS Simple: http://xrds-simple.net/core/1.0/ \ No newline at end of file diff --git a/_darcs/pristine/doc/openmublog b/_darcs/pristine/doc/openmublog deleted file mode 100644 index 6e3abee42e..0000000000 --- a/_darcs/pristine/doc/openmublog +++ /dev/null @@ -1,25 +0,0 @@ -[OpenMicroBlogging](http://openmicroblogging.org/) is a protocol that -lets users of one [microblogging](http://en.wikipedia.org/wiki/microblogging) service -subscribe to notices by users of another service. The protocol, based on -[OAuth](http://oauth.net/), is open and free, and doesn't depend on any -central authority to maintain the federated microblogs. - -The [Laconica](http://laconi.ca/) software that runs %%site.name%% supports -OpenMicroBlogging 0.1. Anyone can make a new installation of Laconica on their -own servers, and users of that new installation can subscribe to notices from -%%site.name%%. - -Remote subscription -------------------- - -If you have an account on a remote site that supports OpenMicroBlogging, and you -want to subscribe to the notices of a user on this site, click on the "Subscribe" -link under their avatar on their profile page. This should take you to the -[remote subscription](%%action.remotesubscribe%%) page. Make sure that you've got the -right nickname registered, and enter your profile URL on the other microblogging -service. - -You'll be taken to your microblogging service, where you'll be asked to confirm the -subscription. When you confirm, your service will receive new notifications from -the user on %%site.name%%, and your service will forward them to you (using IM, SMS, -the Web, or whatever else). diff --git a/_darcs/pristine/doc/privacy b/_darcs/pristine/doc/privacy deleted file mode 100644 index 90c7b3c7fb..0000000000 --- a/_darcs/pristine/doc/privacy +++ /dev/null @@ -1,45 +0,0 @@ -This document outlines this service's respect for your personal -privacy as a user of the service. - -- Almost all the text and files that users upload to this site is - available under the site license (see the license block at the bottom - of this page). Users agree to the license when they register to use - the site for the first time. Typically that means that the data can - be copied far and wide, for commercial and non-commercial purposes, - and in modified or unmodified form. If you're not OK with that, - don't use the service. -- The following data items are considered *private data* that won't be - shared with other users, business partners, or the public at large: - * your password - * your email address - * your IM address (AIM, Jabber, or other instant messaging address) - * your phone number - * your "private messages" - * your login credentials (username and password) for other services (Twitter, Facebook, etc.) -- Some private data may be published in aggregate, e.g. "30% of our - users are registered with Hotmail addresses." -- Your notices (including files) can be downloaded and re-used by - other services, either one-by-one or in bulk as - [RSS](http://en.wikipedia.org/wiki/RSS) files. -- Your profile information (including subscriptions and avatars) can be - downloaded and re-used by other services, either scraped from the HTML - interface or in bulk as [FOAF](http://en.wikipedia.org/wiki/FOAF) files. -- Your notices will be forwarded to users who subscribe to them, - including users on another microblogging service. -- Your profile information will be sent to microblogging services for - users who subscribe to you or to whom you subscribe. -- Based on your email preferences, you may receive automated email - messages for important system events, such as when others subscribe - to your notices. -- Based on your email preferences, you may receive an email - newsletter. You can opt out of the newsletter if you don't want to - receive it. -- In urgent situations, administrators may send you email directly to - your registered email address, even if you've requested no notices - or newsletter. *Administrators will use digitally-signed email.* -- This service will comply with court orders to turn over your private - information. - - - - diff --git a/_darcs/pristine/doc/source b/_darcs/pristine/doc/source deleted file mode 100644 index 83debbe539..0000000000 --- a/_darcs/pristine/doc/source +++ /dev/null @@ -1,12 +0,0 @@ -This service uses a Free microblogging tool called **Laconica**. -Laconica is available under the [GNU Affero General Public License -Version 3.0](http://www.fsf.org/licensing/licenses/agpl-3.0.html), a -Free Software license for network services. - -You can get a copy of the software from the -[Laconica](http://laconi.ca/) main site. The version of the software -that runs on *this* site is unmodified from that version. The site -also depends on certain libraries and other software; you can get -those at the Laconica site, too. - - diff --git a/_darcs/pristine/extlib/Apache2.0.txt b/_darcs/pristine/extlib/Apache2.0.txt deleted file mode 100644 index d645695673..0000000000 --- a/_darcs/pristine/extlib/Apache2.0.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/_darcs/pristine/extlib/Auth/OpenID.php b/_darcs/pristine/extlib/Auth/OpenID.php deleted file mode 100644 index 6a6e54f8b7..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID.php +++ /dev/null @@ -1,552 +0,0 @@ - - * @copyright 2005-2008 Janrain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - */ - -/** - * The library version string - */ -define('Auth_OpenID_VERSION', '2.1.1'); - -/** - * Require the fetcher code. - */ -require_once "Auth/Yadis/PlainHTTPFetcher.php"; -require_once "Auth/Yadis/ParanoidHTTPFetcher.php"; -require_once "Auth/OpenID/BigMath.php"; -require_once "Auth/OpenID/URINorm.php"; - -/** - * Status code returned by the server when the only option is to show - * an error page, since we do not have enough information to redirect - * back to the consumer. The associated value is an error message that - * should be displayed on an HTML error page. - * - * @see Auth_OpenID_Server - */ -define('Auth_OpenID_LOCAL_ERROR', 'local_error'); - -/** - * Status code returned when there is an error to return in key-value - * form to the consumer. The caller should return a 400 Bad Request - * response with content-type text/plain and the value as the body. - * - * @see Auth_OpenID_Server - */ -define('Auth_OpenID_REMOTE_ERROR', 'remote_error'); - -/** - * Status code returned when there is a key-value form OK response to - * the consumer. The value associated with this code is the - * response. The caller should return a 200 OK response with - * content-type text/plain and the value as the body. - * - * @see Auth_OpenID_Server - */ -define('Auth_OpenID_REMOTE_OK', 'remote_ok'); - -/** - * Status code returned when there is a redirect back to the - * consumer. The value is the URL to redirect back to. The caller - * should return a 302 Found redirect with a Location: header - * containing the URL. - * - * @see Auth_OpenID_Server - */ -define('Auth_OpenID_REDIRECT', 'redirect'); - -/** - * Status code returned when the caller needs to authenticate the - * user. The associated value is a {@link Auth_OpenID_ServerRequest} - * object that can be used to complete the authentication. If the user - * has taken some authentication action, use the retry() method of the - * {@link Auth_OpenID_ServerRequest} object to complete the request. - * - * @see Auth_OpenID_Server - */ -define('Auth_OpenID_DO_AUTH', 'do_auth'); - -/** - * Status code returned when there were no OpenID arguments - * passed. This code indicates that the caller should return a 200 OK - * response and display an HTML page that says that this is an OpenID - * server endpoint. - * - * @see Auth_OpenID_Server - */ -define('Auth_OpenID_DO_ABOUT', 'do_about'); - -/** - * Defines for regexes and format checking. - */ -define('Auth_OpenID_letters', - "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); - -define('Auth_OpenID_digits', - "0123456789"); - -define('Auth_OpenID_punct', - "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"); - -if (Auth_OpenID_getMathLib() === null) { - Auth_OpenID_setNoMathSupport(); -} - -/** - * The OpenID utility function class. - * - * @package OpenID - * @access private - */ -class Auth_OpenID { - - /** - * Return true if $thing is an Auth_OpenID_FailureResponse object; - * false if not. - * - * @access private - */ - function isFailure($thing) - { - return is_a($thing, 'Auth_OpenID_FailureResponse'); - } - - /** - * Gets the query data from the server environment based on the - * request method used. If GET was used, this looks at - * $_SERVER['QUERY_STRING'] directly. If POST was used, this - * fetches data from the special php://input file stream. - * - * Returns an associative array of the query arguments. - * - * Skips invalid key/value pairs (i.e. keys with no '=value' - * portion). - * - * Returns an empty array if neither GET nor POST was used, or if - * POST was used but php://input cannot be opened. - * - * @access private - */ - function getQuery($query_str=null) - { - $data = array(); - - if ($query_str !== null) { - $data = Auth_OpenID::params_from_string($query_str); - } else if (!array_key_exists('REQUEST_METHOD', $_SERVER)) { - // Do nothing. - } else { - // XXX HACK FIXME HORRIBLE. - // - // POSTing to a URL with query parameters is acceptable, but - // we don't have a clean way to distinguish those parameters - // when we need to do things like return_to verification - // which only want to look at one kind of parameter. We're - // going to emulate the behavior of some other environments - // by defaulting to GET and overwriting with POST if POST - // data is available. - $data = Auth_OpenID::params_from_string($_SERVER['QUERY_STRING']); - - if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $str = file_get_contents('php://input'); - - if ($str === false) { - $post = array(); - } else { - $post = Auth_OpenID::params_from_string($str); - } - - $data = array_merge($data, $post); - } - } - - return $data; - } - - function params_from_string($str) - { - $chunks = explode("&", $str); - - $data = array(); - foreach ($chunks as $chunk) { - $parts = explode("=", $chunk, 2); - - if (count($parts) != 2) { - continue; - } - - list($k, $v) = $parts; - $data[$k] = urldecode($v); - } - - return $data; - } - - /** - * Create dir_name as a directory if it does not exist. If it - * exists, make sure that it is, in fact, a directory. Returns - * true if the operation succeeded; false if not. - * - * @access private - */ - function ensureDir($dir_name) - { - if (is_dir($dir_name) || @mkdir($dir_name)) { - return true; - } else { - $parent_dir = dirname($dir_name); - - // Terminal case; there is no parent directory to create. - if ($parent_dir == $dir_name) { - return true; - } - - return (Auth_OpenID::ensureDir($parent_dir) && @mkdir($dir_name)); - } - } - - /** - * Adds a string prefix to all values of an array. Returns a new - * array containing the prefixed values. - * - * @access private - */ - function addPrefix($values, $prefix) - { - $new_values = array(); - foreach ($values as $s) { - $new_values[] = $prefix . $s; - } - return $new_values; - } - - /** - * Convenience function for getting array values. Given an array - * $arr and a key $key, get the corresponding value from the array - * or return $default if the key is absent. - * - * @access private - */ - function arrayGet($arr, $key, $fallback = null) - { - if (is_array($arr)) { - if (array_key_exists($key, $arr)) { - return $arr[$key]; - } else { - return $fallback; - } - } else { - trigger_error("Auth_OpenID::arrayGet (key = ".$key.") expected " . - "array as first parameter, got " . - gettype($arr), E_USER_WARNING); - - return false; - } - } - - /** - * Replacement for PHP's broken parse_str. - */ - function parse_str($query) - { - if ($query === null) { - return null; - } - - $parts = explode('&', $query); - - $new_parts = array(); - for ($i = 0; $i < count($parts); $i++) { - $pair = explode('=', $parts[$i]); - - if (count($pair) != 2) { - continue; - } - - list($key, $value) = $pair; - $new_parts[$key] = urldecode($value); - } - - return $new_parts; - } - - /** - * Implements the PHP 5 'http_build_query' functionality. - * - * @access private - * @param array $data Either an array key/value pairs or an array - * of arrays, each of which holding two values: a key and a value, - * sequentially. - * @return string $result The result of url-encoding the key/value - * pairs from $data into a URL query string - * (e.g. "username=bob&id=56"). - */ - function httpBuildQuery($data) - { - $pairs = array(); - foreach ($data as $key => $value) { - if (is_array($value)) { - $pairs[] = urlencode($value[0])."=".urlencode($value[1]); - } else { - $pairs[] = urlencode($key)."=".urlencode($value); - } - } - return implode("&", $pairs); - } - - /** - * "Appends" query arguments onto a URL. The URL may or may not - * already have arguments (following a question mark). - * - * @access private - * @param string $url A URL, which may or may not already have - * arguments. - * @param array $args Either an array key/value pairs or an array of - * arrays, each of which holding two values: a key and a value, - * sequentially. If $args is an ordinary key/value array, the - * parameters will be added to the URL in sorted alphabetical order; - * if $args is an array of arrays, their order will be preserved. - * @return string $url The original URL with the new parameters added. - * - */ - function appendArgs($url, $args) - { - if (count($args) == 0) { - return $url; - } - - // Non-empty array; if it is an array of arrays, use - // multisort; otherwise use sort. - if (array_key_exists(0, $args) && - is_array($args[0])) { - // Do nothing here. - } else { - $keys = array_keys($args); - sort($keys); - $new_args = array(); - foreach ($keys as $key) { - $new_args[] = array($key, $args[$key]); - } - $args = $new_args; - } - - $sep = '?'; - if (strpos($url, '?') !== false) { - $sep = '&'; - } - - return $url . $sep . Auth_OpenID::httpBuildQuery($args); - } - - /** - * Implements python's urlunparse, which is not available in PHP. - * Given the specified components of a URL, this function rebuilds - * and returns the URL. - * - * @access private - * @param string $scheme The scheme (e.g. 'http'). Defaults to 'http'. - * @param string $host The host. Required. - * @param string $port The port. - * @param string $path The path. - * @param string $query The query. - * @param string $fragment The fragment. - * @return string $url The URL resulting from assembling the - * specified components. - */ - function urlunparse($scheme, $host, $port = null, $path = '/', - $query = '', $fragment = '') - { - - if (!$scheme) { - $scheme = 'http'; - } - - if (!$host) { - return false; - } - - if (!$path) { - $path = ''; - } - - $result = $scheme . "://" . $host; - - if ($port) { - $result .= ":" . $port; - } - - $result .= $path; - - if ($query) { - $result .= "?" . $query; - } - - if ($fragment) { - $result .= "#" . $fragment; - } - - return $result; - } - - /** - * Given a URL, this "normalizes" it by adding a trailing slash - * and / or a leading http:// scheme where necessary. Returns - * null if the original URL is malformed and cannot be normalized. - * - * @access private - * @param string $url The URL to be normalized. - * @return mixed $new_url The URL after normalization, or null if - * $url was malformed. - */ - function normalizeUrl($url) - { - @$parsed = parse_url($url); - - if (!$parsed) { - return null; - } - - if (isset($parsed['scheme']) && - isset($parsed['host'])) { - $scheme = strtolower($parsed['scheme']); - if (!in_array($scheme, array('http', 'https'))) { - return null; - } - } else { - $url = 'http://' . $url; - } - - $normalized = Auth_OpenID_urinorm($url); - if ($normalized === null) { - return null; - } - list($defragged, $frag) = Auth_OpenID::urldefrag($normalized); - return $defragged; - } - - /** - * Replacement (wrapper) for PHP's intval() because it's broken. - * - * @access private - */ - function intval($value) - { - $re = "/^\\d+$/"; - - if (!preg_match($re, $value)) { - return false; - } - - return intval($value); - } - - /** - * Count the number of bytes in a string independently of - * multibyte support conditions. - * - * @param string $str The string of bytes to count. - * @return int The number of bytes in $str. - */ - function bytes($str) - { - return strlen(bin2hex($str)) / 2; - } - - /** - * Get the bytes in a string independently of multibyte support - * conditions. - */ - function toBytes($str) - { - $hex = bin2hex($str); - - if (!$hex) { - return array(); - } - - $b = array(); - for ($i = 0; $i < strlen($hex); $i += 2) { - $b[] = chr(base_convert(substr($hex, $i, 2), 16, 10)); - } - - return $b; - } - - function urldefrag($url) - { - $parts = explode("#", $url, 2); - - if (count($parts) == 1) { - return array($parts[0], ""); - } else { - return $parts; - } - } - - function filter($callback, &$sequence) - { - $result = array(); - - foreach ($sequence as $item) { - if (call_user_func_array($callback, array($item))) { - $result[] = $item; - } - } - - return $result; - } - - function update(&$dest, &$src) - { - foreach ($src as $k => $v) { - $dest[$k] = $v; - } - } - - /** - * Wrap PHP's standard error_log functionality. Use this to - * perform all logging. It will interpolate any additional - * arguments into the format string before logging. - * - * @param string $format_string The sprintf format for the message - */ - function log($format_string) - { - $args = func_get_args(); - $message = call_user_func_array('sprintf', $args); - error_log($message); - } - - function autoSubmitHTML($form, $title="OpenId transaction in progress") - { - return("". - "". - $title . - "". - "". - $form . - "". - "". - ""); - } -} -?> diff --git a/_darcs/pristine/extlib/Auth/OpenID/AX.php b/_darcs/pristine/extlib/Auth/OpenID/AX.php deleted file mode 100644 index 4a617ae30c..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/AX.php +++ /dev/null @@ -1,1023 +0,0 @@ -message = $message; - } -} - -/** - * Abstract class containing common code for attribute exchange - * messages. - * - * @package OpenID - */ -class Auth_OpenID_AX_Message extends Auth_OpenID_Extension { - /** - * ns_alias: The preferred namespace alias for attribute exchange - * messages - */ - var $ns_alias = 'ax'; - - /** - * mode: The type of this attribute exchange message. This must be - * overridden in subclasses. - */ - var $mode = null; - - var $ns_uri = Auth_OpenID_AX_NS_URI; - - /** - * Return Auth_OpenID_AX_Error if the mode in the attribute - * exchange arguments does not match what is expected for this - * class; true otherwise. - * - * @access private - */ - function _checkMode($ax_args) - { - $mode = Auth_OpenID::arrayGet($ax_args, 'mode'); - if ($mode != $this->mode) { - return new Auth_OpenID_AX_Error( - sprintf( - "Expected mode '%s'; got '%s'", - $this->mode, $mode)); - } - - return true; - } - - /** - * Return a set of attribute exchange arguments containing the - * basic information that must be in every attribute exchange - * message. - * - * @access private - */ - function _newArgs() - { - return array('mode' => $this->mode); - } -} - -/** - * Represents a single attribute in an attribute exchange - * request. This should be added to an AXRequest object in order to - * request the attribute. - * - * @package OpenID - */ -class Auth_OpenID_AX_AttrInfo { - /** - * Construct an attribute information object. Do not call this - * directly; call make(...) instead. - * - * @param string $type_uri The type URI for this attribute. - * - * @param int $count The number of values of this type to request. - * - * @param bool $required Whether the attribute will be marked as - * required in the request. - * - * @param string $alias The name that should be given to this - * attribute in the request. - */ - function Auth_OpenID_AX_AttrInfo($type_uri, $count, $required, - $alias) - { - /** - * required: Whether the attribute will be marked as required - * when presented to the subject of the attribute exchange - * request. - */ - $this->required = $required; - - /** - * count: How many values of this type to request from the - * subject. Defaults to one. - */ - $this->count = $count; - - /** - * type_uri: The identifier that determines what the attribute - * represents and how it is serialized. For example, one type - * URI representing dates could represent a Unix timestamp in - * base 10 and another could represent a human-readable - * string. - */ - $this->type_uri = $type_uri; - - /** - * alias: The name that should be given to this attribute in - * the request. If it is not supplied, a generic name will be - * assigned. For example, if you want to call a Unix timestamp - * value 'tstamp', set its alias to that value. If two - * attributes in the same message request to use the same - * alias, the request will fail to be generated. - */ - $this->alias = $alias; - } - - /** - * Construct an attribute information object. For parameter - * details, see the constructor. - */ - function make($type_uri, $count=1, $required=false, - $alias=null) - { - if ($alias !== null) { - $result = Auth_OpenID_AX_checkAlias($alias); - - if (Auth_OpenID_AX::isError($result)) { - return $result; - } - } - - return new Auth_OpenID_AX_AttrInfo($type_uri, $count, $required, - $alias); - } - - /** - * When processing a request for this attribute, the OP should - * call this method to determine whether all available attribute - * values were requested. If self.count == UNLIMITED_VALUES, this - * returns True. Otherwise this returns False, in which case - * self.count is an integer. - */ - function wantsUnlimitedValues() - { - return $this->count === Auth_OpenID_AX_UNLIMITED_VALUES; - } -} - -/** - * Given a namespace mapping and a string containing a comma-separated - * list of namespace aliases, return a list of type URIs that - * correspond to those aliases. - * - * @param $namespace_map The mapping from namespace URI to alias - * @param $alias_list_s The string containing the comma-separated - * list of aliases. May also be None for convenience. - * - * @return $seq The list of namespace URIs that corresponds to the - * supplied list of aliases. If the string was zero-length or None, an - * empty list will be returned. - * - * return null If an alias is present in the list of aliases but - * is not present in the namespace map. - */ -function Auth_OpenID_AX_toTypeURIs(&$namespace_map, $alias_list_s) -{ - $uris = array(); - - if ($alias_list_s) { - foreach (explode(',', $alias_list_s) as $alias) { - $type_uri = $namespace_map->getNamespaceURI($alias); - if ($type_uri === null) { - // raise KeyError( - // 'No type is defined for attribute name %r' % (alias,)) - return new Auth_OpenID_AX_Error( - sprintf('No type is defined for attribute name %s', - $alias) - ); - } else { - $uris[] = $type_uri; - } - } - } - - return $uris; -} - -/** - * An attribute exchange 'fetch_request' message. This message is sent - * by a relying party when it wishes to obtain attributes about the - * subject of an OpenID authentication request. - * - * @package OpenID - */ -class Auth_OpenID_AX_FetchRequest extends Auth_OpenID_AX_Message { - - var $mode = 'fetch_request'; - - function Auth_OpenID_AX_FetchRequest($update_url=null) - { - /** - * requested_attributes: The attributes that have been - * requested thus far, indexed by the type URI. - */ - $this->requested_attributes = array(); - - /** - * update_url: A URL that will accept responses for this - * attribute exchange request, even in the absence of the user - * who made this request. - */ - $this->update_url = $update_url; - } - - /** - * Add an attribute to this attribute exchange request. - * - * @param attribute: The attribute that is being requested - * @return true on success, false when the requested attribute is - * already present in this fetch request. - */ - function add($attribute) - { - if ($this->contains($attribute->type_uri)) { - return new Auth_OpenID_AX_Error( - sprintf("The attribute %s has already been requested", - $attribute->type_uri)); - } - - $this->requested_attributes[$attribute->type_uri] = $attribute; - - return true; - } - - /** - * Get the serialized form of this attribute fetch request. - * - * @returns Auth_OpenID_AX_FetchRequest The fetch request message parameters - */ - function getExtensionArgs() - { - $aliases = new Auth_OpenID_NamespaceMap(); - - $required = array(); - $if_available = array(); - - $ax_args = $this->_newArgs(); - - foreach ($this->requested_attributes as $type_uri => $attribute) { - if ($attribute->alias === null) { - $alias = $aliases->add($type_uri); - } else { - $alias = $aliases->addAlias($type_uri, $attribute->alias); - - if ($alias === null) { - return new Auth_OpenID_AX_Error( - sprintf("Could not add alias %s for URI %s", - $attribute->alias, $type_uri - )); - } - } - - if ($attribute->required) { - $required[] = $alias; - } else { - $if_available[] = $alias; - } - - if ($attribute->count != 1) { - $ax_args['count.' . $alias] = strval($attribute->count); - } - - $ax_args['type.' . $alias] = $type_uri; - } - - if ($required) { - $ax_args['required'] = implode(',', $required); - } - - if ($if_available) { - $ax_args['if_available'] = implode(',', $if_available); - } - - return $ax_args; - } - - /** - * Get the type URIs for all attributes that have been marked as - * required. - * - * @return A list of the type URIs for attributes that have been - * marked as required. - */ - function getRequiredAttrs() - { - $required = array(); - foreach ($this->requested_attributes as $type_uri => $attribute) { - if ($attribute->required) { - $required[] = $type_uri; - } - } - - return $required; - } - - /** - * Extract a FetchRequest from an OpenID message - * - * @param request: The OpenID request containing the attribute - * fetch request - * - * @returns mixed An Auth_OpenID_AX_Error or the - * Auth_OpenID_AX_FetchRequest extracted from the request message if - * successful - */ - function &fromOpenIDRequest($request) - { - $m = $request->message; - $obj = new Auth_OpenID_AX_FetchRequest(); - $ax_args = $m->getArgs($obj->ns_uri); - - $result = $obj->parseExtensionArgs($ax_args); - - if (Auth_OpenID_AX::isError($result)) { - return $result; - } - - if ($obj->update_url) { - // Update URL must match the openid.realm of the - // underlying OpenID 2 message. - $realm = $m->getArg(Auth_OpenID_OPENID_NS, 'realm', - $m->getArg( - Auth_OpenID_OPENID_NS, - 'return_to')); - - if (!$realm) { - $obj = new Auth_OpenID_AX_Error( - sprintf("Cannot validate update_url %s " . - "against absent realm", $obj->update_url)); - } else if (!Auth_OpenID_TrustRoot::match($realm, - $obj->update_url)) { - $obj = new Auth_OpenID_AX_Error( - sprintf("Update URL %s failed validation against realm %s", - $obj->update_url, $realm)); - } - } - - return $obj; - } - - /** - * Given attribute exchange arguments, populate this FetchRequest. - * - * @return $result Auth_OpenID_AX_Error if the data to be parsed - * does not follow the attribute exchange specification. At least - * when 'if_available' or 'required' is not specified for a - * particular attribute type. Returns true otherwise. - */ - function parseExtensionArgs($ax_args) - { - $result = $this->_checkMode($ax_args); - if (Auth_OpenID_AX::isError($result)) { - return $result; - } - - $aliases = new Auth_OpenID_NamespaceMap(); - - foreach ($ax_args as $key => $value) { - if (strpos($key, 'type.') === 0) { - $alias = substr($key, 5); - $type_uri = $value; - - $alias = $aliases->addAlias($type_uri, $alias); - - if ($alias === null) { - return new Auth_OpenID_AX_Error( - sprintf("Could not add alias %s for URI %s", - $alias, $type_uri) - ); - } - - $count_s = Auth_OpenID::arrayGet($ax_args, 'count.' . $alias); - if ($count_s) { - $count = Auth_OpenID::intval($count_s); - if (($count === false) && - ($count_s === Auth_OpenID_AX_UNLIMITED_VALUES)) { - $count = $count_s; - } - } else { - $count = 1; - } - - if ($count === false) { - return new Auth_OpenID_AX_Error( - sprintf("Integer value expected for %s, got %s", - 'count.' . $alias, $count_s)); - } - - $attrinfo = Auth_OpenID_AX_AttrInfo::make($type_uri, $count, - false, $alias); - - if (Auth_OpenID_AX::isError($attrinfo)) { - return $attrinfo; - } - - $this->add($attrinfo); - } - } - - $required = Auth_OpenID_AX_toTypeURIs($aliases, - Auth_OpenID::arrayGet($ax_args, 'required')); - - foreach ($required as $type_uri) { - $attrib =& $this->requested_attributes[$type_uri]; - $attrib->required = true; - } - - $if_available = Auth_OpenID_AX_toTypeURIs($aliases, - Auth_OpenID::arrayGet($ax_args, 'if_available')); - - $all_type_uris = array_merge($required, $if_available); - - foreach ($aliases->iterNamespaceURIs() as $type_uri) { - if (!in_array($type_uri, $all_type_uris)) { - return new Auth_OpenID_AX_Error( - sprintf('Type URI %s was in the request but not ' . - 'present in "required" or "if_available"', - $type_uri)); - - } - } - - $this->update_url = Auth_OpenID::arrayGet($ax_args, 'update_url'); - - return true; - } - - /** - * Iterate over the AttrInfo objects that are contained in this - * fetch_request. - */ - function iterAttrs() - { - return array_values($this->requested_attributes); - } - - function iterTypes() - { - return array_keys($this->requested_attributes); - } - - /** - * Is the given type URI present in this fetch_request? - */ - function contains($type_uri) - { - return in_array($type_uri, $this->iterTypes()); - } -} - -/** - * An abstract class that implements a message that has attribute keys - * and values. It contains the common code between fetch_response and - * store_request. - * - * @package OpenID - */ -class Auth_OpenID_AX_KeyValueMessage extends Auth_OpenID_AX_Message { - - function Auth_OpenID_AX_KeyValueMessage() - { - $this->data = array(); - } - - /** - * Add a single value for the given attribute type to the - * message. If there are already values specified for this type, - * this value will be sent in addition to the values already - * specified. - * - * @param type_uri: The URI for the attribute - * @param value: The value to add to the response to the relying - * party for this attribute - * @return null - */ - function addValue($type_uri, $value) - { - if (!array_key_exists($type_uri, $this->data)) { - $this->data[$type_uri] = array(); - } - - $values =& $this->data[$type_uri]; - $values[] = $value; - } - - /** - * Set the values for the given attribute type. This replaces any - * values that have already been set for this attribute. - * - * @param type_uri: The URI for the attribute - * @param values: A list of values to send for this attribute. - */ - function setValues($type_uri, &$values) - { - $this->data[$type_uri] =& $values; - } - - /** - * Get the extension arguments for the key/value pairs contained - * in this message. - * - * @param aliases: An alias mapping. Set to None if you don't care - * about the aliases for this request. - * - * @access private - */ - function _getExtensionKVArgs(&$aliases) - { - if ($aliases === null) { - $aliases = new Auth_OpenID_NamespaceMap(); - } - - $ax_args = array(); - - foreach ($this->data as $type_uri => $values) { - $alias = $aliases->add($type_uri); - - $ax_args['type.' . $alias] = $type_uri; - $ax_args['count.' . $alias] = strval(count($values)); - - foreach ($values as $i => $value) { - $key = sprintf('value.%s.%d', $alias, $i + 1); - $ax_args[$key] = $value; - } - } - - return $ax_args; - } - - /** - * Parse attribute exchange key/value arguments into this object. - * - * @param ax_args: The attribute exchange fetch_response - * arguments, with namespacing removed. - * - * @return Auth_OpenID_AX_Error or true - */ - function parseExtensionArgs($ax_args) - { - $result = $this->_checkMode($ax_args); - if (Auth_OpenID_AX::isError($result)) { - return $result; - } - - $aliases = new Auth_OpenID_NamespaceMap(); - - foreach ($ax_args as $key => $value) { - if (strpos($key, 'type.') === 0) { - $type_uri = $value; - $alias = substr($key, 5); - - $result = Auth_OpenID_AX_checkAlias($alias); - - if (Auth_OpenID_AX::isError($result)) { - return $result; - } - - $alias = $aliases->addAlias($type_uri, $alias); - - if ($alias === null) { - return new Auth_OpenID_AX_Error( - sprintf("Could not add alias %s for URI %s", - $alias, $type_uri) - ); - } - } - } - - foreach ($aliases->iteritems() as $pair) { - list($type_uri, $alias) = $pair; - - if (array_key_exists('count.' . $alias, $ax_args)) { - - $count_key = 'count.' . $alias; - $count_s = $ax_args[$count_key]; - - $count = Auth_OpenID::intval($count_s); - - if ($count === false) { - return new Auth_OpenID_AX_Error( - sprintf("Integer value expected for %s, got %s", - 'count. %s' . $alias, $count_s, - Auth_OpenID_AX_UNLIMITED_VALUES) - ); - } - - $values = array(); - for ($i = 1; $i < $count + 1; $i++) { - $value_key = sprintf('value.%s.%d', $alias, $i); - - if (!array_key_exists($value_key, $ax_args)) { - return new Auth_OpenID_AX_Error( - sprintf( - "No value found for key %s", - $value_key)); - } - - $value = $ax_args[$value_key]; - $values[] = $value; - } - } else { - $key = 'value.' . $alias; - - if (!array_key_exists($key, $ax_args)) { - return new Auth_OpenID_AX_Error( - sprintf( - "No value found for key %s", - $key)); - } - - $value = $ax_args['value.' . $alias]; - - if ($value == '') { - $values = array(); - } else { - $values = array($value); - } - } - - $this->data[$type_uri] = $values; - } - - return true; - } - - /** - * Get a single value for an attribute. If no value was sent for - * this attribute, use the supplied default. If there is more than - * one value for this attribute, this method will fail. - * - * @param type_uri: The URI for the attribute - * @param default: The value to return if the attribute was not - * sent in the fetch_response. - * - * @return $value Auth_OpenID_AX_Error on failure or the value of - * the attribute in the fetch_response message, or the default - * supplied - */ - function getSingle($type_uri, $default=null) - { - $values = Auth_OpenID::arrayGet($this->data, $type_uri); - if (!$values) { - return $default; - } else if (count($values) == 1) { - return $values[0]; - } else { - return new Auth_OpenID_AX_Error( - sprintf('More than one value present for %s', - $type_uri) - ); - } - } - - /** - * Get the list of values for this attribute in the - * fetch_response. - * - * XXX: what to do if the values are not present? default - * parameter? this is funny because it's always supposed to return - * a list, so the default may break that, though it's provided by - * the user's code, so it might be okay. If no default is - * supplied, should the return be None or []? - * - * @param type_uri: The URI of the attribute - * - * @return $values The list of values for this attribute in the - * response. May be an empty list. If the attribute was not sent - * in the response, returns Auth_OpenID_AX_Error. - */ - function get($type_uri) - { - if (array_key_exists($type_uri, $this->data)) { - return $this->data[$type_uri]; - } else { - return new Auth_OpenID_AX_Error( - sprintf("Type URI %s not found in response", - $type_uri) - ); - } - } - - /** - * Get the number of responses for a particular attribute in this - * fetch_response message. - * - * @param type_uri: The URI of the attribute - * - * @returns int The number of values sent for this attribute. If - * the attribute was not sent in the response, returns - * Auth_OpenID_AX_Error. - */ - function count($type_uri) - { - if (array_key_exists($type_uri, $this->data)) { - return count($this->get($type_uri)); - } else { - return new Auth_OpenID_AX_Error( - sprintf("Type URI %s not found in response", - $type_uri) - ); - } - } -} - -/** - * A fetch_response attribute exchange message. - * - * @package OpenID - */ -class Auth_OpenID_AX_FetchResponse extends Auth_OpenID_AX_KeyValueMessage { - var $mode = 'fetch_response'; - - function Auth_OpenID_AX_FetchResponse($update_url=null) - { - $this->Auth_OpenID_AX_KeyValueMessage(); - $this->update_url = $update_url; - } - - /** - * Serialize this object into arguments in the attribute exchange - * namespace - * - * @return $args The dictionary of unqualified attribute exchange - * arguments that represent this fetch_response, or - * Auth_OpenID_AX_Error on error. - */ - function getExtensionArgs($request=null) - { - $aliases = new Auth_OpenID_NamespaceMap(); - - $zero_value_types = array(); - - if ($request !== null) { - // Validate the data in the context of the request (the - // same attributes should be present in each, and the - // counts in the response must be no more than the counts - // in the request) - - foreach ($this->data as $type_uri => $unused) { - if (!$request->contains($type_uri)) { - return new Auth_OpenID_AX_Error( - sprintf("Response attribute not present in request: %s", - $type_uri) - ); - } - } - - foreach ($request->iterAttrs() as $attr_info) { - // Copy the aliases from the request so that reading - // the response in light of the request is easier - if ($attr_info->alias === null) { - $aliases->add($attr_info->type_uri); - } else { - $alias = $aliases->addAlias($attr_info->type_uri, - $attr_info->alias); - - if ($alias === null) { - return new Auth_OpenID_AX_Error( - sprintf("Could not add alias %s for URI %s", - $attr_info->alias, $attr_info->type_uri) - ); - } - } - - if (array_key_exists($attr_info->type_uri, $this->data)) { - $values = $this->data[$attr_info->type_uri]; - } else { - $values = array(); - $zero_value_types[] = $attr_info; - } - - if (($attr_info->count != Auth_OpenID_AX_UNLIMITED_VALUES) && - ($attr_info->count < count($values))) { - return new Auth_OpenID_AX_Error( - sprintf("More than the number of requested values " . - "were specified for %s", - $attr_info->type_uri) - ); - } - } - } - - $kv_args = $this->_getExtensionKVArgs($aliases); - - // Add the KV args into the response with the args that are - // unique to the fetch_response - $ax_args = $this->_newArgs(); - - // For each requested attribute, put its type/alias and count - // into the response even if no data were returned. - foreach ($zero_value_types as $attr_info) { - $alias = $aliases->getAlias($attr_info->type_uri); - $kv_args['type.' . $alias] = $attr_info->type_uri; - $kv_args['count.' . $alias] = '0'; - } - - $update_url = null; - if ($request) { - $update_url = $request->update_url; - } else { - $update_url = $this->update_url; - } - - if ($update_url) { - $ax_args['update_url'] = $update_url; - } - - Auth_OpenID::update(&$ax_args, $kv_args); - - return $ax_args; - } - - /** - * @return $result Auth_OpenID_AX_Error on failure or true on - * success. - */ - function parseExtensionArgs($ax_args) - { - $result = parent::parseExtensionArgs($ax_args); - - if (Auth_OpenID_AX::isError($result)) { - return $result; - } - - $this->update_url = Auth_OpenID::arrayGet($ax_args, 'update_url'); - - return true; - } - - /** - * Construct a FetchResponse object from an OpenID library - * SuccessResponse object. - * - * @param success_response: A successful id_res response object - * - * @param signed: Whether non-signed args should be processsed. If - * True (the default), only signed arguments will be processsed. - * - * @return $response A FetchResponse containing the data from the - * OpenID message - */ - function fromSuccessResponse($success_response, $signed=true) - { - $obj = new Auth_OpenID_AX_FetchResponse(); - if ($signed) { - $ax_args = $success_response->getSignedNS($obj->ns_uri); - } else { - $ax_args = $success_response->message->getArgs($obj->ns_uri); - } - if ($ax_args === null || Auth_OpenID::isFailure($ax_args) || - sizeof($ax_args) == 0) { - return null; - } - - $result = $obj->parseExtensionArgs($ax_args); - if (Auth_OpenID_AX::isError($result)) { - #XXX log me - return null; - } - return $obj; - } -} - -/** - * A store request attribute exchange message representation. - * - * @package OpenID - */ -class Auth_OpenID_AX_StoreRequest extends Auth_OpenID_AX_KeyValueMessage { - var $mode = 'store_request'; - - /** - * @param array $aliases The namespace aliases to use when making - * this store response. Leave as None to use defaults. - */ - function getExtensionArgs($aliases=null) - { - $ax_args = $this->_newArgs(); - $kv_args = $this->_getExtensionKVArgs($aliases); - Auth_OpenID::update(&$ax_args, $kv_args); - return $ax_args; - } -} - -/** - * An indication that the store request was processed along with this - * OpenID transaction. Use make(), NOT the constructor, to create - * response objects. - * - * @package OpenID - */ -class Auth_OpenID_AX_StoreResponse extends Auth_OpenID_AX_Message { - var $SUCCESS_MODE = 'store_response_success'; - var $FAILURE_MODE = 'store_response_failure'; - - /** - * Returns Auth_OpenID_AX_Error on error or an - * Auth_OpenID_AX_StoreResponse object on success. - */ - function &make($succeeded=true, $error_message=null) - { - if (($succeeded) && ($error_message !== null)) { - return new Auth_OpenID_AX_Error('An error message may only be '. - 'included in a failing fetch response'); - } - - return new Auth_OpenID_AX_StoreResponse($succeeded, $error_message); - } - - function Auth_OpenID_AX_StoreResponse($succeeded=true, $error_message=null) - { - if ($succeeded) { - $this->mode = $this->SUCCESS_MODE; - } else { - $this->mode = $this->FAILURE_MODE; - } - - $this->error_message = $error_message; - } - - /** - * Was this response a success response? - */ - function succeeded() - { - return $this->mode == $this->SUCCESS_MODE; - } - - function getExtensionArgs() - { - $ax_args = $this->_newArgs(); - if ((!$this->succeeded()) && $this->error_message) { - $ax_args['error'] = $this->error_message; - } - - return $ax_args; - } -} - -?> \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/Association.php b/_darcs/pristine/extlib/Auth/OpenID/Association.php deleted file mode 100644 index 37ce0cbf45..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/Association.php +++ /dev/null @@ -1,613 +0,0 @@ - - * @copyright 2005-2008 Janrain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - */ - -/** - * @access private - */ -require_once 'Auth/OpenID/CryptUtil.php'; - -/** - * @access private - */ -require_once 'Auth/OpenID/KVForm.php'; - -/** - * @access private - */ -require_once 'Auth/OpenID/HMAC.php'; - -/** - * This class represents an association between a server and a - * consumer. In general, users of this library will never see - * instances of this object. The only exception is if you implement a - * custom {@link Auth_OpenID_OpenIDStore}. - * - * If you do implement such a store, it will need to store the values - * of the handle, secret, issued, lifetime, and assoc_type instance - * variables. - * - * @package OpenID - */ -class Auth_OpenID_Association { - - /** - * This is a HMAC-SHA1 specific value. - * - * @access private - */ - var $SIG_LENGTH = 20; - - /** - * The ordering and name of keys as stored by serialize. - * - * @access private - */ - var $assoc_keys = array( - 'version', - 'handle', - 'secret', - 'issued', - 'lifetime', - 'assoc_type' - ); - - var $_macs = array( - 'HMAC-SHA1' => 'Auth_OpenID_HMACSHA1', - 'HMAC-SHA256' => 'Auth_OpenID_HMACSHA256' - ); - - /** - * This is an alternate constructor (factory method) used by the - * OpenID consumer library to create associations. OpenID store - * implementations shouldn't use this constructor. - * - * @access private - * - * @param integer $expires_in This is the amount of time this - * association is good for, measured in seconds since the - * association was issued. - * - * @param string $handle This is the handle the server gave this - * association. - * - * @param string secret This is the shared secret the server - * generated for this association. - * - * @param assoc_type This is the type of association this - * instance represents. The only valid values of this field at - * this time is 'HMAC-SHA1' and 'HMAC-SHA256', but new types may - * be defined in the future. - * - * @return association An {@link Auth_OpenID_Association} - * instance. - */ - function fromExpiresIn($expires_in, $handle, $secret, $assoc_type) - { - $issued = time(); - $lifetime = $expires_in; - return new Auth_OpenID_Association($handle, $secret, - $issued, $lifetime, $assoc_type); - } - - /** - * This is the standard constructor for creating an association. - * The library should create all of the necessary associations, so - * this constructor is not part of the external API. - * - * @access private - * - * @param string $handle This is the handle the server gave this - * association. - * - * @param string $secret This is the shared secret the server - * generated for this association. - * - * @param integer $issued This is the time this association was - * issued, in seconds since 00:00 GMT, January 1, 1970. (ie, a - * unix timestamp) - * - * @param integer $lifetime This is the amount of time this - * association is good for, measured in seconds since the - * association was issued. - * - * @param string $assoc_type This is the type of association this - * instance represents. The only valid values of this field at - * this time is 'HMAC-SHA1' and 'HMAC-SHA256', but new types may - * be defined in the future. - */ - function Auth_OpenID_Association( - $handle, $secret, $issued, $lifetime, $assoc_type) - { - if (!in_array($assoc_type, - Auth_OpenID_getSupportedAssociationTypes())) { - $fmt = 'Unsupported association type (%s)'; - trigger_error(sprintf($fmt, $assoc_type), E_USER_ERROR); - } - - $this->handle = $handle; - $this->secret = $secret; - $this->issued = $issued; - $this->lifetime = $lifetime; - $this->assoc_type = $assoc_type; - } - - /** - * This returns the number of seconds this association is still - * valid for, or 0 if the association is no longer valid. - * - * @return integer $seconds The number of seconds this association - * is still valid for, or 0 if the association is no longer valid. - */ - function getExpiresIn($now = null) - { - if ($now == null) { - $now = time(); - } - - return max(0, $this->issued + $this->lifetime - $now); - } - - /** - * This checks to see if two {@link Auth_OpenID_Association} - * instances represent the same association. - * - * @return bool $result true if the two instances represent the - * same association, false otherwise. - */ - function equal($other) - { - return ((gettype($this) == gettype($other)) - && ($this->handle == $other->handle) - && ($this->secret == $other->secret) - && ($this->issued == $other->issued) - && ($this->lifetime == $other->lifetime) - && ($this->assoc_type == $other->assoc_type)); - } - - /** - * Convert an association to KV form. - * - * @return string $result String in KV form suitable for - * deserialization by deserialize. - */ - function serialize() - { - $data = array( - 'version' => '2', - 'handle' => $this->handle, - 'secret' => base64_encode($this->secret), - 'issued' => strval(intval($this->issued)), - 'lifetime' => strval(intval($this->lifetime)), - 'assoc_type' => $this->assoc_type - ); - - assert(array_keys($data) == $this->assoc_keys); - - return Auth_OpenID_KVForm::fromArray($data, $strict = true); - } - - /** - * Parse an association as stored by serialize(). This is the - * inverse of serialize. - * - * @param string $assoc_s Association as serialized by serialize() - * @return Auth_OpenID_Association $result instance of this class - */ - function deserialize($class_name, $assoc_s) - { - $pairs = Auth_OpenID_KVForm::toArray($assoc_s, $strict = true); - $keys = array(); - $values = array(); - foreach ($pairs as $key => $value) { - if (is_array($value)) { - list($key, $value) = $value; - } - $keys[] = $key; - $values[] = $value; - } - - $class_vars = get_class_vars($class_name); - $class_assoc_keys = $class_vars['assoc_keys']; - - sort($keys); - sort($class_assoc_keys); - - if ($keys != $class_assoc_keys) { - trigger_error('Unexpected key values: ' . var_export($keys, true), - E_USER_WARNING); - return null; - } - - $version = $pairs['version']; - $handle = $pairs['handle']; - $secret = $pairs['secret']; - $issued = $pairs['issued']; - $lifetime = $pairs['lifetime']; - $assoc_type = $pairs['assoc_type']; - - if ($version != '2') { - trigger_error('Unknown version: ' . $version, E_USER_WARNING); - return null; - } - - $issued = intval($issued); - $lifetime = intval($lifetime); - $secret = base64_decode($secret); - - return new $class_name( - $handle, $secret, $issued, $lifetime, $assoc_type); - } - - /** - * Generate a signature for a sequence of (key, value) pairs - * - * @access private - * @param array $pairs The pairs to sign, in order. This is an - * array of two-tuples. - * @return string $signature The binary signature of this sequence - * of pairs - */ - function sign($pairs) - { - $kv = Auth_OpenID_KVForm::fromArray($pairs); - - /* Invalid association types should be caught at constructor */ - $callback = $this->_macs[$this->assoc_type]; - - return call_user_func_array($callback, array($this->secret, $kv)); - } - - /** - * Generate a signature for some fields in a dictionary - * - * @access private - * @param array $fields The fields to sign, in order; this is an - * array of strings. - * @param array $data Dictionary of values to sign (an array of - * string => string pairs). - * @return string $signature The signature, base64 encoded - */ - function signMessage($message) - { - if ($message->hasKey(Auth_OpenID_OPENID_NS, 'sig') || - $message->hasKey(Auth_OpenID_OPENID_NS, 'signed')) { - // Already has a sig - return null; - } - - $extant_handle = $message->getArg(Auth_OpenID_OPENID_NS, - 'assoc_handle'); - - if ($extant_handle && ($extant_handle != $this->handle)) { - // raise ValueError("Message has a different association handle") - return null; - } - - $signed_message = $message; - $signed_message->setArg(Auth_OpenID_OPENID_NS, 'assoc_handle', - $this->handle); - - $message_keys = array_keys($signed_message->toPostArgs()); - $signed_list = array(); - $signed_prefix = 'openid.'; - - foreach ($message_keys as $k) { - if (strpos($k, $signed_prefix) === 0) { - $signed_list[] = substr($k, strlen($signed_prefix)); - } - } - - $signed_list[] = 'signed'; - sort($signed_list); - - $signed_message->setArg(Auth_OpenID_OPENID_NS, 'signed', - implode(',', $signed_list)); - $sig = $this->getMessageSignature($signed_message); - $signed_message->setArg(Auth_OpenID_OPENID_NS, 'sig', $sig); - return $signed_message; - } - - /** - * Given a {@link Auth_OpenID_Message}, return the key/value pairs - * to be signed according to the signed list in the message. If - * the message lacks a signed list, return null. - * - * @access private - */ - function _makePairs(&$message) - { - $signed = $message->getArg(Auth_OpenID_OPENID_NS, 'signed'); - if (!$signed || Auth_OpenID::isFailure($signed)) { - // raise ValueError('Message has no signed list: %s' % (message,)) - return null; - } - - $signed_list = explode(',', $signed); - $pairs = array(); - $data = $message->toPostArgs(); - foreach ($signed_list as $field) { - $pairs[] = array($field, Auth_OpenID::arrayGet($data, - 'openid.' . - $field, '')); - } - return $pairs; - } - - /** - * Given an {@link Auth_OpenID_Message}, return the signature for - * the signed list in the message. - * - * @access private - */ - function getMessageSignature(&$message) - { - $pairs = $this->_makePairs($message); - return base64_encode($this->sign($pairs)); - } - - /** - * Confirm that the signature of these fields matches the - * signature contained in the data. - * - * @access private - */ - function checkMessageSignature(&$message) - { - $sig = $message->getArg(Auth_OpenID_OPENID_NS, - 'sig'); - - if (!$sig || Auth_OpenID::isFailure($sig)) { - return false; - } - - $calculated_sig = $this->getMessageSignature($message); - return $calculated_sig == $sig; - } -} - -function Auth_OpenID_getSecretSize($assoc_type) -{ - if ($assoc_type == 'HMAC-SHA1') { - return 20; - } else if ($assoc_type == 'HMAC-SHA256') { - return 32; - } else { - return null; - } -} - -function Auth_OpenID_getAllAssociationTypes() -{ - return array('HMAC-SHA1', 'HMAC-SHA256'); -} - -function Auth_OpenID_getSupportedAssociationTypes() -{ - $a = array('HMAC-SHA1'); - - if (Auth_OpenID_HMACSHA256_SUPPORTED) { - $a[] = 'HMAC-SHA256'; - } - - return $a; -} - -function Auth_OpenID_getSessionTypes($assoc_type) -{ - $assoc_to_session = array( - 'HMAC-SHA1' => array('DH-SHA1', 'no-encryption')); - - if (Auth_OpenID_HMACSHA256_SUPPORTED) { - $assoc_to_session['HMAC-SHA256'] = - array('DH-SHA256', 'no-encryption'); - } - - return Auth_OpenID::arrayGet($assoc_to_session, $assoc_type, array()); -} - -function Auth_OpenID_checkSessionType($assoc_type, $session_type) -{ - if (!in_array($session_type, - Auth_OpenID_getSessionTypes($assoc_type))) { - return false; - } - - return true; -} - -function Auth_OpenID_getDefaultAssociationOrder() -{ - $order = array(); - - if (!Auth_OpenID_noMathSupport()) { - $order[] = array('HMAC-SHA1', 'DH-SHA1'); - - if (Auth_OpenID_HMACSHA256_SUPPORTED) { - $order[] = array('HMAC-SHA256', 'DH-SHA256'); - } - } - - $order[] = array('HMAC-SHA1', 'no-encryption'); - - if (Auth_OpenID_HMACSHA256_SUPPORTED) { - $order[] = array('HMAC-SHA256', 'no-encryption'); - } - - return $order; -} - -function Auth_OpenID_getOnlyEncryptedOrder() -{ - $result = array(); - - foreach (Auth_OpenID_getDefaultAssociationOrder() as $pair) { - list($assoc, $session) = $pair; - - if ($session != 'no-encryption') { - if (Auth_OpenID_HMACSHA256_SUPPORTED && - ($assoc == 'HMAC-SHA256')) { - $result[] = $pair; - } else if ($assoc != 'HMAC-SHA256') { - $result[] = $pair; - } - } - } - - return $result; -} - -function &Auth_OpenID_getDefaultNegotiator() -{ - $x = new Auth_OpenID_SessionNegotiator( - Auth_OpenID_getDefaultAssociationOrder()); - return $x; -} - -function &Auth_OpenID_getEncryptedNegotiator() -{ - $x = new Auth_OpenID_SessionNegotiator( - Auth_OpenID_getOnlyEncryptedOrder()); - return $x; -} - -/** - * A session negotiator controls the allowed and preferred association - * types and association session types. Both the {@link - * Auth_OpenID_Consumer} and {@link Auth_OpenID_Server} use - * negotiators when creating associations. - * - * You can create and use negotiators if you: - - * - Do not want to do Diffie-Hellman key exchange because you use - * transport-layer encryption (e.g. SSL) - * - * - Want to use only SHA-256 associations - * - * - Do not want to support plain-text associations over a non-secure - * channel - * - * It is up to you to set a policy for what kinds of associations to - * accept. By default, the library will make any kind of association - * that is allowed in the OpenID 2.0 specification. - * - * Use of negotiators in the library - * ================================= - * - * When a consumer makes an association request, it calls {@link - * getAllowedType} to get the preferred association type and - * association session type. - * - * The server gets a request for a particular association/session type - * and calls {@link isAllowed} to determine if it should create an - * association. If it is supported, negotiation is complete. If it is - * not, the server calls {@link getAllowedType} to get an allowed - * association type to return to the consumer. - * - * If the consumer gets an error response indicating that the - * requested association/session type is not supported by the server - * that contains an assocation/session type to try, it calls {@link - * isAllowed} to determine if it should try again with the given - * combination of association/session type. - * - * @package OpenID - */ -class Auth_OpenID_SessionNegotiator { - function Auth_OpenID_SessionNegotiator($allowed_types) - { - $this->allowed_types = array(); - $this->setAllowedTypes($allowed_types); - } - - /** - * Set the allowed association types, checking to make sure each - * combination is valid. - * - * @access private - */ - function setAllowedTypes($allowed_types) - { - foreach ($allowed_types as $pair) { - list($assoc_type, $session_type) = $pair; - if (!Auth_OpenID_checkSessionType($assoc_type, $session_type)) { - return false; - } - } - - $this->allowed_types = $allowed_types; - return true; - } - - /** - * Add an association type and session type to the allowed types - * list. The assocation/session pairs are tried in the order that - * they are added. - * - * @access private - */ - function addAllowedType($assoc_type, $session_type = null) - { - if ($this->allowed_types === null) { - $this->allowed_types = array(); - } - - if ($session_type === null) { - $available = Auth_OpenID_getSessionTypes($assoc_type); - - if (!$available) { - return false; - } - - foreach ($available as $session_type) { - $this->addAllowedType($assoc_type, $session_type); - } - } else { - if (Auth_OpenID_checkSessionType($assoc_type, $session_type)) { - $this->allowed_types[] = array($assoc_type, $session_type); - } else { - return false; - } - } - - return true; - } - - // Is this combination of association type and session type allowed? - function isAllowed($assoc_type, $session_type) - { - $assoc_good = in_array(array($assoc_type, $session_type), - $this->allowed_types); - - $matches = in_array($session_type, - Auth_OpenID_getSessionTypes($assoc_type)); - - return ($assoc_good && $matches); - } - - /** - * Get a pair of assocation type and session type that are - * supported. - */ - function getAllowedType() - { - if (!$this->allowed_types) { - return array(null, null); - } - - return $this->allowed_types[0]; - } -} - -?> \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/BigMath.php b/_darcs/pristine/extlib/Auth/OpenID/BigMath.php deleted file mode 100644 index 45104947d6..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/BigMath.php +++ /dev/null @@ -1,471 +0,0 @@ - - * @copyright 2005-2008 Janrain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - */ - -/** - * Needed for random number generation - */ -require_once 'Auth/OpenID/CryptUtil.php'; - -/** - * Need Auth_OpenID::bytes(). - */ -require_once 'Auth/OpenID.php'; - -/** - * The superclass of all big-integer math implementations - * @access private - * @package OpenID - */ -class Auth_OpenID_MathLibrary { - /** - * Given a long integer, returns the number converted to a binary - * string. This function accepts long integer values of arbitrary - * magnitude and uses the local large-number math library when - * available. - * - * @param integer $long The long number (can be a normal PHP - * integer or a number created by one of the available long number - * libraries) - * @return string $binary The binary version of $long - */ - function longToBinary($long) - { - $cmp = $this->cmp($long, 0); - if ($cmp < 0) { - $msg = __FUNCTION__ . " takes only positive integers."; - trigger_error($msg, E_USER_ERROR); - return null; - } - - if ($cmp == 0) { - return "\x00"; - } - - $bytes = array(); - - while ($this->cmp($long, 0) > 0) { - array_unshift($bytes, $this->mod($long, 256)); - $long = $this->div($long, pow(2, 8)); - } - - if ($bytes && ($bytes[0] > 127)) { - array_unshift($bytes, 0); - } - - $string = ''; - foreach ($bytes as $byte) { - $string .= pack('C', $byte); - } - - return $string; - } - - /** - * Given a binary string, returns the binary string converted to a - * long number. - * - * @param string $binary The binary version of a long number, - * probably as a result of calling longToBinary - * @return integer $long The long number equivalent of the binary - * string $str - */ - function binaryToLong($str) - { - if ($str === null) { - return null; - } - - // Use array_merge to return a zero-indexed array instead of a - // one-indexed array. - $bytes = array_merge(unpack('C*', $str)); - - $n = $this->init(0); - - if ($bytes && ($bytes[0] > 127)) { - trigger_error("bytesToNum works only for positive integers.", - E_USER_WARNING); - return null; - } - - foreach ($bytes as $byte) { - $n = $this->mul($n, pow(2, 8)); - $n = $this->add($n, $byte); - } - - return $n; - } - - function base64ToLong($str) - { - $b64 = base64_decode($str); - - if ($b64 === false) { - return false; - } - - return $this->binaryToLong($b64); - } - - function longToBase64($str) - { - return base64_encode($this->longToBinary($str)); - } - - /** - * Returns a random number in the specified range. This function - * accepts $start, $stop, and $step values of arbitrary magnitude - * and will utilize the local large-number math library when - * available. - * - * @param integer $start The start of the range, or the minimum - * random number to return - * @param integer $stop The end of the range, or the maximum - * random number to return - * @param integer $step The step size, such that $result - ($step - * * N) = $start for some N - * @return integer $result The resulting randomly-generated number - */ - function rand($stop) - { - static $duplicate_cache = array(); - - // Used as the key for the duplicate cache - $rbytes = $this->longToBinary($stop); - - if (array_key_exists($rbytes, $duplicate_cache)) { - list($duplicate, $nbytes) = $duplicate_cache[$rbytes]; - } else { - if ($rbytes[0] == "\x00") { - $nbytes = Auth_OpenID::bytes($rbytes) - 1; - } else { - $nbytes = Auth_OpenID::bytes($rbytes); - } - - $mxrand = $this->pow(256, $nbytes); - - // If we get a number less than this, then it is in the - // duplicated range. - $duplicate = $this->mod($mxrand, $stop); - - if (count($duplicate_cache) > 10) { - $duplicate_cache = array(); - } - - $duplicate_cache[$rbytes] = array($duplicate, $nbytes); - } - - do { - $bytes = "\x00" . Auth_OpenID_CryptUtil::getBytes($nbytes); - $n = $this->binaryToLong($bytes); - // Keep looping if this value is in the low duplicated range - } while ($this->cmp($n, $duplicate) < 0); - - return $this->mod($n, $stop); - } -} - -/** - * Exposes BCmath math library functionality. - * - * {@link Auth_OpenID_BcMathWrapper} wraps the functionality provided - * by the BCMath extension. - * - * @access private - * @package OpenID - */ -class Auth_OpenID_BcMathWrapper extends Auth_OpenID_MathLibrary{ - var $type = 'bcmath'; - - function add($x, $y) - { - return bcadd($x, $y); - } - - function sub($x, $y) - { - return bcsub($x, $y); - } - - function pow($base, $exponent) - { - return bcpow($base, $exponent); - } - - function cmp($x, $y) - { - return bccomp($x, $y); - } - - function init($number, $base = 10) - { - return $number; - } - - function mod($base, $modulus) - { - return bcmod($base, $modulus); - } - - function mul($x, $y) - { - return bcmul($x, $y); - } - - function div($x, $y) - { - return bcdiv($x, $y); - } - - /** - * Same as bcpowmod when bcpowmod is missing - * - * @access private - */ - function _powmod($base, $exponent, $modulus) - { - $square = $this->mod($base, $modulus); - $result = 1; - while($this->cmp($exponent, 0) > 0) { - if ($this->mod($exponent, 2)) { - $result = $this->mod($this->mul($result, $square), $modulus); - } - $square = $this->mod($this->mul($square, $square), $modulus); - $exponent = $this->div($exponent, 2); - } - return $result; - } - - function powmod($base, $exponent, $modulus) - { - if (function_exists('bcpowmod')) { - return bcpowmod($base, $exponent, $modulus); - } else { - return $this->_powmod($base, $exponent, $modulus); - } - } - - function toString($num) - { - return $num; - } -} - -/** - * Exposes GMP math library functionality. - * - * {@link Auth_OpenID_GmpMathWrapper} wraps the functionality provided - * by the GMP extension. - * - * @access private - * @package OpenID - */ -class Auth_OpenID_GmpMathWrapper extends Auth_OpenID_MathLibrary{ - var $type = 'gmp'; - - function add($x, $y) - { - return gmp_add($x, $y); - } - - function sub($x, $y) - { - return gmp_sub($x, $y); - } - - function pow($base, $exponent) - { - return gmp_pow($base, $exponent); - } - - function cmp($x, $y) - { - return gmp_cmp($x, $y); - } - - function init($number, $base = 10) - { - return gmp_init($number, $base); - } - - function mod($base, $modulus) - { - return gmp_mod($base, $modulus); - } - - function mul($x, $y) - { - return gmp_mul($x, $y); - } - - function div($x, $y) - { - return gmp_div_q($x, $y); - } - - function powmod($base, $exponent, $modulus) - { - return gmp_powm($base, $exponent, $modulus); - } - - function toString($num) - { - return gmp_strval($num); - } -} - -/** - * Define the supported extensions. An extension array has keys - * 'modules', 'extension', and 'class'. 'modules' is an array of PHP - * module names which the loading code will attempt to load. These - * values will be suffixed with a library file extension (e.g. ".so"). - * 'extension' is the name of a PHP extension which will be tested - * before 'modules' are loaded. 'class' is the string name of a - * {@link Auth_OpenID_MathWrapper} subclass which should be - * instantiated if a given extension is present. - * - * You can define new math library implementations and add them to - * this array. - */ -function Auth_OpenID_math_extensions() -{ - $result = array(); - - if (!defined('Auth_OpenID_BUGGY_GMP')) { - $result[] = - array('modules' => array('gmp', 'php_gmp'), - 'extension' => 'gmp', - 'class' => 'Auth_OpenID_GmpMathWrapper'); - } - - $result[] = array( - 'modules' => array('bcmath', 'php_bcmath'), - 'extension' => 'bcmath', - 'class' => 'Auth_OpenID_BcMathWrapper'); - - return $result; -} - -/** - * Detect which (if any) math library is available - */ -function Auth_OpenID_detectMathLibrary($exts) -{ - $loaded = false; - - foreach ($exts as $extension) { - // See if the extension specified is already loaded. - if ($extension['extension'] && - extension_loaded($extension['extension'])) { - $loaded = true; - } - - // Try to load dynamic modules. - if (!$loaded) { - foreach ($extension['modules'] as $module) { - if (@dl($module . "." . PHP_SHLIB_SUFFIX)) { - $loaded = true; - break; - } - } - } - - // If the load succeeded, supply an instance of - // Auth_OpenID_MathWrapper which wraps the specified - // module's functionality. - if ($loaded) { - return $extension; - } - } - - return false; -} - -/** - * {@link Auth_OpenID_getMathLib} checks for the presence of long - * number extension modules and returns an instance of - * {@link Auth_OpenID_MathWrapper} which exposes the module's - * functionality. - * - * Checks for the existence of an extension module described by the - * result of {@link Auth_OpenID_math_extensions()} and returns an - * instance of a wrapper for that extension module. If no extension - * module is found, an instance of {@link Auth_OpenID_MathWrapper} is - * returned, which wraps the native PHP integer implementation. The - * proper calling convention for this method is $lib =& - * Auth_OpenID_getMathLib(). - * - * This function checks for the existence of specific long number - * implementations in the following order: GMP followed by BCmath. - * - * @return Auth_OpenID_MathWrapper $instance An instance of - * {@link Auth_OpenID_MathWrapper} or one of its subclasses - * - * @package OpenID - */ -function &Auth_OpenID_getMathLib() -{ - // The instance of Auth_OpenID_MathWrapper that we choose to - // supply will be stored here, so that subseqent calls to this - // method will return a reference to the same object. - static $lib = null; - - if (isset($lib)) { - return $lib; - } - - if (Auth_OpenID_noMathSupport()) { - $null = null; - return $null; - } - - // If this method has not been called before, look at - // Auth_OpenID_math_extensions and try to find an extension that - // works. - $ext = Auth_OpenID_detectMathLibrary(Auth_OpenID_math_extensions()); - if ($ext === false) { - $tried = array(); - foreach (Auth_OpenID_math_extensions() as $extinfo) { - $tried[] = $extinfo['extension']; - } - $triedstr = implode(", ", $tried); - - Auth_OpenID_setNoMathSupport(); - - $result = null; - return $result; - } - - // Instantiate a new wrapper - $class = $ext['class']; - $lib = new $class(); - - return $lib; -} - -function Auth_OpenID_setNoMathSupport() -{ - if (!defined('Auth_OpenID_NO_MATH_SUPPORT')) { - define('Auth_OpenID_NO_MATH_SUPPORT', true); - } -} - -function Auth_OpenID_noMathSupport() -{ - return defined('Auth_OpenID_NO_MATH_SUPPORT'); -} - -?> diff --git a/_darcs/pristine/extlib/Auth/OpenID/Consumer.php b/_darcs/pristine/extlib/Auth/OpenID/Consumer.php deleted file mode 100644 index 6631cbaa90..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/Consumer.php +++ /dev/null @@ -1,2227 +0,0 @@ - - * @copyright 2005-2008 Janrain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - */ - -/** - * Require utility classes and functions for the consumer. - */ -require_once "Auth/OpenID.php"; -require_once "Auth/OpenID/Message.php"; -require_once "Auth/OpenID/HMAC.php"; -require_once "Auth/OpenID/Association.php"; -require_once "Auth/OpenID/CryptUtil.php"; -require_once "Auth/OpenID/DiffieHellman.php"; -require_once "Auth/OpenID/KVForm.php"; -require_once "Auth/OpenID/Nonce.php"; -require_once "Auth/OpenID/Discover.php"; -require_once "Auth/OpenID/URINorm.php"; -require_once "Auth/Yadis/Manager.php"; -require_once "Auth/Yadis/XRI.php"; - -/** - * This is the status code returned when the complete method returns - * successfully. - */ -define('Auth_OpenID_SUCCESS', 'success'); - -/** - * Status to indicate cancellation of OpenID authentication. - */ -define('Auth_OpenID_CANCEL', 'cancel'); - -/** - * This is the status code completeAuth returns when the value it - * received indicated an invalid login. - */ -define('Auth_OpenID_FAILURE', 'failure'); - -/** - * This is the status code completeAuth returns when the - * {@link Auth_OpenID_Consumer} instance is in immediate mode, and the - * identity server sends back a URL to send the user to to complete his - * or her login. - */ -define('Auth_OpenID_SETUP_NEEDED', 'setup needed'); - -/** - * This is the status code beginAuth returns when the page fetched - * from the entered OpenID URL doesn't contain the necessary link tags - * to function as an identity page. - */ -define('Auth_OpenID_PARSE_ERROR', 'parse error'); - -/** - * An OpenID consumer implementation that performs discovery and does - * session management. See the Consumer.php file documentation for - * more information. - * - * @package OpenID - */ -class Auth_OpenID_Consumer { - - /** - * @access private - */ - var $discoverMethod = 'Auth_OpenID_discover'; - - /** - * @access private - */ - var $session_key_prefix = "_openid_consumer_"; - - /** - * @access private - */ - var $_token_suffix = "last_token"; - - /** - * Initialize a Consumer instance. - * - * You should create a new instance of the Consumer object with - * every HTTP request that handles OpenID transactions. - * - * @param Auth_OpenID_OpenIDStore $store This must be an object - * that implements the interface in {@link - * Auth_OpenID_OpenIDStore}. Several concrete implementations are - * provided, to cover most common use cases. For stores backed by - * MySQL, PostgreSQL, or SQLite, see the {@link - * Auth_OpenID_SQLStore} class and its sublcasses. For a - * filesystem-backed store, see the {@link Auth_OpenID_FileStore} - * module. As a last resort, if it isn't possible for the server - * to store state at all, an instance of {@link - * Auth_OpenID_DumbStore} can be used. - * - * @param mixed $session An object which implements the interface - * of the {@link Auth_Yadis_PHPSession} class. Particularly, this - * object is expected to have these methods: get($key), set($key), - * $value), and del($key). This defaults to a session object - * which wraps PHP's native session machinery. You should only - * need to pass something here if you have your own sessioning - * implementation. - * - * @param str $consumer_cls The name of the class to instantiate - * when creating the internal consumer object. This is used for - * testing. - */ - function Auth_OpenID_Consumer(&$store, $session = null, - $consumer_cls = null) - { - if ($session === null) { - $session = new Auth_Yadis_PHPSession(); - } - - $this->session =& $session; - - if ($consumer_cls !== null) { - $this->consumer =& new $consumer_cls($store); - } else { - $this->consumer =& new Auth_OpenID_GenericConsumer($store); - } - - $this->_token_key = $this->session_key_prefix . $this->_token_suffix; - } - - /** - * Used in testing to define the discovery mechanism. - * - * @access private - */ - function getDiscoveryObject(&$session, $openid_url, - $session_key_prefix) - { - return new Auth_Yadis_Discovery($session, $openid_url, - $session_key_prefix); - } - - /** - * Start the OpenID authentication process. See steps 1-2 in the - * overview at the top of this file. - * - * @param string $user_url Identity URL given by the user. This - * method performs a textual transformation of the URL to try and - * make sure it is normalized. For example, a user_url of - * example.com will be normalized to http://example.com/ - * normalizing and resolving any redirects the server might issue. - * - * @param bool $anonymous True if the OpenID request is to be sent - * to the server without any identifier information. Use this - * when you want to transport data but don't want to do OpenID - * authentication with identifiers. - * - * @return Auth_OpenID_AuthRequest $auth_request An object - * containing the discovered information will be returned, with a - * method for building a redirect URL to the server, as described - * in step 3 of the overview. This object may also be used to add - * extension arguments to the request, using its 'addExtensionArg' - * method. - */ - function begin($user_url, $anonymous=false) - { - $openid_url = $user_url; - - $disco = $this->getDiscoveryObject($this->session, - $openid_url, - $this->session_key_prefix); - - // Set the 'stale' attribute of the manager. If discovery - // fails in a fatal way, the stale flag will cause the manager - // to be cleaned up next time discovery is attempted. - - $m = $disco->getManager(); - $loader = new Auth_Yadis_ManagerLoader(); - - if ($m) { - if ($m->stale) { - $disco->destroyManager(); - } else { - $m->stale = true; - $disco->session->set($disco->session_key, - serialize($loader->toSession($m))); - } - } - - $endpoint = $disco->getNextService($this->discoverMethod, - $this->consumer->fetcher); - - // Reset the 'stale' attribute of the manager. - $m =& $disco->getManager(); - if ($m) { - $m->stale = false; - $disco->session->set($disco->session_key, - serialize($loader->toSession($m))); - } - - if ($endpoint === null) { - return null; - } else { - return $this->beginWithoutDiscovery($endpoint, - $anonymous); - } - } - - /** - * Start OpenID verification without doing OpenID server - * discovery. This method is used internally by Consumer.begin - * after discovery is performed, and exists to provide an - * interface for library users needing to perform their own - * discovery. - * - * @param Auth_OpenID_ServiceEndpoint $endpoint an OpenID service - * endpoint descriptor. - * - * @param bool anonymous Set to true if you want to perform OpenID - * without identifiers. - * - * @return Auth_OpenID_AuthRequest $auth_request An OpenID - * authentication request object. - */ - function &beginWithoutDiscovery($endpoint, $anonymous=false) - { - $loader = new Auth_OpenID_ServiceEndpointLoader(); - $auth_req = $this->consumer->begin($endpoint); - $this->session->set($this->_token_key, - $loader->toSession($auth_req->endpoint)); - if (!$auth_req->setAnonymous($anonymous)) { - return new Auth_OpenID_FailureResponse(null, - "OpenID 1 requests MUST include the identifier " . - "in the request."); - } - return $auth_req; - } - - /** - * Called to interpret the server's response to an OpenID - * request. It is called in step 4 of the flow described in the - * consumer overview. - * - * @param string $current_url The URL used to invoke the application. - * Extract the URL from your application's web - * request framework and specify it here to have it checked - * against the openid.current_url value in the response. If - * the current_url URL check fails, the status of the - * completion will be FAILURE. - * - * @param array $query An array of the query parameters (key => - * value pairs) for this HTTP request. Defaults to null. If - * null, the GET or POST data are automatically gotten from the - * PHP environment. It is only useful to override $query for - * testing. - * - * @return Auth_OpenID_ConsumerResponse $response A instance of an - * Auth_OpenID_ConsumerResponse subclass. The type of response is - * indicated by the status attribute, which will be one of - * SUCCESS, CANCEL, FAILURE, or SETUP_NEEDED. - */ - function complete($current_url, $query=null) - { - if ($current_url && !is_string($current_url)) { - // This is ugly, but we need to complain loudly when - // someone uses the API incorrectly. - trigger_error("current_url must be a string; see NEWS file " . - "for upgrading notes.", - E_USER_ERROR); - } - - if ($query === null) { - $query = Auth_OpenID::getQuery(); - } - - $loader = new Auth_OpenID_ServiceEndpointLoader(); - $endpoint_data = $this->session->get($this->_token_key); - $endpoint = - $loader->fromSession($endpoint_data); - - $message = Auth_OpenID_Message::fromPostArgs($query); - $response = $this->consumer->complete($message, $endpoint, - $current_url); - $this->session->del($this->_token_key); - - if (in_array($response->status, array(Auth_OpenID_SUCCESS, - Auth_OpenID_CANCEL))) { - if ($response->identity_url !== null) { - $disco = $this->getDiscoveryObject($this->session, - $response->identity_url, - $this->session_key_prefix); - $disco->cleanup(true); - } - } - - return $response; - } -} - -/** - * A class implementing HMAC/DH-SHA1 consumer sessions. - * - * @package OpenID - */ -class Auth_OpenID_DiffieHellmanSHA1ConsumerSession { - var $session_type = 'DH-SHA1'; - var $hash_func = 'Auth_OpenID_SHA1'; - var $secret_size = 20; - var $allowed_assoc_types = array('HMAC-SHA1'); - - function Auth_OpenID_DiffieHellmanSHA1ConsumerSession($dh = null) - { - if ($dh === null) { - $dh = new Auth_OpenID_DiffieHellman(); - } - - $this->dh = $dh; - } - - function getRequest() - { - $math =& Auth_OpenID_getMathLib(); - - $cpub = $math->longToBase64($this->dh->public); - - $args = array('dh_consumer_public' => $cpub); - - if (!$this->dh->usingDefaultValues()) { - $args = array_merge($args, array( - 'dh_modulus' => - $math->longToBase64($this->dh->mod), - 'dh_gen' => - $math->longToBase64($this->dh->gen))); - } - - return $args; - } - - function extractSecret($response) - { - if (!$response->hasKey(Auth_OpenID_OPENID_NS, - 'dh_server_public')) { - return null; - } - - if (!$response->hasKey(Auth_OpenID_OPENID_NS, - 'enc_mac_key')) { - return null; - } - - $math =& Auth_OpenID_getMathLib(); - - $spub = $math->base64ToLong($response->getArg(Auth_OpenID_OPENID_NS, - 'dh_server_public')); - $enc_mac_key = base64_decode($response->getArg(Auth_OpenID_OPENID_NS, - 'enc_mac_key')); - - return $this->dh->xorSecret($spub, $enc_mac_key, $this->hash_func); - } -} - -/** - * A class implementing HMAC/DH-SHA256 consumer sessions. - * - * @package OpenID - */ -class Auth_OpenID_DiffieHellmanSHA256ConsumerSession extends - Auth_OpenID_DiffieHellmanSHA1ConsumerSession { - var $session_type = 'DH-SHA256'; - var $hash_func = 'Auth_OpenID_SHA256'; - var $secret_size = 32; - var $allowed_assoc_types = array('HMAC-SHA256'); -} - -/** - * A class implementing plaintext consumer sessions. - * - * @package OpenID - */ -class Auth_OpenID_PlainTextConsumerSession { - var $session_type = 'no-encryption'; - var $allowed_assoc_types = array('HMAC-SHA1', 'HMAC-SHA256'); - - function getRequest() - { - return array(); - } - - function extractSecret($response) - { - if (!$response->hasKey(Auth_OpenID_OPENID_NS, 'mac_key')) { - return null; - } - - return base64_decode($response->getArg(Auth_OpenID_OPENID_NS, - 'mac_key')); - } -} - -/** - * Returns available session types. - */ -function Auth_OpenID_getAvailableSessionTypes() -{ - $types = array( - 'no-encryption' => 'Auth_OpenID_PlainTextConsumerSession', - 'DH-SHA1' => 'Auth_OpenID_DiffieHellmanSHA1ConsumerSession', - 'DH-SHA256' => 'Auth_OpenID_DiffieHellmanSHA256ConsumerSession'); - - return $types; -} - -/** - * This class is the interface to the OpenID consumer logic. - * Instances of it maintain no per-request state, so they can be - * reused (or even used by multiple threads concurrently) as needed. - * - * @package OpenID - */ -class Auth_OpenID_GenericConsumer { - /** - * @access private - */ - var $discoverMethod = 'Auth_OpenID_discover'; - - /** - * This consumer's store object. - */ - var $store; - - /** - * @access private - */ - var $_use_assocs; - - /** - * @access private - */ - var $openid1_nonce_query_arg_name = 'janrain_nonce'; - - /** - * Another query parameter that gets added to the return_to for - * OpenID 1; if the user's session state is lost, use this claimed - * identifier to do discovery when verifying the response. - */ - var $openid1_return_to_identifier_name = 'openid1_claimed_id'; - - /** - * This method initializes a new {@link Auth_OpenID_Consumer} - * instance to access the library. - * - * @param Auth_OpenID_OpenIDStore $store This must be an object - * that implements the interface in {@link Auth_OpenID_OpenIDStore}. - * Several concrete implementations are provided, to cover most common use - * cases. For stores backed by MySQL, PostgreSQL, or SQLite, see - * the {@link Auth_OpenID_SQLStore} class and its sublcasses. For a - * filesystem-backed store, see the {@link Auth_OpenID_FileStore} module. - * As a last resort, if it isn't possible for the server to store - * state at all, an instance of {@link Auth_OpenID_DumbStore} can be used. - * - * @param bool $immediate This is an optional boolean value. It - * controls whether the library uses immediate mode, as explained - * in the module description. The default value is False, which - * disables immediate mode. - */ - function Auth_OpenID_GenericConsumer(&$store) - { - $this->store =& $store; - $this->negotiator =& Auth_OpenID_getDefaultNegotiator(); - $this->_use_assocs = ($this->store ? true : false); - - $this->fetcher = Auth_Yadis_Yadis::getHTTPFetcher(); - - $this->session_types = Auth_OpenID_getAvailableSessionTypes(); - } - - /** - * Called to begin OpenID authentication using the specified - * {@link Auth_OpenID_ServiceEndpoint}. - * - * @access private - */ - function begin($service_endpoint) - { - $assoc = $this->_getAssociation($service_endpoint); - $r = new Auth_OpenID_AuthRequest($service_endpoint, $assoc); - $r->return_to_args[$this->openid1_nonce_query_arg_name] = - Auth_OpenID_mkNonce(); - - if ($r->message->isOpenID1()) { - $r->return_to_args[$this->openid1_return_to_identifier_name] = - $r->endpoint->claimed_id; - } - - return $r; - } - - /** - * Given an {@link Auth_OpenID_Message}, {@link - * Auth_OpenID_ServiceEndpoint} and optional return_to URL, - * complete OpenID authentication. - * - * @access private - */ - function complete($message, $endpoint, $return_to) - { - $mode = $message->getArg(Auth_OpenID_OPENID_NS, 'mode', - ''); - - $mode_methods = array( - 'cancel' => '_complete_cancel', - 'error' => '_complete_error', - 'setup_needed' => '_complete_setup_needed', - 'id_res' => '_complete_id_res', - ); - - $method = Auth_OpenID::arrayGet($mode_methods, $mode, - '_completeInvalid'); - - return call_user_func_array(array(&$this, $method), - array($message, $endpoint, $return_to)); - } - - /** - * @access private - */ - function _completeInvalid($message, &$endpoint, $unused) - { - $mode = $message->getArg(Auth_OpenID_OPENID_NS, 'mode', - ''); - - return new Auth_OpenID_FailureResponse($endpoint, - sprintf("Invalid openid.mode '%s'", $mode)); - } - - /** - * @access private - */ - function _complete_cancel($message, &$endpoint, $unused) - { - return new Auth_OpenID_CancelResponse($endpoint); - } - - /** - * @access private - */ - function _complete_error($message, &$endpoint, $unused) - { - $error = $message->getArg(Auth_OpenID_OPENID_NS, 'error'); - $contact = $message->getArg(Auth_OpenID_OPENID_NS, 'contact'); - $reference = $message->getArg(Auth_OpenID_OPENID_NS, 'reference'); - - return new Auth_OpenID_FailureResponse($endpoint, $error, - $contact, $reference); - } - - /** - * @access private - */ - function _complete_setup_needed($message, &$endpoint, $unused) - { - if (!$message->isOpenID2()) { - return $this->_completeInvalid($message, $endpoint); - } - - return new Auth_OpenID_SetupNeededResponse($endpoint); - } - - /** - * @access private - */ - function _complete_id_res($message, &$endpoint, $return_to) - { - $user_setup_url = $message->getArg(Auth_OpenID_OPENID1_NS, - 'user_setup_url'); - - if ($this->_checkSetupNeeded($message)) { - return new Auth_OpenID_SetupNeededResponse( - $endpoint, $user_setup_url); - } else { - return $this->_doIdRes($message, $endpoint, $return_to); - } - } - - /** - * @access private - */ - function _checkSetupNeeded($message) - { - // In OpenID 1, we check to see if this is a cancel from - // immediate mode by the presence of the user_setup_url - // parameter. - if ($message->isOpenID1()) { - $user_setup_url = $message->getArg(Auth_OpenID_OPENID1_NS, - 'user_setup_url'); - if ($user_setup_url !== null) { - return true; - } - } - - return false; - } - - /** - * @access private - */ - function _doIdRes($message, $endpoint, $return_to) - { - // Checks for presence of appropriate fields (and checks - // signed list fields) - $result = $this->_idResCheckForFields($message); - - if (Auth_OpenID::isFailure($result)) { - return $result; - } - - if (!$this->_checkReturnTo($message, $return_to)) { - return new Auth_OpenID_FailureResponse(null, - sprintf("return_to does not match return URL. Expected %s, got %s", - $return_to, - $message->getArg(Auth_OpenID_OPENID_NS, 'return_to'))); - } - - // Verify discovery information: - $result = $this->_verifyDiscoveryResults($message, $endpoint); - - if (Auth_OpenID::isFailure($result)) { - return $result; - } - - $endpoint = $result; - - $result = $this->_idResCheckSignature($message, - $endpoint->server_url); - - if (Auth_OpenID::isFailure($result)) { - return $result; - } - - $result = $this->_idResCheckNonce($message, $endpoint); - - if (Auth_OpenID::isFailure($result)) { - return $result; - } - - $signed_list_str = $message->getArg(Auth_OpenID_OPENID_NS, 'signed', - Auth_OpenID_NO_DEFAULT); - if (Auth_OpenID::isFailure($signed_list_str)) { - return $signed_list_str; - } - $signed_list = explode(',', $signed_list_str); - - $signed_fields = Auth_OpenID::addPrefix($signed_list, "openid."); - - return new Auth_OpenID_SuccessResponse($endpoint, $message, - $signed_fields); - - } - - /** - * @access private - */ - function _checkReturnTo($message, $return_to) - { - // Check an OpenID message and its openid.return_to value - // against a return_to URL from an application. Return True - // on success, False on failure. - - // Check the openid.return_to args against args in the - // original message. - $result = Auth_OpenID_GenericConsumer::_verifyReturnToArgs( - $message->toPostArgs()); - if (Auth_OpenID::isFailure($result)) { - return false; - } - - // Check the return_to base URL against the one in the - // message. - $msg_return_to = $message->getArg(Auth_OpenID_OPENID_NS, - 'return_to'); - if (Auth_OpenID::isFailure($return_to)) { - // XXX log me - return false; - } - - $return_to_parts = parse_url(Auth_OpenID_urinorm($return_to)); - $msg_return_to_parts = parse_url(Auth_OpenID_urinorm($msg_return_to)); - - // If port is absent from both, add it so it's equal in the - // check below. - if ((!array_key_exists('port', $return_to_parts)) && - (!array_key_exists('port', $msg_return_to_parts))) { - $return_to_parts['port'] = null; - $msg_return_to_parts['port'] = null; - } - - // If path is absent from both, add it so it's equal in the - // check below. - if ((!array_key_exists('path', $return_to_parts)) && - (!array_key_exists('path', $msg_return_to_parts))) { - $return_to_parts['path'] = null; - $msg_return_to_parts['path'] = null; - } - - // The URL scheme, authority, and path MUST be the same - // between the two URLs. - foreach (array('scheme', 'host', 'port', 'path') as $component) { - // If the url component is absent in either URL, fail. - // There should always be a scheme, host, port, and path. - if (!array_key_exists($component, $return_to_parts)) { - return false; - } - - if (!array_key_exists($component, $msg_return_to_parts)) { - return false; - } - - if (Auth_OpenID::arrayGet($return_to_parts, $component) !== - Auth_OpenID::arrayGet($msg_return_to_parts, $component)) { - return false; - } - } - - return true; - } - - /** - * @access private - */ - function _verifyReturnToArgs($query) - { - // Verify that the arguments in the return_to URL are present in this - // response. - - $message = Auth_OpenID_Message::fromPostArgs($query); - $return_to = $message->getArg(Auth_OpenID_OPENID_NS, 'return_to'); - - if (Auth_OpenID::isFailure($return_to)) { - return $return_to; - } - // XXX: this should be checked by _idResCheckForFields - if (!$return_to) { - return new Auth_OpenID_FailureResponse(null, - "Response has no return_to"); - } - - $parsed_url = parse_url($return_to); - - $q = array(); - if (array_key_exists('query', $parsed_url)) { - $rt_query = $parsed_url['query']; - $q = Auth_OpenID::parse_str($rt_query); - } - - foreach ($q as $rt_key => $rt_value) { - if (!array_key_exists($rt_key, $query)) { - return new Auth_OpenID_FailureResponse(null, - sprintf("return_to parameter %s absent from query", $rt_key)); - } else { - $value = $query[$rt_key]; - if ($rt_value != $value) { - return new Auth_OpenID_FailureResponse(null, - sprintf("parameter %s value %s does not match " . - "return_to value %s", $rt_key, - $value, $rt_value)); - } - } - } - - // Make sure all non-OpenID arguments in the response are also - // in the signed return_to. - $bare_args = $message->getArgs(Auth_OpenID_BARE_NS); - foreach ($bare_args as $key => $value) { - if (Auth_OpenID::arrayGet($q, $key) != $value) { - return new Auth_OpenID_FailureResponse(null, - sprintf("Parameter %s = %s not in return_to URL", - $key, $value)); - } - } - - return true; - } - - /** - * @access private - */ - function _idResCheckSignature($message, $server_url) - { - $assoc_handle = $message->getArg(Auth_OpenID_OPENID_NS, - 'assoc_handle'); - if (Auth_OpenID::isFailure($assoc_handle)) { - return $assoc_handle; - } - - $assoc = $this->store->getAssociation($server_url, $assoc_handle); - - if ($assoc) { - if ($assoc->getExpiresIn() <= 0) { - // XXX: It might be a good idea sometimes to re-start - // the authentication with a new association. Doing it - // automatically opens the possibility for - // denial-of-service by a server that just returns - // expired associations (or really short-lived - // associations) - return new Auth_OpenID_FailureResponse(null, - 'Association with ' . $server_url . ' expired'); - } - - if (!$assoc->checkMessageSignature($message)) { - return new Auth_OpenID_FailureResponse(null, - "Bad signature"); - } - } else { - // It's not an association we know about. Stateless mode - // is our only possible path for recovery. XXX - async - // framework will not want to block on this call to - // _checkAuth. - if (!$this->_checkAuth($message, $server_url)) { - return new Auth_OpenID_FailureResponse(null, - "Server denied check_authentication"); - } - } - - return null; - } - - /** - * @access private - */ - function _verifyDiscoveryResults($message, $endpoint=null) - { - if ($message->getOpenIDNamespace() == Auth_OpenID_OPENID2_NS) { - return $this->_verifyDiscoveryResultsOpenID2($message, - $endpoint); - } else { - return $this->_verifyDiscoveryResultsOpenID1($message, - $endpoint); - } - } - - /** - * @access private - */ - function _verifyDiscoveryResultsOpenID1($message, $endpoint) - { - $claimed_id = $message->getArg(Auth_OpenID_BARE_NS, - $this->openid1_return_to_identifier_name); - - if (($endpoint === null) && ($claimed_id === null)) { - return new Auth_OpenID_FailureResponse($endpoint, - 'When using OpenID 1, the claimed ID must be supplied, ' . - 'either by passing it through as a return_to parameter ' . - 'or by using a session, and supplied to the GenericConsumer ' . - 'as the argument to complete()'); - } else if (($endpoint !== null) && ($claimed_id === null)) { - $claimed_id = $endpoint->claimed_id; - } - - $to_match = new Auth_OpenID_ServiceEndpoint(); - $to_match->type_uris = array(Auth_OpenID_TYPE_1_1); - $to_match->local_id = $message->getArg(Auth_OpenID_OPENID1_NS, - 'identity'); - - // Restore delegate information from the initiation phase - $to_match->claimed_id = $claimed_id; - - if ($to_match->local_id === null) { - return new Auth_OpenID_FailureResponse($endpoint, - "Missing required field openid.identity"); - } - - $to_match_1_0 = $to_match->copy(); - $to_match_1_0->type_uris = array(Auth_OpenID_TYPE_1_0); - - if ($endpoint !== null) { - $result = $this->_verifyDiscoverySingle($endpoint, $to_match); - - if (is_a($result, 'Auth_OpenID_TypeURIMismatch')) { - $result = $this->_verifyDiscoverySingle($endpoint, - $to_match_1_0); - } - - if (Auth_OpenID::isFailure($result)) { - // oidutil.log("Error attempting to use stored - // discovery information: " + str(e)) - // oidutil.log("Attempting discovery to - // verify endpoint") - } else { - return $endpoint; - } - } - - // Endpoint is either bad (failed verification) or None - return $this->_discoverAndVerify($to_match->claimed_id, - array($to_match, $to_match_1_0)); - } - - /** - * @access private - */ - function _verifyDiscoverySingle($endpoint, $to_match) - { - // Every type URI that's in the to_match endpoint has to be - // present in the discovered endpoint. - foreach ($to_match->type_uris as $type_uri) { - if (!$endpoint->usesExtension($type_uri)) { - return new Auth_OpenID_TypeURIMismatch($endpoint, - "Required type ".$type_uri." not present"); - } - } - - // Fragments do not influence discovery, so we can't compare a - // claimed identifier with a fragment to discovered - // information. - list($defragged_claimed_id, $_) = - Auth_OpenID::urldefrag($to_match->claimed_id); - - if ($defragged_claimed_id != $endpoint->claimed_id) { - return new Auth_OpenID_FailureResponse($endpoint, - sprintf('Claimed ID does not match (different subjects!), ' . - 'Expected %s, got %s', $defragged_claimed_id, - $endpoint->claimed_id)); - } - - if ($to_match->getLocalID() != $endpoint->getLocalID()) { - return new Auth_OpenID_FailureResponse($endpoint, - sprintf('local_id mismatch. Expected %s, got %s', - $to_match->getLocalID(), $endpoint->getLocalID())); - } - - // If the server URL is None, this must be an OpenID 1 - // response, because op_endpoint is a required parameter in - // OpenID 2. In that case, we don't actually care what the - // discovered server_url is, because signature checking or - // check_auth should take care of that check for us. - if ($to_match->server_url === null) { - if ($to_match->preferredNamespace() != Auth_OpenID_OPENID1_NS) { - return new Auth_OpenID_FailureResponse($endpoint, - "Preferred namespace mismatch (bug)"); - } - } else if ($to_match->server_url != $endpoint->server_url) { - return new Auth_OpenID_FailureResponse($endpoint, - sprintf('OP Endpoint mismatch. Expected %s, got %s', - $to_match->server_url, $endpoint->server_url)); - } - - return null; - } - - /** - * @access private - */ - function _verifyDiscoveryResultsOpenID2($message, $endpoint) - { - $to_match = new Auth_OpenID_ServiceEndpoint(); - $to_match->type_uris = array(Auth_OpenID_TYPE_2_0); - $to_match->claimed_id = $message->getArg(Auth_OpenID_OPENID2_NS, - 'claimed_id'); - - $to_match->local_id = $message->getArg(Auth_OpenID_OPENID2_NS, - 'identity'); - - $to_match->server_url = $message->getArg(Auth_OpenID_OPENID2_NS, - 'op_endpoint'); - - if ($to_match->server_url === null) { - return new Auth_OpenID_FailureResponse($endpoint, - "OP Endpoint URL missing"); - } - - // claimed_id and identifier must both be present or both be - // absent - if (($to_match->claimed_id === null) && - ($to_match->local_id !== null)) { - return new Auth_OpenID_FailureResponse($endpoint, - 'openid.identity is present without openid.claimed_id'); - } - - if (($to_match->claimed_id !== null) && - ($to_match->local_id === null)) { - return new Auth_OpenID_FailureResponse($endpoint, - 'openid.claimed_id is present without openid.identity'); - } - - if ($to_match->claimed_id === null) { - // This is a response without identifiers, so there's - // really no checking that we can do, so return an - // endpoint that's for the specified `openid.op_endpoint' - return Auth_OpenID_ServiceEndpoint::fromOPEndpointURL( - $to_match->server_url); - } - - if (!$endpoint) { - // The claimed ID doesn't match, so we have to do - // discovery again. This covers not using sessions, OP - // identifier endpoints and responses that didn't match - // the original request. - // oidutil.log('No pre-discovered information supplied.') - return $this->_discoverAndVerify($to_match->claimed_id, - array($to_match)); - } else { - - // The claimed ID matches, so we use the endpoint that we - // discovered in initiation. This should be the most - // common case. - $result = $this->_verifyDiscoverySingle($endpoint, $to_match); - - if (Auth_OpenID::isFailure($result)) { - $endpoint = $this->_discoverAndVerify($to_match->claimed_id, - array($to_match)); - if (Auth_OpenID::isFailure($endpoint)) { - return $endpoint; - } - } - } - - // The endpoint we return should have the claimed ID from the - // message we just verified, fragment and all. - if ($endpoint->claimed_id != $to_match->claimed_id) { - $endpoint->claimed_id = $to_match->claimed_id; - } - - return $endpoint; - } - - /** - * @access private - */ - function _discoverAndVerify($claimed_id, $to_match_endpoints) - { - // oidutil.log('Performing discovery on %s' % (claimed_id,)) - list($unused, $services) = call_user_func($this->discoverMethod, - $claimed_id, - $this->fetcher); - - if (!$services) { - return new Auth_OpenID_FailureResponse(null, - sprintf("No OpenID information found at %s", - $claimed_id)); - } - - return $this->_verifyDiscoveryServices($claimed_id, $services, - $to_match_endpoints); - } - - /** - * @access private - */ - function _verifyDiscoveryServices($claimed_id, - &$services, &$to_match_endpoints) - { - // Search the services resulting from discovery to find one - // that matches the information from the assertion - - foreach ($services as $endpoint) { - foreach ($to_match_endpoints as $to_match_endpoint) { - $result = $this->_verifyDiscoverySingle($endpoint, - $to_match_endpoint); - - if (!Auth_OpenID::isFailure($result)) { - // It matches, so discover verification has - // succeeded. Return this endpoint. - return $endpoint; - } - } - } - - return new Auth_OpenID_FailureResponse(null, - sprintf('No matching endpoint found after discovering %s', - $claimed_id)); - } - - /** - * Extract the nonce from an OpenID 1 response. Return the nonce - * from the BARE_NS since we independently check the return_to - * arguments are the same as those in the response message. - * - * See the openid1_nonce_query_arg_name class variable - * - * @returns $nonce The nonce as a string or null - * - * @access private - */ - function _idResGetNonceOpenID1($message, $endpoint) - { - return $message->getArg(Auth_OpenID_BARE_NS, - $this->openid1_nonce_query_arg_name); - } - - /** - * @access private - */ - function _idResCheckNonce($message, $endpoint) - { - if ($message->isOpenID1()) { - // This indicates that the nonce was generated by the consumer - $nonce = $this->_idResGetNonceOpenID1($message, $endpoint); - $server_url = ''; - } else { - $nonce = $message->getArg(Auth_OpenID_OPENID2_NS, - 'response_nonce'); - - $server_url = $endpoint->server_url; - } - - if ($nonce === null) { - return new Auth_OpenID_FailureResponse($endpoint, - "Nonce missing from response"); - } - - $parts = Auth_OpenID_splitNonce($nonce); - - if ($parts === null) { - return new Auth_OpenID_FailureResponse($endpoint, - "Malformed nonce in response"); - } - - list($timestamp, $salt) = $parts; - - if (!$this->store->useNonce($server_url, $timestamp, $salt)) { - return new Auth_OpenID_FailureResponse($endpoint, - "Nonce already used or out of range"); - } - - return null; - } - - /** - * @access private - */ - function _idResCheckForFields($message) - { - $basic_fields = array('return_to', 'assoc_handle', 'sig', 'signed'); - $basic_sig_fields = array('return_to', 'identity'); - - $require_fields = array( - Auth_OpenID_OPENID2_NS => array_merge($basic_fields, - array('op_endpoint')), - - Auth_OpenID_OPENID1_NS => array_merge($basic_fields, - array('identity')) - ); - - $require_sigs = array( - Auth_OpenID_OPENID2_NS => array_merge($basic_sig_fields, - array('response_nonce', - 'claimed_id', - 'assoc_handle')), - Auth_OpenID_OPENID1_NS => array_merge($basic_sig_fields, - array('nonce')) - ); - - foreach ($require_fields[$message->getOpenIDNamespace()] as $field) { - if (!$message->hasKey(Auth_OpenID_OPENID_NS, $field)) { - return new Auth_OpenID_FailureResponse(null, - "Missing required field '".$field."'"); - } - } - - $signed_list_str = $message->getArg(Auth_OpenID_OPENID_NS, - 'signed', - Auth_OpenID_NO_DEFAULT); - if (Auth_OpenID::isFailure($signed_list_str)) { - return $signed_list_str; - } - $signed_list = explode(',', $signed_list_str); - - foreach ($require_sigs[$message->getOpenIDNamespace()] as $field) { - // Field is present and not in signed list - if ($message->hasKey(Auth_OpenID_OPENID_NS, $field) && - (!in_array($field, $signed_list))) { - return new Auth_OpenID_FailureResponse(null, - "'".$field."' not signed"); - } - } - - return null; - } - - /** - * @access private - */ - function _checkAuth($message, $server_url) - { - $request = $this->_createCheckAuthRequest($message); - if ($request === null) { - return false; - } - - $resp_message = $this->_makeKVPost($request, $server_url); - if (($resp_message === null) || - (is_a($resp_message, 'Auth_OpenID_ServerErrorContainer'))) { - return false; - } - - return $this->_processCheckAuthResponse($resp_message, $server_url); - } - - /** - * @access private - */ - function _createCheckAuthRequest($message) - { - $signed = $message->getArg(Auth_OpenID_OPENID_NS, 'signed'); - if ($signed) { - foreach (explode(',', $signed) as $k) { - $value = $message->getAliasedArg($k); - if ($value === null) { - return null; - } - } - } - $ca_message = $message->copy(); - $ca_message->setArg(Auth_OpenID_OPENID_NS, 'mode', - 'check_authentication'); - return $ca_message; - } - - /** - * @access private - */ - function _processCheckAuthResponse($response, $server_url) - { - $is_valid = $response->getArg(Auth_OpenID_OPENID_NS, 'is_valid', - 'false'); - - $invalidate_handle = $response->getArg(Auth_OpenID_OPENID_NS, - 'invalidate_handle'); - - if ($invalidate_handle !== null) { - $this->store->removeAssociation($server_url, - $invalidate_handle); - } - - if ($is_valid == 'true') { - return true; - } - - return false; - } - - /** - * Adapt a POST response to a Message. - * - * @param $response Result of a POST to an OpenID endpoint. - * - * @access private - */ - function _httpResponseToMessage($response, $server_url) - { - // Should this function be named Message.fromHTTPResponse instead? - $response_message = Auth_OpenID_Message::fromKVForm($response->body); - - if ($response->status == 400) { - return Auth_OpenID_ServerErrorContainer::fromMessage( - $response_message); - } else if ($response->status != 200 and $response->status != 206) { - return null; - } - - return $response_message; - } - - /** - * @access private - */ - function _makeKVPost($message, $server_url) - { - $body = $message->toURLEncoded(); - $resp = $this->fetcher->post($server_url, $body); - - if ($resp === null) { - return null; - } - - return $this->_httpResponseToMessage($resp, $server_url); - } - - /** - * @access private - */ - function _getAssociation($endpoint) - { - if (!$this->_use_assocs) { - return null; - } - - $assoc = $this->store->getAssociation($endpoint->server_url); - - if (($assoc === null) || - ($assoc->getExpiresIn() <= 0)) { - - $assoc = $this->_negotiateAssociation($endpoint); - - if ($assoc !== null) { - $this->store->storeAssociation($endpoint->server_url, - $assoc); - } - } - - return $assoc; - } - - /** - * Handle ServerErrors resulting from association requests. - * - * @return $result If server replied with an C{unsupported-type} - * error, return a tuple of supported C{association_type}, - * C{session_type}. Otherwise logs the error and returns null. - * - * @access private - */ - function _extractSupportedAssociationType(&$server_error, &$endpoint, - $assoc_type) - { - // Any error message whose code is not 'unsupported-type' - // should be considered a total failure. - if (($server_error->error_code != 'unsupported-type') || - ($server_error->message->isOpenID1())) { - return null; - } - - // The server didn't like the association/session type that we - // sent, and it sent us back a message that might tell us how - // to handle it. - - // Extract the session_type and assoc_type from the error - // message - $assoc_type = $server_error->message->getArg(Auth_OpenID_OPENID_NS, - 'assoc_type'); - - $session_type = $server_error->message->getArg(Auth_OpenID_OPENID_NS, - 'session_type'); - - if (($assoc_type === null) || ($session_type === null)) { - return null; - } else if (!$this->negotiator->isAllowed($assoc_type, - $session_type)) { - return null; - } else { - return array($assoc_type, $session_type); - } - } - - /** - * @access private - */ - function _negotiateAssociation($endpoint) - { - // Get our preferred session/association type from the negotiatior. - list($assoc_type, $session_type) = $this->negotiator->getAllowedType(); - - $assoc = $this->_requestAssociation( - $endpoint, $assoc_type, $session_type); - - if (Auth_OpenID::isFailure($assoc)) { - return null; - } - - if (is_a($assoc, 'Auth_OpenID_ServerErrorContainer')) { - $why = $assoc; - - $supportedTypes = $this->_extractSupportedAssociationType( - $why, $endpoint, $assoc_type); - - if ($supportedTypes !== null) { - list($assoc_type, $session_type) = $supportedTypes; - - // Attempt to create an association from the assoc_type - // and session_type that the server told us it - // supported. - $assoc = $this->_requestAssociation( - $endpoint, $assoc_type, $session_type); - - if (is_a($assoc, 'Auth_OpenID_ServerErrorContainer')) { - // Do not keep trying, since it rejected the - // association type that it told us to use. - // oidutil.log('Server %s refused its suggested association - // 'type: session_type=%s, assoc_type=%s' - // % (endpoint.server_url, session_type, - // assoc_type)) - return null; - } else { - return $assoc; - } - } else { - return null; - } - } else { - return $assoc; - } - } - - /** - * @access private - */ - function _requestAssociation($endpoint, $assoc_type, $session_type) - { - list($assoc_session, $args) = $this->_createAssociateRequest( - $endpoint, $assoc_type, $session_type); - - $response_message = $this->_makeKVPost($args, $endpoint->server_url); - - if ($response_message === null) { - // oidutil.log('openid.associate request failed: %s' % (why[0],)) - return null; - } else if (is_a($response_message, - 'Auth_OpenID_ServerErrorContainer')) { - return $response_message; - } - - return $this->_extractAssociation($response_message, $assoc_session); - } - - /** - * @access private - */ - function _extractAssociation(&$assoc_response, &$assoc_session) - { - // Extract the common fields from the response, raising an - // exception if they are not found - $assoc_type = $assoc_response->getArg( - Auth_OpenID_OPENID_NS, 'assoc_type', - Auth_OpenID_NO_DEFAULT); - - if (Auth_OpenID::isFailure($assoc_type)) { - return $assoc_type; - } - - $assoc_handle = $assoc_response->getArg( - Auth_OpenID_OPENID_NS, 'assoc_handle', - Auth_OpenID_NO_DEFAULT); - - if (Auth_OpenID::isFailure($assoc_handle)) { - return $assoc_handle; - } - - // expires_in is a base-10 string. The Python parsing will - // accept literals that have whitespace around them and will - // accept negative values. Neither of these are really in-spec, - // but we think it's OK to accept them. - $expires_in_str = $assoc_response->getArg( - Auth_OpenID_OPENID_NS, 'expires_in', - Auth_OpenID_NO_DEFAULT); - - if (Auth_OpenID::isFailure($expires_in_str)) { - return $expires_in_str; - } - - $expires_in = Auth_OpenID::intval($expires_in_str); - if ($expires_in === false) { - - $err = sprintf("Could not parse expires_in from association ". - "response %s", print_r($assoc_response, true)); - return new Auth_OpenID_FailureResponse(null, $err); - } - - // OpenID 1 has funny association session behaviour. - if ($assoc_response->isOpenID1()) { - $session_type = $this->_getOpenID1SessionType($assoc_response); - } else { - $session_type = $assoc_response->getArg( - Auth_OpenID_OPENID2_NS, 'session_type', - Auth_OpenID_NO_DEFAULT); - - if (Auth_OpenID::isFailure($session_type)) { - return $session_type; - } - } - - // Session type mismatch - if ($assoc_session->session_type != $session_type) { - if ($assoc_response->isOpenID1() && - ($session_type == 'no-encryption')) { - // In OpenID 1, any association request can result in - // a 'no-encryption' association response. Setting - // assoc_session to a new no-encryption session should - // make the rest of this function work properly for - // that case. - $assoc_session = new Auth_OpenID_PlainTextConsumerSession(); - } else { - // Any other mismatch, regardless of protocol version - // results in the failure of the association session - // altogether. - return null; - } - } - - // Make sure assoc_type is valid for session_type - if (!in_array($assoc_type, $assoc_session->allowed_assoc_types)) { - return null; - } - - // Delegate to the association session to extract the secret - // from the response, however is appropriate for that session - // type. - $secret = $assoc_session->extractSecret($assoc_response); - - if ($secret === null) { - return null; - } - - return Auth_OpenID_Association::fromExpiresIn( - $expires_in, $assoc_handle, $secret, $assoc_type); - } - - /** - * @access private - */ - function _createAssociateRequest($endpoint, $assoc_type, $session_type) - { - if (array_key_exists($session_type, $this->session_types)) { - $session_type_class = $this->session_types[$session_type]; - - if (is_callable($session_type_class)) { - $assoc_session = $session_type_class(); - } else { - $assoc_session = new $session_type_class(); - } - } else { - return null; - } - - $args = array( - 'mode' => 'associate', - 'assoc_type' => $assoc_type); - - if (!$endpoint->compatibilityMode()) { - $args['ns'] = Auth_OpenID_OPENID2_NS; - } - - // Leave out the session type if we're in compatibility mode - // *and* it's no-encryption. - if ((!$endpoint->compatibilityMode()) || - ($assoc_session->session_type != 'no-encryption')) { - $args['session_type'] = $assoc_session->session_type; - } - - $args = array_merge($args, $assoc_session->getRequest()); - $message = Auth_OpenID_Message::fromOpenIDArgs($args); - return array($assoc_session, $message); - } - - /** - * Given an association response message, extract the OpenID 1.X - * session type. - * - * This function mostly takes care of the 'no-encryption' default - * behavior in OpenID 1. - * - * If the association type is plain-text, this function will - * return 'no-encryption' - * - * @access private - * @return $typ The association type for this message - */ - function _getOpenID1SessionType($assoc_response) - { - // If it's an OpenID 1 message, allow session_type to default - // to None (which signifies "no-encryption") - $session_type = $assoc_response->getArg(Auth_OpenID_OPENID1_NS, - 'session_type'); - - // Handle the differences between no-encryption association - // respones in OpenID 1 and 2: - - // no-encryption is not really a valid session type for OpenID - // 1, but we'll accept it anyway, while issuing a warning. - if ($session_type == 'no-encryption') { - // oidutil.log('WARNING: OpenID server sent "no-encryption"' - // 'for OpenID 1.X') - } else if (($session_type == '') || ($session_type === null)) { - // Missing or empty session type is the way to flag a - // 'no-encryption' response. Change the session type to - // 'no-encryption' so that it can be handled in the same - // way as OpenID 2 'no-encryption' respones. - $session_type = 'no-encryption'; - } - - return $session_type; - } -} - -/** - * This class represents an authentication request from a consumer to - * an OpenID server. - * - * @package OpenID - */ -class Auth_OpenID_AuthRequest { - - /** - * Initialize an authentication request with the specified token, - * association, and endpoint. - * - * Users of this library should not create instances of this - * class. Instances of this class are created by the library when - * needed. - */ - function Auth_OpenID_AuthRequest(&$endpoint, $assoc) - { - $this->assoc = $assoc; - $this->endpoint =& $endpoint; - $this->return_to_args = array(); - $this->message = new Auth_OpenID_Message( - $endpoint->preferredNamespace()); - $this->_anonymous = false; - } - - /** - * Add an extension to this checkid request. - * - * $extension_request: An object that implements the extension - * request interface for adding arguments to an OpenID message. - */ - function addExtension(&$extension_request) - { - $extension_request->toMessage($this->message); - } - - /** - * Add an extension argument to this OpenID authentication - * request. - * - * Use caution when adding arguments, because they will be - * URL-escaped and appended to the redirect URL, which can easily - * get quite long. - * - * @param string $namespace The namespace for the extension. For - * example, the simple registration extension uses the namespace - * 'sreg'. - * - * @param string $key The key within the extension namespace. For - * example, the nickname field in the simple registration - * extension's key is 'nickname'. - * - * @param string $value The value to provide to the server for - * this argument. - */ - function addExtensionArg($namespace, $key, $value) - { - return $this->message->setArg($namespace, $key, $value); - } - - /** - * Set whether this request should be made anonymously. If a - * request is anonymous, the identifier will not be sent in the - * request. This is only useful if you are making another kind of - * request with an extension in this request. - * - * Anonymous requests are not allowed when the request is made - * with OpenID 1. - */ - function setAnonymous($is_anonymous) - { - if ($is_anonymous && $this->message->isOpenID1()) { - return false; - } else { - $this->_anonymous = $is_anonymous; - return true; - } - } - - /** - * Produce a {@link Auth_OpenID_Message} representing this - * request. - * - * @param string $realm The URL (or URL pattern) that identifies - * your web site to the user when she is authorizing it. - * - * @param string $return_to The URL that the OpenID provider will - * send the user back to after attempting to verify her identity. - * - * Not specifying a return_to URL means that the user will not be - * returned to the site issuing the request upon its completion. - * - * @param bool $immediate If true, the OpenID provider is to send - * back a response immediately, useful for behind-the-scenes - * authentication attempts. Otherwise the OpenID provider may - * engage the user before providing a response. This is the - * default case, as the user may need to provide credentials or - * approve the request before a positive response can be sent. - */ - function getMessage($realm, $return_to=null, $immediate=false) - { - if ($return_to) { - $return_to = Auth_OpenID::appendArgs($return_to, - $this->return_to_args); - } else if ($immediate) { - // raise ValueError( - // '"return_to" is mandatory when - //using "checkid_immediate"') - return new Auth_OpenID_FailureResponse(null, - "'return_to' is mandatory when using checkid_immediate"); - } else if ($this->message->isOpenID1()) { - // raise ValueError('"return_to" is - // mandatory for OpenID 1 requests') - return new Auth_OpenID_FailureResponse(null, - "'return_to' is mandatory for OpenID 1 requests"); - } else if ($this->return_to_args) { - // raise ValueError('extra "return_to" arguments - // were specified, but no return_to was specified') - return new Auth_OpenID_FailureResponse(null, - "extra 'return_to' arguments where specified, " . - "but no return_to was specified"); - } - - if ($immediate) { - $mode = 'checkid_immediate'; - } else { - $mode = 'checkid_setup'; - } - - $message = $this->message->copy(); - if ($message->isOpenID1()) { - $realm_key = 'trust_root'; - } else { - $realm_key = 'realm'; - } - - $message->updateArgs(Auth_OpenID_OPENID_NS, - array( - $realm_key => $realm, - 'mode' => $mode, - 'return_to' => $return_to)); - - if (!$this->_anonymous) { - if ($this->endpoint->isOPIdentifier()) { - // This will never happen when we're in compatibility - // mode, as long as isOPIdentifier() returns False - // whenever preferredNamespace() returns OPENID1_NS. - $claimed_id = $request_identity = - Auth_OpenID_IDENTIFIER_SELECT; - } else { - $request_identity = $this->endpoint->getLocalID(); - $claimed_id = $this->endpoint->claimed_id; - } - - // This is true for both OpenID 1 and 2 - $message->setArg(Auth_OpenID_OPENID_NS, 'identity', - $request_identity); - - if ($message->isOpenID2()) { - $message->setArg(Auth_OpenID_OPENID2_NS, 'claimed_id', - $claimed_id); - } - } - - if ($this->assoc) { - $message->setArg(Auth_OpenID_OPENID_NS, 'assoc_handle', - $this->assoc->handle); - } - - return $message; - } - - function redirectURL($realm, $return_to = null, - $immediate = false) - { - $message = $this->getMessage($realm, $return_to, $immediate); - - if (Auth_OpenID::isFailure($message)) { - return $message; - } - - return $message->toURL($this->endpoint->server_url); - } - - /** - * Get html for a form to submit this request to the IDP. - * - * form_tag_attrs: An array of attributes to be added to the form - * tag. 'accept-charset' and 'enctype' have defaults that can be - * overridden. If a value is supplied for 'action' or 'method', it - * will be replaced. - */ - function formMarkup($realm, $return_to=null, $immediate=false, - $form_tag_attrs=null) - { - $message = $this->getMessage($realm, $return_to, $immediate); - - if (Auth_OpenID::isFailure($message)) { - return $message; - } - - return $message->toFormMarkup($this->endpoint->server_url, - $form_tag_attrs); - } - - /** - * Get a complete html document that will autosubmit the request - * to the IDP. - * - * Wraps formMarkup. See the documentation for that function. - */ - function htmlMarkup($realm, $return_to=null, $immediate=false, - $form_tag_attrs=null) - { - $form = $this->formMarkup($realm, $return_to, $immediate, - $form_tag_attrs); - - if (Auth_OpenID::isFailure($form)) { - return $form; - } - return Auth_OpenID::autoSubmitHTML($form); - } - - function shouldSendRedirect() - { - return $this->endpoint->compatibilityMode(); - } -} - -/** - * The base class for responses from the Auth_OpenID_Consumer. - * - * @package OpenID - */ -class Auth_OpenID_ConsumerResponse { - var $status = null; - - function setEndpoint($endpoint) - { - $this->endpoint = $endpoint; - if ($endpoint === null) { - $this->identity_url = null; - } else { - $this->identity_url = $endpoint->claimed_id; - } - } - - /** - * Return the display identifier for this response. - * - * The display identifier is related to the Claimed Identifier, but the - * two are not always identical. The display identifier is something the - * user should recognize as what they entered, whereas the response's - * claimed identifier (in the identity_url attribute) may have extra - * information for better persistence. - * - * URLs will be stripped of their fragments for display. XRIs will - * display the human-readable identifier (i-name) instead of the - * persistent identifier (i-number). - * - * Use the display identifier in your user interface. Use - * identity_url for querying your database or authorization server. - * - */ - function getDisplayIdentifier() - { - if ($this->endpoint !== null) { - return $this->endpoint->getDisplayIdentifier(); - } - return null; - } -} - -/** - * A response with a status of Auth_OpenID_SUCCESS. Indicates that - * this request is a successful acknowledgement from the OpenID server - * that the supplied URL is, indeed controlled by the requesting - * agent. This has three relevant attributes: - * - * claimed_id - The identity URL that has been authenticated - * - * signed_args - The arguments in the server's response that were - * signed and verified. - * - * status - Auth_OpenID_SUCCESS. - * - * @package OpenID - */ -class Auth_OpenID_SuccessResponse extends Auth_OpenID_ConsumerResponse { - var $status = Auth_OpenID_SUCCESS; - - /** - * @access private - */ - function Auth_OpenID_SuccessResponse($endpoint, $message, $signed_args=null) - { - $this->endpoint = $endpoint; - $this->identity_url = $endpoint->claimed_id; - $this->signed_args = $signed_args; - $this->message = $message; - - if ($this->signed_args === null) { - $this->signed_args = array(); - } - } - - /** - * Extract signed extension data from the server's response. - * - * @param string $prefix The extension namespace from which to - * extract the extension data. - */ - function extensionResponse($namespace_uri, $require_signed) - { - if ($require_signed) { - return $this->getSignedNS($namespace_uri); - } else { - return $this->message->getArgs($namespace_uri); - } - } - - function isOpenID1() - { - return $this->message->isOpenID1(); - } - - function isSigned($ns_uri, $ns_key) - { - // Return whether a particular key is signed, regardless of - // its namespace alias - return in_array($this->message->getKey($ns_uri, $ns_key), - $this->signed_args); - } - - function getSigned($ns_uri, $ns_key, $default = null) - { - // Return the specified signed field if available, otherwise - // return default - if ($this->isSigned($ns_uri, $ns_key)) { - return $this->message->getArg($ns_uri, $ns_key, $default); - } else { - return $default; - } - } - - function getSignedNS($ns_uri) - { - $args = array(); - - $msg_args = $this->message->getArgs($ns_uri); - if (Auth_OpenID::isFailure($msg_args)) { - return null; - } - - foreach ($msg_args as $key => $value) { - if (!$this->isSigned($ns_uri, $key)) { - return null; - } - } - - return $msg_args; - } - - /** - * Get the openid.return_to argument from this response. - * - * This is useful for verifying that this request was initiated by - * this consumer. - * - * @return string $return_to The return_to URL supplied to the - * server on the initial request, or null if the response did not - * contain an 'openid.return_to' argument. - */ - function getReturnTo() - { - return $this->getSigned(Auth_OpenID_OPENID_NS, 'return_to'); - } -} - -/** - * A response with a status of Auth_OpenID_FAILURE. Indicates that the - * OpenID protocol has failed. This could be locally or remotely - * triggered. This has three relevant attributes: - * - * claimed_id - The identity URL for which authentication was - * attempted, if it can be determined. Otherwise, null. - * - * message - A message indicating why the request failed, if one is - * supplied. Otherwise, null. - * - * status - Auth_OpenID_FAILURE. - * - * @package OpenID - */ -class Auth_OpenID_FailureResponse extends Auth_OpenID_ConsumerResponse { - var $status = Auth_OpenID_FAILURE; - - function Auth_OpenID_FailureResponse($endpoint, $message = null, - $contact = null, $reference = null) - { - $this->setEndpoint($endpoint); - $this->message = $message; - $this->contact = $contact; - $this->reference = $reference; - } -} - -/** - * A specific, internal failure used to detect type URI mismatch. - * - * @package OpenID - */ -class Auth_OpenID_TypeURIMismatch extends Auth_OpenID_FailureResponse { -} - -/** - * Exception that is raised when the server returns a 400 response - * code to a direct request. - * - * @package OpenID - */ -class Auth_OpenID_ServerErrorContainer { - function Auth_OpenID_ServerErrorContainer($error_text, - $error_code, - $message) - { - $this->error_text = $error_text; - $this->error_code = $error_code; - $this->message = $message; - } - - /** - * @access private - */ - function fromMessage($message) - { - $error_text = $message->getArg( - Auth_OpenID_OPENID_NS, 'error', ''); - $error_code = $message->getArg(Auth_OpenID_OPENID_NS, 'error_code'); - return new Auth_OpenID_ServerErrorContainer($error_text, - $error_code, - $message); - } -} - -/** - * A response with a status of Auth_OpenID_CANCEL. Indicates that the - * user cancelled the OpenID authentication request. This has two - * relevant attributes: - * - * claimed_id - The identity URL for which authentication was - * attempted, if it can be determined. Otherwise, null. - * - * status - Auth_OpenID_SUCCESS. - * - * @package OpenID - */ -class Auth_OpenID_CancelResponse extends Auth_OpenID_ConsumerResponse { - var $status = Auth_OpenID_CANCEL; - - function Auth_OpenID_CancelResponse($endpoint) - { - $this->setEndpoint($endpoint); - } -} - -/** - * A response with a status of Auth_OpenID_SETUP_NEEDED. Indicates - * that the request was in immediate mode, and the server is unable to - * authenticate the user without further interaction. - * - * claimed_id - The identity URL for which authentication was - * attempted. - * - * setup_url - A URL that can be used to send the user to the server - * to set up for authentication. The user should be redirected in to - * the setup_url, either in the current window or in a new browser - * window. Null in OpenID 2. - * - * status - Auth_OpenID_SETUP_NEEDED. - * - * @package OpenID - */ -class Auth_OpenID_SetupNeededResponse extends Auth_OpenID_ConsumerResponse { - var $status = Auth_OpenID_SETUP_NEEDED; - - function Auth_OpenID_SetupNeededResponse($endpoint, - $setup_url = null) - { - $this->setEndpoint($endpoint); - $this->setup_url = $setup_url; - } -} - -?> diff --git a/_darcs/pristine/extlib/Auth/OpenID/CryptUtil.php b/_darcs/pristine/extlib/Auth/OpenID/CryptUtil.php deleted file mode 100644 index aacc3cd397..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/CryptUtil.php +++ /dev/null @@ -1,109 +0,0 @@ - - * @copyright 2005-2008 Janrain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - */ - -if (!defined('Auth_OpenID_RAND_SOURCE')) { - /** - * The filename for a source of random bytes. Define this yourself - * if you have a different source of randomness. - */ - define('Auth_OpenID_RAND_SOURCE', '/dev/urandom'); -} - -class Auth_OpenID_CryptUtil { - /** - * Get the specified number of random bytes. - * - * Attempts to use a cryptographically secure (not predictable) - * source of randomness if available. If there is no high-entropy - * randomness source available, it will fail. As a last resort, - * for non-critical systems, define - * Auth_OpenID_RAND_SOURCE as null, and - * the code will fall back on a pseudo-random number generator. - * - * @param int $num_bytes The length of the return value - * @return string $bytes random bytes - */ - function getBytes($num_bytes) - { - static $f = null; - $bytes = ''; - if ($f === null) { - if (Auth_OpenID_RAND_SOURCE === null) { - $f = false; - } else { - $f = @fopen(Auth_OpenID_RAND_SOURCE, "r"); - if ($f === false) { - $msg = 'Define Auth_OpenID_RAND_SOURCE as null to ' . - ' continue with an insecure random number generator.'; - trigger_error($msg, E_USER_ERROR); - } - } - } - if ($f === false) { - // pseudorandom used - $bytes = ''; - for ($i = 0; $i < $num_bytes; $i += 4) { - $bytes .= pack('L', mt_rand()); - } - $bytes = substr($bytes, 0, $num_bytes); - } else { - $bytes = fread($f, $num_bytes); - } - return $bytes; - } - - /** - * Produce a string of length random bytes, chosen from chrs. If - * $chrs is null, the resulting string may contain any characters. - * - * @param integer $length The length of the resulting - * randomly-generated string - * @param string $chrs A string of characters from which to choose - * to build the new string - * @return string $result A string of randomly-chosen characters - * from $chrs - */ - function randomString($length, $population = null) - { - if ($population === null) { - return Auth_OpenID_CryptUtil::getBytes($length); - } - - $popsize = strlen($population); - - if ($popsize > 256) { - $msg = 'More than 256 characters supplied to ' . __FUNCTION__; - trigger_error($msg, E_USER_ERROR); - } - - $duplicate = 256 % $popsize; - - $str = ""; - for ($i = 0; $i < $length; $i++) { - do { - $n = ord(Auth_OpenID_CryptUtil::getBytes(1)); - } while ($n < $duplicate); - - $n %= $popsize; - $str .= $population[$n]; - } - - return $str; - } -} - -?> \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/DatabaseConnection.php b/_darcs/pristine/extlib/Auth/OpenID/DatabaseConnection.php deleted file mode 100644 index 9db6e0eb3f..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/DatabaseConnection.php +++ /dev/null @@ -1,131 +0,0 @@ - - * @copyright 2005-2008 Janrain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - */ - -/** - * An empty base class intended to emulate PEAR connection - * functionality in applications that supply their own database - * abstraction mechanisms. See {@link Auth_OpenID_SQLStore} for more - * information. You should subclass this class if you need to create - * an SQL store that needs to access its database using an - * application's database abstraction layer instead of a PEAR database - * connection. Any subclass of Auth_OpenID_DatabaseConnection MUST - * adhere to the interface specified here. - * - * @package OpenID - */ -class Auth_OpenID_DatabaseConnection { - /** - * Sets auto-commit mode on this database connection. - * - * @param bool $mode True if auto-commit is to be used; false if - * not. - */ - function autoCommit($mode) - { - } - - /** - * Run an SQL query with the specified parameters, if any. - * - * @param string $sql An SQL string with placeholders. The - * placeholders are assumed to be specific to the database engine - * for this connection. - * - * @param array $params An array of parameters to insert into the - * SQL string using this connection's escaping mechanism. - * - * @return mixed $result The result of calling this connection's - * internal query function. The type of result depends on the - * underlying database engine. This method is usually used when - * the result of a query is not important, like a DDL query. - */ - function query($sql, $params = array()) - { - } - - /** - * Starts a transaction on this connection, if supported. - */ - function begin() - { - } - - /** - * Commits a transaction on this connection, if supported. - */ - function commit() - { - } - - /** - * Performs a rollback on this connection, if supported. - */ - function rollback() - { - } - - /** - * Run an SQL query and return the first column of the first row - * of the result set, if any. - * - * @param string $sql An SQL string with placeholders. The - * placeholders are assumed to be specific to the database engine - * for this connection. - * - * @param array $params An array of parameters to insert into the - * SQL string using this connection's escaping mechanism. - * - * @return mixed $result The value of the first column of the - * first row of the result set. False if no such result was - * found. - */ - function getOne($sql, $params = array()) - { - } - - /** - * Run an SQL query and return the first row of the result set, if - * any. - * - * @param string $sql An SQL string with placeholders. The - * placeholders are assumed to be specific to the database engine - * for this connection. - * - * @param array $params An array of parameters to insert into the - * SQL string using this connection's escaping mechanism. - * - * @return array $result The first row of the result set, if any, - * keyed on column name. False if no such result was found. - */ - function getRow($sql, $params = array()) - { - } - - /** - * Run an SQL query with the specified parameters, if any. - * - * @param string $sql An SQL string with placeholders. The - * placeholders are assumed to be specific to the database engine - * for this connection. - * - * @param array $params An array of parameters to insert into the - * SQL string using this connection's escaping mechanism. - * - * @return array $result An array of arrays representing the - * result of the query; each array is keyed on column name. - */ - function getAll($sql, $params = array()) - { - } -} - -?> \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/DiffieHellman.php b/_darcs/pristine/extlib/Auth/OpenID/DiffieHellman.php deleted file mode 100644 index f4ded7eba5..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/DiffieHellman.php +++ /dev/null @@ -1,113 +0,0 @@ - - * @copyright 2005-2008 Janrain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - */ - -require_once 'Auth/OpenID.php'; -require_once 'Auth/OpenID/BigMath.php'; - -function Auth_OpenID_getDefaultMod() -{ - return '155172898181473697471232257763715539915724801'. - '966915404479707795314057629378541917580651227423'. - '698188993727816152646631438561595825688188889951'. - '272158842675419950341258706556549803580104870537'. - '681476726513255747040765857479291291572334510643'. - '245094715007229621094194349783925984760375594985'. - '848253359305585439638443'; -} - -function Auth_OpenID_getDefaultGen() -{ - return '2'; -} - -/** - * The Diffie-Hellman key exchange class. This class relies on - * {@link Auth_OpenID_MathLibrary} to perform large number operations. - * - * @access private - * @package OpenID - */ -class Auth_OpenID_DiffieHellman { - - var $mod; - var $gen; - var $private; - var $lib = null; - - function Auth_OpenID_DiffieHellman($mod = null, $gen = null, - $private = null, $lib = null) - { - if ($lib === null) { - $this->lib =& Auth_OpenID_getMathLib(); - } else { - $this->lib =& $lib; - } - - if ($mod === null) { - $this->mod = $this->lib->init(Auth_OpenID_getDefaultMod()); - } else { - $this->mod = $mod; - } - - if ($gen === null) { - $this->gen = $this->lib->init(Auth_OpenID_getDefaultGen()); - } else { - $this->gen = $gen; - } - - if ($private === null) { - $r = $this->lib->rand($this->mod); - $this->private = $this->lib->add($r, 1); - } else { - $this->private = $private; - } - - $this->public = $this->lib->powmod($this->gen, $this->private, - $this->mod); - } - - function getSharedSecret($composite) - { - return $this->lib->powmod($composite, $this->private, $this->mod); - } - - function getPublicKey() - { - return $this->public; - } - - function usingDefaultValues() - { - return ($this->mod == Auth_OpenID_getDefaultMod() && - $this->gen == Auth_OpenID_getDefaultGen()); - } - - function xorSecret($composite, $secret, $hash_func) - { - $dh_shared = $this->getSharedSecret($composite); - $dh_shared_str = $this->lib->longToBinary($dh_shared); - $hash_dh_shared = $hash_func($dh_shared_str); - - $xsecret = ""; - for ($i = 0; $i < Auth_OpenID::bytes($secret); $i++) { - $xsecret .= chr(ord($secret[$i]) ^ ord($hash_dh_shared[$i])); - } - - return $xsecret; - } -} - -?> diff --git a/_darcs/pristine/extlib/Auth/OpenID/Discover.php b/_darcs/pristine/extlib/Auth/OpenID/Discover.php deleted file mode 100644 index 62aeb1d2bc..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/Discover.php +++ /dev/null @@ -1,548 +0,0 @@ -claimed_id = null; - $this->server_url = null; - $this->type_uris = array(); - $this->local_id = null; - $this->canonicalID = null; - $this->used_yadis = false; // whether this came from an XRDS - $this->display_identifier = null; - } - - function getDisplayIdentifier() - { - if ($this->display_identifier) { - return $this->display_identifier; - } - if (! $this->claimed_id) { - return $this->claimed_id; - } - $parsed = parse_url($this->claimed_id); - $scheme = $parsed['scheme']; - $host = $parsed['host']; - $path = $parsed['path']; - if (array_key_exists('query', $parsed)) { - $query = $parsed['query']; - $no_frag = "$scheme://$host$path?$query"; - } else { - $no_frag = "$scheme://$host$path"; - } - return $no_frag; - } - - function usesExtension($extension_uri) - { - return in_array($extension_uri, $this->type_uris); - } - - function preferredNamespace() - { - if (in_array(Auth_OpenID_TYPE_2_0_IDP, $this->type_uris) || - in_array(Auth_OpenID_TYPE_2_0, $this->type_uris)) { - return Auth_OpenID_OPENID2_NS; - } else { - return Auth_OpenID_OPENID1_NS; - } - } - - /* - * Query this endpoint to see if it has any of the given type - * URIs. This is useful for implementing other endpoint classes - * that e.g. need to check for the presence of multiple versions - * of a single protocol. - * - * @param $type_uris The URIs that you wish to check - * - * @return all types that are in both in type_uris and - * $this->type_uris - */ - function matchTypes($type_uris) - { - $result = array(); - foreach ($type_uris as $test_uri) { - if ($this->supportsType($test_uri)) { - $result[] = $test_uri; - } - } - - return $result; - } - - function supportsType($type_uri) - { - // Does this endpoint support this type? - return ((in_array($type_uri, $this->type_uris)) || - (($type_uri == Auth_OpenID_TYPE_2_0) && - $this->isOPIdentifier())); - } - - function compatibilityMode() - { - return $this->preferredNamespace() != Auth_OpenID_OPENID2_NS; - } - - function isOPIdentifier() - { - return in_array(Auth_OpenID_TYPE_2_0_IDP, $this->type_uris); - } - - function fromOPEndpointURL($op_endpoint_url) - { - // Construct an OP-Identifier OpenIDServiceEndpoint object for - // a given OP Endpoint URL - $obj = new Auth_OpenID_ServiceEndpoint(); - $obj->server_url = $op_endpoint_url; - $obj->type_uris = array(Auth_OpenID_TYPE_2_0_IDP); - return $obj; - } - - function parseService($yadis_url, $uri, $type_uris, $service_element) - { - // Set the state of this object based on the contents of the - // service element. Return true if successful, false if not - // (if findOPLocalIdentifier returns false). - $this->type_uris = $type_uris; - $this->server_url = $uri; - $this->used_yadis = true; - - if (!$this->isOPIdentifier()) { - $this->claimed_id = $yadis_url; - $this->local_id = Auth_OpenID_findOPLocalIdentifier( - $service_element, - $this->type_uris); - if ($this->local_id === false) { - return false; - } - } - - return true; - } - - function getLocalID() - { - // Return the identifier that should be sent as the - // openid.identity_url parameter to the server. - if ($this->local_id === null && $this->canonicalID === null) { - return $this->claimed_id; - } else { - if ($this->local_id) { - return $this->local_id; - } else { - return $this->canonicalID; - } - } - } - - /* - * Parse the given document as XRDS looking for OpenID services. - * - * @return array of Auth_OpenID_ServiceEndpoint or null if the - * document cannot be parsed. - */ - function fromXRDS($uri, $xrds_text) - { - $xrds =& Auth_Yadis_XRDS::parseXRDS($xrds_text); - - if ($xrds) { - $yadis_services = - $xrds->services(array('filter_MatchesAnyOpenIDType')); - return Auth_OpenID_makeOpenIDEndpoints($uri, $yadis_services); - } - - return null; - } - - /* - * Create endpoints from a DiscoveryResult. - * - * @param discoveryResult Auth_Yadis_DiscoveryResult - * @return array of Auth_OpenID_ServiceEndpoint or null if - * endpoints cannot be created. - */ - function fromDiscoveryResult($discoveryResult) - { - if ($discoveryResult->isXRDS()) { - return Auth_OpenID_ServiceEndpoint::fromXRDS( - $discoveryResult->normalized_uri, - $discoveryResult->response_text); - } else { - return Auth_OpenID_ServiceEndpoint::fromHTML( - $discoveryResult->normalized_uri, - $discoveryResult->response_text); - } - } - - function fromHTML($uri, $html) - { - $discovery_types = array( - array(Auth_OpenID_TYPE_2_0, - 'openid2.provider', 'openid2.local_id'), - array(Auth_OpenID_TYPE_1_1, - 'openid.server', 'openid.delegate') - ); - - $services = array(); - - foreach ($discovery_types as $triple) { - list($type_uri, $server_rel, $delegate_rel) = $triple; - - $urls = Auth_OpenID_legacy_discover($html, $server_rel, - $delegate_rel); - - if ($urls === false) { - continue; - } - - list($delegate_url, $server_url) = $urls; - - $service = new Auth_OpenID_ServiceEndpoint(); - $service->claimed_id = $uri; - $service->local_id = $delegate_url; - $service->server_url = $server_url; - $service->type_uris = array($type_uri); - - $services[] = $service; - } - - return $services; - } - - function copy() - { - $x = new Auth_OpenID_ServiceEndpoint(); - - $x->claimed_id = $this->claimed_id; - $x->server_url = $this->server_url; - $x->type_uris = $this->type_uris; - $x->local_id = $this->local_id; - $x->canonicalID = $this->canonicalID; - $x->used_yadis = $this->used_yadis; - - return $x; - } -} - -function Auth_OpenID_findOPLocalIdentifier($service, $type_uris) -{ - // Extract a openid:Delegate value from a Yadis Service element. - // If no delegate is found, returns null. Returns false on - // discovery failure (when multiple delegate/localID tags have - // different values). - - $service->parser->registerNamespace('openid', - Auth_OpenID_XMLNS_1_0); - - $service->parser->registerNamespace('xrd', - Auth_Yadis_XMLNS_XRD_2_0); - - $parser =& $service->parser; - - $permitted_tags = array(); - - if (in_array(Auth_OpenID_TYPE_1_1, $type_uris) || - in_array(Auth_OpenID_TYPE_1_0, $type_uris)) { - $permitted_tags[] = 'openid:Delegate'; - } - - if (in_array(Auth_OpenID_TYPE_2_0, $type_uris)) { - $permitted_tags[] = 'xrd:LocalID'; - } - - $local_id = null; - - foreach ($permitted_tags as $tag_name) { - $tags = $service->getElements($tag_name); - - foreach ($tags as $tag) { - $content = $parser->content($tag); - - if ($local_id === null) { - $local_id = $content; - } else if ($local_id != $content) { - return false; - } - } - } - - return $local_id; -} - -function filter_MatchesAnyOpenIDType(&$service) -{ - $uris = $service->getTypes(); - - foreach ($uris as $uri) { - if (in_array($uri, Auth_OpenID_getOpenIDTypeURIs())) { - return true; - } - } - - return false; -} - -function Auth_OpenID_bestMatchingService($service, $preferred_types) -{ - // Return the index of the first matching type, or something - // higher if no type matches. - // - // This provides an ordering in which service elements that - // contain a type that comes earlier in the preferred types list - // come before service elements that come later. If a service - // element has more than one type, the most preferred one wins. - - foreach ($preferred_types as $index => $typ) { - if (in_array($typ, $service->type_uris)) { - return $index; - } - } - - return count($preferred_types); -} - -function Auth_OpenID_arrangeByType($service_list, $preferred_types) -{ - // Rearrange service_list in a new list so services are ordered by - // types listed in preferred_types. Return the new list. - - // Build a list with the service elements in tuples whose - // comparison will prefer the one with the best matching service - $prio_services = array(); - foreach ($service_list as $index => $service) { - $prio_services[] = array(Auth_OpenID_bestMatchingService($service, - $preferred_types), - $index, $service); - } - - sort($prio_services); - - // Now that the services are sorted by priority, remove the sort - // keys from the list. - foreach ($prio_services as $index => $s) { - $prio_services[$index] = $prio_services[$index][2]; - } - - return $prio_services; -} - -// Extract OP Identifier services. If none found, return the rest, -// sorted with most preferred first according to -// OpenIDServiceEndpoint.openid_type_uris. -// -// openid_services is a list of OpenIDServiceEndpoint objects. -// -// Returns a list of OpenIDServiceEndpoint objects.""" -function Auth_OpenID_getOPOrUserServices($openid_services) -{ - $op_services = Auth_OpenID_arrangeByType($openid_services, - array(Auth_OpenID_TYPE_2_0_IDP)); - - $openid_services = Auth_OpenID_arrangeByType($openid_services, - Auth_OpenID_getOpenIDTypeURIs()); - - if ($op_services) { - return $op_services; - } else { - return $openid_services; - } -} - -function Auth_OpenID_makeOpenIDEndpoints($uri, $yadis_services) -{ - $s = array(); - - if (!$yadis_services) { - return $s; - } - - foreach ($yadis_services as $service) { - $type_uris = $service->getTypes(); - $uris = $service->getURIs(); - - // If any Type URIs match and there is an endpoint URI - // specified, then this is an OpenID endpoint - if ($type_uris && - $uris) { - foreach ($uris as $service_uri) { - $openid_endpoint = new Auth_OpenID_ServiceEndpoint(); - if ($openid_endpoint->parseService($uri, - $service_uri, - $type_uris, - $service)) { - $s[] = $openid_endpoint; - } - } - } - } - - return $s; -} - -function Auth_OpenID_discoverWithYadis($uri, &$fetcher, - $endpoint_filter='Auth_OpenID_getOPOrUserServices', - $discover_function=null) -{ - // Discover OpenID services for a URI. Tries Yadis and falls back - // on old-style discovery if Yadis fails. - - // Might raise a yadis.discover.DiscoveryFailure if no document - // came back for that URI at all. I don't think falling back to - // OpenID 1.0 discovery on the same URL will help, so don't bother - // to catch it. - if ($discover_function === null) { - $discover_function = array('Auth_Yadis_Yadis', 'discover'); - } - - $openid_services = array(); - - $response = call_user_func_array($discover_function, - array($uri, &$fetcher)); - - $yadis_url = $response->normalized_uri; - $yadis_services = array(); - - if ($response->isFailure()) { - return array($uri, array()); - } - - $openid_services = Auth_OpenID_ServiceEndpoint::fromXRDS( - $yadis_url, - $response->response_text); - - if (!$openid_services) { - if ($response->isXRDS()) { - return Auth_OpenID_discoverWithoutYadis($uri, - $fetcher); - } - - // Try to parse the response as HTML to get OpenID 1.0/1.1 - // - $openid_services = Auth_OpenID_ServiceEndpoint::fromHTML( - $yadis_url, - $response->response_text); - } - - $openid_services = call_user_func_array($endpoint_filter, - array(&$openid_services)); - - return array($yadis_url, $openid_services); -} - -function Auth_OpenID_discoverURI($uri, &$fetcher) -{ - $uri = Auth_OpenID::normalizeUrl($uri); - return Auth_OpenID_discoverWithYadis($uri, $fetcher); -} - -function Auth_OpenID_discoverWithoutYadis($uri, &$fetcher) -{ - $http_resp = @$fetcher->get($uri); - - if ($http_resp->status != 200 and $http_resp->status != 206) { - return array($uri, array()); - } - - $identity_url = $http_resp->final_url; - - // Try to parse the response as HTML to get OpenID 1.0/1.1 - $openid_services = Auth_OpenID_ServiceEndpoint::fromHTML( - $identity_url, - $http_resp->body); - - return array($identity_url, $openid_services); -} - -function Auth_OpenID_discoverXRI($iname, &$fetcher) -{ - $resolver = new Auth_Yadis_ProxyResolver($fetcher); - list($canonicalID, $yadis_services) = - $resolver->query($iname, - Auth_OpenID_getOpenIDTypeURIs(), - array('filter_MatchesAnyOpenIDType')); - - $openid_services = Auth_OpenID_makeOpenIDEndpoints($iname, - $yadis_services); - - $openid_services = Auth_OpenID_getOPOrUserServices($openid_services); - - for ($i = 0; $i < count($openid_services); $i++) { - $openid_services[$i]->canonicalID = $canonicalID; - $openid_services[$i]->claimed_id = $canonicalID; - $openid_services[$i]->display_identifier = $iname; - } - - // FIXME: returned xri should probably be in some normal form - return array($iname, $openid_services); -} - -function Auth_OpenID_discover($uri, &$fetcher) -{ - // If the fetcher (i.e., PHP) doesn't support SSL, we can't do - // discovery on an HTTPS URL. - if ($fetcher->isHTTPS($uri) && !$fetcher->supportsSSL()) { - return array($uri, array()); - } - - if (Auth_Yadis_identifierScheme($uri) == 'XRI') { - $result = Auth_OpenID_discoverXRI($uri, $fetcher); - } else { - $result = Auth_OpenID_discoverURI($uri, $fetcher); - } - - // If the fetcher doesn't support SSL, we can't interact with - // HTTPS server URLs; remove those endpoints from the list. - if (!$fetcher->supportsSSL()) { - $http_endpoints = array(); - list($new_uri, $endpoints) = $result; - - foreach ($endpoints as $e) { - if (!$fetcher->isHTTPS($e->server_url)) { - $http_endpoints[] = $e; - } - } - - $result = array($new_uri, $http_endpoints); - } - - return $result; -} - -?> diff --git a/_darcs/pristine/extlib/Auth/OpenID/DumbStore.php b/_darcs/pristine/extlib/Auth/OpenID/DumbStore.php deleted file mode 100644 index 22fd2d3661..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/DumbStore.php +++ /dev/null @@ -1,100 +0,0 @@ - - * @copyright 2005-2008 Janrain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - */ - -/** - * Import the interface for creating a new store class. - */ -require_once 'Auth/OpenID/Interface.php'; -require_once 'Auth/OpenID/HMAC.php'; - -/** - * This is a store for use in the worst case, when you have no way of - * saving state on the consumer site. Using this store makes the - * consumer vulnerable to replay attacks, as it's unable to use - * nonces. Avoid using this store if it is at all possible. - * - * Most of the methods of this class are implementation details. - * Users of this class need to worry only about the constructor. - * - * @package OpenID - */ -class Auth_OpenID_DumbStore extends Auth_OpenID_OpenIDStore { - - /** - * Creates a new {@link Auth_OpenID_DumbStore} instance. For the security - * of the tokens generated by the library, this class attempts to - * at least have a secure implementation of getAuthKey. - * - * When you create an instance of this class, pass in a secret - * phrase. The phrase is hashed with sha1 to make it the correct - * length and form for an auth key. That allows you to use a long - * string as the secret phrase, which means you can make it very - * difficult to guess. - * - * Each {@link Auth_OpenID_DumbStore} instance that is created for use by - * your consumer site needs to use the same $secret_phrase. - * - * @param string secret_phrase The phrase used to create the auth - * key returned by getAuthKey - */ - function Auth_OpenID_DumbStore($secret_phrase) - { - $this->auth_key = Auth_OpenID_SHA1($secret_phrase); - } - - /** - * This implementation does nothing. - */ - function storeAssociation($server_url, $association) - { - } - - /** - * This implementation always returns null. - */ - function getAssociation($server_url, $handle = null) - { - return null; - } - - /** - * This implementation always returns false. - */ - function removeAssociation($server_url, $handle) - { - return false; - } - - /** - * In a system truly limited to dumb mode, nonces must all be - * accepted. This therefore always returns true, which makes - * replay attacks feasible. - */ - function useNonce($server_url, $timestamp, $salt) - { - return true; - } - - /** - * This method returns the auth key generated by the constructor. - */ - function getAuthKey() - { - return $this->auth_key; - } -} - -?> \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/Extension.php b/_darcs/pristine/extlib/Auth/OpenID/Extension.php deleted file mode 100644 index f362a4b389..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/Extension.php +++ /dev/null @@ -1,62 +0,0 @@ -isOpenID1(); - $added = $message->namespaces->addAlias($this->ns_uri, - $this->ns_alias, - $implicit); - - if ($added === null) { - if ($message->namespaces->getAlias($this->ns_uri) != - $this->ns_alias) { - return null; - } - } - - $message->updateArgs($this->ns_uri, - $this->getExtensionArgs()); - return $message; - } -} - -?> \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/FileStore.php b/_darcs/pristine/extlib/Auth/OpenID/FileStore.php deleted file mode 100644 index 29d8d20e76..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/FileStore.php +++ /dev/null @@ -1,618 +0,0 @@ - - * @copyright 2005-2008 Janrain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - */ - -/** - * Require base class for creating a new interface. - */ -require_once 'Auth/OpenID.php'; -require_once 'Auth/OpenID/Interface.php'; -require_once 'Auth/OpenID/HMAC.php'; -require_once 'Auth/OpenID/Nonce.php'; - -/** - * This is a filesystem-based store for OpenID associations and - * nonces. This store should be safe for use in concurrent systems on - * both windows and unix (excluding NFS filesystems). There are a - * couple race conditions in the system, but those failure cases have - * been set up in such a way that the worst-case behavior is someone - * having to try to log in a second time. - * - * Most of the methods of this class are implementation details. - * People wishing to just use this store need only pay attention to - * the constructor. - * - * @package OpenID - */ -class Auth_OpenID_FileStore extends Auth_OpenID_OpenIDStore { - - /** - * Initializes a new {@link Auth_OpenID_FileStore}. This - * initializes the nonce and association directories, which are - * subdirectories of the directory passed in. - * - * @param string $directory This is the directory to put the store - * directories in. - */ - function Auth_OpenID_FileStore($directory) - { - if (!Auth_OpenID::ensureDir($directory)) { - trigger_error('Not a directory and failed to create: ' - . $directory, E_USER_ERROR); - } - $directory = realpath($directory); - - $this->directory = $directory; - $this->active = true; - - $this->nonce_dir = $directory . DIRECTORY_SEPARATOR . 'nonces'; - - $this->association_dir = $directory . DIRECTORY_SEPARATOR . - 'associations'; - - // Temp dir must be on the same filesystem as the assciations - // $directory. - $this->temp_dir = $directory . DIRECTORY_SEPARATOR . 'temp'; - - $this->max_nonce_age = 6 * 60 * 60; // Six hours, in seconds - - if (!$this->_setup()) { - trigger_error('Failed to initialize OpenID file store in ' . - $directory, E_USER_ERROR); - } - } - - function destroy() - { - Auth_OpenID_FileStore::_rmtree($this->directory); - $this->active = false; - } - - /** - * Make sure that the directories in which we store our data - * exist. - * - * @access private - */ - function _setup() - { - return (Auth_OpenID::ensureDir($this->nonce_dir) && - Auth_OpenID::ensureDir($this->association_dir) && - Auth_OpenID::ensureDir($this->temp_dir)); - } - - /** - * Create a temporary file on the same filesystem as - * $this->association_dir. - * - * The temporary directory should not be cleaned if there are any - * processes using the store. If there is no active process using - * the store, it is safe to remove all of the files in the - * temporary directory. - * - * @return array ($fd, $filename) - * @access private - */ - function _mktemp() - { - $name = Auth_OpenID_FileStore::_mkstemp($dir = $this->temp_dir); - $file_obj = @fopen($name, 'wb'); - if ($file_obj !== false) { - return array($file_obj, $name); - } else { - Auth_OpenID_FileStore::_removeIfPresent($name); - } - } - - function cleanupNonces() - { - global $Auth_OpenID_SKEW; - - $nonces = Auth_OpenID_FileStore::_listdir($this->nonce_dir); - $now = time(); - - $removed = 0; - // Check all nonces for expiry - foreach ($nonces as $nonce_fname) { - $base = basename($nonce_fname); - $parts = explode('-', $base, 2); - $timestamp = $parts[0]; - $timestamp = intval($timestamp, 16); - if (abs($timestamp - $now) > $Auth_OpenID_SKEW) { - Auth_OpenID_FileStore::_removeIfPresent($nonce_fname); - $removed += 1; - } - } - return $removed; - } - - /** - * Create a unique filename for a given server url and - * handle. This implementation does not assume anything about the - * format of the handle. The filename that is returned will - * contain the domain name from the server URL for ease of human - * inspection of the data directory. - * - * @return string $filename - */ - function getAssociationFilename($server_url, $handle) - { - if (!$this->active) { - trigger_error("FileStore no longer active", E_USER_ERROR); - return null; - } - - if (strpos($server_url, '://') === false) { - trigger_error(sprintf("Bad server URL: %s", $server_url), - E_USER_WARNING); - return null; - } - - list($proto, $rest) = explode('://', $server_url, 2); - $parts = explode('/', $rest); - $domain = Auth_OpenID_FileStore::_filenameEscape($parts[0]); - $url_hash = Auth_OpenID_FileStore::_safe64($server_url); - if ($handle) { - $handle_hash = Auth_OpenID_FileStore::_safe64($handle); - } else { - $handle_hash = ''; - } - - $filename = sprintf('%s-%s-%s-%s', $proto, $domain, $url_hash, - $handle_hash); - - return $this->association_dir. DIRECTORY_SEPARATOR . $filename; - } - - /** - * Store an association in the association directory. - */ - function storeAssociation($server_url, $association) - { - if (!$this->active) { - trigger_error("FileStore no longer active", E_USER_ERROR); - return false; - } - - $association_s = $association->serialize(); - $filename = $this->getAssociationFilename($server_url, - $association->handle); - list($tmp_file, $tmp) = $this->_mktemp(); - - if (!$tmp_file) { - trigger_error("_mktemp didn't return a valid file descriptor", - E_USER_WARNING); - return false; - } - - fwrite($tmp_file, $association_s); - - fflush($tmp_file); - - fclose($tmp_file); - - if (@rename($tmp, $filename)) { - return true; - } else { - // In case we are running on Windows, try unlinking the - // file in case it exists. - @unlink($filename); - - // Now the target should not exist. Try renaming again, - // giving up if it fails. - if (@rename($tmp, $filename)) { - return true; - } - } - - // If there was an error, don't leave the temporary file - // around. - Auth_OpenID_FileStore::_removeIfPresent($tmp); - return false; - } - - /** - * Retrieve an association. If no handle is specified, return the - * association with the most recent issue time. - * - * @return mixed $association - */ - function getAssociation($server_url, $handle = null) - { - if (!$this->active) { - trigger_error("FileStore no longer active", E_USER_ERROR); - return null; - } - - if ($handle === null) { - $handle = ''; - } - - // The filename with the empty handle is a prefix of all other - // associations for the given server URL. - $filename = $this->getAssociationFilename($server_url, $handle); - - if ($handle) { - return $this->_getAssociation($filename); - } else { - $association_files = - Auth_OpenID_FileStore::_listdir($this->association_dir); - $matching_files = array(); - - // strip off the path to do the comparison - $name = basename($filename); - foreach ($association_files as $association_file) { - $base = basename($association_file); - if (strpos($base, $name) === 0) { - $matching_files[] = $association_file; - } - } - - $matching_associations = array(); - // read the matching files and sort by time issued - foreach ($matching_files as $full_name) { - $association = $this->_getAssociation($full_name); - if ($association !== null) { - $matching_associations[] = array($association->issued, - $association); - } - } - - $issued = array(); - $assocs = array(); - foreach ($matching_associations as $key => $assoc) { - $issued[$key] = $assoc[0]; - $assocs[$key] = $assoc[1]; - } - - array_multisort($issued, SORT_DESC, $assocs, SORT_DESC, - $matching_associations); - - // return the most recently issued one. - if ($matching_associations) { - list($issued, $assoc) = $matching_associations[0]; - return $assoc; - } else { - return null; - } - } - } - - /** - * @access private - */ - function _getAssociation($filename) - { - if (!$this->active) { - trigger_error("FileStore no longer active", E_USER_ERROR); - return null; - } - - $assoc_file = @fopen($filename, 'rb'); - - if ($assoc_file === false) { - return null; - } - - $assoc_s = fread($assoc_file, filesize($filename)); - fclose($assoc_file); - - if (!$assoc_s) { - return null; - } - - $association = - Auth_OpenID_Association::deserialize('Auth_OpenID_Association', - $assoc_s); - - if (!$association) { - Auth_OpenID_FileStore::_removeIfPresent($filename); - return null; - } - - if ($association->getExpiresIn() == 0) { - Auth_OpenID_FileStore::_removeIfPresent($filename); - return null; - } else { - return $association; - } - } - - /** - * Remove an association if it exists. Do nothing if it does not. - * - * @return bool $success - */ - function removeAssociation($server_url, $handle) - { - if (!$this->active) { - trigger_error("FileStore no longer active", E_USER_ERROR); - return null; - } - - $assoc = $this->getAssociation($server_url, $handle); - if ($assoc === null) { - return false; - } else { - $filename = $this->getAssociationFilename($server_url, $handle); - return Auth_OpenID_FileStore::_removeIfPresent($filename); - } - } - - /** - * Return whether this nonce is present. As a side effect, mark it - * as no longer present. - * - * @return bool $present - */ - function useNonce($server_url, $timestamp, $salt) - { - global $Auth_OpenID_SKEW; - - if (!$this->active) { - trigger_error("FileStore no longer active", E_USER_ERROR); - return null; - } - - if ( abs($timestamp - time()) > $Auth_OpenID_SKEW ) { - return False; - } - - if ($server_url) { - list($proto, $rest) = explode('://', $server_url, 2); - } else { - $proto = ''; - $rest = ''; - } - - $parts = explode('/', $rest, 2); - $domain = $this->_filenameEscape($parts[0]); - $url_hash = $this->_safe64($server_url); - $salt_hash = $this->_safe64($salt); - - $filename = sprintf('%08x-%s-%s-%s-%s', $timestamp, $proto, - $domain, $url_hash, $salt_hash); - $filename = $this->nonce_dir . DIRECTORY_SEPARATOR . $filename; - - $result = @fopen($filename, 'x'); - - if ($result === false) { - return false; - } else { - fclose($result); - return true; - } - } - - /** - * Remove expired entries from the database. This is potentially - * expensive, so only run when it is acceptable to take time. - * - * @access private - */ - function _allAssocs() - { - $all_associations = array(); - - $association_filenames = - Auth_OpenID_FileStore::_listdir($this->association_dir); - - foreach ($association_filenames as $association_filename) { - $association_file = fopen($association_filename, 'rb'); - - if ($association_file !== false) { - $assoc_s = fread($association_file, - filesize($association_filename)); - fclose($association_file); - - // Remove expired or corrupted associations - $association = - Auth_OpenID_Association::deserialize( - 'Auth_OpenID_Association', $assoc_s); - - if ($association === null) { - Auth_OpenID_FileStore::_removeIfPresent( - $association_filename); - } else { - if ($association->getExpiresIn() == 0) { - $all_associations[] = array($association_filename, - $association); - } - } - } - } - - return $all_associations; - } - - function clean() - { - if (!$this->active) { - trigger_error("FileStore no longer active", E_USER_ERROR); - return null; - } - - $nonces = Auth_OpenID_FileStore::_listdir($this->nonce_dir); - $now = time(); - - // Check all nonces for expiry - foreach ($nonces as $nonce) { - if (!Auth_OpenID_checkTimestamp($nonce, $now)) { - $filename = $this->nonce_dir . DIRECTORY_SEPARATOR . $nonce; - Auth_OpenID_FileStore::_removeIfPresent($filename); - } - } - - foreach ($this->_allAssocs() as $pair) { - list($assoc_filename, $assoc) = $pair; - if ($assoc->getExpiresIn() == 0) { - Auth_OpenID_FileStore::_removeIfPresent($assoc_filename); - } - } - } - - /** - * @access private - */ - function _rmtree($dir) - { - if ($dir[strlen($dir) - 1] != DIRECTORY_SEPARATOR) { - $dir .= DIRECTORY_SEPARATOR; - } - - if ($handle = opendir($dir)) { - while ($item = readdir($handle)) { - if (!in_array($item, array('.', '..'))) { - if (is_dir($dir . $item)) { - - if (!Auth_OpenID_FileStore::_rmtree($dir . $item)) { - return false; - } - } else if (is_file($dir . $item)) { - if (!unlink($dir . $item)) { - return false; - } - } - } - } - - closedir($handle); - - if (!@rmdir($dir)) { - return false; - } - - return true; - } else { - // Couldn't open directory. - return false; - } - } - - /** - * @access private - */ - function _mkstemp($dir) - { - foreach (range(0, 4) as $i) { - $name = tempnam($dir, "php_openid_filestore_"); - - if ($name !== false) { - return $name; - } - } - return false; - } - - /** - * @access private - */ - function _mkdtemp($dir) - { - foreach (range(0, 4) as $i) { - $name = $dir . strval(DIRECTORY_SEPARATOR) . strval(getmypid()) . - "-" . strval(rand(1, time())); - if (!mkdir($name, 0700)) { - return false; - } else { - return $name; - } - } - return false; - } - - /** - * @access private - */ - function _listdir($dir) - { - $handle = opendir($dir); - $files = array(); - while (false !== ($filename = readdir($handle))) { - if (!in_array($filename, array('.', '..'))) { - $files[] = $dir . DIRECTORY_SEPARATOR . $filename; - } - } - return $files; - } - - /** - * @access private - */ - function _isFilenameSafe($char) - { - $_Auth_OpenID_filename_allowed = Auth_OpenID_letters . - Auth_OpenID_digits . "."; - return (strpos($_Auth_OpenID_filename_allowed, $char) !== false); - } - - /** - * @access private - */ - function _safe64($str) - { - $h64 = base64_encode(Auth_OpenID_SHA1($str)); - $h64 = str_replace('+', '_', $h64); - $h64 = str_replace('/', '.', $h64); - $h64 = str_replace('=', '', $h64); - return $h64; - } - - /** - * @access private - */ - function _filenameEscape($str) - { - $filename = ""; - $b = Auth_OpenID::toBytes($str); - - for ($i = 0; $i < count($b); $i++) { - $c = $b[$i]; - if (Auth_OpenID_FileStore::_isFilenameSafe($c)) { - $filename .= $c; - } else { - $filename .= sprintf("_%02X", ord($c)); - } - } - return $filename; - } - - /** - * Attempt to remove a file, returning whether the file existed at - * the time of the call. - * - * @access private - * @return bool $result True if the file was present, false if not. - */ - function _removeIfPresent($filename) - { - return @unlink($filename); - } - - function cleanupAssociations() - { - $removed = 0; - foreach ($this->_allAssocs() as $pair) { - list($assoc_filename, $assoc) = $pair; - if ($assoc->getExpiresIn() == 0) { - $this->_removeIfPresent($assoc_filename); - $removed += 1; - } - } - return $removed; - } -} - -?> diff --git a/_darcs/pristine/extlib/Auth/OpenID/HMAC.php b/_darcs/pristine/extlib/Auth/OpenID/HMAC.php deleted file mode 100644 index ec42db8dfc..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/HMAC.php +++ /dev/null @@ -1,99 +0,0 @@ - - * @copyright 2005-2008 Janrain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - */ - -require_once 'Auth/OpenID.php'; - -/** - * SHA1_BLOCKSIZE is this module's SHA1 blocksize used by the fallback - * implementation. - */ -define('Auth_OpenID_SHA1_BLOCKSIZE', 64); - -function Auth_OpenID_SHA1($text) -{ - if (function_exists('hash') && - function_exists('hash_algos') && - (in_array('sha1', hash_algos()))) { - // PHP 5 case (sometimes): 'hash' available and 'sha1' algo - // supported. - return hash('sha1', $text, true); - } else if (function_exists('sha1')) { - // PHP 4 case: 'sha1' available. - $hex = sha1($text); - $raw = ''; - for ($i = 0; $i < 40; $i += 2) { - $hexcode = substr($hex, $i, 2); - $charcode = (int)base_convert($hexcode, 16, 10); - $raw .= chr($charcode); - } - return $raw; - } else { - // Explode. - trigger_error('No SHA1 function found', E_USER_ERROR); - } -} - -/** - * Compute an HMAC/SHA1 hash. - * - * @access private - * @param string $key The HMAC key - * @param string $text The message text to hash - * @return string $mac The MAC - */ -function Auth_OpenID_HMACSHA1($key, $text) -{ - if (Auth_OpenID::bytes($key) > Auth_OpenID_SHA1_BLOCKSIZE) { - $key = Auth_OpenID_SHA1($key, true); - } - - $key = str_pad($key, Auth_OpenID_SHA1_BLOCKSIZE, chr(0x00)); - $ipad = str_repeat(chr(0x36), Auth_OpenID_SHA1_BLOCKSIZE); - $opad = str_repeat(chr(0x5c), Auth_OpenID_SHA1_BLOCKSIZE); - $hash1 = Auth_OpenID_SHA1(($key ^ $ipad) . $text, true); - $hmac = Auth_OpenID_SHA1(($key ^ $opad) . $hash1, true); - return $hmac; -} - -if (function_exists('hash') && - function_exists('hash_algos') && - (in_array('sha256', hash_algos()))) { - function Auth_OpenID_SHA256($text) - { - // PHP 5 case: 'hash' available and 'sha256' algo supported. - return hash('sha256', $text, true); - } - define('Auth_OpenID_SHA256_SUPPORTED', true); -} else { - define('Auth_OpenID_SHA256_SUPPORTED', false); -} - -if (function_exists('hash_hmac') && - function_exists('hash_algos') && - (in_array('sha256', hash_algos()))) { - - function Auth_OpenID_HMACSHA256($key, $text) - { - // Return raw MAC (not hex string). - return hash_hmac('sha256', $text, $key, true); - } - - define('Auth_OpenID_HMACSHA256_SUPPORTED', true); -} else { - define('Auth_OpenID_HMACSHA256_SUPPORTED', false); -} - -?> \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/Interface.php b/_darcs/pristine/extlib/Auth/OpenID/Interface.php deleted file mode 100644 index f4c6062f8c..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/Interface.php +++ /dev/null @@ -1,197 +0,0 @@ - - * @copyright 2005-2008 Janrain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - */ - -/** - * This is the interface for the store objects the OpenID library - * uses. It is a single class that provides all of the persistence - * mechanisms that the OpenID library needs, for both servers and - * consumers. If you want to create an SQL-driven store, please see - * then {@link Auth_OpenID_SQLStore} class. - * - * Change: Version 2.0 removed the storeNonce, getAuthKey, and isDumb - * methods, and changed the behavior of the useNonce method to support - * one-way nonces. - * - * @package OpenID - * @author JanRain, Inc. - */ -class Auth_OpenID_OpenIDStore { - /** - * This method puts an Association object into storage, - * retrievable by server URL and handle. - * - * @param string $server_url The URL of the identity server that - * this association is with. Because of the way the server portion - * of the library uses this interface, don't assume there are any - * limitations on the character set of the input string. In - * particular, expect to see unescaped non-url-safe characters in - * the server_url field. - * - * @param Association $association The Association to store. - */ - function storeAssociation($server_url, $association) - { - trigger_error("Auth_OpenID_OpenIDStore::storeAssociation ". - "not implemented", E_USER_ERROR); - } - - /* - * Remove expired nonces from the store. - * - * Discards any nonce from storage that is old enough that its - * timestamp would not pass useNonce(). - * - * This method is not called in the normal operation of the - * library. It provides a way for store admins to keep their - * storage from filling up with expired data. - * - * @return the number of nonces expired - */ - function cleanupNonces() - { - trigger_error("Auth_OpenID_OpenIDStore::cleanupNonces ". - "not implemented", E_USER_ERROR); - } - - /* - * Remove expired associations from the store. - * - * This method is not called in the normal operation of the - * library. It provides a way for store admins to keep their - * storage from filling up with expired data. - * - * @return the number of associations expired. - */ - function cleanupAssociations() - { - trigger_error("Auth_OpenID_OpenIDStore::cleanupAssociations ". - "not implemented", E_USER_ERROR); - } - - /* - * Shortcut for cleanupNonces(), cleanupAssociations(). - * - * This method is not called in the normal operation of the - * library. It provides a way for store admins to keep their - * storage from filling up with expired data. - */ - function cleanup() - { - return array($this->cleanupNonces(), - $this->cleanupAssociations()); - } - - /** - * Report whether this storage supports cleanup - */ - function supportsCleanup() - { - return true; - } - - /** - * This method returns an Association object from storage that - * matches the server URL and, if specified, handle. It returns - * null if no such association is found or if the matching - * association is expired. - * - * If no handle is specified, the store may return any association - * which matches the server URL. If multiple associations are - * valid, the recommended return value for this method is the one - * most recently issued. - * - * This method is allowed (and encouraged) to garbage collect - * expired associations when found. This method must not return - * expired associations. - * - * @param string $server_url The URL of the identity server to get - * the association for. Because of the way the server portion of - * the library uses this interface, don't assume there are any - * limitations on the character set of the input string. In - * particular, expect to see unescaped non-url-safe characters in - * the server_url field. - * - * @param mixed $handle This optional parameter is the handle of - * the specific association to get. If no specific handle is - * provided, any valid association matching the server URL is - * returned. - * - * @return Association The Association for the given identity - * server. - */ - function getAssociation($server_url, $handle = null) - { - trigger_error("Auth_OpenID_OpenIDStore::getAssociation ". - "not implemented", E_USER_ERROR); - } - - /** - * This method removes the matching association if it's found, and - * returns whether the association was removed or not. - * - * @param string $server_url The URL of the identity server the - * association to remove belongs to. Because of the way the server - * portion of the library uses this interface, don't assume there - * are any limitations on the character set of the input - * string. In particular, expect to see unescaped non-url-safe - * characters in the server_url field. - * - * @param string $handle This is the handle of the association to - * remove. If there isn't an association found that matches both - * the given URL and handle, then there was no matching handle - * found. - * - * @return mixed Returns whether or not the given association existed. - */ - function removeAssociation($server_url, $handle) - { - trigger_error("Auth_OpenID_OpenIDStore::removeAssociation ". - "not implemented", E_USER_ERROR); - } - - /** - * Called when using a nonce. - * - * This method should return C{True} if the nonce has not been - * used before, and store it for a while to make sure nobody - * tries to use the same value again. If the nonce has already - * been used, return C{False}. - * - * Change: In earlier versions, round-trip nonces were used and a - * nonce was only valid if it had been previously stored with - * storeNonce. Version 2.0 uses one-way nonces, requiring a - * different implementation here that does not depend on a - * storeNonce call. (storeNonce is no longer part of the - * interface. - * - * @param string $nonce The nonce to use. - * - * @return bool Whether or not the nonce was valid. - */ - function useNonce($server_url, $timestamp, $salt) - { - trigger_error("Auth_OpenID_OpenIDStore::useNonce ". - "not implemented", E_USER_ERROR); - } - - /** - * Removes all entries from the store; implementation is optional. - */ - function reset() - { - } - -} -?> \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/KVForm.php b/_darcs/pristine/extlib/Auth/OpenID/KVForm.php deleted file mode 100644 index fb342a0013..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/KVForm.php +++ /dev/null @@ -1,112 +0,0 @@ - - * @copyright 2005-2008 Janrain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - */ - -/** - * Container for key-value/comma-newline OpenID format and parsing - */ -class Auth_OpenID_KVForm { - /** - * Convert an OpenID colon/newline separated string into an - * associative array - * - * @static - * @access private - */ - function toArray($kvs, $strict=false) - { - $lines = explode("\n", $kvs); - - $last = array_pop($lines); - if ($last !== '') { - array_push($lines, $last); - if ($strict) { - return false; - } - } - - $values = array(); - - for ($lineno = 0; $lineno < count($lines); $lineno++) { - $line = $lines[$lineno]; - $kv = explode(':', $line, 2); - if (count($kv) != 2) { - if ($strict) { - return false; - } - continue; - } - - $key = $kv[0]; - $tkey = trim($key); - if ($tkey != $key) { - if ($strict) { - return false; - } - } - - $value = $kv[1]; - $tval = trim($value); - if ($tval != $value) { - if ($strict) { - return false; - } - } - - $values[$tkey] = $tval; - } - - return $values; - } - - /** - * Convert an array into an OpenID colon/newline separated string - * - * @static - * @access private - */ - function fromArray($values) - { - if ($values === null) { - return null; - } - - ksort($values); - - $serialized = ''; - foreach ($values as $key => $value) { - if (is_array($value)) { - list($key, $value) = array($value[0], $value[1]); - } - - if (strpos($key, ':') !== false) { - return null; - } - - if (strpos($key, "\n") !== false) { - return null; - } - - if (strpos($value, "\n") !== false) { - return null; - } - $serialized .= "$key:$value\n"; - } - return $serialized; - } -} - -?> \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/MemcachedStore.php b/_darcs/pristine/extlib/Auth/OpenID/MemcachedStore.php deleted file mode 100644 index d357c6b11d..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/MemcachedStore.php +++ /dev/null @@ -1,208 +0,0 @@ - - * @copyright 2008 JanRain, Inc. - * @license http://www.apache.org/licenses/LICENSE-2.0 Apache - * Contributed by Open Web Technologies - */ - -/** - * Import the interface for creating a new store class. - */ -require_once 'Auth/OpenID/Interface.php'; - -/** - * This is a memcached-based store for OpenID associations and - * nonces. - * - * As memcache has limit of 250 chars for key length, - * server_url, handle and salt are hashed with sha1(). - * - * Most of the methods of this class are implementation details. - * People wishing to just use this store need only pay attention to - * the constructor. - * - * @package OpenID - */ -class Auth_OpenID_MemcachedStore extends Auth_OpenID_OpenIDStore { - - /** - * Initializes a new {@link Auth_OpenID_MemcachedStore} instance. - * Just saves memcached object as property. - * - * @param resource connection Memcache connection resourse - */ - function Auth_OpenID_MemcachedStore($connection, $compress = false) - { - $this->connection = $connection; - $this->compress = $compress ? MEMCACHE_COMPRESSED : 0; - } - - /** - * Store association until its expiration time in memcached. - * Overwrites any existing association with same server_url and - * handle. Handles list of associations for every server. - */ - function storeAssociation($server_url, $association) - { - // create memcached keys for association itself - // and list of associations for this server - $associationKey = $this->associationKey($server_url, - $association->handle); - $serverKey = $this->associationServerKey($server_url); - - // get list of associations - $serverAssociations = $this->connection->get($serverKey); - - // if no such list, initialize it with empty array - if (!$serverAssociations) { - $serverAssociations = array(); - } - // and store given association key in it - $serverAssociations[$association->issued] = $associationKey; - - // save associations' keys list - $this->connection->set( - $serverKey, - $serverAssociations, - $this->compress - ); - // save association itself - $this->connection->set( - $associationKey, - $association, - $this->compress, - $association->issued + $association->lifetime); - } - - /** - * Read association from memcached. If no handle given - * and multiple associations found, returns latest issued - */ - function getAssociation($server_url, $handle = null) - { - // simple case: handle given - if ($handle !== null) { - // get association, return null if failed - $association = $this->connection->get( - $this->associationKey($server_url, $handle)); - return $association ? $association : null; - } - - // no handle given, working with list - // create key for list of associations - $serverKey = $this->associationServerKey($server_url); - - // get list of associations - $serverAssociations = $this->connection->get($serverKey); - // return null if failed or got empty list - if (!$serverAssociations) { - return null; - } - - // get key of most recently issued association - $keys = array_keys($serverAssociations); - sort($keys); - $lastKey = $serverAssociations[array_pop($keys)]; - - // get association, return null if failed - $association = $this->connection->get($lastKey); - return $association ? $association : null; - } - - /** - * Immediately delete association from memcache. - */ - function removeAssociation($server_url, $handle) - { - // create memcached keys for association itself - // and list of associations for this server - $serverKey = $this->associationServerKey($server_url); - $associationKey = $this->associationKey($server_url, - $handle); - - // get list of associations - $serverAssociations = $this->connection->get($serverKey); - // return null if failed or got empty list - if (!$serverAssociations) { - return false; - } - - // ensure that given association key exists in list - $serverAssociations = array_flip($serverAssociations); - if (!array_key_exists($associationKey, $serverAssociations)) { - return false; - } - - // remove given association key from list - unset($serverAssociations[$associationKey]); - $serverAssociations = array_flip($serverAssociations); - - // save updated list - $this->connection->set( - $serverKey, - $serverAssociations, - $this->compress - ); - - // delete association - return $this->connection->delete($associationKey); - } - - /** - * Create nonce for server and salt, expiring after - * $Auth_OpenID_SKEW seconds. - */ - function useNonce($server_url, $timestamp, $salt) - { - global $Auth_OpenID_SKEW; - - // save one request to memcache when nonce obviously expired - if (abs($timestamp - time()) > $Auth_OpenID_SKEW) { - return false; - } - - // returns false when nonce already exists - // otherwise adds nonce - return $this->connection->add( - 'openid_nonce_' . sha1($server_url) . '_' . sha1($salt), - 1, // any value here - $this->compress, - $Auth_OpenID_SKEW); - } - - /** - * Memcache key is prefixed with 'openid_association_' string. - */ - function associationKey($server_url, $handle = null) - { - return 'openid_association_' . sha1($server_url) . '_' . sha1($handle); - } - - /** - * Memcache key is prefixed with 'openid_association_' string. - */ - function associationServerKey($server_url) - { - return 'openid_association_server_' . sha1($server_url); - } - - /** - * Report that this storage doesn't support cleanup - */ - function supportsCleanup() - { - return false; - } -} - -?> \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/Message.php b/_darcs/pristine/extlib/Auth/OpenID/Message.php deleted file mode 100644 index fd23e67a3c..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/Message.php +++ /dev/null @@ -1,915 +0,0 @@ -keys = array(); - $this->values = array(); - - if (is_array($classic_array)) { - foreach ($classic_array as $key => $value) { - $this->set($key, $value); - } - } - } - - /** - * Returns true if $thing is an Auth_OpenID_Mapping object; false - * if not. - */ - function isA($thing) - { - return (is_object($thing) && - strtolower(get_class($thing)) == 'auth_openid_mapping'); - } - - /** - * Returns an array of the keys in the mapping. - */ - function keys() - { - return $this->keys; - } - - /** - * Returns an array of values in the mapping. - */ - function values() - { - return $this->values; - } - - /** - * Returns an array of (key, value) pairs in the mapping. - */ - function items() - { - $temp = array(); - - for ($i = 0; $i < count($this->keys); $i++) { - $temp[] = array($this->keys[$i], - $this->values[$i]); - } - return $temp; - } - - /** - * Returns the "length" of the mapping, or the number of keys. - */ - function len() - { - return count($this->keys); - } - - /** - * Sets a key-value pair in the mapping. If the key already - * exists, its value is replaced with the new value. - */ - function set($key, $value) - { - $index = array_search($key, $this->keys); - - if ($index !== false) { - $this->values[$index] = $value; - } else { - $this->keys[] = $key; - $this->values[] = $value; - } - } - - /** - * Gets a specified value from the mapping, associated with the - * specified key. If the key does not exist in the mapping, - * $default is returned instead. - */ - function get($key, $default = null) - { - $index = array_search($key, $this->keys); - - if ($index !== false) { - return $this->values[$index]; - } else { - return $default; - } - } - - /** - * @access private - */ - function _reflow() - { - // PHP is broken yet again. Sort the arrays to remove the - // hole in the numeric indexes that make up the array. - $old_keys = $this->keys; - $old_values = $this->values; - - $this->keys = array(); - $this->values = array(); - - foreach ($old_keys as $k) { - $this->keys[] = $k; - } - - foreach ($old_values as $v) { - $this->values[] = $v; - } - } - - /** - * Deletes a key-value pair from the mapping with the specified - * key. - */ - function del($key) - { - $index = array_search($key, $this->keys); - - if ($index !== false) { - unset($this->keys[$index]); - unset($this->values[$index]); - $this->_reflow(); - return true; - } - return false; - } - - /** - * Returns true if the specified value has a key in the mapping; - * false if not. - */ - function contains($value) - { - return (array_search($value, $this->keys) !== false); - } -} - -/** - * Maintains a bijective map between namespace uris and aliases. - * - * @package OpenID - */ -class Auth_OpenID_NamespaceMap { - function Auth_OpenID_NamespaceMap() - { - $this->alias_to_namespace = new Auth_OpenID_Mapping(); - $this->namespace_to_alias = new Auth_OpenID_Mapping(); - $this->implicit_namespaces = array(); - } - - function getAlias($namespace_uri) - { - return $this->namespace_to_alias->get($namespace_uri); - } - - function getNamespaceURI($alias) - { - return $this->alias_to_namespace->get($alias); - } - - function iterNamespaceURIs() - { - // Return an iterator over the namespace URIs - return $this->namespace_to_alias->keys(); - } - - function iterAliases() - { - // Return an iterator over the aliases""" - return $this->alias_to_namespace->keys(); - } - - function iteritems() - { - return $this->namespace_to_alias->items(); - } - - function isImplicit($namespace_uri) - { - return in_array($namespace_uri, $this->implicit_namespaces); - } - - function addAlias($namespace_uri, $desired_alias, $implicit=false) - { - // Add an alias from this namespace URI to the desired alias - global $Auth_OpenID_OPENID_PROTOCOL_FIELDS; - - // Check that desired_alias is not an openid protocol field as - // per the spec. - if (in_array($desired_alias, $Auth_OpenID_OPENID_PROTOCOL_FIELDS)) { - Auth_OpenID::log("\"%s\" is not an allowed namespace alias", - $desired_alias); - return null; - } - - // Check that desired_alias does not contain a period as per - // the spec. - if (strpos($desired_alias, '.') !== false) { - Auth_OpenID::log('"%s" must not contain a dot', $desired_alias); - return null; - } - - // Check that there is not a namespace already defined for the - // desired alias - $current_namespace_uri = - $this->alias_to_namespace->get($desired_alias); - - if (($current_namespace_uri !== null) && - ($current_namespace_uri != $namespace_uri)) { - Auth_OpenID::log('Cannot map "%s" because previous mapping exists', - $namespace_uri); - return null; - } - - // Check that there is not already a (different) alias for - // this namespace URI - $alias = $this->namespace_to_alias->get($namespace_uri); - - if (($alias !== null) && ($alias != $desired_alias)) { - Auth_OpenID::log('Cannot map %s to alias %s. ' . - 'It is already mapped to alias %s', - $namespace_uri, $desired_alias, $alias); - return null; - } - - assert((Auth_OpenID_NULL_NAMESPACE === $desired_alias) || - is_string($desired_alias)); - - $this->alias_to_namespace->set($desired_alias, $namespace_uri); - $this->namespace_to_alias->set($namespace_uri, $desired_alias); - if ($implicit) { - array_push($this->implicit_namespaces, $namespace_uri); - } - - return $desired_alias; - } - - function add($namespace_uri) - { - // Add this namespace URI to the mapping, without caring what - // alias it ends up with - - // See if this namespace is already mapped to an alias - $alias = $this->namespace_to_alias->get($namespace_uri); - - if ($alias !== null) { - return $alias; - } - - // Fall back to generating a numerical alias - $i = 0; - while (1) { - $alias = 'ext' . strval($i); - if ($this->addAlias($namespace_uri, $alias) === null) { - $i += 1; - } else { - return $alias; - } - } - - // Should NEVER be reached! - return null; - } - - function contains($namespace_uri) - { - return $this->isDefined($namespace_uri); - } - - function isDefined($namespace_uri) - { - return $this->namespace_to_alias->contains($namespace_uri); - } -} - -/** - * In the implementation of this object, null represents the global - * namespace as well as a namespace with no key. - * - * @package OpenID - */ -class Auth_OpenID_Message { - - function Auth_OpenID_Message($openid_namespace = null) - { - // Create an empty Message - $this->allowed_openid_namespaces = array( - Auth_OpenID_OPENID1_NS, - Auth_OpenID_THE_OTHER_OPENID1_NS, - Auth_OpenID_OPENID2_NS); - - $this->args = new Auth_OpenID_Mapping(); - $this->namespaces = new Auth_OpenID_NamespaceMap(); - if ($openid_namespace === null) { - $this->_openid_ns_uri = null; - } else { - $implicit = Auth_OpenID_isOpenID1($openid_namespace); - $this->setOpenIDNamespace($openid_namespace, $implicit); - } - } - - function isOpenID1() - { - return Auth_OpenID_isOpenID1($this->getOpenIDNamespace()); - } - - function isOpenID2() - { - return $this->getOpenIDNamespace() == Auth_OpenID_OPENID2_NS; - } - - function fromPostArgs($args) - { - // Construct a Message containing a set of POST arguments - $obj = new Auth_OpenID_Message(); - - // Partition into "openid." args and bare args - $openid_args = array(); - foreach ($args as $key => $value) { - - if (is_array($value)) { - return null; - } - - $parts = explode('.', $key, 2); - - if (count($parts) == 2) { - list($prefix, $rest) = $parts; - } else { - $prefix = null; - } - - if ($prefix != 'openid') { - $obj->args->set(array(Auth_OpenID_BARE_NS, $key), $value); - } else { - $openid_args[$rest] = $value; - } - } - - if ($obj->_fromOpenIDArgs($openid_args)) { - return $obj; - } else { - return null; - } - } - - function fromOpenIDArgs($openid_args) - { - // Takes an array. - - // Construct a Message from a parsed KVForm message - $obj = new Auth_OpenID_Message(); - if ($obj->_fromOpenIDArgs($openid_args)) { - return $obj; - } else { - return null; - } - } - - /** - * @access private - */ - function _fromOpenIDArgs($openid_args) - { - global $Auth_OpenID_registered_aliases; - - // Takes an Auth_OpenID_Mapping instance OR an array. - - if (!Auth_OpenID_Mapping::isA($openid_args)) { - $openid_args = new Auth_OpenID_Mapping($openid_args); - } - - $ns_args = array(); - - // Resolve namespaces - foreach ($openid_args->items() as $pair) { - list($rest, $value) = $pair; - - $parts = explode('.', $rest, 2); - - if (count($parts) == 2) { - list($ns_alias, $ns_key) = $parts; - } else { - $ns_alias = Auth_OpenID_NULL_NAMESPACE; - $ns_key = $rest; - } - - if ($ns_alias == 'ns') { - if ($this->namespaces->addAlias($value, $ns_key) === null) { - return false; - } - } else if (($ns_alias == Auth_OpenID_NULL_NAMESPACE) && - ($ns_key == 'ns')) { - // null namespace - if ($this->setOpenIDNamespace($value, false) === false) { - return false; - } - } else { - $ns_args[] = array($ns_alias, $ns_key, $value); - } - } - - if (!$this->getOpenIDNamespace()) { - if ($this->setOpenIDNamespace(Auth_OpenID_OPENID1_NS, true) === - false) { - return false; - } - } - - // Actually put the pairs into the appropriate namespaces - foreach ($ns_args as $triple) { - list($ns_alias, $ns_key, $value) = $triple; - $ns_uri = $this->namespaces->getNamespaceURI($ns_alias); - if ($ns_uri === null) { - $ns_uri = $this->_getDefaultNamespace($ns_alias); - if ($ns_uri === null) { - - $ns_uri = Auth_OpenID_OPENID_NS; - $ns_key = sprintf('%s.%s', $ns_alias, $ns_key); - } else { - $this->namespaces->addAlias($ns_uri, $ns_alias, true); - } - } - - $this->setArg($ns_uri, $ns_key, $value); - } - - return true; - } - - function _getDefaultNamespace($mystery_alias) - { - global $Auth_OpenID_registered_aliases; - if ($this->isOpenID1()) { - return @$Auth_OpenID_registered_aliases[$mystery_alias]; - } - return null; - } - - function setOpenIDNamespace($openid_ns_uri, $implicit) - { - if (!in_array($openid_ns_uri, $this->allowed_openid_namespaces)) { - Auth_OpenID::log('Invalid null namespace: "%s"', $openid_ns_uri); - return false; - } - - $succeeded = $this->namespaces->addAlias($openid_ns_uri, - Auth_OpenID_NULL_NAMESPACE, - $implicit); - if ($succeeded === false) { - return false; - } - - $this->_openid_ns_uri = $openid_ns_uri; - - return true; - } - - function getOpenIDNamespace() - { - return $this->_openid_ns_uri; - } - - function fromKVForm($kvform_string) - { - // Create a Message from a KVForm string - return Auth_OpenID_Message::fromOpenIDArgs( - Auth_OpenID_KVForm::toArray($kvform_string)); - } - - function copy() - { - return $this; - } - - function toPostArgs() - { - // Return all arguments with openid. in front of namespaced - // arguments. - - $args = array(); - - // Add namespace definitions to the output - foreach ($this->namespaces->iteritems() as $pair) { - list($ns_uri, $alias) = $pair; - if ($this->namespaces->isImplicit($ns_uri)) { - continue; - } - if ($alias == Auth_OpenID_NULL_NAMESPACE) { - $ns_key = 'openid.ns'; - } else { - $ns_key = 'openid.ns.' . $alias; - } - $args[$ns_key] = $ns_uri; - } - - foreach ($this->args->items() as $pair) { - list($ns_parts, $value) = $pair; - list($ns_uri, $ns_key) = $ns_parts; - $key = $this->getKey($ns_uri, $ns_key); - $args[$key] = $value; - } - - return $args; - } - - function toArgs() - { - // Return all namespaced arguments, failing if any - // non-namespaced arguments exist. - $post_args = $this->toPostArgs(); - $kvargs = array(); - foreach ($post_args as $k => $v) { - if (strpos($k, 'openid.') !== 0) { - // raise ValueError( - // 'This message can only be encoded as a POST, because it ' - // 'contains arguments that are not prefixed with "openid."') - return null; - } else { - $kvargs[substr($k, 7)] = $v; - } - } - - return $kvargs; - } - - function toFormMarkup($action_url, $form_tag_attrs = null, - $submit_text = "Continue") - { - $form = "
      $attr) { - $form .= sprintf(" %s=\"%s\"", $name, $attr); - } - } - - $form .= ">\n"; - - foreach ($this->toPostArgs() as $name => $value) { - $form .= sprintf( - "\n", - $name, $value); - } - - $form .= sprintf("\n", - $submit_text); - - $form .= "
      \n"; - - return $form; - } - - function toURL($base_url) - { - // Generate a GET URL with the parameters in this message - // attached as query parameters. - return Auth_OpenID::appendArgs($base_url, $this->toPostArgs()); - } - - function toKVForm() - { - // Generate a KVForm string that contains the parameters in - // this message. This will fail if the message contains - // arguments outside of the 'openid.' prefix. - return Auth_OpenID_KVForm::fromArray($this->toArgs()); - } - - function toURLEncoded() - { - // Generate an x-www-urlencoded string - $args = array(); - - foreach ($this->toPostArgs() as $k => $v) { - $args[] = array($k, $v); - } - - sort($args); - return Auth_OpenID::httpBuildQuery($args); - } - - /** - * @access private - */ - function _fixNS($namespace) - { - // Convert an input value into the internally used values of - // this object - - if ($namespace == Auth_OpenID_OPENID_NS) { - if ($this->_openid_ns_uri === null) { - return new Auth_OpenID_FailureResponse(null, - 'OpenID namespace not set'); - } else { - $namespace = $this->_openid_ns_uri; - } - } - - if (($namespace != Auth_OpenID_BARE_NS) && - (!is_string($namespace))) { - //TypeError - $err_msg = sprintf("Namespace must be Auth_OpenID_BARE_NS, ". - "Auth_OpenID_OPENID_NS or a string. got %s", - print_r($namespace, true)); - return new Auth_OpenID_FailureResponse(null, $err_msg); - } - - if (($namespace != Auth_OpenID_BARE_NS) && - (strpos($namespace, ':') === false)) { - // fmt = 'OpenID 2.0 namespace identifiers SHOULD be URIs. Got %r' - // warnings.warn(fmt % (namespace,), DeprecationWarning) - - if ($namespace == 'sreg') { - // fmt = 'Using %r instead of "sreg" as namespace' - // warnings.warn(fmt % (SREG_URI,), DeprecationWarning,) - return Auth_OpenID_SREG_URI; - } - } - - return $namespace; - } - - function hasKey($namespace, $ns_key) - { - $namespace = $this->_fixNS($namespace); - if (Auth_OpenID::isFailure($namespace)) { - // XXX log me - return false; - } else { - return $this->args->contains(array($namespace, $ns_key)); - } - } - - function getKey($namespace, $ns_key) - { - // Get the key for a particular namespaced argument - $namespace = $this->_fixNS($namespace); - if (Auth_OpenID::isFailure($namespace)) { - return $namespace; - } - if ($namespace == Auth_OpenID_BARE_NS) { - return $ns_key; - } - - $ns_alias = $this->namespaces->getAlias($namespace); - - // No alias is defined, so no key can exist - if ($ns_alias === null) { - return null; - } - - if ($ns_alias == Auth_OpenID_NULL_NAMESPACE) { - $tail = $ns_key; - } else { - $tail = sprintf('%s.%s', $ns_alias, $ns_key); - } - - return 'openid.' . $tail; - } - - function getArg($namespace, $key, $default = null) - { - // Get a value for a namespaced key. - $namespace = $this->_fixNS($namespace); - - if (Auth_OpenID::isFailure($namespace)) { - return $namespace; - } else { - if ((!$this->args->contains(array($namespace, $key))) && - ($default == Auth_OpenID_NO_DEFAULT)) { - $err_msg = sprintf("Namespace %s missing required field %s", - $namespace, $key); - return new Auth_OpenID_FailureResponse(null, $err_msg); - } else { - return $this->args->get(array($namespace, $key), $default); - } - } - } - - function getArgs($namespace) - { - // Get the arguments that are defined for this namespace URI - - $namespace = $this->_fixNS($namespace); - if (Auth_OpenID::isFailure($namespace)) { - return $namespace; - } else { - $stuff = array(); - foreach ($this->args->items() as $pair) { - list($key, $value) = $pair; - list($pair_ns, $ns_key) = $key; - if ($pair_ns == $namespace) { - $stuff[$ns_key] = $value; - } - } - - return $stuff; - } - } - - function updateArgs($namespace, $updates) - { - // Set multiple key/value pairs in one call - - $namespace = $this->_fixNS($namespace); - - if (Auth_OpenID::isFailure($namespace)) { - return $namespace; - } else { - foreach ($updates as $k => $v) { - $this->setArg($namespace, $k, $v); - } - return true; - } - } - - function setArg($namespace, $key, $value) - { - // Set a single argument in this namespace - $namespace = $this->_fixNS($namespace); - - if (Auth_OpenID::isFailure($namespace)) { - return $namespace; - } else { - $this->args->set(array($namespace, $key), $value); - if ($namespace !== Auth_OpenID_BARE_NS) { - $this->namespaces->add($namespace); - } - return true; - } - } - - function delArg($namespace, $key) - { - $namespace = $this->_fixNS($namespace); - - if (Auth_OpenID::isFailure($namespace)) { - return $namespace; - } else { - return $this->args->del(array($namespace, $key)); - } - } - - function getAliasedArg($aliased_key, $default = null) - { - $parts = explode('.', $aliased_key, 2); - - if (count($parts) != 2) { - $ns = null; - } else { - list($alias, $key) = $parts; - - if ($alias == 'ns') { - // Return the namespace URI for a namespace alias - // parameter. - return $this->namespaces->getNamespaceURI($key); - } else { - $ns = $this->namespaces->getNamespaceURI($alias); - } - } - - if ($ns === null) { - $key = $aliased_key; - $ns = $this->getOpenIDNamespace(); - } - - return $this->getArg($ns, $key, $default); - } -} - -?> diff --git a/_darcs/pristine/extlib/Auth/OpenID/MySQLStore.php b/_darcs/pristine/extlib/Auth/OpenID/MySQLStore.php deleted file mode 100644 index eb08af0162..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/MySQLStore.php +++ /dev/null @@ -1,78 +0,0 @@ -sql['nonce_table'] = - "CREATE TABLE %s (\n". - " server_url VARCHAR(2047) NOT NULL,\n". - " timestamp INTEGER NOT NULL,\n". - " salt CHAR(40) NOT NULL,\n". - " UNIQUE (server_url(255), timestamp, salt)\n". - ") ENGINE=InnoDB"; - - $this->sql['assoc_table'] = - "CREATE TABLE %s (\n". - " server_url BLOB NOT NULL,\n". - " handle VARCHAR(255) NOT NULL,\n". - " secret BLOB NOT NULL,\n". - " issued INTEGER NOT NULL,\n". - " lifetime INTEGER NOT NULL,\n". - " assoc_type VARCHAR(64) NOT NULL,\n". - " PRIMARY KEY (server_url(255), handle)\n". - ") ENGINE=InnoDB"; - - $this->sql['set_assoc'] = - "REPLACE INTO %s (server_url, handle, secret, issued,\n". - " lifetime, assoc_type) VALUES (?, ?, !, ?, ?, ?)"; - - $this->sql['get_assocs'] = - "SELECT handle, secret, issued, lifetime, assoc_type FROM %s ". - "WHERE server_url = ?"; - - $this->sql['get_assoc'] = - "SELECT handle, secret, issued, lifetime, assoc_type FROM %s ". - "WHERE server_url = ? AND handle = ?"; - - $this->sql['remove_assoc'] = - "DELETE FROM %s WHERE server_url = ? AND handle = ?"; - - $this->sql['add_nonce'] = - "INSERT INTO %s (server_url, timestamp, salt) VALUES (?, ?, ?)"; - - $this->sql['clean_nonce'] = - "DELETE FROM %s WHERE timestamp < ?"; - - $this->sql['clean_assoc'] = - "DELETE FROM %s WHERE issued + lifetime < ?"; - } - - /** - * @access private - */ - function blobEncode($blob) - { - return "0x" . bin2hex($blob); - } -} - -?> \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/Nonce.php b/_darcs/pristine/extlib/Auth/OpenID/Nonce.php deleted file mode 100644 index effecac385..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/Nonce.php +++ /dev/null @@ -1,109 +0,0 @@ - \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/PAPE.php b/_darcs/pristine/extlib/Auth/OpenID/PAPE.php deleted file mode 100644 index 62cba8a912..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/PAPE.php +++ /dev/null @@ -1,301 +0,0 @@ -preferred_auth_policies = $preferred_auth_policies; - $this->max_auth_age = $max_auth_age; - } - - /** - * Add an acceptable authentication policy URI to this request - * - * This method is intended to be used by the relying party to add - * acceptable authentication types to the request. - * - * policy_uri: The identifier for the preferred type of - * authentication. - */ - function addPolicyURI($policy_uri) - { - if (!in_array($policy_uri, $this->preferred_auth_policies)) { - $this->preferred_auth_policies[] = $policy_uri; - } - } - - function getExtensionArgs() - { - $ns_args = array( - 'preferred_auth_policies' => - implode(' ', $this->preferred_auth_policies) - ); - - if ($this->max_auth_age !== null) { - $ns_args['max_auth_age'] = strval($this->max_auth_age); - } - - return $ns_args; - } - - /** - * Instantiate a Request object from the arguments in a checkid_* - * OpenID message - */ - function fromOpenIDRequest($request) - { - $obj = new Auth_OpenID_PAPE_Request(); - $args = $request->message->getArgs(Auth_OpenID_PAPE_NS_URI); - - if ($args === null || $args === array()) { - return null; - } - - $obj->parseExtensionArgs($args); - return $obj; - } - - /** - * Set the state of this request to be that expressed in these - * PAPE arguments - * - * @param args: The PAPE arguments without a namespace - */ - function parseExtensionArgs($args) - { - // preferred_auth_policies is a space-separated list of policy - // URIs - $this->preferred_auth_policies = array(); - - $policies_str = Auth_OpenID::arrayGet($args, 'preferred_auth_policies'); - if ($policies_str) { - foreach (explode(' ', $policies_str) as $uri) { - if (!in_array($uri, $this->preferred_auth_policies)) { - $this->preferred_auth_policies[] = $uri; - } - } - } - - // max_auth_age is base-10 integer number of seconds - $max_auth_age_str = Auth_OpenID::arrayGet($args, 'max_auth_age'); - if ($max_auth_age_str) { - $this->max_auth_age = Auth_OpenID::intval($max_auth_age_str); - } else { - $this->max_auth_age = null; - } - } - - /** - * Given a list of authentication policy URIs that a provider - * supports, this method returns the subsequence of those types - * that are preferred by the relying party. - * - * @param supported_types: A sequence of authentication policy - * type URIs that are supported by a provider - * - * @return array The sub-sequence of the supported types that are - * preferred by the relying party. This list will be ordered in - * the order that the types appear in the supported_types - * sequence, and may be empty if the provider does not prefer any - * of the supported authentication types. - */ - function preferredTypes($supported_types) - { - $result = array(); - - foreach ($supported_types as $st) { - if (in_array($st, $this->preferred_auth_policies)) { - $result[] = $st; - } - } - return $result; - } -} - -/** - * A Provider Authentication Policy response, sent from a provider to - * a relying party - */ -class Auth_OpenID_PAPE_Response extends Auth_OpenID_Extension { - - var $ns_alias = 'pape'; - var $ns_uri = Auth_OpenID_PAPE_NS_URI; - - function Auth_OpenID_PAPE_Response($auth_policies=null, $auth_time=null, - $nist_auth_level=null) - { - if ($auth_policies) { - $this->auth_policies = $auth_policies; - } else { - $this->auth_policies = array(); - } - - $this->auth_time = $auth_time; - $this->nist_auth_level = $nist_auth_level; - } - - /** - * Add a authentication policy to this response - * - * This method is intended to be used by the provider to add a - * policy that the provider conformed to when authenticating the - * user. - * - * @param policy_uri: The identifier for the preferred type of - * authentication. - */ - function addPolicyURI($policy_uri) - { - if (!in_array($policy_uri, $this->auth_policies)) { - $this->auth_policies[] = $policy_uri; - } - } - - /** - * Create an Auth_OpenID_PAPE_Response object from a successful - * OpenID library response. - * - * @param success_response $success_response A SuccessResponse - * from Auth_OpenID_Consumer::complete() - * - * @returns: A provider authentication policy response from the - * data that was supplied with the id_res response. - */ - function fromSuccessResponse($success_response) - { - $obj = new Auth_OpenID_PAPE_Response(); - - // PAPE requires that the args be signed. - $args = $success_response->getSignedNS(Auth_OpenID_PAPE_NS_URI); - - if ($args === null || $args === array()) { - return null; - } - - $result = $obj->parseExtensionArgs($args); - - if ($result === false) { - return null; - } else { - return $obj; - } - } - - /** - * Parse the provider authentication policy arguments into the - * internal state of this object - * - * @param args: unqualified provider authentication policy - * arguments - * - * @param strict: Whether to return false when bad data is - * encountered - * - * @return null The data is parsed into the internal fields of - * this object. - */ - function parseExtensionArgs($args, $strict=false) - { - $policies_str = Auth_OpenID::arrayGet($args, 'auth_policies'); - if ($policies_str && $policies_str != "none") { - $this->auth_policies = explode(" ", $policies_str); - } - - $nist_level_str = Auth_OpenID::arrayGet($args, 'nist_auth_level'); - if ($nist_level_str !== null) { - $nist_level = Auth_OpenID::intval($nist_level_str); - - if ($nist_level === false) { - if ($strict) { - return false; - } else { - $nist_level = null; - } - } - - if (0 <= $nist_level && $nist_level < 5) { - $this->nist_auth_level = $nist_level; - } else if ($strict) { - return false; - } - } - - $auth_time = Auth_OpenID::arrayGet($args, 'auth_time'); - if ($auth_time !== null) { - if (ereg(PAPE_TIME_VALIDATOR, $auth_time)) { - $this->auth_time = $auth_time; - } else if ($strict) { - return false; - } - } - } - - function getExtensionArgs() - { - $ns_args = array(); - if (count($this->auth_policies) > 0) { - $ns_args['auth_policies'] = implode(' ', $this->auth_policies); - } else { - $ns_args['auth_policies'] = 'none'; - } - - if ($this->nist_auth_level !== null) { - if (!in_array($this->nist_auth_level, range(0, 4), true)) { - return false; - } - $ns_args['nist_auth_level'] = strval($this->nist_auth_level); - } - - if ($this->auth_time !== null) { - if (!ereg(PAPE_TIME_VALIDATOR, $this->auth_time)) { - return false; - } - - $ns_args['auth_time'] = $this->auth_time; - } - - return $ns_args; - } -} - -?> \ No newline at end of file diff --git a/_darcs/pristine/extlib/Auth/OpenID/Parse.php b/_darcs/pristine/extlib/Auth/OpenID/Parse.php deleted file mode 100644 index 546f34f6be..0000000000 --- a/_darcs/pristine/extlib/Auth/OpenID/Parse.php +++ /dev/null @@ -1,352 +0,0 @@ - tags - * in the head of HTML or XHTML documents and parses out their - * attributes according to the OpenID spec. It is a liberal parser, - * but it requires these things from the data in order to work: - * - * - There must be an open tag - * - * - There must be an open tag inside of the tag - * - * - Only s that are found inside of the tag are parsed - * (this is by design) - * - * - The parser follows the OpenID specification in resolving the - * attributes of the link tags. This means that the attributes DO - * NOT get resolved as they would by an XML or HTML parser. In - * particular, only certain entities get replaced, and href - * attributes do not get resolved relative to a base URL. - * - * From http://openid.net/specs.bml: - * - * - The openid.server URL MUST be an absolute URL. OpenID consumers - * MUST NOT attempt to resolve relative URLs. - * - * - The openid.server URL MUST NOT include entities other than &, - * <, >, and ". - * - * The parser ignores SGML comments and . Both kinds - * of quoting are allowed for attributes. - * - * The parser deals with invalid markup in these ways: - * - * - Tag names are not case-sensitive - * - * - The tag is accepted even when it is not at the top level - * - * - The tag is accepted even when it is not a direct child of - * the tag, but a tag must be an ancestor of the - * tag - * - * - tags are accepted even when they are not direct children - * of the tag, but a tag must be an ancestor of the - * tag - * - * - If there is no closing tag for an open or tag, the - * remainder of the document is viewed as being inside of the - * tag. If there is no closing tag for a tag, the link tag is - * treated as a short tag. Exceptions to this rule are that - * closes and or closes - * - * - Attributes of the tag are not required to be quoted. - * - * - In the case of duplicated attribute names, the attribute coming - * last in the tag will be the value returned. - * - * - Any text that does not parse as an attribute within a link tag - * will be ignored. (e.g. will - * ignore pumpkin) - * - * - If there are more than one or tag, the parser only - * looks inside of the first one. - * - * - The contents of "; - } else { - header('Location: ' . $url); - } - exit; - } - - public function in_frame() { - return isset($this->fb_params['in_canvas']) || isset($this->fb_params['in_iframe']); - } - public function in_fb_canvas() { - return isset($this->fb_params['in_canvas']); - } - - public function get_loggedin_user() { - return $this->user; - } - - public function get_canvas_user() { - return $this->canvas_user; - } - - public function get_profile_user() { - return $this->profile_user; - } - - public static function current_url() { - return 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; - } - - // require_add and require_install have been removed. - // see http://developer.facebook.com/news.php?blog=1&story=116 for more details - public function require_login() { - if ($user = $this->get_loggedin_user()) { - return $user; - } - $this->redirect($this->get_login_url(self::current_url(), $this->in_frame())); - } - - public function require_frame() { - if (!$this->in_frame()) { - $this->redirect($this->get_login_url(self::current_url(), true)); - } - } - - public static function get_facebook_url($subdomain='www') { - return 'http://' . $subdomain . '.facebook.com'; - } - - public function get_install_url($next=null) { - // this was renamed, keeping for compatibility's sake - return $this->get_add_url($next); - } - - public function get_add_url($next=null) { - return self::get_facebook_url().'/add.php?api_key='.$this->api_key . - ($next ? '&next=' . urlencode($next) : ''); - } - - public function get_login_url($next, $canvas) { - return self::get_facebook_url().'/login.php?v=1.0&api_key=' . $this->api_key . - ($next ? '&next=' . urlencode($next) : '') . - ($canvas ? '&canvas' : ''); - } - - public function set_user($user, $session_key, $expires=null, $session_secret=null) { - if (!$this->in_fb_canvas() && (!isset($_COOKIE[$this->api_key . '_user']) - || $_COOKIE[$this->api_key . '_user'] != $user)) { - $this->set_cookies($user, $session_key, $expires, $session_secret); - } - $this->user = $user; - $this->api_client->session_key = $session_key; - $this->session_expires = $expires; - } - - public function set_cookies($user, $session_key, $expires=null, $session_secret=null) { - $cookies = array(); - $cookies['user'] = $user; - $cookies['session_key'] = $session_key; - if ($expires != null) { - $cookies['expires'] = $expires; - } - if ($session_secret != null) { - $cookies['ss'] = $session_secret; - } - - foreach ($cookies as $name => $val) { - setcookie($this->api_key . '_' . $name, $val, (int)$expires, '', $this->base_domain); - $_COOKIE[$this->api_key . '_' . $name] = $val; - } - $sig = self::generate_sig($cookies, $this->secret); - setcookie($this->api_key, $sig, (int)$expires, '', $this->base_domain); - $_COOKIE[$this->api_key] = $sig; - - if ($this->base_domain != null) { - $base_domain_cookie = 'base_domain_' . $this->api_key; - setcookie($base_domain_cookie, $this->base_domain, (int)$expires, '', $this->base_domain); - $_COOKIE[$base_domain_cookie] = $this->base_domain; - } - } - - /** - * Tries to undo the badness of magic quotes as best we can - * @param string $val Should come directly from $_GET, $_POST, etc. - * @return string val without added slashes - */ - public static function no_magic_quotes($val) { - if (get_magic_quotes_gpc()) { - return stripslashes($val); - } else { - return $val; - } - } - - /* - * Get the signed parameters that were sent from Facebook. Validates the set - * of parameters against the included signature. - * - * Since Facebook sends data to your callback URL via unsecured means, the - * signature is the only way to make sure that the data actually came from - * Facebook. So if an app receives a request at the callback URL, it should - * always verify the signature that comes with against your own secret key. - * Otherwise, it's possible for someone to spoof a request by - * pretending to be someone else, i.e.: - * www.your-callback-url.com/?fb_user=10101 - * - * This is done automatically by verify_fb_params. - * - * @param assoc $params a full array of external parameters. - * presumed $_GET, $_POST, or $_COOKIE - * @param int $timeout number of seconds that the args are good for. - * Specifically good for forcing cookies to expire. - * @param string $namespace prefix string for the set of parameters we want - * to verify. i.e., fb_sig or fb_post_sig - * - * @return assoc the subset of parameters containing the given prefix, - * and also matching the signature associated with them. - * OR an empty array if the params do not validate - */ - public function get_valid_fb_params($params, $timeout=null, $namespace='fb_sig') { - $prefix = $namespace . '_'; - $prefix_len = strlen($prefix); - $fb_params = array(); - if (empty($params)) { - return array(); - } - - foreach ($params as $name => $val) { - // pull out only those parameters that match the prefix - // note that the signature itself ($params[$namespace]) is not in the list - if (strpos($name, $prefix) === 0) { - $fb_params[substr($name, $prefix_len)] = self::no_magic_quotes($val); - } - } - - // validate that the request hasn't expired. this is most likely - // for params that come from $_COOKIE - if ($timeout && (!isset($fb_params['time']) || time() - $fb_params['time'] > $timeout)) { - return array(); - } - - // validate that the params match the signature - $signature = isset($params[$namespace]) ? $params[$namespace] : null; - if (!$signature || (!$this->verify_signature($fb_params, $signature))) { - return array(); - } - return $fb_params; - } - - /* - * Validates that a given set of parameters match their signature. - * Parameters all match a given input prefix, such as "fb_sig". - * - * @param $fb_params an array of all Facebook-sent parameters, - * not including the signature itself - * @param $expected_sig the expected result to check against - */ - public function verify_signature($fb_params, $expected_sig) { - return self::generate_sig($fb_params, $this->secret) == $expected_sig; - } - - /* - * Generate a signature using the application secret key. - * - * The only two entities that know your secret key are you and Facebook, - * according to the Terms of Service. Since nobody else can generate - * the signature, you can rely on it to verify that the information - * came from Facebook. - * - * @param $params_array an array of all Facebook-sent parameters, - * NOT INCLUDING the signature itself - * @param $secret your app's secret key - * - * @return a hash to be checked against the signature provided by Facebook - */ - public static function generate_sig($params_array, $secret) { - $str = ''; - - ksort($params_array); - // Note: make sure that the signature parameter is not already included in - // $params_array. - foreach ($params_array as $k=>$v) { - $str .= "$k=$v"; - } - $str .= $secret; - - return md5($str); - } - - public function encode_validationError($summary, $message) { - return json_encode( - array('errorCode' => FACEBOOK_API_VALIDATION_ERROR, - 'errorTitle' => $summary, - 'errorMessage' => $message)); - } - - public function encode_multiFeedStory($feed, $next) { - return json_encode( - array('method' => 'multiFeedStory', - 'content' => - array('next' => $next, - 'feed' => $feed))); - } - - public function encode_feedStory($feed, $next) { - return json_encode( - array('method' => 'feedStory', - 'content' => - array('next' => $next, - 'feed' => $feed))); - } - - public function create_templatizedFeedStory($title_template, $title_data=array(), - $body_template='', $body_data = array(), $body_general=null, - $image_1=null, $image_1_link=null, - $image_2=null, $image_2_link=null, - $image_3=null, $image_3_link=null, - $image_4=null, $image_4_link=null) { - return array('title_template'=> $title_template, - 'title_data' => $title_data, - 'body_template'=> $body_template, - 'body_data' => $body_data, - 'body_general' => $body_general, - 'image_1' => $image_1, - 'image_1_link' => $image_1_link, - 'image_2' => $image_2, - 'image_2_link' => $image_2_link, - 'image_3' => $image_3, - 'image_3_link' => $image_3_link, - 'image_4' => $image_4, - 'image_4_link' => $image_4_link); - } - - -} - diff --git a/_darcs/pristine/extlib/facebook/facebook_desktop.php b/_darcs/pristine/extlib/facebook/facebook_desktop.php deleted file mode 100644 index 90cdf66bd0..0000000000 --- a/_darcs/pristine/extlib/facebook/facebook_desktop.php +++ /dev/null @@ -1,104 +0,0 @@ -app_secret = $secret; - $this->verify_sig = false; - parent::__construct($api_key, $secret); - } - - public function do_get_session($auth_token) { - $this->api_client->secret = $this->app_secret; - $this->api_client->session_key = null; - $session_info = parent::do_get_session($auth_token); - if (!empty($session_info['secret'])) { - // store the session secret - $this->set_session_secret($session_info['secret']); - } - return $session_info; - } - - public function set_session_secret($session_secret) { - $this->secret = $session_secret; - $this->api_client->secret = $session_secret; - } - - public function require_login() { - if ($this->get_loggedin_user()) { - try { - // try a session-based API call to ensure that we have the correct - // session secret - $user = $this->api_client->users_getLoggedInUser(); - - // now that we have a valid session secret, verify the signature - $this->verify_sig = true; - if ($this->validate_fb_params(false)) { - return $user; - } else { - // validation failed - return null; - } - } catch (FacebookRestClientException $ex) { - if (isset($_GET['auth_token'])) { - // if we have an auth_token, use it to establish a session - $session_info = $this->do_get_session($_GET['auth_token']); - if ($session_info) { - return $session_info['uid']; - } - } - } - } - // if we get here, we need to redirect the user to log in - $this->redirect($this->get_login_url(self::current_url(), $this->in_fb_canvas())); - } - - public function verify_signature($fb_params, $expected_sig) { - // we don't want to verify the signature until we have a valid - // session secret - if ($this->verify_sig) { - return parent::verify_signature($fb_params, $expected_sig); - } else { - return true; - } - } -} diff --git a/_darcs/pristine/extlib/facebook/facebookapi_php5_restlib.php b/_darcs/pristine/extlib/facebook/facebookapi_php5_restlib.php deleted file mode 100644 index 389f40a9d4..0000000000 --- a/_darcs/pristine/extlib/facebook/facebookapi_php5_restlib.php +++ /dev/null @@ -1,2632 +0,0 @@ -secret = $secret; - $this->session_key = $session_key; - $this->api_key = $api_key; - $this->batch_mode = FacebookRestClient::BATCH_MODE_DEFAULT; - $this->last_call_id = 0; - $this->call_as_apikey = ''; - $this->server_addr = Facebook::get_facebook_url('api') . '/restserver.php'; - - if (!empty($GLOBALS['facebook_config']['debug'])) { - $this->cur_id = 0; - ?> - -user = $uid; - } - - /** - * Start a batch operation. - */ - public function begin_batch() { - if($this->batch_queue !== null) { - $code = FacebookAPIErrorCodes::API_EC_BATCH_ALREADY_STARTED; - throw new FacebookRestClientException($code, - FacebookAPIErrorCodes::$api_error_descriptions[$code]); - } - - $this->batch_queue = array(); - } - - /* - * End current batch operation - */ - public function end_batch() { - if($this->batch_queue === null) { - $code = FacebookAPIErrorCodes::API_EC_BATCH_NOT_STARTED; - throw new FacebookRestClientException($code, - FacebookAPIErrorCodes::$api_error_descriptions[$code]); - } - - $this->execute_server_side_batch(); - - $this->batch_queue = null; - } - - private function execute_server_side_batch() { - $item_count = count($this->batch_queue); - $method_feed = array(); - foreach($this->batch_queue as $batch_item) { - $method_feed[] = $this->create_post_string($batch_item['m'], - $batch_item['p']); - } - - $method_feed_json = json_encode($method_feed); - - $serial_only = - ($this->batch_mode == FacebookRestClient::BATCH_MODE_SERIAL_ONLY); - $params = array('method_feed' => $method_feed_json, - 'serial_only' => $serial_only); - if ($this->call_as_apikey) { - $params['call_as_apikey'] = $this->call_as_apikey; - } - - $xml = $this->post_request('batch.run', $params); - - $result = $this->convert_xml_to_result($xml, 'batch.run', $params); - - - if (is_array($result) && isset($result['error_code'])) { - throw new FacebookRestClientException($result['error_msg'], - $result['error_code']); - } - - for($i = 0; $i < $item_count; $i++) { - $batch_item = $this->batch_queue[$i]; - $batch_item_result_xml = $result[$i]; - $batch_item_result = $this->convert_xml_to_result($batch_item_result_xml, - $batch_item['m'], - $batch_item['p']); - - if (is_array($batch_item_result) && - isset($batch_item_result['error_code'])) { - throw new FacebookRestClientException($batch_item_result['error_msg'], - $batch_item_result['error_code']); - } - $batch_item['r'] = $batch_item_result; - } - } - - public function begin_permissions_mode($permissions_apikey) { - $this->call_as_apikey = $permissions_apikey; - } - - public function end_permissions_mode() { - $this->call_as_apikey = ''; - } - - /** - * Returns public information for an application (as shown in the application - * directory) by either application ID, API key, or canvas page name. - * - * @param int $application_id (Optional) app id - * @param string $application_api_key (Optional) api key - * @param string $application_canvas_name (Optional) canvas name - * - * Exactly one argument must be specified, otherwise it is an error. - * - * @return array An array of public information about the application. - */ - public function application_getPublicInfo($application_id=null, - $application_api_key=null, - $application_canvas_name=null) { - return $this->call_method('facebook.application.getPublicInfo', - array('application_id' => $application_id, - 'application_api_key' => $application_api_key, - 'application_canvas_name' => $application_canvas_name)); - } - - /** - * Creates an authentication token to be used as part of the desktop login - * flow. For more information, please see - * http://wiki.developers.facebook.com/index.php/Auth.createToken. - * - * @return string An authentication token. - */ - public function auth_createToken() { - return $this->call_method('facebook.auth.createToken', array()); - } - - /** - * Returns the session information available after current user logs in. - * - * @param string $auth_token the token returned by - * auth_createToken or passed back to - * your callback_url. - * @param bool $generate_session_secret whether the session returned should - * include a session secret - * - * @return array An assoc array containing session_key, uid - */ - public function auth_getSession($auth_token, $generate_session_secret=false) { - //Check if we are in batch mode - if($this->batch_queue === null) { - $result = $this->call_method('facebook.auth.getSession', - array('auth_token' => $auth_token, - 'generate_session_secret' => $generate_session_secret)); - $this->session_key = $result['session_key']; - - if (!empty($result['secret']) && !$generate_session_secret) { - // desktop apps have a special secret - $this->secret = $result['secret']; - } - return $result; - } - } - - /** - * Generates a session-specific secret. This is for integration with - * client-side API calls, such as the JS library. - * - * @return array A session secret for the current promoted session - * - * @error API_EC_PARAM_SESSION_KEY - * API_EC_PARAM_UNKNOWN - */ - public function auth_promoteSession() { - return $this->call_method('facebook.auth.promoteSession', array()); - } - - /** - * Expires the session that is currently being used. If this call is - * successful, no further calls to the API (which require a session) can be - * made until a valid session is created. - * - * @return bool true if session expiration was successful, false otherwise - */ - public function auth_expireSession() { - return $this->call_method('facebook.auth.expireSession', array()); - } - - /** - * Revokes the user's agreement to the Facebook Terms of Service for your - * application. If you call this method for one of your users, you will no - * longer be able to make API requests on their behalf until they again - * authorize your application. Use with care. Note that if this method is - * called without a user parameter, then it will revoke access for the - * current session's user. - * - * @param int $uid (Optional) User to revoke - * - * @return bool true if revocation succeeds, false otherwise - */ - public function auth_revokeAuthorization($uid=null) { - return $this->call_method('facebook.auth.revokeAuthorization', - array('uid' => $uid)); - } - - /** - * Returns the number of unconnected friends that exist in this application. - * This number is determined based on the accounts registered through - * connect.registerUsers() (see below). - */ - public function connect_getUnconnectedFriendsCount() { - return $this->call_method('facebook.connect.getUnconnectedFriendsCount', - array()); - } - - /** - * This method is used to create an association between an external user - * account and a Facebook user account, as per Facebook Connect. - * - * This method takes an array of account data, including a required email_hash - * and optional account data. For each connected account, if the user exists, - * the information is added to the set of the user's connected accounts. - * If the user has already authorized the site, the connected account is added - * in the confirmed state. If the user has not yet authorized the site, the - * connected account is added in the pending state. - * - * This is designed to help Facebook Connect recognize when two Facebook - * friends are both members of a external site, but perhaps are not aware of - * it. The Connect dialog (see fb:connect-form) is used when friends can be - * identified through these email hashes. See the following url for details: - * - * http://wiki.developers.facebook.com/index.php/Connect.registerUsers - * - * @param mixed $accounts A (JSON-encoded) array of arrays, where each array - * has three properties: - * 'email_hash' (req) - public email hash of account - * 'account_id' (opt) - remote account id; - * 'account_url' (opt) - url to remote account; - * - * @return array The list of email hashes for the successfully registered - * accounts. - */ - public function connect_registerUsers($accounts) { - return $this->call_method('facebook.connect.registerUsers', - array('accounts' => $accounts)); - } - - /** - * Unregisters a set of accounts registered using connect.registerUsers. - * - * @param array $email_hashes The (JSON-encoded) list of email hashes to be - * unregistered. - * - * @return array The list of email hashes which have been successfully - * unregistered. - */ - public function connect_unregisterUsers($email_hashes) { - return $this->call_method('facebook.connect.unregisterUsers', - array('email_hashes' => $email_hashes)); - } - - /** - * Returns events according to the filters specified. - * - * @param int $uid (Optional) User associated with events. A null - * parameter will default to the session user. - * @param array $eids (Optional) Filter by these event ids. A null - * parameter will get all events for the user. - * @param int $start_time (Optional) Filter with this unix time as lower - * bound. A null or zero parameter indicates no - * lower bound. - * @param int $end_time (Optional) Filter with this UTC as upper bound. - * A null or zero parameter indicates no upper - * bound. - * @param string $rsvp_status (Optional) Only show events where the given uid - * has this rsvp status. This only works if you - * have specified a value for $uid. Values are as - * in events.getMembers. Null indicates to ignore - * rsvp status when filtering. - * - * @return array The events matching the query. - */ - public function &events_get($uid=null, - $eids=null, - $start_time=null, - $end_time=null, - $rsvp_status=null) { - return $this->call_method('facebook.events.get', - array('uid' => $uid, - 'eids' => $eids, - 'start_time' => $start_time, - 'end_time' => $end_time, - 'rsvp_status' => $rsvp_status)); - } - - /** - * Returns membership list data associated with an event. - * - * @param int $eid event id - * - * @return array An assoc array of four membership lists, with keys - * 'attending', 'unsure', 'declined', and 'not_replied' - */ - public function &events_getMembers($eid) { - return $this->call_method('facebook.events.getMembers', - array('eid' => $eid)); - } - - /** - * RSVPs the current user to this event. - * - * @param int $eid event id - * @param string $rsvp_status 'attending', 'unsure', or 'declined' - * - * @return bool true if successful - */ - public function &events_rsvp($eid, $rsvp_status) { - return $this->call_method('facebook.events.rsvp', - array( - 'eid' => $eid, - 'rsvp_status' => $rsvp_status)); - } - - /** - * Cancels an event. Only works for events where application is the admin. - * - * @param int $eid event id - * @param string $cancel_message (Optional) message to send to members of - * the event about why it is cancelled - * - * @return bool true if successful - */ - public function &events_cancel($eid, $cancel_message='') { - return $this->call_method('facebook.events.cancel', - array('eid' => $eid, - 'cancel_message' => $cancel_message)); - } - - /** - * Creates an event on behalf of the user is there is a session, otherwise on - * behalf of app. Successful creation guarantees app will be admin. - * - * @param assoc array $event_info json encoded event information - * - * @return int event id - */ - public function &events_create($event_info) { - return $this->call_method('facebook.events.create', - array('event_info' => $event_info)); - } - - /** - * Edits an existing event. Only works for events where application is admin. - * - * @param int $eid event id - * @param assoc array $event_info json encoded event information - * - * @return bool true if successful - */ - public function &events_edit($eid, $event_info) { - return $this->call_method('facebook.events.edit', - array('eid' => $eid, - 'event_info' => $event_info)); - } - - /** - * Fetches and re-caches the image stored at the given URL, for use in images - * published to non-canvas pages via the API (for example, to user profiles - * via profile.setFBML, or to News Feed via feed.publishUserAction). - * - * @param string $url The absolute URL from which to refresh the image. - * - * @return bool true on success - */ - public function &fbml_refreshImgSrc($url) { - return $this->call_method('facebook.fbml.refreshImgSrc', - array('url' => $url)); - } - - /** - * Fetches and re-caches the content stored at the given URL, for use in an - * fb:ref FBML tag. - * - * @param string $url The absolute URL from which to fetch content. This URL - * should be used in a fb:ref FBML tag. - * - * @return bool true on success - */ - public function &fbml_refreshRefUrl($url) { - return $this->call_method('facebook.fbml.refreshRefUrl', - array('url' => $url)); - } - - /** - * Lets you insert text strings in their native language into the Facebook - * Translations database so they can be translated. - * - * @param array $native_strings An array of maps, where each map has a 'text' - * field and a 'description' field. - * - * @return int Number of strings uploaded. - */ - public function &fbml_uploadNativeStrings($native_strings) { - return $this->call_method('facebook.fbml.uploadNativeStrings', - array('native_strings' => json_encode($native_strings))); - } - - /** - * Associates a given "handle" with FBML markup so that the handle can be - * used within the fb:ref FBML tag. A handle is unique within an application - * and allows an application to publish identical FBML to many user profiles - * and do subsequent updates without having to republish FBML on behalf of - * each user. - * - * @param string $handle The handle to associate with the given FBML. - * @param string $fbml The FBML to associate with the given handle. - * - * @return bool true on success - */ - public function &fbml_setRefHandle($handle, $fbml) { - return $this->call_method('facebook.fbml.setRefHandle', - array('handle' => $handle, 'fbml' => $fbml)); - } - - /** - * Register custom tags for the application. Custom tags can be used - * to extend the set of tags available to applications in FBML - * markup. - * - * Before you call this function, - * make sure you read the full documentation at - * - * http://wiki.developers.facebook.com/index.php/Fbml.RegisterCustomTags - * - * IMPORTANT: This function overwrites the values of - * existing tags if the names match. Use this function with care because - * it may break the FBML of any application that is using the - * existing version of the tags. - * - * @param mixed $tags an array of tag objects (the full description is on the - * wiki page) - * - * @return int the number of tags that were registered - */ - public function &fbml_registerCustomTags($tags) { - $tags = json_encode($tags); - return $this->call_method('facebook.fbml.registerCustomTags', - array('tags' => $tags)); - } - - /** - * Get the custom tags for an application. If $app_id - * is not specified, the calling app's tags are returned. - * If $app_id is different from the id of the calling app, - * only the app's public tags are returned. - * The return value is an array of the same type as - * the $tags parameter of fbml_registerCustomTags(). - * - * @param int $app_id the application's id (optional) - * - * @return mixed an array containing the custom tag objects - */ - public function &fbml_getCustomTags($app_id = null) { - return $this->call_method('facebook.fbml.getCustomTags', - array('app_id' => $app_id)); - } - - - /** - * Delete custom tags the application has registered. If - * $tag_names is null, all the application's custom tags will be - * deleted. - * - * IMPORTANT: If your application has registered public tags - * that other applications may be using, don't delete those tags! - * Doing so can break the FBML ofapplications that are using them. - * - * @param array $tag_names the names of the tags to delete (optinal) - * @return bool true on success - */ - public function &fbml_deleteCustomTags($tag_names = null) { - return $this->call_method('facebook.fbml.deleteCustomTags', - array('tag_names' => json_encode($tag_names))); - } - - - - /** - * This method is deprecated for calls made on behalf of users. This method - * works only for publishing stories on a Facebook Page that has installed - * your application. To publish stories to a user's profile, use - * feed.publishUserAction instead. - * - * For more details on this call, please visit the wiki page: - * - * http://wiki.developers.facebook.com/index.php/Feed.publishTemplatizedAction - */ - public function &feed_publishTemplatizedAction($title_template, - $title_data, - $body_template, - $body_data, - $body_general, - $image_1=null, - $image_1_link=null, - $image_2=null, - $image_2_link=null, - $image_3=null, - $image_3_link=null, - $image_4=null, - $image_4_link=null, - $target_ids='', - $page_actor_id=null) { - return $this->call_method('facebook.feed.publishTemplatizedAction', - array('title_template' => $title_template, - 'title_data' => $title_data, - 'body_template' => $body_template, - 'body_data' => $body_data, - 'body_general' => $body_general, - 'image_1' => $image_1, - 'image_1_link' => $image_1_link, - 'image_2' => $image_2, - 'image_2_link' => $image_2_link, - 'image_3' => $image_3, - 'image_3_link' => $image_3_link, - 'image_4' => $image_4, - 'image_4_link' => $image_4_link, - 'target_ids' => $target_ids, - 'page_actor_id' => $page_actor_id)); - } - - /** - * Registers a template bundle. Template bundles are somewhat involved, so - * it's recommended you check out the wiki for more details: - * - * http://wiki.developers.facebook.com/index.php/Feed.registerTemplateBundle - * - * @return string A template bundle id - */ - public function &feed_registerTemplateBundle($one_line_story_templates, - $short_story_templates = array(), - $full_story_template = null, - $action_links = array()) { - - $one_line_story_templates = json_encode($one_line_story_templates); - - if (!empty($short_story_templates)) { - $short_story_templates = json_encode($short_story_templates); - } - - if (isset($full_story_template)) { - $full_story_template = json_encode($full_story_template); - } - - if (isset($action_links)) { - $action_links = json_encode($action_links); - } - - return $this->call_method('facebook.feed.registerTemplateBundle', - array('one_line_story_templates' => $one_line_story_templates, - 'short_story_templates' => $short_story_templates, - 'full_story_template' => $full_story_template, - 'action_links' => $action_links)); - } - - /** - * Retrieves the full list of active template bundles registered by the - * requesting application. - * - * @return array An array of template bundles - */ - public function &feed_getRegisteredTemplateBundles() { - return $this->call_method('facebook.feed.getRegisteredTemplateBundles', - array()); - } - - /** - * Retrieves information about a specified template bundle previously - * registered by the requesting application. - * - * @param string $template_bundle_id The template bundle id - * - * @return array Template bundle - */ - public function &feed_getRegisteredTemplateBundleByID($template_bundle_id) { - return $this->call_method('facebook.feed.getRegisteredTemplateBundleByID', - array('template_bundle_id' => $template_bundle_id)); - } - - /** - * Deactivates a previously registered template bundle. - * - * @param string $template_bundle_id The template bundle id - * - * @return bool true on success - */ - public function &feed_deactivateTemplateBundleByID($template_bundle_id) { - return $this->call_method('facebook.feed.deactivateTemplateBundleByID', - array('template_bundle_id' => $template_bundle_id)); - } - - const STORY_SIZE_ONE_LINE = 1; - const STORY_SIZE_SHORT = 2; - const STORY_SIZE_FULL = 4; - - /** - * Publishes a story on behalf of the user owning the session, using the - * specified template bundle. This method requires an active session key in - * order to be called. - * - * The parameters to this method ($templata_data in particular) are somewhat - * involved. It's recommended you visit the wiki for details: - * - * http://wiki.developers.facebook.com/index.php/Feed.publishUserAction - * - * @param int $template_bundle_id A template bundle id previously registered - * @param array $template_data See wiki article for syntax - * @param array $target_ids (Optional) An array of friend uids of the - * user who shared in this action. - * @param string $body_general (Optional) Additional markup that extends - * the body of a short story. - * @param int $story_size (Optional) A story size (see above) - * - * @return bool true on success - */ - public function &feed_publishUserAction( - $template_bundle_id, $template_data, $target_ids='', $body_general='', - $story_size=FacebookRestClient::STORY_SIZE_ONE_LINE) { - - if (is_array($template_data)) { - $template_data = json_encode($template_data); - } // allow client to either pass in JSON or an assoc that we JSON for them - - if (is_array($target_ids)) { - $target_ids = json_encode($target_ids); - $target_ids = trim($target_ids, "[]"); // we don't want square brackets - } - - return $this->call_method('facebook.feed.publishUserAction', - array('template_bundle_id' => $template_bundle_id, - 'template_data' => $template_data, - 'target_ids' => $target_ids, - 'body_general' => $body_general, - 'story_size' => $story_size)); - } - - /** - * For the current user, retrieves stories generated by the user's friends - * while using this application. This can be used to easily create a - * "News Feed" like experience. - * - * @return array An array of feed story objects. - */ - public function &feed_getAppFriendStories() { - return $this->call_method('facebook.feed.getAppFriendStories', array()); - } - - /** - * Makes an FQL query. This is a generalized way of accessing all the data - * in the API, as an alternative to most of the other method calls. More - * info at http://developers.facebook.com/documentation.php?v=1.0&doc=fql - * - * @param string $query the query to evaluate - * - * @return array generalized array representing the results - */ - public function &fql_query($query) { - return $this->call_method('facebook.fql.query', - array('query' => $query)); - } - - /** - * Returns whether or not pairs of users are friends. - * Note that the Facebook friend relationship is symmetric. - * - * @param array $uids1 array of ids (id_1, id_2,...) of some length X - * @param array $uids2 array of ids (id_A, id_B,...) of SAME length X - * - * @return array An array with uid1, uid2, and bool if friends, e.g.: - * array(0 => array('uid1' => id_1, 'uid2' => id_A, 'are_friends' => 1), - * 1 => array('uid1' => id_2, 'uid2' => id_B, 'are_friends' => 0) - * ...) - */ - public function &friends_areFriends($uids1, $uids2) { - return $this->call_method('facebook.friends.areFriends', - array('uids1' => $uids1, 'uids2' => $uids2)); - } - - /** - * Returns the friends of the current session user. - * - * @param int $flid (Optional) Only return friends on this friend list. - * - * @return array An array of friends - */ - public function &friends_get($flid=null) { - if (isset($this->friends_list)) { - return $this->friends_list; - } - $params = array(); - if (isset($this->canvas_user)) { - $params['uid'] = $this->canvas_user; - } - if ($flid) { - $params['flid'] = $flid; - } - return $this->call_method('facebook.friends.get', $params); - - } - - /** - * Returns the set of friend lists for the current session user. - * - * @return array An array of friend list objects - */ - public function &friends_getLists() { - return $this->call_method('facebook.friends.getLists', array()); - } - - /** - * Returns the friends of the session user, who are also users - * of the calling application. - * - * @return array An array of friends also using the app - */ - public function &friends_getAppUsers() { - return $this->call_method('facebook.friends.getAppUsers', array()); - } - - /** - * Returns groups according to the filters specified. - * - * @param int $uid (Optional) User associated with groups. A null - * parameter will default to the session user. - * @param array $gids (Optional) Group ids to query. A null parameter will - * get all groups for the user. - * - * @return array An array of group objects - */ - public function &groups_get($uid, $gids) { - return $this->call_method('facebook.groups.get', - array('uid' => $uid, - 'gids' => $gids)); - } - - /** - * Returns the membership list of a group. - * - * @param int $gid Group id - * - * @return array An array with four membership lists, with keys 'members', - * 'admins', 'officers', and 'not_replied' - */ - public function &groups_getMembers($gid) { - return $this->call_method('facebook.groups.getMembers', - array('gid' => $gid)); - } - - /** - * Returns cookies according to the filters specified. - * - * @param int $uid User for which the cookies are needed. - * @param string $name (Optional) A null parameter will get all cookies - * for the user. - * - * @return array Cookies! Nom nom nom nom nom. - */ - public function data_getCookies($uid, $name) { - return $this->call_method('facebook.data.getCookies', - array('uid' => $uid, - 'name' => $name)); - } - - /** - * Sets cookies according to the params specified. - * - * @param int $uid User for which the cookies are needed. - * @param string $name Name of the cookie - * @param string $value (Optional) if expires specified and is in the past - * @param int $expires (Optional) Expiry time - * @param string $path (Optional) Url path to associate with (default is /) - * - * @return bool true on success - */ - public function data_setCookie($uid, $name, $value, $expires, $path) { - return $this->call_method('facebook.data.setCookie', - array('uid' => $uid, - 'name' => $name, - 'value' => $value, - 'expires' => $expires, - 'path' => $path)); - } - - /** - * Permissions API - */ - - /** - * Checks API-access granted by self to the specified application. - * - * @param string $permissions_apikey Other application key - * - * @return array API methods/namespaces which are allowed access - */ - public function permissions_checkGrantedApiAccess($permissions_apikey) { - return $this->call_method('facebook.permissions.checkGrantedApiAccess', - array('permissions_apikey' => $permissions_apikey)); - } - - /** - * Checks API-access granted to self by the specified application. - * - * @param string $permissions_apikey Other application key - * - * @return array API methods/namespaces which are allowed access - */ - public function permissions_checkAvailableApiAccess($permissions_apikey) { - return $this->call_method('facebook.permissions.checkAvailableApiAccess', - array('permissions_apikey' => $permissions_apikey)); - } - - /** - * Grant API-access to the specified methods/namespaces to the specified - * application. - * - * @param string $permissions_apikey Other application key - * @param array(string) $method_arr (Optional) API methods/namespaces - * allowed - * - * @return array API methods/namespaces which are allowed access - */ - public function permissions_grantApiAccess($permissions_apikey, $method_arr) { - return $this->call_method('facebook.permissions.grantApiAccess', - array('permissions_apikey' => $permissions_apikey, - 'method_arr' => $method_arr)); - } - - /** - * Revoke API-access granted to the specified application. - * - * @param string $permissions_apikey Other application key - * - * @return bool true on success - */ - public function permissions_revokeApiAccess($permissions_apikey) { - return $this->call_method('facebook.permissions.revokeApiAccess', - array('permissions_apikey' => $permissions_apikey)); - } - - /** - * Returns the outstanding notifications for the session user. - * - * @return array An assoc array of notification count objects for - * 'messages', 'pokes' and 'shares', a uid list of - * 'friend_requests', a gid list of 'group_invites', - * and an eid list of 'event_invites' - */ - public function ¬ifications_get() { - return $this->call_method('facebook.notifications.get', array()); - } - - /** - * Sends a notification to the specified users. - * - * @return A comma separated list of successful recipients - */ - public function ¬ifications_send($to_ids, $notification, $type) { - return $this->call_method('facebook.notifications.send', - array('to_ids' => $to_ids, - 'notification' => $notification, - 'type' => $type)); - } - - /** - * Sends an email to the specified user of the application. - * - * @param array $recipients id of the recipients - * @param string $subject subject of the email - * @param string $text (plain text) body of the email - * @param string $fbml fbml markup for an html version of the email - * - * @return string A comma separated list of successful recipients - */ - public function ¬ifications_sendEmail($recipients, - $subject, - $text, - $fbml) { - return $this->call_method('facebook.notifications.sendEmail', - array('recipients' => $recipients, - 'subject' => $subject, - 'text' => $text, - 'fbml' => $fbml)); - } - - /** - * Returns the requested info fields for the requested set of pages. - * - * @param array $page_ids an array of page ids - * @param array $fields an array of strings describing the info fields - * desired - * @param int $uid (Optional) limit results to pages of which this - * user is a fan. - * @param string type limits results to a particular type of page. - * - * @return array An array of pages - */ - public function &pages_getInfo($page_ids, $fields, $uid, $type) { - return $this->call_method('facebook.pages.getInfo', - array('page_ids' => $page_ids, - 'fields' => $fields, - 'uid' => $uid, - 'type' => $type)); - } - - /** - * Returns true if the given user is an admin for the passed page. - * - * @param int $page_id target page id - * @param int $uid (Optional) user id (defaults to the logged-in user) - * - * @return bool true on success - */ - public function &pages_isAdmin($page_id, $uid = null) { - return $this->call_method('facebook.pages.isAdmin', - array('page_id' => $page_id, - 'uid' => $uid)); - } - - /** - * Returns whether or not the given page has added the application. - * - * @param int $page_id target page id - * - * @return bool true on success - */ - public function &pages_isAppAdded($page_id) { - return $this->call_method('facebook.pages.isAppAdded', - array('page_id' => $page_id)); - } - - /** - * Returns true if logged in user is a fan for the passed page. - * - * @param int $page_id target page id - * @param int $uid user to compare. If empty, the logged in user. - * - * @return bool true on success - */ - public function &pages_isFan($page_id, $uid = null) { - return $this->call_method('facebook.pages.isFan', - array('page_id' => $page_id, - 'uid' => $uid)); - } - - /** - * Adds a tag with the given information to a photo. See the wiki for details: - * - * http://wiki.developers.facebook.com/index.php/Photos.addTag - * - * @param int $pid The ID of the photo to be tagged - * @param int $tag_uid The ID of the user being tagged. You must specify - * either the $tag_uid or the $tag_text parameter - * (unless $tags is specified). - * @param string $tag_text Some text identifying the person being tagged. - * You must specify either the $tag_uid or $tag_text - * parameter (unless $tags is specified). - * @param float $x The horizontal position of the tag, as a - * percentage from 0 to 100, from the left of the - * photo. - * @param float $y The vertical position of the tag, as a percentage - * from 0 to 100, from the top of the photo. - * @param array $tags (Optional) An array of maps, where each map - * can contain the tag_uid, tag_text, x, and y - * parameters defined above. If specified, the - * individual arguments are ignored. - * @param int $owner_uid (Optional) The user ID of the user whose photo - * you are tagging. If this parameter is not - * specified, then it defaults to the session user. - * - * @return bool true on success - */ - public function &photos_addTag($pid, - $tag_uid, - $tag_text, - $x, - $y, - $tags, - $owner_uid=0) { - return $this->call_method('facebook.photos.addTag', - array('pid' => $pid, - 'tag_uid' => $tag_uid, - 'tag_text' => $tag_text, - 'x' => $x, - 'y' => $y, - 'tags' => json_encode($tags), - 'owner_uid' => $this->get_uid($owner_uid))); - } - - /** - * Creates and returns a new album owned by the specified user or the current - * session user. - * - * @param string $name The name of the album. - * @param string $description (Optional) A description of the album. - * @param string $location (Optional) A description of the location. - * @param string $visible (Optional) A privacy setting for the album. - * One of 'friends', 'friends-of-friends', - * 'networks', or 'everyone'. Default 'everyone'. - * @param int $uid (Optional) User id for creating the album; if - * not specified, the session user is used. - * - * @return array An album object - */ - public function &photos_createAlbum($name, - $description='', - $location='', - $visible='', - $uid=0) { - return $this->call_method('facebook.photos.createAlbum', - array('name' => $name, - 'description' => $description, - 'location' => $location, - 'visible' => $visible, - 'uid' => $this->get_uid($uid))); - } - - /** - * Returns photos according to the filters specified. - * - * @param int $subj_id (Optional) Filter by uid of user tagged in the photos. - * @param int $aid (Optional) Filter by an album, as returned by - * photos_getAlbums. - * @param array $pids (Optional) Restrict to a list of pids - * - * Note that at least one of these parameters needs to be specified, or an - * error is returned. - * - * @return array An array of photo objects. - */ - public function &photos_get($subj_id, $aid, $pids) { - return $this->call_method('facebook.photos.get', - array('subj_id' => $subj_id, 'aid' => $aid, 'pids' => $pids)); - } - - /** - * Returns the albums created by the given user. - * - * @param int $uid (Optional) The uid of the user whose albums you want. - * A null will return the albums of the session user. - * @param array $aids (Optional) A list of aids to restrict the query. - * - * Note that at least one of the (uid, aids) parameters must be specified. - * - * @returns an array of album objects. - */ - public function &photos_getAlbums($uid, $aids) { - return $this->call_method('facebook.photos.getAlbums', - array('uid' => $uid, - 'aids' => $aids)); - } - - /** - * Returns the tags on all photos specified. - * - * @param string $pids A list of pids to query - * - * @return array An array of photo tag objects, which include pid, - * subject uid, and two floating-point numbers (xcoord, ycoord) - * for tag pixel location. - */ - public function &photos_getTags($pids) { - return $this->call_method('facebook.photos.getTags', - array('pids' => $pids)); - } - - /** - * Returns the requested info fields for the requested set of users. - * - * @param array $uids An array of user ids - * @param array $fields An array of info field names desired - * - * @return array An array of user objects - */ - public function &users_getInfo($uids, $fields) { - return $this->call_method('facebook.users.getInfo', - array('uids' => $uids, 'fields' => $fields)); - } - - /** - * Returns the requested info fields for the requested set of users. A - * session key must not be specified. Only data about users that have - * authorized your application will be returned. - * - * Check the wiki for fields that can be queried through this API call. - * Data returned from here should not be used for rendering to application - * users, use users.getInfo instead, so that proper privacy rules will be - * applied. - * - * @param array $uids An array of user ids - * @param array $fields An array of info field names desired - * - * @return array An array of user objects - */ - public function &users_getStandardInfo($uids, $fields) { - return $this->call_method('facebook.users.getStandardInfo', - array('uids' => $uids, 'fields' => $fields)); - } - - /** - * Returns the user corresponding to the current session object. - * - * @return integer User id - */ - public function &users_getLoggedInUser() { - return $this->call_method('facebook.users.getLoggedInUser', array()); - } - - /** - * Returns 1 if the user has the specified permission, 0 otherwise. - * http://wiki.developers.facebook.com/index.php/Users.hasAppPermission - * - * @return integer 1 or 0 - */ - public function &users_hasAppPermission($ext_perm, $uid=null) { - return $this->call_method('facebook.users.hasAppPermission', - array('ext_perm' => $ext_perm, 'uid' => $uid)); - } - - /** - * Returns whether or not the user corresponding to the current - * session object has the give the app basic authorization. - * - * @return boolean true if the user has authorized the app - */ - public function &users_isAppUser($uid=null) { - if ($uid === null && isset($this->is_user)) { - return $this->is_user; - } - - return $this->call_method('facebook.users.isAppUser', array('uid' => $uid)); - } - - /** - * Sets the users' current status message. Message does NOT contain the - * word "is" , so make sure to include a verb. - * - * Example: setStatus("is loving the API!") - * will produce the status "Luke is loving the API!" - * - * @param string $status text-only message to set - * @param int $uid user to set for (defaults to the - * logged-in user) - * @param bool $clear whether or not to clear the status, - * instead of setting it - * @param bool $status_includes_verb if true, the word "is" will *not* be - * prepended to the status message - * - * @return boolean - */ - public function &users_setStatus($status, - $uid = null, - $clear = false, - $status_includes_verb = true) { - $args = array( - 'status' => $status, - 'uid' => $uid, - 'clear' => $clear, - 'status_includes_verb' => $status_includes_verb, - ); - return $this->call_method('facebook.users.setStatus', $args); - } - - /** - * Sets the FBML for the profile of the user attached to this session. - * - * @param string $markup The FBML that describes the profile - * presence of this app for the user - * @param int $uid The user - * @param string $profile Profile FBML - * @param string $profile_action Profile action FBML (deprecated) - * @param string $mobile_profile Mobile profile FBML - * @param string $profile_main Main Tab profile FBML - * - * @return array A list of strings describing any compile errors for the - * submitted FBML - */ - function profile_setFBML($markup, - $uid=null, - $profile='', - $profile_action='', - $mobile_profile='', - $profile_main='') { - return $this->call_method('facebook.profile.setFBML', - array('markup' => $markup, - 'uid' => $uid, - 'profile' => $profile, - 'profile_action' => $profile_action, - 'mobile_profile' => $mobile_profile, - 'profile_main' => $profile_main)); - } - - /** - * Gets the FBML for the profile box that is currently set for a user's - * profile (your application set the FBML previously by calling the - * profile.setFBML method). - * - * @param int $uid (Optional) User id to lookup; defaults to session. - * @param int $type (Optional) 1 for original style, 2 for profile_main boxes - * - * @return string The FBML - */ - public function &profile_getFBML($uid=null, $type=null) { - return $this->call_method('facebook.profile.getFBML', - array('uid' => $uid, - 'type' => $type)); - } - - /** - * Returns the specified user's application info section for the calling - * application. These info sections have either been set via a previous - * profile.setInfo call or by the user editing them directly. - * - * @param int $uid (Optional) User id to lookup; defaults to session. - * - * @return array Info fields for the current user. See wiki for structure: - * - * http://wiki.developers.facebook.com/index.php/Profile.getInfo - * - */ - public function &profile_getInfo($uid=null) { - return $this->call_method('facebook.profile.getInfo', - array('uid' => $uid)); - } - - /** - * Returns the options associated with the specified info field for an - * application info section. - * - * @param string $field The title of the field - * - * @return array An array of info options. - */ - public function &profile_getInfoOptions($field) { - return $this->call_method('facebook.profile.getInfoOptions', - array('field' => $field)); - } - - /** - * Configures an application info section that the specified user can install - * on the Info tab of her profile. For details on the structure of an info - * field, please see: - * - * http://wiki.developers.facebook.com/index.php/Profile.setInfo - * - * @param string $title Title / header of the info section - * @param int $type 1 for text-only, 5 for thumbnail views - * @param array $info_fields An array of info fields. See wiki for details. - * @param int $uid (Optional) - * - * @return bool true on success - */ - public function &profile_setInfo($title, $type, $info_fields, $uid=null) { - return $this->call_method('facebook.profile.setInfo', - array('uid' => $uid, - 'type' => $type, - 'title' => $title, - 'info_fields' => json_encode($info_fields))); - } - - /** - * Specifies the objects for a field for an application info section. These - * options populate the typeahead for a thumbnail. - * - * @param string $field The title of the field - * @param array $options An array of items for a thumbnail, including - * 'label', 'link', and optionally 'image', - * 'description' and 'sublabel' - * - * @return bool true on success - */ - public function profile_setInfoOptions($field, $options) { - return $this->call_method('facebook.profile.setInfoOptions', - array('field' => $field, - 'options' => json_encode($options))); - } - - /** - * Get all the marketplace categories. - * - * @return array A list of category names - */ - function marketplace_getCategories() { - return $this->call_method('facebook.marketplace.getCategories', - array()); - } - - /** - * Get all the marketplace subcategories for a particular category. - * - * @param category The category for which we are pulling subcategories - * - * @return array A list of subcategory names - */ - function marketplace_getSubCategories($category) { - return $this->call_method('facebook.marketplace.getSubCategories', - array('category' => $category)); - } - - /** - * Get listings by either listing_id or user. - * - * @param listing_ids An array of listing_ids (optional) - * @param uids An array of user ids (optional) - * - * @return array The data for matched listings - */ - function marketplace_getListings($listing_ids, $uids) { - return $this->call_method('facebook.marketplace.getListings', - array('listing_ids' => $listing_ids, 'uids' => $uids)); - } - - /** - * Search for Marketplace listings. All arguments are optional, though at - * least one must be filled out to retrieve results. - * - * @param category The category in which to search (optional) - * @param subcategory The subcategory in which to search (optional) - * @param query A query string (optional) - * - * @return array The data for matched listings - */ - function marketplace_search($category, $subcategory, $query) { - return $this->call_method('facebook.marketplace.search', - array('category' => $category, - 'subcategory' => $subcategory, - 'query' => $query)); - } - - /** - * Remove a listing from Marketplace. - * - * @param listing_id The id of the listing to be removed - * @param status 'SUCCESS', 'NOT_SUCCESS', or 'DEFAULT' - * - * @return bool True on success - */ - function marketplace_removeListing($listing_id, - $status='DEFAULT', - $uid=null) { - return $this->call_method('facebook.marketplace.removeListing', - array('listing_id' => $listing_id, - 'status' => $status, - 'uid' => $uid)); - } - - /** - * Create/modify a Marketplace listing for the loggedinuser. - * - * @param int listing_id The id of a listing to be modified, 0 - * for a new listing. - * @param show_on_profile bool Should we show this listing on the - * user's profile - * @param listing_attrs array An array of the listing data - * - * @return int The listing_id (unchanged if modifying an existing listing). - */ - function marketplace_createListing($listing_id, - $show_on_profile, - $attrs, - $uid=null) { - return $this->call_method('facebook.marketplace.createListing', - array('listing_id' => $listing_id, - 'show_on_profile' => $show_on_profile, - 'listing_attrs' => json_encode($attrs), - 'uid' => $uid)); - } - - ///////////////////////////////////////////////////////////////////////////// - // Data Store API - - /** - * Set a user preference. - * - * @param pref_id preference identifier (0-200) - * @param value preferece's value - * @param uid the user id (defaults to current session user) - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - * API_EC_PERMISSION_OTHER_USER - */ - public function &data_setUserPreference($pref_id, $value, $uid = null) { - return $this->call_method('facebook.data.setUserPreference', - array('pref_id' => $pref_id, - 'value' => $value, - 'uid' => $this->get_uid($uid))); - } - - /** - * Set a user's all preferences for this application. - * - * @param values preferece values in an associative arrays - * @param replace whether to replace all existing preferences or - * merge into them. - * @param uid the user id (defaults to current session user) - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - * API_EC_PERMISSION_OTHER_USER - */ - public function &data_setUserPreferences($values, - $replace = false, - $uid = null) { - return $this->call_method('facebook.data.setUserPreferences', - array('values' => json_encode($values), - 'replace' => $replace, - 'uid' => $this->get_uid($uid))); - } - - /** - * Get a user preference. - * - * @param pref_id preference identifier (0-200) - * @param uid the user id (defaults to current session user) - * @return preference's value - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - * API_EC_PERMISSION_OTHER_USER - */ - public function &data_getUserPreference($pref_id, $uid = null) { - return $this->call_method('facebook.data.getUserPreference', - array('pref_id' => $pref_id, - 'uid' => $this->get_uid($uid))); - } - - /** - * Get a user preference. - * - * @param uid the user id (defaults to current session user) - * @return preference values - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - * API_EC_PERMISSION_OTHER_USER - */ - public function &data_getUserPreferences($uid = null) { - return $this->call_method('facebook.data.getUserPreferences', - array('uid' => $this->get_uid($uid))); - } - - /** - * Create a new object type. - * - * @param name object type's name - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_ALREADY_EXISTS - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_createObjectType($name) { - return $this->call_method('facebook.data.createObjectType', - array('name' => $name)); - } - - /** - * Delete an object type. - * - * @param obj_type object type's name - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_dropObjectType($obj_type) { - return $this->call_method('facebook.data.dropObjectType', - array('obj_type' => $obj_type)); - } - - /** - * Rename an object type. - * - * @param obj_type object type's name - * @param new_name new object type's name - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_DATA_OBJECT_ALREADY_EXISTS - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_renameObjectType($obj_type, $new_name) { - return $this->call_method('facebook.data.renameObjectType', - array('obj_type' => $obj_type, - 'new_name' => $new_name)); - } - - /** - * Add a new property to an object type. - * - * @param obj_type object type's name - * @param prop_name name of the property to add - * @param prop_type 1: integer; 2: string; 3: text blob - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_ALREADY_EXISTS - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_defineObjectProperty($obj_type, - $prop_name, - $prop_type) { - return $this->call_method('facebook.data.defineObjectProperty', - array('obj_type' => $obj_type, - 'prop_name' => $prop_name, - 'prop_type' => $prop_type)); - } - - /** - * Remove a previously defined property from an object type. - * - * @param obj_type object type's name - * @param prop_name name of the property to remove - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_undefineObjectProperty($obj_type, $prop_name) { - return $this->call_method('facebook.data.undefineObjectProperty', - array('obj_type' => $obj_type, - 'prop_name' => $prop_name)); - } - - /** - * Rename a previously defined property of an object type. - * - * @param obj_type object type's name - * @param prop_name name of the property to rename - * @param new_name new name to use - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_DATA_OBJECT_ALREADY_EXISTS - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_renameObjectProperty($obj_type, $prop_name, - $new_name) { - return $this->call_method('facebook.data.renameObjectProperty', - array('obj_type' => $obj_type, - 'prop_name' => $prop_name, - 'new_name' => $new_name)); - } - - /** - * Retrieve a list of all object types that have defined for the application. - * - * @return a list of object type names - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PERMISSION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_getObjectTypes() { - return $this->call_method('facebook.data.getObjectTypes', array()); - } - - /** - * Get definitions of all properties of an object type. - * - * @param obj_type object type's name - * @return pairs of property name and property types - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_getObjectType($obj_type) { - return $this->call_method('facebook.data.getObjectType', - array('obj_type' => $obj_type)); - } - - /** - * Create a new object. - * - * @param obj_type object type's name - * @param properties (optional) properties to set initially - * @return newly created object's id - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_createObject($obj_type, $properties = null) { - return $this->call_method('facebook.data.createObject', - array('obj_type' => $obj_type, - 'properties' => json_encode($properties))); - } - - /** - * Update an existing object. - * - * @param obj_id object's id - * @param properties new properties - * @param replace true for replacing existing properties; - * false for merging - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_updateObject($obj_id, $properties, $replace = false) { - return $this->call_method('facebook.data.updateObject', - array('obj_id' => $obj_id, - 'properties' => json_encode($properties), - 'replace' => $replace)); - } - - /** - * Delete an existing object. - * - * @param obj_id object's id - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_deleteObject($obj_id) { - return $this->call_method('facebook.data.deleteObject', - array('obj_id' => $obj_id)); - } - - /** - * Delete a list of objects. - * - * @param obj_ids objects to delete - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_deleteObjects($obj_ids) { - return $this->call_method('facebook.data.deleteObjects', - array('obj_ids' => json_encode($obj_ids))); - } - - /** - * Get a single property value of an object. - * - * @param obj_id object's id - * @param prop_name individual property's name - * @return individual property's value - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_getObjectProperty($obj_id, $prop_name) { - return $this->call_method('facebook.data.getObjectProperty', - array('obj_id' => $obj_id, - 'prop_name' => $prop_name)); - } - - /** - * Get properties of an object. - * - * @param obj_id object's id - * @param prop_names (optional) properties to return; null for all. - * @return specified properties of an object - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_getObject($obj_id, $prop_names = null) { - return $this->call_method('facebook.data.getObject', - array('obj_id' => $obj_id, - 'prop_names' => json_encode($prop_names))); - } - - /** - * Get properties of a list of objects. - * - * @param obj_ids object ids - * @param prop_names (optional) properties to return; null for all. - * @return specified properties of an object - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_getObjects($obj_ids, $prop_names = null) { - return $this->call_method('facebook.data.getObjects', - array('obj_ids' => json_encode($obj_ids), - 'prop_names' => json_encode($prop_names))); - } - - /** - * Set a single property value of an object. - * - * @param obj_id object's id - * @param prop_name individual property's name - * @param prop_value new value to set - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_setObjectProperty($obj_id, $prop_name, - $prop_value) { - return $this->call_method('facebook.data.setObjectProperty', - array('obj_id' => $obj_id, - 'prop_name' => $prop_name, - 'prop_value' => $prop_value)); - } - - /** - * Read hash value by key. - * - * @param obj_type object type's name - * @param key hash key - * @param prop_name (optional) individual property's name - * @return hash value - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_getHashValue($obj_type, $key, $prop_name = null) { - return $this->call_method('facebook.data.getHashValue', - array('obj_type' => $obj_type, - 'key' => $key, - 'prop_name' => $prop_name)); - } - - /** - * Write hash value by key. - * - * @param obj_type object type's name - * @param key hash key - * @param value hash value - * @param prop_name (optional) individual property's name - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_setHashValue($obj_type, - $key, - $value, - $prop_name = null) { - return $this->call_method('facebook.data.setHashValue', - array('obj_type' => $obj_type, - 'key' => $key, - 'value' => $value, - 'prop_name' => $prop_name)); - } - - /** - * Increase a hash value by specified increment atomically. - * - * @param obj_type object type's name - * @param key hash key - * @param prop_name individual property's name - * @param increment (optional) default is 1 - * @return incremented hash value - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_incHashValue($obj_type, - $key, - $prop_name, - $increment = 1) { - return $this->call_method('facebook.data.incHashValue', - array('obj_type' => $obj_type, - 'key' => $key, - 'prop_name' => $prop_name, - 'increment' => $increment)); - } - - /** - * Remove a hash key and its values. - * - * @param obj_type object type's name - * @param key hash key - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_removeHashKey($obj_type, $key) { - return $this->call_method('facebook.data.removeHashKey', - array('obj_type' => $obj_type, - 'key' => $key)); - } - - /** - * Remove hash keys and their values. - * - * @param obj_type object type's name - * @param keys hash keys - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_removeHashKeys($obj_type, $keys) { - return $this->call_method('facebook.data.removeHashKeys', - array('obj_type' => $obj_type, - 'keys' => json_encode($keys))); - } - - /** - * Define an object association. - * - * @param name name of this association - * @param assoc_type 1: one-way 2: two-way symmetric 3: two-way asymmetric - * @param assoc_info1 needed info about first object type - * @param assoc_info2 needed info about second object type - * @param inverse (optional) name of reverse association - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_ALREADY_EXISTS - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_defineAssociation($name, $assoc_type, $assoc_info1, - $assoc_info2, $inverse = null) { - return $this->call_method('facebook.data.defineAssociation', - array('name' => $name, - 'assoc_type' => $assoc_type, - 'assoc_info1' => json_encode($assoc_info1), - 'assoc_info2' => json_encode($assoc_info2), - 'inverse' => $inverse)); - } - - /** - * Undefine an object association. - * - * @param name name of this association - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_undefineAssociation($name) { - return $this->call_method('facebook.data.undefineAssociation', - array('name' => $name)); - } - - /** - * Rename an object association or aliases. - * - * @param name name of this association - * @param new_name (optional) new name of this association - * @param new_alias1 (optional) new alias for object type 1 - * @param new_alias2 (optional) new alias for object type 2 - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_ALREADY_EXISTS - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_renameAssociation($name, $new_name, $new_alias1 = null, - $new_alias2 = null) { - return $this->call_method('facebook.data.renameAssociation', - array('name' => $name, - 'new_name' => $new_name, - 'new_alias1' => $new_alias1, - 'new_alias2' => $new_alias2)); - } - - /** - * Get definition of an object association. - * - * @param name name of this association - * @return specified association - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_getAssociationDefinition($name) { - return $this->call_method('facebook.data.getAssociationDefinition', - array('name' => $name)); - } - - /** - * Get definition of all associations. - * - * @return all defined associations - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PERMISSION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_getAssociationDefinitions() { - return $this->call_method('facebook.data.getAssociationDefinitions', - array()); - } - - /** - * Create or modify an association between two objects. - * - * @param name name of association - * @param obj_id1 id of first object - * @param obj_id2 id of second object - * @param data (optional) extra string data to store - * @param assoc_time (optional) extra time data; default to creation time - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_setAssociation($name, $obj_id1, $obj_id2, $data = null, - $assoc_time = null) { - return $this->call_method('facebook.data.setAssociation', - array('name' => $name, - 'obj_id1' => $obj_id1, - 'obj_id2' => $obj_id2, - 'data' => $data, - 'assoc_time' => $assoc_time)); - } - - /** - * Create or modify associations between objects. - * - * @param assocs associations to set - * @param name (optional) name of association - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_setAssociations($assocs, $name = null) { - return $this->call_method('facebook.data.setAssociations', - array('assocs' => json_encode($assocs), - 'name' => $name)); - } - - /** - * Remove an association between two objects. - * - * @param name name of association - * @param obj_id1 id of first object - * @param obj_id2 id of second object - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_removeAssociation($name, $obj_id1, $obj_id2) { - return $this->call_method('facebook.data.removeAssociation', - array('name' => $name, - 'obj_id1' => $obj_id1, - 'obj_id2' => $obj_id2)); - } - - /** - * Remove associations between objects by specifying pairs of object ids. - * - * @param assocs associations to remove - * @param name (optional) name of association - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_removeAssociations($assocs, $name = null) { - return $this->call_method('facebook.data.removeAssociations', - array('assocs' => json_encode($assocs), - 'name' => $name)); - } - - /** - * Remove associations between objects by specifying one object id. - * - * @param name name of association - * @param obj_id who's association to remove - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_removeAssociatedObjects($name, $obj_id) { - return $this->call_method('facebook.data.removeAssociatedObjects', - array('name' => $name, - 'obj_id' => $obj_id)); - } - - /** - * Retrieve a list of associated objects. - * - * @param name name of association - * @param obj_id who's association to retrieve - * @param no_data only return object ids - * @return associated objects - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_getAssociatedObjects($name, $obj_id, $no_data = true) { - return $this->call_method('facebook.data.getAssociatedObjects', - array('name' => $name, - 'obj_id' => $obj_id, - 'no_data' => $no_data)); - } - - /** - * Count associated objects. - * - * @param name name of association - * @param obj_id who's association to retrieve - * @return associated object's count - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_getAssociatedObjectCount($name, $obj_id) { - return $this->call_method('facebook.data.getAssociatedObjectCount', - array('name' => $name, - 'obj_id' => $obj_id)); - } - - /** - * Get a list of associated object counts. - * - * @param name name of association - * @param obj_ids whose association to retrieve - * @return associated object counts - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_DATA_OBJECT_NOT_FOUND - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_INVALID_OPERATION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_getAssociatedObjectCounts($name, $obj_ids) { - return $this->call_method('facebook.data.getAssociatedObjectCounts', - array('name' => $name, - 'obj_ids' => json_encode($obj_ids))); - } - - /** - * Find all associations between two objects. - * - * @param obj_id1 id of first object - * @param obj_id2 id of second object - * @param no_data only return association names without data - * @return all associations between objects - * @error - * API_EC_DATA_DATABASE_ERROR - * API_EC_PARAM - * API_EC_PERMISSION - * API_EC_DATA_QUOTA_EXCEEDED - * API_EC_DATA_UNKNOWN_ERROR - */ - public function &data_getAssociations($obj_id1, $obj_id2, $no_data = true) { - return $this->call_method('facebook.data.getAssociations', - array('obj_id1' => $obj_id1, - 'obj_id2' => $obj_id2, - 'no_data' => $no_data)); - } - - /** - * Get the properties that you have set for an app. - * - * @param properties List of properties names to fetch - * - * @return array A map from property name to value - */ - public function admin_getAppProperties($properties) { - return json_decode( - $this->call_method('facebook.admin.getAppProperties', - array('properties' => json_encode($properties))), true); - } - - /** - * Set properties for an app. - * - * @param properties A map from property names to values - * - * @return bool true on success - */ - public function admin_setAppProperties($properties) { - return $this->call_method('facebook.admin.setAppProperties', - array('properties' => json_encode($properties))); - } - - /** - * Returns the allocation limit value for a specified integration point name - * Integration point names are defined in lib/api/karma/constants.php in the - * limit_map. - * - * @param string $integration_point_name Name of an integration point - * (see developer wiki for list). - * - * @return int Integration point allocation value - */ - public function &admin_getAllocation($integration_point_name) { - return $this->call_method('facebook.admin.getAllocation', - array('integration_point_name' => $integration_point_name)); - } - - /** - * Returns values for the specified metrics for the current application, in - * the given time range. The metrics are collected for fixed-length periods, - * and the times represent midnight at the end of each period. - * - * @param start_time unix time for the start of the range - * @param end_time unix time for the end of the range - * @param period number of seconds in the desired period - * @param metrics list of metrics to look up - * - * @return array A map of the names and values for those metrics - */ - public function &admin_getMetrics($start_time, $end_time, $period, $metrics) { - return $this->call_method('admin.getMetrics', - array('start_time' => $start_time, - 'end_time' => $end_time, - 'period' => $period, - 'metrics' => json_encode($metrics))); - } - - /** - * Sets application restriction info. - * - * Applications can restrict themselves to only a limited user demographic - * based on users' age and/or location or based on static predefined types - * specified by facebook for specifying diff age restriction for diff - * locations. - * - * @param array $restriction_info The age restriction settings to set. - * - * @return bool true on success - */ - public function admin_setRestrictionInfo($restriction_info = null) { - $restriction_str = null; - if (!empty($restriction_info)) { - $restriction_str = json_encode($restriction_info); - } - return $this->call_method('admin.setRestrictionInfo', - array('restriction_str' => $restriction_str)); - } - - /** - * Gets application restriction info. - * - * Applications can restrict themselves to only a limited user demographic - * based on users' age and/or location or based on static predefined types - * specified by facebook for specifying diff age restriction for diff - * locations. - * - * @return array The age restriction settings for this application. - */ - public function admin_getRestrictionInfo() { - return json_decode( - $this->call_method('admin.getRestrictionInfo', array()), - true); - } - - /* UTILITY FUNCTIONS */ - - /** - * Calls the specified method with the specified parameters. - * - * @param string $method Name of the Facebook method to invoke - * @param array $params A map of param names => param values - * - * @return mixed Result of method call - */ - public function & call_method($method, $params) { - //Check if we are in batch mode - if($this->batch_queue === null) { - if ($this->call_as_apikey) { - $params['call_as_apikey'] = $this->call_as_apikey; - } - $xml = $this->post_request($method, $params); - $result = $this->convert_xml_to_result($xml, $method, $params); - - if (is_array($result) && isset($result['error_code'])) { - throw new FacebookRestClientException($result['error_msg'], - $result['error_code']); - } - } - else { - $result = null; - $batch_item = array('m' => $method, 'p' => $params, 'r' => & $result); - $this->batch_queue[] = $batch_item; - } - - return $result; - } - - private function convert_xml_to_result($xml, $method, $params) { - $sxml = simplexml_load_string($xml); - $result = self::convert_simplexml_to_array($sxml); - - - if (!empty($GLOBALS['facebook_config']['debug'])) { - // output the raw xml and its corresponding php object, for debugging: - print '
      '; - $this->cur_id++; - print $this->cur_id . ': Called ' . $method . ', show ' . - 'Params | '. - 'XML | '. - 'SXML | '. - 'PHP'; - print ''; - print ''; - print ''; - print ''; - print '
      '; - } - return $result; - } - - private function create_post_string($method, $params) { - $params['method'] = $method; - $params['session_key'] = $this->session_key; - $params['api_key'] = $this->api_key; - $params['call_id'] = microtime(true); - if ($params['call_id'] <= $this->last_call_id) { - $params['call_id'] = $this->last_call_id + 0.001; - } - $this->last_call_id = $params['call_id']; - if (!isset($params['v'])) { - $params['v'] = '1.0'; - } - $post_params = array(); - foreach ($params as $key => &$val) { - if (is_array($val)) $val = implode(',', $val); - $post_params[] = $key.'='.urlencode($val); - } - $secret = $this->secret; - $post_params[] = 'sig='.Facebook::generate_sig($params, $secret); - return implode('&', $post_params); - } - - public function post_request($method, $params) { - - $post_string = $this->create_post_string($method, $params); - - if (function_exists('curl_init')) { - // Use CURL if installed... - $useragent = 'Facebook API PHP5 Client 1.1 (curl) ' . phpversion(); - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $this->server_addr); - curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_USERAGENT, $useragent); - $result = curl_exec($ch); - curl_close($ch); - } else { - // Non-CURL based version... - $content_type = 'application/x-www-form-urlencoded'; - $user_agent = 'Facebook API PHP5 Client 1.1 (non-curl) '.phpversion(); - $context = - array('http' => - array('method' => 'POST', - 'header' => 'Content-type: '.$content_type."\r\n". - 'User-Agent: '.$user_agent."\r\n". - 'Content-length: ' . strlen($post_string), - 'content' => $post_string)); - $contextid=stream_context_create($context); - $sock=fopen($this->server_addr, 'r', false, $contextid); - if ($sock) { - $result=''; - while (!feof($sock)) - $result.=fgets($sock, 4096); - - fclose($sock); - } - } - return $result; - } - - public static function convert_simplexml_to_array($sxml) { - $arr = array(); - if ($sxml) { - foreach ($sxml as $k => $v) { - if ($sxml['list']) { - $arr[] = self::convert_simplexml_to_array($v); - } else { - $arr[$k] = self::convert_simplexml_to_array($v); - } - } - } - if (sizeof($arr) > 0) { - return $arr; - } else { - return (string)$sxml; - } - } - - private function get_uid($uid) { - return $uid ? $uid : $this->user; - } -} - - -class FacebookRestClientException extends Exception { -} - -// Supporting methods and values------ - -/** - * Error codes and descriptions for the Facebook API. - */ - -class FacebookAPIErrorCodes { - - const API_EC_SUCCESS = 0; - - /* - * GENERAL ERRORS - */ - const API_EC_UNKNOWN = 1; - const API_EC_SERVICE = 2; - const API_EC_METHOD = 3; - const API_EC_TOO_MANY_CALLS = 4; - const API_EC_BAD_IP = 5; - - /* - * PARAMETER ERRORS - */ - const API_EC_PARAM = 100; - const API_EC_PARAM_API_KEY = 101; - const API_EC_PARAM_SESSION_KEY = 102; - const API_EC_PARAM_CALL_ID = 103; - const API_EC_PARAM_SIGNATURE = 104; - const API_EC_PARAM_USER_ID = 110; - const API_EC_PARAM_USER_FIELD = 111; - const API_EC_PARAM_SOCIAL_FIELD = 112; - const API_EC_PARAM_ALBUM_ID = 120; - const API_EC_PARAM_BAD_EID = 150; - const API_EC_PARAM_UNKNOWN_CITY = 151; - - /* - * USER PERMISSIONS ERRORS - */ - const API_EC_PERMISSION = 200; - const API_EC_PERMISSION_USER = 210; - const API_EC_PERMISSION_ALBUM = 220; - const API_EC_PERMISSION_PHOTO = 221; - const API_EC_PERMISSION_EVENT = 290; - const API_EC_PERMISSION_RSVP_EVENT = 299; - - const FQL_EC_PARSER = 601; - const FQL_EC_UNKNOWN_FIELD = 602; - const FQL_EC_UNKNOWN_TABLE = 603; - const FQL_EC_NOT_INDEXABLE = 604; - - /** - * DATA STORE API ERRORS - */ - const API_EC_DATA_UNKNOWN_ERROR = 800; - const API_EC_DATA_INVALID_OPERATION = 801; - const API_EC_DATA_QUOTA_EXCEEDED = 802; - const API_EC_DATA_OBJECT_NOT_FOUND = 803; - const API_EC_DATA_OBJECT_ALREADY_EXISTS = 804; - const API_EC_DATA_DATABASE_ERROR = 805; - - /* - * Batch ERROR - */ - const API_EC_BATCH_ALREADY_STARTED = 900; - const API_EC_BATCH_NOT_STARTED = 901; - const API_EC_BATCH_METHOD_NOT_ALLOWED_IN_BATCH_MODE = 902; - - public static $api_error_descriptions = array( - API_EC_SUCCESS => 'Success', - API_EC_UNKNOWN => 'An unknown error occurred', - API_EC_SERVICE => 'Service temporarily unavailable', - API_EC_METHOD => 'Unknown method', - API_EC_TOO_MANY_CALLS => 'Application request limit reached', - API_EC_BAD_IP => 'Unauthorized source IP address', - API_EC_PARAM => 'Invalid parameter', - API_EC_PARAM_API_KEY => 'Invalid API key', - API_EC_PARAM_SESSION_KEY => 'Session key invalid or no longer valid', - API_EC_PARAM_CALL_ID => 'Call_id must be greater than previous', - API_EC_PARAM_SIGNATURE => 'Incorrect signature', - API_EC_PARAM_USER_ID => 'Invalid user id', - API_EC_PARAM_USER_FIELD => 'Invalid user info field', - API_EC_PARAM_SOCIAL_FIELD => 'Invalid user field', - API_EC_PARAM_ALBUM_ID => 'Invalid album id', - API_EC_PARAM_BAD_EID => 'Invalid eid', - API_EC_PARAM_UNKNOWN_CITY => 'Unknown city', - API_EC_PERMISSION => 'Permissions error', - API_EC_PERMISSION_USER => 'User not visible', - API_EC_PERMISSION_ALBUM => 'Album not visible', - API_EC_PERMISSION_PHOTO => 'Photo not visible', - API_EC_PERMISSION_EVENT => 'Creating and modifying events required the extended permission create_event', - API_EC_PERMISSION_RSVP_EVENT => 'RSVPing to events required the extended permission rsvp_event', - FQL_EC_PARSER => 'FQL: Parser Error', - FQL_EC_UNKNOWN_FIELD => 'FQL: Unknown Field', - FQL_EC_UNKNOWN_TABLE => 'FQL: Unknown Table', - FQL_EC_NOT_INDEXABLE => 'FQL: Statement not indexable', - FQL_EC_UNKNOWN_FUNCTION => 'FQL: Attempted to call unknown function', - FQL_EC_INVALID_PARAM => 'FQL: Invalid parameter passed in', - API_EC_DATA_UNKNOWN_ERROR => 'Unknown data store API error', - API_EC_DATA_INVALID_OPERATION => 'Invalid operation', - API_EC_DATA_QUOTA_EXCEEDED => 'Data store allowable quota was exceeded', - API_EC_DATA_OBJECT_NOT_FOUND => 'Specified object cannot be found', - API_EC_DATA_OBJECT_ALREADY_EXISTS => 'Specified object already exists', - API_EC_DATA_DATABASE_ERROR => 'A database error occurred. Please try again', - API_EC_BATCH_ALREADY_STARTED => 'begin_batch already called, please make sure to call end_batch first', - API_EC_BATCH_NOT_STARTED => 'end_batch called before start_batch', - API_EC_BATCH_METHOD_NOT_ALLOWED_IN_BATCH_MODE => 'This method is not allowed in batch mode', - ); -} diff --git a/_darcs/pristine/extlib/facebook/jsonwrapper/JSON/JSON.php b/_darcs/pristine/extlib/facebook/jsonwrapper/JSON/JSON.php deleted file mode 100644 index 0cddbddb41..0000000000 --- a/_darcs/pristine/extlib/facebook/jsonwrapper/JSON/JSON.php +++ /dev/null @@ -1,806 +0,0 @@ - - * @author Matt Knapp - * @author Brett Stimmerman - * @copyright 2005 Michal Migurski - * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $ - * @license http://www.opensource.org/licenses/bsd-license.php - * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 - */ - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_SLICE', 1); - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_IN_STR', 2); - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_IN_ARR', 3); - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_IN_OBJ', 4); - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_IN_CMT', 5); - -/** - * Behavior switch for Services_JSON::decode() - */ -define('SERVICES_JSON_LOOSE_TYPE', 16); - -/** - * Behavior switch for Services_JSON::decode() - */ -define('SERVICES_JSON_SUPPRESS_ERRORS', 32); - -/** - * Converts to and from JSON format. - * - * Brief example of use: - * - * - * // create a new instance of Services_JSON - * $json = new Services_JSON(); - * - * // convert a complexe value to JSON notation, and send it to the browser - * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4))); - * $output = $json->encode($value); - * - * print($output); - * // prints: ["foo","bar",[1,2,"baz"],[3,[4]]] - * - * // accept incoming POST data, assumed to be in JSON notation - * $input = file_get_contents('php://input', 1000000); - * $value = $json->decode($input); - * - */ -class Services_JSON -{ - /** - * constructs a new JSON instance - * - * @param int $use object behavior flags; combine with boolean-OR - * - * possible values: - * - SERVICES_JSON_LOOSE_TYPE: loose typing. - * "{...}" syntax creates associative arrays - * instead of objects in decode(). - * - SERVICES_JSON_SUPPRESS_ERRORS: error suppression. - * Values which can't be encoded (e.g. resources) - * appear as NULL instead of throwing errors. - * By default, a deeply-nested resource will - * bubble up with an error, so all return values - * from encode() should be checked with isError() - */ - function Services_JSON($use = 0) - { - $this->use = $use; - } - - /** - * convert a string from one UTF-16 char to one UTF-8 char - * - * Normally should be handled by mb_convert_encoding, but - * provides a slower PHP-only method for installations - * that lack the multibye string extension. - * - * @param string $utf16 UTF-16 character - * @return string UTF-8 character - * @access private - */ - function utf162utf8($utf16) - { - // oh please oh please oh please oh please oh please - if(function_exists('mb_convert_encoding')) { - return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); - } - - $bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); - - switch(true) { - case ((0x7F & $bytes) == $bytes): - // this case should never be reached, because we are in ASCII range - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0x7F & $bytes); - - case (0x07FF & $bytes) == $bytes: - // return a 2-byte UTF-8 character - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0xC0 | (($bytes >> 6) & 0x1F)) - . chr(0x80 | ($bytes & 0x3F)); - - case (0xFFFF & $bytes) == $bytes: - // return a 3-byte UTF-8 character - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0xE0 | (($bytes >> 12) & 0x0F)) - . chr(0x80 | (($bytes >> 6) & 0x3F)) - . chr(0x80 | ($bytes & 0x3F)); - } - - // ignoring UTF-32 for now, sorry - return ''; - } - - /** - * convert a string from one UTF-8 char to one UTF-16 char - * - * Normally should be handled by mb_convert_encoding, but - * provides a slower PHP-only method for installations - * that lack the multibye string extension. - * - * @param string $utf8 UTF-8 character - * @return string UTF-16 character - * @access private - */ - function utf82utf16($utf8) - { - // oh please oh please oh please oh please oh please - if(function_exists('mb_convert_encoding')) { - return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); - } - - switch(strlen($utf8)) { - case 1: - // this case should never be reached, because we are in ASCII range - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return $utf8; - - case 2: - // return a UTF-16 character from a 2-byte UTF-8 char - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0x07 & (ord($utf8{0}) >> 2)) - . chr((0xC0 & (ord($utf8{0}) << 6)) - | (0x3F & ord($utf8{1}))); - - case 3: - // return a UTF-16 character from a 3-byte UTF-8 char - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr((0xF0 & (ord($utf8{0}) << 4)) - | (0x0F & (ord($utf8{1}) >> 2))) - . chr((0xC0 & (ord($utf8{1}) << 6)) - | (0x7F & ord($utf8{2}))); - } - - // ignoring UTF-32 for now, sorry - return ''; - } - - /** - * encodes an arbitrary variable into JSON format - * - * @param mixed $var any number, boolean, string, array, or object to be encoded. - * see argument 1 to Services_JSON() above for array-parsing behavior. - * if var is a strng, note that encode() always expects it - * to be in ASCII or UTF-8 format! - * - * @return mixed JSON string representation of input var or an error if a problem occurs - * @access public - */ - function encode($var) - { - switch (gettype($var)) { - case 'boolean': - return $var ? 'true' : 'false'; - - case 'NULL': - return 'null'; - - case 'integer': - return (int) $var; - - case 'double': - case 'float': - return (float) $var; - - case 'string': - // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT - $ascii = ''; - $strlen_var = strlen($var); - - /* - * Iterate over every character in the string, - * escaping with a slash or encoding to UTF-8 where necessary - */ - for ($c = 0; $c < $strlen_var; ++$c) { - - $ord_var_c = ord($var{$c}); - - switch (true) { - case $ord_var_c == 0x08: - $ascii .= '\b'; - break; - case $ord_var_c == 0x09: - $ascii .= '\t'; - break; - case $ord_var_c == 0x0A: - $ascii .= '\n'; - break; - case $ord_var_c == 0x0C: - $ascii .= '\f'; - break; - case $ord_var_c == 0x0D: - $ascii .= '\r'; - break; - - case $ord_var_c == 0x22: - case $ord_var_c == 0x2F: - case $ord_var_c == 0x5C: - // double quote, slash, slosh - $ascii .= '\\'.$var{$c}; - break; - - case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): - // characters U-00000000 - U-0000007F (same as ASCII) - $ascii .= $var{$c}; - break; - - case (($ord_var_c & 0xE0) == 0xC0): - // characters U-00000080 - U-000007FF, mask 110XXXXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, ord($var{$c + 1})); - $c += 1; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - - case (($ord_var_c & 0xF0) == 0xE0): - // characters U-00000800 - U-0000FFFF, mask 1110XXXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2})); - $c += 2; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - - case (($ord_var_c & 0xF8) == 0xF0): - // characters U-00010000 - U-001FFFFF, mask 11110XXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2}), - ord($var{$c + 3})); - $c += 3; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - - case (($ord_var_c & 0xFC) == 0xF8): - // characters U-00200000 - U-03FFFFFF, mask 111110XX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2}), - ord($var{$c + 3}), - ord($var{$c + 4})); - $c += 4; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - - case (($ord_var_c & 0xFE) == 0xFC): - // characters U-04000000 - U-7FFFFFFF, mask 1111110X - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2}), - ord($var{$c + 3}), - ord($var{$c + 4}), - ord($var{$c + 5})); - $c += 5; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - } - } - - return '"'.$ascii.'"'; - - case 'array': - /* - * As per JSON spec if any array key is not an integer - * we must treat the the whole array as an object. We - * also try to catch a sparsely populated associative - * array with numeric keys here because some JS engines - * will create an array with empty indexes up to - * max_index which can cause memory issues and because - * the keys, which may be relevant, will be remapped - * otherwise. - * - * As per the ECMA and JSON specification an object may - * have any string as a property. Unfortunately due to - * a hole in the ECMA specification if the key is a - * ECMA reserved word or starts with a digit the - * parameter is only accessible using ECMAScript's - * bracket notation. - */ - - // treat as a JSON object - if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { - $properties = array_map(array($this, 'name_value'), - array_keys($var), - array_values($var)); - - foreach($properties as $property) { - if(Services_JSON::isError($property)) { - return $property; - } - } - - return '{' . join(',', $properties) . '}'; - } - - // treat it like a regular array - $elements = array_map(array($this, 'encode'), $var); - - foreach($elements as $element) { - if(Services_JSON::isError($element)) { - return $element; - } - } - - return '[' . join(',', $elements) . ']'; - - case 'object': - $vars = get_object_vars($var); - - $properties = array_map(array($this, 'name_value'), - array_keys($vars), - array_values($vars)); - - foreach($properties as $property) { - if(Services_JSON::isError($property)) { - return $property; - } - } - - return '{' . join(',', $properties) . '}'; - - default: - return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS) - ? 'null' - : new Services_JSON_Error(gettype($var)." can not be encoded as JSON string"); - } - } - - /** - * array-walking function for use in generating JSON-formatted name-value pairs - * - * @param string $name name of key to use - * @param mixed $value reference to an array element to be encoded - * - * @return string JSON-formatted name-value pair, like '"name":value' - * @access private - */ - function name_value($name, $value) - { - $encoded_value = $this->encode($value); - - if(Services_JSON::isError($encoded_value)) { - return $encoded_value; - } - - return $this->encode(strval($name)) . ':' . $encoded_value; - } - - /** - * reduce a string by removing leading and trailing comments and whitespace - * - * @param $str string string value to strip of comments and whitespace - * - * @return string string value stripped of comments and whitespace - * @access private - */ - function reduce_string($str) - { - $str = preg_replace(array( - - // eliminate single line comments in '// ...' form - '#^\s*//(.+)$#m', - - // eliminate multi-line comments in '/* ... */' form, at start of string - '#^\s*/\*(.+)\*/#Us', - - // eliminate multi-line comments in '/* ... */' form, at end of string - '#/\*(.+)\*/\s*$#Us' - - ), '', $str); - - // eliminate extraneous space - return trim($str); - } - - /** - * decodes a JSON string into appropriate variable - * - * @param string $str JSON-formatted string - * - * @return mixed number, boolean, string, array, or object - * corresponding to given JSON input string. - * See argument 1 to Services_JSON() above for object-output behavior. - * Note that decode() always returns strings - * in ASCII or UTF-8 format! - * @access public - */ - function decode($str) - { - $str = $this->reduce_string($str); - - switch (strtolower($str)) { - case 'true': - return true; - - case 'false': - return false; - - case 'null': - return null; - - default: - $m = array(); - - if (is_numeric($str)) { - // Lookie-loo, it's a number - - // This would work on its own, but I'm trying to be - // good about returning integers where appropriate: - // return (float)$str; - - // Return float or int, as appropriate - return ((float)$str == (integer)$str) - ? (integer)$str - : (float)$str; - - } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { - // STRINGS RETURNED IN UTF-8 FORMAT - $delim = substr($str, 0, 1); - $chrs = substr($str, 1, -1); - $utf8 = ''; - $strlen_chrs = strlen($chrs); - - for ($c = 0; $c < $strlen_chrs; ++$c) { - - $substr_chrs_c_2 = substr($chrs, $c, 2); - $ord_chrs_c = ord($chrs{$c}); - - switch (true) { - case $substr_chrs_c_2 == '\b': - $utf8 .= chr(0x08); - ++$c; - break; - case $substr_chrs_c_2 == '\t': - $utf8 .= chr(0x09); - ++$c; - break; - case $substr_chrs_c_2 == '\n': - $utf8 .= chr(0x0A); - ++$c; - break; - case $substr_chrs_c_2 == '\f': - $utf8 .= chr(0x0C); - ++$c; - break; - case $substr_chrs_c_2 == '\r': - $utf8 .= chr(0x0D); - ++$c; - break; - - case $substr_chrs_c_2 == '\\"': - case $substr_chrs_c_2 == '\\\'': - case $substr_chrs_c_2 == '\\\\': - case $substr_chrs_c_2 == '\\/': - if (($delim == '"' && $substr_chrs_c_2 != '\\\'') || - ($delim == "'" && $substr_chrs_c_2 != '\\"')) { - $utf8 .= $chrs{++$c}; - } - break; - - case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)): - // single, escaped unicode character - $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2))) - . chr(hexdec(substr($chrs, ($c + 4), 2))); - $utf8 .= $this->utf162utf8($utf16); - $c += 5; - break; - - case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F): - $utf8 .= $chrs{$c}; - break; - - case ($ord_chrs_c & 0xE0) == 0xC0: - // characters U-00000080 - U-000007FF, mask 110XXXXX - //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 2); - ++$c; - break; - - case ($ord_chrs_c & 0xF0) == 0xE0: - // characters U-00000800 - U-0000FFFF, mask 1110XXXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 3); - $c += 2; - break; - - case ($ord_chrs_c & 0xF8) == 0xF0: - // characters U-00010000 - U-001FFFFF, mask 11110XXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 4); - $c += 3; - break; - - case ($ord_chrs_c & 0xFC) == 0xF8: - // characters U-00200000 - U-03FFFFFF, mask 111110XX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 5); - $c += 4; - break; - - case ($ord_chrs_c & 0xFE) == 0xFC: - // characters U-04000000 - U-7FFFFFFF, mask 1111110X - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 6); - $c += 5; - break; - - } - - } - - return $utf8; - - } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { - // array, or object notation - - if ($str{0} == '[') { - $stk = array(SERVICES_JSON_IN_ARR); - $arr = array(); - } else { - if ($this->use & SERVICES_JSON_LOOSE_TYPE) { - $stk = array(SERVICES_JSON_IN_OBJ); - $obj = array(); - } else { - $stk = array(SERVICES_JSON_IN_OBJ); - $obj = new stdClass(); - } - } - - array_push($stk, array('what' => SERVICES_JSON_SLICE, - 'where' => 0, - 'delim' => false)); - - $chrs = substr($str, 1, -1); - $chrs = $this->reduce_string($chrs); - - if ($chrs == '') { - if (reset($stk) == SERVICES_JSON_IN_ARR) { - return $arr; - - } else { - return $obj; - - } - } - - //print("\nparsing {$chrs}\n"); - - $strlen_chrs = strlen($chrs); - - for ($c = 0; $c <= $strlen_chrs; ++$c) { - - $top = end($stk); - $substr_chrs_c_2 = substr($chrs, $c, 2); - - if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) { - // found a comma that is not inside a string, array, etc., - // OR we've reached the end of the character list - $slice = substr($chrs, $top['where'], ($c - $top['where'])); - array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false)); - //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - - if (reset($stk) == SERVICES_JSON_IN_ARR) { - // we are in an array, so just push an element onto the stack - array_push($arr, $this->decode($slice)); - - } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { - // we are in an object, so figure - // out the property name and set an - // element in an associative array, - // for now - $parts = array(); - - if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { - // "name":value pair - $key = $this->decode($parts[1]); - $val = $this->decode($parts[2]); - - if ($this->use & SERVICES_JSON_LOOSE_TYPE) { - $obj[$key] = $val; - } else { - $obj->$key = $val; - } - } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { - // name:value pair, where name is unquoted - $key = $parts[1]; - $val = $this->decode($parts[2]); - - if ($this->use & SERVICES_JSON_LOOSE_TYPE) { - $obj[$key] = $val; - } else { - $obj->$key = $val; - } - } - - } - - } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) { - // found a quote, and we are not inside a string - array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c})); - //print("Found start of string at {$c}\n"); - - } elseif (($chrs{$c} == $top['delim']) && - ($top['what'] == SERVICES_JSON_IN_STR) && - ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) { - // found a quote, we're in a string, and it's not escaped - // we know that it's not escaped becase there is _not_ an - // odd number of backslashes at the end of the string so far - array_pop($stk); - //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); - - } elseif (($chrs{$c} == '[') && - in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { - // found a left-bracket, and we are in an array, object, or slice - array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false)); - //print("Found start of array at {$c}\n"); - - } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { - // found a right-bracket, and we're in an array - array_pop($stk); - //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - - } elseif (($chrs{$c} == '{') && - in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { - // found a left-brace, and we are in an array, object, or slice - array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false)); - //print("Found start of object at {$c}\n"); - - } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { - // found a right-brace, and we're in an object - array_pop($stk); - //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - - } elseif (($substr_chrs_c_2 == '/*') && - in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { - // found a comment start, and we are in an array, object, or slice - array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false)); - $c++; - //print("Found start of comment at {$c}\n"); - - } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) { - // found a comment end, and we're in one now - array_pop($stk); - $c++; - - for ($i = $top['where']; $i <= $c; ++$i) - $chrs = substr_replace($chrs, ' ', $i, 1); - - //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - - } - - } - - if (reset($stk) == SERVICES_JSON_IN_ARR) { - return $arr; - - } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { - return $obj; - - } - - } - } - } - - /** - * @todo Ultimately, this should just call PEAR::isError() - */ - function isError($data, $code = null) - { - if (class_exists('pear')) { - return PEAR::isError($data, $code); - } elseif (is_object($data) && (get_class($data) == 'services_json_error' || - is_subclass_of($data, 'services_json_error'))) { - return true; - } - - return false; - } -} - -if (class_exists('PEAR_Error')) { - - class Services_JSON_Error extends PEAR_Error - { - function Services_JSON_Error($message = 'unknown error', $code = null, - $mode = null, $options = null, $userinfo = null) - { - parent::PEAR_Error($message, $code, $mode, $options, $userinfo); - } - } - -} else { - - /** - * @todo Ultimately, this class shall be descended from PEAR_Error - */ - class Services_JSON_Error - { - function Services_JSON_Error($message = 'unknown error', $code = null, - $mode = null, $options = null, $userinfo = null) - { - - } - } - -} - -?> diff --git a/_darcs/pristine/extlib/facebook/jsonwrapper/JSON/LICENSE b/_darcs/pristine/extlib/facebook/jsonwrapper/JSON/LICENSE deleted file mode 100644 index 4ae6bef55d..0000000000 --- a/_darcs/pristine/extlib/facebook/jsonwrapper/JSON/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN -NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/_darcs/pristine/extlib/facebook/jsonwrapper/jsonwrapper.php b/_darcs/pristine/extlib/facebook/jsonwrapper/jsonwrapper.php deleted file mode 100644 index 29509debad..0000000000 --- a/_darcs/pristine/extlib/facebook/jsonwrapper/jsonwrapper.php +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/_darcs/pristine/extlib/facebook/jsonwrapper/jsonwrapper_inner.php b/_darcs/pristine/extlib/facebook/jsonwrapper/jsonwrapper_inner.php deleted file mode 100644 index 36a3f28635..0000000000 --- a/_darcs/pristine/extlib/facebook/jsonwrapper/jsonwrapper_inner.php +++ /dev/null @@ -1,23 +0,0 @@ -encode($arg); -} - -function json_decode($arg) -{ - global $services_json; - if (!isset($services_json)) { - $services_json = new Services_JSON(); - } - return $services_json->decode($arg); -} - -?> diff --git a/_darcs/pristine/extlib/get_temp_dir.php b/_darcs/pristine/extlib/get_temp_dir.php deleted file mode 100644 index 4ec96e5221..0000000000 --- a/_darcs/pristine/extlib/get_temp_dir.php +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/_darcs/pristine/extlib/gpl-2.0.txt b/_darcs/pristine/extlib/gpl-2.0.txt deleted file mode 100644 index d511905c16..0000000000 --- a/_darcs/pristine/extlib/gpl-2.0.txt +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/_darcs/pristine/extlib/markdown.php b/_darcs/pristine/extlib/markdown.php deleted file mode 100644 index 8179b568b8..0000000000 --- a/_darcs/pristine/extlib/markdown.php +++ /dev/null @@ -1,1710 +0,0 @@ - -# -# Original Markdown -# Copyright (c) 2004-2006 John Gruber -# -# - - -define( 'MARKDOWN_VERSION', "1.0.1m" ); # Sat 21 Jun 2008 - - -# -# Global default settings: -# - -# Change to ">" for HTML output -@define( 'MARKDOWN_EMPTY_ELEMENT_SUFFIX', " />"); - -# Define the width of a tab for code blocks. -@define( 'MARKDOWN_TAB_WIDTH', 4 ); - - -# -# WordPress settings: -# - -# Change to false to remove Markdown from posts and/or comments. -@define( 'MARKDOWN_WP_POSTS', true ); -@define( 'MARKDOWN_WP_COMMENTS', true ); - - - -### Standard Function Interface ### - -@define( 'MARKDOWN_PARSER_CLASS', 'Markdown_Parser' ); - -function Markdown($text) { -# -# Initialize the parser and return the result of its transform method. -# - # Setup static parser variable. - static $parser; - if (!isset($parser)) { - $parser_class = MARKDOWN_PARSER_CLASS; - $parser = new $parser_class; - } - - # Transform text using parser. - return $parser->transform($text); -} - - -### WordPress Plugin Interface ### - -/* -Plugin Name: Markdown -Plugin URI: http://www.michelf.com/projects/php-markdown/ -Description: Markdown syntax allows you to write using an easy-to-read, easy-to-write plain text format. Based on the original Perl version by John Gruber. More... -Version: 1.0.1m -Author: Michel Fortin -Author URI: http://www.michelf.com/ -*/ - -if (isset($wp_version)) { - # More details about how it works here: - # - - # Post content and excerpts - # - Remove WordPress paragraph generator. - # - Run Markdown on excerpt, then remove all tags. - # - Add paragraph tag around the excerpt, but remove it for the excerpt rss. - if (MARKDOWN_WP_POSTS) { - remove_filter('the_content', 'wpautop'); - remove_filter('the_content_rss', 'wpautop'); - remove_filter('the_excerpt', 'wpautop'); - add_filter('the_content', 'Markdown', 6); - add_filter('the_content_rss', 'Markdown', 6); - add_filter('get_the_excerpt', 'Markdown', 6); - add_filter('get_the_excerpt', 'trim', 7); - add_filter('the_excerpt', 'mdwp_add_p'); - add_filter('the_excerpt_rss', 'mdwp_strip_p'); - - remove_filter('content_save_pre', 'balanceTags', 50); - remove_filter('excerpt_save_pre', 'balanceTags', 50); - add_filter('the_content', 'balanceTags', 50); - add_filter('get_the_excerpt', 'balanceTags', 9); - } - - # Comments - # - Remove WordPress paragraph generator. - # - Remove WordPress auto-link generator. - # - Scramble important tags before passing them to the kses filter. - # - Run Markdown on excerpt then remove paragraph tags. - if (MARKDOWN_WP_COMMENTS) { - remove_filter('comment_text', 'wpautop', 30); - remove_filter('comment_text', 'make_clickable'); - add_filter('pre_comment_content', 'Markdown', 6); - add_filter('pre_comment_content', 'mdwp_hide_tags', 8); - add_filter('pre_comment_content', 'mdwp_show_tags', 12); - add_filter('get_comment_text', 'Markdown', 6); - add_filter('get_comment_excerpt', 'Markdown', 6); - add_filter('get_comment_excerpt', 'mdwp_strip_p', 7); - - global $mdwp_hidden_tags, $mdwp_placeholders; - $mdwp_hidden_tags = explode(' ', - '

       
    • '); - $mdwp_placeholders = explode(' ', str_rot13( - 'pEj07ZbbBZ U1kqgh4w4p pre2zmeN6K QTi31t9pre ol0MP1jzJR '. - 'ML5IjmbRol ulANi1NsGY J7zRLJqPul liA8ctl16T K9nhooUHli')); - } - - function mdwp_add_p($text) { - if (!preg_match('{^$|^<(p|ul|ol|dl|pre|blockquote)>}i', $text)) { - $text = '

      '.$text.'

      '; - $text = preg_replace('{\n{2,}}', "

      \n\n

      ", $text); - } - return $text; - } - - function mdwp_strip_p($t) { return preg_replace('{}i', '', $t); } - - function mdwp_hide_tags($text) { - global $mdwp_hidden_tags, $mdwp_placeholders; - return str_replace($mdwp_hidden_tags, $mdwp_placeholders, $text); - } - function mdwp_show_tags($text) { - global $mdwp_hidden_tags, $mdwp_placeholders; - return str_replace($mdwp_placeholders, $mdwp_hidden_tags, $text); - } -} - - -### bBlog Plugin Info ### - -function identify_modifier_markdown() { - return array( - 'name' => 'markdown', - 'type' => 'modifier', - 'nicename' => 'Markdown', - 'description' => 'A text-to-HTML conversion tool for web writers', - 'authors' => 'Michel Fortin and John Gruber', - 'licence' => 'BSD-like', - 'version' => MARKDOWN_VERSION, - 'help' => 'Markdown syntax allows you to write using an easy-to-read, easy-to-write plain text format. Based on the original Perl version by John Gruber. More...' - ); -} - - -### Smarty Modifier Interface ### - -function smarty_modifier_markdown($text) { - return Markdown($text); -} - - -### Textile Compatibility Mode ### - -# Rename this file to "classTextile.php" and it can replace Textile everywhere. - -if (strcasecmp(substr(__FILE__, -16), "classTextile.php") == 0) { - # Try to include PHP SmartyPants. Should be in the same directory. - @include_once 'smartypants.php'; - # Fake Textile class. It calls Markdown instead. - class Textile { - function TextileThis($text, $lite='', $encode='') { - if ($lite == '' && $encode == '') $text = Markdown($text); - if (function_exists('SmartyPants')) $text = SmartyPants($text); - return $text; - } - # Fake restricted version: restrictions are not supported for now. - function TextileRestricted($text, $lite='', $noimage='') { - return $this->TextileThis($text, $lite); - } - # Workaround to ensure compatibility with TextPattern 4.0.3. - function blockLite($text) { return $text; } - } -} - - - -# -# Markdown Parser Class -# - -class Markdown_Parser { - - # Regex to match balanced [brackets]. - # Needed to insert a maximum bracked depth while converting to PHP. - var $nested_brackets_depth = 6; - var $nested_brackets_re; - - var $nested_url_parenthesis_depth = 4; - var $nested_url_parenthesis_re; - - # Table of hash values for escaped characters: - var $escape_chars = '\`*_{}[]()>#+-.!'; - var $escape_chars_re; - - # Change to ">" for HTML output. - var $empty_element_suffix = MARKDOWN_EMPTY_ELEMENT_SUFFIX; - var $tab_width = MARKDOWN_TAB_WIDTH; - - # Change to `true` to disallow markup or entities. - var $no_markup = false; - var $no_entities = false; - - # Predefined urls and titles for reference links and images. - var $predef_urls = array(); - var $predef_titles = array(); - - - function Markdown_Parser() { - # - # Constructor function. Initialize appropriate member variables. - # - $this->_initDetab(); - $this->prepareItalicsAndBold(); - - $this->nested_brackets_re = - str_repeat('(?>[^\[\]]+|\[', $this->nested_brackets_depth). - str_repeat('\])*', $this->nested_brackets_depth); - - $this->nested_url_parenthesis_re = - str_repeat('(?>[^()\s]+|\(', $this->nested_url_parenthesis_depth). - str_repeat('(?>\)))*', $this->nested_url_parenthesis_depth); - - $this->escape_chars_re = '['.preg_quote($this->escape_chars).']'; - - # Sort document, block, and span gamut in ascendent priority order. - asort($this->document_gamut); - asort($this->block_gamut); - asort($this->span_gamut); - } - - - # Internal hashes used during transformation. - var $urls = array(); - var $titles = array(); - var $html_hashes = array(); - - # Status flag to avoid invalid nesting. - var $in_anchor = false; - - - function setup() { - # - # Called before the transformation process starts to setup parser - # states. - # - # Clear global hashes. - $this->urls = $this->predef_urls; - $this->titles = $this->predef_titles; - $this->html_hashes = array(); - - $in_anchor = false; - } - - function teardown() { - # - # Called after the transformation process to clear any variable - # which may be taking up memory unnecessarly. - # - $this->urls = array(); - $this->titles = array(); - $this->html_hashes = array(); - } - - - function transform($text) { - # - # Main function. Performs some preprocessing on the input text - # and pass it through the document gamut. - # - $this->setup(); - - # Remove UTF-8 BOM and marker character in input, if present. - $text = preg_replace('{^\xEF\xBB\xBF|\x1A}', '', $text); - - # Standardize line endings: - # DOS to Unix and Mac to Unix - $text = preg_replace('{\r\n?}', "\n", $text); - - # Make sure $text ends with a couple of newlines: - $text .= "\n\n"; - - # Convert all tabs to spaces. - $text = $this->detab($text); - - # Turn block-level HTML blocks into hash entries - $text = $this->hashHTMLBlocks($text); - - # Strip any lines consisting only of spaces and tabs. - # This makes subsequent regexen easier to write, because we can - # match consecutive blank lines with /\n+/ instead of something - # contorted like /[ ]*\n+/ . - $text = preg_replace('/^[ ]+$/m', '', $text); - - # Run document gamut methods. - foreach ($this->document_gamut as $method => $priority) { - $text = $this->$method($text); - } - - $this->teardown(); - - return $text . "\n"; - } - - var $document_gamut = array( - # Strip link definitions, store in hashes. - "stripLinkDefinitions" => 20, - - "runBasicBlockGamut" => 30, - ); - - - function stripLinkDefinitions($text) { - # - # Strips link definitions from text, stores the URLs and titles in - # hash references. - # - $less_than_tab = $this->tab_width - 1; - - # Link defs are in the form: ^[id]: url "optional title" - $text = preg_replace_callback('{ - ^[ ]{0,'.$less_than_tab.'}\[(.+)\][ ]?: # id = $1 - [ ]* - \n? # maybe *one* newline - [ ]* - ? # url = $2 - [ ]* - \n? # maybe one newline - [ ]* - (?: - (?<=\s) # lookbehind for whitespace - ["(] - (.*?) # title = $3 - [")] - [ ]* - )? # title is optional - (?:\n+|\Z) - }xm', - array(&$this, '_stripLinkDefinitions_callback'), - $text); - return $text; - } - function _stripLinkDefinitions_callback($matches) { - $link_id = strtolower($matches[1]); - $this->urls[$link_id] = $matches[2]; - $this->titles[$link_id] =& $matches[3]; - return ''; # String that will replace the block - } - - - function hashHTMLBlocks($text) { - if ($this->no_markup) return $text; - - $less_than_tab = $this->tab_width - 1; - - # Hashify HTML blocks: - # We only want to do this for block-level HTML tags, such as headers, - # lists, and tables. That's because we still want to wrap

      s around - # "paragraphs" that are wrapped in non-block-level tags, such as anchors, - # phrase emphasis, and spans. The list of tags we're looking for is - # hard-coded: - # - # * List "a" is made of tags which can be both inline or block-level. - # These will be treated block-level when the start tag is alone on - # its line, otherwise they're not matched here and will be taken as - # inline later. - # * List "b" is made of tags which are always block-level; - # - $block_tags_a_re = 'ins|del'; - $block_tags_b_re = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|address|'. - 'script|noscript|form|fieldset|iframe|math'; - - # Regular expression for the content of a block tag. - $nested_tags_level = 4; - $attr = ' - (?> # optional tag attributes - \s # starts with whitespace - (?> - [^>"/]+ # text outside quotes - | - /+(?!>) # slash not followed by ">" - | - "[^"]*" # text inside double quotes (tolerate ">") - | - \'[^\']*\' # text inside single quotes (tolerate ">") - )* - )? - '; - $content = - str_repeat(' - (?> - [^<]+ # content without tag - | - <\2 # nested opening tag - '.$attr.' # attributes - (?> - /> - | - >', $nested_tags_level). # end of opening tag - '.*?'. # last level nested tag content - str_repeat(' - # closing nested tag - ) - | - <(?!/\2\s*> # other tags with a different name - ) - )*', - $nested_tags_level); - $content2 = str_replace('\2', '\3', $content); - - # First, look for nested blocks, e.g.: - #

      - #
      - # tags for inner block must be indented. - #
      - #
      - # - # The outermost tags must start at the left margin for this to match, and - # the inner nested divs must be indented. - # We need to do this before the next, more liberal match, because the next - # match will start at the first `
      ` and stop at the first `
      `. - $text = preg_replace_callback('{(?> - (?> - (?<=\n\n) # Starting after a blank line - | # or - \A\n? # the beginning of the doc - ) - ( # save in $1 - - # Match from `\n` to `\n`, handling nested tags - # in between. - - [ ]{0,'.$less_than_tab.'} - <('.$block_tags_b_re.')# start tag = $2 - '.$attr.'> # attributes followed by > and \n - '.$content.' # content, support nesting - # the matching end tag - [ ]* # trailing spaces/tabs - (?=\n+|\Z) # followed by a newline or end of document - - | # Special version for tags of group a. - - [ ]{0,'.$less_than_tab.'} - <('.$block_tags_a_re.')# start tag = $3 - '.$attr.'>[ ]*\n # attributes followed by > - '.$content2.' # content, support nesting - # the matching end tag - [ ]* # trailing spaces/tabs - (?=\n+|\Z) # followed by a newline or end of document - - | # Special case just for
      . It was easier to make a special - # case than to make the other regex more complicated. - - [ ]{0,'.$less_than_tab.'} - <(hr) # start tag = $2 - '.$attr.' # attributes - /?> # the matching end tag - [ ]* - (?=\n{2,}|\Z) # followed by a blank line or end of document - - | # Special case for standalone HTML comments: - - [ ]{0,'.$less_than_tab.'} - (?s: - - ) - [ ]* - (?=\n{2,}|\Z) # followed by a blank line or end of document - - | # PHP and ASP-style processor instructions ( - ) - [ ]* - (?=\n{2,}|\Z) # followed by a blank line or end of document - - ) - )}Sxmi', - array(&$this, '_hashHTMLBlocks_callback'), - $text); - - return $text; - } - function _hashHTMLBlocks_callback($matches) { - $text = $matches[1]; - $key = $this->hashBlock($text); - return "\n\n$key\n\n"; - } - - - function hashPart($text, $boundary = 'X') { - # - # Called whenever a tag must be hashed when a function insert an atomic - # element in the text stream. Passing $text to through this function gives - # a unique text-token which will be reverted back when calling unhash. - # - # The $boundary argument specify what character should be used to surround - # the token. By convension, "B" is used for block elements that needs not - # to be wrapped into paragraph tags at the end, ":" is used for elements - # that are word separators and "X" is used in the general case. - # - # Swap back any tag hash found in $text so we do not have to `unhash` - # multiple times at the end. - $text = $this->unhash($text); - - # Then hash the block. - static $i = 0; - $key = "$boundary\x1A" . ++$i . $boundary; - $this->html_hashes[$key] = $text; - return $key; # String that will replace the tag. - } - - - function hashBlock($text) { - # - # Shortcut function for hashPart with block-level boundaries. - # - return $this->hashPart($text, 'B'); - } - - - var $block_gamut = array( - # - # These are all the transformations that form block-level - # tags like paragraphs, headers, and list items. - # - "doHeaders" => 10, - "doHorizontalRules" => 20, - - "doLists" => 40, - "doCodeBlocks" => 50, - "doBlockQuotes" => 60, - ); - - function runBlockGamut($text) { - # - # Run block gamut tranformations. - # - # We need to escape raw HTML in Markdown source before doing anything - # else. This need to be done for each block, and not only at the - # begining in the Markdown function since hashed blocks can be part of - # list items and could have been indented. Indented blocks would have - # been seen as a code block in a previous pass of hashHTMLBlocks. - $text = $this->hashHTMLBlocks($text); - - return $this->runBasicBlockGamut($text); - } - - function runBasicBlockGamut($text) { - # - # Run block gamut tranformations, without hashing HTML blocks. This is - # useful when HTML blocks are known to be already hashed, like in the first - # whole-document pass. - # - foreach ($this->block_gamut as $method => $priority) { - $text = $this->$method($text); - } - - # Finally form paragraph and restore hashed blocks. - $text = $this->formParagraphs($text); - - return $text; - } - - - function doHorizontalRules($text) { - # Do Horizontal Rules: - return preg_replace( - '{ - ^[ ]{0,3} # Leading space - ([-*_]) # $1: First marker - (?> # Repeated marker group - [ ]{0,2} # Zero, one, or two spaces. - \1 # Marker character - ){2,} # Group repeated at least twice - [ ]* # Tailing spaces - $ # End of line. - }mx', - "\n".$this->hashBlock("empty_element_suffix")."\n", - $text); - } - - - var $span_gamut = array( - # - # These are all the transformations that occur *within* block-level - # tags like paragraphs, headers, and list items. - # - # Process character escapes, code spans, and inline HTML - # in one shot. - "parseSpan" => -30, - - # Process anchor and image tags. Images must come first, - # because ![foo][f] looks like an anchor. - "doImages" => 10, - "doAnchors" => 20, - - # Make links out of things like `` - # Must come after doAnchors, because you can use < and > - # delimiters in inline links like [this](). - "doAutoLinks" => 30, - "encodeAmpsAndAngles" => 40, - - "doItalicsAndBold" => 50, - "doHardBreaks" => 60, - ); - - function runSpanGamut($text) { - # - # Run span gamut tranformations. - # - foreach ($this->span_gamut as $method => $priority) { - $text = $this->$method($text); - } - - return $text; - } - - - function doHardBreaks($text) { - # Do hard breaks: - return preg_replace_callback('/ {2,}\n/', - array(&$this, '_doHardBreaks_callback'), $text); - } - function _doHardBreaks_callback($matches) { - return $this->hashPart("empty_element_suffix\n"); - } - - - function doAnchors($text) { - # - # Turn Markdown link shortcuts into XHTML tags. - # - if ($this->in_anchor) return $text; - $this->in_anchor = true; - - # - # First, handle reference-style links: [link text] [id] - # - $text = preg_replace_callback('{ - ( # wrap whole match in $1 - \[ - ('.$this->nested_brackets_re.') # link text = $2 - \] - - [ ]? # one optional space - (?:\n[ ]*)? # one optional newline followed by spaces - - \[ - (.*?) # id = $3 - \] - ) - }xs', - array(&$this, '_doAnchors_reference_callback'), $text); - - # - # Next, inline-style links: [link text](url "optional title") - # - $text = preg_replace_callback('{ - ( # wrap whole match in $1 - \[ - ('.$this->nested_brackets_re.') # link text = $2 - \] - \( # literal paren - [ ]* - (?: - <(\S*)> # href = $3 - | - ('.$this->nested_url_parenthesis_re.') # href = $4 - ) - [ ]* - ( # $5 - ([\'"]) # quote char = $6 - (.*?) # Title = $7 - \6 # matching quote - [ ]* # ignore any spaces/tabs between closing quote and ) - )? # title is optional - \) - ) - }xs', - array(&$this, '_DoAnchors_inline_callback'), $text); - - # - # Last, handle reference-style shortcuts: [link text] - # These must come last in case you've also got [link test][1] - # or [link test](/foo) - # -// $text = preg_replace_callback('{ -// ( # wrap whole match in $1 -// \[ -// ([^\[\]]+) # link text = $2; can\'t contain [ or ] -// \] -// ) -// }xs', -// array(&$this, '_doAnchors_reference_callback'), $text); - - $this->in_anchor = false; - return $text; - } - function _doAnchors_reference_callback($matches) { - $whole_match = $matches[1]; - $link_text = $matches[2]; - $link_id =& $matches[3]; - - if ($link_id == "") { - # for shortcut links like [this][] or [this]. - $link_id = $link_text; - } - - # lower-case and turn embedded newlines into spaces - $link_id = strtolower($link_id); - $link_id = preg_replace('{[ ]?\n}', ' ', $link_id); - - if (isset($this->urls[$link_id])) { - $url = $this->urls[$link_id]; - $url = $this->encodeAttribute($url); - - $result = "titles[$link_id] ) ) { - $title = $this->titles[$link_id]; - $title = $this->encodeAttribute($title); - $result .= " title=\"$title\""; - } - - $link_text = $this->runSpanGamut($link_text); - $result .= ">$link_text"; - $result = $this->hashPart($result); - } - else { - $result = $whole_match; - } - return $result; - } - function _doAnchors_inline_callback($matches) { - $whole_match = $matches[1]; - $link_text = $this->runSpanGamut($matches[2]); - $url = $matches[3] == '' ? $matches[4] : $matches[3]; - $title =& $matches[7]; - - $url = $this->encodeAttribute($url); - - $result = "encodeAttribute($title); - $result .= " title=\"$title\""; - } - - $link_text = $this->runSpanGamut($link_text); - $result .= ">$link_text"; - - return $this->hashPart($result); - } - - - function doImages($text) { - # - # Turn Markdown image shortcuts into tags. - # - # - # First, handle reference-style labeled images: ![alt text][id] - # - $text = preg_replace_callback('{ - ( # wrap whole match in $1 - !\[ - ('.$this->nested_brackets_re.') # alt text = $2 - \] - - [ ]? # one optional space - (?:\n[ ]*)? # one optional newline followed by spaces - - \[ - (.*?) # id = $3 - \] - - ) - }xs', - array(&$this, '_doImages_reference_callback'), $text); - - # - # Next, handle inline images: ![alt text](url "optional title") - # Don't forget: encode * and _ - # - $text = preg_replace_callback('{ - ( # wrap whole match in $1 - !\[ - ('.$this->nested_brackets_re.') # alt text = $2 - \] - \s? # One optional whitespace character - \( # literal paren - [ ]* - (?: - <(\S*)> # src url = $3 - | - ('.$this->nested_url_parenthesis_re.') # src url = $4 - ) - [ ]* - ( # $5 - ([\'"]) # quote char = $6 - (.*?) # title = $7 - \6 # matching quote - [ ]* - )? # title is optional - \) - ) - }xs', - array(&$this, '_doImages_inline_callback'), $text); - - return $text; - } - function _doImages_reference_callback($matches) { - $whole_match = $matches[1]; - $alt_text = $matches[2]; - $link_id = strtolower($matches[3]); - - if ($link_id == "") { - $link_id = strtolower($alt_text); # for shortcut links like ![this][]. - } - - $alt_text = $this->encodeAttribute($alt_text); - if (isset($this->urls[$link_id])) { - $url = $this->encodeAttribute($this->urls[$link_id]); - $result = "\"$alt_text\"";titles[$link_id])) { - $title = $this->titles[$link_id]; - $title = $this->encodeAttribute($title); - $result .= " title=\"$title\""; - } - $result .= $this->empty_element_suffix; - $result = $this->hashPart($result); - } - else { - # If there's no such link ID, leave intact: - $result = $whole_match; - } - - return $result; - } - function _doImages_inline_callback($matches) { - $whole_match = $matches[1]; - $alt_text = $matches[2]; - $url = $matches[3] == '' ? $matches[4] : $matches[3]; - $title =& $matches[7]; - - $alt_text = $this->encodeAttribute($alt_text); - $url = $this->encodeAttribute($url); - $result = "\"$alt_text\"";encodeAttribute($title); - $result .= " title=\"$title\""; # $title already quoted - } - $result .= $this->empty_element_suffix; - - return $this->hashPart($result); - } - - - function doHeaders($text) { - # Setext-style headers: - # Header 1 - # ======== - # - # Header 2 - # -------- - # - $text = preg_replace_callback('{ ^(.+?)[ ]*\n(=+|-+)[ ]*\n+ }mx', - array(&$this, '_doHeaders_callback_setext'), $text); - - # atx-style headers: - # # Header 1 - # ## Header 2 - # ## Header 2 with closing hashes ## - # ... - # ###### Header 6 - # - $text = preg_replace_callback('{ - ^(\#{1,6}) # $1 = string of #\'s - [ ]* - (.+?) # $2 = Header text - [ ]* - \#* # optional closing #\'s (not counted) - \n+ - }xm', - array(&$this, '_doHeaders_callback_atx'), $text); - - return $text; - } - function _doHeaders_callback_setext($matches) { - # Terrible hack to check we haven't found an empty list item. - if ($matches[2] == '-' && preg_match('{^-(?: |$)}', $matches[1])) - return $matches[0]; - - $level = $matches[2]{0} == '=' ? 1 : 2; - $block = "".$this->runSpanGamut($matches[1]).""; - return "\n" . $this->hashBlock($block) . "\n\n"; - } - function _doHeaders_callback_atx($matches) { - $level = strlen($matches[1]); - $block = "".$this->runSpanGamut($matches[2]).""; - return "\n" . $this->hashBlock($block) . "\n\n"; - } - - - function doLists($text) { - # - # Form HTML ordered (numbered) and unordered (bulleted) lists. - # - $less_than_tab = $this->tab_width - 1; - - # Re-usable patterns to match list item bullets and number markers: - $marker_ul_re = '[*+-]'; - $marker_ol_re = '\d+[.]'; - $marker_any_re = "(?:$marker_ul_re|$marker_ol_re)"; - - $markers_relist = array($marker_ul_re, $marker_ol_re); - - foreach ($markers_relist as $marker_re) { - # Re-usable pattern to match any entirel ul or ol list: - $whole_list_re = ' - ( # $1 = whole list - ( # $2 - [ ]{0,'.$less_than_tab.'} - ('.$marker_re.') # $3 = first list item marker - [ ]+ - ) - (?s:.+?) - ( # $4 - \z - | - \n{2,} - (?=\S) - (?! # Negative lookahead for another list item marker - [ ]* - '.$marker_re.'[ ]+ - ) - ) - ) - '; // mx - - # We use a different prefix before nested lists than top-level lists. - # See extended comment in _ProcessListItems(). - - if ($this->list_level) { - $text = preg_replace_callback('{ - ^ - '.$whole_list_re.' - }mx', - array(&$this, '_doLists_callback'), $text); - } - else { - $text = preg_replace_callback('{ - (?:(?<=\n)\n|\A\n?) # Must eat the newline - '.$whole_list_re.' - }mx', - array(&$this, '_doLists_callback'), $text); - } - } - - return $text; - } - function _doLists_callback($matches) { - # Re-usable patterns to match list item bullets and number markers: - $marker_ul_re = '[*+-]'; - $marker_ol_re = '\d+[.]'; - $marker_any_re = "(?:$marker_ul_re|$marker_ol_re)"; - - $list = $matches[1]; - $list_type = preg_match("/$marker_ul_re/", $matches[3]) ? "ul" : "ol"; - - $marker_any_re = ( $list_type == "ul" ? $marker_ul_re : $marker_ol_re ); - - $list .= "\n"; - $result = $this->processListItems($list, $marker_any_re); - - $result = $this->hashBlock("<$list_type>\n" . $result . ""); - return "\n". $result ."\n\n"; - } - - var $list_level = 0; - - function processListItems($list_str, $marker_any_re) { - # - # Process the contents of a single ordered or unordered list, splitting it - # into individual list items. - # - # The $this->list_level global keeps track of when we're inside a list. - # Each time we enter a list, we increment it; when we leave a list, - # we decrement. If it's zero, we're not in a list anymore. - # - # We do this because when we're not inside a list, we want to treat - # something like this: - # - # I recommend upgrading to version - # 8. Oops, now this line is treated - # as a sub-list. - # - # As a single paragraph, despite the fact that the second line starts - # with a digit-period-space sequence. - # - # Whereas when we're inside a list (or sub-list), that line will be - # treated as the start of a sub-list. What a kludge, huh? This is - # an aspect of Markdown's syntax that's hard to parse perfectly - # without resorting to mind-reading. Perhaps the solution is to - # change the syntax rules such that sub-lists must start with a - # starting cardinal number; e.g. "1." or "a.". - - $this->list_level++; - - # trim trailing blank lines: - $list_str = preg_replace("/\n{2,}\\z/", "\n", $list_str); - - $list_str = preg_replace_callback('{ - (\n)? # leading line = $1 - (^[ ]*) # leading whitespace = $2 - ('.$marker_any_re.' # list marker and space = $3 - (?:[ ]+|(?=\n)) # space only required if item is not empty - ) - ((?s:.*?)) # list item text = $4 - (?:(\n+(?=\n))|\n) # tailing blank line = $5 - (?= \n* (\z | \2 ('.$marker_any_re.') (?:[ ]+|(?=\n)))) - }xm', - array(&$this, '_processListItems_callback'), $list_str); - - $this->list_level--; - return $list_str; - } - function _processListItems_callback($matches) { - $item = $matches[4]; - $leading_line =& $matches[1]; - $leading_space =& $matches[2]; - $marker_space = $matches[3]; - $tailing_blank_line =& $matches[5]; - - if ($leading_line || $tailing_blank_line || - preg_match('/\n{2,}/', $item)) - { - # Replace marker with the appropriate whitespace indentation - $item = $leading_space . str_repeat(' ', strlen($marker_space)) . $item; - $item = $this->runBlockGamut($this->outdent($item)."\n"); - } - else { - # Recursion for sub-lists: - $item = $this->doLists($this->outdent($item)); - $item = preg_replace('/\n+$/', '', $item); - $item = $this->runSpanGamut($item); - } - - return "
    • " . $item . "
    • \n"; - } - - - function doCodeBlocks($text) { - # - # Process Markdown `
      ` blocks.
      -	#
      -		$text = preg_replace_callback('{
      -				(?:\n\n|\A\n?)
      -				(	            # $1 = the code block -- one or more lines, starting with a space/tab
      -				  (?>
      -					[ ]{'.$this->tab_width.'}  # Lines must start with a tab or a tab-width of spaces
      -					.*\n+
      -				  )+
      -				)
      -				((?=^[ ]{0,'.$this->tab_width.'}\S)|\Z)	# Lookahead for non-space at line-start, or end of doc
      -			}xm',
      -			array(&$this, '_doCodeBlocks_callback'), $text);
      -
      -		return $text;
      -	}
      -	function _doCodeBlocks_callback($matches) {
      -		$codeblock = $matches[1];
      -
      -		$codeblock = $this->outdent($codeblock);
      -		$codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES);
      -
      -		# trim leading newlines and trailing newlines
      -		$codeblock = preg_replace('/\A\n+|\n+\z/', '', $codeblock);
      -
      -		$codeblock = "
      $codeblock\n
      "; - return "\n\n".$this->hashBlock($codeblock)."\n\n"; - } - - - function makeCodeSpan($code) { - # - # Create a code span markup for $code. Called from handleSpanToken. - # - $code = htmlspecialchars(trim($code), ENT_NOQUOTES); - return $this->hashPart("$code"); - } - - - var $em_relist = array( - '' => '(?:(? '(?<=\S)(? '(?<=\S)(? '(?:(? '(?<=\S)(? '(?<=\S)(? '(?:(? '(?<=\S)(? '(?<=\S)(?em_relist as $em => $em_re) { - foreach ($this->strong_relist as $strong => $strong_re) { - # Construct list of allowed token expressions. - $token_relist = array(); - if (isset($this->em_strong_relist["$em$strong"])) { - $token_relist[] = $this->em_strong_relist["$em$strong"]; - } - $token_relist[] = $em_re; - $token_relist[] = $strong_re; - - # Construct master expression from list. - $token_re = '{('. implode('|', $token_relist) .')}'; - $this->em_strong_prepared_relist["$em$strong"] = $token_re; - } - } - } - - function doItalicsAndBold($text) { - $token_stack = array(''); - $text_stack = array(''); - $em = ''; - $strong = ''; - $tree_char_em = false; - - while (1) { - # - # Get prepared regular expression for seraching emphasis tokens - # in current context. - # - $token_re = $this->em_strong_prepared_relist["$em$strong"]; - - # - # Each loop iteration seach for the next emphasis token. - # Each token is then passed to handleSpanToken. - # - $parts = preg_split($token_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE); - $text_stack[0] .= $parts[0]; - $token =& $parts[1]; - $text =& $parts[2]; - - if (empty($token)) { - # Reached end of text span: empty stack without emitting. - # any more emphasis. - while ($token_stack[0]) { - $text_stack[1] .= array_shift($token_stack); - $text_stack[0] .= array_shift($text_stack); - } - break; - } - - $token_len = strlen($token); - if ($tree_char_em) { - # Reached closing marker while inside a three-char emphasis. - if ($token_len == 3) { - # Three-char closing marker, close em and strong. - array_shift($token_stack); - $span = array_shift($text_stack); - $span = $this->runSpanGamut($span); - $span = "$span"; - $text_stack[0] .= $this->hashPart($span); - $em = ''; - $strong = ''; - } else { - # Other closing marker: close one em or strong and - # change current token state to match the other - $token_stack[0] = str_repeat($token{0}, 3-$token_len); - $tag = $token_len == 2 ? "strong" : "em"; - $span = $text_stack[0]; - $span = $this->runSpanGamut($span); - $span = "<$tag>$span"; - $text_stack[0] = $this->hashPart($span); - $$tag = ''; # $$tag stands for $em or $strong - } - $tree_char_em = false; - } else if ($token_len == 3) { - if ($em) { - # Reached closing marker for both em and strong. - # Closing strong marker: - for ($i = 0; $i < 2; ++$i) { - $shifted_token = array_shift($token_stack); - $tag = strlen($shifted_token) == 2 ? "strong" : "em"; - $span = array_shift($text_stack); - $span = $this->runSpanGamut($span); - $span = "<$tag>$span"; - $text_stack[0] .= $this->hashPart($span); - $$tag = ''; # $$tag stands for $em or $strong - } - } else { - # Reached opening three-char emphasis marker. Push on token - # stack; will be handled by the special condition above. - $em = $token{0}; - $strong = "$em$em"; - array_unshift($token_stack, $token); - array_unshift($text_stack, ''); - $tree_char_em = true; - } - } else if ($token_len == 2) { - if ($strong) { - # Unwind any dangling emphasis marker: - if (strlen($token_stack[0]) == 1) { - $text_stack[1] .= array_shift($token_stack); - $text_stack[0] .= array_shift($text_stack); - } - # Closing strong marker: - array_shift($token_stack); - $span = array_shift($text_stack); - $span = $this->runSpanGamut($span); - $span = "$span"; - $text_stack[0] .= $this->hashPart($span); - $strong = ''; - } else { - array_unshift($token_stack, $token); - array_unshift($text_stack, ''); - $strong = $token; - } - } else { - # Here $token_len == 1 - if ($em) { - if (strlen($token_stack[0]) == 1) { - # Closing emphasis marker: - array_shift($token_stack); - $span = array_shift($text_stack); - $span = $this->runSpanGamut($span); - $span = "$span"; - $text_stack[0] .= $this->hashPart($span); - $em = ''; - } else { - $text_stack[0] .= $token; - } - } else { - array_unshift($token_stack, $token); - array_unshift($text_stack, ''); - $em = $token; - } - } - } - return $text_stack[0]; - } - - - function doBlockQuotes($text) { - $text = preg_replace_callback('/ - ( # Wrap whole match in $1 - (?> - ^[ ]*>[ ]? # ">" at the start of a line - .+\n # rest of the first line - (.+\n)* # subsequent consecutive lines - \n* # blanks - )+ - ) - /xm', - array(&$this, '_doBlockQuotes_callback'), $text); - - return $text; - } - function _doBlockQuotes_callback($matches) { - $bq = $matches[1]; - # trim one level of quoting - trim whitespace-only lines - $bq = preg_replace('/^[ ]*>[ ]?|^[ ]+$/m', '', $bq); - $bq = $this->runBlockGamut($bq); # recurse - - $bq = preg_replace('/^/m', " ", $bq); - # These leading spaces cause problem with
       content, 
      -		# so we need to fix that:
      -		$bq = preg_replace_callback('{(\s*
      .+?
      )}sx', - array(&$this, '_DoBlockQuotes_callback2'), $bq); - - return "\n". $this->hashBlock("
      \n$bq\n
      ")."\n\n"; - } - function _doBlockQuotes_callback2($matches) { - $pre = $matches[1]; - $pre = preg_replace('/^ /m', '', $pre); - return $pre; - } - - - function formParagraphs($text) { - # - # Params: - # $text - string to process with html

      tags - # - # Strip leading and trailing lines: - $text = preg_replace('/\A\n+|\n+\z/', '', $text); - - $grafs = preg_split('/\n{2,}/', $text, -1, PREG_SPLIT_NO_EMPTY); - - # - # Wrap

      tags and unhashify HTML blocks - # - foreach ($grafs as $key => $value) { - if (!preg_match('/^B\x1A[0-9]+B$/', $value)) { - # Is a paragraph. - $value = $this->runSpanGamut($value); - $value = preg_replace('/^([ ]*)/', "

      ", $value); - $value .= "

      "; - $grafs[$key] = $this->unhash($value); - } - else { - # Is a block. - # Modify elements of @grafs in-place... - $graf = $value; - $block = $this->html_hashes[$graf]; - $graf = $block; -// if (preg_match('{ -// \A -// ( # $1 =
      tag -//
      ]* -// \b -// markdown\s*=\s* ([\'"]) # $2 = attr quote char -// 1 -// \2 -// [^>]* -// > -// ) -// ( # $3 = contents -// .* -// ) -// (
      ) # $4 = closing tag -// \z -// }xs', $block, $matches)) -// { -// list(, $div_open, , $div_content, $div_close) = $matches; -// -// # We can't call Markdown(), because that resets the hash; -// # that initialization code should be pulled into its own sub, though. -// $div_content = $this->hashHTMLBlocks($div_content); -// -// # Run document gamut methods on the content. -// foreach ($this->document_gamut as $method => $priority) { -// $div_content = $this->$method($div_content); -// } -// -// $div_open = preg_replace( -// '{\smarkdown\s*=\s*([\'"]).+?\1}', '', $div_open); -// -// $graf = $div_open . "\n" . $div_content . "\n" . $div_close; -// } - $grafs[$key] = $graf; - } - } - - return implode("\n\n", $grafs); - } - - - function encodeAttribute($text) { - # - # Encode text for a double-quoted HTML attribute. This function - # is *not* suitable for attributes enclosed in single quotes. - # - $text = $this->encodeAmpsAndAngles($text); - $text = str_replace('"', '"', $text); - return $text; - } - - - function encodeAmpsAndAngles($text) { - # - # Smart processing for ampersands and angle brackets that need to - # be encoded. Valid character entities are left alone unless the - # no-entities mode is set. - # - if ($this->no_entities) { - $text = str_replace('&', '&', $text); - } else { - # Ampersand-encoding based entirely on Nat Irons's Amputator - # MT plugin: - $text = preg_replace('/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/', - '&', $text);; - } - # Encode remaining <'s - $text = str_replace('<', '<', $text); - - return $text; - } - - - function doAutoLinks($text) { - $text = preg_replace_callback('{<((https?|ftp|dict):[^\'">\s]+)>}i', - array(&$this, '_doAutoLinks_url_callback'), $text); - - # Email addresses: - $text = preg_replace_callback('{ - < - (?:mailto:)? - ( - [-.\w\x80-\xFF]+ - \@ - [-a-z0-9\x80-\xFF]+(\.[-a-z0-9\x80-\xFF]+)*\.[a-z]+ - ) - > - }xi', - array(&$this, '_doAutoLinks_email_callback'), $text); - - return $text; - } - function _doAutoLinks_url_callback($matches) { - $url = $this->encodeAttribute($matches[1]); - $link = "$url"; - return $this->hashPart($link); - } - function _doAutoLinks_email_callback($matches) { - $address = $matches[1]; - $link = $this->encodeEmailAddress($address); - return $this->hashPart($link); - } - - - function encodeEmailAddress($addr) { - # - # Input: an email address, e.g. "foo@example.com" - # - # Output: the email address as a mailto link, with each character - # of the address encoded as either a decimal or hex entity, in - # the hopes of foiling most address harvesting spam bots. E.g.: - # - #

      foo@exampl - # e.com

      - # - # Based by a filter by Matthew Wickline, posted to BBEdit-Talk. - # With some optimizations by Milian Wolff. - # - $addr = "mailto:" . $addr; - $chars = preg_split('/(? $char) { - $ord = ord($char); - # Ignore non-ascii chars. - if ($ord < 128) { - $r = ($seed * (1 + $key)) % 100; # Pseudo-random function. - # roughly 10% raw, 45% hex, 45% dec - # '@' *must* be encoded. I insist. - if ($r > 90 && $char != '@') /* do nothing */; - else if ($r < 45) $chars[$key] = '&#x'.dechex($ord).';'; - else $chars[$key] = '&#'.$ord.';'; - } - } - - $addr = implode('', $chars); - $text = implode('', array_slice($chars, 7)); # text without `mailto:` - $addr = "$text"; - - return $addr; - } - - - function parseSpan($str) { - # - # Take the string $str and parse it into tokens, hashing embeded HTML, - # escaped characters and handling code spans. - # - $output = ''; - - $span_re = '{ - ( - \\\\'.$this->escape_chars_re.' - | - (?no_markup ? '' : ' - | - # comment - | - <\?.*?\?> | <%.*?%> # processing instruction - | - <[/!$]?[-a-zA-Z0-9:]+ # regular tags - (?> - \s - (?>[^"\'>]+|"[^"]*"|\'[^\']*\')* - )? - > - ').' - ) - }xs'; - - while (1) { - # - # Each loop iteration seach for either the next tag, the next - # openning code span marker, or the next escaped character. - # Each token is then passed to handleSpanToken. - # - $parts = preg_split($span_re, $str, 2, PREG_SPLIT_DELIM_CAPTURE); - - # Create token from text preceding tag. - if ($parts[0] != "") { - $output .= $parts[0]; - } - - # Check if we reach the end. - if (isset($parts[1])) { - $output .= $this->handleSpanToken($parts[1], $parts[2]); - $str = $parts[2]; - } - else { - break; - } - } - - return $output; - } - - - function handleSpanToken($token, &$str) { - # - # Handle $token provided by parseSpan by determining its nature and - # returning the corresponding value that should replace it. - # - switch ($token{0}) { - case "\\": - return $this->hashPart("&#". ord($token{1}). ";"); - case "`": - # Search for end marker in remaining text. - if (preg_match('/^(.*?[^`])'.preg_quote($token).'(?!`)(.*)$/sm', - $str, $matches)) - { - $str = $matches[2]; - $codespan = $this->makeCodeSpan($matches[1]); - return $this->hashPart($codespan); - } - return $token; // return as text since no ending marker found. - default: - return $this->hashPart($token); - } - } - - - function outdent($text) { - # - # Remove one level of line-leading tabs or spaces - # - return preg_replace('/^(\t|[ ]{1,'.$this->tab_width.'})/m', '', $text); - } - - - # String length function for detab. `_initDetab` will create a function to - # hanlde UTF-8 if the default function does not exist. - var $utf8_strlen = 'mb_strlen'; - - function detab($text) { - # - # Replace tabs with the appropriate amount of space. - # - # For each line we separate the line in blocks delemited by - # tab characters. Then we reconstruct every line by adding the - # appropriate number of space between each blocks. - - $text = preg_replace_callback('/^.*\t.*$/m', - array(&$this, '_detab_callback'), $text); - - return $text; - } - function _detab_callback($matches) { - $line = $matches[0]; - $strlen = $this->utf8_strlen; # strlen function for UTF-8. - - # Split in blocks. - $blocks = explode("\t", $line); - # Add each blocks to the line. - $line = $blocks[0]; - unset($blocks[0]); # Do not add first block twice. - foreach ($blocks as $block) { - # Calculate amount of space, insert spaces, insert block. - $amount = $this->tab_width - - $strlen($line, 'UTF-8') % $this->tab_width; - $line .= str_repeat(" ", $amount) . $block; - } - return $line; - } - function _initDetab() { - # - # Check for the availability of the function in the `utf8_strlen` property - # (initially `mb_strlen`). If the function is not available, create a - # function that will loosely count the number of UTF-8 characters with a - # regular expression. - # - if (function_exists($this->utf8_strlen)) return; - $this->utf8_strlen = create_function('$text', 'return preg_match_all( - "/[\\\\x00-\\\\xBF]|[\\\\xC0-\\\\xFF][\\\\x80-\\\\xBF]*/", - $text, $m);'); - } - - - function unhash($text) { - # - # Swap back in all the tags hashed by _HashHTMLBlocks. - # - return preg_replace_callback('/(.)\x1A[0-9]+\1/', - array(&$this, '_unhash_callback'), $text); - } - function _unhash_callback($matches) { - return $this->html_hashes[$matches[0]]; - } - -} - -/* - -PHP Markdown -============ - -Description ------------ - -This is a PHP translation of the original Markdown formatter written in -Perl by John Gruber. - -Markdown is a text-to-HTML filter; it translates an easy-to-read / -easy-to-write structured text format into HTML. Markdown's text format -is most similar to that of plain text email, and supports features such -as headers, *emphasis*, code blocks, blockquotes, and links. - -Markdown's syntax is designed not as a generic markup language, but -specifically to serve as a front-end to (X)HTML. You can use span-level -HTML tags anywhere in a Markdown document, and you can use block level -HTML tags (like
      and as well). - -For more information about Markdown's syntax, see: - - - - -Bugs ----- - -To file bug reports please send email to: - - - -Please include with your report: (1) the example input; (2) the output you -expected; (3) the output Markdown actually produced. - - -Version History ---------------- - -See the readme file for detailed release notes for this version. - - -Copyright and License ---------------------- - -PHP Markdown -Copyright (c) 2004-2008 Michel Fortin - -All rights reserved. - -Based on Markdown -Copyright (c) 2003-2006 John Gruber - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -* Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -* Neither the name "Markdown" nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - -This software is provided by the copyright holders and contributors "as -is" and any express or implied warranties, including, but not limited -to, the implied warranties of merchantability and fitness for a -particular purpose are disclaimed. In no event shall the copyright owner -or contributors be liable for any direct, indirect, incidental, special, -exemplary, or consequential damages (including, but not limited to, -procurement of substitute goods or services; loss of use, data, or -profits; or business interruption) however caused and on any theory of -liability, whether in contract, strict liability, or tort (including -negligence or otherwise) arising in any way out of the use of this -software, even if advised of the possibility of such damage. - -*/ -?> \ No newline at end of file diff --git a/_darcs/pristine/htaccess.sample b/_darcs/pristine/htaccess.sample deleted file mode 100644 index e348635a86..0000000000 --- a/_darcs/pristine/htaccess.sample +++ /dev/null @@ -1,153 +0,0 @@ -RewriteEngine On - -# NOTE: change this to your actual Laconica path; may be "/". - -RewriteBase /mublog/ - -RewriteRule ^$ index.php?action=public [L,QSA] -RewriteRule ^rss$ index.php?action=publicrss [L,QSA] -RewriteRule ^xrds$ index.php?action=publicxrds [L,QSA] -RewriteRule ^featuredrss$ index.php?action=featuredrss [L,QSA] -RewriteRule ^favoritedrss$ index.php?action=favoritedrss [L,QSA] -RewriteRule ^opensearch/people$ index.php?action=opensearch&type=people [L,QSA] -RewriteRule ^opensearch/notice$ index.php?action=opensearch&type=notice [L,QSA] - -RewriteRule ^doc/about$ index.php?action=doc&title=about [L,QSA] -RewriteRule ^doc/contact$ index.php?action=doc&title=contact [L,QSA] -RewriteRule ^doc/faq$ index.php?action=doc&title=faq [L,QSA] -RewriteRule ^doc/help$ index.php?action=doc&title=help [L,QSA] -RewriteRule ^doc/im$ index.php?action=doc&title=im [L,QSA] -RewriteRule ^doc/openid$ index.php?action=doc&title=openid [L,QSA] -RewriteRule ^doc/openmublog$ index.php?action=doc&title=openmublog [L,QSA] -RewriteRule ^doc/privacy$ index.php?action=doc&title=privacy [L,QSA] -RewriteRule ^doc/source$ index.php?action=doc&title=source [L,QSA] - -RewriteRule ^facebook/$ index.php?action=facebookhome [L,QSA] -RewriteRule ^facebook/index.php$ index.php?action=facebookhome [L,QSA] -RewriteRule ^facebook/settings.php$ index.php?action=facebooksettings [L,QSA] -RewriteRule ^facebook/invite.php$ index.php?action=facebookinvite [L,QSA] -RewriteRule ^facebook/remove$ index.php?action=facebookremove [L,QSA] - -RewriteRule ^main/login$ index.php?action=login [L,QSA] -RewriteRule ^main/logout$ index.php?action=logout [L,QSA] -RewriteRule ^main/register/(.*)$ index.php?action=register&code=$1 [L,QSA] -RewriteRule ^main/register$ index.php?action=register [L,QSA] -RewriteRule ^main/openid$ index.php?action=openidlogin [L,QSA] -RewriteRule ^main/remote$ index.php?action=remotesubscribe [L,QSA] - -RewriteRule ^main/subscribe$ index.php?action=subscribe [L,QSA] -RewriteRule ^main/unsubscribe$ index.php?action=unsubscribe [L,QSA] -RewriteRule ^main/confirmaddress$ index.php?action=confirmaddress [L,QSA] -RewriteRule ^main/confirmaddress/(.*)$ index.php?action=confirmaddress&code=$1 [L,QSA] -RewriteRule ^main/recoverpassword$ index.php?action=recoverpassword [L,QSA] -RewriteRule ^main/recoverpassword/(.*)$ index.php?action=recoverpassword&code=$1 [L,QSA] -RewriteRule ^main/invite$ index.php?action=invite [L,QSA] - -RewriteRule ^main/favor$ index.php?action=favor [L,QSA] -RewriteRule ^main/disfavor$ index.php?action=disfavor [L,QSA] - -RewriteRule ^main/sup$ index.php?action=sup [L,QSA] - -RewriteRule ^main/tagother$ index.php?action=tagother [L,QSA] - -RewriteRule ^main/block$ index.php?action=block [L,QSA] - -RewriteRule ^settings/delete$ index.php?action=deleteprofile [L,QSA] -RewriteRule ^settings/profile$ index.php?action=profilesettings [L,QSA] -RewriteRule ^settings/openid$ index.php?action=openidsettings [L,QSA] -RewriteRule ^settings/im$ index.php?action=imsettings [L,QSA] -RewriteRule ^settings/email$ index.php?action=emailsettings [L,QSA] -RewriteRule ^settings/sms$ index.php?action=smssettings [L,QSA] -RewriteRule ^settings/twitter$ index.php?action=twittersettings [L,QSA] -RewriteRule ^settings/other$ index.php?action=othersettings [L,QSA] - -RewriteRule ^search/people$ index.php?action=peoplesearch [L,QSA] -RewriteRule ^search/notice$ index.php?action=noticesearch [L,QSA] -RewriteRule ^search/notice/rss$ index.php?action=noticesearchrss [L,QSA] - -RewriteRule ^notice/new$ index.php?action=newnotice [L,QSA] -RewriteRule ^notice/(\d+)$ index.php?action=shownotice¬ice=$1 [L,QSA] -RewriteRule ^notice/delete/((\d+))?$ index.php?action=deletenotice¬ice=$2 [L,QSA] -RewriteRule ^notice/delete$ index.php?action=deletenotice [L,QSA] - -RewriteRule ^message/new$ index.php?action=newmessage [L,QSA] -RewriteRule ^message/(\d+)$ index.php?action=showmessage&message=$1 [L,QSA] - -RewriteRule ^user/(\d+)$ index.php?action=userbyid&id=$1 [L,QSA] - -RewriteRule ^tags/?$ index.php?action=tag [L,QSA] -RewriteRule ^tag/([a-zA-Z0-9]+)/rss$ index.php?action=tagrss&tag=$1 [L,QSA] -RewriteRule ^tag(/(.*))?$ index.php?action=tag&tag=$2 [L,QSA] - -RewriteRule ^peopletag/([a-zA-Z0-9]+)$ index.php?action=peopletag&tag=$1 [L,QSA] - -RewriteRule ^featured/?$ index.php?action=featured [L,QSA] -RewriteRule ^favorited/?$ index.php?action=favorited [L,QSA] - -RewriteRule ^(\w+)/subscriptions$ index.php?action=subscriptions&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/subscriptions/([a-zA-Z0-9]+)$ index.php?action=subscriptions&nickname=$1&tag=$2 [L,QSA] -RewriteRule ^(\w+)/subscribers/([a-zA-Z0-9]+)$ index.php?action=subscribers&nickname=$1&tag=$2 [L,QSA] -RewriteRule ^(\w+)/subscribers$ index.php?action=subscribers&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/nudge$ index.php?action=nudge&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/xrds$ index.php?action=xrds&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/rss$ index.php?action=userrss&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/all$ index.php?action=all&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/all/rss$ index.php?action=allrss&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/foaf$ index.php?action=foaf&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/replies$ index.php?action=replies&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/replies/rss$ index.php?action=repliesrss&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/avatar/(original|96|48|24)$ index.php?action=avatarbynickname&nickname=$1&size=$2 [L,QSA] -RewriteRule ^(\w+)/favorites$ index.php?action=showfavorites&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/favorites/rss$ index.php?action=favoritesrss&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/inbox$ index.php?action=inbox&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/outbox$ index.php?action=outbox&nickname=$1 [L,QSA] -RewriteRule ^(\w+)/microsummary$ index.php?action=microsummary&nickname=$1 [L,QSA] - -RewriteRule ^(\w+)$ index.php?action=showstream&nickname=$1 [L,QSA] - -# Twitter-compatible API rewrites -# XXX: Surely these can be refactored a little -- Zach -RewriteRule ^api/statuses/public_timeline(.*)$ index.php?action=api&apiaction=statuses&method=public_timeline$1 [L,QSA] -RewriteRule ^api/statuses/friends_timeline(.*)$ index.php?action=api&apiaction=statuses&method=friends_timeline$1 [L,QSA] -RewriteRule ^api/statuses/user_timeline/(.*)$ index.php?action=api&apiaction=statuses&method=user_timeline&argument=$1 [L,QSA] -RewriteRule ^api/statuses/user_timeline(.*)$ index.php?action=api&apiaction=statuses&method=user_timeline$1 [L,QSA] -RewriteRule ^api/statuses/show/(.*)$ index.php?action=api&apiaction=statuses&method=show&argument=$1 [L,QSA] -RewriteRule ^api/statuses/update(.*)$ index.php?action=api&apiaction=statuses&method=update$1 [L,QSA] -RewriteRule ^api/statuses/replies(.*)$ index.php?action=api&apiaction=statuses&method=replies&argument=$1 [L,QSA] -RewriteRule ^api/statuses/destroy/(.*)$ index.php?action=api&apiaction=statuses&method=destroy&argument=$1 [L,QSA] -RewriteRule ^api/statuses/friends/(.*)$ index.php?action=api&apiaction=statuses&method=friends&argument=$1 [L,QSA] -RewriteRule ^api/statuses/friends(.*)$ index.php?action=api&apiaction=statuses&method=friends$1 [L,QSA] -RewriteRule ^api/statuses/followers/(.*)$ index.php?action=api&apiaction=statuses&method=followers&argument=$1 [L,QSA] -RewriteRule ^api/statuses/followers(.*)$ index.php?action=api&apiaction=statuses&method=followers$1 [L,QSA] -RewriteRule ^api/statuses/featured(.*)$ index.php?action=api&apiaction=statuses&method=featured$1 [L,QSA] -RewriteRule ^api/users/show/(.*)$ index.php?action=api&apiaction=users&method=show&argument=$1 [L,QSA] -RewriteRule ^api/users/show(.*)$ index.php?action=api&apiaction=users&method=show$1 [L,QSA] -RewriteRule ^api/direct_messages/sent(.*)$ index.php?action=api&apiaction=direct_messages&method=sent$1 [L,QSA] -RewriteRule ^api/direct_messages/destroy/(.*)$ index.php?action=api&apiaction=direct_messages&method=destroy&argument=$1 [L,QSA] -RewriteRule ^api/direct_messages/new(.*)$ index.php?action=api&apiaction=direct_messages&method=create$1 [L,QSA] -RewriteRule ^api/direct_messages(.*)$ index.php?action=api&apiaction=direct_messages&method=direct_messages$1 [L,QSA] -RewriteRule ^api/friendships/create/(.*)$ index.php?action=api&apiaction=friendships&method=create&argument=$1 [L,QSA] -RewriteRule ^api/friendships/destroy/(.*)$ index.php?action=api&apiaction=friendships&method=destroy&argument=$1 [L,QSA] -RewriteRule ^api/friendships/exists(.*)$ index.php?action=api&apiaction=friendships&method=exists$1 [L,QSA] -RewriteRule ^api/account/verify_credentials(.*)$ index.php?action=api&apiaction=account&method=verify_credentials$1 [L,QSA] -RewriteRule ^api/account/end_session$ index.php?action=api&apiaction=account&method=end_session$1 [L,QSA] -RewriteRule ^api/account/update_location(.*)$ index.php?action=api&apiaction=account&method=update_location$1 [L,QSA] -RewriteRule ^api/account/update_delivery_device(.*)$ index.php?action=api&apiaction=account&method=update_delivery_device$1 [L,QSA] -RewriteRule ^api/account/rate_limit_status(.*)$ index.php?action=api&apiaction=account&method=rate_limit_status$1 [L,QSA] -RewriteRule ^api/favorites/create/(.*)$ index.php?action=api&apiaction=favorites&method=create&argument=$1 [L,QSA] -RewriteRule ^api/favorites/destroy/(.*)$ index.php?action=api&apiaction=favorites&method=destroy&argument=$1 [L,QSA] -RewriteRule ^api/favorites/(.*)$ index.php?action=api&apiaction=favorites&method=favorites&argument=$1 [L,QSA] -RewriteRule ^api/favorites(.*)$ index.php?action=api&apiaction=favorites&method=favorites$1 [L,QSA] -RewriteRule ^api/notifications/follow/(.*)$ index.php?action=api&apiaction=notifications&method=follow&argument=$1 [L,QSA] -RewriteRule ^api/notifications/leave/(.*)$ index.php?action=api&apiaction=notifications&method=leave&argument=$1 [L,QSA] -RewriteRule ^api/blocks/create/(.*)$ index.php?action=api&apiaction=blocks&method=create&argument=$1 [L,QSA] -RewriteRule ^api/blocks/destroy/(.*)$ index.php?action=api&apiaction=blocks&method=destroy&argument=$1 [L,QSA] -RewriteRule ^api/help/(.*)$ index.php?action=api&apiaction=help&method=$1 [L,QSA] -RewriteRule ^api/laconica/version(.*)$ index.php?action=api&apiaction=laconica&method=version$1 [L,QSA] -RewriteRule ^api/laconica/config(.*)$ index.php?action=api&apiaction=laconica&method=config$1 [L,QSA] -RewriteRule ^api/laconica/wadl\.xml$ index.php?action=api&apiaction=laconica&method=wadl.xml [L,QSA] - - - Order allow,deny - - diff --git a/_darcs/pristine/index.php b/_darcs/pristine/index.php deleted file mode 100644 index 3cecb5c8b6..0000000000 --- a/_darcs/pristine/index.php +++ /dev/null @@ -1,74 +0,0 @@ -. - */ - -define('INSTALLDIR', dirname(__FILE__)); -define('LACONICA', true); - -require_once INSTALLDIR . '/lib/common.php'; - -// get and cache current user - -$user = common_current_user(); - -// initialize language env - -common_init_language(); - -$action = $_REQUEST['action']; - -if (!$action || !preg_match('/^[a-zA-Z0-9_-]*$/', $action)) { - common_redirect(common_local_url('public')); -} - -// If the site is private, and they're not on one of the "public" -// parts of the site, redirect to login - -if (!$user && common_config('site', 'private') && - !in_array($action, array('login', 'openidlogin', 'finishopenidlogin', - 'recoverpassword', 'api', 'doc', 'register'))) { - common_redirect(common_local_url('login')); -} - -$actionfile = INSTALLDIR."/actions/$action.php"; - -if (file_exists($actionfile)) { - - include_once $actionfile; - - $action_class = ucfirst($action).'Action'; - - $action_obj = new $action_class(); - - if ($config['db']['mirror'] && $action_obj->is_readonly()) { - if (is_array($config['db']['mirror'])) { - // "load balancing", ha ha - $k = array_rand($config['db']['mirror']); - - $mirror = $config['db']['mirror'][$k]; - } else { - $mirror = $config['db']['mirror']; - } - $config['db']['database'] = $mirror; - } - if (call_user_func(array($action_obj, 'prepare'), $_REQUEST)) { - call_user_func(array($action_obj, 'handle'), $_REQUEST); - } -} else { - common_user_error(_('Unknown action')); -} \ No newline at end of file diff --git a/_darcs/pristine/js/identica-badge.js b/_darcs/pristine/js/identica-badge.js deleted file mode 100644 index 5c586b5d6a..0000000000 --- a/_darcs/pristine/js/identica-badge.js +++ /dev/null @@ -1,293 +0,0 @@ -// identica badge -- updated to work with the native API, 12-4-2008 -// copyright Kent Brewster 2008 -// see http://kentbrewster.com/identica-badge for info -( function() { - var trueName = ''; - for (var i = 0; i < 16; i++) { - trueName += String.fromCharCode(Math.floor(Math.random() * 26) + 97); - } - window[trueName] = {}; - var $ = window[trueName]; - $.f = function() { - return { - runFunction : [], - init : function(target) { - var theScripts = document.getElementsByTagName('SCRIPT'); - for (var i = 0; i < theScripts.length; i++) { - if (theScripts[i].src.match(target)) { - $.a = {}; - if (theScripts[i].innerHTML) { - $.a = $.f.parseJson(theScripts[i].innerHTML); - } - if ($.a.err) { - alert('bad json!'); - } - $.f.loadDefaults(); - $.f.buildStructure(); - $.f.buildPresentation(); - theScripts[i].parentNode.insertBefore($.s, theScripts[i]); - theScripts[i].parentNode.removeChild(theScripts[i]); - break; - } - } - }, - parseJson : function(json) { - this.parseJson.data = json; - if ( typeof json !== 'string') { - return {"err":"trying to parse a non-string JSON object"}; - } - try { - var f = Function(['var document,top,self,window,parent,Number,Date,Object,Function,', - 'Array,String,Math,RegExp,Image,ActiveXObject;', - 'return (' , json.replace(/<\!--.+-->/gim,'').replace(/\bfunction\b/g,'function­') , ');'].join('')); - return f(); - } catch (e) { - return {"err":"trouble parsing JSON object"}; - } - }, - loadDefaults : function() { - $.d = { - "user":"7000", - "headerText" : "", - "height" : 350, - "width" : 300, - "background" : "#193441", - "border" : "1px solid black", - "userFontSize" : "inherit", - "userColor" : "inherit", - "headerBackground" : "transparent", - "headerColor" : "white", - "evenBackground" : "#fff", - "oddBackground" : "#eee", - "thumbnailBorder" : "1px solid black", - "thumbnailSize" : 24, - "padding" : 3, - "server" : "identi.ca" - }; - for (var k in $.d) { if ($.a[k] === undefined) { $.a[k] = $.d[k]; } } - }, - buildPresentation : function () { - var ns = document.createElement('style'); - document.getElementsByTagName('head')[0].appendChild(ns); - if (!window.createPopup) { - ns.appendChild(document.createTextNode('')); - ns.setAttribute("type", "text/css"); - } - var s = document.styleSheets[document.styleSheets.length - 1]; - var rules = { - "" : "{zoom:1;margin:0;padding:0;width:" + $.a.width + "px;background:" + $.a.background + ";border:" + $.a.border + ";font:13px/1.2em tahoma, veranda, arial, helvetica, clean, sans-serif;*font-size:small;*font:x-small;}", - "a" : "{cursor:pointer;text-decoration:none;}", - "a:hover" : "{text-decoration:underline;}", - "cite" : "{font-weight:bold;margin:0 0 0 4px;padding:0;display:block;font-style:normal;line-height:" + ($.a.thumbnailSize/2) + "px;}", - "cite a" : "{color:#C15D42;}", - "date":"{font-size:87%;margin:0 0 0 4px;padding:0;display:block;font-style:normal;line-height:" + ($.a.thumbnailSize/2) + "px;}", - "date:after" : "{clear:both; content:\".\"; display:block; height:0; visibility:hidden; }", - "date a" : "{color:#676;}", - "h3" : "{margin:0;padding:" + $.a.padding + "px;font-weight:bold;background:" + $.a.headerBackground + " url('http://" + $.a.server + "/favicon.ico') " + $.a.padding + "px 50% no-repeat;text-indent:" + ($.a.padding + 16) + "px;}", - "h3.loading" : "{background-image:url('http://l.yimg.com/us.yimg.com/i/us/my/mw/anim_loading_sm.gif');}", - "h3 a" : "{font-size:92%; color:" + $.a.headerColor + ";}", - "h4" : "{font-weight:normal; background:" + $.a.headerBackground + ";text-align:right;margin:0;padding:" + $.a.padding + "px;}", - "h4 a" : "{font-size:92%; color:" + $.a.headerColor + ";}", - "img":"{float:left; height:" + $.a.thumbnailSize + "px;width:" + $.a.thumbnailSize + "px;border:" + $.a.thumbnailBorder + ";margin-right:" + $.a.padding + "px;}", - "p" : "{margin:0; padding:0;width:" + ($.a.width - 22) + "px;overflow:hidden;font-size:87%;}", - "p a" : "{color:#C15D42;}", - "ul":"{margin:0; padding:0; height:" + $.a.height + "px;width:" + $.a.width + "px;overflow:auto;}", - "ul li":"{background:" + $.a.evenBackground + ";margin:0;padding:" + $.a.padding + "px;list-style:none;width:" + ($.a.width - 22) + "px;overflow:hidden;border-bottom:1px solid #D8E2D7;}", - "ul li:hover":"{background:#f3f8ea;}" - }; - var ieRules = ""; - // brute-force each and every style rule here to !important - // sometimes you have to take off and nuke the site from orbit; it's the only way to be sure - for (var z in rules) { - var selector = '.' + trueName + ' ' + z; - var rule = rules[z]; - if (typeof rule === 'string') { - var important = rule.replace(/;/gi, '!important;'); - if (!window.createPopup) { - var theRule = document.createTextNode(selector + important); - ns.appendChild(theRule); - } else { - ieRules += selector + important; - } - } - } - if (window.createPopup) { s.cssText = ieRules; } - }, - buildStructure : function() { - $.s = document.createElement('DIV'); - $.s.className = trueName; - $.s.h = document.createElement('H3'); - $.s.h.a = document.createElement('A'); - $.s.h.a.target = '_laconica'; - $.s.h.appendChild($.s.h.a); - $.s.appendChild($.s.h); - $.s.r = document.createElement('UL'); - $.s.appendChild($.s.r); - $.s.f = document.createElement('H4'); - var a = document.createElement('A'); - a.innerHTML = 'get this'; - a.target = '_blank'; - a.href = 'http://kentbrewster.com/identica-badge'; - $.s.f.appendChild(a); - $.s.appendChild($.s.f); - $.f.getUser(); - }, - getUser : function() { - if (!$.f.runFunction) { $.f.runFunction = []; } - var n = $.f.runFunction.length; - var id = trueName + '.f.runFunction[' + n + ']'; - $.f.runFunction[n] = function(r) { - delete($.f.runFunction[n]); - var a = document.createElement('A'); - a.rel = $.a.user; - a.rev = r.name; - a.id = r.screen_name; - $.f.removeScript(id); - $.f.changeUserTo(a); - }; - var url = 'http://' + $.a.server + '/api/users/show/' + $.a.user + '.json?callback=' + id; - $.f.runScript(url, id); - }, - changeUserTo : function(el) { - $.a.user = el.rel; - $.s.h.a.innerHTML = el.rev + $.a.headerText; - $.s.h.a.href = 'http://' + $.a.server + '/' + el.id; - $.f.runSearch(); - }, - runSearch : function() { - $.s.h.className = 'loading'; - $.s.r.innerHTML = ''; - if (!$.f.runFunction) { $.f.runFunction = []; } - var n = $.f.runFunction.length; - var id = trueName + '.f.runFunction[' + n + ']'; - $.f.runFunction[n] = function(r) { - delete($.f.runFunction[n]); - $.f.removeScript(id); - $.f.renderResult(r); - }; - var url = 'http://' + $.a.server + '/api/statuses/friends/' + $.a.user + '.json?callback=' + id; - $.f.runScript(url, id); - }, - renderResult: function(r) { - for (var i = 0; i < r.length; i++) { - if (!r[i].status) { - r.splice(i, 1); - } else { - r[i].status_id = parseInt(r[i].status.id); - } - } - r = $.f.sortArray(r, "status_id", true); - $.s.h.className = ''; - for (var i = 0; i < r.length; i++) { - var li = document.createElement('LI'); - var icon = document.createElement('A'); - if (r[i] && r[i].url) { - icon.href = r[i].url; - icon.target = '_laconica'; - icon.title = 'Visit ' + r[i].screen_name + ' at ' + r[i].url; - } else { - icon.href = 'http://' + $.a.server + '/' + r[i].screen_name; - icon.target = '_laconica'; - icon.title = 'Visit ' + r[i].screen_name + ' at http://' + $.a.server + '/' + r[i].screen_name; - } - - var img = document.createElement('IMG'); - img.src = r[i].profile_image_url; - icon.appendChild(img); - li.appendChild(icon); - - var user = document.createElement('CITE'); - var a = document.createElement('A'); - a.rel = r[i].id; - a.rev = r[i].name; - a.id = r[i].screen_name; - a.innerHTML = r[i].name; - a.href = 'http://' + $.a.server + '/' + r[i].screen_name; - a.onclick = function() { - $.f.changeUserTo(this); - return false; - }; - user.appendChild(a); - li.appendChild(user); - var updated = document.createElement('DATE'); - if (r[i].status && r[i].status.created_at) { - var date_link = document.createElement('A'); - date_link.innerHTML = r[i].status.created_at.split(/\+/)[0]; - date_link.href = 'http://' + $.a.server + '/notice/' + r[i].status.id; - date_link.target = '_laconica'; - updated.appendChild(date_link); - if (r[i].status.in_reply_to_status_id) { - updated.appendChild(document.createTextNode(' in reply to ')); - var in_reply_to = document.createElement('A'); - in_reply_to.innerHTML = r[i].status.in_reply_to_status_id; - in_reply_to.href = 'http://' + $.a.server + '/notice/' + r[i].status.in_reply_to_status_id; - in_reply_to.target = '_laconica'; - updated.appendChild(in_reply_to); - } - } else { - updated.innerHTML = 'has not updated yet'; - } - li.appendChild(updated); - var p = document.createElement('P'); - if (r[i].status && r[i].status.text) { - var raw = r[i].status.text; - var cooked = raw; - cooked = cooked.replace(/http:\/\/([^ ]+)/g, "http://$1"); - cooked = cooked.replace(/@([\w*]+)/g, '@$1'); - cooked = cooked.replace(/#([\w*]+)/g, '#$1'); - p.innerHTML = cooked; - } - li.appendChild(p); - var a = p.getElementsByTagName('A'); - for (var j = 0; j < a.length; j++) { - if (a[j].className == 'changeUserTo') { - a[j].className = ''; - a[j].href = 'http://' + $.a.server + '/' + a[j].innerHTML; - a[j].rel = a[j].innerHTML; - a[j].onclick = function() { - $.f.changeUserTo(this); - return false; - } - } - } - $.s.r.appendChild(li); - } - }, - sortArray : function(r, k, x) { - if (window.createPopup) { - return r; - } - function s(a, b) { - if (x === true) { - return b[k] - a[k]; - } else { - return a[k] - b[k]; - } - } - r = r.sort(s); - return r; - }, - runScript : function(url, id) { - var s = document.createElement('script'); - s.id = id; - s.type ='text/javascript'; - s.src = url; - document.getElementsByTagName('body')[0].appendChild(s); - }, - removeScript : function(id) { - if (document.getElementById(id)) { - var s = document.getElementById(id); - s.parentNode.removeChild(s); - } - } - }; - }(); -// var thisScript = /^https?:\/\/[^\/]*r8ar.com\/identica-badge.js$/; - var thisScript = /identica-badge.js$/; - if(typeof window.addEventListener !== 'undefined') { - window.addEventListener('load', function() { $.f.init(thisScript); }, false); - } else if(typeof window.attachEvent !== 'undefined') { - window.attachEvent('onload', function() { $.f.init(thisScript); }); - } -} )(); - diff --git a/_darcs/pristine/js/jcrop/Jcrop.gif b/_darcs/pristine/js/jcrop/Jcrop.gif deleted file mode 100644 index 72ea7ccb53..0000000000 Binary files a/_darcs/pristine/js/jcrop/Jcrop.gif and /dev/null differ diff --git a/_darcs/pristine/js/jcrop/jquery.Jcrop.css b/_darcs/pristine/js/jcrop/jquery.Jcrop.css deleted file mode 100644 index b95178a726..0000000000 --- a/_darcs/pristine/js/jcrop/jquery.Jcrop.css +++ /dev/null @@ -1,45 +0,0 @@ -/* Fixes issue here http://code.google.com/p/jcrop/issues/detail?id=1 */ -.jcrop-holder -{ - text-align: left; -} - -.jcrop-vline, .jcrop-hline -{ - font-size: 0; - position: absolute; - background: white url('Jcrop.gif') top left repeat; - /* - opacity: .5; - *filter:alpha(opacity=50); - */ -} -.jcrop-vline { height: 100%; width: 1px !important; } -.jcrop-hline { width: 100%; height: 1px !important; } -.jcrop-handle { - font-size: 1px; - width: 7px !important; - height: 7px !important; - border: 1px #eee solid; - background-color: #333; - *width: 9px; - *height: 9px; -} - -.jcrop-tracker { - *background-color: gray; - width: 100%; height: 100%; -} - -.custom .jcrop-vline, -.custom .jcrop-hline -{ - background: yellow; -} -.custom .jcrop-handle -{ - border-color: black; - background-color: #C7BB00; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; -} diff --git a/_darcs/pristine/js/jcrop/jquery.Jcrop.go.js b/_darcs/pristine/js/jcrop/jquery.Jcrop.go.js deleted file mode 100644 index 7c5b5e4e66..0000000000 --- a/_darcs/pristine/js/jcrop/jquery.Jcrop.go.js +++ /dev/null @@ -1,41 +0,0 @@ - $(function(){ - jQuery("#avatar_original img.avatar").Jcrop({ onChange: showPreview, - setSelect: [ 0, 0, $("#avatar_original img.avatar").attr("width"), $("#avatar_original img.avatar").attr("height") ], - onSelect: updateCoords, - aspectRatio: 1, - boxWidth: 480, - boxHeight: 480, - bgColor: '#000', - bgOpacity: .4 - }); - }); - - function showPreview(coords) { - var rx = 96 / coords.w; - var ry = 96 / coords.h; - - var img_width = $("#avatar_original img.avatar").attr("width"); - var img_height = $("#avatar_original img.avatar").attr("height"); - - - $('#avatar_preview img.avatar').css({ - width: Math.round(rx *img_width) + 'px', - height: Math.round(ry * img_height) + 'px', - marginLeft: '-' + Math.round(rx * coords.x) + 'px', - marginTop: '-' + Math.round(ry * coords.y) + 'px' - }); - }; - - function updateCoords(c) { - $('#avatar_crop_x').val(c.x); - $('#avatar_crop_y').val(c.y); - $('#avatar_crop_w').val(c.w); - $('#avatar_crop_h').val(c.h); - }; - - function checkCoords() { - if (parseInt($('#avatar_crop_w').val())) return true; - alert('Please select a crop region then press submit.'); - return false; - }; - diff --git a/_darcs/pristine/js/jcrop/jquery.Jcrop.pack.js b/_darcs/pristine/js/jcrop/jquery.Jcrop.pack.js deleted file mode 100644 index aa82e8abec..0000000000 --- a/_darcs/pristine/js/jcrop/jquery.Jcrop.pack.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Jcrop v.0.9.5 (packed) - * (c) 2008 Kelly Hallman and DeepLiquid.com - * More information: http://deepliquid.com/content/Jcrop.html - * Released under MIT License - this header must remain with code - */ - -eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('$.1n=7(G,F){d G=G,F=F;g(1p(G)!==\'2d\')G=$(G)[0];g(1p(F)!==\'2d\')F={};g(!(\'2x\'1a F))F.2x=$.3d.3e?K:M;g(!(\'2c\'1a F))F.2c=$.3d.3e?K:M;d 4f={2x:K,3W:\'4C\',1f:4D,3T:\'4Y\',3x:.6,3O:.4,3P:.5,53:5,3N:9,3D:5,51:14,25:0,2c:M,3I:M,3B:M,30:M,3A:M,49:0,4p:0,4k:8,3V:20,3X:3,2f:K,3n:[0,0],2z:[0,0],2O:[0,0],2D:7(){},2G:7(){}};d j=4f;21(F);d $I=$(G).B({16:\'1b\'});47($I,j.49,j.4p);d S=$I.W(),L=$I.U(),$12=$(\'<12 />\').W(S).U(L).1f(1L(\'4F\')).B({16:\'4H\',4B:j.3T});g(j.1f)$12.1f(j.1f);$I.54($12);d $34=$(\'\').3Y(\'2N\',$I.3Y(\'2N\')).B(\'16\',\'1b\').W(S).U(L);d $2C=$(\'<12 />\').W(1t(V)).U(1t(V)).B({1l:59,16:\'1b\',4o:\'4g\'}).1P($34);d $2g=$(\'<12 />\').W(1t(V)).U(1t(V)).B({1l:5b});d $28=$(\'<12 />\').B({16:\'1b\',1l:55}).3U($I).1P($2C,$2g);d 23=j.4k;d $1S=$(\'<12 />\').1f(1L(\'3v\')).W(S+(23*2)).U(L+(23*2)).B({16:\'1b\',R:D(-23),P:D(-23),1l:3R,1z:0}).3q(48);d 1I,1Q;d 2u=2Q(G),1q,1B,3i,58,3h,1O;g(\'36\'1a j){1I=j.36[0]/S;1Q=j.36[1]/L}d E=7(){d A=0,u=0,q=0,m=0,Z,Y;7 1A(z){d z=2T(z);q=A=z[0];m=u=z[1]};7 1y(z){d z=2T(z);Z=z[0]-q;Y=z[1]-m;q=z[0];m=z[1]};7 3f(){k[Z,Y]};7 2b(2y){d Z=2y[0],Y=2y[1];g(0>A+Z)Z-=Z+A;g(0>u+Y)Y-=Y+u;g(LS){15=S;h=N.17((15-A)/1k);13=1Z<0?u-h:h+u}}1g{15=q;h=3c/1k;13=1Z<0?u-h:u+h;g(13<0){13=0;w=N.17((13-u)*1k);15=1V<0?A-w:w+A}1g g(13>L){13=L;w=N.17(13-u)*1k;15=1V<0?A-w:w+A}}k 4E=3g(1F(A,u,15,13))};7 2T(p){g(p[0]<0)p[0]=0;g(p[1]<0)p[1]=0;g(p[0]>S)p[0]=S;g(p[1]>L)p[1]=L;k[p[0],p[1]]};7 1F(A,u,q,m){d 2R=A,3r=q,3o=u,3l=m;g(q2q))q=(1U>0)?(A+2q):(A-2q);g(2n&&(N.17(22)>2n))m=(22>0)?(u+2n):(u-2n);g(2i&&(N.17(22)<2i))m=(22>0)?(u+2i):(u-2i);g(2m&&(N.17(1U)<2m))q=(1U>0)?(A+2m):(A-2m);g(A<0){q-=A;A-=A}g(u<0){m-=u;u-=u}g(q<0){A-=q;q-=q}g(m<0){u-=m;m-=m}g(q>S){d X=q-S;A-=X;q-=X}g(m>L){d X=m-L;u-=X;m-=X}g(A>S){d X=A-L;m-=X;u-=X}g(u>L){d X=u-L;m-=X;u-=X}k 3g(1F(A,u,q,m))};7 3g(a){k{x:a[0],y:a[1],q:a[2],m:a[3],w:a[2]-a[0],h:a[3]-a[1]}};k{1F:1F,1A:1A,1y:1y,3f:3f,2b:2b,2K:2K,Q:Q}}();d J=7(){d 4v,4z,4y,1R,2U=4x;d 2F={};d H={};d 2E=K;d 1i=j.3D;g(j.30){2F={R:1Y(\'3C\').B(\'R\',$.3d.3e?D(-1):D(0)),3Q:1Y(\'3C\'),P:1Y(\'3z\'),3L:1Y(\'3z\')}}g(j.3A){H.t=1W(\'n\');H.b=1W(\'s\');H.r=1W(\'e\');H.l=1W(\'w\')}j.3B&&2Y([\'n\',\'s\',\'e\',\'w\']);j.3I&&2Y([\'1M\',\'11\',\'1s\',\'2e\']);7 1Y(1u){d 1J=$(\'<12 />\').B({16:\'1b\',1z:j.3O}).1f(1L(1u));$2C.1P(1J);k 1J};7 2W(T,3y){d 1J=$(\'<12 />\').3q(3b(T)).B({3p:T+\'-2A\',16:\'1b\',1l:3y});$2g.1P(1J);k 1J};7 3J(T){k 2W(T,2U++).B({R:D(-1i+1),P:D(-1i+1),1z:j.3P}).1f(1L(\'H\'))};7 1W(T){d s=j.3N,o=1i,h=s,w=s,t=o,l=o;1E(T){C\'n\':C\'s\':w=1t(V);O;C\'e\':C\'w\':h=1t(V);O}k 2W(T,2U++).W(w).U(h).B({R:D(-t+1),P:D(-l+1)})};7 2Y(2J){4U(i 1a 2J)H[2J[i]]=3J(2J[i])};7 31(c){d 3a=N.1K((c.h/2)-1i),35=N.1K((c.w/2)-1i),4V=4W=-1i+1,2a=c.w-1i,1X=c.h-1i,x,y;\'e\'1a H&&H.e.B({R:D(3a),P:D(2a)})&&H.w.B({R:D(3a)})&&H.s.B({R:D(1X),P:D(35)})&&H.n.B({P:D(35)});\'1s\'1a H&&H.1s.B({P:D(2a)})&&H.2e.B({R:D(1X),P:D(2a)})&&H.1M.B({R:D(1X)});\'b\'1a H&&H.b.B({R:D(1X)})&&H.r.B({P:D(2a)})};7 3K(x,y){$34.B({R:D(-y),P:D(-x)});$28.B({R:D(y),P:D(x)})};7 2A(w,h){$28.W(w).U(h)};7 3s(){d p=E.Q();E.1A([p.x,p.y]);E.1y([p.q,p.m])};7 2I(){g(1R)k 1e()};7 1e(){d c=E.Q();2A(c.w,c.h);3K(c.x,c.y);j.30&&2F[\'3L\'].B({P:D(c.w-1)})&&2F[\'3Q\'].B({R:D(c.h-1)});2E&&31(c);1R||1w();j.2D(2H(c))};7 1w(){$28.1w();$I.B(\'1z\',j.3x);1R=M};7 1r(){1o();$28.1v();$I.B(\'1z\',1);1R=K};7 1v(){1r();$I.B(\'1z\',1);1R=K};7 2t(){2E=M;31(E.Q());$2g.1w()};7 1o(){2E=K;$2g.1v()};7 2o(v){(3h=v)?1o():2t()};7 1h(){d c=E.Q();2o(K);3s()};1o();$2C.1P($(\'<12 />\').1f(1L(\'3v\')).3q(3b(\'1N\')).B({3p:\'1N\',16:\'1b\',1l:4M,1z:0}));k{2I:2I,1e:1e,1r:1r,1w:1w,1v:1v,2t:2t,1o:1o,2o:2o,1h:1h}}();d 1j=7(){d 2w=7(){},2v=7(){},2L=j.2x;g(!2L){$1S.3k(2B).2S(26).4N(26)}7 4j(){g(2L){$(3t).3k(2B).2S(26)}$1S.B({1l:4G})}7 4i(){g(2L){$(3t).3H(\'3k\',2B).3H(\'2S\',26)}$1S.B({1l:3R})}7 2B(e){2w(2r(e))};7 26(e){e.2j();e.2k();g(1q){1q=K;2v(2r(e));j.2G(2H(E.Q()));4i();2w=7(){};2v=7(){}}k K};7 1G(1N,1h){1q=M;2w=1N;2v=1h;4j();k K};7 1x(t){$1S.B(\'3p\',t)};$I.4s($1S);k{1G:1G,1x:1x}}();d 33=7(){d $24=$(\'<4w 1u="4L" />\').B({16:\'1b\',P:\'-4O\'}).57(43).56(2f).5a(41),$3S=$(\'<12 />\').B({16:\'1b\',4o:\'4g\'}).1P($24);7 2l(){g(j.2c){$24.1w();$24.4Z()}};7 41(e){$24.1v()};7 2f(e){g(!j.2f)k;d 42=1O,1C;1O=e.4Q?M:K;g(42!=1O){g(1O&&1q){1C=E.Q();1B=1C.w/1C.h}1g 1B=0;J.1e()}e.2k();e.2j();k K};7 29(e,x,y){E.2b([x,y]);J.2I();e.2j();e.2k()};7 43(e){g(e.4T)k M;2f(e);d 2h=1O?10:1;1E(e.5d){C 37:29(e,-2h,0);O;C 39:29(e,2h,0);O;C 38:29(e,0,-2h);O;C 40:29(e,0,2h);O;C 27:J.1r();O;C 9:k M}k K};g(j.2c)$3S.3U($I);k{2l:2l}}();7 D(n){k\'\'+1m(n)+\'D\'};7 1t(n){k\'\'+1m(n)+\'%\'};7 1L(44){k j.3W+\'-\'+44};7 2Q(G){d z=$(G).2y();k[z.P,z.R]};7 2r(e){k[(e.4q-2u[0]),(e.4r-2u[1])]};7 46(1u){g(1u!=3i){1j.1x(1u);3i=1u}};7 4a(19,z){2u=2Q(G);1j.1x(19==\'1N\'?19:19+\'-2A\');g(19==\'1N\')k 1j.1G(4e(z),2P);d 1C=E.Q();E.1A(E.2K(4b(19)));1j.1G(45(19,1C),2P)};7 45(19,f){k 7(z){g(!j.25&&!1B)1E(19){C\'e\':z[1]=f.m;O;C\'w\':z[1]=f.m;O;C\'n\':z[0]=f.q;O;C\'s\':z[0]=f.q;O}1g 1E(19){C\'e\':z[1]=f.y+1;O;C\'w\':z[1]=f.y+1;O;C\'n\':z[0]=f.x+1;O;C\'s\':z[0]=f.x+1;O}E.1y(z);J.1e()}};7 4e(z){d 2M=z;33.2l();k 7(z){E.2b([z[0]-2M[0],z[1]-2M[1]]);2M=z;J.1e()}};7 4b(T){1E(T){C\'n\':k\'1M\';C\'s\':k\'11\';C\'e\':k\'11\';C\'w\':k\'1s\';C\'1s\':k\'1M\';C\'11\':k\'2e\';C\'2e\':k\'11\';C\'1M\':k\'1s\'}};7 3b(T){k 7(e){1q=M;4a(T,2r(e));e.2k();e.2j();k K}};7 47($G,w,h){d 11=$G.W(),1H=$G.U();g((11>w)&&w>0){11=w;1H=(w/$G.W())*$G.U()}g((1H>h)&&h>0){1H=h;11=(h/$G.U())*$G.W()}1I=$G.W()/11;1Q=$G.U()/1H;$G.W(11).U(1H)};7 2H(c){k{x:1m(c.x*1I),y:1m(c.y*1Q),q:1m(c.q*1I),m:1m(c.m*1Q),w:1m(c.w*1I),h:1m(c.h*1Q)}};7 2P(z){d c=E.Q();g(c.w>j.3n[0]&&c.h>j.3n[1]){J.2t();J.1h()}1g{J.1r()}1j.1x(\'2X\')};7 48(e){1q=M;2u=2Q(G);J.1r();J.1o();46(\'2X\');E.1A(2r(e));1j.1G(4c,2P);33.2l();e.2k();e.2j();k K};7 4c(z){E.1y(z);J.1e()};7 2Z(a){d A=a[0],u=a[1],q=a[2],m=a[3];g(3h)k;d 2s=E.1F(A,u,q,m);d c=E.Q();d 18=2p=[c.x,c.y,c.q,c.m];d 3w=j.3V;d x=18[0];d y=18[1];d q=18[2];d m=18[3];d 3Z=2s[0]-2p[0];d 4m=2s[1]-2p[1];d 4n=2s[2]-2p[2];d 4l=2s[3]-2p[3];d 1c=0;d 4h=j.3X;J.2o(M);d 3u=7(){k 7(){1c+=(V-1c)/4h;18[0]=x+((1c/V)*3Z);18[1]=y+((1c/V)*4m);18[2]=q+((1c/V)*4n);18[3]=m+((1c/V)*4l);g(1c=4K.8)1c=V;1d(18)}}();7 32(){4I.4t(3u,3w)};32()};7 1d(l){E.1A([l[0],l[1]]);E.1y([l[2],l[3]]);J.1e()};7 21(F){g(1p(F)!=\'2d\')F={};j=$.4X(j,F);g(1p(j.2D)!==\'7\')j.2D=7(){};g(1p(j.2G)!==\'7\')j.2G=7(){}};7 3m(){k 2H(E.Q())};7 2V(){k E.Q()};7 3E(F){21(F);g(\'1d\'1a F){1d(F.1d);J.1h()}};g(1p(F)!=\'2d\')F={};g(\'1d\'1a F){1d(F.1d);J.1h()}d 2q=j.2z[0]||0;d 2n=j.2z[1]||0;d 2m=j.2O[0]||0;d 2i=j.2O[1]||0;1j.1x(\'2X\');k{2Z:2Z,1d:1d,21:3E,3m:3m,2V:2V}};$.5e.1n=7(j){7 3G(1D){d 4d=j.4R||1D.2N;d I=4P 4S();d 1D=1D;I.50=7(){$(1D).1v().4A(I);1D.1n=$.1n(I,j)};I.2N=4d};g(1p(j)!==\'2d\')j={};1T.4J(7(){g(\'1n\'1a 1T){g(j==\'52\')k 1T.1n;1g 1T.1n.21(j)}1g 3G(1T)});k 1T};',62,325,'|||||||function||||||var|||if|||options|return||y2||||x2||||y1|||||pos|x1|css|case|px|Coords|opt|obj|handle|img|Selection|false|boundy|true|Math|break|left|getFixed|top|boundx|ord|height|100|width|delta|oy|ox||nw|div|yy||xx|position|abs|animat|mode|in|absolute|pcent|setSelect|update|addClass|else|done|hhs|Tracker|aspect|zIndex|parseInt|Jcrop|disableHandles|typeof|btndown|release|ne|pct|type|hide|show|setCursor|setCurrent|opacity|setPressed|aspectLock|fc|from|switch|flipCoords|activateHandlers|nh|xscale|jq|round|cssClass|sw|move|shift_down|append|yscale|awake|trk|this|xsize|rw|insertDragbar|south|insertBorder|rh||setOptions|ysize|bound|keymgr|aspectRatio|trackUp||sel|doNudge|east|moveOffset|keySupport|object|se|watchShift|hdl_holder|nudge|ymin|preventDefault|stopPropagation|watchKeys|xmin|ylimit|animMode|initcr|xlimit|mouseAbs|animto|enableHandles|docOffset|onDone|onMove|trackDocument|offset|maxSize|resize|trackMove|img_holder|onChange|seehandles|borders|onSelect|unscale|updateVisible|li|getCorner|trackDoc|lloc|src|minSize|doneSelect|getPos|xa|mouseup|rebound|hdep|tellScaled|dragDiv|crosshair|createHandles|animateTo|drawBorders|moveHandles|animateStart|KeyManager|img2|midhoriz|trueSize||||midvert|createDragger|rwa|browser|msie|getOffset|makeObj|animating|lastcurs|rha|mousemove|yb|tellSelect|minSelect|ya|cursor|mousedown|xb|refresh|document|animator|tracker|interv|bgOpacity|zi|vline|dragEdges|sideHandles|hline|handleOffset|setOptionsNew|getRect|attachWhenDone|unbind|cornerHandles|insertHandle|moveto|right|real_ratio|handleSize|borderOpacity|handleOpacity|bottom|290|keywrap|bgColor|insertBefore|animationDelay|baseClass|swingSpeed|attr|ix1||onBlur|init_shift|parseKey|cl|dragmodeHandler|myCursor|presize|newSelection|boxWidth|startDragMode|oppLockCorner|selectDrag|loadsrc|createMover|defaults|hidden|velocity|toBack|toFront|boundary|iy2|iy1|ix2|overflow|boxHeight|pageX|pageY|before|setTimeout|max|start|input|370|dragmode|end|after|backgroundColor|jcrop|null|last|holder|450|relative|window|each|99|radio|360|mouseout|30px|new|shiftKey|useImg|Image|ctrlKey|for|north|west|extend|black|focus|onload|edgeMargin|api|handlePad|wrap|300|keyup|keydown|dimmed|310|blur|320|min|keyCode|fn'.split('|'),0,{})) diff --git a/_darcs/pristine/js/jquery.form.js b/_darcs/pristine/js/jquery.form.js deleted file mode 100644 index cb8b5a6609..0000000000 --- a/_darcs/pristine/js/jquery.form.js +++ /dev/null @@ -1,632 +0,0 @@ -/* - * jQuery Form Plugin - * version: 2.17 (06-NOV-2008) - * @requires jQuery v1.2.2 or later - * - * Examples and documentation at: http://malsup.com/jquery/form/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - * Revision: $Id$ - */ -;(function($) { - -/* - Usage Note: - ----------- - Do not use both ajaxSubmit and ajaxForm on the same form. These - functions are intended to be exclusive. Use ajaxSubmit if you want - to bind your own submit handler to the form. For example, - - $(document).ready(function() { - $('#myForm').bind('submit', function() { - $(this).ajaxSubmit({ - target: '#output' - }); - return false; // <-- important! - }); - }); - - Use ajaxForm when you want the plugin to manage all the event binding - for you. For example, - - $(document).ready(function() { - $('#myForm').ajaxForm({ - target: '#output' - }); - }); - - When using ajaxForm, the ajaxSubmit function will be invoked for you - at the appropriate time. -*/ - -/** - * ajaxSubmit() provides a mechanism for immediately submitting - * an HTML form using AJAX. - */ -$.fn.ajaxSubmit = function(options) { - // fast fail if nothing selected (http://dev.jquery.com/ticket/2752) - if (!this.length) { - log('ajaxSubmit: skipping submit process - no element selected'); - return this; - } - - if (typeof options == 'function') - options = { success: options }; - - options = $.extend({ - url: this.attr('action') || window.location.toString(), - type: this.attr('method') || 'GET' - }, options || {}); - - // hook for manipulating the form data before it is extracted; - // convenient for use with rich editors like tinyMCE or FCKEditor - var veto = {}; - this.trigger('form-pre-serialize', [this, options, veto]); - if (veto.veto) { - log('ajaxSubmit: submit vetoed via form-pre-serialize trigger'); - return this; - } - - // provide opportunity to alter form data before it is serialized - if (options.beforeSerialize && options.beforeSerialize(this, options) === false) { - log('ajaxSubmit: submit aborted via beforeSerialize callback'); - return this; - } - - var a = this.formToArray(options.semantic); - if (options.data) { - options.extraData = options.data; - for (var n in options.data) { - if(options.data[n] instanceof Array) { - for (var k in options.data[n]) - a.push( { name: n, value: options.data[n][k] } ) - } - else - a.push( { name: n, value: options.data[n] } ); - } - } - - // give pre-submit callback an opportunity to abort the submit - if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) { - log('ajaxSubmit: submit aborted via beforeSubmit callback'); - return this; - } - - // fire vetoable 'validate' event - this.trigger('form-submit-validate', [a, this, options, veto]); - if (veto.veto) { - log('ajaxSubmit: submit vetoed via form-submit-validate trigger'); - return this; - } - - var q = $.param(a); - - if (options.type.toUpperCase() == 'GET') { - options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; - options.data = null; // data is null for 'get' - } - else - options.data = q; // data is the query string for 'post' - - var $form = this, callbacks = []; - if (options.resetForm) callbacks.push(function() { $form.resetForm(); }); - if (options.clearForm) callbacks.push(function() { $form.clearForm(); }); - - // perform a load on the target only if dataType is not provided - if (!options.dataType && options.target) { - var oldSuccess = options.success || function(){}; - callbacks.push(function(data) { - $(options.target).html(data).each(oldSuccess, arguments); - }); - } - else if (options.success) - callbacks.push(options.success); - - options.success = function(data, status) { - for (var i=0, max=callbacks.length; i < max; i++) - callbacks[i].apply(options, [data, status, $form]); - }; - - // are there files to upload? - var files = $('input:file', this).fieldValue(); - var found = false; - for (var j=0; j < files.length; j++) - if (files[j]) - found = true; - - // options.iframe allows user to force iframe mode - if (options.iframe || found) { - // hack to fix Safari hang (thanks to Tim Molendijk for this) - // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d - if ($.browser.safari && options.closeKeepAlive) - $.get(options.closeKeepAlive, fileUpload); - else - fileUpload(); - } - else - $.ajax(options); - - // fire 'notify' event - this.trigger('form-submit-notify', [this, options]); - return this; - - - // private function for handling file uploads (hat tip to YAHOO!) - function fileUpload() { - var form = $form[0]; - - if ($(':input[@name=submit]', form).length) { - alert('Error: Form elements must not be named "submit".'); - return; - } - - var opts = $.extend({}, $.ajaxSettings, options); - var s = jQuery.extend(true, {}, $.extend(true, {}, $.ajaxSettings), opts); - - var id = 'jqFormIO' + (new Date().getTime()); - var $io = $('