Register - Login
Views: 99393126
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-24-22 10:20:37 AM
Jul - Projects and Creations - I'm training a neural network to tell Sonic 1 and Sonic 2 apart New poll - New thread - New reply
Pages: 1 2 Next newer thread | Next older thread
Sanqui
2060
💛🤍💜🖤🦉
Level: 87


Posts: 1859/2066
EXP: 6305067
For next: 87707

Since: 12-20-09

Pronouns: any ✨
From: Czechia | Estonia

Since last post: 6 days
Last activity: 1 day

Posted on 10-23-20 02:08:23 PM (last edited by Sanqui at 10-23-20 02:20:42 PM) Link | Quote


*Sanqui flops, wings involved.

level 82

exp 5044033

exppct 23.7%

numposts 1859

 
I have to get into machine learning (so I can pass my class) so I'm catching up on neural networks. One of the most basic tasks is building a binary image classifier. Most tutorials use cats and dogs, so I went ahead with something more interesting to me.

I built a dataset of 30.795 screenshots from Sonic 1 and Sonic 2 TASes and longplays and I'm currently training a neural network to predict whether a screenshot is from one or the other. Because real world data is fuzzy, I'm applying data augmentation, in particular, I mess with the brightness, contrast, and hues on some images, as well as random crops (up to 16 pixels in the borders). Here are some examples from my dataset.



Any human being who's played the games can instantly recognize these postage stamps screenshots, so if I can't train an AI to do it I should just give up right here.

So I started with a basic tutorial and spent a few hours debugging issues because of my different augmentation method, but I finally got it to start and I'm training. The process is looking pretty good so far, the validation accuracy is trending up with each epoch! Check out the training progress here.

I'm not done yet, but I'm posting this so that I have to answer for myself even if I fail. So wait tight for the results!

____________________
In our brief lives,  •  we've managed to meet.  •  Treasure this gift,  •  this precious time that we have.        
nym
Member
Level: 42


Posts: 246/413
EXP: 512275
For next: 9087

Since: 02-11-12

Pronouns: any
From: Cartoon Heck

Since last post: 19 days
Last activity: 19 days

Posted on 10-23-20 02:30:33 PM Link | Quote
I have no idea how to read your training output, but what a fun idea for a project. It's silly an unnecessary but I love it!

Good luck with your class!

____________________


DarkWitchClaire

Giant Red Paratroopa
Level: 63


Posts: 1108/1408
EXP: 2044049
For next: 53103

Since: 03-19-18

Pronouns: she/her
From: USA

Since last post: 12 days
Last activity: 12 days

Posted on 10-23-20 02:44:07 PM Link | Quote

seems very interesting!

____________________
Scooblee

Buster Beetle
lesbs pone & cyberdoe :3
Level: 39


Posts: 359/465
EXP: 388016
For next: 16755

Since: 03-19-18

Pronouns: she/her
From: Texas

Since last post: 264 days
Last activity: 49 days

Posted on 10-23-20 04:52:33 PM Link | Quote
amazing
it's just so silly I've gotta keep an eye on it

good luck on that class too, hope it turns out well for ya

____________________
Things!: Twitter | YouTube
Sanqui
2060
💛🤍💜🖤🦉
Level: 87


Posts: 1860/2066
EXP: 6305067
For next: 87707

Since: 12-20-09

Pronouns: any ✨
From: Czechia | Estonia

Since last post: 6 days
Last activity: 1 day

Posted on 10-23-20 07:02:51 PM Link | Quote


* flops, wings involved.

level 82

exp 5048234

exppct 25.6%

numposts 1860

 
So I have an update after training for 50 epochs. The model reached about 96% accuracy on the validation dataset, which is OK, but not that great. I think another 50 epochs would help it, but I probably won't continue training this particular model.

You can find its predictions on some 64 images from the validation dataset here. The first value is 0. or 1. depending on if the screenshot is from Sonic 1 or 2 (you should know this though!), and the next two values are how certain the model is it's one game or the other. You can see it's generally very confident, but the Sonic 1 special zone gave it trouble.

I also attempted some feature visualization, but I can't see much in this or this even if I squint a lot. Can you?

I'm now training the same model with a lot less layers to see if it performs similarly. Might train it for 50 or 100 epochs.

____________________
In our brief lives,  •  we've managed to meet.  •  Treasure this gift,  •  this precious time that we have.        
Kaito Sinclaire
Hacking reality since 20̶?͝>̨ )̧̢~͠|̡͠T̴̡<�͏̀́#͟͠)̸̡̛̕͟_̢҉M̨̛͢͠͠@̴̷(̧̕01 ERROR.




Pronouns: any
Joined 09.07.2011

Last posted 1.0 years ago
Last active 356 days ago

Posted on 10-24-20 09:54:47 AM Link | Quote
It wouldn't surprise me at all if the neural network immediately picked up on the difference in HUD design between the two games, and absolutely nothing else in the image is a factor for how "confident" it is.

It would also explain why it's not confident about Sonic 1's special stages, because there's no visible HUD there.

____________________
RanAS
Member
Level: 55


Posts: 758/844
EXP: 1286471
For next: 27718

Since: 10-10-14

From: São Paulo, Brazil

Since last post: 1 day
Last activity: 1 day

Posted on 10-24-20 10:07:56 AM Link | Quote
Ahh in my mind I was thinking "oh its gonna be interesting knowing how a neural network will be able to store the difference between Sonic 1 and Sonic 2 in data form" but I guess the HUD makes that an easy shortcut...

And the special stages are probably not gonna be difficult either, just most likely a special case or branch in the logic somewhere to also test for additional factors...

welp

Still hella neat though.

____________________

"The quieter you become, the more you are able to hear." --Ram Dass
Girlydragon
3030
Possibly neither Girly nor Dragon.
Level: 105


Posts: 3021/3030
EXP: 12246091
For next: 16169

Since: 07-21-07

From: Sweden

Since last post: 274 days
Last activity: 53 min.

Posted on 10-24-20 11:55:29 AM Link | Quote
I gotta say, it feels like there's something wrong with including knuckles in the sonic 2 screenshots.


But I guess the AI didn't notice or care. Cool stuff either way.

____________________
Sanqui
2060
💛🤍💜🖤🦉
Level: 87


