[Question]
  [
[Dennis](https://codegolf.stackexchange.com/users/12012/dennis) puts in a huge amount of effort for this community, including as [moderator](https://codegolf.stackexchange.com/election), [language designer](https://github.com/dennismitchell), and provider of [TIO](https://tryitonline.net/).
Unfortunately, his [four-year-old](https://chat.stackexchange.com/transcript/message/36981175#36981175) daughter has [caught a cold](https://chat.stackexchange.com/transcript/message/36971077#36971077), so let us all help him keep track of her recovery (may it be speedy) by providing him with [a thermometer](https://en.wikipedia.org/wiki/Medical_thermometer#/media/File:Quecksilber-Fieberthermometer.jpg):
```
.-----------.
|           |
|           |
'-.       .-'
.-'   -   '-.
|107.6- 42.0|
|106.7- 41.5|
|105.8- 41.0|
|104.9- 40.5|
|104.0- 40.0|
|103.1- 39.5|
|102.2- 39.0|
|101.3- 38.5|
|100.4- 38.0|
| 99.5- 37.5|
| 98.6- 37.0|
| 97.7- 36.5|
| 96.8- 36.0|
| 95.9- 35.5|
| 95.0- 35.0|
'---. - .---'
    | - |
    |---|
    |   |
    '---'
```
Since [Dennis does not have much time to read code](https://chat.stackexchange.com/transcript/message/36970915#36970915), you must keep yours as short as possible.
  
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), ~~90 89 84 83~~ 82 [bytes](https://github.com/DennisMitchell/jelly/wiki/Code-page)
-1 byte thanks to Erik the Outgolfer (replace `10` with `⁵`)
```
15r1×€9,5+“£Ȧ“¡^’d⁵Dj€€”.j€⁾- Uz⁶ZUj@€⁾||
“¡ẹƭgụḌẊṘgYƊxyẓṡƝçƤ5ȥṭ’ṃ“.| '-”s7ŒBs5j¢Y
```
**[Try it online!](https://tio.run/##y0rNyan8/9/QtMjw8PRHTWssdUy1HzXMObT4xDIQtTDuUcPMlEeNW12ygJIg1DBXD8xs3KerEFr1qHFbVGiWA0SgpoYLrOfhrp3H1qY/3L304Y6eh7u6Hu6ckR55rKui8uGuyQ93Ljw29/DyY0tMTyx9uHMt0PCHO5uBmvRqFNR1gWYXmx@d5FRsmnVoUeR/oHDhwx2tQGUPd848tOnUAqeHuxY@3L310O6HO1sO7zi06D8A "Jelly - Try It Online")**
### How?
```
15r1×€9,5+“£Ȧ“¡^’d⁵Dj€€”.j€⁾- Uz⁶ZUj@€⁾|| - Link 1, body: no arguments
15r1                                      - inclusive range(15,1)      = [15,14,...,2,1]
      9,5                                 - pair nine with five        = [9,5]
    ×€                                    - multiply for €ach          = [[135,75],[126,70],...,[18,10],[9,5]]
          “£Ȧ“¡^’                         - list of base 250 numbers   = [941,345]
         +                                - addition                   = [[1076,420],[1067,415],...,[959,355],[950,350]]
                 d⁵                       - div&mod 10                 = [[[107,6],[42,0]],[[106,7],[41,5]],...,[[95,9],[35,5]],[[95,0],[35,0]]]
                   D                      - convert to decimal lists   = [[[[1,0,7],6],[[4,2],0]],[[[1,0,6],7],[[4,1],5]],...,[[[9,5],9],[[3,5],5]],[[[9,5],0],[[3,5],0]]]
                       ”.                 - literal '.'
                    j€€                   - join €ach for €ach         = [[[1,0,7,'.',6],[4,2,'.',0]],[[1,0,6,'.',7],[4,1,'.',5]],...,[[9,5,'.',9],[3,5,'.',5]],[[9,5,'.',0],[3,5,'.',0]]]
                           ⁾- <space      - literal ['-',' ']
                         j€               - join €ach                  = [[1,0,7,'.',6,'-',' ',4,2,'.',0],[1,0,6,'.',7,'-',' ',4,1,'.',5],...,[9,5,'.',9,'-',' ',3,5,'.',5],[9,5,'.',0,'-',' ',3,5,'.',0]]
                              U           - upend (reverse each)       = [[0,'.',2,4,' ','-',6,'.',7,0,1],[5,'.',1,4,' ','-',7,'.',6,0,1],...,[0,'.',5,3,' ','-',9,'.',5,9],[0,'.',5,3,' ','-',0,'.',5,9]]
                               z⁶         - transpose space filler     = [[0,5,...,5,0],['.','.',...,'.','.'],[2,1,...,5,5],[4,4,...,3,3],[' ',' ',...,' ',' '],['-','-',...,'-','-'],[6,7,...,9,0],['.','.',...'.','.'],[7,6,...,5,5],[0,0,...,9,9],[1,1,...,' ',' ']]
                                 Z        - transpose                  = [[0,'.',2,4,' ','-',6,'.',7,0,1],[5,'.',1,4,' ','-',7,'.',6,0,1],...,[5,'.',5,3,' ','-',9,'.',5,9,' '],[0,'.',5,3,' ','-',0,'.',5,9,' ']]
                                  U       - upend                      = [[1,0,7,'.',6,'-',' ',4,2,'.',0],[1,0,6,'.',7,'-',' ',4,1,'.',5],...,[' ',9,5,'.',9,'-',' ',3,5,'.',5],[' ',9,5,'.',0,'-',' ',3,5,'.',0]]
                                      ⁾|| - literal ['|','|']
                                   j@€    - join €ach (reversed @rgs)  = [['|',1,0,7,'.',6,'-',' ',4,2,'.',0,'|'],['|',1,0,6,'.',7,'-',' ',4,1,'.',5,'|'],...,['|',' ',9,5,'.',9,'-',' ',3,5,'.',5,'|'],['|',' ',9,5,'.',0,'-',' ',3,5,'.',0,'|']]
                                          -                  effectively ["|107.6- 42.0|","|106.7- 41.5|","|105.8- 41.0|","|104.9- 40.5|","|104.0- 40.0|","|103.1- 39.5|","|102.2- 39.0|","|101.3- 38.5|","|100.4- 38.0|","| 99.5- 37.5|","| 98.6- 37.0|","| 97.7- 36.5|","| 96.8- 36.0|","| 95.9- 35.5|","| 95.0- 35.0|"]
“¡ẹƭgụḌẊṘgYƊxyẓṡƝçƤ5ȥṭ’ṃ“.| '-”s7ŒBs5j¢Y - Main link: no arguments   (using "..." below to represent lists of characters)
“¡ẹƭgụḌẊṘgYƊxyẓṡƝçƤ5ȥṭ’                  - base 250 number     =  1694125525350532761476179586378844141697690917975
                        “.| '-”          - literal ['.','|',' ',"'",'-']
                       ṃ                 - base decompression  =  ".------|      |      '-.    .-'   -'---. -    | -    |--    |      '--"
                               s7        - split into 7s       =  [".------","|      ","|      ","'-.    ",".-'   -","'---. -","    | -","    |--","    |  ","    '--"]
                                 ŒB      - bounce (vectorises) =  [".-----------.","|           |","|           |","'-.       .-'",".-'   -   '-.","'---. - .---'","    | - |    ","    |---|    ","    |   |    ","    '---'    "]
                                   s5    - split into 5s       = [[".-----------.","|           |","|           |","'-.       .-'",".-'   -   '-."],["'---. - .---'","    | - |    ","    |---|    ","    |   |    ","    '---'    "]]
                                      ¢  - call last link (1) as a nilad
                                     j   - join                = (using "..." below to represent mixed-type lists from the result of ¢)
                                                               = [".-----------.","|           |","|           |","'-.       .-'",".-'   -   '-.","|107.6- 42.0|","|106.7- 41.5|","|105.8- 41.0|","|104.9- 40.5|","|104.0- 40.0|","|103.1- 39.5|","|102.2- 39.0|","|101.3- 38.5|","|100.4- 38.0|","| 99.5- 37.5|","| 98.6- 37.0|","| 97.7- 36.5|","| 96.8- 36.0|","| 95.9- 35.5|","| 95.0- 35.0|","'---. - .---'","    | - |    ","    |---|    ","    |   |    ","    '---'    "]
                                       Y - join with newlines  = :
                                                                 .-----------.
                                                                 |           |
                                                                 |           |
                                                                 '-.       .-'
                                                                 .-'   -   '-.
                                                                 |107.6- 42.0|
                                                                 |106.7- 41.5|
                                                                 |105.8- 41.0|
                                                                 |104.9- 40.5|
                                                                 |104.0- 40.0|
                                                                 |103.1- 39.5|
                                                                 |102.2- 39.0|
                                                                 |101.3- 38.5|
                                                                 |100.4- 38.0|
                                                                 | 99.5- 37.5|
                                                                 | 98.6- 37.0|
                                                                 | 97.7- 36.5|
                                                                 | 96.8- 36.0|
                                                                 | 95.9- 35.5|
                                                                 | 95.0- 35.0|
                                                                 '---. - .---'
                                                                     | - |
                                                                     |---|
                                                                     |   |
                                                                     '---'
```
[Answer]
## Batch, 325 bytes
```
@echo off
for %%l in ("|           |" "|           |" "'-.       .-'" ".-'   -   '-.")do echo %%~l
set/ac=42,d=5
for /l %%f in (1076,-9,950)do call:c %%f
for %%l in ("'---. - .---'" "    | - |" "    |---|" "    |   |" "    '---'")do echo %%~l
exit/b
:c
set f= %1
set/ac-=!d,d=5-d
echo ^|%f:~-4,-1%.%f:~-1%- %c%.%d%^|
```
[Answer]
# [SOGL](https://github.com/dzaima/SOGL), ~~98~~ 97 [bytes](https://github.com/dzaima/SOGL/blob/master/chartable.md)
```
▼⅜¦┌Υ   υl←│Γφγ⅔3wο╚°⁸ofč√&@⁶‘O’⁴∫ |O:9L/*’a6L/+;-l4=?@o}oƧ- o12/*’ ;-o |o"ģ⌠℮Ζ║Kgš‰¶¶ksθ○╤Ƨ%←└⅟ΟS‘
```
note: the 3 spaces close to the beggining of the program are a tab
Explanation:
```
...‘O                                                  output the beginning part
     ’⁴∫                                               repeat 15 times, pushing (0-indexed iteration)
         |O                                            output in a new line "|"
           :                                           duplicate the iteration
            9L/                                        push 0.9 (9/10)
               *                                       multiply [0.9 and the iteration]
                ’a6L/+                                 push 107.6 (107+6/10)
                      ;-                               reverse subtract (107.6 - 0.9*iteration)
                        l4=?  }                        if length is 4
                            @o                           output a space
                               o                       output the number
                                Ƨ- o                   output "- "
                                    12/                push 0.5 (1/2)
                                       *               multiply that by iteration
                                        ’              push 42
                                          ;-           reverse subtract (42-0.5*iteration)
                                            o          output that
                                              |o       output "|"
                                                "...‘  push the ending part
```
To save one byte, I made it push the ending string every time in the loop just so it could get outputted once.
[Answer]
# [V](https://github.com/DJMcMayhem/V), 113 bytes
```
i|1076- 420|14ñÙ9l5ñÎeé.$hé.
ç|9/á 
o'³-. - .³-'
| - |
|³-|
|³ |
'³-'4>3kHO.±±-.
|±± |Ùo'-.· .-'
.-'³ -³ '-.
```
[Try it online!](https://tio.run/nexus/v#@59ZY2hgbqarYGJkUCNtaHJ44@GZlhI5phJARl/q4ZV6KhlAguvw8hpL/cMLFbjy1Q9t1tVT0FXQA9LqXDVAVg1XDZANJoFskLy6tImdcbaHv96hjYc26uoBZYC0Qo304Zn56rp6h7Yr6AG1AjFQgy4QA8X@/wcA "V – TIO Nexus")
Hexdump:
```
00000000: 697c 3130 3736 2d20 3432 307c 1b31 34f1  i|1076- 420|.14.
00000010: d939 186c 3518 f1ce 65e9 2e24 68e9 2e0a  .9.l5...e..$h...
00000020: e77c 392f e120 0a6f 27b3 2d2e 202d 202e  .|9/. .o'.-. - .
00000030: b32d 270a 7c20 2d20 7c0a 7cb3 2d7c 0a7c  .-'.| - |.|.-|.|
00000040: b320 7c0a 27b3 2d27 1b34 3e33 6b48 4f2e  . |.'.-'.4>3kHO.
00000050: b1b1 2d2e 0a7c b1b1 207c 1bd9 6f27 2d2e  ..-..|.. |..o'-.
00000060: b720 2e2d 270a 2e2d 27b3 202d b320 272d  . .-'..-'. -. '-
00000070: 2e                                       .
```
More golfing on the way!
[Answer]
# PHP, 187 Bytes
storing 4 spaces in a variable saves 7 Bytes
```
<?=".-----------.
|",$f="    ","$f   |
|$f$f   |
'-.$f   .-'
.-'   -   '-.
";for($n=85;--$n>69;)printf("|%5.1f-%5.1f|
",$n*.9+32,$n/2);echo"'---. - .---'
$f| - |
$f|---|
$f|   |
$f'---'";
```
[Try it online!](https://tio.run/nexus/php#RY7RCsJQCIbvfYoQ42w1jRaLxmn1MJHUzdkYXfruJ88hSPj9P0XUfL1PKPwPAcOOdMKNB3ZI6m5gpD8KLJWEA7ic2OVdwKjz2lCaLkNkpnQ7j7Fd1nf6aIO2HeSoXLOBn0g7Gfen3uHQt/H5eM0Yyn1fV/4JQGrOVtzr6vUB0jIXMOb8BQ "PHP – TIO Nexus")
# PHP, 188 Bytes
```
<?$s=".000--.
|1223|1223'-.12.-'
.-'1-1'-.
4";for($n=85;--$n>69;)$t.=sprintf("|%5.1f-%5.1f|
",$n*.9+32,$n/2);$s.="'0. - .0'
2| - 32|032|132'0'";echo strtr($s,["---","   ","    ","|
",$t]);
```
[Try it online!](https://tio.run/nexus/php#JY3BDoIwEETv/YpmU1NQdm23YiQV/RDjyUjwUgjtsf@OFQ/zZuYyc73P47yq2AMZYxBJZMvsNmgky4RaFFm0pYoT@GFaKhX6S@sRVbidO1@rRH2cl09IQwV515IdcGMW0Kiwp@7guIQj115F6kEbkijJaMG5BMfZFFnH2mjw79c4yZiWVI5i8wBEhAaklH/@bBtOz9qv6xc "PHP – TIO Nexus")
## PHP, 220 Bytes
```
<?=gzinflate(base64_decode("XZBJCkUhDAT3niI7VzbOw908/O/EwIMviCnLQBukbyFc+db9o5jgNVIM3KwSd9S+khdmkl6Rr9LEIhUMo4Ft9FzHIWV3HdnouYaSpB13FdXouYJG2u4yupE6OewgLXNytmYhPbc0S5vupmYhPTc0SxvuhmYhZf0t58H/gWcMNgHSfRXvvLLJiE2B734="));
```
[Try it online!](https://tio.run/nexus/php#FcZRU4IwAADg/@KTng@QA3RXXhcGMRpQThF96Rgbg1DgkkHw54m@p298et6KIS/Ta9zwOY3v3NC@GE8qxuez6GK6u@KYvb4cQJmjdTjQoIPqRgkUq0Nem@9K/GnKgvZ2smQUVvq38EPkgfeOMEiWRcZuxdXY/0BsoezoVZrdQHtw0CkEDisreY5JbT4Am0XT3beV1HpZW0bAO4Ejv29u5@yDJirRW1n//zD9t5XZ9EuqNvrGUcQp8XzhkHQftS3Gbm6tzDXQtrPF4nEc/wA "PHP – TIO Nexus")
## PHP, 247 Bytes
```
<?=bzdecompress(base64_decode("QlpoNDFBWSZTWREU1+kAAEnYgEiQQIN/4AAEMAC6bDTRA1NBtqglJ7VIA0AJNSEAAXhknxmxdEkbQhoFWMYrEL1cASWoMYgwHEpJJJKZmZ638CwPCeQHBCLKs3qj1vvz37lF4trWtWviLC4wJoHJywEMA8GmAh2WwUSEom/JeNAioiokhJa9V5bL02pVVVXw+EiwPxdyRThQkBEU1+k="));
```
[Try it online!](https://tio.run/nexus/php#HY7BboJAFAD/xZPGgyIUbaxpHrgUVyAuICtcGpENUMBFMCz689T2OHOZGT4@N/EzYRde1Q1r23F8bpmqfP@ZhI1HpKy5szU06kU@ddFRmhYA6BqmKCdk58yUF9mgq/HWd0FytPstLfEy2MEcsOMhgFNWXPuqT1ARk4wb1A4bZEkX8Ci3w1SYqMYY76MqUuWVLg46I6amW/tWvv1IXfeUl6Wh3Bt6p11u6YrA3MQP8UquvirIFlQcPcSrGWYO5DznRYbP78FbbM0XdRAEJzFFuTj0ycP1M1Jo//@b0WSyHoZf "PHP – TIO Nexus")
[Answer]
# [Python 2](https://docs.python.org/2/), 163 bytes
```
i=89
for x in("------.x|x|x.-'x-   '-."+"x"*16+"- .---'x- |x--|x  |x--'").split('x'):y='%%-77ss'[i>80::2]%x;print['|%5s- %s|'%(32+.9*i,i/2.),y[:0:-1]+y][x>''];i-=1
```
[Try it online!](https://tio.run/nexus/python2#HYpBCoMwEEX3PcUQCKPGSdXSqhG9SMi2MFCsGBcj5O7W@t/iLd4/eOz62/u7ggDPmaJrVtKJJRQCACSrjBJV1C@jCOx5@IckREngMqrcxuXDW4aCudtH1JraNkb0PHWVc03QMiwrz5vHpJ@RQMeEOns0xvYFl3xvbF7u3lWO6mD24GVCDAPTWB/HDw "Python 2 – TIO Nexus")
[Answer]
# [APL (Dyalog)](https://www.dyalog.com/), ~~144~~ 143 [bytes](https://codegolf.meta.stackexchange.com/a/9429/43319 "When can APL characters be counted as 1 byte each?")[SBCS](https://github.com/abrudz/SBCS ".dyalog files using a single byte character set")
```
m←⊢,1↓⌽
1⌽'.||',⍣2⊢11/⍪3↑d←'-'
m 7↑a←∪∊z←⊂'''---. -'
m(6↑⌽a),d
⊃{'|',⍵,'-',⍺,'|'}/(5 1⍕⍪)¨35 95+↓.5 .9∘.×⌽⍳15
↑m¨z,¯7↑¨'| -' '|--' '|  ' '''--'
```
[Try it online!](https://tio.run/##HY8xCsJAEEX7PcV2o7i7usoqHsHKMwSCNgZt1dgoxBCMKCJaaxNsLMRGsIk3mYvEnzR/dpg/7896s4n2595kOi54fx4MOTq0BMfbURHgyclNWY5OvPsKCyEThqQ4vbcxsbbJ6aPD0dGHlTSJQPbQeeVi/OA4WVSINRFprY0sHbUuHCB5deULTjZLqoBvhX3Uj0K/atactJyega/nWcfJvmvgCuOk6XN8Nb8LCJy@rBOgBXm2UPmzjM4zChEjKdSVSgkt06nAn4rRHw "APL (Dyalog Unicode) – Try It Online")
[Answer]
# [///](https://esolangs.org/wiki////), 261 bytes
```
/`/\/\///i/|
|`~/---`_/   `+/- `f/.5`z/.0`(/i10`)/i 9`!/|
    |/
.--~~~.
|  ___i  ___|
'-. __.-'
.-'_-_'-.
|107.6+42z(6.7+41f(5.8+41z(4.9+40f(4.0+40z(3.1+39f(2.2+39z(1.3+38f(0.4+38z)9f+37f)8.6+37z)7.7+36f)6.8+36z)5.9+35f)5.0+35z|
'~. - .~'
    | - !~!_|
    '~'
```
[Try it online!](https://tio.run/nexus/slashes#JY9NCsQgDIX3niJdqUgSrX/tXQZ0JfQKIl69E2YI5Hsh4fHycuePFPPDS62@GRF7YwDojhH6YMp9Mvlu@Am@W37g7occywksVoS49ya1AFprz68vpZFEEGrZ64ZNZrWCr1RcOqcpVF0Kw2S6hNMkul3yQ@iF00QKLt7DnHQKpwkUXbyG8ZSE097DxTrsJXaxTlvFLpZhi9jFMm0Wu5iH0AunxNkECLT1P7XoYx/t/4Pe@n2/ "/// – TIO Nexus")
Works by using common occurrences like `---` as replacements. Nothing fancy.
[Answer]
# JavaScript (ES8), ~~198 193~~ 189 bytes
Number formatting is a bit costly in JS and I seem to be stuck at this byte count. [You win this time, PHP!](https://codegolf.stackexchange.com/a/117736/58563) ;-)
```
_=>`.111--.
|67|
|67|
'-.8.-'
.-'4-4'-.
${9e14}'1. - .1'
5| - |
5|1|
5|4|
5'1'`.replace(/\d/g,n=>n%9?''.padEnd(n-1)||'---':`|${F(32+.9*i)}-${F(i--/2)}|
`,i=84,F=v=>v.toFixed(1).padStart(5))
```
[Try it online!](https://tio.run/##JYxNasMwEIX3OkUWCZJaz5hJlTYuyF3VF@i2UAtLCQpGMo4xhchnd2W6eN/7Wbybmc29G/0wQYjWrRe9/ui6RSICQJZe39I/OOAZgbMsBSo3tn9UjtTCCXewQ@LslHJI2WiDyuDEWxzd0JvOifLbltci6Docqg/OcTD2M1gRgGRKHAD4e5v2j0a8HJ@xevJyga15gPIol8TawuuzKho963rGKTb@11lBcjv6msw4iZOUaxfDPfYO@3gVF5GHPw "JavaScript (Node.js) – Try It Online")
[Answer]
## Mathematica 247 Bytes
Hmmm... same as PHP
```
Uncompress@"1:eJxtkLsNAyEQRM+d4OgiRssf2rBTR27ADdCG+/WAODYxEkL7eKDR3N+fx/N7Ow5YXXiJ893o6n/BabFG2HMAHhws97n+cFKQrYke0hfIKAQO6QIJdYJtRDQCUSNCJthGgLMmNDU8/ATbcAgEVQ1BnGAZpvE1QbkM0+pISrCNMpKGrEYeSQm2kUbSkNRIIymBrILYJfsY3c6CZnUEfQ+80eEq1swG+eYH1XhZzA=="
```
[Answer]
# [Japt](https://github.com/ETHproductions/japt), 106 bytes
```
[".{6î-}
|
'-.
.-'   -"y y 9"'
-
-
-
.|||'
  - -
--- -"y]·mê0R d9FÆ"|{S+(#k6-9*X)t4n)i.J}- {½*Xn84)x1}|"Ã·
```
[Test it online!](http://ethproductions.github.io/japt/?v=1.4.4&code=WyIuezbuLX0KfAonLS4KLi0nICAgLSJ5IHkgOSInICAgIAotCi0KLQoufHx8JwogIC0gLQotLS0gLSJ5Xbdt6jBSIGQ5RsYifHtTKygjazYtOSpYKXQ0bilpLkp9LSB7vSpYbjg0KXgxfXwiw7c=&input=)
Many thanks to [@obarakon](http://codegolf.stackexchange.com/users/61613/obarakon) who got the code working in the first place, and did quite a bit of the golfing.
### Explanation
First we have **the data**:
```
[                                     // Create an array of:
  ".{6î-}\n|\n'-.\n.-'   -"           //   This string ({6î-} inserts 6 hyphens),
  y y                                 //   transposed twice to pad it with spaces;
  9                                   //   the number 9;
  "'\n-\n-\n-\n.|||'\n  - -\n--- -"   //   and this string,
  y                                   //   transposed once.
]·                                    // Join the array with newlines.
```
This gives us
```
.------
|      
'-.    
.-'   -
9
'---. -
    | -
    |--
    |  
    '--
```
That is, the left half of the thermometer, with the main rectangle replaced with a `9`. Note that every line is padded with spaces except the one containing the `9`.
```
m  R   // Map each line with the function
 ê     //   ê, or "bounce"; mirrors the string about its last character ("abc" -> "abcba").
       // (The 0 is just filler because `m` expects the `R` to be the third parameter)
```
The net effect is that it mirrors the left half of the thermometer to the right:
```
.-----------.
|           |
'-.       .-'
.-'   -   '-.
9
'---. - .---'
    | - |    
    |---|    
    |   |    
    '---'    
```
Now that we have the ASCII-art part, all we have to do is put in the main rectangle:
```
d9FÆ  "|{S+(#k 6-9*X)t4n)i.J}- {½ *Xn84)x1}|"Ã ·
d9FoX{"|{S+(1076-9*X)t4n)i.J}- {.5*Xn84)x1}|"} qR
  FoX{  ...  }        // Create the range [0...15), and map each item X to
"|{ ... }- { ... }"   //   this string, with the two blanks filled in with...
S+(1076-9*X)t4n)i.J
   1076-9*X           //   Calculate 1076 - 9*X. This gives us °F * 10.
S+(        )t4n)      //   Prepend a space and take only the last 4 chars.
                      //   This pads the entries under 100°F to the correct length.
                i.J   //   Insert a decimal point before the last char.
                      //   This turns e.g. "1076" to "107.6".
.5*Xn84)x1
   Xn84               //   Take 84 - X.
.5*    )              //   Multiply it by 0.5. This gives us °C.
        x1            //   Convert to a string with exactly 1 decimal point.
                qR    // Join the resulting array with newlines.
d9                    // In the thermometer art, replace "9" with the resulting string.
```
And that concludes our ASCII-art generating session. Tune in next week to see more kinda-short ASCII-art programs written in Japt!
[Answer]
# [Charcoal](https://github.com/somebody1234/Charcoal), 62 bytes
```
←⁶↓.↓²'-.¶.-'¶↓¹⁵'³↓.↓³'²Ｍ²↖¹↑×¹⁹-‖ＯＭ⁵¦¹⁶←Ｅ¹⁵⮌⁺⁺⁺⁹⁵×·⁹ι- ⁺³⁵⊘ι
```
[Try it online!](https://tio.run/##jZC9DoIwFIV3n6LpQptQYiGYAKuDg0RCZHMheIkkFQggPn69qPxEHezQJuc7Pee22SVtsipVWkdNUXbM30PemWTDg9Vb2Fb30iTUop@SPQnUENaptIRxKr9c0l3YZur8UeD8vDnUhlUPzDaJn9TDvBOTc0RSm@RYXKFl0sN0QTmyGHIFWXfooVFpzcYkF8dcvPj1BSEaJJIY0N0Ci9StXWyeO@avLSwoOB9aCMXjyR3ku1T1cGbIhhVorUWvHg "Charcoal – Try It Online") Link is to verbose version of code. Explanation:
```
←⁶↓.↓²'-.¶.-'¶↓¹⁵'³↓.↓³'²Ｍ²↖¹↑×¹⁹-
```
Print the left half of the thermometer.
```
‖Ｏ
```
Reflect it to complete the body.
```
Ｍ⁵¦¹⁶←Ｅ¹⁵⮌⁺⁺⁺⁹⁵×·⁹ι- ⁺³⁵⊘ι
```
Compute the scales and print them reversed and up-side down, which right-justifies them. At time of writing, Charcoal's concatenation operator converts floats to strings using Python's built-in `str` which appends `.0` for floats that represent integers, otherwise I would have to resort to formatting, as its `Cast` operator specifically avoids that behaviour.
[Answer]
Since there's a pandemic out there, I thought the world could use one more thermometer:
# [Perl 5](https://www.perl.org/), 180 bytes
```
say$_=".-----------.
",y/.-/| /r x2,"'-.       .-'
.-'   -   '-.";map{printf"|%5.1f-%5.1f|
",32+$_*.9,$_/2}reverse 70..84;say"'---. - .---'
    | - |
    |---|
    |   |
    '---'"
```
[Try it online!](https://tio.run/##RY1RCsIwEET/e4oQIgHtbtpoUCkewTOUfqRQ0DakRSzGqxs3reDCLG@HZcZZfzMxjs0s6gtH@A9mPJ8VggpMefbUOZeAbB0EmZGIgEQ@r@6Neznf9VPLw8Zg2cKyA6Xs9U7UWzznolb67e3D@tGyY4F4OlTUTMFUR1GpXmapINAVViLvR0kLpX/JY/wMbuqGfoxwNViUxRc "Perl 5 – Try It Online")
[Answer]
# vim, 222 keystrokes
```
:.!seq 42 -0.5 35
:%!awk '{printf("|\%5.1f- \%.1f|\n",1.8*$1+32,$1)}'
Go'===. - .==='<ESC>yy
:s/=/-/g
p
:.!tr "'.=" ' | '
:s/ *$/
yyP
:s/-/ /
ddpPlR---<ESC>yyGp
:s/|/'/g
ggO..<ESC>11i-<ESC>yyP
:.!tr .- '| '
yypo'-.<ESC>7a <ESC>a.-'<ENTER>.-'   -   '-.<ESC>
```
[Answer]
## C, 222 bytes
```
f(){puts(".-----------.\n|           |\n|           |\n'-.       .-'\n.-'   -   '-.");for(float n=108.5,m=42.5;m>35;printf("|%5.1f- %.1f|\n",n-=.9,m-=.5));puts("'---. - .---'\n    | - |\n    |---|\n    |   |\n    '---'");}
```
Despite attempting to shorten the string, hardcoding it in a plain format is the best option. I doubt that any (significant) improvement is possible in C.
[Answer]
# Deadfish~, 2064 bytes
```
{iiii}iiiiiicd{c}cic{ddd}ddddddc{{i}}{i}iiiic{{d}i}dd{c}c{{i}d}iic{{d}}{d}ddddc{{i}}{i}iiiic{{d}i}dd{c}c{{i}d}iic{{d}}{d}ddddc{iii}dciiiiiicic{d}ddddccccccc{i}iiiicdcddddddc{ddd}ic{iii}iiiiiicdcddddddc{d}iiiccc{i}iiic{d}dddccc{i}dddciiiiiicic{ddd}ddddddc{{i}}{i}iiiic{{d}iii}dddddcdc{i}dddc{d}ic{i}ddc{d}ic{d}dddc{ii}cddcddddciic{{i}ddd}iiiiiic{{d}}{d}ddddc{{i}}{i}iiiic{{d}iii}dddddcdciiiiiic{d}iic{i}dc{d}c{d}dddc{ii}cdddcdddc{i}dddc{{i}ddd}ic{{d}}{d}ddddc{{i}}{i}iiiic{{d}iii}dddddcdciiiiic{d}iiic{i}c{d}dc{d}dddc{ii}cdddcdddciic{{i}ddd}iiiiiic{{d}}{d}ddddc{{i}}{i}iiiic{{d}iii}dddddcdciiiicddddddc{i}ic{d}ddc{d}dddc{ii}cddddcddc{i}dddc{{i}ddd}ic{{d}}{d}ddddc{{i}}{i}iiiic{{d}iii}dddddcdciiiicddddddciicdddc{d}dddc{ii}cddddcddciic{{i}ddd}iiiiiic{{d}}{d}ddddc{{i}}{i}iiiic{{d}iii}dddddcdciiicdddddciiicddddc{d}dddc{ii}dciiiiiic{d}dc{i}dddc{{i}ddd}ic{{d}}{d}ddddc{{i}}{i}iiiic{{d}iii}dddddcdciicddddciiiicdddddc{d}dddc{ii}dciiiiiic{d}dciic{{i}ddd}iiiiiic{{d}}{d}ddddc{{i}}{i}iiiic{{d}iii}dddddcdcicdddciiiiicddddddc{d}dddc{ii}dciiiiic{d}c{i}dddc{{i}ddd}ic{{d}}{d}ddddc{{i}}{i}iiiic{{d}iii}dddddcdccddciiiiiic{d}iiic{d}dddc{ii}dciiiiic{d}ciic{{i}ddd}iiiiiic{{d}}{d}ddddc{{i}}{i}iiiic{{d}i}ddc{ii}iiiiicc{d}dc{i}dddc{d}iic{d}dddc{ii}dciiiic{d}ic{i}dddc{{i}ddd}ic{{d}}{d}ddddc{{i}}{i}iiiic{{d}i}ddc{ii}iiiiicdc{d}c{i}ddc{d}ic{d}dddc{ii}dciiiic{d}iciic{{i}ddd}iiiiiic{{d}}{d}ddddc{{i}}{i}iiiic{{d}i}ddc{ii}iiiiicddc{d}ic{i}dc{d}c{d}dddc{ii}dciiic{d}iic{i}dddc{{i}ddd}ic{{d}}{d}ddddc{{i}}{i}iiiic{{d}i}ddc{ii}iiiiicdddc{d}iic{i}c{d}dc{d}dddc{ii}dciiic{d}iiciic{{i}ddd}iiiiiic{{d}}{d}ddddc{{i}}{i}iiiic{{d}i}ddc{ii}iiiiicddddc{d}iiic{i}ic{d}ddc{d}dddc{ii}dciic{d}iiic{i}dddc{{i}ddd}ic{{d}}{d}ddddc{{i}}{i}iiiic{{d}i}ddc{ii}iiiiicddddc{d}iiiciicdddc{d}dddc{ii}dciic{d}iiiciic{{i}ddd}iiiiiic{{d}}{d}ddddc{iii}dciiiiiicccic{d}ddddc{i}iiic{d}dddc{i}iiiicdcccddddddc{ddd}ic{ii}iicccc{{i}d}iic{{d}i}ddc{i}iiic{d}dddc{{i}d}iic{{d}}{d}ddddc{ii}iicccc{{i}d}iic{{d}ii}iccc{{i}dd}dc{{d}}{d}ddddc{ii}iicccc{{i}d}iic{{d}i}ddccc{{i}d}iic{{d}}{d}ddddc{ii}iicccc{i}dddciiiiiicccddddddc
```
Sorry Dennis.
[Answer]
# [C (gcc)](https://gcc.gnu.org/), ~~234~~ ~~217~~ ~~212~~ 210 bytes
```
f=420;main(){for(printf(".-----------.\n|%11s|\n|%1$11s|\n'-.%1$7s.-'\n.-'   -   '-.\n","");f>345;f-=5)printf("|%5.1f- %.1f|\n",32+f*.18,f*.1);puts("'---. - .---'\n    | - |\n    |---|\n    |   |\n    '---'");}
```
[Try it online!](https://tio.run/##RY7dDsIgDIVfhRAXQFci@4kmZD7JbswiuouxZcwr8dmxdS426eGDHE7bwb3rUnJNVRztcO29VC83znKae784yTX8S7c@ZsaE@D13KwnQyKegQbQehTEG2ILcPOdcWXcpq9o6aGq1pcas1sYBy1Aj@cri4PbanHNSZafnEiQXNBPTaAcMx1QW8Rp/iK8bUq9IfwQOfaeUlsdtHsbwAQ "C (gcc) – Try It Online")
-15 bytes thanks to ceilingcat!!
-5 bytes thanks to TrapII!!
Output:
```
.-----------.
|           |
|           |
'-.       .-'
.-'   -   '-.
|107.6- 42.0|
|106.7- 41.5|
|105.8- 41.0|
|104.9- 40.5|
|104.0- 40.0|
|103.1- 39.5|
|102.2- 39.0|
|101.3- 38.5|
|100.4- 38.0|
| 99.5- 37.5|
| 98.6- 37.0|
| 97.7- 36.5|
| 96.8- 36.0|
| 95.9- 35.5|
| 95.0- 35.0|
'---. - .---'
    | - |
    |---|
    |   |
    '---'
```
[Answer]
# C, ~~460~~ 265 bytes
```
#define P(x) puts(x);
#define Z "|           |"
T(){float i=7,j=12.6;P(".-----------.")P(Z)P(Z)P("'-.       .-'")P(".-'   -   '-.")while(i>=0)printf("|%5.1f- %.1f|\n",95+j,35+i),i-=.5,j-=.9;P("'---. - .---'")P("    | - |")P("    |---|")P("    |   |")P("    '---'")}
```
**Output** [Live](http://ideone.com/Tlrpt2)
```
.-----------.
|           |
|           |
'-.       .-'
.-'   -   '-.
|107.6- 42.0|
|106.7- 41.5|
|105.8- 41.0|
|104.9- 40.5|
|104.0- 40.0|
|103.1- 39.5|
|102.2- 39.0|
|101.3- 38.5|
|100.4- 38.0|
| 99.5- 37.5|
| 98.6- 37.0|
| 97.7- 36.5|
| 96.8- 36.0|
| 95.9- 35.5|
| 95.0- 35.0|
'---. - .---'
    | - |
    |---|
    |   |
    '---'
```
[Answer]
# Go, 238 bytes
Wow, that string is really resistant to golfing...
```
package main
import."fmt"
func main(){p:=Printf
s,i:=`|           |
`,42.
p(`.-----------.
`+s+s+`'-.       .-'
.-'   -   '-.
`)
for;i>=35;i-=.5{
p(`|%5.1f- %.1f|
`,i*9/5+32,i)}
p(`'---. - .---'
    | - |
    |---|
    |   |
    '---'`)}
```
Try live here: <https://play.golang.org/p/tPKYxII7NC>
]