remove since and simply check <link/> tags in rss feed. fixes time difference bugs

This commit is contained in:
Wouter Groeneveld 2021-05-02 09:41:13 +02:00
parent 1f38a42c77
commit 255fea17e0
17 changed files with 74 additions and 995 deletions

1
.gitignore vendored
View File

@ -3,6 +3,7 @@
*.prof *.prof
*.test *.test
*.db
config.json config.json

View File

@ -164,7 +164,7 @@ Sends out **both webmentions and pingbacks**, based on the domain's `index.xml`
This does a couple of things: This does a couple of things:
1. Fetch RSS entries (since x, or everything) 1. Fetch RSS entries (since last sent link x, or everything)
2. Find outbound `href`s (starting with `http`) 2. Find outbound `href`s (starting with `http`)
3. Check if those domains have a `webmention` link endpoint installed, according to the w3.org rules. If not, check for a `pingback` endpoint. If not, bail out. 3. Check if those domains have a `webmention` link endpoint installed, according to the w3.org rules. If not, check for a `pingback` endpoint. If not, bail out.
4. If webmention/pingback found: `POST` for each found href with `source` the own domain and `target` the outbound link found in the RSS feed, using either XML or form data according to the protocol. 4. If webmention/pingback found: `POST` for each found href with `source` the own domain and `target` the outbound link found in the RSS feed, using either XML or form data according to the protocol.
@ -173,11 +173,13 @@ As with the `POST` call, will result in a `202 Accepted` and handles things asyn
**Does this thing take updates into account**? **Does this thing take updates into account**?
Yes and no. It checks the `<pubDate/>` `<item/>` RSS tag by default. I decided against porting the more complicated `<timestamp/>` HTML check as it would only spam possible receivers. So if you consider your article to be updated, you should also update the publication date! Yes and no. It checks the `<link/>` tag to see if there's a new post since mentions were last sent. If a new link is discovered, it will send out those.
**Do I have to provide a ?since= parameter each time**? This means if you made changes in-between, and they appear in the RSS feed as recent items, it will get resend.
No. The server will automatically store the latest push, and if it's called again, it will not send out anything if nothing more recent was found in your RSS feed based on the last since timestamp. Providing the parameter merely lets you override the behavior. **Do I have to provide a ?source= parameter each time**?
No. The server will automatically store the latest push, and if it's called again, it will not send out anything if nothing more recent was found in your RSS feed based on the last published link. Providing the parameter merely lets you override the behavior.
### 2. Pingbacks ### 2. Pingbacks

View File

