JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr3 X @sHddlmZddlmZmZddlmZddlmZGdddeZ dS)) CharSetProber) ProbingState MachineState)CodingStateMachine) UTF8_SM_MODELcsTeZdZdZfddZfddZeddZedd Zd d Z d d Z Z S) UTF8Proberg?cs*tt|jtt|_d|_|jdS)N)superr__init__rr coding_sm _num_mb_charsreset)self) __class__ /usr/lib/python3.6/utf8prober.pyr &s zUTF8Prober.__init__cs"tt|j|jjd|_dS)N)rrr r r )r )rrrr ,s zUTF8Prober.resetcCsdS)Nzutf-8r)r rrr charset_name1szUTF8Prober.charset_namecCsdS)Nr)r rrrlanguage5szUTF8Prober.languagecCsxj|D]b}|jj|}|tjkr,tj|_Pq|tjkrBtj|_Pq|tj kr|jj dkr|j d7_ qW|j tj kr|j|jkrtj|_|j S)Nr)r Z next_staterZERRORrZNOT_MEZ_stateZITS_MEZFOUND_ITZSTARTZget_current_charlenr stateZ DETECTINGget_confidenceZSHORTCUT_THRESHOLD)r Zbyte_strcZ coding_staterrrfeed9s      zUTF8Prober.feedcCs.d}|jdkr&||j|j9}d|S|SdS)NgGz?g?)r ONE_CHAR_PROB)r ZunlikerrrrLs  zUTF8Prober.get_confidence) __name__ __module__ __qualname__rr r propertyrrrr __classcell__rr)rrr#s    rN) Z charsetproberrZenumsrrZcodingstatemachinerZmbcssmrrrrrrs