This commit is contained in:
GRiker 2011-04-30 12:27:37 -06:00
commit 24422cf79d
79 changed files with 49945 additions and 44170 deletions

View File

@ -19,6 +19,27 @@
# new recipes:
# - title:
- version: 0.7.59
date: 2011-04-30
bug fixes:
- title: "Fixes a bug in 0.7.58 that caused too small fonts when converting to MOBI for the Kindle. Apologies."
- title: "Apple driver: Handle invalid EPUBs that do not contain an OPF file"
new recipes:
- title: The Big Picture and Auto industry news
author: welovelucy
- title: Gazeta Prawna
author: Vroo
- title: Various Czech news sources
author: Tomas Latal
- title: Diario de Ibiza
author: Joan Tur
- version: 0.7.58
date: 2011-04-29

16
recipes/auto_blog.recipe Normal file
View File

@ -0,0 +1,16 @@
from calibre.web.feeds.news import BasicNewsRecipe
class AutoBlog(BasicNewsRecipe):
title = u'Auto Blog'
__author__ = 'Welovelucy'
language = 'en'
description = 'Auto industry news'
oldest_article = 7
max_articles_per_feed = 100
feeds = [(u'AutoBlog', u'http://www.autoblog.com/rss.xml')]
def print_version(self, url):
return url + 'print/'

View File

@ -0,0 +1,12 @@
from calibre.web.feeds.news import BasicNewsRecipe
class BigPicture(BasicNewsRecipe):
title = u'The Big Picture'
__author__ = 'Welovelucy'
description = ('Macro perspective on capital markets, economy, technology'
' and digital media')
language = 'en'
oldest_article = 7
max_articles_per_feed = 100
feeds = [(u'Big Picture', u'http://feeds.feedburner.com/TheBigPicture')]

37
recipes/digizone.recipe Normal file
View File

@ -0,0 +1,37 @@
__license__ = 'GPL v3'
__copyright__ = '2011, Tomas Latal<latal.tomas at gmail.com>'
from calibre.web.feeds.news import BasicNewsRecipe
class DigiZoneCZ(BasicNewsRecipe):
title = 'DigiZone'
__author__ = 'Tomas Latal'
__version__ = '1.0'
__date__ = '30 April 2011'
description = u'Aktuality a \u010dl\xe1nky z DigiZone.cz'
oldest_article = 1
max_articles_per_feed = 10
encoding = 'iso-8859-2'
publisher = 'Internet Info s.r.o.'
category = 'digitalni vysilani, televize, CZ'
language = 'cs'
publication_type = 'newsportal'
no_stylesheets = True
remove_javascript = True
extra_css = 'p.perex{font-size: 1.2em; margin: 0 0 10px 0;line-height: 1.4;padding: 0 0 10px 0;font-weight: bold;} \
p.perex img {display:none;} \
.urs p {margin: 0 0 0.8em 0;}'
feeds = [
(u'Aktuality', u'http://rss.digizone.cz/aktuality'),
(u'\u010cl\xe1nky', u'http://rss.digizone.cz/clanky')
]
remove_tags_before = dict(id=['p-article','p-actuality'])
remove_tags_after = dict(id=['p-article','p-actuality'])
remove_tags = [
dict(attrs={'class':['path','mth','lbtr','serial','enquiry','links','dp-n','side','op-ab','op-view','op-sub','op-list',]}),
dict(id=['opinions','discussionList','similarItems','sidebar','footer','opl','promo-box'])
]

View File