Posts: 1866/2066
EXP: 6305067
For next: 87707

Since: 12-20-09

Pronouns: any ✨
From: Czechia | Estonia

Since last post: 6 days
Last activity: 1 day

Posted on 10-24-20 12:53:46 PM (last edited by Sanqui at 10-24-20 12:53:54 PM) Link | Quote


* flops, wings involved.

level 82

exp 5073157

exppct 37.1%

numposts 1866

 
So I have discovered a problem with my original network. Most of you probably know that images are typically stored on computers as 8 bits per channel, so each color from RGB goes from 0 to 255. Neural networks don't work this way, they work with floats, or numbers between 0 and 1. When feeding image data to a neural network, then, we have to rescale the color channels -- divide them by 255.

No, I didn't forget to do that. I was, in fact, doing it twice!

Of course, there was still enough information for the network to learn, but since every image was super dark, it had to boost the colors to understand anything, which may explain the bright crispy visualizations I got last time.

You all were also correct that the network probably learned to focus on the HUD.

So, that's okay. It's a very reliable way to identify the game. However, we typically want the neural network to use a combination of facts to come to its conclusion. This is usually done by masking parts of the image. I went even further and recorded my own playthroughs of Sonic 1 and 2 with a hack to remove the HUD. So this way, the neural network can use the HUD as a hint, but it has to learn to recognize images without it too. I also increased the cropping so that it sometimes crops the HUD from other pictures too. We'll see how it goes!

You can check out some of the images I'm using to train the neural network now.

____________________
In our brief lives,  •  we've managed to meet.  •  Treasure this gift,  •  this precious time that we have.        
Rena
I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings
Level: 135


Posts: 5353/5390
EXP: 29051678
For next: 283327

Since: 07-22-07

Pronouns: he/him/whatever
From: RSP Segment 6

Since last post: 333 days
Last activity: 333 days

Posted on 10-24-20 01:35:06 PM Link | Quote
Originally posted by Sanqui
I also attempted some feature visualization, but I can't see much in this or this even if I squint a lot. Can you?


I see a dolphin!

____________________
Joe
Common spammer
🍬
Level: 111


Posts: 3338/3392
EXP: 14489229
For next: 379131

Since: 08-02-07

From: Pororoca

Since last post: 3 days
Last activity: 7 hours

Posted on 10-24-20 08:03:44 PM Link | Quote
I want to see what it thinks of other Sonic games.

____________________
守るためなら
Sanqui
2060
💛🤍💜🖤🦉
Level: 87


Posts: 1868/2066
EXP: 6305067
For next: 87707

Since: 12-20-09

Pronouns: any ✨
From: Czechia | Estonia

Since last post: 6 days
Last activity: 1 day

Posted on 10-25-20 06:31:30 PM (last edited by Sanqui at 10-25-20 06:43:34 PM) Link | Quote


* flops, wings involved.

level 82

exp 5082107

exppct 41.3%

numposts 1868

 
So I was doing things wrong to various degrees before but now, finally, my network has learned...Sonic.

I have attained 99.45% accuracy on my validation set.



This is my test set which also happens to contain an image from Shadow in Sonic 1 (no problemo for my network), a detail on a Caterkiller, and, yes, Sonic 3, which proves very enigmatic to my network.

Check out these crispy blurry images it has learned to recognize. (Yes, this is training data, but with major augmentations, to the point where my validation set always overperformed in accuracy!). Could YOU do better, huh?

____________________
In our brief lives,  •  we've managed to meet.  •  Treasure this gift,  •  this precious time that we have.        
Sanqui
2060
💛🤍💜🖤🦉
Level: 87


Posts: 1869/2066
EXP: 6305067
For next: 87707

Since: 12-20-09

Pronouns: any ✨
From: Czechia | Estonia

Since last post: 6 days
Last activity: 1 day

Posted on 10-25-20 06:59:29 PM (last edited by Sanqui at 10-25-20 07:32:27 PM) Link | Quote


* flops, wings involved.

level 82

exp 5086201

exppct 43.1%

numposts 1869

 
Oh, and I nearly forgot: feature visualization worked a lot better this time around.

Basically, these are what the filters the neural network uses like. They most likely correspond to some level textures, hopefully I'll find a way to show which ones are activated for a given screenshot in the future.

This is not all the filters nor all the layers, just a sample. To see them click on the preview below. (56k warning)



____________________
In our brief lives,  •  we've managed to meet.  •  Treasure this gift,  •  this precious time that we have.        
DarkWitchClaire

Giant Red Paratroopa
Level: 63


Posts: 1253/1408
EXP: 2044049
For next: 53103

Since: 03-19-18

Pronouns: she/her
From: USA

Since last post: 12 days
Last activity: 12 days

Posted on 10-25-20 07:44:50 PM Link | Quote

i'm surprised it read the sonic 3 image as sonic 1, but i guess that level looks visually closer to sonic 1 levels compared to 2

____________________
Sanqui
2060
💛🤍💜🖤🦉
Level: 87


Posts: 1870/2066
EXP: 6305067
For next: 87707

Since: 12-20-09

Pronouns: any ✨
From: Czechia | Estonia

Since last post: 6 days
Last activity: 1 day

Posted on 10-25-20 08:19:37 PM (last edited by Sanqui at 10-25-20 08:19:57 PM) Link | Quote


* flops, wings involved.

level 82

exp 5090319

exppct 45.0%

numposts 1870

 
Originally posted by DarkWitchClaire
i'm surprised it read the sonic 3 image as sonic 1, but i guess that level looks visually closer to sonic 1 levels compared to 2