@ -2,7 +2,9 @@ package pictures
import ( import (
"brainbaking.com/go-jamming/app/mf" "brainbaking.com/go-jamming/app/mf"
"brainbaking.com/go-jamming/common"
"brainbaking.com/go-jamming/db" "brainbaking.com/go-jamming/db"
"brainbaking.com/go-jamming/rest"
_ "embed" _ "embed"
"github.com/gorilla/mux" "github.com/gorilla/mux"
"github.com/rs/zerolog/log" "github.com/rs/zerolog/log"
@ -18,16 +20,12 @@ func init() {
} }
} }
const (
bridgy = "brid.gy"
)
// Handle handles picture GET calls. // Handle handles picture GET calls.
// It does not validate the picture query as it's part of a composite key anyway. // It does not validate the picture query as it's part of a composite key anyway.
func Handle(repo db.MentionRepo) http.HandlerFunc { func Handle(repo db.MentionRepo) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) { return func(w http.ResponseWriter, r *http.Request) {
picDomain := mux.Vars(r)["picture"] picDomain := mux.Vars(r)["picture"]
if picDomain == mf.Anonymous || picDomain == bridgy { if picDomain == mf.Anonymous || common.Includes(rest.SiloDomains, picDomain) {
servePicture(w, anonymous) servePicture(w, anonymous)
return return
} }

View File

@ -25,7 +25,6 @@ func HandleGet(repo db.MentionRepo) http.HandlerFunc {
func HandlePut(conf *common.Config, repo db.MentionRepo) http.HandlerFunc { func HandlePut(conf *common.Config, repo db.MentionRepo) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) { return func(w http.ResponseWriter, r *http.Request) {
since := sinceQueryParam(r)
domain := mux.Vars(r)["domain"] domain := mux.Vars(r)["domain"]
source := sourceQueryParam(r) source := sourceQueryParam(r)
@ -38,7 +37,7 @@ func HandlePut(conf *common.Config, repo db.MentionRepo) http.HandlerFunc {
if source != "" { if source != "" {
go snder.SendSingle(domain, source) go snder.SendSingle(domain, source)
} else { } else {
go snder.Send(domain, since) go snder.Send(domain)
} }
rest.Accept(w) rest.Accept(w)
@ -53,15 +52,6 @@ func sourceQueryParam(r *http.Request) string {
return "" return ""
} }
func sinceQueryParam(r *http.Request) string {
sinceParam := r.URL.Query()["since"]
since := ""
if len(sinceParam) > 0 {
since = sinceParam[0]
}
return since
}
func HandlePost(conf *common.Config, repo db.MentionRepo) http.HandlerFunc { func HandlePost(conf *common.Config, repo db.MentionRepo) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) { return func(w http.ResponseWriter, r *http.Request) {
r.ParseForm() r.ParseForm()

View File

@ -47,7 +47,7 @@ func TestHandlePostWithTestServer_Parallel(t *testing.T) {
defer ts.Close() defer ts.Close()
var wg sync.WaitGroup var wg sync.WaitGroup
for i := 0; i < 5; i++ { for i := 0; i < 3; i++ {
wg.Add(1) wg.Add(1)
go func() { go func() {
defer wg.Done() defer wg.Done()

View File

@ -27,8 +27,6 @@ var (
errPicNoRealImage = errors.New("Downloaded author picture is not a real image") errPicNoRealImage = errors.New("Downloaded author picture is not a real image")
errPicUnableToSave = errors.New("Unable to save downloaded author picture") errPicUnableToSave = errors.New("Unable to save downloaded author picture")
errWontDownloadBecauseOfPrivacy = errors.New("Will not save locally because it's form a silo domain") errWontDownloadBecauseOfPrivacy = errors.New("Will not save locally because it's form a silo domain")
siloDomains = []string{"brid.gy", "twitter.com"}
) )
func (recv *Receiver) Receive(wm mf.Mention) { func (recv *Receiver) Receive(wm mf.Mention) {
@ -127,10 +125,8 @@ func (recv *Receiver) parseBodyAsNonIndiewebSite(body string, wm mf.Mention) *mf
// This refuses to download from silo sources such as brid.gy because of privacy concerns. // This refuses to download from silo sources such as brid.gy because of privacy concerns.
func (recv *Receiver) saveAuthorPictureLocally(indieweb *mf.IndiewebData) error { func (recv *Receiver) saveAuthorPictureLocally(indieweb *mf.IndiewebData) error {
srcDomain := rest.Domain(indieweb.Source) srcDomain := rest.Domain(indieweb.Source)
for _, siloDomain := range siloDomains { if common.Includes(rest.SiloDomains, srcDomain) {
if srcDomain == siloDomain { return errWontDownloadBecauseOfPrivacy
return errWontDownloadBecauseOfPrivacy
}
} }
_, picData, err := recv.RestClient.GetBody(indieweb.Author.Picture) _, picData, err := recv.RestClient.GetBody(indieweb.Author.Picture)

View File

@ -5,7 +5,6 @@ import (
"brainbaking.com/go-jamming/common" "brainbaking.com/go-jamming/common"
"regexp" "regexp"
"strings" "strings"
"time"
) )
type RSSItem struct { type RSSItem struct {
@ -38,19 +37,20 @@ type RSSItem struct {
' ' ' '
} }
**/ **/
func (snder *Sender) Collect(xml string, since time.Time) ([]RSSItem, error) { func (snder *Sender) Collect(xml string, lastSentLink string) ([]RSSItem, error) {
feed, err := rss.ParseFeed([]byte(xml)) feed, err := rss.ParseFeed([]byte(xml))
if err != nil { if err != nil {
return nil, err return nil, err
} }
var items []RSSItem var items []RSSItem
for _, rssitem := range feed.ItemList { for _, rssitem := range feed.ItemList {
if since.IsZero() || since.Before(rssitem.PubDateAsTime()) { if rssitem.Link == lastSentLink {
items = append(items, RSSItem{ break
link: rssitem.Link,
hrefs: snder.collectUniqueHrefsFromHtml(rssitem.Description),
})
} }
items = append(items, RSSItem{
link: rssitem.Link,
hrefs: snder.collectUniqueHrefsFromHtml(rssitem.Description),
})
} }
return items, nil return items, nil
} }

View File

@ -6,7 +6,6 @@ import (
"github.com/stretchr/testify/suite" "github.com/stretchr/testify/suite"
"io/ioutil" "io/ioutil"
"testing" "testing"
"time"
) )
type CollectSuite struct { type CollectSuite struct {
@ -37,7 +36,7 @@ func (s *CollectSuite) TestCollectUniqueHrefsFromHtmlShouldNotContainInlineLinks
} }
func (s *CollectSuite) TestCollectShouldNotContainHrefsFromBlockedDomains() { func (s *CollectSuite) TestCollectShouldNotContainHrefsFromBlockedDomains() {
items, err := s.snder.Collect(s.xml, common.IsoToTime("2021-03-10T00:00:00.000Z")) items, err := s.snder.Collect(s.xml, "https://brainbaking.com/notes/2021/03/09h15m17s30/")
assert.NoError(s.T(), err) assert.NoError(s.T(), err)
last := items[len(items)-1] last := items[len(items)-1]
assert.Equal(s.T(), "https://brainbaking.com/notes/2021/03/10h16m24s22/", last.link) assert.Equal(s.T(), "https://brainbaking.com/notes/2021/03/10h16m24s22/", last.link)
@ -49,7 +48,7 @@ func (s *CollectSuite) TestCollectShouldNotContainHrefsFromBlockedDomains() {
} }
func (s *CollectSuite) TestCollectShouldNotContainHrefsThatPointToImages() { func (s *CollectSuite) TestCollectShouldNotContainHrefsThatPointToImages() {
items, err := s.snder.Collect(s.xml, common.IsoToTime("2021-03-14T00:00:00.000Z")) items, err := s.snder.Collect(s.xml, "https://brainbaking.com/notes/2021/03/13h12m44s29/")
assert.NoError(s.T(), err) assert.NoError(s.T(), err)
last := items[len(items)-1] last := items[len(items)-1]
// test case: // test case:
@ -59,14 +58,15 @@ func (s *CollectSuite) TestCollectShouldNotContainHrefsThatPointToImages() {
}, last.hrefs) }, last.hrefs)
} }
func (s *CollectSuite) TestCollectNothingIfDateInFutureAndSinceNothingNewInFeed() { func (s *CollectSuite) TestCollectNothingIfNothingNewInFeed() {
items, err := s.snder.Collect(s.xml, time.Now().Add(time.Duration(600)*time.Hour)) latestEntry := "https://brainbaking.com/notes/2021/03/16h17m07s14/"
items, err := s.snder.Collect(s.xml, latestEntry)
assert.NoError(s.T(), err) assert.NoError(s.T(), err)
assert.Equal(s.T(), 0, len(items)) assert.Equal(s.T(), 0, len(items))
} }
func (s *CollectSuite) TestCollectLatestXLinksWhenASinceParameterIsProvided() { func (s *CollectSuite) TestCollectLatestXLinksWhenARecentLinkParameterIsProvided() {
items, err := s.snder.Collect(s.xml, common.IsoToTime("2021-03-15T00:00:00.000Z")) items, err := s.snder.Collect(s.xml, "https://brainbaking.com/notes/2021/03/14h17m41s53/")
assert.NoError(s.T(), err) assert.NoError(s.T(), err)
assert.Equal(s.T(), 3, len(items)) assert.Equal(s.T(), 3, len(items))
@ -81,9 +81,8 @@ func (s *CollectSuite) TestCollectLatestXLinksWhenASinceParameterIsProvided() {
} }
func (s *CollectSuite) TestCollectEveryExternalLinkWithoutAValidSinceDate() { func (s *CollectSuite) TestCollectEveryExternalLinkWithoutARecentLink() {
// no valid since date = zero time passed. items, err := s.snder.Collect(s.xml, "")
items, err := s.snder.Collect(s.xml, time.Time{})
assert.NoError(s.T(), err) assert.NoError(s.T(), err)
assert.Equal(s.T(), 141, len(items)) assert.Equal(s.T(), 141, len(items))

View File

@ -10,7 +10,6 @@ import (
"github.com/rs/zerolog/log" "github.com/rs/zerolog/log"
"strings" "strings"
"sync" "sync"
"time"
) )
type Sender struct { type Sender struct {
@ -19,23 +18,6 @@ type Sender struct {
Repo db.MentionRepo Repo db.MentionRepo
} }
func (snder *Sender) sinceForDomain(domain string, since string) time.Time {
if since != "" {
return common.IsoToTime(since)
}
sinceConf, err := snder.Repo.Since(domain)
if err != nil {
log.Warn().Str("domain", domain).Msg("No query param, and no config found. Reverting to beginning of time...")
return time.Time{}
}
return sinceConf
}
func (snder *Sender) updateSinceForDomain(domain string) {
snder.Repo.UpdateSince(domain, common.Now())
}
// SendSingle sends out webmentions serially for a single source. // SendSingle sends out webmentions serially for a single source.
// It does validate the relative path against the domain, which is supposed to be served using https. // It does validate the relative path against the domain, which is supposed to be served using https.
func (snder *Sender) SendSingle(domain string, relSource string) { func (snder *Sender) SendSingle(domain string, relSource string) {
@ -60,29 +42,34 @@ func (snder *Sender) SendSingle(domain string, relSource string) {
// Send sends out multiple webmentions based on since and what's posted in the RSS feed. // Send sends out multiple webmentions based on since and what's posted in the RSS feed.
// It first GETs domain/index.xml and goes from there. // It first GETs domain/index.xml and goes from there.
func (snder *Sender) Send(domain string, since string) { func (snder *Sender) Send(domain string) {
timeSince := snder.sinceForDomain(domain, since) lastSent := snder.Repo.LastSentMention(domain)
feedUrl := "https://" + domain + "/index.xml" feedUrl := "https://" + domain + "/index.xml"
log.Info().Str("domain", domain).Time("since", timeSince).Msg(` OK: someone wants to send mentions`) log.Info().Str("domain", domain).Str("lastsent", lastSent).Msg(` OK: someone wants to send mentions`)
_, feed, err := snder.RestClient.GetBody(feedUrl) _, feed, err := snder.RestClient.GetBody(feedUrl)
if err != nil { if err != nil {
log.Err(err).Str("url", feedUrl).Msg("Unable to retrieve RSS feed, send aborted") log.Err(err).Str("url", feedUrl).Msg("Unable to retrieve RSS feed, send aborted")
return return
} }
if err = snder.parseRssFeed(feed, timeSince); err != nil { lastSent, err = snder.parseRssFeed(feed, lastSent)
if err != nil {
log.Err(err).Str("url", feedUrl).Msg("Unable to parse RSS feed, send aborted") log.Err(err).Str("url", feedUrl).Msg("Unable to parse RSS feed, send aborted")
return return
} }
snder.updateSinceForDomain(domain) snder.Repo.UpdateLastSentMention(domain, lastSent)
log.Info().Str("domain", domain).Str("lastsent", lastSent).Msg(` OK: send processed.`)
} }
func (snder *Sender) parseRssFeed(feed string, since time.Time) error { func (snder *Sender) parseRssFeed(feed string, lastSentLink string) (string, error) {
items, err := snder.Collect(feed, since) items, err := snder.Collect(feed, lastSentLink)
if err != nil { if err != nil {
return err return lastSentLink, err
}
if len(items) == 0 {
return lastSentLink, nil
} }
var wg sync.WaitGroup var wg sync.WaitGroup
@ -108,7 +95,8 @@ func (snder *Sender) parseRssFeed(feed string, since time.Time) error {
} }
} }
wg.Wait() wg.Wait()
return nil // first item is the most recent one!
return items[0].link, nil
} }
var mentionFuncs = map[string]func(snder *Sender, mention mf.Mention, endpoint string){ var mentionFuncs = map[string]func(snder *Sender, mention mf.Mention, endpoint string){

View File

@ -12,7 +12,6 @@ import (
"net/url" "net/url"
"sync" "sync"
"testing" "testing"
"time"
) )
var conf = &common.Config{ var conf = &common.Config{
@ -22,54 +21,6 @@ var conf = &common.Config{
}, },
} }
func TestSinceForDomain(t *testing.T) {
cases := []struct {
label string
sinceInParam string
sinceInDb string
expected time.Time
}{
{
"Is since parameter if provided",
"2021-03-09T15:51:43.732Z",
"",
time.Date(2021, time.March, 9, 15, 51, 43, 732, time.UTC),
},
{
"Is file contents if since parameter is empty and file is not",
"",
"2021-03-09T15:51:43.732Z",
time.Date(2021, time.March, 9, 15, 51, 43, 732, time.UTC),
},
{
"Is empty time if both parameter and file are not present",
"",
"",
time.Time{},
},
}
for _, tc := range cases {
t.Run(tc.label, func(t *testing.T) {
snder := Sender{
Conf: conf,
Repo: db.NewMentionRepo(conf),
}
if tc.sinceInDb != "" {
snder.Repo.UpdateSince("domain", common.IsoToTime(tc.sinceInDb))
}
actual := snder.sinceForDomain("domain", tc.sinceInParam)
assert.Equal(t, tc.expected.Year(), actual.Year())
assert.Equal(t, tc.expected.Month(), actual.Month())
assert.Equal(t, tc.expected.Day(), actual.Day())
assert.Equal(t, tc.expected.Hour(), actual.Hour())
assert.Equal(t, tc.expected.Minute(), actual.Minute())
assert.Equal(t, tc.expected.Second(), actual.Second())
})
}
}
func TestSendSingleDoesNotSendIfRelPathNotFound(t *testing.T) { func TestSendSingleDoesNotSendIfRelPathNotFound(t *testing.T) {
var postedSomething bool var postedSomething bool
snder := Sender{ snder := Sender{
@ -205,7 +156,7 @@ func TestSendIntegrationTestCanSendBothWebmentionsAndPingbacks(t *testing.T) {
}, },
} }
snder.Send("brainbaking.com", "2021-03-16T16:00:00.000Z") snder.Send("brainbaking.com")
assert.Equal(t, 3, len(posted)) assert.Equal(t, 3, len(posted))
wmPost1 := posted["http://aaronpk.example/webmention-endpoint-header"].(url.Values) wmPost1 := posted["http://aaronpk.example/webmention-endpoint-header"].(url.Values)

View File

@ -1,55 +0,0 @@
package db
import (
"brainbaking.com/go-jamming/app/mf"
"brainbaking.com/go-jamming/common"
"encoding/json"
"fmt"
"github.com/rs/zerolog/log"
"io/ioutil"
"os"
)
const (
dataPath = "data" // decoupled from config, change if needed
)
// MigrateDataFiles migrates from data/[domain]/md5hash.json files to the new key/value db.
// This is only needed if you've run go-jamming before the db migration.
func MigrateDataFiles(cnf *common.Config, repo *MentionRepoBunt) {
for _, domain := range cnf.AllowedWebmentionSources {
log.Info().Str("domain", domain).Msg("MigrateDataFiles: processing")
entries, err := os.ReadDir(fmt.Sprintf("%s/%s", dataPath, domain))
if err != nil {
log.Warn().Err(err).Msg("Error while reading import path - migration could be already done...")
continue
}
for _, file := range entries {
filename := fmt.Sprintf("%s/%s/%s", dataPath, domain, file.Name())
data, err := ioutil.ReadFile(filename)
if err != nil {
log.Fatal().Str("file", filename).Err(err).Msg("Error while reading file")
}
var indiewebData mf.IndiewebData
json.Unmarshal(data, &indiewebData)
mention := indiewebData.AsMention()
log.Info().Stringer("wm", mention).Str("file", filename).Msg("Re-saving entry")
repo.Save(mention, &indiewebData)
}
}
log.Info().Str("dbconfig", cnf.ConString).Msg("Checking for since files...")
for _, domain := range cnf.AllowedWebmentionSources {
since, err := ioutil.ReadFile(fmt.Sprintf("%s/%s-since.txt", dataPath, domain))
if err != nil {
log.Warn().Str("domain", domain).Msg("No since found, skipping")
continue
}
log.Info().Str("domain", domain).Str("since", string(since)).Msg("Saving since")
repo.UpdateSince(domain, common.IsoToTime(string(since)))
}
}

View File

@ -1,69 +0,0 @@
package db
import (
"brainbaking.com/go-jamming/app/mf"
"brainbaking.com/go-jamming/common"
"brainbaking.com/go-jamming/rest"
"fmt"
"github.com/rs/zerolog/log"
"strings"
)
// MigratePictures converts all indiewebdata already present in the database into local byte arrays (strings).
// This makes it possible to self-host author pictures. Run only after Migrate() in migrate-db.go.
func MigratePictures(cnf *common.Config, repo *MentionRepoBunt) {
for _, domain := range cnf.AllowedWebmentionSources {
all := repo.GetAll(domain)
log.Info().Str("domain", domain).Int("mentions", len(all.Data)).Msg("migrate pictures: processing")
for _, mention := range all.Data {
if mention.Author.Picture == "" {
log.Warn().Str("url", mention.Url).Msg("Mention without author picture, skipping")
continue
}
savePicture(mention, repo, cnf)
}
}
}
// ChangeBaseUrl changes all base urls of pictures in the database.
// e.g. "http://localhost:1337/" to "https://jam.brainbaking.com/"
func ChangeBaseUrl(old, new string) {
cnf := common.Configure()
repo := NewMentionRepo(cnf)
for _, domain := range cnf.AllowedWebmentionSources {
for _, mention := range repo.GetAll(domain).Data {
if mention.Author.Picture == "" {
log.Warn().Str("url", mention.Url).Msg("Mention without author picture, skipping")
continue
}
mention.Author.Picture = strings.ReplaceAll(mention.Author.Picture, old, new)
repo.Save(mention.AsMention(), mention)
}
}
}
func savePicture(indieweb *mf.IndiewebData, repo *MentionRepoBunt, cnf *common.Config) {
restClient := &rest.HttpClient{}
picUrl := indieweb.Author.Picture
log.Info().Str("oldurl", picUrl).Msg("About to cache picture")
_, picData, err := restClient.GetBody(picUrl)
if err != nil {
log.Warn().Err(err).Str("url", picUrl).Msg("Unable to download author picture. Ignoring.")
return
}
srcDomain := rest.Domain(indieweb.Source)
_, dberr := repo.SavePicture(picData, srcDomain)
if dberr != nil {
log.Warn().Err(err).Str("url", picUrl).Msg("Unable to save downloaded author picture. Ignoring.")
return
}
indieweb.Author.Picture = fmt.Sprintf("/pictures/%s", srcDomain)
_, serr := repo.Save(indieweb.AsMention(), indieweb)
if serr != nil {
log.Fatal().Err(serr).Msg("Unable to update wm?")
}
log.Info().Str("oldurl", picUrl).Str("newurl", indieweb.Author.Picture).Msg("Picture saved!")
}

View File

@ -1,13 +1,14 @@
package db package db
import "brainbaking.com/go-jamming/common" import (
"brainbaking.com/go-jamming/common"
)
// Migrate self-checks and executes necessary DB migrations, if any. // Migrate self-checks and executes necessary DB migrations, if any.
func Migrate() { func Migrate() {
cnf := common.Configure() cnf := common.Configure()
repo := NewMentionRepo(cnf) repo := NewMentionRepo(cnf)
MigrateDataFiles(cnf, repo) // no migrations needed anymore/yet
MigratePictures(cnf, repo)
repo.db.Shrink() repo.db.Shrink()
} }

View File

@ -9,7 +9,6 @@ import (
"fmt" "fmt"
"github.com/rs/zerolog/log" "github.com/rs/zerolog/log"
"github.com/tidwall/buntdb" "github.com/tidwall/buntdb"
"time"
) )
type MentionRepoBunt struct { type MentionRepoBunt struct {
@ -20,41 +19,41 @@ type MentionRepo interface {
Save(key mf.Mention, data *mf.IndiewebData) (string, error) Save(key mf.Mention, data *mf.IndiewebData) (string, error)
SavePicture(bytes string, domain string) (string, error) SavePicture(bytes string, domain string) (string, error)
Delete(key mf.Mention) Delete(key mf.Mention)
Since(domain string) (time.Time, error) LastSentMention(domain string) string
UpdateSince(domain string, since time.Time) UpdateLastSentMention(domain string, lastSent string)
Get(key mf.Mention) *mf.IndiewebData Get(key mf.Mention) *mf.IndiewebData
GetPicture(domain string) []byte GetPicture(domain string) []byte
GetAll(domain string) mf.IndiewebDataResult GetAll(domain string) mf.IndiewebDataResult
} }
// UpdateSince updates the since timestamp to now. Logs but ignores errors. // UpdateLastSentMention updates the last sent mention link. Logs but ignores errors.
func (r *MentionRepoBunt) UpdateSince(domain string, since time.Time) { func (r *MentionRepoBunt) UpdateLastSentMention(domain string, lastSentMentionLink string) {
err := r.db.Update(func(tx *buntdb.Tx) error { err := r.db.Update(func(tx *buntdb.Tx) error {
_, _, err := tx.Set(sinceKey(domain), common.TimeToIso(since), nil) _, _, err := tx.Set(lastSentKey(domain), lastSentMentionLink, nil)
return err return err
}) })
if err != nil { if err != nil {
log.Error().Err(err).Msg("UpdateSince: unable to save") log.Error().Err(err).Msg("UpdateLastSentMention: unable to save")
} }
} }
// Since fetches the last timestamp of the mf send. // LastSentMention fetches the last known RSS link where mentions were sent, or an empty string if an error occured.
// Returns converted found instance, or an error if none found. func (r *MentionRepoBunt) LastSentMention(domain string) string {
func (r *MentionRepoBunt) Since(domain string) (time.Time, error) { var lastSent string
var since string
err := r.db.View(func(tx *buntdb.Tx) error { err := r.db.View(func(tx *buntdb.Tx) error {
val, err := tx.Get(sinceKey(domain)) val, err := tx.Get(lastSentKey(domain))
since = val lastSent = val
return err return err
}) })
if err != nil { if err != nil {
return time.Time{}, err log.Error().Err(err).Msg("LastSentMention: unable to retrieve last sent, reverting to empty")
return ""
} }
return common.IsoToTime(since), nil return lastSent
} }
func sinceKey(domain string) string { func lastSentKey(domain string) string {
return fmt.Sprintf("%s:since", domain) return fmt.Sprintf("%s:lastsent", domain)
} }
// Delete removes a possibly present mention by key. Ignores possible errors. // Delete removes a possibly present mention by key. Ignores possible errors.

View File

@ -5,11 +5,9 @@ import (
"brainbaking.com/go-jamming/common" "brainbaking.com/go-jamming/common"
"fmt" "fmt"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/tidwall/buntdb"
"io/ioutil" "io/ioutil"
"os" "os"
"testing" "testing"
"time"
) )
var ( var (
@ -48,23 +46,13 @@ func TestDelete(t *testing.T) {
assert.Equal(t, 0, len(results.Data)) assert.Equal(t, 0, len(results.Data))
} }
func TestUpdateSince(t *testing.T) { func TestUpdateLastSentMention(t *testing.T) {
db := NewMentionRepo(conf) db := NewMentionRepo(conf)
nowStamp := time.Date(2020, 10, 13, 14, 15, 0, 0, time.UTC)
db.UpdateSince("pussycat.com", nowStamp) db.UpdateLastSentMention("pussycat.com", "https://last.sent")
since, err := db.Since("pussycat.com") last := db.LastSentMention("pussycat.com")
assert.NoError(t, err) assert.Equal(t, "https://last.sent", last)
assert.Equal(t, nowStamp, since)
}
func TestSinceFirstTimeIsEmptytime(t *testing.T) {
db := NewMentionRepo(conf)
since, err := db.Since("pussycat.com")
assert.Equal(t, buntdb.ErrNotFound, err)
assert.Equal(t, time.Time{}, since)
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {

View File

@ -1,714 +0,0 @@
*3
$3
set
$48
18acebf759df6d79f8a109faa8d18fc7:brainbaking.com
$625
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"I changed my mind on my toot syndication to brainb...","content":"I changed my mind on my toot syndication to brainbaking.com policy. From now on, only non-replies (in-reply-to) get pushed to https://brainbaking.com/notes/ - it was cluttering up the RSS feed and most replies are useless to non-followers anyway. Sor...","published":"2021-03-20T13:27:00","url":"https://brainbaking.com/notes/2021/03/20h13m27s36/","type":"mention","source":"https://brainbaking.com/notes/2021/03/20h13m27s36/","target":"http://brainbaking.com"}
*3
$3
set
$48
1b2ba8c60768014afa147580d452ced5:brainbaking.com
$633
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"I changed my mind on my toot syndication to brainb...","content":"I changed my mind on my toot syndication to brainbaking.com policy. From now on, only non-replies (in-reply-to) get pushed to https://brainbaking.com/notes/ - it was cluttering up the RSS feed and most replies are useless to non-followers anyway. Sor...","published":"2021-03-20T13:27:00","url":"https://brainbaking.com/notes/2021/03/20h13m27s36/","type":"mention","source":"https://brainbaking.com/notes/2021/03/20h13m27s36/","target":"https://brainbaking.com/notes/"}
*3
$3
set
$48
421c001c7efa6e36e6f331c005d31c27:brainbaking.com
$597
{"author":{"name":"Henrique Dias","picture":"https://hacdias.com/me-256.jpg"},"name":"Site Ideas","content":"A bunch of ideas for my website that might never get implemented.Wanna know more about the website? Check out the meta page!Finish uses.https://cleanuptheweb.org/Create /meta/historical with pictures of old versions of my website.Remove .Params.socia...","published":"2021-04-17T06:46:33Z","url":"https://hacdias.com/notes/site-ideas/","type":"mention","source":"https://hacdias.com/notes/site-ideas","target":"https://brainbaking.com/post/2021/04/using-hugo-to-launch-a-gemini-capsule/"}
*3
$3
set
$48
4b0d1434331f1a382493b2838dc4b1a2:brainbaking.com
$421
{"author":{"name":"Jamie Tanna","picture":"https://www.jvt.me/img/profile.png"},"name":"","content":"Recommended read: The IndieWeb Mixed Bag - Thoughts about the (d)evolution of blog interactions","published":"2021-03-15T12:42:00+0000","url":"https://www.jvt.me/mf2/2021/03/1bkre/","type":"mention","source":"https://www.jvt.me/mf2/2021/03/1bkre/","target":"https://brainbaking.com/post/2021/03/the-indieweb-mixed-bag/"}
*3
$3
set
$48
5854ce85363d8c7513cd14e52870d46b:brainbaking.com
$708
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"@StampedingLonghorn @256 Don't forget the cleverly hidden Roland MT-32, a majestic piece of p...","content":"@StampedingLonghorn @256 Don't forget the cleverly hidden Roland MT-32, a majestic piece of pre-MIDI standardized era synthesizer. What else would you use to run Sierra Online games, and monkey1? I really need one for my 486… https://brainbaking.com/...","published":"2021-03-02T17:13:00","url":"https://brainbaking.com/notes/2021/03/02h17m13s27/","type":"mention","source":"https://brainbaking.com/notes/2021/03/02h17m13s27/","target":"https://brainbaking.com/post/2021/02/my-retro-desktop-setup/"}
*3
$3
set
$48
69c99dcf12c180b8acb3c1c218d1f388:brainbaking.com
$655
{"author":{"name":"Jefklak","picture":"https://jefklakscodex.com/img/avatar.jpg"},"name":"Reviews from 2001 revived!","content":"Good news everyone! Futurama might not be back, but old PC gaming previews and reviews from UnionVault.NET, one of Jefklak’s Codex ancestors, have been revived. I happened to stumble upon a few readable HTML files wile looking for something else and ...","published":"2020-09-25","url":"https://jefklakscodex.com/articles/features/reviews-from-2001-revived/","type":"mention","source":"https://jefklakscodex.com/articles/features/reviews-from-2001-revived/","target":"https://brainbaking.com/post/2020/09/reviving-a-80486/"}
*3
$3
set
$48
78e327d69a3f5fa151f660b5a25c06a9:brainbaking.com
$682
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"Heads up RSS feed readers of brainbaking.com! Federated half-baked thoughts (https://brainbaking....","content":"Heads up RSS feed readers of brainbaking.com! Federated half-baked thoughts (https://brainbaking.com/notes/) are now integrated in /index.xml 🤓. Don't like that? Subscribe to /post/index.xml instead! Next up: webmentions, PESOS-ing of Goodreads revi...","published":"2021-03-03T16:00:00","url":"https://brainbaking.com/notes/2021/03/03h16m00s44/","type":"mention","source":"https://brainbaking.com/notes/2021/03/03h16m00s44/","target":"https://brainbaking.com/notes/"}
*3
$3
set
$48
792ed44939d1396d5156f1589e95b786:brainbaking.com
$707
{"author":{"name":"Jefklak","picture":"https://jefklakscodex.com/img/avatar.jpg"},"name":"Rainbow Six 3: Raven Shield - 17 Years Later","content":"It’s amazing that the second disk is still readable by my Retro WinXP machine. It has been heavily abused in 2003 and the years after that. Rainbow Six' third installment, Raven Shield (or simply RvS), is quite a departure from the crude looking Rogu...","published":"2020-11-01","url":"https://jefklakscodex.com/articles/retrospectives/raven-shield-17-years-later/","type":"mention","source":"https://jefklakscodex.com/articles/retrospectives/raven-shield-17-years-later/","target":"https://brainbaking.com/post/2020/10/building-a-core2duo-winxp-retro-pc/"}
*3
$3
set
$48
83313bc67b0730459876ab7c3b9738f5:brainbaking.com
$674
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"Heads up RSS feed readers of brainbaking.com! Federated half-baked thoughts (https://brainbaking....","content":"Heads up RSS feed readers of brainbaking.com! Federated half-baked thoughts (https://brainbaking.com/notes/) are now integrated in /index.xml 🤓. Don't like that? Subscribe to /post/index.xml instead! Next up: webmentions, PESOS-ing of Goodreads revi...","published":"2021-03-03T16:00:00","url":"https://brainbaking.com/notes/2021/03/03h16m00s44/","type":"mention","source":"https://brainbaking.com/notes/2021/03/03h16m00s44/","target":"http://brainbaking.com"}
*3
$3
set
$48
9427d6a53258e670b0988bbd7f9a6ea8:brainbaking.com
$704
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"I've been fiddling with IndieWeb stuff the last week and all in all, I think it's a mixed...","content":"I've been fiddling with IndieWeb stuff the last week and all in all, I think it's a mixed bag: https://brainbaking.com/post/2021/03/the-indieweb-mixed-bag/@kev after I published it, I found out your \"removing support for indieweb\" post. Seems like we...","published":"2021-03-09T15:17:00","url":"https://brainbaking.com/notes/2021/03/09h15m17s30/","type":"mention","source":"https://brainbaking.com/notes/2021/03/09h15m17s30/","target":"https://brainbaking.com/post/2021/03/the-indieweb-mixed-bag/"}
*3
$3
set
$48
d6a0a260f50553c15cd4f7833694c841:brainbaking.com
$727
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"I pulled the Google plug and installed LineageOS: https://brainbaking.com/post/2021/03/getting-ri...","content":"I pulled the Google plug and installed LineageOS: https://brainbaking.com/post/2021/03/getting-rid-of-tracking-using-lineageos/ Very impressed so far! Also rely on my own CalDAV server to replace GCalendar. Any others here running #lineageos for priv...","published":"2021-03-01T20:03:00","url":"https://brainbaking.com/notes/2021/03/01h20m03s35/","type":"mention","source":"https://brainbaking.com/notes/2021/03/01h20m03s35/","target":"https://brainbaking.com/post/2021/03/getting-rid-of-tracking-using-lineageos/"}
*3
$3
set
$48
f101a8437084c39583a39acbcbd569c5:brainbaking.com
$581
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"@rsolva that's a lie indeed ðŸ˜<C5B8> see https://brainba...","content":"@rsolva that’s a lie indeed ðŸ˜<C5B8> see https://brainbaking.com/post/2021/03/getting-rid-of-tracking-using-lineageos/ I use davx5 and it works flawlessly","published":"2021-03-13T09:58:00","url":"https://brainbaking.com/notes/2021/03/13h09m58s25/","type":"mention","source":"https://brainbaking.com/notes/2021/03/13h09m58s25/","target":"https://brainbaking.com/post/2021/03/getting-rid-of-tracking-using-lineageos/"}
*3
$3
set
$50
0f35e81e7376278498b425df5eaf956e:jefklakscodex.com
$610
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"I much prefer Sonic Mania's Lock On to Belgium's t...","content":"I much prefer Sonic Mania’s Lock On to Belgium’s third Lock Down. Sigh. At least 16-bit 2D platformers make me smile: https://jefklakscodex.com/articles/reviews/sonic-mania/\n\n\n\n Enclosed Toot image","published":"2021-03-25T10:45:00","url":"https://brainbaking.com/notes/2021/03/25h10m45s09/","type":"mention","source":"https://brainbaking.com/notes/2021/03/25h10m45s09/","target":"https://jefklakscodex.com/articles/reviews/sonic-mania/"}
*3
$3
set
$50
169d68f8372aca44b39a3074a80429d8:jefklakscodex.com
$487
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"The insanity of collecting retro games","content":"Is a physical collection really worth it?","published":"2021-02-21","url":"https://brainbaking.com/post/2021/02/the-insanity-of-retro-game-collecting/","type":"mention","source":"https://brainbaking.com/post/2021/02/the-insanity-of-retro-game-collecting/","target":"https://jefklakscodex.com/articles/features/super-mario-64-aged-badly/"}
*3
$3
set
$50
3bee3dedf14a37425fc4d3ec2056b135:jefklakscodex.com
$447
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"Building an Athlon Windows 98 Retro PC","content":"Gaming from Quake to Quake III: Arena!","published":"2020-10-17","url":"https://brainbaking.com/post/2020/10/building-an-athlon-win98-retro-pc/","type":"mention","source":"https://brainbaking.com/post/2020/10/building-an-athlon-win98-retro-pc/","target":"https://jefklakscodex.com/tags/wizardry8/"}
*3
$3
set
$50
460e6c81d63550d9bfb79051bb86eb11:jefklakscodex.com
$489
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"The insanity of collecting retro games","content":"Is a physical collection really worth it?","published":"2021-02-21","url":"https://brainbaking.com/post/2021/02/the-insanity-of-retro-game-collecting/","type":"mention","source":"https://brainbaking.com/post/2021/02/the-insanity-of-retro-game-collecting/","target":"https://jefklakscodex.com/articles/features/gaming-setup-2007-flashback/"}
*3
$3
set
$50
509cf066810eadacb400e2397de5ed86:jefklakscodex.com
$473
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"Win98 Upgrade: GeForce 3 Ti200 vs Riva TNT2","content":"Get more out of that AGPx4 slot!","published":"2021-01-28","url":"https://brainbaking.com/post/2021/01/win98-upgrade-geforce3/","type":"mention","source":"https://brainbaking.com/post/2021/01/win98-upgrade-geforce3/","target":"https://jefklakscodex.com/articles/features/the-best-and-worst-retro-hack-and-slash-games/"}
*3
$3
set
$50
6880bf0f22930290ace839175db2ea34:jefklakscodex.com
$424
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"Win98 Upgrade: GeForce 3 Ti200 vs Riva TNT2","content":"Get more out of that AGPx4 slot!","published":"2021-01-28","url":"https://brainbaking.com/post/2021/01/win98-upgrade-geforce3/","type":"mention","source":"https://brainbaking.com/post/2021/01/win98-upgrade-geforce3/","target":"https://jefklakscodex.com/tags/wizardry8/"}
*3
$3
set
$50
6c97b9d5bf75e6601d3560dc3ef43771:jefklakscodex.com
$482
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"The Internet Killed Secrets in Games","content":"What's the 'secret' of the secret cow level in Diablo II?","published":"2020-11-19","url":"https://brainbaking.com/post/2020/11/the-internet-killed-secrets-in-games/","type":"mention","source":"https://brainbaking.com/post/2020/11/the-internet-killed-secrets-in-games/","target":"https://jefklakscodex.com/articles/reviews/gobliins2/"}
*3
$3
set
$50
7ea008404c0004e592dc84213253d942:jefklakscodex.com
$479
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"The Internet Killed Secrets in Games","content":"What's the 'secret' of the secret cow level in Diablo II?","published":"2020-11-19","url":"https://brainbaking.com/post/2020/11/the-internet-killed-secrets-in-games/","type":"mention","source":"https://brainbaking.com/post/2020/11/the-internet-killed-secrets-in-games/","target":"https://jefklakscodex.com/articles/reviews/sacred/"}
*3
$3
set
$50
8fc122b91788ceccb834ae721031ad98:jefklakscodex.com
$440
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"Win98 Upgrade: GeForce 3 Ti200 vs Riva TNT2","content":"Get more out of that AGPx4 slot!","published":"2021-01-28","url":"https://brainbaking.com/post/2021/01/win98-upgrade-geforce3/","type":"mention","source":"https://brainbaking.com/post/2021/01/win98-upgrade-geforce3/","target":"https://jefklakscodex.com/articles/reviews/dungeon-siege/"}
*3
$3
set
$50
e8cd7a857456a9de776e7a13c982516c:jefklakscodex.com
$502
{"author":{"name":"Wouter Groeneveld","picture":"https://brainbaking.com/img/avatar.jpg"},"name":"A journey through the history of webdesign","content":"Using personal websites and the Internet Archive","published":"2020-10-04","url":"https://brainbaking.com/post/2020/10/a-personal-journey-through-the-history-of-webdesign/","type":"mention","source":"https://brainbaking.com/post/2020/10/a-personal-journey-through-the-history-of-webdesign/","target":"https://jefklakscodex.com/tags/baldurs-gate-2/"}
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T12:54:38.452Z
*3
$3
set
$23
jefklakscodex.com:since
$24
2021-04-16T14:40:36.133Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T13:36:36.230Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T13:37:44.188Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T13:38:26.658Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T13:49:17.147Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T14:47:47.351Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T15:51:26.080Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T17:01:58.204Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T17:55:20.524Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T18:53:36.453Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T19:46:21.245Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T20:47:47.622Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T21:49:08.986Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T22:51:16.375Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-18T23:50:29.318Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T01:07:35.145Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T02:08:12.030Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T02:56:24.545Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T03:52:37.159Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T04:53:16.053Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T05:50:13.478Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T06:53:12.051Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T07:48:50.675Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T08:50:56.390Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T09:50:59.391Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T10:50:27.567Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T11:47:46.936Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T12:55:55.440Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T13:50:11.048Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T14:48:35.217Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T15:51:50.183Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T17:02:07.277Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-19T17:55:47.794Z
*3
$3
set
$23
brainbaking.com:picture
$4861
ÿØÿàJFIFÿÛC 


  
ÿÛC ÿÀddÿÄ ÿÄA!1AQa"q<>2BÁR¡#$c 3STr±5CDb¢ÑáÿÄÿÄ1!1QA"a±Ñ<C2B1>q#BÁáñðÿÚ ?7«ÊÎjÂs7“Ùõd¬;ÊÖzcñ—¼zÊÕ<18>ğюüzʔÃþa6øc°ï²¥4õö}'.Ǽw•­©=C­å€O¬w”­©bþú]ˆ•yÌàVÎ^±ÞûNG~»ÇssêI„¹/´„ûN_/HìL…sTAUýœ`lmï÷.æ_òÔ˜uJ\­@ÀY'`{e{ÇøE¤MfßÛ§íÀ<Ñ^ï§46õ“<C3B5>Í/Ç43Û·ö¨ûqù£ñÎ:•r6óçLf<hÍ—^uÅ¥O`_š1NðUç<1F>ý£Vý'—ì£RUW
žYSQ=È#Þso+n*¡Y1DÌ`æ¿ž%jÕÑP¦H§3•pÄM=
fÝ:<3A>Tm·ÞÉ•P5:Å–ˆ;,si¯þ'¥<'8(Õ(êUýÓxî<>¤Xþ8p±aˆûbå |oéêÓ ™šjF}D$Kg‰ø×éïmÆŽžDcò¨ˆÔÂuü°ƒ§j*UvžÅZ<C385>9‰°ä£<C3A4>§Ù_/"öšl?4åŸ4%7 Êj€J
b+Κ¬•Côã:Pß|­Kh~%0ox1È­ÖP»ý9Í”~ñésŠ«BM5õQP©I%ÅLpom”÷—ÈÊñ§i<C2A7> ä€76ÿ»¹€ñž)õƒ»ÇíËå+z{QÚ[ïÌ 6ÚJÖµ*Á)ä“ål»ÆÀGÄÇ1%MÒzn¢¨ºV#Å
-(…Ï)襫òy'¿Så„ÓXRS
.`¾ô<C2BE>ßsœ<73>O§€£Â-¾à|ú_ €¹‰ÌØMrsÃÕHG<48>QÕaL¶¢-+rn6=†gdå* »ƒÓÝ€-´#4Ÿ)´Í1¾6i«$<>t}÷·žù˜ùLÚ§‡M™ªr_KURãïRÐ\q<.‘ï{Hʪ D¶Æ¤ÚF<>Zä΢ršÌ‡Òu‡Ò°_6JUìIØ—–F¿”{[‰Îu.œhûi´Uç¦bÒ¤‰GíÅî ´J9KpV§+Û¾!Pê!¸˜û@Ì£þ¸BIœI“%²¤Ðä¤fN•¥ãŸ?·ñLÞRµéȃbãñˆùDoÅ;_¹yKTD ª†ä¤†¦ÒJÜA ÷A¾çË"}—B(ÇY<C387>Z¦žL(I.,$9Ã+ Þÿ£4)˜K ,<2C>åNŽæ¢ŒøŽÕ¸¡ºÈì)Q‡Xôý½aã¤à³,¥þÝH y[9çR_Y×ÒqÀZ)ô˜°f\hž€'§ÆØ¢*ìd¶àÉ18QH) PÛkoò1¹¨¨ÌTã?O<>ÒT‡RH"÷dÙpc¬¾JeOiõ!ôÅB}U¨¥ _˜<5F>×4/¤á™J±Sé^cÃÍ1ÒñR€ñ:ˆV/¬5@ã<E28093>7Q¹Â“Ö.ÚH%3ûEÛób3,)ŽÊî<C38A>ѾG<C2BE>í2ˆ3UÀo»]r®# ^7ÿ…дh<C2B4>$&]M!Ix%'¯ÛÓ&î!¸¹€f¹¬Ò—"%>D<44>€»(XnGÇ øž˜R <0B>!5H[^?¹,ű\ú}R³¨4Åq€·Ð„“å¹±ùtß¹ÇW®ˆªï¾<C3AF>¦óE¥Ö[F§¢5e<04>ôön}€qns?ÁQÚüOÀͳ^•1`Ãâ>ò}\â‰NO
DšTG˜Í­Cü¥D“òÂSˆö‡é|µseañŠv<C5A0>¨ÆÔ´ôÍnˆN zŒ>Aáï±({FAè†ÔE…b£YMfžò[õ67<#Ì`ÍD<C38D>D]k)xÇߤF}HúíƒÓ%•uœ†XQ]ÈïntRŒm1"Aá?"\ ,}Ìëi.ãsî_ôáÈa&A³¬-Bû¬äÉÖFÓ0ãKYWJ€Â>\ö˜œçªÓó g­´âÃA—ãiz³í C˜ëhn×÷ ½€(à9tÚ™Ò~ÛD­<44> Áš¼”å¾³¥U>—H„­COàe‰‰úêÛˆ<05>î“}‰µíkžØ•
ï@€†mu :y"åEã¹PÓm/SihŽËujã.·Â´ØÚÆÛ\bõ³ª)²´¥Pd-U.cÏWøVåu—Õ<E28094>´¬XÕšt'&Æ}EM­±Åq¿<71>9,|ÚÍUy6—ˆetÌe¤üPlmîŽ<C3AE>+É$P!Ë<>RRdRçRÛL8­6¤â€*Z‰Ù@ƒäI¶vù]F<>ÇZT×P&.'O®•®\ziov¿ôʬîDÒâê亣2f5í8•¨"o¨xB£_Òu
;ç;U½ÎÖõôšu˜â0(76 ¿Â3*>$9…͵ˢéz4Ý0õ¸_+”=tú$z·HA
Jn½®v1Ã(žF:D[©­òè¤[ŸõMâKJRéPtÿ5dD£=öèïÖZ‡à™„](x€ªà¤”qlT <00>òíR™uÓ/1¸×`}c»ÄŽŸ09u:bU°EööæS•ò-¢ø·¹¼ j€Ÿîÿ‡&Ц>@Ç¿ýG&e<>¦W?]*ƒî¶rüÕ;ÌK,óõâ¦?á·—ç©Þ;,ks=ÊŽ¹Ñ²éHa&S*D¸„*ʶo`}¢ãç‰W/Y?„ÒéYK‡”µ€è3»Mô¨<C3B4>Î<EFBFBD>ûjKÊ.*âîÄ-r6Á``ùØv<C398>ÍT7ä63Š"½WиÖ·žA÷ÖA …„W¨ÍÄJS<6D>l¶ãn ¥iP±IóÇ
Çm4Þ!Yyi"JÖ:vœŠM"¹HˆˆíIXÃ@l€íŠ\JF×P
·[õÃêd½Jf™õõõ<C3B5>®2Ó`iüø1³§è<15>ª5´Ü6ÔÅ.V]i¥,ûï)v¬‹m€ß©ÄC-F˜Üëï.'*ã"©·`;w?É•¯Né½%X¬ÂŸ$w§Jr§é„-h)G±·*A¿kœ€©T…]tÒ'Z<>%g¨¶×_Óî'Näç+5‡¥R*z.ˆóÕʪuEm#¡?²K…ÖXsƒ²”[;\6Nâù¥_$ÑÆ 1ätÀ½ç
ÔÅJ×þ߬zx“Ô/Ëåœö€””[alçUoUo51÷0(©[ŠG_Oñ9¦<39>¶3š
¢n¤äÎñ<C38E>¦RÿVä…ol£M†ól´Sc/kF—…Ó5C¦L¡§i{Z-ÖÜÆ<>ˆ¾Ý²MM”kÍ <09>÷tƤÓUêæÔRe´ô
¼Õˆþº‹\*yN6¤Žà¥I#Ù<>{ í;ΙTÖÇ[ˆôÐ(nk©Jì¤÷|Á¼>]uÞ)<29>]DGƒ*>ênrÔð¿#hâLöÖ<C3B6>ˆ­Ü;tÂQ¶& Qøȇô¬6RS.:
Wª°”¦÷á)¿ q犕U]²',ÔЉH »­ëàjfbÕd:êi.ÅJrl«ôßËÅ÷Ê­I1]˜l?ÔWÕ¢ãÑ[1 ¢$6JŠ½&KH¹ïÂ<C3AF>ÏÃ{bÕi17&p•Oa_ЃËZ‡¨¾ cµºœ‰ZÊóO¹)ã†<Cü¿Äáë :Í(`z ó9"c×u$:s%µ‘Æ ±jîTÚp™MÀÞ{§k­L€™aРIÝ°G¬SX<53>ä/yØÍdÈw„]IÇ¥j½Œ {À·œ•ˆµÞwê-³!\Pè¥6ÚP³ò ŒF»<46>!"zWA¤Ôð<C394>7o¬ƒ§J{HÖKn¡Iˆùõ·Èã h”(tŠ<¢'zN¶¤­©¾&ûI&†8¤iÊmi-Ìt:Ü°„¶eÕ!`×mŠRn&æ0üל2èâ%q™«Ö%]2 ù\á/Ua “H­Êˆôäm"=,»_«ÎS®Gml²·ˆ+Z•õ—òHøœ<1A>@”ã?rg"Œ»îmô%>Y3aÉyivî„«p<05>¿Ôa¸D>M0Æâ󓦚Þ#ž8e¾Y¾úPâÑÀ¢QÄ-‡õ¤QI€ï7z]ʵæ?ª¾ìX‡ù?‰ÀÞóTí4Ó¾õ-³æNYÞ5L•j]9.·ªãŘ§Ø†ûi²À)
·`{“‡d(m}t´à3iµJ¡}#_xŠðáÊ-Lç/õ2§U¡ð¦[‡œm…<6D>- *Ä\npj˜U˜YEä ¦43­>$¹NÞ<4E>rµ¥õ<C2A5>'Q8ãƧJ:â»q'e!>e@}¹œô[®ÂÓK¦`Öê5<i žÃïÚÒêš…U™×õj¸§n6.TÀ¡<E2809A>äm=v<>F˜Aè-¹Tª”ãII[c<>»Ž»}_˜Úÿ 5¤jLh˜Õ-.µH¦¸µ47S èEûyü±U7Þ ÚEEó&<26>Xe,Ky¤#«n!B˜96ÔIêåjŸ"9Þ yÄðŽ\ïúrª•?3Uh¡z¦ÀÙ|jÊà@Ld´¤7`¯n@Ò\O%zÿ3<>ÕŸÔÞ:´†·Ÿ%hfL”¡QøKg¹#%‰O…ndê6Š
ÅX;FŸŒÊÌŠ<C38C>)ß’òÁôVø~mfȬ…çKÓ˜q6€Ýa_ÁB?ÈŽ$ÍVžiª<E280BA>Ñ·s×hgøþ |£Ñ2*zOMRejZýVaæ<61>Kp(ª§A*ZRvPHÜß7òJd¨Nžÿýq8Ú<38>Mtcy‰ÍeY¬ëMSSÕšŠ¦ìŠ<C3AC>Z[³%8`\qEF×ÞÂöødÐp[@<19>2)…®˜ër©ó—CJ
Kˆx¥À}ŠM·É<C2B7>Y†¥G¦y!±ï~Lx™•þªs`RVô*ºÀâiÔ<69>R¶ÊIµ¸úïpn0sºB<C2BA>ëc<C3AB>·iÛô_݃³v÷¿¤8ôåB%VŸlU¥m>Ò\AJ<41>qb:æºÙ³†³¡’ª¥Ã”¾,¡i>ι5Ä<1C>æô>Té½O_‡4tú¯:8Š.,€AR<41>»‹¥YÅ%ÜÌüºëB;û}M¡ôÖ—_ÑáRa4—Oìý&R•‰êp¼ŒqT£jgæÖ«SJ®Mý÷‰ö¹¦I.Æ`M‰®AÇÈÀjPe^B7èêJ%#<23>Dìz\bKUj ÈX´«ÅÚÂ9(€…^î21zâ̳³éféø@ÖµîSávý†F™->Ò4VMûœ“o-vƒ,Š<C5A0>¢·$­Û: ,-<üÞVÓq¤(ðHõ|Ǧ/úrq&3U5IR'ê©%~Þàd¤A"k2CEøª ßmø=¾Ñç4.|NÔ9k">ŽÕË/é×^ ‡
®ºqQúÃÍ«îSÚäŒÊÏéËZõièßYÔt^¼øǯ­3·q÷üƒ]‰1¦Þ<C2A6>) …¤‚.=Å·¾s:¡±ô<C2B1>ýà !É].¸ujYì)3*BÍ…Gk˜ûß gQб¿¦r[v¸ÀõüLâúÖ_ž¯…²¿Y9©t"µ=A™2g)„0xQººôßke¿I­W%«°?¤Á­HUp×ÐOG,¨à«—ço{)| ölœ0tª,¼j\þL !'D鉡Fýϸɱ C`׶*ý3éxÛÞ7øÈ„Q¡ƒ_<C692>:lZw+YnIiµº„ð§`8NÙ<4E>Ôè®6B¢miµÓß<C393>0Ô™Ãc`”ÌÖm§ÚE7¡G$yãkÞXÚ ED8H6ß:<3A>8¥åºx‰±Iá;d¢FzB•ï$ûŒr§d%-µ•²µ¶@ûª6>ÂÇÚäVÒ%%°•©&àt;Û§Ï(m)Xƒh¶xv殶£<º3UuÉ…Lr3X“wØ2ºlOºvòÌn§B™¤Õ-®¿IÑtÚ<E2809D>/dG»ø™É„¿R3np¥<IÉlè±ÉŽŽFàAœYȗ᧊Ç×pPþ iáåÔW7[©¸¾Ûæ:Ú<>˜Cîÿ3W§nÐÕÂÔÈ6ÿ32Ÿ¬Ù;K4ûo<>Ëmå<6D>§ÿÙ
*3
$3
set
$50
0f35e81e7376278498b425df5eaf956e:jefklakscodex.com
$596
{"author":{"name":"Wouter Groeneveld","picture":"/pictures/brainbaking.com"},"name":"I much prefer Sonic Mania's Lock On to Belgium's t...","content":"I much prefer Sonic Mania’s Lock On to Belgium’s third Lock Down. Sigh. At least 16-bit 2D platformers make me smile: https://jefklakscodex.com/articles/reviews/sonic-mania/\n\n\n\nEnclosed Toot image","published":"2021-03-25T10:45:00","url":"https://brainbaking.com/notes/2021/03/25h10m45s09/","type":"mention","source":"https://brainbaking.com/notes/2021/03/25h10m45s09/","target":"https://jefklakscodex.com/articles/reviews/sonic-mania/"}
*3
$3
set
$24
webmention.rocks:picture
$30648
‰PNG

IHDRÓ?1tEXtSoftwareAdobe ImageReadyqÉe<wZIDATxÚì½|Õµ?>wÚviÕ%Ûj¶åî \)¦˜ö^˜<>¼$”@Ê/!@÷<C3B7>Pòÿ%!&y/¡¤PlfŒÁM.Ø»l«[¶ºÕËíÎìÌïÎΖ)wfWòîJŸÏbV³³³S¾çœï9÷Üs<C39C>§â#ì’$DþzÍ/‡Çÿ–þà–•)V£ðöDsªf¾¹é¹æÎ)ãòÖíO9Ú{BšMDA¾ñt<C3B1>¾ÿÖßÐVÓ8z(ø%\&Fºk[üèç… ÃDôü¯±/§ÞÙåhï\ˆÿ5£Ø|®i¾±f§Œ/ô_R€ÄIëÑ:)ô¡d¦Ñ¢ðŸèIMËX¾
¯Ã}ô¯[¥[h§)àt³ð}Îìâq÷\ÈKÐLœ¡<>î3‚¾Å„‡6ÆÍ¿×éWURhníòŠ[ÒK&Œ»çrÉ$JŽÕ ïG? |óC
0òþcß*E?EâÓòé61°ÁRKò.y€K á9~?)6B¹À%ÁåX“~O±eBŽ¡½ÏÇ°œøçx¤@—<@Âe˜臟:Úƨ´¯;¿·B±qf<71>±µÓ¸œâ ãñÑ\ò<>s{*Ô«)Œý<14>ÚüOÎ7YŒXKÛ<4B>HêÒJr/)À%Ñ0Ÿb Œ4ƒˆ€2ø¨ö“ƒ=õÍ!óV“s M]ëãÅ?ÓŠóÆ㣉@<40>¼ðé%øÆ&üU˜ á@s¬<73>¿×á>øÜ&Èàú³¶KO7d%ƒÖ.o€ØH<>¾Œ
åͯ=ÛYÕr Ç#7ÿGë”\ÈR@c\Žýý¯Ëºèf
*ÛÚ>Úm<FÀ`Î7—´ôüë;/œy¿ü”G”U„ `i×$ŸÝµcÈÜ@<40>túÝÝŠ<C39D>ö$*Ëšº| `qÖ¬”qút"(€Áf*ºjÇ9´í±·¶ýò-Ï û ‡ËºëZBг™}eìœÙoßTo,š$”ptõ³ãÅWÚøLEE<45>ÿZñÍ™ËÿuÏ <0B>Õ—èÐpaX™¥H<@ú©ðfˆgÌ(Àù½í'êÄ‚ŸÖ-f¢([8ÕÖ žÐžã4ˆJrS`guë·ÿáØe—<65>-ÿA%@“íTàî§Hî?ÎOCðcÃwzî]?èeÚ[Zd†ÿö:8— mü2{1<12>þ¹û÷ïø“¿]¢CQEÀ¨PJr ò(Ô—ø±pæ§ÿµËqA™¾«Ðoþ»˜PT3~S@Ñ*@Þü¢Œ©²aŽú<C5BD>»î×͇ë/A\GÛz<C39B>iÍ”à00âÈÉFOmëXˆ}<7D>ÿãåV€šDÄ·uzÃ~`ÖìÔ/³Ëå·ÀÈøÝ{_ØýûÍ—€®É¡÷T ·#ª€0ž&<26>xcÇB¼ç·o„žtèEQBéÜæâú˜ÐöìËÇï3ŠV¦ß² )'%tOÚϳìÍÛ×´ö\;"!d´
·Ï$üA°¿>44Â$ w<>îi7î=Ù~²N¹ûß—˜iB(íèã¤û<C2A4>»I0#QQBÈÏJ1„¶wÕ´n¸}}å
¢ð8fÑÇ“ˆÈ(ˆhtƒ…qßçßSØ~Ì?ñeª±gØÖå•ésQÞWBæܽ<8™˜k(Ê·HîÚÐg<C390>oüè'½Kó?È›àúÐÚ[dù!»5ÌF±"èô»»=êÒ¼‰ùFŠ èC§\Æo
hx
`°™¦ß¼P¼5å§ûgL6\>% “øɳ»NýíƧ×]B¿`þË*d·»A«o"<22>_„$c´œ€û¾ö ò£©y´øæBçe9©{°f¥}%Ê⯠¹ï½Ç箜“"w CïÝÿBÙúK±$<00>Ýc>%hé) Ï ¤D Tx°£mt€=ϼ<C38F>Ü>)ßh ]·v1@N<>R¿"óŠM˜W$¾ïqx<71>Ö{JrÉk—¦Ò!=؉ eï\ÿU3î®m¬8®D?ü/;%€$\ž Ñ¥@µŸô<>ûÊÝÿ5s²òá wö2¡ˆÐ bÜV<01>DB¡°('«º¹ÜvšÂÃ9"düÖºg<C2BA>oøŠŽ úBݼ=‰VíË«;¢$ž ã¾Ï¿'=¦û&M4
SáÙÃñýýÞ`CA¬Y©_1¸y<C2B8>ÍŸÙÞ£ƒð^¤ÙÀׯJM±ÒŠØiÏúÍïÝ÷üW0I*Ÿ=(΂îMª=lõ‰T<E280B0>üàéá²PŠÄGË|þ]Æé´ò9hþ¹n_s«ø¢5'í«¥~'°0ô^H„ê„œE`7\”ŸmVìÜr¤~ãºõgwU|uÐá¬ç þ`4Ÿl#1‰ ”@eDOb+¢ÛOÔÖo;¤:+áäýì_ H"x'ßÙÏŠazèõ•ó˜jTød-$B¼¨«çš ó,
 #ã-ÿíㇿ*IÒ`ú?løC
¹N±4Z(ƒãÑe?€÷º\‰ÞûÌ›
܇NÌoþy`Çù|ÓÙùҎëA€*€Áf*½i<C2BD>ô{<7B>ô²ËLKg'+)( »NýcíÓ_WàÏÿHÑÆS($!G¤„IŸj<FÂjB<6A>¿ö‰¿è<C2BF>W+ä$aÚ»pÂD6Åu²Î!ÞíbÖm\c#nR* …¡ô9¼ÇêÃ#%¹ÔÊ)4<>K  úäá¿í]¿ùKì
 å>¿÷¤”ö„Nr¸ö„¦DJÊ Ì&9RÑSß|üµ-jG$Ò›á Zqž"õŽ>Ÿ*FƬÙi_EÈ_œ>%Wü6g„Â÷qR±æJ¿¨\Á‰<C381>eo¯[ßräË9^vnÏIí A*3]®"†H ®ºIX"h¯<ñböÂÌ šÿÉ4×(X·.éÓûJÆ<00>HàîÊ»ylPz{R­àkW§¦ØhT˜Ø»ù{/ì}öKè
Îï9¥ ="° $[Ã ˆH
S éDá¶ãq7Ðö÷Ô·(pNuÉ@ úÉ3µtôxŽJÊÓÓx^#W€ÂU3iùÌÖ0
xØuKm…yf©«½\Á]_*Wàç?
臀•j ßm jªÈ ÷Ô5ÇŸü|¢Æ½x*aö_DsíÂÜç7äò)ÈRJÑ„¯®ÀP¸xÕ,Åƪ:‡cHz<48>W^fšV`Ed°íKå
üpJð$ë³@b!<21>ÿ=nÇÅÓBYxžqºãÊö=óú¢"NŸðÛx
Éuù€bO€}uÊåw-Wš@·÷„SÍ€N7,ž“Œ0tW°ûí»~ÿ%pç÷œD¢Äàæp¤èeÊ-ýÏÅíñ‹ƒòs¶E Íû÷ý“(_g ð¡ßÉ©÷ï9ÐU€Œ©„PX.z†N722_ ÄÔyãŠTŠÀµ]Áó{ÿ°iüºÁöžÐ°Ú¸f¤†ù=°Ê?¦Âm£½!â@òsâõO&_׊ì_8¯b“ȸ׫6^ã=Š]|wèÙw­PxFx—**bg¯]a·')fTàØÉ·Êþy÷xu¢ùG³jI€ Dó/}i1¡î@PÚ<50>×Ɖü( 
m᳘˜(ü$&RÜË †_ðNýý¬Ò]Äšÿc9%ô‚ŽCaE‰Ðž.dpÃæëØòsL*ôƒ<C3B4>+xÿÁqé
j>9´1åï€4"à<>X$ãbŠ&¶rè…w{ZÐ=ŠÆg— lk`l§£—C>V9P<%<25>*XL/#2KB/ø'ܘV¡uœ$ÝŸæv÷ùNÒHPX5×<kšMŽ~Yzºwî^ß°{Ü w׶ôjãÕn§$àá<C3A0>¼1(.aGfcxlÅët÷Ät<¸ýDmåæ]HèR4Ñ?íK(}#‰$k Ì|ïsúTN[xY.r* AiÔÔÕä„Ë<E2809E>q(¸*ZWWƒ­<>P(Ñ~ä”I„ĈZ27™Ô?ªF"10ØÖ³õÑ¿n}ôÕqá
Ôví|f<>®0âA7!¼ºëc õ:Ü;ŸxY úBÓ×íÃÈ#Û:z¢]þ£,—1 v<E2809A>È™NOY ÿ”®<E2809D>'Hª` T•±«B(<5W<35>OsºÙã5$úE)É!¯YžH€”†²SoÜúTÕG‡Æº|r }±¶'ÝN†¦Sûs r<0F>æýf“l¥Æ}'cu†{׿Á8‡”З¢I&Šò§e¡ùO¥|MLh/¡ Š ÷`Ä!nI#ó.§ ôÓ
¸£s¤°ó˜U1FÞŽª³Ž2/ؘfÿ~UŠ]>Zì÷%¼Ät í|zã>78V—ªýä °˜
ý¡^'9©¸Ö¸ôd‰!3 ñÓp)²Úc”ª|oWóþ“è‡<15>˜ #'Ñü<C391><C3BC>ë»o—˧Cœ†Aôq{Þ¾;¦ påL…ù玪v—Ý>H:oZf+ ö˜<C3B6>¡?«a­Gëß¼õéÃ/oáïÖCHô§nO¦ýBqo£0@ñX„=õÍå/¾«}qKiIdÿÀˆls.Üø¿£×'MÉ"ûËJ¢"ú™SèÒ5Ñ)‡4)NÑpl†ÂÓÖ.@ðB? 0þa<C3BE><61>ùWROQ®˜e\2'ÓR£ ~åÓ7oyªõèÊ“:Ú{”vZ~<7E>"¦Éø+°#î¹4,NNí_÷éÁ¤þÛù“ô…*T319'ÀF¨)B4<>þ÷ÚÈ„ÊQƒGÆ„;d;téµDfI´lGçh´±«˜?Š©ã¿œªr0\ý€²®ÈA)Î!o\–êï¥<18>É`{ï>¿óé c¤<63>ø©wvé <4A><C2BA>ÇÁzÚŽ
Â=x«D€?us1§·ó‰—ô }Qf•˜ ä£<>þwñ¡O]CœúѱøÛijnyî…¿””LÑR§±­+gÙrR<72>€—åö…†àöòx>%è€jïTX»"E:shœuõò7o{êäÛ»GýоÊÂ_ú¡ä¤ÊO ØB>}r˜ã ¥A<C2A5>K¨hTü°çlˈöýþ<C3BD> Š&‡*?<3F>žFåe<C3A5><65>îŸS<C5B8>ð_æü<C3A6>4ÝÙ?ȪM>2r;#b;g*«{üɉùy?úÁuuµFFÏcZDвÛMmîVI5{ÒCL¡‰ $*ˆ­Yb-È7G<eïÿïÍï|ë÷£Èˆdá/
ýv;E)ú_… $²á%S…DP¨#ƒ¸Ë™÷vŽàÜê·¬ÿü ôE|—˜gmÌ?|õ1ÒtgŸƒE%<25><54>‰ó…ÜÎ0ÙÎgÛwÞ{ß÷fL/ýõÓO„s'Õ5ãÏøsAËuìöGe³Ø㢘"&*Ö$Ô„Á<E2809E>`ñœähmݵ-üà9ȈF¥©ò©wvë Jn&¥¸@iáC(½HŒŠå@F\~~ÉPHœö=û†vLÀ÷Ä<cf€ŽòÔT¡ÈwaH¬þ˜*cýü<15>÷ <0C>d,Æ“²¢?½<><C2BD>Á÷6pÝu7\{õêW_yIñi]m­V
uL+€-7U]aX@2m!öä9Í@SHµ)Î!®_ê¢q¾<71>©·5#zòð« ÍXBBýã3¤áù?ÅÅ& b
È(%ÀMa­È
“ÃLᯠ+î©oÞõäˆ_65£ Pø£pr °`= ýÌ…ÅKŸü?B€q$KEô÷̳óæÍû÷ÛnùôStÆòCÄx±Îi7-Ô íÂM¯ªs:=áÛÉõòì)¿Ì5b¨ n»Êž*žÓ@@¡œž#¯~ºáߟ:W Š£Ûª<C39B>~ŠÆ³Sp<04>¿Ü<C2BF>§,̘rhÌ_'?9ñúèÑ¿íÑ?…_¥á<0F>(-6ƒe\¢ùÇüùé1Y wK1Þ¼ô¦÷þ¶ö_ŸMûÎCú]<5D>Ù?ôÓG ÑÿÅÏ<1F>D_gO¨ÐE$&sX …~( Ç:ã’~àkñ1õ2—$çS³i¿i™uJE÷LùÛ{¶ýç«þð9­Þü16ÿÚè÷'@iÅGbwÁôý~ Xa¬“LJoBÀ l;8lôchÃ/LE>ø“°¢ù÷]ð`aþ#|%¤¢É¿c×î•Ï½™1åØÎâE þû<C3BE>ÏF«-åˆ8˜Æ¼0ØL+fê µ¹ÝÝ&_^ÁWÉø:Y*—4¬0
“?øÀÃX8<58>^<;IN‡B柗ÒÀþmÇê>úás»~½!NƒÇ0Þ8ðçMúè %-†p% ©N¶Êô$@ ^xW?Î £_×ðŸ\6ÅL<4C>ŸÍ?|Ãv0ŠFO»ëÚ¯ïøP4ùtJflÙŽT#ãà8 ‡Å~½rY.Hr÷CÏ_Tà…=6Ä úpA/5ãV4…!Á5Kƒs =§Âè—nªùäÐƯ=µÿ6Å<>>õÎ.¯Ë¥<C38B>~(ùYŠ<10>M;<3B>†ŒâP@¨"`þfAŠâj¯Ë½wýšhÛ2Œ~”á—V1$'““sÈÏ1ãTžIüŒkiÔå ­<yÍÎcKû[ñÌaݟ϶ïŒíhÉñcG5€äØ>Jà©ø(¶Gô º_»éi¯cH¥á}æÍLš>Qûòx
N/2ð,ï=èâû8DÁ ^?\5t¶Ñîº#1ÿÕñïG[<5B>3o_9ëö1™ÁähïyûÎ'"¢?ÙN­YlUz¡™Èˆ>ár,gèoñÕòHL­­òˆtñŸ”õ!×,ºâÑ»îèÄ[*7íRE_šeW.HÊ
%f¡®¸Ûëùb<C3B9>ÈŸD/¾–^¾X†]ëÙΦ÷?Üøæõ÷h¶À#*Ž|Ý ¾¶31„+‰ÅZ N ê£r•ù_ÏÉJGI®<49>[âø·s½srˆžk:5<>9êæ:Yõ=¡IléL£=‰<vj02úÃ:ú×­§þ¹+&j°û7o ѯl«6Á€pƒò™¼¤ÊW <03>âY˜Ìd  <1B>ê2_ÿŒ=º/ÿæ Ù——@èCÃüõ-Nåš.¼ÜÈNlb¾1+ИQ4ÿþèËœC˜¦Û»Ž(˜7{Ü<>>úXšË¿x9SY5½tš±“|1…kìJÁÊ™A@ _°v>îPåЗɀèke™dUd€½Èä=5Ä<35>c<EFBFBD>VpúD2;5ewù€kÈ'¥þHó¯Vƒ)×/šyû
[ÎHf3ýû'NÔ#ѯØ<C2AF>ŸA*µ`¸ØWh5nç•Wz*¹ <00>ã 'ë¶ýìOŠ+Õ6ü¼”ð>»ÄÚHÏJ'òWá“®™óGp7 Éÿ|Çη6n|çŸoÅEå‡<C3A5>ª 扠¸(ô<00>uH˜7b¾KC“«´À˜j“mg+½xM¡gî«ôƒAy†ÔŠÝ¸,iÿ)wKÛ£è|,TƒSïì>õîî)×-œùõi%Ãèls~ïÉcÿ ­D¿ÙJúgÖÊÐìádÀö[3ú$S»<> aÅA4Ј
6 +- T}–¬¢æ­"çÞ<bó¼qãÛom|sd?ÑãœÝcZü:pÃgœ×.²(òžÌ±!|¹YÌSE40ö˜yšâWÎ1žI#<23>ŸŒýR©Ùz¾ÒŠsg~}åäe³"ò¢îº–²ß¼ úá¹ÑWu[ÒM…þ<E280A6>Ûq.X0*¡CLa.úƒ´+9‰œOBoþöã#£:q5ùJ 3 @¨OG—ç|§q,5Îc æ=ê¦ZÄ”(™Ká6Âû…KŸe<E:TvxÐåf‡Ÿúâý°ÞPö¬äº“—]© §ßÙuàù÷¢D¿pù9¤£²5èàüÚ
½R`£Ç‚ h³Rq„g
ýýBî¡Ô ÑoýÙßFàƃåë8”dC° î†±ïĸ<z³‡vô”sÒ*åèâê!H<>¸Áé%f¦Â ·+ТC7\i;RíihtE6ÿ¸ 4¡lRíÖCµþy-PrfÛ²SŵOzj¡£è©oF<15>þd;•bÅÕqdw(°ðA p®%ü­Œ4º«ÛÎã€a~q÷©E怶Xèojnyÿƒ<C3BF>>úàý˜$v†­u凯¹j•š<02>õ ¤Õ[ʵÌ ßçfÏ4²ÐŠK‡½„¤Ð9†M% ùA‡^dñt†u@A‡HlÉ Cf*yô´ƒe¹hsÀªæð4Ú<34>×éOpÑÊ-†dr®ù10ˆoá<>!­£Î¤
pÑè÷Ïx¤ ï<>ùˆTgËÇ«+Õ)ÕÕ5jÀÐ&Þëë
0a~‰BºLI®zÅv¶ÂÍ{$f¸Ââ­ps<70>ŒÖ/åY)IeG<65>þIÜÌ?ý(-á#¦üe¸X^<06>TúŠ%h &Ieg™vââi<C3A2>ø<EFBFBD>¹3Ì0ö¥f¯ŒøÔ>Û¾³lwY\£ÛèEs8ÌÆ{cÓ/<03>ßÙëÕDH$ÃrgšPxe1<65>öȉ==ËD”u~Ôj7,µÎ˜f<CB9C>H~”g"8 ùÑBÿ„£Å„8Ô
à§=¡j Ð‰Øm¸zèG\f¨¢p)Ó?Ÿ4C'«ó»gž-)™ríÕ«!Ñ 臢åbXG!Í¿ø„ªk<C2AA>Ž! Â#/UnŨ"ššcÂ(=À^6™Zµ8Ù,]Š<1D>@~4pÏGøŠÿædPFKÔJµÍl—=ùŒáð|bú•]qú‡73
ƒL2³Évn¿cÝŒé¥#.[ˆoçÙax\Ï>wnqÖTp'ê†<C3AA>&;ϲ­Œâ‹Ä
†Åº:Àg§€ë—ÙJŠÍ¨Èu˜ä'jôÍda<0E>¼dÆ„W<E2809E>1K—–·|É2“Ÿ#.*£<>~}Ú#Ê¢Ë,¡N¾†#êSKJ²½òòK~þÅââlì‰æ찵ʊ¯
ãtÌ¿( ç]a' Ç# ¸Nŧ Ã
+²ÃB`éiÈ—l~ }Åü$ŠÃ&?Q¾ò¿'ç´—.<2E>J„'=Âê<C382>$ ”ó2 J¶øòðÐ?µÈ”b O#Ô<>~ÿ{GŽƒj àÍ‚úšv|AÆõìm9©é%¹]µ­S'<06>À3 ˜2<  ‹Í)ïäm†Åþ°¸…U£?$3ðì•IN µ´{†A~Pg 0^·©)­<>ˆ´°-—–I+¢…σ<C38F>rèrr² <0C>ÍCÑ$|·6-<2D>œQ ë8Æ6QØ·´®UTƒoÝ}×koløŸ?>;FèPå™3Zqðp‡Ã§«·¡¹ãtMÇ©š¾†&ÆåŽo(À‚æw׶éÿ€hrN sR*Â÷ù¼•C0¾ãcxŸ??Hz®™IöøÎxtÎ<74>&ÀòÙ¦ÆNºü¤ƒaøLü`¢¢Fåüw göáIa²B `°òžÀP™Fyä¿XG76»‡~K/3Ë΄„¹†oÙ &¬Ò¹W¢À×{?xéÅG%ý/xMÍ-ùyTa@j4UqÖÏ5AÜwžªvvö$4 ÌͪxkODó/JE­;gY G0Àø²H"“â=N2wš¯ÿïê <Ù"kL…ór蟢+  +¨8ËÔÖ;‡O~ô¨¿(3 Z*.­B)¨ó+€x>Ò‚.¤´Ò<C2B4>ªcóËæ&…ÌùÿOQ…±'Ö“l`/<2F>øàþíÖáë³í;ß~ë­Ñ (?|D­ZUq!ÄCßw.rª4î
0a^q4æ_|Ýž¶c “¦Ú… eB$0¶­Š˜<—ëÀD.#—69â✾+˜WBçeP‡N8œú¥ÑPÉVhþ-F­n^<n“WAËy +*<2A>ƒå rMÊ@'Ý©@ÿœÖõÍ´¶àÔ!}̳ƒìþGÉËÖ÷!¹æªUðõÓŸ>´qãÛ‰¬ƒ<C2AC>ʱ£Ç *"CaGcƒ³£²wøFŠø(Û÷<12>}ÿ®x_@둺Á¶^<5E>foÒMÎ!¾h­0ÿÁ ã<>>"Ï¿¤V_1a:Æ /œÈ§}Ý,6ÄëkÕ¦xèðqyOA¯(|ÉefšZ)Kz:ŒW$ýÞòçIêÃÂ_p±¾Yk†ÞÚÅz<\4èÏÏ3 Ô`Ò>ô\#˜fÉcœ‡kÛ‰u<E280B0>I“€1#š'˜¾zÕÊ{°xJmMuOOB»gegýë_So?ü쯿xæ¥ó;¿è<]3ØrÁÓ7€^¼—¯j#á ¸È¢1ÿÖåmëÑ´â\‡<>© <0B>dîÜQ<{*žQfÇ$f¼ÒBL¦¢‰¹gÐk®Hš<48>˜¼§(Ŧ°ùG¥,¥#\€¤•Š¶ÈÜE0÷/Ym‰Ÿ5žWºè_0Í èª2I2÷õavÞë~å'|g}”ÏòÔÖÖ¼»éýD&‹Þùç[È&Ù )„´^£˜%}Ê„á4“ç+êÜózr•n À¸úXRfXü˜0Ì2Aƒ ½<>¨]v™iå¢d»<64>1ùIN¦fè WáržiJS5 ¼=ŒH& ­ä³R@N¶A׎¨ÑÌ3ÍÏ€†$øòßXÞ×ÏyìøÏÛ†¥bxðã‡@6‰È]qS”(WE<>¼,ã¼é¶›–Û¡¹óŠ£4ÿA'àiëÕ£òÌI7Æò2˜<OúÈÉ<Ú°Ò @ŸÜo³SÀu- fÛ¤+4jf~T²p†IýËL'"h¼ ¼¼{
©>ÎéÆd;©‡þRúÉbJ\ŽÀïr`0<>Ã{û·®;@´D5p>³ÎwfG”Ïô×&RŽP)ÜT+§xYLDAž âþº¥És¦sýÏäÎ-ŠÒü‹\¦¡Å«9ÑQ¬—Œsg`.Y&Æ«¬x&¡<>þPijQqÓrÛüËmu#“Ÿù—Áp3Â=ÄíÑ­ªÎ"ÑD¡V?ŠÄ–\fIN"ÕèŸ9Õ* _B{á5 ýýnE“,y˜/T_͇©¶ö´ã<C2B4>?<3F>jÀ”½ñ9!hã'<27>w¡ƒ“˧kÁ=œØµ“óLËæ&­^hYdÈÍ ¤W<C2A4>0(ŽÒüÒÐèÒoeâ«e|=¬D¾€œ<E282AC>˜º#épº<70>ÆE¢„Öv¼Ђ,³AXC5ˆ M…¨‰/Š \D©GªÄ?iô©©$ÒùXŒØŠyæü¼0ÁËÉ¢×\iŸ2Dú+jÁ߉(ÈRùÁ³âÂMþhWçJ ¸^_?ðÕÞ­Ï…ljÙòñljT­<löÜZÙž¬tCi±eõâ¤åó,3èdzf"™˜ €è$†ž<ëY:àG„N¸ñeVÿ\rÿ@Aýø¬ëñéWq•Û16<<3C>ÄPjdS æ˜g"§;ƒj@åÚÚ{}çÛ˜ó<CB9C>E¤)ü²Rs4èÇí„t[`ö&;â[¼°ÁðÀY2‰Ñó"EHôg—нƒ|Š P¤f•ô~d>%Iœçaînén|ŸæPßÝå~ï%¶î„ù‡/«?mjn‰¾Ç[Ì€C‡-TÎÜϾâZ ûcèO³ OM¦3ÓÈÌ$O™—Ü*<2A>PˆÂüKšòÐpÞ=ª<7F>Ö>AÞÁ1õzš1t<31>úPðÒ«øúƒ¼+œª#³(°
ÃõqJó¯%g§ðµhº±©ƒíì÷õ °b`
IÈÔ|J?íÚŽK€@\KЈPÛœÂ;Û¤Ás(î¼W3Œ#@¦ ª†~Ë0Gº~32¦óÍ»xuy•üÌ…cV¯C~þþa —òÃGÔ
`-œi™<69>jt f¦ÑéÉx² <0A>Òʆî[À–“êï14¬oU62—RºDÈãË$ÉÐ
>¯ ¥W<C2A5>é«°3;yw<79>4$À—X¼•¡V+¼fT5<08>ŸIÀvFL]Û`aQgžV2~@ZðÌ… ãJ`÷GJÎv®y'‘úw>Ú§¨F?YJ <0B>P¶BxsxŸ'TÎÄ3ZuM<75>ídÉLbújõçƒÿ“pó<70>iWÅ]³n%{xûˆ"± D¯Ïê:—Þþ @„xVfVÐÌã‚:Òä8†Y&j®£5É<35>fD½§|g"•Â5ê7ÜœOf¬¢òî J¾…O¹d.^7Ëþ`¾ýOxzúÈÐì85Å ¾Á l!Ö]!-æóu³¨¼Ixã<>÷!ùµ76ŒJ<C592>œV@O<>w1‡Mœ(;ðDüeÀ3>®®5BÉ$BÞ:y%œ¨ð : ´¤àºÀŠbc;¹¤ýþÉ<C3BE>ÐäöË©¼¯“™×àô
¸ k<>í©wñô´èÑ8ãiH~$P)Ó0ÆÉ»;%ºÊË<@0M>ÍEW<45>
´+Fv4åO×{§)
óLn¬(ÊY^ ÿnhöè˜ÿ òúzåzÝý™<C3BD>ð_¨¥Ò'†%VÙ€±ù‰<E280B0>èíI¤2ôSVbÒµ“oŸH[ `L¶<øLôè·“¥<YRvCŽÜEXom8IêÏð¡ Žf¼ùGcÊü‡ÂÄ]Ê(ii¦Ö¼zE{µtõûÊŽ:η¸É„<C389>½0öʧúæâþ²oÞ1åŽo‡¶xz:¹Ê} ¥Ö[}Ê×t#M¯÷´Û´Ì*…ˆœÙ ‰Ÿ>™ (ßÙ<03>¸)€ÄéY_¦—9îæ½ü°ÉO$êP€l:€ûì%xö"<22>¿j¸7<C2B8>(˜gX²ÒóÅ®(ÑRj*Št…Ó/þ×[©ž)<29>„¾hþ…E¼Ç˜ù× ¨¢ÙÞžÏQÏqu¬«>ï…Ðï<> <0A>æ鯾5ï_*ýFj­M-ûÙ£ì™LuSu†wHVžìˆ],Kt`Ö>e^z5Wù9Æ1
€âË ïI×áùQ¡ŸHO§—\EN[(üáð5VbFŠaOÆåxJéÅÜjvP£<>a<EFBFBD>QŠ~ŒNâÓ§ƒÞ:^6ªаcÓüaÀ+/ÿÁJæz˃
Mµáç*ª<>nɲ7‰SíÞƒÂé®|ö³îÿqdX8¾ kCÊp<C38A>©>é=|^ª¯ÞËM q3PêÀÙC pf¶ã³oæ«vJÓ£þü#aXlcêÜl¥gDäÁdýΣäÂ[e<>dá-±ºoÄŒ‘Ðìt;Ç̸Yóyæ»OÈ®Kô<4B>NtÔtý]cÓü‡Âu2T ð O#}<7D>,Ò¥ †ÿ\Ðð<C390>r“n¼,ô«•Á°öAëÃÿº±Üúã_Ò1 ¨Ùd]õüYÿR¾ ¦­)ùjSÅ&ÃÊPd< òCLœ˜¼þCúG,g*«?hN!&NŠˆ~¢˜&rHÙ¤MKŸRŒAàNú>Íd¢Ö<<3C>0óÿõÛïŒQPl¼j& [åá]>u0 ÿž#ƒç[\@(o½ðÑViá<69>­xê©u/n±<ølòÓÛéy¿ ']­Ò<C2AD>:ìBM@Š¯Ä³¦©q€ÛHã•6²Ô=ù1,]™ôôæôÙT×ç^øËu×ÝðÄO¢YPñ,}ôƒLÂ0“²DËšë÷ú§Ã±¯$ „ÔmÓÊÛd+‚ÒÔÜsóÿçç_üçÛš‡5_+ ÀØb_ ­ï'Yè¯æ<[~b`hȧ~¤“V,‰ý
1:ò⢇ԣ¿ÐüßòÖ»1þ%îc¶þãðð*aqvñ¯îs¾†/<2F>ÚÈ ²Þnt™€ÔiL+µþçyšb6éL«þþu;X߉<C39F>ÿô_šèO!ŒW<18>´&¾µOÇò— qõçQS;×f—2KK·ýò=¤<öø“±<E2809C>¶fÍõÿüçÛ¡+…&z˜(;<3B>"WŽa<C5BD>lr¾ª <1C>ñ»è©óüö¤•Kç´Ö«+\½<G1}<7D>á¦7 ó,9"^Ä»ëñi“ñ©WÉ{Ë„'¯—ÙÈi@kÎ &æ[þÏŸ.†êüî™gÅe¢ÀB¾—¯Åh0 ô!õ 1=؈D¿2såÿ¶éºïh™ÿ˜O†¼ÿ<C2BC>¤z.ÎÄߺu˻އºÑj âày·)¶œmfö@¢Ÿ²˜ýêaˆþ„Æ(CþÊ«¬àÞû¾Q¯>€‘'—Šoj@]v/F IR®êó<C3AA>`¶L|êÕÀœŠD9Ub2,·âH)7Zôì˜O÷b6¤µC¾ è¼fa$ôæÓøcß…˜Þß[<5B>â<ˆ¼-4ÿÔrtÇ”?üá<C3BC>±EÂ=÷Þ<C3B7>œãù§Ú@5øûkoê<6F>"­[DÍ\\ÚÕwð„«:Øú@Q'mŸœ·üñG2¦OMt¨«¦E­ntšÉ>Ñ°rÓûJ‡¾¡U(<28>>}öœ¹ æÏU/9\.½Ï¿Ù÷4××ïÓ×*ÒÌv0uÖpˆïkD¤wL„ažÕ7™aŽ»üIÀXðk<³HÇ>%Ùlb¦ªqeUuUu d®}øA4Aä#‡ÑO·t<C2B7>¯ý8s4Ünž˜<4C>÷‡Ñ >Ý_%ïq`Î&4ô<34>°Z‡ô¢,w?¦•u‰yáç}÷ݧ¿Ã|ó®Ûn¹I«=ÑÎÛþ³‡QÒæô<C3A6>¶Nßé'ÃòªX1yR޲ǡ,áÎ#‰‹¶>úê¹½§ wEñ×>B‡~úˆÖ}‡¶aíM7/[¾|ÁüyênúÂø Û¸Z}÷ölXÓQîB²R?PaÔ<ÄÔxx'o¾ã»†~ ˜peª¯‹ï(gýB9+ ç9DpÒ ¦ p oŬÙ™w<E284A2>áÛv+Ñí÷r\0<>>Ãòè‡cÛšd._+=€Tä-â:j÷­»®åÂ<C3A5>VcâŠ%óüÎè¤A!ÿ9WvJͬ9è®Ð^j
Þ ¨ÿ~Û-óón¿c$Èì!RÈÅÿIN¼J
h:.û . e*!ï MW%o\oôkfú2øÙ g 3i-ôƒô9"ú…sFåiÉ`<02>´°6Þp¿ù<E28093>yG ˆæ_*Z=wìÜ­ÞÏ,q&¥<03>†(Ó¾¶V<C2B6>þÄ)Àá—·"*)'[ åÑö<>¾É4¤Ô<C2A4>XCMˆ&Z€:€'q]õX¬Q&ŸVÃâpç~5)«áÖßÅý˜¿ šÈe®Àí<19>Üö“>kN?Ô¡ =²X?3Èèº7(¿züñ˜³õ0V”j v£Cd­dhÆ,õ"íÂkÞƒß.ý:êH„´­«þ¸•TéÓ§# Ïp”P O€.™%<25>ÅËï<fËIÐ}Ni¦€×[¶²1œØYmÑc<18>nÈúÞæb˜'ÑZO<>©D¿ôIû™wu`½!Ï{JF{€ÜŒL\Ÿñ¦i]TÌû"Ëük…ÈÛ>ßaµ¢ë©Àöp1e6-~øûW,Õ:fÜÀ3è†ì™ÿî~Š=¶?]öµW¯†ÔHG"ýr!1ÚXŽ¹åÓ^ L]<5D>g*¸Yx3Èš¯•Û<E280A2>|,†— vÃD|<7C>>…þà —­„Oš¾¿ƒõjÚ°:âh2ŽQÀt<C380>fáÃK/¾˜0óÏŸzë>åq®¹jÕÓOýJãCY¾ ¢Ùã<C399>æ,˜£s4<ÞèÿàÁ焉`¿c°§DI‡%<25>-^´ÒdC%ГV
ÿó1|ÝI£„PH0‡(^
ˆäbbÎ<62>µ¢´Ÿ>ôÓ˜ß7t`Ÿ†I*ôc<C3B4>ÄþòðUx˜·O‰~@h7rŠM§ð!ææÿŽ;Ñ…|ËfîÂÛ¾ãßá?½ ¥ÿl¸»%= ¢?yr¾þWðx£¿[Úà¿YVÄï -¹÷>txǧ”Š"!W®ßØ!yó<>àó~¢õ¿zâÉxôOÞSV¦Áæ"ÐÿÉ»JP×вKƒçƒÉÂ_ gD¦«îFŽ|Å£î rwÄrwbö¦á%¡ë%Æñý»˜Ýßqÿe<C3BF>ï̧8vž<-^œ½ Õ3<C395>GD@ý¼ê<C2BC>L.´·Çê4 +øÇëPHšRD~°]ˆÕ‰ƒLYMÍþ<C38D>V=3<rœš#h%Á`€ÈiÚŠù¤I²óï=#«õÒ©OÆ||ƃÈ_ùýú?ļîíþÐ2ÿ˜÷l n¯Â]Ûyæäqçó?týñvqZ_ôRù¿<C3B9>³~®‘\<5C>åc<C3A5>Pfs4ßÂŽþ°XS<E280B9>ÛÛÚZcx2ímm÷áZO`ƒ7eÊÂþMúÿú©'âd> þйÝô9JôCß¿B†~Ÿ×Ÿÿ¡_Âñ>ò§ãQøÍ¿ÖÐ/wî/ð|¸>àÞØ3<f1Ùú
ÇpÔ ÷Ø®Ê×…Ò¬äIÃ@\ «¦åÍ[Ÿ’¡Û„4,þ2wÞ\Ä}ï©”'z0®®, „B… Í:¥'žx2®³CÊE…¥À˜'#÷“nÄHY»
0p^ýþ’²LDî1/|€²öæ[´Í½§wïÀ¸>Dö> ¸Ý[þž>úwþà»Ðüý±W€“oíþ×7×ë¶?Ñœ@’榦žÒ¢ˆÌp¨Ü4œò`€H¹Ðè¾ Ï½ðH®âª·šKä¦^¦1YƒÃ^q´è£_xê…ßF<ÅÅ%ߺÝŸ«ÛèÞA°•Ž0pæÄö=ôáµ3<C2B5><~/ĺú¹ó³ÿ¸kdèÇbX iÏΧ64”<34>Šº4¯“Œ¡óUW ·¾«B]øƒÐQƒeNþ¢Sû|-”üèÄÛqÁ0à<30>X<7F>°Xi³¸<C2B8>ük^Lä³Î s5E@ÊB,}!òG_~ùå˜_Ƚ÷}ù°æ½ÎÍ'1&¡èó?íbsôÔ½·¥þ½-~&(”²u<C2B2>¨í62ôÇLZ<>Ô}ò³Wц_ÛǤÄF¥¨<C2A5>6ÁÜwžA%¦0¾õ$HžÃ_-ò300óñQ<C3B1>0Qù—.´ÁÆL~òµH;$4@ˆ~cÖ!ñ½ÍÄc)¤»îBg?]ïü)"úÛØÓÕNcðÃI
ýA (4üûþ°éýŸ<>¾ë[¨ý‰Áf<C381>7ŒŠ4ªj¹<6A>:%öƒD;P‡üüï/%lÝ8dÅ K!Ÿ¿ZV¹ü¸ÚõÑOäÜLyÈŸùÈ”_>ö²`‘ffiü^ÿ»'ª¼!ô úr1è¿Xа»bÇ“è}V¯¦=¼Æ
uØÅTÿ«Åf³iFÀZpªC~~ñóG°D‰f<>2,s¶êÙ~2Lÿ±VTÅ^·î´ÝüXo:вªŽimw+ ¿Z(³iîß1úGîÛz6?ðÜÖGÿ6ÜvŸÙTk[ <0C>6mꀼ4öÅ;¢1ì•0ò-BKÑè‡ÂôkDYþÔgþ<67><C3BE>±dեţãÃ=÷Þ<C3B7>œ¼Í¿÷ðg:è?xÜ-¢_0üº À\ùØ£Ð\ÌIÛ@ÎSþòÖ“o•a†³òZ I¶xcȆbY\_<>æí(ºYkØ+äGêsÔõ3¸1ׇD?çyuԬ΅ènÏqjø£UûÀ|ñO}ô8}Ã/
´ý‰þa+À‰<C380>»!ú%V?Ò
B¸f€!ŠWc/èécŒKaþk_˜sˆß ä'$Èžàþ…_Ryo<79>ýž <0B>¢à»Hó9g<ZZµ¼«Ç³ç_úèQ°“‰Ë—Â×ÅŸg´¨êÃC¯ßòÔ¾?n¡¨ˆÿÅ WšPBò£Qðüì³£Óªl÷.4 ¢3•è‡0 æ?=õÒK¯Äã̵jØ}oònõš#¼ ýÖ½3§§ÍúÖ19ÏÈ åHÝÞg7uÕ´„Lžii<69>Y„Vß%ÎÕ©ȉWk<'`ØKK„B_~I<>G†,ÌQ-C¿ï?#¦ÿ—gÇò×ÅÅ%W¯F—¾ íù§Ú,²,&C$¹ÈÀ7Z€Ð?ô—O[<5B>
Œà š%‡%<04>Ç5NJJŠ°GÈwQVb6z®ã™Êª {é…å‡Õ\BèÇ<C3A8>èÇíåÇüb÷ýƒïéº8ôóé¥SÓƒ=â¥×_Ô±µ/ÆžDM-4feÙFR¾®Jò3ë^-ò£Õ­-arôÈQ™†ae百ˆèVÞÖ(|ølûÎxŒ|aÚ¨z}¬ŽOTy¢G¿°žçõWÇðTI×/?ôÒÖÁ¶ÞxÜÈX
òèœáz‰ÂÙq…Îì9s£8%ŒH¿Þ„üô¯o­F)¸)ßÇôÉs^¹jDdߦeþŸýýïãqÂZƒ_\åöààWø kα<C38E>]žèÑ%gþœ¸(€ôuj÷‡Áˆ,&bj¹x!]ôXRFP<>N±Áü$?óÑSº„ÂภðÇÁÊ‚&ûe|_п‰SgJ¾<l<¦üŠ¢5øå=ô¾3Nîì96ôÇ\HÏ ûĆ²vKt£±åŠuæ<75>_¥H<?×X<C397>Kå¤â: _'RøY Yt3°¢Kþð‡?Žn;|ý0r<>*žás—ÂÀwï64ÿȇ<C382><E280A1>ÁŸ?—¬®ÞàWù6†*ë¼Q _ ³®ÊjÄL^^ù_ñP­ ¹Æülº8—î<17>G¬ÎaÁü˧‘ÉÅøÌ{´øñ<C3B1><7F>vø¢”í.CæÔ<C3A6>!“÷tHð0æs¯ÄàËјAPžó¿¥.´ú>xw¼ªÐÕ×Ûë<C39B>Œ~•…=öâ_WþæW‰È<02>÷9ƼlzR&AS#<BmmM"0%.â«]õðý¾‡<C2BE>Ñj” Y¶N¶™<18><>¼º8-u±fÍõȾ¼«Ç{øS<05>»{¹ Š««»âµ·æ>ðÝÄ)@Äh^¶1/Ç<>{ãÂuž г¢ñTͪ‡1B~D¥¨#K`ÌÇ §pëô_<>îà—Kqš$9ô³=û1a4à» RLƒßçå³Ò)?îåêb?h0ÉÍÍÑú{UœÀá# Ò Ð1žQû7Ü2¹²7T¤8]]qq‰ÖÄß¡=o«€Ìçç<10>-ä “.úEiÞ³àØœû¿h°˜È¼ˆ{bRF{d'¢Ô"7#Þ Ñj<C391> Vjñj%þ¥;z /<2F> ©
È<EFBFBD>¦ù<EFBFBD>æüÒ0ÿþÁ/ jý2g¦qÿ'ËòÃE¿˜6ýÀEê9÷¿ÉË6ù<36>=i1EcÝÑ; Ò <‰ÀS ºpÊè@){
ùC<EFBFBD>:ùaœÊâãÐ*Ð5ÿñ(|Ek⯷ü#$ú¡˜M`álË¡ãRˆýA.´ÏÕÙµð¡ÆbBŒêSè¬ :+<2B> ûžAøA<C3B8>©$F½+Kˆð>7™‰îÆ5êUúar†¤P¤@Çh˜ÿ_>özîuxðKeý0H²-<07>
K¹D@¿ªJT8`wUõ¾ÿÿ¨æôô‘(P1œ¬tˆ{*ÇNX£U*^ŽxØq<C398>„ãV÷Ô9n¢µÒ‘¶à È<>âÑ$¦aÀQ„À0È€Q1ÿ÷ß/r»g÷·ÃhxÑlã™Z¦µch¸èe°±©ì¿žXð“¥ |€ <0C>>>…°™ô©<ÒÆ“ Ù<>x|ú;G”<47><E2809D><EFBFBD>˜<’¼|ôT @¡©ÿ?^ߧ˜XÉñcGÿãš<>ó8wCDóÿä“OÅéÄî¹÷~­‰¿Ìéýúèe„.+¥RìxõY·<59>凅~ñ#ÆåÞÿŸ™ñ<E284A2>; ¯»fx
pÛêT«­ôè»ÄÀ@<40>!ð4b˜€€ø˜ñŽJíÍ©zЭF) @ÛüÇc©<C2A9>h~mùS4èmÏÏ%ÒS­UžÞ>ï°Ðúãô†·gܽ.ú<>´š"j<ÓÏdL$  ÇIùÏJÐ Ìž‚HX„îç|XRx<52>SlÀ’ÒǶÆNÕƒŽh5J†ìˆæ?NeϘÒ…æà×é½Ñ£_[8ÛÐÐDœmb^ý@ƒ4ïÝ?ÐØ4ûþï&Mœ8,„»°xŽÇSýÞ¨Gâ!¾q{&çìS^|ÿá_ø•ž&Ù×.„Þã<C39E>9MñœœÜ(÷SU#
H ïsŽŠù¿szž1wôUÞíúCR<43>OfgXü®€ú(klòÓ¡uùË®ˆ¬d1‰ÑO!€>¬¹Š¼³Ïçê<C3A7>>ZH¤degG­ª‡Be¨··ÍN°ù×éz èOÌk]ÞZ£¯ç½Ã@Ѐ…³<E280A6>º¨Ó5î`4*ô‹ÂºÜ'^~µ»²*"ÂÉ©²<>À·)<29>²Sã¹¾|ƒìX€T<êŠKNŸ©ÜöùŽ˜Ÿ­§tnEwˆ«ù×ìzÛ¶ óžÁ-Œqö eí 5ÓôLQ¡?lÅÒñå Ís š¡©fÚ”÷Ó¡}e<>ý
Fà@JGæðñR Â?e§Âp£¸*žëT´í@œ½qMꨣ?NU/¼øHTà Ș«!¥aaM°ù×ézË7Iú^Q>ÃŒAÃLŒi03gHÎmÄ$ ¦SrȪ:oo¿D<>wWwÙcO̸k]ÁtvˆdÏz¹n_( Ä;yÞÉiž¢²éü?2òƒ[¬£®ñ¨zøíïÖ‡J—ïà<7F>˜+ºQŠúãÌþ¿<C3BE>îzÛ{óVÊ°(®2Xà¤
0_§Ñ[c𵀈ЗŠÍ‘¡½‹¬©ó y|Q¢?$§7ll?ztþ<74>¤¦C8[Ép\ðå £œËÔ©J-âQõ<00>âƒeüXk<îb€èwŽŸùÇ´¿øÆ­ÔÄ™.Ó•½–µýäÈøhвÎÙéøùÆIFÑ£_”îªêí?}ª<>R¤?Á<>ƒñ¤I6½÷qªzøÝï×+Œ¢V…ðˆ%zWó¯ÙõÖÝÄnU¡?Ä„ƒ<E2809E>¬ÅgœÛcù·.Ã"žÂG<C382>þಧ$(™L.[hÎɤ£G¿(¾!÷‘?ýùÄ+¯0®pg4òÓ¹.„…ñr½^E; ¨&CʾÂïؓ)šuR,<2C>ÝwÙè©G<ªî¹÷~uJäêÕ« [ˆmœýÙö<C399>Z Î%Ìü¯]{#úWõMl¨:<3A>ykè÷¿ ª`€*à¸>“·ÆìkÁyÐ@¿L ÌšFP§«``ÀDD¿t<C2BF>FÆÝ•Õ—ßwOÚ4!¡Lvt{4¾ËñÝ>x ÷ù.f´Ð§ªä€(t?~èáØzt£”šÍ|× 7bö96³NÆç0¶ß¯<0F>˜û˜ýbžE0˜v·q¡cÛlcji_®ƒþ<C692>c1±ù³éî>ªá\P "¡_Üàîî:ðÛß\{MÉ­·Žù8U=@J µ
ô-7¯ýÑbù[Z<>RfþµWü}ë|GD?æ̳ýëÙL^T*æiÁpæiƆÎb¬$A 8ŒÆÈÂ>²ãzMLƒ…=O`L ý¡¿Òì m¶¡©<C2A1><ßäuùtѤšpî³Ïzªªâ úà £Ý"NUZ!柗Õ#†•˜Z<CB9C>Rcþ5Wüeûùö•è‡<C3A8>Ûí<C39B>;¡ùWØ~Ó<ÌXˆyê0¦Y@¿A)n|ÍÅØ;ÛBúš -ô‡orŸkjncÏ52!5ÐA¿øÑ@Sž(à%÷¥Ó¦"Ùs<ªþüüZ³Ï"0æÊÁòãüÑZñ·s;æë<C3A6>çx¹á“3w9æØ…1<E280A6>
ôK…,è3^Ùe¾©‡žãV^ ý¡#/‡X4ÏX0ɃYCa Ǿ¤¢6<C2A2>qªzÐ
dG±Í‡Â0`TÌ¿ÎÄßÀà—F{j5)"µ, ×¼¶Ã¼¦Ÿ(˜I4<49>"±âÉä‹Ì“'H¨Ñ¯ä+¹óŠh«qŒ~ˆÑø©D<@Ç´Á*dÝ7îNLWó¯5ñ—o{OüR ó(Þ;<ôË žâ6.ê´ü[§a‡ÈãtD Œ$ ´Ð/lôT|„ù×}éªihëi9\7ØÖ_<>=†›Å•
øŠøû Pã:÷Ç·-}êµõZ¼hAl4<6C>çãtd…E<räH4
u{Þ¼y1ÔÀƦf5ïŠÓeF¼Xfó7Ø Ívÿâ. È'z‡<7A>}AX9kƒ±2׫§I <>ofš[½>BUA°Áfš0¯;©Ý¿&¤-Geh=ZÃv¹‰Oßò^ê‘/JvçºoÄ0F6J‰«ùת}à*·»·ÆD”ˆ3X+/pwŒÇ38 ¤;Y@s¸Å¬žE¿`ç}ÔÔ>
Æz.ÊSmõµ<ª« ßP“ò¨Ææ\£­jUBÐ
¿@}€jU¢õH½¸bÀ8×ÞØ<10>^:ÅÀh´îŽ*€ºQJ\Ù?¦7ñ÷ 4éç˜S°x¾ ¢zPAÝàýºÁ3†[|¸™VVP ƒB¿^¤*T£Y¼Æ¹=Ø\œë0{Œ\ à½5(šDåfgÏ3íÞÈ
 Ö‡‚³à »/  ­vW ¶÷Žqôǯ׃f>d¨#“©4±­U7J‰«ùÿÉCëMü¾[ÊB¢VÁ/¿ÓHå1ŠÇí$Tdæü؇ôÐp~?“é4e
³p|ÍVoÁ× <-“̘JN¢Z/°Í-^ÖÇ<C396>d ¤ Wüô6èª?:t.Fš ÓËmħ.tÌ¿¯ÿ RˆÔ%ÈP8V
 è—§ÆàWpâ/ÂüG™QĦ\<5C><>Öá.àðLÀ@Û <20>È  }òÁ0·2Àâ•B_A²‰|‡)ß…Í#Ø&3#Œ$M¢'N !)ºØ<C2BA>°ô)Òz¨ oí®þ¸übŽ¦ŸM<1F>Äoy/-óÏ9ø¡ T€Ûn¹éÛ±;iWó¯Uû ,ùxøÓašÿè*@åéÞ ¿ç <20>r2<72>ÆËx(Œ°C•€¡…`þ•3ˆ)Y4@ á2ÛhñÖR\OX5R4™ŠÙ8Ô„U<E2809E>ßõ<C39F>Ïÿïü{ÖÄ3¯­_ñkƒ¬eþ¹Ž½~/àåÕÈPø'™ÄÈž²²Ä˜ÿnDä1Ÿ¿8|ó<>é˜$úUÑpðV_д{Oî½Fדã­tç‡é®iÞŠdö¬<C3B6>ë0†÷4Áa¾¾× a.§†O2Æa<>Í¿÷ºolz|ê FWZ[Ûž|ò©·Aæ;ÊyW Q!ç:;,0<>@>úðƒ˜m÷ìýW\Ì¿^.H÷è—€*A ¤\ÛÍŽ iÎÒ\ÛS½vA%.˜0 K•˜¯ï±Þ6 hB
—b8ƒÕ´ê±»¦Þ¸pëÏ_¬ª<C2AC>P¹ûwÅ ýzæ¿öMÌž …ÛyÖHå\­k®ŠY<C5A0>´Ø(epÐWó¯5„Çîû»Ð÷\¤ùç£2ÿ#Í<>C•€ôÉ+ä €Ÿ;™ ù‡ˆŸy…#ŽÕ ¹so~áG|ÿόÓxˆóïë>rÂpá<70>5 ±Pß½÷}/VsËÝS¶;~·ê*Œ[<5B>¹·½¢ƒËî^ŽaùADzØ`pša¨ã•|U<¸òst`³„ðÉŒÀh TøØ,¸8) òø$kDåÒ·\/<àk*_q^Ð"½dÔ<>w¿µû²Hó/äôhI@\‡£à¦nŒ•l|ó<>¸¶³†ºŠ^ñ÷è&¾§S¡í]\O/×ÛÏú;Ýb¡f·ºS¦4‰ ËòÁÉ.þÝúuÊýy£<79>0ú{XY-8åS7õÜHÜç@˜š-‡¤W Æ­D0ÿ&Ù¢<ëä=­À lÑ5½tÚ×o¿3&é©x7s¿ë.<2E>ìgÙ)Rš|ç[†ä<E280A0>þ5Ñ¢°×Q"$D¢†<œ8Y¾¯?XŸ“¢œu»_+lVœ @ Ð$HÄ„˜ô)j¶|åÌ¿¨èœ£ž0 zÔݸö¦Q_<51>8¢h~<7E>?ÌÖŸAÚÝÇ;åbÙ*w<>w>z<>@¦•Xßçw&}ýŒâwV ¾
 kþ…úd`U¶£ãÜM<08>V¯Z1ö¯Wsðk×<C3A2>A¾ü¸ó"ÐQÁ®$†É’\@ÁÅâ'žA·zc뱊/<2F>ù¯ vÁ§Uýy8ç:¯þ
´¬÷Ü{ÿX¾^<5E>®·žà<C3A0>µç˜áZ¼húJ2Ló¯/‰P€seã ëHÑlÍO`z
oD´»ãÛ÷"¿Ã<01>¸˜<CB9C>®·ÒÁ/Es5j£Z>nDBõÿD(À`[Owm«äÎŒK.¤3í+lþ…¤CŠ>/Wû:Æ &ú\½zÕX¾^½Á¯ XßÅPÿOöó#3ÿ Y ê<C2A0>ñþÖ@Ï<>ÄE<C384> ÑšöÅw™`EÄ «÷yøób¥þˆec³3»ö<C3B6>W6=<3D>5çÐá?¦ô4szº)=Ýœ!,.&™ö-6ù 46².W"`¼“]ó/)…7©ø<C2A9>ÏËw ërs­Ÿň#,[¾|l*€Öõ
ƒ_RD u'}˜41?­tZÒĉɓò£\ð"zýƒí=Ã<>½ÆZ~PÛüCö,ü,M©
§º+9ŸÐ댨Â]ÍÀœ7.X<>Î<C38E>Âà—D¬¥<vq«<71>¬¹&{Þœ/~:VàïlöÅ'%<25>»% ÒZ†ºXDÛXS€uëî@³ÿÐ̯ ´Sí#Æ:€¬fÉþlù¯ŸÈ_vEÐ_€èûóÅFnþû*}ÝóO')r ÐüCöÖÖÏÇ_¾bù˜ºÞ{î½±
“lÉÇ°d¥Ç?ùW.]úÿýlK<>ŽEð8Ü'ßÖ+Òr´t<C2B4> ¸åæµhó_·Iö·"*˜² ÞÕ¬>ŽX:v®W³ôç_ÕJa6›•Œ ܲçΙ}ÿ=‰¿Þx)Àþ?nÒ/„vÔ<76>ç ÙÜÙìkÙ&õäÀ£Nþ(u¦þä¯Ü¹îc‡ï!³ŸþÁ/4ÍÍ¢bϸûÎQ¹ä¸(@ëѺê-åÑúcZ´ú p•¯)ž#oÎ
ÓZ•ù|ë¾1δ²Ÿ¾cje?ósˆÿ]Êl2§§IÀ3èÞùä} 3|ýò¦£iþ·É.Œ0`&{øÏÞ³ùçå9(C-0rË,Hï)²ŸR!Iè 'Mš8Z—{8ür¤ØWw08ÊåMÇŒù÷%GúdùNÍÒ®ië˜eAZ
ÏUïPd?•Äi2<19>ëŒa‰±@òSñvJåEhðãå¾ÜsïýÚæÿ3¥k <14>úg6õÖóÌ€¦{ܳm̲ ­Ö|Ë»úø6AFº!"ã×ý•LÇ<4C>h“„LÈ1±;Ǭ —{ÐpaÂ¥#|û1­§Ï4±Ì±ß¹#H×»fÍõèÚOw 7S# ÷NÎ#¢ ·šÂ¸Ü_ØùÔ†(ÿödzÉ,4q´Ùl£Ž~Í%€<
3([¨ 4ò^´ùç8¦B¨<42>dömBîÃv)#ÍæÕíÂõg;ñT=d§¥à¹Ù†9<E280B9>îÊêñ­B¸²SQ¡?‰ºf¡™&ÐfrZ¤åM Z¹p_ÅáºÎ$“`ø®J$àYÞs̃y…ïx+ö#¾lù¨± <20>™ï|[ áŠq©Ðz<C390>lIÁE•ÕtUU<55>cèªiÙ÷G¹aãЄP@ÿb MŽÝ@Igâ÷̈­!p\à-2lßx«¾7À"øî.$ ź ­¶Ï|Û&aÑÿUàƸԫsDp¸^<5E>0Ž=¤þ;žÚMÿÈ|üèüÉVƒ
 Ù<EFBFBD>.ëçmyœ÷Ö#Ù?×åóÕÉ ã«úB½[lÆ <0A>ÿhÿ`Jÿ"²Üô½``z EŽÔ´uWUK—ïO
mwmkÄØ'9™¢_KâÑwXd@Ë»?~ ˜¥ý2¦a¤À x¯ƒï­A8¥iðÜ6vXÐ×o¿Yüƒy.ðŸ*Tšžâ ´—ô"±Iy#<23>Ú<>
prcT q¡í¿6
ôcqè<EFBFBD>;,Ñ*}ƒæŸëêÂÍÊQO` ¨+èBSXoµs*ãk>ÇwÖ<77>tãZ4ûçÜuXÒ
5TŒ³uâ’ÊdáØð…q§~ê¿9š¨÷ÚEV5úÙ¦³c<C2B3>ÿhU>{ö£° óýWâÅzë<7A>ù kÔO<E28098>,(ñ3å5ÃßÊŸñ)‹ä:àŠ7-qZó€3§<33>°5rûÑc‰gA#WHýß๨п؊´ýœÆÕB§<*èךâ;µƒ©9ì„2x# ¼5SØ4Ø,)}¡ð×{zHkL@­ —Ì·nÌ9Ðô¿¼e´Ráö€…5­ÒÌܧÙñÌô¡Ä³ ‘+D¿Wlú©å9ˆ~Z ý~4nÓh͉ъ‡¶ûg¨)Ã; ‹×Þ~\ý-¶‰á.h†ŒZ,(Áý´F ùÖAÛ_xSf[©Ä<C2A9>ÝkX¨Ùå²i´Ø»s¸ÒðégãC¶?¹¡KÚëC(Œzux?5ÇlcˆiMá:ê½Ç… XTO4Y(áýͼwPyñ,ÏTxЬ)´Kå>d”0¨µæ;ßYçÜ°ß×0OàÂßy*…·­R\Uà"§pZÑð”BÓNi ±)Áe#Q€Q¾ÉIÔš%¶ŸÔB1A³Ž|öœ¹‰W€;´º mû{àN™pE·Þá‡K•2óùaµ‡÷FHŒ1'öhX啉¹äU«¯B_òŽWy/pï$=g,<2C> ëyxrãœ"}™ù9DŠ<44>V0häìÖÏÆ´4쮈ø¢Ñ/<16>R€^b&2èç­cÁükÚBgÏÐÛ 0Éï•)M˜éu`N•'tkƾ28y<38>wõŽ" Òl|{:ÐÉ9…»wYy÷Ç9;…bÆô»ªnZØ<5A>§ u`Ö4J‡i™‡æ½û
OºjZ¶KÊÝxÔUèØ~GV[q[8MœÔ»MMx5„V×7oÙ[|°N 7ɲ{ÀŸÿ*”ŽG»&{øCõFq1Éx_2$ZÈŒ3{dßÓŽU.×Çf_‡Q˜Ö0¸ âÓ¤‰2€Q˜yU?2)d2ÂI#É%2xÝ[~U5â ¤êœn<E28098> _ |I/2R¶?Ò&%¼N3û¹#\ß<>'“3XRæóðý<C3B0>òÂàëfùq<71>
PstXä$†¢•þgO)Kt:´öœñOù÷žƒ‡~ tá$fZå䩈P4,èÓÏæðèÑ¿ù{Ïé¯_0Ѽf9lû%ÕÿD1MÏ4Õ8¹¯­F}œÒi í  •
d½ïëêÁWvòÅ›ì ÷æSRŸ¯þ ÈísçÅ=
B-ÞÕã-G[ß ˜·ôíä“oT&…xG@„ÐJèr',­ì}vsWM«Ž=+È7_9 íïȹFjªAÁûx†÷V¸™ê6„HJ¨К2´ýŸáÛ”!£t ið¿Î3
3Ï6yü㾺Ï[ª.7{PÅ{’¤ÿñ”¿¯ó-H‡ÜÛ,\¯cÛ€cŸ|ƒdžÓ°Ðƒ$BS
<EFBFBD>QºÄ<EFBFBD>ÔlÚ<†«>*×xš¼hû¯@¢†¼ËÍdŽ2áÞ÷zv8¸ó ÛÔ€<lÂDµš€sõLu¸˜qÕIÎŽNLó,ï­ò÷ØjtE`\'Ij%š¿½¹º<C2B9>Õ<EFBFBD>®mFo<46>U"p”ñI7`¸5˜áT<>“,ð!3B™éÃ#Bî®î¦=ûÆ„T}X.E?Ïñjæ#¢_áîA
nXf†¼Âìa=ûœì©!Œö溺<C2BA>?š°i1ZMÀ=Ÿþ]vL@6©?y¦Ê~2gýæ?ŠQzø/*<;ºÚ|ZÓæÌ<C3A6>“`þÃôv4í>Rwν〳«Ï§“¯ñ'†ÊmØ<6D>ôoám²¡4ãÂ~‰)"†I„ãðˆèßþäF<C3A4>
•¶?¸V÷$Š^h¦ycª=Þ/\¼äærh(JT—­ú3ÏE¤Òa($MÄ<~@6^Ã3[<5B>6ÿ¼|ÄãµÌ¾Ãƒíížþöø)gùÞÖO€ä
9äwþÃ×Å t»¹ƒÇ\Ç+½,«ÉâØܵÛÊ;Iз%˜ Øãœub”$Áì™&Í¡¡h‰qz
ÐUÓ²çÙM(êx³dN2ù¥!ä•<><C2B6>œGÈŽ«ZBøÎ"2!‰É„j…¿Ì®×ÙO^B<>BÂ_ù a¾tøƒ—ÅöŸôœ=çz˦¡†<C2A1>ÞEBqâ<71>koBO÷iÞ+ëä×Òî<C392>® ­“Óº(®¸>³°-ª_Š7¯î#T£év|¢¼X:¢³¬Ù¼yÔ «ºeÓýÏëLs<4C>è/Î!•OšÂÈ9&ªÐ4 ¨<C382>÷<EFBFBD>=à<ˆÐª£I½11#µÂ_÷%"ƒƒþ+JÊå;eSy·OËüKѿ稫ý"L<½ÝC2N…qZÞµóÄe|ÂpÇN9÷¸†ÐÏŽ÷bCûhÏ)›Â `$o¼¢”ß*-¡$KÿêpwgÜ<67>®•ôÜòð_½ƒhôÃ0 ˆ~ù±,€^l&sß©÷z¶;¹N½iD'N"¦¼ ñî¥Õ†¿>y9
ž! c,9 ¿UÈ~JÊ"<5C2ó<32>BËño?‹ôþ½•-Ž³§¢dêñfý¸{z½ûÊ<C3BB>gX-˜2§q÷¾$L^,>ÓÊA©ˆNoæ4Ú?k,Úx ÞNóýÏk¤üMâKæ¢ÐŸIPW†Gy}½¬g—ÃW‰, \|]«oÓÎÁí§Ž•h 6)Â_aÔ„‡ãûä<¾GVÃÇ»|ÜùæÿÐOSó<53>ÎSo)Û†´ ‰}JžB{Co†¯ªu86vr%÷5×®d®<64>;à)Œi¥CIí¬ê¬h„tPͦ÷ª<00>ùSþJ<C3BE>è¿öŠ”\R~“fqÑa!ÁÊÍìwñNÍê'ú;p¹}ݧZ<C2A7>ûÄ»$N«FþúCš$Ií†ÙŽ9Ú¤ ðÔé8q( m>?úÁq0(Û=,-½ùè
´.!à
ú˜ý‡] MhC÷.³,$tÀcXäQeEñÜ,:š8X”³ŸnßÀ°R>ÿÕFˆ~åÍ!ú¯Yšœª
É9FjF@§™VFLðkÝÇóÐêðC?@Ž»‡.B<þóã¨Z#AÝŸ…ÂgŸDðjJú¤—Ãi™ÿà}ëèå!<21>Žô5ï<<3C>Ü<1E>!a­Åå­;÷ ® Î}¤<02> ò‡Ï©$é*ŒTÁ`HB ±iŤÍBEŠƒU3¬Û¿ê \<5C>~­/ýi6™IF¯0~:ÄÁ`·ÜÅâUÄÝm=ü¶CÎ=‡œ~èóâJêþ<C3AA>:Ž#&”L/<2F>¿0@«¦í³<C3AD>ÕÏ„H
Ö6AþÓß$…²·V¯¥ÃbN8ÂѳÖãöonxOÝ€?.C¿ýÝzävÇ…öˆß/ £Ë»ë€³=<3D> Rò:æ4áÞ—ŒùkHýŒHÐJÞ[Ž"<22>?ˆ¶:—Æ<E28094> lýæJ ôÛ“¨¿Ú@ð!âv@¯²àV<C3A0>0g=Ì'×<>­½ü§œÛôÁ‡Ü¡agr{üFCñ¥··“¬RöµæÁH«€Å?@Ôy}ö¿ûˆUæ¾€ j/?<3F>€X¢ÿç?C7_é¯oP{*^#m ]Á±
ç‰JFæ
øPH€»vúC`Èg˜ÓKú"Ú,:<3A>8E¨ü üĆ2äÅÚ­ÔuK“(ùLbI_aà}ÞýN_Ã3ˆçêŸtíØß× ¡Ïiâ ëTã°Ò”qâ?ui¸AÉÁ+7§rýMÒä­Õ#¦BÚg€Õ¢FjiÚ[®‘ <0C>O8X®…~ÇÙS}5Í: Ú´µ í-wu÷"®Šëî<>¶Ù™q¡ ÒaA0`ˆ²™hóÞ}ñ˜,†‹èÿü ôpofšáº+hBEúga°ËV{¼enú{+<·÷tvy´ý)oËN]úã[oùçü¢¥æ¢…óã‘Ѫ„9¿«Ì*]K.—DÀ˜«'¤Û~ó¯9)öB/WÞ­F r5÷vAÆBó.úïnzëÖ-膧¢üÛ«<7F>
giܾòcÎÚ*$Cûü…C~"$ê€b€, 臢œ~scì@†~ùó)Ì7¯Yl Ú~#X N/79¤¯ÇÇìs±uŒ4"¾åÕÞMÛ{õ dîœâ5¿»ç®M<C2AE>Ϻcm5q½Hó£Ù§-ü§qÛ *A‡§R!ôËö×fÿ Ë8áÔ¶øš,¨mÿNd2td³„aððËÇž€VB_«Ùc ô?º«ö_[µ`Îk„¶AmßwxÈåF(¸÷=t(ó⢘VõJÛ
+讪îŽu Q\Ëö景¸L6Ê<36>gô•&`ÂÙSCÌnÎÉ«c¾ãõÌ{Ûûªëè_ó³ ©7,øÚk<C39A>Üü –Ï
Së>´À'ÛIâZ•0<E280A2>ÿЮöø¡X
YÎíó<EFBFBD>÷j1„ò3ÖËé×½ YО}ÃrY:¸ßöùŽÚÚš§Ÿú•ŽÕ<µÞŽƒOþBK'#² Ð“t°û<C2B0>¸Ú»—Í6î]A 8ÓJ¨²``úTcÄ0 @,_~5¶
—ž73iÆ$JzGÈœbà:Yö„º·êžÔµ²‡O²>^zþ¼äæÑVãew®˜ºv¡-'ñ“>†ëkÆíyêOž}vý±£GêêjcrÁZ1eÛáÃÉvùø<†ªaÔ1ÿ m¾¶v<C2B6>¶C‡÷Rc…ë(¯õövÐ)™Ñ¸,u`3oÞü•+WDD¼ýÛ¾}3dÿÃ(Ôô_<00>\Qè,ü” ÒúéS(RŽ,_þÿØ»ð(Ž+ÝÕÓ=§4šÑ<C5A1>@B0 Ì%0çÚ1v`sÛkøHœMl¼ÙøÜxŒíØ_/ÞĹ>{7Éz<C389>ĉ7ÇÚ±Ilƒ-B\‡n¡[#ÍôÌôQ[}Ÿ3: 1©OŸ4—zªºÞ_ï¯Þ{üCŠk]÷GD ÿàÇäû”•Žd;ZÛ#±nš"IToßù7ßÎß²é²òA>…ÙêëÀŽ ]æ:³h7u2uõÁ ÅÄZ.³üKïÞšWUêHŽW*± K ð»7Þ¸eÛ¶IÁ@¬ýµ–µvcßAŠE•?(/ÿHÐ Á…ÕÕ‡ b-î‰þÒuøÖþÎïó·ÖÒ#l>ú¢¢âÅKo¼aý²ˆ<C2B2>á{à<>Ï6¶“—?<3F>Oqöô…zúÌý†£iþœäR鸲¥Å¯Þi#üN™½œ$çŽð¨¡$)XPHŽŒpC´ä<1E>ý<EFBFBD> ¯ÿ6gòŽÑÖÀn×y gÙ”ïÇý8Yfç†aäÝ5û7¹ºª§? ²i…³Ê…U,]á‚}0Ø<iæ·<C3A6> ìþêîX8coûkÝÕ¢}TÊ|·N:!fKµ<4B>kù?|š¢iN]¸ÁV±§·å<C2B7>? z„ÿý©'1!Ua¸¨h~å²¥—’:wêûOœxùt ìÎHÝüÜ£¤G':ê9ÙØ^]ÛY]KS”%bGm<Ísæçj ÀùÈÎ…¼ŽE¤
\U˜ŠˆU”ÚVsá_ 0…¬áŠ»'çPað9_þÍ«|êVÀlÙ1<> OG¹naRU‡_êÞ« v÷ò¢ŒußùîÎZR°ìž­³Ì_oì.²`-f³&f<>Àðü९ýËCí_}ð…ç-¶<>Ž¾ð<C2BE><C3B0>ž~¹|aRÑlBËÓ«ºåŸÚÐJÒçZ˜ãüò¯ÿÇÍ<Zø¦‹F¡ßµó¨ÅI­míÃÃÃÖeœÇÙ:ßyýÈ Ï(NÏuÿ¶;£d~ ·ØÍöœó¶õÌ GdÞ˜n/[`×Ð!é“D>ë\2Œ 7àP1°ÀwèpH¼40[Nš—Ö>õ¤wö$œ-iÛdKªô«# ÊìÀ˜Ú( @í$Ñ,vðDøƒc<C692>`ˆ•_×uµè¦e«wI¿5×<35>ßX²Ük}P¤ÃáX½jåç>·'ÉÛÑÑÞßß?®k?½ï¹==ˆ.baZ½ø<C2BD>¡³‹óT¾ÓŽ
<EFBFBD>A~£§CpH¿£!° ´"TrœI<äuË°âÛ=îôâ¼`w¿\„ÉY³Ø=+ÏÐï7#ãROÒ=óÊó‡Û}ê•WÃ}±K¾¼œÒÛ?ëó¾¼Ü9ëVÎZVÁÑôPs[l(+¼qœHH:»ÙTápí}äqö¢ƒÌ¥AKd²ÌY»<ÅÀî°õö2¦ G:;s׬ž ð,9ߟd¿q•—$4¤¿Ôζ1†<31>]$ú'£õg4ËYB‰þò‰É½<C389>å”[mðaõá#5Gjj¿ö?ÿ=ªuxóÍ7ÅZ>£=ÿµr=ÝOÝT•âq)÷â>c<E280BA>hýÑ!aùú± ­ õöѺ×õJ@+Å·¬+»ý&»Ç¼Øwø¥_µªÓ*<2A>²{v,ùú·'ÑÑÑwäݦ_ÿüÂÛèAJKÉÐVÜõ‰Â<E280B0><C382>Ù§^{£åÀÁ8J`±âëaÑ<—L‡4zϘ>ï‰~dW`tü4ÝÙU ”þs¹kV]*~ì_ÄK¿M&ý™8ž†³MŒÁÕs¦é÷`0ÌXzõŠo^¾üž-—.úã€<C382>!tt L$''<27>…3ðügïËh°ŸÜâÓz·mvûBMAP€EêFØfÚÔ[hžüƒ4È$GÃ<C383>¹¹î±{2Ëtá=ŸÿÏsû)pçú?ù·I(
Ò[óîÙßü¼ýƒ<C3BD>íý:LjúsãßôÌHû5 N¿öF³K2ÒaÀ^A“yAúÂ)_¬Ž‡èø \® Ï?{‰Ö0è¹e¥ºT!6D]Mc€ur‡ëƒÃQ3™µ'9Ëo[[þ™ªøî<C3B8><>‰5~ù¿~Ý[V$iH.vÙNešeö¯½ Pðýaü[€¦¡áu³H<>½r÷þ¹ƒ:ðÔP”ÀuÞUúÏON`804ÐòÖë-ïþ¹§öT°½OV+PÇ$p…áä ówß‚`pøÅŸõ"Û`<J½çrÚ/rz“€<E2809C>C%Œ½dXƒH3ØÁÃT8ÂÅWù7•ìüÌ%Ù窗c0¨ò¸0öNM°®a$e<>žŒ!Ñ_r׆-ߺsÎÊ„ƒ¼¢É.òÜÊ“vYð¿ŸÙhèFƒJN"ògÚûk/qWÈh´žC¬y8t"¬Æü«?Â#ÿÜìÍû´ά¥%<25>‡ORâÄöÖ7ÌZVj¶bšN§ö3ï¿þý÷©_î{ëo"• 0)5Å@ÝU³$wÕÒ™K&pÓH<C393>Ùé%ó‡.´F†£ZÊ73,lí "Eã!ECæzp.dw”Œ<00><>m·¡—l8æ÷]= 2«âXƒgÏe]·Ø29P.Í[ºÇ©÷ëŠw_ùR{²"úÅ—IôU@òŽÑ~<7E>l—åößwGëR þœÙÎL¿Me·$F»Õ3<E28098>® qÐÖÍÖ^QcÁÝ3~öæg@¤?æ4ØÉôâü3zO1…Ï¿õ¦Ã¸Þúèaxñ}®ùuú<75>¿÷Hô£ÿcšŽsýݼ3êœþ¨,0 ¼0oóZ_~î„ïž'#}î¦*wFZï©­ØZØÇòáð0HóÙp\Ål‡ÃQ^\Ä€Ù¢$ÞÛÇX\Oóü­a mŠþõp w(j°ô⪿÷Jˆ¾Ššâ„Ü™á“vªq éä?«J?ÆŸuîô'«ìÏ"ˆ™jÖ}žâ ?O~>¨ 24´Ðòþ<C3B2>½ø¯ö¤QX¢ËÏ Ò}BÚíBh;p¨ñׯpÁ.Œr…:`Ïyæ½W#û_¦~û ~ {öá“ì@ÛÎhç©wˆ£(ÕG ”|êcN_Ê%ÞI_^nþÆ*–¦šÎ<C5A1>E ˆ¿FFØÞ~.ÅksÈ<C388>D@˜6»½0
×…t/@Š"Ê€À0G P½}®ôô”9t‰êl€æ¶úø°ÎÒ0€OÅmUˆî_®?f¨¸œ—t~ "ýG¿ûÌÉ_þ)ÚÖú¶×®ðfù5^àbY(<>á¿ ASU£g"gÏSÀ¼,i,»Ç½ù™/§ŒÕ˜ùã—¾5x¡]{ј^Vžœ=Cý*r‰<72>¶,¸ ¿C‰ [lï¥úûh#‰a |òW?˜ÄùAt¨î•W6ˆk ˆà<CB86>:K<>`Q33ݦÛQ±cΕQúÁ^ÀÅ=A÷ôEAlKàR¬aIô Ãw<C383>O<>¡<19>ž¥W|Õ<>¡ 8pý-¼m öñ ¸íí×?|æ›{t_û<5F>¬DíÔ-ŒÊR¶‰ùN¾ŠHÏQÜEÆ°¤ s5ǃ¢ox€8Ïæg¾2véGÍu~ÿ!Ób<07>1˜“©ÙÄ1B8a8Ý@k?ÜÒŨÈX8?ÿ†ë'q~<7E>2™Sµñ"„f¡_ˆßwu3è³ÂŽ»4,Æ\°‘…,Bâa”žjëë‡Qš¥8†‰ eM(}”àÓöN†Ï¶<C38F>n¿êשׁ¸º«¾%Âýð¼Rô„<C3B4>À5ʲŒ˜c€~Ãhý®~ú‡]µM@·!#„n·qïÙ&FA£·YÈŠ5ô3ZÛÖ^A÷HzÝ·c\Ò<>Zfiaþ +Îÿå<C3BF>f²ù¯«+,t(ÑÚâÞ¼ø.ðáp<C3A1>´AŒÖ¸d<C2B8>¬Ô½gôg\Þϱ·ÙU+g.­@ª åÀ –ø ]UîVK[dx„[²ˆ/—¢l<C2A2>G« [!gñÍ8IÀŠEŽƒ5,šRÝmÑÌHÛ{ïç®Y•V<î<>râµ·¢,+.*⧬è[<>¿%A)~Ë¿hcå[évãÚ»)f¹1“Ÿ†ºWLïŒ#¶ìÞíVL`Pe;olûð¤”.‰}nî`Ε<C38E>JC¦“²±p8¨Ê·Û1¦ð£ËÑGtÝv!mpäÅŸ…úûÆò/ƒô<C692>™eå.o®`€=ƒÛò md;€Ë Ë:<3A>ÔQqbòjô“ ß~v¼½Å%é—Wýå÷n¹ë<0F>UÞ»eêKÿDAô|˜˜¦cwx¡zî#:}!¤=ÔŸ¥LÞiÝ£<C2A3> >>Á➞̴¢mëÍ.<2E>ÖN]´0ÛÅJûl^ÜÔC 0ïLøò.ïKú¢õû/Þ~s %`ì$CÇCm<43>ºœIö€!€gðèM÷ã æªÐj.1±
B¸"ú•÷lÙuMþHg¿¢ óáqê2!•ò^L{šò~Ž6F¢ÎJФ柽ê¡Û/¥«Å·Þ@¸]Úë£>S!®½[ý>®—%I€ðÔåÄcÀÖéË}ÃÑWÿã¶õ{O™“;  <76>:QO »ŠrÔÐâ{â‡AîL[® <C2AE><03>¿ýÝxGà¼èß·eןC¿¯ÙU_ÀÅþXJÀíÔŸæ$§A2<41>aÃ2|±Ÿkn¡0Óú¯\Ìîvmyö+—ØUd=ß²^s}éÛ»4îä8žÜ­<C39C>ÙÊX iâÏϹ2·I?Â@ñŽÇøùö®Hum„Ï®´ƒ¥ÅdzZ< ž¢oi hŸfùmÊ­>¿Ì'1Eùå_ï<<¦Ø¾1Âã7?÷åQ]þãSš>·¶Eh<45><68>šé¤uht"<>\  Î³*± ‡G˜ƒGB½ƒœ%“Iº
»: ôÕ7Œ«ž.žh¢oV>Ÿ¥€1gŒz ­ÌÐ maùʘÏxÝ>ãRmÝœÞ ü;)*üÉ nî
¼À˜U<CB9C>5ÐS&
kŽ…„Š¼F <0C>üQa= <<3C>úù/Æ^JO<10>îê<C3AE>¥Ü.\»–Øü|BZþ¹Æ`ûžÖç‚”@Á¦ÊÍ•“¹jš”jç[Õü;8Èr‡0 =Åž$<24>"X±¬á+¼üÇU11€qØ™sáã§iš1¾çr¥å.‚°Ž?a(jìD(Q XÀZi€
|É„^ð
<EFBFBD>m7&€i G£œÙ<C593>"¶Ôüìå_Ø1¹}¶TC&¨q²}¬Öj<C396>¹æë­aûÕÀØ­ÝI6¾çõàóæ:b¡®#GÇX@%Q‡µgø4ÅŸ@àBÚ»®èÕ@Ù¾a %I]õðí“Býã)M­êA;lƒÌ¢mš^y½6­0K/?çªO‡¨
ÜéiqŒÃAæ` 2 Œfqn7'&jô“±¡D@t„²´<04>
Hóª²ÂÒM”a6´û¾µ0°jϤQK%`€®˜-%Õ'úvr<76>©QˆÐUo¼*xúñ­ÃX…sÈXŽÑ1n $
úšÚ,•€ÛE<C39B>6õ®ÙR È@µúÐÎu²=š²¾P?Q ·¯½ªì2®”·Þ@ztJ€¢ØîÙ„¡!ÛEk<45>0Ärk0Th—o<78>t»KïüôêGâCÙâ`@h&AiÝ—BZ`bçßz{T"”@ȲyôGVá©Ó<1C>šä^šÅN5ŪƒR ²—qÇeí!R¹+ÊõÐ-]QÅ—%˜@:ÇIøXJa01<30>£ž2[ú¢Íß}zæucb@v}‰&­Ï¨(±[8F… <0B>ZI.a(аµÿ>#MS,<04>Bßä…¤¾™5 ò¢¹úá;®@çËvÞ¨öjY<10>¶“á·/”"¾²™.+<2B>DhŠ5¤*¼É}Ÿ%]®ø@&Á_? FT“i¼ò§<>z*³Ÿ%jײv¥ù<6<>ÿ‡`Ú£Úз`žnÆ<C386>å_ÜŽ4À•PS™i9+Ê´øchx¾Sâ
AHq@­g<C2AD>y“lF èéÄTÓJ½våú½O¦ÌÎ<C38C>È$8X3ÒÊIîvbKËÝ„ÒÀâÔUOĪKžæ:èüG"ªÔ¼þ—ÏÛRyÅú<C385>,t!ÖÕ«æf:i—Ôئ<>ë·‡§,xQÎH[¿÷‰âíÛâØÄâìœj Õ7Ñ|±U^(ÌwšþŸßÚ—~’è<00>7ÂtJ€$q<>CãU@7sDEJ×ÛѶdI™©•÷ï¸ýÏ,-ôçgk1Ðu1JËññ\?‹¬Õl°Ø!¿cÛêGö¸ÓÓâc ¥#R},ƒÜ™ÄB3ƒ<02>¶XD(a6ºÌ|`F†]nàÃÙ¶¨VÜ<56>5„cù#6|ãîËáõÐmò1îÛ
`²/ȧ+ja LÆTï}bæuq1€ ÑÃBÐ.º39YÄÌÙ¤¶Æ×ß°$B‰å‚úšÌ)É6!¨=Ðûl'38HCsé'(PÿyÙW¾ós7® õu%T„hqW×Ö²†110£¤pºÌoïþÒ’{w™CB´@fqõ±PŸ\²rQ}f†ÃìPª}é§
€Î£MF> j¡ˆÔõN³ðØ)«#^ U>¯dǺ«F äÈQ tuEƒ²âúþ4'y‡Øk Ž°0ˆ§K½vÕêGöÎÎ5Ç iÍâšc¡óm¿nQ±<51>?yIÆ€ø<E282AC><C3B8>V3J´}Ý‘ß ,OD®oahšh4ï÷ÜðÔÝW±÷Wh5ÆûÅ%­Åv2@z$i3Q§Ò4!|艂­ãÓ¡3çÂ'êÅp]°´Ü!a@£
ÌD(!Ðw¦]+ b6µÇEØmÓÙðñ\Hï60°æk;¯<õ×6OfÚÜ : ðybWCPNÚ@
q5<EFBFBD>Ì G?ìbê¶Ò;>]ùÕû-é<>¢
:º#SH!^^┢B 4rh"B €ˆ.HšþŒ C•éõãg£â!×á¼-Ëg¯.»êc™«O´bx$.r‡Éu¦\Jj¼ 3ÍŸ¾S9séâõßz"mAQU0bÖPÃ#5]æVOàþg¨¥µAC„ÑaJ/
<òy Ó)èê‡Z()RZÓ2Ó*¿´c*Œ%³´Ð3CW…»C´Ý!Æ^Œ*g:I âéÚÜé«ÝS¼}%DU@EØêºPß ›œ„# èˆ.Ô¡„¡@¦åÐçÑEPŠOžSÿR¶À!?ÚVvîüð¹Z×Ë*ÙÌ)Éz<C389><7A>Õñ¦Óºñ<05>îAt( øœ²:¾ÌÂÀÂB·áðÆ£?üibÁêŠZQ¾1-=lO<6C>& RN\üO[gVÌ:#ÈYY®-8$² ^ÓAb­bÓ|Ý·hé Š6g_º@‡bÁàTCèD}4'XXè1x„~ó»D@gm“á•Œt»‰?bµ'Cf·IjAöâ»þaJ Çîqå\_¦=³«]öAù¨ê~`´w¯E  …@¤CXŒÁA¹ÌDVº-wK) ùÓ&ß4·$d84‡ùRŒµë[im-xIÔÜî5ÿºs
Ž`Á­ëµòÝ*ŸL {h=¯³À²"®±ùã&H—+Æû‡¢ÕRy9ä,~“(±¢G^úéµyL×e!Ò•˜)XzÉ®­iWcÓwÔæŸãŸÍGÀˆ‰Â< 2VOHÂãA`RFÁ¾ôâ"ÅÝiåp<C3A5>ù fdö,„§Bƒ-m×>,§;5×¾ÑÐÂDå<44>/YóJ>±nê.{·ˆñ¡’|·wÓ…¢ ÓÞ÷?>:ôؤ ”œOh®¾xdÄãÆ“<„´oÀ%€ Ðy¤É€·ËäTÁ1† çBZ«
É.USü(-™ÂBqˆAý ÅÞ$B[P(0 {‡ÄKk ù}d2€ðzbØz×·ÏOjß:~.J QåZ ,Þµ5)+u*<2A>‰O•D¦°(ß ±¡0&c€Q
ŠN< ˆ –é æ Q^â<>Žµ´STT¢A×>:D@ƒ€šÐù0vA®õ©ÀdÎêÒES˜ü(M 0Ð&Tò"ãùÕ*¹‰‡ õ&$ºo@Ms0A`6ÔÃð0ìÐqåè;IDxòóõ<C3B3>ÓbD™eÊ®0ßùMýt„·h3È”Î(<28>Ÿ 3^zç§+wÔÅ©HÁ<>H^ y…OõH£î€R½ <06>ôO<C3B4>MßQÛ[•“@@ÙZ ÌH¨ÆÇí}º>»Û€XzºPKLØE:nªw2guÙœ5¥Óh@úØ8 ìˆIRîvªÚ 1 $?>{íJËw¯qt˜\@Šp¶ƒëÕ”»BJÀîq®ûúmÓk€ü®°¦`Dß £5åÝòѲapmnŒ¥-¹o×{wNWb3Mz¦ì:Ñh |˜^äG5…7­<1B>#|¦¼ì ré+ÆÁD•~±Í®Z¹úñ=ÞÜ\eàÚßà]@P§ô³üüÓ³<C393>lHø€˜´"?J˽¾LÌÅ[:@@xârΓàHÉË]óøC3—V(^ÑkR&”RSùå?ÊÂã º£¿ìIÎu<C38E>Ü6}‡Y°¡RÑuÚzAnP¶ŠÿÞÄFzÜ+º¿ôÎO‰Jò@oc»´è Èê œnfB«Ý«zdZ- RR: bå³?œ6LÜ*†Ç€®Í»qãêÇ$4‡£\m˜?(ÈðQk<RÖH8<48>É<EFBFBD>ÒR øØ8LÎíê—àqiÂ<69> ˆÕµþÞPËXX´õ{{ÿ_€ö»Àô]ˆ_IEND®B`
*3
$3
set
$48
2e0e5a9b6e609f71e02273e5de434e14:brainbaking.com
$622
{"author":{"name":"Webmention Rocks!","picture":"/pictures/webmention.rocks"},"name":"Receiver Test #1","content":"This test verifies that you accept a Webmention request that contains a valid source and target URL. To pass this test, your Webmention endpoint must return either HTTP 200, 201 or 202 along with the appropriate headers.\n If your endpoint retu...","published":"2021-04-25T03:49:45-07:00","url":"https://webmention.rocks/receive/1","type":"mention","source":"https://webmention.rocks/receive/1/0ae8c8642f0e3bbc75ff2b6147b3a06f","target":"https://brainbaking.com/post/2021/03/the-indieweb-mixed-bag/"}
*3
$3
set
$19
zylstra.org:picture
$16040
ÿØÿàJFIF,,ÿáExifII*} RÂÈÎäì(1 ô2˜(i‡8$CanonCanon EOS-1Ds Mark IIÀÆ-'ÀÆ-'Adobe Photoshop CS6 (Macintosh)2014:11:25 16:14:10Sonja de Ridderš‚<00>Š"ˆ'ˆÈ<00>0230<03><04>¦
ºÂ
ÊÒ 
Ú ÿÿ £ £¢â¢ê¢¤¤¤¤òùd
2014:10:24 14:55:322014:10:24 14:55:32<00>`e@Bõ@Bqè2€jLŒpß2±3399282250.0 mmrz(HHÿØÿí Adobe_CMÿîAdobed€ÿÛ   
        ÿÀ  "ÿÝ
ÿÄ?

 3!1AQa"q<>2¡±B#$RÁb34rÑC%Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2<>¡±B#ÁRÑð3$bárCScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?ïÚÂLòCËÜÜkÀý¤4A=ŸnàHn§MHÐ{”Óèx˜˜£í×ò,ÕÃóX?ÑÖ”xh˜IäèßÞILK7K÷l<>
bÖÀD"žÃà‘Ot”ÀTçŸoæê<C3A6>À8IÓ²-aÀÒ k<ø¤¥PÓ¿^u"Æ8Øã©ì°óþ¹tžœüª[»&üMÁì¯ö³ÔôšÿßÜ}7ÿ¢þwùµC+ëþ-cn6—zŒõ^àÚÚò ô<>µ§ÔÚáùŽ÷¤ª/RjnÍÍ2ÄJóÜï¯Ýg6шj鶴ïšÜë êÍ×µÍôþžÆ1£Œ²Ø꺿¯}pëe¶9ŽÜcÙìªÆãmÞÿ<43>¡ú Á$ª{ñ£<C3B1>ðQ¼z¤—¯cªvÙ[ä±ÛƒcpÓîà w¿óq$¦>óIk>„ËfXX×4<C397>Íw!4¼;A¡JOa¨IK £WÄ}Nu&{¢ ×B†LƒÜ”Ÿß¡{+ÕâHg6æã[c 7´™žyW1ÃÞÆè^Â%g:²^ùÄÇÍ%?ÿÐîYs<59>¡“žãs8hÜâŠÚÀ¦<>¼é© [¥F\çp óOˆ`—¸"6½µí™=ÊJSG§xq"yNÊÛ2TÜàé)œÚØëv†\O`¹Ë„ë?ã#ʺe¶É;D03ØGºÏ]Þ§¾ÍߢeMý>šè~»fW<66>õg0Ú\ û(¬0ÁsžàïL»ýÙ[ýoø%Å}Kè'1¯ÍÍnê…„4ðŽü÷Ÿän@šLE—"Ú2ràÖ×ϸÓé@žÖ>§{÷7ý"¾¬õðÀ VA—uæîÚ½Šš64J±±ž¦Ù_Að˺>].-Èç6òöþjƒ:eõX ]¼9 ¸HsL~éýÖ}îãÑh÷±®÷VSú¡ÑsO©°ãØ ‡R@×ÍŽj<E\!óþ‘Ö:¯Iêg/Ç<Úc*K-ðâǵŽ}à-õ?Ejõl\†ebSÒ?JÀç0í¯#ô•9Ì.nê¬ýõ£ê¸ÇÀûV ‰º˜õ$ Ï`?IÑí{؃õë(}o¶<6F><C2B6>1õû®à5û,¯ó?1ml…Ñ+..ÀP÷#Ý>;Ý$m#¾¾<"µà=¸)9­˜ø'-ÚHˆ>
$K·J
,±áÃCâ-­¯is]¬Ë@VÙ˜òÕåÕû<C395><C3BB>t%?ÿÑôK70¬'~ò@Ò!Z}ms‡äY=E®Éê¸øL]§½ÀÄþmUú¤èU´46u:•"‡f8AÕMºðH)}ÎÂFe6´””ñÿã;qèÍŸû[V£C—n„n€ç—ŽNÝÀq£Žæ*¿ã9Î~LůCðO<C3B0> kôbÒ߉Óqæ×C+Œhä†<C3A4>Ÿ÷ÔÉ/ƒ­C\ð(ûH <0B>¯ëþ­ô©ªÈ?²¶¨ëõd´ú$:L„—Q;:»
½­ Jçó~¹7@ÍÏnŽdƪ˜Î%¶bšˆîd<C3AE>‰&ˆOõŠ‡ß<E280A1>kHÚÂdh¹ñwSkúÃgªG¨1nôÁêcvÿÅ~zìÝ~6egh<67>äWõj—`ýy«<08>*95u&»*u”ÿÔÖ”w[1£èÛ<C3A8>*$“„y(Ó½Û<C2BD><C39B>-3$a¡žO ìl-‡8¿Ž'cKy¢ØAn×à* XL<58>ÒI×ÀöILžè.dƒ!í'èLø'®ªÅo¹ó¶k{ÏJÿÒôYgÒ슮¶ç¸ºÜ‡îs¼ö±Šã¬`iÜu<j^ P#BP)O»ÅLDB®ç¶5)6Áê‚›;vòY<E280BA>¡ênÊ€¼¢§úës.êݤUšÇÜßý¦<C3BD>äþ“ÒµWêøÙ¹ú˜Cvýë\Úëhm©Öîõ­wüO§Wü*Ð똵¿¬Wu€ÑŽúßàêÞýŽ%>½·1¶nýâS ²ÍBû‡»¤ukmuYUá´ š­;Þ3Û¹ö]ïeŸÔ]_Ôþ”숲ÂADÁ^ÈwFémsÙS*yÐ6€÷ÍkcÜänš<39>¯†úD[ßÜZôšÑçú÷AûE×]´Ÿp üÿš§ù«¦æ²Ç±ÝS§×Œ 2·VæÚ<<3C>°Ó×ÿמ»+,³}®¨Ý]zÙ´óž怜au—šß_¸Ÿ¹©áàÑn%$Ùco†µãØã?¿K¾—þ±.eµý~Åʨ˜©¬È±ÐtcæÙÿn·ô,þ]‹¸Îôí™wŸÈ¹ûÙ³6œÊZÝÍ{(ËyãS½FÒÆÿ 4*"Ý΋×Õ™’, âÛo¦úÜC¤¹<>Ñi—ÏŠÄèx~…™Yø,=¶& àèÅ0ˆ žá¡*n ˆ:!8êQZ»vpöŽa6C-éZÓé5¾ÑüS ƒ2}GA‡Ÿh>ÞÉ)ÿÓíÝumö™ð…K¢×´é//nï HADÝB˜ô<CB9C><Oâš•ö´hTE~èjsãÙ&ØÒ`h™°ÓÈO´¡Ô s<>*ÁãT”åuzƒª/³é5À<Xw4ÿaeeuGbÒçÌ5<C38C>ÜçxÑß<C391>Eìô®hsãØþóW{·¾Ü ù$²Æ<C2B2>8ö96CV\rÓÉ©‡—n}ç+%¥ÖÆú@â°³cÒn÷ ÛÔ~µâØùwÚë.ÞÛ6ïìnÕ<ß«vÔëzVe”dþpyö8£¬n¥háôl3S~Ô:“nÙµáŽ6´?c[½¶U»Ûë5Ï÷%¢ë'¿Ñ­Ó›õ–û™ÙV²>4µÃó¾“}OúhÿhéÙG'Á–%miüÇG·ÕýËÝ<>£ß fMï-ƒfM®cd±ísýÖoöÛé¿ÙRÈ£êeÜœ—œ¶¸“][œê«þOé=÷mÿJôtUŸ«¯…Õ¾×<C2BE>V@<40>¯ñЇXà¬àûøk˜ ºLF§kø;¶,g>¦†WHÚ©Aò[}¬Šmʹ­s«°6éÐ<C3A9>ºÏú¦¦<C2A6>ª¥*êPÒÆ5­ãS'<27>u—)G;™ÕVÇXú½+h,0Iiú.þC<E28098>y<EFBFBD>T-Ç9•úb÷cÁ—müáû©ì'SidjIB{¤h•†@k5<ÉñL\îyI K¥ºvJàÙ×ð$ø&±Ð8y Xù˜æCÿÔî_üËã÷L*½ ¹Oé´¶ßÒXÐC<C390>óGÊøö0ÒZ@pì¥Ðªô©aÞKvðPK'‡4íp ©cãœ@! %}¦Û <vPö1æR˜vÚúÉÕ¥XÜßL÷xªF[ažOt`ÿh))Vp!õ³§Ù<C2A7>“_T¯ù»Üpð²=®þ­Íoý¹ýuÖYkknû\+¯»ÞC[þsö®{?«`u‡äô¼B2)ǯԿ g¨NÚ¨¤ÿ„ö²×Ùbtw‡EÏ4RøÝGˆ(Ù}:÷Ð[ðnà?« •f]½3&,ÜkÞ9Úb×ÇúÉCˆ{¡óÝ¥
d£­<C2A3>Òsv—d['»äOžØK¬d
ë5ƒ$£wÖ|jæ, 7¬¿2ÏÐcó»OŠT¢WºÇ1ÁŒÕï>ÑâJîðñÙ‡ƒV# š›wrãî±ÿÚy\OHÃwªs2 ú-.3üŸt7î]>c3/Çvêž\Ø" \òڬeOnǵ¶W£kpkë 6Û+´= áAö¡±ç¢oqt¸À<V2}Ž²lÛ°»]¾
^~iì Ÿ¤Öé>2«¸™$€I ÛoºDè..• :$q ¬{œéqç@ˆ(1º/ÿÕí¬ 1ÚN…Ç;
¿9:|xVÁæ<>ëŽ}–œk±1)sƒ®¬þÒ¹Ûÿ2­ßͱ¨R_Hƒ?Dø,Üÿ¬½¦dœ|ܺ鱣ÝX—¼íþÒó:úÿÖMÇoSÊÔm?¤<V¼V]aÜçq&I'»‰úIR/GÒ/ÿÿVê¤×EYööÙ_¦Óÿ]¸<>ú…Íõ¯]{$–âtê] Rßû~ÑÿžëXBÇ´6Û²Ö‡´ìÑ{u#úÈÒ’ä;#!Þ®eödÚLîµåúÿlûVßÕF¾ž“Ô3«ip§%æºXß_þ…÷.zû= Îp×â»_ª˜U]Ðimã}7:Ë \5Åï¾Ïßömc¤ƒEQÁmçs}Í2ZáÁˆ\ÆoI¶§î ;Oq¢ëúi ų§ÜK„óSIvNêÿmª™/ý#ƒ€;¼xð”Á¦Œ§]^W Îx¿zèpúq-h`"#…<z…Ýã…¹Œ)ª·=ð I<@H¨¦EM§œ
ÿžÏx áŸO*ÏìP×ÿmdäuì<75>«ÿYrmc Ý?;eÙÀÄ<ƒK¯ Ÿ¡è©øE§…¯<7F>wV¹Žû5,4ãÙ±›µÞý}FúŸé6l\ÇÖMŽês2çcÖ\à‡Úœžk&lù>‹Ó:®U¯Öéù ¼î`öØßøÚúF+npû—ŽÖMV²Ú÷Væ™m­%¯iýæ=\º^<5E>õÓ¨ãþ<C3A3>¨<EFBFBD>·R9³F^ü`ýÿõÆ×R¥¶÷%Û‰ç6<>غ©Óº¿Mê`ýŠé´}*6Z?ënúõ¯QÆà¸ÆÓæBVݤ”;+ÝÇ*O°µÑÎœ!›½Û\4îBJñÿÖè>µõ0¾®æÞ×m¹íTîû­>”·ùM¯{—•µ­À`#ïw÷.£ücuFÛ<46>Òi^#ùy¶Ïæÿíª?óòä¬p6é÷ÿµ ¦ËA<C38B>>edDŸš¯ŽùiwûQö´ºdÇ¢¦NwaÚcâ™ßI<C39F>žòIòLÝÄ ×C<¤»tpa%#¼‚ð'A¯á+M¿_:†%8Øø=Œ¢Šë¬:ýÎ.††ïöúlnå•<C3A5>eÇNßÁv=!™<W`Ù;F…¤ý 'óR
jtÞ­oTÊv[±†%ƒmy o¹²íÆ»†ãô]·c•Ûé±Î;µob5YÔQö²hs<68>8ïe€¹ÒÒÐ}Õ}ð¸¹~“ÿé[þt¸ã!õêÛ{ÁÚàvÈ#™uE"/P¾2¡Eͦ¢Òid'ÊfFC†+NÚϺç`çs•,ï­UÕ}´àcÑcê H/±ƒI{½Pöµÿ¹ìÿ=bu,þ¥Öƒq-shÇk½K[KHÜ3{œOÑÿ_öÐá×T™ŠÑî½n<C2BD>NÄÅȦçmp{j±Žw¸kìi÷.¬ Õo@,m5{xvÚšíÿÚÝô?1QoÕÓ;©µís@;΀jw?"ǹÙ7Œ<>Ä:ãË¢*i÷Á±F6[t-vƒ±ø§$sÌhTlÀ25t˜ŸÝ šƸ¹ÆÇIÓîk~RS/n¬wî> c¥ýlê82¼·;7 hæ?ÝkGïcÚïs¶ÿ£·éÿ!b“´Ä<C2B4>Š‰w §Õ«4d×^E ÕZÝZàuÿΔ D!y¿Lë<4C>O¤Ø>Çlã—?Éu.'éŸàžïô´þzAÎÀúÅŒû°ª²ˆnN5<4E>_Yp8=¾Û)³ký;¥?ÿ×ã:ŽYÏê™Y<E284A2>“ö^à|;jÙ¬5Sx -n±â#…*ýÞɉãûÔ.¹¡ÃmZáò(©³Œb†Ï}gâ§k¤÷'P¢Í€å;!ÖOJL@ ×!º÷2„çM­ðÔŠ
J@ú÷¿lt4øûZ»N—WQĬ
ç"­ZXL»h\%o¿>ª«Õβ±æ ú‡þ‹¡ô¬{}/{`wçRœî <30>Nk<4E>ö\Æ´†9à‰úeßÊ•Íc9Öµ½ÒìCVæõAi5R%»¶ý/µï«ýqv™•tëKÙkƒˆüñ¤Gòí\<5C>øùwäØ1ª}ôd\ÜV?æãÅŽÇvÝ»(}ÆïRßÜ¡:ôÙEž7D¾ÆYPevÑ0ûH`þkwö=Ëc ¢UYs^û5yŽü@þªÕ·<î­î =£Hþ²k:}…¢AùmM¢Ì
1œü§²š˜à`rCGхƒ¹ûΉqwÿß—aÖ:uLÅʾé¹õTãY<FÖºòܹÏŒi§rRRì{-fúÜÑÉiããûª¹À4ôΡ'UVáhdý0KL*>—ö<E28094>ÜfæÁãýé)k­ÚæÖ9òL^H”<07>ÙnïIî dùè™:Àøp<O`¶>¦å¾<C3A5>¬<EFBFBD>¥³'ÊÞ#qc}vÿà•.~·o|þmcwÏóúSéúÁ…tû…õ´û¯>‹ÿè½?ÿÐóöÛXŸ˜QµÍuÕŽ@Ôð;˜g^ãˆBs÷dù€tûìÓæ“ 6aŽÐwòFâÞ’•ÁßÞ`"9Äjí÷(Ù¥1:H?<3F>Šk ðIMÎkªêtÚÍK\óA…Ÿú1z^¾¥[ƒ"DÊóÏ«X4æfº¼†îc).ÈÕïkZïaoæµv3<16> ²êàIJ×Gù¯Ü<C39C>Ô¶XÇe·¾À6Sî ÷Ú7*<2A>ÓúCu±¶dY:K¬oªïúY(_Y[™‡NKEâê²hÚ <0A>Íæ(ØË+Ûïw«ùêýTu:3«¡¾…­ÆÆÚÐwÖ`¹• FöýÓâ4ß¿à?ô57Ÿ”Ú6 $Õ0ê¬ïO™<4F>õM¯8¼Ù~qoÐkniGÒ÷µ¨<C2B5>²Ö<C2B2>ú…Þz°ùó½3‡Ëí
qþ·fz<EFBFBD>%ÞÝ…ï©<C3AF>§¸ŸUßõ ŠiÒOsùWGõ»©¿,ÕO¥e²Ç¸z€{Z+Ói;¶î\Ü<>|S"|ò ´Ë·2§iÐ<69>Þ08Qq )¤ÃúÃþ*9vÁÏdª \ãâT/÷Ý[<LÇJeOè¨%ÇÜýHÿ©K¥{z¶!vŸ§¨ŸóاchcMŽi/<ÕUÇs[‡Òi<>?ÿÙÿízPhotoshop 3.08BIM]Z%GZ%GZ%G720141024< 145532+0000>20141024tSonja de RidderÿáShttp://ns.adobe.com/xap/1.0/<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmp:ModifyDate="2014-11-25T16:14:10+01:00" xmp:CreatorTool="Adobe Photoshop CS6 (Macintosh)" xmp:CreateDate="2014-10-24T14:55:32" xmp:MetadataDate="2014-11-25T16:14:10+01:00" dc:rights="Sonja de Ridder" dc:format="image/jpeg" photoshop:ColorMode="3" photoshop:DateCreated="2014-10-24T14:55:32" xmpRights:Marked="True" xmpMM:InstanceID="xmp.iid:0480117407206811822ABD5C9D120783" xmpMM:DocumentID="xmp.did:0380117407206811822ABD5C9D120783" xmpMM:OriginalDocumentID="xmp.did:0380117407206811822ABD5C9D120783"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:0380117407206811822ABD5C9D120783" stEvt:when="2014-11-25T16:14:10+01:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:0480117407206811822ABD5C9D120783" stEvt:when="2014-11-25T16:14:10+01:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="w"?>ÿÛC   
!'"#%%%),($+!$%$ÿÛC   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ÿÀÿÄÿÄ9!1AQ"a<>2q±#¡ÁbBÑ$%4Rr²ÿÄÿÄ"!1AQ"aqÿÚ ?ßÒIÀ¬éQ}OÍÆ ¸Ž÷©VÓÚLºV™½ÅË\Ì^Fòj¤å\çÚˆkðê¸;ÙóÉÅJ9é<39>Ä<EFBFBD>Š³« Û€Íù_ëWFÍ´CvS¿µ@d<64>B4o=ëHA·‰¦eSŠiC8Å~µ”y—=ªèrä™Ð+€1úÒ†¢WX^(°<1C>¥È¥hU—ƒ i°ØØ %ÀÇj°²€OÍš ¢þ¶”ñÆGÊ0Ùö­|" Qmí„ €û³žõ<C5BE>­* Õ¬†+™Š)FÜ
ÒNùqáh9 úÐpFK`TÐyк*h­õWiÝd.¯{³…HWó1&§¥“lþçýCÂg<C382>aÓQö*˜7K<37>ç'9öÅ<šñTõ<54>õ­´®ð~Ò7\ª]£÷ÁÏ?µM¯ŒŠÖ•ñƒYÐ5(g—S“SË<53>YÛ•=ÔŒãžy#Š©c~è߉?VØXÈ®¶—wAöÛ;ÙRs<52>~Ù«¶t´É"ãÚ•°}à¦+*ðÜN02*Ä4ï†#?J ÎÙóïEéØÓÖ³ºŒ8¡õ蔌…Àîj*Ó’±*ÙÅRÈêk¶'!cëV2,¹Ú[µi <09>YFóœ·5p¹~±Et@á‰#ƒDgß¾'ÅÐÛûOsqÈ
ø(¾ý<C2BE>~Ã5-Y¥þ£¯õî§5ÊXÜ<A)Ü<07>Ÿ?µs¹Hï<48>6¿ºRÿÌšîªän槚Þ0w¿zÕ}o´ÿ@ß⯙x•<78>GáåÆï-ç·H?:<>Ðù«æÍã±Ãgsh-¦†GWC˜æ^ äsàÕ™%ÅôçÂþ­n¥éõ·Bâþ߉X)<1B>ìyŸÒ«<C392>š]-ÁO”ã…"De'9äÐ2ú™éEz@»¶Šºd30<33>T$=’Ü郸l[fDgµ]!¥dun=êȇ±™W-„ö÷   àÂ<>èÑbÏÊ>Ôwv<U4ü\µ›­¾*®•jˆ<6A>f#‰ßÉn$þõÏ+§L1Ýl=/¢XhÖ±ZÀ€ ã“îMp<4D>UZQQTiJ!;ªˆÍWM±¿‰¡º·ŽXÈÁW\ƒRÆåª?Pô'Oÿ²]ÛEg²:“”ð|žš÷Ó ø{sªh_´ÛM>oU$¹ò)'k«p·5ÞwLº¯¬-#¸GËíûR3lø&âBÉ<6A>e<EFBFBD>Òr§Çzìߧ<C39F>dÁÅT&'µA9hÈØI÷4iu¹C˜Ç!‡ŠÛ»ëØ-ob·—>µÇ
=ñÞ³T|wQƒéàŒv©3žãO÷æ´É(¤Šž%…çøå¬:~T`Ì|<7C>¨ó\y==š£#w¹Çj<C387>…P¯æ¸Åt´`<60>\ QÍé¾v°4±¨<C2B1>Öm}kv‰‡ÊÜÅnVÓ–±èlßaÿÞˆ™O 9®Ø^žnYªúd8hÈ5ÑÉÕ<C389>Ëݸýi¤våX)w\ò;RÅ<52>•„ªDG+ç4hÄ <C384>ARúQú>ªü <C3BC>µEÚç%Ì!÷1
Ò*ÚxMW¨.uIš<08>£ÿôz&“r®=«:_*^J<>[eÔ$x ð<C2A0><EFBFBD>{Pa=6±C×gª\|â+­„ŽàdœÃ’½<PÇUuæ¿44I <49>É <0C>÷©<C3B7>n¹t¥þ%ëR^&Ÿt^I¥` ž)”±¬l¾×¹½×t[h®"'lñ©Û[šfÚwXuê<>åÖD1gòK PߦMkN{ï¶<C3AF>¡õ|šŒ†ÖGÞ;7ºšÅkSã=ø“ Zw]躈%VicgÀòŽ9®œuÇš>‰ŠÈÇ#Ê& jí§˜A‰€Ýýê¡©”<C2A9>€p(("ÈA<C388>Ò¢K+BsŽÕ¦º[TD@u9vÇsM‰Yís 2œñVÄ h´b5
¾Â²õv6{Š(¨§V 6­m@£ŽÔ´ yqéYM4C¨Ä~ Vmëmc7dc=is%Ö¸ò®ÉoîVsòçó.Nã¹®]½“¬¬|%·¾6“%ÉfÞe7…N}øíö«<C3B6>³ÒÜqËØÝ+ lt yŪ,ªËµA$.=³Lòµ¼d]ºŽ8.Ò;I<>:È52L"•wðÎêXæM+O»UmÊ'È Ÿ¨ÎjÔ·ã9xï´´“neKK8e^Ël
…ûù¬XÖ6zQºï§Î«{¢ÉpʶÖÓ<„ã#îx«†ZLð݇DÜ^Ûõf¥m5Ü×K
{{q]0¬ÿ#ᶆdÊ…&º¼&f-·<>4 büœÒP”™¡bÈØ'Š\%œ¹1ÈÊùË;ÔT„÷®an0xÚ"tUõM=¦ôZ=2`ý @{4¬¹£Qä<51>øÈíCBŒ…ãɪ†\ Æç†R*_K<5F>ïj&ÒîÌr´PŸ#¯;èÛº;[ëëMÈÁ¦nv>Õ¹vxwº©Åñ
ÓM¼Šë¨n+‰Ÿ'&5\{Ž3ššìËRhv«ñs¥¤1 ¥‘Ù»ˆ”±?µnͳ5<C2B3>Ô{|@½Ñ.Væ,ÚKüÈgÔE÷úþ”µd½®½kk¬Ø¬öî\dsYµ&]JõyÞÑ°REùG³wìkÚÅ›@µ[#,§Ü€Iîp+®çþN[Ô­j“i¶«<VÒ\“"¡T€N3]]Y˨ cŒÕÚ•öœžæ L c,x«°ÅÌí€áKÛÚªBkGNÙÙSŠ!­ÅtûON6,ûš€½Çq槕5f*<1A>ËVG†Íìˆ1ùA«£jXÅ6Ÿ:Ü9_IÁE`yû× ñÓÙÅÉ2e}Oe­Í¤]G|¨§>jáÔuÎ߀ô½Dõ¸ÓcÐn¦ÓjJ0B öÍ]k·;”½Tî<54>ðîþͤšß¦ÿ¨0G­p¡FF~õ­¬ðˆÞ¥Õ:=N hJì¹Û͹S ~câ¤ý.[ºƒºoM¼Ð-î ĈUéXÎí¼-néæR¿ qÈáKç€?o­L1¶§'$Ân¯¶ñÔ#çÞ»I§<49>,¼®Ê¾¼{;}ñ[ÉpÄãj ÕbB¤™£EÜf ÓCF\o^ME½2àH9¢ïlÍ#(rÞõvH¿¸6š|ó`ˆ[:=òê]µÊ‚ž¢ ø "PàÔjÉé3̃¹Å…Z81 bSó<53>Hã çÚˆªu½“êÚÄ&éÐzýHñûf±—n¸]V[ÒÚ²K0·¹%XÖ±§yݤÚÆÉ{oh±ùã;\}Æ 6í/ê6 ]¦™mMŒò`<60>•®þ<>Íkþ¯_@<40>OfÚ8¸ÀE²ÅÉšj·ž<C2B7>Ì<EFBFBD><49>È£;_>Z8±ŸTq·Öù#ú¨îâ·„×n<Ùo¥Å>tÉãšÔr.Öâ;y³•VàU/f.ŒBI
6ôÏތ×aƒÚ ·R¦JçæÕgnyå㼪O&µ“ŸWwk³êG¥Ïé(vÛùOšÃÐ/£áÿÓ•.!Pª€ƒZ…vëÓiXÆ»W5šBÖöH­ZPT<50>Ú]²” 
<EFBFBD>°[Ì<š© ³MQ´®Ê¨£,Ìp¨Óêñž³.­bCY]ŸUJŒc>GÒ¹ýÓ¾µŒ«F…ÖÐK`ˆePqÜøýi§L,«¯PXÂexy
¾<EFBFBD>,ˆ¯ë{v·(.qÀ©§Ó9WåÒÁ¬Ã-ïKÑ7[Ž€b±Ñlíâ9TM§iì|ŠÜôãœÿU*eA ç“UÏDzÜœcÍôK<C3B4>ìÆÜîš0øà5&,áØ’ô5¸jYrÇjñíZ¹niË=ejÓ¨-e,Ü5aÍ2õ†™BFäÑ-t“ÍE—£U´<55>rËq [{ïp?š²3j¨~!ôN<C3B4>æ× šp3è[ÿU‰ûp+^&Ù¹þ o.Y¢Ñ4”ˆvܶãúí÷§‰*ƒÔ]{Õü†¾Õ$heuS xE9 <01>Vc!¶Ÿ©[ÅuhöFëP¨üHàÿ#í^|æ®ÞÎ;¼tÌõ<C38C>&ÿLvÕ¤ŒyÛZ•4…ÿzÖ3é—Qä(Åi<ªwHÓ./¿«pï+x RÕ“kÿOéqéÖÒ_ÜíŽ8”¶~•ÎöïŒÐ3Ösô&µ§Üß};S<>LOœ†f<00>¥wñéãË.öÖ,5K=bÖ+»)£¸·w+¡È5<C388>[CSNÒOÍÄž™ žj7!¤ÁBIÉ4‰<34>9V”íÀªÌî.—ÉZ˼`m95«†uoÇ[<5B>&át¾œŠßåâa<C3A2>ÄxÛëZ˜ýf÷Ò»/ÇŽ±º¶šüM ÂÉ_2~•n)ŒñšRÞ;»éšêúîi<C3AE>ÎX»“UK$Q<E28099>¯½m§…Ñ™N$S†SÜQEôäi©uU…»®ôÛOœ|ßâƒiÖíåÓuFiwÅqy—UÏ+ýÿšÇ&¬ê;påe¯[Ã8Eu<çé\$z*£6kq8dˆ*ûýk¦Øñ[zwG€lʽs­N<C2AD>ê+˜­´HÛláîXÂqǽtãÂåzc—=E3ã ,òÙlu1‡t?ںǛ%/@êMW¦nÚ^¡=¹o̪r‡õSÁ¥OMg§~6,ûmõëq cæTþ«Ü}«7ƦMOÕm5H ΟwÌd~hÛ8ÿµa~<>Ì÷*XåGŠ<47>ú‡ ËÛŒUgFMÄr1ÚGz‰z/â¿QË¢tEõÔL#ž@ Œç±cŒþÙ®ºÝs•òÂǺF'œ÷­‚ NÆ;Ôîàñ@Ù}î;š¤~ì8 {¦:šÃ¥5µÕo¢M_ÓŽ%ÉgÆ>ÝÍY6-Ò|n´êVÓ®´kJ$ݵ¼dbµá<C2B5>šÚ̵v´ nnôøØ©bÖ¸5çÓÙ.àHmJ¾[?¥¬·“ØYî‰Ib>Qõ¬év•é]=tÛioïfCy0$©aººÉ¨òåë+ø“•ÔmG¶1êÈ
×ýbª!2ø<h…ÂŒœãƒ@^<5E>«ß鉬/&O-c÷÷¦†…Òeò¡T*͵nÔ`©ÿ<00>‡ãRµg·È>ⳤ¹X dsïMÛ/ÿP=P·zÅž<C385>níéY¯«8'»·oØ5Ò%Œç1ÎØ<*‰issÞ¨[NV03Ç¡[ˆÜÇÁÿ *7úóPÑvÿYPѬŠ¼•a<E280A2>GcV §Ttu»ßZGØS¸öý|<7C>Ò¯—é¤÷H]K{ejdx¤wŒ àáÇ׿#®SnšÇ,¤=ÔýO¦tÌq~*ÍVi[
¾©ÉûVgÖÚþê¡ë?õØ -:YŽL*Oœ5™‰y-Sðž­<SªÝÉ99î{þõÛÏ/×-u>«¹m5[ßÅ~BÄ|…ï‚|Ö.ª¹/©éa-õ<T Ä$<24>\ÌáÉðPt¶ÞAàŠ<C3A0>·|<7C>I ¸ô‡ÅmW§^K÷kí1ÏM¿<kÿþ K67®ŸK>®ÒaÕ´±5¬¹ÚHÁR8*G fâ¯uýUúƒ]¾Ôg$µÔ¬ÀûöÅn"ãå%~lóA-nJÅã<>*…‚&¹Qž uÁ,á[<Žß¥“å¡Ç~9 ”è]2æçQim¥hž0¸ ðrMX5øõ«k?GV´2DÃi<C383> *+=êH¡é½Y5+GiôùÆ0ô[¸xöû×^9å<c7®ÃEÓW:ÕÌr´†æí€æI3ò8AŸaW*E“Fè(âŸñ7mÉùSÅcsâ¬7v<>gg#JðÂN_ÍgjÅ5éínµyä³$ø*Ÿp3üÒz@ÜE9hÒ@Y{¯‘@Ý˲(¹vÁ—W^œ‹
÷Ô y‰PÇÐ4ó+Oj Kà·r[ÓÖåÄ1È“"àÈ'û
Îk#/·;ÎÂØÏbkHfy7\¤l0äÔ¡Š®qÅ–¿.éŸz[>é$Ï¿ø vYG¢|qïAyø[¤\̲]¨"2ê¹ØgüÓj×²±_Ä»0 ¸ïAœu¥•®¡=µž•k‡Ë&p¤(Üsû÷®Ü]o&rüKôƒptIý'žF—vFH>þ;Ö¿q™kÃzíe<C3AD>§Èˆ®ölóúןm¡uŽ˜FPn7Éä«p*laWl¦òb¸
]˜àgŠÒšÚ) ƒÁò>ôÌÛ®¿l­êj2àPvæacß4Ã+4rÍÿÄmSüÐX¾uº6³y"%€†úá—æ³—kQ1ÏÔ½i ú¡ï×#…}(%<25>Ë ·µ€•Œ((ˆÑHå%rs惓IÁQä㊠CáN»Œ&ÚIâEy€çqþ+^6ü6ÔµÙ£ŸK+#ƒŽTçÍgV*Ç/TÈQ,¬™³Û çþÉ]±Ÿãÿk?VM1^ÃK·ÜÜúc<}c“¼ªÏG#׮݆Ë”8ïXÒ<58>êM^ít Éî!1Ʊ;ÇœqSCç]Çs19Åi vyhS¹÷<C2B9>Þ ˆ‰·_JAó@&¯+ˆ½É ó:Gh-Ѳøù¨
é ¸ìï¦iŒ<>ûŠ”; ,¤ùª†b÷²#ÐLÂÙ ~ô¦\Æ<>r6n<>óõÍÍÑ:e£tÆ™$°#».첃ܓVeg£K­Þ‰§ßéS"ÛˆPíx‰R¯ìËí5]ÎkصûÏÇ\¬©éÁ¿pÉò¯N9Oñ4ƽ¯K¡ßºÄ¿îaÑF6É<}«…Ï î7ª*;=QI+-“1˜ÙƒYÞ”íCø¥ªjé“XËøaѼÇ<C2BC>NXT³‡ld¾õ(åÃ#ÈÅ;6!ú
&ÅÛŸs@̃ÕÔ£þžhÔdX ô¢<C3B4>T¿r(#lÉYiÇËPÿÙ
*3
$3
set
$48
a789ec1fde13d44f0f03cdce05eaa353:brainbaking.com
$705
{"author":{"name":"Ton Zijlstra","picture":"/pictures/zylstra.org"},"name":"Nabeschouwing: de eerste Nederlandstalige Obsidian meet-up","content":"De allereerste Nederlandstalige meet-up van Obsidian.md gebruikers was interessant en leuk! We waren met z’n vieren, Sebastiaan, Wouter, Frank en ik, en spraken bijna 2 uur met elkaar. Leuk om te vergelijken waarom en hoe we notities maken in Obsid...","published":"2021-04-25T11:24:48+02:00","url":"https://www.zylstra.org/blog/2021/04/nabeschouwing-de-eerste-nederlandstalige-obsidian-meet-up/","type":"mention","source":"https://www.zylstra.org/blog/2021/04/nabeschouwing-de-eerste-nederlandstalige-obsidian-meet-up/","target":"https://brainbaking.com"}
*3
$3
set
$19
zylstra.org:picture
$16040
ÿØÿàJFIF,,ÿáExifII*} RÂÈÎäì(1 ô2˜(i‡8$CanonCanon EOS-1Ds Mark IIÀÆ-'ÀÆ-'Adobe Photoshop CS6 (Macintosh)2014:11:25 16:14:10Sonja de Ridderš‚<00>Š"ˆ'ˆÈ<00>0230<03><04>¦
ºÂ
ÊÒ 
Ú ÿÿ £ £¢â¢ê¢¤¤¤¤òùd
2014:10:24 14:55:322014:10:24 14:55:32<00>`e@Bõ@Bqè2€jLŒpß2±3399282250.0 mmrz(HHÿØÿí Adobe_CMÿîAdobed€ÿÛ   
        ÿÀ  "ÿÝ
ÿÄ?

 3!1AQa"q<>2¡±B#$RÁb34rÑC%Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2<>¡±B#ÁRÑð3$bárCScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?ïÚÂLòCËÜÜkÀý¤4A=ŸnàHn§MHÐ{”Óèx˜˜£í×ò,ÕÃóX?ÑÖ”xh˜IäèßÞILK7K÷l<>
bÖÀD"žÃà‘Ot”ÀTçŸoæê<C3A6>À8IÓ²-aÀÒ k<ø¤¥PÓ¿^u"Æ8Øã©ì°óþ¹tžœüª[»&üMÁì¯ö³ÔôšÿßÜ}7ÿ¢þwùµC+ëþ-cn6—zŒõ^àÚÚò ô<>µ§ÔÚáùŽ÷¤ª/RjnÍÍ2ÄJóÜï¯Ýg6шj鶴ïšÜë êÍ×µÍôþžÆ1£Œ²Ø꺿¯}pëe¶9ŽÜcÙìªÆãmÞÿ<43>¡ú Á$ª{ñ£<C3B1>ðQ¼z¤—¯cªvÙ[ä±ÛƒcpÓîà w¿óq$¦>óIk>„ËfXX×4<C397>Íw!4¼;A¡JOa¨IK £WÄ}Nu&{¢ ×B†LƒÜ”Ÿß¡{+ÕâHg6æã[c 7´™žyW1ÃÞÆè^Â%g:²^ùÄÇÍ%?ÿÐîYs<59>¡“žãs8hÜâŠÚÀ¦<>¼é© [¥F\çp óOˆ`—¸"6½µí™=ÊJSG§xq"yNÊÛ2TÜàé)œÚØëv†\O`¹Ë„ë?ã#ʺe¶É;D03ØGºÏ]Þ§¾ÍߢeMý>šè~»fW<66>õg0Ú\ û(¬0ÁsžàïL»ýÙ[ýoø%Å}Kè'1¯ÍÍnê…„4ðŽü÷Ÿän@šLE—"Ú2ràÖ×ϸÓé@žÖ>§{÷7ý"¾¬õðÀ VA—uæîÚ½Šš64J±±ž¦Ù_Að˺>].-Èç6òöþjƒ:eõX ]¼9 ¸HsL~éýÖ}îãÑh÷±®÷VSú¡ÑsO©°ãØ ‡R@×ÍŽj<E\!óþ‘Ö:¯Iêg/Ç<Úc*K-ðâǵŽ}à-õ?Ejõl\†ebSÒ?JÀç0í¯#ô•9Ì.nê¬ýõ£ê¸ÇÀûV ‰º˜õ$ Ï`?IÑí{؃õë(}o¶<6F><C2B6>1õû®à5û,¯ó?1ml…Ñ+..ÀP÷#Ý>;Ý$m#¾¾<"µà=¸)9­˜ø'-ÚHˆ>
$K·J
,±áÃCâ-­¯is]¬Ë@VÙ˜òÕåÕû<C395><C3BB>t%?ÿÑôK70¬'~ò@Ò!Z}ms‡äY=E®Éê¸øL]§½ÀÄþmUú¤èU´46u:•"‡f8AÕMºðH)}ÎÂFe6´””ñÿã;qèÍŸû[V£C—n„n€ç—ŽNÝÀq£Žæ*¿ã9Î~LůCðO<C3B0> kôbÒ߉Óqæ×C+Œhä†<C3A4>Ÿ÷ÔÉ/ƒ­C\ð(ûH <0B>¯ëþ­ô©ªÈ?²¶¨ëõd´ú$:L„—Q;:»
½­ Jçó~¹7@ÍÏnŽdƪ˜Î%¶bšˆîd<C3AE>‰&ˆOõŠ‡ß<E280A1>kHÚÂdh¹ñwSkúÃgªG¨1nôÁêcvÿÅ~zìÝ~6egh<67>äWõj—`ýy«<08>*95u&»*u”ÿÔÖ”w[1£èÛ<C3A8>*$“„y(Ó½Û<C2BD><C39B>-3$a¡žO ìl-‡8¿Ž'cKy¢ØAn×à* XL<58>ÒI×ÀöILžè.dƒ!í'èLø'®ªÅo¹ó¶k{ÏJÿÒôYgÒ슮¶ç¸ºÜ‡îs¼ö±Šã¬`iÜu<j^ P#BP)O»ÅLDB®ç¶5)6Áê‚›;vòY<E280BA>¡ênÊ€¼¢§úës.êݤUšÇÜßý¦<C3BD>äþ“ÒµWêøÙ¹ú˜Cvýë\Úëhm©Öîõ­wüO§Wü*Ð똵¿¬Wu€ÑŽúßàêÞýŽ%>½·1¶nýâS ²ÍBû‡»¤ukmuYUá´ š­;Þ3Û¹ö]ïeŸÔ]_Ôþ”숲ÂADÁ^ÈwFémsÙS*yÐ6€÷ÍkcÜänš<39>¯†úD[ßÜZôšÑçú÷AûE×]´Ÿp üÿš§ù«¦æ²Ç±ÝS§×Œ 2·VæÚ<<3C>°Ó×ÿמ»+,³}®¨Ý]zÙ´óž怜au—šß_¸Ÿ¹©áàÑn%$Ùco†µãØã?¿K¾—þ±.eµý~Åʨ˜©¬È±ÐtcæÙÿn·ô,þ]‹¸Îôí™wŸÈ¹ûÙ³6œÊZÝÍ{(ËyãS½FÒÆÿ 4*"Ý΋×Õ™’, âÛo¦úÜC¤¹<>Ñi—ÏŠÄèx~…™Yø,=¶& àèÅ0ˆ žá¡*n ˆ:!8êQZ»vpöŽa6C-éZÓé5¾ÑüS ƒ2}GA‡Ÿh>ÞÉ)ÿÓíÝumö™ð…K¢×´é//nï HADÝB˜ô<CB9C><Oâš•ö´hTE~èjsãÙ&ØÒ`h™°ÓÈO´¡Ô s<>*ÁãT”åuzƒª/³é5À<Xw4ÿaeeuGbÒçÌ5<C38C>ÜçxÑß<C391>Eìô®hsãØþóW{·¾Ü ù$²Æ<C2B2>8ö96CV\rÓÉ©‡—n}ç+%¥ÖÆú@â°³cÒn÷ ÛÔ~µâØùwÚë.ÞÛ6ïìnÕ<ß«vÔëzVe”dþpyö8£¬n¥háôl3S~Ô:“nÙµáŽ6´?c[½¶U»Ûë5Ï÷%¢ë'¿Ñ­Ó›õ–û™ÙV²>4µÃó¾“}OúhÿhéÙG'Á–%miüÇG·ÕýËÝ<>£ß fMï-ƒfM®cd±ísýÖoöÛé¿ÙRÈ£êeÜœ—œ¶¸“][œê«þOé=÷mÿJôtUŸ«¯…Õ¾×<C2BE>V@<40>¯ñЇXà¬àûøk˜ ºLF§kø;¶,g>¦†WHÚ©Aò[}¬Šmʹ­s«°6éÐ<C3A9>ºÏú¦¦<C2A6>ª¥*êPÒÆ5­ãS'<27>u—)G;™ÕVÇXú½+h,0Iiú.þC<E28098>y<EFBFBD>T-Ç9•úb÷cÁ—müáû©ì'SidjIB{¤h•†@k5<ÉñL\îyI K¥ºvJàÙ×ð$ø&±Ð8y Xù˜æCÿÔî_üËã÷L*½ ¹Oé´¶ßÒXÐC<C390>óGÊøö0ÒZ@pì¥Ðªô©aÞKvðPK'‡4íp ©cãœ@! %}¦Û <vPö1æR˜vÚúÉÕ¥XÜßL÷xªF[ažOt`ÿh))Vp!õ³§Ù<C2A7>“_T¯ù»Üpð²=®þ­Íoý¹ýuÖYkknû\+¯»ÞC[þsö®{?«`u‡äô¼B2)ǯԿ g¨NÚ¨¤ÿ„ö²×Ùbtw‡EÏ4RøÝGˆ(Ù}:÷Ð[ðnà?« •f]½3&,ÜkÞ9Úb×ÇúÉCˆ{¡óÝ¥
d£­<C2A3>Òsv—d['»äOžØK¬d
ë5ƒ$£wÖ|jæ, 7¬¿2ÏÐcó»OŠT¢WºÇ1ÁŒÕï>ÑâJîðñÙ‡ƒV# š›wrãî±ÿÚy\OHÃwªs2 ú-.3üŸt7î]>c3/Çvêž\Ø" \òڬeOnǵ¶W£kpkë 6Û+´= áAö¡±ç¢oqt¸À<V2}Ž²lÛ°»]¾
^~iì Ÿ¤Öé>2«¸™$€I ÛoºDè..• :$q ¬{œéqç@ˆ(1º/ÿÕí¬ 1ÚN…Ç;
¿9:|xVÁæ<>ëŽ}–œk±1)sƒ®¬þÒ¹Ûÿ2­ßͱ¨R_Hƒ?Dø,Üÿ¬½¦dœ|ܺ鱣ÝX—¼íþÒó:úÿÖMÇoSÊÔm?¤<V¼V]aÜçq&I'»‰úIR/GÒ/ÿÿVê¤×EYööÙ_¦Óÿ]¸<>ú…Íõ¯]{$–âtê] Rßû~ÑÿžëXBÇ´6Û²Ö‡´ìÑ{u#úÈÒ’ä;#!Þ®eödÚLîµåúÿlûVßÕF¾ž“Ô3«ip§%æºXß_þ…÷.zû= Îp×â»_ª˜U]Ðimã}7:Ë \5Åï¾Ïßömc¤ƒEQÁmçs}Í2ZáÁˆ\ÆoI¶§î ;Oq¢ëúi ų§ÜK„óSIvNêÿmª™/ý#ƒ€;¼xð”Á¦Œ§]^W Îx¿zèpúq-h`"#…<z…Ýã…¹Œ)ª·=ð I<@H¨¦EM§œ
ÿžÏx áŸO*ÏìP×ÿmdäuì<75>«ÿYrmc Ý?;eÙÀÄ<ƒK¯ Ÿ¡è©øE§…¯<7F>wV¹Žû5,4ãÙ±›µÞý}FúŸé6l\ÇÖMŽês2çcÖ\à‡Úœžk&lù>‹Ó:®U¯Öéù ¼î`öØßøÚúF+npû—ŽÖMV²Ú÷Væ™m­%¯iýæ=\º^<5E>õÓ¨ãþ<C3A3>¨<EFBFBD>·R9³F^ü`ýÿõÆ×R¥¶÷%Û‰ç6<>غ©Óº¿Mê`ýŠé´}*6Z?ënúõ¯QÆà¸ÆÓæBVݤ”;+ÝÇ*O°µÑÎœ!›½Û\4îBJñÿÖè>µõ0¾®æÞ×m¹íTîû­>”·ùM¯{—•µ­À`#ïw÷.£ücuFÛ<46>Òi^#ùy¶Ïæÿíª?óòä¬p6é÷ÿµ ¦ËA<C38B>>edDŸš¯ŽùiwûQö´ºdÇ¢¦NwaÚcâ™ßI<C39F>žòIòLÝÄ ×C<¤»tpa%#¼‚ð'A¯á+M¿_:†%8Øø=Œ¢Šë¬:ýÎ.††ïöúlnå•<C3A5>eÇNßÁv=!™<W`Ù;F…¤ý 'óR
jtÞ­oTÊv[±†%ƒmy o¹²íÆ»†ãô]·c•Ûé±Î;µob5YÔQö²hs<68>8ïe€¹ÒÒÐ}Õ}ð¸¹~“ÿé[þt¸ã!õêÛ{ÁÚàvÈ#™uE"/P¾2¡Eͦ¢Òid'ÊfFC†+NÚϺç`çs•,ï­UÕ}´àcÑcê H/±ƒI{½Pöµÿ¹ìÿ=bu,þ¥Öƒq-shÇk½K[KHÜ3{œOÑÿ_öÐá×T™ŠÑî½n<C2BD>NÄÅȦçmp{j±Žw¸kìi÷.¬ Õo@,m5{xvÚšíÿÚÝô?1QoÕÓ;©µís@;΀jw?"ǹÙ7Œ<>Ä:ãË¢*i÷Á±F6[t-vƒ±ø§$sÌhTlÀ25t˜ŸÝ šƸ¹ÆÇIÓîk~RS/n¬wî> c¥ýlê82¼·;7 hæ?ÝkGïcÚïs¶ÿ£·éÿ!b“´Ä<C2B4>Š‰w §Õ«4d×^E ÕZÝZàuÿΔ D!y¿Lë<4C>O¤Ø>Çlã—?Éu.'éŸàžïô´þzAÎÀúÅŒû°ª²ˆnN5<4E>_Yp8=¾Û)³ký;¥?ÿ×ã:ŽYÏê™Y<E284A2>“ö^à|;jÙ¬5Sx -n±â#…*ýÞɉãûÔ.¹¡ÃmZáò(©³Œb†Ï}gâ§k¤÷'P¢Í€å;!ÖOJL@ ×!º÷2„çM­ðÔŠ
J@ú÷¿lt4øûZ»N—WQĬ
ç"­ZXL»h\%o¿>ª«Õβ±æ ú‡þ‹¡ô¬{}/{`wçRœî <30>Nk<4E>ö\Æ´†9à‰úeßÊ•Íc9Öµ½ÒìCVæõAi5R%»¶ý/µï«ýqv™•tëKÙkƒˆüñ¤Gòí\<5C>øùwäØ1ª}ôd\ÜV?æãÅŽÇvÝ»(}ÆïRßÜ¡:ôÙEž7D¾ÆYPevÑ0ûH`þkwö=Ëc ¢UYs^û5yŽü@þªÕ·<î­î =£Hþ²k:}…¢AùmM¢Ì
1œü§²š˜à`rCGхƒ¹ûΉqwÿß—aÖ:uLÅʾé¹õTãY<FÖºòܹÏŒi§rRRì{-fúÜÑÉiããûª¹À4ôΡ'UVáhdý0KL*>—ö<E28094>ÜfæÁãýé)k­ÚæÖ9òL^H”<07>ÙnïIî dùè™:Àøp<O`¶>¦å¾<C3A5>¬<EFBFBD>¥³'ÊÞ#qc}vÿà•.~·o|þmcwÏóúSéúÁ…tû…õ´û¯>‹ÿè½?ÿÐóöÛXŸ˜QµÍuÕŽ@Ôð;˜g^ãˆBs÷dù€tûìÓæ“ 6aŽÐwòFâÞ’•ÁßÞ`"9Äjí÷(Ù¥1:H?<3F>Šk ðIMÎkªêtÚÍK\óA…Ÿú1z^¾¥[ƒ"DÊóÏ«X4æfº¼†îc).ÈÕïkZïaoæµv3<16> ²êàIJ×Gù¯Ü<C39C>Ô¶XÇe·¾À6Sî ÷Ú7*<2A>ÓúCu±¶dY:K¬oªïúY(_Y[™‡NKEâê²hÚ <0A>Íæ(ØË+Ûïw«ùêýTu:3«¡¾…­ÆÆÚÐwÖ`¹• FöýÓâ4ß¿à?ô57Ÿ”Ú6 $Õ0ê¬ïO™<4F>õM¯8¼Ù~qoÐkniGÒ÷µ¨<C2B5>²Ö<C2B2>ú…Þz°ùó½3‡Ëí
qþ·fz<EFBFBD>%ÞÝ…ï©<C3AF>§¸ŸUßõ ŠiÒOsùWGõ»©¿,ÕO¥e²Ç¸z€{Z+Ói;¶î\Ü<>|S"|ò ´Ë·2§iÐ<69>Þ08Qq )¤ÃúÃþ*9vÁÏdª \ãâT/÷Ý[<LÇJeOè¨%ÇÜýHÿ©K¥{z¶!vŸ§¨ŸóاchcMŽi/<ÕUÇs[‡Òi<>?ÿÙÿízPhotoshop 3.08BIM]Z%GZ%GZ%G720141024< 145532+0000>20141024tSonja de RidderÿáShttp://ns.adobe.com/xap/1.0/<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmp:ModifyDate="2014-11-25T16:14:10+01:00" xmp:CreatorTool="Adobe Photoshop CS6 (Macintosh)" xmp:CreateDate="2014-10-24T14:55:32" xmp:MetadataDate="2014-11-25T16:14:10+01:00" dc:rights="Sonja de Ridder" dc:format="image/jpeg" photoshop:ColorMode="3" photoshop:DateCreated="2014-10-24T14:55:32" xmpRights:Marked="True" xmpMM:InstanceID="xmp.iid:0480117407206811822ABD5C9D120783" xmpMM:DocumentID="xmp.did:0380117407206811822ABD5C9D120783" xmpMM:OriginalDocumentID="xmp.did:0380117407206811822ABD5C9D120783"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:0380117407206811822ABD5C9D120783" stEvt:when="2014-11-25T16:14:10+01:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:0480117407206811822ABD5C9D120783" stEvt:when="2014-11-25T16:14:10+01:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="w"?>ÿÛC   
!'"#%%%),($+!$%$ÿÛC   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ÿÀÿÄÿÄ9!1AQ"a<>2q±#¡ÁbBÑ$%4Rr²ÿÄÿÄ"!1AQ"aqÿÚ ?ßÒIÀ¬éQ}OÍÆ ¸Ž÷©VÓÚLºV™½ÅË\Ì^Fòj¤å\çÚˆkðê¸;ÙóÉÅJ9é<39>Ä<EFBFBD>Š³« Û€Íù_ëWFÍ´CvS¿µ@d<64>B4o=ëHA·‰¦eSŠiC8Å~µ”y—=ªèrä™Ð+€1úÒ†¢WX^(°<1C>¥È¥hU—ƒ i°ØØ %ÀÇj°²€OÍš ¢þ¶”ñÆGÊ0Ùö­|" Qmí„ €û³žõ<C5BE>­* Õ¬†+™Š)FÜ
ÒNùqáh9 úÐpFK`TÐyк*h­õWiÝd.¯{³…HWó1&§¥“lþçýCÂg<C382>aÓQö*˜7K<37>ç'9öÅ<šñTõ<54>õ­´®ð~Ò7\ª]£÷ÁÏ?µM¯ŒŠÖ•ñƒYÐ5(g—S“SË<53>YÛ•=ÔŒãžy#Š©c~è߉?VØXÈ®¶—wAöÛ;ÙRs<52>~Ù«¶t´É"ãÚ•°}à¦+*ðÜN02*Ä4ï†#?J ÎÙóïEéØÓÖ³ºŒ8¡õ蔌…Àîj*Ó’±*ÙÅRÈêk¶'!cëV2,¹Ú[µi <09>YFóœ·5p¹~±Et@á‰#ƒDgß¾'ÅÐÛûOsqÈ
ø(¾ý<C2BE>~Ã5-Y¥þ£¯õî§5ÊXÜ<A)Ü<07>Ÿ?µs¹Hï<48>6¿ºRÿÌšîªän槚Þ0w¿zÕ}o´ÿ@ß⯙x•<78>GáåÆï-ç·H?:<>Ðù«æÍã±Ãgsh-¦†GWC˜æ^ äsàÕ™%ÅôçÂþ­n¥éõ·Bâþ߉X)<1B>ìyŸÒ«<C392>š]-ÁO”ã…"De'9äÐ2ú™éEz@»¶Šºd30<33>T$=’Ü郸l[fDgµ]!¥dun=êȇ±™W-„ö÷   àÂ<>èÑbÏÊ>Ôwv<U4ü\µ›­¾*®•jˆ<6A>f#‰ßÉn$þõÏ+§L1Ýl=/¢XhÖ±ZÀ€ ã“îMp<4D>UZQQTiJ!;ªˆÍWM±¿‰¡º·ŽXÈÁW\ƒRÆåª?Pô'Oÿ²]ÛEg²:“”ð|žš÷Ó ø{sªh_´ÛM>oU$¹ò)'k«p·5ÞwLº¯¬-#¸GËíûR3lø&âBÉ<6A>e<EFBFBD>Òr§Çzìߧ<C39F>dÁÅT&'µA9hÈØI÷4iu¹C˜Ç!‡ŠÛ»ëØ-ob·—>µÇ
=ñÞ³T|wQƒéàŒv©3žãO÷æ´É(¤Šž%…çøå¬:~T`Ì|<7C>¨ó\y==š£#w¹Çj<C387>…P¯æ¸Åt´`<60>\ QÍé¾v°4±¨<C2B1>Öm}kv‰‡ÊÜÅnVÓ–±èlßaÿÞˆ™O 9®Ø^žnYªúd8hÈ5ÑÉÕ<C389>Ëݸýi¤våX)w\ò;RÅ<52>•„ªDG+ç4hÄ <C384>ARúQú>ªü <C3BC>µEÚç%Ì!÷1
Ò*ÚxMW¨.uIš<08>£ÿôz&“r®=«:_*^J<>[eÔ$x ð<C2A0><EFBFBD>{Pa=6±C×gª\|â+­„ŽàdœÃ’½<PÇUuæ¿44I <49>É <0C>÷©<C3B7>n¹t¥þ%ëR^&Ÿt^I¥` ž)”±¬l¾×¹½×t[h®"'lñ©Û[šfÚwXuê<>åÖD1gòK PߦMkN{ï¶<C3AF>¡õ|šŒ†ÖGÞ;7ºšÅkSã=ø“ Zw]躈%VicgÀòŽ9®œuÇš>‰ŠÈÇ#Ê& jí§˜A‰€Ýýê¡©”<C2A9>€p(("ÈA<C388>Ò¢K+BsŽÕ¦º[TD@u9vÇsM‰Yís 2œñVÄ h´b5
¾Â²õv6{Š(¨§V 6­m@£ŽÔ´ yqéYM4C¨Ä~ Vmëmc7dc=is%Ö¸ò®ÉoîVsòçó.Nã¹®]½“¬¬|%·¾6“%ÉfÞe7…N}øíö«<C3B6>³ÒÜqËØÝ+ lt yŪ,ªËµA$.=³Lòµ¼d]ºŽ8.Ò;I<>:È52L"•wðÎêXæM+O»UmÊ'È Ÿ¨ÎjÔ·ã9xï´´“neKK8e^Ël
…ûù¬XÖ6zQºï§Î«{¢ÉpʶÖÓ<„ã#îx«†ZLð݇DÜ^Ûõf¥m5Ü×K
{{q]0¬ÿ#ᶆdÊ…&º¼&f-·<>4 büœÒP”™¡bÈØ'Š\%œ¹1ÈÊùË;ÔT„÷®an0xÚ"tUõM=¦ôZ=2`ý @{4¬¹£Qä<51>øÈíCBŒ…ãɪ†\ Æç†R*_K<5F>ïj&ÒîÌr´PŸ#¯;èÛº;[ëëMÈÁ¦nv>Õ¹vxwº©Åñ
ÓM¼Šë¨n+‰Ÿ'&5\{Ž3ššìËRhv«ñs¥¤1 ¥‘Ù»ˆ”±?µnͳ5<C2B3>Ô{|@½Ñ.Væ,ÚKüÈgÔE÷úþ”µd½®½kk¬Ø¬öî\dsYµ&]JõyÞÑ°REùG³wìkÚÅ›@µ[#,§Ü€Iîp+®çþN[Ô­j“i¶«<VÒ\“"¡T€N3]]Y˨ cŒÕÚ•öœžæ L c,x«°ÅÌí€áKÛÚªBkGNÙÙSŠ!­ÅtûON6,ûš€½Çq槕5f*<1A>ËVG†Íìˆ1ùA«£jXÅ6Ÿ:Ü9_IÁE`yû× ñÓÙÅÉ2e}Oe­Í¤]G|¨§>jáÔuÎ߀ô½Dõ¸ÓcÐn¦ÓjJ0B öÍ]k·;”½Tî<54>ðîþͤšß¦ÿ¨0G­p¡FF~õ­¬ðˆÞ¥Õ:=N hJì¹Û͹S ~câ¤ý.[ºƒºoM¼Ð-î ĈUéXÎí¼-néæR¿ qÈáKç€?o­L1¶§'$Ân¯¶ñÔ#çÞ»I§<49>,¼®Ê¾¼{;}ñ[ÉpÄãj ÕbB¤™£EÜf ÓCF\o^ME½2àH9¢ïlÍ#(rÞõvH¿¸6š|ó`ˆ[:=òê]µÊ‚ž¢ ø "PàÔjÉé3̃¹Å…Z81 bSó<53>Hã çÚˆªu½“êÚÄ&éÐzýHñûf±—n¸]V[ÒÚ²K0·¹%XÖ±§yݤÚÆÉ{oh±ùã;\}Æ 6í/ê6 ]¦™mMŒò`<60>•®þ<>Íkþ¯_@<40>OfÚ8¸ÀE²ÅÉšj·ž<C2B7>Ì<EFBFBD><49>È£;_>Z8±ŸTq·Öù#ú¨îâ·„×n<Ùo¥Å>tÉãšÔr.Öâ;y³•VàU/f.ŒBI
6ôÏތ×aƒÚ ·R¦JçæÕgnyå㼪O&µ“ŸWwk³êG¥Ïé(vÛùOšÃÐ/£áÿÓ•.!Pª€ƒZ…vëÓiXÆ»W5šBÖöH­ZPT<50>Ú]²” 
<EFBFBD>°[Ì<š© ³MQ´®Ê¨£,Ìp¨Óêñž³.­bCY]ŸUJŒc>GÒ¹ýÓ¾µŒ«F…ÖÐK`ˆePqÜøýi§L,«¯PXÂexy
¾<EFBFBD>,ˆ¯ë{v·(.qÀ©§Ó9WåÒÁ¬Ã-ïKÑ7[Ž€b±Ñlíâ9TM§iì|ŠÜôãœÿU*eA ç“UÏDzÜœcÍôK<C3B4>ìÆÜîš0øà5&,áØ’ô5¸jYrÇjñíZ¹niË=ejÓ¨-e,Ü5aÍ2õ†™BFäÑ-t“ÍE—£U´<55>rËq [{ïp?š²3j¨~!ôN<C3B4>æ× šp3è[ÿU‰ûp+^&Ù¹þ o.Y¢Ñ4”ˆvܶãúí÷§‰*ƒÔ]{Õü†¾Õ$heuS xE9 <01>Vc!¶Ÿ©[ÅuhöFëP¨üHàÿ#í^|æ®ÞÎ;¼tÌõ<C38C>&ÿLvÕ¤ŒyÛZ•4…ÿzÖ3é—Qä(Åi<ªwHÓ./¿«pï+x RÕ“kÿOéqéÖÒ_ÜíŽ8”¶~•ÎöïŒÐ3Ösô&µ§Üß};S<>LOœ†f<00>¥wñéãË.öÖ,5K=bÖ+»)£¸·w+¡È5<C388>[CSNÒOÍÄž™ žj7!¤ÁBIÉ4‰<34>9V”íÀªÌî.—ÉZ˼`m95«†uoÇ[<5B>&át¾œŠßåâa<C3A2>ÄxÛëZ˜ýf÷Ò»/ÇŽ±º¶šüM ÂÉ_2~•n)ŒñšRÞ;»éšêúîi<C3AE>ÎX»“UK$Q<E28099>¯½m§…Ñ™N$S†SÜQEôäi©uU…»®ôÛOœ|ßâƒiÖíåÓuFiwÅqy—UÏ+ýÿšÇ&¬ê;påe¯[Ã8Eu<çé\$z*£6kq8dˆ*ûýk¦Øñ[zwG€lʽs­N<C2AD>ê+˜­´HÛláîXÂqǽtãÂåzc—=E3ã ,òÙlu1‡t?ںǛ%/@êMW¦nÚ^¡=¹o̪r‡õSÁ¥OMg§~6,ûmõëq cæTþ«Ü}«7ƦMOÕm5H ΟwÌd~hÛ8ÿµa~<>Ì÷*XåGŠ<47>ú‡ ËÛŒUgFMÄr1ÚGz‰z/â¿QË¢tEõÔL#ž@ Œç±cŒþÙ®ºÝs•òÂǺF'œ÷­‚ NÆ;Ôîàñ@Ù}î;š¤~ì8 {¦:šÃ¥5µÕo¢M_ÓŽ%ÉgÆ>ÝÍY6-Ò|n´êVÓ®´kJ$ݵ¼dbµá<C2B5>šÚ̵v´ nnôøØ©bÖ¸5çÓÙ.àHmJ¾[?¥¬·“ØYî‰Ib>Qõ¬év•é]=tÛioïfCy0$©aººÉ¨òåë+ø“•ÔmG¶1êÈ
×ýbª!2ø<h…ÂŒœãƒ@^<5E>«ß鉬/&O-c÷÷¦†…Òeò¡T*͵nÔ`©ÿ<00>‡ãRµg·È>ⳤ¹X dsïMÛ/ÿP=P·zÅž<C385>níéY¯«8'»·oØ5Ò%Œç1ÎØ<*‰issÞ¨[NV03Ç¡[ˆÜÇÁÿ *7úóPÑvÿYPѬŠ¼•a<E280A2>GcV §Ttu»ßZGØS¸öý|<7C>Ò¯—é¤÷H]K{ejdx¤wŒ àáÇ׿#®SnšÇ,¤=ÔýO¦tÌq~*ÍVi[
¾©ÉûVgÖÚþê¡ë?õØ -:YŽL*Oœ5™‰y-Sðž­<SªÝÉ99î{þõÛÏ/×-u>«¹m5[ßÅ~BÄ|…ï‚|Ö.ª¹/©éa-õ<T Ä$<24>\ÌáÉðPt¶ÞAàŠ<C3A0>·|<7C>I ¸ô‡ÅmW§^K÷kí1ÏM¿<kÿþ K67®ŸK>®ÒaÕ´±5¬¹ÚHÁR8*G fâ¯uýUúƒ]¾Ôg$µÔ¬ÀûöÅn"ãå%~lóA-nJÅã<>*…‚&¹Qž uÁ,á[<Žß¥“å¡Ç~9 ”è]2æçQim¥hž0¸ ðrMX5øõ«k?GV´2DÃi<C383> *+=êH¡é½Y5+GiôùÆ0ô[¸xöû×^9å<c7®ÃEÓW:ÕÌr´†æí€æI3ò8AŸaW*E“Fè(âŸñ7mÉùSÅcsâ¬7v<>gg#JðÂN_ÍgjÅ5éínµyä³$ø*Ÿp3üÒz@ÜE9hÒ@Y{¯‘@Ý˲(¹vÁ—W^œ‹
÷Ô y‰PÇÐ4ó+Oj Kà·r[ÓÖåÄ1È“"àÈ'û
Îk#/·;ÎÂØÏbkHfy7\¤l0äÔ¡Š®qÅ–¿.éŸz[>é$Ï¿ø vYG¢|qïAyø[¤\̲]¨"2ê¹ØgüÓj×²±_Ä»0 ¸ïAœu¥•®¡=µž•k‡Ë&p¤(Üsû÷®Ü]o&rüKôƒptIý'žF—vFH>þ;Ö¿q™kÃzíe<C3AD>§Èˆ®ölóúןm¡uŽ˜FPn7Éä«p*laWl¦òb¸
]˜àgŠÒšÚ) ƒÁò>ôÌÛ®¿l­êj2àPvæacß4Ã+4rÍÿÄmSüÐX¾uº6³y"%€†úá—æ³—kQ1ÏÔ½i ú¡ï×#…}(%<25>Ë ·µ€•Œ((ˆÑHå%rs惓IÁQä㊠CáN»Œ&ÚIâEy€çqþ+^6ü6ÔµÙ£ŸK+#ƒŽTçÍgV*Ç/TÈQ,¬™³Û çþÉ]±Ÿãÿk?VM1^ÃK·ÜÜúc<}c“¼ªÏG#׮݆Ë”8ïXÒ<58>êM^ít Éî!1Ʊ;ÇœqSCç]Çs19Åi vyhS¹÷<C2B9>Þ ˆ‰·_JAó@&¯+ˆ½É ó:Gh-Ѳøù¨
é ¸ìï¦iŒ<>ûŠ”; ,¤ùª†b÷²#ÐLÂÙ ~ô¦\Æ<>r6n<>óõÍÍÑ:e£tÆ™$°#».첃ܓVeg£K­Þ‰§ßéS"ÛˆPíx‰R¯ìËí5]ÎkصûÏÇ\¬©éÁ¿pÉò¯N9Oñ4ƽ¯K¡ßºÄ¿îaÑF6É<}«…Ï î7ª*;=QI+-“1˜ÙƒYÞ”íCø¥ªjé“XËøaѼÇ<C2BC>NXT³‡ld¾õ(åÃ#ÈÅ;6!ú
&ÅÛŸs@̃ÕÔ£þžhÔdX ô¢<C3B4>T¿r(#lÉYiÇËPÿÙ
*3
$3
set
$48
31d75d84838a97f1c4de550ba91b6fff:brainbaking.com
$589
{"author":{"name":"Ton Zijlstra","picture":"/pictures/zylstra.org"},"name":"","content":"Don’t worry, I mostly blog in English, sometimes in Dutch and seldomly in German. My notes reflect much the same thing, they’re a mix of those languages, plus source material in a few languages more. How to deal with multilingual blogging has bee...","published":"2021-04-25T20:31:11+02:00","url":"https://www.zylstra.org/blog/2021/04/16112/","type":"mention","source":"https://www.zylstra.org/blog/2021/04/16112/","target":"https://brainbaking.com/post/2021/04/the-first-dutch-obsidian-meetup/"}
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-26T08:47:41.873Z
*3
$3
set
$21
brainbaking.com:since
$24
2021-04-26T08:52:19.857Z

View File

@ -44,6 +44,10 @@ var (
tiffM = imageType{0x4D, 0x4D, 0x00, 0x2A} tiffM = imageType{0x4D, 0x4D, 0x00, 0x2A}
webp = imageType{0x52, 0x49, 0x46, 0x46} // RIFF 32 bits webp = imageType{0x52, 0x49, 0x46, 0x46} // RIFF 32 bits
supportedImageTypes = []imageType{jpg, png, gif, bmp, webp, tiffI, tiffM} supportedImageTypes = []imageType{jpg, png, gif, bmp, webp, tiffI, tiffM}
// SiloDomains are domains where mentions of multiple individuals may come from.
// These are privacy issues and will be anonymized as such.
SiloDomains = []string{"brid.gy", "twitter.com", "facebook.com"}
) )
// IsRealImage checks the first few bytes of the provided data to see if it's a real image. // IsRealImage checks the first few bytes of the provided data to see if it's a real image.