@ -1,5 +1,5 @@
__license__ = 'GPL v3'
__copyright__ = '2010, Darko Miletic <darko.miletic at gmail.com>'
__copyright__ = '2010-2011, Darko Miletic <darko.miletic at gmail.com>'
'''
foxnews.com
'''
@ -23,6 +23,7 @@ class FoxNews(BasicNewsRecipe):
extra_css = """
body{font-family: Arial,sans-serif }
.caption{font-size: x-small}
.author,.dateline{font-size: small}
"""
conversion_options = {
@ -34,12 +35,12 @@ class FoxNews(BasicNewsRecipe):
remove_attributes = ['xmlns','lang']
remove_tags = [
dict(name=['object','embed','link','script','iframe','meta','base'])
,dict(attrs={'class':['user-control','url-description','ad-context']})
remove_tags=[
dict(attrs={'class':['user-control','logo','ad-300x250','url-description']})
,dict(name=['meta','base','link','iframe','object','embed'])
]
remove_tags_before=dict(name='h1')
keep_only_tags=[dict(attrs={'id':'article-print'})]
remove_tags_after =dict(attrs={'class':'url-description'})
feeds = [
@ -55,3 +56,24 @@ class FoxNews(BasicNewsRecipe):
def print_version(self, url):
return url + 'print'
def preprocess_html(self, soup):
for item in soup.findAll(style=True):
del item['style']
for item in soup.findAll('a'):
limg = item.find('img')
if item.string is not None:
str = item.string
item.replaceWith(str)
else:
if limg:
item.name = 'div'
item.attrs = []
else:
str = self.tag_to_string(item)
item.replaceWith(str)
for item in soup.findAll('img'):
if not item.has_key('alt'):
item['alt'] = 'image'
return soup

View File

@ -0,0 +1,53 @@
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Vroo <vroobelek@iq.pl>'
__author__ = u'Vroo'
'''
gazetaprawna.pl
'''
from calibre.web.feeds.news import BasicNewsRecipe
class gazetaprawna(BasicNewsRecipe):
version = 1
title = u'Gazeta Prawna'
__author__ = u'Vroo'
publisher = u'Infor Biznes'
oldest_article = 7
max_articles_per_feed = 20
no_stylesheets = True
remove_javascript = True
description = 'Polski dziennik gospodarczy'
language = 'pl'
encoding = 'utf-8'
remove_tags_after = [
dict(name='div', attrs={'class':['data-art']})
]
remove_tags = [
dict(name='div', attrs={'class':['dodatki_artykulu','data-art']})
]
feeds = [
(u'Wiadomo\u015bci - najwa\u017cniejsze', u'http://www.gazetaprawna.pl/wiadomosci/najwazniejsze/rss.xml'),
(u'Biznes i prawo gospodarcze', u'http://biznes.gazetaprawna.pl/rss.xml'),
(u'Prawo i wymiar sprawiedliwo\u015bci', u'http://prawo.gazetaprawna.pl/rss.xml'),
(u'Praca i ubezpieczenia', u'http://praca.gazetaprawna.pl/rss.xml'),
(u'Podatki i rachunkowo\u015b\u0107', u'http://podatki.gazetaprawna.pl/rss.xml')
]
def print_version(self, url):
url = url.replace('wiadomosci/artykuly', 'drukowanie')
url = url.replace('artykuly', 'drukowanie')
url = url.replace('porady', 'drukowanie')
url = url.replace('wywiady', 'drukowanie')
url = url.replace('orzeczenia', 'drukowanie')
url = url.replace('galeria', 'drukowanie')
url = url.replace('komentarze', 'drukowanie')
url = url.replace('biznes.gazetaprawna', 'www.gazetaprawna')
url = url.replace('podatki.gazetaprawna', 'www.gazetaprawna')
url = url.replace('prawo.gazetaprawna', 'www.gazetaprawna')
url = url.replace('praca.gazetaprawna', 'www.gazetaprawna')
return url

View File

@ -16,7 +16,7 @@ class Jezebel(BasicNewsRecipe):
max_articles_per_feed = 100
no_stylesheets = True
encoding = 'utf-8'
use_embedded_content = False
use_embedded_content = True
language = 'en'
masthead_url = 'http://cache.gawkerassets.com/assets/jezebel.com/img/logo.png'
extra_css = '''
@ -32,13 +32,12 @@ class Jezebel(BasicNewsRecipe):
, 'language' : language
}
remove_attributes = ['width','height']
keep_only_tags = [dict(attrs={'class':'content permalink'})]
remove_tags_before = dict(name='h1')
remove_tags = [dict(attrs={'class':'contactinfo'})]
remove_tags_after = dict(attrs={'class':'contactinfo'})
feeds = [(u'Articles', u'http://feeds.gawker.com/jezebel/vip?format=xml')]
remove_tags = [
{'class': 'feedflare'},
]
feeds = [(u'Articles', u'http://feeds.gawker.com/jezebel/full')]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -16,7 +16,7 @@ class Kotaku(BasicNewsRecipe):
max_articles_per_feed = 100
no_stylesheets = True
encoding = 'utf-8'
use_embedded_content = False
use_embedded_content = True
language = 'en'
masthead_url = 'http://cache.gawkerassets.com/assets/kotaku.com/img/logo.png'
extra_css = '''
@ -31,13 +31,12 @@ class Kotaku(BasicNewsRecipe):
, 'language' : language
}
remove_attributes = ['width','height']
keep_only_tags = [dict(attrs={'class':'content permalink'})]
remove_tags_before = dict(name='h1')
remove_tags = [dict(attrs={'class':'contactinfo'})]
remove_tags_after = dict(attrs={'class':'contactinfo'})
feeds = [(u'Articles', u'http://feeds.gawker.com/kotaku/vip?format=xml')]
remove_tags = [
{'class': 'feedflare'},
]
feeds = [(u'Articles', u'http://feeds.gawker.com/kotaku/full')]
def preprocess_html(self, soup):
return self.adeify_images(soup)

37
recipes/lupa.recipe Normal file
View File

@ -0,0 +1,37 @@
__license__ = 'GPL v3'
__copyright__ = '2011, Tomas Latal<latal.tomas at gmail.com>'
from calibre.web.feeds.news import BasicNewsRecipe
class LupaCZ(BasicNewsRecipe):
title = 'Lupa'
__author__ = 'Tomas Latal'
__version__ = '1.0'
__date__ = '30 April 2011'
description = u'Zpr\xe1vi\u010dky a \u010dl\xe1nky z Lupa.cz'
oldest_article = 2
max_articles_per_feed = 10
encoding = 'utf8'
publisher = 'Internet Info s.r.o.'
category = 'IT,news,CZ'
language = 'cs'
publication_type = 'newsportal'
no_stylesheets = True
remove_javascript = True
extra_css = 'p.perex{font-size: 1.2em;margin: 0 0 10px 0;line-height: 1.4;padding: 0 0 10px 0;font-weight: bold;} \
p.perex img {display:none;} \
.urs p {margin: 0 0 0.8em 0;}'
feeds = [
(u'Zpr\xe1vi\u010dky', u'http://rss.lupa.cz/zpravicky'),
(u'\u010cl\xe1nky', u'http://rss.lupa.cz/clanky')
]
remove_tags_before = dict(id='main')
remove_tags_after = [dict(id='main')]
remove_tags = [
dict(attrs={'class':['author clear','tags-rubrics','box border style1 links clear','enquiry clear','serial','box border style1 TitleList','breadcrumb clear','article-discussion box border style1 monitoringComponentArticle','link-more border prev-next clear']}),
dict(id=['discussionList','similarItems','sidebar','footer','opl','promo-box'])
]

37
recipes/mesec.recipe Normal file
View File

@ -0,0 +1,37 @@
__license__ = 'GPL v3'
__copyright__ = '2011, Tomas Latal<latal.tomas at gmail.com>'
from calibre.web.feeds.news import BasicNewsRecipe
class MesecCZ(BasicNewsRecipe):
title = u'M\u011b\u0161ec'
__author__ = 'Tomas Latal'
__version__ = '1.0'
__date__ = '30 April 2011'
description = u'Zpr\xe1vi\u010dky a \u010dl\xe1nky z Mesec.cz'
oldest_article = 1
max_articles_per_feed = 10
encoding = 'utf8'
publisher = 'Internet Info s.r.o.'
category = 'finance,CZ'
language = 'cs'
publication_type = 'newsportal'
no_stylesheets = True
remove_javascript = True
extra_css = 'p.perex{font-size: 1.2em;margin: 0 0 10px 0;line-height: 1.4;padding: 0 0 10px 0;font-weight: bold;} \
p.perex img {display:none;} \
.urs p {margin: 0 0 0.8em 0;}'
feeds = [
(u'Aktuality', u'http://www.mesec.cz/rss/aktuality/'),
(u'\u010cl\xe1nky', u'http://www.mesec.cz/rss/clanky/')
]
remove_tags_before = dict(id='main')
remove_tags_after = [dict(id='main')]
remove_tags = [
dict(attrs={'class':['author clear','tags-rubrics','box border style1 links clear','enquiry clear','serial','box border style1 TitleList','breadcrumb clear','article-discussion box border style1 monitoringComponentArticle','link-more border prev-next clear']}),
dict(id=['discussionList','similarItems','sidebar','footer','opl','promo-box'])
]

View File

@ -6,8 +6,8 @@ from calibre.web.feeds.news import BasicNewsRecipe
class NovinkyCZ(BasicNewsRecipe):
title = 'Novinky'
__author__ = 'Tomas Latal'
__version__ = '1.0'
__date__ = '24 April 2011'
__version__ = '1.1'
__date__ = '30 April 2011'
description = 'News from server Novinky.cz'
oldest_article = 1
max_articles_per_feed = 10
@ -18,6 +18,7 @@ class NovinkyCZ(BasicNewsRecipe):
publication_type = 'newsportal'
no_stylesheets = True
remove_javascript = True
cover_url = 'http://img193.imageshack.us/img193/3039/novinkycover.jpg'
extra_css = 'p.acmDescription{font-style:italic;} p.acmAuthor{font-size:0.8em; color:#707070}'
feeds = [

37
recipes/podnikatel.recipe Normal file
View File

@ -0,0 +1,37 @@
__license__ = 'GPL v3'
__copyright__ = '2011, Tomas Latal<latal.tomas at gmail.com>'
from calibre.web.feeds.news import BasicNewsRecipe
class PodnikatelCZ(BasicNewsRecipe):
title = 'Podnikatel'
__author__ = 'Tomas Latal'
__version__ = '1.0'
__date__ = '30 April 2011'
description = u'Aktuality a \u010dl\xe1nky z Podnikatel.cz'
oldest_article = 1
max_articles_per_feed = 10
encoding = 'utf8'
publisher = 'Internet Info s.r.o.'
category = 'podnikani, bussiness, CZ'
language = 'cs'
publication_type = 'newsportal'
no_stylesheets = True
remove_javascript = True
extra_css = 'p.perex{font-size: 1.2em; margin: 0 0 10px 0;line-height: 1.4;padding: 0 0 10px 0;font-weight: bold;} \
p.perex img {display:none;} \
.urs p {margin: 0 0 0.8em 0;}'
feeds = [
(u'Aktuality', u'http://rss.podnikatel.cz/aktuality'),
(u'\u010cl\xe1nky', u'http://rss.podnikatel.cz/clanky')
]
remove_tags_before = dict(id='art-content')
remove_tags_after = [dict(id='art-content')]
remove_tags = [
dict(attrs={'class':['socialshare','box-blue','author clear','labels-terms','box diskuze','ad','page-nav right','infobox','box zpravy','s-clanky']}),
dict(id=['path','article-tools','discussionList','similarItems','promo-box'])
]

39
recipes/vitalia.recipe Normal file
View File

@ -0,0 +1,39 @@
__license__ = 'GPL v3'
__copyright__ = '2011, Tomas Latal<latal.tomas at gmail.com>'
from calibre.web.feeds.news import BasicNewsRecipe
class VitaliaCZ(BasicNewsRecipe):
title = 'Vitalia'
__author__ = 'Tomas Latal'
__version__ = '1.0'
__date__ = '30 April 2011'
description = u'Aktuality a \u010dl\xe1nky z Vitalia.cz'
oldest_article = 1
max_articles_per_feed = 10
encoding = 'utf8'
publisher = 'Internet Info s.r.o.'
category = 'zdravi, vztahy, wellness, CZ'
language = 'cs'
publication_type = 'newsportal'
no_stylesheets = True
remove_javascript = True
extra_css = 'p.perex{font-size: 1.2em; margin: 0 0 10px 0; line-height: 1.4; padding: 0 0 10px 0; font-weight: bold;} \
p.perex img {display:none;} \
span.author {font-size:0.8em; font-style:italic} \
.urs div.rs-tip-major {padding:0.5em; background: #e0e0e0 none repeat scroll 0 0;border: 1px solid #909090;} \
.urs p {margin: 0 0 0.8em 0;}'
feeds = [
(u'Aktuality', 'http://www.vitalia.cz/rss/aktuality/'),
(u'\u010cl\xe1nky', u'http://www.vitalia.cz/rss/clanky/'),
]
remove_tags_before = dict(id='main')
remove_tags_after = [dict(id='main')]
remove_tags = [
dict(attrs={'class':['author clear','tags-rubrics','box border style1 links clear','enquiry clear','serial','box border style1 TitleList','breadcrumb clear','article-discussion box border style1 monitoringComponentArticle','link-more border prev-next clear']}),
dict(id=['discussionList','similarItems','sidebar','footer','opl','promo-box'])
]

View File

@ -4,7 +4,7 @@ __license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
__docformat__ = 'restructuredtext en'
__appname__ = u'calibre'
numeric_version = (0, 7, 58)
numeric_version = (0, 7, 59)
__version__ = u'.'.join(map(unicode, numeric_version))
__author__ = u"Kovid Goyal <kovid@kovidgoyal.net>"

View File

@ -125,7 +125,19 @@ class Stylizer(object):
def __init__(self, tree, path, oeb, opts, profile=None,
extra_css='', user_css=''):
self.oeb, self.opts = oeb, opts
self.profile = opts.input_profile
self.profile = profile
if self.profile is None:
# Use the default profile. This should really be using
# opts.output_profile, but I don't want to risk changing it, as
# doing so might well have hard to debug font size effects.
from calibre.customize.ui import output_profiles
for x in output_profiles():
if x.short_name == 'default':
self.profile = x
break
if self.profile is None:
# Just in case the default profile is removed in the future :)
self.profile = opts.output_profile
self.logger = oeb.logger
item = oeb.manifest.hrefs[path]
basename = os.path.basename(path)

View File

@ -613,6 +613,7 @@ class EditMetadataAction(InterfaceAction):
self.applied_ids, cr)
if self.gui.cover_flow:
self.gui.cover_flow.dataChanged()
self.gui.tags_view.recount()
self.apply_id_map = []
self.apply_pd = None

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -4,9 +4,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: calibre 0.7.58\n"
"POT-Creation-Date: 2011-04-29 11:06+MDT\n"
"PO-Revision-Date: 2011-04-29 11:06+MDT\n"
"Project-Id-Version: calibre 0.7.59\n"
"POT-Creation-Date: 2011-04-30 09:20+MDT\n"
"PO-Revision-Date: 2011-04-30 09:20+MDT\n"
"Last-Translator: Automatically generated\n"
"Language-Team: LANGUAGE\n"
"MIME-Version: 1.0\n"
@ -811,57 +811,57 @@ msgstr ""
msgid "Enable to cache and display covers from iTunes/iBooks"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:176
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:178
msgid "Apple device"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:178
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:180
msgid "Communicate with iTunes/iBooks."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:190
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:192
msgid "Apple device detected, launching iTunes, please wait ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:192
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:194
msgid "Cannot copy books directly from iDevice. Drag from iTunes Library to desktop, then add to calibre's Library window."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:353
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:356
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:355
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:358
msgid "Updating device metadata listing..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:432
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:471
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1054
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1098
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3082
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3122
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:434
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:473
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1056
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1100
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3084
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3124
msgid "%d of %d"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:478
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1103
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3128
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:480
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1105
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3130
#: /home/kovid/work/calibre/src/calibre/gui2/ebook_download.py:106
msgid "finished"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:663
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:665
msgid ""
"Some books not found in iTunes database.\n"
"Delete using the iBooks app.\n"
"Click 'Show Details' for a list."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1014
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1016
msgid ""
"Some cover art could not be converted.\n"
"Click 'Show Details' for a list."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2664
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2666
#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:100
#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:447
#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:470
@ -877,7 +877,7 @@ msgstr ""
msgid "News"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2665
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2667
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:633
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2750
@ -885,7 +885,7 @@ msgstr ""
msgid "Catalog"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2986
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2988
msgid "Communicate with iTunes."
msgstr ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff