同じビット列が文字コードによってどんな文字に解釈されるか
文字コード | ビット列 | 表示される文字 |
---|---|---|
ISO-8859-1 | 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f | ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????j?????????????????????????????????????èE??èE???èE?????èE??èE???èE????èE??èE???èE????èE??èE???èE?????èE??èE???èE????????????????????????????èE??èE???èE?????èE??èE???èE????èE??èE???èE????èE??èE???èE?????èE??èE???èE?????????????????????????????????????????????????????????????????????????èE??èE???èE?????èE??èE???èE????èE??èE???èE????èE??èE???èE?????èE??èE???èE?????????????????????????????????????j???????????????j???????????????????????????????èE??èE???èE?????èE??èE???èE????èE??èE???èE????èE??èE???èE?????èE??èE???èE?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? |
SJIS-WIN | 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f | ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????j?????????????????????????????????????錵??錵???錵?????錵??錵???錵????錵??錵???錵????錵??錵???錵?????錵??錵???錵????????????????????????????錵??錵???錵?????錵??錵???錵????錵??錵???錵????錵??錵???錵?????錵??錵???錵?????????????????????????????????????????????????????????????????????????錵??錵???錵?????錵??錵???錵????錵??錵???錵????錵??錵???錵?????錵??錵???錵?????????????????????????????????????j???????????????j???????????????????????????????錵??錵???錵?????錵??錵???錵????錵??錵???錵????錵??錵???錵?????錵??錵???錵?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? |
EUC-JP | 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f | ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????j?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????j???????????????j??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? |
UTF-8 | 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f | ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????j??????????????????????????????????????E???E????E??????E???E????E?????E???E????E?????E???E????E??????E???E????E?????????????????????????????E???E????E??????E???E????E?????E???E????E?????E???E????E??????E???E????E??????????????????????????????????????????????????????????????????????????E???E????E??????E???E????E?????E???E????E?????E???E????E??????E???E????E?????????????????????????????????????j???????????????j????????????????????????????????E???E????E??????E???E????E?????E???E????E?????E???E????E??????E???E????E?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? |
UHC | 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f6a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3fe8453f3fe8453f3f3fe8453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f | ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????j?????????????????????????????????????髥??髥???髥?????髥??髥???髥????髥??髥???髥????髥??髥???髥?????髥??髥???髥????????????????????????????髥??髥???髥?????髥??髥???髥????髥??髥???髥????髥??髥???髥?????髥??髥???髥?????????????????????????????????????????????????????????????????????????髥??髥???髥?????髥??髥???髥????髥??髥???髥????髥??髥???髥?????髥??髥???髥?????????????????????????????????????j???????????????j???????????????????????????????髥??髥???髥?????髥??髥???髥????髥??髥???髥????髥??髥???髥?????髥??髥???髥?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? |