Add Example Buttons and Tweak Placeholders

This commit is contained in:
Leo Herzog committed 2020-11-13 14:22:20 -05:00
1 parent f3f9d8bab9
commit 4efac83d39
8 files changed
+201 -11

No files matched your search

+1 -1
View File
@@ -1,4 +1,4 @@
Copyright 2020 Leo Herzog
Copyright © 2020 Leo Herzog
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+1 -3
View File
@@ -29,7 +29,7 @@ This project wouldn't be possible without the fantastic work of:
The MIT License (MIT)
Copyright (c) 2020 Leo Herzog
Copyright © 2020 Leo Herzog
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
@@ -37,8 +37,6 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- - - -
## About Me
<a href="https://herzog.tech/" target="_blank">
+27 -1
View File
@@ -37884,6 +37884,10 @@ const mime = require('mime-types');
const WebTorrent = require('webtorrent');
const tippy = require('tippy.js').default;
var examples = document.getElementById('examples');
var example1 = document.getElementById('example1');
var example2 = document.getElementById('example2');
var example3 = document.getElementById('example3');
var properties = document.getElementById('properties');
var originalSourceIcon = document.getElementById('originalSourceIcon');
var source;
@@ -37973,6 +37977,26 @@ function start() {
});
});
example1.addEventListener('click', function(event) {
event.preventDefault();
notyf.success("Parsing Ubuntu 20.04 Magnet URL");
parse("magnet:?xt=urn:btih:9fc20b9e98ea98b4a35e6223041a5ef94ea27809&dn=ubuntu-20.04-desktop-amd64.iso&tr=https%3A%2F%2Ftorrent.ubuntu.com%2Fannounce&tr=https%3A%2F%2Fipv6.torrent.ubuntu.com%2Fannounce");
});
example2.addEventListener('click', async function(event) {
event.preventDefault();
notyf.success("Fetching and Parsing &ldquo;The WIRED CD&rdquo; Torrent File...");
parseRemote("https://webtorrent.io/torrents/wired-cd.torrent");
});
example3.addEventListener('click', async function(event) {
event.preventDefault();
notyf.success("Parsing Jack Johnson Archive.org Torrent File");
let response = await fetch("jj2008-06-14.mk4_archive.torrent");
let arrayBuffer = await response.arrayBuffer();
parse(Buffer.from(arrayBuffer));
});
let copyurl = new clipboard('#copyURL');
copyurl.on('success', function(e) {
notyf.success('Copied site URL to clipboard!');
@@ -38054,7 +38078,7 @@ function parse(toLoad) {
function parseRemote(toLoad) {
parser.remote(toLoad, function(err, result) {
if (err) {
notyf.error('Problem remotely fetching file or parsing result');
notyf.error('Problem remotely fetching that file or parsing result');
console.warn(err);
resetProperties();
return;
@@ -38161,6 +38185,7 @@ function display() {
copyURL.setAttribute('data-clipboard-text', window.location.origin + "#" + parser.toMagnetURI(parsed));
copyMagnet.setAttribute('data-clipboard-text', parser.toMagnetURI(parsed));
examples.style.display = 'none';
properties.style.display = 'flex';
window.location.hash = parser.toMagnetURI(parsed);
@@ -38250,6 +38275,7 @@ function propertyChange(e) {
function resetProperties() {
document.getElementById('magnet').value = "";
document.getElementById('torrent').value = "";
examples.style.display = 'flex';
properties.style.display = 'none';
name.value = "";
created.value = "";
+1 -1
View File
@@ -84,4 +84,4 @@ const i=e("debug")("torrent-discovery"),r=e("bittorrent-dht/client"),o=e("events
/*! ut_metadata. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> */
const{EventEmitter:i}=e("events"),r=e("bencode"),o=e("bitfield").default,s=e("debug")("ut_metadata"),a=e("simple-sha1"),c=16384;t.exports=e=>{class t extends i{constructor(t){super(),this._wire=t,this._fetching=!1,this._metadataComplete=!1,this._metadataSize=null,this._remainingRejects=null,this._bitfield=new o(0,{grow:1e3}),n.isBuffer(e)&&this.setMetadata(e)}onHandshake(e,t,n){this._infoHash=e}onExtendedHandshake(e){return e.m&&e.m.ut_metadata?e.metadata_size?"number"!=typeof e.metadata_size||1e7<e.metadata_size||e.metadata_size<=0?this.emit("warning",new Error("Peer gave invalid metadata size")):(this._metadataSize=e.metadata_size,this._numPieces=Math.ceil(this._metadataSize/c),this._remainingRejects=2*this._numPieces,void this._requestPieces()):this.emit("warning",new Error("Peer does not have metadata")):this.emit("warning",new Error("Peer does not support ut_metadata"))}onMessage(e){let t,n;try{const i=e.toString(),o=i.indexOf("ee")+2;t=r.decode(i.substring(0,o)),n=e.slice(o)}catch(e){return}switch(t.msg_type){case 0:this._onRequest(t.piece);break;case 1:this._onData(t.piece,n,t.total_size);break;case 2:this._onReject(t.piece)}}fetch(){this._metadataComplete||(this._fetching=!0,this._metadataSize&&this._requestPieces())}cancel(){this._fetching=!1}setMetadata(e){if(this._metadataComplete)return!0;s("set metadata");try{const t=r.decode(e).info;t&&(e=r.encode(t))}catch(e){}return(!this._infoHash||this._infoHash===a.sync(e))&&(this.cancel(),this.metadata=e,this._metadataComplete=!0,this._metadataSize=this.metadata.length,this._wire.extendedHandshake.metadata_size=this._metadataSize,this.emit("metadata",r.encode({info:r.decode(this.metadata)})),!0)}_send(e,t){let i=r.encode(e);n.isBuffer(t)&&(i=n.concat([i,t])),this._wire.extended("ut_metadata",i)}_request(e){this._send({msg_type:0,piece:e})}_data(e,t,n){const i={msg_type:1,piece:e};"number"==typeof n&&(i.total_size=n),this._send(i,t)}_reject(e){this._send({msg_type:2,piece:e})}_onRequest(e){if(!this._metadataComplete)return void this._reject(e);const t=e*c;let n=t+c;n>this._metadataSize&&(n=this._metadataSize);const i=this.metadata.slice(t,n);this._data(e,i,this._metadataSize)}_onData(e,t,n){t.length>c||!this._fetching||(t.copy(this.metadata,e*c),this._bitfield.set(e),this._checkDone())}_onReject(e){this._remainingRejects>0&&this._fetching?(this._request(e),this._remainingRejects-=1):this.emit("warning",new Error('Peer sent "reject" too much'))}_requestPieces(){if(this._fetching){this.metadata=n.alloc(this._metadataSize);for(let e=0;e<this._numPieces;e++)this._request(e)}}_checkDone(){let e=!0;for(let t=0;t<this._numPieces;t++)if(!this._bitfield.get(t)){e=!1;break}if(!e)return;this.setMetadata(this.metadata)||this._failedMetadata()}_failedMetadata(){this._bitfield=new o(0,{grow:1e3}),this._remainingRejects-=this._numPieces,this._remainingRejects>0?this._requestPieces():this.emit("warning",new Error("Peer sent invalid metadata"))}}return t.prototype.name="ut_metadata",t}}).call(this)}).call(this,e("buffer").Buffer)},{bencode:7,bitfield:302,buffer:60,debug:303,events:98,"simple-sha1":242}],302:[function(e,t,n){arguments[4][12][0].apply(n,arguments)},{dup:12}],303:[function(e,t,n){arguments[4][13][0].apply(n,arguments)},{"./common":304,_process:187,dup:13}],304:[function(e,t,n){arguments[4][14][0].apply(n,arguments)},{dup:14,ms:305}],305:[function(e,t,n){arguments[4][15][0].apply(n,arguments)},{dup:15}],306:[function(e,t,n){(function(e){(function(){function n(t){try{if(!e.localStorage)return!1}catch(e){return!1}var n=e.localStorage[t];return null!=n&&"true"===String(n).toLowerCase()}t.exports=function(e,t){if(n("noDeprecation"))return e;var i=!1;return function(){if(!i){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),i=!0}return e.apply(this,arguments)}}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],307:[function(e,t,n){(function(n){(function(){const i=e("binary-search"),r=e("events"),o=e("mp4-stream"),s=e("mp4-box-encoding"),a=e("range-slice-stream");class c{constructor(e,t){this._entries=e,this._countName=t||"count",this._index=0,this._offset=0,this.value=this._entries[0]}inc(){this._offset++,this._offset>=this._entries[this._index][this._countName]&&(this._index++,this._offset=0),this.value=this._entries[this._index]}}const l=1;t.exports=class extends r{constructor(e){super(),this._tracks=[],this._file=e,this._decoder=null,this._findMoov(0)}_findMoov(e){this._decoder&&this._decoder.destroy();let t=0;this._decoder=o.decode();const n=this._file.createReadStream({start:e});n.pipe(this._decoder);const i=r=>{"moov"===r.type?(this._decoder.removeListener("box",i),this._decoder.decode((e=>{n.destroy();try{this._processMoov(e)}catch(e){e.message="Cannot parse mp4 file: "+e.message,this.emit("error",e)}}))):r.length<4096?(t+=r.length,this._decoder.ignore()):(this._decoder.removeListener("box",i),t+=r.length,n.destroy(),this._decoLine truncated
/*! webtorrent. MIT License. WebTorrent LLC <https://webtorrent.io/opensource> */
const{EventEmitter:o}=e("events"),s=e("simple-concat"),a=e("create-torrent"),c=e("debug")("webtorrent"),l=e("bittorrent-dht/client"),p=e("load-ip-set"),u=e("run-parallel"),d=e("parse-torrent"),f=e("path"),h=e("simple-peer"),m=e("randombytes"),g=e("speedometer"),v=e("./lib/conn-pool"),b=e("./lib/torrent"),x=e("./package.json").version,y=x.replace(/\d*./g,(e=>("0"+e%100).slice(-2))).slice(0,4),_=`-WW${y}-`;class w extends o{constructor(e={}){super(),"string"==typeof e.peerId?this.peerId=e.peerId:r.isBuffer(e.peerId)?this.peerId=e.peerId.toString("hex"):this.peerId=r.from(_+m(9).toString("base64")).toString("hex"),this.peerIdBuffer=r.from(this.peerId,"hex"),"string"==typeof e.nodeId?this.nodeId=e.nodeId:r.isBuffer(e.nodeId)?this.nodeId=e.nodeId.toString("hex"):this.nodeId=m(20).toString("hex"),this.nodeIdBuffer=r.from(this.nodeId,"hex"),this._debugId=this.peerId.toString("hex").substring(0,7),this.destroyed=!1,this.listening=!1,this.torrentPort=e.torrentPort||0,this.dhtPort=e.dhtPort||0,this.tracker=void 0!==e.tracker?e.tracker:{},this.torrents=[],this.maxConns=Number(e.maxConns)||55,this.utp=!0===e.utp,this._debug("new webtorrent (peerId %s, nodeId %s, port %s)",this.peerId,this.nodeId,this.torrentPort),this.tracker&&("object"!=typeof this.tracker&&(this.tracker={}),e.rtcConfig&&(console.warn("WebTorrent: opts.rtcConfig is deprecated. Use opts.tracker.rtcConfig instead"),this.tracker.rtcConfig=e.rtcConfig),e.wrtc&&(console.warn("WebTorrent: opts.wrtc is deprecated. Use opts.tracker.wrtc instead"),this.tracker.wrtc=e.wrtc),i.WRTC&&!this.tracker.wrtc&&(this.tracker.wrtc=i.WRTC)),"function"==typeof v?this._connPool=new v(this):n.nextTick((()=>{this._onListening()})),this._downloadSpeed=g(),this._uploadSpeed=g(),!1!==e.dht&&"function"==typeof l?(this.dht=new l(Object.assign({},{nodeId:this.nodeId},e.dht)),this.dht.once("error",(e=>{this._destroy(e)})),this.dht.once("listening",(()=>{const e=this.dht.address();e&&(this.dhtPort=e.port)})),this.dht.setMaxListeners(0),this.dht.listen(this.dhtPort)):this.dht=!1,this.enableWebSeeds=!1!==e.webSeeds;const t=()=>{this.destroyed||(this.ready=!0,this.emit("ready"))};"function"==typeof p&&null!=e.blocklist?p(e.blocklist,{headers:{"user-agent":`WebTorrent/${x} (https://webtorrent.io)`}},((e,n)=>{if(e)return this.error("Failed to load blocklist: "+e.message);this.blocked=n,t()})):n.nextTick(t)}get downloadSpeed(){return this._downloadSpeed()}get uploadSpeed(){return this._uploadSpeed()}get progress(){const e=this.torrents.filter((e=>1!==e.progress));return e.reduce(((e,t)=>e+t.downloaded),0)/(e.reduce(((e,t)=>e+(t.length||0)),0)||1)}get ratio(){return this.torrents.reduce(((e,t)=>e+t.uploaded),0)/(this.torrents.reduce(((e,t)=>e+t.received),0)||1)}get(e){if(e instanceof b){if(this.torrents.includes(e))return e}else{let t;try{t=d(e)}catch(e){}if(!t)return null;if(!t.infoHash)throw new Error("Invalid torrent identifier");for(const e of this.torrents)if(e.infoHash===t.infoHash)return e}return null}download(e,t,n){return console.warn("WebTorrent: client.download() is deprecated. Use client.add() instead"),this.add(e,t,n)}add(e,t={},n=(()=>{})){if(this.destroyed)throw new Error("client is destroyed");"function"==typeof t&&([t,n]=[{},t]);const i=()=>{if(!this.destroyed)for(const e of this.torrents)if(e.infoHash===o.infoHash&&e!==o)return void o._destroy(new Error("Cannot add duplicate torrent "+o.infoHash))},r=()=>{this.destroyed||(n(o),this.emit("torrent",o))};this._debug("add"),t=t?Object.assign({},t):{};const o=new b(e,this,t);return this.torrents.push(o),o.once("_infoHash",i),o.once("ready",r),o.once("close",(function e(){o.removeListener("_infoHash",i),o.removeListener("ready",r),o.removeListener("close",e)})),o}seed(e,t,n){if(this.destroyed)throw new Error("client is destroyed");"function"==typeof t&&([t,n]=[{},t]),this._debug("seed"),(t=t?Object.assign({},t):{}).skipVerify=!0;const i="string"==typeof e;i&&(t.path=f.dirname(e)),t.createdBy||(t.createdBy="WebTorrent/"+y);const r=e=>{this._debug("on seed"),"function"==typeof n&&n(e),e.emit("seed"),this.emit("seed",e)},o=this.add(null,t,(e=>{const t=[t=>{if(i)return t();e.load(c,t)}];this.dht&&t.push((t=>{e.once("dhtAnnounce",t)})),u(t,(t=>{if(!this.destroyed)return t?e._destroy(t):void r(e)}))}));let c;var l;return l=e,"undefined"!=typeof FileList&&l instanceof FileList?e=Array.from(e):Array.isArray(e)||(e=[e]),u(e.map((e=>t=>{!function(e){return"object"==typeof e&&null!=e&&"function"==typeof e.pipe}(e)?t(null,e):s(e,t)})),((e,n)=>{if(!this.destroyed)return e?o._destroy(e):void a.parseInput(n,t,((e,i)=>{if(!this.destroyed){if(e)return o._destroy(e);c=i.map((e=>e.getStream)),a(n,t,((e,t)=>{if(this.destroyed)return;if(e)return o._destroy(e);const n=this.get(t);n?o._destroy(new Error("Cannot add duplicate torrent "+n.infoHash)):o._onTorrentId(t)}))}}))})),o}remove(e,t,n){if("function"==typeof t)return this.remove(e,null,t);this._debug("remove");if(!this.get(e))throw new Error("No torrent with id "+e);this._remove(e,t,n)}_remove(e,tLine truncated
const{EventEmitter:o}=e("events"),s=e("simple-concat"),a=e("create-torrent"),c=e("debug")("webtorrent"),l=e("bittorrent-dht/client"),p=e("load-ip-set"),u=e("run-parallel"),d=e("parse-torrent"),f=e("path"),h=e("simple-peer"),m=e("randombytes"),g=e("speedometer"),v=e("./lib/conn-pool"),b=e("./lib/torrent"),x=e("./package.json").version,y=x.replace(/\d*./g,(e=>("0"+e%100).slice(-2))).slice(0,4),_=`-WW${y}-`;class w extends o{constructor(e={}){super(),"string"==typeof e.peerId?this.peerId=e.peerId:r.isBuffer(e.peerId)?this.peerId=e.peerId.toString("hex"):this.peerId=r.from(_+m(9).toString("base64")).toString("hex"),this.peerIdBuffer=r.from(this.peerId,"hex"),"string"==typeof e.nodeId?this.nodeId=e.nodeId:r.isBuffer(e.nodeId)?this.nodeId=e.nodeId.toString("hex"):this.nodeId=m(20).toString("hex"),this.nodeIdBuffer=r.from(this.nodeId,"hex"),this._debugId=this.peerId.toString("hex").substring(0,7),this.destroyed=!1,this.listening=!1,this.torrentPort=e.torrentPort||0,this.dhtPort=e.dhtPort||0,this.tracker=void 0!==e.tracker?e.tracker:{},this.torrents=[],this.maxConns=Number(e.maxConns)||55,this.utp=!0===e.utp,this._debug("new webtorrent (peerId %s, nodeId %s, port %s)",this.peerId,this.nodeId,this.torrentPort),this.tracker&&("object"!=typeof this.tracker&&(this.tracker={}),e.rtcConfig&&(console.warn("WebTorrent: opts.rtcConfig is deprecated. Use opts.tracker.rtcConfig instead"),this.tracker.rtcConfig=e.rtcConfig),e.wrtc&&(console.warn("WebTorrent: opts.wrtc is deprecated. Use opts.tracker.wrtc instead"),this.tracker.wrtc=e.wrtc),i.WRTC&&!this.tracker.wrtc&&(this.tracker.wrtc=i.WRTC)),"function"==typeof v?this._connPool=new v(this):n.nextTick((()=>{this._onListening()})),this._downloadSpeed=g(),this._uploadSpeed=g(),!1!==e.dht&&"function"==typeof l?(this.dht=new l(Object.assign({},{nodeId:this.nodeId},e.dht)),this.dht.once("error",(e=>{this._destroy(e)})),this.dht.once("listening",(()=>{const e=this.dht.address();e&&(this.dhtPort=e.port)})),this.dht.setMaxListeners(0),this.dht.listen(this.dhtPort)):this.dht=!1,this.enableWebSeeds=!1!==e.webSeeds;const t=()=>{this.destroyed||(this.ready=!0,this.emit("ready"))};"function"==typeof p&&null!=e.blocklist?p(e.blocklist,{headers:{"user-agent":`WebTorrent/${x} (https://webtorrent.io)`}},((e,n)=>{if(e)return this.error("Failed to load blocklist: "+e.message);this.blocked=n,t()})):n.nextTick(t)}get downloadSpeed(){return this._downloadSpeed()}get uploadSpeed(){return this._uploadSpeed()}get progress(){const e=this.torrents.filter((e=>1!==e.progress));return e.reduce(((e,t)=>e+t.downloaded),0)/(e.reduce(((e,t)=>e+(t.length||0)),0)||1)}get ratio(){return this.torrents.reduce(((e,t)=>e+t.uploaded),0)/(this.torrents.reduce(((e,t)=>e+t.received),0)||1)}get(e){if(e instanceof b){if(this.torrents.includes(e))return e}else{let t;try{t=d(e)}catch(e){}if(!t)return null;if(!t.infoHash)throw new Error("Invalid torrent identifier");for(const e of this.torrents)if(e.infoHash===t.infoHash)return e}return null}download(e,t,n){return console.warn("WebTorrent: client.download() is deprecated. Use client.add() instead"),this.add(e,t,n)}add(e,t={},n=(()=>{})){if(this.destroyed)throw new Error("client is destroyed");"function"==typeof t&&([t,n]=[{},t]);const i=()=>{if(!this.destroyed)for(const e of this.torrents)if(e.infoHash===o.infoHash&&e!==o)return void o._destroy(new Error("Cannot add duplicate torrent "+o.infoHash))},r=()=>{this.destroyed||(n(o),this.emit("torrent",o))};this._debug("add"),t=t?Object.assign({},t):{};const o=new b(e,this,t);return this.torrents.push(o),o.once("_infoHash",i),o.once("ready",r),o.once("close",(function e(){o.removeListener("_infoHash",i),o.removeListener("ready",r),o.removeListener("close",e)})),o}seed(e,t,n){if(this.destroyed)throw new Error("client is destroyed");"function"==typeof t&&([t,n]=[{},t]),this._debug("seed"),(t=t?Object.assign({},t):{}).skipVerify=!0;const i="string"==typeof e;i&&(t.path=f.dirname(e)),t.createdBy||(t.createdBy="WebTorrent/"+y);const r=e=>{this._debug("on seed"),"function"==typeof n&&n(e),e.emit("seed"),this.emit("seed",e)},o=this.add(null,t,(e=>{const t=[t=>{if(i)return t();e.load(c,t)}];this.dht&&t.push((t=>{e.once("dhtAnnounce",t)})),u(t,(t=>{if(!this.destroyed)return t?e._destroy(t):void r(e)}))}));let c;var l;return l=e,"undefined"!=typeof FileList&&l instanceof FileList?e=Array.from(e):Array.isArray(e)||(e=[e]),u(e.map((e=>t=>{!function(e){return"object"==typeof e&&null!=e&&"function"==typeof e.pipe}(e)?t(null,e):s(e,t)})),((e,n)=>{if(!this.destroyed)return e?o._destroy(e):void a.parseInput(n,t,((e,i)=>{if(!this.destroyed){if(e)return o._destroy(e);c=i.map((e=>e.getStream)),a(n,t,((e,t)=>{if(this.destroyed)return;if(e)return o._destroy(e);const n=this.get(t);n?o._destroy(new Error("Cannot add duplicate torrent "+n.infoHash)):o._onTorrentId(t)}))}}))})),o}remove(e,t,n){if("function"==typeof t)return this.remove(e,null,t);this._debug("remove");if(!this.get(e))throw new Error("No torrent with id "+e);this._remove(e,t,n)}_remove(e,tLine truncated
+11 -2
View File
@@ -59,10 +59,12 @@
</header>
<div id="startButtons">
<input id="magnet" type="text" placeholder="Enter Magnet URL" aria-label="Enter Magnet URL and press enter" />
<input id="magnet" type="text" placeholder="Enter URL" aria-label="Enter URL and press enter" />
<label for="magnet" class="sr-only">
Enter Magnet link and press enter
Enter URL and press enter
</label>
<input id="torrent" type="file" aria-label="Select Torrent file" />
<label for="torrent">
<span class="fas fa-cloud-upload" aria-hidden="true"></span> Select Torrent File
@@ -70,6 +72,13 @@
</div>
<div id="examples">
<div>...or, try some examples!</div>
<button id="example1" aria-label="Load Magnet Example"><span class="fal fa-magnet" aria-hidden="true"></span> Magnet URL</button>
<button id="example2" aria-label="Load URL to Torrent File Example"><span class="fal fa-link" aria-hidden="true"></span> URL to Torrent File</button>
<button id="example3" aria-label="Load Torrent File Example"><span class="fal fa-file-alt" aria-hidden="true"></span> Torrent File</button>
</div>
<div id="properties" style="display:none">
<button id="reset" aria-label="Reset the page">
+114
View File
@@ -0,0 +1,114 @@
d8:announce36:http://bt1.archive.org:6969/announce13:announce-listll36:http://bt1.archive.org:6969/announceel36:http://bt2.archive.org:6969/announceee7:comment622:This content hosted at the Internet Archive at https://archive.org/details/jj2008-06-14.mk4
Files may have changed, which prevents torrents from downloading correctly or completely; please check for an updated torrent at https://archive.org/download/jj2008-06-14.mk4/jj2008-06-14.mk4_archive.torrent
Note: retrieval usually requires a client that supports webseeding (GetRight style).
Note: many Internet Archive torrents contain a 'pad file' directory. This directory and the files within it may be erased once retrieval completes.
Note: the file jj2008-06-14.mk4_meta.xml contains metadata about this torrent's contents.10:created by15:ia_make_torrent13:creation datei1537854029e4:infod11:collectionsl28:org.archive.jj2008-06-14.mk4e5:filesld5:crc328:c76a81296:lengthi10202e3:md532:6ae74b95d95ab68c04e25d62465701f65:mtime10:15378540284:pathl14:__ia_thumb.jpge4:sha140:e4bee071165ccb73c5d05a7b955f8085c8bb0a9aed5:crc328:6d15cd826:lengthi459054e3:md532:94c53eec5a8fc9578dd9dc4885155ab45:mtime10:12135903384:pathl8:jack.jpge4:sha140:38beb691f6a7d0bf41cb7f567d65a1e512234f5bed5:crc328:e7e5060e6:lengthi3910e3:md532:05b9bc8db0755412ddc3142935774cff5:mtime10:13480332444:pathl14:jack_thumb.jpge4:sha140:46efc801521609b582d7f23ef9c3a1d2ed10e31aed5:crc328:7cbe8cd96:lengthi1254e3:md532:2b1737ce9128d69560c7a5488d44a7135:mtime10:12153058414:pathl19:jj2008-06-14.ff.txte4:sha140:e75a230a36250b343136a4ae84ee44a2ba1ea1feed5:crc328:120ea1fe6:lengthi1232e3:md532:470fcee617946091cedcde41fb21a3d25:mtime10:13480332424:pathl20:jj2008-06-14.mk4.ffpe4:sha140:a31dffd0b7777f551b196af73ab9529b572c75cded5:crc328:24ea229d6:lengthi1254e3:md532:7e9a3f7020d30187430bd550bc1c560e5:mtime10:13480332434:pathl20:jj2008-06-14.mk4.md5e4:sha140:7581075a8f3b50cecea445ab24ccb278c5db51b7ed5:crc328:33c039fa6:lengthi3584e3:md532:de2ef273525da29b6c31cef478b1821a5:mtime10:15378540284:pathl25:jj2008-06-14.mk4_meta.xmle4:sha140:af2f2f75f954bbb81e421a4c5987c395319a3e26ed5:crc328:bcf46b6c6:lengthi825e3:md532:3138a2a830ff06434a71ea0210ad41735:mtime10:12153039354:pathl16:jj2008-06-14.txte4:sha140:4fd268c91973aff30b714293be0a61caeb154a22ed5:crc328:bc469bd66:lengthi2001642e3:md532:6f288c89918647d1d12d992d3cd2f5935:mtime10:12135579844:pathl22:jj2008-06-14d1t01.flace4:sha140:e0106bf3404a6a11453a8b05129083aa45ea2ef5ed5:crc328:afd536da6:lengthi741888e3:md532:02e22a8da4c59c7b8eaf672ca039f5765:mtime10:13480328444:pathl21:jj2008-06-14d1t01.mp3e4:sha140:2a811e0818ec4d9a48fd7ef0c50fdfa61da51c4eed5:crc328:960df6a36:lengthi357034e3:md532:feff0ab3c86457219d56ce0326fa32f85:mtime10:13480332224:pathl21:jj2008-06-14d1t01.ogge4:sha140:d7c5d8d7d5757498284d87afafed8a5c5977a322ed5:crc328:9694e7f36:lengthi7992e3:md532:4d8f59a70192d41191dea13ebd8a14fc5:mtime10:14141666554:pathl21:jj2008-06-14d1t01.pnge4:sha140:950528ca56579366cde75bda2036912bcad109d7ed5:crc328:817ce6206:lengthi19942284e3:md532:02a419902c2c829197580eb75042e7ba5:mtime10:12135579954:pathl22:jj2008-06-14d1t02.flace4:sha140:9f84ca3a6a70b21af813f98cb6848e3dc914c2f4ed5:crc328:5c4a3f7f6:lengthi6306816e3:md532:581f84a886d960c1e4baef59f0517c625:mtime10:13480328024:pathl21:jj2008-06-14d1t02.mp3e4:sha140:2af7b3684d90123a4ef01f2d14e4f3af418c24c6ed5:crc328:9ebba0df6:lengthi2943385e3:md532:481b7e85202625c8e5d9d904633602d15:mtime10:13480331974:pathl21:jj2008-06-14d1t02.ogge4:sha140:c94c97897c4afe53869d6bab6d0990702f176eb6ed5:crc328:c371acdb6:lengthi9833e3:md532:d1910392e4ce09b10a1feb6f36d056a05:mtime10:14141666874:pathl21:jj2008-06-14d1t02.pnge4:sha140:34e6dbbee994e69a82ad23b0387b67d858f6cd80ed5:crc328:2dc8cd166:lengthi20984562e3:md532:07b4df5d8ec127b954bcd117f975d8a45:mtime10:12135580044:pathl22:jj2008-06-14d1t03.flace4:sha140:b325798a34880d1c0d0f8e2727d59a6b5f5f607ded5:crc328:8fe215cb6:lengthi6444544e3:md532:d5a6bf746f7f6a315972d53e6a38e4a15:mtime10:13480328604:pathl21:jj2008-06-14d1t03.mp3e4:sha140:37a8abc808791ee15d3e9b999a7998f2e753a087ed5:crc328:ca3fd4786:lengthi3125447e3:md532:1a4af8c71a8c248266c159aaba12bb255:mtime10:13480331854:pathl21:jj2008-06-14d1t03.ogge4:sha140:59200d3aa7eedb700c8e93f8698f928769d16cd1ed5:crc328:7e2132576:lengthi11107e3:md532:94ec51fc94084cbd5146c3bbdfcbbcb35:mtime10:14141666954:pathl21:jj2008-06-14d1t03.pnge4:sha140:2c19ac838590db630d21b25c1b6986f85d6c6a47ed5:crc328:6f6e6d966:lengthi22286745e3:md532:03c4291ad4a22d67be4f8aeafedc78865:mtime10:12135580094:pathl22:jj2008-06-14d1t04.flace4:sha140:0e893a423eee7af464dc6de64ce3622d60c241a2ed5:crc328:a7a7f0766:lengthi5835776e3:md532:af5758fc007d0503c993ae9dad2a8f435:mtime10:13480329044:pathl21:jj2008-06-14d1t04.mp3e4:sha140:dbc5663b0669d7e51c9f854ce522515148b4c242ed5:crc328:28b3887e6:lengthi2901359e3:md532:a50440ce8a3f21f7a31e2bf180f6d8685:mtime10:13480331514:pathl21:jj2008-06-14d1t04.ogge4:sha140:86237ef6e134ed72a1e82ee8ad139f771a1485cced5:crc328:11860e3c6:lengthi11453e3:md532:809a2f65ea613377ad54559b922c6e985:mtime10:14141667094:pathl21:jj2008-06-14d1t04.pnge4:sha140:d86dba9be61e63618ad0570474a816d5966acd4ced5:crc328:84080d806:lengthi22335731e3:md532:463e4b331207e2e7e4c932868c4b64615:mtime10:12135580134:pathl22:jj2008-06-14d1t05.flace4:sha140:d1d18abaad88b845e49b5576843133a6b2d0ba01ed5:crc328:7cc962526:lengthi6247424e3:md532:f2c10b7f20e2c3c06e15470394b47f495:mtime10:13480328194:pathl21:jj2008-06-14d1t05.mp3e4:sha140:f465012e1488d38ab583688ce5d18587b8877e8ced5:crc328:fbfbbf2c6:lengthi3116243e3:md532:58b63ab09e81417456cf445a0f9416025:mtime10:13480330994:pathl21:jj2008-06-14d1t05.ogge4:sha140:dad642fb14fecb61398fdc7eaa051c8b91eaef2eed5:crc328:3119dd396:lengthi10498e3:md532:754c1be7307c1a1334e1ad2a677Line truncated
¼Ží«Ò³¶ŽRo‹ g(ƒäñò~¶«A␍ûŸ²­ßÍ÷{³—Žf`¹>”�«vQ@¿O¼»ÖP�é;꩎͞±õ»‰}.±çýÁrÉ‹mt¹ ;JŸ;VQ*„U{X`"Tõ˜3ÂOx$ˆ i)†îx'v€ÛøÙz&Fdñ¬ß Vw²ðr¹"…´(æ¡ÿþL_™HAÑ ô…
ç�l>kÿ`Öá9Ô¾­'iÉl¶Ddkkdü4)={\)-O¤µƒ—«E÷rõuA‡ã€JŸl|g¯Á(Xì#/×§êö£¼¸o[%-‡›÷t1¦æVÚ¡ª[½³æÈ¶!ˆ+þ÷�Ë‘}Ús¸8´Zþá4+÷>VAÒ
~& ø.¹?é�ÍçÓe˜Áttzld”ìï,é"@÷RÍ|\Ao#°Òí;1f7ê‘ß”KZètä±F`M1kŠ*Ï‹š—ÒdËUª¿‚rò�~÷|E$l%PAgª÷o‡E␍€ªƒNÝ{H)‘¶H)Wb©g␍píÕŒ‡8ÄrzÜÑOy|è Ç|ûä!¿G%Ƥ•Žþ…-°×üc\©u9)Úþ”ä␍ù“ñƒ•*¡_ø©üœ¬Ü/
]ŠJoFsš5␍"8†ãwO�|  M{µ\'¾æà¢.‰T*v…E{õæ/ºv×ʺŠ=Ck£±ƒ“¸Lšæ¹
âp×§iÉãHJj°¤è7ÿ,·šcú h«X ␍<«T¦­¥µAúÿ"dé£&ù–ié{û¨b¦}Ê+ñá}$Ëõ␍êÇ“K„„=𨣎círàG #W½ø$ÑoÚlÅg%©m±#‘æ[®ÔX_uöy½ iîÍ6­…`‘¥…rå"ЧÌ*fI¬M,Œ’Ðí2ÄØWÊÿŠŽNW¹TÚâÏ`Ø©>Ãï–‹¯—äQ"n†F‹‹èËo°ÌÀ�ýœ7Ø­çñþ÷˜¸G w'§¯¢zɶd©ö-–8Xr¸4`0’,„>8%åýÜ-¿f¶�‡ê4mŠaUw4(L�€ì;«û” ”æJ)ÓD?à”ÝÏ/býÀÇ~#‰þ›ØSñ¹Ÿl­3÷;/�„@ò±Ä¼ÑbGpJ†@ý¾èŠ®Ý‹Òa¾¨;ÎÅK~­üñi›d˜®ÒJTB¯w{ãõ�ÿ¨[m¥·©Ûæ]yÔY»©½òci›R*±8>zñ}·èc²·ºÅaŒà;[co¹"Œ(²ãÁáÛ³Mh êkç^=A>WG>iNy¾ªJTcP7çÆ<¨~_šK^,N+oá°?7§␍³˜…y£½mŒxž“¿‹oP¼H¡œ„Ž�”áñ␍u;èË-Íç±;bg´fG_Î$£§°ÊIóB9‚tr¼␍<®WÒÀ¤n··C‚GT¢Q‚öZ6?ôågÎõM
‰üŸ¸3|^«+º¡ÐÈm$ïŠȤyCî¡é›ë=ÃAkH›µ.Öõ&À:2©&ÑŽ×dtå=¸µÒ™Êgåú™ÌÏ0C%?Mf›yN‚ …ì¥ç¡ÕÞ×=‚ŒÕœs•´. o³ «"b˲e¬‹Ü²@ÕÐ
0(¥æ8ô‘É_ºfIøý*ùÔ¸TTRa␍¸“Þx\ ZT~§V0¬¡àÈ?wtZî¥t%Šõ½Ÿ`
‹·
Þ™[ëüXïŽ*Íz^ð‰…dc§M\!»Ò1ô±+–”R’´bâ¹!ÌžÒ2Ф@•ŒÙy9ÿjÕh…ÒTáë3éCš­‘ªsG2LØ¡FiYz˜ïÉ2m?Bfï|J{•>wI…û~GËùŽBßωÖ²xJJÀ˜w’¼ã¸r‡³òЫXAY³Ð ”­3ñÁ>—�hOp¢$å9º~ogÏRSÁ�§tË–ø×¨Þ¤(“ö•>ð©ݽ!¾EêÞüëÇ…9Pé¬ó×# d󍯻z"QÖpÒæà] ¿p�:yæýÀn§ì†„A³®ÒF>ÞJ ´NC£§&Ü6÷ŒñHÿKOá½°Ê—%õf§þÒ#ˆòJt‡�ÌqÒŽb'|X°Ïrb\«‰±Œ Ý(ÐZxZ `h�␍RZÍÎ.bŸ/xñ‰î£“˜òµ@ËÅ™)–CæRÙ{¤yÌ@™³„␍¬Õ˜tƒS'Æ”1ë;uˆ©$␍[[XÆS1SèÕE¤‹ÖŒƒåëò cç"¨×q`ºËƒŠi-c;W�Ügr*éõÙqdløSm8…šeE:}ƒ*ŠlJhS‡i˜hyµ® Ó B¸_kó’‡FéÙ4'óü¹0Oz9/¢¦W5�íÚ‘ïÆ6…:vM¢…FÆTn9IéˆGÕ‚sü$üëM�4ê‰îÝÝÕQàÌõ_³#ΡddD:W|Ù2Íñ‘o4¿têâ€�¾V@L]s\»␍ç5Â$.¨xc®Æ~«�o‰RFžÁ|Z<^RïkP2^Û•Ào"Šÿ—¼aK¿bî…$˦Ët餣ÌÅïkè75>CŠ|>æ;†G…Û/YuHSÛ� 9ëGðiéê3A¯M<Ã>’}¹#žNm !��û>™‚‘ûÌ{ãï®9‡£eÃ3ø'"ãËÇÕ sìÄ”þÈ»a@�'Ï›œ3g}�sÄÛtˆÖÃx‡Œ®~ZíÖ„l´ yêù#¡zS²ÀyY°TS&.ŽQ!@=ï1Ñ“^mMª4SñARe÷¯`�$ø›\I(vÝCž£Üv×|Ð 3.Ÿ␍[Ñ#ŠÝ©>ó’­Üýàná ‹1M•F¹Ç$`Þ}ñ.zêþ¢Š�ŒÈÛ%Š™hR®�¶®÷cA=ÿ‰©X]�D!wk>#4{Ç–UHóo7¥CN•¡½‚6 –}Î*poãzÊk×Z›$�r!]m•C¹ùhJ’¬ƒ¯Ï»Z�b2€l‰º›À¦’{º›¶·±ÿÀ=¸§G¸Ì¯ì4Ë`¨· ðeÓËü´)W¢êw=|¬<;E­¾Vo‰Ë`ÓûYrårTtU¢ Å•™±uE±Î,¦8X·¾Íwô%û›“`ȪQlà  R¹kÆ{ Æì)à¡êL¢õ¥¯"ÃÙW*›ô"ª‘φZöˆIÅ"Å$2[ˆi;Uú@C�±ºªgÀ_Dq¨©íŒ¾ä_§+…¡PDõ⅃Π7©.v“z¨L$��Ô’?8¢Ïÿ§wºÔ8b·YvñŸÍm°É€Ô(wOÂŽf)YRs‚A5îj³oÁÁC†ëˆH™‰6Ï‚3EfÊä"¢!E«ý òô1v¥T‰ÿT±õÛ|vG ¬¼ä†} 'òg�I ‹ ú#E¨åˆØÇ�ï–„W_b†ðVá…7áÅI–Ryìw�lq�ú+Õ˜´ÿî ìþô? P>oÿ´L4li•ÿy:)Èà�ýMbÝÙ�Äõž�®Ô¦¦¸$SåôŸ+Äz¦U82ÿÑå—öc.\Ô„§Z‚fþ¯À�üsG²†Àu˲?¼²îïNá�|Ÿh×Å$‹9,º–é(¨ GJ¿-ã‚—®Ef|nü Iµ † ŒºŽ¡HjT}?M{r×Qå@Ø�Ô#ãtÜöÄðhYÑÑ‹`Iv”RY¡BÒ.Y\Ãædר¨pÐôF„T5Õ’]6ðíƒÄnάïnц^n�ŸõrÁrà~
é)¼``Hùàšÿt�·ïÐdQÚå¸Tx!ä”­+&ÁIg¿ý;Ï4±”^'ñÿ²œf'†Uýl3&ë–œ;ßkÑ›‹´OáÓ,d¨]“'Fö¸íôæçE†Bþ*¨ðS,Q#ŸÁº¯–,ùgës¢<ÈIòg~�_ä&œ·� Íu¾@õÔ@Vµµ%ℲfUÌ.9ñC�ï5oøß½ˆ´q’!‰ÝíÙ(¤«ùv-œ¿Gè)Wïúdvg÷iôj´Óp-¬„’w´áh`»J8ö�!¥‰5¦BRöš��ܱR&ââ«iÁeîÐ^»³+�nî
Ò(‰Ó ÀÑ=ôÂÊgà'X‡:' ÃATØMò’Ê�0Ï À¤�ôtxö�W|4:+ü,B¾uìpñCÿ2´Çñ÷vÖ3õc±44ÐSéá’æ¡îô
�ëÎÓÆ±=è�‹Ê^X�½m“>˜æKAw‘rìK‡�} 7u␍×í‘_%øÞ?±ßáÇ5ƒ ~9*hØÅ) ¶:üÝ!j££¯€ºã#r®�àº=(°Ì¶1ùVCñ¼UixmÏ//8õì« ÒäJiO @¹RG¤#J+ï™Á—Í"œ:J°eª¾ ©$´ ‰3=Ðó:eÆ0§Ãz&§ßs÷íe&q30µ×tA�.Ü
Öí)èÓÊ~cyf0Y>kfÀXüí`oþMÙ SÒ×þx^âTŽË ö§Hèm¶’ðV“Ü›þéGŒ÷I« ;fžîpÆ‚ÏAræ:qbê)7–~‹‡Ú–òeõeÆúì3´0­¿Ä�vžÕlŒ`L&'ÎrÜnG8Ýÿ ‡….+³òˆhO9i²:M¤ Þ½/úòì¾"HçRОUÄÀ²t&æ>Ö1Â,Тs쾘g”`.Ýh‰WS.ì⛾)V[’WÕJmÝ;W¹[çÅ
„ÆÌŠ€B¹Ð7vñN†ŽmÌR#.Ú¿¥ž‚[€�$ƒ„Ap1Ã0EÈÜ‚Īÿ‹a¤¿é¬”âêñœÃÒ[»Ríñ§–L‘_òe´Ô’Ó<53š¦�^«•3ˆÑJ2g¥n™Ì(jÒè{±®'<¾9†HÒözÕŠüd]²¨Á糜.qóö¥@cóGOƒ´«{÷Éi;cªºô­r¼sâÔ_¯‡c>Éùkê€gŽ$³¼…¿%;X¾„¸ðS·]þ«íΰ¸pbÅ;¼µ±¡E'$ûåþ¶³"h•Ô␍í%´j³ga=|þ6
ÄèœYSŒT‘ðXVLfeø:¿½4 ©ñhÀJ+ ´$³ SrØ9¨{!ñA®”$>jƒþ72ć¶:Q�–óÐ~–÷>‹ zëUUU5Ô®Ó/!ùíIH¼î%á v•éSê¾í³Æ>•e=ŠuØYpø_U¤¥w<™™»†FBz©ba*I~y´ý‚°=A#$º×®¤Ïø•ȇuŠÍœ×¤L¦pµRÂOXÚyÙ?¡Ò�m}ã¢7°pɔğª+…ô¸oüq|á1ÄG`™Ž‡|¶Ák�:îÆ�º{ϰgŸÆï4ýŸŽ "f—2ëÿ
z³yag –ç•s�Q¹ÒbFd�\àT7áEBxLÓ½_AJj½çˆ¤?¡e]j/=UŸv� )ñ$pÃ@qGé‡J
‹™±‰%Í$´á©Þ‚™®©ä-¡ˆÆÝåßLÌJáØÍÅÎKÄÉ�bÈPÀDrÅo¥Œz¤«F&æ¯Üsï¶Q␍ÔéÔÂ껵^HÚtd©«À)æ‘ÿ÷õP8ØnÐÈCããƒgoO�#;ñpÜ3!Ôb,‘º¸èÓà)?�o˜›”á7·nü�ZMRÿ%…îØÉ®Q8D#Wáe\�„*ë}š*¢†ãÚN«¾Ii�ásÕ XÁÿ•øàØpµªÖzi”fßÎÆªIÀ|%ЫÒ›uzÄÜ
m´!ûà~۪݇Œ™xè`Ú)¢åf¹<7+«£‡-Ú¯>Wh3i~4†Esú²‚Ùœ`ÚüOºx-•.Uâ\Ï(¤:\Ïë*»Â?öûN†àÝ€!w$\HðvLVTnþ 3bµT:ó%É–sx?µÜ$-ÿ_2mwYtÔ+1YOo˜È‰ýð°ÕI±hê4x™8”3†gƒ-º{¥çüôÊ…6%~ å3OÀá07·õPŸ°¦i@ÀD�w9Ÿý2$§ÉéÿkÔ4ߩɊ?�),KÍ—°ú0^ýj߀ÙQ2§òÝ¥®Ð�WéÉO‘ˆkmˆ‡.gOaÐU1x"jmy\ù@Æ}�ÔFªÆú Œî›$¶W2[Ø•ošî¥xPbelŸeD¤  }þÿe¶‰àKŒÐ·Ú Ìã|š¹…O0n9³‰ð<úϤú�a´¾ƒ)Çb
Ah ^ü•;·ñ©]/hé·Wö]¤>çké{о˰e*=û�Iý¸ÑÝäߌÌ/o#ñ½sòb½§°f-¥fPdÉY|Þ,nÁA+òÌj¡œL„�µµC°9¼Lfc}׃‹C ˆœ´[1â Æ—âT7íÈ©ë i�6bv·ç¨1åÆXYQíAˆ©`¦DF:i»ÈBhÄ«êÐÉ¡­?¤<c>T›åZµ|ÁM³¶�±¤]å:†;àɺÆbNá°¡вþžòÑáï÷üª
ÕƒüK�£çG5 6µŽãz¨kD¼ó8ÇŸF ˜jú@¼ÿ Õ=5�/q␍3¥¦Ïépº8b³È DÚi_‰gð7„ þíÈkt{2hÀ¹;!Ìsß®¿0F¢Q´␍ÙšÿÅXú‘Ú¢ÓEižÐŽút1gN—ØÔÑØÒ´�°¦´Ã7X.Óš?„~sû‰©[½öî¿k錭�6Šhkb:ÀR@;ÈÅÍ�ùnåðvâqö
¿2$=)sIåÖÇÚ¢ à0´I�.z°�(¤>*{Ȉ“Áhjй÷â }Ö”åzô «‡ÆlZ/ܬ(9ùh´c=nºÛ³¡�:F$qB™JP1­/ö˜}ãúB_±´¥ìKZ¼lˆ-¿ÁKaqéîYŘm9Áð¶V›)ª¤Õ[ ¹xúŠ�n(�ÅYõ¡[á�ü¹EÑ_´é¿ˆ#¬¦MèÐ$!R‰‘ˆ­ŒÒÌñCÝÓGü'‰ëCÿ¬¦¸oÌÙ ØKu"D¦lW’Zs3zz#f�™Áq _iMQ3æô␍÷ˆž¾·ÚׯqI ~wC|Xï?- «§4[Y׺Œ‹TßUM½taç$Ê÷á+FV†"‚tD±½Í` <ÏSÁÄn‹H°ÎÀK�aÄn'´üHíu> Ó˜±æï:"±ð_Ó1Ä&#ø­qøªÖ¦‚ÿß6ñYÄ�âÛ! ûy3ß#”µ´ðÿrß]ŽèÜ©Îsî]EF…8 õ—Ç›Ö#þ‘ÃpÚ¬%¬ØÁ<�¦¨ê7ÑÀrË-rrÓ\Wt ÓÀeÆü¹h?ðÕn{7¬yÅ>™¢É�ùZýQ¤»ùc‡UJ‰¢�jJÎ,« Á)[µì ˆ°Õ4ˆ¼|Ò ùк¸¨?}•Áœ?—¬}ŸÁüH „Ñà/‹Þ¢}nˆö0«1£Ý7¦Ùß.I0qMjOwîÐ%SX¥ÓGœ&Ï\Ùb”?Xí»FN'Ø•– ÿÕMãUÞO‡Œ°ß“®Ëó¤e±{­§�V¡MN.�¯»…§¦–±~Å|Àçi#X«%úâÉìžøPȦ}n“ý»<��UQ'ãó␍8ÌwP?E?äøÜç­zzh‚F
Š[¾¿Z"ë´˜°µö ÃÉj““/ªzg$gË0çNº´$m¼^žã´¨ ¤
{æÏÏ‹L^Ä%­Û�%‘†Ì"ו³´[K�æ©T™¸tùbNŒí¢8œß[½ÜÀux¹c0æ‘”:pƒ“G/Ò:œ„úÍ#½)øÙÅÔ׊á�Éðâ.‘‹º8«pV,vöOàHÃ=ùÛ¹€Q·fަDb…’#yÝÑjŠ«z£ÄXJ‰Þ¼O@tS#h% =itýÁ°yçlf#?p³‚³a fƒ§Cfþ‚F|ß&Y£J/ïÒÉ‘š{ò⯴²nœÓÿ½BŸ{óÌÂ"ÔÕ+X±Zž0 <üÛ¤¿ŒÍ�‡%ØzæcW†␍MÆ“Ë*�ktõ&=P0âþž?r¶ÁR¥|šB]`MxSöÇWaR-ã™Fd#áÔáeØ„z8刱7+ ’;²ˆ°í¦•78ÜÝ|ø_ÈæË–éM’‘ÉšœÏ¼.9ðhñÌé{Ök1È¿E�2('Lw.©úÄýj#
wv7õoUáÂ]nêˆÍFáê8{+:šÆCY¡ÿýyÚ—ÁÕãÊòᬖ"ÔëF×9õ„I5“#RB£²Æ\˜bƒçzLÖÖ[¤úQ„êÜŒµO´ý1ý©~üÖ±^Ø2A$␍à XƒŒ½êkÉ\o�oø o¡žÓÌÝÝü¨À”x–*%cgP°[ÙBïӊЖb�äWŽäŒçË…xz¤"›
N+Òð„Úi� lãÝ5â'/šLݵK¡3ÓsU±/uA œT*QõÊnÜvåÏÄ×Ã#Î�!#m7†MÉè�„O®°ÏgòoTûÿR°Âèò�vì¤�R³M¢ÚOr…Ì®dóRsŠ: 8^Ìú,Ñ- iâÝó|£™óÁ2YÃ[Û$ùoàÊy˽M ýžÌFÏ/—†Çi¡
;íæùȬhUg‰¡cÌÄ�C¡€kDXÈ'=eÏûÕþtÑAztÀ(é¶šŽ<:ìð}ô‡ýù�åÁ\1ç’""ýº!ÌBÒ¹p’µ¬£÷aÜ¥E.´ œÈßG�ÿàÕËØe7-©sšûrGþ§ROГc]""·š\Ÿ—”6/·4'g¸ÔÞ%¦nJ�s{ä»ò¥þP¨ÄVÃï˜RrhÇWP�;~„Úä|ZÂ7Ø.ºŸwœDàI±©Aìó'º␍ñÜÐ@ÀkÝ9ÍTŸÄc0‰¦�;P·w·Ê(™2•BZB†QæÜ“ÏÈ 9V[ ÀŸÖ),ç µ o²›5øŠõ{U1-xtΩ;éJã¦ê7âm>ꬃ ¬GäÕrtôÀuB4 „•@aŽåðåüe·¶é"O42ƒ˜âP¤Ó>a-é�V1ÚœFQ÷|b␍5md³òF%þ3~)´þ2´hmYÈ
|ÛŽlã¢ÍÅâðÇ3rݵt}ð¡ g¢O;‰û4º¿Âò‹FâzÎÉÁ�°91ÁQN­É¦ZºqÉ”x™c}e~8/Ý}A™+/ëÄ4-8S³�ºÐ�g‡+ÌùO¹Ë_(YÉ¢Þ€èVùk4¿/’ßu…´@v’³¯i£ =J¾k`sþÃùâÎxᆅX\—€ŸD¢ªp¡‘ŠP„cª…®ª-g!p‘i&5³úù”—Qúšs‘X†É쉙{¸ýcÔ®P×!ÊÑ„‡’®Û†œ&Ú݇ã#Ô¶µmõ3.¯ôöíÈ‹ðEÿ“CzÛ‡9� �nTôŸpû‚ÄzÀ�·?eð<-TI™¸°zRƧ+æŒjLjw€ú©ÐHÌ/¹KÍ ls%KP>ð’Ø 9äólHâ¡´mœ<­oø£÷ÞGºŠ¯êGFgÔK™Éßñžq„rÜÛ‰8S¶º|ñnn1¾�§ï Œî‰Å)z¤nx¡º¡ŠÇaU ƒÌ_Ù}žÀ'0BÞŽ7ÌcÃ[?6ç04!7]ðN™€hšvÃÛAL-úÀañháÍ–ŽeÛ à'€Ö=‚!'áÈ-
Ó@KðþèëG]­:ø«ÈOs樓tÊÚaFE'îwÙc\A!ÇDØ�ñI…”®oUÀ j´_,¬¨y-WÃ@Xx¯–ó¡´©n©�æ$¼ø>–Oëߘ \É»½›2c+ùRWÚÅÚƒB[Õ@K6Y©N§ó�ÕÞüìòðð¶­ÅÅ›dÜ„]Rx¸Ò'côEt¼ºÜ¸“ Ž[�
Ž¡€ÝÑ…�(æ�êº{ÆIŠ˜ÿ’ gHG␍ êH¬¿Û®�ûù'2aóVC%ê‹�[Øpyûx•i€=©NªÓé*§¿'ÔX³yÿF¹Nµ»{#©Çm¢Äé|Q?,ÐpNèMBgcé:^¾ûþ¡ãàp†ïÖÏ ®áoÈÇÖúb9åÄ•ç©ƒX–[u „Èô6XÕ\ýF=n;X_i˜B­kô×yøÕœÅfÍ;~G7Ú|k)r£ Å�£Ü¿T ј´âp¦rÊK;µ�^ ‚9­vzvYÚyt¿™é­ ï␍Ypt4<*#ÎAF{ìÄD7iÓÞ­ß®ø-þzHó*ÞÅÈÈIÙ“x‚ÎÍúzM«âÙBH+¯ÕÚµÁêÓâÌ.-j¥P�¢â¼ÃÆmÝÖÃññ’�b3Æß.¹©c$}‹�͇&@]?äë-Þp”•Ê4§¹Ä␍ zãúéŸÿ؃0ê£9ä^Ø çcý´ÁMÍÿ.°ØøÏŽgM6uEгÜ+b}Mfêþ»{ÿНæ!™ØtX(+’U~Ç©fPÆšòÛY[—]ûÑ‚öªvØ,Dá~¶™k�üáÖ¾`ÒÇ®�ÿ§+NrG�VíQxÞÒÖÓuuÚ¾+ðX®�Hv–@ÔùµØ¤ÿœ
‚Cé§Ñõ;Š­hQƒÉoÇ!ß %é�<ư_ðžþÃoªX�×ЇðIýóô·ÒXˆÚ£a– D·å†|U÷"Þ àô�W6a/óù¥‘”è‘'¯õ¬>kï�%à�3Z•Ï•¤D‡žüBmž={Chbò¹#ÿÉÌlp”a‚¿�Aѳ‡óË‘²ï$̂à Èô�ZÝÈÄÄÙxæw2°‚Ó*F J¨Ÿ=*á”àP¡5­¶¤Âf~?ûm˜
,È®ž)ˆÿp ␍~P;bhÿÌ}=íC¾ý¨Ò9O‘fk²k»Á÷‹ýNGðÜÆ£–1¢Ž¸oc<,HÐfüâȧ޷àܳpúw ¾\›©°’ªŒòT‹”sŸO-Ñ¡'/ކë¡ÙY�ÅF,yÚwos‹Þ¸ÎÄyuAdž•␍|„…[¥v”’OêóIÙ©…Ÿ-�µþåæ’ýá
–Œ»ŠÔ¨1äOSN[Ƶ×&Y”~ö†ç␍³Ý†õï�ñdÆGÀ~ fއ,Ï3
.O޼ž'ä\­U=1¬Ðs‹yV�Ãï¡è~�ï[%(M R®ÚHLí¼ïæáƲÂó¥�-µ­²õFÆ©ì 'tsTÎ…l(›¥èk"/î‚èþº9"@{Éd�êSð™sß�|û ê#␍`Õm¤t¡¥‚æ·Ôä‘j4wö»¾…U÷[¾Á01UÊ:pý[Þ€ÙEHwUn«­~¨Gd4Ò‡/‚5'¦ÇD¤¥HðWfBb°{1ˆÅjÎî•ø˜Øç  €¦fy÷`Äîã Lç\šw
�h˜/“˜ ÔOB1ZÙU"°ãð´µÅׂ'4F)�~õ.f´WŽ~€Ù´¡–oœÌ“ºÊ�ç™ù!Ý„ØÓÊ¢‰á/ç@z½$t]Ù“FWõ$@;þª»½è/¤yÉ*g®~ gj+âk?QÜ¥ëÃoR,T¬pWËå/.ÇÎýŠ „Ù†
ÈÁ–ä’©ˆ1•)09^¶Øk¢›<áâ.ã–Y©`Aü¥2…¬Æ‹˜Š™ÕÇæQ³=j.èp5õÝþëGQ‰¾ËâÀÁÞû+j«ôP'M¢GI‘•ÿ{§¨üE‚«­Zç}(™á³`µ
CIUÑŒ|÷؇¡€»ÅŸ4ä
)à>ïJ-ºC£òP'`+ôLr¤Jì]i `Ÿ˜€䫬nÍŠ�¨·ªÏj1q¤8^Q¹’Ìk£¦ýǽ7´´–PŽxÓÇo¤¹«U KŸÙB‚È*ðÂ6
'U´ñÑ+ƒÌ‰{PñÚg‚eˆèömônã1ÚrŬéÓts ½×\ϱÀ0‡q±�Œ:␍#Œª€ÂÍÂ*␍À®ÜhºÛœ ji¹ði™ ëÍq›ë¨H^.·èPÜÔöBM~$‰íäß”w¼_8ϸØw>>.—ä2@þ:Lb†äÔOçñK
â/P³c×ÂÇþÑ8ö/òaw¶ÅY�¿•>kø¬Í¾Í±!½c•|¸�«ÔCVgA\}S]ÚhÀJôî�„'“n­†v‚¤M Þ¼#KŒEskTÊÅŒº_ámã]âRUþí±åcÒµK‡÷·çq·ðàƒ÷µúÐ…Øï_ù7ï#Í1öpe \ê®jÊm@²x!×#ªeôð&Ÿ_ZB¹\Jªmàe&␍ˆûÌ’šüÊ—@2 F`ЩaÒ¶!!€Ï%¦"âPẚ;=×6‹w3`pÆmnô9-vy¹Hžð|„P \é@»¬ˆè²¡~ãáTr'�ÞB|…œÑF™ˆ/Ö'±,Ú Îne„÷[“
b>ÿLÏ�ê‰9LÓ°Â"hi,ó.K§<’ñÎø¼ÅÅ}“*6iÇ^dÛ õ.G‚m³þƒ1
*–+'OúuN–%U²!„]·B@�LÐ\ºRSΡŒuI9n0½•‘y[k-îT¦„ê€`úãÏ<ú äñ „£wöÉÚ| +›‰p�¤D3Dr�”˜$:Eûšàƒ¹Á¨RÝŠ›²ØuÉÓerýc:±¼%fÊ[ƒ£ã×ÂX•$‚®k›˜KUñ›Me\µ ›b˜wÿÝ^WË‹jÒyðí1í,h!ûxåwÓÓ9›°éx␍a:h=ŒhF°o”Gþà:¬ëƒëïƒ~¹ê§F~œTwS¨‚¾¼␍ôm ·ÍqmÄÍ“º'Ô�i
_ü.ðàPÍ@¥9Ëcq€Ue4Y9¿½Ž] ÕB™�>ëé½b­O’H².úäÐcóÔŸü¬àž@quf›Æ~¶ÒèPWÖ:ÛîÎH+Ëdjüÿ‘ÅœýË&àHbâ7øãépfÑáØÎå fôˆ9f›k‚ÎÒš+»Tí�Êvƒ�¢‹dIýHNÌ?elrE>hBÀ×l—]AFJt·|·ƒÜÍ3º"ªÅêZ£À†“‰1ïPŽË©œMÓˆhXÝ"Fõ␍ÿ byS­ö+ƒ8‘¯A=¯¬*õzê&ðö„ê”÷’ô®qƒ'….%ödÙïY(uMêIìN¢Q2\�í=Îì_y|f&E¹Z,øMwjÇ­kÛÖ€F²—oyŠ¡Òš¥Ìå�¦q‰O�pþùĺ'/Ä Ϲ¯¾ÏŠ�&œf¥2óhäR@àÚ ç:3’Õ³fÆHÜ�46Š’�Ú”5p.ïY¤yØ(0È;Kd÷âŠþôz÷ß~ÌÿTnú
™ƒu�Tö¤fíš¶Ý1´Ç%Ë¢==©ñû/GZ�3¡I`UiÁB3�Nðå— GÊÙo;ÀH2¸Gµ€­?ÿ%W ®ì¾¤Î,“—dBn»nª:ž™sax␍$Oi%œ,br*'µ³ÎB'ó�Ú7#0–06‹ÓmV€#Ê_á&G
p€«ÇÌWW`¸e‡Û}D—f£P(¸%d§³f?°ÃÝ'””)}xDz…™B{WEν6ÆŸE‰ÉAK»ˆø7_=ŸÞZU@Ì�'2wl–¸Ì�m^u-°6:ª4ñ~»¡jè/¢“Ü“ÂnݶÇ¿)'yL+ú¥>vœ&gÌF]æ5Ï�¼}¨i¹à®êކ!ßÛrWq bh!Š|á¤Ê2÷É[vƘü(͹$®&ôŽ8ocå†ÍZÜ[Õ&–␍J+ž¾ö˜×‚S¦hÕ'"1˜kÄü?nÏîY¯ySNhvGôñ¢æ„PôÑ@€Kíy‚xÊu±K±vÅ@ÐAH—é‚xGŸ7œl!ñ8PR
yqJb¡Ÿ%v×F’‰xë0
U×G‡S^r¼O0¬ goÕßÜ\õ˜±øaê¼ZÙкe“hT¹èË+ÇÔãQðÁDH4s9Š
iÓñ¹ÿgÊóÕ¿“KïDmÖÖÔÆkjßFï.«œµ_�Z¤[`)f IVíç7µ<ó`âàbó-·)ô%ëó0xŸ%³ÛàI_:XZ‚­«xé3éΈ €wž+,S€L;%Ço""hÍ·&×¾K.š÷ Ô‚cAÛ‹¥†j9ß%þA`4÷¾þ0v@+ð.ñ [{Ahö$IpŸ—~#™ì~åîÖÄÃèÒå%lSÑäsq€�ØÄÑnšuŸ‹È–¾™R�œa¯êÜÙ¡h¼›­¤
Ÿª^␍¢�N¨&ÈN/�Ÿ!´`G€!Á2ŠbÙQ³“X‰ÐbFgì¾ŽŠ€.ÍBU˜'ßÜ=␍‹@␍æãŸ¤!ÉþÁ5DœQêšQ†Œó™*†ê.I s(«“3ŠNz0"NÓ´ØÆ¶ WYÌ  vKþfa¹¬`"D3e¡ðcçÝ–P!Â…÷ýi6i8½ÐÏfÚ,…ƼŒÁöø¨x
rµÐäÏ«’Ü;çäafYdR~e­¬PÊŒ,—F<�ǯN¾T<6*˜…8xf§ŠV,ùn$✟ÖSÈß̇½§q&“a•3”&u8ž©G×Qdo¡§;÷¥ˆµVQÜg…ª0ß/¦^M™ªa¶ýSŽ�íx&÷ç Ïaþ¹yÉ”yi?ÍÓön3²)÷œ${Xí²žæÈšäÄ>EVK÷ŽWâ`+cf £8á£òÑ çÒ‚s+¡ðá\PU‚é¬[8”TpJv‘
9�V¯œÕЌ̃A®PÀ4ø�‹”b•'¶'u²xî™if‚§ø¡¸Q³û›…lñ5æPSg¢¯eO�H¼Ú›f€Ý{Ÿù“F…êuXô»æÑÉ(XÓø!á0aºÇ¥K¹À+ºTê×Ù&ÃÆË?eš¶j+/aœÄÂÀÔ9·3¾éa6z쿹�R%ñ׸¼_yô–Ÿ.��7‘ìòã̆ϟWÐd×Pa ŽvÈî¨iöÅõ
0àŽAá7\;*Ëq‘ÓÁ„Ä.nî€2ÿöPJú̧LBhªx‰—÷Õž‰[’|õüoµy<W*ã"‘®äÌ␍pCTqø>G`ÑıFHi,ü¨aÿ}¯Ä–Êx@ñÀƒ`í#Âÿñ,Bm¬È_é‰ÚПý„ëU›h‹&ìÔ裱ý÷ôûª:ºã|nü,Lè"pÐUǤ(üŒ3ä�Á2±ÓÏn",n¯R‡V½øâ ½Ò‰OKÉÕø£çúMÆOùr†Ö¼‰(2+þëÆÛ\>*N½©ðpQQ««âkØòuÖÄÑãŠSX/j^v—Žÿí®`_¸æ—•Ð"¡bèL^àcÆ{â!Â2åÀ(¤œTÞçaÆA ΤÈ �1R¼=9h w©™bÖˆ‡"‰1€VçˆJÄU`ìh¾^¤´|¾÷¼MÚë=U…-¨×æ2U#s)õ”Â{<Õû9¥.Ýòßí¤èuµBÈÖZÑ< ܺ ½¼kÁÏ©
“ßQt§6@o”Ó£“%ã/{iXZ"#»z½ �Ãñ4¹ÓË‹¬º<(�BÊásŸ4‰Z fÈ
“zV–P†Qš(C¸!vŠ)/ð>úŠÈR±![�¥ÄÑ¥£,¤0J"ÌbY,2NëÆp¾²èƒŒðï„8€M«jŸÅ—4¦ïìÍ}W=Tn`Ȥv슾%äÅ“e�AÚýíèwË 6eõøUnççå© ˜%˜€H¢Ry}±¥h/û§«µ®(ȸÔyK‰y¾y(@Ú“13ÇÔ,å(ÀŠ�tÜ<¼œpˆ!`wÿ*ØÓ¡ôÑyJTW|ª(˜wÂ#␍¸(ŒÊÖ¼.æ"&è`q5©AÐ`tÕá€Üþ¬ì1Y¼QqÿGQÓÛ|.¯Îâ…TÍ!c÷ˆvx#Z/»Ú Ž›š"�È�Ïþîk_ªo[£Žª¦•Îxñ£ :;»c,( ‹º ÕpèµÅá£@:QŽ©Ib5©˜k°º@‰É ¿™/ííï3¥FØ«:Íò¨ ást¼·Abž+ÖÖ¹FÚµðTAëÄ\Y«7ÒUWL+ÔÀîºKFÓ·
zø¾è0çÐ3 Þ—ñ‹õ–iºù?021•EΛhUKHH²©³°^5S ïtÑ~º(‘­Ò³g(y}½lÇ'Ö¡tÏð•w/ X& ?«Ànd²2ÿ:—ŽÍ%âGÜ4±’ýÙ␍md¯Ò¬<>Й’ìAäB^[.FT¥�þgU¨5”ãU¡h‰�€ö08­\—Âùr§)„¥e fj©…z¨ˆKôŠ”-�BaGwœÂjKB·SŸ5c�È$î¿õ¿j·␍àÔ¨>±F„>b}^ܹ¯zhVwJ1’x½¾obÞý“JïÓyÒ9nl‹)5ªzc{{3ÌïMÓ§A«,"×Ktÿ)`éZ ¢2¿)xÍÌDÌÞÁÞ/c#iyX‰�Ý}PÊ„�õ^ö¿ö`Ï akv˜@¤\>|,-Ðúf(␍ß„]M –ß�+ö²\ÚœÄ3R•␍(¥Š°j™ØÏž"œÂÿÀ‡Qo¯Ï\gj¸,F  ¾[ûyEçÙÃ\Ør¯ÒÆ,Þ$PáM•#h’š�Å¡VyòD?›ªãÏ
GËr{Qj1›M(Ì3€ÛÁ¦µÈ52q•«‡%÷ÅUu”-½Úƒ€]� ý� mþ¼ax×ýÕi¤ÚscMî0ÖG–ˆÉìÐ�É<ÂEõðn óu|ÌN=Ø;f²n4Ö:³://ÑÝ÷dÈâPøÀF~ýHõèpPÀ‘êMò„@^V†¸7jŸºšÖ”ÜBËøYL  óxÔ’~
„(0ª bi#q,›{ž�û<˜öár¿‘oYkã§E
‡D8‘Êß¿»ðzlÎô]¥ˆó2P· (ÑÌ}î'€ù¡Œ:r2Ù“ZÞç/gï8aqmÅ[ Ž2]CA�ÈŠu ãK³aÛV·eÅöðŒó¦¢Z¸ Û _êbÐ3Æðå!ù/›kG…Na–é §D6žâ¨á*ˆjzk¹àfŸ«ŸtM…öiOÓ<°C÷/O3kéÑþ?$ŒŒËÔ¥ ;µÒC4²¶81 Kí±o+x—Á:uŠºA‹Å¦×fÆ‘£–Úß,;·ð‹—hØÙ ␍�,« ì¥×áÈ´à³ÎÃ*qù‚¸ŒŽ =�·wõ'‹UlÌx¯Eh0æwôpùQ“E�`|™©§éÓwË©òk(␍ÞÆÚ¥ÿ—sP̵B˜:À™¹ã°+§fèÌEÎÖ¸üÿk¢¹ûò&£*ÉYßþuŒô¡1Ðó”-¶Ò8ž¢Èç£)àHbCؾö‰PÈw9rfÈt´<ð¾‘B‚ÞdZ)”jé Ît@›At ½n’ìh¶#s pSL>Iùý«?þ]áòqd>h…®è0rp¯(õ 6 \‡�)^ñ"T�nÅõ$|l�YÈy.|¾«ÉM�nÙ*È{³tkĺÝ2m@Ó»©M]àö ‚;æ=3…Bž¥ý0~ JäQ(C«—ƒŠ<p EÊ%*óz7�:ƒ¥»6ʹ�Ɔ·Êñ­wùÛ%â¾F°ƒiÎ$Á**Lkõ·Ê“Ó(Oãß&}}³é{o¦vœÐ¾’æþúý|ézD,)ýùoñ8TK©SâÈIž“ÏŒùsh‹C{¹•Œ¦° <P Z
šWiÔ¾îg‡¤…„ÇÆÄ”ýœ�J þ(g4 R‹®PJØ©ÖEW¨Z�ÉÂ2´_Ù•ìq{œ_nÀš‰v¼ð SkµMσCÃê°ýú¥¥#ñyŠã›¸¢ù±¯Ã/l°�%LÈÛÓŽV¢E††i␍8¨x}ˆ�‡íÏ,*A‡g�½ˆ]ìx��•L°¨@MÕw¼óhÛ0Cúì„m¨õ�"y¥½¢³5¸@ô}­h>´ü]ºÊì&ƒÌ®oÆRàíêÐJ:Ë“Lm²–Ðø)ñk†Ë/#}ZLû‡ÚâFJÓ†½¥˜ôSS3jëÍÕV'Aá<¦Q‡™¡žØ(‹Î“Ô~ñ¹ÊσpxŠ×ŸÙHÖö.ì=ó¯`âØUÀ‹Y§ð¹K˜í‘;߀ô2IЬé‘␍wá��x1Û&E¸ bl#þÄ©ôÕ4æd¥ °-™BÉHZ£p·:Xý§ªI°oA
b¬°–Bf¶iê¾-ÓBç|_i[A#x¼ dN:�ÔÓðî
Ò|�lÚw°®î²K„+òu ׈+}a¾…r ’Ðx:–¢–Fú‡
¡^ €¢#;uã}äN,<ÞxíåÓ�v`µ:.§Âós¬ßÑ|300€
ŸÊ‰ðã 0!þ8‡›0fœ�T=VˆÙ�Ÿîñ®§R£9ñ¹O ·êù',LÆDÂ?’ÍQ¸ÌåóúAc°Žƒ—]»²ÑŽ÷r{xx½´yŠ×ð$_º4¤ø2@8 È01¶Æ±à]ž’…q›rCG1·pãàÝ[J»›%IÀ␍¿]O±X>‚äòò6záð␍ÑG&ŸÃ¦ÅüåíGîá@Á(Blš§®t5�:¤0Íã¹T␍0NyéüXïµóJÔ¨ƒÂ%¤YJ°x¦W‘XSr³À"O�¹´Æãá¨f£ðÆ�„¢â4ègÙ ÷ 9C# âÞ[‹>@Áç 2uÓWÏÄ®fÇ|ØÓE¶ÿÖ¦õÉN
€`JtÚ ‰"‡c÷-ÿêèI¦:7´�§#|%o€ÑôžÃ™ÒòµlS©žÃZz9‰¡¹h»V‘mbmNãÕ°‹‹3�r œÁpË$ÉÞE"®½DJQ¨kçê>ãëd␍ÉÓ¾'œÞœ­¼Ä␍„Ñ#–Ì­ sNÇvõt¬µ‹oxÛ'Ùõôäµé¶ý¹�Éà Ñ{“lRÚ«,Ú;±Û¡x›IT垃#-ޡ߯h†r�uí¦�ÉD ÿ&Á�¢¶›GŽÅÒ´l9™^…`(Ôo°ì¡:XꨇÞ\vÂǺ„ÍY5ià7´û˜ÚXp`ªRçðƒŸÔd·Èù�<© �é€Äa{5iPý– ÐH‡¡\+9XŽ›áKŸÛ[˜mA{�K·*A�â–çßûûLú¾ÇšÍWáðŠ“`~j7÷­­1Ç8XÀ†ÙÓ#wñ£Ã™Ž”ó,“(ÆÕ#§7‹b1BUÄ8ÚÜž…iЀ#“MŒNù?'¹yPSÏ›4F¾‚#l �¨«¥+΄ Ã&£2¬œ¦Vê*ô#Vù ±ßPoÐvyÐû¯×—õ[“�Ù?Ìœ=¶Ó_ lšðC…ÆéÕuO³ÿ`Q·ÄXÔÞÒ¾–­ŒNsDýªöxcˆl˜ÑEtðï]}8.ë¥ËÐ,ÏÖo|M®5·Øž�èàá=E¹� ¢Ü›9ÇTL(hÝV„©¾î‚`×/,�™Ü\ÄŠéú§}pàê�še7ï~Ôÿ—¦V}¢N1aÁ�é²àƒÑ;ÿM€‹\踗␍”-üW‘tˆ,’-ï.È»® p4rA)k|&#–U\fË}hRοEà-£Æ
iqˆŠcÿÓóU:@ž«¬únPˆbǶ½_deÐç'4æ±çi“¿V´ø ò[1I‰{‚~Û>»~Ë¥—¿Z7�»æÏ‘Öeqá�␍&,>ò;J‹©[¹<Æ*‹Å©ˆÙW0?º¦‚ÝÅ÷5LkV”%Å>y,WÙw»µœ]BVfC¦åÌey�nݱÃãCÁÓû0F1pÊêZß…9C^uÚx¥ŸÁ?¬†sâRÏŠ›W.ßzh>¨´KƒFk†€rÿ²Q´rÍTF7åQ17ðýÕ]¾W¡§c&•O�‹áNsHÛœ$‘î—_žûj¡SÅ'¬‹T.ì_•ìlškPÅ]véÍcAÂûב3¬@!¢ ¯Ï¹6}´¬¿–î*”ž`[©ºÈƒ‰ü­°N¦îžN$ªDÆsó¶|¼²˜?\œqÊèìc‚+¦2ùuú—ÒQ€*NNûìüµ¿YÊPŒB�*⡪Qhæ,3 À™Žt€Šg+8ÒÐõ7±…6e÷¨�mDS~¹]· … 3Þèk(7TÑEbþ5ú¶ªê~+R¤e1³•Îwûiâ�ìµh»hÖÝ„Vòû­ÆBJ"áCë¨b¢yX)„<›t*„OÛ5ð=2÷À7åv¸£…æAq¢Jvã„vÚ „ͼƖÓÔžm&ˆÝxÏQ4åòkê`emM 3|]»PkÑxífŒw:ËS€?ÿÃ=a�:šâVX¨U'¸’§ K$²™KÊ2ÞVgÓËuÚÓ$ŠëuWªoaËKG�ö®à&÷ ‹
Þl±„ú�(Æ$[*¬|Ï�9÷eR~Ÿ¥ ›zY öª¸D­ÓD¯Ó�FpËgÆSëê™Á¹^D¶#8šûÞ€bZŽÃä®�¦¿¹Ú›MD»ï礋ÔÛËú^òYF�)”füä°«ûLØ¡ºâ‡ «žgª /üXs/nÙŠ5Xñ‘ãçë��—™ZÍ¢ãë8Ý,ÿ3ÞAhÜ@¥Nгמ³ßà»Ý†vÿq*Ç&qsòÔQù”m±#¿%‚ª
?ÅÔŸÇéq%Ò/듨ѻ˃ëlAüb®câF&â‹§uJ»W¼OùO@Àî�lÝÅh˜pW°üG—
Çd¾Åóû‚hmÎÉk¥¶ P)« øW%b¬ŠÊL%âÈÔ’^¶ÃÂkrfÖG¿5.\r%` ØlÂâ ]ÝC#t•õb␍¸ !ûeê'Fk…Ö¾Ñ�¯˜åmË�"÷æ~­q¥kâàñÃ.ÒëlïNŠfZ+¶Xh’¶³Ùò•ˆ½áŠ~j@1;çµ°Î+Ð�–Kô¾ÞЯ3b°™URí¬¾?ÐŒÏÞäÖ•@5!Q�Ei~ùörðkë^å‡k”÷Dé±a¸ŽÆ­j/$ÒQŽ©ÃF�Ý9¶ñ*ßIÅ-SI�¹A6Ç&ªÊ~ÖôLibÉûL¬¬ãè÷dkÎP19¸uoÓF˜$£¾]ú¬·�¸¾[²ìBÑ»ã|,ˆfVñaö­»QÃMYÿÿûªF§ßòݦnµ” M:†bùs}Þýõ(]ˆ©.ÃæÃjkö½«ŒÔîùÓE;�/�ƒ/]BYy�{ÎÝ^Ç–½ì˜]s†Aà*ø¾R‚Æë7íp7Ùy¯DÇÅ?‰Ã�'Á¼,©ñàtÀ»òá6[¸„- &ÌcôU.¥
/ ãGYŽ�0Eä‘¶’d”T‰eÄúàËXQ�ˆ‚ãs,¿3iÌ/Žùöp¼,’^‘„˱c2XÝç¬gfKµ¯Cî©þZOÓ97�1Q]¢¾µúí‹FŽ"wÝ ª¢Û“®Fß(Ÿ"qÝ“Mu�›é†ÏãÃc�Þɾ/Å:°Œ›ÅOÀ6¶/EÐ)Ô=…¿²MVEj—&¾­'nËç¾Ç§l9°:ÉÀy€'±uÏÁ´ƒX1Ê´\~£žFYðb'ÒãÇÌ¡�G�†s+3q 'ÇØÃk�;”m<±žŸm0DΞ¨·˜H›¼Ã¼×³ÿHQÑ
³(½M^g>L//);š…èµ :3á»ë`« Õ"âr¡ÛPÄuMÝ`TEIY:Fv<å™Ýt†öÔôtï>RÀµ²�ÏÏ& õ×®lÏ¥é…ÓA+ñ�ì„F}JÄîsaÎÍ÷ƒ/Žo†Ë`éá±µ´F9tLk+*¦–ÑñòFç …š:¬È=c6<¤ëÊD½ÂP’3:Thâ$'�&4␍ñQ6öü2Ч8Ž×lÔLl×K♌?š-9CE=”ü²{*}… Ž0¯Ï†WzÀ¿6úKnØã¢ ±*¢¯â©)T“æïG␍9D\“æƒ]—l¹zü)í^f�¡™—'(Ð×iÃ-yv_ð:pòü´…Hôp!]␍¾·íbò´;Ø.Ç+V½Êê�ˆÌ«ËìÛÔÝêÒgAu˜-é$h.E-<è+E„ 5ÕŠL. رÄz¤ã ᒿɆÏ␍Ìú,³c©ã]¡pwÜC+fz|ÃTÕ/ à•·0ònò^÷ºá¤R'Б­8$†µ‘+ãÝïÝ
+ šÐä‰BüzíGâ¼²ZÀäûZe.œÍ�éuØ«È`˜,¥AO¾—ª”‚¿Jdc<°¹~K�xãSþÕ?aÉO~ãë êá•b£Ã␍!Óö³…TgZ[ÊíB¥„ßåÔ2I]¿ ãOåÕP 9Š˜XªLR…aõhãt!ÎîÓϦx¥�”&Í›cIn†×Cüôqá[Ç”{¥|\ •îUrl¤óÕ[Ýoé¶Ü¬mõT4 :Aâ…?¼¸ßâ*ðº?€ŠkUé]ë;“?ý©Œ—X® æo-Î&u†Ä‡ºÿ¬�ß}ùª(E³w"Ž =Ubú8éuÏÄý{ÁßzM^ã:6û‹"+l¼ù�ðö±P… žs•*•cëOt¸F¨áë@¯w{ò^©ZbK`¼×ß6¹;`w"ÀþŒH¦¿�çl>áIÅL‚�Ïúgr5@›q�£ ]-b¸é°Œ|F�’„×â¡b@ª9š%‹ÞG okþ=´QÜ(–%ÒïÙ/\]í©Ükã;‡1�â-hWR¨æk„–=ÚË7+Ø#�\îV+)ÁA~�`z!0ÊM2­þýãëÕìû´õhY±Æ×~Jqt í:-8“W¤¤É¸FA.rnU @Do¯aØÛµ@Ò]cÅ;±wîÙ°„„oHÿ” sORìƒãm´¾ÖÜ’1:Ú»ïüÜ­ òÏò‡¯=I.‰d¶È8ò
Xµ›gÊ ‚äYd,O_�>*;PNöÁÕ£Ïßü$~U03°Gð!�hZ—íé¾+°(Ò°w¾wü�2¯è¬Í _æ1ÚÈd¶Cq«ä,†) VWáá0jËjÖ�ÐóÄuÅqÙ©öz¯␍ô¤Á÷]|ìkÒѤñæ¡aúxf_óôzçJ7#�-|…b/©ýþ¿k,ù+¨ÙIßEŸ® Á½J‘!8ŸÿÔg?$ç¼õç!^Ti~‚Òå9׃JLQ²Ë>pÌÉàñŒ‹©2ˆ‹:›n¨8eÙ{íåeãJ_ªˆCh�ÏW5~xq ,~ÆãÁK®iêŽÓ†<%␍f\hG8 ¢?¨jÿeD±,²ƒß(‡»áGЪôD"†fÏ`R?¾°’ŠÆ¯ø
ænî`=È*ß)«„FÌôÚdŸ’<áM]L–ðý"}ys7ã”ÌŠõJÑõêª� Æ&æeFƒÛöd<œóYCïbzÇÔfìü(Â[Œ‚²ÈîÏ /(ˆ7¿s(…^mÚ)[¼ƒ†³‘Û
œ;‰¶Ú[Íå.»qí%@,[.`␍Pà\Q{}Ü3’&ÐýQ,e~ÉD?ÖWèã¡3çû7¤¢¹Ç#e&­‹\�Éô‹R»yÚ&r)‡PÑ=0wÑp´DúU«Ë§“æUäBË2¯Šðۑ桱#i/²Õ•¯¿+7Eö©ÍþÍ]έ)ir
íUŒÃ¯*�ÿQÕ·ƒ‘úlo„4`iN€ôÀ÷톱i!þ? }D ßF’”·Å{½‡ |gZ­
¢¦­AŽÙ•b˜äPU19tïå/ÁÞ[ï£à˜f;t3|ѨÂT,-8¬8uâÕeç�Ó$I›!²ú
ÃÉyJ$§•»æÞ›`E—K)Z3„„+2¸‹«UýB™Ÿ€¤`MÕÿD@l||6␍efÏAHïX”ÎÚøþ·ë␍õ¯a\Gltw�˜sZ?›-¬Kq’pÂt<›Ö�2‹·`žê­
À&vá|Ë7•] �‚Ÿj´k…U¡˜›ú9ÍëÉ1®XYŒW¬·#�?£›tßL³HƒOç0.IE0_‘”–ù @‹ÕÕ² 95AB÷[L�§Þh§JÏë‚<¤«ÐÕ�…SÛöüÓÐ'Œ°ô_C•E#Nrø?Ë›h1ÓD8)g�à¤�ÙúÎißÄZrÊØ�omÍüy¿XF*‰Y9åU\†uîüAbúp­f�ÌW¼t(ßIé&!ˆg§;.”! VÂVDÈÆÿX>ž¡ ±úEüh¡aP¼ÑPJ
^–ŽðXž¤IÚ„GÇxØè•W«v�ïé0§²Ž�ä␍t"w/vt|␍“6¤l(ÀïÒVŸ•pY%êUÖ‘ú6Ó¥ö�×ÞCö~U»; ÔºöÁîèƒ%ÑI@ý8»Ù3?@ÞþÙ÷s’f‹þvbεÄ-¥ñ÷ßí"Úˆj–4óGì:[¼rkw¸€qzŸ‰­>YØÏ§Am³K±6FCb’¢É±þÅo£7VešCl(~¤ï·ó
¦hgÝ¢¬�,gª?•Ú8‡cuð±3¾¸ÿß72H¨çû¥íàY.Ñ`�ñÑ~GŒ/ižÍ|…mU  �¢0ÛPZ;+úZÙWT�l¯ÖD±kà”ʦüNû´SveÀߨòÆ6ðª�–8t—GØêóäØ,ËÙûç䇆ơÞ4
§Gz»�|ÂBˆíöÓ³«␍÷ÐÆXG�À*9ú�ñ&÷B*Iù5öõ
ìå—¶wñÜ)�%ƒdô�gQ˜³ï‚óüZÀÕõšcO`oŒétÑÎÙ�e3±9$æÄwdŽÓ·ÈN¾ÙìÐˆÞ TB™‚èÓˆÒ ŸZ|…ò”�Ê'±©�=Ícž0Sõt)ù¿Ê/«´£W¢ÓNçQ㮫IàVQ[ôug!Ùèóâ÷/¤ß#!Fövº* ¢SÎÿêÐë¼¾ý¶ÄòXšIùaW€Á¥×�Ì‚³\�EÌjךcÃj‚’Ù�0ÛS¹áòÛcìÄÖmGy;^›~‘ŽKå¢r ÿû¯XŽ—º|xzïÆû¦[mh©š–ñŒI3j¨ ,ä}™¶ý2W7Ñxz®!Xý\ï™ÞÑ{±º3ƒ-Æ�å(¯Œ¼áòÑ=}-s£=›ÄnÞ]�Ôk&èüZ Z·»ÅмNË2�g�YM_T*‡f&} �Aø—3á§õ]co}y¶ˆ+Ø»:ÄŠ+9MTìaVt=Ú!‘l^¯Yø°ÄºÑ
ÓªÅHMí"Þ2Dп»RXÀÉHèÜ
‡kE¢øF„—Ê• Šf„×E””ææ—Ñ¬ps× á…¿kX©ËáÊBrbû¼â
Þ¢‡çkpjae‘úÙ'§G˜~ä™ö•לºƒBM²ºq‰­iøk~âk©¿k¯í>6;
þòNo€Þx,š¥ÁÁR–xä#x·ï2…œ;ñ„‰51óŠUw*�É,`U‡Œ¿fon㥮R¿;U­ÆÔ£ Þ½¥´ÑîMâ¥úÀ½Úšôoy?|¤p`´þrÝ:¸õô"épÔ°µ*à51ÉH3Ø»«¶ãß ‡Ç~•CÅ0Kö¬ÒRÄóºâ5– CÆE
EÚˆäј'âžUu—¸‘¶mé6 }ÜLÚ,6øÃ‡o÷hÎc9|eX…ÌŒl1ÿ…ÌŒÐ`áã¬ÌfêÇ[`%úÊ îÐǦþz<̦ˆ¿ëü¬�™ÉÈU’A޼RË|4¶¨¶¡’!%'t�’Ñ’ÆqlÚ½•ˆâ§…­1]•0AzCwG�sß©CnMgmÈýv”–¾oƒ¥œà”è‹*Wd%Ö¦ú¢t— Qg¢­œ�‚ûõ"iÑ~4R^Ã&2_ÍîO␍/¥.ìq«Æ|KÝx%VoîÌS™2›OSþÿå©A}fwü,û—2³ÒîuysîON¶pÅ6¸(z~ÙéCÙò£þÑ ¿#½ˆ„tMuêÒ]逧¢4àŸ%@q¶‘àãí˲¨|Ã�2È>=ñU}�ĈaÃn—á.evµ�׋ú? ¹nu¢`m¶»m:
É¡Ã}WõÛF6^üÜ!æØ<£º␍úÁÁYºÞ­Grä„ÇææT(z㘞Œó;Pªñà ƒpôÒ±¡Œg„ë"Ûsë1òÔc°jïÜÀÎÒÁÛÉpR/P_Y4ý{»bƒu¶JÐ(òŽf6{j¦>ó=0ìŠíÁ¯nÊÂdÞšIɰäg­¾BÉuHÛõ÷‹¥þb ,UlT„ÿ4m×p3Æìàpҵ㿽Þ2¥A&†+ºzP‡…Iÿwm�»èkzùJ»ì 8²l‚ßϽ‘Ò¤MJm‰ˆ*œ¹W H¢=àòϤXUÇrLN ’¿ mrŠŸ$ïá®lý%ò*5Ÿ·ox•™I@%š<‘¯45i/ ñé¶dAc%a÷î¨Ý
öi:É|˜ØëàÛp)MDêÏsÈ^€ðBÓð\ž™ºãÓèTÓù•Eéqi>ˆM·ÔÀRò$µ®6Ä”ow:Ž)-QJÒÀF¥V·î¶\ v»´â6Q맘ÅØ�ç¶T€*†Ü>­–3bªOe@†~w ÐzŽlRñÄ.â½aÓ÷›ì“0ük#­«v£:Q8÷ó™­2Ýe¸nŽü|š&§:�+3õÕªjqéóµòá�ò!™¤#D:×RÒìf=ùô>L�@zþ~�êò©†¬QÄ
zô¦ghFˆªÓ¶¦ƒ±ÂnÖ8{Ps,mO=G”ä^ULÑzê¼ñL«ü*R>”ì ùê/ÄeØŠ �EË0§s°(+Ý_Ûõú—D Œï<Cž|Áx˜˜ÏŠ«3 •†’ñOˆ¿�çÊð·öˆI}BR�Y�Æg¬ï»�a2­u²²æó/Oiq…ñ‹ Ól¢«gŽWÊqgVìÇA�ĉ¬‰{V„s»T´`Ó¢W?¢Rœ�äÌ5³¼QzC|ÀYøUcP"¨ïåí��ü,�Õ8[@]ÔàÕ×;ÇÆ§ŸŒk.c‘Ú8 DÒ¨–ÿ­DË,‡’s½3b´c�ë�Nuîqí6lŒÜÔ¶ìÒï^trÂdXñžOX¼C´’s>�\ƒ˜Œô‹OñH2'¿Ã$ô5UðaS7QYSéêõ„û3Ñi%ssÞƒ
3«ȱH1�öü âšFíX›±Ç\­GF†ÑʶëÔ…(é”W)þÈñòzµ Z¦†Ä’†»°Ž�k·ü£Œkô q¸Nµª]ˆ8d¢± «ÅÚ„wØG_‰Ú7Ý÷§P÷ͬ2²x軫á) ␍␍J.f'ö^›¹ŠåLz�Þ?°®[*i+eÛ¦×\Ÿ“f¶à¸C[º"¹—?Ò°C7œU‰q’(Ì␍ˆü{øÚF6¶pãö*‰n�»:¬c¿¼Óó)^*®2Ü�HûÇ‹+´f«Âg/ê<;bVÀ51rKË•X7S%[`ß÷
jéÇÕ™J‰K‰Òþ¬GPãdÐÅ¥Öhòt³HíÜœ(_ås¹‡~ã!j+^+Øš
�7l6ÄrÑîÿnÃâhä²1âP�‹ …#I4Ý5
Ú¥¡ÚÉM(.\Î*Ë—Ë +nt}�õI¸ìªˆŒßÆÑ¥o­˜ÿ ÓS“É9;Ò`)LdŒú’gUoôKF©␍aII<ÕÉ7õ>Z­­¨MÝcŒìùã¹ÖAÃXÀã8lmÇêÉÐB4·\g¶“ް_xß³3•—5™/„jÆ\Mºk�‰GjˆðTF‰§¤”*|žŽË¾.RNræÛVèÂK|ØÚT~‘Õ"rÓÏ©#UW‚±T�–’5‘�Ÿ8ë„ÿ8Ph Ù“˜õ›Ü�SM!!6ã¹]�§é"¡+£3Þú+�fáwèfóëÂl$n?ìŠ4ºhúKz±–ÚiA²Lt]Àc²]©›öõA;C»w´Ó¨¿4Óx01}¥I½ÖÆ;·L‘.û2}ogªO§èKé+Ewš/åirÔ¸ÍáŒ1ÃLåç—-¸Â¨:y—}>£AG]:?Ì<™› ê1ŠËjÞ®Žß ãt¯Ð»u÷@³x,’›`~¥—ªi5äVÑU¨ÈJ98>>­wÑñ‚uý_ôc‚hÊ*³õl Õ£¦os]ÀXWÒþÚ&´‡¦AŽä÷ú`9ëQ'»²�׫us4/ÕÛù|Ð"Øp~e(^dPïnièk£æfñ2Í@œÉ!HqŸîº?ð÷~Ú¹BÛ ¶›t0ëºZ‚;È|~ïYÔɘ4s)È6æ|»êÝ“…½ˆ/ªTAYùœ;2@ªZ‚©ºo¦FPúâ¿ÏÏ‘*Þ†ýs­ R¸3BëÛ•%ô3sx�ÐZ¸mÀ£Ï›5ã¼14õ1ôÊ/ÚœÙiìFý†)Ut9<€½ò´F̲”ÌÕhm5ÿHð“ûªh!"Ê”·q_.^=KÀõAJèøþ£ËI©°Ýjs�l¯Æ¿‚‹–*™hÊáõåœ\u;¦␍+|X+KÒPí}g4« ¦æ  ³»ŠÖèýÎ\­ß{MÈQÕÐPÔ2Ç-w�zÒòÚ0¶KŒûs‘ªGW=\íäŸçËîOƒzªDƒÔ–‰O¹Ô ºÒ5Åy?ôÓŽ!©GÆyÏèO#L›Áä΀Üm£óî÷Þù…L>œ5Șî‰åË|Q…õ^ºBÌgJ/z¯æå.¤¹¾fÆ,•½p$:Ä+
¢É*ß,•6â ˜ANËëps¾µ°�ãËÉë‘*®ò å/ òMO/í“ðÏïråºà>@Hž0Æ�¼ã±Ú)šDëºòÌÔÉê¾RŠ–YL³ü™/¶cŸ®ÈèV".†‘Ì}ŠA<�€Ò�n/¦%°T!•ý4v¢Q¥=7¬ÁsdªÑQåêTSØ5~| yFûTõ¿‰~í:SýO†òÆtÉÆð 8µµÇ#Σã¤&¶è'd␍K
kª(œ[Ä£-�Î8á¼ 5¨‡`l6WGqˆ-EP0)d$ :ZÝ˳‚^¯Ý�€ãò"Á‚mõ|ƒ‹®cž9µŸÕ+x ´ÿٸ붷þ)€ðÐÜ7ÅniYóÙKI<v_�ò PüêŸÈ€Ò&>�rz`"$È®­žã³ýBŸ�­ÉÏv–ÿ�E"r¥÷,Xêþ""jîú9!
¯ÉßQª¡ÊP$©x¨’²iÕg‡¢»+ù9ë=8¦.¢GrÒµ&â¾éòüçf�[ü¤×Ö°R�%?(‰=C/˜R™�]‰�Á¸‚ç·ƒâ×È´ƒ¹zÄ­Ð␍ðb*c-£IðÍøT"kP°çwø‚ 9l�i%1s ©™Ú$òëý/Ò“ ÞÔ�Gï{vIùVž‚̽\ÑA!Ïq+~c|Š£"íú>ƒn¡ ³ø>¡Õ#ë¯øšFVëw¬Äꋼ{Ï>OèïSt‹óîÇ␍áƒ/Ä å‹ü¦˜^5»P—Ì>|«ÙËÅøǧl…å%û‚·ÎBÚ8¶”v›£EDSžÑÁ�Å›øþyNùÉ’˜Å¸0J3ÉÔÆKTèRãêOÒš…ðÜ©X_K öðUú ‘ë+Hû@ͬKa
š•´kL›ê«‘_ ¾ÃV‘Xž�³¿uÔÓ3bJkÅœÑ`…␍ÖÿíI�z¯–7³]¯Ø‰CÈÅ„-꫹xu™ó Ô.ù™‹f¸šÛS�âê‹@ù—@oÒ—�óåúŒÈ‚­µ®ŒáEÄõ7¯)§)oµwò?rC´;\ÏksèŸÂ_î0Ï­†¡P§0Íþ©Ñ¸V�‚Ö}‚EÙ×Äm.Þ¬
�ÅÊ.ÝcÎq2¤œÉ?Ôõ_å9}Òmí˶F�ÅÑ1œ²rP/[Øh"7–#Gk×�†åväÇÉ¢ ãÜöЈ¿vЬÑ!å9T(xø0¬ëÍkhà‘Á¹•_FÝ«Ä'ö—Àc(|Öv’JP%/ýß!␍†™n“³o·�‘‰h‹µKF{ Qéé5ò Q§WÀiž™´YžÄ³â2†q$©lŠvÔ¬óï–[ºé‰vløxU êÞ-æ7¿]�Ä®Ÿ"f?)-G—\)zÙ�>Íœ4Kø)„ùF9ð[§6t´žRÁ8y|’�þX␍ó#¹BPZ?•ú&ì#÷ù&Õ7
ö_}ÉJ09›ñeÁ®É"®ölÖÆ£•v>ÓàŸó+ÁOYéX&U{¿:W•;/kè/±Óèð6_�Ê¿/Z1tÚ<tqz%<°¶µêJî°‘cƹrð»^4„r†•Ïs®e숓�µzOݤ™Ó#óc‹ºq%Ï 9JêkÞ³ h^,èG VýÄ»ŸŒ×5D²²FÐ7À�?ôSÙšã(:U¾îO4ß®@ ’£KKÉÃõ4™&Xd�­ˆ„›!�¥Vú(£E'ì˼8Í›öûø+26gf²Ù�£þ {¤¤•Ëæ·_V’‚·ÄOHsµøó72YŒszæØ½Õ C“.¿îYo�9�„¼[2\ΟÔ´sÑ>mêo¨Rz›Œ‹V[€ZÉØõ×^�¤°{éhFçþªœ\h÷#gp®a¿ :ðÔ†�¢ò8¿‡ý,‰Mà§sæYŸàrµú}èŸ÷m"ž€óº®K–§}»íñ$^ò¢MˆCG†ïI[_ð7M~øáT aï_€ÈÇÚxîCÝrç7‘±`OüZ× Tþ�JXy›s|¢…ºöáãmåXý|ÇæèË‚èÇ?èÝoŽ|³ÙúùOÔŽìUs1üëBì;e%“ÓEøÃÎ>åèæ§>“–yÌ\‹>¯úO”üé$è"ú ¶PmgèWs§l¡2
Xµâòo©ê¢Ln¦Ð;›„E`o SH ØœCu¡v«hgÝ•ÌO¥ ¥ÁºqÖ5™§†Â–©?±„¥ï—¿çHÐM!@Îç˜
’ûyTiÃ.9ÃaÒ9+öóòüÅðíÀPŠ•Ä(Æ¢gÀ‡|·q.ůsk Î.¾&}ß@„}aúu�#¡X´H$…\/=½š¿n•![ÍÉ!{�ÿÀšXh™âïðS9zeÿ)WL=:ү†Óí.‹íIXûSO·†IjðµÇ¯ß1°ÛìH¸sÔ7nÙô�$S#°8LM‡V3Û3•ˆ}j³S’„e²µ´¿uÆ‘jæqí˜u®½ðôì�gý=�âÎÚ6ÖGë{_Þ} A’h?ýPw®ÜíÃè?Ø9môð’™hV F³©-PÀ¬´Ëš,¬@P�qʨÂ$ÞëÆÓu–„"§³ÕnGHÓ])ÞP™�Ä<°É
K·µ¢ÐLüJÞ–Pj ó°Ôooõ{ ”œK+ É®º3ƒ¯�AäCn�ñç™O”a^ôº
}]bÑsrÉTÓùƒhvVûÝà‰úçkÍÒØ1k¥êŸOñ‰2Y@³îT.ÔÓ0*ö˜úûȦqQ”“Sá—âÐ’ ÆGH{pIµ␍�¤åÍHé}>b”®ƒÁ±º Q´x€ÖÔñó�’Õ
aqü␍­½¹²kÜ’üwµ‡ó’␍S�f aM�¤µzTëÊPK˜�»,TÚ
Æ
®O(%X–3™ƒÔQtC@Ù,
â‡ÓÅ ç³Ñ*þ9È,g‰¢oW,+¢Ptáf]äî×;è÷à†‡¨LI\"-d¼cFMìžøJ’Ód98Ê-Ð+%TO)Ñ␍†.ˆ‰7œŸäLÅAf|IlFÞtû'ZâÊ,î‚~!ö¤•gí¸æ9Ïìˆç„ñã„Û´‚,l”"Wæ Lf…¼´^oÇn¤ï´|רTÝ@ö÷æU7␍ð°¾µßM"ª3D&PÀÀhkQ)ø{Ng–�Ë/UׂϥŒË{ÇåçFÕꟌeúxª‹lWŸ7— �‘êHeŠ:h¯^k¯ ûñ{Jpü”‡}úyuöÙûù䚈âÝ™A‚fÿÒ´ùæv†0
vÒRB{¨™4N‡,ÃÍš£Õà#^-(×ÒP„(PBkÁ¼ Ha´VÉ™áù>œ6¢K¼V
býdÑ2ëóë§Fg�RÓÝÁj‘d»®È�mÈÉ¢␍R§0á›ü^v~þìw… ËîIGùH=´¤Ç`Ç$© ¤„’¡eù~kÏ3sÇq‘X¸›ùËi—Y&¼éoÖUêד^}¨ÛQ‘VMï[4NÊjqŠI/ûW<# #‚ÐBhU¾ÒN©Û½ª‡É¢¦9È_È0ܪr×v�‡wK§Á”#~¶'F­4¾/éêÍ“Ñ$mO9L¶ì‰§z9`2¥•4Û:9µ¤@—aÀ$*ž©q˜•Q—Çpe gž¾¶zEéw�g¦jy†ƒÌât¥[˜Jf¾f¤õ„MHUI3ϦKй¡›"<V:‘%Þ±ø␍aR>½EéX6vkpZ% à"¹L‚•Ú¢®WÖäkË(þhP�“�†M°†¥�xa|Œ T½Ppˆ>‹b”�yK„uB áÝÈäV±ÛÚ1­|³yØÿ6l;␍␍�%Ø]n(Ì«nD"tQf␍ â ÅÉQµ²ù’%F«rÜŸüL|bfš?äQ‘$%>$/€“d¯ÎÔÑõÁÁ=«áÂa!¡¬iÄ×sfj­o©†²0Œò-µ©ôG“cb€ç¬çè•…º-—µ@X›ŽƒÚ!ê°q„«ªTWNÉô×ŇÒ!'c?‹œÈÈ‘–�½�æÂ‡Š%¶æyŠƒ·™S® W„e6:locale2:en5:title16:jj2008-06-14.mk48:url-listl29:https://archive.org/download/40:http://ia902706.us.archive.org/10/items/10:/10/items/ee
+27 -1
View File
@@ -6,6 +6,10 @@ const mime = require('mime-types');
const WebTorrent = require('webtorrent');
const tippy = require('tippy.js').default;
var examples = document.getElementById('examples');
var example1 = document.getElementById('example1');
var example2 = document.getElementById('example2');
var example3 = document.getElementById('example3');
var properties = document.getElementById('properties');
var originalSourceIcon = document.getElementById('originalSourceIcon');
var source;
@@ -95,6 +99,26 @@ function start() {
});
});
example1.addEventListener('click', function(event) {
event.preventDefault();
notyf.success("Parsing Ubuntu 20.04 Magnet URL");
parse("magnet:?xt=urn:btih:9fc20b9e98ea98b4a35e6223041a5ef94ea27809&dn=ubuntu-20.04-desktop-amd64.iso&tr=https%3A%2F%2Ftorrent.ubuntu.com%2Fannounce&tr=https%3A%2F%2Fipv6.torrent.ubuntu.com%2Fannounce");
});
example2.addEventListener('click', async function(event) {
event.preventDefault();
notyf.success("Fetching and Parsing &ldquo;The WIRED CD&rdquo; Torrent File...");
parseRemote("https://webtorrent.io/torrents/wired-cd.torrent");
});
example3.addEventListener('click', async function(event) {
event.preventDefault();
notyf.success("Parsing Jack Johnson Archive.org Torrent File");
let response = await fetch("jj2008-06-14.mk4_archive.torrent");
let arrayBuffer = await response.arrayBuffer();
parse(Buffer.from(arrayBuffer));
});
let copyurl = new clipboard('#copyURL');
copyurl.on('success', function(e) {
notyf.success('Copied site URL to clipboard!');
@@ -176,7 +200,7 @@ function parse(toLoad) {
function parseRemote(toLoad) {
parser.remote(toLoad, function(err, result) {
if (err) {
notyf.error('Problem remotely fetching file or parsing result');
notyf.error('Problem remotely fetching that file or parsing result');
console.warn(err);
resetProperties();
return;
@@ -283,6 +307,7 @@ function display() {
copyURL.setAttribute('data-clipboard-text', window.location.origin + "#" + parser.toMagnetURI(parsed));
copyMagnet.setAttribute('data-clipboard-text', parser.toMagnetURI(parsed));
examples.style.display = 'none';
properties.style.display = 'flex';
window.location.hash = parser.toMagnetURI(parsed);
@@ -372,6 +397,7 @@ function propertyChange(e) {
function resetProperties() {
document.getElementById('magnet').value = "";
document.getElementById('torrent').value = "";
examples.style.display = 'flex';
properties.style.display = 'none';
name.value = "";
created.value = "";
+19 -2
View File
@@ -140,7 +140,7 @@ footer > a {
justify-content: space-evenly;
}
#startButtons > * {
#startButtons > *, #examples > button {
width: 440px;
height: 40px;
line-height: 22px;
@@ -166,6 +166,23 @@ label[for="torrent"] {
cursor: pointer;
}
#examples {
width: 100%;
height: 180px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
}
#examples > button {
background: var(--light-blue);
width: 440px;
height: 40px;
line-height: 22px;
text-align: center;
}
#properties {
position: relative;
max-width: 960px;
@@ -338,7 +355,7 @@ input {
text-align: center;
}
#announce > * > *, #urlList > * > *, #addTracker, #addWebseed {
#announce > * > *, #urlList > * > *, #addTracker, #addWebseed, #examples > button {
width: 80vw;
}