the first digit (0.0 or 1.0) is how it is labelled originally (in this case the label is incorrect because it's neither sonic 1 nor sonic 2)
the next 2 numbers are how the network predicts it (sonic 1 x sonic 2 %), so it actually tilts slightly into sonic 2 (by 2.5%) lol

____________________
In our brief lives,  •  we've managed to meet.  •  Treasure this gift,  •  this precious time that we have.        
DarkWitchClaire

Giant Red Paratroopa
Level: 63


Posts: 1256/1408
EXP: 2044049
For next: 53103

Since: 03-19-18

Pronouns: she/her
From: USA

Since last post: 12 days
Last activity: 12 days

Posted on 10-25-20 09:59:31 PM Link | Quote

ah, thought the first number was the final judgement

____________________
nym
Member
Level: 42


Posts: 296/413
EXP: 512275
For next: 9087

Since: 02-11-12

Pronouns: any
From: Cartoon Heck

Since last post: 19 days
Last activity: 19 days

Posted on 10-26-20 01:12:54 PM Link | Quote
Huh. I never even noticed that the HUD was different between the two games. Am I a... Casual?

____________________


Sanqui
2060
💛🤍💜🖤🦉
Level: 87


Posts: 1873/2066
EXP: 6305067
For next: 87707

Since: 12-20-09

Pronouns: any ✨
From: Czechia | Estonia

Since last post: 6 days
Last activity: 1 day

Posted on 10-27-20 01:10:22 PM Link | Quote


* flops, wings involved.

level 82

exp 5103669

exppct 51.2%

numposts 1873

 
I have trained a neural network to compress a Sonic 1 screenshot into eight numbers.

For example, this screenshot:



is reduced by an encoder into an 8-dimensional vector:
[0.41231838, 0.3690683, -0.5087282, 0.7824896, -0.16906933, -0.5365706, -0.24533194, -0.16639724]

A decoder takes this vector and spits out, well, the best screenshot it can.



For a mere 32 bytes of floats, that's decent fidelity. (Hey, you can recognize the stage.)

Here's a bunch of more examples.

This kind of neural network is called an autoencoder. It's actually two networks, the encoder, which is taught to reduce an image into a small representation (8 numbers in my case), and the decoder, which takes these number as input and is taught to reconstruct the original image.

One fascinating properties about autoencoders is the so-called latent space. By reducing an image into 8 vectors, it is forced to detect features in the data (such as the zone in our case). That means we can take one of the numbers and change it a little bit, feed it to the decoder, and we'll get correspondingly an image that's slightly different. For example, I can make a gradient interpolating over two vectors:

click to see larger

and you can see features pop into existence into the stage. Wow!

Here's another example.

Now, here I'm going over two vectors, but I can also show each vector from -1 to 1 individually so we can guess what "feature" they encode.

click me

And this I think is incredibly cool. You can see how in vector 3, the stage goes from a horizontal ground to a vertical wall! Or how in vector 7, it morphs into the end screen. Wow!

I'm terribly excited about this (because I'm a nerd) and I wanted to do more visualizations (or maybe even a trippy video), but Google has rate limited me from using their GPUs for 12 hours, so now's the best time to show off what I have!

____________________
In our brief lives,  •  we've managed to meet.  •  Treasure this gift,  •  this precious time that we have.        
2Tie

Rumours of my death have been greatly exaggerated.
Level: 70


Posts: 1192/1229
EXP: 2872013
For next: 143798

Since: 02-22-10

Pronouns: anything works
From: here

Since last post: 49 days
Last activity: 1 day

Posted on 10-27-20 05:16:13 PM Link | Quote
UESCTerm 802.11 (remote override)
044 05.10.2337

if they could fit all of sonic 1 into just 32 bytes, then they coulda made the SEGA choir much higher audio fidelity :V

____________________
Press B to Cancel
Press A to Acknowledge
RanAS
Member
Level: 55


Posts: 762/844
EXP: 1286471
For next: 27718

Since: 10-10-14

From: São Paulo, Brazil

Since last post: 1 day
Last activity: 1 day

Posted on 10-29-20 02:25:29 PM Link | Quote
Seems like Star Light in particular is proving to be more troublesome to the neural network. I wonder if it's getting it confused with Labyrinth, or if that's just more difficult to decode overall?

____________________

"The quieter you become, the more you are able to hear." --Ram Dass
Pages: 1 2 Next newer thread | Next older thread
Jul - Projects and Creations - I'm training a neural network to tell Sonic 1 and Sonic 2 apart New poll - New thread - New reply


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

