d ZddlmZddlmZddlmZddlmZmZddl m Z GddeZ y ) )Union) CharSetProber)CodingStateMachine) MachineState ProbingState) UTF8_SM_MODELceZdZdZd fd Zd fd ZedefdZedefdZ de e e fde fdZdefd ZxZS) UTF8Proberg?returncxt|tt|_d|_|j yNr)super__init__rr coding_sm _num_mb_charsresetself __class__s 4/usr/lib/python3/dist-packages/chardet/utf8prober.pyrzUTF8Prober.__init__'s+ +M: cdt||jjd|_yr)rrrrrs rrzUTF8Prober.reset-s$   rcy)Nzutf-8rs r charset_namezUTF8Prober.charset_name2srcy)Nrrs rlanguagezUTF8Prober.language6srbyte_strc2|D]}|jj|}|tjk(rtj |_ns|tjk(rtj|_nI|tjk(s|jjdk\s|xjdz c_ |jtjk(r2|j|jkDrtj|_|jS)Nr)r next_staterERRORrNOT_ME_stateITS_MEFOUND_ITSTARTget_current_charlenrstate DETECTINGget_confidenceSHORTCUT_THRESHOLD)rr!c coding_states rfeedzUTF8Prober.feed:s ,A>>44Q7L|111*11 |222*33 |111>>5571<&&!+& , ::// /""$t'>'>>*33 zzrcjd}|jdkr!||j|jzz}d|z S|S)NgGz?g?)r ONE_CHAR_PROB)runlikes rr.zUTF8Prober.get_confidenceMs?    ! d(($*<*<< rEs"8(2-!..r