diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json
index f831d664..12dcd2a4 100644
--- a/.obsidian/community-plugins.json
+++ b/.obsidian/community-plugins.json
@@ -51,7 +51,6 @@
"mrj-text-expand",
"obsidian-tracker",
"txt-as-md-obsidian",
- "weather-fetcher",
"obsidian-wikipedia",
"obsidian-read-it-later",
"obsidian-full-calendar",
diff --git a/.obsidian/graph.json b/.obsidian/graph.json
index abe4c68e..082dfa7a 100644
--- a/.obsidian/graph.json
+++ b/.obsidian/graph.json
@@ -95,6 +95,6 @@
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
- "scale": 0.1819703156747273,
+ "scale": 0.1569196941556386,
"close": true
}
\ No newline at end of file
diff --git a/.obsidian/plugins/obsidian-activity-history/data.json b/.obsidian/plugins/obsidian-activity-history/data.json
index 45c524cb..24567c89 100644
--- a/.obsidian/plugins/obsidian-activity-history/data.json
+++ b/.obsidian/plugins/obsidian-activity-history/data.json
@@ -12,8 +12,8 @@
"checkpointList": [
{
"path": "/",
- "date": "2022-08-21",
- "size": 6702030
+ "date": "2022-08-23",
+ "size": 6735708
}
],
"activityHistory": [
@@ -914,7 +914,15 @@
},
{
"date": "2022-08-21",
- "value": 68287
+ "value": 68447
+ },
+ {
+ "date": "2022-08-22",
+ "value": 40547
+ },
+ {
+ "date": "2022-08-23",
+ "value": 6577
}
]
}
diff --git a/.obsidian/plugins/obsidian-commits/data.json b/.obsidian/plugins/obsidian-commits/data.json
index 9907eb46..fa3bc7f1 100644
--- a/.obsidian/plugins/obsidian-commits/data.json
+++ b/.obsidian/plugins/obsidian-commits/data.json
@@ -567,7 +567,7 @@
"03.03 Food & Wine/French Onion Beef Noodle Soup.md": {
"size": 4261,
"tags": 1,
- "links": 2
+ "links": 3
},
"03.03 Food & Wine/Farro w Fennel, Lemon, Basil.md": {
"size": 2547,
@@ -702,7 +702,7 @@
"03.03 Food & Wine/Mushroom Fricassée.md": {
"size": 2797,
"tags": 2,
- "links": 3
+ "links": 4
},
"03.03 Food & Wine/Vanilla mashed potatoes.md": {
"size": 2383,
@@ -752,7 +752,7 @@
"03.03 Food & Wine/Lemon tart.md": {
"size": 2569,
"tags": 3,
- "links": 2
+ "links": 3
},
"03.03 Food & Wine/Spicy Coconut Butter Chicken.md": {
"size": 3485,
@@ -787,7 +787,7 @@
"03.03 Food & Wine/Loup de Mer Citron.md": {
"size": 2701,
"tags": 3,
- "links": 2
+ "links": 3
},
"03.03 Food & Wine/Spicy Szechuan Noodles with Garlic Chilli Oil.md": {
"size": 2434,
@@ -812,7 +812,7 @@
"03.03 Food & Wine/Maison Olivier Chanzy Chassagne-Montrachet 1er Cru.md": {
"size": 1827,
"tags": 6,
- "links": 1
+ "links": 2
},
"03.03 Food & Wine/Creamy Mushroom & Rice Soup.md": {
"size": 2562,
@@ -902,7 +902,7 @@
"03.03 Food & Wine/Salade Nicoise.md": {
"size": 2434,
"tags": 3,
- "links": 2
+ "links": 3
},
"04.01 lebv.org/Nobiliaire de Bretagne.md": {
"size": 996,
@@ -1745,7 +1745,7 @@
"links": 0
},
"00.01 Admin/Templates/Template Place.md": {
- "size": 1015,
+ "size": 1247,
"tags": 0,
"links": 0
},
@@ -2775,7 +2775,7 @@
"links": 2
},
"06.02 Investments/VC Tasks.md": {
- "size": 3838,
+ "size": 2013,
"tags": 3,
"links": 7
},
@@ -2785,7 +2785,7 @@
"links": 6
},
"06.02 Investments/Crypto Tasks.md": {
- "size": 5802,
+ "size": 3295,
"tags": 3,
"links": 12
},
@@ -2860,7 +2860,7 @@
"links": 3
},
"06.02 Investments/Equity Tasks.md": {
- "size": 3843,
+ "size": 1898,
"tags": 3,
"links": 4
},
@@ -4300,17 +4300,17 @@
"links": 9
},
"03.02 Travels/@France.md": {
- "size": 1015,
+ "size": 1177,
"tags": 1,
"links": 1
},
"03.02 Travels/Nimes.md": {
- "size": 1081,
+ "size": 1296,
"tags": 4,
"links": 1
},
"03.02 Travels/Arles.md": {
- "size": 1531,
+ "size": 1696,
"tags": 4,
"links": 1
},
@@ -4325,7 +4325,7 @@
"links": 4
},
"03.02 Travels/Marseille.md": {
- "size": 1198,
+ "size": 1390,
"tags": 0,
"links": 1
},
@@ -4370,7 +4370,7 @@
"links": 2
},
"03.02 Travels/@Bahrein.md": {
- "size": 1494,
+ "size": 1772,
"tags": 0,
"links": 1
},
@@ -4415,7 +4415,7 @@
"links": 4
},
"03.02 Travels/@Dubaï.md": {
- "size": 1154,
+ "size": 1304,
"tags": 1,
"links": 1
},
@@ -4637,7 +4637,7 @@
"00.01 Admin/Calendars/2022-07-26.md": {
"size": 1108,
"tags": 0,
- "links": 4
+ "links": 5
},
"00.01 Admin/Calendars/2022-07-27.md": {
"size": 1108,
@@ -4682,7 +4682,7 @@
"00.01 Admin/Calendars/2022-08-03.md": {
"size": 1108,
"tags": 0,
- "links": 4
+ "links": 5
},
"00.01 Admin/Calendars/2022-08-04.md": {
"size": 1108,
@@ -4757,7 +4757,7 @@
"00.01 Admin/Calendars/2022-08-09.md": {
"size": 1210,
"tags": 0,
- "links": 4
+ "links": 5
},
"00.01 Admin/Calendars/2022-08-10.md": {
"size": 1356,
@@ -5227,7 +5227,7 @@
"00.01 Admin/Calendars/2022-08-18.md": {
"size": 1130,
"tags": 0,
- "links": 4
+ "links": 5
},
"00.01 Admin/Calendars/2022-08-19.md": {
"size": 1130,
@@ -5252,7 +5252,7 @@
"00.01 Admin/Calendars/2022-08-20.md": {
"size": 1130,
"tags": 0,
- "links": 5
+ "links": 7
},
"02.03 Zürich/Le Mezzerie.md": {
"size": 1085,
@@ -5277,7 +5277,7 @@
"00.03 News/Welcome to Philip K. Dick’s dystopia.md": {
"size": 13020,
"tags": 3,
- "links": 1
+ "links": 2
},
"00.03 News/U.S. Ship Sunk by Germans in 1917 Is Found Off English Coast.md": {
"size": 6632,
@@ -5300,14 +5300,14 @@
"links": 1
},
"00.01 Admin/Calendars/2022-08-21.md": {
- "size": 1130,
+ "size": 1283,
"tags": 0,
- "links": 7
+ "links": 9
},
"00.03 News/A Dad Took Photos of His Naked Toddler for the Doctor. Google Flagged Him as a Criminal..md": {
"size": 20429,
"tags": 3,
- "links": 1
+ "links": 2
},
"00.03 News/The century of climate migration why we need to plan for the great upheaval.md": {
"size": 25154,
@@ -5317,20 +5317,55 @@
"00.03 News/Donald Trump and the Sweepstakes Scammers.md": {
"size": 13723,
"tags": 3,
- "links": 1
+ "links": 2
},
"00.03 News/“Game of Thrones” v “Lord of the Rings” a tale of old v new Hollywood.md": {
"size": 7976,
"tags": 3,
+ "links": 2
+ },
+ "00.01 Admin/Calendars/2022-08-22.md": {
+ "size": 1130,
+ "tags": 0,
+ "links": 7
+ },
+ "03.04 Cinematheque/Batman Forever (1995).md": {
+ "size": 1984,
+ "tags": 1,
+ "links": 1
+ },
+ "00.03 News/The messages that survived civilisation's collapse.md": {
+ "size": 30338,
+ "tags": 3,
+ "links": 2
+ },
+ "00.01 Admin/Calendars/2022-08-23.md": {
+ "size": 1130,
+ "tags": 0,
+ "links": 6
+ },
+ "03.03 Food & Wine/Pan-seared Seabream with vine leaf risotto.md": {
+ "size": 3352,
+ "tags": 3,
+ "links": 3
+ },
+ "00.01 Admin/Calendars/2023-02-11 Mariage Eloi.md": {
+ "size": 180,
+ "tags": 0,
+ "links": 3
+ },
+ "00.01 Admin/Calendars/2022-09-13 Diner Lorena.md": {
+ "size": 140,
+ "tags": 0,
"links": 1
}
},
"commitTypes": {
"/": {
- "Refactor": 703,
- "Create": 750,
- "Link": 1548,
- "Expand": 681
+ "Refactor": 709,
+ "Create": 757,
+ "Link": 1579,
+ "Expand": 694
}
},
"dailyCommits": {
@@ -5342,39 +5377,52 @@
"4": 12,
"5": 6,
"6": 31,
- "7": 224,
- "8": 378,
- "9": 336,
- "10": 213,
- "11": 187,
- "12": 138,
+ "7": 227,
+ "8": 380,
+ "9": 337,
+ "10": 227,
+ "11": 192,
+ "12": 148,
"13": 261,
- "14": 203,
+ "14": 204,
"15": 219,
- "16": 148,
+ "16": 152,
"17": 168,
- "18": 358,
- "19": 180,
- "20": 134,
- "21": 99,
+ "18": 362,
+ "19": 188,
+ "20": 138,
+ "21": 100,
"22": 240,
"23": 53
}
},
"weeklyCommits": {
"/": {
- "Mon": 572,
- "Tue": 439,
+ "Mon": 591,
+ "Tue": 473,
"Wed": 445,
"Thu": 360,
"Fri": 326,
"Sat": 0,
- "Sun": 1540
+ "Sun": 1544
}
},
"recentCommits": {
"/": {
"Expanded": [
+ " Template Place ",
+ " Arles ",
+ " Marseille ",
+ " Nimes ",
+ " @Bahrein ",
+ " @France ",
+ " @Dubaï ",
+ " 2023-02-11 Mariage Eloi ",
+ " 2022-09-13 Diner Lorena ",
+ " Pan-seared Seabream with vine leaf risotto ",
+ " Pan-seared Seabream with vine leaf risotto ",
+ " Pan-seared Seabream with vine leaf risotto ",
+ " 2022-08-21 ",
" Derborence ",
" Derborence ",
" Polo Park Zürich ",
@@ -5412,22 +5460,16 @@
" 2022-04-16 ",
" 2022-03-16 ",
" 2022-07-29 ",
- " Test sheet ",
- " Test sheet ",
- " 2022-04-10 ",
- " 2022-08-10 ",
- " 2022-08-11 Reparation Oignon LIP ",
- " 2022-08-12 Reparation Oignon LIP ",
- " 2022-01-25 ",
- " 2022-01-23 ",
- " 2022-01-31 ",
- " 2022-02-04 ",
- " 2022-02-10 ",
- " 2022-02-01 ",
- " 2022-02-11 ",
- " 2022-02-05 "
+ " Test sheet "
],
"Created": [
+ " 2022-09-13 Diner Lorena ",
+ " 2023-02-11 Mariage Eloi ",
+ " Untitled ",
+ " 2022-08-23 ",
+ " The messages that survived civilisation's collapse ",
+ " Batman Forever (1995) ",
+ " 2022-08-22 ",
" “Game of Thrones” v “Lord of the Rings” a tale of old v new Hollywood ",
" Donald Trump and the Sweepstakes Scammers ",
" The century of climate migration why we need to plan for the great upheaval ",
@@ -5471,16 +5513,12 @@
" The Big Bang Theory (2007–2019) ",
" My Name Is Earl (2005–2009) ",
" The Wire (2002–2008) ",
- " Breaking Bad (2008–2013) ",
- " Game of Thrones (2011–2019) ",
- " How I Met Your Mother (2005–2014) ",
- " Weeds (2005–2012) ",
- " 2022-08-17 ",
- " Licence to Kill (1989) ",
- " Talk to Her (2002) ",
- " True Grit (1969) "
+ " Breaking Bad (2008–2013) "
],
"Renamed": [
+ " Pan-seared Seabream with vine leaf risotto ",
+ " The messages that survived civilisation's collapse ",
+ " Batman Forever (1995) ",
" “Game of Thrones” v “Lord of the Rings” a tale of old v new Hollywood ",
" Donald Trump and the Sweepstakes Scammers ",
" The century of climate migration why we need to plan for the great upheaval ",
@@ -5528,12 +5566,13 @@
" How PM’s former aide had to ‘nanny him’ through lockdown ",
" How PM’s former aide had to ‘nanny him’ through lockdown ",
" The Age of the Superyacht ",
- " Meet the Lobbyist Next Door ",
- " The metamorphosis of J.K. Rowling ",
- " Scenes from an Open Marriage - The Paris Review ",
- " Saudi Crown Prince’s $500 Billion ’Smart City’ Faces Major Setbacks "
+ " Meet the Lobbyist Next Door "
],
"Tagged": [
+ " Pan-seared Seabream with vine leaf risotto ",
+ " Pan-seared Seabream with vine leaf risotto ",
+ " The messages that survived civilisation's collapse ",
+ " Batman Forever (1995) ",
" “Game of Thrones” v “Lord of the Rings” a tale of old v new Hollywood ",
" The century of climate migration why we need to plan for the great upheaval ",
" Donald Trump and the Sweepstakes Scammers ",
@@ -5580,11 +5619,7 @@
" Natural Born Killers (1994) ",
" Once Upon a Time in the West (1968) ",
" Red River (1948) ",
- " For a Few Dollars More (1965) ",
- " McCabe Mrs Miller (1971) ",
- " Bagdad Cafe (1987) ",
- " Batman (1989) ",
- " Batman Returns (1992) "
+ " For a Few Dollars More (1965) "
],
"Refactored": [
" @Main Dashboard ",
@@ -5633,7 +5668,10 @@
" Crypto Tasks ",
" VC Tasks ",
" Storage and Syncing ",
- " Template Movie "
+ " Template Movie ",
+ " Equity Tasks ",
+ " Crypto Tasks ",
+ " VC Tasks "
],
"Deleted": [
" Romain Gary ",
@@ -5689,6 +5727,33 @@
" JPEG "
],
"Linked": [
+ " 2022-08-23 ",
+ " 2023-02-11 Mariage Eloi ",
+ " 2022-09-13 Diner Lorena ",
+ " 2022-08-18 ",
+ " 2022-08-09 ",
+ " 2022-08-03 ",
+ " 2022-07-26 ",
+ " Salade Nicoise ",
+ " Maison Olivier Chanzy Chassagne-Montrachet 1er Cru ",
+ " Loup de Mer Citron ",
+ " Lemon tart ",
+ " Mushroom Fricassée ",
+ " French Onion Beef Noodle Soup ",
+ " Pan-seared Seabream with vine leaf risotto ",
+ " 2022-08-23 ",
+ " 2022-08-22 ",
+ " The messages that survived civilisation's collapse ",
+ " The messages that survived civilisation's collapse ",
+ " 2022-08-22 ",
+ " Batman Forever (1995) ",
+ " “Game of Thrones” v “Lord of the Rings” a tale of old v new Hollywood ",
+ " Donald Trump and the Sweepstakes Scammers ",
+ " 2022-08-22 ",
+ " Welcome to Philip K. Dick’s dystopia ",
+ " A Dad Took Photos of His Naked Toddler for the Doctor. Google Flagged Him as a Criminal. ",
+ " 2022-08-20 ",
+ " 2022-08-21 ",
" “Game of Thrones” v “Lord of the Rings” a tale of old v new Hollywood ",
" The century of climate migration why we need to plan for the great upheaval ",
" Donald Trump and the Sweepstakes Scammers ",
@@ -5712,34 +5777,7 @@
" 2022-08-20 ",
" 2022-08-19 ",
" Django (1966) ",
- " Bebek ",
- " Dolder Grand ",
- " Dolder Grand ",
- " 2022-08-19 ",
- " 2022-08-18 ",
- " 2022-08-16 ",
- " 2022-08-17 ",
- " GoldenEye (1995) ",
- " 2022-08-17 ",
- " GoldenEye (1995) ",
- " La promesse de l'aube ",
- " How ‘The Bear’ Captures the Panic of Modern Work ",
- " Romain Gary ",
- " The Living Daylights (1987) ",
- " The Spy Who Loved Me (1977) ",
- " Thunderball (1965) ",
- " Star Wars - Episode II - Attack of the Clones (2002) ",
- " Star Wars - Episode IX - The Rise of Skywalker (2019) ",
- " Star Wars - Episode VII - The Force Awakens (2015) ",
- " Star Wars - Episode V - The Empire Strikes Back (1980) ",
- " The Man with the Golden Gun (1974) ",
- " Star Wars - Episode VIII - The Last Jedi (2017) ",
- " You Only Live Twice (1967) ",
- " Star Wars - Episode VI - Return of the Jedi (1983) ",
- " Star Wars (1977) ",
- " Star Wars - Episode III - Revenge of the Sith (2005) ",
- " Succession (2018–) ",
- " Back to the Future (1985) "
+ " Bebek "
],
"Removed Tags from": [
" Le Miel de Paris ",
diff --git a/.obsidian/plugins/obsidian-media-db-plugin/data.json b/.obsidian/plugins/obsidian-media-db-plugin/data.json
index 8798eec2..810f196f 100644
--- a/.obsidian/plugins/obsidian-media-db-plugin/data.json
+++ b/.obsidian/plugins/obsidian-media-db-plugin/data.json
@@ -1,5 +1,5 @@
{
- "folder": "00.05 Media",
+ "folder": "00.02 Inbox",
"OMDbKey": "3b1c31d2",
"sfwFilter": true,
"useCustomYamlStringifier": true,
diff --git a/.obsidian/plugins/obsidian-reminder-plugin/data.json b/.obsidian/plugins/obsidian-reminder-plugin/data.json
index dec4d10d..e20e103e 100644
--- a/.obsidian/plugins/obsidian-reminder-plugin/data.json
+++ b/.obsidian/plugins/obsidian-reminder-plugin/data.json
@@ -110,19 +110,19 @@
"rowNumber": 76
},
{
- "title": "[[Hosting Tasks|Hosting]]: Explore the possibility of webhosting through [[Hosting Tasks#Decentralised hosting|decentralised services]] (Blockchain)",
+ "title": ":fleur_de_lis: [[Hosting Tasks|Hosting]]: Explore the possibility of webhosting through [[Hosting Tasks#Decentralised hosting|decentralised services]] (Blockchain)",
"time": "2023-12-31",
"rowNumber": 73
}
],
"04.01 lebv.org/WebPublishing Tasks.md": [
{
- "title": "[[WebPublishing Tasks|Website]]: Replace integration with Discord with [[Element|Element.io]]",
+ "title": ":fleur_de_lis: [[WebPublishing Tasks|Website]]: Replace integration with Discord with [[Element|Element.io]]",
"time": "2022-12-15",
"rowNumber": 74
},
{
- "title": "[[WebPublishing Tasks|Website]]: Upgrade UltimateMember to [[WebPublishing Tasks#UltimateMember Pro|Pro]]",
+ "title": ":fleur_de_lis: [[WebPublishing Tasks|Website]]: Upgrade UltimateMember to [[WebPublishing Tasks#UltimateMember Pro|Pro]]",
"time": "2023-06-30",
"rowNumber": 73
}
@@ -139,7 +139,7 @@
"rowNumber": 72
},
{
- "title": "[[lebv Research Tasks|Research]]: membres de la famille: reprendre les citations militaires (promotion/décoration)",
+ "title": ":fleur_de_lis: [[lebv Research Tasks|Research]]: membres de la famille: reprendre les citations militaires (promotion/décoration)",
"time": "2022-09-30",
"rowNumber": 73
}
@@ -341,30 +341,30 @@
}
],
"01.02 Home/Household.md": [
- {
- "title": "♻ [[Household]]: *Cardboard* recycling collection %%done_del%%",
- "time": "2022-08-23",
- "rowNumber": 89
- },
{
"title": "🛎 🛍 REMINDER [[Household]]: Monthly shop in France",
"time": "2022-08-27",
- "rowNumber": 110
+ "rowNumber": 111
},
{
"title": ":bed: [[Household]] Change bedsheets %%done_del%%",
"time": "2022-08-27",
- "rowNumber": 127
+ "rowNumber": 128
},
{
"title": "🛎 🧻 REMINDER [[Household]]: check need for toilet paper",
"time": "2022-08-29",
- "rowNumber": 113
+ "rowNumber": 114
},
{
"title": "♻ [[Household]]: *Paper* recycling collection %%done_del%%",
"time": "2022-08-30",
"rowNumber": 72
+ },
+ {
+ "title": "♻ [[Household]]: *Cardboard* recycling collection %%done_del%%",
+ "time": "2022-09-06",
+ "rowNumber": 89
}
],
"01.03 Family/Pia Bousquié.md": [
@@ -551,6 +551,20 @@
"time": "2022-09-01",
"rowNumber": 86
}
+ ],
+ "00.01 Admin/Calendars/2022-08-22.md": [
+ {
+ "title": "16:14 :ring: [[@life admin|Life]], [[MRCK|Meggi-mo]]: find a ring",
+ "time": "2023-06-30",
+ "rowNumber": 86
+ }
+ ],
+ "00.01 Admin/Calendars/2022-08-23.md": [
+ {
+ "title": "13:52 :haircut_man: [[2022-08-23|Memo]], [[@Lifestyle|Lifestyle]]: book a hair appointment",
+ "time": "2022-08-27",
+ "rowNumber": 85
+ }
]
},
"debug": false,
diff --git a/.obsidian/plugins/weather-fetcher/data.json b/.obsidian/plugins/weather-fetcher/data.json
deleted file mode 100644
index feaa8bf3..00000000
--- a/.obsidian/plugins/weather-fetcher/data.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "source": "wttr",
- "cacheSeconds": 300,
- "addRibbon": true
-}
\ No newline at end of file
diff --git a/.obsidian/plugins/weather-fetcher/logs.txt b/.obsidian/plugins/weather-fetcher/logs.txt
deleted file mode 100644
index 5319621c..00000000
--- a/.obsidian/plugins/weather-fetcher/logs.txt
+++ /dev/null
@@ -1,223 +0,0 @@
-
-[log] loading WeatherPlugin
-[log] obsidian-memos loading...
-[log] Welcome to the Memos
-[log] obsidian-memos loaded
-[log] loading obsidian-tracker plugin
-[log] Dataview: Task & metadata parsing queued in %.3fs. 0.093
-[debug] ledger: Updating the transaction cache
-[log] [Longform] Loaded and watching projects.
-[log] fetching top story from HackerNews
-[error] CustomJS couldn't import 00.01 Admin/dv-views/book_query.js
-[error] SyntaxError: Unexpected keyword 'let'
-[error] CustomJS couldn't import 00.01 Admin/getLongLatFromAddress.js
-[error] SyntaxError: Unexpected identifier 'async'. Expected ')' to end a compound expression.
-[log] updating feeds
-[error] CustomJS couldn't import 00.01 Admin/dv-views/print_coffeesearch.js
-[error] SyntaxError: Unexpected keyword 'const'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/print_data.js
-[error] SyntaxError: Unexpected keyword 'let'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/print_invsearch.js
-[error] SyntaxError: Unexpected keyword 'const'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/print_placesearch.js
-[error] SyntaxError: Unexpected keyword 'const'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/print_recipesearch.js
-[error] SyntaxError: Unexpected keyword 'const'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/print_shoppingitems.js
-[error] SyntaxError: Unexpected keyword 'const'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/print_sourcesearch.js
-[error] SyntaxError: Unexpected keyword 'const'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/print_winesearch.js
-[error] SyntaxError: Unexpected keyword 'const'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/query_coffee.js
-[error] SyntaxError: Unexpected keyword 'let'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/query_ingredient.js
-[error] SyntaxError: Unexpected keyword 'let'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/query_inv.js
-[error] SyntaxError: Unexpected keyword 'let'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/query_place.js
-[error] SyntaxError: Unexpected keyword 'let'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/query_product.js
-[error] SyntaxError: Unexpected keyword 'let'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/query_recipe.js
-[error] SyntaxError: Unexpected keyword 'const'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/query_server.js
-[error] SyntaxError: Unexpected keyword 'const'
-[error] CustomJS couldn't import 00.01 Admin/dv-views/query_wine.js
-[error] SyntaxError: Unexpected keyword 'let'
-[error] CustomJS couldn't import 00.01 Admin/Templater scripts/templaterFunc.js
-[error] SyntaxError: Unexpected identifier 'tp'. Expected ';' after variable declaration.
-[error] CustomJS couldn't import 00.01 Admin/dv-views/working_file.js
-[error] SyntaxError: Unexpected keyword 'var'
-[log] obsidian-react-components: Could not enable live preview. See error below.
-[error] TypeError: undefined is not an object (evaluating 'view.WidgetType')
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-26.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-26.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-26.md true
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] updating feeds
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[error] SyntaxError: JSON Parse error: Unexpected identifier "Not"
-[log] DiceRoller unloaded
-[log] DiceRoller plugin loaded
-[log] fetching top story from HackerNews
-[log] obsidian-memos loading...
-[log] Welcome to the Memos
-[log] obsidian-memos loaded
-[log] Sortable: unloaded plugin.
-[log] Sortable: loading plugin...
-[log] Sortable: loaded plugin.
-[log] unloading WeatherPlugin
-[log] loading WeatherPlugin
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] Unknown: 41.3828939,2.1774322
-[log] Unknown: Zürich
-[log] Unknown: Paris
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[log] fetching top story from HackerNews
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-26.md true
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] updating feeds
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-26.md true
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] updating feeds
-[log] fetching top story from HackerNews
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[log] fetching top story from HackerNews
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[log] fetching top story from HackerNews
-[log] updating feeds
-[log] fetching top story from HackerNews
-[error] SyntaxError: JSON Parse error: Unexpected identifier "Not"
-[error] SyntaxError: JSON Parse error: Unexpected identifier "Not"
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[log] fetching top story from HackerNews
-[log] updating feeds
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[log] fetching top story from HackerNews
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 01.02 Home/@Main Dashboard.md true
-[log] fetching top story from HackerNews
-[error] RangeError: Invalid line number -1 in 97-line document
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] updating feeds
-[info] Remind me later: time=%o 2022-02-03
-[debug] Save reminder plugin data: force=%s, changed=%s true false
-[info] Reminder was updated: reminder=%o [object Object]
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true
-[debug] Reload reminder list view
-[log] [object Object]
-[log] [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
-[debug] Save reminder plugin data: force=%s, changed=%s false true
-[info] Remind me later: time=%o 2022-01-28
-[debug] Save reminder plugin data: force=%s, changed=%s true false
-[info] Reminder was updated: reminder=%o [object Object]
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-23.md true
-[debug] Reload reminder list view
-[debug] Save reminder plugin data: force=%s, changed=%s false true
-[log] fetching top story from HackerNews
-[debug] ledger: Updating the transaction cache
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 06.01 Finances/2022.ledger true
-[debug] Not a markdown file: file=%o [object Object]
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] updating feeds
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[debug] Reload file and collect reminders: file=%s, forceReloadUI=%s 00.01 Admin/Memos/2022-01-27.md true
-[log] fetching top story from HackerNews
-[log] fetching top story from HackerNews
-[log] updating feeds
\ No newline at end of file
diff --git a/.obsidian/plugins/weather-fetcher/main.js b/.obsidian/plugins/weather-fetcher/main.js
deleted file mode 100644
index ec01652a..00000000
--- a/.obsidian/plugins/weather-fetcher/main.js
+++ /dev/null
@@ -1,1696 +0,0 @@
-/*
-THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
-if you want to view the source, please visit the github repository of this plugin
-*/
-
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
-var __commonJS = (cb, mod) => function __require() {
- return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
-};
-var __export = (target, all) => {
- __markAsModule(target);
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __reExport = (target, module2, desc) => {
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
- for (let key of __getOwnPropNames(module2))
- if (!__hasOwnProp.call(target, key) && key !== "default")
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
- }
- return target;
-};
-var __toModule = (module2) => {
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
-};
-var __async = (__this, __arguments, generator) => {
- return new Promise((resolve, reject) => {
- var fulfilled = (value) => {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- };
- var rejected = (value) => {
- try {
- step(generator.throw(value));
- } catch (e) {
- reject(e);
- }
- };
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
- step((generator = generator.apply(__this, __arguments)).next());
- });
-};
-
-// node_modules/feather-icons/dist/feather.js
-var require_feather = __commonJS({
- "node_modules/feather-icons/dist/feather.js"(exports, module2) {
- (function webpackUniversalModuleDefinition(root, factory) {
- if (typeof exports === "object" && typeof module2 === "object")
- module2.exports = factory();
- else if (typeof define === "function" && define.amd)
- define([], factory);
- else if (typeof exports === "object")
- exports["feather"] = factory();
- else
- root["feather"] = factory();
- })(typeof self !== "undefined" ? self : exports, function() {
- return function(modules) {
- var installedModules = {};
- function __webpack_require__(moduleId) {
- if (installedModules[moduleId]) {
- return installedModules[moduleId].exports;
- }
- var module3 = installedModules[moduleId] = {
- i: moduleId,
- l: false,
- exports: {}
- };
- modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
- module3.l = true;
- return module3.exports;
- }
- __webpack_require__.m = modules;
- __webpack_require__.c = installedModules;
- __webpack_require__.d = function(exports2, name, getter) {
- if (!__webpack_require__.o(exports2, name)) {
- Object.defineProperty(exports2, name, {
- configurable: false,
- enumerable: true,
- get: getter
- });
- }
- };
- __webpack_require__.r = function(exports2) {
- Object.defineProperty(exports2, "__esModule", { value: true });
- };
- __webpack_require__.n = function(module3) {
- var getter = module3 && module3.__esModule ? function getDefault() {
- return module3["default"];
- } : function getModuleExports() {
- return module3;
- };
- __webpack_require__.d(getter, "a", getter);
- return getter;
- };
- __webpack_require__.o = function(object, property) {
- return Object.prototype.hasOwnProperty.call(object, property);
- };
- __webpack_require__.p = "";
- return __webpack_require__(__webpack_require__.s = 0);
- }({
- "./dist/icons.json": function(module3) {
- module3.exports = { "activity": '', "airplay": '', "alert-circle": '', "alert-octagon": '', "alert-triangle": '', "align-center": '', "align-justify": '', "align-left": '', "align-right": '', "anchor": '', "aperture": '', "archive": '', "arrow-down-circle": '', "arrow-down-left": '', "arrow-down-right": '', "arrow-down": '', "arrow-left-circle": '', "arrow-left": '', "arrow-right-circle": '', "arrow-right": '', "arrow-up-circle": '', "arrow-up-left": '', "arrow-up-right": '', "arrow-up": '', "at-sign": '', "award": '', "bar-chart-2": '', "bar-chart": '', "battery-charging": '', "battery": '', "bell-off": '', "bell": '', "bluetooth": '', "bold": '', "book-open": '', "book": '', "bookmark": '', "box": '', "briefcase": '', "calendar": '', "camera-off": '', "camera": '', "cast": '', "check-circle": '', "check-square": '', "check": '', "chevron-down": '', "chevron-left": '', "chevron-right": '', "chevron-up": '', "chevrons-down": '', "chevrons-left": '', "chevrons-right": '', "chevrons-up": '', "chrome": '', "circle": '', "clipboard": '', "clock": '', "cloud-drizzle": '', "cloud-lightning": '', "cloud-off": '', "cloud-rain": '', "cloud-snow": '', "cloud": '', "code": '', "codepen": '', "codesandbox": '', "coffee": '', "columns": '', "command": '', "compass": '', "copy": '', "corner-down-left": '', "corner-down-right": '', "corner-left-down": '', "corner-left-up": '', "corner-right-down": '', "corner-right-up": '', "corner-up-left": '', "corner-up-right": '', "cpu": '', "credit-card": '', "crop": '', "crosshair": '', "database": '', "delete": '', "disc": '', "divide-circle": '', "divide-square": '', "divide": '', "dollar-sign": '', "download-cloud": '', "download": '', "dribbble": '', "droplet": '', "edit-2": '', "edit-3": '', "edit": '', "external-link": '', "eye-off": '', "eye": '', "facebook": '', "fast-forward": '', "feather": '', "figma": '', "file-minus": '', "file-plus": '', "file-text": '', "file": '', "film": '', "filter": '', "flag": '', "folder-minus": '', "folder-plus": '', "folder": '', "framer": '', "frown": '', "gift": '', "git-branch": '', "git-commit": '', "git-merge": '', "git-pull-request": '', "github": '', "gitlab": '', "globe": '', "grid": '', "hard-drive": '', "hash": '', "headphones": '', "heart": '', "help-circle": '', "hexagon": '', "home": '', "image": '', "inbox": '', "info": '', "instagram": '', "italic": '', "key": '', "layers": '', "layout": '', "life-buoy": '', "link-2": '', "link": '', "linkedin": '', "list": '', "loader": '', "lock": '', "log-in": '', "log-out": '', "mail": '', "map-pin": '', "map": '', "maximize-2": '', "maximize": '', "meh": '', "menu": '', "message-circle": '', "message-square": '', "mic-off": '', "mic": '', "minimize-2": '', "minimize": '', "minus-circle": '', "minus-square": '', "minus": '', "monitor": '', "moon": '', "more-horizontal": '', "more-vertical": '', "mouse-pointer": '', "move": '', "music": '', "navigation-2": '', "navigation": '', "octagon": '', "package": '', "paperclip": '', "pause-circle": '', "pause": '', "pen-tool": '', "percent": '', "phone-call": '', "phone-forwarded": '', "phone-incoming": '', "phone-missed": '', "phone-off": '', "phone-outgoing": '', "phone": '', "pie-chart": '', "play-circle": '', "play": '', "plus-circle": '', "plus-square": '', "plus": '', "pocket": '', "power": '', "printer": '', "radio": '', "refresh-ccw": '', "refresh-cw": '', "repeat": '', "rewind": '', "rotate-ccw": '', "rotate-cw": '', "rss": '', "save": '', "scissors": '', "search": '', "send": '', "server": '', "settings": '', "share-2": '', "share": '', "shield-off": '', "shield": '', "shopping-bag": '', "shopping-cart": '', "shuffle": '', "sidebar": '', "skip-back": '', "skip-forward": '', "slack": '', "slash": '', "sliders": '', "smartphone": '', "smile": '', "speaker": '', "square": '', "star": '', "stop-circle": '', "sun": '', "sunrise": '', "sunset": '', "tablet": '', "tag": '', "target": '', "terminal": '', "thermometer": '', "thumbs-down": '', "thumbs-up": '', "toggle-left": '', "toggle-right": '', "tool": '', "trash-2": '', "trash": '', "trello": '', "trending-down": '', "trending-up": '', "triangle": '', "truck": '', "tv": '', "twitch": '', "twitter": '', "type": '', "umbrella": '', "underline": '', "unlock": '', "upload-cloud": '', "upload": '', "user-check": '', "user-minus": '', "user-plus": '', "user-x": '', "user": '', "users": '', "video-off": '', "video": '', "voicemail": '', "volume-1": '', "volume-2": '', "volume-x": '', "volume": '', "watch": '', "wifi-off": '', "wifi": '', "wind": '', "x-circle": '', "x-octagon": '', "x-square": '', "x": '', "youtube": '', "zap-off": '', "zap": '', "zoom-in": '', "zoom-out": '' };
- },
- "./node_modules/classnames/dedupe.js": function(module3, exports2, __webpack_require__) {
- var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
- (function() {
- "use strict";
- var classNames = function() {
- function StorageObject() {
- }
- StorageObject.prototype = Object.create(null);
- function _parseArray(resultSet, array) {
- var length = array.length;
- for (var i = 0; i < length; ++i) {
- _parse(resultSet, array[i]);
- }
- }
- var hasOwn = {}.hasOwnProperty;
- function _parseNumber(resultSet, num) {
- resultSet[num] = true;
- }
- function _parseObject(resultSet, object) {
- for (var k in object) {
- if (hasOwn.call(object, k)) {
- resultSet[k] = !!object[k];
- }
- }
- }
- var SPACE = /\s+/;
- function _parseString(resultSet, str) {
- var array = str.split(SPACE);
- var length = array.length;
- for (var i = 0; i < length; ++i) {
- resultSet[array[i]] = true;
- }
- }
- function _parse(resultSet, arg) {
- if (!arg)
- return;
- var argType = typeof arg;
- if (argType === "string") {
- _parseString(resultSet, arg);
- } else if (Array.isArray(arg)) {
- _parseArray(resultSet, arg);
- } else if (argType === "object") {
- _parseObject(resultSet, arg);
- } else if (argType === "number") {
- _parseNumber(resultSet, arg);
- }
- }
- function _classNames() {
- var len = arguments.length;
- var args = Array(len);
- for (var i = 0; i < len; i++) {
- args[i] = arguments[i];
- }
- var classSet = new StorageObject();
- _parseArray(classSet, args);
- var list = [];
- for (var k in classSet) {
- if (classSet[k]) {
- list.push(k);
- }
- }
- return list.join(" ");
- }
- return _classNames;
- }();
- if (typeof module3 !== "undefined" && module3.exports) {
- module3.exports = classNames;
- } else if (true) {
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() {
- return classNames;
- }.apply(exports2, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module3.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else {
- }
- })();
- },
- "./node_modules/core-js/es/array/from.js": function(module3, exports2, __webpack_require__) {
- __webpack_require__("./node_modules/core-js/modules/es.string.iterator.js");
- __webpack_require__("./node_modules/core-js/modules/es.array.from.js");
- var path = __webpack_require__("./node_modules/core-js/internals/path.js");
- module3.exports = path.Array.from;
- },
- "./node_modules/core-js/internals/a-function.js": function(module3, exports2) {
- module3.exports = function(it) {
- if (typeof it != "function") {
- throw TypeError(String(it) + " is not a function");
- }
- return it;
- };
- },
- "./node_modules/core-js/internals/an-object.js": function(module3, exports2, __webpack_require__) {
- var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js");
- module3.exports = function(it) {
- if (!isObject(it)) {
- throw TypeError(String(it) + " is not an object");
- }
- return it;
- };
- },
- "./node_modules/core-js/internals/array-from.js": function(module3, exports2, __webpack_require__) {
- "use strict";
- var bind = __webpack_require__("./node_modules/core-js/internals/bind-context.js");
- var toObject = __webpack_require__("./node_modules/core-js/internals/to-object.js");
- var callWithSafeIterationClosing = __webpack_require__("./node_modules/core-js/internals/call-with-safe-iteration-closing.js");
- var isArrayIteratorMethod = __webpack_require__("./node_modules/core-js/internals/is-array-iterator-method.js");
- var toLength = __webpack_require__("./node_modules/core-js/internals/to-length.js");
- var createProperty = __webpack_require__("./node_modules/core-js/internals/create-property.js");
- var getIteratorMethod = __webpack_require__("./node_modules/core-js/internals/get-iterator-method.js");
- module3.exports = function from(arrayLike) {
- var O = toObject(arrayLike);
- var C = typeof this == "function" ? this : Array;
- var argumentsLength = arguments.length;
- var mapfn = argumentsLength > 1 ? arguments[1] : void 0;
- var mapping = mapfn !== void 0;
- var index = 0;
- var iteratorMethod = getIteratorMethod(O);
- var length, result, step, iterator;
- if (mapping)
- mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : void 0, 2);
- if (iteratorMethod != void 0 && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
- iterator = iteratorMethod.call(O);
- result = new C();
- for (; !(step = iterator.next()).done; index++) {
- createProperty(result, index, mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value);
- }
- } else {
- length = toLength(O.length);
- result = new C(length);
- for (; length > index; index++) {
- createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
- }
- }
- result.length = index;
- return result;
- };
- },
- "./node_modules/core-js/internals/array-includes.js": function(module3, exports2, __webpack_require__) {
- var toIndexedObject = __webpack_require__("./node_modules/core-js/internals/to-indexed-object.js");
- var toLength = __webpack_require__("./node_modules/core-js/internals/to-length.js");
- var toAbsoluteIndex = __webpack_require__("./node_modules/core-js/internals/to-absolute-index.js");
- module3.exports = function(IS_INCLUDES) {
- return function($this, el, fromIndex) {
- var O = toIndexedObject($this);
- var length = toLength(O.length);
- var index = toAbsoluteIndex(fromIndex, length);
- var value;
- if (IS_INCLUDES && el != el)
- while (length > index) {
- value = O[index++];
- if (value != value)
- return true;
- }
- else
- for (; length > index; index++)
- if (IS_INCLUDES || index in O) {
- if (O[index] === el)
- return IS_INCLUDES || index || 0;
- }
- return !IS_INCLUDES && -1;
- };
- };
- },
- "./node_modules/core-js/internals/bind-context.js": function(module3, exports2, __webpack_require__) {
- var aFunction = __webpack_require__("./node_modules/core-js/internals/a-function.js");
- module3.exports = function(fn, that, length) {
- aFunction(fn);
- if (that === void 0)
- return fn;
- switch (length) {
- case 0:
- return function() {
- return fn.call(that);
- };
- case 1:
- return function(a) {
- return fn.call(that, a);
- };
- case 2:
- return function(a, b) {
- return fn.call(that, a, b);
- };
- case 3:
- return function(a, b, c) {
- return fn.call(that, a, b, c);
- };
- }
- return function() {
- return fn.apply(that, arguments);
- };
- };
- },
- "./node_modules/core-js/internals/call-with-safe-iteration-closing.js": function(module3, exports2, __webpack_require__) {
- var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js");
- module3.exports = function(iterator, fn, value, ENTRIES) {
- try {
- return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
- } catch (error) {
- var returnMethod = iterator["return"];
- if (returnMethod !== void 0)
- anObject(returnMethod.call(iterator));
- throw error;
- }
- };
- },
- "./node_modules/core-js/internals/check-correctness-of-iteration.js": function(module3, exports2, __webpack_require__) {
- var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js");
- var ITERATOR = wellKnownSymbol("iterator");
- var SAFE_CLOSING = false;
- try {
- var called = 0;
- var iteratorWithReturn = {
- next: function() {
- return { done: !!called++ };
- },
- "return": function() {
- SAFE_CLOSING = true;
- }
- };
- iteratorWithReturn[ITERATOR] = function() {
- return this;
- };
- Array.from(iteratorWithReturn, function() {
- throw 2;
- });
- } catch (error) {
- }
- module3.exports = function(exec, SKIP_CLOSING) {
- if (!SKIP_CLOSING && !SAFE_CLOSING)
- return false;
- var ITERATION_SUPPORT = false;
- try {
- var object = {};
- object[ITERATOR] = function() {
- return {
- next: function() {
- return { done: ITERATION_SUPPORT = true };
- }
- };
- };
- exec(object);
- } catch (error) {
- }
- return ITERATION_SUPPORT;
- };
- },
- "./node_modules/core-js/internals/classof-raw.js": function(module3, exports2) {
- var toString = {}.toString;
- module3.exports = function(it) {
- return toString.call(it).slice(8, -1);
- };
- },
- "./node_modules/core-js/internals/classof.js": function(module3, exports2, __webpack_require__) {
- var classofRaw = __webpack_require__("./node_modules/core-js/internals/classof-raw.js");
- var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js");
- var TO_STRING_TAG = wellKnownSymbol("toStringTag");
- var CORRECT_ARGUMENTS = classofRaw(function() {
- return arguments;
- }()) == "Arguments";
- var tryGet = function(it, key) {
- try {
- return it[key];
- } catch (error) {
- }
- };
- module3.exports = function(it) {
- var O, tag, result;
- return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == "string" ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == "Object" && typeof O.callee == "function" ? "Arguments" : result;
- };
- },
- "./node_modules/core-js/internals/copy-constructor-properties.js": function(module3, exports2, __webpack_require__) {
- var has = __webpack_require__("./node_modules/core-js/internals/has.js");
- var ownKeys = __webpack_require__("./node_modules/core-js/internals/own-keys.js");
- var getOwnPropertyDescriptorModule = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-descriptor.js");
- var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js");
- module3.exports = function(target, source) {
- var keys = ownKeys(source);
- var defineProperty = definePropertyModule.f;
- var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- if (!has(target, key))
- defineProperty(target, key, getOwnPropertyDescriptor(source, key));
- }
- };
- },
- "./node_modules/core-js/internals/correct-prototype-getter.js": function(module3, exports2, __webpack_require__) {
- var fails = __webpack_require__("./node_modules/core-js/internals/fails.js");
- module3.exports = !fails(function() {
- function F() {
- }
- F.prototype.constructor = null;
- return Object.getPrototypeOf(new F()) !== F.prototype;
- });
- },
- "./node_modules/core-js/internals/create-iterator-constructor.js": function(module3, exports2, __webpack_require__) {
- "use strict";
- var IteratorPrototype = __webpack_require__("./node_modules/core-js/internals/iterators-core.js").IteratorPrototype;
- var create = __webpack_require__("./node_modules/core-js/internals/object-create.js");
- var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js");
- var setToStringTag = __webpack_require__("./node_modules/core-js/internals/set-to-string-tag.js");
- var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js");
- var returnThis = function() {
- return this;
- };
- module3.exports = function(IteratorConstructor, NAME, next) {
- var TO_STRING_TAG = NAME + " Iterator";
- IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });
- setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
- Iterators[TO_STRING_TAG] = returnThis;
- return IteratorConstructor;
- };
- },
- "./node_modules/core-js/internals/create-property-descriptor.js": function(module3, exports2) {
- module3.exports = function(bitmap, value) {
- return {
- enumerable: !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable: !(bitmap & 4),
- value
- };
- };
- },
- "./node_modules/core-js/internals/create-property.js": function(module3, exports2, __webpack_require__) {
- "use strict";
- var toPrimitive = __webpack_require__("./node_modules/core-js/internals/to-primitive.js");
- var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js");
- var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js");
- module3.exports = function(object, key, value) {
- var propertyKey = toPrimitive(key);
- if (propertyKey in object)
- definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
- else
- object[propertyKey] = value;
- };
- },
- "./node_modules/core-js/internals/define-iterator.js": function(module3, exports2, __webpack_require__) {
- "use strict";
- var $ = __webpack_require__("./node_modules/core-js/internals/export.js");
- var createIteratorConstructor = __webpack_require__("./node_modules/core-js/internals/create-iterator-constructor.js");
- var getPrototypeOf = __webpack_require__("./node_modules/core-js/internals/object-get-prototype-of.js");
- var setPrototypeOf = __webpack_require__("./node_modules/core-js/internals/object-set-prototype-of.js");
- var setToStringTag = __webpack_require__("./node_modules/core-js/internals/set-to-string-tag.js");
- var hide = __webpack_require__("./node_modules/core-js/internals/hide.js");
- var redefine = __webpack_require__("./node_modules/core-js/internals/redefine.js");
- var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js");
- var IS_PURE = __webpack_require__("./node_modules/core-js/internals/is-pure.js");
- var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js");
- var IteratorsCore = __webpack_require__("./node_modules/core-js/internals/iterators-core.js");
- var IteratorPrototype = IteratorsCore.IteratorPrototype;
- var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
- var ITERATOR = wellKnownSymbol("iterator");
- var KEYS = "keys";
- var VALUES = "values";
- var ENTRIES = "entries";
- var returnThis = function() {
- return this;
- };
- module3.exports = function(Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
- createIteratorConstructor(IteratorConstructor, NAME, next);
- var getIterationMethod = function(KIND) {
- if (KIND === DEFAULT && defaultIterator)
- return defaultIterator;
- if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype)
- return IterablePrototype[KIND];
- switch (KIND) {
- case KEYS:
- return function keys() {
- return new IteratorConstructor(this, KIND);
- };
- case VALUES:
- return function values() {
- return new IteratorConstructor(this, KIND);
- };
- case ENTRIES:
- return function entries() {
- return new IteratorConstructor(this, KIND);
- };
- }
- return function() {
- return new IteratorConstructor(this);
- };
- };
- var TO_STRING_TAG = NAME + " Iterator";
- var INCORRECT_VALUES_NAME = false;
- var IterablePrototype = Iterable.prototype;
- var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype["@@iterator"] || DEFAULT && IterablePrototype[DEFAULT];
- var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
- var anyNativeIterator = NAME == "Array" ? IterablePrototype.entries || nativeIterator : nativeIterator;
- var CurrentIteratorPrototype, methods, KEY;
- if (anyNativeIterator) {
- CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
- if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
- if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
- if (setPrototypeOf) {
- setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
- } else if (typeof CurrentIteratorPrototype[ITERATOR] != "function") {
- hide(CurrentIteratorPrototype, ITERATOR, returnThis);
- }
- }
- setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
- if (IS_PURE)
- Iterators[TO_STRING_TAG] = returnThis;
- }
- }
- if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
- INCORRECT_VALUES_NAME = true;
- defaultIterator = function values() {
- return nativeIterator.call(this);
- };
- }
- if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
- hide(IterablePrototype, ITERATOR, defaultIterator);
- }
- Iterators[NAME] = defaultIterator;
- if (DEFAULT) {
- methods = {
- values: getIterationMethod(VALUES),
- keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
- entries: getIterationMethod(ENTRIES)
- };
- if (FORCED)
- for (KEY in methods) {
- if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
- redefine(IterablePrototype, KEY, methods[KEY]);
- }
- }
- else
- $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
- }
- return methods;
- };
- },
- "./node_modules/core-js/internals/descriptors.js": function(module3, exports2, __webpack_require__) {
- var fails = __webpack_require__("./node_modules/core-js/internals/fails.js");
- module3.exports = !fails(function() {
- return Object.defineProperty({}, "a", { get: function() {
- return 7;
- } }).a != 7;
- });
- },
- "./node_modules/core-js/internals/document-create-element.js": function(module3, exports2, __webpack_require__) {
- var global = __webpack_require__("./node_modules/core-js/internals/global.js");
- var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js");
- var document2 = global.document;
- var exist = isObject(document2) && isObject(document2.createElement);
- module3.exports = function(it) {
- return exist ? document2.createElement(it) : {};
- };
- },
- "./node_modules/core-js/internals/enum-bug-keys.js": function(module3, exports2) {
- module3.exports = [
- "constructor",
- "hasOwnProperty",
- "isPrototypeOf",
- "propertyIsEnumerable",
- "toLocaleString",
- "toString",
- "valueOf"
- ];
- },
- "./node_modules/core-js/internals/export.js": function(module3, exports2, __webpack_require__) {
- var global = __webpack_require__("./node_modules/core-js/internals/global.js");
- var getOwnPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-descriptor.js").f;
- var hide = __webpack_require__("./node_modules/core-js/internals/hide.js");
- var redefine = __webpack_require__("./node_modules/core-js/internals/redefine.js");
- var setGlobal = __webpack_require__("./node_modules/core-js/internals/set-global.js");
- var copyConstructorProperties = __webpack_require__("./node_modules/core-js/internals/copy-constructor-properties.js");
- var isForced = __webpack_require__("./node_modules/core-js/internals/is-forced.js");
- module3.exports = function(options, source) {
- var TARGET = options.target;
- var GLOBAL = options.global;
- var STATIC = options.stat;
- var FORCED, target, key, targetProperty, sourceProperty, descriptor;
- if (GLOBAL) {
- target = global;
- } else if (STATIC) {
- target = global[TARGET] || setGlobal(TARGET, {});
- } else {
- target = (global[TARGET] || {}).prototype;
- }
- if (target)
- for (key in source) {
- sourceProperty = source[key];
- if (options.noTargetGet) {
- descriptor = getOwnPropertyDescriptor(target, key);
- targetProperty = descriptor && descriptor.value;
- } else
- targetProperty = target[key];
- FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? "." : "#") + key, options.forced);
- if (!FORCED && targetProperty !== void 0) {
- if (typeof sourceProperty === typeof targetProperty)
- continue;
- copyConstructorProperties(sourceProperty, targetProperty);
- }
- if (options.sham || targetProperty && targetProperty.sham) {
- hide(sourceProperty, "sham", true);
- }
- redefine(target, key, sourceProperty, options);
- }
- };
- },
- "./node_modules/core-js/internals/fails.js": function(module3, exports2) {
- module3.exports = function(exec) {
- try {
- return !!exec();
- } catch (error) {
- return true;
- }
- };
- },
- "./node_modules/core-js/internals/function-to-string.js": function(module3, exports2, __webpack_require__) {
- var shared = __webpack_require__("./node_modules/core-js/internals/shared.js");
- module3.exports = shared("native-function-to-string", Function.toString);
- },
- "./node_modules/core-js/internals/get-iterator-method.js": function(module3, exports2, __webpack_require__) {
- var classof = __webpack_require__("./node_modules/core-js/internals/classof.js");
- var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js");
- var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js");
- var ITERATOR = wellKnownSymbol("iterator");
- module3.exports = function(it) {
- if (it != void 0)
- return it[ITERATOR] || it["@@iterator"] || Iterators[classof(it)];
- };
- },
- "./node_modules/core-js/internals/global.js": function(module3, exports2, __webpack_require__) {
- (function(global) {
- var O = "object";
- var check = function(it) {
- return it && it.Math == Math && it;
- };
- module3.exports = check(typeof globalThis == O && globalThis) || check(typeof window == O && window) || check(typeof self == O && self) || check(typeof global == O && global) || Function("return this")();
- }).call(this, __webpack_require__("./node_modules/webpack/buildin/global.js"));
- },
- "./node_modules/core-js/internals/has.js": function(module3, exports2) {
- var hasOwnProperty = {}.hasOwnProperty;
- module3.exports = function(it, key) {
- return hasOwnProperty.call(it, key);
- };
- },
- "./node_modules/core-js/internals/hidden-keys.js": function(module3, exports2) {
- module3.exports = {};
- },
- "./node_modules/core-js/internals/hide.js": function(module3, exports2, __webpack_require__) {
- var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js");
- var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js");
- var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js");
- module3.exports = DESCRIPTORS ? function(object, key, value) {
- return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
- } : function(object, key, value) {
- object[key] = value;
- return object;
- };
- },
- "./node_modules/core-js/internals/html.js": function(module3, exports2, __webpack_require__) {
- var global = __webpack_require__("./node_modules/core-js/internals/global.js");
- var document2 = global.document;
- module3.exports = document2 && document2.documentElement;
- },
- "./node_modules/core-js/internals/ie8-dom-define.js": function(module3, exports2, __webpack_require__) {
- var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js");
- var fails = __webpack_require__("./node_modules/core-js/internals/fails.js");
- var createElement = __webpack_require__("./node_modules/core-js/internals/document-create-element.js");
- module3.exports = !DESCRIPTORS && !fails(function() {
- return Object.defineProperty(createElement("div"), "a", {
- get: function() {
- return 7;
- }
- }).a != 7;
- });
- },
- "./node_modules/core-js/internals/indexed-object.js": function(module3, exports2, __webpack_require__) {
- var fails = __webpack_require__("./node_modules/core-js/internals/fails.js");
- var classof = __webpack_require__("./node_modules/core-js/internals/classof-raw.js");
- var split = "".split;
- module3.exports = fails(function() {
- return !Object("z").propertyIsEnumerable(0);
- }) ? function(it) {
- return classof(it) == "String" ? split.call(it, "") : Object(it);
- } : Object;
- },
- "./node_modules/core-js/internals/internal-state.js": function(module3, exports2, __webpack_require__) {
- var NATIVE_WEAK_MAP = __webpack_require__("./node_modules/core-js/internals/native-weak-map.js");
- var global = __webpack_require__("./node_modules/core-js/internals/global.js");
- var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js");
- var hide = __webpack_require__("./node_modules/core-js/internals/hide.js");
- var objectHas = __webpack_require__("./node_modules/core-js/internals/has.js");
- var sharedKey = __webpack_require__("./node_modules/core-js/internals/shared-key.js");
- var hiddenKeys = __webpack_require__("./node_modules/core-js/internals/hidden-keys.js");
- var WeakMap = global.WeakMap;
- var set, get, has;
- var enforce = function(it) {
- return has(it) ? get(it) : set(it, {});
- };
- var getterFor = function(TYPE) {
- return function(it) {
- var state;
- if (!isObject(it) || (state = get(it)).type !== TYPE) {
- throw TypeError("Incompatible receiver, " + TYPE + " required");
- }
- return state;
- };
- };
- if (NATIVE_WEAK_MAP) {
- var store = new WeakMap();
- var wmget = store.get;
- var wmhas = store.has;
- var wmset = store.set;
- set = function(it, metadata) {
- wmset.call(store, it, metadata);
- return metadata;
- };
- get = function(it) {
- return wmget.call(store, it) || {};
- };
- has = function(it) {
- return wmhas.call(store, it);
- };
- } else {
- var STATE = sharedKey("state");
- hiddenKeys[STATE] = true;
- set = function(it, metadata) {
- hide(it, STATE, metadata);
- return metadata;
- };
- get = function(it) {
- return objectHas(it, STATE) ? it[STATE] : {};
- };
- has = function(it) {
- return objectHas(it, STATE);
- };
- }
- module3.exports = {
- set,
- get,
- has,
- enforce,
- getterFor
- };
- },
- "./node_modules/core-js/internals/is-array-iterator-method.js": function(module3, exports2, __webpack_require__) {
- var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js");
- var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js");
- var ITERATOR = wellKnownSymbol("iterator");
- var ArrayPrototype = Array.prototype;
- module3.exports = function(it) {
- return it !== void 0 && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
- };
- },
- "./node_modules/core-js/internals/is-forced.js": function(module3, exports2, __webpack_require__) {
- var fails = __webpack_require__("./node_modules/core-js/internals/fails.js");
- var replacement = /#|\.prototype\./;
- var isForced = function(feature, detection) {
- var value = data[normalize(feature)];
- return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == "function" ? fails(detection) : !!detection;
- };
- var normalize = isForced.normalize = function(string) {
- return String(string).replace(replacement, ".").toLowerCase();
- };
- var data = isForced.data = {};
- var NATIVE = isForced.NATIVE = "N";
- var POLYFILL = isForced.POLYFILL = "P";
- module3.exports = isForced;
- },
- "./node_modules/core-js/internals/is-object.js": function(module3, exports2) {
- module3.exports = function(it) {
- return typeof it === "object" ? it !== null : typeof it === "function";
- };
- },
- "./node_modules/core-js/internals/is-pure.js": function(module3, exports2) {
- module3.exports = false;
- },
- "./node_modules/core-js/internals/iterators-core.js": function(module3, exports2, __webpack_require__) {
- "use strict";
- var getPrototypeOf = __webpack_require__("./node_modules/core-js/internals/object-get-prototype-of.js");
- var hide = __webpack_require__("./node_modules/core-js/internals/hide.js");
- var has = __webpack_require__("./node_modules/core-js/internals/has.js");
- var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js");
- var IS_PURE = __webpack_require__("./node_modules/core-js/internals/is-pure.js");
- var ITERATOR = wellKnownSymbol("iterator");
- var BUGGY_SAFARI_ITERATORS = false;
- var returnThis = function() {
- return this;
- };
- var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
- if ([].keys) {
- arrayIterator = [].keys();
- if (!("next" in arrayIterator))
- BUGGY_SAFARI_ITERATORS = true;
- else {
- PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
- if (PrototypeOfArrayIteratorPrototype !== Object.prototype)
- IteratorPrototype = PrototypeOfArrayIteratorPrototype;
- }
- }
- if (IteratorPrototype == void 0)
- IteratorPrototype = {};
- if (!IS_PURE && !has(IteratorPrototype, ITERATOR))
- hide(IteratorPrototype, ITERATOR, returnThis);
- module3.exports = {
- IteratorPrototype,
- BUGGY_SAFARI_ITERATORS
- };
- },
- "./node_modules/core-js/internals/iterators.js": function(module3, exports2) {
- module3.exports = {};
- },
- "./node_modules/core-js/internals/native-symbol.js": function(module3, exports2, __webpack_require__) {
- var fails = __webpack_require__("./node_modules/core-js/internals/fails.js");
- module3.exports = !!Object.getOwnPropertySymbols && !fails(function() {
- return !String(Symbol());
- });
- },
- "./node_modules/core-js/internals/native-weak-map.js": function(module3, exports2, __webpack_require__) {
- var global = __webpack_require__("./node_modules/core-js/internals/global.js");
- var nativeFunctionToString = __webpack_require__("./node_modules/core-js/internals/function-to-string.js");
- var WeakMap = global.WeakMap;
- module3.exports = typeof WeakMap === "function" && /native code/.test(nativeFunctionToString.call(WeakMap));
- },
- "./node_modules/core-js/internals/object-create.js": function(module3, exports2, __webpack_require__) {
- var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js");
- var defineProperties = __webpack_require__("./node_modules/core-js/internals/object-define-properties.js");
- var enumBugKeys = __webpack_require__("./node_modules/core-js/internals/enum-bug-keys.js");
- var hiddenKeys = __webpack_require__("./node_modules/core-js/internals/hidden-keys.js");
- var html = __webpack_require__("./node_modules/core-js/internals/html.js");
- var documentCreateElement = __webpack_require__("./node_modules/core-js/internals/document-create-element.js");
- var sharedKey = __webpack_require__("./node_modules/core-js/internals/shared-key.js");
- var IE_PROTO = sharedKey("IE_PROTO");
- var PROTOTYPE = "prototype";
- var Empty = function() {
- };
- var createDict = function() {
- var iframe = documentCreateElement("iframe");
- var length = enumBugKeys.length;
- var lt = "<";
- var script = "script";
- var gt = ">";
- var js = "java" + script + ":";
- var iframeDocument;
- iframe.style.display = "none";
- html.appendChild(iframe);
- iframe.src = String(js);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write(lt + script + gt + "document.F=Object" + lt + "/" + script + gt);
- iframeDocument.close();
- createDict = iframeDocument.F;
- while (length--)
- delete createDict[PROTOTYPE][enumBugKeys[length]];
- return createDict();
- };
- module3.exports = Object.create || function create(O, Properties) {
- var result;
- if (O !== null) {
- Empty[PROTOTYPE] = anObject(O);
- result = new Empty();
- Empty[PROTOTYPE] = null;
- result[IE_PROTO] = O;
- } else
- result = createDict();
- return Properties === void 0 ? result : defineProperties(result, Properties);
- };
- hiddenKeys[IE_PROTO] = true;
- },
- "./node_modules/core-js/internals/object-define-properties.js": function(module3, exports2, __webpack_require__) {
- var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js");
- var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js");
- var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js");
- var objectKeys = __webpack_require__("./node_modules/core-js/internals/object-keys.js");
- module3.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
- anObject(O);
- var keys = objectKeys(Properties);
- var length = keys.length;
- var i = 0;
- var key;
- while (length > i)
- definePropertyModule.f(O, key = keys[i++], Properties[key]);
- return O;
- };
- },
- "./node_modules/core-js/internals/object-define-property.js": function(module3, exports2, __webpack_require__) {
- var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js");
- var IE8_DOM_DEFINE = __webpack_require__("./node_modules/core-js/internals/ie8-dom-define.js");
- var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js");
- var toPrimitive = __webpack_require__("./node_modules/core-js/internals/to-primitive.js");
- var nativeDefineProperty = Object.defineProperty;
- exports2.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
- anObject(O);
- P = toPrimitive(P, true);
- anObject(Attributes);
- if (IE8_DOM_DEFINE)
- try {
- return nativeDefineProperty(O, P, Attributes);
- } catch (error) {
- }
- if ("get" in Attributes || "set" in Attributes)
- throw TypeError("Accessors not supported");
- if ("value" in Attributes)
- O[P] = Attributes.value;
- return O;
- };
- },
- "./node_modules/core-js/internals/object-get-own-property-descriptor.js": function(module3, exports2, __webpack_require__) {
- var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js");
- var propertyIsEnumerableModule = __webpack_require__("./node_modules/core-js/internals/object-property-is-enumerable.js");
- var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js");
- var toIndexedObject = __webpack_require__("./node_modules/core-js/internals/to-indexed-object.js");
- var toPrimitive = __webpack_require__("./node_modules/core-js/internals/to-primitive.js");
- var has = __webpack_require__("./node_modules/core-js/internals/has.js");
- var IE8_DOM_DEFINE = __webpack_require__("./node_modules/core-js/internals/ie8-dom-define.js");
- var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
- exports2.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
- O = toIndexedObject(O);
- P = toPrimitive(P, true);
- if (IE8_DOM_DEFINE)
- try {
- return nativeGetOwnPropertyDescriptor(O, P);
- } catch (error) {
- }
- if (has(O, P))
- return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
- };
- },
- "./node_modules/core-js/internals/object-get-own-property-names.js": function(module3, exports2, __webpack_require__) {
- var internalObjectKeys = __webpack_require__("./node_modules/core-js/internals/object-keys-internal.js");
- var enumBugKeys = __webpack_require__("./node_modules/core-js/internals/enum-bug-keys.js");
- var hiddenKeys = enumBugKeys.concat("length", "prototype");
- exports2.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
- return internalObjectKeys(O, hiddenKeys);
- };
- },
- "./node_modules/core-js/internals/object-get-own-property-symbols.js": function(module3, exports2) {
- exports2.f = Object.getOwnPropertySymbols;
- },
- "./node_modules/core-js/internals/object-get-prototype-of.js": function(module3, exports2, __webpack_require__) {
- var has = __webpack_require__("./node_modules/core-js/internals/has.js");
- var toObject = __webpack_require__("./node_modules/core-js/internals/to-object.js");
- var sharedKey = __webpack_require__("./node_modules/core-js/internals/shared-key.js");
- var CORRECT_PROTOTYPE_GETTER = __webpack_require__("./node_modules/core-js/internals/correct-prototype-getter.js");
- var IE_PROTO = sharedKey("IE_PROTO");
- var ObjectPrototype = Object.prototype;
- module3.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function(O) {
- O = toObject(O);
- if (has(O, IE_PROTO))
- return O[IE_PROTO];
- if (typeof O.constructor == "function" && O instanceof O.constructor) {
- return O.constructor.prototype;
- }
- return O instanceof Object ? ObjectPrototype : null;
- };
- },
- "./node_modules/core-js/internals/object-keys-internal.js": function(module3, exports2, __webpack_require__) {
- var has = __webpack_require__("./node_modules/core-js/internals/has.js");
- var toIndexedObject = __webpack_require__("./node_modules/core-js/internals/to-indexed-object.js");
- var arrayIncludes = __webpack_require__("./node_modules/core-js/internals/array-includes.js");
- var hiddenKeys = __webpack_require__("./node_modules/core-js/internals/hidden-keys.js");
- var arrayIndexOf = arrayIncludes(false);
- module3.exports = function(object, names) {
- var O = toIndexedObject(object);
- var i = 0;
- var result = [];
- var key;
- for (key in O)
- !has(hiddenKeys, key) && has(O, key) && result.push(key);
- while (names.length > i)
- if (has(O, key = names[i++])) {
- ~arrayIndexOf(result, key) || result.push(key);
- }
- return result;
- };
- },
- "./node_modules/core-js/internals/object-keys.js": function(module3, exports2, __webpack_require__) {
- var internalObjectKeys = __webpack_require__("./node_modules/core-js/internals/object-keys-internal.js");
- var enumBugKeys = __webpack_require__("./node_modules/core-js/internals/enum-bug-keys.js");
- module3.exports = Object.keys || function keys(O) {
- return internalObjectKeys(O, enumBugKeys);
- };
- },
- "./node_modules/core-js/internals/object-property-is-enumerable.js": function(module3, exports2, __webpack_require__) {
- "use strict";
- var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
- var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
- var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
- exports2.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
- var descriptor = getOwnPropertyDescriptor(this, V);
- return !!descriptor && descriptor.enumerable;
- } : nativePropertyIsEnumerable;
- },
- "./node_modules/core-js/internals/object-set-prototype-of.js": function(module3, exports2, __webpack_require__) {
- var validateSetPrototypeOfArguments = __webpack_require__("./node_modules/core-js/internals/validate-set-prototype-of-arguments.js");
- module3.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() {
- var correctSetter = false;
- var test = {};
- var setter;
- try {
- setter = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set;
- setter.call(test, []);
- correctSetter = test instanceof Array;
- } catch (error) {
- }
- return function setPrototypeOf(O, proto) {
- validateSetPrototypeOfArguments(O, proto);
- if (correctSetter)
- setter.call(O, proto);
- else
- O.__proto__ = proto;
- return O;
- };
- }() : void 0);
- },
- "./node_modules/core-js/internals/own-keys.js": function(module3, exports2, __webpack_require__) {
- var global = __webpack_require__("./node_modules/core-js/internals/global.js");
- var getOwnPropertyNamesModule = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-names.js");
- var getOwnPropertySymbolsModule = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-symbols.js");
- var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js");
- var Reflect2 = global.Reflect;
- module3.exports = Reflect2 && Reflect2.ownKeys || function ownKeys(it) {
- var keys = getOwnPropertyNamesModule.f(anObject(it));
- var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
- return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
- };
- },
- "./node_modules/core-js/internals/path.js": function(module3, exports2, __webpack_require__) {
- module3.exports = __webpack_require__("./node_modules/core-js/internals/global.js");
- },
- "./node_modules/core-js/internals/redefine.js": function(module3, exports2, __webpack_require__) {
- var global = __webpack_require__("./node_modules/core-js/internals/global.js");
- var shared = __webpack_require__("./node_modules/core-js/internals/shared.js");
- var hide = __webpack_require__("./node_modules/core-js/internals/hide.js");
- var has = __webpack_require__("./node_modules/core-js/internals/has.js");
- var setGlobal = __webpack_require__("./node_modules/core-js/internals/set-global.js");
- var nativeFunctionToString = __webpack_require__("./node_modules/core-js/internals/function-to-string.js");
- var InternalStateModule = __webpack_require__("./node_modules/core-js/internals/internal-state.js");
- var getInternalState = InternalStateModule.get;
- var enforceInternalState = InternalStateModule.enforce;
- var TEMPLATE = String(nativeFunctionToString).split("toString");
- shared("inspectSource", function(it) {
- return nativeFunctionToString.call(it);
- });
- (module3.exports = function(O, key, value, options) {
- var unsafe = options ? !!options.unsafe : false;
- var simple = options ? !!options.enumerable : false;
- var noTargetGet = options ? !!options.noTargetGet : false;
- if (typeof value == "function") {
- if (typeof key == "string" && !has(value, "name"))
- hide(value, "name", key);
- enforceInternalState(value).source = TEMPLATE.join(typeof key == "string" ? key : "");
- }
- if (O === global) {
- if (simple)
- O[key] = value;
- else
- setGlobal(key, value);
- return;
- } else if (!unsafe) {
- delete O[key];
- } else if (!noTargetGet && O[key]) {
- simple = true;
- }
- if (simple)
- O[key] = value;
- else
- hide(O, key, value);
- })(Function.prototype, "toString", function toString() {
- return typeof this == "function" && getInternalState(this).source || nativeFunctionToString.call(this);
- });
- },
- "./node_modules/core-js/internals/require-object-coercible.js": function(module3, exports2) {
- module3.exports = function(it) {
- if (it == void 0)
- throw TypeError("Can't call method on " + it);
- return it;
- };
- },
- "./node_modules/core-js/internals/set-global.js": function(module3, exports2, __webpack_require__) {
- var global = __webpack_require__("./node_modules/core-js/internals/global.js");
- var hide = __webpack_require__("./node_modules/core-js/internals/hide.js");
- module3.exports = function(key, value) {
- try {
- hide(global, key, value);
- } catch (error) {
- global[key] = value;
- }
- return value;
- };
- },
- "./node_modules/core-js/internals/set-to-string-tag.js": function(module3, exports2, __webpack_require__) {
- var defineProperty = __webpack_require__("./node_modules/core-js/internals/object-define-property.js").f;
- var has = __webpack_require__("./node_modules/core-js/internals/has.js");
- var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js");
- var TO_STRING_TAG = wellKnownSymbol("toStringTag");
- module3.exports = function(it, TAG, STATIC) {
- if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {
- defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });
- }
- };
- },
- "./node_modules/core-js/internals/shared-key.js": function(module3, exports2, __webpack_require__) {
- var shared = __webpack_require__("./node_modules/core-js/internals/shared.js");
- var uid = __webpack_require__("./node_modules/core-js/internals/uid.js");
- var keys = shared("keys");
- module3.exports = function(key) {
- return keys[key] || (keys[key] = uid(key));
- };
- },
- "./node_modules/core-js/internals/shared.js": function(module3, exports2, __webpack_require__) {
- var global = __webpack_require__("./node_modules/core-js/internals/global.js");
- var setGlobal = __webpack_require__("./node_modules/core-js/internals/set-global.js");
- var IS_PURE = __webpack_require__("./node_modules/core-js/internals/is-pure.js");
- var SHARED = "__core-js_shared__";
- var store = global[SHARED] || setGlobal(SHARED, {});
- (module3.exports = function(key, value) {
- return store[key] || (store[key] = value !== void 0 ? value : {});
- })("versions", []).push({
- version: "3.1.3",
- mode: IS_PURE ? "pure" : "global",
- copyright: "\xA9 2019 Denis Pushkarev (zloirock.ru)"
- });
- },
- "./node_modules/core-js/internals/string-at.js": function(module3, exports2, __webpack_require__) {
- var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js");
- var requireObjectCoercible = __webpack_require__("./node_modules/core-js/internals/require-object-coercible.js");
- module3.exports = function(that, pos, CONVERT_TO_STRING) {
- var S = String(requireObjectCoercible(that));
- var position = toInteger(pos);
- var size = S.length;
- var first, second;
- if (position < 0 || position >= size)
- return CONVERT_TO_STRING ? "" : void 0;
- first = S.charCodeAt(position);
- return first < 55296 || first > 56319 || position + 1 === size || (second = S.charCodeAt(position + 1)) < 56320 || second > 57343 ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 55296 << 10) + (second - 56320) + 65536;
- };
- },
- "./node_modules/core-js/internals/to-absolute-index.js": function(module3, exports2, __webpack_require__) {
- var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js");
- var max = Math.max;
- var min = Math.min;
- module3.exports = function(index, length) {
- var integer = toInteger(index);
- return integer < 0 ? max(integer + length, 0) : min(integer, length);
- };
- },
- "./node_modules/core-js/internals/to-indexed-object.js": function(module3, exports2, __webpack_require__) {
- var IndexedObject = __webpack_require__("./node_modules/core-js/internals/indexed-object.js");
- var requireObjectCoercible = __webpack_require__("./node_modules/core-js/internals/require-object-coercible.js");
- module3.exports = function(it) {
- return IndexedObject(requireObjectCoercible(it));
- };
- },
- "./node_modules/core-js/internals/to-integer.js": function(module3, exports2) {
- var ceil = Math.ceil;
- var floor = Math.floor;
- module3.exports = function(argument) {
- return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
- };
- },
- "./node_modules/core-js/internals/to-length.js": function(module3, exports2, __webpack_require__) {
- var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js");
- var min = Math.min;
- module3.exports = function(argument) {
- return argument > 0 ? min(toInteger(argument), 9007199254740991) : 0;
- };
- },
- "./node_modules/core-js/internals/to-object.js": function(module3, exports2, __webpack_require__) {
- var requireObjectCoercible = __webpack_require__("./node_modules/core-js/internals/require-object-coercible.js");
- module3.exports = function(argument) {
- return Object(requireObjectCoercible(argument));
- };
- },
- "./node_modules/core-js/internals/to-primitive.js": function(module3, exports2, __webpack_require__) {
- var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js");
- module3.exports = function(it, S) {
- if (!isObject(it))
- return it;
- var fn, val;
- if (S && typeof (fn = it.toString) == "function" && !isObject(val = fn.call(it)))
- return val;
- if (typeof (fn = it.valueOf) == "function" && !isObject(val = fn.call(it)))
- return val;
- if (!S && typeof (fn = it.toString) == "function" && !isObject(val = fn.call(it)))
- return val;
- throw TypeError("Can't convert object to primitive value");
- };
- },
- "./node_modules/core-js/internals/uid.js": function(module3, exports2) {
- var id = 0;
- var postfix = Math.random();
- module3.exports = function(key) {
- return "Symbol(".concat(key === void 0 ? "" : key, ")_", (++id + postfix).toString(36));
- };
- },
- "./node_modules/core-js/internals/validate-set-prototype-of-arguments.js": function(module3, exports2, __webpack_require__) {
- var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js");
- var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js");
- module3.exports = function(O, proto) {
- anObject(O);
- if (!isObject(proto) && proto !== null) {
- throw TypeError("Can't set " + String(proto) + " as a prototype");
- }
- };
- },
- "./node_modules/core-js/internals/well-known-symbol.js": function(module3, exports2, __webpack_require__) {
- var global = __webpack_require__("./node_modules/core-js/internals/global.js");
- var shared = __webpack_require__("./node_modules/core-js/internals/shared.js");
- var uid = __webpack_require__("./node_modules/core-js/internals/uid.js");
- var NATIVE_SYMBOL = __webpack_require__("./node_modules/core-js/internals/native-symbol.js");
- var Symbol2 = global.Symbol;
- var store = shared("wks");
- module3.exports = function(name) {
- return store[name] || (store[name] = NATIVE_SYMBOL && Symbol2[name] || (NATIVE_SYMBOL ? Symbol2 : uid)("Symbol." + name));
- };
- },
- "./node_modules/core-js/modules/es.array.from.js": function(module3, exports2, __webpack_require__) {
- var $ = __webpack_require__("./node_modules/core-js/internals/export.js");
- var from = __webpack_require__("./node_modules/core-js/internals/array-from.js");
- var checkCorrectnessOfIteration = __webpack_require__("./node_modules/core-js/internals/check-correctness-of-iteration.js");
- var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function(iterable) {
- Array.from(iterable);
- });
- $({ target: "Array", stat: true, forced: INCORRECT_ITERATION }, {
- from
- });
- },
- "./node_modules/core-js/modules/es.string.iterator.js": function(module3, exports2, __webpack_require__) {
- "use strict";
- var codePointAt = __webpack_require__("./node_modules/core-js/internals/string-at.js");
- var InternalStateModule = __webpack_require__("./node_modules/core-js/internals/internal-state.js");
- var defineIterator = __webpack_require__("./node_modules/core-js/internals/define-iterator.js");
- var STRING_ITERATOR = "String Iterator";
- var setInternalState = InternalStateModule.set;
- var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
- defineIterator(String, "String", function(iterated) {
- setInternalState(this, {
- type: STRING_ITERATOR,
- string: String(iterated),
- index: 0
- });
- }, function next() {
- var state = getInternalState(this);
- var string = state.string;
- var index = state.index;
- var point;
- if (index >= string.length)
- return { value: void 0, done: true };
- point = codePointAt(string, index, true);
- state.index += point.length;
- return { value: point, done: false };
- });
- },
- "./node_modules/webpack/buildin/global.js": function(module3, exports2) {
- var g;
- g = function() {
- return this;
- }();
- try {
- g = g || Function("return this")() || (1, eval)("this");
- } catch (e) {
- if (typeof window === "object")
- g = window;
- }
- module3.exports = g;
- },
- "./src/default-attrs.json": function(module3) {
- module3.exports = { "xmlns": "http://www.w3.org/2000/svg", "width": 24, "height": 24, "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round" };
- },
- "./src/icon.js": function(module3, exports2, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- var _extends = Object.assign || function(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
- };
- var _createClass = function() {
- function defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor)
- descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
- return function(Constructor, protoProps, staticProps) {
- if (protoProps)
- defineProperties(Constructor.prototype, protoProps);
- if (staticProps)
- defineProperties(Constructor, staticProps);
- return Constructor;
- };
- }();
- var _dedupe = __webpack_require__("./node_modules/classnames/dedupe.js");
- var _dedupe2 = _interopRequireDefault(_dedupe);
- var _defaultAttrs = __webpack_require__("./src/default-attrs.json");
- var _defaultAttrs2 = _interopRequireDefault(_defaultAttrs);
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
- }
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
- var Icon = function() {
- function Icon2(name, contents) {
- var tags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
- _classCallCheck(this, Icon2);
- this.name = name;
- this.contents = contents;
- this.tags = tags;
- this.attrs = _extends({}, _defaultAttrs2.default, { class: "feather feather-" + name });
- }
- _createClass(Icon2, [{
- key: "toSvg",
- value: function toSvg() {
- var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
- var combinedAttrs = _extends({}, this.attrs, attrs, { class: (0, _dedupe2.default)(this.attrs.class, attrs.class) });
- return "";
- }
- }, {
- key: "toString",
- value: function toString() {
- return this.contents;
- }
- }]);
- return Icon2;
- }();
- function attrsToString(attrs) {
- return Object.keys(attrs).map(function(key) {
- return key + '="' + attrs[key] + '"';
- }).join(" ");
- }
- exports2.default = Icon;
- },
- "./src/icons.js": function(module3, exports2, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- var _icon = __webpack_require__("./src/icon.js");
- var _icon2 = _interopRequireDefault(_icon);
- var _icons = __webpack_require__("./dist/icons.json");
- var _icons2 = _interopRequireDefault(_icons);
- var _tags = __webpack_require__("./src/tags.json");
- var _tags2 = _interopRequireDefault(_tags);
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
- }
- exports2.default = Object.keys(_icons2.default).map(function(key) {
- return new _icon2.default(key, _icons2.default[key], _tags2.default[key]);
- }).reduce(function(object, icon) {
- object[icon.name] = icon;
- return object;
- }, {});
- },
- "./src/index.js": function(module3, exports2, __webpack_require__) {
- "use strict";
- var _icons = __webpack_require__("./src/icons.js");
- var _icons2 = _interopRequireDefault(_icons);
- var _toSvg = __webpack_require__("./src/to-svg.js");
- var _toSvg2 = _interopRequireDefault(_toSvg);
- var _replace = __webpack_require__("./src/replace.js");
- var _replace2 = _interopRequireDefault(_replace);
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
- }
- module3.exports = { icons: _icons2.default, toSvg: _toSvg2.default, replace: _replace2.default };
- },
- "./src/replace.js": function(module3, exports2, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- var _extends = Object.assign || function(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
- };
- var _dedupe = __webpack_require__("./node_modules/classnames/dedupe.js");
- var _dedupe2 = _interopRequireDefault(_dedupe);
- var _icons = __webpack_require__("./src/icons.js");
- var _icons2 = _interopRequireDefault(_icons);
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
- }
- function replace() {
- var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
- if (typeof document === "undefined") {
- throw new Error("`feather.replace()` only works in a browser environment.");
- }
- var elementsToReplace = document.querySelectorAll("[data-feather]");
- Array.from(elementsToReplace).forEach(function(element) {
- return replaceElement(element, attrs);
- });
- }
- function replaceElement(element) {
- var attrs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- var elementAttrs = getAttrs(element);
- var name = elementAttrs["data-feather"];
- delete elementAttrs["data-feather"];
- var svgString = _icons2.default[name].toSvg(_extends({}, attrs, elementAttrs, { class: (0, _dedupe2.default)(attrs.class, elementAttrs.class) }));
- var svgDocument = new DOMParser().parseFromString(svgString, "image/svg+xml");
- var svgElement = svgDocument.querySelector("svg");
- element.parentNode.replaceChild(svgElement, element);
- }
- function getAttrs(element) {
- return Array.from(element.attributes).reduce(function(attrs, attr) {
- attrs[attr.name] = attr.value;
- return attrs;
- }, {});
- }
- exports2.default = replace;
- },
- "./src/tags.json": function(module3) {
- module3.exports = { "activity": ["pulse", "health", "action", "motion"], "airplay": ["stream", "cast", "mirroring"], "alert-circle": ["warning", "alert", "danger"], "alert-octagon": ["warning", "alert", "danger"], "alert-triangle": ["warning", "alert", "danger"], "align-center": ["text alignment", "center"], "align-justify": ["text alignment", "justified"], "align-left": ["text alignment", "left"], "align-right": ["text alignment", "right"], "anchor": [], "archive": ["index", "box"], "at-sign": ["mention", "at", "email", "message"], "award": ["achievement", "badge"], "aperture": ["camera", "photo"], "bar-chart": ["statistics", "diagram", "graph"], "bar-chart-2": ["statistics", "diagram", "graph"], "battery": ["power", "electricity"], "battery-charging": ["power", "electricity"], "bell": ["alarm", "notification", "sound"], "bell-off": ["alarm", "notification", "silent"], "bluetooth": ["wireless"], "book-open": ["read", "library"], "book": ["read", "dictionary", "booklet", "magazine", "library"], "bookmark": ["read", "clip", "marker", "tag"], "box": ["cube"], "briefcase": ["work", "bag", "baggage", "folder"], "calendar": ["date"], "camera": ["photo"], "cast": ["chromecast", "airplay"], "circle": ["off", "zero", "record"], "clipboard": ["copy"], "clock": ["time", "watch", "alarm"], "cloud-drizzle": ["weather", "shower"], "cloud-lightning": ["weather", "bolt"], "cloud-rain": ["weather"], "cloud-snow": ["weather", "blizzard"], "cloud": ["weather"], "codepen": ["logo"], "codesandbox": ["logo"], "code": ["source", "programming"], "coffee": ["drink", "cup", "mug", "tea", "cafe", "hot", "beverage"], "columns": ["layout"], "command": ["keyboard", "cmd", "terminal", "prompt"], "compass": ["navigation", "safari", "travel", "direction"], "copy": ["clone", "duplicate"], "corner-down-left": ["arrow", "return"], "corner-down-right": ["arrow"], "corner-left-down": ["arrow"], "corner-left-up": ["arrow"], "corner-right-down": ["arrow"], "corner-right-up": ["arrow"], "corner-up-left": ["arrow"], "corner-up-right": ["arrow"], "cpu": ["processor", "technology"], "credit-card": ["purchase", "payment", "cc"], "crop": ["photo", "image"], "crosshair": ["aim", "target"], "database": ["storage", "memory"], "delete": ["remove"], "disc": ["album", "cd", "dvd", "music"], "dollar-sign": ["currency", "money", "payment"], "droplet": ["water"], "edit": ["pencil", "change"], "edit-2": ["pencil", "change"], "edit-3": ["pencil", "change"], "eye": ["view", "watch"], "eye-off": ["view", "watch", "hide", "hidden"], "external-link": ["outbound"], "facebook": ["logo", "social"], "fast-forward": ["music"], "figma": ["logo", "design", "tool"], "file-minus": ["delete", "remove", "erase"], "file-plus": ["add", "create", "new"], "file-text": ["data", "txt", "pdf"], "film": ["movie", "video"], "filter": ["funnel", "hopper"], "flag": ["report"], "folder-minus": ["directory"], "folder-plus": ["directory"], "folder": ["directory"], "framer": ["logo", "design", "tool"], "frown": ["emoji", "face", "bad", "sad", "emotion"], "gift": ["present", "box", "birthday", "party"], "git-branch": ["code", "version control"], "git-commit": ["code", "version control"], "git-merge": ["code", "version control"], "git-pull-request": ["code", "version control"], "github": ["logo", "version control"], "gitlab": ["logo", "version control"], "globe": ["world", "browser", "language", "translate"], "hard-drive": ["computer", "server", "memory", "data"], "hash": ["hashtag", "number", "pound"], "headphones": ["music", "audio", "sound"], "heart": ["like", "love", "emotion"], "help-circle": ["question mark"], "hexagon": ["shape", "node.js", "logo"], "home": ["house", "living"], "image": ["picture"], "inbox": ["email"], "instagram": ["logo", "camera"], "key": ["password", "login", "authentication", "secure"], "layers": ["stack"], "layout": ["window", "webpage"], "life-bouy": ["help", "life ring", "support"], "link": ["chain", "url"], "link-2": ["chain", "url"], "linkedin": ["logo", "social media"], "list": ["options"], "lock": ["security", "password", "secure"], "log-in": ["sign in", "arrow", "enter"], "log-out": ["sign out", "arrow", "exit"], "mail": ["email", "message"], "map-pin": ["location", "navigation", "travel", "marker"], "map": ["location", "navigation", "travel"], "maximize": ["fullscreen"], "maximize-2": ["fullscreen", "arrows", "expand"], "meh": ["emoji", "face", "neutral", "emotion"], "menu": ["bars", "navigation", "hamburger"], "message-circle": ["comment", "chat"], "message-square": ["comment", "chat"], "mic-off": ["record", "sound", "mute"], "mic": ["record", "sound", "listen"], "minimize": ["exit fullscreen", "close"], "minimize-2": ["exit fullscreen", "arrows", "close"], "minus": ["subtract"], "monitor": ["tv", "screen", "display"], "moon": ["dark", "night"], "more-horizontal": ["ellipsis"], "more-vertical": ["ellipsis"], "mouse-pointer": ["arrow", "cursor"], "move": ["arrows"], "music": ["note"], "navigation": ["location", "travel"], "navigation-2": ["location", "travel"], "octagon": ["stop"], "package": ["box", "container"], "paperclip": ["attachment"], "pause": ["music", "stop"], "pause-circle": ["music", "audio", "stop"], "pen-tool": ["vector", "drawing"], "percent": ["discount"], "phone-call": ["ring"], "phone-forwarded": ["call"], "phone-incoming": ["call"], "phone-missed": ["call"], "phone-off": ["call", "mute"], "phone-outgoing": ["call"], "phone": ["call"], "play": ["music", "start"], "pie-chart": ["statistics", "diagram"], "play-circle": ["music", "start"], "plus": ["add", "new"], "plus-circle": ["add", "new"], "plus-square": ["add", "new"], "pocket": ["logo", "save"], "power": ["on", "off"], "printer": ["fax", "office", "device"], "radio": ["signal"], "refresh-cw": ["synchronise", "arrows"], "refresh-ccw": ["arrows"], "repeat": ["loop", "arrows"], "rewind": ["music"], "rotate-ccw": ["arrow"], "rotate-cw": ["arrow"], "rss": ["feed", "subscribe"], "save": ["floppy disk"], "scissors": ["cut"], "search": ["find", "magnifier", "magnifying glass"], "send": ["message", "mail", "email", "paper airplane", "paper aeroplane"], "settings": ["cog", "edit", "gear", "preferences"], "share-2": ["network", "connections"], "shield": ["security", "secure"], "shield-off": ["security", "insecure"], "shopping-bag": ["ecommerce", "cart", "purchase", "store"], "shopping-cart": ["ecommerce", "cart", "purchase", "store"], "shuffle": ["music"], "skip-back": ["music"], "skip-forward": ["music"], "slack": ["logo"], "slash": ["ban", "no"], "sliders": ["settings", "controls"], "smartphone": ["cellphone", "device"], "smile": ["emoji", "face", "happy", "good", "emotion"], "speaker": ["audio", "music"], "star": ["bookmark", "favorite", "like"], "stop-circle": ["media", "music"], "sun": ["brightness", "weather", "light"], "sunrise": ["weather", "time", "morning", "day"], "sunset": ["weather", "time", "evening", "night"], "tablet": ["device"], "tag": ["label"], "target": ["logo", "bullseye"], "terminal": ["code", "command line", "prompt"], "thermometer": ["temperature", "celsius", "fahrenheit", "weather"], "thumbs-down": ["dislike", "bad", "emotion"], "thumbs-up": ["like", "good", "emotion"], "toggle-left": ["on", "off", "switch"], "toggle-right": ["on", "off", "switch"], "tool": ["settings", "spanner"], "trash": ["garbage", "delete", "remove", "bin"], "trash-2": ["garbage", "delete", "remove", "bin"], "triangle": ["delta"], "truck": ["delivery", "van", "shipping", "transport", "lorry"], "tv": ["television", "stream"], "twitch": ["logo"], "twitter": ["logo", "social"], "type": ["text"], "umbrella": ["rain", "weather"], "unlock": ["security"], "user-check": ["followed", "subscribed"], "user-minus": ["delete", "remove", "unfollow", "unsubscribe"], "user-plus": ["new", "add", "create", "follow", "subscribe"], "user-x": ["delete", "remove", "unfollow", "unsubscribe", "unavailable"], "user": ["person", "account"], "users": ["group"], "video-off": ["camera", "movie", "film"], "video": ["camera", "movie", "film"], "voicemail": ["phone"], "volume": ["music", "sound", "mute"], "volume-1": ["music", "sound"], "volume-2": ["music", "sound"], "volume-x": ["music", "sound", "mute"], "watch": ["clock", "time"], "wifi-off": ["disabled"], "wifi": ["connection", "signal", "wireless"], "wind": ["weather", "air"], "x-circle": ["cancel", "close", "delete", "remove", "times", "clear"], "x-octagon": ["delete", "stop", "alert", "warning", "times", "clear"], "x-square": ["cancel", "close", "delete", "remove", "times", "clear"], "x": ["cancel", "close", "delete", "remove", "times", "clear"], "youtube": ["logo", "video", "play"], "zap-off": ["flash", "camera", "lightning"], "zap": ["flash", "camera", "lightning"], "zoom-in": ["magnifying glass"], "zoom-out": ["magnifying glass"] };
- },
- "./src/to-svg.js": function(module3, exports2, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports2, "__esModule", {
- value: true
- });
- var _icons = __webpack_require__("./src/icons.js");
- var _icons2 = _interopRequireDefault(_icons);
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
- }
- function toSvg(name) {
- var attrs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
- console.warn("feather.toSvg() is deprecated. Please use feather.icons[name].toSvg() instead.");
- if (!name) {
- throw new Error("The required `key` (icon name) parameter is missing.");
- }
- if (!_icons2.default[name]) {
- throw new Error("No icon matching '" + name + "'. See the complete list of icons at https://feathericons.com");
- }
- return _icons2.default[name].toSvg(attrs);
- }
- exports2.default = toSvg;
- },
- 0: function(module3, exports2, __webpack_require__) {
- __webpack_require__("./node_modules/core-js/es/array/from.js");
- module3.exports = __webpack_require__("./src/index.js");
- }
- });
- });
- }
-});
-
-// main.ts
-__export(exports, {
- default: () => WeatherPlugin
-});
-var import_obsidian = __toModule(require("obsidian"));
-var import_feather_icons = __toModule(require_feather());
-var DEFAULT_SETTINGS = {
- source: "not-selected",
- cacheSeconds: 300,
- addRibbon: true
-};
-var selectedIcon = import_feather_icons.default.icons["sun"].toSvg({
- width: 100,
- height: 100
-});
-var isEmptyObj = (obj) => {
- return obj && Object.keys(obj).length === 0 && Object.getPrototypeOf(obj) === Object.prototype;
-};
-var WeatherPlugin = class extends import_obsidian.Plugin {
- onload() {
- return __async(this, null, function* () {
- console.log("loading WeatherPlugin");
- yield this.loadSettings();
- this.cachedPrevCall = {};
- this.weatherRibbon = void 0;
- this.commandEnabled = false;
- (0, import_obsidian.addIcon)("weather", selectedIcon);
- if (this.settings.source !== "not-selected") {
- this.addWeatherCommand();
- }
- if (this.settings.addRibbon) {
- yield this.addWeatherRibbon();
- }
- this.addSettingTab(new WeatherSettingTab(this.app, this));
- });
- }
- onunload() {
- console.log("unloading WeatherPlugin");
- }
- loadSettings() {
- return __async(this, null, function* () {
- this.settings = Object.assign({}, DEFAULT_SETTINGS, yield this.loadData());
- });
- }
- saveSettings() {
- return __async(this, null, function* () {
- yield this.saveData(this.settings);
- });
- }
- getEditor() {
- const leaf = this.app.workspace.activeLeaf;
- if (leaf !== void 0 && leaf !== null) {
- const view = leaf.view;
- if (view !== void 0 && view !== null) {
- const editor = view.editor;
- return editor;
- }
- }
- return void 0;
- }
- addWeatherRibbon() {
- if (this.weatherRibbon !== void 0) {
- return;
- }
- if (this.settings.source === "not-selected") {
- return;
- }
- this.weatherRibbon = this.addRibbonIcon("weather", "Insert Weather", (event) => __async(this, null, function* () {
- const editor = this.getEditor();
- if (editor === void 0) {
- new import_obsidian.Notice("No active editor, no output.");
- return;
- }
- const k = new import_obsidian.Notice("Fetching weather...");
- try {
- const weatherInfo = yield fetchWeather(this.settings.source, this.settings.cacheSeconds, this.cachedPrevCall);
- k.hide();
- editor.replaceRange(weatherInfo.info, editor.getCursor());
- } catch (e) {
- console.error(e);
- new import_obsidian.Notice("Something goes wrong while fetching weather info.");
- }
- }));
- }
- removeWeatherRibbon() {
- if (this.weatherRibbon === void 0) {
- return;
- }
- this.weatherRibbon.detach();
- this.weatherRibbon = void 0;
- }
- addWeatherCommand() {
- if (this.commandEnabled) {
- return;
- }
- this.addCommand({
- id: "weather-insert",
- name: "Insert current weather",
- icon: "weather",
- editorCallback: (editor, view) => __async(this, null, function* () {
- const k = new import_obsidian.Notice("Fetching weather...");
- try {
- const weatherInfo = yield fetchWeather(this.settings.source, this.settings.cacheSeconds, this.cachedPrevCall);
- k.hide();
- editor.replaceRange(weatherInfo.info, editor.getCursor());
- } catch (e) {
- console.error(e);
- new import_obsidian.Notice("Something goes wrong while fetching weather info.");
- }
- })
- });
- this.addCommand({
- id: "weather-output-cache",
- name: "Output current cached weather info. For debugging purposes.",
- editorCallback: (editor, view) => __async(this, null, function* () {
- if (this.cachedPrevCall === void 0 || isEmptyObj(this.cachedPrevCall)) {
- new import_obsidian.Notice("No cached weather info, no output.");
- } else {
- const outputCode = "\n```json\n" + JSON.stringify(this.cachedPrevCall, null, 2) + "\n```\n";
- editor.replaceRange(outputCode, editor.getCursor());
- }
- })
- });
- this.commandEnabled = true;
- }
- removeWeatherCommand() {
- if (!this.commandEnabled) {
- return;
- }
- this.app.commands.removeCommand(`${this.manifest.id}:weather-insert`);
- this.app.commands.removeCommand(`${this.manifest.id}:weather-output-cache`);
- this.commandEnabled = false;
- }
-};
-var fetchWeather = (source, cacheSeconds, cachedPrevCall) => __async(void 0, null, function* () {
- const currTimestampMs = Date.now();
- if (cacheSeconds !== void 0 && cachedPrevCall !== void 0 && source in cachedPrevCall) {
- const cached = cachedPrevCall[source];
- if (currTimestampMs <= cached.timestampInMs + cacheSeconds * 1e3) {
- return cached;
- } else {
- delete cachedPrevCall[source];
- }
- }
- if (source === "wttr") {
- const res1 = yield fetch("https://wttr.in/?format=4");
- const res2 = yield res1.text();
- const newItem = {
- source,
- timestampInMs: currTimestampMs,
- info: res2
- };
- cachedPrevCall[source] = newItem;
- return newItem;
- } else if (source === "openweathermap") {
- throw Error(`not implemented for ${source} yet!`);
- } else {
- throw Error(`not implemented for ${source} yet!`);
- }
-});
-var WeatherSettingTab = class extends import_obsidian.PluginSettingTab {
- constructor(app, plugin) {
- super(app, plugin);
- this.plugin = plugin;
- }
- display() {
- const { containerEl } = this;
- containerEl.empty();
- containerEl.createEl("h1", { text: `${this.plugin.manifest.name}` });
- new import_obsidian.Setting(containerEl).setName("Data Provider").setDesc(createFragment((frag) => {
- frag.createEl("span", {
- text: "By selecting any third-party data provider, you agree to that provider's privacy policy and terms of use, and you also agree and consent that this plugin sends requests to the selected data provider to fetch the weather data, and stores some necessary information and login credentials locally."
- });
- })).addDropdown((dropdown) => {
- dropdown.addOption("not-selected", "(no provider selected)");
- dropdown.addOption("wttr", "https://wttr.in/");
- dropdown.setValue(this.plugin.settings.source).onChange((val) => __async(this, null, function* () {
- this.plugin.settings.source = val;
- yield this.plugin.saveSettings();
- if (val === "not-selected") {
- this.plugin.removeWeatherCommand();
- this.plugin.removeWeatherRibbon();
- } else {
- this.plugin.addWeatherCommand();
- this.plugin.addWeatherRibbon();
- }
- }));
- });
- new import_obsidian.Setting(containerEl).setName("Cache Time").setDesc("After one call of weather api, the result will be cached for some minutes locally.").addDropdown((dropdown) => {
- dropdown.addOption("300", "5 minutes");
- dropdown.addOption("600", "10 minutes");
- dropdown.setValue(`${this.plugin.settings.cacheSeconds}`).onChange((val) => __async(this, null, function* () {
- this.plugin.settings.cacheSeconds = parseInt(val);
- yield this.plugin.saveSettings();
- }));
- });
- new import_obsidian.Setting(containerEl).setName("Add Ribbon").setDesc("Add sidebar ribbon or not?").addToggle((toggle) => {
- toggle.setValue(this.plugin.settings.addRibbon).onChange((val) => __async(this, null, function* () {
- this.plugin.settings.addRibbon = val;
- yield this.plugin.saveSettings();
- if (val) {
- this.plugin.addWeatherRibbon();
- } else {
- this.plugin.removeWeatherRibbon();
- }
- }));
- });
- containerEl.createEl("h2", { text: "License" });
- const licenseDiv = containerEl.createEl("div");
- licenseDiv.createEl("p", {
- text: "The source code of the plugin is released under Apache-2 license. See the repo for more information:"
- });
- licenseDiv.createEl("a", {
- text: this.plugin.manifest.authorUrl,
- href: this.plugin.manifest.authorUrl
- });
- }
-};
-/*!
- Copyright (c) 2016 Jed Watson.
- Licensed under the MIT License (MIT), see
- http://jedwatson.github.io/classnames
-*/
diff --git a/.obsidian/plugins/weather-fetcher/manifest.json b/.obsidian/plugins/weather-fetcher/manifest.json
deleted file mode 100644
index e6f786fd..00000000
--- a/.obsidian/plugins/weather-fetcher/manifest.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "id": "weather-fetcher",
- "name": "Weather Fetcher",
- "version": "0.0.3",
- "minAppVersion": "0.12.0",
- "description": "Fetch and insert current weather into the editor of Obsidian.",
- "author": "fyears",
- "authorUrl": "https://github.com/fyears/obsidian-weather",
- "isDesktopOnly": false
-}
diff --git a/.obsidian/plugins/weather-fetcher/styles.css b/.obsidian/plugins/weather-fetcher/styles.css
deleted file mode 100644
index 58ee42cd..00000000
--- a/.obsidian/plugins/weather-fetcher/styles.css
+++ /dev/null
@@ -1,3 +0,0 @@
-/*
-body {
-} */
diff --git a/.obsidian/workspace b/.obsidian/workspace
index 8c71c309..a8418684 100644
--- a/.obsidian/workspace
+++ b/.obsidian/workspace
@@ -4,7 +4,7 @@
"type": "split",
"children": [
{
- "id": "d8b00c5a903cacfe",
+ "id": "6efa9d8ed8367f46",
"type": "leaf",
"state": {
"type": "markdown",
@@ -151,17 +151,17 @@
],
"currentTab": 2
},
- "active": "d8b00c5a903cacfe",
+ "active": "6efa9d8ed8367f46",
"lastOpenFiles": [
- "01.02 Home/Cinematheque.md",
- "01.02 Home/@Main Dashboard.md",
- "00.01 Admin/Calendars/2022-08-21.md",
- "02.01 London/@Restaurants London.md",
- "00.03 News/A Dad Took Photos of His Naked Toddler for the Doctor. Google Flagged Him as a Criminal..md",
- "01.02 Home/@Shopping list.md",
- "00.03 News/“Game of Thrones” v “Lord of the Rings” a tale of old v new Hollywood.md",
- "00.03 News/Donald Trump and the Sweepstakes Scammers.md",
- "00.03 News/The century of climate migration why we need to plan for the great upheaval.md",
- "00.03 News/“Republicans Buy Sneakers Too”.md"
+ "00.01 Admin/Templates/Template Place.md",
+ "03.02 Travels/Nimes.md",
+ "03.02 Travels/Marseille.md",
+ "03.02 Travels/Arles.md",
+ "03.02 Travels/Avignon.md",
+ "03.02 Travels/@France.md",
+ "03.02 Travels/@Bahrein.md",
+ "03.02 Travels/@Dubaï.md",
+ "00.01 Admin/Calendars/2022-08-23.md",
+ "01.02 Home/@Main Dashboard.md"
]
}
\ No newline at end of file
diff --git a/00.01 Admin/Calendars/2022-07-26.md b/00.01 Admin/Calendars/2022-07-26.md
index 08976f7b..d591b2f0 100644
--- a/00.01 Admin/Calendars/2022-07-26.md
+++ b/00.01 Admin/Calendars/2022-07-26.md
@@ -86,6 +86,7 @@ This section does serve for quick memos.
+- [[Polo Park Zürich|Stick & Ball]] for 1st time in 2 years
%% ### %%
diff --git a/00.01 Admin/Calendars/2022-08-03.md b/00.01 Admin/Calendars/2022-08-03.md
index 897555cd..8a280c40 100644
--- a/00.01 Admin/Calendars/2022-08-03.md
+++ b/00.01 Admin/Calendars/2022-08-03.md
@@ -86,6 +86,7 @@ This section does serve for quick memos.
+- [[Polo Park Zürich|Stick & Ball]]
%% ### %%
diff --git a/00.01 Admin/Calendars/2022-08-09.md b/00.01 Admin/Calendars/2022-08-09.md
index f1ddfc42..127d53b2 100644
--- a/00.01 Admin/Calendars/2022-08-09.md
+++ b/00.01 Admin/Calendars/2022-08-09.md
@@ -86,6 +86,7 @@ This section does serve for quick memos.
+- [[Polo Park Zürich|Stick & Ball]]
%% ### %%
diff --git a/00.01 Admin/Calendars/2022-08-18.md b/00.01 Admin/Calendars/2022-08-18.md
index f22d6e51..07b7b221 100644
--- a/00.01 Admin/Calendars/2022-08-18.md
+++ b/00.01 Admin/Calendars/2022-08-18.md
@@ -81,6 +81,7 @@ This section does serve for quick memos.
+- [[Polo Park Zürich|Stick & Ball]]
%% ### %%
diff --git a/00.01 Admin/Calendars/2022-08-20.md b/00.01 Admin/Calendars/2022-08-20.md
index 9061e554..5b051acc 100644
--- a/00.01 Admin/Calendars/2022-08-20.md
+++ b/00.01 Admin/Calendars/2022-08-20.md
@@ -85,6 +85,7 @@ This section does serve for quick memos.
%% ### %%
- 19:12 Fin du livre [[La promesse de l'aube]]
+- Started [[Game of Thrones (2011–2019)]] with [[MRCK|Meggi-mo]]
---
diff --git a/00.01 Admin/Calendars/2022-08-21.md b/00.01 Admin/Calendars/2022-08-21.md
index 8df45b34..365691a0 100644
--- a/00.01 Admin/Calendars/2022-08-21.md
+++ b/00.01 Admin/Calendars/2022-08-21.md
@@ -13,9 +13,9 @@ Stress: 25
FrontHeadBar: 5
EarHeadBar: 30
BackHeadBar: 20
-Water: 2.16
+Water: 3.66
Coffee: 3
-Steps:
+Steps: 10028
Ski:
Riding:
Racket:
@@ -85,6 +85,7 @@ This section does serve for quick memos.
%% ### %%
- [ ] 09:57 :boot: [[@Lifestyle|Lifestyle]], [[@Sport Zürich|Sport in Zürich]], [[2022-08-21|Memo]]: pick up riding boot from cobbler 📆2022-09-01 ^otnsxe
+- 20:02 [[Game of Thrones (2011–2019)|Game of Thrones]] with [[MRCK|Meggi-mo]]
---
diff --git a/00.01 Admin/Calendars/2022-08-22.md b/00.01 Admin/Calendars/2022-08-22.md
new file mode 100644
index 00000000..946d31b4
--- /dev/null
+++ b/00.01 Admin/Calendars/2022-08-22.md
@@ -0,0 +1,115 @@
+---
+
+Date: 2022-08-22
+DocType: Note
+Hierarchy:
+TimeStamp:
+location:
+CollapseMetaTable: Yes
+Sleep: 8.5
+Happiness: 90
+Gratefulness: 90
+Stress: 25
+FrontHeadBar: 5
+EarHeadBar: 30
+BackHeadBar: 20
+Water: 4.83
+Coffee: 4
+Steps: 7385
+Ski:
+Riding:
+Racket:
+Football:
+Swim:
+
+---
+
+%% Parent:: [[@Life Admin]] %%
+
+---
+
+[[2022-08-21|<< 🗓 Previous ]] [[@Main Dashboard|Back]] [[2022-08-23|🗓 Next >>]]
+
+---
+
+
+
+```button
+name Record today's health
+type command
+action MetaEdit: Run MetaEdit
+id EditMetaData
+```
+^button-2022-08-22Edit
+
+```button
+name Save
+type command
+action Save current file
+id Save
+```
+^button-2022-08-22NSave
+
+
+
+# 2022-08-22
+
+
+
+> [!summary]+
+> Daily note for 2022-08-22
+
+
+
+```toc
+style: number
+```
+
+
+
+---
+
+
+
+### Memos
+
+
+
+#### Memos
+
+This section does serve for quick memos.
+
+
+
+
+%% ### %%
+
+- [ ] 16:14 :ring: [[@life admin|Life]], [[MRCK|Meggi-mo]]: find a ring 📆2023-06-30
+- 19:58 [[Game of Thrones (2011–2019)|Game of Thrones]] with [[MRCK|Meggi-mo]]
+
+---
+
+
+
+### Notes
+
+
+
+Loret ipsum
+
+
+
+---
+
+
+
+### Linked activity
+
+
+
+```dataview
+Table from [[2022-08-22]]
+```
+
+
+
\ No newline at end of file
diff --git a/00.01 Admin/Calendars/2022-08-23.md b/00.01 Admin/Calendars/2022-08-23.md
new file mode 100644
index 00000000..c5287c14
--- /dev/null
+++ b/00.01 Admin/Calendars/2022-08-23.md
@@ -0,0 +1,113 @@
+---
+
+Date: 2022-08-23
+DocType: Note
+Hierarchy:
+TimeStamp:
+location:
+CollapseMetaTable: Yes
+Sleep: 8
+Happiness: 90
+Gratefulness: 90
+Stress: 25
+FrontHeadBar: 5
+EarHeadBar: 30
+BackHeadBar: 20
+Water: 3.66
+Coffee: 5
+Steps:
+Ski:
+Riding:
+Racket:
+Football:
+Swim:
+
+---
+
+%% Parent:: [[@Life Admin]] %%
+
+---
+
+[[2022-08-22|<< 🗓 Previous ]] [[@Main Dashboard|Back]] [[2022-08-24|🗓 Next >>]]
+
+---
+
+
+
+```button
+name Record today's health
+type command
+action MetaEdit: Run MetaEdit
+id EditMetaData
+```
+^button-2022-08-23Edit
+
+```button
+name Save
+type command
+action Save current file
+id Save
+```
+^button-2022-08-23NSave
+
+
+
+# 2022-08-23
+
+
+
+> [!summary]+
+> Daily note for 2022-08-23
+
+
+
+```toc
+style: number
+```
+
+
+
+---
+
+
+
+### Memos
+
+
+
+#### Memos
+
+This section does serve for quick memos.
+
+
+
+%% ### %%
+
+- [ ] 13:52 :haircut_man: [[2022-08-23|Memo]], [[@Lifestyle|Lifestyle]]: book a hair appointment 📆2022-08-27
+
+---
+
+
+
+### Notes
+
+
+
+Loret ipsum
+
+
+
+---
+
+
+
+### Linked activity
+
+
+
+```dataview
+Table from [[2022-08-23]]
+```
+
+
+
\ No newline at end of file
diff --git a/00.01 Admin/Calendars/2022-09-13 Diner Lorena.md b/00.01 Admin/Calendars/2022-09-13 Diner Lorena.md
new file mode 100644
index 00000000..346df4cb
--- /dev/null
+++ b/00.01 Admin/Calendars/2022-09-13 Diner Lorena.md
@@ -0,0 +1,9 @@
+---
+title: Diner Lorena
+allDay: false
+startTime: 20:00
+endTime: 23:30
+date: 2022-09-13
+---
+
+Diner à Zug avec Lorena [[2022-09-13|ce jour]].
\ No newline at end of file
diff --git a/00.01 Admin/Calendars/2023-02-11 Mariage Eloi.md b/00.01 Admin/Calendars/2023-02-11 Mariage Eloi.md
new file mode 100644
index 00000000..c4252075
--- /dev/null
+++ b/00.01 Admin/Calendars/2023-02-11 Mariage Eloi.md
@@ -0,0 +1,8 @@
+---
+title: Mariage Eloi
+allDay: true
+date: 2023-02-11
+endDate: 2023-02-12
+---
+
+Mariage d’[[Eloi de Villeneuve|Éloi]] avec [[Zélie]] en Bretagne (Rennes) [[2023-02-11|ce jour]].
\ No newline at end of file
diff --git a/00.01 Admin/Templates/Template Place.md b/00.01 Admin/Templates/Template Place.md
index d6e47d8a..7f562724 100644
--- a/00.01 Admin/Templates/Template Place.md
+++ b/00.01 Admin/Templates/Template Place.md
@@ -90,5 +90,21 @@ United Kingdom
Loret ipsum
+
+
+---
+
+
+
+### Other activity
+
+
+
+```dataview
+Table DocType as "Doc type" from [[<% tp.file.title %>]]
+where !contains(file.name, "@@Travel")
+sort DocType asc
+```
+
\ No newline at end of file
diff --git a/00.03 News/A Dad Took Photos of His Naked Toddler for the Doctor. Google Flagged Him as a Criminal..md b/00.03 News/A Dad Took Photos of His Naked Toddler for the Doctor. Google Flagged Him as a Criminal..md
index da8234e6..a07a672d 100644
--- a/00.03 News/A Dad Took Photos of His Naked Toddler for the Doctor. Google Flagged Him as a Criminal..md
+++ b/00.03 News/A Dad Took Photos of His Naked Toddler for the Doctor. Google Flagged Him as a Criminal..md
@@ -14,7 +14,7 @@ CollapseMetaTable: Yes
---
Parent:: [[@News|News]]
-Read:: No
+Read:: [[2022-08-21]]
---
diff --git a/00.03 News/Donald Trump and the Sweepstakes Scammers.md b/00.03 News/Donald Trump and the Sweepstakes Scammers.md
index 751aac1a..1a313e1d 100644
--- a/00.03 News/Donald Trump and the Sweepstakes Scammers.md
+++ b/00.03 News/Donald Trump and the Sweepstakes Scammers.md
@@ -12,7 +12,7 @@ CollapseMetaTable: Yes
---
Parent:: [[@News|News]]
-Read:: No
+Read:: [[2022-08-22]]
---
diff --git a/00.03 News/The messages that survived civilisation's collapse.md b/00.03 News/The messages that survived civilisation's collapse.md
new file mode 100644
index 00000000..312d6313
--- /dev/null
+++ b/00.03 News/The messages that survived civilisation's collapse.md
@@ -0,0 +1,225 @@
+---
+
+Tag: ["History", "Simerian", "Writing"]
+Date: 2022-08-22
+DocType: "WebClipping"
+Hierarchy:
+TimeStamp: 2022-08-22
+Link: https://www.bbc.com/future/article/20220818-how-to-write-a-message-to-the-future
+location:
+CollapseMetaTable: Yes
+
+---
+
+Parent:: [[@News|News]]
+Read:: [[2022-08-22]]
+
+---
+
+
+
+```button
+name Save
+type command
+action Save current file
+id Save
+```
+^button-ThemessagesthatsurvivedcivilisationscollapseNSave
+
+
+
+# The messages that survived civilisation's collapse
+
+The messages that survived civilisation's collapse
+
+(Image credit: Alamy)
+
+![A relief of scribes taking notes in ancient Nineveh (Credit: Alamy)](https://ychef.files.bbci.co.uk/976x549/p0cv4cmw.jpg "A relief of scribes taking notes in ancient Nineveh (Credit: Alamy)")
+
+The Sumerians, Maya and other ancient cultures created texts that have lasted hundreds and even thousands of years. Here's what they can teach us about crafting an immortal message.
+
+M
+
+More than 2,000 years ago, in a temple in the city of Borsippa in ancient Mesopotamia, in what is now modern-day Iraq, [a student was doing his homework](https://cdli.ucla.edu/search/search_results.php?SearchMode=Text&ObjectID=P365247). His name was Nabu-kusurshu, and he was training to be a temple brewer. His duties involved [brewing beer for religious offerings](https://www.uclpress.co.uk/products/125022), but also, learning to keep administrative records on clay tablets in cuneiform script, and preserving ancient hymns by [making copies of worn-out tablets](https://www.degruyter.com/document/doi/10.1515/9781501509810/html?lang=de). These daily tasks, and his devotion to beer, writing and knowledge, made him part of an extraordinarily resilient literary legacy.
+
+Cuneiform had already been [around for roughly 3,000 years](https://cdli.ox.ac.uk/wiki/doku.php?id=proto-cuneiform) by the time Nabu-kusurshu picked up his reed stylus. It was invented by the Sumerians, who initially used it to record rations of food – [and indeed, beer](https://www.britishmuseum.org/collection/object/W_1989-0130-4) – paid to workers or delivered to temples. Over time, the Sumerian texts became more complex, recording beautiful myths and songs – including one celebrating the goddess of brewing, Ninkasi, and her skilled use of ["the fermenting vat, which makes a pleasant sound"](https://etcsl.orinst.ox.ac.uk/cgi-bin/etcsl.cgi?text=t.4.23.1). When Sumerian gradually slid out of common use, and was replaced by the more modern Akkadian, scribes cleverly wrote long lists of signs in both languages, essentially creating ancient dictionaries, to make sure the wisdom of the oldest tablets would always be understood.
+
+Nabu-kusurshu's generation, who would have spoken Akkadian or maybe Aramaic in everyday life, was among the last to use the cuneiform script. But he probably assumed that he was just one ordinary young writer in a long line of writers, preserving cuneiform for many more generations, under the benevolent eye of Nabu, the [god of writing](https://www.uclpress.co.uk/products/125022) and ["scribe of the universe"](https://discovery.ucl.ac.uk/id/eprint/10085697/1/Ancient-Knowledge-Networks.pdf). He faithfully copied the old tablets, noting down for example that a [Sumerian sign pronounced "u", could mean marriage gift, burglar, or buttocks](http://oracc.museum.upenn.edu/dcclt/P365247). He wrote on the tablets that he copied them "for his own study", perhaps as practice or scholarship, and placed them in the temple as an offering.
+
+"He's learning how to write, and learning these lists, alongside other things, and then dedicating his work to the god Nabu and the temple," says Jay Crisostomo, a professor of ancient Near Eastern civilisations and languages at the University of Michigan, who has studied Nabu-kusurshu's tablets in depth.
+
+It was these humble lists, quietly written in the shadow of a giant ziggurat – a pyramid-shaped stepped temple tower – that would earn Nabu-kusurshu immortality.
+
+![A bilingual cuneiform tablet, listing Sumerian and Akkadian words. Scribes wrote such lists to ensure that the older Sumerian tablets would always be understood (Credit: Alamy)](https://ychef.files.bbci.co.uk/976x549/p0cv40nc.jpg "A bilingual cuneiform tablet, listing Sumerian and Akkadian words. Scribes wrote such lists to ensure that the older Sumerian tablets would always be understood (Credit: Alamy)")
+
+A bilingual cuneiform tablet, listing Sumerian and Akkadian words. Scribes wrote such lists to ensure that the older Sumerian tablets would always be understood (Credit: Alamy)
+
+Many of us may daydream about writing a message that can be read in thousands of years' time, be it to share [wonderful poetry with future generations](https://www.bbc.com/future/article/20220630-the-norwegian-library-with-unreadable-books), or [warn them about the hazards lurking in nuclear waste](https://www.bbc.com/future/article/20200731-how-to-build-a-nuclear-warning-for-10000-years-time).
+
+What's easy to forget is that this is not a mere thought experiment. People have successfully crafted immortal messages – or at least, very long-lasting ones – in the past.
+
+Some of them, like Nabu-kusurshu, even left us a key to entire civilisations.
+
+In the 19th Century, scholars were racing to decipher a mysterious language found on cracked, charred tablets dug up from the sand-covered ruins of Mesopotamian temples and palaces: Sumerian, which had been thoroughly lost and forgotten.
+
+What made the challenge particularly tricky is that Sumerian is not related to any other known language. But the scholars had recently deciphered Akkadian, thanks to its link to surviving languages such as Arabic and Hebrew. And they had also found the ancient scribes' Sumerian-Akkadian clay lists, which they could use as a dictionary.
+
+Among them, one set of tablets stood out for its pristine condition and ["distinctive fine script":](https://www.jstor.org/stable/4200255?searchText=borsippa&searchUri=%2Faction%2FdoBasicSearch%3FQuery%3Dborsippa%26so%3Drel&ab_segments=0%2Fbasic_search_gsv2%2Fcontrol&refreqid=fastly-default%3Ae6f92cf227794f3e088ad4bca60225ee) Nabu-kusurshu's tablets. They were found next to some broken pillars and bricks when archeologists opened the long-buried rooms of the temple at Borsippa around 1880.
+
+"A lot of what we know about Sumerian is via this one man, Nabu-kusurshu," says Crisostomo. He believes the young scribe, who would have been in his late teens or early 20s, produced nearly a quarter of all known copies of a bilingual sign list that proved crucial in the decipherment.
+
+To give you an idea of the size of his impact: these lists helped unlock Sumerian records spanning three millennia of history, including the Sumerians' pioneering use of the wheel, and the 60-minute hour. Altogether, across different languages, there are [more than a million cuneiform texts from the ancient Near East](https://halshs.archives-ouvertes.fr/halshs-03424439) – and we can read them thanks to eternal clues left by ordinary scribes like Nabu-kusurshu.
+
+What helped their messages survive, and stay meaningful, over such a long period of time? And how might we use that knowledge to craft our own messages to the future?
+
+![A tablet inscribed with the Linear B script, used on Crete and the Greek mainland before the arrival of the alphabet (Credit: Ashmolean Museum/Heritage Images/Getty Images)](https://ychef.files.bbci.co.uk/976x549/p0cmdw3b.jpg "A tablet inscribed with the Linear B script, used on Crete and the Greek mainland before the arrival of the alphabet (Credit: Ashmolean Museum/Heritage Images/Getty Images)")
+
+A tablet inscribed with the Linear B script, used on Crete and the Greek mainland before the arrival of the alphabet (Credit: Ashmolean Museum/Heritage Images/Getty Images)
+
+### The Immortality Project
+
+This article is part of [The Immortality Project](https://www.bbc.com/future/columns/the-immortality-project), a special series to celebrate BBC Future's 10th birthday this year – and the wider BBC's Centenary – by exploring what it takes to have a legacy that lasts not just decades but millennia. From long-lived sandwiches to venerable knowledge, art and even religions, we'd like to know how some things survive for thousands or even millions of years, and use this insight to look at whether it is possible to leave a mark on the world that extends into the deep future.
+
+Most thoughts and ideas expressed by humans barely survive the present moment. History is strewn with references to those that vanished – not just individual messages, but entire languages, and with them, the memories of the societies that spoke them. Who remembers Gutian, a language of the ancient world? Thousands of years ago, [someone gave a Gutian translator a payment of beer](https://books.google.co.uk/books?id=59kSEAAAQBAJ&pg=PA36&lpg=PA36&dq=Gutian+translator+(eme-bal+gu-ti-um)&source=bl&ots=pTIlcZS1yR&sig=ACfU3U1eaOvPF_hSTexQs_jwpsm_A_he9A&hl=de&sa=X&ved=2ahUKEwjW24Weu-L4AhXJEsAKHctJDdEQ6AF6BAgcEAM#v=onepage&q=Gutian%20translator%20(eme-bal%20gu-ti-um)&f=false), according to a Sumerian clay receipt. And that's pretty much all we know about Gutian. Whatever the Gutian people felt, whatever they wished to tell the world, is lost. All that remains of them are [some rather unflattering descriptions by the Sumerians](https://cdli.ucla.edu/search/archival_view.php?ObjectID=P469682).
+
+On the other hand, there are messages that outlasted centuries of warfare, invasions, and natural disasters. Even though [the Spanish destroyed mountains of Maya books](https://books.google.co.uk/books/about/Yucatan_Before_and_After_the_Conquest.html?id=92loAAAAMAAJ&redir_esc=y), the script survived in [rare bark manuscripts](https://www.slub-dresden.de/en/explore/manuscripts/the-dresden-maya-codex) and on stone monuments, extending a lifeline to [ancient myths and prophecies](https://www.slub-dresden.de/en/explore/manuscripts/the-dresden-maya-codex/content).
+
+What's the secret of such extrordinary literary longevity? I put that question to three experts on some of on the world's oldest languages and scripts, and also asked them how they would write their own message to the future, based on their insights. All of them mentioned certain material aspects, of course – clay and stone are more durable than paper or digital recording methods. The right climate and environment help with the preservation: cuneiform tablets were in fact often baked and hardened by the fire of burning cities under attack. But the experts' most compelling insights were about the writers themselves.
+
+When talking about writing from the distant past, it can be tempting to portray it as some sort of accidental pile of historical debris. Nabu-kusurshu's legacy, for example, may seem like a fluke of history: the brewer's tablets that turned out to be a kind of Rosetta Stone. But according to the scholars, it's not all due to luck and coincidence. Instead, there are certain habits, values and decisions that may not exactly guarantee literary immortality – but at least, improve its chances.
+
+Of course, the best way to test these factors would be to run a controlled experiment, where different scripts are exposed to challenges – say, the collapse of civilisation – to see which survives. We don't have anything quite like that in history. But we have something that comes a bit close.
+
+![In Greece, writing died out after disaster struck the literate elite around 1200 BC – and it was then reintroduced much later (Credit: Nikolas Kokovlis/NurPhoto/Getty Images)](https://ychef.files.bbci.co.uk/976x549/p0cv19qr.jpg "In Greece, writing died out after disaster struck the literate elite around 1200 BC – and it was then reintroduced much later (Credit: Nikolas Kokovlis/NurPhoto/Getty Images)")
+
+In Greece, writing died out after disaster struck the literate elite around 1200 BC – and it was then reintroduced much later (Credit: Nikolas Kokovlis/NurPhoto/Getty Images)
+
+**The people who forgot how to write**
+
+Picture two islands in the Bronze-Age Mediterranean, with sheep peacefully grazing amid olive groves. On both islands, people are busy at work writing on slabs of clay. One island is Cyprus, close to the Near Eastern coast. The other is Crete. On Crete, and on the Greek mainland, an elite called [the Mycenaeans are in charge](https://www.metmuseum.org/toah/hd/myce/hd_myce.htm). They write in Greek, using a script called Linear B.
+
+Then, from around 1400BC, disaster strikes the Mycenaeans. First, their palace on Crete is destroyed. Some 200 years later, the palaces on the mainland are also destroyed.
+
+Cyprus is also hit by a catastrophe – historians are [still debating what exactly happened](https://press.princeton.edu/books/paperback/9780691208015/1177-bc). There's some sort of economic collapse, settlements are abandoned, new groups of people arrive from abroad. But even as life changes dramatically, the locals continue to write their script, and experiment with new ones, borrowing techniques from different literate cultures around them.
+
+On Crete and the Greek mainland, however, once the palaces are gone, writing stops. It dies out. Not just Linear B, but also the fundamental knowledge of literacy, just seems to vanish. It's as if an entire society forgets how to write.
+
+This is particularly striking given that Crete was [where Europe's oldest scripts](http://www.cambridgeblog.org/2020/08/aegean-linear-scripts-rethinking-the-relationship-between-linear-a-and-linear-b/) evolved, dating back to at least 1800BC. But that fine legacy is wiped out when the Mycenaean elite collapses.
+
+And when people in Greece begin to write again, centuries later, it's in a totally different script, the alphabet, imported from abroad. Their own, older tradition is lost forever.
+
+"In Greece, once you've lost the Mycenaean palaces, there just doesn't seem to be any literacy at all for a while," says Philippa Steele, a senior research associate in classics at the University of Cambridge, and an expert on the ancient scripts of Crete, Cyprus and Greece. "Between 1200 \[BC\] and around the 8th Century \[BC\], there's nothing as far as we can tell. While Cyprus remains literate throughout that whole period."
+
+What caused the difference?
+
+We can't say for sure, of course. But Steele believes that it may have to do with how the two communities treated the skill of writing.
+
+![Philippa Steele, an expert in ancient scripts at the University of Cambridge, holds her clay tablet with a message to the future (Credit: Philippa Steele)](https://ychef.files.bbci.co.uk/976x549/p0cmdwkb.jpg "Philippa Steele, an expert in ancient scripts at the University of Cambridge, holds her clay tablet with a message to the future (Credit: Philippa Steele)")
+
+Philippa Steele, an expert in ancient scripts at the University of Cambridge, holds her clay tablet with a message to the future (Credit: Philippa Steele)
+
+**Shared scribbles**
+
+On Cyprus, there is abundant archaeological evidence of what Steele calls "reflexes of literacy": scribbles by ordinary people who adapted writing to their own uses, [such as merchants marking their pots](https://classicalstudies.org/scs-blog/cassdonn/blog-dissertation-spotlight-signs-writing-writing-and-trade-late-bronze-age). This widespread, informal experimenting may have made writing more resilient, she suggests. Even after the destruction and upheaval, and the arrival of new people, the locals on Cyprus held on to their script, and wrote it on little clay figurines that they offered to their gods. Later on, they also wrote different scripts next to each other, for example pairing their own Cypriot syllabic script with Phoenician – which eventually [made decipherment easier](https://crewsproject.wordpress.com/2018/01/28/crews-display-the-idalion-bilingual/).
+
+But on Crete and the Greek mainland, Linear B never seeped out into the wider society, judging by the archaeological finds, Steele says. The Mycenaean scribes were anonymous, and their art was not particularly celebrated. "There are just zero depictions of people writing, and zero depictions of things that were involved in writing."
+
+Nor were there giant Linear B texts written across rock faces or palace walls, which might have reminded people that there was this valuable skill called writing. Instead, Linear B led a hidden life inside the palaces. And when the palaces fell, it had no other niche where it could survive. As Steele concludes: "If literacy is restricted, it might be easier for a writing system to die out if its context of use disappears." These insights from the past may help us solve pressing problems in the present, she argues, such as saving modern-day endangered writing systems.
+
+Linear B did have a second life, however. It [took scholars a long time to decipher it](https://repositories.lib.utexas.edu/handle/2152/15875), because it was not written alongside any surviving scripts. But they [eventually succeeded in the 1950s](https://www.classics.cam.ac.uk/research/projects/mycep/decipherment), and today, much of it can be read.
+
+I ask Steele how she would write an immortal message. She gets back to me not only with an answer, but with an actual message, in tablet form.
+
+It is made of clay, for durability, "which should ideally be fired", though she used air-dried modelling clay. It is multilingual, "so there is a better chance for at least one of the languages to still be spoken in the distant future – plus a multilingual message gives more clues for future decipherers than a monolingual message would". (Multilingual means several languages written side by side, as in the Rosetta Stone, or Nabu-kusurshu's tablets).
+
+She chose a simple message: "My name is Pippa Steele and I wrote this in Cambridge in the year 2022."
+
+With the help of friends, she wrote it in English, Spanish, Chinese and Arabic, since those are widely spoken languages globally, and are also all well-represented locally: "I could of course have added many others."
+
+![Mayan hieroglyphics in Palenque, Mexico (Credit: Diego Cupolo/NurPhoto via Getty Images)](https://ychef.files.bbci.co.uk/976x549/p0cmdz31.jpg "Mayan hieroglyphics in Palenque, Mexico (Credit: Diego Cupolo/NurPhoto via Getty Images)")
+
+Mayan hieroglyphics in Palenque, Mexico (Credit: Diego Cupolo/NurPhoto via Getty Images)
+
+**The Maya messages that want to be read**
+
+One lesson from ancient Crete and Cyprus might be that to write an everlasting message, it's a good idea to start with ensuring people can make sense of it in the present.
+
+As [those working in decipherment often point out](https://www.youtube.com/watch?v=PfYYraMgiBA), that was the original purpose of most scribes: to communicate. Ancient civilisations usually didn't intend to create an un-crackable code, quite the contrary.
+
+"A code exists so it stays secret and can only be read by certain groups," says Christian Prager, an expert on classic Mayan at Bonn University and part of a team compiling an [online database and dictionary](https://mayawoerterbuch.de/) of the script. "With the Maya script, which was so publicly present on stelae \[big inscribed stone pillars\] and buildings, it's the opposite. It was there to be understood."
+
+The Maya script was used for about 2,000 years, and Maya languages are still spoken in Mexico, Belize, Guatemala and Honduras. The earliest hieroglyphs date to about 250BC. People continued to write the script in secret [even after the Spanish conquest, into the late 17th Century](https://mayawoerterbuch.de/ueberblick-ueber-die-maya-schrift-2/) AD. Today, about 60% of the hieroglyphs are deciphered, enough to understand the gist of all the texts, Prager says.
+
+While the work on each sign can be slow and painstaking, modern scholars are assisted by long-dead Maya scribes, who added little markers to their signs to give a clue to their meaning. Recently, one of these markers – the one for "stone" – helped Prager and his colleagues figure out [the sign for "pecking a new stela"](https://mayawoerterbuch.de/pecking-a-new-stela-a-reading-proposal-for-sign-1927st-as-toj/). The link to living Maya languages has also played a huge part in the decipherment.
+
+Even though only a few people in the Maya world knew how to write, Prager believes a relatively wide range of people would have been able to grasp basic messages, such as a portrait of a king and his name displayed on a stela in a market square: "I am sure they were able to say, this is the name of the king. Because when we teach courses in the Maya script today, within three days, you can read the Maya script. Maybe not the fine linguistic details, but you can recognise sequences of signs."
+
+Carving your name on a big stone, ideally next to a self-portrait, seems to be a truly timeless, enduringly meaningful format, not just in the Maya world: [king's names](https://blog.britishmuseum.org/everything-you-ever-wanted-to-know-about-the-rosetta-stone/) and [the word "king"](https://www.jstor.org/stable/3135348?seq=1#metadata_info_tab_contents) are often [the first to be figured out](https://journals.openedition.org/cchyp/500?lang=en#tocto1n1) in undeciphered scripts.
+
+![A 12th-Century Maya manuscript housed at the Saxon State Library in Dresden, Germany (Credit: Joern Haufe/Getty Images)](https://ychef.files.bbci.co.uk/976x549/p0cmdwwq.jpg "A 12th-Century Maya manuscript housed at the Saxon State Library in Dresden, Germany (Credit: Joern Haufe/Getty Images)")
+
+A 12th-Century Maya manuscript housed at the Saxon State Library in Dresden, Germany (Credit: Joern Haufe/Getty Images)
+
+**A living organism**
+
+The Maya script may not just be figuratively immortal, but literally so. For the Maya, it had a life of its own.
+
+"The script was an organism in itself," Prager says. "You can see it when you look at the hieroglyphs, there is something animated about them. The classic Maya saw many everyday objects as animated, including their script. Stelae were given individual names – that says a lot about how they were valued, and how much they were, and are, part of the culture." When a stela was no longer used, it was given funerary rites.
+
+These deeper beliefs have some useful practical consequences when it comes to reading classic Mayan today. Maya scribes kept the shape of the signs exactly the same from the earliest stone inscriptions to the last bark books, for example. It probably had to do with the scribes' desire "to use an unchanged writing system, just like their ancestors," Prager says. "It's astonishing, it's something you very rarely find \[among ancient scripts\]." Rather handily, it means that once you know the script, you can read Maya documents from all these different time periods.
+
+When I later ask Prager how he would write a message so that it can be read in thousands of years time, Prager responds with a Maya level of scale and ambition: "The message would have to be monumental and made of stone, to withstand the wind, weather and humans!"
+
+The Great Wall of China is the best example of an everlasting message, he says – even at the time it was built, it showed enemies the borders of the Chinese realm, and the political and economic power of those who built it.
+
+For his own message, he envisages "landscape-spanning, monumental buildings that can't be erased", inscribed with a text in all modern and ancient languages that is set into the mega-building every 100 metres. "One of those messages will outlast future catastrophes," he concludes.
+
+![A Neo-Assyrian relief of a man from Nimrud, northern Mesopotamia (Credit: Alamy)](https://ychef.files.bbci.co.uk/976x549/p0cmdvp1.jpg "A Neo-Assyrian relief of a man from Nimrud, northern Mesopotamia (Credit: Alamy)")
+
+A Neo-Assyrian relief of a man from Nimrud, northern Mesopotamia (Credit: Alamy)
+
+**The brewer's list**
+
+By the time Nabu-kusurshu, the young brewer of Borsippa, was working on his lists around 450BC, many of the languages that had once filled the Near East had already vanished, including once-mighty languages like [Hurrian](https://onlinelibrary.wiley.com/doi/abs/10.1002/9781119193814.ch11) and [Hittite](https://lrc.la.utexas.edu/eieol/hitol). Amorite, spoken by powerful nomad-kings in ancient Syria, and [mentioned in ancient letters as a highly useful language to learn](https://www.jstor.org/stable/23861408), disappeared with barely a written trace.
+
+And yet, Sumerian – arguably the most impractical of them all, once it had fallen out of daily use – lived on and on. From about 2000BC, "nobody spoke Sumerian, but they were still writing it. And that's part of my extreme fascination with this," says Crisostomo. "What made it continue?"
+
+The answer may lie in those very first cuneiform signs, pressed into clay by the Sumerians. From the start, writing was associated with the Sumerians, Crisostomo says. Over time, it kept that association with an ancient culture and its gods, cities and legends, and with the power that came with that.
+
+King after king used that association to legitimise their own rule, even if they had no Sumerian ancestry themselves. They composed Sumerian songs [p](https://etcsl.orinst.ox.ac.uk/index1.htm)[redicting their words would be treasured](https://etcsl.orinst.ox.ac.uk/index1.htm) by people "[in the distant future](https://etcsl.orinst.ox.ac.uk/section2/tr24202.htm)". By [collecting tablets, boasting of their Sumerian knowledge, commissioning scribes](http://oracc.museum.upenn.edu/asbp/rlasb/index.html), or being [portrayed with a stylus in their belt](https://crewsproject.wordpress.com/2018/12/06/assurbanipal-at-the-british-museum/), they too became part of that immortal lineage.
+
+"It's about claiming authority that goes all the way back to the beginnings of writing, and the beginnings of knowledge," says Crisostomo.
+
+![Young Iraqis play soccer in the shadow of the ruins of a ziggurat in Borsippa, Iraq (Credit: Mario Tama/Getty Images)](https://ychef.files.bbci.co.uk/976x549/p0cmdxp3.jpg "Young Iraqis play soccer in the shadow of the ruins of a ziggurat in Borsippa, Iraq (Credit: Mario Tama/Getty Images)")
+
+Young Iraqis play soccer in the shadow of the ruins of a ziggurat in Borsippa, Iraq (Credit: Mario Tama/Getty Images)
+
+That literary heritage ranged high and low, and included hymns and omens, but also, [very old drinking songs](https://etcsl.orinst.ox.ac.uk/section5/tr55a.htm). As in the Maya world, the link between writing and power was advertised through monumental inscriptions. Nabu-kusurshu's tablets were sustained and protected by an entire culture.
+
+But there was, perhaps, also an element of individual choice. Nabu-kusurshu appears to have taken pride in his writing, and taken care to perfect it, given how exceptionally neat it was.
+
+Crisostomo is scouring the world's museums for more of Nabu-kusurshu's tablets, of which about 24 have been found. He has studied every detail of the brewer's handwriting, from how he shaped his signs to how he spaced his lines. "It's things like that where you start to really feel like you know these people."
+
+Despite his own love for written language, Crisostomo says his message for the future would probably be an image – so that "it could transcend the need for language", and avoid the pitfalls of decipherment.
+
+It appears, then, that a good rule of thumb is to make your message to the future either gargantuan enough that it can't be ignored, or so small that it slips through history almost unnoticed, perhaps protected by its low profile. A visual or contextual cue seems to help, be it by adding a picture, or placing it somewhere relevant to its meaning – like a temple or monument. And the scholars appeared to find it obvious that it was better to use an existing language, than try to make up an artificial, future-proof one. After all, real languages have cultures to love and support them, providing future decipherers with a wealth of clues and meaning.
+
+In fact, cuneiform is experiencing a renaissance these days, as a [young generation of Iraqis learn and experiment with it](https://www.youtube.com/watch?v=3q4A_ro4XnQ). A similar spirit is infusing the Maya hieroglyphs with new life. [Native Maya speakers use it to make art](https://artsandculture.google.com/story/6wXRTHQhmdLGmA), and [put up new stelae](http://discovermam.org/2013/11/6-ajaw-18-kej-november-26-2013-two-stelae-two-maya-languages/) to commemorate important events.
+
+That human connection and fellowship, across vast stretches of time, perhaps forms the final step for an immortal message. As much effort as we may put into it, we can only trust that at the other end of the line, there'll be another person hearing our faint voice, and caring enough to listen.
+
+Crisostomo often remembers this when he works on ancient tablets, some marked by thumb-prints of long-dead scribes. "Sometimes you'll sit there and you put your thumb right in that same space, and you think, 'OK, maybe this person was holding this tablet just like this, 4,000 years ago, and they're holding it and they're writing it, and I'm sitting here, reading what they wrote.'"
+
+*\* Sophie Hardach is the author of* [*Languages Are Good For Us*](https://books.google.co.uk/books/about/Languages_Are_Good_For_Us.html?id=3YCpDwAAQBAJ&redir_esc=y)*, a book about strange and wonderful ways in which humans have used languages throughout history.*
+
+\--
+
+*Join one million Future fans by liking us on* [***Facebook***](https://www.facebook.com/BBCFuture/)*, or follow us on* [***Twitter***](https://twitter.com/BBC_Future) *or* [***Instagram***](https://www.instagram.com/bbcfuture_official/)*.*
+
+*If you liked this story,* [***sign up for the weekly bbc.com features newsletter***](http://pages.emails.bbc.com/subscribe/?ocid=fut.bbc.email.we.email-signup)*, called "The Essential List" – a handpicked selection of stories from BBC* [***Future***](https://www.bbc.com/future/)*,* [***Culture***](https://www.bbc.com/culture/)*,* [***Worklife***](https://www.bbc.com/worklife/)*,* [***Travel***](https://www.bbc.com/travel/) *and* [***Reel***](https://www.bbc.com/reel) *delivered to your inbox every Friday.*
+
+
+
+
+---
+`$= dv.el('center', 'Source: ' + dv.current().Link + ', ' + dv.current().Date.toLocaleString("fr-FR"))`
\ No newline at end of file
diff --git a/00.03 News/Welcome to Philip K. Dick’s dystopia.md b/00.03 News/Welcome to Philip K. Dick’s dystopia.md
index c36a61f0..714d1358 100644
--- a/00.03 News/Welcome to Philip K. Dick’s dystopia.md
+++ b/00.03 News/Welcome to Philip K. Dick’s dystopia.md
@@ -12,7 +12,7 @@ CollapseMetaTable: Yes
---
Parent:: [[@News|News]]
-Read:: No
+Read:: [[2022-08-21]]
---
diff --git a/00.03 News/“Game of Thrones” v “Lord of the Rings” a tale of old v new Hollywood.md b/00.03 News/“Game of Thrones” v “Lord of the Rings” a tale of old v new Hollywood.md
index 915d9d2e..12af9727 100644
--- a/00.03 News/“Game of Thrones” v “Lord of the Rings” a tale of old v new Hollywood.md
+++ b/00.03 News/“Game of Thrones” v “Lord of the Rings” a tale of old v new Hollywood.md
@@ -12,7 +12,7 @@ CollapseMetaTable: Yes
---
Parent:: [[@News|News]]
-Read:: No
+Read:: [[2022-08-22]]
---
diff --git a/01.02 Home/Cinematheque.md b/01.02 Home/Cinematheque.md
index 2541ceb6..f3ba32e2 100644
--- a/01.02 Home/Cinematheque.md
+++ b/01.02 Home/Cinematheque.md
@@ -12,7 +12,7 @@ CollapseMetaTable: Yes
TVShow:
Name: "Game of Thrones"
Season: 1
- Episode: 3
+ Episode: 6
Source: Internal
---
diff --git a/01.02 Home/Household.md b/01.02 Home/Household.md
index ebef3f6f..fce87b1c 100644
--- a/01.02 Home/Household.md
+++ b/01.02 Home/Household.md
@@ -87,7 +87,8 @@ This section on different household obligations.
- [x] [[Household]]: *Paper* recycling collection 🔁 every 2 weeks on Tuesday 📅 2022-02-15 ✅ 2022-02-14
- [x] [[Household]]: *Paper* recycling collection 🔁 every 2 weeks on Tuesday 📅 2022-02-01 ✅ 2022-01-31
- [x] [[Household]]: *Paper* recycling collection 🔁 every 2 weeks on Tuesday 📅 2022-01-18 ✅ 2022-01-17
-- [ ] ♻ [[Household]]: *Cardboard* recycling collection %%done_del%% 🔁 every 2 weeks on Tuesday 📅 2022-08-23
+- [ ] ♻ [[Household]]: *Cardboard* recycling collection %%done_del%% 🔁 every 2 weeks on Tuesday 📅 2022-09-06
+- [x] ♻ [[Household]]: *Cardboard* recycling collection %%done_del%% 🔁 every 2 weeks on Tuesday 📅 2022-08-23 ✅ 2022-08-22
- [x] ♻ [[Household]]: *Cardboard* recycling collection 🔁 every 2 weeks on Tuesday 📅 2022-08-09 ✅ 2022-08-08
- [x] ♻ [[Household]]: *Cardboard* recycling collection 🔁 every 2 weeks on Tuesday 📅 2022-07-26 ✅ 2022-07-25
- [x] ♻ [[Household]]: *Cardboard* recycling collection 🔁 every 2 weeks on Tuesday 📅 2022-07-12 ✅ 2022-07-10
diff --git a/03.02 Travels/@Bahrein.md b/03.02 Travels/@Bahrein.md
index 24147def..6200ebea 100644
--- a/03.02 Travels/@Bahrein.md
+++ b/03.02 Travels/@Bahrein.md
@@ -81,6 +81,9 @@ style: number
- Café Lilou ⭐⭐⭐⭐ [Cafe Lilou (@cafelilou) • Instagram photos and videos](https://www.instagram.com/cafelilou/)
- Veranda ⭐⭐⭐ [Reservations | Veranda Bahrain](https://verandabahrain.com/reservations/)
+**To test**
+- Fusions by Tala
+
---
@@ -120,5 +123,21 @@ style: number
- Royal Camel Farm
- Mosquée Al-Fateh
+
+
+---
+
+
+
+### Other activity
+
+
+
+```dataview
+Table DocType as "Doc type" from [[@Bahrein]]
+where !contains(file.name, "@@Travel")
+sort DocType asc
+```
+
\ No newline at end of file
diff --git a/03.02 Travels/@Dubaï.md b/03.02 Travels/@Dubaï.md
index 8b122e34..2783271f 100644
--- a/03.02 Travels/@Dubaï.md
+++ b/03.02 Travels/@Dubaï.md
@@ -110,5 +110,21 @@ style: number
+
+
+---
+
+
+
+### Other activity
+
+
+
+```dataview
+Table DocType as "Doc type" from [[@Dubaï]]
+where !contains(file.name, "@@Travel")
+sort DocType asc
+```
+
\ No newline at end of file
diff --git a/03.02 Travels/@France.md b/03.02 Travels/@France.md
index 840d4ed4..099172e9 100644
--- a/03.02 Travels/@France.md
+++ b/03.02 Travels/@France.md
@@ -82,6 +82,21 @@ style: number
Flatten file.tags as tags
Group by tags
```
+
+
+---
+
+
+
+### Other activity
+
+
+
+```dataview
+Table DocType as "Doc type" from [[@France]]
+where !contains(file.name, "@@Travel")
+sort DocType asc
+```
\ No newline at end of file
diff --git a/03.02 Travels/Arles.md b/03.02 Travels/Arles.md
index 14433506..1fac89b1 100644
--- a/03.02 Travels/Arles.md
+++ b/03.02 Travels/Arles.md
@@ -108,5 +108,21 @@ style: number
- Hotel Dieu
- Theatre romain
+
+
+---
+
+
+
+### Other activity
+
+
+
+```dataview
+Table DocType as "Doc type" from [[Arles]]
+where !contains(file.name, "@@Travel")
+sort DocType asc
+```
+
\ No newline at end of file
diff --git a/03.02 Travels/Avignon.md b/03.02 Travels/Avignon.md
index 3e2f2956..dba46a97 100644
--- a/03.02 Travels/Avignon.md
+++ b/03.02 Travels/Avignon.md
@@ -94,5 +94,21 @@ style: number
- Le Palais des Papes
- Uzès
+
+
+---
+
+
+
+### Other activity
+
+
+
+```dataview
+Table DocType as "Doc type" from [[Avignon]]
+where !contains(file.name, "@@Travel")
+sort DocType asc
+```
+
\ No newline at end of file
diff --git a/03.02 Travels/Marseille.md b/03.02 Travels/Marseille.md
index 26e6e786..d97ad969 100644
--- a/03.02 Travels/Marseille.md
+++ b/03.02 Travels/Marseille.md
@@ -107,5 +107,21 @@ style: number
- Prado
- La Corniche
+
+
+---
+
+
+
+### Other activity
+
+
+
+```dataview
+Table DocType as "Doc type" from [[Marseille]]
+where !contains(file.name, "@@Travel")
+sort DocType asc
+```
+
\ No newline at end of file
diff --git a/03.02 Travels/Nimes.md b/03.02 Travels/Nimes.md
index 3e3d69e1..5f4ba595 100644
--- a/03.02 Travels/Nimes.md
+++ b/03.02 Travels/Nimes.md
@@ -94,5 +94,21 @@ style: number
- Tour Magne & parc alentours
- Temple de Diane
+
+
+---
+
+
+
+### Other activity
+
+
+
+```dataview
+Table DocType as "Doc type" from [[Nimes]]
+where !contains(file.name, "@@Travel")
+sort DocType asc
+```
+
\ No newline at end of file
diff --git a/03.03 Food & Wine/French Onion Beef Noodle Soup.md b/03.03 Food & Wine/French Onion Beef Noodle Soup.md
index 5e5d87a0..657a215e 100644
--- a/03.03 Food & Wine/French Onion Beef Noodle Soup.md
+++ b/03.03 Food & Wine/French Onion Beef Noodle Soup.md
@@ -40,7 +40,7 @@ Ingredients:
---
-Parent:: [[@@Recipes|Recipes]], [[@Main dishes|Main dishes]]
+Parent:: [[@@Recipes|Recipes]], [[@Main dishes|Main dishes]], [[@France|France]]
---
diff --git a/03.03 Food & Wine/Lemon tart.md b/03.03 Food & Wine/Lemon tart.md
index 17756685..f14d6a31 100644
--- a/03.03 Food & Wine/Lemon tart.md
+++ b/03.03 Food & Wine/Lemon tart.md
@@ -34,7 +34,7 @@ Ingredients:
---
-Parent:: [[@@Recipes|Recipes]], [[@Desserts|Desserts]]
+Parent:: [[@@Recipes|Recipes]], [[@Desserts|Desserts]], [[@France|France]]
---
diff --git a/03.03 Food & Wine/Loup de Mer Citron.md b/03.03 Food & Wine/Loup de Mer Citron.md
index 57de0967..b42c7d71 100644
--- a/03.03 Food & Wine/Loup de Mer Citron.md
+++ b/03.03 Food & Wine/Loup de Mer Citron.md
@@ -29,7 +29,7 @@ Ingredients:
---
-Parent:: [[@@Recipes|Recipes]], [[@Main dishes|Main dishes]]
+Parent:: [[@@Recipes|Recipes]], [[@Main dishes|Main dishes]], [[@France|France]]
---
diff --git a/03.03 Food & Wine/Maison Olivier Chanzy Chassagne-Montrachet 1er Cru.md b/03.03 Food & Wine/Maison Olivier Chanzy Chassagne-Montrachet 1er Cru.md
index 9eafb5da..9e010cc2 100644
--- a/03.03 Food & Wine/Maison Olivier Chanzy Chassagne-Montrachet 1er Cru.md
+++ b/03.03 Food & Wine/Maison Olivier Chanzy Chassagne-Montrachet 1er Cru.md
@@ -23,7 +23,7 @@ Wine:
---
-parent:: [[!!Wine|Wine]]
+parent:: [[!!Wine|Wine]], [[@France|France]]
---
diff --git a/03.03 Food & Wine/Mushroom Fricassée.md b/03.03 Food & Wine/Mushroom Fricassée.md
index 5ba5dcf5..1ae306e1 100644
--- a/03.03 Food & Wine/Mushroom Fricassée.md
+++ b/03.03 Food & Wine/Mushroom Fricassée.md
@@ -34,7 +34,7 @@ Ingredients:
---
-Parent:: [[@@Recipes|Recipes]], [[@Side dishes|Side dishes]]
+Parent:: [[@@Recipes|Recipes]], [[@Side dishes|Side dishes]], [[@France|France]]
---
diff --git a/03.03 Food & Wine/Pan-seared Seabream with vine leaf risotto.md b/03.03 Food & Wine/Pan-seared Seabream with vine leaf risotto.md
new file mode 100644
index 00000000..555760a8
--- /dev/null
+++ b/03.03 Food & Wine/Pan-seared Seabream with vine leaf risotto.md
@@ -0,0 +1,192 @@
+---
+
+ServingSize: 2
+cssclass: recipeTable
+Alias: []
+Tag: ["Healthy", "MiddleEastFusion", "NotYetTested"]
+Date: 2022-08-23
+DocType: "Recipe"
+Hierarchy: "NonRoot"
+location:
+CollapseMetaTable: Yes
+Meta:
+ IsFavourite: False
+ Rating:
+Recipe:
+ Courses: "Main dish"
+ Categories: "Fish"
+ Collections: "Middle Eastern"
+ Source: "https://arab.news/4p2v8"
+ PreparationTime:
+ CookingTime: 30
+ OServingSize: 1
+Ingredients:
+ - 90 g Faskar fillet
+ - 1 pinch salt
+ - 1 pinch pepper
+ - 30 g butter
+ - 3 g thyme
+ - 1 pinch turmeric (optional)
+ - 150 g of Arborio rice
+ - 20 g onion (finely chopped)
+ - 70 g vine leaves
+ - 10 g lime juice
+ - 10 g parmesan cheese
+ - 1 splash cooking oil
+ - 1 splash vegetable stock or water
+
+---
+
+Parent:: [[@@Recipes|Recipes]], [[@Main dishes|Main dishes]], [[@Bahrein|Bahrein]]
+
+---
+
+
+
+```button
+name Edit Recipe parameters
+type command
+action MetaEdit: Run MetaEdit
+id EditMetaData
+```
+^button-Pan-searedSeabreamwithvineleafrisottoEdit
+
+
+```button
+name Save
+type command
+action Save current file
+id Save
+```
+^button-Pan-searedSeabreamwithvineleafrisottoNSave
+
+
+
+# Pan-seared Seabream with vine leaf risotto
+
+
+
+```toc
+style: number
+```
+
+
+
+---
+
+
+
+### Practical Informations
+
+```dataview
+list without id
+ "