code: def __init__(
      self, encoding=None, buffer_size=35000000, verbose=0, mmap=True
  ):
      super().__init__(
          encoding=encoding, buffer_size=buffer_size, verbose=verbose
      )
      # output
      self.img = None
  
      # Queried when loading data from <Data> elements - see read_data_block
      self.mmap = mmap
  
      # finite state machine stack
      self.fsm_state = []
  
      # temporary constructs
      self.nvpair = None
      self.da = None
      self.coordsys = None
      self.lata = None
      self.label = None
  
      self.meta_global = None
      self.meta_da = None
      self.count_da = True
  
      # where to write CDATA:
      self.write_to = None
  
      # Collecting char buffer fragments
      self._char_blocks = None
  
imports: import base64
  import os.path
  import sys
  import warnings
  import zlib
  from io import StringIO
  from xml.parsers.expat import ExpatError
  import numpy
  from ..nifti1 import data_type_codes, intent_codes, xform_codes
  from ..xmlutils import XmlParser
  from .gifti import GiftiCoordSystem, GiftiDataArray, GiftiImage, GiftiLabel, GiftiLabelTable, GiftiMetaData
  from .util import array_index_order_codes, gifti_encoding_codes, gifti_endian_codes
label_desc: Use image node_id 1 to create a new GiftiImageParser object from inherited base classes: XmlParser with example: obj = GiftiImageParser(encoding, buffer_size, verbose, mmap)