Overview
Context
Changes
Modified blog.rkt
from [44d9d7ad]
to [1ddb51ef].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
|
#lang pollen/mode racket/base
;; Copyright (c) 2019 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;; joel@jdueck.net
;; https://joeldueck.com
;; -------------------------------------------------------------------------
;; Builds the paginated “blog” HTML files (blog-pg1.html ...) from the SQLite cache
;; The files will be written out every time this module is evaluated! (see end)
(require "crystalize.rkt"
"snippets-html.rkt"
racket/file
|
︙ | | |
Modified code-docs/crystalize.scrbl
from [4b2805a4]
to [6c8c6c57].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
+
-
-
-
+
-
|
#lang scribble/manual
@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved. This file is offered as-is,
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; without any warranty.
@(require "scribble-helpers.rkt")
@(require (for-label "../pollen.rkt"
"../dust.rkt"
"../crystalize.rkt"
racket/base
|
︙ | | |
Modified code-docs/dust.scrbl
from [f9a0825d]
to [3d9b01e1].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
+
-
-
-
+
-
|
#lang scribble/manual
@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved. This file is offered as-is,
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; without any warranty.
@(require "scribble-helpers.rkt"
scribble/example)
@(require (for-label "../pollen.rkt"
"../dust.rkt"
racket/base
|
︙ | | |
Modified code-docs/main.scrbl
from [052fbd8b]
to [1a5ea062].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
+
-
-
-
-
-
+
-
|
#lang scribble/manual
@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved. This file is offered as-is,
@; without any warranty.
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; Scribble source for the main page of the code documents.
@(require "scribble-helpers.rkt")
@title{Local Yarn: source code notes}
@author{Joel Dueck}
|
︙ | | |
Modified code-docs/overview.scrbl
from [d9ff4aa0]
to [1a4508f5].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
+
-
-
-
+
-
|
#lang scribble/manual
@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved. This file is offered as-is,
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; without any warranty.
@(require "scribble-helpers.rkt"
racket/runtime-path)
@(require (for-label racket/base))
@title{Overview}
|
︙ | | |
Modified code-docs/pollen.scrbl
from [a48aad25]
to [18a1b869].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
+
-
-
-
+
-
|
#lang scribble/manual
@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved. This file is offered as-is,
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; without any warranty.
@(require "scribble-helpers.rkt")
@(require (for-label "../pollen.rkt"
"../dust.rkt"
"../crystalize.rkt"
racket/base
racket/contract
|
︙ | | |
Modified code-docs/scribble-helpers.rkt
from [73316e54]
to [95058fad].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
|
#lang racket/base
;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;; joel@jdueck.net
;; https://joeldueck.com
;; -------------------------------------------------------------------------
;; Convenience/helper functions for this project’s Scribble documentation
(require scribble/core
scribble/manual/lang
scribble/html-properties
(only-in net/uri-codec uri-encode))
|
︙ | | |
Modified code-docs/scribble-iframe.html
from [5bb7d4b4]
to [6b0166f8].
1
2
3
4
5
6
7
8
9
10
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
+
+
+
|
<div class='fossil-doc' data-title='Code Documentation' >
<!-- SPDX-License-Identifier: BlueOak-1.0.0
This file is licensed under the Blue Oak Model License 1.0.0.
-->
<div class='iframe-surround'>
<iframe id='scribble' src="index.html" class="embedded-docs">
</iframe>
</div>
</div>
<script>
document.getElementById('scribble').src = "index.html?n=" + new Date()/1;
</script>
|
Modified code-docs/snippets-html.scrbl
from [80a0bc1d]
to [bcf809dc].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
+
-
-
-
+
-
|
#lang scribble/manual
@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved. This file is offered as-is,
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; without any warranty.
@(require "scribble-helpers.rkt")
@(require (for-label "../pollen.rkt"
"../dust.rkt"
"../snippets-html.rkt"
racket/base
|
︙ | | |
Modified code-docs/sqlite-tools.scrbl
from [a2f9cc08]
to [9cc80fcd].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
+
-
-
-
+
-
|
#lang scribble/manual
@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved. This file is offered as-is,
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; without any warranty.
@(require "scribble-helpers.rkt"
scribble/example)
@(require (for-label "../pollen.rkt"
"../sqlite-tools.rkt"
racket/base
|
︙ | | |
Modified crystalize.rkt
from [e8e2afa2]
to [9b9ee238].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
|
#lang racket/base
;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;; joel@jdueck.net
;; https://joeldueck.com
;; -------------------------------------------------------------------------
;; Provides functions for fast preserving and fetching of article/series data.
;; → Docs and metas go in (saved to SQLite database)
;; HTML comes out →
;; Calling sites have no notion of the database or schema.
;; The functions provided by sqlite-tools.rkt are not safe for user-provided
|
︙ | | |
Modified dust.rkt
from [9569787a]
to [d10d5d6e].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
|
#lang racket/base
;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;; joel@jdueck.net
;; https://joeldueck.com
;; -------------------------------------------------------------------------
(require pollen/core
pollen/pagetree
pollen/setup
pollen/file
net/uri-codec
file/sha1
|
︙ | | |
Modified keyword-index.rkt
from [9aa8d227]
to [f4c58968].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
|
#lang pollen/mode racket/base
;; Copyright (c) 2019 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;; joel@jdueck.net
;; https://joeldueck.com
;; -------------------------------------------------------------------------
;; Builds an HTML page containing the keyword index for all ◊index entries in
;; the articles, by pulling them out of the SQLite cache DB.
(require racket/match
racket/list
racket/file
|
︙ | | |
Modified makefile
from [dd1c5378]
to [f5d2ef9f].
1
2
3
4
5
6
7
8
9
10
|
1
2
3
4
5
6
7
8
9
10
|
+
-
-
+
+
-
|
# SPDX-License-Identifier: BlueOak-1.0.0
# Licensed under the terms of the Blue Oak Model License 1.0.0
# https://blueoakcouncil.org/license/1.0.0
# This file is licensed under the Blue Oak Model License 1.0.0.
# You may not use this file except in compliance with that license.
SHELL = /bin/bash
# ~~~ Variables used by rules ~~~
#
core-files := pollen.rkt dust.rkt
html-deps := snippets-html.rkt tags-html.rkt
|
︙ | | |
|
Modified pollen.rkt
from [a9e6e1d2]
to [ee59101e].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
1
2
3
4
5
6
7
8
9
10
11
|
+
-
+
-
-
-
-
-
-
-
|
#lang racket/base
; SPDX-License-Identifier: BlueOak-1.0.0
;; Licensed under the Local Yarn License 1.0.0. You may not use this
; This file is licensed under the Blue Oak Model License 1.0.0.
;; file except in compliance with that license. A copy of the license
;; is included with this source code, in the file “LICENSE.md”.
;;
;; Maintainer contact information:
;; Joel Dueck (joel@jdueck.net)
;; https://joeldueck.com
;; -------------------------------------------------------------------------
;; Functions for tags and template content used in all Pollen source files and templates.
(require (for-syntax racket/base
racket/syntax
syntax/parse
pollen/setup))
|
︙ | | |
Modified snippets-html.rkt
from [55ae0657]
to [09ba0c4a].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
|
#lang pollen/mode racket/base
;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;; joel@jdueck.net
;; https://joeldueck.com
;; -------------------------------------------------------------------------
;; Provides functions for displaying content in HTML templates.
(require pollen/core
pollen/template
pollen/decode
racket/string
racket/function
|
︙ | | |
Modified sqlite-tools.rkt
from [5f494912]
to [f4b3e603].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
|
#lang racket/base
;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;; joel@jdueck.net
;; https://joeldueck.com
;; -------------------------------------------------------------------------
;; Provides a very light set of utility functions for a SQLite database.
;; These functions are completely agnostic as to the database schema.
;; These functions are NOT SAFE for use with data provided by untrusted users!
(require db/sqlite3
db/base
|
︙ | | |
Modified tags-html.rkt
from [43d9d1e5]
to [066e2351].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
|
#lang racket/base
;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;; joel@jdueck.net
;; https://joeldueck.com
;; -------------------------------------------------------------------------
;; Tag functions used by pollen.rkt when HTML is the output format.
(require (for-syntax racket/base racket/syntax))
(require racket/list
racket/function
pollen/decode
|
︙ | | |
Modified template.html.p
from [51a5e67e]
to [d6041578].
1
2
3
4
5
6
7
8
|
1
2
3
4
5
6
7
8
9
10
|
+
+
|
<!DOCTYPE html>
◊; SPDX-License-Identifier: BlueOak-1.0.0
◊; This file is licensed under the Blue Oak Model License 1.0.0.
<html lang="en">
◊(define article-html (crystalize-article! here doc))
◊(define page-title (article-plain-title here))
◊html$-page-head[page-title]
◊html$-page-body-open[]
|
︙ | | |
Modified util/newpost.rkt
from [88a7503d]
to [89e8b78f].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+
|
#lang pollen/mode racket/base
;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
;;
; This file is licensed under the Blue Oak Model License 1.0.0.
;; Author contact information:
;; joel@jdueck.net
;; https://joeldueck.com
;; -------------------------------------------------------------------------
;; Script/template for starting a new article
(require racket/date
racket/string
racket/file
racket/system
"../dust.rkt")
|
︙ | | |
Modified util/relativize
from [5428bcab]
to [7e87490d].
1
2
3
4
5
6
7
8
9
10
11
|
1
2
3
4
5
6
7
8
9
10
11
|
+
-
+
-
|
#!/bin/bash
# SPDX-License-Identifier: BlueOak-1.0.0
# Licensed under the terms of the Blue Oak Model License 1.0.0
# This file is licensed under the Blue Oak Model License 1.0.0.
# https://blueoakcouncil.org/license/1.0.0
# The HTML generated assumes the whole site lives in the domain root. This script converts all links
# and image sources to relative URLs, so things don't break when accessed from within a subfolder of
# a live web server. (See ‘publish’ target of makefile)
# Stop on any error, forbid uninitialized vars
set -eu
|
︙ | | |
Modified web-extra/font.css
from [ff6adf1f]
to [fb953054].
1
2
3
4
5
6
7
|
1
2
3
4
5
6
7
8
9
10
11
|
+
+
+
+
|
/* SPDX-License-Identifier: BlueOak-1.0.0
This file is licensed under the Blue Oak Model License 1.0.0.
*/
@font-face {
font-family: 'Fabiol';
src: url('LDFabiolPro-Regular.woff2') format('woff2'),
url('LDFabiolPro-Regular.woff') format('woff');
font-style: normal;
font-weight: 400;
}
|
︙ | | |
| | | |
Modified web-extra/martin.css.pp
from [96d16067]
to [bc5225d2].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
|
#lang pollen/pre
/* Copyright (c) 2018 Joel Dueck.
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
/* SPDX-License-Identifier: BlueOak-1.0.0
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
** This file is licensed under the Blue Oak Model License 1.0.0. */
**
** Author contact information:
** joel@jdueck.net
** https://joeldueck.com
** -------------------------------------------------------------------------
/* Welcome to my CSS File!
** I have named it `martin.css`, after Martin Pale. */
◊;{Here, broadly, is the approach we are taking here:
1. The site shall look decent and readable even when CSS is unavailable.
|
︙ | | |