31 database queries, 4 query cache hits.
Query execution time:  0.092676 seconds
Script execution time:  0.062958 seconds
Total render time:  0.155634 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 119 column 11 - Warning: <form> isn't allowed in <table> elements
line 118 column 10 - Info: <table> previously mentioned
line 120 column 11 - Warning: missing <tr>
line 120 column 119 - Warning: missing </font> before </td>
line 124 column 16 - Warning: plain text isn't allowed in <tr> elements
line 120 column 11 - Info: <tr> previously mentioned
line 125 column 68 - Warning: missing </nobr> before </td>
line 141 column 68 - Warning: missing </nobr> before <tr>
line 147 column 35 - Warning: missing <tr>
line 147 column 50 - Warning: missing </font> before </td>
line 148 column 37 - Warning: unescaped & or unknown entity "&id"
line 147 column 234 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 97 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 132 - Warning: missing </font> before </table>
line 156 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 158 column 9 - Warning: missing <tr>
line 176 column 13 - Warning: missing <tr>
line 177 column 102 - Warning: unescaped & or unknown entity "&postid"
line 179 column 74 - Warning: <style> isn't allowed in <td> elements
line 179 column 9 - Info: <td> previously mentioned
line 179 column 613 - Warning: <style> isn't allowed in <td> elements
line 179 column 9 - Info: <td> previously mentioned
line 179 column 3813 - Warning: '<' + '/' + letter not allowed here
line 184 column 20 - Warning: '<' + '/' + letter not allowed here
line 184 column 34 - Warning: '<' + '/' + letter not allowed here
line 188 column 21 - Warning: '<' + '/' + letter not allowed here
line 211 column 2144 - Warning: discarding unexpected </div>
line 211 column 2150 - Warning: discarding unexpected </div>
line 211 column 2156 - Warning: discarding unexpected </td>
line 214 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 216 column 9 - Warning: missing <tr>
line 234 column 13 - Warning: missing <tr>
line 235 column 102 - Warning: unescaped & or unknown entity "&postid"
line 241 column 637 - Warning: <style> isn't allowed in <td> elements
line 237 column 9 - Info: <td> previously mentioned
line 244 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 246 column 9 - Warning: missing <tr>
line 264 column 13 - Warning: missing <tr>
line 265 column 102 - Warning: unescaped & or unknown entity "&postid"
line 271 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 273 column 9 - Warning: missing <tr>
line 291 column 13 - Warning: missing <tr>
line 292 column 102 - Warning: unescaped & or unknown entity "&postid"
line 300 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 302 column 9 - Warning: missing <tr>
line 320 column 13 - Warning: missing <tr>
line 321 column 102 - Warning: unescaped & or unknown entity "&postid"
line 323 column 74 - Warning: <style> isn't allowed in <td> elements
line 323 column 9 - Info: <td> previously mentioned
line 323 column 613 - Warning: <style> isn't allowed in <td> elements
line 323 column 9 - Info: <td> previously mentioned
line 323 column 3813 - Warning: '<' + '/' + letter not allowed here
line 328 column 20 - Warning: '<' + '/' + letter not allowed here
line 328 column 34 - Warning: '<' + '/' + letter not allowed here
line 332 column 21 - Warning: '<' + '/' + letter not allowed here
line 351 column 1699 - Warning: discarding unexpected </div>
line 351 column 1705 - Warning: discarding unexpected </div>
line 351 column 1711 - Warning: discarding unexpected </td>
line 353 column 15 - Warning: missing <tr>
line 353 column 15 - Warning: discarding unexpected <table>
line 356 column 33 - Warning: missing </font> before <table>
line 363 column 33 - Warning: inserting implicit <font>
line 372 column 33 - Warning: missing <tr>
line 373 column 122 - Warning: unescaped & or unknown entity "&postid"
line 373 column 47 - Warning: missing </nobr> before </table>
line 375 column 82 - Warning: <style> isn't allowed in <td> elements
line 375 column 17 - Info: <td> previously mentioned
line 377 column 835 - Warning: discarding unexpected </div>
line 379 column 17 - Warning: discarding unexpected </div>
line 382 column 9 - Warning: missing <tr>
line 400 column 13 - Warning: missing <tr>
line 401 column 102 - Warning: unescaped & or unknown entity "&postid"
line 401 column 27 - Warning: missing </nobr> before </table>
line 403 column 74 - Warning: <style> isn't allowed in <td> elements
line 403 column 9 - Info: <td> previously mentioned
line 414 column 9 - Warning: missing <tr>
line 432 column 13 - Warning: missing <tr>
line 433 column 102 - Warning: unescaped & or unknown entity "&postid"
line 433 column 27 - Warning: missing </nobr> before </table>
line 435 column 353 - Warning: <style> isn't allowed in <td> elements
line 435 column 214 - Info: <td> previously mentioned
line 435 column 941 - Warning: <style> isn't allowed in <td> elements
line 435 column 214 - Info: <td> previously mentioned
line 435 column 1562 - Warning: <style> isn't allowed in <td> elements
line 435 column 214 - Info: <td> previously mentioned
line 435 column 2128 - Warning: <style> isn't allowed in <td> elements
line 435 column 214 - Info: <td> previously mentioned
line 435 column 2661 - Warning: <style> isn't allowed in <td> elements
line 435 column 214 - Info: <td> previously mentioned
line 443 column 9 - Warning: missing <tr>
line 461 column 13 - Warning: missing <tr>
line 462 column 102 - Warning: unescaped & or unknown entity "&postid"
line 462 column 27 - Warning: missing </nobr> before </table>
line 464 column 74 - Warning: <style> isn't allowed in <td> elements
line 464 column 9 - Info: <td> previously mentioned
line 464 column 613 - Warning: <style> isn't allowed in <td> elements
line 464 column 9 - Info: <td> previously mentioned
line 464 column 3813 - Warning: '<' + '/' + letter not allowed here
line 469 column 20 - Warning: '<' + '/' + letter not allowed here
line 469 column 34 - Warning: '<' + '/' + letter not allowed here
line 473 column 21 - Warning: '<' + '/' + letter not allowed here
line 496 column 2218 - Warning: discarding unexpected </div>
line 496 column 2224 - Warning: discarding unexpected </div>
line 496 column 2230 - Warning: discarding unexpected </td>
line 501 column 9 - Warning: missing <tr>
line 519 column 13 - Warning: missing <tr>
line 520 column 102 - Warning: unescaped & or unknown entity "&postid"
line 520 column 27 - Warning: missing </nobr> before </table>
line 522 column 74 - Warning: <style> isn't allowed in <td> elements
line 522 column 9 - Info: <td> previously mentioned
line 530 column 9 - Warning: missing <tr>
line 548 column 13 - Warning: missing <tr>
line 549 column 102 - Warning: unescaped & or unknown entity "&postid"
line 549 column 27 - Warning: missing </nobr> before </table>
line 551 column 74 - Warning: <style> isn't allowed in <td> elements
line 551 column 9 - Info: <td> previously mentioned
line 556 column 9 - Warning: missing <tr>
line 574 column 13 - Warning: missing <tr>
line 575 column 102 - Warning: unescaped & or unknown entity "&postid"
line 575 column 27 - Warning: missing </nobr> before </table>
line 577 column 74 - Warning: <style> isn't allowed in <td> elements
line 577 column 9 - Info: <td> previously mentioned
line 577 column 613 - Warning: <style> isn't allowed in <td> elements
line 577 column 9 - Info: <td> previously mentioned
line 577 column 3813 - Warning: '<' + '/' + letter not allowed here
line 582 column 20 - Warning: '<' + '/' + letter not allowed here
line 582 column 34 - Warning: '<' + '/' + letter not allowed here
line 586 column 21 - Warning: '<' + '/' + letter not allowed here
line 607 column 1428 - Warning: discarding unexpected </div>
line 607 column 1434 - Warning: discarding unexpected </div>
line 607 column 1440 - Warning: discarding unexpected </td>
line 612 column 9 - Warning: missing <tr>
line 630 column 13 - Warning: missing <tr>
line 631 column 102 - Warning: unescaped & or unknown entity "&postid"
line 631 column 27 - Warning: missing </nobr> before </table>
line 633 column 74 - Warning: <style> isn't allowed in <td> elements
line 633 column 9 - Info: <td> previously mentioned
line 633 column 613 - Warning: <style> isn't allowed in <td> elements
line 633 column 9 - Info: <td> previously mentioned
line 633 column 3813 - Warning: '<' + '/' + letter not allowed here
line 638 column 20 - Warning: '<' + '/' + letter not allowed here
line 638 column 34 - Warning: '<' + '/' + letter not allowed here
line 642 column 21 - Warning: '<' + '/' + letter not allowed here
line 661 column 1232 - Warning: discarding unexpected </div>
line 661 column 1238 - Warning: discarding unexpected </div>
line 661 column 1244 - Warning: discarding unexpected </td>
line 666 column 9 - Warning: missing <tr>
line 684 column 13 - Warning: missing <tr>
line 685 column 102 - Warning: unescaped & or unknown entity "&postid"
line 685 column 27 - Warning: missing </nobr> before </table>
line 693 column 9 - Warning: missing <tr>
line 711 column 13 - Warning: missing <tr>
line 712 column 102 - Warning: unescaped & or unknown entity "&postid"
line 712 column 27 - Warning: missing </nobr> before </table>
line 714 column 74 - Warning: <style> isn't allowed in <td> elements
line 714 column 9 - Info: <td> previously mentioned
line 714 column 613 - Warning: <style> isn't allowed in <td> elements
line 714 column 9 - Info: <td> previously mentioned
line 714 column 3813 - Warning: '<' + '/' + letter not allowed here
line 719 column 20 - Warning: '<' + '/' + letter not allowed here
line 719 column 34 - Warning: '<' + '/' + letter not allowed here
line 723 column 21 - Warning: '<' + '/' + letter not allowed here
line 738 column 1170 - Warning: discarding unexpected </div>
line 738 column 1176 - Warning: discarding unexpected </div>
line 738 column 1182 - Warning: discarding unexpected </td>
line 743 column 9 - Warning: missing <tr>
line 761 column 13 - Warning: missing <tr>
line 762 column 102 - Warning: unescaped & or unknown entity "&postid"
line 762 column 27 - Warning: missing </nobr> before </table>
line 770 column 9 - Warning: missing <tr>
line 788 column 13 - Warning: missing <tr>
line 789 column 102 - Warning: unescaped & or unknown entity "&postid"
line 789 column 27 - Warning: missing </nobr> before </table>
line 793 column 572 - Warning: <style> isn't allowed in <td> elements
line 791 column 9 - Info: <td> previously mentioned
line 798 column 9 - Warning: missing <tr>
line 816 column 13 - Warning: missing <tr>
line 817 column 102 - Warning: unescaped & or unknown entity "&postid"
line 817 column 27 - Warning: missing </nobr> before </table>
line 819 column 74 - Warning: <style> isn't allowed in <td> elements
line 819 column 9 - Info: <td> previously mentioned
line 819 column 613 - Warning: <style> isn't allowed in <td> elements
line 819 column 9 - Info: <td> previously mentioned
line 819 column 3813 - Warning: '<' + '/' + letter not allowed here
line 824 column 20 - Warning: '<' + '/' + letter not allowed here
line 824 column 34 - Warning: '<' + '/' + letter not allowed here
line 828 column 21 - Warning: '<' + '/' + letter not allowed here
line 874 column 3243 - Warning: discarding unexpected </div>
line 874 column 3249 - Warning: discarding unexpected </div>
line 874 column 3255 - Warning: discarding unexpected </td>
line 879 column 9 - Warning: missing <tr>
line 897 column 13 - Warning: missing <tr>
line 898 column 102 - Warning: unescaped & or unknown entity "&postid"
line 898 column 27 - Warning: missing </nobr> before </table>
line 900 column 74 - Warning: <style> isn't allowed in <td> elements
line 900 column 9 - Info: <td> previously mentioned
line 905 column 9 - Warning: missing <tr>
line 923 column 13 - Warning: missing <tr>
line 924 column 102 - Warning: unescaped & or unknown entity "&postid"
line 924 column 27 - Warning: missing </nobr> before </table>
line 926 column 74 - Warning: <style> isn't allowed in <td> elements
line 926 column 9 - Info: <td> previously mentioned
line 932 column 35 - Warning: missing <tr>
line 932 column 97 - Warning: unescaped & or unknown entity "&page"
line 932 column 50 - Warning: missing </font> before </td>
line 932 column 132 - Warning: missing </font> before </table>
line 934 column 35 - Warning: missing <tr>
line 934 column 50 - Warning: missing </font> before </td>
line 935 column 37 - Warning: unescaped & or unknown entity "&id"
line 934 column 234 - Warning: missing </font> before </table>
line 936 column 17 - Warning: discarding unexpected </textarea>
line 936 column 28 - Warning: discarding unexpected </form>
line 936 column 35 - Warning: discarding unexpected </embed>
line 936 column 43 - Warning: discarding unexpected </noembed>
line 936 column 53 - Warning: discarding unexpected </noscript>
line 936 column 64 - Warning: discarding unexpected </noembed>
line 936 column 74 - Warning: discarding unexpected </embed>
line 936 column 82 - Warning: discarding unexpected </table>
line 936 column 90 - Warning: discarding unexpected </table>
line 938 column 9 - Warning: missing </font> before <table>
line 950 column 25 - Warning: discarding unexpected </font>
line 959 column 57 - Warning: discarding unexpected </font>
line 937 column 1 - Warning: missing </center>
line 120 column 63 - Warning: <img> lacks "alt" attribute
line 125 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 125 column 93 - Warning: <img> lacks "alt" attribute
line 141 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 141 column 98 - Warning: <img> lacks "alt" attribute
line 148 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 148 column 246 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 16 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 16 - Warning: <img> lacks "alt" attribute
line 160 column 59 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 59 - Warning: <img> lacks "alt" attribute
line 160 column 102 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 102 - Warning: <img> lacks "alt" attribute
line 160 column 145 - Warning: <img> proprietary attribute value "absmiddle"
line 160 column 145 - Warning: <img> lacks "alt" attribute
line 161 column 22 - Warning: <img> lacks "alt" attribute
line 161 column 63 - Warning: <img> lacks "alt" attribute
line 161 column 112 - Warning: <img> lacks "alt" attribute
line 161 column 162 - Warning: <img> lacks "alt" attribute
line 162 column 11 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 205 column 1135 - Warning: <img> lacks "alt" attribute
line 207 column 1358 - Warning: <img> proprietary attribute value "absmiddle"
line 207 column 1358 - Warning: <img> lacks "alt" attribute
line 219 column 22 - Warning: <img> lacks "alt" attribute
line 219 column 63 - Warning: <img> lacks "alt" attribute
line 219 column 112 - Warning: <img> lacks "alt" attribute
line 219 column 162 - Warning: <img> lacks "alt" attribute
line 220 column 11 - Warning: <img> lacks "alt" attribute
line 230 column 15 - Warning: <img> lacks "alt" attribute
line 248 column 11 - Warning: <img> lacks "alt" attribute
line 249 column 22 - Warning: <img> lacks "alt" attribute
line 249 column 63 - Warning: <img> lacks "alt" attribute
line 249 column 112 - Warning: <img> lacks "alt" attribute
line 249 column 162 - Warning: <img> lacks "alt" attribute
line 250 column 11 - Warning: <img> lacks "alt" attribute
line 260 column 15 - Warning: <img> lacks "alt" attribute
line 268 column 1036 - Warning: <img> lacks "alt" attribute
line 268 column 1198 - Warning: <img> lacks "alt" attribute
line 275 column 11 - Warning: <img> lacks "alt" attribute
line 276 column 22 - Warning: <img> lacks "alt" attribute
line 276 column 63 - Warning: <img> lacks "alt" attribute
line 276 column 112 - Warning: <img> lacks "alt" attribute
line 276 column 162 - Warning: <img> lacks "alt" attribute
line 277 column 11 - Warning: <img> lacks "alt" attribute
line 287 column 15 - Warning: <img> lacks "alt" attribute
line 304 column 16 - Warning: <img> proprietary attribute value "absmiddle"
line 304 column 16 - Warning: <img> lacks "alt" attribute
line 304 column 59 - Warning: <img> proprietary attribute value "absmiddle"
line 304 column 59 - Warning: <img> lacks "alt" attribute
line 304 column 102 - Warning: <img> proprietary attribute value "absmiddle"
line 304 column 102 - Warning: <img> lacks "alt" attribute
line 304 column 145 - Warning: <img> proprietary attribute value "absmiddle"
line 304 column 145 - Warning: <img> lacks "alt" attribute
line 305 column 22 - Warning: <img> lacks "alt" attribute
line 305 column 63 - Warning: <img> lacks "alt" attribute
line 305 column 112 - Warning: <img> lacks "alt" attribute
line 305 column 162 - Warning: <img> lacks "alt" attribute
line 306 column 11 - Warning: <img> lacks "alt" attribute
line 316 column 15 - Warning: <img> lacks "alt" attribute
line 360 column 33 - Warning: <img> lacks "alt" attribute
line 362 column 92 - Warning: <img> lacks "alt" attribute
line 362 column 174 - Warning: <img> lacks "alt" attribute
line 362 column 201 - Warning: <img> lacks "alt" attribute
line 362 column 228 - Warning: <img> lacks "alt" attribute
line 362 column 255 - Warning: <img> lacks "alt" attribute
line 362 column 282 - Warning: <img> lacks "alt" attribute
line 362 column 309 - Warning: <img> lacks "alt" attribute
line 362 column 336 - Warning: <img> lacks "alt" attribute
line 362 column 363 - Warning: <img> lacks "alt" attribute
line 362 column 390 - Warning: <img> lacks "alt" attribute
line 362 column 447 - Warning: <img> escaping malformed URI reference
line 362 column 447 - Warning: <img> lacks "alt" attribute
line 362 column 503 - Warning: <img> lacks "alt" attribute
line 362 column 585 - Warning: <img> lacks "alt" attribute
line 362 column 612 - Warning: <img> lacks "alt" attribute
line 362 column 639 - Warning: <img> lacks "alt" attribute
line 362 column 666 - Warning: <img> lacks "alt" attribute
line 362 column 693 - Warning: <img> lacks "alt" attribute
line 362 column 720 - Warning: <img> lacks "alt" attribute
line 362 column 747 - Warning: <img> lacks "alt" attribute
line 362 column 774 - Warning: <img> lacks "alt" attribute
line 362 column 801 - Warning: <img> lacks "alt" attribute
line 362 column 858 - Warning: <img> escaping malformed URI reference
line 362 column 858 - Warning: <img> lacks "alt" attribute
line 368 column 37 - Warning: <img> lacks "alt" attribute
line 385 column 22 - Warning: <img> lacks "alt" attribute
line 385 column 63 - Warning: <img> lacks "alt" attribute
line 385 column 112 - Warning: <img> lacks "alt" attribute
line 385 column 162 - Warning: <img> lacks "alt" attribute
line 386 column 11 - Warning: <img> lacks "alt" attribute
line 396 column 15 - Warning: <img> lacks "alt" attribute
line 409 column 3625 - Warning: <img> lacks "alt" attribute
line 416 column 16 - Warning: <img> proprietary attribute value "absmiddle"
line 416 column 16 - Warning: <img> lacks "alt" attribute
line 416 column 59 - Warning: <img> proprietary attribute value "absmiddle"
line 416 column 59 - Warning: <img> lacks "alt" attribute
line 416 column 102 - Warning: <img> proprietary attribute value "absmiddle"
line 416 column 102 - Warning: <img> lacks "alt" attribute
line 416 column 145 - Warning: <img> proprietary attribute value "absmiddle"
line 416 column 145 - Warning: <img> lacks "alt" attribute
line 416 column 188 - Warning: <img> proprietary attribute value "absmiddle"
line 416 column 188 - Warning: <img> lacks "alt" attribute
line 416 column 231 - Warning: <img> proprietary attribute value "absmiddle"
line 416 column 231 - Warning: <img> lacks "alt" attribute
line 417 column 23 - Warning: <img> lacks "alt" attribute
line 417 column 64 - Warning: <img> lacks "alt" attribute
line 417 column 113 - Warning: <img> lacks "alt" attribute
line 417 column 162 - Warning: <img> lacks "alt" attribute
line 418 column 11 - Warning: <img> lacks "alt" attribute
line 428 column 15 - Warning: <img> lacks "alt" attribute
line 445 column 16 - Warning: <img> proprietary attribute value "absmiddle"
line 445 column 16 - Warning: <img> lacks "alt" attribute
line 445 column 59 - Warning: <img> proprietary attribute value "absmiddle"
line 445 column 59 - Warning: <img> lacks "alt" attribute
line 445 column 102 - Warning: <img> proprietary attribute value "absmiddle"
line 445 column 102 - Warning: <img> lacks "alt" attribute
line 445 column 145 - Warning: <img> proprietary attribute value "absmiddle"
line 445 column 145 - Warning: <img> lacks "alt" attribute
line 446 column 22 - Warning: <img> lacks "alt" attribute
line 446 column 63 - Warning: <img> lacks "alt" attribute
line 446 column 112 - Warning: <img> lacks "alt" attribute
line 446 column 162 - Warning: <img> lacks "alt" attribute
line 447 column 11 - Warning: <img> lacks "alt" attribute
line 457 column 15 - Warning: <img> lacks "alt" attribute
line 488 column 897 - Warning: <img> lacks "alt" attribute
line 504 column 23 - Warning: <img> lacks "alt" attribute
line 504 column 64 - Warning: <img> lacks "alt" attribute
line 504 column 113 - Warning: <img> lacks "alt" attribute
line 504 column 163 - Warning: <img> lacks "alt" attribute
line 515 column 15 - Warning: <img> lacks "alt" attribute
line 524 column 850 - Warning: <img> proprietary attribute value "absmiddle"
line 524 column 850 - Warning: <img> lacks "alt" attribute
line 533 column 23 - Warning: <img> lacks "alt" attribute
line 533 column 64 - Warning: <img> lacks "alt" attribute
line 533 column 113 - Warning: <img> lacks "alt" attribute
line 533 column 163 - Warning: <img> lacks "alt" attribute
line 534 column 11 - Warning: <img> lacks "alt" attribute
line 544 column 15 - Warning: <img> lacks "alt" attribute
line 558 column 16 - Warning: <img> proprietary attribute value "absmiddle"
line 558 column 16 - Warning: <img> lacks "alt" attribute
line 558 column 59 - Warning: <img> proprietary attribute value "absmiddle"
line 558 column 59 - Warning: <img> lacks "alt" attribute
line 558 column 102 - Warning: <img> proprietary attribute value "absmiddle"
line 558 column 102 - Warning: <img> lacks "alt" attribute
line 558 column 145 - Warning: <img> proprietary attribute value "absmiddle"
line 558 column 145 - Warning: <img> lacks "alt" attribute
line 559 column 22 - Warning: <img> lacks "alt" attribute
line 559 column 63 - Warning: <img> lacks "alt" attribute
line 559 column 112 - Warning: <img> lacks "alt" attribute
line 559 column 162 - Warning: <img> lacks "alt" attribute
line 560 column 11 - Warning: <img> lacks "alt" attribute
line 570 column 15 - Warning: <img> lacks "alt" attribute
line 603 column 598 - Warning: <img> lacks "alt" attribute
line 614 column 16 - Warning: <img> proprietary attribute value "absmiddle"
line 614 column 16 - Warning: <img> lacks "alt" attribute
line 614 column 59 - Warning: <img> proprietary attribute value "absmiddle"
line 614 column 59 - Warning: <img> lacks "alt" attribute
line 614 column 102 - Warning: <img> proprietary attribute value "absmiddle"
line 614 column 102 - Warning: <img> lacks "alt" attribute
line 614 column 145 - Warning: <img> proprietary attribute value "absmiddle"
line 614 column 145 - Warning: <img> lacks "alt" attribute
line 615 column 22 - Warning: <img> lacks "alt" attribute
line 615 column 63 - Warning: <img> lacks "alt" attribute
line 615 column 112 - Warning: <img> lacks "alt" attribute
line 615 column 162 - Warning: <img> lacks "alt" attribute
line 616 column 11 - Warning: <img> lacks "alt" attribute
line 626 column 15 - Warning: <img> lacks "alt" attribute
line 661 column 926 - Warning: <img> lacks "alt" attribute
line 668 column 11 - Warning: <img> lacks "alt" attribute
line 669 column 22 - Warning: <img> lacks "alt" attribute
line 669 column 63 - Warning: <img> lacks "alt" attribute
line 669 column 112 - Warning: <img> lacks "alt" attribute
line 669 column 162 - Warning: <img> lacks "alt" attribute
line 670 column 11 - Warning: <img> lacks "alt" attribute
line 680 column 15 - Warning: <img> lacks "alt" attribute
line 688 column 1036 - Warning: <img> lacks "alt" attribute
line 688 column 1303 - Warning: <img> lacks "alt" attribute
line 695 column 16 - Warning: <img> proprietary attribute value "absmiddle"
line 695 column 16 - Warning: <img> lacks "alt" attribute
line 695 column 59 - Warning: <img> proprietary attribute value "absmiddle"
line 695 column 59 - Warning: <img> lacks "alt" attribute
line 695 column 102 - Warning: <img> proprietary attribute value "absmiddle"
line 695 column 102 - Warning: <img> lacks "alt" attribute
line 695 column 145 - Warning: <img> proprietary attribute value "absmiddle"
line 695 column 145 - Warning: <img> lacks "alt" attribute
line 696 column 22 - Warning: <img> lacks "alt" attribute
line 696 column 63 - Warning: <img> lacks "alt" attribute
line 696 column 112 - Warning: <img> lacks "alt" attribute
line 696 column 162 - Warning: <img> lacks "alt" attribute
line 697 column 11 - Warning: <img> lacks "alt" attribute
line 707 column 15 - Warning: <img> lacks "alt" attribute
line 745 column 11 - Warning: <img> lacks "alt" attribute
line 746 column 22 - Warning: <img> lacks "alt" attribute
line 746 column 63 - Warning: <img> lacks "alt" attribute
line 746 column 112 - Warning: <img> lacks "alt" attribute
line 746 column 162 - Warning: <img> lacks "alt" attribute
line 747 column 11 - Warning: <img> lacks "alt" attribute
line 757 column 15 - Warning: <img> lacks "alt" attribute
line 765 column 1036 - Warning: <img> lacks "alt" attribute
line 765 column 1227 - Warning: <img> lacks "alt" attribute
line 773 column 22 - Warning: <img> lacks "alt" attribute
line 773 column 63 - Warning: <img> lacks "alt" attribute
line 773 column 112 - Warning: <img> lacks "alt" attribute
line 773 column 162 - Warning: <img> lacks "alt" attribute
line 774 column 11 - Warning: <img> lacks "alt" attribute
line 784 column 15 - Warning: <img> lacks "alt" attribute
line 791 column 74 - Warning: <div> anchor "nympost" already defined
line 800 column 16 - Warning: <img> proprietary attribute value "absmiddle"
line 800 column 16 - Warning: <img> lacks "alt" attribute
line 800 column 59 - Warning: <img> proprietary attribute value "absmiddle"
line 800 column 59 - Warning: <img> lacks "alt" attribute
line 800 column 102 - Warning: <img> proprietary attribute value "absmiddle"
line 800 column 102 - Warning: <img> lacks "alt" attribute
line 800 column 145 - Warning: <img> proprietary attribute value "absmiddle"
line 800 column 145 - Warning: <img> lacks "alt" attribute
line 801 column 22 - Warning: <img> lacks "alt" attribute
line 801 column 63 - Warning: <img> lacks "alt" attribute
line 801 column 112 - Warning: <img> lacks "alt" attribute
line 801 column 162 - Warning: <img> lacks "alt" attribute
line 802 column 11 - Warning: <img> lacks "alt" attribute
line 812 column 15 - Warning: <img> lacks "alt" attribute
line 845 column 555 - Warning: <img> lacks "alt" attribute
line 852 column 885 - Warning: <img> lacks "alt" attribute
line 862 column 1961 - Warning: <img> lacks "alt" attribute
line 870 column 2471 - Warning: <img> lacks "alt" attribute
line 881 column 11 - Warning: <img> lacks "alt" attribute
line 882 column 22 - Warning: <img> lacks "alt" attribute
line 882 column 63 - Warning: <img> lacks "alt" attribute
line 882 column 111 - Warning: <img> lacks "alt" attribute
line 882 column 161 - Warning: <img> lacks "alt" attribute
line 883 column 11 - Warning: <img> lacks "alt" attribute
line 893 column 15 - Warning: <img> lacks "alt" attribute
line 900 column 567 - Warning: <img> lacks "alt" attribute
line 900 column 813 - Warning: <div> anchor "joyeuse" already defined
line 908 column 22 - Warning: <img> lacks "alt" attribute
line 908 column 63 - Warning: <img> lacks "alt" attribute
line 908 column 112 - Warning: <img> lacks "alt" attribute
line 908 column 162 - Warning: <img> lacks "alt" attribute
line 909 column 11 - Warning: <img> lacks "alt" attribute
line 919 column 15 - Warning: <img> lacks "alt" attribute
line 926 column 3383 - Warning: <img> lacks "alt" attribute
line 935 column 44 - Warning: <img> proprietary attribute value "absmiddle"
line 935 column 142 - Warning: <img> proprietary attribute value "absmiddle"
line 935 column 246 - Warning: <img> proprietary attribute value "absmiddle"
line 944 column 25 - Warning: <img> lacks "alt" attribute
line 949 column 267 - Warning: <img> lacks "alt" attribute
line 334 column 18 - Warning: trimming empty <b>
line 475 column 18 - Warning: trimming empty <b>
line 588 column 18 - Warning: trimming empty <b>
line 644 column 18 - Warning: trimming empty <b>
line 725 column 18 - Warning: trimming empty <b>
line 830 column 18 - Warning: trimming empty <b>
line 125 column 68 - Warning: <nobr> is not approved by W3C
line 141 column 68 - Warning: <nobr> is not approved by W3C
line 177 column 27 - Warning: <nobr> is not approved by W3C
line 235 column 27 - Warning: <nobr> is not approved by W3C
line 265 column 27 - Warning: <nobr> is not approved by W3C
line 292 column 27 - Warning: <nobr> is not approved by W3C
line 321 column 27 - Warning: <nobr> is not approved by W3C
line 373 column 47 - Warning: <nobr> is not approved by W3C
line 401 column 27 - Warning: <nobr> is not approved by W3C
line 433 column 27 - Warning: <nobr> is not approved by W3C
line 435 column 74 - Warning: <table> proprietary attribute "height"
line 462 column 27 - Warning: <nobr> is not approved by W3C
line 520 column 27 - Warning: <nobr> is not approved by W3C
line 549 column 27 - Warning: <nobr> is not approved by W3C
line 575 column 27 - Warning: <nobr> is not approved by W3C
line 631 column 27 - Warning: <nobr> is not approved by W3C
line 685 column 27 - Warning: <nobr> is not approved by W3C
line 712 column 27 - Warning: <nobr> is not approved by W3C
line 762 column 27 - Warning: <nobr> is not approved by W3C
line 789 column 27 - Warning: <nobr> is not approved by W3C
line 817 column 27 - Warning: <nobr> is not approved by W3C
line 898 column 27 - Warning: <nobr> is not approved by W3C
line 924 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 474 warnings and 0 errors!


