NHK d Z ddlZddlmZmZmZmZmZ ddlZn # e $ r dZY nw xY wddl mZ ddlm Z ddlmZ G d d ZdS ) zl maxminddb.decoder ~~~~~~~~~~~~~~~~~ This package contains code for decoding the MaxMind DB data section. N)castDictListTupleUnionInvalidDatabaseError) FileBuffer)Recordc r e Zd ZdZ d deedef dededd fd Z dedede ee ef fd Z dedede eef fdZdedede eef fdZdedede eef fdZdedede eef fdZdedede eef fdZdedede eeef ef fdZdedede eef fdZdedede eef fdZdedede eef fdZeeeeeeeeeee eed Zdede eef fdZdede eef fdZedededd fd Zdededede eef fdZd S )!Decoderz.Decoder for the data section of the MaxMind DBr Fdatabase_bufferz mmap.mmappointer_basepointer_testreturnNc 0 || _ || _ || _ dS )a Created a Decoder for a MaxMind DB Arguments: database_buffer -- an mmap'd MaxMind DB file. pointer_base -- the base number to use when decoding a pointer pointer_test -- used for internal unit testing of pointer code N) _pointer_test_buffer _pointer_base)selfr r r s q/builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib/python3.11/site-packages/maxminddb/decoder.py__init__zDecoder.__init__ s! *&) sizeoffsetc g }t | D ]/}| | \ }}| | 0||fS N)rangedecodeappend)r r r array_values r _decode_arrayzDecoder._decode_array, sP t A"kk&11OUFLLf}r c |dk |fS )Nr )r r r s r _decode_booleanzDecoder._decode_boolean3 s qy& r c . ||z }| j || |fS r )r r r r new_offsets r _decode_byteszDecoder._decode_bytes6 s" d] |F:-. ::r c | |d ||z }| j || }t j d| \ }||fS )N s !d_verify_sizer structunpackr r r r* packed_bytesr# s r _decode_doublezDecoder._decode_double: P $"""d] |F:$56=55j r c | |d ||z }| j || }t j d| \ }||fS )N s !fr. r2 s r _decode_floatzDecoder._decode_floatA r5 r c |dk rd|fS ||z }| j || }|dk r| dd }t j d| \ }||fS )Nr r7 s !i)r rjustr0 r1 r2 s r _decode_int32zDecoder._decode_int32H sk 199f9d] |F:$56199'--a99L=55j r c i }t | D ]J}| | \ }}| | \ }}||t t | <