Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(28)

Side by Side Diff: ui/events/keycodes/dom4/dom_values.txt

Issue 641753003: DOM Level 3 .code and .key value enumerations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 Copyright 2014 The Chromium Authors. All rights reserved.
2 Use of this source code is governed by a BSD-style license that can be
3 found in the LICENSE file.
4
5 This is a table of DOM Level 3 .code and .key values, used to generate
6 identifiers (enums) and string tables. These names are defined by:
7
8 [0] DOM Level 3 KeyboardEvent code Values,
9 http://www.w3.org/TR/DOM-Level-3-Events-code/
10 [1] DOM Level 3 KeyboardEvent key Values,
11 http://www.w3.org/TR/DOM-Level-3-Events-key/
12
13 Those references should be consulted on the meaning and usage of these
14 values; this file does not attempt to describe that.
15
16 Additional references:
17
18 [2] Document Object Model (DOM) Level 3 Events Specification,
19 http://www.w3.org/TR/DOM-Level-3-Events/
20 [3] Legacy Keyboard Event Properties,
21 https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/Note-KeyProps.html
22 [4] USB HID Usage Tables,
23 http://www.usb.org/developers/devclass_docs/Hut1_11.pdf
24 [5] Linux <linux/evdev.h>
25 [6] Windows <ime.h> and <winuser.h>
26 [7] OS X <HIToolbox/Events.h>
27
28 DOM3 values are defined as text, but numeric values (enum constants) are
29 useful internally, e.g. for IPC or rapid dispatch. The numeric values
30 are chosen for the convenience of the human reader; there is no need
31 in code for these particular numeric values (other than 0 for NONE), or
32 for .code and .key to have the same numeric values for 'corresponding'
33 names, except to make life a little easier for a human debugger.
34
35 For the most part, the names given in the table here directly match the
36 DOM Level 3 value, and a corresponding enum identifier is generated from
37 the name by converting W3C's CamelCaseStyle to Chromium's C_MACRO_STYLE.
38
39 In this file, lines beginning with white space are comments. Column fields
40 are separated by white space; fields containing white space must be quoted.
41
42 A DOM .code or .key table entry has the form:
43
44 <DOMstring> ['-' <Enum> ['-' <Comment>]]
45
46 where
47
48 <DOMstring> is the value from the W3C document;
49 <Enum> is an optional alternate name used to generate the enumerator;
50 <Comment> is optional additional text.
51
52 An entry with a empty <DOMString> and <Identifier> is ignored; consequently,
53 '-' alone marks an empty field, and an entry beginning with '--' forms a
54 placeholder comment (often used where a USB currently defines a code but
55 W3C does not).
56
57
58 Zero is reserved to mean no value; there is no corresponding DOM string.
59 (This is not the same as the valid DOM .key value 'Unidentified'.)
60
61 # DOM .code DOM .key Comment
62 --- ----------------------- ----------------------- -----------------------
63 0x000 -None -None "No value"
64
65
66 Numbers less than 8 should only be used for .key values, and not .code,
67 as this simplifies mapping on systems using xkb for key layout.
68
69 TODO(kpschoedel): 'Unidentified' is not a standard DOM .code value (it IS a
70 .key value), but a small amount of existing code uses that string where no
71 code is present or recognized. Once that code has been refactored to use the
72 enum, remove this entry and clean up the corresponding KeycodeConverter code.
73
74 # DOM .code DOM .key Comment
75 --- ----------------------- ----------------------- -----------------------
76 0x001 Unidentified Unidentified
77 0x002 --DoNotUseForCode2 Accel
78 0x003 --DoNotUseForCode3 - "Use for .key only"
79 0x004 --DoNotUseForCode4 - "Use for .key only"
80 0x005 --DoNotUseForCode5 - "Use for .key only"
81 0x006 --DoNotUseForCode6 - "Use for .key only"
82 0x007 --DoNotUseForCode7 - "Use for .key only"
83
84
85 The lowest numeric values are used for .key values that correspond to some
86 of the current most commonly used VKEY_ values, as this may keep switch
87 tables dense. A few of these match ASCII codes as a convenience to a human
88 debugger.
89
90 # DOM .code DOM .key Comment
91 --- ----------------------- ----------------------- -----------------------
92 0x008 Backspace Backspace "Labelled Delete on Macs"
93 0x009 Tab Tab
94 0x00A Enter Enter "Primary Enter or Return"
95 0x00B PageUp PageUp
96 0x00C PageDown PageDown
97 0x00D --Separator Separator ".code = USB 07:009F"
98 0x00E Home Home
99 0x00F End End
100
101 # DOM .code DOM .key Comment
102 --- ----------------------- ----------------------- -----------------------
103 0x010 ArrowUp ArrowUp
104 0x011 ArrowDown ArrowDown
105 0x012 ArrowLeft ArrowLeft
106 0x013 ArrowRight ArrowRight
107 0x014 Insert Insert
108 0x015 Pause Pause "PC Pause/Break key"
109 0x016 MediaPlayPause MediaPlayPause
110 0x017 MediaSelect MediaSelect
111 0x018 MediaStop MediaStop
112 0x019 MediaTrackNext MediaTrackNext
113 0x01A MediaTrackPrevious MediaTrackPrevious
114 0x01B Escape Escape
115 0x01C ContextMenu ContextMenu "USB 07:0065 Application"
116 0x01D VolumeMute VolumeMute
117 0x01E VolumeDown VolumeDown
118 0x01F VolumeUp VolumeUp
119
120
121 Codes for printable keys. For the most part, the numeric values match ASCII
122 for the convenience of human readers.
123
124 # DOM .code DOM .key Comment
125 --- ----------------------- ----------------------- -----------------------
126 0x020 Space -
127 0x021 --NumpadExclamation -
128 0x022 - - '"'
129 0x023 --NumpadNumberSign -
130 0x024 - - '$'
131 0x025 --NumpadPercent -
132 0x026 --NumpadAmpersand -
133 0x027 Quote -
134 0x028 NumpadParenLeft -
135 0x029 NumpadParenRight -
136 0x02A NumpadMultiply -
137 0x02B NumpadAdd -
138 0x02C Comma -
139 0x02D Minus -
140 0x02E Period -
141 0x02F Slash -
142
143 # DOM .code DOM .key Comment
144 --- ----------------------- ----------------------- -----------------------
145 0x030 Digit0 -
146 0x031 Digit1 -
147 0x032 Digit2 -
148 0x033 Digit3 -
149 0x034 Digit4 -
150 0x035 Digit5 -
151 0x036 Digit6 -
152 0x037 Digit7 -
153 0x038 Digit8 -
154 0x039 Digit9 -
155 0x03A --NumpadColon -
156 0x03B Semicolon -
157 0x03C --NumpadLessThan -
158 0x03D Equal -
159 0x03E --NumpadGreaterThan -
160 0x03F - - '?'
161
162 # DOM .code DOM .key Comment
163 --- ----------------------- ----------------------- -----------------------
164 0x040 --NumpadAt -
165 0x041 KeyA -
166 0x042 KeyB -
167 0x043 KeyC -
168 0x044 KeyD -
169 0x045 KeyE -
170 0x046 KeyF -
171 0x047 KeyG -
172 0x048 KeyH -
173 0x049 KeyI -
174 0x04A KeyJ -
175 0x04B KeyK -
176 0x04C KeyL -
177 0x04D KeyM -
178 0x04E KeyN -
179 0x04F KeyO -
180
181 # DOM .code DOM .key Comment
182 --- ----------------------- ----------------------- -----------------------
183 0x050 KeyP -
184 0x051 KeyQ -
185 0x052 KeyR -
186 0x053 KeyS -
187 0x054 KeyT -
188 0x055 KeyU -
189 0x056 KeyV -
190 0x057 KeyW -
191 0x058 KeyX -
192 0x059 KeyY -
193 0x05A KeyZ -
194 0x05B BracketLeft -
195 0x05C Backslash -
196 0x05D BracketRight -
197 0x05E --NumpadCircumflex -
198 0x05F - - '_'
199
200 # DOM .code DOM .key Comment
201 --- ----------------------- ----------------------- -----------------------
202 0x060 Backquote -
203 0x061 IntlBackslash - "USB 07:0064"
204 0x062 IntlHash - "USB 07:0032"
205 0x063 IntlRo - "USB 07:0087"
206 0x064 IntlYen - "USB 07:0089"
207
208
209 Additional miscellaneous values.
210
211 # DOM .code DOM .key Comment
212 --- ----------------------- ----------------------- -----------------------
213 0x065 BrowserHome BrowserHome
214 0x066 BrowserFavorites BrowserFavorites
215 0x067 BrowserSearch BrowserSearch
216 0x068 BrowserForward BrowserForward
217 0x069 BrowserBack BrowserBack
218 0x06A BrowserRefresh BrowserRefresh
219 0x06B BrowserStop BrowserStop
220 0x06C ScrollLock ScrollLock
221 0x06D PrintScreen PrintScreen
222 0x06E - BrightnessUp
223 0x06F - BrightnessDown
224
225 # DOM .code DOM .key Comment
226 --- ----------------------- ----------------------- -----------------------
227 0x070 LaunchMail LaunchMail
228 0x071 LaunchApp1 -
229 0x072 LaunchApp2 -
230 0x073 Eject Eject
231 0x074 Power Power
232 0x075 - PowerOff
233 0x076 Sleep -
234 0x077 - Standby
235 0x078 - Hibernate
236 0x079 WakeUp WakeUp
237 0x07A - LogOff
238 0x07B --NumpadBraceLeft -
239 0x07C --NumpadVerticalBar -
240 0x07D --NumpadBraceRight -
241 0x07E - - "~"
242 0x07F Delete Delete
243
244
245 Modifiers. Most .code values (for physical keys), have 'Left' and 'Right'
246 versions, while .key values do not. For modifier .key values with zero or
247 one corresponding .code, we assign numbers as if there were left and right
248 physical keys anyway, to make them consistent for the human reader.
249
250 On PS/2 and USB keyboards, the physical right Alt key is used for AltGraph,
251 and there are no codes dedicated to AltGraph. The 'OS' values, corresponding
252 to USB 'GUI' keys, are used for Windows keys, Mac Command keys, ChromeOS
253 Search keys, or other system-specific modifiers. See the W3C DOM documents
254 for more information.
255
256 # DOM .code DOM .key Comment
257 --- ----------------------- ----------------------- -----------------------
258 0x080 ShiftLeft Shift
259 0x081 ShiftRight -
260 0x082 ControlLeft Control
261 0x083 ControlRight -
262 0x084 AltLeft Alt
263 0x085 AltRight - "AltGr on many layouts"
264 0x086 OSLeft OS
265 0x087 OSRight -
266 0x088 - Meta
267 0x089 - -
268 0x08A Super Super
269 0x08B - -
270 0x08C Hyper Hyper
271 0x08D - -
272 0x08E - AltGraph
273 0x08F - -
274
275 # DOM .code DOM .key Comment
276 --- ----------------------- ----------------------- -----------------------
277 0x090 - Symbol
278 0x091 - -
279 0x092 Fn Fn
280 0x093 - -
281 0x094 - -
282 0x095 - -
283 0x096 - -
284 0x097 - -
285
286 # DOM .code DOM .key Comment
287 --- ----------------------- ----------------------- -----------------------
288 0x098 CapsLock CapsLock
289 0x099 NumLock NumLock "Also Mac 'Clear' key"
290 0x09A - SymbolLock
291 0x09B FLock-FnLock FnLock
292 0x09C - -
293 0x09D - -
294 0x09E - -
295 0x09F - -
296
297
298 Additional numeric keypad values.
299
300 # DOM .code DOM .key Comment
301 --- ----------------------- ----------------------- -----------------------
302 0x0A0 NumpadClear - "Not Mac 'Clear'"
303 0x0A1 NumpadClearEntry -
304 0x0A2 NumpadEqual -
305 0x0A3 NumpadSubtract -
306 0x0A4 NumpadDivide -
307 0x0A5 NumpadComma - "USB Thousands separator"
308 0x0A6 NumpadDecimal - "USB Decimal separator"
309 0x0A7 --NumpadSpace -
310 0x0A8 NumpadBackspace -
311 0x0A9 --NumpadTab -
312 0x0AA NumpadEnter -
313 0x0AB NumpadMemoryAdd -
314 0x0AC NumpadMemorySubtract -
315 0x0AD NumpadMemoryClear -
316 0x0AE NumpadMemoryRecall -
317 0x0AF NumpadMemoryStore -
318
319 # DOM .code DOM .key Comment
320 --- ----------------------- ----------------------- -----------------------
321 0x0B0 Numpad0 -
322 0x0B1 Numpad1 -
323 0x0B2 Numpad2 -
324 0x0B3 Numpad3 -
325 0x0B4 Numpad4 -
326 0x0B5 Numpad5 -
327 0x0B6 Numpad6 -
328 0x0B7 Numpad7 -
329 0x0B8 Numpad8 -
330 0x0B9 Numpad9 -
331 0x0BA --NumpadA -
332 0x0BB --NumpadB -
333 0x0BC --NumpadC -
334 0x0BD --NumpadD -
335 0x0BE --NumpadE -
336 0x0BF --NumpadF -
337
338
339 Input method and internationalization.
340
341 # DOM .code DOM .key Comment
342 --- ----------------------- ----------------------- -----------------------
343 0x0C0 NonConvert NonConvert "muhenkan"
344 0x0C1 Convert Convert "henkan"
345 0x0C2 KanaMode KanaMode "katakana/hiragana/romaji"
346 0x0C3 - KanjiMode
347 0x0C4 - Romaji
348 0x0C5 Lang3 Katakana
349 0x0C6 Lang4 Hiragana
350 0x0C7 - HiraganaKatakana
351 0x0C8 - Zenkaku
352 0x0C9 - Hankaku
353 0x0CA Lang5 ZenkakuHankaku
354 0x0CB - Alphanumeric
355 0x0CC - Eisu "[close]"
356 0x0CD - Process
357 0x0CE - ModeChange
358 0x0CF - FinalMode
359
360 # DOM .code DOM .key Comment
361 --- ----------------------- ----------------------- -----------------------
362 0x0D0 Lang1 HangulMode "han/yeong"
363 0x0D1 Lang2 HanjaMode
364 0x0D2 - JunjaMode
365 0x0D3 - -
366 0x0D4 - AllCandidates
367 0x0D5 - SingleCandidate
368 0x0D6 - PreviousCandidate
369 0x0D7 - NextCandidate
370 0x0D8 - GroupFirst
371 0x0D9 - GroupLast
372 0x0DA - GroupPrevious
373 0x0DB - GroupNext
374 0x0DC - Compose
375 0x0DD - Dead
376 0x0DE - CodeInput
377 0x0DF - Accept
378
379 # DOM .code DOM .key Comment
380 --- ----------------------- ----------------------- -----------------------
381 0x0E0 - -
382 0x0E1 - -
383 0x0E2 - -
384 0x0E3 - -
385 0x0E4 - -
386 0x0E5 - -
387 0x0E6 --Lang6 -
388 0x0E7 --Lang7 -
389 0x0E8 --Lang8 -
390 0x0E9 --Lang9 -
391 0x0EA --International6 -
392 0x0EB --International7 -
393 0x0EC --International8 -
394 0x0ED --International9 -
395 0x0EE - -
396 0x0EF - -
397
398
399 Function keys. DOM defines an open-ended set, but if we want a finite
400 numeric encoding we need to draw the line somewhere. USB and Windows (VK)
401 and Linux (evdev) support 24 and OS X supports 20, so we define 24 and
402 optimistically leave space here for 8 more.
403
404 # DOM .code DOM .key Comment
405 --- ----------------------- ----------------------- -----------------------
406 0x0F0 --F0 --F0
407 0x0F1 F1 F1
408 0x0F2 F2 F2
409 0x0F3 F3 F3
410 0x0F4 F4 F4
411 0x0F5 F5 F5
412 0x0F6 F6 F6
413 0x0F7 F7 F7
414 0x0F8 F8 F8
415 0x0F9 F9 F9
416 0x0FA F10 F10
417 0x0FB F11 F11
418 0x0FC F12 F12
419 0x0FD F13 F13
420 0x0FE F14 F14
421 0x0FF F15 F15
422
423 # DOM .code DOM .key Comment
424 --- ----------------------- ----------------------- -----------------------
425 0x100 F16 F16
426 0x101 F17 F17
427 0x102 F18 F18
428 0x103 F19 F19
429 0x104 F20 F20
430 0x105 F21 F21
431 0x106 F22 F22
432 0x107 F23 F23
433 0x108 F24 F24
434 0x109 --F25 --F25
435 0x10A --F26 --F26
436 0x10B --F27 --F27
437 0x10C --F28 --F28
438 0x10D --F29 --F29
439 0x10E --F30 --F30
440 0x10F --F31 --F31
441
442
443 Additional keys, mostly described as 'legacy' in the DOM documents.
444
445 # DOM .code DOM .key Comment
446 --- ----------------------- ----------------------- -----------------------
447 0x110 Abort -
448 0x111 Help Help
449 0x112 Copy Copy
450 0x113 Cut Cut
451 0x114 Paste Paste
452 0x115 Undo Undo
453 0x116 - Redo
454 0x117 Again Again
455 0x118 Open Open
456 0x119 Props Props
457 0x11A Select Select
458 0x11B Find Find
459 0x11C Suspend -
460 0x11D Resume -
461 0x11E Turbo -
462 0x11F - -
463
464
465 Space for physical key codes defined by USB but not currently by W3C.
466
467 # DOM .code DOM .key Comment
468 --- ----------------------- ----------------------- -----------------------
469 0x120 --Numpad00 -
470 0x121 --Numpad000 -
471 0x122 --NumpadEqualAS400 -
472 0x123 --NumpadXor -
473 0x124 --NumpadChangeSign -
474 0x125 --NumpadMemoryMultiply -
475 0x126 --NumpadMemoryDivide -
476 0x127 --NumpadDoubleAmpersand -
477 0x128 --NumpadDoubleVerticalBar -
478 0x129 --NumpadBaseBinary -
479 0x12A --NumpadBaseDecimal -
480 0x12B --NumpadBaseHexadecimal -
481 0x12C --NumpadBaseOctal -
482 0x12D --LockingCapsLock -
483 0x12E --LockingNumLock -
484 0x12F --LockingScrollLock -
485
486 # DOM .code DOM .key Comment
487 --- ----------------------- ----------------------- -----------------------
488 0x130 --AlternateErase -
489 0x131 --Clear -
490 0x132 --Clear/Again -
491 0x133 --CurrencySubUnit -
492 0x134 --CurrencyUnit -
493 0x135 --DecimalSeparator -
494 0x136 --ExSel -
495 0x137 --Oper -
496 0x138 --Out -
497 0x139 --Prior -
498 0x13A --Return -
499 0x13B --Stop -
500 0x13C --SysReq -
501 0x13D --ThousandsSeparator -
502 0x13E - -
503 0x13F - -
504
505
506 Additional DOM .key values.
507
508 # DOM .code DOM .key Comment
509 --- ----------------------- ----------------------- -----------------------
510 0x140 - Attn
511 0x141 - Camera
512 0x142 - Cancel
513 0x143 - Close
514 0x144 - Execute
515 0x145 - MailReply
516 0x146 - MailSend
517 0x147 - MailForward
518 0x148 - New
519 0x149 - Play "not MediaPlay"
520 0x14A - Print
521 0x14B - Save
522 0x14C - SpellCheck
523 0x14D - ZoomToggle
524 0x14E - ZoomIn
525 0x14F - ZoomOut
526
527 # DOM .code DOM .key Comment
528 --- ----------------------- ----------------------- -----------------------
529 0x150 - LaunchCalculator
530 0x151 - LaunchCalendar
531 0x152 - LaunchMediaPlayer
532 0x153 - LaunchMusicPlayer
533 0x154 - LaunchMyComputer
534 0x155 - LaunchScreenSaver
535 0x156 - LaunchSpreadsheet
536 0x157 - LaunchWebBrowser
537 0x158 - LaunchWebCam
538 0x159 - LaunchWordProcessor
539 0x15A - -
540 0x15B - -
541 0x15C - -
542 0x15D - -
543 0x15E - -
544 0x15F - -
545
546 # DOM .code DOM .key Comment
547 --- ----------------------- ----------------------- -----------------------
548 0x160 - AudioBalanceLeft
549 0x161 - AudioBalanceRight
550 0x162 - AudioBassBoostDown
551 0x163 - AudioBassBoostUp
552 0x164 - AudioFaderFront
553 0x165 - AudioFaderRear
554 0x166 - AudioSurroundModeNext
555 0x167 - AVRInput
556 0x168 - AVRPower
557 0x169 - ChannelDown
558 0x16A - ChannelUp
559 0x16B - Clear
560 0x16C - ClosedCaptionToggle
561 0x16D - CrSel
562 0x16E - ExSel
563 0x16F - EraseEof
564
565 # DOM .code DOM .key Comment
566 --- ----------------------- ----------------------- -----------------------
567 0x170 - ColorF0Red
568 0x171 - ColorF1Green
569 0x172 - ColorF2Yellow
570 0x173 - ColorF3Blue
571 0x174 - ColorF4Grey
572 0x175 - ColorF5Brown
573 0x176 - Dimmer
574 0x177 - DisplaySwap
575 0x178 - Exit
576 0x179 - Guide
577 0x17A - GuideNextDay
578 0x17B - GuidePreviousDay
579 0x17C - Info
580 0x17D - InstantReplay
581 0x17E - Link
582 0x17F - ListProgram
583
584 # DOM .code DOM .key Comment
585 --- ----------------------- ----------------------- -----------------------
586 0x180 - FavoriteClear0
587 0x181 - FavoriteClear1
588 0x182 - FavoriteClear2
589 0x183 - FavoriteClear3
590 0x184 - FavoriteRecall0
591 0x185 - FavoriteRecall1
592 0x186 - FavoriteRecall2
593 0x187 - FavoriteRecall3
594 0x188 - FavoriteStore0
595 0x189 - FavoriteStore1
596 0x18A - FavoriteStore2
597 0x18B - FavoriteStore3
598 0x18C - -
599 0x18D - -
600 0x18E - -
601 0x18F - -
602
603 # DOM .code DOM .key Comment
604 --- ----------------------- ----------------------- -----------------------
605 0x190 - MediaApps
606 0x191 - MediaFastForward
607 0x192 - MediaLast
608 0x193 - MediaNextTrack
609 0x194 - MediaPause
610 0x195 - MediaPlay
611 0x196 - MediaPreviousTrack
612 0x197 - MediaRecord
613 0x198 - MediaRewind
614 0x199 - MediaSkip
615 0x19A - -
616 0x19B - -
617 0x19C - -
618 0x19D - -
619 0x19E - -
620 0x19F - -
621
622 # DOM .code DOM .key Comment
623 --- ----------------------- ----------------------- -----------------------
624 0x1A0 - LiveContent
625 0x1A1 - Lock
626 0x1A2 - NextFavoriteChannel
627 0x1A3 - NextUserProfile
628 0x1A4 - OnDemand
629 0x1A5 - PinPDown
630 0x1A6 - PinPMove
631 0x1A7 - PinPToggle
632 0x1A8 - PinPUp
633 0x1A9 - PlaySpeedDown
634 0x1AA - PlaySpeedReset
635 0x1AB - PlaySpeedUp
636 0x1AC - RandomToggle
637 0x1AD - RcLowBattery
638 0x1AE - RecordSpeedNext
639 0x1AF - RfBypass
640
641 # DOM .code DOM .key Comment
642 --- ----------------------- ----------------------- -----------------------
643 0x1B0 - ScanChannelsToggle
644 0x1B1 - ScreenModeNext
645 0x1B2 - Settings
646 0x1B3 - SplitScreenToggle
647 0x1B4 - STBInput
648 0x1B5 - STBPower
649 0x1B6 - Subtitle
650 0x1B7 - Teletext
651 0x1B8 - TV
652 0x1B9 - TVInput
653 0x1BA - TVPower
654 0x1BB - VideoModeNext
655 0x1BC - Wink
656 0x1BD - -
657 0x1BE - -
658 0x1BF - -
659
660 # DOM .code DOM .key Comment
661 --- ----------------------- ----------------------- -----------------------
662 0x1F0 - -
663 0x1F1 - Soft1
664 0x1F2 - Soft2
665 0x1F3 - Soft3
666 0x1F4 - Soft4
667
668 THE END
669
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698