URIs must be properly escaped, they must not contain unescaped
characters below U+0021 including the space character and not
above U+007E. Tidy escapes the URI for you as recommended by
HTML 4.01 section B.2.1 and XML 1.0 section 4.2.2. Some user agents
use another algorithm to escape such URIs and some server-sided
scripts depend on that. If you want to depend on that, you must
escape the URI on your own. For more information please refer to
http://www.w3.org/International/O-URL-and-ident.html

The alt attribute should be used to give a short description
of an image; longer descriptions should be given with the
longdesc attribute which takes a URL linked to the description.
These measures are needed for people using non-graphical browsers.

For further advice on how to make your pages accessible
see http://www.w3.org/WAI/GL.
You are recommended to use CSS to specify the font and
properties such as its size and color. This will reduce
the size of HTML files and make them easier to maintain
compared with using <FONT> elements.

You are recommended to use CSS to control line wrapping.
Use "white-space: nowrap" to inhibit wrapping in place
of inserting <NOBR>...</NOBR> into the markup.

About HTML Tidy: https://github.com/htacg/tidy-html5
Bug reports and comments: https://github.com/htacg/tidy-html5/issues
Official mailing list: https://lists.w3.org/Archives/Public/public-htacg/
Latest HTML specification: http://dev.w3.org/html5/spec-author-view/
Validate your HTML documents: http://validator.w3.org/nu/
Lobby your company to join the W3C: http://www.w3.org/Consortium

Do you speak a language other than English, or a different variant of
English? Consider helping us to localize HTML Tidy. For details please see
https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md