<s> """<STR_LIT>""" <EOL> from grr . lib import aff4 <EOL> from grr . lib import config_lib <EOL> from grr . lib import flow <EOL> from grr . lib import rdfvalue <EOL> from grr . lib . rdfvalues import client as rdf_client <EOL> class RDFFindSpec ( rdf_client . FindSpec ) : <EOL> """<STR_LIT>""" <EOL> class ClientCompatibility ( flow . EventListener ) : <EOL> EVENTS = [ "<STR_LIT>" ] <EOL> well_known_session_id = rdfvalue . SessionID ( flow_name = "<STR_LIT>" ) <EOL> @ flow . EventHandler ( allow_client_access = True , auth_required = False ) <EOL> def ProcessMessage ( self , message = None , event = None ) : <EOL> client_id = message . source <EOL> if event is None : <EOL> event = rdf_client . StartupInfo ( message . args ) <EOL> client_info = event . client_info <EOL> if client_info . client_version < <NUM_LIT> : <EOL> python_hack_root_urn = config_lib . CONFIG . Get ( "<STR_LIT>" ) <EOL> hack_urn = python_hack_root_urn . Add ( "<STR_LIT>" ) <EOL> fd = aff4 . FACTORY . Open ( hack_urn , token = self . token ) <EOL> python_blob = fd . Get ( fd . Schema . BINARY ) <EOL> if python_blob is None : <EOL> raise flow . FlowError ( "<STR_LIT>" % hack_urn ) <EOL> self . CallClient ( client_id , "<STR_LIT>" , python_code = python_blob ) </s>
